D0 Zähler SML auslesen mit Tasmota

  • 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!


  • Ich habe heute mal etwas weiter experimentiert und dies hier versucht:


    Code
    +1,12,M,0,9600,LK13BE,13,30,2F3F210D0A,063035310D0A


    Jetzt kommt mit "sensor53 d1" tatsächlich etwas brauchbares raus.

    Ich habe wirklich diesen Zähler: LK13BE803039 und überall im Netz steht, das er über OBIS kommuniziert. Schon komisch.


    Wie bekomme ich das jetzt schick angezeigt? :/


    Danke.

    Gruß Tim

  • sunburstc


    Ja, genau. Bei "o" wird mir nichts angezeigt.

    Obwohl ich jetzt, wenn ich von M auf o switche und "sensor53 d1" aktiviert lasse dieses hier bekomme:


    Gehe ich einmal von d1 auf d0 und wieder d1 kommt gar nichts.

  • 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.

  • sunburstc


    was genau meinst du mit Roh Daten?


    d1:



    Code
    21:10:27.711 : 63 0f 00 63 2f 9b 13 1e 83 9b 83 9b cb 6b 8f 4c 2c 6b 83 d3 cb b3 73
    21:10:27.760 : 8b 73 83 53 93 ab ab 43 83 83 8b 63 0f 00 b8 b8 bf 83 c3 93 9b ab ab 4b 6b 8f 6e 83 d3 8b 73 c3 73 83 53 93 ab ab 43 83 8b 83 83 cb
    21:10:27.811 : 93 73 a3 83 ab 8b 53 5b fc 6f 4c 2c 6b 83 d3 93 73 c3 73 83 53 93 ab ab 43 83 83 83 83 83 83 73 bb bb 9b b3 53 5b fc 6f 4c 2c 6b
    21:10:27.860 : 83 d3 8b b3 73 bb 07 00 83 53 93 ab ab 43 83 83 83 a3 83 83 53 3b 00 6f 4c 2c 6b 83 d3 bf 93 73 bb 73 83 53 93 ab ab 43 93 93 cb 73 83 53
    21:10:27.910 : 33 00 6f 4c 2c 6b 83 d3 ab 93 73 bb 73 83 53 b7 ab ab 43 93 93 cb 73 a3 53 33 00 6f 4c 2c 6b 83 d3 bb 93 73 bb 73 83 53 93 ab ab 43 93 b7
    21:10:27.960 : cb 73 bb 53 33 00 6f 1c 00 2c 6b 83 d3 9b 8b 73 bb 73 83 53 93 ab ab 43 83 83 83 73 c3 cb 53 0b 6f 4c 2c 6b 83 d3 ab 9f 73 bb 73 83 53
    21:10:27.010 : 93 ab ab 43 83 83 83 73 c3 8b 53 0b 6f 4c 2c 6b 83 d3 bb 8b 73 bb 73 83 53 93 ab ab 43 83 83 9f 73 93 83 53 0b 6f 4c 2c 6b 83 d3 c3
    21:10:28.046 : 8b 73 bb 73 8b 53 93 ab ab 43 8b 8b ff 53 23 df 5f 6b 8f 6e 83 d3 c3 8b 73 bb 73 93 53 93 ab ab 43 93 a3 8b 53 23 df 5f 6b 8f 6e
    21:10:28.096 : 83 d3 c3 8b 73 bb 73 a3 53 93 ab ab 43 83 ab 9b 53 23 df 5f 6b 8f 6e 83 d3 c3 8b 73 bb 73 9f ab 53 93 ab ab 43 83 bb 83 53 23 df
  • sunburstc

    könntest du mir etwas auf die Sprünge helfen mit meinem Script für den Gaszähler!?!


    Möchte so wie beim Stromzähler den Tagesverbrauch anzeigen lassen.

    Umrechnen funktioniert schon mal von m³ in KWh.

    Jetzt soll der Stand um 0:00Uhr gespeichert werden und mit dem Aktuellen Wert gegen gerechnet werden.


    Mein Script sieht so aus:

    in der Oberfläche dann so:

  • 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

  • Hallo, jetzt funktioniert die LED beim Einschalten des Sonoff Basic.

    GPIO13 muss auf Ledi stehen, wenn als Module-Type Generic(0) gewählt wurde.

    Keine Ahnung, warum es zunächst nicht funktioniert.


    Habe jetzt meine Sonoffs zum auslesen der Stromzähler auf Script umgestellt.

    Funktioniert prima. Ein Dank an den Entwickler gemu2015 👍