le réseau Zigbee s’invite dans le jardin !

septembre 21, 2023

Ce titre pourrait surprendre mais si vous lisez jusqu’au bout ca pourrait peut etre vous intéresser …

A noter qu’a aucun moment il y des liens affiliés ici tout est gratuit !

Ma problématique du départ 

il y a quelques  mois j’avais acheté un boitier (Zlinky)  pour récupérer les impulsions TIC de mon compteur Linky  cf cet article  : https://meteo-pontscorff.fr/mon-compteur-linky-connecte-sur-grafana/

J’avais rencontré des soucis de liaisons car ma clef USB Zigbee SonOff connectée à mon serveur Ubuntu était trop éloignée de mon compteur et j’avais donc tout descendu  au sous-sol !  (quasi au cul du  compteur Linky).

Depuis je voulais récupérer la température d’une pataugeoire dans le jardin à  travers une sonde, pour conserver un historique sur plusieurs jours de la température.

Au fil de mers recherches j’ai trouvé ici  : https://www.domadoo.fr/fr/peripheriques/5998-owon-sonde-de-temperature-deportee-sur-cable-zigbee.html une sonde avec un module THS-317-ET permettant de mesurer avec précision la température, d’un espace, d’une matière ou d’un liquide.

 

 

Cette sonde est fournie avec un câble de 2m de longueur , idéale  pour mon « petit » projet.

Le boitier de commande alimenté par  2 piles AAA pouvant être mis dans un boitier électrique dit étanche et sûr puisque non branché sur le réseau électrique.

(A noter que ce boitier est compatible Zigbee et compatible avec Amazon Echo, intégrant la technologie Zigbee mais pas compatible Smartlife). 

 

 

 

Après la réception du  boitier , la découverte de la sonde à travers Z2M  est assez fastidieux ( appui de nombreuses  fois sur le bouton interne , une led verte clignotante (jamais de  led rouge !) , bref après quelques essais infructueux ma clef USB Zigbee SonOff à travers mon Z2M découvre enfin cette sonde !

Oui  mais voila à l’intérieur : Ok  ! Mais dès que  je m’éloigne de mon serveur Ubuntu (au sous-sol) je perds rapidement le signal (les fameux lqi).

A la recherche d’une solution 

il fallait que je trouve une solution  pour augmenter mon réseau Zigbee. Entre les clefs USB répéteur , les ampoules qui permettent de « router » , j’ai épuré les moteurs de recherche pour trouver « une » solution : 

Un nouvel adaptateur mais cette fois-ci réseau ! pourquoi réseau ? 

Voici les explications  : 

Tout prêt de ma pataugeoire, j’ai un abri de jardin (la fameuse cabane au fond du jardin), j’avais, il y a  quelques années, tiré  3 câbles : 1 câble d’alimentation 220V et  2 câbles réseaux (on ne sait jamais , ca peut toujours servir !).

La preuve , c’est ici  entre autre que  mon boitier OpenDtu  pour mes panneaux solaires est en  place depuis quelques  mois, d’ailleurs vous pouvez retrouver un  article posté ici  : https://meteo-pontscorff.fr/la-domotique-sinvite-sur-la-station-meteo/

Donc dans cet abri , j’ai du réseau (filaire et wifi) , en plus , sur le filaire c’est un switch POE (j’en ai eu  besoin pour un autre projet sur lequel je ne m’étendrai pas…)

Donc grâce à ce réseau  local, le switch POE , ce petit boitier de 16 cm de long et son antenne de 15 cm également de long : SMLIGHT SLZB-06 Zigbee Ethernet USB POE WiFi LAN adapter trouvera sa place idéalement dans ce cabanon et pourra « arroser » en réseau Zigbee cette partie de mon terrain.

Sincèrement , je ne sais plus où  j’ai trouvé la référence mais ici  https://www.zigbee2mqtt.io/guide/adapters/#recommended  ce petit boitier y est référencé avec toutes les documentations et derniers firmwares.

A noter : Juste une petite recommandation si vous désirez en acheter un  :  regarder bien ou vous l’acheter, le prix  peut passer du simple au double (voir triple), en fonction de la plateforme ou  vous l’achetez.

moi je l’ai pris ici https://www.tindie.com/products/smartlightme/smlight-slzb-06-zigbee-ethernet-poe-usb-wifi-adapt/ réglé  par Paypal.

 

Un début de solution : 2 instances Zigbee2Mqtt sur le même serveur

A ce stade , j’ai donc une sonde de température avec 2m de câble avec un boitier étanche, un abri de jardin « connecté » puisque j’ai du réseau local, dans mon sous-sol j’ai  déjà un Z2M qui tourne avec plusieurs « topics » : 

station Météo / ma clef Zlinky , il  me faut donc  trouver une solution pour connecter ce boitier SMLIGHT SLZB-06 à un nouveau Zigbee2Mqtt.

je vous mets un schéma que j’ai trouvé ici  :  https://smlight.tech/product/slzb-06/

(il suffit de s’affranchir de la zone « internet » et de se dire que ca peut être un câble de  50-60m entre deux  points distants)

 

Je ne me souvenais pas lors de ma première installation de mon Z2M avec ma clef Zigbee SonOff qu’il était possible d’ installer plusieurs instances sur le même serveur.

Cf  sur Github cette discussion   : https://github.com/Koenkk/zigbee2mqtt/discussions/18889

Donc une instance sous  /opt/zigbee2mqtt/ et une deuxième instance sous  /opt/zigbee2mqttLAN/

je ne vous refais pas l’installation sous linux qui est très bien présentée ici :  https://www.zigbee2mqtt.io/guide/installation/01_linux.html

il suffira de modifier vos dossiers / chemin et de refaire les démons avec systemctl 

 vous aurez donc 2 services  qui  tourneront ! 

(Attention tout de même à modifier le port pour le serveur web (8090 par défaut , pour ma part je suis passé sur le  port 8091)

(Ca se trouve dans le fichier configuration.yaml) 

J’ai donc  un Z2M avec comme adaptateur une clef USB  et un deuxième Z2M avec comme adaptateur un boitier réseau que je peux brancher ou je veux sur mon réseau local  !

root@meteo-Ubuntu:/home/stef# systemctl | grep zigb
zigbee2mqtt.service loaded active running zigbee2mqtt
zigbee2mqttLAN.service loaded active running zigbee2mqttLAN
root@meteo-Ubuntu:/home/stef#

 

root@meteo-Ubuntu:/home/stef# systemctl status zigbee2mqttLAN
● zigbee2mqttLAN.service - zigbee2mqttLAN
Loaded: loaded (/etc/systemd/system/zigbee2mqttLAN.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2023-09-16 09:11:20 CEST; 3 days ago
Main PID: 153401 (npm start)
Tasks: 23 (limit: 4492)
Memory: 93.4M
CPU: 20.598s
CGroup: /system.slice/zigbee2mqttLAN.service
├─153401 "npm start" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
├─153412 sh -c "node index.js"
└─153413 node index.js

sept. 19 12:56:33 meteo-Ubuntu npm[153413]: Zigbee2MQTT:info 2023-09-19 12:56:33: MQTT publish: topic 'zigbee2mqttlan/piscine', payload '{"battery":100,"linkquality":91,"temperature":24.2,"voltage":3100}'
sept. 19 13:56:21 meteo-Ubuntu npm[153413]: Zigbee2MQTT:info 2023-09-19 13:56:21: MQTT publish: topic 'zigbee2mqttlan/piscine', payload '{"battery":100,"linkquality":91,"temperature":24.2,"voltage":3100}'
sept. 19 14:56:10 meteo-Ubuntu npm[153413]: Zigbee2MQTT:info 2023-09-19 14:56:10: MQTT publish: topic 'zigbee2mqttlan/piscine', payload '{"battery":100,"linkquality":91,"temperature":24.4,"voltage":3100}'
sept. 19 15:55:59 meteo-Ubuntu npm[153413]: Zigbee2MQTT:info 2023-09-19 15:55:59: MQTT publish: topic 'zigbee2mqttlan/piscine', payload '{"battery":100,"linkquality":91,"temperature":24.4,"voltage":3100}'
sept. 19 16:55:48 meteo-Ubuntu npm[153413]: Zigbee2MQTT:info 2023-09-19 16:55:48: MQTT publish: topic 'zigbee2mqttlan/piscine', payload '{"battery":100,"linkquality":91,"temperature":24.4,"voltage":3100}'
sept. 19 17:55:37 meteo-Ubuntu npm[153413]: Zigbee2MQTT:info 2023-09-19 17:55:37: MQTT publish: topic 'zigbee2mqttlan/piscine', payload '{"battery":100,"linkquality":87,"temperature":24.4,"voltage":3100}'
sept. 19 18:55:25 meteo-Ubuntu npm[153413]: Zigbee2MQTT:info 2023-09-19 18:55:25: MQTT publish: topic 'zigbee2mqttlan/piscine', payload '{"battery":100,"linkquality":91,"temperature":24.3,"voltage":3100}'
sept. 19 19:55:14 meteo-Ubuntu npm[153413]: Zigbee2MQTT:info 2023-09-19 19:55:14: MQTT publish: topic 'zigbee2mqttlan/piscine', payload '{"battery":100,"linkquality":91,"temperature":24.3,"voltage":3100}'
sept. 19 20:55:03 meteo-Ubuntu npm[153413]: Zigbee2MQTT:info 2023-09-19 20:55:03: MQTT publish: topic 'zigbee2mqttlan/piscine', payload '{"battery":100,"linkquality":91,"temperature":24.1,"voltage":3100}'
sept. 19 21:54:52 meteo-Ubuntu npm[153413]: Zigbee2MQTT:info 2023-09-19 21:54:52: MQTT publish: topic 'zigbee2mqttlan/piscine', payload '{"battery":100,"linkquality":91,"temperature":24.2,"voltage":3100}'
root@meteo-Ubuntu:/home/stef#


La validation de la solution 

le boitier Smlight une fois connecté au réseau trouve une adresse ip en DHCP , pour ma part je l’ai retrouvé très simplement sur la partie réseau de ma Freebox Révolution ( mais un sniffer de réseau, ipscan fera l’affaire également)

http://192.168.0.X (adresse DHCP)  pas besoin de beaucoup de paramétrage : Passage en ip fixe puis rendez-vous dans l’onglet de paramétrage Z2M /HA : http://192.168.0.XX/zha-z2m

afin de récupérer le paramétrage à pousser dans le Z2M coté serveur  dans le fichier de configuration : 

# Serial settings
serial:
# Location of SLZB-06
port: tcp://192.168.0.XX:6638
baudrate: 115200
# Disable green led?
disable_led: false
# Set output power to max 20
advanced:
transmit_power: 20

 

Vous  pouvez remarquer le « connecteur » : l’adresse ip + un port (ici  6638 , que vous   pouvez modifier également)  c ‘est pour cela qu’il est préférable de le paramétrer en ip fixe sinon au renouvellement du DHCP , votre Z2M « reseau » ne fonctionnera plus.

Stop / start du démon via les commandes systemctl et le tour est joué 

Mon réseau Zigbee est donc dorénavant opérationnel au fond du jardin !

Apres quelques mésaventures pour associer ce nouveau réseau Zigbee à  ma sonde le tour est joué tout est fonctionnel 

 

Oui mais après ? 

Après ? Et bien j’ai créé un nouveau topic « zigbee2mqttlan/# » que j’ai paramétré sur Z2M et Mosquitto, ensuite un connecteur « Telegraf » afin de récupérer les datas dans InfluxDB pour ensuite les  ressortir  dans de beaux graphiques sous Grafana.

  • la courbe rouge à gauche : Température de l’air extérieure ( sonde récupérée de ma station Météo également sous mqtt )
  • la courbe verte à droite : Température de l’eau de la pataugeoire

 

En conclusion, en résumé 

Ce petit boitier (16 cm de long) peut être utilisé de trois façons différentes : réseau Ethernet (POE) / Wifi / et USB pour y être connecté à un service zigbee2mqtt. 

Dans  mon cas, il fallait que je déploie du réseau Zigbee  à plus de 40m de mon réseau initial enclavé au sous-sol de mon habitation. Comme j’ai un réseau  local filaire (mais ca aurait pu fonctionner également avec du réseau Wifi) et 

comme il était impossible de déplacer  mon serveur linux et mon réseau Zigbee c’est l’adaptateur qui est allé vers ma sonde.

Sachez que vous  pouvez implanté ceci  dans Home Assistant également ( chez moi c’est du « tout à la main »).

 

Les liens utiles  

le site internet de la startup  : https://smlight.tech/product/slzb-06/

pour acheter le boitier  : https://www.tindie.com/products/smartlightme/smlight-slzb-06-zigbee-ethernet-poe-usb-wifi-adapt/

(attention a la plateforme , les prix peuvent grimper très vite)

Pour le manuel  : https://smlight.tech/manual/slzb-06/

Pour info également c’est un produit Ukrainien donc c’est bien (surtout en cette période).

 

je vous mets un bout de schéma qui  pourra peut être vous aider à comprendre la configuration : 

A gauche : mon abri de jardin, distancé de  50metres de câbles réseaux et à droite mon habitation .