A-Better-History-Card, l'historique HA sous stéroïde

Salut,

Voici un petit duo de cartes custom qui permet d’afficher des graphs facilement sous lovelace, voir de remplacer le module historique HA, avec un gros plus, on peut faire des graphs des attributs.

Elle est entierement paramètrable depuis l’UI, et permet de faire pas mal de choses déjà.

Il y a 2 cartes:

  • une carte standard pour afficher graphique(s) ou module d’historique complet sur le dashboard
  • une carte qui affiche un bouton sur le dashboard et ouvre une fenetre de dialogue HA pour afficher le graph.

Features:

  • Selecteur d’entité et attributs
  • Import/export de données json
  • Paramètrage complet depuis l’UI ( graph, tooltip, barre d’outils, selecteurs, boutons, couleurs, etc )
  • Afficher des series dans un meme graphique, ou en séparé
  • Affichage des graphs dans le dashboard ( carte standard ) ou dans une boite de dialogue ( carte version bouton )
  • Pas de dependances à une librairie de charts, tout est fait en svg. C’est light et performant.
  • Chargement optimisé des historiques. Pas de blocage du navigateur sur les grosses séries de data.



Install:

  • Ajouter le repo dans HACS:

Ajouter ce repository à HACS.

  • Installer a-better-history-card depuis HACS

Web-composant

Pour les developpeurs, j’ai mis à dispostion l’outil sous forme de web component qui permet de profiter de ce module History dans n’importe quelle carte custom pour HA

npm: https://www.npmjs.com/package/@kipk/ha-better-history

C’est lui qui est utilisé dans cette carte, et dans la carte thermostat Equinox.

C’est une première version, il y aura encore des petits points à améliorer.

Bon tests

Des petites infos sur comment utiliser la carte.

Affichage d’un graph sur le dashboard

Selectionner la carte a-better-history-card , et ajouter vos entités et attributs.

HA n’expose pas d’unités dans les attributs, alors pour afficher plusieurs attributs dans le même graph, il faut renseigner l’unité dans le champs correspondant de l’attribut ou définir un « groupe d’echelle ».
Ici je mets comme unité « temperature » c’est une clef speciale qui permet de ne pas tenir compte du type d’unité de température ( °C ou °F ), mais vous pouvez mettre « °C » aussi.

Pour les groupes d’echelles, il faut dans ce cas la que chaque entité et attribut ai le même groupe mentionné. Cela permet de fusionner plusieurs entités/attributs d’unité différentes dans le même graph.

Vous parametrer ensuite selon vos besoins:

  • la plage de temps

  • ce que vous voulez afficher dans le graphique:

  • les styles globaux:

  • le header:

Et vous obtenez un joli graphique sur le dashboard

Carte bouton

La 2eme carrte permet de n’afficher qu’un bouton sur le dash, qui va ouvrir le graph dans une boite de dialogue:

Afficher l’explorateur d’historique en pleine page

Pour imiter l’historique HA, vous devez créer un dashboard en mode « panel »
Et ajouter la carte a-better-history-card sans y mettre d’entité/attributs.

Elle va s’afficher en plein écran.

Avancé

Pour pouvoir matcher automatiquement des attributs hors de la configuration des attributs, il faut ajouter dans l’onglet Avancé les unités des attributs au format json:

Il y a un exemple ici utilisé pour la carte Equinox . Il faut y placer le chemin complet de chaque attribut, et son unité.

Une fois que c’est fait, ajouter plusieurs attributs de même unité les mixera automatiquement dans le meme graph comme c’est déjà le cas avec les entités.

Nouvelle feature dans la dernière version, on peut maintenant grouper des attributs/entités ajoutés depuis le graphique et pas seulement depuis la config.

Il faut click-droit ou long press sur un des chips d’attributs en haut pour faire apparaitre cette fenêtre:

Le fait de mettre une valeur numérique comme 1 dans le champs Groupe affectue l’attribut au 1er graph, 2, au 2eme graph, etc.