Sonoff + Tasmota + MQTT

Après de nombreux tests infructueux 😥 , j’ai enfin trouvé une solution pour ajouter des télécommandes 433MHz à ma solution d’alarme low cost 🙂 . Toutes les télécommandes qui figurent sur la photo illustrant l’article fonctionnent, cela va me permettre de terminer la solution Help d’appel en cas d’urgence.

Le composant qui permet la réception en 433MHz est un Sonoff 433MHz RF Bridge qui va traiter les signaux reçus, les renvoyer en wifi vers un serveur MQTT et celui-ci les transmettra à Domoticz. Le Sonoff Bridge étant à 9€87 chez AliExpress, je conserve l’aspect low cost de la solution d’alarme et je n’ai pas besoin de RFXcom ou de RFLink, je traite moins de protocoles mais j’ai plus de souplesse.

Le premier point à traiter est le changement du firmware du Sonoff. En effet, la solution d’origine utilise une application et un cloud propriétaire qui limitent l’usage et ralentissent pas mal les opérations (un peu comme dans la solution Tuya). J’ai installé le firmware Tasmota qui est tout à fait adapté et s’installe sur le processeur ESP8285 du Sonoff Bridge (il s’installe aussi sur les ESP8266 et ESP32).

Quelques liens pour en savoir plus sur Tasmota :

La doc du Github Tasmota

Tasmota en francais avec des tutos

Un bonus en prime, il n’est pas nécessaire de dé souder ou de souder pour flasher le nouveau firmware, des trous dans la carte permettent la connexion de câbles dupont (voir les photos dans la galerie ci-dessous).

 

Pour flasher le firmware, j’ai utilisé Tasmotizer sur PC (je n’ai pas réussi à l’installer sur raspberry 🙄 ). C’est assez simple, il faut appliquer les consignes (câblage, 3.3v et switch sur OFF) et bien appuyer sur le bouton reset pendant que l’on branche l’alimentation, la led bleue ne doit pas clignoter.

Logiciel Tasmotizer – On va juste sauvegarder le firmware Sonoff et installer le firmware Tasmota.

La sauvegarde du firmware d’origine est prévue ainsi que le paramétrage initial du wifi et de MQTT. Pour le firmware Tasmota, il faut prendre la version en français et la télécharger sur votre PC/Mac ou Pi, elle se trouve ici : Prendre la version tasmota-FR.bin

Lien vers le GitHub de Tasmota pour Tasmotizer

Tuto en français qui intégre la phase de flash

Après le flashage, il faut enlever le FTDI232, remettre le switch sur ON et rebrancher sans appuyer sur reset. Le firmware Tasmota va lancer un wifi AP (Access Point) sur lequel nous allons nous connecter avec un smartphone, puis ouvrir l’adresse du Sonoff-Tasmota (192.168.4.1) dans un navigateur pour paramétrer notre wifi.

Page d’accueil du wifi AP de Tasmota où l’on indique son réseau wifi SSID + mot de passe

Ensuite on redémarre le Sonoff qui va se connecter à notre wifi et on pourra faire le paramétrage.

 

Pour se connecter à votre Sonoff sous Tasmota, il faut entrer son adresse IP dans un navigateur. Il ne faut pas oublier de fixer l’adresse IP dans votre box (ou dans votre DHCP, si ce n’est pas la box qui gère vos adresses IP fixes).

Mosquitto (serveur MQTT que nous utiliserons sur raspberry) est installé sur toutes les images depuis quelques années, pour vérifier la version : se connecter avec Putty et taper : mosquitto -h

Commandes mosquitto :

  • mosquitto_pub -h 192.168.1.100 -t « domoticz/in » -m ‘{ « idx » : 300, « nvalue » : 1}’ pour tester l’envoi vers un IDX 300 de Domoticz de la valeur 1 (ON)
  • mosquitto_sub -h 192.168.1.100 -v -t « domoticz/in » pour visualiser les entrées MQTT sur Domoticz

Switch virtuels créés dans Domoticz pour mes tests

 

Voici les essais réalisés dans Domoticz, le Médaillon, le Médaillon 2 et la Montre n’ont qu’un seul bouton qui enverra ON à chaque pression; le Galet A-B et la Télécommande A-B envoient ON lors d’un appui sur A et OFF pour un appui sur B et la Télécommande A-B-C-D pilote un switch selector avec 4 valeurs. C’est moi qui choisit le mode de fonctionnement et qui indique les règles.

Regardons maintenant la mise en oeuvre dans Tasmota via la console. Il est possible de définir des règles (voir ici les multiples possibilités), ci-dessous les règles que j’ai mis en oeuvre pour tester mes télécommandes.

Le principe des règles est similaire à celui d’IFTTT, on définit un déclencheur (trigger) et en fonction de celui-ci une action. Exemple ligne 2 : si je reçois en 433Mhz (on rfreceived) une trame avec Data=A9F0E1 alors je publie dans domoticz/in (l’entrée Domoticz pour MQTT) le positionnement de l’IDX 301 à la valeur 1 (ON). Pour la Montre (IDX=302), en ligne 4 j’ai rajouté une temporisation en créant une règle de type timer (ruletimer2) que j’ai fixé à 5 secondes. En ligne 5, à l’expiration du timer je passe l’IDX 302 à OFF (0).

Le format des entrées dans Domoticz est variable en fonction des dispositifs, dans les lignes 14 à 17, on voit les envois à faire pour le switch de type selector.

Pour trouver les valeurs Data, c’est très simple, il suffit de se mettre en mode console et d’appuyer sur le bouton ad hoc de la télécommande, la trame reçue va apparaître.

Extrait de la console Tasmota avec utilisation des télécommandes, exécution des rules et envoi vers MQTT

Pour entrer les rules dans Tasmota, on tape dans un bloc note (notepad++ par exemple) les règles que l’on souhaite (+ sauvegarde !) puis on fait un copier-coller dans la ligne de saisie de la console de l’ensemble des règles. Quelques trucs à savoir, il y a 3 groupes de rules maximum de 1000 caractères chacun mais on peut mettre plusieurs rules par groupe. Les rules ne sont pas sensibles à la casse (au sens typographique !).

Commandes pour les rules :

  • Rule1 1 : Activer le groupe de rules n°1
  • Rule2 0 : désactiver le groupe de rules n°2
  • Rule1 «  : supprimer le groupe rules n°1
  • Rule3 + : ajouter des règles au groupe de rules n°3
  • je n’ai pas trouvé comment lister les règles … si quelqu’un trouve

A savoir : le Sonoff peut être installé seul avec simplement une alimentation de type chargeur usb car il communique avec le serveur MQTT en wifi. Cela permet une installation dans un endroit où la réception du 433MHz sera la meilleure. Il peut aussi être alimenté par n’importe quel appareil disposant d’une sortie usb (PC/Mac/NAS/Pi), mais l’appareil doit être alimenté en permanence. Le serveur MQTT qui communique en wifi avec le Sonoff et avec Domoticz peut être installé sur une autre machine que le raspberry Domoticz. J’ai testé l’installation du Sonoff seul avec un chargeur usb, ça marche 🙂 Je n’ai pas encore testé le serveur MQTT déporté, ni la portée du Sonoff (todo list).

Le périmètre est vaste, les possibilités multiples et j’ai sûrement oublié des points et fais des erreurs, alors j’ouvre un sujet sur le forum pour que l’on puisse échanger sur cette solution.

 

 

 

 

 

Laisser un commentaire

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