Using Amazon Dash Button and OpenHab2 to find my iphone
2.0.0-SNAPSHOP build #560
instructions as per
https://github.com/openhab/openhab2-addons/tree/master/addons/binding/org.openhab.binding.amazondashbutton
follow install pcap4j, including permissions for running as non-root:
then for the java path I did
whereis java
then ls -l /usr/bin/java
ls -l /etc/alternatives/java
then
setcap cap_net_raw,cap_net_admin=eip /usr/lib/jvm/java-8-oracle/jre/bin/java
started openHAB script
sudo su -s /bin/bash -c '/opt/openhab2/start.sh' openhab
let it run 15 mins - check GUI ok, then restarted it
on my router, I noted down all current DHCP leases, then followed the dash button setup until the point of choosing button, then stopped, then looked for new DHCP lease and found the MAC address AC-63-BE-XX-XX-XX, gave it a fixed IP assignment then blocked it in the router firewall for WAN access.
enable amazon dash binding in Paper UI - click install
when happy, press the button and the Dash button appears as a Thing in inbox!
click the tick in the Inbox to add the dash button as a Thing.
make a note of the CHANNEL that the dashbutton publishes its events to, something like
amazondashbutton:dashbutton:ac-63-be-xx-xx-xx:press
Now you can just add a rule in /opt/openhab2/conf/rules
e.g.
sudo nano dashbuttons.rules
rule "Dash button pressed"
when
Channel "amazondashbutton:dashbutton:ac-63-be-xx-xx-xx:press" triggered
then
println("The Dash button has been pressed")
end
change owner to openhab as per the install guide,
sudo chown openhab:openhab dashbuttons.rules
What got me was that the usual approach of Thing < -- bind with channel --> Item isn't followed. The dash button is a pure Thing with channel trigger - no Item to bind to - no Item State/Command to run in a rule
Discussion here:
https://community.openhab.org/t/amazon-dash-button-as-openhab-trigger/3622/52
Now, get the PHP 'find my iphone' library
as per
http://blog.qnology.com/2015/11/voice-control-home-automation-via.html
(adapted for OH2)
cd /opt/openhab2/conf/scripts
sudo git clone git://github.com/albeebe/PHP-FindMyiPhone
sudo cp PHP-FindMyiPhone/class.findmyiphone.php .
sudo wget --no-check-certificate http://dl.dropbox.com/u/42238/debian/openhab/custom_scripts/listiclouddevices.php
sudo wget --no-check-certificate http://dl.dropbox.com/u/42238/debian/openhab/custom_scripts/turnoniphone.php
sudo wget --no-check-certificate http://dl.dropbox.com/u/42238/debian/openhab/custom_scripts/turnoffiphone.php
#FIND MY IPHONE SETUP
#CONFIGURE SAMPLE SCRIPTS
#Edit listiclouddevices.php with your iCloud username (email) and password
cd /opt/openhab2/conf/scripts
sudo nano listiclouddevices.php
#Run it to find your deviceID
#DeviceID will be something like Eu4EGWK1Yt5+2JtKM7YNA++hxNtDw4ZzZuwT9BLxYcL2d7FaULCJMuHYVNSUzmXV<
php ./listiclouddevices.php
#Edit turnoniphone.php, turnoffiphone.php
#with username, password and deviceID
sudo nano turnoniphone.php
sudo nano turnoffiphone.php
#Run scripts to test
php ./turnoniphone.php
php ./turnoffiphone.php
Permissions are a sticky point.
After creating php scripts, I changed all files in openhab2 to be owner:openhab, group openhab
for the manual install, this is
sudo chown -hR openhab:openhab /opt/openhab2
I also added my linux user to the group openhab, for ease of editing:
sudo usermod -a -G openhab myusername