D0 Zähler SML auslesen mit Tasmota

  • Hi,

    in deinem Beispiel läuft das über Counter, ich habe ja derzeit die Auswertung via Script.

    Weiß nicht genau wie du darauf kommst aber ich benutzte (etwas angepaßt ) das Skript von Spencer.

    Das berechnet aus den Reed Kontakt Impulsen den aktuellen Zählerstand sowie Verbrauch heute und gestern.



    Spencer's Skript :


  • Ist die 18 am Ende so gewollt? 18 Nachkommastellen erscheint mir ein wenig übertrieben ;)

    wäre es ja aber es sind nur 2, bei 19 3


    18 : precision -> Anzahl Dezimalstellen (+16 für sofortige Übertragung hier: 2+16=18)

    grüsse aus Heidelberg


    2x Touch, 6x S20, 24x Basic (davon 8x 4.Relais am GPIO), 2x 4ch Pro, 1x 4ch, 2x TH16, 2x 7-32V Sonoff, 4x POW, 6x DUAL, 20x IR+Bridge.,3 RF-Bridhge.2xZigbee-Bridhe mit 5 Geräte, ,2x Obi Steckdose,4x Shelly 2.5, 6x Shelly 1, diverse Wemos und ESP01, Wemos mit SML Script.

    Domoticz, HA-Bridge,, 3xAlexa, MQTT, Pilot APP zur Steuerung , 2xFeinstaunsensor via Domoticz

  • Weiß nicht genau wie du darauf kommst aber ich benutzte (etwas angepaßt ) das Skript von Spencer.

    Das berechnet aus den Reed Kontakt Impulsen den aktuellen Zählerstand sowie Verbrauch heute und gestern.


    Code
    ich werde das scripzt morgen mal einspielen

    grüsse aus Heidelberg


    2x Touch, 6x S20, 24x Basic (davon 8x 4.Relais am GPIO), 2x 4ch Pro, 1x 4ch, 2x TH16, 2x 7-32V Sonoff, 4x POW, 6x DUAL, 20x IR+Bridge.,3 RF-Bridhge.2xZigbee-Bridhe mit 5 Geräte, ,2x Obi Steckdose,4x Shelly 2.5, 6x Shelly 1, diverse Wemos und ESP01, Wemos mit SML Script.

    Domoticz, HA-Bridge,, 3xAlexa, MQTT, Pilot APP zur Steuerung , 2xFeinstaunsensor via Domoticz

  • Hallo.

    Ich gab heute auch mal meinen ultraheat t550 versucht mit Tasmota auszulesen.

    Egal wie mein Script aussieht, bekomm ich im dump nur die standard Anzeige.


    Habt ihr ne Ahnung wie das Script aussehen muss? Ich will nur dan aktuellen Verbrauch anzeigen.


    21:40:53.900 : 6.26*01(00612.30*m3)6.8*01(0024.351*MWh)

    21:40:54.087 : F(0)9.20(67248537)6.35(60*m)

    21:40:54.400 : 6.6(0009.8*kW)6.6*01(0009.8*kW)6.33(000.252*m3ph)9.4(087.8*C&078.4*C)

    21:40:54.759 : 6.31(0030828*h)6.32(0000000*h)9.22(R)9.6(000&67248537&0&000&67248537&0)

    21:40:55.090 : 9.7(20000)6.32*01(0000000*h)6.36(05-31&00:00)6.33*01(000.252*m3ph)

    21:40:55.276 : 6.8.1()6.8.2()6.8.3()6.8.4()6.8.5()

    21:40:55.435 : 6.8.1*01()6.8.2*01()6.8.3*01()

    21:40:55.552 : 6.8.4*01()6.8.5*01()

    21:40:55.679 : 9.4*01(087.8*C&078.4*C)

    21:40:55.883 : 6.36.1(2021-01-18)6.36.1*01(2021-01-18)

    21:40:56.088 : 6.36.2(2020-03-08)6.36.2*01(2020-03-08)

    21:40:56.287 : 6.36.3(2020-01-02)6.36.3*01(2020-01-02)

    21:40:56.505 : 6.36.4(2020-11-04)6.36.4*01(2020-11-04)

    21:40:56.812 : 6.36.5()6.36*02(01&00:00)9.36(2023-01-21&21:54:22)9.24(0.6*m3ph)

    21:40:56.941 : 9.17(0)9.18()9.19()9.25()

    21:40:57.264 : 9.1(0&1&0&0000&CECV&CECV&1&5.20&5.20&F&101008&1>1>04&08&0&00&:5)

    21:40:57.408 : 9.2(&&)9.29()9.31(0027701*h)

    21:40:57.759 : 9.0.1(00000000)9.0.2(00000000)9.34.1(000.00000*m3)9.34.2(000.00000*m3)

    21:40:57.959 : 8.26.1(00000000*m3)8.26.2(00000000*m3)

    21:40:58.185 : 8.26.1*01(00000000*m3)8.26.2*01(00000000*m3)

    21:40:58.314 : 6.26.1()6.26.4()6.26.5()

    21:40:58.554 : 6.26.1*01()6.26.4*01()6.26.5*01()0.0(67248537)

  • Ich habe dein Script und deine (spencer) bin genommen, keine Änderung ich müsste wohl das Ergebnis mit 0,01 mutiplizieren.

    Werde jetzt mal die Counter Methode probieren.

    EDIT:

    Counter Methode ist um einiges genauer. die Abweichung sind minimal, werde mal weiter ausprobieren.

    grüsse aus Heidelberg


    2x Touch, 6x S20, 24x Basic (davon 8x 4.Relais am GPIO), 2x 4ch Pro, 1x 4ch, 2x TH16, 2x 7-32V Sonoff, 4x POW, 6x DUAL, 20x IR+Bridge.,3 RF-Bridhge.2xZigbee-Bridhe mit 5 Geräte, ,2x Obi Steckdose,4x Shelly 2.5, 6x Shelly 1, diverse Wemos und ESP01, Wemos mit SML Script.

    Domoticz, HA-Bridge,, 3xAlexa, MQTT, Pilot APP zur Steuerung , 2xFeinstaunsensor via Domoticz

    Einmal editiert, zuletzt von mafrei ()

  • Zur Info:

    Bei meinem Ferrariszählerscript #1857 ist noch ein Gedankenfehler in Bezug auf die Darstellung in Home Assistant drin.

    Z.Zt. wird die vergangene ermittelte Leistung übertragen in HA aber als derzeit anstehende ausgewertet.

    Bin mir noch nicht sicher wie ich das löse.

    Im Prinzip müsste ich beim aktuell ermittelten Wert den Timestamp des Impulses davor übertragen.

    Hab aber noch keine Ahnung wie ich das mache.

  • Hallo.

    Ich gab heute auch mal meinen ultraheat t550 versucht mit Tasmota auszulesen.

    Egal wie mein Script aussieht, bekomm ich im dump nur die standard Anzeige.


    Habt ihr ne Ahnung wie das Script aussehen muss? Ich will nur dan aktuellen Verbrauch anzeigen.

    Du kannst einfach in https://tasmota-sml-parser.dicp.net/ deinen Dump reinkopieren um zu sehen was dein Zähler liefert.

    Dump zuvor einschalten mit

    sensor53 d1

    daten kopieren

    sensor53 d0

    grüsse aus Heidelberg


    2x Touch, 6x S20, 24x Basic (davon 8x 4.Relais am GPIO), 2x 4ch Pro, 1x 4ch, 2x TH16, 2x 7-32V Sonoff, 4x POW, 6x DUAL, 20x IR+Bridge.,3 RF-Bridhge.2xZigbee-Bridhe mit 5 Geräte, ,2x Obi Steckdose,4x Shelly 2.5, 6x Shelly 1, diverse Wemos und ESP01, Wemos mit SML Script.

    Domoticz, HA-Bridge,, 3xAlexa, MQTT, Pilot APP zur Steuerung , 2xFeinstaunsensor via Domoticz

  • Wenn ich unter senser53 c1 nichts eingebe habe ich in der Anzeige 0,000 beim Gaszähler

    die mittler Stelle wird bei dem Impuls richtig hochgezählt also 0,010 ; 0,020 usw.

    Gebe ich nun den aktuelle Zähler stand mit sensor53 c1 1795986 ein erschein in der Anzeige 17959,860.

    Dies wäre auch korrekt. Nun wird aber die mittlere Nachkommstelle nicht mehr hochgezählt.

    Kann mit einer Helfen ?

    Tasmota 12.2.0

    script:

    >D


    p:m1=0

    s1=0

    p:g1=0

    h1=0

    hkw1=0

    gkw1=0

    skw1=0

    hgp=0

    ggp=0

    hr=0

    mi=0

    zu=0.9617

    br=11.233

    gp=10.65

    farbe1="#008000"

    farbe2="#f00000"

    farbe3="#00fdfd"


    >B

    ->sensor53 r

    tper=10


    >S


    h1=s1-m1

    hkw1=h1*br*zu

    hgp=(hkw1*gp)/100

    gkw1=g1*br*zu

    ggp=(gkw1*gp)/100

    skw1=s1*br*zu

    hr=hours


    if chg[hr]>0

    and hr==0

    then

    m1=s1

    g1=h1

    svars

    endif


    if upsecs%tper==0{


    ;=>Publish keller/%topic%/main/td_m3 %2h1%

    ;=>Publish keller/%topic%/main/td_kwh %2hkw1%

    ;=>Publish keller/%topic%/main/yd_m3 %2g1%

    ;=>Publish keller/%topic%/main/yd_kwh %2gkw1%

    ;=>Publish keller/%topic%/main/value %2s1%

    ;=>Publish keller/%topic%/main/json {"value": "%2s1%", "today_m3": "%2h1%", "today_kwh": "%2hkw1%", "yesterday_m3": "%2g1%", "yesterday_kwh": "%2gkw1%"}


    ;Senden an Homematic Variable xxxxxxxx


    ;=>websend [ip-adresse_ccu:8181] /cuxd.exe?Status=dom.GetObject('xxxxxxxx').State(%2s1%)


    }


    >T


    s1=GAS1#Stand_Haus1


    >W

    ============


    Zustandszahl: {m} %zu%

    Brennwert: {m} %br% kWh/m³

    Gaspreis: {m} %gp% Cent/kWh

    ============


    Verbrauch:


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


    Heute: {m} %2h1% m³ | %2hkw1% kWh


    Kosten: {m} %2hgp% €


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


    Gestern: {m} %2g1% m³ | %2gkw1% kWh


    Kosten: {m} %2ggp% €


    >M 1

    +1,14,c,1,-25,GAS1

    1,1-0:1.8.0*255(@100,Zählerstand,m³,Stand_Haus1,19

    #

    grüsse aus Heidelberg


    2x Touch, 6x S20, 24x Basic (davon 8x 4.Relais am GPIO), 2x 4ch Pro, 1x 4ch, 2x TH16, 2x 7-32V Sonoff, 4x POW, 6x DUAL, 20x IR+Bridge.,3 RF-Bridhge.2xZigbee-Bridhe mit 5 Geräte, ,2x Obi Steckdose,4x Shelly 2.5, 6x Shelly 1, diverse Wemos und ESP01, Wemos mit SML Script.

    Domoticz, HA-Bridge,, 3xAlexa, MQTT, Pilot APP zur Steuerung , 2xFeinstaunsensor via Domoticz

  • Hallo mafrei,


    Bei mir sieht es so aus:

    Mein Gaszähler hat drei Stellen hinter dem ","

    In der letzten Stelle ist der Magnet der die Impulse gibt, also kann maximal bis zwei Stellen hinter dem "," gezählt werden.


    Du hast bei dir die "19" stehen also drei Stellen hinter dem "," funktioniert mMn nicht.

    Dann darfst du auch nur deinen Zählerstand bis zwei Stellen hinter dem "," also 18 eingeben.

    Beachte auch die untere rote Zeile.


    Für dein Zählerstand 17959,860 also nur 1795986 mehr nicht!

  • In der letzten Stelle ist der Magnet der die Impulse gibt, also kann maximal bis zwei Stellen hinter dem "," gezählt werden.

    ich habe das mal beobachtet, mein Zählwerk hat auch drei stellen (Nachkomma).

    An der letzen Stelle ist auf der 6 ein Metallplättchen zu sehen. Der Impuls kommt aber wenn die mittlere Stelle die 6 zeigt.

    ich nehme an ich muss die Impluse mit 10 multiplizieren weis aber nicht wie ?


    EDIT:

    Ich habe das mal übernommen, mal sehen was passiert:

    >M 1


    +1,14,c,0,-25,GAS

    1,1-0:1.8.0*255(@100,Zählerstand,m³,Total_In,2

    grüsse aus Heidelberg


    2x Touch, 6x S20, 24x Basic (davon 8x 4.Relais am GPIO), 2x 4ch Pro, 1x 4ch, 2x TH16, 2x 7-32V Sonoff, 4x POW, 6x DUAL, 20x IR+Bridge.,3 RF-Bridhge.2xZigbee-Bridhe mit 5 Geräte, ,2x Obi Steckdose,4x Shelly 2.5, 6x Shelly 1, diverse Wemos und ESP01, Wemos mit SML Script.

    Domoticz, HA-Bridge,, 3xAlexa, MQTT, Pilot APP zur Steuerung , 2xFeinstaunsensor via Domoticz

    2 Mal editiert, zuletzt von mafrei ()

  • Bei mir: 1 Imp. = 0,01 qm

    Bei mir: 1Imp, = 0,1m³


    Das heißt die zweite Stelle ist der Impulsgeber, wenn der Magnet am Reedkontakt vorbeikommt.


    EDIT:

    ich habe mal auf einstellig umgestellt und warte mal nun ab.

    >M 1

    +1,14,c,0,-25,GAS

    1,1-0:1.8.0*255(@100,Zählerstand,m³,Total_In,1


    ich hätte gerne den Wert in einer Variablen, wenn das möglich ist.

    Bilder

    grüsse aus Heidelberg


    2x Touch, 6x S20, 24x Basic (davon 8x 4.Relais am GPIO), 2x 4ch Pro, 1x 4ch, 2x TH16, 2x 7-32V Sonoff, 4x POW, 6x DUAL, 20x IR+Bridge.,3 RF-Bridhge.2xZigbee-Bridhe mit 5 Geräte, ,2x Obi Steckdose,4x Shelly 2.5, 6x Shelly 1, diverse Wemos und ESP01, Wemos mit SML Script.

    Domoticz, HA-Bridge,, 3xAlexa, MQTT, Pilot APP zur Steuerung , 2xFeinstaunsensor via Domoticz

    2 Mal editiert, zuletzt von mafrei ()

  • Landis Gyr Ultraheat T550


    Hallo.

    Ich habe mir jetzt einen zweiten IR HICHI Lesekopf gekauft und teste mit ihm wieder meine Abfrage über Tasmota. Das Ergebnis ist gleich geblieben, d.h. in der Tasmota Console bekomme ich immer und immer wieder diesen Text:


    11:23:50.382 RSL: STATE = {"Time":"2023-01-27T11:23:50","Uptime":"0T00:35:09","UptimeSec":2109,"Heap":20,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":0,"POWER":"ON","Wifi":{"AP":1,"SSId":"HerpersdorfCable1GB","BSSId":"38:10:D5:49:F7:5F","Channel":11,"Mode":"11n","RSSI":100,"Signal":-30,"LinkCount":1,"Downtime":"0T00:00:03"}}

    11:23:50.390 RSL: SENSOR = {"Time":"2023-01-27T11:23:50","LGUH50":{"waermemenge":0}}

    11:28:50.382 RSL: STATE = {"Time":"2023-01-27T11:28:50","Uptime":"0T00:40:09","UptimeSec":2409,"Heap":20,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":30,"MqttCount":0,"POWER":"ON","Wifi":{"AP":1,"SSId":"HerpersdorfCable1GB","BSSId":"38:10:D5:49:F7:5F","Channel":11,"Mode":"11n","RSSI":100,"Signal":-33,"LinkCount":1,"Downtime":"0T00:00:03"}}

    11:28:50.389 RSL: SENSOR = {"Time":"2023-01-27T11:28:50","LGUH50":{"waermemenge":0}}

    11:31:34.255 : i

    11:31:34.457 : 6.26*01(00612.30*m3)6.8*01(0024.351*MWh)

    11:31:34.609 : F(0)9.20(67248537)6.35(60*m)

    11:31:34.958 : 6.6(0009.8*kW)6.6*01(0009.8*kW)6.33(000.252*m3ph)9.4(087.8*C&078.4*C)

    11:31:35.317 : 6.31(0030962*h)6.32(0000000*h)9.22(R)9.6(000&67248537&0&000&67248537&0)

    11:31:35.647 : 9.7(20000)6.32*01(0000000*h)6.36(05-31&00:00)6.33*01(000.252*m3ph)

    11:31:35.870 : 6.8.1()6.8.2()6.8.3()6.8.4()6.8.5()

    11:31:36.007 : 6.8.1*01()6.8.2*01()6.8.3*01()

    11:31:36.108 : 6.8.4*01()6.8.5*01()

    11:31:36.235 : 9.4*01(087.8*C&078.4*C)

    11:31:36.440 : 6.36.1(2021-01-18)6.36.1*01(2021-01-18)

    11:31:36.646 : 6.36.2(2020-03-08)6.36.2*01(2020-03-08)

    11:31:36.843 : 6.36.3(2020-01-02)6.36.3*01(2020-01-02)

    11:31:37.048 : 6.36.4(2020-11-04)6.36.4*01(2020-11-04)

    11:31:37.369 : 6.36.5()6.36*02(01&00:00)9.36(2023-01-27&11:45:06)9.24(0.6*m3ph)

    11:31:37.499 : 9.17(0)9.18()9.19()9.25()

    11:31:37.821 : 9.1(0&1&0&0000&CECV&CECV&1&5.20&5.20&F&101008&1>1>04&08&0&00&:5)

    11:31:37.965 : 9.2(&&)9.29()9.31(0027835*h)

    11:31:38.357 : 9.0.1(00000000)9.0.2(00000000)9.34.1(000.00000*m3)9.34.2(000.00000*m3)

    11:31:38.525 : 8.26.1(00000000*m3)8.26.2(00000000*m3)

    11:31:38.792 : 8.26.1*01(00000000*m3)8.26.2*01(00000000*m3)

    11:31:38.870 : 6.26.1()6.26.4()6.26.5()

    11:31:39.112 : 6.26.1*01()6.26.4*01()6.26.5*01()0.0(67248537)

    11:31:39.129 : !


    Wenn ich den IR Lesekopf abziehe, kommt nichts. D.h. der Lesekopf bekommt wirklich diesen Sums angezeigt.


    Warum liefert mein Skript kein brauchbares Ergebnis? - Hast das von euch wirklich jemand geschafft? - Muss der Ultraheat irgendwie freigeschlten werden?


    Mein Script (andere Scripten liefern das gleiche Ergebnis)

    >D

    scnt=0

    res=0


    >B

    =>sensor53 r


    >F

    ;100ms iterations

    scnt+=1

    switch scnt

    case 10

    ;300 baudrate

    res=sml(1 0 300)

    res=sml(1 1 "00000000000000000000000")

    res=sml(1 1 "0000000000000000000000")

    res=sml(1 1 "2F3F210D0A")

    ;\?!CRLF

    ;case 7

    res=sml(1 0 2400)

    case 6000

    scnt=0

    ends


    >M 1

    +1,3,o,16,2400,LGUH50,1

    1,6.8(@1,Zählerstand,kWh,waermemenge,0

    #

  • Bei mir: 1 Imp. = 0,01 qm


    Das heißt (die dritte Stelle ist der Impulsgeber) es wird 0,01 hochgezählt wenn der Magnet am Reedkontakt vorbeikommt.

    Dein Hinweis über die Nachkomma Stellen scheint das Problem zu lösen. Mit der Einstellung

    >M 1

    +1,14,c,0,-25,GAS

    1,1-0:1.8.0*255(@10,Zählerstand,m³,Total_In,1


    sieht es bis jetz gut aus.

    grüsse aus Heidelberg


    2x Touch, 6x S20, 24x Basic (davon 8x 4.Relais am GPIO), 2x 4ch Pro, 1x 4ch, 2x TH16, 2x 7-32V Sonoff, 4x POW, 6x DUAL, 20x IR+Bridge.,3 RF-Bridhge.2xZigbee-Bridhe mit 5 Geräte, ,2x Obi Steckdose,4x Shelly 2.5, 6x Shelly 1, diverse Wemos und ESP01, Wemos mit SML Script.

    Domoticz, HA-Bridge,, 3xAlexa, MQTT, Pilot APP zur Steuerung , 2xFeinstaunsensor via Domoticz

    Einmal editiert, zuletzt von mafrei ()

  • Hi,


    hast Du deinen Ultraheat T550 zum laufen bekommen?

    Könntest du mir evtl. dein laufendes script zukommen lassen?


    Gruss

  • Mit dem Script von oben hab ich es jetzt auch geschafft:


    Zwei Tips:

    - Der Zähler muss mit USB Anschluss nach oben positioniert werden.

    - Geduld. Da gibt es zwei Zeitschleifen. Ein zum Auslesen des Sensors (einmal pro Stunde) und einen für das Senden per MQTT.


  • Beitrag von mafrei ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: eigener Fehler ().