>D 48 ; Startminute P9=0 stm=0 ;dynamische Laufvariable i=0 cnt=0 at=0 BD="" st1="Neustart" sel1=0 boo=0 ges=0 heu=0 Tsu=0 Msu=0 Ssu=0 pu=0 ; Laufzeiteinstellung sle=0 wla=0 ss1=1 p12=120 ; p:p22=1 bu1=0 bu2=0 bu3=0 rb1=2 putz=10 ; Tageszyklen putz1=0 ; Tageszyklenzähler bl=0 an1=2000 an2=2000 stime=0 oset=-500 ; Timeroffset v1=0 ; Timerstartvergleich v2=0 ; Timerzeit -Pause v3=0 ; Timerzeit -Aktivzeit tmp=0 it=0 ; Intervall Tageszyklenübergabe F=0 ; Flag ;Dateiystem fr=0 Pu=0 Pl=0 A1="" A2="" str1="" res=0 mi=0 sres="" i3="" >B ;Notzeitzeit setzen =>time 1587435620 ;LED blue spinm(8 1) spin(8 1) ;GPIO02 Relais (out-Kanal) spinm(2 1) ; Time nur für Test =========== =>time 0 pu=20 putz=15 putz1=putz v1=millis P9=90000 ; 150 Sek - für Test 120 +30 Sek Pause P9=900000 ;15 Min F=0 ;=#neuedatei() +>status 1 =>WebColor {"WebColor":["#cccccc","#2f3133","#3d3f41","#dddddd","#293134","#ffb000","#293134","#ff5661","#008000","#ffffff","#ec7600","#bf5f00","#d43535","#931f1f","#47c266","#5aaf6f","#ffffff","#999999","#bc4d90"]} >F an1=adc(1)/112 ;Inverter einschalten ;print bu2 %0bu2% if chg[bu2]>0 then if bu2>0 then an2=14 st1="Inverter läuft" spin(2 1) ;AN spin(8 0) putz1=0 else st1="Inverter aus" spin(8 1) ;AUS spin(2 0) endif endif ; Anpassung Zyklusanzahl if chg[putz]>0 then putz1=putz v1=millis endif if chg[pu]>0 then putz1=putz v1=millis endif >S ; rücksetzen Tagesanfang Durchlaufzähler if time==2 then putz1=putz endif ; für ca. Anzeigezeit stime=(sunset/60-2) if rb1==1 then stm=780+oset-time else stm=sunset+oset-time endif ; Timerfunktionen=============== if chg[p22]>0 then switch p22 case 1 putz1=putz v1=millis spin(8 0) ;An spin(2 1) case 2 putz1=putz v1=millis spin(8 1) ;Aus spin(2 0) case 3 print noch ohne Funktion ends svar endif mi=mins if chg[mi]>0 and p22==4 then print Winteraufwärmen Minute prüfen switch mi case 5.00 print Winteraufwärmen ein =#datenw() spin(8 0) ;An spin(2 1) case 6.00 print Winteraufwärmen aus =#datenw() spin(8 1) ;An spin(2 0) ends endif ; ======Abarbeitung Timer =============================== ;-------------Intervall Laufzeit----------------- ;neg Zeit und pos. Anzahltageszyken dann Laufzeit + Pause abarbeiten ; Zeit ran, noch Umläufe if stm<0 and putz1>0 and p22==1 and bu==0 then ;Laufzeit in ms neg. dann aktiv v3=millis-v1-(pu*1000) if v3<0 ;-Start große Schleife--------- then an2=14 spin(2 1) spin(8 0) st1="Aktiv noch "+s(putz1)+" Mal" print Aktiv noch %putz1% heu=heu+v3/1000 else spin(8 1) spin(2 0) st1="Pause noch "+s(v2/60000)+" Minuten" endif ;!!v2 = Zeit - Startzeit - P9 Pause (900.000=15Min 9000=3Sek) v2=millis-v1-P9 if v2<0 then print Zykluspausenzeit %v2% else print _____v1-laden___ v1=millis putz1=putz1-1 spin(8 1) spin(2 0) endif else ;-else große Schleife--------- st1="warte auf Zyklus" v1=millis endif ;-Ende große Schleife--------- ;======================================================== ;Synchronisation if bu1>0 then =>time 0 bu1=0 endif ;Datumprüfen if year<2021 then if sel1<1 then sel1=1 BD=" <<----------" else sel1=0 endif else BD="
" endif ; 10s verzögerte Messung an2-Auslöser if upsecs%10==0 then an2=adc(1)/112 endif ;Unterspannungsprüfung (11V -aus) if (an2<11 and st1="Inverter läuft") then st1="Unterspannung!!" spin(8 1) spin(2 0) endif >W ;Standardbutton ausschalten ; Hinergrundbilder2 sl(0 120 pu "0" " " "120") @Inverter Sekunden Laufzeit ==>%0pu% sl(0 20 putz "0" " " "20") @Inverter Anzahl Tageszyklen ==>%0putz% @
@pd(p22 "Timer=====> " 100 "aktiv" "passiv" "2tägig aktiv" "Winter") rb(rb1 "__Startzeit_Timer_______" 150 "feste 13:00 Uhr " "sunset %stime% Uhr") nm(-700 600 1 oset "Timeroffset [min]: " 66 0) bu(bu1 "OK" "Zeit synchronisieren") bu(bu2 "manuell AUS" "manuell EIN") %BD% Datum :{m} %2.0day%.%2.0month%.%4.0year% -%2.0hours%:%2.0mins%:%2.0secs% %BD%

Inverterlauf

heute [sek]:{m} %0heu% gestern [sek]:{m} %0ges% Tage/Summe/Schitt-Min :{m} %0Tsu% / %0Msu% / %0Ssu% Bootcount :{m} %0i3% @Spannung1 [V]: %an1% @Spannung2 [V]: %an2% @Status: %st1% Tageszeitminute:{m} %0time% Start in Minuten:{m} %0stm%
Version 2.4.%slen% #neuedatei() fr=fo("/Pump_Daten.csv" 1) str1="Datum; Zeit; BootCount; Spannung; Laufzeit \r\n" res=fw(str1 fr) fc(fr) #datenw() ; Datum Zeit trennen "," und schreiben str1=s(2.2an2) =#komma() A2=str1 str1="\r\n"+sb(tstamp 8 2)+"."+sb(tstamp 5 2)+";"+sb(tstamp 11 5)+";"+i3+";"+A2+";"+s(5.0heu) fr=fo("/Pump_Daten.csv" 2) res=fw(str1 fr) print Dat %str1% fc(fr) print __Datenaufzeichung______ #komma() ; Datensatz "." umwandeln Pu=ins(str1 ".") if Pu>-1 then Pu=ins(str1 ".") Pl=sl(str1) str1=sb(str1 0 Pu)+","+sb(str1 Pu+1 Pl-Pu) >E ;BootCount lesen sres=gwr("BootCount\":"3) i3=sb(sres 0 2)