D0 Zähler SML auslesen mit Tasmota

  • Hi, der Zähler gibt sml aus.

    Kann ich ein fertiges Image verwenden oder muss man selbst kompilieren?


    Gruß Tobbes

    Hallo Tobbes,


    du solltest das selbst probieren zu Kompilieren, was fertiges wirst du nicht finden. Fast Jeder hat ein anderen Zähler und dein Wlan SSID und Password musst du auch eintragen.


    Probier es falls du nicht weiterkommst meldest dich.


    Gruß

    Tedesco

  • Hallo Tedesco,


    Habe den Treiber komplett neu geschrieben, so dass man beliebige Sequenzen scannen kann. Ist erst mal nur für OBIS. du kannst damit alles was dein Zähler hergibt ausgeben. Dazu habe ich eine neue Datei erzeugt => xsns90_sml.ino und der define dazu ist USE_SML1.


    bisher gibt es noch keine Zählerliste sondern nur eine Definition => meter

    das ist ein ganz langer String in dem alles beschrieben ist.


    const uint8_t meter[]=

    "1-0:1.8.0*255(@1,Verbrauch,KWh,Total_in|"

    "1-0:2.8.0*255(@1,Einspeisung,KWh,Total_out|"

    "1-0:21.7.0*255(@1,Verbrauch P1,W,Power_p1|"

    "1-0:41.7.0*255(@1,Verbrauch P2,W,Power_p2|"

    "1-0:61.7.0*255(@1,Verbrauch P3,W,Power_p3";


    wie du siehst kann man hier die OBIS Sequenz, den Skalierungsfaktor (hier 1), den Namen im WebUI, die Einheit im webUI, sowie den Jason Namen für MQTT angeben.


    das @ Zeichen dient als Trenner bis dahin geht die OBIS Sequenz.


    beachte das | Zeichen zur Trennung der Einträge (darf ganz am Ende nicht stehen)


    Der Nachteil dieser Methode ist, dass es bisher keine berechneten Werte gibt, also den Summen Verbrauch aller Phasen. Weis nicht ob ich solche virtuellen Einträge auch noch einbauen kann.


    Bitte teste mal.


    Gruß gemu

  • Hallo


    gemu2015 ,


    schön das du daran arbeitest auch andere Werte anzuzeigen.


    Interessant sind die Werte die bisher schon angezeigt werden


    und


    diese dazu sowie in OBIS als auch in SML


    Zitatausschnitt aus #98

    @tedesco1968

    Zitat

    1-0:31.7.0*255(002.06*A)// Strom L1

    1-0:51.7.0*255(000.06*A)// Strom L2

    1-0:71.7.0*255(002.95*A)// Strom L3

    sind das tatsächliche Stromwerte von deinem Zähler, wenn ja, dann hätte ich gedacht bei einem Hauptzähler wären diese Werte höher.


    Ja dies macht halt die ganze Geschichte erst so interessant, wenn man weiß wo welche Steckdose/Verbraucher auf welcher Phase angeschlossen ist und man dann sieht den Verbrauch/Strom/Spannung wenn der Verbraucher/Steckdose eingeschaltet wird und die Änderungen dazu.

  • Hallo Gemu,


    paar Fragen:

    • wenn ich jetzt ein Wert z.B. Strom L1 einfügen will ist das so richtig? --> Funktioniert eben probiert :thumbup:

    const uint8_t meter[]="1-0:1.8.0*255(@1," D_TPWRIN ",KWh,Total_in|"

    "1-0:2.8.0*255(@1," D_TPWROUT ",KWh,Total_out|"

    "1-0:21.7.0*255(@1," D_TPWRCURR1 ",W,Power_p1|"

    "1-0:41.7.0*255(@1," D_TPWRCURR2 ",W,Power_p2|"

    "1-0:61.7.0*255(@1," D_TPWRCURR3 ",W,Power_p3|"

    "1-0:31.7.0*255(@1," D_ELECTR1 ",A,Strom_L1";

    #endif


    • die einzelne Leistungswerte L1, L2, L3 sind Werte ohne Komma, wo ändere ich das im Programm? und wo die Anzahl der Stellen nach dem Komma? OK gefunden gilt aber für alle Werte --> dtostrfd(meter_vars[index],4,tpowstr);


    1-0:21.7.0*255(+00184*W)

    1-0:41.7.0*255(-00002*W)

    1-0:61.7.0*255(+00281*W)


    was ist der Skalierungsfaktor? für was ist der gut?

    den Skalierungsfaktor (hier 1),

    Gruß

    Tedesco

  • 1. Anzahl Kommastellen habe ich jetzt als letzen Parameter in der Liste zugefügt

    2. der Skalierungsfaktor ist ein Divisor . z.B. habe ich Gesamtverbrauch als Wattstunden will aber KWh, also stelle ich hier 1000 ein und nehme als Einheit KWh


    Man kann jetzt Werte addieren:

    =m 3+4+5 @


    m für Mathe addiert index 3+4+5 (index ist Position in der Liste)

    also kannst du deine 3 Phasen zusammen addieren.


    const uint8_t meter[]="1-0:1.8.0*255(@1," D_TPWRIN ",KWh,Total_in,4|"

    "1-0:2.8.0*255(@1," D_TPWROUT ",KWh,Total_out,4|"

    "1-0:21.7.0*255(@1," D_TPWRCURR1 ",W,Power_p1,0|"

    "1-0:41.7.0*255(@1," D_TPWRCURR2 ",W,Power_p2,0|"

    "1-0:61.7.0*255(@1," D_TPWRCURR3 ",W,Power_p3,0|"

    "=m 3+4+5 @1," D_TPWRCURR ",W,Power_curr,0";



    und man kann Differenzen berechnen:


    =d 1 10 @

    d für diff


    berechnet den aktuellen Verbrauch aus index 1 alle 10 Sekunden


    const uint8_t meter[]=

    "1-0:1.8.1*255(@1," D_TPWRIN ",KWh,Total_in,4|"

    "1-0:2.8.1*255(@1," D_TPWROUT ",KWh,Total_out,4|";

    "=d 1 10 @1," D_TPWRCURR ",W,Power_curr,0";

  • Hallo zusammen,

    ich versuche gerade meinen ISKRA MT681 auszulesen. Ich bekomme aber nur den aktuelle Verbrauch angezeigt. Ich habe die Daten, die Ausgegeben werden angeschaut, die sollte mit dem EHZ363 übereinstimmen. Weiß jemand, was ich anpassen muss, um den Gesamtverbrauch anzeigen zu können?



  • Hallo, leider komme ich alleine nicht zurecht.

    Habe das Universal ZIP geladen und

    In der

    /sonoff/user_config.h

    Meine WLAN Daten eingetragen.

    Bei den Sensoren habe ich

    #define USE_SML 9600

    hinzugefügt.

    In der plattform.ini habe ich den richtigen COM angegeben.


    Ich könnte die Firmware nun kompilieren und auf dem wemos laden. Die Verbindung zum WLAN klappt.

    Leider habe ich auf dem tasmota trotzdem OBIS für die Werte stehen und einen seltsamen an/aus Button als oberstes in den Einstellungen.

    Wie kann ich SML korrekt in der Firmware eintragen? Muss ich noch einen bestimmten Zähler wählen? Muss ich OBIS auskommentieren?


    Habt ihr einen Hinweis?

    Danke

    Tobbes

  • Hallo Tobbes,


    super ist doch schon mal gut :), du musst in die xsns_91_sml.ino und dort dein Zähler auswählen.

    der steht aber da bestimmt noch nicht drin, dann wähle einen von den SML Zähler aus (schreibe den dann hinter #define Meter) und teste.


    // Zählerliste bisher

    #define EHZ161_1 1 //Obis

    #define EHZ363 2 //sml

    #define EHZH 3 //sml

    #define EDL300 4 //sml

    #define Q3B 5 //sml

    #define EHZ161_0 6 //Obis


    #define METER EHZ363



    Gruß

    Tedesco

  • Hallo Gemu,


    was soll ich sagen da bin ich sprachlos :thumbup::thumbup::thumbup::thumbup: Super vielen Dank.


    Gruß

    Tedesco