Hello todos,
je voulais partager avec la communauté un petit tuto et en profiter pour partager 2-3 tips pour ceux qui ont (ou qui veulent) la clé ZIGBEE Lixee ZLINKY (à brancher sur Linky pour obtenir via ZIGBEE les datas)
Ce qui suit ne concerne à date que mon usage à savoir un usage et intégration le plus simple possible, sur ZHA (pas ZigbeetoMQTT ou Z2M), avec une clé CONBEE2, et un abonnement fournisseur Elect HP/HC.
- Installation super simple, RAS.
- Mise à jour du firmware en OTA (constat qu’il était reçu en V1 alors qu’il existe la V4)
J’ai mis dans mon fichier de config
zha:
zigpy_config:
ota:
otau_directory: /config/zigpy_ota
ikea_provider: false
ledvance_provider: flase
#Pour le temps de la mise à jour
logger:
default: info
logs:
homeassistant.components.zha: debug
zigpy: debug
Créer le dossier /config/zigpy_ota
et j’y ai mis le fichier V4.ota dedans.
J’ai re démarré, attendu 10mn au moins et sans rien lancer comme ligne de commande la mise à jour s’est faite toute seule
Constat dans les logs.
J’ai viré du fichier de config
logger:
default: info
logs:
homeassistant.components.zha: debug
zigpy: debug
et re démarré.
NEXT STEP !!
Constat :
La puissance instantanée remonte bien (toutes les 7 secs je crois) et l’intensité aussi.
MAIS : Ce qui m’embêtait et perdait de l’intérêt pour moi c’était le module « Energie » .
Rien ne remonte (après paramétrage bien sur) sur la 3em entité sur Index de consommation. Effectivement je vous passe les échanges sur Github, pour arriver à confirmer avec des collègues que nous avions bien des valeurs infos HP/HC cachées dans les arcanes des clusters du bidule. (mais non remonté nativement pour le moment par l’intégration sous ZHA
Bref je vous partage pour ce faire le tips issu de la discussion ici : Intégration zha · Issue #18 · fairecasoimeme/Zlinky_TIC · GitHub)
L’astuce revient à " #skanx et je voulais vous la partager (car je la trouve simple et top), en attendant que l’intégration ZHA s’améliore nativement. : A nouveau les citations ci dessous reviennent à SKANZ (que je remercie à nouveau)
On peut utiliser le service [zha_toolkit.execute] (GitHub - mdeweerd/zha-toolkit: 🧰 Zigbee Home Assistant Toolkit - service for "rare" Zigbee operations using ZHA on Home Assistant) pour récupérer un attribut dans un cluster Zigbee, et le stocker dans un sensor.
J’ai donc défini deux sensors dans mes templates, et mis en place une automatisation qui appelle zha_toolkit.execute pour mettre à jour ces sensors toutes les minutes à partir des données présentes dans les attributs correspondants aux HC et HP du cluster ZLinkyTICMetering.
Les 2 sensors :
template:
- sensor:
- name: lixee_zlinky_tic_metering_HC
unit_of_measurement: "Wh"
device_class: energy
state_class: total_increasing
state: unavailable
- name: lixee_zlinky_tic_metering_HP
unit_of_measurement: "Wh"
device_class: energy
state_class: total_increasing
state: unavailable
L’important ici, c’est le state_class total_increasing qui va permettre de faire des statistiques, et notamment d’utiliser ces sensors dans le dashboard Energy. Le state unavailable permet d’éviter que quelque chose se serve des sensors avant que l’automatisation ait eu le temps de les initialiser.
Comme c’est un sensor sur lequel on va faire des stats, il faut aussi que la première donnée insérée dans ce sensor total_increasing soit le point de départ (le nombre de Wh affichés sur le compteur dans notre cas). Ça permet à HA de stocker des incréments horaires à partir de la somme totale des Wh (je sais pas si je suis très clair là…)
Par exemple, si on met state: 0, on se retrouve avec une conso de départ instantanée égale à l’historique du compteur, ce qui fausse un peu les données. En mettant state: unavailable, on s’assure que la première donnée insérée viendra bien du compteur lors du premier lancement de l’automatisaton.
Et l’automatisation :
alias: Read ZLinky_TIC HC + HP every minute
description: ''
trigger:
- platform: time_pattern
hours: '*'
minutes: /1
seconds: '0'
condition: []
action:
- service: zha_toolkit.execute
data:
command: attr_read
ieee: *"l'adresse de ta clé zlinky"* ((sans les guillements !!))
cluster: 1794
attribute: 256
state_id: sensor.lixee_zlinky_tic_metering_HC
allow_create: false
- service: zha_toolkit.execute
data:
command: attr_read
ieee: "*l'adresse de ta clé zlinky"* (sans les guillements !!)
cluster: 1794
attribute: 258
state_id: sensor.lixee_zlinky_tic_metering_HP
allow_create: false
mode: single
Dans data, Il faut remplacer la valeur ieee: « l’adresse de zlinky » par l’IEEE de ton Zlinky (dans Device info sur la fiche du device).
Avec state_id: sensor.x on stocke la valeur de l’attribut Zigbee dans l’état de notre sensor.
Au départ, j’avais spécifié les valeurs cluster: et attribute: en hexa, comme dans « manage clusters » mais j’ai l’impression qu’il me les reconvertit en decimal base 10 quand je sauvegarde.
Et en bonus, un template de sensor qui fait la somme HC + HP :
template:
- name: lixee_zlinky_tic_metering_HC_HP_sum
unit_of_measurement: "Wh"
device_class: energy
state_class: total_increasing
state: >-
{% if is_state('sensor.lixee_zlinky_tic_metering_HC', 'unavailable') %}
unavailable
{% elif is_state('sensor.lixee_zlinky_tic_metering_HP', 'unavailable') %}
unavailable
{% else %}
{% set HC = states('sensor.lixee_zlinky_tic_metering_HC') | int %}
{% set HP = states('sensor.lixee_zlinky_tic_metering_HP') | int %}
{{ HC + HP }}
{% endif %}
Ici, ce qui pourrait être une simple addition est en réalité un peu plus compliqué, car il faut encore gérer l’état initial des sensors. Avec ‹ unavailable ›, on s’en sort et ça fonctionne bien.
Au final, ce qui est bien avec 2 sensors séparés pour les HC et HP, c’est qu’on peut leur associer un coût différent dans le dashboard Energy.
Fin de citation de SKANZ (bravo encore !! )
Du coup le résultat après ces petites manips très simples :
Et après paramétrage de « Energie »
Au top !!!
A vous de jouer, et vraiment le ZLINKY répond parfaitement du coup à ce que j’attendais et me permet d’oublier définitivement l’intégration ENEDIS (de bonne volonté mais hasardeuse)
A toi qui veut un device Zigbee à brancher sur le LINKY et que tu utilises ZHA et une CONBEE 2, tu peux donc y aller !!