after update from 20220616 to 20220809 (ESP32 normal build in both cases) it looks like a event where eventvalue1 equals 0 is ignored.
following command and following rules:
command: event,ControlSZ=0
Code: Select all
on ControlSZ do
Let,5,1 // Taskvalue Device
Let,6,2 // Taskvalue Variable
Let,7,=[SZ#S1] // Current shutter state
Let,8,20 // Timer Seconds requested VAR Number
Let,9,21 // Timer shutter direction VAR Number
Let,10,20 // timershared shutter VAR Number
Let,11,24 // shutter syssec_d start
event,ControlShutter=%eventvalue1%,4,16,28
endon
Code: Select all
on ControlShutter do
//control?cmd=event,ControlShutter=0
// control shutter, in percent.
logentry,"here1"
if %eventvalue1% >= 0 and %eventvalue1% <= 100 and [INT#%v8%] = 0
logentry,"here2"
//open/close percent / complete
Let,12,%eventvalue4%
Let,13,(%eventvalue4%/100)*%eventvalue1%
Let,14,(%eventvalue4%/100)*[VAR#7]
if %eventvalue1% = 0 or [VAR#14] > [VAR#13]
//open a bit / complete
if %eventvalue1% != 0
Let,12,[VAR#14]-[VAR#13]
endif
logentry,"GPIO=%eventvalue2%,%eventvalue3%_open_secs=[VAR#12]"
elseif %eventvalue1% = 100 or [VAR#14] < [VAR#13]
//close a bit / complete
if %eventvalue1% != 100
Let,12,[VAR#13]-[VAR#14]
endif
logentry,"GPIO=%eventvalue2%,%eventvalue3%_close_secs=[VAR#12]"
else
logentry,"something went wrong. VAR#13=[VAR#13] VAR#14=[VAR#14]"
endif
if [INT#12] > 0
gpio,2,0
TimerSet,8,[INT#12]
TaskValueSet,[INT#5],4,1
//delay,250
LongPulse,%eventvalue2%,0,[INT#12]
if %eventvalue1% = 0 or [VAR#14] > [VAR#13]
LongPulse,%eventvalue3%,0,[INT#12]
Let,%v9%,-1
elseif %eventvalue1% = 100 or [VAR#14] < [VAR#13]
gpio,%eventvalue3%,1
Let,%v9%,1
else
logentry,"something went wrong. VAR#13=[VAR#13] VAR#14=[VAR#14]"
endif
Let,%v8%,[INT#12]
//monitor gpio,%eventvalue2%
if [INT#%v10%] > [INT#12] or [INT#15] > [INT#12]
logentry,"TimerIDX 5 already set to [INT#%v10%] or [INT#15]"
else
Let,15,[INT#12]
Let,16,%syssec_d%
loopTimerSet_ms,5,1000,[INT#12]
endif
else
logentry,"GPIO=%eventvalue2%,%eventvalue3% drive_secs below 1, nothing to do"
TaskValueSet,[INT#5],[INT#6],%eventvalue1%
endif
elseif %eventvalue1% >= 0 and %eventvalue1% <= 100 and [INT#%v8%] != 0
logentry,"GPIO=%eventvalue2%,%eventvalue3% currently active, need stop first!"
logentry,"GPIO=%eventvalue2%,%eventvalue3%_stop"
LongPulse,%eventvalue2%,0,0
LongPulse,%eventvalue3%,0,0
Let,%v8%,0
event,ControlShutter,%eventvalue1%,%eventvalue2%,%eventvalue3%,%eventvalue4%
elseif %eventvalue1% = 101
//stop shutter
logentry,"GPIO=%eventvalue2%,%eventvalue3%_stop"
LongPulse,%eventvalue3%,0,0
LongPulse,%eventvalue2%,0,0
Let,%v8%,0
elseif %eventvalue1% = 102 and [INT#%v8%] = 0
//Cooling Mode
logentry,"GPIO=%eventvalue2%,%eventvalue3%_cooling_mode to [INT#2] percent"
event,ControlShutter=[INT#2],%eventvalue2%,%eventvalue3%,%eventvalue4%
elseif %eventvalue1% = 103 and [INT#%v8%] = 0
//slittingTOP
//gpio,2,0
//LongPulse,%eventvalue2%,0,2000
//LongPulse,%eventvalue3%,0,2000
elseif %eventvalue1% = 104 and [INT#%v8%] = 0
//slittingALL
endif
endon
Code: Select all
428035: HTTP: event,ControlSZ=0
428105: EVENT: ControlSZ=0
428115: ACT : Let,5,1
428120: ACT : Let,6,2
428128: ACT : Let,7,=1.00
428132: ACT : Let,8,20
428136: ACT : Let,9,21
428140: ACT : Let,10,20
428144: ACT : Let,11,24
428148: ACT : event,ControlShutter=0,4,16,28
428151: EVENT: ControlShutter=0,4,16,28
expected: here1, here2, GPIO=4,16_open_secs=28, and some more.
if I do the command event,ControlSZ=1 it works as expected:
Code: Select all
409276: HTTP: event,ControlSZ=1
409327: EVENT: ControlSZ=1
409338: ACT : Let,5,1
409342: ACT : Let,6,2
409350: ACT : Let,7,=0.00
409355: ACT : Let,8,20
409359: ACT : Let,9,21
409363: ACT : Let,10,20
409367: ACT : Let,11,24
409371: ACT : event,ControlShutter=1,4,16,28
409373: EVENT: ControlShutter=1,4,16,28
409382: ACT : logentry,'here1'
409384: here1
409395: ACT : logentry,'here2'
409397: here2
409398: ACT : Let,12,28
409402: ACT : Let,13,(28/100)*1
409407: ACT : Let,14,(28/100)*0
409436: ACT : Let,12,0.28-0
409442: ACT : logentry,'GPIO=4,16_close_secs=0.28'
409445: GPIO=4,16_close_secs=0.28
409500: ACT : logentry,'GPIO=4,16 drive_secs below 1, nothing to do'
409502: GPIO=4,16 drive_secs below 1, nothing to do
409505: ACT : TaskValueSet,1,2,1
428035: Webserver 1 Arguments: 0: 'cmd' length: 17
I did already change all %eventvalue% to %eventvalue1% in this code with no effect.
downgrading to 20220616 and the rules work as expected also with 0 again.
any ideas?
Thanks!
BR
Alois