On manualwatering do gpio,12,1 //start watering (open valve) timerSet,8,%eventvalue% //timer 1 set for 5 sec Publish %sysname%/Water/start,{"temp":"[bmp#Temperature]"|"eventvalue":"%eventvalue%"|"%lcltime%"} endon On startwatering do gpio,12,1 //start watering (open valve) timerSet,8,10 //timer 1 set for 5 sec Publish %sysname%/Water/start,{"soil":"[Soil#RH]"} endon On stopwatering do timerSet,8,0 //timer 1 set to halt, used to stop watering before the timer ends! gpio,12,0 //stop watering (close valve) Publish %sysname%/Water/stop,{"soil":"[Soil#RH]"} endon On Rules#Timer=8 do gpio,12,0 //stop watering (close valve) Publish %sysname%/Water/stop,{timeout:"%lcltime%"} endOn On Soil#RH do if [Soil#RH]<70 and [Soil#RH]>20 //Publish %sysname%/Water/start,{"soil":"[Soil#RH]"} event,startwatering else gpio,12,0 //stop watering (close valve) //event,stopwatering //deepsleep,30 endif endOn //Time events GMT (17:00 is 14:00GMT) On Clock#Time=All,%sunrise% do Publish %sysname%/Water/start,{"sunrise":"%sunrise%"} event,manualwatering=20 endon On Clock#Time=All,%sunset% do Publish %sysname%/Water/start,{"sunset":"%sunset%"} event,manualwatering=20 endon On Clock#Time=All,**:** do Publish %sysname%/ping,{"ssid":"%ssid%"|"rssi":"%rssi%"|"time":"%systime%"|"%lcltime%"|"%ip%"|"temp":"[bmp#Temperature]"} //event,manualwatering=2 endon //On Clock#Time=All,**:*5 do // Publish %sysname%/state/time,{"time":"%systime%"} // event,manualwatering=5 //endon On Clock#Time=All,**:00 do //event,nightwatering=3 Publish %sysname%/ping,{"soil":"[Soil#RH]","temp":"[bmp#Temperature]","hum":"[bmp#Humidity]","press":"[bmp#Pressure]"} Publish %sysname%/ping,{"temp":"[bmp#Temperature]"} endon On nightwatering do If %systime% < %sunrise% //12:00:00 event,manualwatering=%eventvalue% Endif If %systime% > %sunset%//19:00:00 event,manualwatering=%eventvalue% Endif endon