>D ;start, define variables wkup=1 period=2 ;read meter every n minutes after midnight (60 --> 01:00, 02:00...) blk=0 >B ;setup sensor ->sensor53 r >S if time%period==0 and blk==0 ;minutes since midnight divided by period have a remainder of "0" then =#readmeter blk=1 ;set a flag to execute the readout only once every period endif if time%period-1==0 and blk==1 ;one minute after we entered the first loop then blk=0 ; reset the flag endif #readmeter print wakeup start ;set serial protocol sml(-1 1 "2400:8N1") ;send 0x55 for 2,2 seconds with 8N1 (73x), 2400 baud (wakeup sequence) for wkup 1 73 1 sml(1 1 "55555555555555555555") next print wakeup end wkup=1 print wait for the meter ;wait for the meter to wake up delay(350) ;switch serial protocol sml(-1 1 "2400:8E1") print request data ;set string to send to "105B005B16" (request data) sml(1 1 "105BFE5916") >M 1 +1,3,rE1,0,2400,WP_WMZ,1 1,0406uuUUuuUUs@1000,Total energy,MWh,Energie_total,3 1,0C14bcd8@100,Total volume,m³,Durchfluss_total,2 1,0B2Dbcd6@10,Current power,KW,Leistung_akt,2 1,0B3Bbcd6@1000,Current flow,m³/h,Durchfluss_akt,3 1,0A5Abcd4@10,Flow temp,°C,temp_Vorlauf,1 1,0A5Ebcd4@10,Return temp,°C,temp_Ruecklauf,1 1,0B61bcd6@100,Temp diff,°C,temp_diff,2 1,0227uuUU@1,Meter days,d,Betriebstage,0 ;1,046Dxxuu@1-1,Hour,h,time_h,0 ;1,046Duu@1,Minute,min,time_m,0 ;1,046Dxxxxuu@1,Day,dd,time_d,0 ;1,046Dxxxxxxuu@1,Month,mm,time_m,0 #