telecommande_zigbee_controler_tous

Une télécommande ZigBee pour les contrôler tous

Bon… Ok, le titre est un peu racoleur 😉 mais vous l’aurez compris… dans cet article, je vais vous parler des télécommandes ZigBee et plus en détail, la télécommande Philips Hue et la télécommande de la gamme Ikea Tradfri.

Pour les adeptes de la ZiGate, vous avez pu vous apercevoir que les télécommandes ZigBee (hormis les Xiaomi) sont faites pour gérer de l’éclairage. Elles suivent le protocole ZHA ou ZigBee 3.0 mais permettent surtout de faire du « commissionning » (appairage en direct Touch Link) avec les ampoules. En gros, on reste appuyé sur le bouton adéquat pendant X secondes à côté de l’ampoule pour l’associer.

La ZiGate vous permet déjà d’utiliser une télécommande Ikea pour piloter une ampoule Philips HUE, OSRAM ou autres …

Mais … vous avez été nombreux a être un peu frustrés de ne pas pouvoir les utiliser pour piloter autre chose que des ampoules compatibles comme des prises pilotées, les wall switch Xiaomi ou autres…

Voici comment détourner les télécommandes de leur utilisation initiale :

Votre note :

[Total : 58    Moyenne : 3/5]

 

Les deux exemples de télécommandes ZigBee

Comme je l’ai dit en introduction, je vais vous montrer comment détourner les télécommandes en m’appuyant sur les deux télécommandes les plus utilisées.

La télécommande Philips Hue (dont j’avais déjà parlé pour remettre à zéro toutes les ampoules ZigBee)

La télécommande Ikea Tradfri. (Fonctionne aussi avec le dimmer Ikea Tradfri …normalement)

Si ce n’est pas déjà fait, voici où vous procurer les télécommandes

Achats

La télécommande Philips Hue

telecommande_philips_hueTélécommande Philips HUE

 

Prix : 24.99 €

La télécommande Ikea Tradfri

tradfri-remote-controlTélécommande Ikea Tradfri

Prix : 12,95 €

Les deux télécommandes sont de très bonnes qualités et malgré la différence de prix… j’ai du mal à vous en conseiller une. Je vous laisse faire votre propre avis… ou essayer de me convaincre de l’une ou l’autre en commentaire 😉

Le fonctionnement des télécommandes

Dans le cas des deux télécommandes, il va vous falloir une ZiGate afin d’ouvrir un réseau ZigBee unique et appairer votre télécommande et le module que vous souhaitez contrôler.

Mais alors ? comment fonctionne ces télécommandes et pourquoi ne sont-elles pas interprétées par la ZiGate ?

Pour répondre à ces questions, je me suis muni de mon sniffer pour décoder les commandes.

Après avoir appairer les télécommandes, je me suis amusé à appuyer sur les différentes boutons pour voir ce qui se passe :

La commande ON/OFF

Pour la commande I ou 0 de la télécommande Hue et le bouton central de la télécommande Ikea Tradfri, nous avons a peu près le même résultat :

Toggle_ikea_tradfri

La première chose à remarquer est que l’action, sur le bouton de la télécommande, est envoyée à un groupe et non pas à un endpoint (device).

Qu’est-ce qu’un groupe ZigBee ?

En ZigBee, un groupe représente un ensemble de « device ». Il permet à une entité (télécommande ou coordinateur), avec une seule trame, de dialoguer avec plusieurs modules.

On pourrait comparer ça à une sorte de « broadcast ». On envoie la trame à un groupe et si le module appartient à ce groupe, il prend la commande sinon il l’ignore.

Ceci explique que la ZiGate ne reçoit pas la commande. En effet, la ZiGate étant un coordinateur, par définition, il n’appartient pas à un groupe de « device ».

La deuxième chose à observer est le Cluster – 0x0006 correspondant à la commande ON/OFF. Ce cluster est, en général, utilisé par tous les modules de type « actionneur ».

Les autres commandes

La commande « Level Control »

level control ikea tradfri

Capture télécommande Ikea Tradfri

Level_control_philips_hue

Capture télécommande Philips Hue

Ce cluster est utilisé, principalement, pour les ampoules afin de faire varier la luminosité. Pour le moment, je ne vois pas sur quel autre module la commande pourrait-être utilisée.

La commande « Scenes »

scenes_ikea_trafri

Capture télécommande Ikea Tradfri

scenes_philips_hue

Capture télécommande Philips Hue

Le cluster « Scenes » est aussi principalement utilisé pour l’éclairage car il permet de sauvegarder un état (luminosité, couleur, température, …) et de le rejouer en appuyant sur le bouton. Comme pour la commande précédente, je ne vois pas comment détourner cette commande sur un autre matériel.

Maintenant que l’on connait les actions transmises par les télécommandes et que l’on comprend mieux le fonctionnement général, voici la démarche à suivre pour augmenter le champ d’action d’une télécommande.

La procédure à suivre

Ce dont vous aurez besoin

Pour effectuer cette procédure, vous devez avoir:

  • 1 ZiGate
  • 1 télécommande ZigBee (Ikea ou Hue)
  • 1 ampoule compatible
  • 1 prise ZigBee compatible ou un interrupteur mural (par exemple)

La première chose à faire est d’appairer tous les modules ZigBee (télécommande, ampoule, interrupteur) sur votre ZiGate. Pour cela, je vous renvoie directement sur le lien suivant.

Pour effectuer la procédure, je vous propose d’utiliser l’utilitaire TestGUI disponible sur le Github.

test_gui

Récupérer les adresses des éléments à contrôler

Comme vous le savez, chaque module ZigBee est muni d’une « short address » lorsqu’il s’appaire à la ZiGate. Cette adresse changera à chaque appairage. C’est pour cette raison qu’il est important de le mettre de côté.

Vous pouvez utiliser le bouton « Get Devices List » dans l’onglet « Discover Devices » pour tout récupérer

short_address

Une fois effectué, nous allons assigner un groupe à la télécommande. Pour cela, il faut utiliser un matériel compatible ZLL (pour le commissioning) … Bref une ampoule ZigBee.

Munissez-vous de votre télécommande et maintenez appuyé I (Philips hue) ou le bouton link (Ikea – à l’arrière) pendant 10 secondes à côté de l’ampoule. L’ampoule se met à clignoter … le groupe est créé et associé à la télécommande.

Récupérer le groupe appartenant à la télécommande

Pour récupérer le groupe, il faut cliquer sur l’onglet « Group Cluster » de l’application puis entrer l’adresse de l’ampoule dans la ligne « Get Group » comme suit :

Group

La commande retourne tous les groupes associés à l’ampoule. Dans mon cas, le groupe des deux télécommandes. (Hé oui, on peut piloter une ampoule à partir de plusieurs télécommandes).

0x456C = Télécommande Philips Hue
0x7850 = Télécommande Ikea Tradfri

A ce stade, il ne reste plus qu’à associer le groupe au matériel compatible.

Associer le bon groupe au nouveau module

Dans mon cas, je souhaite associer un module wall switch de chez Xiaomi. Avant de lui assigner un groupe, je vérifie bien qu’il soit compatible en listant tous ces clusters :

Type: 0x8043 (Simple Descriptor Response)
SQN: 0xC8
Status: 0x00
Short Address: 0x2F05
Length: 30
EndPoint: 0x01
Profile ID: 0x0104 (ZigBee HA)
Device ID: 0x0051 (Generic – Smart Plug)
Input Cluster Count: 9
Cluster 0: Cluster ID: 0x0000 (General: Basic)
Cluster 1: Cluster ID: 0x0004 (General: Groups)
Cluster 2: Cluster ID: 0x0003 (General: Identify)
Cluster 3: Cluster ID: 0x0006 (General: On/Off)
Cluster 4: Cluster ID: 0x0010 (Unknown)
Cluster 5: Cluster ID: 0x0005 (General: Scenes)
Cluster 6: Cluster ID: 0x000A (General: Time)
Cluster 7: Cluster ID: 0x0001 (General: Power Config)
Cluster 8: Cluster ID: 0x0002 (General: Temperature Config)
Output Cluster Count: 2
Cluster 0: Cluster ID: 0x0019 (General: OTA)
Cluster 1: Cluster ID: 0x000A (General: Time)

Grâce à ces infos obtenus avec la commande « simple descriptor« , je sais que ce module est compatible car il gère les commandes ON/OFF et les groupes.

Maintenant il suffit d’aller dans l’onglet « Group Cluster » et remplir les étiquettes en face de « Add group » comme suit :

add_group

Le groupe n° 0x7850 est maintenant associé à la télécommande Ikea, à l’ampoule et à l’interrupteur mural Xiaomi.

Si vous ne souhaitez pas piloter l’ampoule (elle ne servait qu’à récupérer le groupe de la télécommande) vous pouvez la supprimer du groupe de la manière suivante.

remove_group

Voilà, l’ampoule n’appartient plus au groupe de la télécommande. Maintenant, votre télécommande Ikea ne pilote plus que l’interrupteur mural Xiaomi.

Voici le résultat !

Conclusion

Le réseau ZigBee et la ZiGate n’a pas encore dévoilé tous ses secrets. En effet, même si les actions d’une télécommande ZigBee ne sont pas directement visibles par la ZiGate, cette dernière permet, néanmoins, de piloter des ampoules, des prises pilotés ou autres actionneurs ZigBee.

Dans ce cas, la gestion des groupes est primordiale pour associer des nouveaux éléments ZigBee à une télécommande. La ZiGate, elle, permet simplement de gérer la sécurité et de créer les liens entre les différents modules.

En effet, même si après le paramétrage, la ZiGate ne fonctionne plus, toutes les associations entre votre télécommande et les modules seront encore opérationnelles. (Ce qui ne serait pas le cas, si la ZiGate interprétait les commandes).

Attention donc à la facilité ! Beaucoup d’entre vous aimerait que la ZiGate puisse interpréter et envoyer la commande à la box domotique. Mais il ne faut pas perdre de vue que dans certains cas, ce n’est pas forcément une bonne idée.

(Cependant, ça ne m’empêche pas de regarder comment le faire ;))

A bientôt !

[Total : 58    Moyenne : 3/5]

7 comments

  1. Bonjour,

    Chouette article, merci.
    Si la zigate et la box domotique ne voient pas la communication entre l’inter et le périphérique, il serait très utile que le périphérique reporte son status au zigate.
    Ainsi l’appli domotique pourrait au moins mettre son status à jour.

    A ce sujet, quelle est le meilleur plugin domotique zigate qui supporte l’interrogation des périphériques (pour connaître leur état) et qui est capable de configurer l’attribute reporting.
    Pour le moment j’suis un gros novice qui n’a pas eu le courage de se taper les docs, ce serait super d’avoir des infos/tutoriels pour implémenter cela dans les plugins.

    Dans les périphériques auxquels je pense il y a tous les périphériques qui ont leur propre inter/poussoire (plug osram par ex) et maintenant les lampes zigbee « commissionnées » directement pas un module de contrôle zigbee.

  2. Dommage, c’était pour moi l’un des principale avantages de la ZiGate, pouvoir commander n’importe quel composant via home-assistant (composant non ZigBee), en utilisant la ZiGate comme récepteur ZigBee.

    Est-il impossible de simuler un composant via la ZiGate qui pourrait être adressé directement par la télécommande?

  3. Bonjour,

    Cela veut il dire que le bouton xiaomi ne remonte pas sur ma box domotique et est donc bridée à commander des module zigbee, ou bien est il diffèrent dès bouton Ikea et Philips ?

    1. Bonjour poudi8,
      Non, les bouton Xiaomi remonte bien l’info par la ZiGate. Je m’en sert avec home-assistant et l’info est bien délivré, les multi-cliques sont également supporté.

    2. J’aimerais bien que l’auteur eclaircisse certains points moi aussi. 🙂

      le bouton xiaomi il peut parler directement avec ta box domotique.

      quant à la zigate, peut-elle adhérer au groupe afin de recevoir ses actions ?

      question annexe, serait-il possible d’avoir un firmware qui permette d’être zigate avec l’option sniffer sans reflasher ?

  4. Hello,

    Inspiring post 😉 after reading it, I’m trying to setup zigbee group instead of using home assistant for managing switch group (expecting smaller delay between click and light turn on).

    I’m trying to setup in group Xiaomi Wall Switch and Xiaomi Wireless Switch. The first one simple descriptor has input cluster groups and it’s possible to add group how it was described in post. Second device has output cluster groups and groups commands don’t work. As I understand output cluster is client, so it’s not server which can receive command, so expected behavior. Additionally wireless switch is battery device, so it’s waiting for commands. Just after pairing there is 20sec in which device respond for command like simple descriptor.

    Is it possible that wireless switch has static group and I need to sniff it and add to wall switch? (Zigbee as a sniffer doesn’t work for me in VirtualBox on Mac :-/, probably baudrate problem)

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.