Showing Posts From

Dash button

Controll FHEM devices with amazon dash button
  • 10 Aug, 2017
  • 6 min read

Controll FHEM devices with amazon dash button

I explained in this article how you can execute IFTTT actions with the Amazon dash button. By changing a single line of code you can switch an FHEM device. How does it work? By calling a URL (HHTP Post Request) you can tell FHEM to do soemthing. This way you can switch lights on or off, open or close shutters, turn remote contrles wall plugs on or off and a lot more. The dash button is not suitable for every application as the button has a latency of 5 to 6 seconds until a FHEM device is switched. What's required:Raspberry Pi or Debian/Ubuntu Linux computer Amazon Dash Button Running FHEMHere is a sample video how a Philips Hue lamp is turned on using a Amazon dash button and FHEM. Thanks to Hagen for that video.Contents Option 1: FHEM module dash_dhcpWorks without additional software FHEM server can be connected to the network vial ethernet cable Multiple Amazon dash buttons can be embeddedUpdate your FHEM to the newest version and install the module dash_dhcp. Here is a short tutorial how you can implement a update button in the sidebar of the FHEM web interface.Determine the MAC address of your Amazon dash button. Therefore, log into your router. I have a Fritzbox where all wifi devices are listed under WLAN -> Network. For Mac the free application LanScan can be used to run a scan of your network and detemrin the respective MAC address.Open the FHEM configuration file fhem.cfg and add the following code. Replace the MAC address behind allowed with the one of your dash button. You can write multiple MAC addresses after each other if you separate them by ,. The MAC address should be written in small caps.define DashButton dash_dhcp attr DashButton allowed ac:66:be:e3:fb:fe attr DashButton port 6767 attr DashButton room dashbuttondefine n_DashButton1 notify DashButton:ac-66-be-e3-fb-fe..short IF ([YourFHEMDevice] eq "on") (set YourFHEMDevice off) ELSE (set YourFHEMDevice on) Replace in the notify command YourFHEMDevice with the name of your FHEM device that you want to switch on or off and make sure that the MAC adress is written with dashes. Don't forget to save! Multiple dash buttons can be separated by commas.attr DashButton allowed ac:66:be:e3:fb:fe,ac:66:be:e3:fa:31Now You need to forward the data from port 67 to port 6767. DHCP requests arrive always through port 67 and that port can only be accessed with root access rights. FHEM is usually started without root rights. In case your FHEM server in implemened in the network via a wifi domgle execute the following command in the terminal.sudo iptables -I PREROUTING -t nat -i wlan0 -p udp --src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6767 In case the FHEM server is implemented via a ethernet cable use the following command.sudo iptables -I PREROUTING -t nat -i eth0 -p udp --src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6767You should be now able to switch your FHEM device on or off with the Amazon dash button. In order to check if the dash button is recognized by FHEM you can use the Event monitor in the FHEM web interface in the left sidebar. After clicking the dash button, dash_dhcp DashButton ac-66-be-e3-fb-fe: short should appear in the monitor. The forwarding of the ports via iptables needs to be set after a restart. Install the application iptables-persistent that the fowarding is loaded automatically after a restart.sudo apt-get update && sudo apt-get install -y iptables-persistent During the installation of iptables-persistent a couple of settings need to be made. Confirm all with YES. You can now write the port forward for the dash button in the file rules.v4. sudo nano /etc/iptables/rules.v4 Add the forward before the last COMMIT. (Ethernet cable)-I PREROUTING -t nat -i eth0 -p udp --src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6767 (WIFI Dongle)-I PREROUTING -t nat -i wlan0 -p udp --src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6767 Exit the Nano text editor with ctrl+x and save the changes. After a restart with sudo reboot the rules.v4 file is loaded automatically and the port forwarding should work. ALTERNATIVE In case the fowarding via rules.v4 does not work, you can try this alternative option. Open the /etc/rc.local file. This file is executed during every system start.sudo nano /etc/rc.local and add the command for the forwarding before exit 0. (Ethernet cable)sudo iptables -I PREROUTING -t nat -i eth0 -p udp --src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6767 (WIFI dongle)sudo iptables -I PREROUTING -t nat -i wlan0 -p udp --src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6767Option 2: with NodeJS and DasherFHEM Server can be connected to the network via ethernet cable Multiple Amazon dash buttons can be used Flexible as other services, such as, Zapier or IFTTT can be pinged via HTTP GET and POST Request.- Additional software is requiredAs first step the package lists need to be updated and the required applications git & libpcap-dev need to be installed. sudo apt-get update && sudo apt-get install libpcap-dev Furthermore, the current version of Node.js (v6.5.0) is required. Detailed Tutorial Add the Node.js source to your package list. curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - You can now install Node.js. sudo apt-get install -y nodejsAs next step you can download and install the Node.js application "Dasher". Navigate with cd ~/ into your home folder and copy Dasher from Github. git clone https://github.com/maddox/dasher.git Navigate to the Dasher directory cd dasher Now the required programs and dependencies of Dasher need to be installed. npm installDasher requires the MAC address of your dash button which are easily found. Log into your router and have a look at the connected devices. You can also use the program "find-button" that is provided by Dasher. script/find_button Press after "find-button" was started the dash button. The program should show the MAC address. Copy the MAC address and close the program with ctrl+c on a Mac or strg+c in Windows.Now you need to adjust the URL in the Dasher config/config.json file the way you want. nano config/config.json{"buttons":[ { "name": "Dash1", "address": "ac:61:b3:e1:fa:fe", "url": "http://127.0.0.1:8083/fhem?cmd=set%20DashButton1%20toggle", "method": "POST", "json": true, "body": {"value1": "any value", "value2": "another value"} } ]} The IP 127.0.0.1 points always to the local computer, i.e. himself. As alternative you can write http://localhost:8083/fhem?cmd=set%20DashButton1%20toggle.Start Dasher and press the button to check if everything works. If everything is fine the terminal should show "Dash1 pressed". Dasher and your button work and FHEM can be configured. You can close the program with ctrl+c. sudo npm run startConfigure FHEM for the Dash Button Open the FHEM configuration file fhem.cfg and add the following code. Define in FHEM a Dummy for the dash button. Here is a good help for beginners.define DashButton1 dummy attr DashButton1 webCmd toggleCreate a notify that turns your FHEM device on or off. Replace YourFHEMDevice with the name of your FHEM device. Save the cfg file. In case you have closed Dasher, you can start it with sudo npm run start and press the dash button.define n_DashButton1 notify DashButton1.* IF ([YourFHEMDevice] eq "on") (set YourFHEMDevice off) ELSE (set YourFHEMDevice on) Explenation: The Dummy DashButton1 will be define n_DashButton1[name of the notify] notify[the command] DashButton1.*[in case of a change of the Dummy Reading, then] IF ([YourFHEMDevice] eq "on") [check if Reading of YourFHEMDevice is on, then] (set YourFHEMDevice off) [set YourFHEMDevice Reading to off] ELSE (set YourFHEMDevice on) [otherwise set YourFHEMDevice Reading to on] To configure the dash button to turn off multiple FHEM devices, use the following configuration. Again, replace YourFHEMDevice and YourFHEMDevice1 with your FHEM devices names. You can write as many devices as you want behind each other as long as they are separated by ;;.define n_DashButton1 notify DashButton1.* set YourFHEMDevice off;; set YourFHEMDevice1 offSet up Dasher Autostart After every system start the Dasher Programm would need to be reconfigured by hand. Set up a Init script for Dasher that the Dasher runs as a service runs in the background and is started when the system is started. Tutorial You can see here roughly the time the setup needs to react.

FHEM Geräte mit Amazon Dash Button schalten/steuern - raspberry pi home automation
  • 10 Sep, 2016
  • 6 Min. Lesezeit

FHEM Geräte mit Amazon Dash Button schalten/steuern - raspberry pi home automation

In diesem Artikel haben ich erklärt, wie du IFTTT Aktionen mit dem Amazon Dash Button auslösen kannst. Durch abändern einer Zeile kannst du jedes beliebige FHEM Geräte schalten. Wie das funktioniert? Durch aufrufen einer URL (HTTP Post Request), kann man FHEM sagen das es etwas machen soll. So kannst du Lichter ein/aus schalten, Rollläden öffnen/schließen, Funksteckdosen ein/aus schalten und vieles mehr. Der Dash Button eignet sich nicht für alle Anwendungsfälle, da der Button eine Verzögerung von ca. 5-6 Sekunden hat, bis das FHEM Gerät geschalten wird. Was wird benötigt:Raspberry Pi oder Debian/Ubuntu Linux Rechner Amazon Dash Button laufendes FHEMHier ein Beispielvideo, wie mit einem Amazon Dash Button und FHEM eine Phillips Hue Lampe einschaltet. Vielen Dank an Hagen für das Video.Inhalt Variante 1: FHEM Modul dash_dhcpfunktioniert ohne zusätzliche Software FHEM Server kann per LAN-Kabel mit dem Netzwerk verbunden sein es können mehrere Amazon Dash Buttons eingebunden werdenAktualisiere dein FHEM, dass es auf dem neusten Stand ist und das Modul dash_dhcp installiert ist. Hier eine kurze Anleitung wie du ein Update Button in die Seitenleiste der FHEM Web-Oberfläche einbindest.Finde die MAC Adresse deines Amazon Dash Button heraus. Schau dazu in deinen Router. Ich habe einen Fritzbox. Dort sind alles WIFI Geräte unter WLAN -> Funknetz aufgelistet. Für Mac gibt es das kostenlose Programm LanScan.Öffne die FHEM Konfigurationsdatei fhem.cfg und füge folgenden Code hinzu. Ersetze die MAC Adresse hinter allowed mit der deines Dash Button. Du kannst mehrere MAC Adressen mit einem , getrennt hintereinander schreiben. Die MAC Adresse sollte in Kleinbuchstaben geschrieben werden.define DashButton dash_dhcp attr DashButton allowed ac:66:be:e3:fb:fe attr DashButton port 6767 attr DashButton room dashbuttondefine n_DashButton1 notify DashButton:ac-66-be-e3-fb-fe..short IF ([DeinFhemGeraet] eq "on") (set DeinFhemGeraet off) ELSE (set DeinFhemGeraet on) Ersetze im notify Befehl DeinFhemGeraet mit dem Namen deines FHEM Gerätes was du an/aus schalten möchtest und achte darauf das hier die MAC Adresse mit Bindestrichen geschrieben wird. Speichern nicht vergessen! Mehrere Dash Button kannst du mit einem Komma trennen.attr DashButton allowed ac:66:be:e3:fb:fe,ac:66:be:e3:fa:31Du musst noch die Daten vom Port 67 auf den Port 6767 weiterleiten. Die DHCP Anfragen kommen über den Port 67 rein und auf diesen Port hat nur ROOT Zugriffsrechte. FHEM wird standardmäßig nicht mit ROOT Rechten gestartet. Ist dein FHEM Server über eine WLAN Stick mit dem Netzwerk verbunden, dann gibt folgenden Befehl in den Terminal ein.sudo iptables -I PREROUTING -t nat -i wlan0 -p udp --src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6767 Falls der FHEM Server über ein Netzwerkkabel verbunden ist, verwende folgenden Befehl.sudo iptables -I PREROUTING -t nat -i eth0 -p udp --src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6767Jetzt solltest du dein FHEM Gerät mit dem Amazon Dash Button ein und ausschalten können. Um zu Prüfen ob der Dash Button von FHEM erkannt wird, kannst du in der FHEM Weboberfläche links auf Event monitor klicken. Nach dem drücken des Dash Button, sollte dash_dhcp DashButton ac-66-be-e3-fb-fe: short erscheinen. Die Umleitung der Ports mittels iptables muss nach einem Neustart neu eingerichtet werden. Installieren das Programm iptables-persistent, damit die Portumleitung nach einem Neustart automatisch geladen wird.sudo apt-get update && sudo apt-get install -y iptables-persistent Während der Installation von iptables-persistent werden ein paar Einstellungen abgefragt. Bestätige alle mit JA. Jetzt kannst du die Portumleitung für den Dash Button in die rules.v4 Datei schreiben. sudo nano /etc/iptables/rules.v4 Füge die Umleitung vor dem letzten COMMIT ein. (Netzwerkkabel)-I PREROUTING -t nat -i eth0 -p udp --src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6767 (WIFI Stick)-I PREROUTING -t nat -i wlan0 -p udp --src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6767 Beende den Nano Editor mit ctrl+x und bestätige das Speichern. Nach einem Neustart sudo reboot wird die Datei rules.v4 automatisch geladen und die Portumleitung sollte funktionieren. ALTERNATIVE Falls die Weiterleitung über die rules.v4 Datei nicht funktioniert, hier eine alternative Variante. Öffne die /etc/rc.local Datei. Diese wird bei jedem Neustart ausgeführt.sudo nano /etc/rc.local und füge den Befehl für die Weiterleitung vor exit 0 ein. (Netzwerkkabel)sudo iptables -I PREROUTING -t nat -i eth0 -p udp --src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6767 (WIFI Stick)sudo iptables -I PREROUTING -t nat -i wlan0 -p udp --src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6767Variante 2: mit NodeJS und DasherFHEM Server kann per LAN-Kabel mit dem Netzwerk verbunden sein es können mehrere Amazon Dash Buttons eingebunden werden flexibel da per HTTP GET und POST Request andere Service wie Zapier oder IFTTT "angepingt" werden können.- zusätzliche Software erforderlichAls erstes werden die Paketlisten neu eingelesen und installieren die benötigten Programme git & libpcap-dev. sudo apt-get update && sudo apt-get install libpcap-dev Du benötigst des weiteren die aktuelle Version von Node.js (v6.5.0). Ausführliche Anleitung Node.js Quelle zu deinen Paketlisten hinzufügen. curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - Jetzt kannst du Node.js installieren. sudo apt-get install -y nodejsAls nächstes kannst du das Node.js Programm "Dasher" herunterladen und installieren. Navigiere mit cd ~/ in dein Home-Verzeichnis und kopiere Dasher von Github. git clone https://github.com/maddox/dasher.git Navigiere in das Dasher Verzeichnis cd dasher Jetzt müssen noch die von Dasher benötigten Programme/Dependencies installiert werden. npm installDasher benötigt die MAC Address von deinem Dash Button. Diese kannst du einfach herausfinden. Log dich in dein Router ein und schau unter verbundene Geräte. Du kannst auch das mitgelieferte Programm "find_button" verwenden. script/find_button Drück nach dem Start von "find_button" den Dash Button. Es sollte dir die MAC-Adresse angezeigt werden. Kopiere dir die MAC-Adresse und beende das Programm mit ctrl+c am Mac, oder strg+c bei Windows.Jetzt musst du nur noch die URL in der Dasher config/config.json Datei nach deinen Wünschen anpassen. nano config/config.json{"buttons":[ { "name": "Dash1", "address": "ac:61:b3:e1:fa:fe", "url": "http://127.0.0.1:8083/fhem?cmd=set%20DashButton1%20toggle", "method": "POST", "json": true, "body": {"value1": "any value", "value2": "another value"} } ]} Die IP 127.0.0.1 zeigt immer auf den Lokalen Rechner (also ihn selbst). Alternativ kannst du auch http://localhost:8083/fhem?cmd=set%20DashButton1%20toggle schreiben.Starte Dasher und drück den Knopf um zu testen ob alles funktioniert. Wenn alles funktioniert, sollte im Terminal „Dash1 pressed“ stehen. Dasher und dein Dash Button funktionieren. Jetzt kannst du FHEM konfigurieren. Mit ctrl+c kannst du das Programm beenden. sudo npm run startFHEM für den Dash Button konfigurieren Öffne die FHEM Konfigurationsdatei fhem.cfg und füge folgenden Code hinein. Definiere in FHEM einen Dummy für den Dash Button. Hier eine gute Einsteigerhilfe.define DashButton1 dummy attr DashButton1 webCmd toggleErstelle ein notify der dein FHEM Gerät ein/aus schaltet. Ersetze DeinFhemGeraet durch den Namen deines FHEM Gerätes. Speicher die cfg Datei. Falls du Dasher geschlossen hast, starte es mit sudo npm run start und drück den Dash Button.define n_DashButton1 notify DashButton1.* IF ([DeinFhemGeraet] eq "on") (set DeinFhemGeraet off) ELSE (set DeinFhemGeraet on) Erklärung: Der Dummy DashButton1 wird define n_DashButton1[Name des Notify] notify[der Befehl] DashButton1.*[wenn eine Änderung des Dummy Reading, dann] IF ([DeinFhemGeraet] eq "on") [überprüfe ob Reading von DeinFhemGeraet gleich on ist, dann] (set DeinFhemGeraet off) [setze DeinFhemGeraet Reading auf off] ELSE (set DeinFhemGeraet on) [andernfalls setze DeinFhemGeraet Reading auf on] Um den Dash Button als Ausschalter für mehrere FHEM Geräte zu konfigurieren, verwende diese Konfiguration. Ersetze wieder DeinFhemGeraet1 und DeinFhemGeraet1 mit dem FHEM Gerätenamen. Du kannst so viele Geräte hintereinander schreiben. Sie müssen nur immer mit ;; getrennt werden.define n_DashButton1 notify DashButton1.* set DeinFhemGeraet1 off;; set DeinFhemGeraet1 offDasher Autostart einrichten Nach jedem Neustart musst du das Dasher Programm von Hand starten. Richte ein Init Script für Dasher ein, damit Dasher als Service im Hintergrund läuft und bei einem Neustart gestartet wird. Anleitung Hier sieht man ungefähr wie die Reaktionszeit ist. Auf blog.moneybag.de gibt es eine andere Variante die nicht mit dem ARP Request funktioniert, sondern mit LAN-PING.

IFTTT Aktionen mit Amazon Dash Button auslösen - raspberry pi linux
  • 04 Sep, 2016
  • 4 Min. Lesezeit

IFTTT Aktionen mit Amazon Dash Button auslösen - raspberry pi linux

Amazon hat letzte Woche endlich den Amazon Dash Button in Deutschland released. Was ist der Dash Button? Ein kleiner Knopf (ca. 6cm) der mit deinem Wlan verbunden wird. Per Knopfdruck kannst du dann ein bestimmtes Produkt über Amazon bestellen. Das hört sich erstmal nicht sehr spannend bzw. nützlich an. Wie wäre es, wenn du mit dem Knopf eine beliebige IFTTT Aktion triggern kannst. Wer IFTTT nicht kennt. Dort kannst du ein Auslöser(trigger) und eine Aufgabe festlegen, die dann ausgeführt werden soll. Ein Beispiel wäre, speichere alle Facebook-Bilder auf denen du getagt wurdest in deiner Dropbox. Update: 04.11.2016 Ifttt hat seinen Service komplett umgestellt. Recipe heißen jetzt Applets und Benutzer können zur Zeit keine eigenen erstellen. Was sehr sehr schade ist. :( Falls es wieder möglich ist eigene Maker Recipe/Applets zu erstellen, werde ich die Anleitung aktualisieren. In diesem Beitrag zeige ich dir, wie du den Dash Button mit deinem Wifi einrichtest ohne das ein Produkt bestellt wird und Installieren das Programm Dasher, das dann eine IFTTT Aktion triggert. Die Anleitung funktioniert mit einem Raspberry Pi, oder auch einem Debian/Ubuntu Linux Rechner. Wichtig ist noch, dass es bis jetzt zwei verschiedene Modelle des Amazon Dash Button gibt (Modelnr. neu JK29LP, alt JK76PL). Diese Anleitung funktioniert nur mit dem neuen Model. Wenn ihr jetzt ein Dash Button bei Amazon bestellt ist es die neue Version. Der Dash Button muss mit deinem Wifi verbunden werden. Dazu benötigst du ein Smartphone mit Bluetooth. Schalte Bluetooth ein und öffne die normale Amazon App. Hier ein kurzes Video von diesem Ablauf. Wichtig ist am Ende kein Produkt auszuwählen, da du sonst mit jedem Knopfdruck das Produkt bestellst.Jetzt kommen wir zum Teil der im Terminal ausgeführt wird. Dazu musst du eine SSH Verbindung zum Raspberry Pi/Linux Rechner herstellen.Als erstes werden die Paketlisten neu eingelesen und installieren die benötigten Programme git & libpcap-dev. sudo apt-get update && sudo apt-get install git libpcap-devDu benötigst des weiteren die aktuelle Version von Node.js (v6.5.0). Ausführliche Anleitung Node.js Quelle zu deinen Paketlisten hinzufügen. curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - Jetzt kannst du Node.js installieren. sudo apt-get install -y nodejsAls nächstes kannst du das Node.js Programm "Dasher" herunterladen und installieren. Navigiere mit cd ~/ in dein Home-Verzeichnis und lade/clone Dasher von Github. git clone https://github.com/maddox/dasher.git Navigiere in das Dasher Verzeichnis cd dasher Jetzt müssen noch die von Dasher benötigten Programme/Dependencies installiert werden. npm installDasher benötigt die MAC Address von deinem Dash Button. Diese kannst du einfach herausfinden. Log dich in dein Router ein und schau unter verbundene Geräte. Du kannst auch das mitgelieferte Programm "find_button" verwenden. script/find_button Drück nach dem Start von "find_button" den Dash Button. Es sollte dir die MAC-Adresse angezeigt werden. Kopiere dir die MAC-Adresse und beende das Programm mit ctrl+c am Mac, oder strg+c bei Windows.Jetzt muss du noch Dasher konfigurieren. Erstelle eine config.json Datei im Ordner config. nano config/config.json Kopiere folgenden Code hinein und ersetze die MAC-Adresse und dein IFTTT Maker Chanel Key.{"buttons":[ { "name": "Dash1", "address": "MAC-Adresse-Deines-Dash-Button", "url": "https://maker.ifttt.com/trigger/dashbutton/with/key/Dein-Ifttt-Maker-Key", "method": "POST", "json": true, "body": {"value1": "any value", "value2": "another value"} } ]}Erstelle eine IFTTT Recipe mit IFTTT Maker Chanel als Trigger. Die Aktion kannst du frei wählen. Ich verwende im Beispiel Pushbullet als Aktion. Du musst darauf achten, dass bei Schritt 3 als "Event Name" dashbutton eingetragen wird. Das hast du mit der erstellten config Datei festgelegt "url": "https://maker.ifttt.com/trigger/dashbutton/with/key/dhROi2qDmIo693c$. Wenn du weitere Dash Buttons mit IFTTT verbinden willst, müssen sich die url's unterscheiden (dashbutton1, dashbutton2, …).Starte Dasher und drück den Knopf um zu testen ob alles funktioniert. Wenn alles funktioniert, sollte im Terminal "Dash1 pressed" stehen und deine zuvor erstellte IFTTT Aktion ausgeführt werden. In meinem Fall eine Pushnachricht auf mein iPhone über Pushbullet. sudo npm run start Mit ctrl+c am Mac, oder strg+c bei Windows kannst du das Programm beenden. Wenn man den Terminal schließt, wird auch Dasher beendet. Im nächsten Artikel werde ich beschreiben, wie das Dasher Programm beim Start mit ausgeführt wird und so immer im Hintergrund mit läuft (autostart Node.js Script). Ich bin gespannt welche Aufgaben sich damit umsetzen lassen. Schreibt euer IFTTT Recipe in die Kommentare.