Starkstrom per WLAN schalten

Posted on So 10 Februar 2019 in Computer & Electronics

Seit dem Umzug aufs Land habe ich eine schöne große Werkstatt im Nebengebäude. Das ist toll und ich freu mir ein Loch in den Bauch! Dummerweise ist gerade Winter und da ist es traditionell saukalt draußen – und in meiner Werkstatt auch, denn die ist weder isoliert, noch hat sie eine Heizung.

Also Abhilfe schaffen: ein Bauheizer musste her: TROTEC TDS 50 E – schönes Teil: gar nicht so groß, schön rot, 9kW, Drehstromanschluss und hat keine 100€ gekostet. Drehstrom liegt schon, also steht einem Test nichts im Wege. Tür zu, Stecker rein, einschalten, auf Wärme warten. Geht ganz gut das Ding. Bei den aktuell herrschenden leichten Minusgraden wird die Raumtemperatur nach ca. 20 Minuten ganz ok. Wenn ich mal Zeit habe messe ich das mal nach.

Oh Trägheit

Leider muss man aber diese 20 Minuten erstmal überleben. Es wäre doch viel schöner, wenn ich den Heizer gemütlich aus der wohligen Wärme des Hauses starten könnte. Sollte ja nicht so schwierig sein – die WLAN-Steckdose ist ja schon erfunden. Leider gilt das aber wohl nur für die Haushaltsvariante mit 230V. Jedenfalls habe ich bei Sonoff und Co keine Lösung für Starkstrom gefunden. Das kann ja wohl nicht wahr sein? Man will mir Werkstattwärme verwehren! Verrat!

Selbst ist der Mann!

Kann ja nicht so schwierig sein sowas selber zu bauen. Das schwierigste war, ein geeignetes Relais zu finden. Starkstrom ist ja nicht einfach eine andere Spannung, als Haushaltsstrom, sondern es handelt sich ja um Drehstrom: 3 Phasen mit je 120° Verschiebung gegeneinander. Jede einzelne davon hat 230V gegenüber dem Neutralleiter. Nun könnte man auf die Idee kommen, einfach nur den Neutralleiter über ein Relais zu schalten – das wäre aber garnicht schlau, denn je nach Schaltung des angeschlossenen Geräts fließt oft garkein Strom durch den Neutralleiter, sondern zwischen den Phasen. Also müssen wir alle Phasen schalten und am besten den Neutralleiter auch. Ein 4-fach Relais also. Eine Weile habe ich gesucht und schließlich gelernt, dass das was ich suche nicht Relais, sondern Schütz heißt. Wer mag kann die Feinheiten bei Wikipedia nachlesen.

So ein Schütz wird meist mit 230V geschaltet – also nix mit IO-Pin des Microcontrollers direkt dran oder so. Zuerst habe ich überlegt einen ESP8266 zu nehmen, ein kleineres Relais zu suchen und damit das Schütz zu schalten. Doch dann fiel mir auf, dass ich gerade versuche, den WLAN Schalter zu erfinden. Den gibt's schon, er kostet nun auch nicht die Welt, hat ein CE Zeichen und ein Gehäuse.

Nach ein bisschen Suche in den Weiten des Netzes hatte ich meine Einkaufsliste zusammen:

Firmware flashen

Statt der chinesischen Standard-Software hätte ich lieber TASMOTA auf dem Sonoff drauf. Chinesische Apps sind normalerweise nicht das gelbe vom Ei und ich will auch in keiner chinesischen Cloud sein. Also lieber Open-Source. Dazu habe ich das gute Stück erstmal geöffnet und mir die Platine näher angeschaut:

Man kann ganz gut erkennen, dass hier zwei Gruppen zu je 4 unbevölkerten Headern zu finden sind. Die Gruppe in der Mitte der Platine ist es, die die UART Schnittstelle liefert (von oben: GND, TX, RX, 3.3V). Auf der PCB Rückseite sind die Pins freundlicherweise beschriftet. Zunächst mal Pins reinlöten, damit das Programmieren nicht so frickelig ist.

Die Programmierung erfolgt mittels esptool.py und einem chinesischen USB-UART Adapter. Dazu besorgen wir uns erstmal das esptool:

pipx install esptool

Um die Verwirrung des geneigten Lesers perfekt zu machen gibt es neben diesem esptool, das inzwischen auch vom Hersteller des Chips unterstützt wird noch mindestens ein weiteres Stück Software mit dem Namen esptool: esptool-ck. Das ist in C geschrieben, in den Debian Repositories enthalten und erwartet natürlich ganz andere Optionen. Also aufpassen, welche Version Ihr habt.

Als nächstes brauchen wir ein Tasmota Firmware Image:

wget https://github.com/arendst/Sonoff-Tasmota/releases/download/v6.4.1/sonoff.bin

Nun den Sonoff mit dem UART Adapter verbinden:

  • Sonoff vom Strom trennen und aufschrauben
  • Unbedingt einen 3.3V UART Adapter verwenden
  • Sonoff an UART Adapter anschließen
UART-Adapter Sonoff
GND GND
RX TX
TX RX
3.3V 3.3V

Achtung! Niemals den USB-UART Adapter und die Netzspannung gleichzeitig anschließen!

Nun müssen wir den Sonoff in den Flash-Mode bringen:

Dazu muss der Taster gedrückt sein, während die Versorgungsspannung eingeschaltet wird. Also den Taster am Sonoff gedrückt halten, UART-Adapter in den Computer stecken und dann Taster wieder loslassen.

Als erstes machen wir mal ein Backup der original-Firmware:

esptool.py --port /dev/ttyUSB0 read_flash 0x00000 0x100000 image.bin

Das Tool spuckt allerhand Unterhaltsames aus während der Vorgang läuft:

esptool.py v2.6
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... ESP8266
Chip is ESP8285
Features: WiFi, Embedded Flash
MAC: xx:xx:xx:xx:xx:xx
Uploading stub...
Running stub...
Stub running...
1048576 (100 %)
1048576 (100 %)
Read 1048576 bytes at 0x0 in 95.1 seconds (88.2 kbit/s)...
Hard resetting via RTS pin...

Die MAC Adresse habe ich zensiert, ansonsten ist es der original Output. Der Chip ist also ein ESP8285. Der hat 1MB (= 0x100000 byte) integrierten Flash-Speicher an Bord. So erklärt sich der im Befehl angegebene Adressraum.

Nun löschen wir den Flash Speicher. Dazu müssen wir den Sonoff erneut in den Flash-Mode bringen (s.o.) und dann:

esptool.py --port /dev/ttyUSB0 erase_flash

Und zuguterletzt kommt das Tasmota-Image drauf. Dazu ein letztes mal in den Flash-Mode bringen gefolgt von:

esptool.py --port /dev/ttyUSB0 write_flash -fs 1MB -fm dout 0x0 sonoff.bin

Sonoff ins Wlan bringen

Jetzt muss der Sonoff noch ins Wlan eingebunden werden. Theoretisch kann man das schon vor dem Flashen konfigurieren – dazu müsste man das in einem Source File konfigurieren und sein image selber compilieren. Aber ich habe mich für die faule Variante entscheiden:

Einfach den Sonoff mit Strom versorgen (durch den USB-UART Adapter oder 230V) und dann spannt er ein WLAN auf. Bei meinem hatte es die SSID sonoff-5502. Mit dem müsst Ihr Euch verbinden. Mir hat er dann die IP-Adresse 192.168.4.2 zugewiesen. Der Sonoff selbst hat 192.168.4.1 – die im Browser aufrufen und schon seid Ihr im Config-Interface:

Hier die SSID Eures WLANs eingeben und den Key dazu. Auf save drücken, fertig. Der Sonoff rebootet nun automatisch und versucht sich mit Eurem Wlan zu verbinden.

Da ich den Sonoff nicht ans Stromnetz angeschlossen hatte, sondern einfach den USB-UART Adapter dran gelassen und ihn so mit Strom versorgt hatte habe ich den angenehmen Nebeneffekt, dass ich ein den Genuss einer seriellen Konsole komme über die er Statusinfo ausgibt:

$ cu -l /dev/ttyUSB0 
Connected.
18:43:36 MQT: Attempting connection...
18:43:37 DNS: Query done. MQTT services found 0
18:43:48 MQT: Attempting connection...
18:43:49 DNS: Query done. MQTT services found 0
18:43:50 RSL: stat/sonoff/RESULT = {"POWER":"OFF"}
18:43:50 RSL: stat/sonoff/POWER = OFF
18:44:00 MQT: Attempting connection...
18:44:01 DNS: Query done. MQTT services found 0
18:44:06 RSL: stat/sonoff/RESULT = {"POWER":"ON"}
18:44:06 RSL: stat/sonoff/POWER = ON
18:44:12 MQT: Attempting connection...
18:44:13 DNS: Query done. MQTT services found 0

Im Wesentlichen jammert er, dass er niemanden zum Spielen gefunden hat. Und zum Trost hab ich zwischendurch zweimal den Knopf gedrückt – daher die POWER = ON/OFF Meldungen.

Aber zurück zur Einbindung. In der Fritzbox habe ich nun nachgeschaut, ob und unter welchem Namen das neue Gerät auftaucht:

Super – da isser ja! Nun kann man ihn über sein Web-Interface nach Herzenslust weiter konfigurieren:

Hutschienenadapter

Das Schütz ist eh schon für die Montage auf eine Hutschiene (aka DIN-Rail) gedacht und das fand ich praktisch und so habe ich beim Gehäusekauf gleich auf eines mit Hutschiene geachtet. Der Sonoff Switch ist dafür allerdings nicht gedacht und so musste ich erstmal schauen wo ich einen Hutschienenadapter herkriege. Die scheinen aber nicht auf Bäumen zu wachsen und was direkt passendes für den Sonoff Schalter habe ich nicht gefunden. Also selber drucken. bei Thingiverse habe ich ein Design gefunden, das ganz brauchbar aussah. Den Sonoff Schalter habe ich dann einfach mit Kunststoffkleber auf den Clip gepappt:

Verkabeln

Nun den Sonoff wieder schön zusammenbauen und das Ganze verkabeln. Dazu habe ich erstmal das Verlängerungskabel im Verhältnis 1/3 zu 2/3 geteilt, wobei das kurze Stück das mit der Dose ist, so dass der Stecker mehr Kabellänge hat. Dann Kabelenden abmanteln, alle fünf Leiter ein Stück weit abisolieren und Aderendhülsen aufpressen, damit alles schön Kontakt hat. Beide Kabel durch die Würgenippel durchfummeln und als Zugentlastung je einen Kabelbinder auf der Innenseite schön fest draufmachen. Ja – eine Kableverschraubung wäre besser. Vielleicht rüste ich die irgendwann mal nach.

Am Eingang (CEE Stecker) alle drei Phasen und den Neutralleiter auf die Eingänge des Schütz klemmen. Eine der Phasen und den Neutralleiter müssen wir zudem auf den Sonoff klemmen, damit der Strom hat. Der Ausgang des Sonoff wird dann auf die Steuerkontakte des Schütz geklemmt (A1/A2). Zuletzt dann die Ausgänge des Schütz auf das Kabelende mit der Drehstromdose ("Ausgang") schalten. Der Schutzleiter wird vom Eingang zum Ausgang durchgeschleift.

Alles schön auf die Hutschiene und rein ins Gehäuse, Deckel drauf, zuschrauben – fertig. Soweit die Theorie – aber das vermaledeite Schütz ist ca. 5mm zu dick/tief für den blöden Gehäusedeckel und so geht das verfluchte Gehäuse nicht zu! Grrrr Argl Grumpf #@!#!!!

Also wieder zu Iii-Bä und ein etwas tieferes bestellen, 3 Tage warten, alles ins neue Gehäuse einbauen und:

:-)

Stunde der Wahrheit

Nun muss das Meisterwerk natürlich ausprobiert werden. Also schnell in die Werkstatt, Bauheizer an die Konstruktion anschließen, Stecker rein und Handy zücken, um die Wärme auf Kommando fließen zu lassen!

Und was soll ich sagen? Es funktioniert! Einfach so! Kein Blitz, kein Feuer, kein Knall – es geht einfach: Warmer Luftzug in der Werkstatt – schön!!!