Beiträge von sunburstc

    bishop

    Du kannst beide abfragen zusammenfassen:

    zu:



    Ich blicke nicht ganz durch deine Variablen durch. Aber im Prinzip packst du folgendes dort noch herein:


    Um 0 Uhr jede Nacht muss der aktuelle Gaszählerstand gespeichert werden.

    Nur für das Thema GAS könnte das also so aussehen:


    Es gibt ein paar Dinge zu beachten.


    Du solltest nicht unnötig oft svars ausführen. Jeder Schreibvorgang in den Flash lässt ihn "altern".

    Deshalb solltest du auch Berechnungen, die du zusammenfassen kannst zusammenfassen und am ende nur 1x svars ausführen.


    Wie du siehst, ist die GT Variable keine p Variable, weil sie alle 5 Sek überschrieben wird. Diese wird also nur im Arbeitsspeicher gehalten.


    Wenn du deine Firmware mit diesen Define erstellst, kannst du dir die >T Sektion sparen und direkt auf die Variablen im >M Descriptor zugreifen.


    #define USE_SML_SCRIPT_CMD


    Bedeutet, statt sich die Werte in der >T Sektion auf eine zusätzliche Variable zu speichern:


    Code
    >T
    v3=GAS#Total_In


    Kannst du direkt via:

    sml[X]

    auf den Wert zugreifen.

    X Stellt hierbei die X-te Zeile im Descriptor dar. Bei dir für GAS:

    Code
    >M 2
    +1,3,s,16,9600,SML
    +2,4,c,1,50,GAS
    1,77070100010800ff@1000,Verbrauch,KWh,DJ_TPWRIN,4
    1,77070100100700ff@1,Akt. Verbrauch,W,DJ_TPWRCURR,0
    2,1-0:1.8.0*255(@100,Zählerstand,m³,Total_In,2 ;<<<<<<<<<<<<<< DIESE
    #

    Lässt sich dann so verwenden:

    z.B. :


    Code
    if upsecs%5==0
    and sml[1]>0 {
    GT=sml[3]-GM
    ; Hier könntest du zusätzlich mit den Variablen GV und GT deine kWh Rechnung ausführen.
    }


    Ich hoffe das hat dich ein wenig weiter gebracht.


    Weiterhin empfehle ich die Tasmota Docs: https://tasmota.github.io/docs/Scripting-Language/

    Und den dort zu findenden Script Editor: https://www.dropbox.com/sh/0us…mpZ4AfpdrWE_MPFGmbma?dl=0

    xls

    Anscheinend sendet er im Modbus Protokoll. Wie seltsam.

    Ich weiß nicht ob das klappt. Schau mal ob du etwas bekommst wenn du folgendes in den Descriptor einträgst.


    Code
    >M 1
    +1,12,M,0,9600,LK13BE,13,30,2F3F210D0A,063035310D0A
    1,1-0:1.8.0*255(@1,Total Verbrauch,KWh,Total_in,4
    #

    Dann müsste er ja zumindest den Total Verbrauch im Hauptmenü anzeigen. Sofern du sensor53 d0 Ein bzw. Ausgeschaltet hast.

    Ich habe übrigens noch ein SAIA SBC ALE3 Modbus 3Phasen Zwischenzähler. Lässt sich u.A. auch mit Tasmota SML und einem UART<>Modbus Adapter auslesen. Habe es selbst so betrieben. Er bietet akt. Spannung, Strom, Leistung pro Phase und es lässt sich noch einiges mehr auslesen. Ich benötige ihn nicht mehr, da wir inzw. einen neuen Hauptstromzähler bekommen haben. Der neue HS-Zähler bietet wesentlich mehr Daten als der alte Zähler. Ich hatte mir den ALE3 gekauft um auch die Leistung pro Phase auslesen zu können.

    Falls Interesse besteht > PN .


    Grüße!

    bishop Das ist allerdings die korrekte um es einzustellen. Gebe als Startwert keinen Dezimalwert ein und probiere dann mit den jeweiligen @100 < Werten zu spielen.


    Aus welchem Grund soll er den Wert vom MQTT Server beziehen. Verstehe den Zweck nicht. Aber das wäre sicherlich irgendwie möglich. Wobei ich nicht weiß ob dies via MQTT geht. Kann mir aktuell nur vorstellen, dass dies möglicherweise über Retain Message geht.

    Huhu, ich muss auch nochmal nerven. Habe heute die PIN vom Zähler bekommen und hatte gehofft, der würde mir damit etwas mehr Daten ausspucken, aber es bleibt immer bei folgendem Output:

    Da das hier ja schon ziemlich redundant ist bleibt ja nicht viel.

    Code
    77 07 01 00 01 08 00 ff 64 1c 01 04 72 62 01 62 00 62 1e 52 03 62 e4 01 01 01 63 c4 06 00 76 05 a4 5b 23 00 62 00 62 00

    ist die Gesamtverbrauch in kWh. Aus den anderen bekomme ich leider keine brauchbaren Daten heraus. Und wenn es immer 14 Stellen gefolgt von ff sind, dann bliebe ja auch nur noch

    Code
    77 07 01 00 60 01 00 ff 01 72 62 01 62 00 62 00 52 00 0b 0a 01 44 5a 47 00 03 99 54 f6 01

    Ist das so, oder können auch die längeren Blöcke bis zuf ff relevant sein? Auf der Herstellerseite stand schon, dass die Ausgabe der optischen Schnittstelle sehr begrenzt ist, aber in einem anderen Forum hatte jemand zumindest noch die aktuelle Leistung abfragen können. Für den Aufwand, den ich bis hierhin hatte, lohnt der Output kaum, denn den Gesamtverbauch kann ich auch einfach so ab und an vom Display ablesen. Noch jemand eine Idee, da etwas herauszuquetschen? Danke euch.



    Bei manchen Zählern, kann man via Pin im Menü des Zählers eine erweiterte Ausgabe einstellen. Vielleicht geht dies auch bei deinem Zähler.


    Quorle

    Muss der Gaszähler immer wieder neu gesetzt werden, oder würde es genügen, ihn einmal zu setzen? Und muss es unbedingt via MQTT gemacht werden?

    Ansonsten kannst du den Zähler via Tasmota webconsole:

    Code
    sensor53 c1 WERT

    Hiermit setzt du den ersten Counter. Wenn du statt c1 c2 einsetzt, dann kannst du den zweiten Counter ändern.


    Normalerweise verliert Tasmota seine Counterwerte nicht bei einem neustart.

    Danke @sunburstc Ich bin mit meinem script schon fast zufrieden, nurich hätte gerne noch den Wert der aktuellen Woche und der letzten Woche in Tasmota stehen leider habe ich keinen ansatz wie ich das programieren soll.


    Hier mein aktuelle Version.


    Moin! Freut mich zu hören, dass du weiter gekommen bist.


    Bzgl. wöchentliche Rückmeldung.

    Es gibt eine Variable wday o.Ä. dort kannst du den aktuellen Wochentag als Zahl abfragen. Bin mir nicht ganz sicher, glaube sie zählt von 0-6. Ich weiß nicht welcher Tag die 0 ist. Sonntag oder Montag.

    Zum aktuellen Zeitpunkt speicherst du bereits die Tagesverbräuche, das kannst du nutzen und einfach diese Tagesverbräuche jede Mitternacht zu summieren.

    Eine gute Möglichkeit wäre, diese dann als p variable zu definieren. (p:lastW und p:W2) .

    Schau mal auf der Scripting Seite der Tasmota Docs. Dort stehen die ganzen festen Variablen wie: tper und wday und month etc....

    Vielleicht kommst du mit diesen Infos etwas weiter!


    Viele Grüße!

    bishop

    Zu der Frage, was dein Zähler kann oder nicht, siehe: RE: D0 Zähler SML auslesen mit Tasmota

    ;)

    Also Datenauslesen und schauen was er liefert. Oder die Bedienungsanleitung des Zählers studieren.


    Werte können wie folgt gesetzt werden:

    In der Console:

    script>VARIABLE=WERT;svars

    in deinem Falle wohl:

    script>sya=12323;svars


    svars bedeutet: save variablen


    Den Wert des Gaszählers setzt du via:

    sensor53 c1 WERT


    c1 beutet erster counter

    hättest du noch einen weiteren Zähler wäre es c2 etc...


    Weiterhin Frohes Ostern ;)

    Der Befehl in der Webconsole ist "sensor53 d1" für den ersten deklarierten Zähler im Script. Für den zweiten wäre es "sensor53 d2" usw. Um die RAW - Ausgabe wieder zu stoppen: "sensor53 d0" eingeben.

    Der Ansatz, sich erst einmal die Rohdaten anzuschauen ist gut.

    Die ausgegebenen Daten beginnen meistens mit: 77 07 01

    Hier wird es ein wenig aufgeschlüsselt: https://wiki.volkszaehler.org/software/sml

    Und auch hier findet man einiges zum Thema SML: http://www.stefan-weigert.de/php_loader/sml.php


    fapo Unter Umständen musst du dir den Monats und Jahresverbrauch selbst ausrechnen. Dafür gibt es Beispiele in den Dokumentationen.

    Hier ist doch noch die xsns_95_sml.ino drin

    Nein, ist sie nicht.


    Eigentlich steht alles in dem Howto.

    Eine Firmware mit use_Script und use_sml_m kompilieren und dann geht es über Menüeintrag Script in Tasmota selbst weiter. Aber alle Infos sind wie schon zuvor 20x auf den letzten paar Seiten hier diskutiert worden.

    Also, noch einmal genau das Howto anschauen.



    So funktioniert das nicht mehr. xsns_95_sml.ino gibt es auch garnicht mehr.

    Schau mal hier vorbei: HowTo

    Franzformator

    Das sieht soweit doch schon gut aus.


    Hast du probiert ob es ohne den Backslash Char geht?


    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