Strange thing is, that it restarts usually when nothing happens.
I don´t use any controller except P2P.
Since it happens every 8 to 12 hours it will take a while with an external log but i´ll do so.
Code: Select all
On System#Boot do
TimerSet,4,5
if [dummy#bootstate] = 0
Taskvalueset,6,1,18
Taskvalueset,6,4,18
endif
Taskvalueset,7,2,1
endon
//------nightmode------
On Clock#Output do
If [Clock#Output]=1
Taskvalueset,6,4,[count#Dummy]
Taskvalueset,6,1,19
else
Taskvalueset,6,1,[count#Old]
endif
TimerSet,2,10
endon
//---------Temp-control---------
On Rules#Timer=4 do
if [dummy#boost] = 0
if [var#2] = 1
oledframedcmd,1,"Soll: [count#Dummy]°C"
oledframedcmd,2,"Ist: [Sensor#Temperature]°C"
endif
if [count#Set] - [Sensor#Temperature] > 0.6
gpio,15,1
elseif [Sensor#Temperature] >= [count#Set]
gpio,15,0
endif
TimerSet,4,5
endif
endon
//---------------Button---------
On Button#State=1 do
oledframedcmd,display,on
TimerSet,1,1
TimerSet,2,10
Let,2,1
endon
On Rules#Timer=1 do
if [Button#State] = 1
event,boost
endif
endon
//---------------Boosttimerend---------
On Rules#Timer=3 do
TimerSet,5,0
Taskvalueset,7,1,0
TimerSet,4,1
endon
//-------Rotary-------
On Rotary#Counter do
oledframedcmd,display,on
if [Rotary#Counter] > [count#Value] and [count#Dummy] < 30
Taskvalueset,6,1,[count#Dummy]+0.5
elseif [Rotary#Counter] < [count#Value] and [count#Dummy] > 15
Taskvalueset,6,1,[count#Dummy]-0.5
endif
Taskvalueset,6,2,[Rotary#Counter]
oledframedcmd,1,"Soll: [count#Dummy]°C"
oledframedcmd,2,"Ist: [Sensor#Temperature]°C"
TimerSet,2,10
Let,2,1
endon
On up do
TimerSet,2,10
Let,2,1
oledframedcmd,1,"Soll: [count#Dummy]°C"
oledframedcmd,2,"Ist: [Sensor#Temperature]°C"
if [count#Dummy] < 30
Taskvalueset,6,1,[count#Dummy]+0.5
endif
endon
On down do
TimerSet,2,10
Let,2,1
oledframedcmd,1,"Soll: [count#Dummy]°C"
oledframedcmd,2,"Ist: [Sensor#Temperature]°C"
if [count#Dummy] > 10
Taskvalueset,6,1,[count#Dummy]-0.5
endif
endon
//------BOOSTER-----------
On boost do
if [dummy#boost]=0
Let,1,600
oledframedcmd,1,"BOOST [Sensor#Temperature]°C"
oledframedcmd,2,[var#1]
TimerSet,5,1
TimerSet,3,600 //20minuten boost
Taskvalueset,7,1,1
TimerSet,7,10
TimerSet,5,0
oledframedcmd,1,"Soll: [count#Dummy]°C"
oledframedcmd,2,"Ist: [Sensor#Temperature]°C"
Taskvalueset,7,1,0
TimerSet,4,1
TimerSet,3,0
TimerSet,7,0
endif
endon
On Rules#Timer=5 do //for displaying a countdown when the boosttimer ends
Let,1,[var#1]-1
if [var#2] = 1
oledframedcmd,1,"BOOST [Sensor#Temperature]°C"
oledframedcmd,2,[var#1]
endif
TimerSet_ms,5,900 //since the timing deviates after a while i tried to compensate with a shorter cycle (it works....somehow)
endon
On Rules#Timer=7 do
gpio,15,1
endon
//-------Displaytimeout and value handover--------
On Rules#Timer=2 do
Let,2,0
oledframedcmd,display,off
Taskvalueset,6,3,[count#Dummy]
endon