Intégration Legrand Cable outlet 064882 à Zigbee2MQTT

Bonjour à toutes et à tous,

suite à mon récent passage sous HA et Zigbee2MQTT, je migre tout doucement mes équipements sous ces derniers.
Je me suis vite rendu compte que la sortie de câble Legrand with Netatmo (064879) n’était pas intégré nativement à Zigbee2MQTT. En parcourant le github, je me suis aperçu qu’il y avait des issues de créés mais rien de bien concret concernant son intégration à Zigbee2MQTT.
Je me lance donc dans sa programmation et proposerai cette intégration à l’équipe Zigbee2MQTT quand cette dernière sera opérationnelle.

ROADMAP

Terminé

  • Définition du modèle
  • Gestion du mode Contacteur ON/OFF
  • Mesure de la puissance consommée
  • Gestion du mode Fil pilote
  • Gestion des différents modes de chauffage via le fil pilote :
    • Confort
    • Confort -1
    • Confort -2
    • Eco
    • Hors gel
    • Off
4 « J'aime »

L’intégration arrive « bientôt » à sa fin.
Le plus compliqué est maintenant de faire passer les informations des différents modes de chauffage.

Je suis tomber sur le github Domoticz où, grâce au reverse engineering de Thorgal789, la gestion des différents modes de chauffage fonctionnait. Je me suis donc attardé sur le code suivant :

sqn = get_and_inc_SQN(self, nwkid)

fcf = "15"
# manufspec = "01"
manufcode = "1021"
cmd = "00"
data = "%02x" % CABLE_OUTLET_MODE[Mode]
payload = fcf + manufcode[2:4] + manufcode[0:2] + sqn + cmd + data
raw_APS_request(
    self,
    nwkid,
    EPout,
    "fc40",  // Cluster
    "0104",  // Profile ID
    payload,
    zigate_ep=ZIGATE_EP,
    ackIsDisabled=is_ack_tobe_disabled(self, nwkid),
)

Et c’est là que les choses se compliquent :

  • sqn ? SeQuence Number ??
    Je ne vois absolument pas où on peut récupérer ce genre d’info avec Zigbee2MQTT…

  • Profile ID ?
    J’aimerai bien pouvoir la renseigner mais je ne pense pas que la fonction entity.write() puisse le permettre.

Bref, si une personne a déjà été confrontée à ce genre de situation, j’aimerai grandement avoir les infos.
Sur ce, je continue mes investigations en espérant pouvoir terminer cette intégration un jour :wink:

Salut.
À tout hasard tu utilises bien cette méthode ?

Oui, j’utilise bien cette méthode.
Maintenant, comme je suis obligé de taper dans le code pour pouvoir créer les fonctions utiles à ce module, que j’utilise cette méthode ou bien ajouter le support directement au fichier Legrand.js revient à la même finalité.

1 « J'aime »

OK j’avais un doute en voyant le code justement. Merci à toi en tout cas et bon courage

Pas de soucis. Merci et en espérant pouvoir débloquer rapidement la situation et ainsi, proposer l’intégration à la communauté :wink:

Comme j’ai vu des personnes qui recherchaient une intégration de ce device sans forcément avoir besoin des modes du fil pilote, j’ai fais un pull request du device en question avec ce qu’il y a de fonctionnel.
En revanche, je suis toujours en train de bosser pour pouvoir changer ces fameux modes de fil pilote… Je ne désespère pas :wink:

moi qui a du Legrand chez moi j’attendait qu’il soit compatible, grâce toi je pourrais envisager de faire un chauffage semi intelligent pour le moment ^^
Hâte de le voire 100% fonctionnelle mais déjà avoir la conso + on off et gérer ça sur ha c’est déjà énorme ^^

( avec de la chance ta pr passera avent l’update du 01/02 )

Moi aussi j’ai pas mal d’équipements à la maison dont ces sorties de cable où je m’arrache les cheveux pour faire passer les commandes du fil pilote…

Si ma PR ne passe pas pour l’update, tu peux toujours l’ajouter manuellement avec un git clone :wink:

Des que je dit que j’attendait c’est pour les acheter , la je viens de profiter de la promo sur les inter donc je vais les prendre mais pas se mois si :smiley:

Mais en tout cas merci et bon courage pour cette ajout.

1 « J'aime »

La pull request est passée. Elle sera donc disponible dans l’update du 01/02 :wink:

Je me suis pas encore penché sur le comment on ajoute une nouveau périphérique dans Z2M, mais qu’est-ce qui bloque pour faire la suite ? C’est compliqué ?

Pour répondre à tes questions, tu peux lire ce message.

Pour faire simple, les commandes que tu envoies via l’interface Zigbee2MQTT sont transcrites d’une certaine manière à écrire les données sur le device. Dans le cas du changement de mode de chauffage, le cluster disponible pour stocker cette information est en lecture seule. Il faut donc envoyer une série de commande au device, qui se chargera lui même de le décoder et changer lui même ce fameux cluster.
J’espère que mon explication est pas trop compliqué à comprendre :smiley:

1 « J'aime »

Salut les amis,

je viens vous donner des nouvelles concernant cette intégration.
Cela fait des jours que je m’arrache les cheveux à modifier le code dans tous les sens afin de faire fonctionner ce mode Fil pilote…
Afin d’éviter que je devienne chauve, j’ai modifié un peu le code de zigbee2mqtt afin d’avoir un retour de la frame brute envoyée, dans mon terminal.
Et voici ce que j’obtiens :
Lorsque je souhaite passer le fil pilote en mode ‹ eco ›, j’ai cette frame :
14 21 10 xx 02 00 00 30 03
Or, je devrais, d’après les informations trouvées sur le github Domoticz, avoir cette frame :
15 21 10 xx 00 03

(les xx est la valeur de la sequenceNumber, gérée automatiquement par zigbee2mqtt)
Je pense que je n’ai pas besoin de vous dire qu’il y a des valeurs en trop dans la première frame qui fait que le device ne valide pas les changements de mode.
Je vais donc chercher s’il y a des paramètres à ajuster qui permettrait d’avoir cette dernière frame. Auquel cas, je vais devoir écrire une fonction spécifiquement pour ce device.
Et vu le bordel que c’est, je pense que je vais vraiment finir chauve :smiley:

Je vous tiens informé des prochaines avancées !

1 « J'aime »

Salut tout le monde,

je viens vous annoncer une bonne nouvelle.
Après pas mal de boulot et avec l’aide de Koenkk, le développeur du projet Zigbee2MQTT, on a enfin réussi à terminer l’intégration complète de cette fameuse sortie de câble sur ce PR.
Pour le moment, pour le faire fonctionner, il faudra switcher sur la branche dev du projet mais toutes les fonctionnalités seront disponibles le 1 mars sur la branche master et donc, sur la prochaine release :slight_smile:

Pour ceux qui vont intégrer ce device prochainement, si vous avez des soucis, n’hésitez pas à me contacter !

3 « J'aime »

Merci pour le travail et le partage , cela va me servir dans deux ou trois mois.

1 « J'aime »

Merci pour se jolie taf, je vais surement les les prendre dans 1 semaine ou 2 et je pourrais faire un retour :slight_smile:
Et j’espère que du coup il te reste des cheveux :smiley:

1 « J'aime »

Pas de problème, il me fallait cette intégration car je possède moi-même ces sorties de câbles donc autant en faire profiter les autres également :slight_smile:

Et oui, il me reste des cheveux, merci de t’en soucier :smiley:

@Carthage Salut, je viens d’acheter et installer les cable outlet legrand tout marche.
Juste 1 truc le sensor power n’es pas visible dans Appareils individuels pour le tableaux energie
Du coup il faut en crée un ?

Oui, j’ai remarqué ça aussi. Je n’ai pas encore eu le temps de regarder d’où pouvait venir ce problème