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.
-
@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.
-
@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.
-
@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 ich meine bei mir ist die Schnittstelle genauso angeordnet. Probier mal den Lesekopf um 180° mit dem Kabel nach oben aufzusetzen
-
@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,SML
PS: 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.!? -
@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"}}
-
@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
-
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 d0
da 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
-
@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, -
@fruehwi ich kann das Bild leider nicht öffnen. Musst rausfinden an welchem gpio du mit rx dran bist und den dann in Skript angeben.
Gruß Jaschkopf