In my previous blogpost, the Sonoff worked, but was lacking a manual override. The switch could only be triggered by Domoticz. Since it also has a physical push button (connected to GPIO0 (D3)), it can be switched by hand. All that needs to be done is:
- Create a new switch device in the Sonoff
- Enable 'Rules' in the Tools / advanced settings
- Create a rule
- Change the On/Off commands in the switch parameters in Domoticz
Create a new switch
The new switch name is used in the rules, so pick something obvious. In my case I used 'PushButton'. Since the button should also update the switch-state in Domoticz, the orignal IDX of the existing switch is used. The rest of the settings are shown in the following image.
Enable rules in the Sonoff Device
The ESP Easy software hides some advanced stuff that can be enabled under the Tools -> Advanced setting. Enable the rules option here.
Create a rule
Using rules enables you to automate certain things within the Sonoff itself. Like what to do when a button is pressed. Since there's a dependency with a remote trigger (through Domoticz) the script / rule needs to incorporate that. Basically, the script is gonna be triggered though Domoticz, and the script makes sure that everything falls in place.
The actual script (copy&past-friendly) is listed below.
on switch_on do gpio 12,1 gpio 13,0 inputswitchstate 0,1 endon on switch_off do gpio 12,0 gpio 13,1 inputswitchstate 0,0 endon on PushButton#Switch do if [PushButton#Switch]=1 gpio,12,0 else gpio,12,1 endif endon
Note that the device name (PushButton) is referenced in the code above. The 'on' lines are 'events' that are used in the Domoticz part of the configuration. These events (switch_on and switch_off) are gonna be used.
Changing The Domoticz Switch Configuration
All that needs to change in the (virtual) Switch configuration is the value of the On/Off commands.
ON: http://192.168.0.65/control?cmd=event,switch_on
OFF: http://192.168.0.65/control?cmd=event,switch_off
From this point on, the Sonoff TH16 can be manually operated and the state is reflected in Domoticz. Handy for when you don't have access to the Domoticz interface.