Skip to the content.

ESP8266 vs Fritz!DECT Schaltsteckdose

zurück zum Index

ESP8266 vs FritzDECT Schaltsteckdose

In diesem Projekt geht es um schaltbare Steckdosen, die ins lokale WLAN Netztwerk eingebunden werden können.

Bisher nutze ich hierfür zahlreiche FritzDECT!200 Steckdosen in meinem SmartHome. Die Steckdosen von AVM lassen sich sehr einfach in das eigene WLAN mit der FritzBox einbinden und können dann komfortabel über die FritzApp gesteuert werden. Neben einer AN/AUS Funktion , liefert die Steckdose noch die Temperatur, kann per Voice geschaltet werden und erfasst sowohl den aktuellen als auch den langfristigen Stromverbrauch der angeschlossenen Geräte. Der Nachteil der AVM Steckdosen ist, dass sie inzwischen leider sehr teuer sind. Selbst gebrauchte Schaltsteckdosen bei eBay-Kleinanzeigen werden zu teils absurden Preisen , weil quasi Neupreis angeboten. Wer nur die einfache An/Aus Funktion nutzen möchte, um zB Lampen, Pumpen etc zu schalten, der braucht die vielen Komfortfunktionen nicht zwingend und zahlt somit viel Geld für viel ungenutzte Funktionen.

Daher hat mich interessiert, was es sonst noch auf dem Markt gibt und die Auswahl ist - wenig überraschend - riesig. Wenn ich die Suche allerdings bzgl ohne-Cloud, und flexibles Programmierinterface erweitere, dann lande ich u.a, bei den Sonoff oder Tasmota Modellen. Das ausgewählte Modell basiert auf einem ESP8266 Controller, den ich in anderen Projekten ja bereits einsetze und benötigt keine Registrierung in irgendeiner weltweiten Cloud. Ist also nur im lokalen Netz erreichbar. Das ist keine Bewertung oder Entscheidung im Sinne eines umfassenden Enscheidungsprozesses oder umfangreichen Testkriterien, sondern die Kombination mir bekannter Technologien, Preis, Programmiermodell etc. Da hat jeder seine eigene Präferenz, und das ist auch gut so.

Die Stecker habe ich bei Amazon erstmal im 2er Pack zum Testen bestellt. Aber es gibt sicher noch andere Anbieter. Hier ein link auf Amazon, ohne das ich davon einen kommerziellen Nutzen habe:

image logo

Amazon link

Zum Vergleich hier ein Bild der Steckdosen:

image logo

Das erste, was einem auffällt ist der deutliche Grössenunterschied. Für kleine Stromverbraucher ist eine Fritz Steckdose schon sehr voluminös, was zB in einer 3-Fach Steckleiste Max zwei AVM Stecker zulässt. Das Tasmota Gerät fällt sehr schlank auf, wie ihr selber sehen könnt. Das ermöglicht den Einsatz auch in Bereichen mit Platzknappheit.

image logo

Konfiguration

Die ersten Schritte mit der Tasmota Steckdose gestalten sich eigentlich ganz einfach. Tasmota Stecker in die Steckdose, kurz warten und der Tasmota Stecker bietet ein eigenes Tasmotoxxx WLAN Netzwerk an. Das Netzwerk mit dem Smartphone oder einem anderen Gerät auswählen und man wird automatisch in die erste Konfiguration weitergeleitet. Dort das eigene Haus WLAN auswählen , Passwort eingeben und anschliessend startet das Tasmoto Device neu.

Nun meldet ihr euch auf eurem Router an und schaut nach der Netzwerkadresse der Tasmota Steckdose. Mit dem Browser ruft ihr denn diese IP Adresse und landet im Web-Interface der Tasmota , wo ihr mit der Konfiguration beginnen könnt

In der Konfiguration das template entsprechend konfigurieren, wenn es Standardmässig noch nicht auf das richtige Template eingerichtet ist. Die entsprechenden templates fuer das device findet ihr unter

Tasmota link

Hier am Beispiel der Schaltsteckdose

Configure->Configure Other-> Template einfügen (kopierte Zeile einfügen), -> activate -> speichern 

Bei meinem gelieferten Gerät war das richtige Template eingestellt, so dass ich hier nichts weiter ändern musste.

image logo

Nach der Änderung des templates startet das Gerät startet dann neu

Im MainMenu könnt ihr nun mit „toggle“ die Steckdose ein-, ausschalten und ihr seht u.a. die Leistungsangaben bzw Verbräuche der angeschlossenen Verbraucher. Die stimmen normalerweise erstmal nicht, weil die Steckdose zunächst kalibriert, d.h. auf die Grundwerte eingestellt werden muss.

Dazu nehmt ihr euch am Besten eine alte Glühlampe mit einem definierten Verbrauch bzw. einer festen Wattzahl, z.B. 40W In dem folgenden Video ist das sehr schön erklärt. Auch hierzu habe ich keine persönlichen oder geschäftlichen Verbindungen oder irgendwelche Vorteile, aber es ist halt hilfreich und gut gemacht.

Youtube link

Den Tasmota Stecker kalibrieren

Fangen wir also mit der Volt Zahl an, die normalerweise bei uns so bei 235 V liegt.

Wie gesagt, am Besten einen bekannten Verbraucher dranhängen, damit man sich auf die Basiswerte auch verlassen kann. In meinem Fall habe ich einfach eine alte, klassische 40W Glühlampe eingesteckt.

Dann in der Konfiguration->Konsole (Wattzahl der Glühlampe)

>powerset 40W.0 

290 V passt nicht, im Normalfall liegt die Spannung bei 230-235 Volt

>voltageset 235

(40/235)*1000=170,212 mA

Currentset 170,2127

Danach sollte die Steckdose kalibriert sein und euch den richtigen Verbrauch der angeschlossenen Geräte anzeigen, in diesem Fall von einem angeschlossenen Notebook, nicht mehr der 40W Lampe. Also nicht wundern über die Angaben.

Einbindung in unser OpenHAB Smarthome

So - nachdem die Steckdose nun also kalibriert ist und funktioniert, wollen wir das Ganze natürlich auch komfortabel bedienen bzw auch automatisch steuern. Das ist jetzt etwas weniger komfortabel nicht so einfach als bei der Fritz Steckdose, da es keine eigene App dazu gibt. Per WebBrowser lässt sich zwar auf das Hauptmenü der Konfiguration zugreifen - aber das ist natürlich etwas mühsam, wenn man N+1 Steckdosen im Haus verteilt hat. Dafür bietet das API , also die Kommunikationsschnittstelle der Steckdose einige Steuerungsmöglichkeiten. Mit dem uns bekannten MQTT Protokoll lassen sich eine große Anzahl von Parametern und Sensorinformationen abfragen bzw steuern.

MQTT Einbindung

Die Konfiguration eines OpenHAB MQTT Brokers und die Kommunikation mit dem ESP Microcontroller habe ich ja bereits an anderer Stelle beschrieben, daher hier nochmal ein paar Grundlagen und Community links. Oder einfach in meine anderen Projekte schauen 😉

Eine Beschreibung dazu findet ihr u.a. hier:

Tasmota.github.io/docs/openHAB

openHAB community Info

The “open Home Automation Bus” (openHAB) is an open source, technology agnostic home automation platform which runs as the center of your smart home. Besides more than 400 other add-ons for all kinds of technologies, openHAB provides an MQTT add-on (“binding”) to interface with systems like Tasmota. By following the guide below you’ll be able to observe, control and manage your Tasmota modules from your openHAB system. If you are new to openHAB, please learn about the basic concepts and the initial setup. The below article will not cover any basics which are out of scope to the Tasmota integration.

Requirements • Working openHAB installation (see documentation) • Configured Tasmota device (accessible from your local network) • MQTT broker available (e.g. Eclipse Mosquitto via openHABian) • A basic understanding of MQTT • Working and tested connection between openHAB and the MQTT broker • (optional) Standalone MQTT client (e.g. MQTT Explorer) to observe and identify messages on the MQTT broker

Wie ihr seht, braucht es als erstes einen konfigurierten MQTT Broker , den ihr im OpenHAB entsprechend einrichtet.

Tasmota MQTT Konfiguration

Als Nächstes müsst ihr in der Tasmota Konfiguration die mqtt Einstellungen ändern, damit eine Verbindung zu eurem OpenHAB Broker aufgebaut werden kann.

image logo

openHAB MQTT Konfiguration

Zurück in der OpenHAB Admin Konsole erstellt ihr dann ein MQTT-Generic-Thing für den Tasmota Stecker und konfiguriert den entsprechenden Channel mit State und command Topic für die Kommunikation zwischen OpenHAB Broker und Tasmota. Über ein entsprechendes Item lässt sich der Stecker dann zB an und ausschalten.

GenericMQTT Thing und item und die beiden Channels einrichten und die ON/OFF topics definieren

cmnd/tasmota2
cmnd/tasmota2

Tasmota commands

Ob die Kommunikation über den Broker funktioniert könnt ihr mit den entsprechenden publish, subscribe Kommandos in einem Shell Terminal prüfen:

Mit

mosquitto_pub -h localhost -t cmnd/tasmota2/cmnd/POWER -m "OFF"

Lassen sich Kommandos an das Device schicken und mit

und mit

mosquitto_sub -d -t  cmnd/tasmota2/cmnd/POWER

kann man auf dem topic mitlesen

Im Web Interface unter der IP Adresse des Tasmota Steckers könnt ihr unter

MainMenu->Console 

die send/request Kommunikation entsprechend mitverfolgen, die vom Tasmota abgeschickt wird bzw vom Tasmota auf dem Topic empfangen wird

A broker Thing with a Generic MQTT Thing and a few channels

Fuer die PowerPlugs habe ich jeweils ein GenericMQTT Thing für Power Switch und eins fuer die Sensorwerte angelegt und entsprechende MQTT topics definiert

Bei den Sensordaten wird es jetzt etwas komplizierter , weil diese Werte nicht als Einzelwerte gesendet werden, sondern als „Sammelinformation“ in einer Zeichenkette zur Verfügung gestellt wird

Item 'GenericMQTTThingTasmota1SensorData' changed from {"Time":"2022-08-18T09:34:27","ENERGY":{"TotalStartTime":"2022-08-12T15:35:39","Total":0.350,"Yesterday":0.067,"Today":0.050,"Period": 0,"Power": 0,"ApparentPower": 0,"ReactivePower": 0,"Factor":0.00,"Voltage": 0,"Current":0.000}} to {"Time":"2022-08-18T09:39:27","ENERGY":{"TotalStartTime":"2022-08-12T15:35:39","Total":0.350,"Yesterday":0.067,"Today":0.050,"Period": 0,"Power": 0,"ApparentPower": 0,"ReactivePower": 0,"Factor":0.00,"Voltage": 0,"Current":0.000}}

Aus diesem String müssen die Einzelwerte dann entsprechend extrahiert und einem Item bzw. einer Variablen zugeordnet werden, so dass wir den Wert im OpenHAB zB in einer Regel weiterverarbeiten bzw. anzeigen können Hier können verschiedene Funktionen genutzt werden, die OpenHAB bereits mitliefert.

! Wichtig ist allerdings zu erwähnen, dass zB die JSONPath Transformation Addons im PaperUI bzw in der Admin Umgebung erst installiert werden müssen:

JSONPATH Transformations unter

Settings->Tranformations 

in der openHAB Admin Konsole installieren

Danach lassen sich die Werte über ein Topic auslesen und weiterverarbeiten. Ich zeige euch hier nur exemplarisch einige Werte, wie ihr das Thing+item mit den Channels anlegt:

Dann die items für die Weiterverabeitung der Einzelwerte in der item Datei erstellen

Tasmota.item:

Number  Tas1TotalEnergy "Tas1TotalEnergy [%.3f kWh]"
Number  Tas1CurrentEnergy "Tas1CurrentEnergy [%.3f kWh]"
Number  Tas1PowerWatt "Tas1PowerWatt [%.2f W]"

Die Einbindung in der Default.sitemap

Switch  item=GenericMQTTThingTasmota1PowerSwitch      label="Tasmota-1 Steckdose
    	Text item=Leeres_Item label="Tasmotoa1 Energieverbrauch" {
      	Text    item=Tas1PowerWatt
      	Text    item=Tas1TotalEnergy
      	Text    item=Tas1CurrentEnergy
    	}

Und die Aufbereitung in der Tasmota1.rules

rule "TasmotaPlug1 On"
when
  	Item GenericMQTTThingTasmota1PowerSwitch changed to ON
then
  	val mqttActions = getActions("mqtt","mqtt:broker:331a9f6380")
  	mqttActions.publishMQTT("cmnd/tasmota1/cmnd/POWER","ON")
  	logInfo("     TASMOTA1 !!!! ON      ", "   ")
end

Und hier werden die Sensordaten mit Hilfe der JSONPATH Funktionen den Einzelwert-Items zugewiesen

rule "TasmotaPlug1 Sensor Data"
when
Item GenericMQTTThingTasmota1SensorData changed
then
val mqttActions = getActions("mqtt","mqtt:broker:331a9f6380")
logInfo("  TASMOTA1 Sensordaten:    --->>> ", GenericMQTTThingTasmota1SensorData.state.toString," ")
  
val temp1 = transform("JSONPATH", "$.ENERGY.Total", GenericMQTTThingTasmota1SensorData.state.toString)
logInfo("  Total Energy  String :    --->>> ", temp1)
// post the new value to the Number Item
Tas1TotalEnergy.postUpdate( temp1 )

val temp2 = transform("JSONPATH", "$.ENERGY.Current", GenericMQTTThingTasmota1SensorData.state.toString)
logInfo("  Current Energy :    --->>> ", temp2)
Tas1CurrentEnergy.postUpdate( temp2 )

val temp3 = transform("JSONPATH", "$.ENERGY.Power", GenericMQTTThingTasmota1SensorData.state.toString)
logInfo("  Power Watt Energy :    --->>> ", temp3)
Tas1PowerWatt.postUpdate( temp3 )
end

Viel Spaß bei den ersten Schritten und der Weiterentwicklung eurer eigenen Anforderungen. Über Anregungen und gute Erkenntnisgewinne freue ich mich immer.

Einfach per Email an mich n1028fh@gmail.com