Besondere Aufmerksamkeit hat der Artikel für alle Synology-Diskstation-Nutzer bekommen, weil die Nutzung der USB-Ports der Diskstation nur noch mit Umständen und zukünftig mit Unsicherheit, wie lange die USB-Ports noch genutzt werden können, möglich ist.
Häufig werden an der Diskstation auch zigbee-USB-Sticks genutzt, für diesen Anwendungsfall haben wir bereits eine alternative Netzwerk-Lösung über einen TCP zigbee coordinator in diesem Artikel beschrieben.
In unserem Fall betreiben wir aktuell einen USB-Lesekopfs von Weidmann an einer Synology Diskstation, den wir gerne durch eine kabellose Lösung ersetzen wollen.
Hier sind wir auf den IR-Lesekopf mit eingebautem WIFI-Modul von Hichi gestoßen, für ca. 30 € erhält man ein eigenständiges Modul, das lediglich über ein handelsübliches Smartphone-Ladegerät mit Micros-USB-Anschluss betrieben und über einen eingebauten Magneten auf die IR-Dioden des Stromzählers gesetzt wird.
Das Modul besteht aus dem IR-Lesekopf und einem ESP01 in einem gedruckten Gehäuse. Der ESP01 ist „ab Werk“ von Hichi mit der korrekten Tasmota-Version geflasht. WICHTIG: Die Standard-Tasmota-bin beinhalten NICHT die notwendige Aktivierung der Scripte und der Sensoren. Hier ist es wichtig, dass man
a) die eingebaute Tasmota-Version nicht updatet und
b) im Falle des Falles die richtige Tasmota-Version flasht, die Hichi hier verlinkt.
Das Flashen klappt mit einem FTDI-Adapter und dem Tool Tasmotizer völlig problemlos, der ESP01 kann einfach aus dem Modul entnommen und von der Lesekopfplatine getrennt werden.
Wie wir ein frisch geflashtes Tasmota-Gerät konfigurieren haben wir bereits hier beschrieben und überspringen wir an dieser Stelle.
Wir gehen also davon aus, dass der Hichi IR WIFI Lesekopf im bestehenden WLAN eingebunden ist, über die erhaltene IP-Adresse aufgerufen werden kann und bereits am Stromzähler montiert ist. Das besondere an der geflashten Tasmota-Version ist die Funktion, dass individuelle Scripte zur Verarbeitung der eingelesene Daten aktiviert werden können. Dies wird notwendig, weil der Datenstrom, den der Stromzähler überträgt, viele Informationen enthält und wir nur die relevanten Informationen, wir z.B. Zählerstand oder Momentan-Leistung, „filtern“ möchten.
Über die Menüpunkte Console > „Edit Script“ können wir unser Script einfügen.
Hierzu können wir folgende Script-Vorlage in den meisten Fällen nutzen:
>D >B =>sensor53 r >M 1 +1,3,s,0,9600,#Name des Zählers# 1,77070100010800FF@1000,Zaehlerstand,kWh,total_in,2 1,77070100100700FF@1,Aktueller Verbrauch,W,Power_curr,0 #
Dieses Script liest zwei Werte aus: den aktuellen Zählerstand im Wert „total_in“ und die aktuell bezogene Leistung in Watt im Wert „Power_curr“. Dem Zähler können wir außerdem in Zeile 5 noch einen passenden Namen geben. Wir setzen den Haken bei „script enable“ und klicken auf save.
Auf der Startseite des Lesekopfs sollten jetzt die beiden Werte erscheinen und regelmäßig upgedatet werden. Wir haben jetzt bereits die schwierigsten Schritt hinter uns.
Noch einige Erklärungen zu den Scriptzeilen 6 und 7. Hier sind die entsprechenden Information hinterlegt, welche Daten aus den IR-Informationen, die der Stromzähler kontinuierlich sendet, „gefiltert“ und in Tasmota angezeigt werden sollen. Die Daten sind in den meisten Stromzählern mit identischen IDs kodiert, sollte dies nicht der Fall sein, muss man die Bedienungsanleitung nach den Registerinformationen durchsuchen und entsprechend das Script anpassen. Bei unserem EMH eBDZ Zähler ist dies z.B. in der Bedienungsanleitung dokumentiert.
Jetzt werden die Daten des Stromzählers korrekt in Tasmota erfasst, fehlt noch der Schritt, wie wir diese Daten in ioBroker einbinden. Hierzu nutzen wird die MQTT-Funktionen in Tasmota. Vorbereitend installieren wir allerdings zunächst in ioBroker den Sonoff-Adapter. Über Adapter kann der Sonoff-Adapter installiert und anschließend in den Einstellungen der Adapter konfiguriert werden:
Wichtig sind Port, Benutzername und Passwort, diese Daten pflegen wir im nächsten Schritt in Tasmota für die Übertragung der Daten ein.
Zurück in der Tasmota-Oberfläche des IR-Lesekopfs müssen wir unter Configure > Configure MQTT die Daten IP-Adresse des ioBrokers, den Port, den Benutzernamen und das Passwort einpflegen.
Sind alle Daten korrekt gepflegt, sollte im ioBroker-Protokoll die Anmeldung des IR-Lesekopf über MQTT aufgelistet sein.
Es sollten jetzt außerdem entsprechend der Konfiguration die ioBroker-Objekte im Baum des Sonoff-Adpater erzeugt werden.
Die Daten werden im Standard alle 5 Minuten über MQTT übertragen, soll dies angepasst werden können wir über den Befehl „TelePeriod #sekunden#“, also z.B. TelePeriod 60 für jede Minute, in der Tasmota Console ein neues Übertragungsintervall definieren.
Mit diesen Schritten ist die Konfiguration und Einbindung des HICHI WIFI IR-Lesekopfs in ioBroker abgeschlossen.
Hallo!
Vielen Dank für deine ausführliche Beschreibung.
Ich habe jetzt das Projekt ebenfalls umgesetzt und es läuft auch super. Jedoch würde ich gerne die Daten in einem kürzeren Intervall senden um die aktuelle Leistung kleiner skaliert zu haben. Wo muss ich denn den Befehl „TelePeriod #sekunden#“ einfügen? Ich habe es mehrfach getestet, jedoch bleibt es bei 5 min.
Danke und weiter so!
Tobi
Du musst die Zeit in Millisekunden angeben, also für 5 Sekunden „TelePeriod 5000“.
Hallo Florian,
vielen Dank für die Rückmeldung. Im Beitrag steht 60 für jede Minute. Hier sollte der Beitrag noch auf 60000 angepasst werden.
Und die Zeile TelePeriod #sekunden# füge ich dann einfach so ein:
>D
>B
=>sensor53 r
>M 1
+1,3,s,0,9600,#Name des Zählers#
1,77070100010800FF@1000,Zaehlerstand,kWh,total_in,2
1,77070100100700FF@1,Aktueller Verbrauch,W,Power_curr,0
TelePeriod 60000
#
oder wo ist es am sinnvollsten?
Grüße Tobi
Ach, sorry, die Millisekunden sind falsch, Sekunden ist korrekt, allerdings ist der Wert minimal mit 10 Sekunden möglich, siehe Dokumentation:
See current value and force publish STATE and SENSOR message
0 = disable telemetry messages
1 = reset telemetry period to firmware default (TELE_PERIOD)
10..3600 = set telemetry period in seconds (default = 300)
Den Befehl nicht im Script integrieren, sondern einmalig in der Console eingeben.
Super, vielen Dank! Jetzt passt alles!
Erfassen und Anzeigen ist schön, aber wie kann man auch Verbraucher und Erzeuger in Abhängigkeit vom aktuellen Energiefluss schalten?
Hängt ganz vom Anwendungsfall ab. Das Erfassen des zentralen Stromzählers ist nach unserer Erfahrung eher informativ und weniger für die direkte Steuerung gedacht. In Einzelfällen macht es Sinn, auf Basis des momentanen Stromverbrauchs Steckdosen auszuschalten, z.B. wenn die Waschmaschine/Trockner fertig ist oder z.B. für die Ladestation des Saugroboters oder dem Smartpad (https://www.smarthomejetzt.de/automatische-ladesteuerung-fuer-ein-smarthome-tablet-spart-energie-und-senkt-den-stromverbrauch/).
Einen schönen guten Abend. Erstmal danke für die Anleitung, aber leider bekomme ich es nicht zum laufen. Meine Konfiguration ist folgende:
PlatformBetriebssystem:win32
Architektur:x64
CPUs:2
Geschwindigkeit:2527 MHz
Modell:Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz
RAM:3.9 GB
System-Betriebszeit:22 T. 05:36:46
Node.js:v16.15.1
time:1670871304169
timeOffset:-60
Adapter-Anzahl:447
NPM:v8.11.0
Datenträgergröße:224.7 GB
Freier Festplattenspeicher:103.8 GB
Betriebszeit:00:01:09
Aktive Instanzen:5
Pfad:C:\ioBroker\
aktiv:true
_nodeCurrent:16.15.1
_nodeNewest:16.18.1
_nodeNewestNext:16.18.1
_npmCurrent:8.11.0
_npmNewest:8.11.0
_npmNewestNext:8.19.2
Der Sonoff Adapter ist installiert und genau nach diesen Vorgaben hier konfiguriert. Aber es wird einfach keine Verbindung zu dem Lesekopf hergestellt. Auch MQTT im Lesekopf habe ich nach deinen Vorgaben eingestellt . Leider ohne Erfolg.
Was mache ich falsch???
Funktioniert der MQTT-Adapter mit einem anderen MQTT-Client? Adapter auf grün? Evt. ist der Port bereits belegt…
Sorry, Ich bin hier erst am Anfang allen Übels (meine, ich bin ein totaler Neueinsteiger) Also der Adapter steht bei „Verbindung “ auf rot. Und ich habe nur diesen einen Clienten. Mit den Ports habe ich alles durchprobiert. Ich muss wohl weiter probieren…
Den Adapter mal in den Einstellungen auf Debug-Logging einstellen und dann in das Protokoll schauen.
Wenn ich es richtig lese kann der Adapter keine Verbindung zu localhost herstellen…
20:10:14.627 MQT: Connect failed to localhost:1883
Das ist wohl die entscheidende Nachricht.
Einen anderen Port eintragen, z.B. 1888, speichern und Adapter neu starten?
Sorry, Ich bin hier erst am Anfang allen Übels (meine, ich bin ein totaler Neueinsteiger) Also der Adapter steht bei „Verbindung “ auf rot. Und ich habe nur diesen einen Clienten. Mit den Ports habe ich alles durchprobiert. Ich muss wohl weiter probieren…
Hallo Leute,
Ich habe alles nach dieser Anleitung gemacht aber, auf der Tasmota Oberfläche werden die Daten auch angezeigt. Habe in Tasmota MQTT eingerichtet damit die Daten auch im ioBroker verfügbar sind das Problem ist nur das Gerät ist im ioBroker bei den Objekten aufgelistet , Power und Alive werden angezeigt aber die ausgelesenen Daten nicht. Vielleicht hat ja Jemand einen Tip.
MFG
Hatte das gleiche Problem. Bei mir war bei Tasmota -> Configuration ->Configure MQTT in der ersten Zeile nicht der „Host“ (IP des iobrokers) eingetragen.
Hallo, vielen Dank für den Beitrag. Hast du oder hat schonmal jemand dasselbe mit der Heizungssteuerung oder dem Wasserzählen (beide IR-fähig) gemacht?
Hey ich versuche gerade mit dem FTDI die ESP8266 Platine des Hichi zu flashen. Leider bekomme ich die Meldung das keine Verbindung zur ESP aufgebaut werden kann?!?! Angeschlossen habe TX,RX, 3V und GND. Habt ihr einen Tipp was ich noch probieren kann?
Beim anschließen an den PC -> GND mit IO0 verbinden
Tx / rx vertauschen?
Jemand eine Idee woran es liegt das mein Iobroker nur den Datenpunkt Power_curr erzeugt wird und nicht der Datenpunkt total_in ??
Update:
>D
>B
=>sensor53 r
>M 1
+1,3,s,0,9600,
1,77070100010800FF@1000,Zaehlerstand,kWh,Total_in,2
1,77070100020800FF@1000,Zaehlerstand Solar,kWh,Total_out,2
1,77070100100700FF@1,Aktueller Verbrauch,W,Power_curr,0
#
Schreibt man Total_in groß kommen die Daten an. Vielleicht auch nützlich für andere
Läuft Top!
Der Zählerstand Solar hat mir noch in meinem Skript gefehlt.
Vielen Dank
Hallo,
danke für die klare Beschreibung. Dennoch habe ich einen Frage, wenn das Module im Strom Schranck verbaut ist, ist die Antenne der ESP01 nicht zu schwach? Und falls, wie verbindet man ein externes Antenna an den ESP01?
Vielen Dank im Voraus.
Fab
Grundsätzlich geht das, hängt von der Signalstärke des Wlans ab. Ausprobieren… Wenn nicht mit Powerlan versuchen.
Sehr interessante Umsetzung. Könnt Ich auch anstelle von MQTT auch eine mal eine Beispiel für Modbus TCP erstellen?
Ich möchte den Lesekopf zusammen mit einer Siemens Logo verwenden. diese kann Modbus TCP. Danke schon mal
Hallo, eine super Anleitung Danke!
Bei mir wird die Grundlast richtig angezeigt.
Bei Netzeinspeisung (PV Überschuss) wird jedoch das „-“ Symbol nicht mit ausgelesesn / angezeigt.
bei meinem Honeywell AS2018 werden bei Einspeisung – Minuswerte angezeigt.
Bei Einspeisung stimmen die Zahlen, Tasmota zeigt das Minus jedoch nicht an.
1,16.7.0(@1,aktuell P,kWh,aktuell_P,3
Beispiel: Bei 435W Einspeisung zeigt der Stromzähler -435W. Tasmota liest 435W auch aus, aber das Minuszeichen fehlt.
Hat das schon Jemand gelöst, mit dem fehlenden Minuszeichen?
LG
Olaf
Bei uns werden negative Werte korrekt übertragen, wird auch auf der Tasmota-Oberfläche kein „-“ angezeigt?
Guten Morgen
Ich kann den Zähler mit meinem Skript auslesen. Bekomme auch alle Daten wie Ampere L1 – L3, Volt L1 – L3 Leistung etc. In MQTT habe ich den Sensor auch. Aber es wird davon nur ein wert (der letzte aus dem Skript) im iobroker in den Objekten angezeigt.
Weiß jemand woran das liegen kann?