homeassistant-zigate icon indicating copy to clipboard operation
homeassistant-zigate copied to clipboard

Interrupteur sans fil Legrand variateur

Open maximushugus opened this issue 4 years ago • 34 comments

Bonjour, Je demande à nouveau de l'aide concernant des appareils Legrand with Netatmo Je possède des interrupteurs sans fil ainsi que des interrupteurs filaires (j'ai réussi à faire fonctionner ces derniers complètement).

J'arrive à associer mes interrupteurs sans fil Legrand with Netatmo avec ma (Pi)Zigate. J'ai donc un "binary-sensor" qui prend les valeurs On/Off lorsque j'active ou que je désactive cet interrupteur sans fil.

Néanmoins ce qui ne fonctionne pas :

  1. Impossible d'avoir un retour sur les appuis long (vers le haut ou le bas) de cet interrupteur sans fil, qui permettent de gérer l'intensité de la luminosité des lumières commandées. En recroisant les infos sur :
  • https://github.com/doudz/homeassistant-zigate/issues/50
  • https://github.com/fairecasoimeme/ZiGate/issues/196 ces infos (pour les appuis longs) sont portées par le message 0x8085 (alors qur c'est 0x8095 pour le On/Off). Néanmoins @doudz semblait dire que ces 2 types de message sont gérés par son plugin comme des messages 0x8102. Y a-t-il un moyen de récupérer ces informations ?
  1. Le plus embêtant : impossible d'associer un (ou plusieurs) interrupteurs sans fil avec un interrupteur filaire. Je ne peux pas contrôler directement mes inter filaires avec mes sans fils comme c'est le cas avec la passerelle "de base" de Legrand. Je suis obligé d'utiliser une automatisation, en passant donc par la zigate, ce qui n'est semble-t-il pas le cas avec la passerelle de base. Si j'arrivais à faire cette association, le problème 1) n'en serait probablement plus un (contrôle directement de l'intensité entre les 2 interrupteurs sans avoir besoin de récupérer l'info de cette communication sur la zigate, qui aura un retour de l'interrupteur filaire in fine).

J'ai essayé la méthode d'association utilisée avec la passerelle Legrand, à savoir lors de l'association, en mettant la zigate en mode "permit_join", mes inter filaire déja associés allument leur LED en vert (comme c'est le cas avec la passerelle Legrand), puis je tapote trois fois l'inter sans fil sur le filaire en maintenant le bouton off du sans fil : la LED de l'inter filaire clignote mais pas celle du sans fil. L'association entre les 2 ne se fait pas. En revanche l'inter sans fil est bien ajouté à la zigate.

J'ai également essayé de mettre les 2 inter dans un même groupe zigbee, mais sans effet.

Est ce que quelqu'un à une idée ? @pipiche38

Merci pour l'aide.

maximushugus avatar Dec 10 '19 20:12 maximushugus

d’autant que coté Domoticz, on gère cela directement depuis l’application donc pas très utile.

Depuis l'application ? Quelle application ?

A priori il faut passer par des commandes sur le cluster propriétaire

Comment est ce que je pourrais essayer de trouver ces commandes pour faire avancer cette histoire ?

maximushugus avatar Dec 10 '19 22:12 maximushugus

Depuis l'application ? Quelle application ?

je pense qu'il parle de Domoticz

doudz avatar Dec 11 '19 07:12 doudz

  • ces infos (pour les appuis longs) sont portées par le message 0x8085 (alors qur c'est 0x8095 pour le On/Off). Néanmoins @doudz semblait dire que ces 2 types de message sont gérés par son plugin comme des messages 0x8102. Y a-t-il un moyen de récupérer ces informations ?

Dans un premier temps, il faudrait se mettre en debug et vérifier si les messages 0x8085 et 0x8095 remonte bien

doudz avatar Dec 11 '19 07:12 doudz

Dans un premier temps, il faudrait se mettre en debug et vérifier si les messages 0x8085 et 0x8095 remonte bien

Ok merci j'essaierai quand j'aurai quelques minutes devant moi de regarder ce qu'il se passe en mode debug

n'hésites pas à compléter si il y a lieu

Je n'y manquerai pas

maximushugus avatar Dec 11 '19 20:12 maximushugus

J'ai essayé de regarder mes log en mode débug : c'est assez galère pour trouver ce que je cherche. Par exemple une partie du débug lorsque j'ai fait un appui long sur "on" (mon interrupteur sans fil a 7da3 comme addr) :

2019-12-12 21:46:28 DEBUG (ZiGate-Listen) [zigate] Raw packet received, b'\x01\x02\x10M\x02\x10\x02\x1c\xf2}\xa3\x02\x10\x02\x14t\x02\x10\x02\x10y\xa53\x80r\x03\x01\x87\x02\x11\x02\x10\x02\x13\x85\x02\x10\x02\x10\x02\x10\x03' 2019-12-12 21:46:28 DEBUG (ZiGate-Event Loop) [zigate] Dispatch ZIGATE_PACKET_RECEIVED 2019-12-12 21:46:28 DEBUG (ZiGate-Decode data) [zigate] Received response 0x004d: b'7da3000474000079a53380' 2019-12-12 21:46:28 DEBUG (ZiGate-Event Loop) [zigate] Dispatch ZIGATE_PACKET_RECEIVED 2019-12-12 21:46:28 DEBUG (ZiGate-Decode data) [zigate] RESPONSE 0x004D - Device announce : addr:7da3, ieee:000474000079a533, mac_capability:10000000, lqi:114 2019-12-12 21:46:28 DEBUG (ZiGate-Decode data) [zigate] Received response 0x8701: b'0000' 2019-12-12 21:46:28 DEBUG (ZiGate-Decode data) [zigate] Device Announce RESPONSE 0x004D - Device announce : addr:7da3, ieee:000474000079a533, mac_capability:10000000, lqi:114 2019-12-12 21:46:28 DEBUG (ZiGate-Decode data) [zigate] RESPONSE 0x8701 - Route Discovery Confirmation : status:0, network_status:0, lqi:0 2019-12-12 21:46:28 DEBUG (ZiGate-Decode data) [zigate] Acquire Lock on device Legrand Remote switch (7da3) 000474000079a533 2019-12-12 21:46:28 DEBUG (ZiGate-Decode data) [zigate] Dispatch ZIGATE_RESPONSE_RECEIVED 2019-12-12 21:46:28 DEBUG (ZiGate-Decode data) [zigate] Release Lock on device Legrand Remote switch (7da3) 000474000079a533 2019-12-12 21:46:28 DEBUG (ZiGate-Decode data) [zigate] Dispatch ZIGATE_DEVICE_UPDATED 2019-12-12 21:46:28 DEBUG (ZiGate-Decode data) [custom_components.zigate] Update device Legrand Remote switch (7da3) 000474000079a533 2019-12-12 21:46:28 DEBUG (ZiGate-Decode data) [zigate] Dispatch ZIGATE_RESPONSE_RECEIVED

maximushugus avatar Dec 12 '19 20:12 maximushugus

Voici un log du debug lors d'un appui long sur "on" : `2019-12-13 22:28:16 DEBUG (ZiGate-Listen) [zigate] Raw packet received, b'\x01\x02\x10M\x02\x10\x02\x1c\xec}\xa3\x02\x10\x02\x14t\x02\x10\x02\x10y\xa53\x80l\x03\x01\x87\x02\x11\x02\x10\x02\x13\x85\x02\x10\x02\x10\x02\x10\x03'

2019-12-13 22:28:16 DEBUG (ZiGate-Event Loop) [zigate] Dispatch ZIGATE_PACKET_RECEIVED

2019-12-13 22:28:16 DEBUG (ZiGate-Decode data) [zigate] Received response 0x004d: b'7da3000474000079a53380'

2019-12-13 22:28:16 DEBUG (ZiGate-Event Loop) [zigate] Dispatch ZIGATE_PACKET_RECEIVED

2019-12-13 22:28:16 DEBUG (ZiGate-Decode data) [zigate] RESPONSE 0x004D - Device announce : addr:7da3, ieee:000474000079a533, mac_capability:10000000, lqi:108

2019-12-13 22:28:16 DEBUG (ZiGate-Decode data) [zigate] Received response 0x8701: b'0000'

2019-12-13 22:28:16 DEBUG (ZiGate-Decode data) [zigate] Device Announce RESPONSE 0x004D - Device announce : addr:7da3, ieee:000474000079a533, mac_capability:10000000, lqi:108

2019-12-13 22:28:16 DEBUG (ZiGate-Decode data) [zigate] RESPONSE 0x8701 - Route Discovery Confirmation : status:0, network_status:0, lqi:0

2019-12-13 22:28:16 DEBUG (ZiGate-Decode data) [zigate] Acquire Lock on device Legrand Remote switch (7da3) 000474000079a533

2019-12-13 22:28:16 DEBUG (ZiGate-Decode data) [zigate] Dispatch ZIGATE_RESPONSE_RECEIVED

2019-12-13 22:28:16 DEBUG (ZiGate-Decode data) [zigate] Release Lock on device Legrand Remote switch (7da3) 000474000079a533

2019-12-13 22:28:16 DEBUG (ZiGate-Decode data) [zigate] Dispatch ZIGATE_DEVICE_UPDATED

2019-12-13 22:28:16 DEBUG (ZiGate-Decode data) [custom_components.zigate] Update device Legrand Remote switch (7da3) 000474000079a533

2019-12-13 22:28:16 DEBUG (ZiGate-Decode data) [zigate] Dispatch ZIGATE_RESPONSE_RECEIVED`

maximushugus avatar Dec 13 '19 21:12 maximushugus

Et un autre pour l'appui long sur "off" : `2019-12-13 22:29:49 DEBUG (ZiGate-Listen) [zigate] Raw packet received, b'\x01\x02\x10M\x02\x10\x02\x1c\xf2}\xa3\x02\x10\x02\x14t\x02\x10\x02\x10y\xa53\x80r\x03\x01\x87\x02\x11\x02\x10\x02\x13\x85\x02\x10\x02\x10\x02\x10\x03'

2019-12-13 22:29:49 DEBUG (ZiGate-Event Loop) [zigate] Dispatch ZIGATE_PACKET_RECEIVED

2019-12-13 22:29:49 DEBUG (ZiGate-Decode data) [zigate] Received response 0x004d: b'7da3000474000079a53380'

2019-12-13 22:29:49 DEBUG (ZiGate-Decode data) [zigate] RESPONSE 0x004D - Device announce : addr:7da3, ieee:000474000079a533, mac_capability:10000000, lqi:114

2019-12-13 22:29:49 DEBUG (ZiGate-Decode data) [zigate] Device Announce RESPONSE 0x004D - Device announce : addr:7da3, ieee:000474000079a533, mac_capability:10000000, lqi:114

2019-12-13 22:29:49 DEBUG (ZiGate-Decode data) [zigate] Acquire Lock on device Legrand Remote switch (7da3) 000474000079a533

2019-12-13 22:29:49 DEBUG (ZiGate-Decode data) [zigate] Release Lock on device Legrand Remote switch (7da3) 000474000079a533

2019-12-13 22:29:49 DEBUG (ZiGate-Event Loop) [zigate] Dispatch ZIGATE_PACKET_RECEIVED

2019-12-13 22:29:49 DEBUG (ZiGate-Decode data) [zigate] Dispatch ZIGATE_DEVICE_UPDATED

2019-12-13 22:29:49 DEBUG (ZiGate-Decode data) [zigate] Received response 0x8701: b'0000'

2019-12-13 22:29:49 DEBUG (ZiGate-Decode data) [custom_components.zigate] Update device Legrand Remote switch (7da3) 000474000079a533

2019-12-13 22:29:49 DEBUG (ZiGate-Decode data) [zigate] RESPONSE 0x8701 - Route Discovery Confirmation : status:0, network_status:0, lqi:0

2019-12-13 22:29:49 DEBUG (ZiGate-Decode data) [zigate] Dispatch ZIGATE_RESPONSE_RECEIVED

2019-12-13 22:29:49 DEBUG (ZiGate-Decode data) [zigate] Dispatch ZIGATE_RESPONSE_RECEIVED`

maximushugus avatar Dec 13 '19 21:12 maximushugus

D'autres infos en vrac qui pourraient orienter :

  1. Avec mon interrupteur sans fil j'ai 2 "binary sensor" qui ont été créés automatiquement par le plugin : un nommé "présent value" et qui prend les valeurs on/off de l'interrupteur sans fil, avec ces attribut : addr: 7da3 ieee: 000474000079a533 endpoint: 1 cluster: 15 attribute: 85 friendly_name: present_value Legrand Remote switch (7da3) 000474000079a533 L'autre nommé "out_of_service" qui n'a effectivement pas l'air de fonctionner, et qui a les attributs suivants : addr: 7da3 ieee: 000474000079a533 endpoint: 1 cluster: 15 attribute: 81 friendly_name: out_of_service Legrand Remote switch (7da3) 000474000079a533

  2. Lorsque j'écoute l’événement "zigate.attribute_updated", j'arrive bien à recevoir l'événement correspondant à l'appui sur le bouton ON et l'autre correspondant à l'appui sur le bouton OFF de l'interrupteur sans fil (j'utilise d’ailleurs ces événements plutôt que la valeur du binary sensor pour contrôler d'autres interrupteurs, car le binary sensor n'est pas toujours synchronisé avec la lumière si on l'a activée d'une autre manière qu'avec l'interrupteur sans fil). En revanche je ne reçoit aucun événement lors des appuis longs sur l'interrupteur sans fil.

  3. Sur cette page, de documentation pour Domoticz : https://github.com/pipiche38/Domoticz-Zigate-Wiki/blob/master/en-eng/Legrand-Netatmo-corner.md dans la catégorie "Wireless devicess" je vois

Requires bindings of 0x0001, 0x000f and 0x0003 (in that order)

Use the Present Value ( cluster 0x000f / 0x0055 ) to get On/Off or Shutter Up and Down

While with the Legrand HUB, there is no binding of cluster 0x0006 and 0x0008 for the remote switch, in order to get the Level Control when you do long press/long release, there is a need to bind Cluster 0x0006 and 0x0008

  1. De mon coté je n'ai pas l'impression d'être "abonné" à ces clusters en question. Par exemple la partie correspondant à mon interrupteur sans fil dans le fichier "zigate.json" :
"addr": "7da3",
            "discovery": "auto-discovered",
            "endpoints": [
                {
                    "clusters": [
                        {
                            "attributes": [
                                {
                                    "attribute": 4,
                                    "data": " Legrand\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000",
                                    "name": "manufacturer",
                                    "value": "Legrand"
                                },
                                {
                                    "attribute": 5,
                                    "data": " Remote switch\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000",
                                    "name": "type",
                                    "type": "str",
                                    "value": "Remote switch"
                                },
                                {
                                    "attribute": 65533
                                },
                                {
                                    "attribute": 0,
                                    "name": "zcl_version",
                                    "value": null
                                },
                                {
                                    "attribute": 1,
                                    "name": "application_version",
                                    "value": null
                                },
                                {
                                    "attribute": 2,
                                    "name": "stack_version",
                                    "value": null
                                },
                                {
                                    "attribute": 6,
                                    "name": "datecode",
                                    "value": null
                                },
                                {
                                    "attribute": 3,
                                    "name": "hardware_version",
                                    "value": null
                                },
                                {
                                    "attribute": 61440
                                },
                                {
                                    "attribute": 7,
                                    "name": "power_source",
                                    "value": null
                                },
                                {
                                    "attribute": 9
                                },
                                {
                                    "attribute": 11
                                },
                                {
                                    "attribute": 16384
                                },
                                {
                                    "attribute": 10
                                },
                                {
                                    "attribute": 8
                                }
                            ],
                            "cluster": 0
                        },
                        {
                            "attributes": [
                                {
                                    "attribute": 85,
                                    "data": false,
                                    "name": "present_value",
                                    "type": "bool",
                                    "value": false
                                },
                                {
                                    "attribute": 81,
                                    "name": "out_of_service",
                                    "type": "bool",
                                    "value": false
                                },
                                {
                                    "attribute": 111,
                                    "name": "status_flags",
                                    "value": null
                                },
                                {
                                    "attribute": 65533
                                }
                            ],
                            "cluster": 15
                        },
                        {
                            "attributes": [
                                {
                                    "attribute": 32,
                                    "name": "battery_voltage",
                                    "type": "float",
                                    "value": 0.0
                                },
                                {
                                    "attribute": 65533
                                }
                            ],
                            "cluster": 1
                        },
                        {
                            "attributes": [
                                {
                                    "attribute": 65533
                                },
                                {
                                    "attribute": 0
                                }
                            ],
                            "cluster": 3
                        }
                    ],
                    "device": 260,
                    "endpoint": 1,
                    "in_clusters": [
                        0,
                        3,
                        15,
                        32,
                        1,
                        64513
                    ],
                    "out_clusters": [
                        3,
                        6,
                        8,
                        0,
                        64513,
                        25
                    ],
                    "profile": 260
                }
            ],
            "generictype": "",
            "info": {
                "addr": "7da3",
                "id": 9,
                "ieee": "000474000079a533",
                "last_seen": "2019-12-15 13:17:08",
                "lqi": 99,
                "mac_capability": "10000000",
                "power_type": 0
            }

PS : si nécessaire je peux joindre le fichier pour plus de lisibilité

Je ne sais pas si on peut les ajouter ?

J'espère qu'en essayant de recouper des infos on arrivera à quelque chose.

maximushugus avatar Dec 15 '19 13:12 maximushugus

Les bind sont fait automatiquement mais effectivement d'après la doc de @pipiche38 il semblerait qu'il faille faire un bind sur les clusters 0x0006 et 0x0008 mais ce qui me surprends c'est que ces clusters ne sont pas la liste in_clusters donc normalement on ne peut pas faire de bind dessus (et c'est justement par ce qu'il ne sont pas dans la liste que le bind n'est pas fait automatiquement) S'il faut vraiment le faire, il faudrait envoyer la commande manuellement via le service raw_command En supposant que l'IEEE de l'équipement est 0123456789abcdef Pour le cluster 0x0006 cmd: '0x0030' data: '0123456789abcdef01000602000001' Pour le cluster 0x0008 cmd: '0x0030' data: '0123456789abcdef01000802000001'

doudz avatar Dec 16 '19 10:12 doudz

En fait j'ai peut-être compris à l'envers, étant donné que la télécommande pilote les clusters 0x0006 et 0x0008 des équipements (visible via out_clusters) il faut peut-être faire un bind du cluster 0x0006 de la zigate vers la télécommande (et non l'inverse comme pour avoir l'état d'une ampoule) l'idée étant de faire croire à la télécommande qu'elle peut piloter la zigate

Si c'est le cas, il faudrait faire IEEE de la zigate : 0123456789abcdef addr de la télécommande : abcd

Pour le cluster 0x0006 cmd: '0x0030' data: '0123456789abcdef01000602abcd01' Pour le cluster 0x0008 cmd: '0x0030' data: '0123456789abcdef01000802abcd01'

doudz avatar Dec 16 '19 10:12 doudz

Je viens d'essayer les 2 méthodes ci dessus, cela ne semble pas fonctionner. Par exemple avec la 1ère méthode, le fichier zigate.json ne semble pas modifié, je n'ai pas de cluster 6 ou 8 ajouté dans la partie concernant mon interrupteur sans fil (hormis dans la partie out_cluster comme au départ). Est ce que les commande pour zigate.raw_command fonctionnent ?

J'ai même essayé la 2ème méthode en replaçant l'ieee de la zigate par celui de l'interrupteur filaire que je veux contrôler, sans succès.

J'ai également essayé les commandes en maintenant "réveillé" l'interrupteur sans fil (comme il est sur batterie il se mets en veille entre 2 appuis)

D'autres idées ? Peut être que @pipiche38 saurait comment (dans quel sens) on doit faire le bind des cluster ? Est ce que ce sont les seuls cluster à ajouter pour gérer le Level Control ? Merci pour l'aide en tout cas

maximushugus avatar Dec 16 '19 21:12 maximushugus

Je ne sais pas si la page sur le site de la zigate concernant les interrupteurs sans fils Legrand peut aider pour quelques informations : https://zigate.fr/produits-legrand-compatibles-zigate/compatible/commandesansfilpourclairagepriseconnecteoumicromoduleclianenetatmo/

On y voit notamment qu'effectivement, dans les output cluster : Cluster 2: Cluster ID: 0x0008 (General: Level Control)

maximushugus avatar Dec 18 '19 22:12 maximushugus

@doudz j'ai l'impression que les commandes zigate.raw_command ne fonctionnent pas. Les clusters ne semblent pas ajoutés. En tout cas ils ne sont pas ajoutés dans la panneau "Zigate Admin". Y a-t-il un problème de typo avec les commandes ?

En tout cas voici comme exemple des clusters in présent sur l'interrupteur filaire, juste pour montrer à quoi ça devrait ressembler. image

maximushugus avatar Dec 21 '19 11:12 maximushugus

Je pense que tu fais une petite erreur de compréhension. On ne peut pas modifier le contenu des in_clusters et out_clusters, c'est l'équipement qui les donne. In_clusters est la liste des clusters de l'équipement par exemple s'il y a le cluster 0x0006 c'est que l'équipement possède l'attribut on/off et qu'on peut utiliser les commandes on/off sur l'équipement. Out_clusters est la liste des clusters que l'équipement est capable de contrôler. Par exemple s'il y a le cluster 0x0006 c'est que l'équipement sera capable de contrôler un autre équipement possédant le cluster 0x0006 dans sa liste in_clusters

doudz avatar Dec 21 '19 13:12 doudz

Out_clusters est la liste des clusters que l'équipement est capable de contrôler. Par exemple s'il y a le cluster 0x0006 c'est que l'équipement sera capable de contrôler un autre équipement possédant le cluster 0x0006 dans sa liste in_clusters

Ok c'est bien ce qu'il me semblait. Mais du coup mon interrupteur sans fil a le cluster 0x0008 en out_cluster et mon inter filaire ce même cluster en cluster_in. J'ai essayé la 2ème commande que tu m'avais donnée quelques messages au dessus en remplaçant l'ieee de la zigate par celui de l'interrupteur filaire, mais sans effet.

De même avec cette commande en mettant l'ieee de la zigate je n'arrive pas à faire remonter/récupérer la commande : lorsque par exemple j'écoute l'évennement "zigate.attribute_updated" je récupère bien des infos lors de l'appui simple sur l'interrupteur sans fil mais pas lors de l'appui prolongé...

Autre petite question : comment est ce que je peux faire un zigate.discover_device ? En effet lorsque j'appelle ce service en spécifiant mon inter sans fil, il ne se passe rien. J'imagine qu'il faut que cet interrupteur sur pile soit allumé, mais je n'arrive pas à faire le discover même en restant appuyé sur l'inter pour le laisser allumé. Je veux faire un discover car j'ai l'impression qu'avec la dernière mise à jour du plugin j'ai perdu des infos sur l'inter sans fil : dans le fichier zigate.json de même que dans le panel ziagate admin, l'inter sans fil n'a plus que le cluster 0x000f. Avant j'avais bien les cluster_out qui s'affichaient image

maximushugus avatar Dec 21 '19 14:12 maximushugus

Faire un discovery sur un appareil sur pile n'est pas toujours simple car il faut réveiller l'appareil en l'actionnant une ou plusieurs fois par exemple. Souvent le plus simple est de refaire l'appairage, le discovery est lancé automatiquement à cet instant

doudz avatar Dec 21 '19 14:12 doudz

Effectivement en refaisant l'appairage, j'ai récupéré les mêmes infos qu'initialement : image

En revanche, toujours impossible de récupérer les infos de ce fameux cluster 8 qui contient les informations du contrôle de l'intensité

maximushugus avatar Dec 21 '19 15:12 maximushugus

L'interrupteur n'a pas le cluster 8 par contre il est capable de piloter un appareil qui a le cluster 8 et c'est cette information de pilotage qui peut être capturé par la Zigate au moment où l'info est transmise.

doudz avatar Dec 21 '19 15:12 doudz

Oui oui, mais je n'arrive pas à faire contrôler un cluster 8 par cet interrupteur, même en l'assignant sur celui de l'interrupteur filaire ... Je ne vois pas comment faire en tout cas. Merci pour le coup de main :)

maximushugus avatar Dec 21 '19 15:12 maximushugus

j'ai pu discuter avec un membre du forum de domoticz, et il semble que les interrupteurs sans fil de Legrand fonctionnent comme la télécommande ikéa TRADFRI.

Est ce que quelqu'un a réussi à faire fonctionner les appuis long/relâcher sur cette télécommande ikéa ? Il semblerait qu'il y avait quelques problème avec cette télécommande également : https://github.com/doudz/homeassistant-zigate/issues/36

maximushugus avatar Dec 29 '19 17:12 maximushugus

De mon coté on est arrivé a faire fonctionner cet interrupteur sur deconz, avec les infos de @pipiche38, a part que comme il le signale, je ne me sert pas du cluster 000f. J'ai essayé, j y suis pas arrivé, du coup je l'ai exclu en voulant alléger les requetes , ca tourne, et j'ai laissé comme ca. On ne se sert que des clusters 0008 et 0006.

Je ne regarde pas si les pressions sont courtes ou longues, je fais par rapport au message de groupes on/off > pression courtes, move level > pression longues.

Je ne sais pas du tout comment la zigate (ou le code de l'appli) gere les appareils communiquant en groupe, mais il suffit de comparer avec la télécommandes ronde d'ikea a 5 boutons.

Si pour cette telecommande la zigate fonctionne avec les commandes de groupe, c'est les memes cluster 0006 et 0008, et elle fonctionne exactement pareil, tout les clusters sont en output. Donc pour ce qui est des "binds" et "reports attributes", c'est exactement pareil.

static const Sensor::ButtonMap legrandSwitchRemote[] = {
    //    mode                          ep    cluster cmd   param button                                       name
    { Sensor::ModeScenes,           0x01, 0x0006, 0x01, 0,    S_BUTTON_1 + S_BUTTON_ACTION_SHORT_RELEASED, "On" },
    { Sensor::ModeScenes,           0x01, 0x0006, 0x00, 0,    S_BUTTON_2 + S_BUTTON_ACTION_SHORT_RELEASED, "Off" },
    { Sensor::ModeScenes,           0x01, 0x0008, 0x01, 0,    S_BUTTON_1 + S_BUTTON_ACTION_HOLD,           "Dimm up" },
    { Sensor::ModeScenes,           0x01, 0x0008, 0x03, 0,    S_BUTTON_1 + S_BUTTON_ACTION_LONG_RELEASED,  "Dimm up stop" },
    { Sensor::ModeScenes,           0x01, 0x0008, 0x01, 1,    S_BUTTON_2 + S_BUTTON_ACTION_HOLD,           "Dimm down" },
{ Sensor::ModeScenes, 0x01, 0x0008, 0x03, 1, S_BUTTON_2 + S_BUTTON_ACTION_LONG_RELEASED, "Dimm down stop" },

Si par contre la zigate fonctionne avec des lecture d'etat des boutons, la par contre je n'y suis jamais arrivé non plus.

PS: quand je parle de commande de groupe, je parle du fait que la telecommande fonctionne en groupe, pas des commandes groupes zigbee.

Smanar avatar Dec 30 '19 16:12 Smanar

Ok merci pour ces infos @doudz est il possible de récupérer ces fameux messages de groupe ? Parce que je n'ai que on/off sur le "présent value" qui est cree avec l'ajout de l'interrupteur sans fil sur la zigate. Je n'ai aucun retour des cluster 6 et 8

Ou peut être est ce lié à une scène ?

maximushugus avatar Dec 30 '19 16:12 maximushugus

@maximushugus Tu as essayé en copiant le code utilisé pour la télécommande ikea 5 boutons ? je ne sais pas si c'est géré dans le plugin ou dans la lib (je ne pense pas la zigate), mais je suis quasiment sur que c'est le meme fonctionnement utilisé par elle.

Tu devrais retrouver au moins les memes "binds".

Smanar avatar Dec 30 '19 20:12 Smanar

Oui le présent value correspond bien à l'attribut 0x000f (le 15) (réponse au message édité)

@maximushugus Tu as essayé en copiant le code utilisé pour la télécommande ikea 5 boutons ?

Je ne sais pas où trouver ce code Les entités sont générées automatiquement par le plugin

Concernant les clusters j'ai bien les mêmes (cf la capture d'écran quelques messages au dessus) mais je n'ai visiblement pas de bind de la zigate sur les cluster qui nous intéressent, à savoir les 6 et 8

maximushugus avatar Dec 30 '19 20:12 maximushugus

Oui, désolé je suis a maniaque de l'edition ^^, et pourtant c'est pas pour corriger les fautes de frappes.

Il n' y a peu etre pas de code specifique pour la telecommande, le code est surement générique pour s'adapter au maximum de situation. Mais pour info @pipiche38 fait aussi exactement pareil avec son plugin domoticz, un simple bind.

Tu as essaye en utilisant ZGWUI de refaire les 2 binds ? Puis de voir si les messages 0x8085 et 0x8095 remontent ? Zigate en destination appareil en origine Cet utilitaire est pas mal, et de memoire tu as meme un retour pour savoir si la commande a marché ou pas

Smanar avatar Dec 30 '19 20:12 Smanar

Oui, désolé je suis a maniaque de l'edition ^^, et pourtant c'est pas pour corriger les fautes de frappes.

Il n' y a peu etre pas de code specifique pour la telecommande, le code est surement générique pour s'adapter au maximum de situation. Mais pour info @pipiche38 fait aussi exactement pareil avec son plugin domoticz, un simple bind.

Oui c'est ça de ce que j'ai compris

Pour zgwui je ne peux pas, j'ai une pizigate qui est branchée directement sur les gpio de mon raspberry pi. Peut être qu'avec un adaptateur serial je pourrais essayer de la connecter sur mon PC pour essayer cet utilitaire. Mais malheureusement j'ai cassé le seul adaptateur que j'avais il y a un moment (je l'utilisait pour falsher mes routeurs sous OpenWrt).

Je vais essayer de voir si j'arrive à brancher ma pizigate sur mon pc

maximushugus avatar Dec 30 '19 20:12 maximushugus

Je viens de relire l'issue et effectivement @doudz signale qu'il n'y a pas de code specifique pour la telecommande, la, tu n'as plus le choix ^^.

Sinon il parle du "service raw_command" avec des exemples de commandes, il n'y a pas un message de retour pour signaler si la commande a marché ou pas ?

Il y a peut etre juste une faute de frappe.

Smanar avatar Dec 30 '19 20:12 Smanar

Oui j'avais utilisé service.raw_command pour d'autres choses (activer la LED et la fonction dimmable des interrupteurs filaires) avec succès. Mais cette fois ci, les commandes spécifiées plus haut ne donnent rien, et je n'ai pas de message de retour pour savoir si cela a fonctionné ou pas. C'est pour ça que je demandais @doudz s'il y avait un autre moyen ou si les commandes étaient bien les bonnes. Mais visiblement c'est bien ça.

maximushugus avatar Dec 30 '19 20:12 maximushugus

J'ai réussi, à l'aide un adaptateur USB-TTL à connecter ma PiZigate sur mon PC. Elle est bien reconnue par le logiciel Zigbee Gateway User Interface (ZGWUI). Je reçoit bien les messages lors des appuis sur On et Off. image

Maintenant il faut que je fasse les bind des clusters en question puisque je ne reçoit rien pour le moment "de base" lors des appuis prolongés.

Est ce que quelqu'un sait comment on fait les bind sur ce logiciel ?

maximushugus avatar Jan 11 '20 14:01 maximushugus

Moi je ferais a la meme page, 3 eme option en partant du bas. Endpoint 01 Cluster 0006 et 0008 Et les adresses de l'appareil et de la passerelle.

Smanar avatar Jan 11 '20 14:01 Smanar

C'est ce que je pensais faire également, mais le problème c'est que je n'arrive pas à obtenir l'adresse de la passerelle ... Je pense que dans "dst adrr" je dois mettre l'adresse de la zigate et "target" c'est celle de l'appareil Mais je vais essayer de trouver

maximushugus avatar Jan 11 '20 15:01 maximushugus

J'ai réussi à trouver les addr et IEEE de ma zigate et de mon interrupteur sans fil, mais lorsque je fait "bind", le programme me répond "invalid parameter"

Je ne sais pas comment rentrer ces données @doudz et @pipiche38 est ce que l'un d'entre vous sait se servir de ce programme ?

maximushugus avatar Jan 11 '20 16:01 maximushugus

J'ai enfin réussi à faire ce bind ( à l'aide de ce topic : https://zigate.fr/forum/topic/interrupteur-sans-fil-et-bind-de-cluster/#postid-1271 ) En fait il faut faire le bind avec les IEEE et retirer tous les "0x" devant les IEEE, les cluster et les endpoints : image J'obtiens les trames lors du début de l'appui long et lorsque je relache. Comment est ce qu'on pourrait intégrer cela dans le plugin @doudz ?

maximushugus avatar Jan 11 '20 17:01 maximushugus

J'arrive également à controler directement mes inter filaires avec la télécommande sans fil et ce même si la zigate est éteinte/débranchée, les 2 appareils communiquent directement entre eux : Pour cela :

  1. s'assurer que l'inter sans fil n'est pas en veille : appuyer sur le bouton off par exemple.
  2. dans les 5 secondes il faut faire le bind des cluster 6 puis 8 de la télécommande vers l'interrupteur filaire : remplir comme ci dessous, en 1 l'IEEE de l'inter legrand with netatmo sans fil, en 2 l'IEEE de l'interrupteur filaire, en 3 le cluster (08 et 06) en veillant à ne pas mettre les "0x" ou les premier "00" des IEEE, et en mettant dans le menu déroulant "IEEE" puis en cliquant sur le bouton "Bind" 72208076-01087f80-349f-11ea-9afe-caf6bac95e58

maximushugus avatar Jan 11 '20 17:01 maximushugus