D0 Zähler SML auslesen mit Tasmota

  • Hallo Markus2021


    bei sieht es so aus,


    Änderungen zu deiner Beschreibung mal in rot


    das kleine "s" ist bei mir anders da ich ein SLM Zähler habe du "o" weil Obis, ist also richtig


    >D

    >B

    ->sensor53 r

    >M 3

    +1,22,s,0,9600,SML


    ----------------------------------


    Wenn ich mich richtig erinnere gibt man in der Konsole in deinem Fall für einen Debug

    >> sensor53 d1
    ein, zum Debuggen

    danach wieder

    >> sensor53 d0

    zum ausschalten des Debug, nicht aber im Script!

  • Könnt ihr mir bei der Fehlersuche helfen? Übersehe ich etwas? Einen Hardware-Defekt kann ich ja vorerst ausschließen da ja grundsätzlich Daten empfangen werden.

    Ja!


    Herzlich Willkommen hier!

    Der Fehler den du dort hast, der wurde, wenn ich es richtig gesehen habe, heute Mittag im Original Tasmota Github durch ein Pullrequest behoben. Erstelle noch einmal die Firmware mit der aktuellsten Version und flash dein Wemos neu. Dann solltest du mit deinen Einstellungen weiter kommen!


    Allerdings bin ich mir recht sicher, dass der Q3M SML und nicht OBIS sendet. Deshalb musst du diesen Teil neu anpassen:


    Schau mal hier beim Q3B nach. Dort findest du am Anfang der Seite auch viele Erklärungen zu den einzelnen Sachen.

    https://tasmota.github.io/docs…-Interface/#easymeter-q3b

    Code
    +1,3,s,16,9600,Strom
    ....



    Oh ich sehe gerade, dass dir schon geantwortet wurde.


    meierchen006

    Ja, allerdings denke ich, dass es ein SML Zähler ist. Zumindest laut Volkszähler wiki. Und es ist ein wenig verwirrend weil du verwendest GPIO22 und er GPIO3. Nicht das wir dadurch Verwirrung stiften :D!


    also Markus2021 damit das nun kein Durcheinander gibt, probiere es nach dem Update mal hiermit aus:


    Code
    >D
    >B
    =>sensor53 r
    >M 1
    +1,14,s,16,9600,Q3M
    1,77070100010801ff@1000,Tarif 1,kWh,Power_T1,0
    1,77070100010802ff@1000,Tarif 2,kWh,Power_T2,0
    1,77070100010800ff@1000,Summe,kWh,Power_Sum,0
    1,77070100010700ff@1000,Verbrauch,W,Power_Use_Sum,1
    #

    Wie du ja bereits richtig in die Konsole eingegeben hast, kannst du mitsensor53 d1

    die RAW Daten des Phototransistors empfangen.

    Die Daten kannst du dann abgleichen mit denen aus dem Descriptor. Also diesen Zeilen:

    Code
    ...
    77070100010801ff@1000,Tarif 1,kWh,Power_T1,0
    ...

    Im Internet findest du auch Listen, wo auf geschlüsselt wird, was welcher HEX Code bedeutet.

    Zum Beispiel: 1 oder auch 2

    Möglicherweise empfängst du ja noch mehr Daten als die, die im Descriptor stehen.

  • Hallo zusammen,


    danke für die schnellen Antworten und Tipps. Ich habe die neue xsns_53_sml geladen und erfolgreich in meine vorherige (bzw. jetzt bestehende) Firmware eingefügt, kompiliert und auf einem Wemos D1 Mini geflashed. Ich komme aber leider frühestens morgen dazu den zu testen. Ich werde falls nötig zusätzlich den Vorgang für die aktuellste Version im Gitpod wiederholen falls meine jetzige Aktion keine Besserung bringt.


    Das mit dem SML statt OBIS könnte tatsächlich sein, ich probiere die verschiedenen Varianten aus sobald ich den "neuen" Wemos D1 Mini verkabelt habe.


    Ich melde mich sobald ich dazu gekommen bin und näheres weiß J


    Danke euch und viele Grüße

    Markus

  • DING, DING, DING, DING, DING, DING, DING

    Hallo Leute,


    kurze Wasserstandsmeldung. Mit euren Tipps funktioniert es nun, mache aber noch "Operation Hübsch".



    Sobald ich heute oder spätestens zum Wochenende hin alles passend gemacht habe schreibe ich einmal genau auf was ich gemacht habe und wie mein Skript etc. aussieht. Im Grunde habt ihr mir alle sofort mit euren Antworten geholfen. Dafür 1000 Dank :-)


    Bis die Tage, dann gehe ich auf Details ein.


    Viele Grüße

    Markus

  • Hi, ich bin hier neu im Forum. Bin über TASMOTA auf die Möglichkeit des Lesekopfes gestoßen. Habe auch 2 Leseköpfe von Hitchi bekommen die jetzt verarbeitet werden sollen. Zum einen möchte ich beide Leseköpfe auf eine wemos d1 min betreiben. Dafür suche ich schon ein Schaltplan oder einfach nur Hilfe durch Erfahrungswertevon euch ob dieses möglich ist. Des Weiteren habe ch wie schon gesagt 2 Zähler einmal für Hausstrom einmal für die Wärmepumpe. Der eine ist ein Logarex LK13B mit OBIS für die Wärmepumpe und der andere Holley DTZ541-Zeba mit SML für den Hausstrom, jetzt wollte ich wissen ob diese jemand schon am laufen hat und diverse scripte vorhanden sind und jemand mir dort Helfen kann diese einzustellen.

    gruß alfa

  • Hallo zusammen,


    hier wie besprochen noch einmal mein kurzer aber erfolgreicher Werdegang dank eurer Hilfe:


    Hardware

    • 1x WeMos D1 Mini
    • 1x TEKT5400S Phototransistor
    • 2x Jumperkabel
    • Optional Mini Breadboard
    • Optional Schrumpfschlauch zum löten des Transistors an die Jumperkabel

    Simpler Aufbau:



    Software


    Tasmota wie auf den letzten Seiten hier im Thread beschrieben mit Gitpod kompilieren. Die folgenden drei Dateien habe ich wie folgt bearbeitet:


    user_config_override.h

    Code
    #define MY_LANGUAGE de_DE // German in Germany
    #define APP_TIMEZONE 99
    #ifndef USE_SCRIPT
    #define USE_SCRIPT //# adds about 17k flash size, variable ram size
    #endif
    #ifdef USE_RULES
    #undef USE_RULES
    #endif
    #define USE_SML_M
    #define SML_MAX_VARS 30

    Der ganze Teil hier oben wurde einfach vor die letzte Zeile der Datei eingefügt mit der die Datei endet:

    Code
    #endif  // _USER_CONFIG_OVERRIDE_H_


    platformio_override.ini

    Folgende Zeile einkommentieren (also ; am Zeilenanfangen wegnehmen)

    Code
    board_build.ldscript        = eagle.flash.4m2m.ld

    xsns_53_sml.ino

    Ich habe den ganzen Inhalt aus der hier verlinkten xsns_53_sml.ino genommen und den Inhalt komplett ersetzt.


    Das wars, im Anschluss die tasmota.bin im Gitpod erstellen und auf den WeMos D1 Mini flashen.


    Nach dem Aufrufen des Webinterface habe ich folgendes Skript unter Einstellungen -> Skript eingefügt und das Skript aktiviert:


    Den Phototransistor kann man auf zwei Wegen an den EasyMeter Q3M anbringen:


    Einmal das Ergebnis im Tasmota mit der vorderen "Info"-Schnittstelle:


    Und einmal das gewünschte Ergebnis mit der Schnittstelle die alle(?) Details nach der PIN Eingabe (gibt's nach Anfrage von den zuständigen Stadtwerken per Telefon, Mail oder Post) preisgibt:




    Im Nachhinein frage ich mich wieso nirgends eine vor-kompilierte tasmota.bin für das SML Feature zu finden ist. Zumindest für den WeMos D1 Mini der ja weit verbreitet ist. Die paar Schritte sind ja keine große Sache, müssen aber von jedem Anfänger durchgeführt werden der sich erst einmal einlesen muss (klar, man lernt halt auch was dabei).

    Wenn gewünscht und es für die Community kein Problem darstellt kann ich hier gerne meine tasmota.bin bereitstellen.


    Und noch eine Frage: Im Thread wurde öfter mal das Auslesen mit einem Wasserzähler angesprochen. Ich habe einen mit diesem Metallplättchen was sich beim Verbrauch dreht. Gibt es hierfür ebenfalls Experten oder ist das noch offen?


    Noch einmal vielen Dank an die schnelle Hilfe, es hat ja dann doch schnell funktioniert :-) Gerne Stelleich mein Skript auf der Tasmota-Seite bereit.


    Viele Grüße

    Markus

  • Also ich bekomme zwar Daten angezeigt beim DTZ451 werde aber aus dem sml Code nicht schlau welche Werte für was stehen. Habe jetzt auch 2 D1 mini genommen jeweils für einen Zähler. Gibt es irgendwo eine erklären für den sml bzw. Obis Code ?

  • alfakenzo Mir ist nicht bekannt das jemand hier im Forum den Zähler hat. Bzw. in jüngerer Vergangenheit etwas dazu gepostet hat.

    Bzgl. SML Codes, wie bereits erwähnt... Es ist alles auf den letzten paar Seiten hier nachlesbar: RE: D0 Zähler SML auslesen mit Tasmota

    in dem verlinkten Post sind 2 Links zu SML Codes und deren Übersetzung.


    Ansonsten gibt es noch weitere Infos zum Aufbau des SML Treibers in meinem HowTo.

    Man kann zwei Stromzähler am Wemos auslesen. Muss dann jeweils unterschiedliche GPIOs nutzen.

    Am Ende des Howtos sind viele nützliche Links unter anderem auch zur Tasmota Dokumentation des SML Treibers.

    Dort steht auch Beschrieben wo genau die GPIOs definiert werden.


    Im Dokument gibt es auch infos bzgl. Wasserzähler Markus2021

  • Hallo,


    ich habe mir nun viele Threads durchgelesen und viel gesucht, leider komme ich dennoch nicht weiter. Es wäre großartig, wenn mir jemand von euch helfen könnte.


    Ich versuche den folgenden Stromzähler per Tasmota auszulesen (später möchte ich die Daten per MQTT an IoBroker senden):


    eBz DD3 2R10 DTB ODZ1


    Nach meiner Suche bedeutet dies folgendes:

    • DD3 – 3 Phasen
    • 2R10 – 2-Richtungszähler
    • DTB – Doppeltarif, Klasse B
    • ODZ1 – OBIS-unidir., Mode-D (IEC 1107), Z1: mit Taschlenlampenfunktion (umschalten der Anzeige)

    Damit bin ich mir sehr sicher, dass ich OBIS verwenden muss.



    Mittels GitPod habe ich mir eine neue Firmware erzeugt. Das kompilieren und das später aufspielen auf den NodeMCU (Lolin V3) funktioniert hierbei , scheinbar, wunderbar. Ich komme daraufhin auf die Tasmota Oberfläche und ich kann auch ein Stromzähler-Skript starten - worauf ich eine Anzeige (ohne Werte des Zählers) auf der Main-Page bekomme.


    Nachdem ich aber keine Anzeige von Werten bekomme (alle Anzeigen stehen auf „0“), bin ich am zweifeln ob der Build korrekt funktioniert hat. Gibt es eine Methode mit der dies einfach überprüft werden kann?

    Um den zuletzt berichteten Fehler im Code auszuschließen, habe ich die Firmware gestern auch nochmals neu kompiliert, dies hat leider keine Verbesserung gebracht.


    Wenn ich über die Konsole „Sensor53 d1“ eingebe, erhalte ich folgende, sich wiederholende Ausgabe:



    Damit bin ich mir sicher, dass mein Stromzähler Daten ausgibt und mein IR-Lesekopf funktioniert.


    Anscheinend gibt der Zähler die Daten zudem in einem Takt von 1Hz aus.



    Als Skript habe ich das eHz Skript (https://tasmota.github.io/docs…erface/#hager-ehz161-obis) und 2-3 weitere aus diesem Forum getestet. Leider ohne Erfolg.



    Auch mein Versuch selbst ein Skript für den eBz zu erstellen war erfolglos. Hier mein letzter Versuch:


    Kann mir evtl. jemand Helfen?


    Liegt es an meiner Tasmota Version?


    Liegt es an meinem falschen Skript?



    Der Anleitung kann man folgende Entnehmen:



    Bereits vielen Dank!



    Franzformator

  • Franzformator

    Das sieht soweit doch schon gut aus.


    Hast du probiert ob es ohne den Backslash Char geht?


  • Franzformator


    Der Backslash darf dort definitiv nicht stehen. Der Text muss genau so aussehen wie im Dump.


    Dann hast du 4 Strings (@#) definiert. Du kannst aber pro Meter nur einen ausgeben.


    und in deinen MQTT IDs musst du natürlich auch noch HT, NT unterscheiden.


    so sollte es eigentlich gehen: