NEWS
Stromzähler per Sonoff ESP8266 auslesen
-
@RalfTh sagte in Stromzähler per Sonoff ESP8266 auslesen:
@Jaschkopf Der Lesekopf ist montiert. Das Skript hab meines AZ-Delivery D1 mini habe ich folgendermaßen mit dem Volkszähler verbunden:
Gnd, +3,3V und Rxd des Volkszählers an GPIO13(D7) des D1 Mini angeschlossen.

Leider bekomme ich nichts angezeigt.

Die Zeile 2 des Zählers wechselt regelmäßig zwischen den einzelnen, möglichen Ausgabewerten. Mache ich da noch was verkehrt?
Hast du schon ein Skript erstellt? Was für eine Zähler hast du? Ggf muss der mit einem Pin freigeschaltet werden bevor er Daten ausgibt. Oder manche Zähler benötigen eine Startsequenz damit sie Daten senden. Das solltest du noch in Erfahrung bringen.
@Jaschkopf Das Skript sieht so aus, wie du es oben beschrieben hast. Ich habe einen Zähler von EMH, Typ HW8E2A5L0EK2P (siehe mein Post vom 22.01.) Das Protokoll ist SML und die Baudrate 9600Bd. PIN habe ich erhalten und eingegeben. Deshalb kann ich ja die Werte in der zweiten Zeile des Zählers abrufen.
-
@Jaschkopf Das Skript sieht so aus, wie du es oben beschrieben hast. Ich habe einen Zähler von EMH, Typ HW8E2A5L0EK2P (siehe mein Post vom 22.01.) Das Protokoll ist SML und die Baudrate 9600Bd. PIN habe ich erhalten und eingegeben. Deshalb kann ich ja die Werte in der zweiten Zeile des Zählers abrufen.
@RalfTh gib mal "sensor53 d1" in die Konsole ein. Damit aktiviert du das debuging und kannst die rohwerte in der Konsole sehen. Der Zähler sollte seine Daten 1x pro sek ausgeben. Wenn du in der Konsole keine Werte siehst stimmt mit der Hardware etwas nicht.
-
Servus. Ich habe hier mal eine Anleitung geschrieben wie man mit einem IR-Lesekopf und einem ESP8266 Daten aus der D0 Schnittstelle von Digitalen Stromzählern auslesen und an ioBroker senden kann.
Danksagung:
Vorab muss ich meinen Dank aussprechen an gemu2015 der den SML Treiber sowie den Scripter für Tasmota entwickelt hat. Ich habe alle meine Infos aus dem „CRATION{X} SMARTHome Forum“ und dem Beitrag „D0 Zähler SML auslesen mit Tasmota“ bekommen und verweise auch auf das Thema falls weitere Fragen entstehen. Bei Problemen mit dem Scripter oder dem Treiber konnte gemu2015 bis jetzt immer sehr schnell und kompetent helfen.
https://forum.creationx.de/forum/index.php?thread/1095-d0-zähler-sml-auslesen-mit-tasmota/
https://forum.creationx.de/index.php?user/1660-gemu2015/
https://github.com/gemu2015/Sonoff-Tasmota
https://github.com/arendst/TasmotaVorwort:
Ich möchte vorab noch erwähnen, dass ich in dieser Anleitung nur das absolute Minimum an Einstellungen aufführe um das ganze zum laufen zu bekommen. Der Scripter ist ein mächtiges Tool mit dem man noch sehr viel mehr machen kann als hier gezeigt wird. Für Ergänzungen bin ich offen und werde die Anleitung bei Bedarf anpassen und Überarbeiten.Notwendige Hardware:
- Digitaler Stromzähler mit D0 Schnittstelle
- Lesekopf (Volkszähler oder ähnlich)
- ESP8266 (NodeMCU, Sonoff, etc.)
- Ggf. 5V Netzteil für den ESP
- Ggf. USB zu TTL Adapter zum flashen
Notwendige Software:
- Atom.io (https://atom.io/)
- PlatformIO IDE for Atom.io (wird über den Atom.io Package Manager geladen) (https://platformio.org/install/ide?install=atom)
Sonoff-Tasmota-universal8 Daten von Github (https://github.com/gemu2015/Sonoff-Tasmota)- Tasmota von Github: https://github.com/arendst/Tasmota
Da sich der Branch von gemu2015 seit dem letzten Update von PlatformIO nicht mehr kompilieren lässt, muss der von arendst genutzt werden. Der enthält das notwendige xsns_53_sml.ino ebenfalls. Bei Bedarf kann auch die neuste xsns_53_sml.ino aus dem Branch von gemu genutzt werden und händisch in den Ordner von arendst kopiert werden.
Anleitung:
-
Zuerst muss Atom.io installiert werden. Anschließend über den Paket Manager PlatformIO installieren und ggf einen Neustart durchführen.
-
Von Github die Tasmota Branch von
gemu2015arendst runterladen (oben rechts, Button „Clone or download“ Download ZIP) und die .zip entpacken. -
Atom.io starten. Die Startseite sollte dann „PlatformIO Home“ sein. Dort über „Open Project“ den entpackten Ordner von Github auswählen. Die Ordnerstrukur wird dann links am Rand angezeigt.
-
Zuerst bearbeiten wir die Datei „tasmota/my_user_config.h“. Dort müssen folgende Änderungen gemacht werden:
Zeile 39:
ALT: //#define USE_CONFIG_OVERRIDE
NEU: #define USE_CONFIG_OVERRIDE
Zeile 251:
ALT: //#define MY_LANGUAGE de-DE
NEU: #define MY_LANGUAGE de-DE
Zeile 454:
ALT:
NEU: #define USE_SML_M -
Da wir gerade in der Zeile 39 die CONFIG_OVERRIDE aktiviert haben, muss diese auch angepasst werden. Dazu müssen wir erstmal die Datei „tasmota/user_config_override_sample.h“ umbenennen zu „user_config_override.h“. Danach werden folgende Anpassungen gemacht:
-
Die Zeilen 44-89 sind durch /* bzw */ auskommentiert, somit unwirksam. Soll etwas davon benutzt werden, muss der Kommentarbereich entsprechend angepasst werden. Folgende Zeilen sollten nach Zeile 89 auf jeden Fall enthalten sein:
// -- Master parameter control -------------------- #undef CFG_HOLDER #define CFG_HOLDER 4620 // [Reset 1] Change this value to load SECTION1 configuration parameters to flash // -- Setup your own Wifi settings --------------- #undef STA_SSID1 #define STA_SSID1 "YOUR_SSID" // [Ssid1] Wifi SSID #undef STA_PASS1 #define STA_PASS1 "YOUR_PASSWORD" // [Password1] Wifi password // -- Timezone ------------------------------------ #undef APP_TIMEZONE 1 #define APP_TIMEZONE 99 // -- Localization --Sprache--------------------- // If non selected the default en-GB will be used #undef MY_LANGUAGE #define MY_LANGUAGE de-DE // -- Serial sensors ------------------------------ // Add support für Smart Message Language // (SmartMetering für Stromzähler xsns_53_SML.ino) #undef USE_SML_M #define USE_SML_M // -- WEB_Display -------------------------- #define USE_SCRIPT_WEB_DISPLAY //--Rules oder Scripter benutzen: ----------------- //um rules zu verwenden gar nichts tun // -- um scripter zu verwenden #undef USE_RULES #define USE_SCRIPTWICHTIG: Wenn das Script ein 2., 3., 4., etc. mal auf den ESP geflashed werden soll, muss unbedingt die CFG_HOLDER Zahl verändert werden. Wenn diese identisch wie beim letzten Flash ist, werden die Daten nicht übernommen. Daher bei erneutem Flashen einfach hochzählen.
- In der Datei „platformio.ini“ habe ich noch den "upload_port" angepasst. Zu finden in Zeile 71-82. Dort einfach bei der richtige Zeile das ; entfernen und falsche Zeilen mit ; auskommentieren. Ggf. die Port Nummer anpassen.
- Dann kann Tasmota schon auf den ESP geflashed werden. Das dauert ca. 60sek und wenn alles geklappt hat sollte sich der ESP direkt mit eurem WLAN verbinden und eine IP per DHCP bekommen. Diese muss dann über die Weboberfläche des Routers ermittelt werden (z.b. fritz.box). Die IP dann in die Adresszeile des Browsers eingeben um die Tasmota Weboberfläche aufzurufen.
- Auf der Weboberfläche gehen wir dann zu „Einstellungen -> Gerät konfigurieren“ und wählen bei „Gerätetyp“ dann „Generic (0)“ aus. Speichern nicht vergessen.
- Jetzt können wir über „Hauptmenü -> Edit Script“ die Parameter des Stromzählers eingeben. Zuerst muss der Scripter jedoch über die Checkbox oben „script enable“ aktiviert werden.
- Ab hier wird es etwas kompliziert. Es muss bekannt sein, wie euer Zähler die Daten ausgibt. Meiner z.B. nutzt SML mit 9600 Baud und mein Script dafür sieht so aus:
>D >B ->sensor53 r tper=10 >M +1,13,s,1,9600,SML 1,77070100010800ff@1000,Verbrauch,KWh,DJ_TPWRIN,3 1,77070100020800ff@1000,Einspeisung,KWh,DJ_TPWROUT,3 1,77070100100700ff@1000,Akt. Verbrauch,W,DJ_TPWRCURR,3 #- Der Lesekopf muss dann an +3,3V, GND und RX an Pin 13 des ESP angeschlossen werden.
- Was der Scripter noch alles kann ist im Wiki von Tasmota sehr gut beschrieben:
- https://github.com/arendst/Tasmota/wiki/smart-meter-interface
- https://github.com/arendst/Tasmota/wiki/Scripting-Language
Ihr solltet jetzt auf der Startseite die Werte für Verbrauch, Einspeisung und Akt. Verbrauch sehen. In der Regel muss der Zähler mit einem Pincode frei geschaltet werden um Nachkommastellen sowie den aktuellen Verbrauch anzuzeigen. Die Pin bekommt man bei seinem Netzbetreiber auf Nachfrage per Post zugeschickt.
Daten an ioBroker senden:
- Unter „Einstellungen -> MQTT“ kann nun die Verbindung zu iobroker definiert werden. Dazu ist der Sonoff Adapter notwendig. Auf die Einrichtung gehe ich hier nicht weiter ein. Wichtig ist nur, dass im Adapter die drei Checkboxen „Automatische Erstellung von Zuständen“ aktiviert werden, damit die Objekte auch angelegt werden.
Nachwort:
Ich hoffe ich habe nichts vergessen. Wer noch einen Lesekopf braucht, ich habe noch ein paar Bausätze übrig. Alternativ kann man vielleicht doch nochmal eine Sammelbestellung ins Leben rufen. Dazu gab es schonmal ein Thema von mir: https://forum.iobroker.net/topic/25224/sammelbestellung-volkszähler@Jaschkopf Hier das LOG:
-
@Jaschkopf Hier das LOG:
@RalfTh also außer das alle 10sek die Daten per mqtt gesendet werden passiert da nichts. Ggf sind bei deinem Zähler sende und Empfangs led umgedreht. Prüf das mal mit deiner Handykamera ob dein Zähler überhaupt Daten ausgibt und wenn ja auf welcher Seite. Ich muss meine Lesekopf auch um 180° verdreht aufsetzen (Kabel nach oben) damit er funktioniert.
-
@RalfTh also außer das alle 10sek die Daten per mqtt gesendet werden passiert da nichts. Ggf sind bei deinem Zähler sende und Empfangs led umgedreht. Prüf das mal mit deiner Handykamera ob dein Zähler überhaupt Daten ausgibt und wenn ja auf welcher Seite. Ich muss meine Lesekopf auch um 180° verdreht aufsetzen (Kabel nach oben) damit er funktioniert.
@Jaschkopf OK, danke.Ich werde das morgen mal probieren. Bei mir ist links der Lichtsensoreingang und rechts die Datenschnittstelle. Habe dazu ein Bild meines Energieversorgers erhalten.
-
@Jaschkopf OK, danke.Ich werde das morgen mal probieren. Bei mir ist links der Lichtsensoreingang und rechts die Datenschnittstelle. Habe dazu ein Bild meines Energieversorgers erhalten.
-
@Jaschkopf OK, danke.Ich werde das morgen mal probieren. Bei mir ist links der Lichtsensoreingang und rechts die Datenschnittstelle. Habe dazu ein Bild meines Energieversorgers erhalten.
@RalfTh mir ist gerade noch was eingefallen. Wenn du das Skript 1:1 übernommen hast, muss RXD auf Pin 13 liegen. Du bist aber auf GPIO13, was Pin 7 entspricht. Einen Pin 13 hat der D1 ja garnicht. Versuch mal im Skript in Sektion >M die Zeile für die Zählerdefinition zu ändern auf Pin 7:
>M +1,7,s,1,9600,SMLPS: Wenn du das Debugging mit "sensor53 d1" aktiviert hast wird die Werteausgabe über das Webinterface gestoppt. Wenn du auf der Startseite wieder Werte haben willst musst du entweder den D1 neustarten oder mit "sendor53 d0" das Debugging wieder ausschalten.
Gruß Jaschkopf
-
@RalfTh mir ist gerade noch was eingefallen. Wenn du das Skript 1:1 übernommen hast, muss RXD auf Pin 13 liegen. Du bist aber auf GPIO13, was Pin 7 entspricht. Einen Pin 13 hat der D1 ja garnicht. Versuch mal im Skript in Sektion >M die Zeile für die Zählerdefinition zu ändern auf Pin 7:
>M +1,7,s,1,9600,SMLPS: Wenn du das Debugging mit "sensor53 d1" aktiviert hast wird die Werteausgabe über das Webinterface gestoppt. Wenn du auf der Startseite wieder Werte haben willst musst du entweder den D1 neustarten oder mit "sendor53 d0" das Debugging wieder ausschalten.
Gruß Jaschkopf
@Jaschkopf Oh, das hatte ich übersehen, bzw. falsch interpretiert. Ist schon ein bisschen verwirrend mit den PINs und deren Bezeichnung. Habe jetzt das Skript hier geändert.

Jetzt lässt es sich nicht mehr aktivieren??!!
Muss ich das Ganze jetzt noch mal in Atom.io machen? Das kann doch eigentlich nicht sein.!? -
@Jaschkopf Oh, das hatte ich übersehen, bzw. falsch interpretiert. Ist schon ein bisschen verwirrend mit den PINs und deren Bezeichnung. Habe jetzt das Skript hier geändert.

Jetzt lässt es sich nicht mehr aktivieren??!!
Muss ich das Ganze jetzt noch mal in Atom.io machen? Das kann doch eigentlich nicht sein.!?@RalfTh Ok jetzt hab ich mich selbst verwirrt. D7 am D1 war schon richtig als GPIO13 im Skript. Musste selbst nochmal nachschlagen gerade.
Aber das sich dein Skript immer wieder deaktiviert ist nicht richtig. Ich hatte den Fall bei mir auch mal und musste die Firmware neu flashen. Scheint ein Bug zu sein. Vergiss nur nicht den CFG_HOLDER zu verändern bevor du neu compilierst, wie in der Anleitung beschrieben.
Gruß Jaschkopf
-
Kann mir jemand sagen wo das problem bei mir liegt?
19:57:34 RSL: tele/tasmota/RESULT = {"Time":"2020-02-06T19:57:34","IrReceived":{"Protocol":"UNKNOWN","Bits":50,"Hash":"0xD87B604E"}} 19:57:35 RSL: tele/tasmota/RESULT = {"Time":"2020-02-06T19:57:35","IrReceived":{"Protocol":"UNKNOWN","Bits":50,"Hash":"0x70E7939E"}} 19:57:36 RSL: tele/tasmota/RESULT = {"Time":"2020-02-06T19:57:36","IrReceived":{"Protocol":"UNKNOWN","Bits":50,"Hash":"0xDDE94BCF"}} 19:57:37 RSL: tele/tasmota/RESULT = {"Time":"2020-02-06T19:57:37","IrReceived":{"Protocol":"UNKNOWN","Bits":50,"Hash":"0x49A6AF84"}} 19:57:37 RSL: tele/tasmota/STATE = {"Time":"2020-02-06T19:57:37","Uptime":"0T00:29:07","UptimeSec":1747,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":0,"Wifi":{"AP":2,"SSId":"FRITZ!Box 7590 CJ","BSSId":","Channel":1,"RSSI":100,"Signal":-47,"LinkCount":1,"Downtime":"0T00:00:06"}} 19:57:37 RSL: tele/tasmota/SENSOR = {"Time":"2020-02-06T19:57:37","OBIS":{"Total_in":0.0000,"Total_out":0.0000,"Power_curr":0,"Meter_number":""}} 19:57:38 RSL: tele/tasmota/RESULT = {"Time":"2020-02-06T19:57:38","IrReceived":{"Protocol":"UNKNOWN","Bits":50,"Hash":"0x41150F2B"}} 19:57:39 RSL: tele/tasmota/RESULT = {"Time":"2020-02-06T19:57:39","IrReceived":{"Protocol":"UNKNOWN","Bits":50,"Hash":"0x70E7939E"}} 19:57:40 RSL: tele/tasmota/RESULT = {"Time":"2020-02-06T19:57:40","IrReceived":{"Protocol":"UNKNOWN","Bits":50,"Hash":"0xCE7EA1E4"}} 19:57:41 RSL: tele/tasmota/RESULT = {"Time":"2020-02-06T19:57:41","IrReceived":{"Protocol":"UNKNOWN","Bits":50,"Hash":"0x4A92522B"}} 19:57:42 RSL: tele/tasmota/RESULT = {"Time":"2020-02-06T19:57:42","IrReceived":{"Protocol":"UNKNOWN","Bits":50,"Hash":"0x41150F2B"}} 19:57:43 RSL: tele/tasmota/RESULT = {"Time":"2020-02-06T19:57:43","IrReceived":{"Protocol":"UNKNOWN","Bits":50,"Hash":"0x29724952"}}bekomme zwar daten gelesen aber werden nicht umgewandelt?
Zähler(MT691) ist freigeschaltet
20:01:37 CMD: sensor53 d1 20:01:37 RSL: stat/tasmota/RESULT = {"Time":"2020-02-06T20:01:37","SML":{"CMD":"dump: 1"}} -
Kann mir jemand sagen wo das problem bei mir liegt?
19:57:34 RSL: tele/tasmota/RESULT = {"Time":"2020-02-06T19:57:34","IrReceived":{"Protocol":"UNKNOWN","Bits":50,"Hash":"0xD87B604E"}} 19:57:35 RSL: tele/tasmota/RESULT = {"Time":"2020-02-06T19:57:35","IrReceived":{"Protocol":"UNKNOWN","Bits":50,"Hash":"0x70E7939E"}} 19:57:36 RSL: tele/tasmota/RESULT = {"Time":"2020-02-06T19:57:36","IrReceived":{"Protocol":"UNKNOWN","Bits":50,"Hash":"0xDDE94BCF"}} 19:57:37 RSL: tele/tasmota/RESULT = {"Time":"2020-02-06T19:57:37","IrReceived":{"Protocol":"UNKNOWN","Bits":50,"Hash":"0x49A6AF84"}} 19:57:37 RSL: tele/tasmota/STATE = {"Time":"2020-02-06T19:57:37","Uptime":"0T00:29:07","UptimeSec":1747,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":0,"Wifi":{"AP":2,"SSId":"FRITZ!Box 7590 CJ","BSSId":","Channel":1,"RSSI":100,"Signal":-47,"LinkCount":1,"Downtime":"0T00:00:06"}} 19:57:37 RSL: tele/tasmota/SENSOR = {"Time":"2020-02-06T19:57:37","OBIS":{"Total_in":0.0000,"Total_out":0.0000,"Power_curr":0,"Meter_number":""}} 19:57:38 RSL: tele/tasmota/RESULT = {"Time":"2020-02-06T19:57:38","IrReceived":{"Protocol":"UNKNOWN","Bits":50,"Hash":"0x41150F2B"}} 19:57:39 RSL: tele/tasmota/RESULT = {"Time":"2020-02-06T19:57:39","IrReceived":{"Protocol":"UNKNOWN","Bits":50,"Hash":"0x70E7939E"}} 19:57:40 RSL: tele/tasmota/RESULT = {"Time":"2020-02-06T19:57:40","IrReceived":{"Protocol":"UNKNOWN","Bits":50,"Hash":"0xCE7EA1E4"}} 19:57:41 RSL: tele/tasmota/RESULT = {"Time":"2020-02-06T19:57:41","IrReceived":{"Protocol":"UNKNOWN","Bits":50,"Hash":"0x4A92522B"}} 19:57:42 RSL: tele/tasmota/RESULT = {"Time":"2020-02-06T19:57:42","IrReceived":{"Protocol":"UNKNOWN","Bits":50,"Hash":"0x41150F2B"}} 19:57:43 RSL: tele/tasmota/RESULT = {"Time":"2020-02-06T19:57:43","IrReceived":{"Protocol":"UNKNOWN","Bits":50,"Hash":"0x29724952"}}bekomme zwar daten gelesen aber werden nicht umgewandelt?
Zähler(MT691) ist freigeschaltet
20:01:37 CMD: sensor53 d1 20:01:37 RSL: stat/tasmota/RESULT = {"Time":"2020-02-06T20:01:37","SML":{"CMD":"dump: 1"}}@mpl1338 also laut Internet Sender der Zähler 1x pro Sekunde die Daten unaufgefordert. Wenn du den dump mit sensor53 d1 aktiviert hast sollte jede Sekunde ein riesiges Datenpakete mit hex Werten rein kommen. Das ist bei dir offensichtlich nicht der Fall wie ich auch deinem log sehe. Der Fehler muss wo anders liegen. Postete sich mal deinen Aufbau und dein Skript.
Gruß Jaschkopf
-
habs gefunden
einstellungen -> gerät konfigurieren -> D7 GPIO13 Led1i "none" hatte hier zuvor "IRrecv"
jetzt kommen die Daten.
Ist es möglich die einzelnen Phasen zu sehen? (Leistung/Strom)
@mpl1338 der Gerätetyp muss auf Generic stehen, sonst muss nichts verändert werden. Ob dein Zähler die Leistung pro Phase ausgibt musst du mal im Datenblatt nachlesen. Postete doch mal ein dump deiner Rohwerte aus der Konsole mit aktiviertem Debugging.
Gruß Jaschkopf
-
@mpl1338 der Gerätetyp muss auf Generic stehen, sonst muss nichts verändert werden. Ob dein Zähler die Leistung pro Phase ausgibt musst du mal im Datenblatt nachlesen. Postete doch mal ein dump deiner Rohwerte aus der Konsole mit aktiviertem Debugging.
Gruß Jaschkopf
22:00:39 CMD: sensor53 d1 22:00:39 RSL: stat/tasmota/RESULT = {"Time":"2020-02-06T22:00:39","SML":{"CMD":"dump: 1"}} 22:00:40 : ca 1b 1b 1b 1b 01 01 01 01 76 05 03 dd a0 6f 62 00 62 00 72 63 01 01 76 22:00:40 : 01 01 05 01 49 e0 25 0b 0a 01 49 53 4b 00 04 42 5a 58 72 62 01 65 01 49 df 24 62 01 63 a0 9a 00 76 05 03 dd a0 70 62 00 62 00 72 63 07 01 22:00:40 : 77 01 0b 0a 01 49 53 4b 00 04 42 5a 58 07 01 00 62 0a ff ff 72 62 01 65 01 49 df 24 74 22:00:40 : 77 07 01 00 60 32 01 01 01 01 01 01 04 49 53 4b 01 22:00:40 : 77 07 01 00 60 01 00 ff 01 01 01 01 0b 0a 01 49 53 4b 00 04 42 5a 58 01 22:00:40 : 77 07 01 00 01 08 00 ff 65 00 1c 01 04 01 62 1e 52 ff 65 03 1c 46 73 01 22:00:40 : 77 07 01 00 10 07 00 ff 01 01 62 1b 52 00 53 02 b2 01 01 01 63 7b 62 00 76 05 03 dd a0 71 62 00 62 00 72 63 02 01 71 22:00:40 RSL: tele/tasmota/STATE = {"Time":"2020-02-06T22:00:40","Uptime":"0T00:42:47","UptimeSec":2567,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":52,"MqttCount":0,"Wifi":{"AP":2,"SSId":"FRITZ!Box 7590 CJ","BSSId":"44:4E:6D:52:0C:91","Channel":1,"RSSI":100,"Signal":-47,"LinkCount":1,"Downtime":"0T00:00:06"}} 22:00:40 RSL: tele/tasmota/SENSOR = {"Time":"2020-02-06T22:00:40","SML":{"DJ_TPWRIN":5218.469,"DJ_TPWROUT":0.000,"DJ_TPWRCURR":0.701}} 22:00:41 : ae 1b 1b 1b 1b 01 01 01 01 76 05 03 dd a0 72 62 00 62 00 72 63 01 01 76 01 01 05 01 49 e0 22:00:41 : 26 0b 0a 01 49 53 4b 00 04 42 5a 58 72 62 01 65 01 49 df 25 62 01 63 7f a0 00 76 05 03 dd a0 73 62 00 62 00 72 63 07 01 22:00:41 : 77 01 0b 0a 01 49 53 4b 00 04 42 5a 58 07 01 00 62 0a ff ff 72 62 01 65 01 49 df 25 74 22:00:41 : 77 07 01 00 60 32 01 01 01 01 01 01 04 49 53 4b 01 22:00:41 : 77 07 01 00 60 01 00 ff 01 01 01 01 0b 0a 01 49 53 4b 00 04 42 5a 58 01 22:00:41 : 77 07 01 00 01 08 00 ff 65 00 1c 01 04 01 62 1e 52 ff 65 03 1c 46 75 01 22:00:41 : 77 07 01 00 10 07 00 ff 01 01 62 1b 52 00 53 00 76 05 03 dd a0 74 62 00 62 00 72 63 02 01 71 01 63 98 df 00 00 1b 1b 22:00:42 : 1b 1b 1b 1b 01 01 01 01 76 05 03 dd a0 75 62 00 62 00 72 63 01 01 76 01 01 05 01 49 e0 27 0b 0a 01 49 53 4b 00 04 42 5a 58 72 62 01 65 01 49 df 26 62 01 63 0d aa 00 76 05 03 dd a0 76 62 22:00:42 : 00 62 00 72 63 07 01 22:00:42 : 77 01 0b 0a 01 49 53 4b 00 04 42 5a 58 07 01 00 62 0a ff ff 72 62 01 65 01 49 df 26 74 22:00:42 : 77 07 01 00 60 32 01 01 01 01 01 01 04 49 53 4b 01 22:00:42 : 77 07 01 00 60 01 00 ff 01 01 01 01 0b 0a 01 49 53 4b 00 04 42 5a 58 01 22:00:42 : 77 07 01 00 01 08 00 ff 65 00 1c 01 04 01 62 1e 52 ff 65 03 1c 46 07 00 ff 01 01 62 1b 52 00 53 02 b3 01 01 01 63 b1 22:00:43 : bf 1b 1b 1b 1b 01 01 01 01 76 05 03 dd a0 78 62 22:00:43 : 00 62 00 72 63 01 01 76 01 01 05 01 49 e0 28 0b 0a 01 49 53 4b 00 04 42 5a 58 72 62 01 65 01 49 df 27 62 01 63 13 bb 00 76 05 03 dd a0 79 62 00 22:00:43 CMD: sensor53 d0da wäre mal was
-
22:00:39 CMD: sensor53 d1 22:00:39 RSL: stat/tasmota/RESULT = {"Time":"2020-02-06T22:00:39","SML":{"CMD":"dump: 1"}} 22:00:40 : ca 1b 1b 1b 1b 01 01 01 01 76 05 03 dd a0 6f 62 00 62 00 72 63 01 01 76 22:00:40 : 01 01 05 01 49 e0 25 0b 0a 01 49 53 4b 00 04 42 5a 58 72 62 01 65 01 49 df 24 62 01 63 a0 9a 00 76 05 03 dd a0 70 62 00 62 00 72 63 07 01 22:00:40 : 77 01 0b 0a 01 49 53 4b 00 04 42 5a 58 07 01 00 62 0a ff ff 72 62 01 65 01 49 df 24 74 22:00:40 : 77 07 01 00 60 32 01 01 01 01 01 01 04 49 53 4b 01 22:00:40 : 77 07 01 00 60 01 00 ff 01 01 01 01 0b 0a 01 49 53 4b 00 04 42 5a 58 01 22:00:40 : 77 07 01 00 01 08 00 ff 65 00 1c 01 04 01 62 1e 52 ff 65 03 1c 46 73 01 22:00:40 : 77 07 01 00 10 07 00 ff 01 01 62 1b 52 00 53 02 b2 01 01 01 63 7b 62 00 76 05 03 dd a0 71 62 00 62 00 72 63 02 01 71 22:00:40 RSL: tele/tasmota/STATE = {"Time":"2020-02-06T22:00:40","Uptime":"0T00:42:47","UptimeSec":2567,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":52,"MqttCount":0,"Wifi":{"AP":2,"SSId":"FRITZ!Box 7590 CJ","BSSId":"44:4E:6D:52:0C:91","Channel":1,"RSSI":100,"Signal":-47,"LinkCount":1,"Downtime":"0T00:00:06"}} 22:00:40 RSL: tele/tasmota/SENSOR = {"Time":"2020-02-06T22:00:40","SML":{"DJ_TPWRIN":5218.469,"DJ_TPWROUT":0.000,"DJ_TPWRCURR":0.701}} 22:00:41 : ae 1b 1b 1b 1b 01 01 01 01 76 05 03 dd a0 72 62 00 62 00 72 63 01 01 76 01 01 05 01 49 e0 22:00:41 : 26 0b 0a 01 49 53 4b 00 04 42 5a 58 72 62 01 65 01 49 df 25 62 01 63 7f a0 00 76 05 03 dd a0 73 62 00 62 00 72 63 07 01 22:00:41 : 77 01 0b 0a 01 49 53 4b 00 04 42 5a 58 07 01 00 62 0a ff ff 72 62 01 65 01 49 df 25 74 22:00:41 : 77 07 01 00 60 32 01 01 01 01 01 01 04 49 53 4b 01 22:00:41 : 77 07 01 00 60 01 00 ff 01 01 01 01 0b 0a 01 49 53 4b 00 04 42 5a 58 01 22:00:41 : 77 07 01 00 01 08 00 ff 65 00 1c 01 04 01 62 1e 52 ff 65 03 1c 46 75 01 22:00:41 : 77 07 01 00 10 07 00 ff 01 01 62 1b 52 00 53 00 76 05 03 dd a0 74 62 00 62 00 72 63 02 01 71 01 63 98 df 00 00 1b 1b 22:00:42 : 1b 1b 1b 1b 01 01 01 01 76 05 03 dd a0 75 62 00 62 00 72 63 01 01 76 01 01 05 01 49 e0 27 0b 0a 01 49 53 4b 00 04 42 5a 58 72 62 01 65 01 49 df 26 62 01 63 0d aa 00 76 05 03 dd a0 76 62 22:00:42 : 00 62 00 72 63 07 01 22:00:42 : 77 01 0b 0a 01 49 53 4b 00 04 42 5a 58 07 01 00 62 0a ff ff 72 62 01 65 01 49 df 26 74 22:00:42 : 77 07 01 00 60 32 01 01 01 01 01 01 04 49 53 4b 01 22:00:42 : 77 07 01 00 60 01 00 ff 01 01 01 01 0b 0a 01 49 53 4b 00 04 42 5a 58 01 22:00:42 : 77 07 01 00 01 08 00 ff 65 00 1c 01 04 01 62 1e 52 ff 65 03 1c 46 07 00 ff 01 01 62 1b 52 00 53 02 b3 01 01 01 63 b1 22:00:43 : bf 1b 1b 1b 1b 01 01 01 01 76 05 03 dd a0 78 62 22:00:43 : 00 62 00 72 63 01 01 76 01 01 05 01 49 e0 28 0b 0a 01 49 53 4b 00 04 42 5a 58 72 62 01 65 01 49 df 27 62 01 63 13 bb 00 76 05 03 dd a0 79 62 00 22:00:43 CMD: sensor53 d0da wäre mal was
@mpl1338 sieht nicht so aus als würde er die Leistung pro Phase ausgeben. Muss zuhause nochmal in meine Dokumente gucken aber sieht so aus als würde er nur die zählerstände und aktuelle wirkleistung ausgeben. Wenn der Zähler die Werte nicht im Display anzeigt dann kann er sie auch nicht über die Schnittstelle ausgeben.
Gruß jaschkopf
-
habs gefunden
einstellungen -> gerät konfigurieren -> D7 GPIO13 Led1i "none" hatte hier zuvor "IRrecv"
jetzt kommen die Daten.
Ist es möglich die einzelnen Phasen zu sehen? (Leistung/Strom)
@mpl1338 sagte in Stromzähler per Sonoff ESP8266 auslesen:
habs gefunden
einstellungen -> gerät konfigurieren -> D7 GPIO13 Led1i "none" hatte hier zuvor "IRrecv"
jetzt kommen die Daten.
Ist es möglich die einzelnen Phasen zu sehen? (Leistung/Strom)
Kann mir nicht vorstellen, dass das möglich ist!
Ist doch nur ein Lesekopf der die Summe ausliest.
Da musst Du wohl auf den neuen Shelly EM30 (?) warten, da kommt dann über jede Phase ein Adapter. -
@mpl1338 sagte in Stromzähler per Sonoff ESP8266 auslesen:
habs gefunden
einstellungen -> gerät konfigurieren -> D7 GPIO13 Led1i "none" hatte hier zuvor "IRrecv"
jetzt kommen die Daten.
Ist es möglich die einzelnen Phasen zu sehen? (Leistung/Strom)
Kann mir nicht vorstellen, dass das möglich ist!
Ist doch nur ein Lesekopf der die Summe ausliest.
Da musst Du wohl auf den neuen Shelly EM30 (?) warten, da kommt dann über jede Phase ein Adapter. -
@mkrobe es gibt schon Stromzähler die diese Daten messen und über die Schnittstelle ausgeben. Hab ich in einem anderen Forum schon gesehen

Hallo,
Danke @Jaschkopf für die sehr gute Anleitung. Dank dieser Anleitung habe ich ATOM zum laufen gebraucht und hab auch die ersten Sonoff POW R2 geflashed.
Der Sonoff POW R2 funktioniert mit Tasmota sehr gut, aber leider habe ich das auslesen per SML nicht hinbekommen.
Ich habe eine BPW40 mit Poti am RX ( natürlich auch 3,3V und GND) wie im Bild beschrieben Bild der Schaltung im Punkt Singalaufbereitung
angeschlossen. Aber leider bekomme aber leider keine Daten.
Nun ist die Frage, welcher GPIO ist der richtige für einen Sonoff POW R2 oder Sonoff RF?Danke
Viele Grüße, -
Hallo,
Danke @Jaschkopf für die sehr gute Anleitung. Dank dieser Anleitung habe ich ATOM zum laufen gebraucht und hab auch die ersten Sonoff POW R2 geflashed.
Der Sonoff POW R2 funktioniert mit Tasmota sehr gut, aber leider habe ich das auslesen per SML nicht hinbekommen.
Ich habe eine BPW40 mit Poti am RX ( natürlich auch 3,3V und GND) wie im Bild beschrieben Bild der Schaltung im Punkt Singalaufbereitung
angeschlossen. Aber leider bekomme aber leider keine Daten.
Nun ist die Frage, welcher GPIO ist der richtige für einen Sonoff POW R2 oder Sonoff RF?Danke
Viele Grüße, -
@RalfTh Ok jetzt hab ich mich selbst verwirrt. D7 am D1 war schon richtig als GPIO13 im Skript. Musste selbst nochmal nachschlagen gerade.
Aber das sich dein Skript immer wieder deaktiviert ist nicht richtig. Ich hatte den Fall bei mir auch mal und musste die Firmware neu flashen. Scheint ein Bug zu sein. Vergiss nur nicht den CFG_HOLDER zu verändern bevor du neu compilierst, wie in der Anleitung beschrieben.
Gruß Jaschkopf
@Jaschkopf Also ich bin ziemlich frustriert. Habe jetzt schon einen zweiten Wemos Nano D1 geflasht und trotzdem geht nichts. Den Lesekopf habe ich auch schon gedreht, aber auch Fehlanzeige.
Mir fehlt auch irgendwie eine Beschreibung, was dieser Lesekopf und der ESP alles macht. Ich kann das Verhalten meines Zählers überhaupt nicht nachvollziehen.Nochmal meine Konfiguration:
Mein Zähler



Wenn ich mit der Taschenlampe die PIN eingebe erscheint in der zweiten Zeile des Display die aktuelle Leistung , also P. Setze ich jetzt den Lesekopf auf, beginnt das Infofeld (zweite Zeile des Displays) plötzlich zwischen den einzelnen Informationen hin und her zu schalten. Irgendwann endet dies bei der PIN-Eingabe und der wahllosen Eingabe eines PIN. Dies führt letztendlich dazu, dass der Zähler, wegen fehlender korrekter PIN das Infofeld sperrt. Ich habe meinen Lesekopf so positioniert, dass T1 auf die Datenschnittstelle "schaut" und D1 auf den Lichtsensoreingang. (Siehe Bild 2) Das habe ich auch mehrmals kontrolliert.
Dieses Verhalten zeigt der Zähler, sobald ich den Lesekopf am Zähler montiere und diesen, ohne Rx, lediglich an die Versorgungsspannung anschließe.
Hat noch jemand einen solchen Zähler im Einsatz?