Intégration EcoRT2 Home Assistant

Bonjour,

Juste pour lancer un sujet séparé pour l’intégration HomeAssistant pour le EcoRT2.
Voir le travail de Mati24/Aohzan pour le Ecodevices ou le ipx800

En cas de question, n’hésitez pas à l’indiquer ici ou sur les issues de GitHub.

Bonjour @otello86,

Je vous répond ici pour votre question afin de ne pas gêner le sujet sur l’ecodevices.

Bonjour @PierreC
je suis nouveau sur HomeAssistant (venant de Domoticz) et j’utilise depuis peu votre add-on pour remonter les datas de mon RT2 sur HA (bravo pour le boulot !)
Pouvez-vous me confirmer si vous sourcez vos infos depuis /admin/status.xml ou depuis les json dispo sur l’API ?
Y at-il moyen de mapper les champs de ces xml ou json avec les options disponibles dans le yaml ?
Merci d’avance.

Merci pour votre message !
Effectivement, pour l’instant j’utilise l* 'API JSON et pas le fichier status.xml.

  • L’utilisation du fichier « status.xml » permettrait de réduire les appels, il faudrait cependant saisir ses identifiants d’accès au EcoRT2. Pour l’API JSON, on utilise uniquement une clé d’API qui peut être modifiée.
    Si cela vous semble poser un problème, n’hésitez pas à me le dire. Pour information, ce code est dans le package python pyecodevices_rt2.
  • Si j’ai bien compris la question, oui, il est possible de mapper le champs que vous voulez. Pour simplifier, j’ai préparé des éléments dédiés (conteurs, poste/sous-poste, relais, enocean, etc.) mais vous pouvez aussi indiquer les champs spécifiques de l’API que vous souhaitez.
    Tout est dans la documentation (en particulier ici), il est possible de demander à faire l’appel à une adresse spécifique de l’API « http://ADDRESS_IP:PORT/api/xdevices.json?key=API_KEY&api_get=api_get_value » et extraire dans le JSON de retour une valeur spécifique « api_get_entry ».
    Par exemple pour un capteur :
- name: Elec Index HC
  type: "api"
  component: "sensor"
  api_get: "Index"
  api_get_value: "All"
  api_get_entry: "Index_TI1"
  device_class: "power"
  unit_of_measurement: "kWh"
  icon: "mdi:flash"

Ici, il va charger le lien « http://ADDRESS_IP:PORT/api/xdevices.json?key=API_KEY&Index=All » et ira lire, dans le fichier JSON renvoyé, le champs « Index_TI1 »

Si ça n’est pas clair ou que je n’ai pas compris la question, n’hésitez pas à me le dire.

Bonjour @PierreC
merci pour votre retour.
Pour le moment je récupère les valeurs qu’il me faut par l’intermédiaire de scrape du fichier status.xml
Cela évite effectivement de démultiplier les appels réseau et me permet ainsi d’augmenter la fréquence de rafraichissement.
J’avais mis votre plugin de côté car sans bien maitriser l’API du RT2 cela n’est pas forcément à la portée de tous mais j’ai un peu plus de temps donc je vais quand même creuser votre documentation (merci pour les liens). L’idéal serait de pouvoir faire remonter directement dans HA les différents sensors / switchs disponibles (mes compétences en développement sont limitées mais je verrai si je peux contribuer un peu à votre projet).
En tous cas merci encore car je pense que ce plugin va aider pas mal de monde

Bonjour,

Je viens d’acquérir un EDRT2 et j’essaye de l’importer dans Home Assistant.

J’ai repris les quelques compteurs que j’ai chez moi à savoir les index Linky HP et HC et 2 tores.

Par rapport à l’exemple de base, j’ai pu changer l’unité de mesure des deux index Linky qui sont en Wh et pas en kWh.

Par contre pour changer l’unité de mesure des Tore, j’ai voulu ajouter unit_of_measurement comme pour les entrées « API » comme ceci.

      - name: Index Chauffe Eau
        type: "toroid"
        id: 1
        unit_of_measurement: "Wh"

Le problème c’est que ça me créé 4 sensors :

  • sensor.index_chauffe_eau_consumptionindex
  • sensor.index_chauffe_eau_consumptionprice
  • sensor.index_chauffe_eau_productionindex
  • sensor.index_chauffe_eau_productionprice

Mais l’unité de mesure modifiée est celle du prix.

Je pense que c’est un petit bug.

Rien de bien grave, on peut changer la valeur via customize.yaml :

sensor.index_chauffe_eau_consumptionindex:
  unit_of_measurement: Wh
sensor.index_chauffe_eau_productionindex:
  unit_of_measurement: Wh

Bonjour @otello86,

Si vous avez plus de questions sur l’usage du plugin pour le prendre en main, n’hésitez pas (bon, c’est vrai, j’ai un long délai de réponse en ce moment, désolé :wink: )

Juste pour revenir sur ce que vous évoquez sur l’usage de l’API et la possibilité de remontrer directement dans HA les différents sensors/switchs disponibles, c’est exactement ce que je voulais faire avec ce plugin.
Cependant, il ne me semblait pas forcément intéressant de remonter l’ensemble des valeurs alors que très peu sont configurées sur le RT2.

L’idée est donc que vous pouvez remonter les informations spécifiques que vous souhaitez, mais sans avoir à connaitre l’API. Le premier exemple dans la documentation montre les différentes possibilités.

Par exemple, si vous avez votre chauffe-eau contrôlé par le relai 1 de votre EcoRT2, vous pouvez regarder dans l’API quelles valeurs paramétrer, ou simplement faire :

- name: Relay 1
  type: "relay"
  id: 1
  component: "sensor"

Ou si vous avez une lumière connectée en EnOcean sur l’entrée 2 sur votre EcoRT2 :

- name: Ma lumière EnOcean
  type: "enocean"
  component: "light"
  id: 2

Ou si vous souhaitez récupérer les valeurs du Sous-Poste 2 de consommation du Poste 1 :

 - name: Sous-Poste 2 du Poste 1
   type: "post"
   id: 1
   subpost: 2

Pour information, cette dernière entrée pour le Sous-Poste va en fait créer automatiquement 5 capteurs :

  1. Index total du Sous-Poste
  2. Index journalier du Sous-Poste
  3. Le prix total actuel du Sous-Poste
  4. Le prix journalier du Sous-Poste
  5. La puissance instantanée du Sous-Poste

L’idée était ainsi de permettre de récupérer chaque élément du RT2 (Compteur, Entrée Numérique, EnOcean Sensor/Switch, Poste et Sous-Poste, Relais, Index de fournisseurs, Tores, Sorties Virtuelles, Chauffage/X4FP et Capteur XTHL) sans avoir à connaitre l’API. Mais l’usage direct de l’API est toujours possible si une chose spécifique doit être faite.

Si ce n’est pas clair, n’hésitez pas à me dire ou à décrire ce que vous souhaitez remonter de votre RT2 et on pourra essayer de regarder ensemble :slight_smile:

Bonjour @zglurb,

Merci pour ce retour !
Effectivement, sur les tores j’ai mis par défaut l’unité « kWh » car… en fait je les remonte personnellement directement à partir d’un Poste/Sous-poste qui ne propose que cette unité, merci d’avoir testé ! :wink:
J’ajoute ça sur la liste des bugs à corriger sur le github.

Pour le paramètre unit_of_measurement, je m’étais dit que l’unité que l’on pourrait vouloir changer plus facilement serait le prix, s’il est utilisé hors de la zone euro.

Cependant, maintenant que vous me le pointez, je vois aussi que pour les Postes et Sous-Poste, j’ai fixé les unités kW et kWh alors qu’ils peuvent aussi être en kVAh, m3 ou L…
Je vais voir si je peux permettre de facilement gérer cela dans la prochaine version (peut être avec un paramètre indiquant la nature de la mesure), ou au moins ajouter votre indication dans la document pour modifier les unités dans customize.yaml. Merci encore !

N’hésitez pas à me dire si vous voyez d’autres choses étranges… j’utilise le RT2 de façon assez limitée (Tores, Relais, EnOcean, X4FP) et uniquement pour de la consommation, je suis donc certainement passé à côté de nombreuses autres choses.

1 « J'aime »

Bonjour,
Je viens de commencer une intégration de Ecodevice RT2.0 v3 dans Home Assistant v2022.9.4.
J’ai fait l’installation a partir de HACS, jusque là c’est tout bon, tout me semble correctement installé. Pour information, je viens juste de me mettre a HA désolé si les questions suivantes semblent naïves :slight_smile:
Les questions que je me pose:

  • Dans quel repertoire met on le fichier contenant l’adresse IP du EcoRT2 (par ex: ecort2.yaml) ?
  • Comment faire le lien entre le configuration.yaml livré par HA et ecort2.yaml
    J’ai lu la documentation mais cela colle ne pas avec ce que j’ai en ce moment
    Usage — ecodevices_rt2 2.2.6 documentation (pcourbin.github.io)

J’ai essayé de créer un fichier ecodevices_rt2.yaml et ensuite de l’inclure mais HA détecte des erreurs comme l’api_key qui n’est pas définie. Je me dit que cela n’est pas la bonne solution.

hacs2

Merci

Bonjour @jg12345,

Merci pour ce retour et ces questions !
Pour essayer d’y répondre :

  • Le fichier contenant la desription/conf du ecoRT2 (avec son host/IP, api_key, devices, etc.) peut être placé où vous voulez, ou vous pouvez mettre directement la description dans le fichier « configuration.yaml ».
  • Si vous mettez la description/conf du ecoRT2 dans un fichier séparé, il faut effectivement « l’inclure » dans le fichier configuration.yaml. Attention cependant, il faut alors ne pas répéter « ecodevices_rt2: » au début de votre fichier.

Pour reprendre votre dernière capture d’écran :

  • Dans « configuration.yaml », avec « ecodevices_rt2.yml » dans le même dossier :
ecodevices_rt2: !include ecodevices_rt2.yaml
  • Dans « ecodevices_rt2.yml » (enlever au début « ecodevices_rt2: » qui est déjà dans configuration.yaml.) :
- name: EcoRT2
  host: "192.168.1.10"
  port: 80 
  api_key: "0000" # Bien reporter l'api_key configurée sur l'interface web du ecoRT2
  scan_interval: 15
  update_after_switch: 0.1
  devices:
    - name: Toroid 1
      type: "toroid"
      id: 2

Si ce n’est pas clair, ne pas hésiter à me dire évidemment, en espérant que vous pourrez réaliser ce que vous souhaitez avec cette intégration :slight_smile:

Bonjour @PierreC

Merci pour l’explication, j’ai réussi a faire fonctionner le graphique de consommation avec 2 entrées tores, une pour la partie EDF et un autre pour la prod solaire. J’ai essayé également d’utiliser le compteurs de télé-information pour avoir la répartition HC/HP.
J’ai modifié le fichier de config comme ci dessous:

Si j’ai bien compris la requête pour le supplierindex est la suivante.
Je me suis aperçu plus tard d’une petite coquille j’ai inversé les ids HC/HP … pas bien

IP/api/xdevices.json?key=API_KEY&Get=TI

Le résultat est chouette! j’ai pu ajouter le routeur solaire vers le chauffe-eau !


Le seul truc un peu bête que je n’ai pas trouvé, c’est d’avoir une résolution au quart d’heure pour le graphique des consommations standard. A tout hasard vous savez où cela se change ?

Ca me semble très bien même si je patauge un peu je pense que je vais arriver a faire ce que je veux :slight_smile:

Bonjour @jg12345,

Super classe !! Je n’ai pas moi-même de partie « production », je n’avais donc jamais pu tester… ça rend vraiment bien sur le suivi :slight_smile:

J’ai cherché pour changer le pas de temps… et je n’ai malheureusement pas trouvé. Si vous trouvez, ça m’intéresse aussi :wink:

N’hésitez pas s’il y a quoi que ce soit.

Bonjour @PierreC

Je continue l’intégration de EcoRT2 dans grafana. Je viens de voir des valeurs qui ne me semblent pas être aux bons endroits.
Ici c’est que je vois entre l’interface graphique et en bas le fichier json pour le post #2, il y a bien un zéro pour la consommation instantanée du lave vaisselle.

Par contre au niveau de Home assistant c’est pas la même chose

A gauche le fichier de configuration et a droite ce que je vois pour les postes. Le poste lave-vaisselle me montre une valeur instantanée alors qu’elle devrait être à zéro.
Le frigo qui consommait me montre dans HA zéro watts en instantané.

Est-ce que mes numéros d’id et de subpost sont corrects ?
Une idée d’où cela peut venir ?

Merci.

Bonjour
Est ce que cette intégration HA est compatible avec la version 3 du firmware RT2 ?
Dans les différences que j’ai noté pour jeedom entre V2 et V3, il y a des index qui change dans l’API rt2 mais aussi des nouvelles data intégrées dans les API de la v3 notament pour les torres.

Merci

EDIT : j’ai vu que oui.
Je ne trouve pas comment récupérer les infos de la teleinfo, avec les diffférentes étiquettes
Tout est dispo dan l’api du rt2

EDIT2
Pour la teleinfo j’utilise l’API. Je récupère bien mes 2 valeurs mais elles sont dans des appareils (device différent), je souhaite pouvoir mettre dans un seul device toutes mes étiquettes teleinfo.
Ce qui serait logique. Est possible ?

# GCE RT2
ecodevices_rt2:
 - name: EcoRT2
   host: "192.168.2.7"
   port: 80 # Optional, default: 80
   api_key: !secret rt2_api_key
   update_after_switch: 0.1   # Optional, default: 0 (seconds)
   scan_interval: 5
   devices:

     #### API Example
     - name: PTEC (from API)
       type: "api"
       component: "sensor"
       api_get: "Get" # Index
       api_get_value: "TI" # "All" # All
       api_get_entry: "PTEC" # "Index_TI1" # Index_TI1
       #device_class: "energy"
       #unit_of_measurement: "kWh"
       #state_class: "total_increasing"
       icon: "mdi:flash"
     - name: IINST (from API)
       type: "api"
       component: "sensor"
       api_get: "Get" # Index
       api_get_value: "TI" # "All" # All
       api_get_entry: "IINST" # "Index_TI1" # Index_TI1
       device_class: "current"
       #unit_of_measurement: "kWh"
       #state_class: "total_increasing"
       icon: "mdi:flash"

En complément de ma question précédente, est il possible en complément du name dans les devices de définir un ID ou unique_id ? Il est indiqué que Name est un Friendly name. C’est pas évident de faire le rapprochement avec un id unique qui va supprimer les espaces

Bonsoir @jg12345,

Désolé pour ce long délai de réponse, j’ai assez peu de temps en ce moment pour me pencher sur HA/RT2, mais je vais essayer d’y passer un peu plus de temps.

Concernant la question sur les numéros de Post/SousPoste, il me semble qu’il y a effectivement une erreur dans le configuration saisie.
En fait, je fais « simplement » un remplacement entre les numéros donnés dans la configuration de HA et le retour de l’API du RT2.

Pour la puissance instantanée, j’utilise donc « P%d_SSP%d » en remplaçant les « %d » par les numéros donnés dans les Poste et Sous-Poste.
Du coup, je vois sur l’image de retour de l’API que « frigo » est indiqué en face de la ligne « P2_SSP0 », il faut donc indiquer dans HA :

- name: Frigo
  type: "post"
  id: 2
  subpost: 0

Si ça ne fonctionne pas, ne pas hésiter à me dire.
Bien cordialement,

Bonsoir @loic69,

Merci pour ces retours et ces questions !

  • Effectivement, chaque élément listé dans les « devices » deviennent des appareils différents, il n’est donc pas possible de les mettre dans le même appareil. Par contre, il faudrait vraiment que je me penche sur un « supplierinfo » en plus du « supplierindex », qui renverrait les informations de teleinfo dans un même device pour la prochaine version.
    Sauriez-vous me dire les informations qui vous semblent pertinentes ? (PTEC, courant, … ?)
  • Je note pour les unique_id.
    Effectivement, j’ai laissé la fonctionnalité par défaut qui crée un unique_id à partir du nom donné (en remplaçant les espaces par des « _ »), mais je dois pouvoir modifier ça pour qu’on puisse le spécifier à la configuration du device. N’hésitez pas à le noter en issue sur GitHub comme amélioration demandée pour que je m’y penche dès que j’ai un peu plus de temps.
  • D’ailleurs, j’ai cru voir que vous avez déjà posé une issue, non ?
    Concernant l’unité… merci de l’avoir fait ! Ce n’est pas géré très proprement aujourd’hui, en particulier pour les devices qui génèrent plusieurs sensors. Par exemple, pour « counter », deux sensors sont créés (la valeur et le prix), et comme je n’utilise que des compteurs d’électricité, j’ai pensé qu’il était plus intéressant de changer l’unité du prix avec le paramètre « unit_of_measurement »… :man_facepalming:
    Ce n’était pas très intelligent… je pense ajouter des paramètres différenciés « unit_of_measurement_price » et « unit_of_measurement » qui sera effectivement utilisé pour l’unité de la mesure. Ce sera dans la prochaine version (mais je ne sais pas encore quand…)
    En attendant, un autre utilisateur m’avait proposé une solution de contournement que j’avais ensuite ajouté à la documentation ici. L’idée est de changer l’unité du capteur dans le fichier customize.yaml, en utilisant son unique_id, par exemple (basé sur ces explications) :
sensor.rt2_compteur_eau:
  unit_of_measurement: L

Si ce n’est pas clair, ne pas hésiter à me dire.
Et merci encore pour ces précisions et tests qui devraient permettre d’améliorer cette intégration à HA !

Meexi pour vce retour.
Je vous fait les differentes issue sur git

Mon pseudo est le meme

Bonjour @PierreC

J’ai réessayé hier soir en mettant tout les subpost de 1 a 8 comme indiqué dans la doc mais j’ai pas vu ma valeur du coup j’ai refait la config en mettant le subpost a zéro a la c’était bon

Extrait de doc.
subpost: OPTIONAL Number of the subpost of the post (between 1 and 8)
avec subpost a 0 ça fonctionne.

Au passage, merci pour le x’4fp je vais pas tarder a essayer.

Cordialement

Bonjour, bravo pour ce composant.
Pour le paramétrage d’un Toroid pour une production d’énergie solaire, comment procéder ?

C’est pas le plus genant pour l’instant d’avoir plusieurs appareils… Il faudrait toutes les étiquettes teleinfo dispo dans l’idéal sachant qu’il y a les étiquettes du mode historique et les étiquettes du mode standard (suivant la config du LINKY).
Voici les étiquettes du mode historique dans un 1er temps :

Alors oui je n’ai pas essayé mais ça doit fonctionner.
Mais le plus propre serait effectivement de pouvoir les paramètrer directement dans le YAML.
Il y a le problème de l’unité électrique wh et kwh suivant le paramètrage du RT2.
Et le price doit toujours rester en € effectivement.
Ensuite dans mon cas j’utilise aussi le compteur d’eau sur le RT2.
malgré avoir mis un device_class à « water » je reste sur des unité en Wh
Je n’ai pas compris à quoi servait le device-class. En tout cas il n’est pas remonté dans HA.
Aussi le paramètre ICON change l’icone du price et non des index et autres valeurs hors prix

Souhaites tu que je te fasse des issues pour ces 2 points ?

Attention pour les postes et sous postes.
Il y a plus que 2 types de valeur : index, instant et price.
l’index peut etre exprimé en wh, kwh, l ou m3,…
l’instant peut être exprimé en W, kW, l/h, l/min, m3/H, M3/min,…
le price toujours en € (enfin pour nous dans la zone euro). Si tu veux etre générique je pense qu’il faut pouvoir aussi régler l’unité, l’icone et la classe de chaque entity