Sonoff Basic sous Domoticz avec Tasmota

Les dispositifs Sonoff Basic sont une solution très économiques pour controller en wifi l’alimentation électrique d’un appareil.
J’avais déjà eu l’occasion d’utiliser des produits Sonoff S20 qui prennent la forme d’une prise gigogne électrique. On en trouve entre 10 et 20 euros. Ils fonctionnent très bien, avec deux petits défauts : l’emplacement important sur une prise multiple qui condamne facilement 2 ou 3 emplacements de prise, et le branchement des fils pour le flashage qui n’est pas facile. Sonoff a récemment sorti un mode “DIY” (Do It Yourself) qui permet en principe si j’ai bien compris une interface REST pour commander le Sonoff et la possibilité de flasher en OTA sans avec à brancher. Les Sonoff Basic sont très économiques, et j’en ai trouvé à moins de 4 € pièce ! Cependant la mention “DIY” s’est révélée inexacte et j’ai été livré de Sonoff Basic R2 qui ne dispose pas de cette fonctionnalité. Néanmoins, ces produits se sont révélés très faciles à utiliser, et parfaits pour mon usage.

Les produits Sonoff arrivent avec un firmware propriétaire qui permet de les utiliser avec la solution cloud propriétaire Sonoff, et l’application mobile eWeLink. Cette solution fonctionne très bien pour un usage basique et s’intègre nativement à Google Home et Alexa. Cependant elle nécessite une connexion extérieure, de faire confiance à cette plateforme externe et ne permet pas de s’intégrer au logiciel Domoticz que j’utilise par ailleurs. Comme ces dispositifs sont basés sur une puce ESP8266, il existe de nombreux firmwares alternatifs pour ouvrir la solution et la rendre compatible avec Domoticz. Ce faisant vous perdrez l’usage du cloud eWeLink (application eWeLink, lien avec Google Home / Alexa), mais si vous changez d’avis vous pourrez toujours rétablir le firmware précédent. J’ai pour ma part choisi le firmware Tasmota qui est un projet très actif, dispose d’un excellent support et de nombreuses fonctionnalités.

Il vous faudra pour cela un adaptateur FTDI USB TTL qui se trouve très facilement pour quelques euros. Prenez de préférence un modèle que vous pouvez régler en 5V ou en 3.3V qui pourra vous être utile dans plus de situations. Prévoyez également 4 cables Dupont male-femelle pour relier l’adaptateur à votre Sonoff.

La première étape est d’ouvrir le Sonoff. Pour que ce soit plus facile, je vous recommande de flasher le firmware et de faire tous vos réglages avant installation sur votre appareil. L’alimentation de l’adaptateur FTDI sera suffisante pour faire fonctionner l’appareil sans branchement (et au contraire, ne procédez surtout pas au flashage alors que l’appareil est branché au 220V !). En l’absence des vis pour fixer le cable secteur, le Sonoff se déboîte très simplement :

On repère aisément les connecteurs série au milieu du circuit imprimé. Pour la qualité des connections, il est recommandé de souder les fils ou un ensemble de broches (“pin header”). Cependant pour ma part, comme je suis flemmard j’ai essayé de simplement enfoncer les cables dupont dans les trous et cela a plutôt bien marché. Il faut juste faire attention de ne pas toucher le dispositif lors du flashage pour éviter une déconnexion intempestive. Il faudra croiser les connecteurs TX/RX, c’est à dire brancher la broche TX (émetteur) du FTDI sur la borne RX (récepteur) du Sonoff, et le RX du FTDI sur le TX du Sonoff.

               

Deux petites précautions à prendre :

  • Faites les branchements initiaux alors que le FTDI n’est pas encore branché en USB pour éviter toute erreur de manipulation
  • Le driver des FTDI peut être parfois capricieux et des branchements trop fréquents peuvent conduire à un écran bleu : préférez donc pour réinitialiser le Sonoff ou la connexion de débrancher et rebrancher le fil 5V ou GND depuis le FTDI.

Une fois le branchement réalisé, il faut flasher ! Pour ce faire je vous conseille le logiciel Tasmotizer qui est d’une simplicité remarquable. Si vous préférez la ligne de commande j’indique plus bas les lignes de commande à utiliser.

       

Pour pouvoir interagir avec le firmware, l’appareil doit être mis en position programmation. Pour ce faire, il suffit de maintenir le bouton du Sonoff appuyé lors de sa mise sous tension. A noter que ce statut est réinitialisé à la fin de chaque opération, il vous faudra potentiellement renouveler l’opération, par exemple entre le backup du firmware précédent et le flashage du nouveau. Voici les étapes à suivre pour flasher le firmware :

  1. Mettre le Sonoff en mode programmation (mise sous tension du Sonoff tout en maintenant le bouton du Sonoff appuyé)
  2. Faire un backup du firmware précédent (pour pouvoir le réinstaller si vous changez d’avis) en cochant “Backup original firmware”.  Comme l’état de programmation est remis à zéro suite au backup, le flashage va échouer, pas de panique, il suffit de recommencer :
  3. Mettre le Sonoff en mode programmation (mise sous tension du Sonoff tout en maintenant le bouton du Sonoff appuyé)
  4. Lancer le flashage, sans l’option “Backup original firmware”
  5. Rebooter le Sonoff (en débranchant & rebranchant la broche d’alimentation depuis le FTDI)
  6. Puis paramétrez votre firmware Tasmota via le bouton Send config, en indiquant votre Wifi, et éventuellement d’autres paramètres comme votre serveur MQTT (voir ci-dessous si vous n’en avez pas déjà installé).  Tasmota permet d’autres modes de paramétrage initial, mais celui-ci est pour moi le plus facile.

Avec cette dernière étape, le Sonoff devrait rebooter et se connecter à votre Wifi. Identifiez son adresse IP via l’interface de votre box et connectez vous à l’interface web du Sonoff pour finaliser la configuration Domoticz.

En ligne de commande :

[su_spoiler title=”En ligne de commande” style=”fancy”]

Pré-requis : disposer d’une installation python fonctionnelle

1. Installez esptool :

2. Identifiez / Vérifiez votre composant :

L’information importante à repérer ici est la taille de la mémoire flash. Normalement, elle devrait être de 1MB. Si ce n’est pas le cas, il faut modifier les commandes suivantes pour refléter la bonne taille de flash.

A noter que pour réaliser cette opération, vous devez être en mode programmation, obtenu en mettant sous tension le Sonoff tout en appuyant sur son bouton. Si ce n’est pas le cas, vous verrez le message suivant :

Suite à chaque opération avec esptool, ce mode programmation est réinitialisé. Vous devrez donc remettre le Sonoff en mode programmation avant toute nouvelle opération.

3. Sauvegardez votre firmware actuel :

4. Flashez avec le firmware Tasmota :

Rebootez votre équipement, vous devriez maintenant pouvoir le configurer. Le Sonoff va alors créer un réseau wifi sur lequel vous allez devoir vous connecter, puis vous connecter sur la page de configuration pour entrer vos paramètres wifi (pour plus de détails, suivez les instructions sur la page Tasmota / Initial configuration)

Configurez également sur votre Tasmota votre serveur MQTT (voir ci-dessous si vous n’en avez pas déjà un d’installé)

[/su_spoiler]

Pour inclure le dispositif dans la configuration Domoticz il faut que le dispositif Sonoff et Domoticz soit en mesure de communiquer en MQTT. Pour ce faire il est nécessaire de configurer un broker MQTT.  Vous pouvez passer cette étape si vous disposez déjà d’un serveur MQTT configuré pour Domoticz, sinon dépliez la section suivante.

[su_spoiler title=”Configurer MQTT pour Domoticz” style=”fancy”]
  1. Installer un serveur MQTT, par exemple mosquitto : sous Debian/Ubuntu :  sudo apt install mosquitto mosquitto-clients  (le premier paquet est le composant serveur, le second les clients en ligne de commande pour tester)
  2. Par défaut le serveur est directement fonctionnel. Gardez en tête que la configuration par défaut ne sécurise pas votre serveur MQTT, ce qui n’est pas dérangeant tant que celui-ci reste bien limité à votre réseau local. N’ouvrez surtout pas le port MQTT sur votre routeur !
  3. Il faut ensuite configurer Domoticz pour le lier au server MQTT : dans l’écran Matériel, ajouter un matériel de type “MQTT Client Gateway”, et renseignez l’adresse IP et le port de votre serveur MQTT (localhost s’il est sur la même machine, et sur le port 1883 par défaut)
  4. Désormais Domoticz va publier les évènements sur la file domoticz/out  et s’abonner domoticz/in  (suivant le paramètre “publish_topic”, conserver “out +/” par défaut)
  5. Vous pouvez tester via la commande mosquitto_sub -t "domoticz/out"  qui va afficher tous les évènements MQTT sortant de domoticz (si vous ne voyez rien, assurez vous qu’il y a bien des évènements dans Domoticz !)
  6. Il vous faudra ensuite indiquer l’adresse de votre serveur MQTT sur chaque device Tasmota. Pour éviter tout ennui avec des adresses IP qui changent, des entrées DNS qui sont mal mises à jour dans les box des opérateurs internet, les adresses IP sauvages, je vous conseille de paramétrer votre serveur avec une IP statique définie dans les paramètres DHCP de votre box (consulter la documentation de votre opérateur, ici pour une livebox 4 chez orange). Dans les copies d’écrans de cette page, l’adresse de mon serveur est 192.168.0.1, veillez à bien adapter cette valeur à votre configuration.
[/su_spoiler]

Il est nécessaire maintenant d’inclure ce nouveau dispositif dans la configuration Domoticz. Depuis votre interface Domoticz, on va créer un nouveau capteur :

  1. S’il n’existe pas, créez un matériel “Sonoff” de type “Dummy” depuis Réglages / Matériel
  2. Vous voyez alors un nouveau matériel dans la liste, avec un bouton “Create un capteur virtuel”:
  3. Appuyez sur ce bouton et nommez votre nouveau dispositif : 
  4. Vous retrouverez alors votre nouveau capteur dans la liste Réglages / Dispositifs :
    Notez bien l’identifiant Domoticz du capteur (ici : 228)

 

Puis depuis l’interface du Sonoff, cliquez sur Configuration, puis Domoticz, et renseignez l’identifiant du capteur dans le champ Idx :

   

Validez, le Sonoff va rebooter et être connecté à votre logiciel Domoticz. Un appui dans l’interface devait maintenant allumer ou éteindre votre appareil. Si c’est bien le cas, vous être maintenant prêt pour refermer le Sonoff et l’installer sur votre équipement !

Il existe de nombreuses ressources pour aller plus loin sur l’utilisation de Domoticz et de Tasmota, par exemple :

  • Tasmoticz : permet la découverte automatique des équipements sous Tasmota dans Domoticz (et donc simplifier les étapes de configuration ci-dessus)
  • Intégrer des composants à votre Sonoff, comme par exemple un capteur de température, de luminosité,…. ; j’en ferai certainement un prochain article, en attendant : documentation Tasmota, tutoriel, et video

Cet article a 5 commentaires

  1. Gresus

    Je crois qu’il manque une grosse partie sur ton tuto.
    Tu n’as rien indiqué sur l’installation et la configuration du client et serveur MQTT.
    Dans l’état actuel, il est impossible que ta prise communique avec ton domoticz, il en connait même pas son adresse IP

    1. Oups, oui ! Quel oubli ! Comme le mien était déjà fonctionnel avant l’écriture de cette page j’ai complètement zappé. J’ai ajouté l’essentiel normalement. Merci d’avoir signalé.

  2. Gresus

    Sinon il est possible de lier domoticz et tes prises via les actions des boutons virtuels dans domoticz.
    Je vous laisse regarder la vidéo des Frères Poulain à ce sujet : https://youtu.be/rKf26HPDarM

    1. La méthode qu’ils montrent dans cette vidéo est un peu plus simple au début car ne nécessite effectivement pas d’installer un serveur MQTT mais devient vite un enfer à maintenir pour que les IP de tous les devices soient fixes. Il est plus facile de n’avoir à maintenir qu’une seule IP fixe sur le routeur plutôt que pour chaque device : même si par défaut, les serveurs DHCP des box modernes redonnent la même adresse IP au même device, cela peut être perdu en cas de reboot / reset et alors il faut tout reconfigurer. D’ailleurs de mémoire il me semble que dans l’épisode suivant ils switchent sur un serveur MQTT qui centralise. Bref pour tester c’est bien, mais pour du long terme personnellement je déconseillerais.

  3. Vascocap

    Merçi Rémi pour ce tuto qui m’à permis de faire fonctionner une prise sonoff sous tasmota depuis une instance domoticz installée sur un nas Synology. La methode de la video des frères Poulain ne fonctionne pas sous domoticz/synology, il faut en plus installer installer MQTT mosquitto et supprimer la commande http… sur les action de l’inter. ce qui bien sur comme vous l’avez dit, évite de maintenir en dur ne kirielle d’adresses ip.

Laisser un commentaire

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