Smarthome

Zuerst dachte ich "was für ein Quatsch, was macht es schon für einen Unterschied wie ich mein Licht an oder aus schalte?". Ganz im Gegenteil, erst das Handy suchen damit ich das Licht einschalten kann?

Die meisten System die sich als "Smart Home" verkaufen machen nichts Besonderes. Es wird oft nur der Lichtschalter in eine App verlegt - was eigentlich eine ziemlich dumme Idee ist, denn so muss ich mein Telefon suchen, entsperren, die App starten, warten bis sie sich aktualisiert hat, den Button für das gewünschte Licht suchen und dann, endlich, habe ich Licht. Die Hardware-Alternative: klick, Licht ist an.
Klar, theoretisch könnte ich das Licht von der Couch aus steuern, aber da habe ich selten mein Telefon dabei und muss sowieso aufstehen.

Eines Tages im Herbst aber kaufte ich eine farbige LED von Ikea und fand es sehr angenehm abends eine warme Beleuchtung zu haben. Im Lauf der Zeit kamen neue Birnen und Sensoren hinzu und inzwischen habe ich ein recht umfangreiches Sortiment an Geräten die mit den verschiedensten Methoden angebunden sind.

 

Vergleich der verschiedenen Übertragungswege

Vergleich der verschiedenen Übertragungswege


Ein Hauptvorteil der modernen Smarthome-Komponenten ist dass keine Kabel mehr gezogen werden müssen. Aber wie kommen die Daten vom Sensor in den Controller?


', '

 


Vergleich der verschiedenen Übertragungswege


Ich habe bisher mit fünf Möglichkeiten zu tun gehabt Daten zwischen Sensor und Zentrale zu übertragen. Hier ein persönlicher Vergleich. Da auch die Bedienung der Geräte die diese Verfahren verwenden eine Rolle spielt habe ich diese gleich mit verwurstet.


Funk via 433MHz


Dieses Verfahren kommt hauptsächlich bei den billigen Funktsteckdosen zur Anwendung die man im Baumarkt kaufen kann. Bei den meisten Geräten kann man einen Code einstellen um zu verhindern dass man Geräte des Nachbarn mit schaltet, normalerweise gibt es dafür vier Adressen. Die Dosen sind recht billig, es sollte kein Problem sein drei Dosen für unter 20€ zu bekommen. Ein weiterer Vorteil ist dass sie relativ klein sind - aber es gibt inzwischen einige Z-Wave-Dosen die noch kleiner sind. 


Hauptnachteil dieses Verfahrens ist dass man ein eigenes Modul an den Raspberry anschließen muss und den Funkverkehr zwischen Dose und Fernbedienung abhören muss. Es gibt auch keine Rückmeldung der Dose die besagt ob sie tatsächlich angeschaltet ist. Die Zentrale bekommt also nicht mit ob die Dose tatsächlich aktiv ist oder nicht. 


Streng genommen war der 433MHz-Funk mein Einstieg in das "Na-ja-man-kann-es-noch-nicht-Smarthome-nennen". Ich hatte einige Lampen mit diesen Steckdosen gesteuert und hätte sie gerne eingesetzt, aber die kleine Funkfernbedienung war immer am falschen Platz. Um das zu beheben hatte ich mir schon alle Teile besorgt um die Dosen per Raspberry oder Arduino zu steuern, hatte aber mit dem Bau noch nicht begonnen als ich die ersten Tradfri- und Hue-Komponenten kaufte und erst einmal abgelenkt war.


Fazit


Da es soweit ich weiß nur Steckdosen mit diesem Prinzip gibt und sonst keine Geräte ist das Ganze nur eingeschränkt nutzbar.


WLAN: Sonoff, Tasmota


Als sehr verlässlich hat sich die Einbindung von Geräten über das normale WLAN erwiesen. Gerät einstecken, IP-Adresse bestimmen (dazu muss ich oft an die fritz!box die die IP vergibt, aber manche Geräte zeigen sie direkt an) und ab da hatte ich keine Probleme mehr.


Die Absicherung erfolgt über das WLAN, d.h. wer ins WLAN gelangt kann auch die Kontrolle über die Geräte übernehmen wenn sie nicht mit einem Passwort abgesichert sind. Vielleicht hänge ich irgendwann meine Smarthome-Geräte in ein eigenes WLAN, aber im Moment bekommen das WLAN-Passwort eh\' nur Leute denen ich vertraue.


Hmm. vielleicht wird es Zeit die Sicherheit aufzustocken.


Theoretisch kann mit dem Standard-ping-Befehl festgestellt werden ob das Gerät arbeitet oder nicht - manche Geräte sind aber so eingestellt dass sie darauf nicht antworten. Anhand der IP und eines meist frei vergebbaren Namens ist es kein Problem die Geräte zu identifizieren. Das war ein weiterer Vorteil gegenüber anderen Systemen: es war relativ deutlich welches Gerät "switch.obi-zwei-radio-im-bad" ist.


Es ist auch eine sehr billige Art einen Sensor oder Ähnliches ins Netz zu bringen. Eine Zeitlang gab es bei Obi WLAN-Stromschalter für zehn Euro. Die chinesischen Sonoff-Schalter kosten fünf Euro das Stück und können einfach mit der tasmota-Firmware unabhängig gemacht werden. Ich musste aber leider feststellen dass sie zu groß sind um in die übliche Bohrung einer Wand-Steckdose eingebaut werden zu können - das war der ursprüngliche Plan um diese als Sensoren zu verwenden.


Allerdings benötigt der WLAN-Verkehr viel Strom und ist damit nur für Geräte sinnvoll die permanent an eine Stromversorgung angeschlossen sein können.


Die Kommunikation erfolgt meistens via MQTT, ein sehr einfach gestaltetes Protokoll das praktisch jede Zentrale verarbeiten kann.


Fazit


Durch die problemlose Art der Einbindung halte ich das für ein sehr gutes Verfahren, nur der hohe Stromverbrauch ist ein Problem. Und: es gibt nicht allzu viele vorgefertigte Geräte die sich auf diese Weise ins Netz einbinden.


Genaugenommen kenne ich auch wieder nur Steckdosen, und diese kommunizieren normalerweise nur mit einem externen Server und verwenden eine eigene App. Das ist dann die dümmste Variante, denn ich muss zum Bedienen wissen an welchem Typ Steckdose der Fernseher nun wieder hängt, welche App ich dazu benötige und muss auch mein Smartphone bei der Hand haben. Ich werde nur Geräte einsetzen die via MQTT funktionieren.


Bluetooth


Im Smarthome-Bereich ist Bluetooth eher unüblich, ich hatte eine Zeitlang versucht mein Smartphone mittels Bluetooth als Anwesenheitssensor zu verwenden. 


Die Reichweite von Bluetooth ist aber zu gering um wirklich sinnvoll eingesetzt werden zu können. Außerdem schaltet mein Telefon auch die Übermittlung via Bluetooth ab wenn sie nicht genutzt wird und erscheint dadurch wieder als "nicht erreichbar".


ZigBee: Ikea und Philips


Die professionellen Systeme von Philips und Ikea (und Osram, aber von denen habe ich keine Geräte) verwenden das Protokoll "ZigBee". Unpraktischerweise haben sie lange unterschiedliche Versionen verwendet. Erst 2017 zog Ikea nach und machte es möglich die eigenen Birnen mit dem Philips-System zu koppeln, aber nur unter Einschränkungen wie ich feststellen musste. So sind die Ikea-Fernbedienungen im Hue-Netzwerk nur bedingt nutzbar.


Das Netz ist aber sehr verläßlich und ich hatte noch keine Probleme nachdem die Geräte mal angemeldet waren. Gerne würde ich meine gesamte Automation mit diesem Protokoll verwalten, aber es gibt nur wenige Anbieter die Produkte mit diesem Protokoll verkaufen - und wenn dann meist integriert in lokale Insellösungen die mit anderen Komponenten nicht zusammenarbeiten. So wie ich das mitbekommen habe muss man als Verwender dieses Protokolls eine Lizenz erwerben das zu tun, und diese Kosten wollen wieder hereingeholt werden.


Bei Ikea scheint es eine direkte Zuordnung zwischen Lampe und Fernbedienung zu geben. Ich kann eine Lampe nur mit einer Fernbedienung steuern. Bei Philips Hue geht das, aber dafür gibt es andere Beschränkungen die mir nicht einleuchten. Zum Beispiel endet beim Bewegungssensor die Nacht immer um acht Uhr morgens - ich kann zwar die Zeit einstellen ab der der Sensor das Licht schalten soll, aber nicht die Zeit an der er damit aufhört.


Durch die Beschränkungen der unterschiedlichen Hersteller habe ich jetzt immer noch zwei ZigBee-Sender in Betrieb: den von Ikea, und den Hue von Philips.


Fazit


Robust und einfach, aber nicht frei verfügbar.


Z-Wave: 


Als Alternative zu ZigBee bietet sich Z-Wave an für das es Dutzende von Geräten gibt. Schalter, Steckdosen, Lampen, Rauchmelder, Sirenen, Öffnungssensoren - für alle Verwendungen scheint es eine Lösung zu geben. Die Geräte sind auch meist preislich im ertragbaren Rahmen, zumindest wenn man ein wenig sucht oder bereit ist auf eine Lieferung aus China ein paar Wochen zu warten (und nicht vergessen dass bei höheren Summen Zoll verlangt wird!). 


Die Geräte fungieren als selbstverwaltetes Netz und wissen welche anderen Geräte in ihrer Nähe sind. Dadurch ist es möglich dass der Sensor für zum Beispiel die Wohnungstür außer Reichweite der Zentrale ist - sie kann ihn dennoch auslesen denn die Z-Wave-Steckdose im Flur gibt die Signale weiter.  


Besonders angenehm finde ich dass die Geräte ihre Funktionsbeschreibungen mitbringen. Als ich die Sirene in meinen Home Assistant eingefügt hatte sah ich im Einstellungsmenü einen Punkt "Lautstärke" mit den Werten "Laut, Mittel, Leise" - zwar in Englisch, aber immer noch besser als "Konfigurationsparameter 5, Wert = 3".


Die Preise sind mittelprächtig. Ein Schalter mit vier Knöpfen kostet ungefähr 25 Euro (Vorsicht! auf ebay gibt es viele Angebote für 10-15 Euro, diese beeinhalten aber nur Rahmen und Wippe, diese kann man für um die fünf Euro bekommen!). 


Was mich zuerst gestört hat sind die relativ umständlichen Namen. Meine Wohnungstür wird von "binary_sensor.neo_coolcam_doorwindow_detector" überwacht, meine Balkontür von "binary_sensor.neo_coolcam_doorwindow_detector_2". Ich kann die Namen zwar ändern, aber nur den externen Namen. Für Automatisierungszwecke muss ich weiterhin die nicht allzu sprechenden interne Bezeichnung "binary_sensor.neo_coolcam_doorwindow_detector_2" verwenden. Und da gibt es dann noch "zwave.neo_coolcam_doorwindow_detector_2", das ist eine andere Darstellungsform des Sensors an der Balkontür. Und viele Regeln funktionierten nicht weil der Sensor nicht "0" und "1" sendet, sondern "On" und "Off". Oder "on" und "off", und damit greift eine Regel nicht die auf "Off" prüft. Alles ziemlicher Frickelkram.


Allerdings war das Konzept von Z-Wave wohl eher dass Sensoren direkt mit Aktoren gekoppelt werden. Man verbindet also Schalter S logisch mit Lampe L. Dazu muss man einfach beide Geräte dicht zusammen bringen, in den Koppelmodus schalten und sie sollten sich finden. Ab da schaltet ein Druck auf S immer die Lampe L ein und aus. 


Die Lösung der Smarthome-Systeme ist in der Regel dass das nicht getan wird und jede Komponente direkt mit dem Z-Wave-Modul verbunden wird. Dieses meldet Änderungen an die Zentrale und diese entscheidet dann welches Gerät was zu tun hat.


Das ist flexibler und zukunftssicherer. Will man eine Lampe L2 mit Schalter S verbinden geht das mit dem direkten Modell zwar auch, es könnte aber ein Problem sein den Schalter und L2 nahe zusammen zu bringen, speziell wenn beide schon eingebaut sind.


Das Problem hat man beim Umweg über die Zentrale nicht. Man muss nur die Regel ein wenig erweitern und schon schaltet S L und L2 und was auch immer man sich vorstellen kann.


Außerdem kann man so mehr Funktionen auslösen. Im Moment schaltet der linke Schalter im Wohnzimmer oben das Deckenlicht ein, unten wieder aus. Rechts oben schaltet die Stehlampe ein, unten wieder aus. Ich könnte auch links oben als "Deckenlampe umschalten" und rechts oben als "Stehlampe umschalten" belegen und hätte dann zwei Schaltfunktionen für weitere Lampen frei.


Ich habe aber immer wieder Probleme die Komponenten mit dem Stick zu verbinden. Schlimmer noch, ein Gerät war bereits einmal bekannt, wurde jetzt wieder vergessen und taucht nur als "Unbekannter Knoten" auf. Das ist ziemlich nervig und ist der Hauptgrund warum ich noch nicht alle Schalter verbaut habe - Home Assistant will sie einfach nicht erkennen. Ich vermute das liegt an der verwendeten Library OpenZWave.


Ein anderes Problem ist dass das gesamte Z-Wave-System bei manchen Resets des Raspberrys plötzlich nicht mehr funktioniert. Ich muss dann physisch den Strom zum Raspberry kappen und das gesamte System hart neustarten damit ich wieder meine Lampen steuern kann. 


Wenn ich dann aber nicht mehr am System herumspiele läuft es recht zuverlässig. Man muss sich nur daran gewöhnen dass die Lampen etwas zeitverzögert reagieren. Das liegt daran dass die Schalter auch einen Doppelklick erkennen können (damit könnte man weitere Lampen schalten) und erst eine Sekunde oder so warten ob noch ein zweiter Impuls kommt.


Fazit


Die Möglichkeiten sind schier unbegrenzt, man muss bei der Einrichtung aber etwas Geduld haben.

Billige SmartHome-Steckdose von OBI

Billige SmartHome-Steckdose von OBI


In der c\'t 11/18 befinden sich zwei Artikel über eine günstige, per WLAN steuerbare Steckdose auf ESP8266-Basis und wie man Tasmota auf diese Steckdose aufspielen kann.
Also auf zu Obi, oder?


', '

 


Billige SmartHome-Steckdose von OBI


In der c\'t 11/18 befinden sich zwei Artikel über eine günstige, per WLAN steuerbare Steckdose auf ESP8266-Basis und wie man Tasmota auf diese Steckdose aufspielen kann.
Die Webseite von Obi gab an dass es im mir nächsten Markt über 30 dieser Geräte gibt. Da auch gutes Wetter herrschte sprang ich auf mein Fahrrad und kaufte mir drei dieser Dosen. Da der Artikel auch gleich darauf hinwies das man die speziellen dreiflügligen Y-Type-Schrauben nur mit besonderen Bits öffnen kann besorgte ich auch gleich das passende Bit-Set.
Im Markt gab es zwei davon, eines von der Hausmarke Lux für 30€ und eines von Proxxon das derzeit von 55 auf 40€ heruntergesetzt ist. Ich entschied mich für das Proxxon-Set, denn darin befindet sich auch ein Bit mit langem Hals. Außerdem bin ich von der Qualität der Lux-Ware sowieso nicht so begeistert.


Obi-Steckdose OffenDank des passenden Werkzeugs war das Öffnen der Steckdose überhaupt kein Problem. Innen sieht man eine überraschend große Platine mit monströsen Lötpads.



Nach dem Lösen der Schraube in der Mitte läßt sich die Platine einfach aufklappen und gibt den Blick auf die übersichtlich beschrifteten Kontakte frei. Das blaue hinter der Platine ist übrigens die ESP8266-Baugruppe. Die Konstruktion mit drei verknüpften Platinen ist etwas wild, aber solange es funktioniert ist es mir ja egal.

Obi Kontakte

Schnell ist eine Steckerleiste mit Kabeln versehen und an die entsprechenden Pads angelötet. Das gelbe Kabelsteht etwas ab, das habe ich erst auf dem Bild gesehen

Obi Kabel Obi AnschlussPlatine

Damit der ESP8266 in den Flash-Modus geht muss GPIO0 mit GND verbunden werden. 


Zuerst wollte ich dort einen Schalter anlöten, habe mich aber dann für eine einfache, schlampige Lötbrücke mit einem Kabelrest entschieden.

Obi MasseAufGPIO0

Obi Flashen


Ohne jegliche Probleme wurde die Firmware überspielt und ich konnte über den seriellen Monitor von Atom die IP-Adresse sehen die dem Schalter von meiner fritz!Box zugewiesen wurde.


Im Punkt "Einstellungen" muss man dann die Steckdose von "Sonoff Basic" auf "Generic" umstellen und der Software manuell mitteilen welche Schaltvorgänge vorzunehmen sind. Der Einschaltknopf liegt an GPIO14, diesen stellt man also auf "Button 1", die LED 1 auf GPIO4. 


Ich hätte aber nie herausgefunden wie mit Tasmota das Relais zu steuern ist, hier kam heise auf die Idee GPIO12 dauerhaft auf Masse zu setzen indem diesem Port die LED 2 zugewiesen wird. GPIO5 wird dann als "Relay 1" eingestellt und dadurch das Schalten ermöglich.

Theoretisch könnte man noch verschiedene Sensoren an die Ausgänge anschließen, das habe ich mir aber gespart.

So erhält man für zehn Euro und etwas Handarbeit eine vollwertige WLAN-Steckdose die ich wunderbar in Home Assistant integrieren konnte.


Das einzige Problem dass ich mit dem Gerät habe ist dass die Dose ziemlich groß ist:


Obi InBetrieb


Mein Lichtschalter wird durch die Dose komplett verdeckt - aber man kann sie ja umdrehen.


Der ganze Umbau dauert 15-30 Minuten, ist also sehr überschaubar.

Sonoff mit Tasmota flashen wenn Firmware 1.6ff installiert ist

Tasmota aufspielen wenn der Sonoff OTA nicht zulässt


In einem früheren Post hatte ich das Flashen der Sonoff-Schalter mit der Tasmota-Software beschrieben die keinen Server in China zum Schalten benötigt.


Angespornt von diesem Erfolg habe ich weitere Schalter bestellt und musste feststellen dass es auf diesen nicht mehr funktionierte da die neuere Firmware die Itead aufgespielt hat keine fremden Server mehr zulässt. Also musste ich die Schalter auf die herkömmliche Art flashen.


', '

 


Tasmota aufspielen wenn der Sonoff OTA nicht zulässt


In einem früheren Post hatte ich das einfache Flashen der Sonoff-Schalter via WLAN mit der Tasmota-Software beschrieben die keinen Server in China zum Schalten benötigt.


Sonoff AllesVoll


Angespornt von diesem Erfolg habe ich weitere Schalter bestellt und musste feststellen dass es auf diesen nicht mehr funktionierte da die neuere Firmware die Itead aufgespielt hat keine fremden Server mehr zulässt. Also musste ich die Schalter auf die herkömmliche Art, also mit angestecktem Kabel flashen. 


Lötblockade


Das erste Problem war schon einmal dass in einigen der Platinen die Kontakte für das Flashen mit Lötzinn zugelaufen waren. Ob das Absicht ist um Änderungen der Firmware schwieriger zu machen oder einfach ein Produktionsfehler weiß ich nicht, aber es erschwert den Zugang zum Schalter natürlich schon um Einiges. Statt Experimente mit dem Flashen via Kabel zu machen musste ich mich also erst einmal hinsetzen und die Kontakte entlöten.


Glücklicherweise kamen nur wenige Tage später weitere Schalter die ich bei einem anderen Händler bestellt hatte, bei diesen waren die Kontakte frei und ich konnte eine Steckerleiste anlöten. Die Fleißarbeit mit den anderen Schaltern verschiebe ich so lange bis ich die anderen Schalter verbraucht habe.


Code-Probleme


Die meisten Anleitungen erwarten auf einen Editor namens "Atom" in den ein Modul "PlatformIO" installiert werden muss. Dazu installiert man den Editor, wählt dann "Settings" und im Punkt "Install" / "Install Packages" sucht man nach "platformio-ide". Bei der Installation wurde ich darauf hingewiesen dass mir auch das Paket "CLang" fehlte, dieses musste ich herunterladen und installieren


Das lief beides soweit problemlos.


Das Tasmota-Projekt kann man von der Quellcode-Seite herunterladen, die Anleitung nach der ich vorgegangen war verwendete Version 5.12.0 obwohl es bereits eine V5.13.1 gab. Ich habe erst einmal V5.12.0 verwendet um mit der Anleitung konform zu bleiben. Evtl. ist das der Grund für die Fehler auf die ich später gestossen bin.


Das Modul das die Umsetzung von USB auf Seriell macht war bei mir standardmäßig auf 5V Ausgangsspannung eingestellt. Die Schalter vertragen aber maximal 3.3V, dazu musste ich beim Modul eine Lötbrücke ändern. Beachtet das bei eurem Modul oder kauft gleich eines das die richtige Spannung ausgibt. Ich hatte den Sonoff mal zum Testen kurz an 5V gehängt und er wurde sofort ziemlich heiß - das hält er bestimmt nicht lange durch.


Das Tasmota-Projekt lässt sich auch ohne Probleme mit der Atom/PlatformIO-Kombination öffnen. Allerdings fanden sich die genannten Einträge zur Spracheinstellung usw. nicht dort wo die Anleitung sie erwartete. Also stellte ich ein was ich fand und hoffte das Beste, übersetzte den Code und startete das Flashen.


UploadingBei der Übertragung gab es dann noch einige Verwirrung weil die meisten Tutorials sagten die Kabel an RX und TX müssten vertauscht werden, an meiner Kombination von Sonoff und FTDI ist das aber nicht der Fall. Ggf. ausprobieren, wenn nichts überträgt die Kabel RX und TX vertauschen. Man erkennt den Upload daran dass die LEDs am FTDI-Modul hektisch blinken und in Atom eine Fortschrittsleiste erscheint.


Das Flashen klappte... oder auch nicht. Auf einem Sonoff hatte ich ein spanisches Interface, das andere deutsch. Auf der Webseite des Schalters stand nur etwas von "pimatic", das war aber leider alles was der kleine Webserver des Schalters produzierte.


Ein erneutes Laden half auch nichts oder funktionierte gar nicht. 


Dann fand ich Ländereinstellungen in der Datei "platform.ini", aber wenn ich dort "SONOFF_DE" aktivierte erhielt ich einen Compilerfehler, der Compiler konnte verschiedene Modul nicht öffnen. Nach längerer Suche entschied ich mich dazu auf die Arduino-Oberfläche umzusteigen da ich diese besser kenne. Hier erhielt ich aber immer eine Fehlermeldung dass das include "PubSubClient.h" nicht gefunden werden konnte. Dieses war zwar installiert, aber wurde partout nicht gefunden egal wie ich meine Libraries und Umgebungen hin- und herschob.


Also ging ich nach Konsultation einiger Tutorials wieder zurück zu Atom und PlatformIO. Das Projekt liess sich immer noch nicht übersetzen, es fehlte an der Klasse "Ticker". Diese fand ich auch unter https://platformio.org/lib/show/1586/Ticker und lernte dass man in PlatformIO eine Kommandozeile namens "Terminal" öffnen kann in der man das Kommando "pio lib install "Ticker"" eingibt. Das machte ich und wurde von einer Meldung belohnt dass die Klasse installiert worden wäre. 


Allerdings ergab die Übersetzung noch die gleiche Meldung, zusätzlich wurde noch gesagt dass die Parameter im Konstruktor nicht stimmen und eine Funktion attach_ms fehlt.  Diese fand ich im Modul "Ticker-esp32" (https://platformio.org/lib/show/1938/Ticker-esp32) dessen Installation mit "pio lib install "Ticker-esp32"" erfolgt.


Die Compilermeldung blieb allerdings gleich. Allerdings konnte ich dieser entnehmen dass die Library "Ticker" in das Verzeichnis C:\\Users\\Carsten\\.platformio\\lib installiert worden war, die esp32-Version landete unter D:\\Develop\\Sonoff\\Sonoff-Tasmota-5.12.0\\.piolibdeps\\Ticker-esp32_ID1938\\. Könnte es ein Problem des Suchpfades sein? Also schnell das Verzeichnis unter C:\\ gelöscht und siehe da, die Übersetzung lief ohne Fehler durch.


Um die Übertragung zu starten muss man den Knopf gedrückt halten während man den Sonoff mit Strom versorgt, eine unhandliche Fingerübung. Dann lief die Übertragung aber durch.


BeimHochladenLeider meldet sich der Schalter zwar an der Fritzbox an, zeigt aber auf der zugewiesenen Webseite keine Daten an.


Verbinde ich mich aber mit dem Terminalserver "termite" (https://www.compuphase.com/software_termite.htm) mit dem via USB angeschlossenen Gerät sehe ich wie es mit dem MQTT-Broker kommunizieren will  (Die Anzeige funktioniert auch mit dem "Serial Monitor" von PlatformIO wie ich später herausfand). Das Übertragen der Firmware hat also funktioniert, aber der Webserver läuft nicht so wie ich mir das vorstelle. Ohne die Konfigurationsseite müsste ich jeden Schalter im Editor konfigurieren und bei jeder Änderung die Firmware neu übertragen. Das würde ich gerne vermeiden.


Das scheint mit dem Admin/User-Modus der Firmware zu tun zu haben, aber laut meiner Konfiguration sollte das Gerät im Admin-Modus laufen und den Webserver betreiben.


Als ich in der user_config.h den Wert 


#define MQTT_USE


auf 0 änderte sagte eine Zeile in Termite: 00:00:05 HTP: Web-Server aktiv bei sonoff-0731 mit IP-Adresse 192.168.178.26. 


Allerdings erschien unter dieser IP immer noch keine Webseite. Ich vermutete dass das Übersetzen der Codes nicht 100% funktioniert hat, der Schalter sucht nämlich immer noch den MQTT-Broker domus1:1883 obwohl ich ihn auf meine Umgebung angepasst habe. Also mal alles unter D:\\Develop\\Sonoff\\Sonoff-Tasmota-5.12.0\\.pioenvs\\sonoff-DE gelöscht und neu übersetzt. Auch das half aber nichts 


Erst nach längerer Suche fand ich die Ursache: die Einstellungen werden im Schalter intern gespeichert und nur überschrieben wenn sich der Define 


#define CFG_HOLDER 0x20161210 


ändert


Damit erscheint immer noch zwar keine Webseite, aber die neuen Parameter werden verwendet und der Schalter setzt sich theoretisch mit meinem MQTT-Broker in Verbindung. Ich habe allerdings wieder mal vergessen wo in Home Assistant ich die Logs dazu finde - unter dem MQTT-Modul sehe ich jedenfalls nichts vom Schalter.


Immerhin lässt sich der Schalter aber über die REST-Schnittstelle schalten. Diesen konnte ich aber nicht zufriedenstellend in Home Assistant einbinden. Hier stellt sich vermutlich wieder einmal die unhandliche Syntax der Parameter von Home Assistant quer.
Aber selbst wenn es funktionieren würde müsste ich dann aber für alle Schalter feste IPs vergeben, das wollte ich eigentlich vermeiden. Die Firmware die bei der Übertragung von Sonota via WLAN verwendet wird 


Als nächstes versuche ich es vermutlich einmal mit der Firmware V5.13.1 und/oder mit der älteren Version V5.9.1 die bei SonOTA verwendet wird.


Nachtrag und Lösung


Tatsächlich scheint die Version 5.12.0 ein Problem gehabt zu haben. Nachdem ich die 5.13.1 heruntergeladen habe konnte ich die Firmware beinahe problemlos übertragen.


Es gab nur drei Dinge die ich relativ schnell in den Griff bekommen habe.



    • der Pfad in dem PlatformIO die Daten erzeugen will existiert nicht und wird auch nicht angelegt. Ich musste im Verzeichnis ".pioenvs" manuell ein Verzeichnis "sonoff-DE" anlegen

    • die COM-Schnittstelle wird nicht automatisch erkannt sondern ist in der platform.ini festgeschrieben. Dort stand COM5, ich musste es manuell auf mein COM26 umstellen

    • genauso wurde die Baud-Rate nicht korrekt erkannt, bzw. in der platform.ini stand 512000 statt der 115200 die mein Modul kann. Das führte zu merkwürdigen Fehlermeldungen der Form
      "warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08"
      und
      "warning: espcomm_sync failed"
      Leider fand ich das erst nach längerer Suche heraus, denn in 5.12.0 waren diese Parameter nicht gesetzt und wurden automatisch korrekt bestimmt.


Mit dieser Information konnte ich jedoch die aktuellste Version der Firmware in den Schalter laden und per Web-Interface konfigurieren so wie ich das erwarte. Auch in Home Assistant werden die Schalter korrekt erkannt und ich kann damit beginnen sie zum Schalten meiner Lampen zu verwenden.


Nachtrag 2:


Als ich am folgenden Tag weitere Schalter flashen wollte hagelte es plötzlich wieder Compilerfehler. Nachdem ich aber alles im Verzeichnis ".\\pioenvs\\sonoff-DE" gelöscht habe funktionierte es wieder. Keine Ahnung was da schief gelaufen war.

Sonoff-Schalter als Sensoren

Da die chinesischen Sonoff-Schalter sehr günstig sind hatte ich geplant sie als Schalter einzusetzen. Leider habe ich noch nicht geschafft Home Assistant beizubringen die Schalter zu verwenden.


', '

Sonoff-Schalter als Sensoren


Ein Motiv dafür meine Beleuchtung auf Smarthome-Komponenten umzustellen war dass meine Lichtschalter ungünstig verteilt sind bzw. auch gar nicht funktionieren. Ich hatte geplant mir überall dort wo ich einen Schalter möchte Funkschalter zu installieren und diese über Home Assistant mit den Lampen zu koppeln. Allerdings sind diese Schalter relativ teuer, die günstigsten Wandschalter  die ich gefunden habe kosten etwa 30 Euro. Dagegen gibt es Sonoff-Schalter für fünf bis zehn Euro, je nachdem wo man sie kauft. Meine Idee war es diese als Wandtaster zu verwenden.


Zunächst habe ich mir drei Schalter besorgt die mit 5V betrieben werden können damit ich keinen Elektriker benötige. Diese habe ich dann mit der Tasmota-Firmware bespielt um sie in mein System zu integrieren und nicht mehr von einem Server in China abhängig zu sein. Dann mussten diese in Home Assistant eingebunden werden.


Die Tasmota-Firmware sendet MQTT-Sequenzen an einen zentralen MQTT-Broker den ich auf dem Raspberry eingerichtet habe. Sie in Home Assistant anzumelden erfolgt mit einem kleinen Konfigurationsblock den ich aus dem entsprechenden Home Assistant Forum übernommen habe. Sowohl als Schalter als auch als Licht konnte ich die Schalter problemlos einrichten:



switch:
- platform: mqtt
name: "Sonoff 210"
state_topic: "stat/sonoff/POWER"
command_topic: "cmnd/sonoff/POWER"
availability_topic: "tele/sonoff/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
retain: true

 
 Sonoff210 Switch
light:
  - platform: mqtt
    name: "Sonoff 211 - LED Licht"
    state_topic: "stat/sonoff211/POWER"
    command_topic: "cmnd/sonoff211/POWER"
    availability_topic: "tele/sonoff211/LWT"
    payload_on: "ON"
    payload_off: "OFF"
    payload_available: "Online"
    payload_not_available: "Offline"
    retain: true
 Sonoff211 Light


Schaltvorgänge und ob der Schalter verfügbar ist oder nicht erkennt Home Assistant problemlos.


Allerdings ist das Einrichten als Schalter nicht unbedingt sinnvoll, denn ein Schalter ist eher etwas das Home Assistant bedient und nicht abfragt. Korrekt wäre es eigentlich den Sonoff als Sensor einzutragen.


Dennoch habe ich versucht eine Automation zu erstellen die eine Lampe umschaltet je nachdem wie dieser Schalter steht - leider ohne Erfolg. Ob das daran liegt dass Home Assistant keine Schalter abfragen kann oder meine Konfiguration nicht stimmt weiß ich leider nicht.

Sonoff-Schalter

Sonoff Smarthome-Schalter


Ein Punkt der mich sehr an der Automatisierung interessiert hat sind die Sonoff-Schalter der Firma ITead. Dieses sind relativ billige Schalter die sich ins WLan hängen und darüber gesteuert werden können. Normalerweise bauen sie eine Verbindung zu einem chinesischen Server auf, aber das kann man ändern.


Wie verwendet man diese Sonoff-Schalter mit Home Assistant?


', '

 


Sonoff Smarthome-Schalter



Sonoff Schalter mit 5V-VersorgungSeit eingier Zeit lese ich von den "Sonoff"-Schaltern der Firma ITead. Diese sind sehr billig zu bekommen, beim Einkauf in China kostet das Stück vier bis sechs Euro wenn man bereit ist die Wartezeit in Kauf zu nehmen.


Normalerweise werden sie in die Stromleitung eingeschleift und schalten den Verbraucher dahinter. Das bedeutet dass Arbeiten mit diesen Schaltern nur von Elektrikern durchgeführt werden sollten. Es gibt aber auch eine Variante die mit 5V-Versorgung funktioniert und an einem USB-Anschluss betrieben werden kann und ich hoffte diese als dezentrale Schalter verwenden zu können ohne dass dahinter ein Verbraucher hängt.


So bestellte ich mir mal drei Stück (bei China-Bestellungen waren schon ein paar Mal defekte Geräte dabei) und wartete auf deren Ankunft.


Betriebsmodus


Zunächst bemerkte ich dass der Schalter immer nur für eine kurze Zeit an blieb. Nach kurzer Suche stellte sich heraus dass es zwei Betriebsmodi gibt: "inching" und "self-lock". Umgestellt werden diese mit dem unteren Schalter, der Schalter hinter der USB-Buchse ist der Ein/Aus-Schalter.


Im "Inching"-Modus bleibt der Schalter für eine Sekunde aktiv und schaltet sich dann wieder ab. Damit kann der Sonoff ideal als Umschalter verwendet werden. 


Der "Self-Locking" -Modus ist eher wie ein normaler Lichtschalter. 


Nach Hause telefonieren


Normalerweise verbindet sich der Schalter mit einem Server on China und sendet die Befehle dorthin und wieder zurück. Die Steuerung erfolt mit einer eigenen chinesischen App.


Das wollte ich so natürlich nicht. Es ist mir zwar relativ egal ob ein Chinese überwacht wann ich mein Licht einschalte, aber ich will nicht NOCH eine App verwenden sondern den Schalter in Home Assistant integrieren. Von der Laufzeit und der Gefahr dass der Server irgendwann einmal nicht mehr funktioniert ganz abgesehen.


Glücklicherweise ging das anderen Leuten auch so und so wurde eine neue Firmware \'Tasmota\'  erstellt die keinen chinesischen Server mehr benötigt. Normalerweise benötigt man dazu aber die Arduino-Umgebung sowie einen USB-auf-Seriell-Konverter. Um das wiederum zu vermeiden hat jemand das Programm SonOTA geschrieben mit dem das gesamte Update über das WLAN erfolgen kann.


Sonoff über WLAN auf Tasmota-Firmware umstellen


Man benötigt einen PC mit WLAN der auch ins Internet kann, idealerweise über ein zweites Netzwerk denn der Zugang zum WLAN wird später gekappt.


Außerdem darf der Sonoff-Schalter keine Firmware von (für Sonoff Basic) 1.6 oder höher haben, denn bei dieser weigert sich der Schalter die neue Firmware zu akzeptieren. 


Ich habe die Version unter Windows laufen lassen, darum erkläre ich dieses Vorgehen.


Zuerst startet man Sonota.exe, wählt den WLAN-Adapter aus und gibt die Zugangsdaten für das WLAN an. Diese werden später an den Sonoff weitergegeben damit er sich ins WLAN einwählen kann. Wenn man eine Kommandozeile oder Powershell startet kann man auch Parameter mitgeben:


sonota.exe --wifi-ssid <Name des WLAN> --wifi-password <Passwort>


Damit spart man sich die erneute Eingabe wenn man mehrere Schalter umprogrammieren will.


Dann schließt man den Sonoff an den Strom an und setzt ihn in den Einrichtungsmodus. Dazu muss man den Ein/aus-Taster für ca. sieben Sekunden gedrückt halten bis die LED zu blinken beginnt. Bei manchen Schaltern (bei meinen zum Beispiel) musste ich dann den Schalter erneut für sieben Sekunden gedürckt halten bis er schnell blinkte.


Danach erscheint ein neues WLAN mit Namen ITEAD<XXXXXX> wobei <XXXXXX> eine kryptische Ziffernfolge ist. Mit diesem verbindet man sich, das Passwort ist 12345678.


Das Sonota-Programm wird sich daraufhin mit dem Schalter verbinden und loslegen - und dann irgendwann stehen bleiben. Spätestens hier muss man die Windows-Firewall komplett deaktivieren. Ich habe versucht geringere Freigaben zu schalten, aber nur die komplette Abschaltung nutzte etwas.


Irgendwann erscheint dann ein WLAN "FinalStage". Das ist das Zeichen dafür dass man die Verbindung beenden und den Schalter neu starten kann. Bei mir war das meiner Erinnerung nach nicht notwendig, ich konnte mich direkt mit diesem WLAN verbinden. Der Schalter war dann im Browser unter 192.168.4.2 zu finden und im dargestellten Menü müssen dann die eigenen WLAN-Daten erneut eingegeben werden. Nach einem Neustart meldet sich der Schalter dann im heimischen WLAN an und erhält von diesem eine IP-Adresse. Auch die Firewall kann man jetzt wieder einschalten. 


 Ab sofort läuft der Schalter über die Tasmota-Firmware und ohne eine Verbindung nach China.