D0 Zähler SML auslesen mit Tasmota

  • Hi zusammen,

    ich würde gerne per Tasmota einen MBus-Wärmemengenzähler (Engelmann SensoStar A bzw. Kalo kaloUltramax MK bzw. Allmess) auslesen. Im Mikrocontroller-Forum scheinen schon einmal zwei Leute auf Linux-Basis kleine C-Programme geschrieben zu haben, die die Werte dort abfragen:

    https://www.mikrocontroller.net/topic/438972#6103099

    und

    https://www.mikrocontroller.net/topic/438972#6199131

    Hallo, hat sich an dieser Front schon was getan ?

    ich habe mal mit Tasmota Script im Script versucht die Baudraten umzuschalten.

    Der Versuch sieht auf dem Oszi auch nichtmal so übel aus. Aber, funktioniert nicht. Ich vermute ich muss das MBus_test C Programm mal auf einem Rapsberry laufen lassen. Da ist u.a. ja auch die Checksummenberechnung drin.

    So als Inspiration hänge ich mal die Script Anfänge an, die Baudratenumschaltung funktioniert, allerdings nicht die Umschaltung 8N1 nach 8E1. Aber es wird in einem Forum beschrieben, das es prinzipiel auch mit 300 Baud mit falscher Parität geht, wenn auch weniger zuverlässig.

    Mit sensor53 d1 kann man auch von der Konsole aus im Tasmota den RAW-Debug mode einschalten. Aber auch schon auf dem Oszi zeigen sich keine Antworten.

    >D

    res=0

    scnt=0

    >B

    =>sensor53 r

    >F

    ;count 100ms

    scnt+=1

    switch scnt

    ;6mal 100ms nach start

    case 6

    ;set sml driver to 300 baud & jede Menge 55h

    ;res=sml(1 0 300)

    res=sml(1 1 "5555555555555555555555555555555555555555555555555555555555555555555555")

    ;1100ms later > 0x10, 0x5B, address=00, 0x00, 0x16 ist die 81 als Checksumme richtig??

    case 11

    res=sml(1 0 2400)

    res=sml(1 1 "105b00001681")


    ;Restart sequence after 100x100ms

    case 100

    ; (10s) later > restart sequence

    scnt=0

    ends

    >M 1

    +1,3,oE1,0,2400,SML,1

    Einmal editiert, zuletzt von Naseweiss (18. Oktober 2022 um 11:06)

  • Hallo zusammen.

    Ich weiß nicht genau, ob mein folgendes Problem bereits besprochen wurde. Eine Suche ergab auf jeden Fall nichts. Ich hoffe ihr könnt mir weiterhelfen.

    Bei uns ist der Stromzähler Easymeter Q3A installiert. Nun möchte ich die Verbrauchsdaten etc. per IR Schnittstelle (vorne am Zähler) auslesen. Als Hardware dient mir der IR-Lesekopf von Hichi. Mit dem folgenden Skript erhalte ich zunächst nur die Summe des Vebrauchs ohne Nachkommastelle:

    Nachdem ich den PIN von dem Messstellenbetreiber erhalten und eingegeben habe. Hat alles funktioniert. Leider aber nur kurzzeitig. Nämlich genau 120 Sekunden bis der PIN Schutz wieder automatisch aktiviert wurde. Diesen PIN-Schutz kann ich leider nicht ausstellen, da das entsprechende Menü gar nicht bei meinem Zähler vorhanden ist. Hat jemand eine Idee? Das wäre super. Danke schon einmal

  • Moin,

    genau das Thema Wärmemengenzähler würde mich auch interessieren.

    Die Suchergebnisse hier waren nicht erschöpfend.

    Beste Grüße

  • Hallo zusammen.

    Ich weiß nicht genau, ob mein folgendes Problem bereits besprochen wurde. Eine Suche ergab auf jeden Fall nichts. Ich hoffe ihr könnt mir weiterhelfen.

    Bei uns ist der Stromzähler Easymeter Q3A installiert. Nun möchte ich die Verbrauchsdaten etc. per IR Schnittstelle (vorne am Zähler) auslesen. Als Hardware dient mir der IR-Lesekopf von Hichi. Mit dem folgenden Skript erhalte ich zunächst nur die Summe des Vebrauchs ohne Nachkommastelle:

    Nachdem ich den PIN von dem Messstellenbetreiber erhalten und eingegeben habe. Hat alles funktioniert. Leider aber nur kurzzeitig. Nämlich genau 120 Sekunden bis der PIN Schutz wieder automatisch aktiviert wurde. Diesen PIN-Schutz kann ich leider nicht ausstellen, da das entsprechende Menü gar nicht bei meinem Zähler vorhanden ist. Hat jemand eine Idee? Das wäre super. Danke schon einmal

    Hab das gleiche Problem. Hab mir eine helle LED vor das "PinEingabeloch" gehängt, die alle 10 Sekunden für eine Sekunde aufleuchtet. Du musst also erst den PIN Eingeben und danach die LED davor kleben. Solange durch das blinken das Menü immer umgeschaltet wird, bleibt der Zähler im erweiterten Modus.

    Das Blinken habe ich via Script realisiert. Setze einen GPIO High/Low der wiederum einen MOSFET steuert. Dieser dient als "Schalter" Für die Spannungsversorgung der LED.

  • Ich habe einen Siemens TD3511 und lese diesen mit folgenden Script aus. Leider werden die Werte nur ca. alle 4 Minuten aktualisiert. Liegt es an den 300 Baud? Ich habe auch schon einmal einen Script mit Baudumschaltung verwendet, aber dann hängt sich der Zähler auf und sendet keine Daten mehr.

    Gibt es eine Möglichkeit die Aktualisierungsrate zu erhöhen?

    >D

    scnt=0

    res=0

    >B

    ->sensor53 r

    tper=10

    >F

    scnt+=1

    switch scnt

    case 10

    scnt=0

    ends

    >M 1

    +1,3,o,0,300,,1,30,2F3F210D0A,063030300D0A

    ;1,0.0.0(@1),Meter Nr.,,Meter_number,0

    1,0.9.1(@#),Zeitstempel,Uhr,time-stamp,0

    1,1.8.0(@1,Gesamtverbauch,KWh,Energy_in,2

    ;1,1.8.1(@1,6-22°°Uhr ,KWh,HT_Total_in,2

    ;1,1.8.2(@1,22-6°°Uhr ,KWh,NT_Total_in,2

    1,32.7(@1,Spannungswert L1,V,Voltage_L1,2

    1,52.7(@1,Spannungswert L2,V,Voltage_L2,2

    1,72.7(@1,Spannungswert L3,V,Voltage_L3,2

    1,31.7(@1,Stromwert L1,A,I_L1,2

    1,51.7(@1,Stromwert L2,A,I_L2,2

    1,71.7(@1,Stromwert L3,A,I_L3,2

    1,1.7.0(@1),Wirkleistung P+,W,Power_in,3

    1,14.7(@1),Hz,Hz,Hz,2

    #

  • Also ich wollte kurz meine neuesten Erkenntnisse teilen.

    Also mit einem Raspberry Pi und dem MBUS adapter + FTDI RS232 läuft Libmbus 0.9.0.

    Dann habe ich mit dem Digitaloszi geguckt. Keine 300 Hz Vorspann , einfach 3 Pakete, die man auch im MBUS Programm sieht. auch keine Checksumme.

    Nur 3 doofe 2400bd Pakete. Das muss doch machbar sein


    init_slaves: debug: sending init frame #1

    [2022-11-18 14:40:34Z] SEND (005): 10 40 FD 3D 16

    init_slaves: debug: sending init frame #2

    [2022-11-18 14:40:35Z] SEND (005): 10 40 FD 3D 16

    [2022-11-18 14:40:35Z] SEND (005): 10 5B 00 5B 16

    Genauso werden sie auch auf dem Oszi dekodiert.

    Dann habe ich versucht es im Tasmota nach zu empfinden - siehe unten,

    aber verd... nochmal das sieht auf dem Oszi prima aus, aber das doofe Ding antwortet einfach nicht.

    Zu spielen wäre noch mit der Polarität, den Stopbits und der Parität, das Oszi ist da etwas easy - dekodiert alles.

    Wer möchte nach vorn.:)

    Ich bleibe dran - höre aber für heute nach entsprechenden Frustrationen auf.

    >D

    res=0

    scnt=0

    >B

    =>sensor53 r

    >F

    ;count 100ms

    scnt+=1


    case 11

    res=sml(1 0 2400)

    case 12

    res=sml(1 1 "1040FD3D16")

    case 14

    res=sml(1 1 "1040FD3D16")

    case 16

    res=sml(1 1 "105B005B16")


    ;Restart sequence after 50x100ms

    case 100

    ; 30000ms (10s) later > restart sequence

    scnt=0

    ends

    >M 1

    +1,3,rN1,0,2400,SML,1

    2 Mal editiert, zuletzt von Naseweiss (19. November 2022 um 10:37) aus folgendem Grund: Bereinigung wg. Fehlers

  • Guten Morgen alle zusammen.

    Ich habe mir jetzt mal die Mühe gemacht und alle 91 Seiten gelesen finde aber leider nichts zu meinem Problem. Ich hoffe ihr könnt mir helfen.

    Ausgangssituation ist:

    Elster AS1440, Ferraris Zähler 75 u/KWh, NodeMCU mit Tasmota 12.2.0 und SML, Volkszähler Lesekopf und TRCT5000 (GPIO14), MQTT Adapter IoBroker.

    Problem:

    1. Elster AS1440 Stromzähler Daten werden alle ausgelesen. Soweit so gut passendes Script eingefügt:

    So es werden fast alle Werte richtig angezeigt außer 1.7.0 gesamter momentan Verbrauch. Da zeigt er mir die Werte von 61.7.0 an. (Siehe Bild 1,Script und Log).

    Was mache ich falsch?

    2. Ich parse den MQTT string mit IoBroker in extra Datenpunkte. Jedoch habe ich das Problem, dass wenn Tasmota den Wert 0 liefert, die Datenpunkte nicht auf 0 stellt. Lediglich wenn ein Wert über 0 gesendet wird aktuallisiert der Datenpunkt.

    3. ist es möglich, das der Momentanverbrauch des Ferrariszähler in der Anzeige wieder auf 0 geht wenn er nicht mehr dreht? Jetzt ist es so, wenn ich den TRCT5000 weg nehme bleibt der zu letzt geschriebene Wert. Wäre toll wenn er erkennt das er nicht mehr dreht und den Wert 0 anzeigt. (siehe Bild 2 Haupt Momentan)

    4. wie berechne ich den wert den man nach dem @ Zeichen bei counter 1 1.7.0*255 eingibt um die momentane Leistung zu zeigen. (siehe Script)

    Bild1 AS1440

    Bild2 Ferraris

    Bild3 Datenpunkte IoBroker

    Tasmota Script

    Spoiler anzeigen

    >D

    scnt=0

    res=0

    >B

    =>sensor53 r

    >F

    ; count 100ms

    scnt+=1

    switch scnt

    ;300ms after start: set sml driver to 300 baud and send /?! as HEX to trigger the Meter

    case 3

    res=sml(1 0 300)

    res=sml(1 1 "2F3F210D0A")

    ;1700ms later: Ack and ask for switching to 9600 baud

    case 20

    res=sml(1 1 "063035300D0A")

    ;300ms later: switch sml driver to 9600 baud

    case 23

    res=sml(1 0 9600)

    ;6000ms after start: Restart sequence

    case 60

    scnt=0

    ends

    >M 2

    +1,3,o,0,9600,AS1440,1

    1,1.7.0(@0.001,Momentan,W,power_in,16

    1,61.7.0(@0.001,Momentan L3,W,power_in_L3,16

    1,41.7.0(@0.001,Momentan L2,W,power_in_L2,16

    1,21.7.0(@0.001,Momentan L1,W,power_in_L1,16

    1,1.8.0(@1,WP Gesammt,KWh,Total_in,1

    1,1.8.1(@1,WP HT,KWh,Total_in_HT,1

    1,1.8.2(@1,WP NT,KWh,Total_in_NT,1

    +2,14,c,0,-50,Haupt

    2,1-0:1.8.0*255(@75 ,Gesammt,KWh,kw_ges,2

    2,1-0:1.7.0*255(@1,Momentan,W,kw_mom,16 wie berechne ich diesen Wert?

    2,1-0:1.7.0*255(@1,time,ms,Energie_time,0

    #

    LOG sensor53 d1

    Spoiler anzeigen

    12:46:01.327 CMD: sensor53 d1
    12:46:01.334 MQT: stat/tasmota_D9CA9F/RESULT = {"Time":"2022-11-20T12:46:01","SML":{"CMD":"dump: 1"}}
    12:46:03.567 : 1.8.0*11(018671.80*k/ELS5\@V9.36 12:46:04.701 : F.F(00000000)
    12:46:04.730 : 0.0.1( 120695)
    12:46:04.752 : 0.9.1(123546)
    12:46:04.776 : 0.9.2(221120)
    12:46:04.794 : 0.1.0(58)
    12:46:04.845 : 0.1.2*10(2211010000)
    12:46:04.892 : 0.1.2*09(2210010000)
    12:46:04.998 : 0.1.2*08(2209010000)
    12:46:05.120 : 0.1.2*07(2208010000)
    12:46:05.170 : 0.1.2*06(2207010000)
    12:46:05.216 : 0.1.2*05(2206010000)
    12:46:05.263 : 0.1.2*04(2205010000)
    12:46:05.309 : 0.1.2*03(2204010000)
    12:46:05.357 : 0.1.2*02(2203010000)
    12:46:05.403 : 0.1.2*01(2202010000)
    12:46:05.451 : 0.1.2*12(2201010000)
    12:46:05.498 : 0.1.2*11(2112010000)
    12:46:05.519 : 0.3.0(500.00)
    12:46:05.541 : 0.3.3(250.00)
    12:46:05.574 : 1.7.0(0.102*kW)
    12:46:05.606 : 21.7.0(0.096*kW)
    12:46:05.637 : 41.7.0(0.000*kW)
    12:46:05.667 : 61.7.0(0.005*kW)
    12:46:05.716 : 1.8.0(022635.82*kWh)
    12:46:05.774 : 1.8.0*10(022409.41*kWh)
    12:46:05.834 : 1.8.0*09(022213.71*kWh)
    12:46:05.893 : 1.8.0*08(022073.46*kWh)
    12:46:05.953 : 1.8.0*07(021995.77*kWh)
    12:46:06.079 : 1.8.0*06(021912.33*kWh)
    12:46:06.136 : 1.8.0*05(021800.16*kWh)
    12:46:06.199 : 1.8.0*04(021607.80*kWh)
    12:46:06.258 : 1.8.0*03(021195.94*kWh)
    12:46:06.317 : 1.8.0*02(020644.79*kWh)
    12:46:06.376 : 1.8.0*01(020107.62*kWh)
    12:46:06.576 : 1.8.0*12(019367.57*kWh)
    12:46:06.578 : 1.8.0*11(018671.80*kWh)
    12:46:06.579 : 1.8.1(015529.09*kWh)
    12:46:06.581 : 1.8.1*10(015377.42*kWh)
    12:46:06.611 : 1.8.1*09(015226.33*kWh)
    12:46:06.651 : 1.8.1*08(015119.68*kWh)
    12:46:06.695 : 1.8.1*07(015059.22*kWh)
    12:46:06.739 : 1.8.1*06(014987.25*kWh)
    12:46:06.777 : 1.8.1*05(014904.10*kWh)
    12:46:06.820 : 1.8.1*04(014775.12*kWh)
    12:46:06.862 : 1.8.1*03(014506.62*kWh)
    12:46:06.901 : 1.8.1*02(014170.09*kWh)
    12:46:06.945 : 1.8.1*01(013804.91*kWh)
    12:46:07.055 : 1.8.1*12(013298.11*kWh)
    12:46:07.096 : 1.8.1*11(012823.16*kWh)
    12:46:07.132 : 1.8.2(007106.72*kWh)
    12:46:07.174 : 1.8.2*10(007031.99*kWh)
    12:46:07.214 : 1.8.2*09(006987.38*kWh)
    12:46:07.253 : 1.8.2*08(006953.78*kWh)
    12:46:07.296 : 1.8.2*07(006936.54*kWh)
    12:46:07.336 : 1.8.2*06(006925.08*kWh)
    12:46:07.374 : 1.8.2*05(006896.05*kWh)
    12:46:07.417 : 1.8.2*04(006832.68*kWh)
    12:46:07.465 : 1.8.2*03(006689.32*kWh)
    12:46:07.506 : 1.8.2*02(006474.70*kWh)
    12:46:07.550 : 1.8.2*01(006302.71*kWh)
    12:46:07.589 : 1.8.2*12(006069.46*kWh)
    12:46:07.631 : 1.8.2*11(005848.63*kWh)
    12:46:07.667 : 1.8.3(000000.00*kWh)
    12:46:07.711 : 1.8.3*10(000000.00*kWh)
    12:46:07.749 : 1.8.3*09(000000.00*kWh)
    12:46:07.791 : 1.8.3*08(000000.00*kWh)
    12:46:07.835 : 1.8.3*07(000000.00*kWh)
    12:46:07.873 : 1.8.3*06(000000.00*kWh)
    12:46:07.916 : 1.8.3*05(000000.00*kWh)
    12:46:07.957 : 1.8.3*04(000000.00*kWh)
    12:46:08.061 : 1.8.3*03(000000.00*kWh)
    12:46:08.169 : 1.8.3*02(000000.00*kWh)
    12:46:08.209 : 1.8.3*01(000000.00*kWh)
    12:46:08.248 : 1.8.3*12(000000.00*kWh)
    12:46:08.291 : 1.8.3*11(000000.00*kWh)
    12:46:08.326 : 1.8.4(000000.00*kWh)
    12:46:08.366 : 1.8.4*10(000000.00*kWh)


    Java Script Ferraris IoBroker

    Spoiler anzeigen

    on('mqtt.0.tele.tasmota_DC5563.SENSOR', function(dp) {

        let strom = JSON.parse(dp.state.val).Haupt;

        if(strom['kw_ges']) {

            let val = strom['kw_ges'];

    setState('0_userdata.0.Stromzähler.Ferraris.Gesammt', val, true);

    } if(strom['kw_mom']) {

            let val = strom['kw_mom'];

    setState('0_userdata.0.Stromzähler.Ferraris.Momentan', val, true);

    }

    });

    Java Script AS1440 IoBroker

    Spoiler anzeigen

    on('mqtt.0.tele.tasmota_zaehler.SENSOR', function(dp) {

        let strom = JSON.parse(dp.state.val).AS1440;

        if(strom['power_in']) {

            let val = strom['power_in'];

    setState('0_userdata.0.Stromzähler.SML.Momentan_gesammt', val, true);

    } if(strom['power_in_L3']) {

            let val = strom['power_in_L3'];

    setState('0_userdata.0.Stromzähler.SML.Momentan_L3', val, true);

    } if(strom['power_in_L2']) {

            let val = strom['power_in_L2'];

    setState('0_userdata.0.Stromzähler.SML.Momentan_L2', val, true);

    } if(strom['power_in_L1']) {

            let val = strom['power_in_L1'];

    setState('0_userdata.0.Stromzähler.SML.Momentan_L1', val, true);

    } if(strom['Total_in']) {

            let val = strom['Total_in'];

    setState('0_userdata.0.Stromzähler.SML.Gesammt', val, true);

    } if(strom['Total_in_HT']) {

            let val = strom['Total_in_HT'];

    setState('0_userdata.0.Stromzähler.SML.HT', val, true);

    } if(strom['Total_in_NT']) {

            let val = strom['Total_in_NT'];

    setState('0_userdata.0.Stromzähler.SML.NT', val, true);

    }

    });

    Hoffentlich kann mir jemand helfen, da ich im Scripten zu wenig erfahrung habe. Wenn möglich bitte ich auch um eine erklärung warum, da ich das selber lernen will und beim nächsten mal nicht wieder bei einer ähnlichen Situation fragen möchte.

    Einmal editiert, zuletzt von Bully85 (25. November 2022 um 12:07)

  • ändere mal die rot markierte zahl ab die ist meines wissens nach für die Abfragezeit

  • Hallo Zusammen,

    Ich habe auch einen UltraHeat T230 von Landys+Gyr und versuche seit Tagen erfolglos den über die Optische Schnittstelle auszulesen. Er schweigt wie ein Grab. Hat es einer mittlerweile mal geschafft diesen oder den T330 mal auszulesen? Ich glaube der Siemens WSM5 / WSN5 (T230) ist baugleich.

    Hier ist mein Script für den Tasmota:

    Aber es kommt absolut nichts zurück, habe den Spiegeltest gemacht, mein Sender/Empfänger sind ok, habe auf Youtube ein Teardown von dem Siemens gefunden, Empfänger links, Sender rechts, also ist mein Sender richtig rum. "Sensor53 d1" in der Console eingegeben, beim Spiegel kommt was zurück, an dem Zähler gar nichts...

    Ich verstehe absolut nicht was ich noch versuchen kann, alle möglichen Bitraten ausprobiert, mit Bitrate-Wechsel, ohne, mit Ack, ohne, als SMI/OBIS, er macht absolut kein Mucks... Hat noch eine eine Idee was ich probieren könnte? Muss man den vielleicht vorher entsperren oder so?
    Oder mache ich was entscheidendes im Script falsch?

    Vielen Dank!

    Jack

  • So ersten Fehler gefunden : Baudrate/ Parität: 2400 E 1 !!

    So antwortet der Engelmann:

    >D

    res=0

    scnt=0

    >B

    =>sensor53 r

    >F

    ;count 100ms

    scnt+=1

    switch scnt

    ;6mal 100ms nach start

    case 6

    ;set sml driver to 300 baud and send /?! as HEX to trigger the Meter


    ;1500ms later > 0x10, 0x5B, address, 0x00, 0x16

    case 11

    res=sml(1 0 2400)

    case 12

    res=sml(1 1 "1040FD3D16")

    case 14

    res=sml(1 1 "1040FD3D16")

    case 16

    res=sml(1 1 "105B005B16")


    ;Restart sequence after 50x100ms

    case 100

    ; 10000ms (10s) later > restart sequence

    scnt=0

    ends

    >M 1

    +1,3,rE1,0,2400,SML,1

    ......

    #

    Die Antwort ist im File Engelmann_Tasmota (sensor 53 d auf der Tasmota console eingeben), der von Libmbus decodierte Text ist im File json.txt. Leider nicht zum gleichen Zeitpunkt und Zählerstand.

    Hat jemand solche Daten schon mit den Tasmota Regeln verarbeitet ?

    Viele Grüße

  • so, nachdem keiner ran wollte, musste ich es doch selbst machen:

    Damit lese ich mit Tasmota (mit USER_CONFIG_OVERRIDE.H) geändert den Engelmann Sensostar U mit wired M-Bus aus.

    Was ich noch nicht hinkriege ist z.B. den Flow als Fliesskommazahl auszugeben.


    D

    >B

    ->sensor53 r

    >M 1

    +1,3,rE1,0,2400,Waerme,1,10,1040FD3D16,105B005B16


    1,68b3b368x23uuUUUUUU@1,Energie total,,total,0 ; Total Wärmemenge

    1,68b3b368x47uuUUUUUU@60,Flow F_akt,,F_akt,0 ; aktueller Flow in m^3

    1,68b3b368x35uuUUUU@1,Power P_akt,,P_akt,0 ; aktuelle Wärme-Leistung

    1,68b3b368x59uuUU@1,Temp Vorlauf,,Vorlauf,0 ; aktuelle Vorlauftemperatur

    1,68b3b368x63uuUU@1,Temp Rückl,,Rückl,0 ; aktuelle Vorlauftemperatur

    1,68b3b368x67uuUU@1,Temp Diff,,Diff,0 ; aktuelle Differenz Vorlauf/Rücklauftemperatur

    #


    -------- das ist im User_config_override eingefügt.man braucht mehr Platz um die X47, X59 usw. auszuführen --------

    #ifndef _USER_CONFIG_OVERRIDE_H_

    #define _USER_CONFIG_OVERRIDE_H_

    #ifndef USE_SCRIPT

    #define USE_SCRIPT

    #endif

    #ifndef USE_SML_M

    #define USE_SML_M

    #endif

    #ifdef USE_RULES

    #undef USE_RULES

    #endif

    #define USE_SML_SCRIPT_CMD

    #define USE_SCRIPT_SUB_COMMAND

    #define SML_BSIZ 160


    #define MAX_METERS 3


  • Und du musst den nicht vorher aufwecken? Was meinst du mit wired M-Bus? Also nicht optisch? Wo hast du das angeschlossen?

    Hallo, nein, den muss ich nicht aufwecken. Das drahtgebundene M-Bus Modul gibt es zum Nachrüsten oder auch ab Werk von Engelmann. Ich habe meinen Sensostar U mit diesem eingebaut gekauft. Dazu braucht es noch einen M-bus Master Adapter, den hab ich für 21€ vom Ali . Dachte das wäre easy - aber bis jetzt gab's nichts im Netz zum Thema Tasmota zu finden - nur PC und Raspberry,

  • So noch ein Thema, bei dem ich nicht besonders viel Hilfreiches im Netz fand, eher falsche Angaben,.Der Zähler macht 8E1 !!

    Modbus StromZähler DRT428M-2

    https://xn--stromzhler-v5a.eu/media/pdf/1f/d7/ae/DRT428M-Serie_manual-register.pdf

    damit geht's

    >D

    >B

    ->sensor53 r

    >M 1

    +1,3,ME1,1,9600,DRT,1,3,0103000E,01030010,01030012,01030016,0103001C,01030100

    1,010304ffffffff@i0:1,Voltage L1,V,Voltage_L1,1

    1,010304ffffffff@i1:1,Voltage L2,V,Voltage_L2,1

    1,010304ffffffff@i2:1,Voltage L3,V,Voltage_L3,1

    1,010304ffffffff@i3:1,Current L1,A,Current_L1,1

    1,010304ffffffff@i4:0.001,Power tot,W,Power_tot,1

    1,010304ffffffff@i5:1,Energie_tot,kW,Energie_tot,1

    #

  • Servus,

    ich hab einen ISKRAEMECO AM550 von Wiener Netzen, zu dem ich online einfach nichts gescheites finde.

    Mein Tasmota Script ist zum testen sehr simpel:

    Code
    >D
    >B
    ->sensor53 r
    >M 1
    +1,3,s,16,9600,STROM
    1,77070100010800ff@1000,Total consumption,KWh,Total_in,4
    #


    Bei 300 baud gibt er mir auf dem IR Port gar nichts, bei 9600 wenigstens das hier:

    Die 77 am Anfang sehen ja vielversprechend nach SML aus, aber danach kommt nicht wo ich ein Muster erkennen konnte.

    Soweit ich das verstehe ist der Output AES verschlüsselt (zumindest hat mit WN einen 32 bit Schlüssel gegeben).

    Laut diesen Script sollten AES verschlüsselte Pakete mit 7e starten und enden. Machen sie bei mir aber auch nicht.

    Gibt es eine Aktivierungs Sequenz, die der Smart Meter von mir erwartet? Bei der Anleitung hab ich dazu nichts gefunden.

    Leider gibt weder Wiener Netze, noch der Hersteller eine Beschreibung. Ich konnte nur herausfinden, dass er über DLMS kommunizieren.

    EDIT: Erstes learning: Wenn man SML auswählt, bekommt man automatisch die 77 am Anfang jeder Nachricht.

    Bei Raw bekomme ich tatsächlich die 7E A0 ... 7E Pakete:

    Jetzt muss ich nur noch schauen, wie man die in Tasmota entschlüsselt

    3 Mal editiert, zuletzt von aldicreation (21. Dezember 2022 um 09:40)