Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
✇Faire soi-même

Passerelle ZWave – Ethernet (détournement de la ZiGate-Ethernet part 2)

Nous l’avons vu dans l’article précédent, la ZiGate-Ethernet est un « couteau suisse » de la domotique. Initialement destiné à être une passerelle PiZiGate Réseau, il donne la possibilité d’être compatible aussi avec ses concurrents. Par exemple, vous pouvez désormais créer une RaspBee Ethernet si vous le souhaitez.

Toujours en gardant le firmware par défaut, nous allons voir comment créer une passerelle ZWave / Ethernet.

Vote :

 

Utilisation de OpenZWave

Pour résumé, le ZWave est un protocole radio qui utilise la fréquence 868Mhz (en Europe) dédié à la domotique. Il y a quelques temps, il semblait être le principal canal de communication pour la domotique chez les particuliers mais l’évolution du ZigBee a freiné son déploiement.

Pourtant réputé fiable, il n’a pas su prendre le tournant pour s’imposer principalement à cause des tarifs élevés des appareils, son évolution lente et sa licence contraignante. Cependant, il reste encore très répandu et beaucoup de maisons sont encore pilotés avec les dispositifs ZWave.

Côté matériel, il existe des clefs USB mais aussi des modules pour Raspberry Pi. Dans notre cas, nous allons utilisé le module Razberry pour RPI piloté par la librairie OpenZWave.

Razberry_module

J’utilise une vieille version du Razberry mais le principe est le même pour les nouvelles versions.

Pour piloter le module, le principe est toujours le même, le contrôleur ZWave reçoit et envoie les commandes par l’intermédiaire d’un port série (UART TTL).

Cependant, comme il n’existe pas à ma connaissance de passerelle ZWave Ethernet, les outils domotiques n’ont pas été développé pour permette d’attaquer une adresse IP et port TCP.

C’est pour cette raison qu’il est nécessaire de faire des modifications côté box domotique.

Paramétrage

Côté ZiGate-Ethernet

Par défaut, tout est paramétré correctement sur la ZiGate-Ethernet.

Il suffit juste de brancher correctement le module ZWave sur les GPIOs comme suit : (Comme sur un Raspberry Pi)

ZiGate-Ethernet_ZWave

Ensuite, vous pourrez alimenter, brancher sur le réseau et suivre le tutoriel pour le paramétrage du réseau.

Côté Box domotique

C’est dans cette partie que cela se corse. En effet, que ce soit sur Jeedom ou domoticz, il n’y a pas d’options pour utiliser le ZWave au travers d’une adresse IP. Seul le paramétrage d’un port série est possible.

L’objectif va être alors de créer un port série virtuel qui redirigera le trafic vers l’adresse IP et le port de la ZiGate-Ethernet.

Connectez-vous sur votre box domotique (sous linux) en ligne de commande:

Installation de socat

socat est un outil permettant de manipuler des sockets. Dans notre cas, il permet de faire le lien entre des sockets et un port série. Tous les flux (de manière bidirectionnelle) entre le port série virtuel et un port TCP seront alors relayés.

$ sudo apt-get install socat

Une fois installé, il suffit de lancer la commande suivante :

$ (sudo socat pty,link=/dev/ttyUSB2,user=pi,group=dialout,mode=660,ignoreof,waitslave tcp:<IP_de_la_ZiGate-Ethernet>:9999) &

/dev/ttyUSB2 : doit être un port non utilisé
<IP_de_la_ZiGate-Ethernet>correspond à l’adresse IP de la ZiGate-Ethernet

Une fois la commande lancée, il suffit d’aller sur Jeedom ou Domoticz par exemple.

Jeedom

Pour Jeedom, il faut installer le plugin Z-Wave.

zwave

Ensuite, il faut aller dans le panneau : Configuration

Jeedom_configuration

Sélectionner le port Z-Wave (celui que vous aurez créé) puis sauvegarder

razberry_jeedom

Il suffit ensuite de procéder comme pour une clef ou module classique.

Domoticz

Dans le cas de domoticz, il faut aller dans le menu Configuration –> Matériel puis sélectionner le type openZWave USB

domoticz_openzwave

Enfin sélectionner le port série /dev/ttyUSB2 (port virtuel de socat) puis cliquer sur Ajouter

domoticz_razberry

Une fois ajouté, il est possible d’aller dans la configuration et observer que la communication se fait.

Conclusion

Bon bin voilà, après la gestion des modules ZigBee, il est désormais possible de piloter un contrôleur ZWave à travers Ethernet.

L’installation côté ZiGate-Ethernet est assez simple. Seule une petite modification est nécessaire sur les plateformes domotiques. Peut-être que les différents développeurs feront une petite modification pour permettre l’accès au ZWave directement par TCP/IP 😉

La ZiGate-Ethernet n’a pas encore délivrée tous ses secrets. Dans un prochain article, je pense que je ferai un tutoriel pour une intégration ESPHome.

A bientôt !

✇Faire soi-même

Détournement ZiGate-Ethernet / part 1 – Coordinateurs ZigBee

On me demande souvent de faire plus d’articles sur les détournements de produits ou hacks  électroniques/domotiques. En effet, c’est toujours sympa de voir qu’un objet peut avoir d’autres fonctions que celle pour laquelle il a été prévu.

Cette fois-ci, c’est encore plus particulier car c’est une série de  « détournements » d’un produit que j’ai moi-même conçu. (Du coup, je ne sais pas si on peut appeler ça un détournement ;))

Vote :

 

Présentation ZiGate-Ethernet

La ZiGate-Ethernet est un produit fraichement sorti qui permet de transformer une PiZiGate en ZiGate sur Ethernet ou WiFi.

Pour résumé, la ZiGate-Ethernet est née d’une forte demande de la communauté de gestion du protocole ZigBee à travers un câble réseau. En effet, la praticité de la ZiGate-WiFi (possibilité de positionner son contrôleur ZigBee stratégiquement) a beaucoup plu.

Cependant, certains utilisateurs cherchaient plus de fiabilité et une réactivité à toute épreuve. En effet, dans certains cas, le WiFi et le ZigBee ne font pas forcément bon ménage. (Pensez à changer de canal WiFi ou ZigBee si vous avez des perturbations).

Du coup, afin de mêler tous les avantages, j’ai décidé de suivre les conseils de la communauté et j’ai développé la ZiGate-Ethernet. ZiGate-ethernet-definition

Description de la ZiGate-Ethernet

Elle est munie d’un ESP32 avec 16 Mo de Flash qui pilote la partie Ethernet avec un LAN8720 (très utilisé sur les anciens modèles de Raspberry Pi).

L’objectif a été d’utiliser le même « form factor » que le Raspberry Pi 4 B afin de permettre d’utiliser les boitiers compatibles.

De plus, je me suis dit qu’utiliser les mêmes fonctions (alimentation, masse et IOs) que le Raspberry Pi serait une bonne idée. Du coup, le GPIO de la ZiGate-Ethernet correspond à celui du RPi. GPIO_zigate_ethernet Cette configuration permet donc d’utiliser/recycler une PiZiGate pour la transformer en ZiGate-Ethernet.

Pour avoir plus d’informations détaillés, vous pouvez aller sur les pages suivantes :

https://zigate.fr/documentation/descriptif-de-la-zigate-ethernet/

Firmware d’origine : https://github.com/fairecasoimeme/ZiGate-Ethernet

Maintenant que vous avez une idée de comment fonctionne une ZiGate-Ethernet voici comment la « détourner ».

Utilisation avec Deconz / Elelabs / TI

Le premier « détournement » est bien entendu de tester les produits concurrents à la ZiGate. Du coup, je me suis procuré 3 produits différents (technologies différentes) pour les tester.

  • le Raspbee I (Deconz)
  • le ELR023 (Elelabs – EZSP)
  • le CC2652P2 (TI – Z-stack3.x)

pizigate_elelabs_deconz_cod.m ZiGate-Ethernet-Raspbee ZiGate-Ethernet-ELR023 ZiGate-Ethernet-CC2652P2 ZiGate-Ethernet-PiZigate

L’objectif est d’utiliser le firmware d’origine de la ZiGate-Ethernet pour voir si cela fonctionne et rendre accessible par Ethernet une RaspBee par exemple. (la RaspBee 2 n’a pas été testée mais il n’y a pas de raison que cela ne fonctionne pas).

Pour effectuer les tests, j’ai utilisé 2 plateformes domotiques : Jeedom et Home-Assistant.

En effet, c’est deux plateformes utilisent la technologie Zigpy permettant de rendre compatible les technologies ZigBee.

Rappel : L’objectif n’est pas de donner un avis sur les plateformes mais juste valider le fonctionnement du détournement.

Avant de passer à l’étape suivante, il faut que vous ayez paramétré votre ZiGate-Ethernet pour qu’elle soit accessible à partir d’une adresse IP. Du coup, suivez le tutoriel prévu.

Paramétrage Jeedom

Pour piloter la ZiGate-Ethernet, il faut installer le plugin ZigBee  plugin_zigbee Une fois installé, il faut utiliser les paramétrages suivant selon votre module zigbee.

NB : sur les captures d’écrans, c’est le « Contrôleur 2 » car sur le « Contrôleur 1 », il y a bien entendu une ZiGate. 😉

NB2 : l’adresse IP : 192.168.0.45 correspond à l’adresse IP de ma ZiGate-Ethernet. Bien entendu, il faut que vous mettiez votre propre adresse IP.

CC2652P2 RPi serial

Jeedom_config_cc2652P2

Deconz RaspBee I ou II

jeedom_raspbee_config

ELR023 elelabs

Jeedom_elr023_config Une fois paramétré, il suffit de relancer le daemon et vous verrez dans les logs le dialogue de Jeedom avec votre coordinateur ZigBee.

Ensuite procédez, comme vous avez l’habitude, pour piloter vos appareils ZigBee.

Paramétrage HomeAssistant

Pour Home-Assistant, il faut installer l’intégration ZHA zha_nouvelle_integration Ensuite, il faut rentrer les paramètres manuels zha_enter_manually Puis sélectionner le type radio (choisir le bon) ZHA_choose_radio_type Selon le type de radio, la configuration diffère mais un seul paramètre est à changer : le périphérique série ZHA_parametrage_port Comme sur la capture d’écran et peu importe le type radio, il faut rentrer dans le chemin du port série : socket://<IP_de_la_ZiGate-EThernet>:9999

Ensuite, il suffit de cliquer sur « soumettre » pour valider l’installation.

Une fois, effectué, vous aurez l’intégration ZHA présente sur votre dashboard et vous n’aurez plus qu’à procéder normalement pour gérer vos appareils ZigBee.

Spécificités selon les modules ZigBee

Pour faire fonctionner les différentes plateformes, il suffit d’utiliser le firmware de la ZiGate-Ethernet.

Ce firmware a été conçu pour fonctionner directement sorti du carton avec une PiZiGate. Cependant, pour certains modules, il est nécessaire de changer un paramètre.

Deconz RaspBee I

Par défaut, la ZiGate-Ethernet est configurée pour dialoguer avec le port série à 115200 bauds.

Cependant, la RaspBee, communique à 38400 bauds.

Il faut donc modifier la vitesse du port série de la ZiGate-Ethernet.

Pour cela, il faut utiliser son navigateur préféré et lancer la page de configuration : http://<IP_de_la_ZiGate_Ethernet

Ensuite il faut aller dans la page de configuration du port série :

Config_serial_zigate_ethernet Puis changer la vitesse par défaut config_serial_zigate-ethernet

ELR023 elelabs

Pour cette carte, qui est très bavarde, ce n’est pas la vitesse du port série qu’il faut changer mais il peut arriver qu’il y ait des coupures de connexions (reset by peer).

Pour corriger le problème, il suffit de couper toutes connexions web vers la ZiGate-Ethernet ou cocher l’option « Disable web server when ZiGate is connected » qui se trouve dans Config –> General

config_general_zigate-ethernet Cette option, coupera l’interface Web lorsque celle-ci sera connecté à votre plateforme domotique.

Conclusion

Nous venons de voir qu’il est possible d’utiliser tous les modules ZigBee compatible Raspberry PI avec la ZiGate-Ethernet et son firmware par défaut. Cependant, il est possible d’aller encore plus loin. Le prochain « détournement » concernera le ZWave.

En effet, à ma connaissance, il existe pas ou peu de passerelle ZWave – Ethernet et pourtant, à l’aide d’un Razberry, nous verrons qu’il est possible de piloter le ZWave (open zwave) par Ethernet à l’aide de la ZiGate-Ethernet.

PS : Pour ceux qui diront que … gnagnagna … utiliser une Raspberry Pi directement est une meilleure solution et moins couteuse, vous oubliez l’instabilité et la lourdeur d’un système d’exploitation, vous avez surement plein d’alimentations 5V- 3A et votre budget en carte SD est surement illimité 😉

PS2 : Je plaisante bien entendu 😉 chacun voit midi à sa porte.

A très bientôt !

❌