(Weihnachtsgeschenk) SML / Elektro / Wärmemengen / Wasser-Daten gesucht

Wer von Euch hat einen Zaehler, den er über die optische Schnitstelle ausliest und würde mir einen Dump zur Verfügung stellen?

Ich habe angefangen das komplett nach der Norm aufzudröseln um etwas zu haben, was allgemein verwendbar und nicht für jeden eine Insellösung ist.
Bevor über die Feiertage ein erstes BETA kommt, wäre ich für jeden DUMP dankbar, um zu sehen ob meine Idee so funktioniert.

Einen Sketch um einen Dump zu erstellen gibt es hier
Nur einmal durchlaufen lassen und die Ausgabe mir zur Verfügung stellen wäre genial.

Ich weiß nicht ob ich's heut noch schaff :grimacing::see_no_evil:
Bin jetzt dann "familiär" unterwegs und komm erst spät heim. Also falls sich jemand anders findet (@Rentner ?) wäre es super. Ansonsten mach ich's evtl. später noch.

Deinen hab ich schon - und den von @Renter auch - die tun schon mal - Ich muss nur noch die PublicClose-Funktion bauen und die Mehrfachcodes zusammenfassen...
Danke!

2 Likes

Hmmm.
Ich könnte nur einen Sensor-Dump (Sensor53 d1 in der Konsole) aus einer Tasmota-SW bereitstellen. Format ist anders, aber ggf. mit einem kleinen Makro in Notepad++ auf Deine Bedürfnisse anzupassen.
Zähler ist für Strom - ein Holley Zweirichtungsrichtungszähler, Auslesegerät ein Bitshake SmartMeterReader.

Vielleicht hilft es trotzdem.

Holley_DTZ541-ZECA_dump.txt (29,4 KB)

Ah super.
Ich hab mal kurz durchgescrollt. Der sieht gar nicht so schlecht aus
In Zeile 184

20:35:02.157 : 77 93 00 76 04 00 00 03 62 00 62 00 72 65 00 00 02 01 71 01 63 e8 23 00 00 00 1b 1b 1b 1b 1a 02 6c 5a 1b 1b 1b 1b 01 01 

ist Ende der ersten und Anfang der zweiten Nachricht zu sehen.
Die Sequenz 1b 1b 1b 1b 01 01' bräuchte ich mindestens 2 mal, damit ich eine vollständige Nachricht bekomme. Dann könnte man versuchen was geht.
Aber mach Dir keinen Streß.
Danke.

Ohne Streß (da neige ich eh' nicht zu).
Die Sequenz kommt selten vor, zweimal habe ich es hinbekommen.

Frohes Fest und viel Erfolg!

Holley_DTZ541-ZECA_moreDumps.zip (21,3 KB)

1 Like

Hallo,
@wno158 danke für Deinen Einsatz
ich hab mir die Dumps auch mal angesehen.
Irgendwie werde ich den Eindruck nicht los da das schon mal ein "paar" Bytes fehlen.

eigentlich startet eine SML Datensatz mit
1b 1b 1b 1b 01 01 01 01

und endet mit
1b 1b 1b 1b xx xx xx xx

wobei xx xx xx xx die Prüfsumme ist. Man kann also recht einfach nach der Startsequenz suchen. Unmittelbar davor müsste eine Endsequenz sein.

z.B in dem Dump3.txt gibt es die Startsequenz 2 mal
->14:07:40.561 : 77 ba 1b 1b 1b 1b 01 01 01 01 76 04 00 00 01 62 00

und hier in der zweiten Zeile

14:07:49.063 : 77 07 01 00 60 5a 02 01 01 01 01 01 05 36 31 33 39 01 01 01 63 fc 83 00 76 04 00 00 03 62 00 62 00 72 65 00 00 02 01 71 
->14:07:49.563 : 77 1b 1b 1b 1b 01 01 01 01 76 04 00 00

damit fehlt aber die Endsequenz. in der Zeile davor. Zudem taucht selbst ein "1b 1b 1b 1b" im gesamten Rest nicht mehr auf.

Ähnliche Ungereimtheiten gibt es in dem Dump2.txt

@my_xy_projekt siehst du das ebenso, oder hab ich was übersehen

// Edit - OBIS-Code Sektion berichtigt
Guten Morgen,

ja, der Dump ist etwas eigenartig.
Tasmota benutzt ein "Userdefined Format", welches die SML_Spezifikation hergibt.
Damit ist es möglich gänzlich auf die der Spezifikation zu Grunde liegenden Basics zu verzichten.
Der Inhalt der SML_Datei(*) wird in "unspeziferte" Nachrichten verpackt, die dem SML_Protokoll folgen.
Es gibt einen Headerblock der mit 77 (& 0x70 => Liste / & 0x07 => 7 Elemente) beginnt. In den Elementen selbst ist versteckt, was sich dahinter verbirgt.
Der erste Eintrag ist z.B. 0x07 (& 0x00 => Bytefolge / & 0x07 => 7 Elemente)
In dem Fall (Alle Angaben in HEX):
01 -> Elektrische Energie
00 -> Channel 0
60 -> Manufaktur Spezific Abstract Media related purpose -> Und hier ist klar, das der Inhalt ein eigenes Datenformat von Tasmota innerhalb der SML-Spezifikation ist
5A 02 bezeichnen das Format selbst und in der Bytefolge/Zeichenkette ist versteckt, was als nächstes mit den folgenden 6 Elementen passiert. Und in den Elementen sind weitere Unterebenen versteckt.

Daher wird es schwer, daraus wieder etwas sinnvolles zusammenzustellen.
Für mich aber trotzdem interessant, da evtl. der Aufbau der ursprünglichen Nachricht rausgelesen werden kann.
Und evtl. später um das Tasmotaprotokoll ggfls. zu nutzen um Ergebnisse zu bekommen :slight_smile:
Ihr werdet Euch wundern, wie aufwändig es ist, für jede Structur die jeweiligen Elemente abzubilden. Grund ist, das es keine feste Länge gibt und der Aufbau einer Nachricht innerhalb der Datei erst im Stream selbst ermittelt werden muss...

(*) Eine SML_Datei bezeichnet einen Stream, ohne spezifisches Medium - also nur eine Aneinanderreihung von Bytes.

@Rentner
Tut mir leid, ich selbst bin was SML angeht vollkommen unbedarft. Ich habe nur die Dump-Funktion für Sensor53 gefunden und benutzt - d.h. Console aufgemacht, Dump eingeschaltet, gewartet, ausgeschaltet und dann den Inhalt des Konsolenfensters gespeichert. Durchaus möglich, dass da was fehlt; ich fand es auch merkwürdig, dass die Startsequenz dann so gar nicht mehr auftaucht.

@my_xy_projekt
Für den Zähleradapter hat bitShake wohl ein eigenes Compilat der Tasmota-SW hergestellt (ich soll nicht updaten, dann geht es nicht mehr). Weiters läuft darin ein spezielles Script, das aus dem Datenstrom Sachen extrahiert. Da lasse ich nicht alles auf der Webseite anzeigen. Hatte bisher nicht die Zeit (und Lust) mich dahinein zu vertiefen, denn ich will nur wissen, was ich alles an die Avacon verschenke.

Um RAW-Daten aufzunehmen, müsste ich umlöten und einen anderen ESP anflanschen. Mache ich erst, wenn ihr sagt, dass es wirklich nötig ist :wink:

1 Like

Gestern kam mir genau diese Idee, weil der Fototransistor auch zwei digitale Eingänge zu schalten vermag. Jetzt kann ich mit dem einen nach meinen Programmfehlern forschen, während der andere ununterbrochen Daten sammelt. Bisher vertragen sich die ESPs, ich darf sie nur nicht verwechseln :wink:

1 Like

Ich hab mal ganz schnell angefangen bei tasmota ind die Doku zu SmartMeter reinzuschauen.
Ok.
Die truncen die Dumpline, wenn denen im Inhalt nichts entgegenkommt, was gebraucht wird.
Und auch da wird anscheinend auch nur auf den jeweiligen OBIS-Code geparst.
Anders lässt sich die (falsche) Annahme

nicht erklären.
Denn richtig ist, dass das Feld F ebenso auch adere Codes enthalten kann:

Es ist also nicht möglich die Daten vollständig zu dekodieren, wenn diese nicht der Vorgabe 0xFF auf Feld F entsprechen.

Ja, natürlich interessert das evtl. nicht jeden.
Aber Hilfe naht.... :slight_smile:

(Nachtrag: Bitte beachten, dass dadurch das in den Specs dezimal und hexadezimal vermischt werden (siehe Feld A vs. B-F) die Lesart manchmal sehr schwer ist....)

(// Nachtrag 2: Gerade gesehen, das meine Aussage in #8 nicht ganz richtig ist. -> geändert)

1 Like

Oh?!
Grad mal noch weiter gelesen.
Meinen die das ernst?

Das Label (kWH), der Scaler (3) versteckt sich in dem SML_Datenpaket! Es garantiert niemand, dass das immer gleich bleibt.
Damit ist der Ausflug beendet.
Das macht mehr Irre, als das es hilft.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.