ZigBee, Zwischenstecker und Tasmota
Themen in diesem Beitrag:
- ZigBee: besser als proprietäre Apps beim Aufbau der Home-Automation.
- Tipps für den Kauf von Zwischensteckern
- Tasmota kennen lernen: Konfigurieren der Tasmota-Firmware für einen Zwischenstecker
- Node-Red und die Tasmota-Firmware
Was wird hier nicht behandelt:
- Ersatz der Firmware von proprietären Wifi-Komponenten durch die Tasmota-Firmware
- Tasmota für die Microcontroller ESP-8266 und ESP-32
Diese Themen werden in weitere Beiträgen behandelt
1 ZigBee
Über ZigBee habe ich schon in der Ausgabe 172 geschrieben: https://clubcomputer.at/2022/02/02/das-automatische-heim-mit-zigbee/
Kurz zur Erinnerung: ZigBee ist eine Spezifikation für drahtlose Netzwerke, die in der Home-Automation weit verbreitet ist. Viele Komponenten, wie Schalter, Lampen oder Zwischenstecker, können mit Apps wie SmartLife oder eWeLink zwar sehr einfach und durchaus komfortabel gesteuert werden. Der Nachteile:
- Daten des Heimnetzes (SSID [Accesspointname] und Passwort) müssen in die App eingetragen werden. Diese Daten werden in einem zentralen Server (vermutlich in China) gespeichert. Wollen wir das? Und überträgt die App beim Nach-Hause-Telefonieren (© E.T.) vielleicht noch andere Daten?
- Der Umweg über China verzögert die Steuerung.
- Die Steuerung läuft über das WLAN – besser wäre ein eigenes, sicheres Netz
- Was passiert, wenn dieser zentrale Dienst nicht funktioniert? Dann „steht” die Steuerung.
Auch wenn die Apps viele Einstellmöglichkeiten bieten, können Sonderwünsche kaum erfüllt werden. Somit spricht viel für eine lokale Lösung. Eigene Problemstellungen können umgesetzt werden. Für technikaffine Menschen ein weites Betätigungsfeld! Die Tasmota-Firmware spielt dabei eine wichtige Rolle – mehr darüber in diesem Beitrag.
Und was kommt als nächstes? Viele verschiedene Standards machen den Konsumenten das Leben schwer. Der neue Standard „Matter” ermöglicht die Kommunikation zwischen Komponenten unterschiedlicher Hersteller. Mit Tasmota geflashte Bauteile können über ein Matter-Gateway verbunden werden.
2 Zwischenstecker
Eine beliebte Anwendung der Home-Automation ist das Schalten von beliebigen Verbrauchern über einen Zwischenstecker, der (wie der Name sagt) zwischen Steckdose und Verbraucher geschaltet wird. Worauf ist beim Kauf zu achten?
Die schlechte Nachricht
Bei Lidl werden die ZigBee-Silvercrest-Komponenten nur mehr in Reststücken verkauft. Schade.
Die gute Nachricht
Auf der Amazon-Webseite gibt es Ersatz. Wer Amazon nicht mag, kann ja selbst im Internet andere günstige Angebote suchen, leider oft mit unangenehmen Versandkosten.
ZigBee
Ich behandle hier die Home-Automation mit ZigBee, daher muss auch „ZigBee” auf der Verpackung stehen. „WiFi”-Zwischenstecker sind meist etwas billiger, aber binden den Zwischenstecker fast immer an proprietäre Software. Wichtig bei der Auswahl!
Größe
Das Bild zeigt drei verschiedene Zwischenstecker.
Der erste ist von IKEA und belegt zwei Plätze auf der Steckerleiste, der zweite sogar drei! Nur der dritte Typ („Gosund”, auch unter anderen Namen erhältlich) ist so konstruiert, dass die Nachbarplätze nicht belegt werden und somit auch zwei Zwischenstecker nebeneinander Platz finden. Meine Empfehlung!
Lokaler Schalter
Der Zwischenstecker soll einen Taster haben, damit der Verbraucher auch lokal ein- und ausgeschaltet werden kann. Leider nicht selbstverständlich – so fehlt beispielsweise beim IKEA TRÅDFRI-Zwischenstecker dieser Taster. Unbedingt darauf achten!
Messfunktion
Zwischenstecker, die Strom, Spannung, Leistung, Energie und in manchen Fällen auch den Leistungsfaktor messen, kosten auch nicht mehr. Meine Empfehlung!
3 Was ist nun Tasmota?
Meine ersten Versuche mit der Home-Automation habe ich mit WiFi-Komponenten gemacht. Die Nachteile waren bald klar: WLAN-Daten in eine chinesische App eintragen, überlastetes 2,4-GHz-Netz in der näheren Umgebung, wenig Konfigurationsmöglichkeiten usw. ZigBee hat dagegen viele Vorteile.
Viele Komponenten der Home-Automation verwenden das Heim-WLAN. Manche können für ZigBee umprogrammiert werden – das 2,4-GHz-Band wird ja ebenso verwendet. So hat die Firma Sonoff viele interessante Komponenten zum Schalten und Steuern herausgebracht, meistens mit dem ESP8266 Chip. Die Komponenten werden für die WLAN-Anwendung mit zentralem Server ausgeliefert. Erfreulicherweise bereitet Sonoff seine Geräte auf ein Umprogrammieren („Flashen”) vor, um diese Abhängigkeit zu entfernen. Theo Arends hat das Programm Tasmota entwickelt, um dieses Umprogrammieren zu vereinfachen.
Tasmota steht für Theo-Arends-Sonoff-MQTT-OTA. MQTT (MQTT – Wikipedia ) ist das Protokoll von ZigBee und OTA steht für „Over the air”, also für das drahtlose Umprogrammieren. Inzwischen kann Tasmota auch für Nicht-Sonoff-Geräte verwendet werden. Siehe https://www.tasmota.info/
Sobald die Tasmota-Software installiert ist, kann die Funktion mancher Bauteile zusätzlich verändert oder erweitert werden. Diese Bauteile können dann für ZigBee konfiguriert und in einer Home-Automation-Steuerung eingesetzt werden.
Und was mache ich mit meinen alten WiFi-Komponenten? Soweit möglich mit Tasmota flashen!
4 Zwischenstecker-Angebote im Internet
Ich habe Angebote mit 45 € pro Stück (!) gefunden: groß, ohne Leistungsmessung, aber dafür von einem namhaften Hersteller. Ja, immer noch herrscht bei einigen die Goldgräberstimmung! Da zahlt es sich schon aus, noch ein wenig weiter zu suchen.
Mein Vorschlag: Zwischenstecker wie im Bild ganz rechts. Sie sind unter verschiedenen Bezeichnungen wie Gosund oder NOUS erhältlich. Ich vermute, dass alle von demselben Produzenten in China kommen. Hier geht es um die Versionen NOUS A1Z, A1T und A1. Alle Preise habe ich von der Amazon-Webseite.
- Der Zwischenstecker NOUS A1Z ist schon für ZigBee vorbereitet. 4 Stück davon kosten 55,45 €. Das ist zwar der teuerste Stecker in dieser Reihe, aber er kann sofort in einer ZigBee-Homeautomation verwendet werden. Klein, schaltet 16 A und misst elektrische Größen. Siehe Abschnitt 5.
- Den Typ NOUS A1T gibt es um 50,41 € für 4 Stück, also etwas mehr als 12 € pro Stück. Elektrischen Daten wie beim A1Z. Tasmota ist installiert, aber noch nicht für ZigBee konfiguriert. Mehr dazu im Abschnitt 6.
- Die „GHome Smart WLAN Steckdose” entspricht dem NOUS A1 und ist etwas billiger: rund 39 € für 4 Stück. Mehr im Abschnitt 7.
5 Der schnellste Weg: NOUS A1Z
Der Zwischenstecker A1Z ist schon für ZigBee vorprogrammiert. In der Packung liegt eine Beschreibung bei, die die Installation einer App empfehlt. Genau das wollen wir nicht. Die App ist aber nicht notwendig, den Hinweis einfach ignorieren!
Mit Node-Red kann der Zwischenstecker sofort verwendet werden. ZigBee und Node-Red sollten schon eingerichtet und aktiv sein, um den adaptierten Stecker gleich ausprobieren zu können.
Der Vorgang ist immer derselbe. Zuerst den Zwischenstecker ans Netz anschließen, eine rote LED beginnt zu blinken. Dann in der ZigBee-Bridge das Anlernen aktivieren: „Start searching devices for 3 minutes” anklicken.
Nach ein paar Sekunden hört die LED auf zu blinken – fertig. Das Anlernen kann wieder deaktiviert werden. Nach 3 Minuten endet die Suche nach neuen Komponenten auch automatisch. „Refresh all data” anklicken, dann „Devices”. Und da ist schon der neue Stecker:
Vorläufig ist der Name gleich der IEEE-Adresse (0xa4c…). Benennen wir den Zwischenstecker auf „A1Z-2” um – es ist mein zweiter A1Z-Zwischenstecker. Abspeichern mit „set” nicht vergessen!
Hier ein einfacher Node-Red Flow zum Testen des Steckers:
Der erste inject-node schickt zum Umschalten {„state“:“toggle“}:
Im Zigbee2mqtt Node „out” wird eingetragen:
Mehr ist nicht notwendig. „Übernahme (deplay)” rechts oben nicht vergessen. Mit einem Klick auf „toggle” wird der Stecker ein- und ausgeschaltet.
Der zweite Teil des Flows fordert den Status an. Dazu einen leeren String senden: {„state“:““}.
Das ist die Konfiguration des Debug-Nodes:
Nach einem Klick auf den zweiten inject-Knopf wird im Debug-Bereich rechts angezeigt:
Die Messwerte:
Beschriftung | Elektrische Größe | Einheit |
current | Strom | A |
energy | Arbeit = Energie | kWh |
power | Wirkleistung | W |
voltage | Spannung | V |
Die restlichen Einträge:
- indicator_mode: „off/on“ Die LED leuchtet im eingeschalteten Zusatnd und ist dunkel im ausgeschalteten Zustand. Andere Werte: „on“ = ständig leuchten, „off“ = ständig dunkel, „on/off“ = umgekehrt wie „off/on“.
- link_quality: 160 Ein Zahl zwischen 0 und 255, die die Qualität der drahtlosen Verbindung angibt.
- power_outage_memory: restore Nach dem Abschalten und dem Wiederkehren der Spannung wird der letzte Zustand wieder hergestellt. Mögliche andere Werte: „on“ = eingeschaltet, „off“ = ausgeschaltet.
- state: „ON“ Der aktuelle Zustand: „ON“ = eingeschaltet, „OFF“ = ausgeschaltet.
Das JavaScript msg Object enthält noch viele weitere Daten, auf die ich hier nicht eingehe.
6 NOUS A1T
6.1 Den Zwischenstecker konfigurieren
Der Zwischenstecker ist bereits mit der Tasmota-Software „geflasht”, also programmiert, muss aber noch für ZigBee adaptiert werden. Der A1Z hat doch schon gut funktioniert. Warum sollen wir uns mit dem A1T beschäftigen?
- Der A1T liefert weitere Messwerte (Blindleistung, Scheinleistung und Leistungsfaktor).
- Das Konfigurieren der A1T zeigt, wie die Tasmota-Firmware angewendet wird. Diese Erfahrungen sind nützlich, wenn andere Hardware mit Tasmota geflasht werden.
- Der A1T ist etwas billiger als der A1Z.
Los geht’s – es schaut auf den ersten Blick kompliziert aus, ist aber in ein paar Minuten erledigt.
ZigBee und Node-Red sollten schon eingerichtet und aktiv sein, um den adaptierten Stecker gleich ausprobieren zu können. Bei mir läuft die ZigBee-Steuerung – der Coordinator oder das Gateway – auf einem Linux-Rechner mit der Adresse 192.168.12.71. Bitte ans eigene Netz anpassen. Natürlich kann auch ein Raspberry verwendet werden – ist leider nicht mehr so preiswert.
Schritt 1: Steckdose ans Netz anstecken. Der Zwischenstecker erzeugt dabei ein eigenes WLAN, dessen SSID (Name) mit „tasmota” beginnt. Auf einem Mobiltelefon dieses WLAN suchen und dort anmelden. Oft meldet das Mobiltelefon, dass kein Internetzugang möglich ist. Das ist in Ordnung, bestätigen!
Der Vorgang funktioniert auch mit dem PC, wenn dieser einen WLAN-Zugang hat. Die Screenshots hier stammen von meinem PC.
Falls kein passendes WLAN erscheint, den Zwischenstecker durch Drücken der Taste für 40 Sekunden zurücksetzen.
Verbinden!
Die Angabe nach „tasmota” (hier: „0A00C8”) notieren. Übrigens: das sind die letzten 6 Ziffern der hexademinalen IEEE-Adresse.
Schritt 2: Die Steckdose muss im lokalen Netz angemeldet werden. Ich habe dafür ein eigenes WLAN mit der SSID „seminarhaus2” angelegt, das nur für diese Flash-Arbeiten verwendet wird und nach dem Umprogrammieren wieder abgedreht wird.
Das lokale Netzwerk (hier: „seminarhaus2”) auswählen und mit dem Passwort anmelden. Mit „Save” speichern. Diese Information bleibt meines Wissens im lokalen Netz und wird nicht nach China geschickt.
Schritt 3: Die folgende Seite erscheint automatisch. Wenn das nicht der Fall ist, über einen Browser die Adresse 192.168.4.1 aufrufen. Dann wird eine neue Adresse kurz angezeigt (in dem Beispiel: 192.168.10.13) – rasch notieren! Die Weiterleitung erfolgt automatisch, aber wenn es nicht klappt, müssen wir die Adresse von Hand aus eintragen.
Schritt 4: Das WLAN „tasmota…” ist nun abgeschaltet. Wer beim Schritt 1 das WLAN am PC auf „tasmota…” eingestellt hat, stellt es jetzt wieder auf das lokale Netzwerk zurück, also auf jenes Netzwerk, das wir im Schritt 2 angegeben haben. Der PC und der Zwischenstecker müssen jetzt im selben Netzwerk sein.
Schritt 5: Falls die Adresse aus Schritt 3 nicht schon automatisch aufgerufen wird, jetzt über den Browser öffnen (in meinem Beispiel mit http://192.168.10.13).
Beim Anklicken von „Toggle” muss der Schalter jetzt hörbar klicken. Wenn ein Verbraucher angeschlossen ist, zum Beispiel eine Lampe, ist der jetzt eingeschaltet.
Schritt 6: Update
Die aktuellste Firmware einspielen. Ende April 2023 war das die Version 12.5.0. „Firmware update” jetzt anklicken.
Die Url ist schon voreingestellt. An dieser Stelle könnte auch eine andere Softwareversion eingespielt werden, z. B. die deutschsprachige Version dieser Zwischensteckersteuerung. Allgemein ist das der Punkt, an dem beim Flashen einer beliebigen OTA-Komponente die passende Firmware ausgewählt wird.
Unter „Upgrade by web server” den Button „Start upgrade” anklicken.
Dauert etwas – in dieser Zeit die Verbindung nicht unterbrechen!
Dann erscheint die Startseite wieder, rechts unten mit der neuen Versionsnummer.
Dann wird angezeigt:
Trotz des Hinweises „please upgrade” sind für das Upgrade keine weiteren Schritte notwendig. Nach einem Restart verschwindet der Hinweis.
Dann zum „Main Menu”.
Schritt 7: Kalibrieren
Die angezeigte Spannung ist vermutlich nicht korrekt. Die Messeinrichtung des Zwischensteckers muss nun kalibriert werden. Ein Voltmeter sollte jeder besitzen. Wenn nicht, nehmen wir an, dass die Spannung 230 Volt beträgt.
„Console” anklicken und in die Kommandozeile „voltageset 230” (bzw. die gemessene Spannung) eintragen. Eingabetaste drücken.
Zurück ins „Main Menu”
Jetzt müssen die Energie-Anzeigen stimmen. Gegebenenfalls mit „Toggle” auf „ON” stellen.
Schritt 8: Konfigurieren
„Configuration” anklicken.
Dann „Configure MQTT” wählen.
Host eintragen: bei mir 192.168.12.71.
Der Rest bleibt ungeändert.
Mit „Save” speichern. Das Gerät startet neu.
Schritt 9: Umbenennen
Kann auch ausgelassen werden. Umbenennen, zum Beispiel auf „Tasmota_2”.
Na ja, nicht sehr kreativ. besser wäre vielleicht „Stehlampe” oder ähnliches.
„Configuration”, dann „Configuration Other” wählen:
Device Name eintragen und wieder mit „Save” speichern. Nach dem Neustart erscheint:
Das Fenster kann offen bleiben.
Der Zwischenstecker kann immer noch über „Toggle” geschaltet werden. Ausprobieren!
Übrigens können alle Funktionen auch über die Konsole ausgelöst werden. Zum Toggeln in das Eingabefeld
power toggle
eingeben und Eingabe drücken.
Schritt 10: Information
Ein Klick auf „Information” liefert alle Einstellungen des Zwischensteckers:
Zurück ins „Main Menu”.
6.2 Erproben mit Node-Red
Node-Red ist ein Programmierwerkzeug zum Verbinden von Hardwarekomponenten (Node-RED (nodered.org).
Der Schalter kann immer noch direkt über seine Webadresse (hier: 192.168.10.13) gesteuert werden. Wir steuern ihn jetzt zusätzlich über das ZigBee-Netzwerk und verwenden Node-Red.
In einem neuen Fenster Node-Red aufrufen, normalerweise über Port 1880 am ZigBee-Server. Bei mir ist daher http://192.168.12.71:1880 zu öffnen.
Für Tasmota steht ein eigener Satz an Nodes bereit. Zum Installieren den Menü-Botton rechts oben anklicken, dann „Palette verwalten”.
Weiter: „node-red-contrib-tasmota” suchen und installieren.
Unter der Überschrift „tasmota” sind im Werkzeugkasten (Dashboard) auf der linken Seite mehrere neue Nodes zu sehen; damit ein paar Verbindungen, wie rechts gezeigt, aufbauen.
Dazu ein paar Details:
Die „inject”s für „true” und „false” (gezeigt nur für „true”) sehen so aus:
Für „toggle” wird der String „toggle” übergeben:
Alle drei gehen an einen „switch”-Knoten. Als „Device” wird die Bezeichnung aus den Eigenschaften eingetragen, aber mit einem „_” statt eines „-”. In unserem Beispiel also „tasmota_0A00C8”:
Bei „Broker” auf den Bleistift rechts klicken und „Name” und „Address” ausfüllen.
Der Name kann frei gewählt werden, „Tasmota” passt ganz gut. Normalerweise läuft ZigBee auf dem „localhost”.
Speichern und „Übernahme (deploy)” rechts oben nicht vergessen! Mit Klicks auf „true”, „false” und „toggle” schaltet das Relais. Die Debuggerspalte zeigt:
Interessant ist die Status-Abfrage.
An den „sensor”-Knoten wird ein leerer String gesendet:
Im Tasmota-Knoten wird, ähnlich wie oben, eingetragen. Ich habe den Namen „TS-2-Status” vergeben, weil damit der Status meines zweiten Tasmota-Zwischensteckers aufgerufen wird.
Der Klick auf „status” liefert in der Debug-Spalte (die Einträge sind aufgeklappt):
Interessant sind alle Energie- und Leistungsdaten, sie sind wesentlich informativer als beim A1Z.
Bezeichnung | Bedeutung | Einheit, Norm |
Time | aktuelle Zeit | ISO 8601 |
TotalStartTime | Startzeitpunkt | ISO 8601 |
Total | gesamte Arbeit = Energie seit dem Startzeitpunkt | kWh |
Yesterday | Arbeit, Energie gestern | kWh |
Today | Arbeit, Energie heute | kWh |
Power | Wirkleistung | W |
ApparentPower | Scheinleistung | VA |
ReaktivePower | Blindleistung | Var |
Factor | Leistungsfaktor | cos(φ) |
Voltage | Spannung | V |
Current | Strom | A |
7 NOUS A1 und andere
Viele WiFi-Komponenten können durch ein Update „Over-the-air” (drahtlos) mit neuer Firmware versorgt werden. Um WiFi-Geräte für Tasmota umzuprogrammieren, benötigen wir einen Accesspoint, der den chinesischen Server vortäuscht. Ein entsprechend programmierter Raspberry mit WLAN wird dafür gern verwendet. Sobald nun die Tasmota-Software installiert ist, geht es wie hier im Abschnitt 6.1 beschrieben weiter. Prinzipiell werden auch andere WiFi Home-Automation Komponenten so für Tasmota und ZigBee vorbereitet. Ja sogar ein billiges ESP-8266- oder ESP-32-Board mit einem Preis unter 2 € kann auf dieselbe Weise für die ZigBee Home-Automation vorbereitet werden. Die vielen Ein-Ausgabeanschlüsse dieser Microcontroller laden zum Basteln ein. Über die Erfahrungen damit sind wie erwähnt weitere Beiträge geplant.
Beiträge über ZigBee
- 2022-02-02 Das automatische Heim mit ZigBee
- 2022-08-11 Diskussionsgruppe ‚ZigBee‘
Martin Weissenböck hat die HTL 3 Rennweg 23 Jahre lang geleitet, schreibt Skripten, Lehrbücher und Artikel für die PCNEWS, leitet die Arbeitsgemeinschaft für Didaktik, Informatik und Mikroelektronik (ADIM) und den Verein SCHUL.InfoSMS. Er hält Vorträge und ist Lehrbeauftragter an der Technischen Universität Wien.
Ich wollte schon lange einen Zwischenstecker, aber nicht über einen fremden Server. Danke für diesen tollen Beitrag, habe mir bei Amazon den NOUS A1T gekauft und ist wirklich einfach, nur am Router anmelden und schon kann ich die Gartenpumpe mit dem Handy schalten.
Ich habe mir auch gleich eine eigene Steuerseite am Raspberry PI gemacht und kann somit auch über das Internet steuern 🙂
Remote panel of TASMOTA
body{font-family:arial,sans-serif;font-size:1.6em;}
select,button{font-size:.8em;}
<?php
if (isset( $_POST['pow'])) {
echo "“;
} else {
echo „“;
}
?>
<form name="power" method="post" action="“>
PHP-Code kann man nicht posten, irgendwie auch verständlich 😉 und ich kann meinen Beitrag auch nicht editieren.
Hallo, ich möchte gerne was ähnliches umsetzen. Und zwar habe ich einen zigbee Fenster Kontakt der mit einer Tasmota geflashten Zuber Bridge gekoppelt ist. Mit diesem möchte ich je nach Zustand ein Tasmota Gerät an- oder aus- schalten aber ohne dafür Nodered oder einen Broker zu verwenden. Es sollte doch möglich sein das direkt über die rules in Tasmota zu realisieren. Leider haben meine Versuche noch keinen Erfolg gebracht. Evtl. kann hier jemand helfen oder hat eine Idee.