Tasmota sur Sonoff

Introduction

J’ai 2/3 trucs installés dans ma maison en terme de domotique, histoire de pouvoir piloter quelques lumières, monitorer certains équipements ou être alerté en cas de problème de sécurité (intrusion ou détection de personnes). Jusqu’à présent, et malheureusement, je me base sur des équipements qui sont pilotés via le cloud, et depuis un moment, je voulais me débarrasser de cette dépendance. Aujourd’hui je fais un premier pas dans ce sens.

Pour cela, je vais utiliser une passerelle WiFi/Zigbee et je vais flasher son firmware qui va me permettre de ne plus être dépendant d’un service tiers. Cette passerelle aura pour objectif de contrôler l’ensemble des capteurs zigbee de ma maison (capteurs d’ouverture de portes, de température…).

La passerelle sonoff utilise un ESP8266 qui permet d’installer le firmware open source Tasmota. Il me permettra j’espère d’avoir une importante compatibilité avec les différents capteurs zigbee et de ne plus dépendre d’un fournisseur de cloud.

Flash de Tasmota

Le PCB de la passerelle zonoff expose les ports GPIO de l’ESP8266, ce qui permet en mettant les fils au bon endroit, de téléverser un nouveau firmware. Je me suis inspiré de ce site et de celui-là.

L’étape 1 consiste à sortir le PCB de sa boite, en dévissant les 4 petites vis qui sont cachés par des espèces de petits ronds en caoutchouc.

SonoffUnscrewed

Ensuite, en positionnant les fils au bon endroit et en les reliant à mon convertisseur USB TO Serial (attention il faut du 3.3V et pas du 5V), on peut flasher le firmware en utilisant n’importe quel logiciel adapté.

SonoffUsbSerial

Pour ma part, j’ai utilisé NodeMCU-PyFlasher.

NodeMCUPyflasher

Le baud rate à utiliser est 115200 et le flash mode est DIO.

Une fois le flashage terminé, il suffit de débrancher les fils et de rebrancher l’USB pour que la passerelle redémarre.

Configuration de Tasmota

Quand la passerelle Sonoff démarre, elle active un point d’accès Wi-Fi qui se nomme tasmota-XXXX sur la bande 2.4GHz. Il faut se connecter sur ce point d’accès et aller à l’adresse http://192.168.4.1 pour configurer le point d’accès Wi-Fi sur lequel le Tasmota devra finalement se connecter. Une fois redémarré, il ne restera plus qu’à trouver son adresse IP (via le DHCP) pour pouvoir finaliser la configuration.

Mise à jour du module zigbee

Une fois connecté sur le Tasmota, il faut mettre à jour le module Zigbee que l’on peut trouver ici. J’ai utilisé le firmware ncp-uart-sw_6.7.8_115200.ota.

TasmotaConf

Une fois le firmware choisi, appuyer sur Start Upgrade.

Si la mise à jour a fonctionné, on doit le voir en parallèle dans la console (l’ouvrir dans un autre onglet).

20:23:18.127 UPL: File ncp-uart-sw_6.7.8_115200.ota
20:23:45.021 UPP: Multicast (re)joined
20:23:45.023 UPL: Transfer 190756 bytes
20:23:45.024 UPL: Successful 190756 bytes

Configuration pour Home Assistant

J’utilise home assistant pour gérer ma domotique (entre autres) et il faut donc que j’adapte Tasmota pour cela. L’idée est de traduire toute la communication zigbee et de l’envoyer sur un port TCP qui sera ensuite gérée par Home Assistant.

Dans la console, il faut exécuter la commande suivante:

backlog rule1 on system#boot do TCPStart 8888 endon ; rule1 1 ; template {"NAME":"Sonoff ZHABridge","GPIO":[56,208,0,209,59,58,0,0,0,0,0,0,17],"FLAG":0,"BASE":18} ; module 0

Si tout se passe bien, après le redémarrage la console devrait afficher les informations suivantes:

20:42:12.059 RUL: SYSTEM#BOOT performs "TCPStart 8888"
20:42:12.061 TCP: Starting TCP server on port 8888
20:42:12.063 RSL: RESULT = {"TCPStart":"Done"}

Dans Home Assistant il suffit ensuite d’intégrer un nouveau module Zigbee Home Automation

  • La radio type est EZSP
  • Le serial device path est `socket://IP_TASMOTA:PORT
  • La vitesse est 115200

Toute la gestion se fait ensuite directement dans Home Assistant.