NEWS
Stromzähler per Sonoff ESP8266 auslesen
-
@hussi Historische Werte kommen oft nicht über die Schnittstelle.
Ich persönlich logge das über den ioBroker mit sourceanalytix -
@chaot Ich ruf dann morgen mal den Versorger an. In der Anleitung steht ja, dass es möglich sein soll. Hier sind ja auch viele Screenshots wo die Daten in Tasmota angezeigt werden. Muss dann wohl ein anderer Zähler sein.
Ich kenne sourceanalytix noch nicht. Der Hintergrund warum ich das haben möchte: Ich möchte hin und wieder eine Abfrage machen, in der mir dann zu dem Zeitpunkt die Daten ausgegeben werden.
Sprich, es hilft nicht, wenn die Daten um 23:59 geschrieben werden und ich sie mir am nächsten Tag anschauen kann, ich hätte sie gern zu dem Zeitpunkt genau.
-
@hussi Der aktuelle Zählerstand kommt ja soweit ich das erkenne. Lediglich der vorherige Verbrauch kommt nicht. Das ist durchaus denkbar, dass der Zähler das gar nicht über die Schnittstelle ausgibt, wie in meinem Fall.
Dann sind zwar die historischen Daten im Display sichtbar, wie in der Anleitung beschrieben, aber die nutzen dort natürlich herzlich wenig.
Dafür verwende ich eben sourceanalytix und auch noch ein kleines Script zum Zählerstand. Damit mache ich dann alle Abfragen die ich benötige:
z.B. Heutiger Verbrauch minutengenau, Verbrauch aller Vortage, Vorwoche gesamt, Monat aktuell -
Moin, ich stehe vor einem Rätsel und bräuchte Hilfe, weil ich evtl. den Wald vor lauter Bäumen nicht sehe.
Zunächst meine Konfiguration:
-
Tasmota 8.1.0.4 auf einem D1 Mini mit ESP8266
-
Zähler eHZ-KW8E2A5L0EQ2P
Skript (vermutlich antiquiert weil es schon so lange läuft.)
>D s1="Tagesverbrauch: {m}<b><span style=" v2=0 hr=0 md=0 yr=0 ;Strom sm=0 sd=0 sma=50263.000 smn=0 sya=49239.000 syn=0 sspr=0.2502 yspr=0 ysgp=104.16 y€=0 >T v2=SML#DJ_TPWRIN >B ->sensor53 r tper=10 >S ;Tagesverbrauch hr=hours if chg[hr]>0 and hr==0 and v2>0 then sm=v2 svars endif if upsecs%tper==0{ sd=v2-sm } ;Monatsverbrauch md=day if chg[md]>0 and md==1 and v2>0 then sma=v2 svars endif if upsecs%tper==0{ smn=v2-sma } ;Jahresverbrauch yr=year if chg[yr]>0 and hr==0 and md==1 and v2>0 then sya=v2 svars endif if upsecs%tper==0{ syn=v2-sya ;Kosten yspr=syn*sspr+ysgp } >J ,"Verbrauch Tag":"%sd%" ,"Verbrauch Monat":"%smn%" ,"Verbrauch Jahr":"%syn%" ,"Zählerstand 0:00Uhr":"%3sm%" ,"Zählerstand Monatsanfang":"%2sma%" ,"Zählerstand Jahrsenanfang":"%2sya%" >W ============== Tagesverbrauch: {m} %2sd% KWh Monatsverbrauch: {m} %2smn% KWh Jahresverbrauch: {m} %2syn% KWh ============== Preis/kWh: {m} %4sspr% € Grundpreis: {m} %2ysgp% € -------------- Kosten lfd. Jahr:{m} %2yspr% € ============== Zählerstände: aktuell: {m} %2v2% KWh 0:00 Uhr: {m} %2sm% KWh Monatsanfang: {m} %2sma% KWh Jahresanfang: {m} %2sya% KWh ============== >M +1,13,s,1,9600,SML 1,77070100010800ff@1000,Verbrauch,KWh,DJ_TPWRIN,2 1,77070100020800ff@1000,Einspeisung,KWh,DJ_TPWROUT,2 1,770701000f0700ff@1,Akt. Verbrauch,W,DJ_TPWRCURR,0 1,77070100000009ff@#,Zaehler Nr,,Meter_number,0 #
Ausgabe Konsole:
09:39:57 : c4 1b 1b 1b 1b 01 01 01 01 76 07 00 0c 00 25 a4 ab 62 00 62 00 72 63 01 01 76 01 01 07 00 0c 05 30 8c 39 0b 09:39:57 : 09 01 45 4d 48 00 00 90 bc 7a 01 01 63 17 5b 00 76 07 00 0c 00 25 a4 ac 62 00 62 00 72 63 07 01 09:39:57 : 77 01 0b 09 01 45 4d 48 00 00 90 bc 7a 07 01 00 62 0a ff ff 72 62 01 65 05 30 eb 07 7a 09:39:57 : 77 07 81 81 c7 82 03 ff 01 01 01 01 04 45 4d 48 01 09:39:58 : 77 07 01 00 00 00 09 ff 01 01 01 01 0b 09 01 45 4d 00 ff 64 01 01 82 01 62 1e 52 ff 56 00 02 07 ae 64 01 09:39:58 : 77 07 01 00 02 08 00 ff 64 01 01 08 01 ff 01 01 62 1e 52 ff 56 00 02 07 ae 64 01 09:39:58 : 77 52 ff 56 00 00 00 00 00 01 09:39:58 : 77 07 01 00 02 08 02 ff 01 01 62 1e 52 ff 56 00 00 00 00 00 01 09:39:58 : 77 07 01 00 10 7c 01 09:39:58 : 77 07 81 81 c7 82 05 ff 01 01 01 01 83 02 80 06 e6 a7 0a 66 06 9e e2 1c 1e 25 0b 61 de 7b 2f 24 e2 29 a5 1b 1a 00 2e 01 09:39:59 : 1b 1b 1b 1b 01 01 01 01 76 07 00 0c 00 25 a4 b1 62 00 62 00 09:39:59 : 72 63 01 01 76 01 01 07 00 0c 05 30 8c 3b 0b 09 01 45 4d 48 00 00 90 bc 7a 01 01 63 73 a5 00 76 07 00 0c 00 25 a4 b2 62 00 62 00 72 63 07 01 09:39:59 : 77 01 0b 09 01 45 4d 48 00 00 90 bc 7a 07 01 00 62 0a ff ff 72 62 01 65 05 30 eb 09 7a 09:40:00 : 77 07 81 81 c7 82 03 ff 01 01 01 01 04 45 4d 48 01 09:40:00 CMD: sensor53 d0 09:40:00 MQT: stat/tasmota/RESULT = {"Time":"2023-10-17T09:40:00","SML":{"CMD":"dump: 0"}} 09:40:07 MQT: tele/tasmota/STATE = {"Time":"2023-10-17T09:40:07","Uptime":"0T00:09:32","UptimeSec":572,"Heap":23,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Wifi":{"AP":1,"SSId":"Palatina","BSSId":"5C:49:79:55:9E:DC","Channel":4,"RSSI":74,"Signal":-63,"LinkCount":1,"Downtime":"0T00:00:06"}} 09:40:07 MQT: tele/tasmota/SENSOR = {"Time":"2023-10-17T09:40:07","SML":{"DJ_TPWRIN":3405.78,"DJ_TPWROUT":11519.16,"DJ_TPWRCURR":0,"Meter_number":"0901454d48000090bc7a"}} 09:40:17 MQT: tele/tasmota/STATE = {"Time":"2023-10-17T09:40:17","Uptime":"0T00:09:42","UptimeSec":582,"Heap":23,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Wifi":{"AP":1,"SSId":"Palatina","BSSId":"5C:49:79:55:9E:DC","Channel":4,"RSSI":74,"Signal":-63,"LinkCount":1,"Downtime":"0T00:00:06"}} 09:40:17 MQT: tele/tasmota/SENSOR = {"Time":"2023-10-17T09:40:17","SML":{"DJ_TPWRIN":3405.78,"DJ_TPWROUT":11519.16,"DJ_TPWRCURR":0,"Meter_number":"0901454d48000090bc7a"}}
Mein Problem, ich bekomme keine aktuelle Leistung mehr angezeigt. Ich hatte einen kleinen Ausfall und musste das Backup wieder auf den D1-Mini zurückspielen. Seither keine Anzeige der aktuellen Leistung.
Hat jemand einen Hinweis?
-
-
Moin
Lesekopf mal runter gehabt, bei mir musste ich nach einem Stromausfall den Zähler einmal sperren und neu mittels PIN entsperren
der war ständig im Demo modus und hat auch keine Daten mehr geliefertAlternativ
sichere das Skript mal weg und versuche es mit einer abgespeckten VersionM 1
+1,3,s,0,9600,
1,77070100000009FF@1,Geräteeinzelidentifikation,Unbekannte Einheit,geräteeinzelidentifikation,0
1,77070100020802FF@1,Unbekannter Datentyp,Wh,unbekanntes_mqtt_topic_1,1das wäre was SML Decoder ausgibt für deinen Output
https://tasmota-sml-parser.dicp.net/decode -
@ralfth
was für ein Ausfall Stromausfall oder Wemos defekt?Bei Stromausfall kann es möglich sein, dass es wie @euro schrieb, das du dein Zähler neu freischalten musst.
Die Daten aus der Konsole sehen nicht konform aus, kann sein das du den Kopf nochmal etwas justieren musst. Aber zuerst Prüfen, ob Pin off und Info on eingestellt sind am Zähler. -
@tt-tom
OK, ich muss es genauer beschreiben.
Der Wemos war ausgeschaltet. Nach dem einschalten war das Skript weg. Ein zuvor gemachtes Backup des Wemos habe ich zurückgespielt. Es geht wieder alles bis auf die aktuelle Leistungsanzeige. Ich gehe also davon aus, dass der Zähler entsperrt ist, da er Daten zur aktuellen 2.0.8 (Zählerstand Einspeisung) und 1.0.8 (Zählerstand Bezug) liefert.Habe das Skript von euro mal aktiviert und folgende Ergebnisse:
00:00:00 CFG: aus Flash geladen am 3F7, zählen 29 00:00:00 Script: nv=0, tv=0, vns=0, ram=16 00:00:00 Projekt tasmota Tasmota-Stromzähler Version 8.1.0.4(tasmota)-2_6_1 00:00:00 SNS: Hardware Serial 00:00:00 WIF: verbinden mit AP1 Palatina in Modus 11N als tasmota-5164... 00:00:05 WIF: verbunden 00:00:05 HTP: Web-Server aktiv bei tasmota-5164 mit IP-Adresse 192.168.178.152 12:45:49 MQT: Verbindungsversuch... 12:45:49 MQT: verbunden 12:45:49 MQT: tele/tasmota/LWT = Online (beibehalten) 12:45:49 MQT: cmnd/tasmota/POWER = 12:45:49 MQT: tele/tasmota/INFO1 = {"Module":"Generic","Version":"8.1.0.4(tasmota)","FallbackTopic":"cmnd/Stromzähler_fb/","GroupTopic":"cmnd/tasmotas/"} 12:45:49 MQT: tele/tasmota/INFO3 = {"RestartReason":{"Exception":28,"Reason":"Exception","EPC":["4024ee18","00000000","00000000"],"EXCVADDR":"00000000","DEPC":"00000000","CallChain":["4024c70a","4024670e","40221c4a","40245199","40222408","40004554","4024a550","40100a80","4020f74c","40227898","402278c3","40229921","4022df42","402467f4","401009e5"]}} 12:45:53 MQT: tele/tasmota/STATE = {"Time":"2023-10-17T12:45:53","Uptime":"0T00:00:12","UptimeSec":12,"Heap":25,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":24,"MqttCount":1,"Wifi":{"AP":1,"SSId":"Palatina","BSSId":"5C:49:79:55:9E:DC","Channel":4,"RSSI":80,"Signal":-60,"LinkCount":1,"Downtime":"0T00:00:06"}} 12:45:53 MQT: tele/tasmota/SENSOR = {"Time":"2023-10-17T12:45:53","OBIS":{"Total_in":0.0000,"Total_out":0.0000,"Power_curr":0,"Meter_number":""}} 12:46:03 MQT: tele/tasmota/STATE = {"Time":"2023-10-17T12:46:03","Uptime":"0T00:00:22","UptimeSec":22,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Wifi":{"AP":1,"SSId":"Palatina","BSSId":"5C:49:79:55:9E:DC","Channel":4,"RSSI":78,"Signal":-61,"LinkCount":1,"Downtime":"0T00:00:06"}} 12:46:03 MQT: tele/tasmota/SENSOR = {"Time":"2023-10-17T12:46:03","OBIS":{"Total_in":0.0000,"Total_out":0.0000,"Power_curr":0,"Meter_number":""}} 12:46:13 MQT: tele/tasmota/STATE = {"Time":"2023-10-17T12:46:13","Uptime":"0T00:00:32","UptimeSec":32,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Wifi":{"AP":1,"SSId":"Palatina","BSSId":"5C:49:79:55:9E:DC","Channel":4,"RSSI":80,"Signal":-60,"LinkCount":1,"Downtime":"0T00:00:06"}} 12:46:13 MQT: tele/tasmota/SENSOR = {"Time":"2023-10-17T12:46:13","OBIS":{"Total_in":0.0000,"Total_out":0.0000,"Power_curr":0,"Meter_number":""}} 12:46:23 MQT: tele/tasmota/STATE = {"Time":"2023-10-17T12:46:23","Uptime":"0T00:00:42","UptimeSec":42,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Wifi":{"AP":1,"SSId":"Palatina","BSSId":"5C:49:79:55:9E:DC","Channel":4,"RSSI":80,"Signal":-60,"LinkCount":1,"Downtime":"0T00:00:06"}} 12:46:23 MQT: tele/tasmota/SENSOR = {"Time":"2023-10-17T12:46:23","OBIS":{"Total_in":0.0000,"Total_out":0.0000,"Power_curr":0,"Meter_number":""}}
Es wird jetzt natürlich nichts mehr angezeigt, ich vermute das liegt daran:
+1,3,s,0,9600,Bei mir war das so:
+1,13,s,1,9600,SMLWo finde ich denn ein aktuelles Skript für meinen Zähler bzw. Hilfe beim Erstellen eines Skriptes?
Ist es sinnvoll den Wemos auf die aktuelle Tasmota V13 zu flashen?
Bisher war meine Devise "Don't touch running systems"
-
>D >B =>sensor53 r >M 1 +1,3,s,0,9600, 1,77070100010800ff@1000,Gesamtverbrauch,KWh,Total_in,2 1,77070100020800ff@1000,Gesamteinspeisung,KWh,Total_out,2 1,77070100100700ff@1,Verbrauch,W,Power_curr,0 #
Beachte den RX Pin, 3 oder 13
-
Es ist entscheidend, ob hinter der Baudzahl ein Text steht. Dieser findet in der Objektstruktur vom MQTT sich wieder.
Wo finde ich denn ein aktuelles Skript für meinen Zähler bzw. Hilfe beim Erstellen eines Skriptes?
Auf der Tasmota Seite findest du Scripte für verschiedene Zähler, bzw Informationen für die Erstellung dieser. Link Text
-
Doppel Post
-
@ralla66 sagte in Stromzähler per Sonoff ESP8266 auslesen:
1,77070100100700ff@1,
Das wars, bei mir stand 1,770701000f0700ff@1,
Jetzt funktioniert alles. Wie das allerdings passieren konnte ist mir ein Rätsel.
-
Hallo zusammen,
mein Sonoff sendet fleissig Daten an den IO Broker.
Er sendet allerdings nur den akt. Verbrauch und des Gesamtstand.Was im Broker nicht ankommt ist
SML L1
SML L2
SML L3
EinspeisungWie bekomme ich die Daten in den Broker
-
zeigt der Zaehler die Werte denn ueberhaupt an?
Oft sind diese nicht vom Versorger freigeschaltet... -
@ilovegym
Ja werden angezeigt -
Den Info Parameter hast du auch auf On gesetzt?
Wie sieht den das Script auf dem ESP aus? Sind dort die Werte hinterlegt? -
Hier ist ne sehr gute Hilfeseite, geh das mal durch...
-
@ilovegym
Genau nachdem hab ich alles gemacht. Auf der Seite von Tasmota hab ich ja alle Werte,
nur im Iobroker fehlen eben L1,L2,L3 und Einspeisung als Datenpunkt. -
@tobiasp zeige mal das Script von Tasmota
-
@tt-tom ```
D
B
->sensor53 rM 1
+1,3,s,0,9600,SML1,=h=================
1,77070100010800ff@1000,Gesamtverbrauch,KWh,Total_in,2
1,=h=================
1,77070100100700ff@1,akt. Verbrauch,W,Power_curr,2
1,=h=================
1,77070100020800ff@1000,Gesamte Einspeisung,kWh,Total_out,2
1,=h=================
1,77070100240700FF@1,Wirkleistung L1,W,wirkleistung_l1,0
1,=h=================
1,77070100380700FF@1,Wirkleistung L2,W,wirkleistung_l2,0
1,=h=================
1,770701004C0700FF@1,Wirkleistung L3,W,wirkleistung_l3,0
1,=h=================
1,77070100000009ff@#,Zählernummer,,Meter_number,0
1,=h=================
-