Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Zigbee vers KNX avec Tasmota
#1
Je cherchai une solution pas cher pour rajouter des sondes de température et les intégrer en KNX. J'ai regardé du coté des solutions Zigbee. 
Les capteurs ne coutent quasi rien, et consomment peu d'énergie (fonctionnent sur pile CR2450).
Bref, c'est pratique pour en disperser dans la maison.

Je voulais une solution standalone qui ne passe pas par une couche applicative type HomeAssitant ou NodeRed pour faire le lien en Zigbee et KNX.

J'ai trouvé d'occasion le bridge Zigbee Eweelink ZB-GW03. Avantage, il dispose d'un port ethernet, donc pas besoin d'utiliser le wifi (qui est toutefois disponible).

Ce bridge est basé sur un ESP32 et supporte nativement Tasmota, le firmware Opensource pour µC Espressif.
Tasmota supporte le KNX/IP, je l'avais déjà testé avec succès sur une prise commandé Nous A1T

Coté capteur, j'ai pris une sonde de température/humidité Zigbee Sonoff SNZB-02.

Une fois branché, il suffit d'appairer le capteur Sonoff, ce qui se fait assez facilement via l'interface.

Le capteur transmet régulièrement les informations de température.

22:17:33.267 MQT: tele/tasmota_5792A8/SENSOR = {"ZbReceived":{"0x5E17":{"Device":"0x5E17","Name":"SNZB-02","Humidity":51.61,"Endpoint":1,"LinkQuality":76}}}
22:19:55.520 MQT: tele/tasmota_5792A8/SENSOR = {"ZbReceived":{"0x5E17":{"Device":"0x5E17","Name":"SNZB-02","Temperature":20.57,"Endpoint":1,"LinkQuality":81}}}

Le firmware par défaut ne supporte pas KNX. Seul MQTT est activé par défaut.

J'ai recompilé un firmware avec vscode/plateforme.io pour supporter le KNX.

Pour les paramètres de compilation, j'ai pris ceux là : 
https://templates.blakadder.com/ewelink_ZB-GW03.html
Il faut également rajouter le #define USE_KNX dans le fichier user_config_override.h 

Par contre, le dévelopeur de la couche KNX a décidé de remplacer les valeurs flottantes DPT9 (16 bit) par des DPT14 (32 bits). 

J'ai patché le fichier fichier tasmota/xdrv_11_knx.ino pour me rajouter une fonction que j'ai appelé 'knxtx_valold" permettant d'envoyer des valeurs flottantes 16 bits au format DPT9.

La mise à jour du firmware par OTA via un serveur web local (python3 -m http.server ) prend une quinzaine de secondes.

Au reboot, la page KNX apparait dans le menu de configuration.
J'ai configuré 2 GA pour les commandes KNX TX 1 et 2.

   

Puis j'ai rajouté une règle pour envoyer automatiquement la température et l'humidité à chaque réception de valeur du capteur . 

####
Rule
  on ZbReceived#0x5E17#humidity do knxtx_valold1 %value% endon
  on ZbReceived#0x5E17#temperature do knxtx_valold2 %value% endon

Rule1 1 # Active la règle
###

Et voilà le résultat : 

12:25:20.623 MQT: tele/tasmota_5792A8/SENSOR = {"ZbReceived":{"0x5E17":{"Device":"0x5E17","Name":"SNZB-02","Humidity":50.73,"Endpoint":1,"LinkQuality":100}}}
12:25:20.633 RUL: ZBRECEIVED#0X5E17#HUMIDITY performs "knxtx_valold1 50.73"
12:25:20.638 KNX: KNX TX 1 = 50.73 sent to 0/6/5
12:25:20.640 MQT: stat/tasmota_5792A8/RESULT = {"KnxTx_ValOld1":"50.73"}

12:25:39.649 MQT: tele/tasmota_5792A8/SENSOR = {"ZbReceived":{"0x5E17":{"Device":"0x5E17","Name":"SNZB-02","Temperature":20.57,"Endpoint":1,"LinkQuality":100}}}
12:25:39.659 RUL: ZBRECEIVED#0X5E17#TEMPERATURE performs "knxtx_valold2 20.57"
12:25:39.664 KNX: KNX TX 2 = 20.57 sent to 0/6/6
12:25:39.667 MQT: stat/tasmota_5792A8/RESULT = {"KnxTx_ValOld2":"20.57"}


Coté ETS, je vois bien les télégrammes passer au format DPT9.

Bon il y a quand même des limitations.

- Le nombre de Slot configurable pour envoyer des commandes est limité à 5 GA. Ca doit pouvoir s'étendre sans trop de problème toutefois.
- La réponse à un requête KNX READ est au format DPT14. Pareil, il faudrai rajouter des fonctions de callback au format DPT9
- Le capteur Sonoff SNZB-02 n'envoie des données qu'en cas de variation de +/- 0,5°c ou toute les heures. 
Il est également possible de flasher le capteur pour modifier le comportement (https://blakadder.com/sonoff-th-custom-firmware/)

Bref, pour moins de 30 euros, ça m'offre une solution satisfaisante pour envoyer des mesures sur le bus à partir de capteurs zigbee sans avoir à mettre en place d'usine à gaz.
Répondre
#2
(04/01/2024, 14:17:42)pierrem a écrit : Bref, pour moins de 30 euros, ça m'offre une solution satisfaisante pour envoyer des mesures sur le bus à partir de capteurs zigbee sans avoir à mettre en place d'usine à gaz.

Retour intéressant mais :
- il reste à voir la fiabilité dans le temps, notamment le décrochage des sondes du réseau zigbee ;
- il est dommage d'introduire ce protocole dans une installation KNX qui est robuste et fiable ;
- quid de la maintenabilité à moyen et long terme (la maison sera revendue un jour) et tous les intégrateurs certifiés KNX ne maîtrisent pas Zigbee

La solution la plus pertinente avec un budget acceptable (43 € la sonde dans mon cas chez Bush Jaeger) c'est d'avoir les sondes de température intégrées aux boutons.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)