22.12.2012

Home Automation mit dem Raspberry Pi 4: DynDNS, Siri & mehr

Inhalt
1. Übersicht
2. Hardware - Interface vom Raspberry Pi zur Funksteckdose
3. Software auf dem Raspberry Pi Ansteuerung und Webserver
4. DynDNS, Siri & mehr (dieser Teil)
5. Schalten mit  Google Calendar und IFTTT  
6. Lampe bei Sonnenaufgang einschalten
7. Raspberry Pi - Home Automation:  per Telefon schalten mit Tropo


Was bisher geschah

In den Teilen 1-3 wurde die Hardware und die Sofware bis zum Webserver beschrieben. Damit können im lokalen Netz per Aufruf einer URL Funksteckdosen ein- und ausgeschaltet werden.

Damit Internetdienste die Steckdosen schalten können, muß es zusätzlich eine feste URL dafür geben - und der Raspberry Pi muß vom Internet aus erreichbar sein.

DynDNS

Erster Teil der URL ist ein fester Name. Typischerweise wird eine DSL-Anschluss einmal am Tag kurz unterbrochen. Nach dem Reconnect wird eine neue IP-Adresse vergeben. Damit diese dynamische IP-Adresse immer denselben Namen bekommt, benötigt man einen Account bei einem Dyn-DNS-Provider, der dem festen Namen die wechselnde Adresse zuordnet. Es gibt einige Provider, bei denen man eine kostenlose Adresse der Form

MeineTolleSubdomain.dyndnsprovider.org

bekommen kann. Eine Liste von Providern gibt es beispielsweise hier: https://help.ubuntu.com/community/DynamicDNS
Bei einem dieser Provider besorgt man sich einen Account.

Auf dem Raspberry Pi muß ein Prozess laufen, der die lokale Adresse mit dem Dyn-DNS-Anbieter abgleicht. Recht schmerzlos ist "ddclient", der mit

sudo aptitude install ddclient

installiert wird und abschließend nach Name und Passwort des vorher besorgten Accounts fragt.

Portfreigabe

Nun haben wir zwar einen festen Namen, aber der Raspberry Pi ist immer noch nicht vom Internet erreichbar, da der Router die Rechner im lokalen Netz sperrt. Sie müssen freigegeben werden. Bei einer FritzBox richtet man das z.B. so ein:


Der Raspberry Pi soll vom Internet auf Port 1234 erreichbar sein, der auf seine Adresse im lokalen Netz (hier 192.168.178.42) an Port 8080 (dort läuft der Webserver aus Teil 3) weitergereicht wird.

Zwischenstand

Zusammen mit dem Dyn-DNS-Namen ergibt sich damit folgende Basis-URL:

http://MeineTolleSubdomain.dyndnsprovider.org:1234/

Auf die der Raspberry Pi im Internet hört. Steckdose A schaltet man damit z.B. mit

http://MeineTolleSubdomain.dyndnsprovider.org:1234/switch/A/ON

http://MeineTolleSubdomain.dyndnsprovider.org:1234/switch/A/OFF


ein bzw aus. Und zwar geht das dann weltweit übers ganze Internet!

WICHTIG:

Da der Raspberry Pi vom ganzen Internet erreichbar ist, kann wirklich jeder, der die URL kennt, die Steckdose ein- und ausschalten! Deshalb sollte man nicht unbedingt den oben genannten Port benutzen und den Pfad auch ändern.

Und es ist auch grob fahrlässig, Sachen übers Internet zu schalten, mit denen man Schaden anrichten kann. Beleuchtung ist OK, aber wer eine Herdplatte damit schalten will, der hat ein Problem.

Wer mehr Sicherheit will, kann dem Webserver aus Teil 3 eine Authentisierung vorschalten, damit nur bestimmte Benutzer mit Ihrem Passwort Steckdosen schalten dürfen. Das ist aber nicht Teil dieser Serie.

User Interface

Um eine Steckdose ein- bzw auszuschalten müssen wir nur noch eine URL aufrufen. Die ganze Komplexität, die dahintersteckt, ist durch die einfache Hardware und Software wegabstrahiert.

Man könnte jetzt ein User-Interface damit bauen, aber auch das haben andere Dienste schon für uns besser erledigt. Wir müssen diese Dienste nur dazu bringen, URLs aufzurufen. 

Siri

Siri. Dein Wunsch ist ihm Befehl. So  wirbt Apple für die Spracherkennung auf dem iPhone. Tatsächlich ist es sehr einfach, per Siri eine URL aufzurufen und damit eine Steckdose zu schalten:

Wir benötigen dazu nur einen Kontakt per Ein- bzw Ausschaltbefehl. Bei mir ist die Heizungspumpe an eine Funksteckdose angeschlossen. Die soll per Sprachbefehl geschaltet werden, deshalb heissen die Kontakte "Heizung An" bzw "Heizung Aus".

 Jeder Kontakt enthält nur das "Homepage"-Feld mit der Schalt-URL, also sowas:


Mit einem langen Druck auf die Home-Taste wird Siri auf dem iPhone aktiv. Wenn ich dann "Heizung an" spreche, wird der Kontakt geöffnet - ein Touch zur Bestätigung öffnet die URL und die Heizungspumpe geht an.

Sehr cool!


Nächster Post: Schalten per Google Calendar und IFTTT



1. Übersicht
2. Hardware - Interface vom Raspberry Pi zur Funksteckdose
3. Software auf dem Raspberry Pi Ansteuerung und Webserver
4. DynDNS, Siri & mehr (dieser Teil)
5. Schalten mit  Google Calendar und IFTTT  
6. Lampe bei Sonnenaufgang einschalten
7. Raspberry Pi - Home Automation:  per Telefon schalten mit Tropo


Keine Kommentare:

Kommentar veröffentlichen