Samstag, 27. Oktober 2018

Smart Home Teil 2 von X - Sonoff mit Tasmota flashen

Damit man die Sonoff Schalter im IO-Broker nutzen kann, und diese nicht mehr nach China telefonieren, sollte eine alternative Software aufgespielt werden - und die heißt Tasmota
Es lassen sich nahezu alle Sonoff Geräte mit dieser Methode programmieren (Basic, S20, TH10, TH16, POW, Dual, uvm....)
Zusätzlich funktionieren auch Blitzwolf Smart Stecker mit Energy Monitoring (baugleich mit den Gosund) wie auch die begehrten Shelly 1 und Shelly 2.
Letztere müssen allerdings nicht mehr unbedingt programmiert werden, da die aktuelle Firmeware bereits MQTT beherrscht. Blitzwolf und Gosund sind vor allem preislich sehr attraktiv.

Als alter Hardware-Guru habe ich natürlich die Variante mit der bedrahteten Programierung gewählt.
Diejenigen die elektronisch nicht so sattelfest sind sollten zur OTA (over the air,) oder auch SonOTA Variante genannt, greifen.

Der in den Sonoff's verbaute ESP8266 Prozessor bietet zum Programmieren eine serielle Schnittstelle, ähnlich wie man sie damals in den PC's verbaut hat. Heut zu Tage findet man diese Schnittstellen allerdings nicht mehr an Computern, da sie durch den USB Standard ersetzt wurden. Aber es gibt Adapter, welche das USB Format auf ein RS232 Signal  (allerdings mit 3,3V Pegel) umsetzten. Um den ESP8266 in den Programmiermode zu bringen, muss man einen seiner vielen Aus- und Eingänge auf "0" legen und gleichzeitig die Versorgungsspannug einschalten. Logisch "0" bedeutet lediglich dass man diesen einen Pin mit Masse verbindet. Dieser eine Pin ist genauer gesagt der GPIO 0 Anschluß (GPIO = general purpose input output) und kann bei den meisten Sonoff  mit den Taster auf Masse gelegt werden.

Programmiersoftware

Das geniale an den Sonoff Schalter ist, dass diese via Arduino Tools programmiert werden können. Arduino Prozessoren und auch deren Platinen sind bei Entwicklern oder Bastlern sehr beliebt. Dementsprechend groß ist auch die Community. Ich habe auch erst mit den Sonoff's begonnen, Prozessoren selbst zu programmieren (muss ich zu meiner Schande gestehen). Darum denke ich auch, dass es auch von nicht so technisch versierten Personen zu bewältigen ist.
Jedenfalls heißt die Entwicklungsumgebung "Atom" und kann gratis https://atom.io/ herunter geladen und installiert werden. Nach der Installation präsentiert sich Atom so:
Nun muss noch PlatformIO hinzugefügt werden (Install a Package - Platformio eingeben - platformio_ide installieren):









Ziemlich wahrscheinlich muss zwischendurch noch ein Treiber installiert werden:
und dann heißt's warten biss alles fertig ist:



Tasmota Software

Die alternative Software zu den Sonoff WLAN Schalter heißt Tasmota und kann unter https://github.com/arendst/Sonoff-Tasmota herunter geladen werden. Dazu muss man auf den "Clone or Download" Button klicken und dann "Download as ZIP" auswählen.
Dieses ZIP-File entpacken und in einen Ordner am PC speichern. Dieser Ordner kann dann in Atom/PlatformIO als Projekt angelegt werden.


Vorbereiten aufs Programmieren

Windows benötigt für den USB Adapter einen Treiber: https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
Ist der Treiber installiert und der Adapter angesteckt, sollte man den Gerätemanager öffnen und sich den COM-Port (COM1-COMX) merken, da man diesen dann in die Platformio.ini Datei eintragen muss.
Zusätzlich muss die Tasmota Software entsprechend editiert werden, bevor man sie programmiert. So muss zum Beispiel der Name des WLAN und passender WLAN-Key eingetragen werden, mit dem sich der Sonoff zukünftig verbinden soll. Hier können gleich zwei WLAN-Netzwerke eingetragen werden.
Dazu öffnet man im Atom den Ordner "Sonoff" und wählt dort die user_config.h aus. Danach scrollt man zu den Zeilen "#define STA_SSID1" und trägt seine Daten zwischen den Anführungszeichen "" ein.
Ist das erledigt, kann die Datei gespeichert werden.
Danach öffnet man im Hauptverzeichnis die platformio.ini Datei. In dieser entfernt man die Strichpunkt (;) am beginn der Zeile "env_default = sonoff-DE". Dadurch wird nur die deutsche Sprache programmiert. Selbstverständlich lässt sich auch eine andere Sprache auswählen. Ob mehrere funktionieren weiß ich allerdings nicht.
Weiter unten sollte noch der richtige COM-Port editiert (den man hoffentlich gemerkt hat) und die "upload_speed"  kontrolliert werden (115200).
Mehr ist nicht zu ändern. Speichern nicht vergessen.

Sonoff vorbereiten

Beispielhaft  wird hier der Sonoff S20 gezeigt, da dieser wahrscheinlich am häufigsten genutzt wird.
Natürlich muss mal das Gehäuse geöffnet werden:










Der Programmieranschluß sitzt in der Mitte der Leiterplatte und die Signalnamen sind sogar aufgedruckt. Aber die Platine muss von der Rückwand gelöst werden, um eine Stiftleiste auf auflöten zu können.









Stifleiste aufgelötet:














An diesen Pins der Stiftleiste wird anschließend der Programmieradapter mit den mitgelieferten Kabel  angeschlossen.
3,3V oder 3V3 (ist das Gleiche, nur unterschiedliche Schreibweise) wird mit den gleichnamigen Stift auf dem Adapter verbunden. Ebenso macht man das mit GND (Gound oder Minus). RXD vom Sonoff wird aber mit TXD vom Adapter verbunden, sowie TXD vom Sonoff auf RXD vom Adapter
angeschlagen wird.
RX(D) ... Receive Data
TX(D) ... Transmit Data
Die Empfangsleitung wird mit der Sendeleitung verbunden.
Um den WLAN-Schalter in den Programiermodus zu bringen, muss nun während der Adapter in die USB--Buchse gesteckt wird, gleichzeitig der Taster gedrückt werden. Danach kann der Taster wieder losgelassen werden.
Die LED darf dabei nicht leuchten.
WICHTIG: Den Sonoff nicht ans Netz anschließen. Versorgt wird die Platine beim Programmieren über den USB Adapter!

Programmieren

Vor dem Programmieren wird das Softwarepaket gebildet. Dazu muss üben links der Build Button gedrückt werden.
Es öffnet sich ganz unten ein Fenster, in dem die Prozedur aufgelistet wird. Wenn alles funktioniert hat, schließt sich das Fenster selbstständig.
Nun kann auf Upload gedrückt werden. In diesem Schritt wird der Microprozessor tatsächlich beschrieben.









Es öffnet sich auch hier unten ein kleines Fenster. Wenn nach einigen Sekunden oder etwa einer Minute die Prozentanzeige erscheint (wie oben am rechten Bild zu sehen ist) sollte alles geklappt haben. Die Programmierung wird durchgeführt. Auch hier schließt sich danach das Fenster wieder selbstständig.

Zum Testen kann man den USB Adapter ausstecken und wieder einstecken. Dadurch wird der Sonoff neu gestartet und sollte sich nur mit dem WLAN verbinden.


Tasmota einstellen

Als aller erstes muss man die zugewiesene IP Adresse des Sonoff herausfinden. Dazu muss man in seinen Router einsteigen und nach dem neuen Gerät suchen. Hat man eine Fritz!Box tippt man einfach in den Browser "fritz.box" ein und wählt den den Punkt "Netzwerk" aus. Im Untermenü wird wieder "Netzwerk" gewählt.

Hat man die IP adresse  (idR: 192.168.XXX.XXX oder 10.0.0.XXX ) tippt man diese im Webbrowser ein und der Webserver des Sonoffs zeigt sich wie folgt:
In den Menü Einstellungen kann der Sonoff parametriert werden.












Unter "Gerät konfigurieren" müssen die Grundeinstellungen vorgenommen werden. Unter Gerätetyp wird der passende Sonoff Typ eingestellt. Wenn man einen TH oder einen POW programmiert hat, muss hier die entsprechende Type gewählt werden. Für den Sonoff S2 wird "Sonoff S2X" eingestellt.
Ebenso kann der Sonoff Basic noch mit weiteren Sensoren und Aktoren (Relais,...) erweitert werden, wozu die entsprechenden GPIO's konfiguriert werden müssen. Natürlich funktioniert das nur, wenn auch ein entsprechender Sensor o.ä. verbaut wurde. In einem der nächsten Beträge, werde ich über einen derartigen Umbau berichten.
Nach dem Speichern startet der Sonoff neu.

Das Gerät ist jetzt einsatzbereit. Das Relais kann entweder mit dem Taster oder mit der Web-Oberfläche geschalten werden. Mann kann das Teil aber auch als Zeitschaltuhr verwenden.
Dazu kann man in den Einstellungen einen Zeitplan konfigurieren.
In diesem Menüpunkt können 16 Schaltzyklen eingestellt werden. Ein Schaltzyklus wäre zum Beispiel: Ausschalten um 12:00 Uhr. Zusätzlich kann noch gewählt werden, an welchen Wochentagen dieser Zyklus geschalten werden soll, und ob sich das Schaltprogramm wiederholen soll. Wichtig ist bei "Aktiv" das Häckchen zu setzen, sonst ist die Einstellung nicht aktiviert.
Uhrzeit: Damit die Uhrzeit für uns Mitteleuropäer (Deutschland Österreich , Schweiz,...) passt, muss im Menüpunkt "Konsole" der Befehl "Timezone 99" eingegeben werden. Sommer- und Winterzeit wird automatisch umgeschalten. Ich verwende so ein Teil für die Weihnachtsbeleuchtung, da ich hier die Lichter bei Sonnenaufgang ausschalten und bei Sonnenuntergang wieder einschalten kann ;-)

Im übrigen begnügt sich der Sonoff S20 mit 0,7W im Leerlauf und mit 1,3W im eingeschaltetem Zustand (mit professionellem Equipment gemessen - Yokogawa WT1600)

Will man nun die Sensoren mit IoBroker oder FHEM verbinden, muss MQTT konfiguriert werden. Dabei ist folgendes zu tun:

Beim Host trägt man einfach die IP Adresse ein, auf welchen Rechner (ZB. der Raspberry PI) der IoBroker läuft. Unter Client wird jener Name eingetragen, unter dem sich der Sonoff im IoBroker Anmelden soll. Es macht Sinn, hier einen Namen zu Verwenden, der auf die Funktion des Gerätes hinweist...zB. Temperatur_Wohnzimmer . Dieser eine Sonoff hat bei mir mehrere Anwendungen, warum ich ihn Schuko_01 getauft habe. Es wird einen Bericht dazu geben...
Benutzername und Passwort sollten mit dem Sonoffadapter im IoBroker übereinstimmen. Unter Topic trägt man schlicht und einfach "sonoff" ein.
Beim Speichern führt der Schalter erneut einen Neustart aus, und meldet sich im IoBroker an:
Wenn das mal geschafft ist, kann man auch schon in die Dunstwolke der Automatisierung eintreten :-)








1 Kommentar:

  1. Hi, es gibt den Sonoff Basic jetzt auch bei Amazon mit der geflashten Tasmota Firmware zu kaufen: https://www.amazon.de/dp/B07CLDDY2G
    Vielleicht hilft der Link ja denen, die beim Flashen selbst nicht weiter kommen.
    Die liefern auch nach Österreich.

    AntwortenLöschen