I have done a similar setup, but I have found the PingPresence Sensor to work more reliable if timeout and retry settings are changed as follows:
{
"host": "192.168.178.148",
"interval": 1000,
"id": "dash-1",
"name": "dash-1",
"class": "PingPresence",
"timeout": 100,
"retries": 9
}
I am using a simple rule to toggle a switch - a Milight switch in my case, but this can be easily replaced by ShellSwitch or DummySwitch.
{
"id": "dash-toggle",
"name": "dash-toggle",
"rule": "when dash-1 is present then toggle Milight WWCW Zone@192-168-178-68",
"active": true,
"logging": true
}
As an extra line of defense I setup filtering on my Fritzbox Router to deny the dsash contacting the internet.
My Findings
- Presence sensor works most of the time, but there are glitches. In about 1 of 10 button presses the dash is not detected by the PingPresence sensor
- System CPU usage has not significantly grown
Next steps
I am going to experiment with node-dash-button and win-node-dash-button which are basically ARP sniffers using the PCAP library. This should work reliably, but I am concerned about performance penalties this may have. Let’s see.
If you want to checkout similar things, have look at http://www.danielgallo.co.uk/post/hack-an-amazon-dash-button-to-control-philips-hue-lights/ which is an easy to digest tutorial
"It always takes longer than you expect, even when you take into account Hofstadter's Law.", Hofstadter's Law