Beiträge von ixs

    vielen Dank für Deine Erklärung und die Links. Das hört sich alles sehr gut an, allerdings kann die WebApp mit meinen Daten nix anfangen. Keine Fehlermeldung, keine Definition, nix. Schade.

    Das "Problem" an Deinen Werten ist, dass sie mit 0x77 0x7b 0x4a anfangen.
    Die Technische Richtlinie unter https://www.bsi.bund.de/SharedDocs/Dow…icationFile&v=1 die das SML Protokoll beschreibt, gibt vor, dass ein GetList Request 0x77 0x07 0x00 sein sollte und ein GetList Response dann 0x77 0x07 0x01 darstellt.

    D.h. Deine Daten entsprechen nicht dem SML Standard aus der TR-03109-1.

    Woran das liegt, weiß ich nicht. Ich würde vermuten, dass Deine Meter Definition inkorrekt ist.

    Deine Defintion ist "+1,13,s,16,9600,MT175,15". Du legst also GPIO13 fest, was zumindest ungewöhnlich ist. RX ist normalerweise Pin 3. Statt dem Flag 16 würde ich mal 0 probieren, weil dein Lesekopf vermutlich keinen Pull-Up Widerstand hat...

    Im Endeffekt ist das, was Du da bekommst kein SML. D.h. der Fehler sitzt irgendwo zwischen Tasmota und Zähler. Viel Glück.

    Ich hatte die Tage ein Wemos D1 Mini basiertes Interface an einen Holley DTZ541 eingebaut und musste leider erstmal das Tasmota Script bauen, damit die Werte richtig eingelesen werden.

    Irgendwie habe ich auf die schnelle kein _wirklich_ gutes Beispiel gefunden und die Tasmota Dokumentation hatte zwar für andere Zähler etwas, aber nix für den Holley.

    Ich hatte dann geplant, die SML Werte selber zu dekodieren, aber das ist mir dann zu doof geworden. libsml von volkszaehler wollte ich dann auch nicht bauen, weil ich den Eindruck hatte beim Lesen der Dokumentation und beachten der Testdaten, dass libsml gerne einen vollständigen SML Datensatz hätte und nicht nur einzelne Datensätze, wie Tasmota sie mit sensor53 d1 auswirft.

    Ich hätte ja irgendwie erwartet, dass es da eine bequeme Alternative gibt. Irgendein Formular, die SML Nachrichten einwerfen und dann schön aufgeschlüsselt zu bekommen, was der Zähler eigentlich auswirft. Aber scheinbar gibt es sowas nicht. ☹️

    Ich habe mir dann ein eigenes Script gebaut in Python, daß https://github.com/spacemanspiff2007/SmlLib verwendet und mir ordentlichen Output generierte. Der Code ist auf https://github.com/ixs/tasmota-sm…/sml_decoder.py falls jemand sich austoben will.

    Für alle anderen, habe ich das Ding als Fingerübung in eine WebApp gegossen, die auf https://tasmota-sml-parser.dicp.net/ liegt.

    sensor53 d1 auf dem Tasmota eingeben. Kurz warten bis was in der Konsole auftauchte, dann sensor53 d0 eingeben, damit Ruhe herrscht.
    Den Konsoleninhalt in das Textfeld im Formular auf der WebApp reinkopieren, "Dekodieren" drücken und sich anschauen, was der Zähler so alles liefert.

    Wenn ein bisschen mehr als nur der SML Dump mitkopiert wurde, isses auch egal, das wird ignoriert.


    Eine passende Tasmota Meter Definition wird auch gleich erzeugt, die muss aber im allgemeinen noch etwas nachbearbeitet werden. z.B. liefern die Zähler häufig Wh und man will KWh haben, also noch den Faktor und Precision anpassen.

    Sollten irgendwelche Parsing-Fehler auftauchen, dann werden diese ausgegeben, damit man einen Anhaltspunkt hat, was schiefgehen könnte.

    Viel Spaß mit dem Tool, das könnte sich eventuell als hilfreich erweisen.