Un interrupteur Wi-Fi HomeKit pour moins de 10 € avec un Sonoff Basic

Depuis qu’Apple a (un peu) ouvert HomeKit, il devient possible de trouver des appareils HomeKit à bas prix en bidouillant un peu. Je vous présente ici un montage avec un Sonoff Basic, qui vaut moins de 10 €.

La gamme Sonoff vient d’un constructeur chinois (Itead) et comprend pas mal de produits. Ce sont des appareils basés sur une carte ESP8266, avec un firmware (modifiable) qui permet la prise de contrôle en Wi-Fi. L’ESP8266 est une carte à bas prix (quelques dollars) qui prend en charge le Wi-Fi, quelques GPIO et dotée d’un firmware programmable. On peut simuler un Arduino, commander en Wi-Fi, etc. Pour mon petit projet, commander à distance la tente photo achetée pour Noël, j’ai choisi un simple Sonoff Basic.

Le Sonoff Basic est un petit appareil qui sert d’interrupteur : on branche l’entrée d’un côté, la sortie de l’autre, et un bouton sur le boîtier permet de couper (ou activer) le passage du courant. L’intérêt, c’est que ça se commande en Wi-Fi et – surtout – que ça vaut moins de 10 €.

Le Sonoff installé

Il existe quelques firmware compatibles HomeKit, ce qui permet de se passer de pont, mais empêche évidemment d’utiliser les fonctions d’origine. Je vais vous expliquer comment configurer le tout. Attention, c’est de la bidouille, donc il faut sortir le fer à souder.

La partie matérielle

Première chose, flasher la carte. Ouvrez le boîtier et – évidemment – débranchez la prise électrique. Sur la carte, vous verrez des traces pour un header : il faut souder les broches nécessaires (quatre). Ça prend quelques minutes avec n’importe quel fer à souder, et on trouve les rangées de broches facilement. Une fois que c’est fait, il faut quatre câbles Dupont et un adaptateur USB/série qui prend en charge le 3,3 V (TTL). J’en avais un en stock depuis des années, mais sinon ça se trouve pour ~5 € (moins si vous pouvez attendre). Petite astuce pour macOS : on trouve des pilotes pour les CH340 (les versions d’entrée de gamme) . Il suffit donc de chercher CH340 TTL USB pour trouver un adaptateur.

Sans header


Avec le header


Les broches


L’adaptateur USB

La broche GND du Sonoff va sur la broche GND (ground) de l’adaptateur, la 3.3V sur la 3.3V (logique), la TX du Sonoff sur la RX de l’adaptateur et la RX sur la TX.

Avant de brancher l’adaptateur USB sur le Mac, pressez le bouton du Sonoff, gardez-le enfoncé, et ensuite connectez l’USB. Après une ou deux secondes, relâchez le bouton.

La partie logicielle

Sous macOS, il faut l’esptool.py, la bibliothèque pyserial (sudo python -m pip install pyserial devrait suffire) et trois fichiers : otaboot.bin, rboot.bin et blank_config.bin. Ils proviennent du firmware RavenCore.

Une fois les fichiers récupérés, il faut d’abord effacer le firmware installé. Vous aurez besoin du nom de votre adaptateur USB/série. Le plus simple est la commande suivante : ls /dev/cu*. Vous obtiendrez une liste avec un truc qui doit contenir usb (dans mon cas /dev/cu.usbserial-230). La commande va effacer le firmware.

python esptool.py -p /dev/cu.usbserial-230 erase_flash

Une fois que c’est fait, il faut débrancher l’USB et recommencer le branchement : on presse le bouton, on branche, on relâche le bouton.

Seconde étape, les fichiers du firmware. La commande est similaire.

python esptool.py -p /dev/cu.usbserial-230 --baud 115200 write_flash -fs 1MB -fm dout -ff 40m 0x0 rboot.bin 0x1000 blank_config.bin 0x2000 otaboot.bin

Une fois que le flashage est terminé, il faut débrancher l’USB et installer le Sonoff. Il ne s’allume pas directement, mais c’est normal.

La configuration

Une fois alimenté, et après quelques secondes, le Sonoff va émettre un réseau Wi-Fi sous le nom OTA-xxxx (une partie de l’adresse MAC). Il faut se connecter dessus avec un appareil iOS (le plus simple) et attendre que la page se charge. Là, il faut sélectionner votre réseau Wi-Fi dans la liste, taper le mot de passe et ne pas presser Join.

J’ai oublié de prendre une capture, elle vient de RavenSystem

Il faut d’abord remplir les deux champs avec les valeurs suivantes : RavenSystem/ravencore et main.bin (attention à la casse). Ensuite, vous pouvez presser le bouton Join. Ensuite, il faut attendre. La mise à jour peut prendre plusieurs minutes (le développeur indique jusqu’à 7 minutes) et ça ne marche pas à chaque fois. Personnellement, j’ai dû recommencer. La LED s’illuminera rapidement en cas de succès, mais si vous avez un moyen de savoir ce qui se connecte à votre réseau, ça peut aider (personnellement, la FingBox m’a prévenu).

La configuration HomeKit

Avant dernière étape, HomeKit. Dans l’application Maison, il faut choisir le petit + en haut à droite, ajouter un accessoire et indiquer code absent ou impossible à scanner. Normalement, le Sonoff devrait apparaître dans la liste.

Ajouter


Pas de code


Il apparaît


Pas certifié, mais ce n’est pas grave

Ensuite, iOS va prévenir que ce n’est pas certifié (pas très grave) et demander le code : 021-82-017.

Une fois le Sonoff ajouté, il fonctionne comme un interrupteur, avec le choix du type d’appareil : interrupteur (plus basiquement, une prise connectée), lumière ou ventilateur. Ça joue sur les commandes via Siri, notamment.

Rôle, position, nom, etc.

Maintenant, il fonctionne via HomeKit, simplement en se connectant en Wi-Fi.

La configuration manuelle

La configuration avancée passe par l’application Eve. Il faut chercher l’adaptateur Sonoff et passer l’option Show Setup à On (activé) et attendre qu’il redémarre (c’est automatique après quelques secondes).

Dans la liste

Ensuite, un nouveau périphérique virtuel HomeKit va apparaître : Setup.

En bas, un nouveau périphérique

Les options sont bien expliquées sur la page du projet, mais en gros :

Board Type est à 1 par défaut (Sonoff Basic).
Firmware Update est désactivé (on peut l’activer, ce qui va forcer une recherche et mettre à jour).
Init State SW1 est à 0. C’est la configuration de l’interrupteur : 0 indique éteint par défaut, 1 indique allumé par défaut, 2 indique que l’interrupteur prend la valeur qui était activée avant le redémarrage et 3 inverse cette valeur. En cas de coupure de courant, c’est toujours intéressant de choisir le comportement, surtout pour une lampe.

Les options

Les autres options servent si vous avez installé un autre type de Sonoff, mais je vous laisse regarder la documentation. Après la configuration, il est conseillé de désactiver le tout.

Et voilà. Vous avez un interrupteur basique compatible HomeKit pour moins de 10 € (et un peu de travail).