Intégration Eco Devices Home Assistant

Hello

Je me suis fait un custom component pour mon usage pour récupérer les valeurs de mon Eco-Devices, je le partage si jamais ça intéresse, il s’agit de mes débuts en python donc ce n’est clairement pas parfait, mais je suis preneur pour toute amélioration ou correction.

Le lien :

3 « J'aime »

Bonjour, votre sujet est tout à fait d’actualité pour moi et il m’intéresse énormément.
Je possède un ecodevices RT2 et j’utilise cet automate pour contrôler mes consommations EDF / Fuel / EAU mais j’utilise aussi cet automate pour commander les automatismes de ma piscine, l’arrosage du jardin …
Hélas l’ ECODEVICES RT2 n’est pas programmé pour créer des interfaces graphiques qui permettent de piloter des équipements. Je suis donc obligé de passer par la vue qui permet de forcer des sorties pour faire des commandes et avoir le retour de ce qui se passe.
J’ai posé le problème à Kevin de GCE et il m’a répondu que je devait passer par un logiciel comme Home Assistant pour faire des interfaces de conduite qui puiseront les info sur Ecodevices. Je n’ai pas plus d’explications.
Pouvez-vous m’aider pour réaliser cette fonction et en particulier pour implémenter Home assistant sur mon PC ou sur mon serveur SYNOLOGY DS213+.

Bonjour
Pour installer des logiciels tiers sur votre syno, il vaudrait mieux poster sur leur forum respectif.
Cdt

Ce que j’ai fait est dédié à l’Eco-Devices classique, pas le RT2, dont il n’y a que du relevé d’information

Bonjour @Mati24,

Merci beaucoup pour ce travail, cela m’a beaucoup inspiré pour faire une première petite version pour le EcoRT2 et me lancer sur Home Assistant aussi !

Pour l’instant on peut (en plongeant un peu dans la doc de l’API) :

  • Récupérer n’importe quelle valeur avec un « Sensor »
  • Modifier n’importe quel actionneur binaire (Relais, Sorties Virtuelles, Actionneurs EnOcean) avec un « Switch »

Il manque notamment :

  • Pouvoir modifier des valeurs autres que binaires, notamment les Compteurs et les Fils Pilotes.

À noter que pour les Fils Pilotes, on peut toujours utiliser un « Switch » si on veut « juste » faire un « ON » (par exemple Confort, avec la valeur 0) et « OFF » (Arrêt avec la valeur 3) d’après la documentation de l’API.

Si vous avez des remarques, n’hésitez surtout pas à me dire !

1 « J'aime »

Bonjour @Mati24.

Merci beaucoup pour cette intégration, je débute avec Home Assistant et pour moi mes produits GCE devaient impérativement être accessibles avec mon souhait de changer de solution domotique.

J’ai tout juste installé votre intégration IPX800v4 (je gère une lampe pour l’instant mais ça marche :slight_smile: merci) et j’ai également installé la version pour l’EcoDevice.

Sauf erreur de ma part je n’ai pas réussi à afficher mes infos hormis la puissance apparente.

Je suis en triphasé et je souhaiterai afficher la puissance instantanée par phase ainsi que l’index de consommation (ce que relève les agent EDF) et enfin l’abo souscrit.

Avez-vous une idée de comment les rajouter ?

Voici pour info une trame téléinfo triphasé (j’ai mis en gras les infos recherchées) :

<T1_ADCO>« numero_personnel »</T1_ADCO>

<T1_OPTARIF>BASE</T1_OPTARIF>

<T1_ISOUSC>25</T1_ISOUSC>

<T1_BASE>10857935</T1_BASE>

<T1_HCHC>0</T1_HCHC>

<T1_HCHP>0</T1_HCHP>

<T1_EJPHN>0</T1_EJPHN>

<T1_EJPHPM>0</T1_EJPHPM>

<T1_BBRHCJB>0</T1_BBRHCJB>

<T1_BBRHPJB>0</T1_BBRHPJB>

<T1_BBRHCJW>0</T1_BBRHCJW>

<T1_BBRHPJW>0</T1_BBRHPJW>

<T1_BBRHCJR>0</T1_BBRHCJR>

<T1_BBRHPJR>0</T1_BBRHPJR>

<T1_PEJP>0</T1_PEJP>

<T1_PTEC>TH</T1_PTEC>

<T1_DEMAIN>----</T1_DEMAIN>

<T1_IINST>14</T1_IINST>

<T1_IINST1>14</T1_IINST1>

<T1_IINST2>7</T1_IINST2>

<T1_IINST3>1</T1_IINST3>

<T1_ADPS>0</T1_ADPS>

<T1_IMAX>60</T1_IMAX>

<T1_IMAX1>60</T1_IMAX1>

<T1_IMAX2>60</T1_IMAX2>

<T1_IMAX3>60</T1_IMAX3>

<T1_PPAP>5100</T1_PPAP>

<T1_PAPP>5100</T1_PAPP>

<T1_HHPHC>A</T1_HHPHC>

<T1_MOTDETAT>000000</T1_MOTDETAT>

<T1_PPOT>00</T1_PPOT>

Merci d’avance pour votre aide.

Yoann

Bonjour à vous.

Je me réponds partiellement à moi même.

A priori le code de Mati24 utilise une requête JSON et malheureusement je ne vois pas d’info sur la conso en Ampère par phase (ou même au total d’ailleurs).
Ma requête http://192.168.xx.yy/api/xdevices.json donne :
{« product »:« Eco-devices »,« T1_PTEC »:« TH… »,« T1_PAPP »:7020,« T1_BASE »:11242496,« T2_PTEC »:"----",« T2_PAPP »:0,« T2_BASE »:0,« INDEX_C1 »:0,« INDEX_C2 »:0}

Donc j’ai changé le code et maintenant je peux afficher l’index_base mais rien sur les IINST 1 à 3.

J’ai bien peur qu’il faille passer par la requête XML…

A suivre.

Yoann

Bon je n’ai pas réussi à lire le fichier xml avec python, je ne connais pas assez.

Donc j’ai fait ça sous configuration.yaml (changer l’IP suivant votre config) :

sensor:
- platform: scrape
resource: http://192.168.0.35/protect/settings/teleinfo1.xml
select: « T1_BASE »
unit_of_measurement: « Units »
name: T1_Index_Base
scan_interval: 600 # en secondes
- platform: scrape
resource: http://192.168.0.35/protect/settings/teleinfo1.xml
select: « T1_IINST1 »
unit_of_measurement: « A »
name: T1_IInst1
scan_interval: 60 # en secondes
- platform: scrape
resource: http://192.168.0.35/protect/settings/teleinfo1.xml
select: « T1_IINST2 »
unit_of_measurement: « A »
name: T1_IInst2
scan_interval: 60 # en secondes
- platform: scrape
resource: http://192.168.0.35/protect/settings/teleinfo1.xml
select: « T1_IINST3 »
unit_of_measurement: « A »
name: T1_IInst3
scan_interval: 60 # en secondes
- platform: scrape
resource: http://192.168.0.35/protect/settings/teleinfo1.xml
select: « T1_PPAP »
unit_of_measurement: « VA »
name: T1_App
scan_interval: 60 # en secondes

salut, je vais regarder ça pour intégrer ces valeurs dans l’intégration, je devrais pouvoir le faire ce week-end

Bonsoir Mati24.

Merci pour votre réponse.
Vous changeriez votre code pour lire le xml au lieu de json ?
Car d’après mes recherches, il n’y a pas toutes les info dans le json, ou bien je me trompe…

Je support json sur ecodevice semble que partiel, perso je n’arrive pas à avoir toutes les infos avec une simple requête.

Merci.

Yoann

Pour info une nouvelle version qui intègre la configuration depuis l’interface web d’Home-Assistant, ainsi que la gestion de l’authentification est disponible : GitHub - Aohzan/ecodevices: Home Assistant custom component for GCE Eco-Devices

En parallèle, l’intégration au core de Home Assistant est en cours pour ne plus avoir à gérer de custom component :+1:

1 « J'aime »

En effet plus d’informations, voici les clés que je récupère dans le XML, j’aurais besoin d’un peu d’aide pour identifier à quoi correspond certaines (T1_IMAX1,2,3 ainsi que les meter), et si toutes sont importantes :

T1_PPAP => Conso instantanée Teleinfo 1 (ancien nom?)
T2_PPAP => Conso instantanée Teleinfo 2 (ancien nom?)
T1_PAPP => Conso instantanée Teleinfo 1
T2_PAPP => Conso instantanée Teleinfo 2 (ancien nom?)

T1_PTEC => Type d'heure Teleinfo 1 (TH, HC, HP, HN...)
T2_PTEC => Type d'heure Teleinfo 2 (TH, HC, HP, HN...)
T1_ISOUSC => Intensité souscrite Teleinfo 1
T2_ISOUSC => Intensité souscrite Teleinfo 2

T1_IMAX => Intensité maximale Teleinfo 1
T1_IMAX1 => Intensité maximale ?
T1_IMAX2  => Intensité maximale ?
T1_IMAX3 => Intensité maximale ?


T2_IMAX => Intensité maximale Teleinfo 2
T2_IMAX1
T2_IMAX2
T2_IMAX3

meter0
meter1
meter2
meter3

count0 => Valeur compteur 1 total
count1 => Valeur compteur 2 total

c0day => Valeur compteur 1 jour
c1day => Valeur compteur 1 total

c0_fuel => Si compteur 1 en type fuel ?
c1_fuel => Si compteur 2 en type fuel ?

Bonjour Mati24.

Je peux répondre pour certains paramètres:.

T1_IMAX1 c’est l’intensité max sur la phase1
T1_IMAX2 c’est l’intensité max sur la phase2
T1_IMAX3 c’est l’intensité max sur la phase3

Dans le cas d’une installation en triphasé c’est très utile d’avoir l’intensité utilisée par phase.

Idem pour T2.

Pour les autres je n’en sais pas plus que vous désolé.

Bon courage.

Yoann

J’ai mis à jour l’intégration, avec la remontée de plus d’informations pour les teleinfo, et la configuration se fait désormais entièrement via l’interface

Super boulot Mati24, je viens de mettre a jour le fichier, c’est vrai que l’intégration est beaucoup plus simple :slight_smile: .
Petite question, peux t’ont exploiter les attributs qui apparaissent en deroulant le teleinfo1?
Car l’idéale serait d’avoir HP, HC, pour pouvoir creer des cartes, un peu comme dans cette video: https://youtu.be/k5z-xqorWUY?t=588

Beau boulot en tout cas …

Tu peux choisir l’attribut voulu sur le sensor directement via les trigger numeric_state par exemple, ou via certaines cartes
Sinon tu peux créer un sensor dédié, par exemple :

sensors:
  - platform: template
    sensors:
      compteur_linky_base:
        friendly_name: Compteur Linky Base
        value_template: "{{ state_attr('sensor.compteur_linky','index_base') }}"
        unit_of_measurement: "Wh"
        device_class: power

Pour information, l’intégration est disponible dans HACS, pour faciliter l’installation et mise à jour