Landys+Gyr Ultra Heat

Moin Moin,

ich habe einen Fernwärmezähler in meinem Haus welchen ich leider (noch) nicht ausgelesen bekomme.

Receive GPIO Pin ist 5
Transmit GPIO Pin ist 4

Das nachfolgende Skript soll auslesen können nachdem es den Zähler mit einer anderen Baud Rate aufweckt.

Sieht jemand auf Anhieb den Fehler?
Von Tasmota habe ich leider gar keine Ahnung …

>D

scnt=0

res=0

;Variablen zum Zwischenspeichern der Werte

v1=0  

v2=0

v3=0

v4=0

v5=0

v6=0

v7=0

v8=0

v9=0

 

;Stundenvariable für Tageswert

hr=0 

 

;persistenter Speicher des letzten Werts um 0 Uhr

p:sm1=0 

p:sm2=0 

 

;persistenter Speicher des letztens Tagesverbrauchs

p:sd1=0 

p:sd2=0

>T

;Bei jeder Teleperiode werden die letzten Werte in die Temp Var geschrieben

v1=LGUH50#kwh_count

v2=LGUH50#kwh_count_year

v3=LGUH50#heizleistung_max

v4=LGUH50#m3_count

v5=LGUH50#m3_count_year

v6=LGUH50#unknown

v7=LGUH50#durchlauf_max

v8=LGUH50#lauf_max

v9=LGUH50#flow_count

 

>R

 

>B

=>sensor53 r

 

>F

; Fernwrämezähler läuft mit Batterie und wird daher nur stündlich abgefragt

; count 100ms

scnt+=1

switch scnt

 

case 600

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

res=sml(1 0 300)

print "Anfrage wird gesendet"

res=sml(1 1 "0000000000000000000000000000000000000000")

res=sml(1 1 "0000000000000000000000000000000000000000")

res=sml(1 1 "2F3F210D0A")

res=sml(1 0 2400)

 

case 3000

;Schicke Werte, falls sie nicht Null sind

if v1!=0

then

=>publish stat/Fernwaerme/RESULT {"kwh_count":%v1%}

endif

if v2!=0

then

=>publish stat/Fernwaerme/RESULT {"kwh_count_year":%v2%}

endif

if v3!=0

then

=>publish stat/Fernwaerme/RESULT {"heizleistung_max":%v3%}

endif

if v4!=0

then

=>publish stat/Fernwaerme/RESULT {"m3_count":%v4%}

endif

if v5!=0

then

=>publish stat/Fernwaerme/RESULT {"m3_count_year":%v5%}

endif

if v6!=0

then

=>publish stat/Fernwaerme/RESULT {"unknown":%v6%}

endif

if v7!=0

then

=>publish stat/Fernwaerme/RESULT {"durchlauf_max":%v7%}

endif

if v8!=0

then

=>publish stat/Fernwaerme/RESULT {"lauf_max":%v8%}

endif

if v8!=0

then

=>publish stat/Fernwaerme/RESULT {"flow_count":%v9%}

endif

if sd1!=0

then

=>publish stat/Fernwaerme/RESULT {"Tagesverbrauch_kWh":%sd1%}

endif

if sd2!=0

then

=>publish stat/Fernwaerme/RESULT {"Tagesverbrauch_m3":%sd2%}

endif

;Neue Runde alle 60 Minuten

case 36000

scnt=0

ends

 

 

>S  

 

 

;Tagesverbrauch 

hr=hours  

if chg[hr]>0  

and hr==1  

and v2>0  

then  

 

sd1=v2-sm1

sd2=v5-sm2 

sm1=v2  

sm2=v5   

svars  

endif  

 

 

>M 1

+1,5,o,16,2400,LGUH50,4

1,6.8(@1,Zählerstand,MWh,kwh_count,3

1,6.8*01(@1,Zählerstand_year,MWh,kwh_count_year,3

1,6.6(@1,maximale Heizleistung,kWh,heizleistung_max,1

1,6.26(@1,Durchlauf,m³,m3_count,2

1,6.26*01(@1,Durchlauf_year,m³,m3_count_year,2

1,9.24(@1,unknown,m³h,unknown,1

1,6.33(@1,maximaler Durchlauf,m³h,durchlauf_max,3

1,9.4(@1,maximale VR Temp,C,lauf_max,1

1,9.31(@1,Fließdauer,h,flow_count,0

#

Edit1:
Script angepasst, so leuchtet die Sende LED schon mal nicht permanent :wink:

Edit2:
Es ist ein UltraHeat 330

:crayon:by HarryP: Zusammenführung Doppelpost