D0 Zähler SML auslesen mit Tasmota

  • Ich benutze einfach den Sonoff-Adapter.

    hast du im Adapter alle Häkchen gesetzt für automatisches erstellen von Zuständen?

    Ansonsten auch gerne mal den Adapter auf debug stellen und im log schauen ob etwas ankommt.
    sendet dein Gerät die Zustände denn? Was spukt die Konsole des esp’s aus?

  • smhe

    Kein Plan wie das Gerät innerlich verschaltet ist um ehrlich zu sein.

    Wo hast du nun vor einen Widerstand zu setzen?

    Also normalerweise, müsste bei angeschlossenen 3,3V an VCC an der TX Litze (grün) bei hellem Lichteinfall -> 3,3V anliegen oder GND. Und bei Dunkelheit das genaue Gegenteil.

    I.O.
    da ich keine Vernünftigen Werte messen konnte, habe ich mir anhand der Posts im Forum die Günstig - Lösung gebastelt:

    • Fototransistor BPW78A
    • 1 K Widerstand zwischen Vcc und RX

    ... und was soll ich sagen. Klappte sofort.
    Vielen Dank an alle hier :) !

  • Hallo zusammen,

    ich wollte auch mal meine aktuelle fertige Config hier posten, falls noch jemand einen Stromzähler ISKRA eHZ-MT681 hat.

    Ich habe das Skript für zwei Stromzähler gemacht.

  • Hat hier wirklich niemand sonst das Problem?

    Ich habe jetzt Stunden damit verbracht alle Werte zu bekommen, unterschiedliche Transistoren und Widerstände. Es ist nichts zu machen!

    Ich behaupte immer noch, dass es an Version 8 liegt, da es mit 6 ging. Leider habe ich keinen Zugriff auf eine Universal 6 mehr.

    Vorm Update von Uni 6 auf Uni 8 ging das Ablesen des Stromzählers ja ohne Probleme.

    gemu2015

    Bitte äußere du dich doch mal dazu und kannst du mir den Source der Uni 6 noch mal bitte bereitstellen?

    Vielen Dank

    URBANsUNITED

  • Moin Moin!

    Mir ist nicht bekannt, dass sich etwas an der OBIS Erkennung geändert hat. Selbst besitze ich aber auch nur einen SML Zähler.

    Vielleicht könntest du etwas mehr Informationen posten.

    Benutzt du schon den Scripter in der WEBGUI oder nutzt du noch die Einstellungen die beim kompilieren festgelegt werden? Bin mir gerade nicht ganz sicher ob uni6 nicht noch auf die Hardcoded Geschichte gesetzt hat.

    Wie sieht dein Skript aus? Wie der Aufbau deiner Hardware?

    Was kommt beim dumpen via sensor53 d1 raus?

    Viele Grüße

  • Hallo zusammen,

    erstmal ganz großen Dankeschön an alle hier - ganz großes Kino !!!

    Habe mein Zähler eBZ DD3 mit der 1k / BPW78A (10 Stk für 4 € bei E***) fast Problemlos auslesen können.

    Die Schaltung ohne PullUp auf Rx hat bei meinem China-WEMOS nicht funktioniert, dafür aber mit 1k Pullup auf GPIO !!!

    Super Sache

    Zu beachten:

    Info Modus musste bei mir am Zähler auf volles Protokoll umgestellt werden - ohne das kommt nur Zählerstand und Zähler-Nr.

    Hier mein Script mit 1x D0 SML Zähler und 3x S0 Zähler:

    >D

    >B

    =>sensor53 r

    >M 4

    +1,2,s,0,9600,SML

    +2,5,c,0,-10,S0_KG

    +3,12,c,0,-10,S0_EG

    +4,13,c,0,-10,S0_OG

    1,77070100000009ff@#,Zähler Nr,,Meter_number,0

    1,77070100010800ff@100000000,Zählerstand Bezug,KWh,Total_in,3

    1,77070100020800ff@100000000,Zählerstand Einspeisung,KWh,Total_out,3

    1,77070100100700ff@1,Aktueller Verbrauch,W,P,0

    1,77070100240700ff@1,Leistung L1,W,P_L1,2

    1,77070100380700ff@1,Leistung L2,W,P_L2,2

    1,770701004c0700ff@1,Leistung L3,W,P_L3,2

    2,=h_____________________________

    2,1-0:1.8.0*255(@1000,Zaehler KG,KWh,Count,3

    3,=h__________________

    3,1-0:1.8.0*255(@500,Zaehler EG,KWh,Count,3

    4,=h__________________

    4,1-0:1.8.0*255(@1000,Zaehler OG,KWh,Count,3

    #

    Vielen Dank nochmal an alle die hier mitgewirkt haben - DIY rules :)

    Was ich nicht verstehe ist das die Anzeige bei Einspeisung im Text KWh einträgt - sollte eigentlich nicht da sein ....

    Wer hat eine Idee zur Behebung des Anzeigefehlers ?

    Der Malte

    3 Mal editiert, zuletzt von DerMalte (8. März 2020 um 23:18)

  • Super das es Funktioniert!

    Bzgl. deines Problems: Ich denke, die Anzahl der Zeichen ist zu lang. Nimm einen kürzeren Namen. Vermutlich ragt die Länge des Names bis in die Speicherzelle der Einheit hinein.

  • Guten Morgen,

    es muss ein Unterschied vorhanden sein, denn ich habe jetzt die Universal 6 noch mal von gemus2015 gezogen und kompiliert.

    Das ist Softwarestand 6.604

    Dort bekomme ich alle Werte in meiner Webansicht übermittelt.

    Daraufhin habe ich die aktuelle Universal 8 nochmal mit gleichen Einstellungen kompiliert und dort kommen die Werte nicht rein.

    Schaue ich mir die Debug logs an, ist eigentlich kein Unterschied festzustellen. Beide zeigen unvollständige Werte.

    Uni6 Log mit Sensor95

    Spoiler anzeigen

    19:19:07 CMD: Sensor95 d1

    19:19:07 RSL: RESULT = {"Sensor95":dump_mode:1}

    19:19:07 : /ESY5Q3DA1004 V3.04

    19:19:08 :

    19:19:08 :

    19:19:08 :

    19:19:09 :

    19:19:09 : 1-0:1.8.0*255(00023677.9490491*kWh)

    19:19:09 :

    19:19:09 : 0414.80*W)

    19:19:10 :

    19:19:10 :

    19:19:10 : !

    19:19:10 :

    19:19:11 : /ESY5Q3DA1004 V3.04

    19:19:11 :

    19:19:11 :

    19:19:11 : .9492797*kWh)

    19:19:12 : Q3DA1004 V3.04

    19:19:12 :

    19:19:12 :

    19:19:12 :

    19:19:13 : 1-0:0.0.0*255(0273160205294)

    19:19:13 :

    19:19:13 : 1-0:1.8.0*255(00023677.9495118*kWh)

    19:19:13 :

    19:19:14 :

    19:19:14 : /ESY5Q3DA1004 V3.04

    19:19:14 :

    19:19:14 :

    19:19:15 :

    19:19:15 : 1-0:0.0.0*255(0273160205294)

    19:19:15 :

    19:19:15 : 255(00023677.9497432*kWh)

    19:19:16 : 4)

    19:19:16 :

    19:19:16 : !

    19:19:16 :

    19:19:17 : /ESY5Q3DA1004 V3.04

    19:19:17 :

    19:19:17 :

    19:19:17 : 1.8.0*255(00023677.9499737*kWh)

    19:19:18 : Y5Q3DA1004 V3.04

    19:19:18 :

    19:19:18 :

    19:19:18 :

    19:19:19 : 1-0:0.0.0*255(0273160205294)

    19:19:19 :

    19:19:19 : 1-0:1.8.0*255(00023677.9502053*kWh)

    19:19:19 :

    19:19:20 : !

    19:19:20 :

    19:19:20 : /ESY5Q3DA1004 V3.04

    19:19:20 :

    19:19:21 :

    19:19:21 :

    19:19:21 : 1-0:0.0.0*255(0273160205294)

    19:19:21 : 0*255(00023677.9504365*kWh)

    19:19:22 : DA1004 V3.04

    19:19:22 :

    19:19:22 :

    19:19:22 :

    19:19:23 : 1-0:0.0.0*255(0273160205294)

    19:19:23 :

    19:19:23 : 1-0:1.8.0*255(00023677.9506693*kWh)

    19:19:23 : 1-0:41.7.0*255(000275.04*W)

    19:19:24 : ESY5Q3DA1004 V3.04

    19:19:24 :

    19:19:24 :

    19:19:24 :

    19:19:25 : 1-0:0.0.0*255(0273160205294)

    19:19:25 :

    19:19:25 : 1-0:1.8.0*255(00023677.9509027*kWh)

    19:19:25 :

    19:19:26 :

    19:19:26 :

    19:19:26 : !

    19:19:26 :

    19:19:27 : /ESY5Q3DA1004 V3.04

    19:19:27 :

    19:19:27 :

    19:19:27 : .9511356*kWh)

    19:19:28 : Q3DA1004 V3.04

    19:19:28 :

    19:19:28 :

    19:19:28 :

    19:19:29 : 1-0:0.0.0*255(0273160205294)

    19:19:29 :

    19:19:29 : 1-0:1.8.0*255(00023677.9513670*kWh)

    19:19:29 :

    19:19:30 :

    19:19:30 : /ESY5Q3DA1004 V3.04

    19:19:30 :

    19:19:30 :

    19:19:31 :

    19:19:31 : 1-0:0.0.0*255(0273160205294)

    19:19:31 :

    19:19:31 CMD: Sensor95 d0

    19:19:31 RSL: RESULT = {"Sensor95":dump_mode:0}

    Hier der Uni8 mit Sensor53

    Spoiler anzeigen

    19:13:14 CMD: Sensor53 d1

    19:13:14 MQT: Energiezähler_569D0C/stat/RESULT = {"Time":"2020-03-08T19:13:14","SML":{"CMD":"dump: 1"}}

    19:13:15 /ESY5Q3DA1004 V3.04

    19:13:15 :

    19:13:16 :

    19:13:16 :

    19:13:16 : 1-0:0.0.0*255(0273160205294)

    19:13:16 :

    19:13:17 : 1-0:1.8.0*255(000236705294)

    19:13:17 :

    19:13:17 : !/ESY5Q3DA1004 V3.04

    19:13:17 :

    19:13:18 :

    19:13:18 :

    19:13:18 : 1-0:0.0.0*255(0273160205294)

    19:13:18 :

    19:13:19 : 1-0:1.8.0205294)

    19:13:19 :

    19:13:19 : !

    19:13:19 :

    19:13:20 WI/ESY5Q3DA1004 V3.04

    19:13:20 :

    19:13:20 :

    19:13:20 :

    19:13:21 : 1-0:0.0.0*255(0273160205294)

    19:13:21 :

    19:13:21 : 1-0:1.805/ESY5Q3DA1004 V3.04

    19:13:21 :

    19:13:22 :

    19:13:22 :

    19:13:22 MQ1-0:0.0.0*255(0273160205294)

    19:13:22 :

    19:13:23 : 1294)

    19:13:23 :

    19:13:23 : !

    19:13:23 :

    19:13:24 : /ESY5Q3DA1004 V3.04

    19:13:24 :

    19:13:24 :

    19:13:24 :

    19:13:25 : 1-0:0.0.0*255(0273160205294)

    19:13:25 :

    19:13:25 : 1-0:1.8/ESY5Q3DA1004 V3.04

    19:13:25 :

    19:13:26 :

    19:13:26 :

    19:13:26 : 1-0:0.0.0*255(0273160205294)

    19:13:26 :

    19:13:27 : 1-0)

    19:13:27 :

    19:13:27 : !

    19:13:27 :

    19:13:28 : /ESY5Q3DA1004 V3.04

    19:13:28 :

    19:13:28 :

    19:13:28 :

    19:13:29 : 1-0:0.0.0*255(0273160205294)

    19:13:29 :

    19:13:29 : 1-0:1.8

    19:13:29 : !/ESY5Q3DA1004 V3.04

    19:13:30 :

    19:13:30 :

    19:13:30 :

    19:13:30 : 1-0:0.0.0*255(0273160205294)

    19:13:31 :

    19:13:31 : 1!

    19:13:31 :

    19:13:31 : /ESY5Q3DA1004 V3.04

    19:13:32 :

    19:13:32 :

    19:13:32 : 1-0:0.0.0*255(0273160205294)

    19:13:33 :

    19:13:33 : 1-0:1.8.0

    19:13:33 : /ESY5Q3DA1004 V3.04

    19:13:33 :

    19:13:34 :

    19:13:34 :

    19:13:34 : 1-0:0.0.0*255(0273160205294)

    19:13:34 :

    19:13:35 : 1-0:1.8.0*/ESY5Q3DA1004 V3.04

    19:13:35 :

    19:13:35 :

    19:13:36 :

    19:13:36 : 1-0:0.0.0*255(0273160205294)

    19:13:36 :

    19:13:36 : 1-0:1.8.0*000275.26*W)

    19:13:37 :

    19:13:37 : 1-0:61/ESY5Q3DA1004 V3.04

    19:13:37 :

    19:13:37 :

    19:13:38 :

    19:13:38 : 1-0:0.0.0*255(0273160205294)

    19:13:38 :

    19:13:39 : 1-0:1.8.0*255(00023677.9125020/ESY5Q3DA1004 V3.04

    19:13:39 :

    19:13:39 :

    19:13:40 WI

    19:13:40 : 1-0:0.0.0*255(0273160205294)

    19:13:40 :

    19:13:41 : 1-0:1.8.0*255(00023677.9127173/ESY5Q3DA1004 V3.04

    19:13:41 :

    19:13:41 :

    19:13:42 :

    19:13:42 : 1-0:0.0.0*255(0273160205294)

    19:13:43 : 1-0:1.8.0*255(00023677.9129326/ESY5Q3DA1004 V3.04

    19:13:43 :

    19:13:43 :

    19:13:44 :

    19:13:44 : 1-0:0.0.0*255(0273160205294)

    19:13:44 :

    19:13:45 : 1-0:1.8.0*255(00023677.9131488/ESY5Q3DA1004 V3.04

    19:13:45 :

    19:13:46 :

    19:13:46 :

    19:13:46 : 1-0:0.0.0*255(0273160205294)

    19:13:46 :

    19:13:47 : 1-0:1.8.0*25505294)

    19:13:47 :

    19:13:47 : !

    19:13:47 :

    19:13:48 : /ESY5Q3DA1004 V3.04

    19:13:48 :

    19:13:48 :

    19:13:48 :

    19:13:49 : 1-0:0.0.0*255(0273160205294)

    19:13:49 :

    19:13:49 : 1-0:1..94/ESY5Q3DA1004 V3.04

    19:13:49 :

    19:13:50 :

    19:13:50 :

    19:13:50 : 1-0:0.0.0*255(0273160205294)

    19:13:50 CMD: Sensor53 d0

    Eine Auffälligkeit ist, dass eigentlich diese Werte reinkommen müssen:

    0:0.0.0*255(54920)

    1-0:1.8.0*255(00003984.9338242*kWh)

    1-0:21.7.255*255(000176.85*W)

    1-0:41.7.255*255(001025.66*W)

    1-0:61.7.255*255(002529.68*W)

    1-0:1.7.255*255(003732.19*W)

    1-0:96.5.5*255(82)

    0-0:96.1.255*255(1ESY0943000XXX)!

    Absolut keine Chance diese in der Uni8 durch korrekte Platzierung zu finden.

    In der Uni 6 hatte mein Transistor (BPW78A mit 1K) diese an einen Punkt immer für einen kompletten Rutsch aufgenommen. Danach nicht wieder. Ich musste den Fototransistor umsetzen und dann konnte er die Daten wieder empfangen.

    Daraufhin habe ich auf den Debugoutput verzichtet und nach meinem Auge platziert.

    Wie geschrieben, Uni 6 bekommt alle Werte eingespielt, auf wenn das Debuglog etwas anderes zeigt, mit Uni8 keine Chance. Die Zähler verändern sich nur sporadisch und nicht im 2 Sekunden Takt.

    Ich werde die Tasmota 6.71 heute Abend noch mal Testen, die Uni7 bekomme ich nicht kompiliert.

    Zu deiner /eurer Info.

    Ich setze auf das Skriptverfahren und nicht hardcoded, wobei das bei der Uni6 nicht funktioniert. Auch ist der der Sensor53 noch nicht aktivie, sondern Sensor 95. Uni6 nimmt die Werte von den Rules, obwohl Script aktiviert ist, warum auch immer.

    Es wurden 3 verschiedene Fototransistoren (BPW78A, BPW 40, SFH 309 FA) mit ohne, 1k, 4,7k und 10k Widerständen auch Pullup aktiviert und nicht aktiviert auf Pin RX auf dem Wemos D1 mini und Nodemcu V3 (dort hatte ich den GPIO Pin von RX auf andere verlagert)

    Alles sehr merkwürdig! Script funktioniert. Hatte es auch auf ganz einfach runtergebrochen. Auf meiner alten/originalen Uni 6 vorm Update funktionierte das Script mit Sensor 53 ursprünglich. Vermute deswegen, dass der aktuelle Uni 6 Stand nicht der letzte sein muss. Deswegen auch der Test mit Tasmota 6.71 ;)

    Besten Gruß

    Andi

  • URBANsUNITED

    Sehr seltsam.

    Mir steht die Uni6 nicht zur Verfügung. Vielleicht kannst du den Treiber 95 mal mit 53 über die Platformio compare/difference Funktion miteinander vergleichen. Möglicherweise fallen dir dort signifikante unterschiede bzgl. der OBIS Analyse auf.

    Als weitere Möglichkeit, könntest du den Treiber 95 mal in eine aktuelle Tasmotaversion hinein kopieren und dort testen.

    Beim 53er sieht es so aus als wenn er zulange Pause macht eh er wieder etwas empfängt. Ist das ein Zähler der erst getriggert werden muss?

    Allerdings drängt sich mir der Verdacht auf, dass es nicht am SML Treiber liegt sondern eher am TasmotaSerial/SoftSerial Treiber.

    Ich weiß leider auch nicht mehr wann der Umstieg von Hardcoded auf Skript erfolgte. Die Entwicklung ging damals ja recht fix.

    Dein Skript sieht also so aus:

    Code
    >D
    >B
    =>sensor53 r
    >M 1
    +1,3,o,0,9600,OBIS 
    1,1-0:1.8.1*255(@1,Total consumption,KWh,Total_in,4
    1,1-0:2.8.1*255(@1,Total Feed,KWh,Total_out,4
    1,=d 2 10 @1,Current consumption,W,Power_curr,0
    1,1-0:0.0.0*255(@#),Meter Nr,, Meter_number,0
    #

    ?

  • Hallo URBANsUNITED

    ich habe jetzt bei meiner Sammlung nachgeschaut, Version 6 die ich noch habe ist auch noch mit dem "xsns_95_sml.ino"

    Ab 01.09.2019 gab es dann beide "xsns_95_sml.ino" und "xsns_53_sml.ino" in der "Universal 7" wobei ab da nur noch der "53er" Treiber weiterentwickelt wurde.

    meierchen006

    Einmal editiert, zuletzt von meierchen006 (9. März 2020 um 14:42)