I've a question / issue regarding the delay between a gpio update et the state on the switch
The devices The code (extract)
Code: Select all
on Button2#State do
Event,HandleButton=2,5,14
endon
on HandleButton do // relay, gpio, idx // the water valves
LogEntry,'lock%eventvalue1%: [INT#%eventvalue1%]'
if [INT#%eventvalue1%]=1
gpio,%eventvalue2%,=![Relay%eventvalue1%#State]
if [Relay%eventvalue1%#State]=1 // !!!!!!!!
if [Relay4#State]=0 // start the pump if off
gpio,15,1
endif
AsyncEvent,OnOffRelay=%eventvalue1%,0,%eventvalue3%,1
TimerSet,6,15 // reset next tank level check after opening the valve
TimerSet,7,1800
Let,7,1
TimerSet,8,1200
Let,8,1
else
AsyncEvent,OnOffRelay=%eventvalue1%,0,%eventvalue3%,0
endif
Let,%eventvalue1%,2 // to lock until DzTime
elseif [INT#%eventvalue1%]=0 // after the boot
Let,%eventvalue1%,1
LogEntry,'%eventvalue1% after boot'
else
LogEntry,'locked'
Let,%eventvalue1%,1+[INT#%eventvalue1%] // waiting for DzTime
if [INT#%eventvalue1%]>3
Let,%eventvalue1%,1 //if not message from dz, unlock the button after 3 times
endif
endif
endon
Code: Select all
51573: EVENT: Button2#State=1
51825: ACT : Event,HandleButton=2,5,14
51827: EVENT: HandleButton=2,5,14
52119: ACT : LogEntry,'lock2: 1'
52121: lock2: 1
52138: ACT : gpio,5,=!0
52140: GPIO : port#5: set to 1
52184: ACT : AsyncEvent,OnOffRelay=2,0,14,0
I'd think I had the switch with the state updated, but the log seemed to show the reverse
ESP_Easy_mega_20210223_normal_ESP8285_1M
Do I missed something?