Ich habe in meinem HomeKit Setup zahlreiche Sonoff Basic Module verbaut und diese in der Vergangenheit über das homebridge-ewelink-max Plugin und einer Homebridge auf einem Raspberry in HomeKit gebracht.
Nun bin ich durch einen Link, den @Typ1er vor einiger Zeit geteilt hat, auf eine andere Möglichkeit gestoßen, diese Zwischenstecker direkt, also ohne Bridge und damit quasi "nativ" in HomeKit zu bringen.
Konkret geht es um RavenSystem, eine alternative Firmware für Geräte, die auf dem ESP8266 basieren, um diesen eine direkte Einbindung in HomeKit zu ermöglichen. Glücklicherweise nutzen die Sonoff Basic genau diesen Chip und sind daher bestens geeignet.
Ich zeige in der folgenden Anleitung die nötigen Schritte, um einen Sonoff Basic zu einem HomeKit fähigen Zwischenstecker zu machen.
Im Rahmen der Anleitung wird das aktuelle Repository "Home Accessory Architect" und nicht mehr "RavenCore" verwendet. Zitat Entwickler: "RavenCore development is dead. Long live the HAA!!"
Genutzte Hardware:
Raspberry 3B+ mit Raspbian Buster
FT232RL FTDI TTL zu USB Adapter
4x Jumper Kabel male<->female
Mini USB Kabel
Wichtig: Vor Punkt 3 keine Netzspannung auf den Sonoff geben!
Zur Vorbereitung ermitteln wir einmal, welche Bezeichnung der Adapter in unserem System hat. Dazu schließen wir den FTDI Adapter mit dem Mini USB Kabel an unseren Raspberry an. Mit
lassen wir uns unsere Schnittstellen anzeigen, hier kommt nach Anstöpseln des Adapters ein neuer Anschluss hinzu. Standardmäßig heißt dieser ttyUSB0 (Sollte er bei euch anders heißen, müssen die weiteren Befehle natürlich angepasst werden, ansonsten reicht copy&paste).
Jetzt können wir mit den Vorbereitungen starten. Zuerst laden wir aus dem Wiki die Dateien otaboot.bin, root.bin &blank.config.bin herunter und legen sie auf unserem Raspberry im Standard-Nutzer Verzeichnis /home/pi ab.
Als Nächstes verbinden wir den FTDI Adapter mit dem Sonoff Basic. Drehen wir die Platine des Sonoff um, sehen wir auf der Unterseite vier "Löcher", die der Einfachheit halber sogar beschriftet sind (GND, 3V3, RX, TX). Hier schließen wir nun unsere vier Jumper Kabel an, die männlichen Pins können einfach in die Löcher gesteckt werden. Da der Flashvorgang im Anschluss nur wenige Sekunden dauert, kann man hier darauf verzichten, die Kabel anzulöten.
Den Jumper auf dem FTDI Adapter setzen wir auf die 3,3V Position (die rechte Position, wenn USB Anschluss oben) und schließen die weiblichen Enden der Jumper Kabel an unserem Adapter an. Das Mini USB Kabel schließen wir zu diesem Zeitpunkt noch nicht an.
Beim Adapter wählen wir die gleiche Belegung wie auch beim Sonoff, müssen jedoch darauf achten, dass TX & RX vertauscht werden (Sendet der Eine, muss der Andere empfangen).
Zur Übersicht wähle ich farbige Kabel, die Belegung sieht hier folgendermaßen aus:
FTDI Adapter
VCC - weiß
TX - orange
RX - gelb
GND - schwarz
Sonoff
3V3 - weiß
RX - orange
TX - gelb
GND - schwarz
Ist der Adapter nun korrekt mit dem Sonoff verbunden, schließen wir das Mini USB Kabel am Adapter an und halten währenddessen für einige Sekunden den Reset-Knopf des Sonoff gedrückt. Dadurch startet der Sonoff im "Flash-Mode" und kann von uns angesprochen werden.
Zuletzt benötigen wir noch das esptool auf unserem Raspberry und installieren dieses über:
Damit sind die Vorbereitungen abgeschlossen und wir können mit dem eigentlichen Vorgang beginnen. Der Sonoff ist nun über unseren Adapter im Flash-Mode mit dem Raspberry verbunden, das esptool ist installiert und die drei geladenen Dateien liegen unter /home/pi.
Los gehts:
1. Flash Speicher des Sonoff löschen
2. Das Mini USB Kabel trennen und den Sonoff erneut im Flash-Mode verbinden. Nun die neue Firmware auf den Sonoff flashen (Den unteren Kasten komplett per copy & paste einfügen, es sind nicht zwei voneinander getrennte Befehle)
esptool.py -p /dev/ttyUSB0 --baud 115200 write_flash -fs 1MB -fm dout -ff 40m \
0x0 rboot.bin 0x1000 blank_config.bin 0x2000 otaboot.bin
3. Adapter & Jumper Kabel entfernen und Sonoff an Netzspannung anschließen. Erst jetzt wird der Sonoff mit N & L verbunden und in die Steckdose gesteckt.
Der Controller baut daraufhin einen eigenen Hotspot auf, mit dem wir uns von unserem iPhone aus verbinden ("LCM-...").
4. Nach kurzer Wartezeit öffnet sich automatisch eine Weboberfläche, in die wir folgende Eintragungen machen:
OTA repository
RavenSystem/haa
OTA binary file
main.bin
Stehen diese Einträge in den beiden Feldern, wählen wir danach unser WLAN aus dem Auswahlfenster, geben das Kennwort ein und klicken auf "speichern".
5. Der Sonoff startet nun neu und baut erneut einen Hotspot auf, diesmal mit der Bezeichnung "HAA-...". Mit diesem verbinden wir uns abermals.
(Bis der neue Hotspot erscheint, dauert es 5-10 Minuten, wir können uns also zwischenzeitlich einen Kaffee trinken.)
6. In der, sich erneut öffnenden Weboberfläche tragen wir in das Feld "JSON Config" folgenden String ein:
{"c":{"o":1,"l":13,"i":1},"a":[{"0":{"r":[{"g":12}]},"1":{"r":[{"g":12,"v":1}]},"b":[{"g":0},{"g":14},{"g":14,"t":0}]}]}
und setzen den Haken bei "OTA Update". Ein erneutes Bestätigen des WLAN und anschließendes Speichern schließt den Vorgang ab.
7. Der Sonoff ist nun nativ HomeKit-fähig und kann über den Code 021-82-017 in HomeKit hinzugefügt werden.