NEWS
Stromzähler per Sonoff ESP8266 auslesen
-
Habe den ESP8266 nun geflasht, mei IR Lesekopf sollte die Tage kommen, wie gehe ich nun weiter vor
-
hat nicht lange gedauert und schon wieder was gefunden das dieser immer wieder neu verbindet. Mir scheint es ein Problem mit dem Server zu sein. Aber ich habe nur die Probleme mit diesem ESP wo ich Tasmota geflasht habe. Die anderen mit ESPeasy laufen ohne Probleme oder ich merke es nicht so.
07:33:59 MQT: Verbindungsversuch... 07:34:05 MQT: Verbindung fehlgeschlagen aufgrund von 192.168.179.55:1885, rc -2. Wiederversuch in 10 s 07:34:06 RSL: tele/tasmota_292DD6/STATE = {"Time":"2020-04-28T07:34:06","Uptime":"3T15:12:30","UptimeSec":313950,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":205,"MqttCount":3683,"Wifi":{"AP":2,"SSId":"HomeBox Fritz 2.4","BSSId":"C8:0E:14:5E:D6:89","Channel":1,"RSSI":100,"Signal":-34,"LinkCount":3,"Downtime":"0T00:01:53"}} 07:34:06 RSL: tele/tasmota_292DD6/SENSOR = {"Time":"2020-04-28T07:34:06","STROM":{"Total_day":32270.44,"Total_night":0.00,"Total_out":32270.44}}
-
Hallo,
ich habe soweit alles zum laufen gebracht. Habe nur noch ein Problem, ich habe den Zählertyp DZG DVS74.
Bekomme auch meine Zählerstände, sowie die aktuelle Leistung angezeigt, wenn allerdings die Leistung ca. <= -300 W beträgt, bekomme ich Werte im Bereich von 160 kW angezeigt.Hatte schon mal jemand ein ähnliches Problem?, ich konnte leider auch noch nicht herausfinden, ob das Problem beim Zähler liegt, oder irgendwo in der Tasmota Geschichte.
Hier mal mein Skript:
>D >B ->sensor53 r tper=10 >M 3 +1,13,s,0,9600,Haus +2,12,s,0,9600,PV_2012 +3,14,s,0,9600,PV_2005 1,77070100100700ff@1,Akt. Leistung,W,Power,0 1,77070100010800ff@1000,Zählerstand Verbrauch,kWh,Z_used,3 1,77070100020800ff@1000,Zählerstand Einspeisung,kWh,Z_supply,3 2,=h==================== 2,77070100100700ff@1,Akt. Leistung,W,Power,0 2,77070100010800FF@1000,Zählerstand,kWh,Z_generated,3 3,=h==================== 3,77070100100700ff@1,Akt. Leistung,W,Power,0 3,77070100010800FF@1000,Zählerstand,kWh,Z_generated,3 #
Und dann noch ein paar Rohdaten aus der Konsole, falls es was hilft: (hier könnt Ihr bei den MQTT Daten auch sehen, das eine Leistung von 165390.820 W übertragen wird)
44:49 : 77 07 01 00 60 01 00 ff 01 72 62 01 62 00 62 00 52 00 0b 0a 01 44 5a 47 00 03 96 ff 3c 01 16:44:49 : 77 07 01 00 01 08 00 ff 64 1c 59 04 72 62 01 62 00 62 1e 52 ff 64 2c 4b 43 01 16:44:49 : 77 07 01 00 02 08 00 64 a8 21 04 01 16:44:49 : 77 07 01 00 10 07 00 ff 01 72 62 01 62 00 62 1b 52 fe 54 fc 6c 4d 01 01 01 71 01 63 f9 05 00 1b 1b 1b 1b 1a 00 b3 69 16:44:50 : 1b 1b 1b 1b 01 01 01 01 76 05 d7 1b 64 00 62 00 62 00 72 63 01 01 76 01 01 02 31 0b 0a 01 44 5a 47 00 03 96 ff 3c 72 62 01 64 21 60 9f 62 02 63 83 2c 00 76 05 d8 1b 64 00 62 00 62 00 72 63 16:44:50 : 07 01 16:44:50 : 77 01 0b 0a 01 44 5a 47 00 03 96 ff 3c 07 01 00 62 0a ff ff 72 62 01 64 21 60 9f 75 16:44:50 : 77 07 01 00 60 32 01 01 01 72 62 01 62 00 62 00 52 00 04 44 5a 47 01 16:44:50 : 77 07 01 00 60 01 00 ff 01 72 62 01 00 02 08 00 ff 01 72 62 01 62 00 62 1e 52 ff 64 a8 21 0a 01 16:44:50 : 77 07 01 00 10 07 00 ff 62 00 62 00 72 63 02 01 71 01 63 1d 9a 00 1b 1b 1b 1b 1a 00 d9 16:44:51 : 9f 1b 1b 1b 1b 01 01 01 01 76 05 da 1b 64 00 62 00 62 00 72 63 01 01 76 01 01 02 31 0b 0a 01 16:44:51 : 44 5a 47 00 03 96 ff 3c 72 62 01 64 21 60 a0 62 02 63 46 59 00 76 05 db 1b 64 00 62 00 62 00 72 63 07 01 16:44:51 : 77 01 0b 0a 01 44 5a 47 00 03 96 ff 3c 07 01 00 62 0a ff ff 72 62 01 64 21 60 a0 75 16:44:51 : 77 07 01 00 60 32 01 01 01 72 62 01 62 00 62 00 52 00 04 44 5a 47 01 16:44:51 : 77 07 01 00 60 01 00 ff 01 72 62 01 07 01 00 01 08 00 ff 64 1c 59 04 72 62 01 62 00 62 1e 52 ff 64 2c 4b 43 01 16:44:51 : 77 07 01 07 00 ff 01 72 62 01 62 00 62 1b 52 fe 54 fc 64 9e 01 01 01 63 5c 59 1a 00 9f 34 16:44:52 : 1b 1b 1b 1b 01 01 01 01 76 05 dd 1b 64 00 62 00 62 00 72 63 01 01 76 01 01 02 31 0b 0a 01 44 5a 47 00 03 96 ff 3c 72 62 01 64 21 60 a1 62 02 16:44:52 : 63 34 3c 00 76 05 de 1b 64 00 62 00 62 00 72 63 07 01 16:44:52 : 77 01 0b 0a 01 44 5a 47 00 03 96 ff 3c 07 01 00 62 0a ff ff 72 62 01 64 21 60 a1 75 16:44:52 : 77 07 01 00 60 32 01 01 01 72 62 01 62 00 62 00 52 00 04 44 5a 47 01 16:44:52 : 77 07 01 00 60 01 00 ff 01 72 62 01 62 00 62 00 52 00 0b 0a 01 44 5a 47 00 03 96 ff 3c 01 16:44:52 : 77 07 01 00 01 08 00 ff 64 1c 59 04 72 62 01 62 00 62 1e 52 ff 64 2c 4b 43 01 16:44:52 : 77 07 01 00 02 08 00 07 00 ff 01 72 62 01 62 00 62 1b 52 fe 54 fc 6b f1 01 01 01 63 1b bb 00 76 05 df 1b 64 00 1a 00 21 16:44:53 : da 1b 16:44:53 : 1b 1b 1b 01 01 01 01 76 05 e0 1b 64 00 62 00 62 00 72 63 01 01 76 01 01 02 31 0b 0a 01 44 5a 47 00 03 96 ff 3c 72 62 01 64 21 60 a2 62 02 63 30 16:44:53 : 65 00 76 05 e1 1b 64 00 62 00 62 00 72 63 07 01 16:44:53 : 77 01 0b 0a 01 44 5a 47 00 03 96 ff 3c 07 01 00 62 0a ff ff 72 62 01 64 21 60 a2 75 16:44:53 : 77 07 01 00 60 32 01 01 01 72 62 01 62 00 62 00 52 00 04 44 5a 47 01 16:44:53 : 77 07 01 00 60 01 00 ff 01 72 62 01 00 62 1e 52 ff 64 2c 4b 43 01 16:44:53 MQT: tele/tasmota_zaehler_energie/STATE = {"Time":"2020-05-15T16:44:53","Uptime":"0T00:26:29","UptimeSec":1589,"Heap":22,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":73,"MqttCount":1,"Wifi":{"AP":1,"SSId":"Stromspielplatz","BSSId":"7C:FF:4D:94:6E:BB","Channel":6,"RSSI":46,"Signal":-77,"LinkCount":1,"Downtime":"0T00:00:03"}} 16:44:53 MQT: tele/tasmota_zaehler_energie/SENSOR = {"Time":"2020-05-15T16:44:53","Haus":{"Power":165390.820,"Z_used":290.3,"Z_supply":1101.8},"PV_2012":{"Power":4287.650,"Z_generated":1584.6},"PV_2005":{"Power":0.000,"Z_generated":0.0}} 16:44:53 : 77 07 01 00 02 08 00 ff 01 72 62 01 62 00 62 1e 52 ff 7a 01 01 01 63 43 11 00 76 05 e2 1b 64 00 62 00 62 00 72 63 02 01 71 16:44:54 : d4 1b 1b 1b 1b 01 01 01 01 76 05 e3 1b 64 00 62 00 16:44:54 : 62 00 72 63 01 01 76 01 01 02 31 0b 0a 01 44 5a 47 00 03 96 ff 3c 72 62 01 64 21 60 a3 62 02 63 1c f9 00 76 05 e4 1b 64 00 62 00 62 00 72 63 07 16:44:54 : 01 16:44:54 : 77 01 0b 0a 01 44 5a 47 00 03 96 ff 3c 07 01 00 62 0a ff ff 72 62 01 64 21 60 a3 75 16:44:54 : 77 07 01 00 60 32 01 01 01 72 62 01 62 00 62 00 52 00 04 44 5a 47 01 16:44:54 : 77 07 01 00 60 01 00 ff 01 72 62 01 08 00 ff 01 72 62 01 62 00 62 1e 52 ff 64 a8 21 24 01 16:44:54 : 77 07 01 00 10 07 00 ff 01 72 62 00 62 00 72 63 02 01 71 01 63 af f5 00 1b 1b 1b 1b 1a 00 16 16:44:55 : e1 1b 1b 1b 1b 01 16:44:55 : 01 01 01 76 05 e6 1b 64 00 62 00 62 00 72 63 01 01 76 01 01 02 31 0b 0a 01 44 5a 47 00 03 96 ff 3c 72 62 01 64 21 60 a4 62 02 63 18 36 00 76 05 16:44:55 : e7 1b 64 00 62 00 62 00 72 63 07 01 16:44:55 : 77 01 0b 0a 01 44 5a 47 00 03 96 ff 3c 07 01 00 62 0a ff ff 72 62 01 64 21 60 a4 75 16:44:55 : 77 07 01 00 60 32 01 01 01 72 62 01 62 00 62 00 52 00 04 44 5a 47 01 16:44:55 : 77 07 01 00 60 01 00 ff 01 72 62 01 62 00 62 00 52 00 0b 0a 01 44 5a 47 00 03 96 ff 3c 01 16:44:55 : 77 07 01 00 01 08 00 ff 64 1c 62 01 62 00 62 1e 52 ff 64 2c 4b 43 01 16:44:55 : 77 07 01 00 02 08 00 ff 01 72 62 00 62 1b 52 fe 54 fc 69 0a 01 01 01 63 38 b2 00 76 05 e8 1b 64 00 62 00 62 00 72 63 02 16:44:56 : 1b 1b 1b 1b 01 01 16:44:56 : 01 01 76 05 e9 1b 64 00 62 00 62 00 72 63 01 01 76 01 01 02 31 0b 0a 01 44 5a 47 00 03 96 ff 3c 72 62 01 64 21 60 a5 62 02 63 c7 a9 00 76 05 ea 1b 16:44:56 : 64 00 62 00 62 00 72 63 07 01 16:44:56 : 77 01 0b 0a 01 44 5a 47 00 03 96 ff 3c 07 01 00 62 0a ff ff 72 62 01 64 21 60 a5 75 16:44:56 : 77 07 01 00 60 32 01 01 01 72 62 01 62 00 62 00 52 00 04 44 5a 47 01 16:44:56 : 77 07 01 00 60 01 00 ff 01 72 62 01 43 01 16:44:56 : 77 07 01 00 02 08 00 ff 01 72 62 01 62 00 62 1e 52 ff 64 a8 21 31 01
Dank schon mal mit der Hoffnung auf hilfreiche Tipps.
-
@treckerfahrer31 aktivier mal den Median Filter indem du in der zählerdefinition die 0 zu einer 16 änderst. Dadurch werden solche unplausiblen Werte herausgefiltert.
+1,13,s,16,9600,Haus +2,12,s,16,9600,PV_2012 +3,14,s,16,9600,PV_2005
Gruß Jaschkopf
-
-
@treckerfahrer31 mhh seltsam. Vermutlich ist dann dein Lesekopf nicht optimal auf die Schnittstelle ausgerichtet sodass die Daten fehlerhaft empfangen werden.
Gruß Jaschkopf
-
Wie gesagt, wenn die Leistung positiv ist >= 0 (bzw. -300) W zeigt er mir die Werte einwandfrei an. Das ist Nachts der Fall.
Wenn tagsüber die PV Anlage läuft und ich einspeise, sprich negative Leistung, kommen diese unplausiblen Werte.Habe auch schon diesen Artikel gefunden (https://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/dzg_dvs74), in dem ein Problem beschrieben wird, welches meiner Meinung aber anders ist, wie meins.
Hab auch schon mal versucht, die Rohdaten manuell zu decodieren, um zu sehen ob der Fehler beim EHZ liegt, oder bei der Software, aber das scheiterte an meiner Kompetenz .
-
@Jaschkopf
Hallo!
Habe mir bei Google einen Wolf gesucht um etwas brauchbares für meine NodeMCU als Pulse Counter zu finden.
Besitze schon mehere sOnOffs mit Tasmota...Leider gibt es ja im Github keine flashbare Version mit SML.
Mir gefällt deine Version von Tasmota echt super!
Könntest du mir wohl bitte die fertige bin Datei zur Verfügung stellen?
Ich habe einen Drehstromzähler mit S0 Schnittstelle.
Es wäre ein Träumchen, wenn die Pulsefrequenz bei 1000 für die Anzeige sein würde. Oder kann man das per Befehl in der Konsole ändern?Hoffe du kannst mir weiterhelfen.
Mit diesen ganzen Atom ino Dingens komme ich leider nicht klar -
@Guano-Apes Servus. Also erstmal ist das nicht meine Entwicklung. Den SML Treiber hat @gemu2015 entwickelt und Tasmota ist ja bekanntlich von Theo Arends. Ich hab lediglich die Anleitung hier im Forum verfasst wobei ich da auch viele Infos dem CreationX Forum übernommen habe. Eine Fertige .bin kann ich dir leider nicht geben, da vor dem Kompilieren zu viele Einstellungen gemacht werden müssen. Aber mit dem Tutorial haben es bis jetzt alle hin bekommen.
Da das keine Plug&Play Lösung ist, muss man sich da schon etwas mit auseinander setzen. Andere Hersteller (z.B. Homematic) nehmen für fertige Lösungen viel Geld. Wer es günstiger will, muss Eigenleistung erbringen
Was du dann für einen Zähler hast kannst du über die Weboberfläche im Skript festlegen.
Gruß Jaschkopf
-
@Jaschkopf said in Stromzähler per Sonoff ESP8266 auslesen:
@Guano-Apes Servus. Also erstmal ist das nicht meine Entwicklung. Den SML Treiber hat @gemu2015 entwickelt und Tasmota ist ja bekanntlich von Theo Arends. Ich hab lediglich die Anleitung hier im Forum verfasst wobei ich da auch viele Infos dem CreationX Forum übernommen habe. Eine Fertige .bin kann ich dir leider nicht geben, da vor dem Kompilieren zu viele Einstellungen gemacht werden müssen. Aber mit dem Tutorial haben es bis jetzt alle hin bekommen.
Da das keine Plug&Play Lösung ist, muss man sich da schon etwas mit auseinander setzen. Andere Hersteller (z.B. Homematic) nehmen für fertige Lösungen viel Geld. Wer es günstiger will, muss Eigenleistung erbringen
Was du dann für einen Zähler hast kannst du über die Weboberfläche im Skript festlegen.
Gruß Jaschkopf
Danke für deine Antwort
Kannst du mir auch sagen, ob es generell möglich ist, mit der von dir beschriebenen Methode auch Impluse vom s0 meines Drehstromzählers abzugreifen?
Hier ist ja eigentlich vom D0 die Rede, das ist ja alles etwas anders...Leider sind auch die ganzen Links zum Wiki nicht mehr brauchbar, weil dort in Github wohl etwas geändert wurde...
-
@Guano-Apes Ja das ist möglich.
Die Links in der Anleitung muss ich bei Zeiten mal aktualisieren.
Gruß Jaschkopf
-
Ihr arbeitet hier aber alle mit den Ferraris D0 Opto Zählern, oder?
Wäre für Tipps dankbar, wie das beim S0 gehen würde.
-
@Guano-Apes Nein wir arbeiten hier alle mit einem Schreib-Lesekopf der die Daten aus einer optischen Schnittstelle direkt am Zähler bzw. der Modernen Messeinrichtung empfängt. Ferraris nutzt hier soweit ich weiß keiner.
Um deine S0 Impulse auslesen zu können brauchst du einen passenden Empfänger der dann einen Pin des ESP auf GND zieht. Findet man alles bei google wenn man sich ein bisschen Mühe gibt. Gibts sowohl für Ferraris als auch Digitale Zähler.
Gruß Jaschkopf
-
Ja, einen ESPeasy habe ich hier schon und einen Drehstromzähler mit s0 Port auch.
Läuft soweit alles mit der ESPeasy Soft.
Tasmota sieht da allerdings besser aus...Ja gut, dann werde ich mal googeln... Wobei dort nicht viel rauskommt mit Tasmota und S0........ Alles immer nur D0......
-
Hallo,
dank der tollen Anleitung läuft bei mir nun auch schon einige Wochen ein Wemos für das Auslesen des Stromzählers.
Zum Zeitpunkt des Flashens war Tasmota 8.2 aktuell.
Inzwischen gibt es Tasmota 8.3.1.
Kann man dieses jetzt einfach per Standard Online Update einspielen oder muss man das Flashfile für die aktuelle Version auch immer erst nach der Anleitung erstellen ?
Einspielen müsste dann ja manuell über das Webinterface möglich sein.Gruß
MasterAndi -
@MasterAndi0815 also grundsätzlich wur5de ich sagen "never Change a running system" . Wenn es dringende Bugfix oder neue Features gibt die du brauchst solltest du unbedingt vorher Backups machen. Ist im tasmota wiki beschrieben. Beim Update sollte die userconfig_override bestehen bleiben. Alles was du in der normalen userconfig angepasst hast wird beim Update vermutlich überschrieben.
Gruß Jaschkopf
-
Hallo zusammen und danke für dieses spannende Projekt Das hat mich heute gut durch den verregneten Samstag begleitet, leider bin ich elektronisch nicht ganz 100% bewandert und "es geht noch nicht". Da ich momentan noch zuviele Fehlerquellen habe, könnte mich vielleicht einer auf den richtigen Weg bringen?
Tasmota mit SML kompiliert und auf NodeMCU v3 geflasht. Soweit, so gut.
Ich habe hier ein EasyMeter Q3M und habe dazu einen passenden IR-Lesekopf, welcher RS232 spricht (Lingg Janke 87220).
Die PIN-Belegung sieht hierbei wie folgt aus:
Hier ist schonmal die erste Fehlerquelle, wie ich auf den Western-Stecker schauen muss, damit die PIN-Reihenfolge passt. Ich gehe mal davon aus, dass der die Frontalansicht mit Kabel nach unten gemeint ist, dann passen immerhin die Adernfarben (rot = V, schwarz = GND, grün = RxD, gelb = TxD).
oder ist hier der Blick "von vorne" gemeint?
Dann wäre gelb = V, grün = GND, schwarz = RxD, rot = TxD.Das Ganze habe ich mit einem RS232-to-TTL-Adapter verbunden und wie folgt verkabelt:
Könnte ich hier auch direkt die seriellen PINs auf der NodeMCU nehmen oder grille ich mir da was mit 5 Volt? Wie hiesse dieser "RX" Pin (auf der NodeMCU rechts der dritte von unten) in Tasmota?Momentan erhalte ich nur Null-Werte. auch auf der Konsole. Ich habe aber viele potentielle Fehlerquellen:
- ist die Belegung des Western-Steckers von mir richtig interpretiert?
- Ist die Belegung der RS232-Steckers richtig interpretiert? Habe auch schon PIN 2 verwendet. Auf der Platine ist aber female montiert, nicht male.
- Ich muss von RX auf dem TTL-Board zum NodeMCU, richtig?
- PIN "D7" ist im Script schon als "PIN13" zu bezeichnen, oder bezeichne ich den mit D7?
Ich wäre ja schon froh, wenn ich überhaupt Daten hereinkommen sähe, um die passende Formatierung kann ich mich danach ja kümmern.
Vielleicht kann ja einer das Brett vor meinem Kopf nehmen
Danke! -
Hallo,
als Neuling habe ich überhaupt keine Ahnung wie man flashed mit Atom. Vielleicht kann einer mal eine Beschreibung geben was genau zu tun ist. Die diversen Dateien ändern bekomme ich gerade noch so hin.
Wie geht es dann weiter, Wie ist die Vorgehensweise im Programm?
Gruß
Holger -
@Holger-Etzel ich selbst habe das mit Visual Studio Code (VSC) gemacht, weil das bei mir mit Atom irgendwie nicht hingehauen hat.
Bei mir war das ein Wemos D1 Mini. Den habe ich über USB mit dem Rechner, auf dem VSC läuft verbunden. Dabei wird ein Com-Port erzeugt. Diesen musst du auswählen und darüber dein Gerät flashen.
Natürlich musst du, egal ob VSC oder Atom, gewisse Vorbereitungen bei den Editoren durchführen. Diese hat Jaschkopf in seinem Artikel beschrieben.Spezifischer geht es unter den Umständen leider nicht.
-
@RalfTh Die Dateien habe ich soweit geändert, wie funktioniert der Flash-Vorgang. was muss ich im VSC drücken?