Mit Testdaten läuft der Skript und auch die WebUI-Anzeige der Datenübernahme vom Zähler, aber mit keiner Methode (3) will die Datenübernahme der gelesenen Zählerdate in die Weiterverarbeitungsvariablen im Script gelingen.
Fehlt mir etwa eine Compileroption (V12.4.0) ?
>T
v1=SML#in
v2=SML#out
v1=sml[1]
v2=sml[2]
v1=in
v2=out
Code
>D 48
res=0
cnt=0
tmp=0
Twert=""
fr=0
str=""
tz=""
res=0
min=0
df=0
dt=0
Pu=0
Pl=0
;Variablen zum Zwischenspeichern der Werte
v1=0
v2=0
SS=0
SmS=0
out=0
in=0
S1=0
S2=0
w1=0
w2=0
er="Richtung"
er1=0
er0=0
;Speicher der letzten Zählerwerte
sm1=0
sm2=0
;Speicher des letzte 1/4h Verbrauchs
sd1=0
sd2=0
;Speicher aktuelle Teleperiode
tm1=0
tm2=0
st1=0
st2=0
>B
=>sensor53 r
Twert=st(tstamp T 1)+"_"+s(4.0time)
fr=fo("/Daten"+Twert+".csv" 1)
str="Datum; Zeit; In; Out \r\n"
res=fw(str fr)
fc(fr)
>T
v1=STROM#in
v2=STROM#out
>S
if pwr[1]>0
then
=>Webbutton1 Selbsttest
print ==Testdaten aktiv==
v1=100000+(secs*rnd(15))+mins
v2=100260+(secs*rnd(30))+mins
print Selbsttest an
print %v1%
print %v2%
endif
if upsecs%5==0
then
st1=v1-tm1
st2=v2-tm2
tm1=v1
tm2=v2
; aktuelle Energierichtung
SmS=st1-st2
if SmS>0
then
er="<<==Bezug"
else
er="Speisung==>>"
endif
endif
; 15 Minutenwerte einmalig speichern (and/or in eine Zeile!)
min=mins
if (chg[min]>0 and (min==15 or min==30 or min==45 or min==0))
then
sd1=v1-sm1
sd2=v2-sm2
sm1=v1
sm2=v2
S1=v1*1000
S2=v2*1000
; Datum Zeit trennen
tz=sb(tstamp 0 10)+";"+sb(tstamp 11 17)
str=tz+";"+s(8.0S1)+";"+s(8.0S2)+"\r\n"
Pu=ins(str "T")
Pl=sl(str)
fr=fo("/Daten"+Twert+".csv" 2)
res=fw(str fr)
print Dat %str%
fc(fr)
endif
; lösche alle Daten*.csv
if df==01 or chg[df]>0
then
df=0
=#delfolder("")
endif
; Datei neu
if dt==01 or chg[dt]>0
then
dt=0
=#neuedatei()
endif
>W
bu(df "ok" "alle Daten*.csv löschen")
bu(dt "ok" "DateiTIMESTAMP.csv neu")
Energierichtung:{m} %er%
Datum:{m}%s(2.0day)%.%s(2.0month)%.%s(2.0year)% %s(2.0hours)%:%s(2.0mins)%:%s(2.0secs)%
Bezug :{m} %3st1%
Einspeisung :{m} %3st2%
aktuelles Saldo:{m} %3SmS%
15 min Saldo :{m} %3SS%
15 min Wert in:{m} %S1%
15 min Wert out:{m} %S2%
letzte Delta in: {m} %sd1%
letzte Delta out:{m} %sd2%
RAM :{m} %0ram%
Heap :{m} %0heap%
Stack :{m} %0stack%
;send /?! as HEX to trigger the Meter
>M 1
+1,3,o,0,300,STROM,1,100,2F3F210D0A
1,1-0:1.8.1*255(@1,Total Bezug ,KWh,in,3
1,1-0:2.8.1*255(@1,Total Abgabe, KWh,out,3
;1-0:1.7.255*255(@1,P_in,W,P_in,18
;1-0:21.7.255*255(@1,L1,W,L1,18
;1-0:41.7.255*255(@1,L2,W,L2,18
;1-0:61.7.255*255(@1,L3,W,L3,18
#
; lösche Daten
#delfolder(tstr)
mpa=0
fr=fo("/" 0)
for cnt 1 1000 1
res=fr(str fr)
if res>0
then
er=sb(str 0 5)
print %er%
if er=="Daten"
then
fd("/"+str)
print loesche %str%
endif
else
break
endif
next
fc(fr)
#neuedatei()
Twert=st(tstamp T 1)+"_"+s(4.0time)
fr=fo("/Daten"+Twert+".csv" 1)
str="Datum; Zeit; In; Out \r\n"
res=fw(str fr)
fc(fr)
Alles anzeigen