Abo
  • Services:
Anzeige
Mit dem Webservice If This Then That stellen sich Nutzer ihre Heimautomation zusammen.
Mit dem Webservice If This Then That stellen sich Nutzer ihre Heimautomation zusammen. (Bild: Michael Schill)

Github zum Klingeln bringen und selber basteln

Wer einen Kanal auf Servern nutzen möchte, die Zugänge voraussetzen wie etwa Github oder Gmail, muss sein Passwort nicht auf Ifttt.com hinterlegen. Vielmehr nutzt Ifttt.com dafür Oauth. Die Anwendungen müssen so vom authentifizierten Nutzer nochmals die Bestätigung abholen, dass Ifttt.com nun ausgewählte Aktionen unter deren User-ID ausführen darf. Nutzer können, wie in Oauth üblich, jederzeit ihre Erlaubnis zurückziehen. Das Passwort verlässt niemals den Originaldienst, während Ifttt.com mit begrenzt gültigen Tokens arbeitet.

Anzeige

Die Kommunikation zwischen der Smartphone-App und dem Belkin-Server ist nur mit einem SDK zu bewerkstelligen, aber in die Wemo-App ist bereits Ifttt.com integriert. Wer mit Ifttt.com den Wemo-Switch ein- und ausschalten möchte, abonniert dort einfach den Kanal "WeMo-Switch" und gibt Ifttt.com die PIN, die die Wemo-App auf Anfrage im Einstellungs-Menü generiert.

  • Der Wemo-Switch verspricht schnurloses Einschalten von Elektrogeräten mittels App. (Bild: Michael Schilli)
  • Die App bedient den Schalter übers WLAN oder Web. (Bild: Michael Schilli)
  • Der Service auf Ifttt.com löst Aktionen aus, wenn vordefinierte Ereignisse eintreten. (Bild: Michael Schilli)
  • Die Wemo-App generiert zuerst eine PIN … (Bild: Michael Schilli)
  •  … die Ifttt.com entgegennimmt und mit der es den Wemo-Switch fernsteuern kann. (Bild: Michael Schilli)
  • Jede neue Github-Issue schaltet den Wemo-Schalter ein. (Bild: Michael Schilli)
Die Wemo-App generiert zuerst eine PIN … (Bild: Michael Schilli)

Damit hat Ifttt.com die Schlüssel für die Fernsteuerung des Wemo-Schalters und in Verbindung mit einem auslösenden Eingabe-Kanal können damit heimische Elektrogeräte angeschaltet werden. Das funktioniert auch mit ungewöhnlichen Ereignissen als Auslöser, zum Beispiel bei steigenden Börsenkursen oder beim Eintreffen von Twitter-Nachrichten.

Alarm bei Github-Issue

Um etwa bei jedem neu erzeugten Github-Issue in einem vom Nutzer geführten Projekt eine Lampe oder eine Sirene anzuwerfen, kann auf Ifttt.com einfach ein neues Rezept erzeugt werden. Dazu abonnieren registrierte Anwender den Github-Kanal sowie den Wemo-Switch-Kanal auf der Webseite und verknüpfen dann den New-Issue-Bereich des Github-Kanals als Input mit dem Wemo-Switch-Kanal, also dem Output.

Da der Ifttt-Server laufend viele solche Rezepte prüfen muss, dauert es manchmal eine Weile nach dem Einleiten des Inputs, bis der Output aktiviert wird. Im Test betrug die Verzögerung zwischen dem Anlegen eines Github-Issues und dem Anschalten der Lampe etwa zwei Minuten. Aber dennoch ist es faszinierend, wie leicht diese Art der Verknüpfung von der Hand geht und wie viele Möglichkeiten der Home-Automatisierung sich damit öffnen.

Statt nun aber bloß mechanisch auf der Telefon-App herumzutippen, bietet es sich zum Basteln an, den Schalter per Skript auszulösen. Wer nimmt schon gerne die Hände von der Tastatur, nur um das Licht anzumachen? Aber im Ernst: Erst durch die Verknüpfung des Schalters mit Sensoren im Haus und etwas Logik entsteht ein Smarthome, das zum Beispiel nur dann das Licht im Carport anschaltet, wenn es dunkel ist und sich das Bluetooth-Signal des Smartphones der Besitzer nähert.

Kommando Ein/Aus

Der Wemo-Schalter betreibt einen kleinen Webserver im WLAN, den ein einfaches Perl-Skript durch HTTP-Abfragen zum Umlegen des mechanischen Schalters auffordern kann. Dazu nutzt das Skript das CPAN-Modul Power:: Outlet::WeMo, dessen Konstruktor die IP-Adresse des Schalters im WLAN entgegennimmt und anschließend mit den Methoden on() und off() als HTTP-Client mit dem lokalen Server kommuniziert.

  1. #!/usr/bin/perl -w
  2. use strict;
  3. use Power::Outlet::WeMo;
  4.  
  5. my $lamp = Power::Outlet::WeMo->new(
  6. host => "192.168.1.139" );
  7.  
  8. $lamp->on;
  9. sleep 1;
  10. $lamp->off;

Zudem unterstützt das Modul die Methoden switch() (zum Umschalten in den entgegengesetzten Zustand) sowie query() zur Abfrage des aktuellen Zustands. Das Ganze ließe sich auch recht einfach über einen simplen Webclient erledigen, aber das Modul abstrahiert die zugrundeliegenden URLs und ermöglicht so bequeme und saubere Programmierung.

Da der WLAN-Router dem Schalter die IP-Adresse dynamisch zuweist, bietet es sich an, jenem per Einstellung beizubringen, an anfragende Geräte mit der MAC-Adresse des Schalters immer die gleiche statische IP-Adresse zu vergeben. Weil der Schalter aber auch das UPnP-Protokoll implementiert, kann das nachfolgende Skript die IP-Adresse auch mit dem CPAN-Modul Net::UPnP::ControlPoint erfahren.

  1. #!/usr/local/bin/perl -w
  2. use strict;
  3. use Net::UPnP::ControlPoint;
  4.  
  5. my $upnp = Net::UPnP::ControlPoint->new();
  6.  
  7. my @devices = $upnp->search(
  8. st => 'upnp:rootdevice',
  9. mx => 3 );
  10.  
  11. foreach my $device (@devices) {
  12. print $device->getdevicetype(), "\n";
  13. print $device->getfriendlyname(), "\n";
  14. print $device->getssdp(), "\n";
  15. }

Als Search-Target spezifiziert das Skript mit dem Parameter st und dem Wert upnp:rootdevice, dass es an allen Rootdevices im Netz interessiert ist. Mit dem Parameter mx und dem Wert 3 gibt es die maximale Wartezeit von 3 Sekunden vor, bis sich ein Gerät meldet oder das Skript abbricht. In meinem Netz befand sich zum Testzeitpunkt nur ein UPnP-Gerät, und die Ausgabe zeigt unter anderem, dass die UPnP-Abfrage den Webserver des Schalters auf 192.168.1.139 gefunden hat.

Es ist davon auszugehen, dass das Schreiben kleinerer Skripte, wie hier in Perl oder auch in anderen Programmiersprachen, für etwas ausgefallenere Basteleien bei der Heimautomation noch lange Zeit notwendig sein wird. Zumindest theoretisch ergeben sich damit auch wesentlich mehr Möglichkeiten als bei dem Rückgriff auf Ifttt. Für all jene, die nicht selbst programmieren wollen, ist die Umsetzung eigener Ideen dank derartiger Dienste aber sehr einfach. Zudem sind die Möglichkeiten für eigene Projekte mit Ifttt schon jetzt so vielfältig, dass auch hartgesottene Programmierer Spaß am Zusammenklicken ihrer Anwendungen haben sollten. Wohl aber nur bis das nächste Github-Issue klingelt.

Dieser Artikel erschien in einer anderen Fassung zuerst in der Ausgabe 07/16 des Linux Magazins, das seit September 2014 wie Golem.de zum Verlag Computec Media gehört.

 Smarter Schalter: Wenn Github mit dem Lichtschalter klingelt

eye home zur Startseite
Anonymer Nutzer 13. Jun 2016

Naja, ich wollte ne App keinen Server ;-)

dantist 13. Jun 2016

Ich betreibe so eine Lösung zu Hause. Für Kleinkram ok, für ernsthafte Aufgabe ist es zu...

HexaJester 13. Jun 2016

Dafür nutze ich einen Raspberry Pi als Z-Wave Server. Funksteckdosen, die mit Z-Wave...

yeti 13. Jun 2016

Nein, so weit ist das noch nicht. Ich bevorzuge auch weiterhin C++ oder Lua. Und die...



Anzeige

Stellenmarkt
  1. Stadtwerke München GmbH, München
  2. Schwarz Dienstleistung KG, Neckarsulm
  3. Arnold & Richter Cine Technik GmbH & Co. Betriebs KG, München
  4. w11k GmbH, Esslingen am Neckar


Anzeige
Blu-ray-Angebote
  1. (u. a. Hacksaw Ridge, Deadpool, Blade Runner, Kingsman, Arrival)
  2. (u. a. Game of Thrones, Big Bang Theory, The Vampire Diaries, Supernatural)

Folgen Sie uns
       


  1. Alcatel 1X

    Android-Go-Smartphone mit 2:1-Display kommt für 100 Euro

  2. Apple

    Ladestation Airpower soll im März 2018 auf den Markt kommen

  3. Radeon Software Adrenalin 18.2.3

    AMD-Treiber macht Sea of Thieves schneller

  4. Lifebook U938

    Das fast perfekte Business-Ultrabook bekommt vier Kerne

  5. Wochenrückblick

    Früher war nicht alles besser

  6. Raumfahrt

    Falsch abgebogen wegen Eingabefehler

  7. Cloud

    AWS bringt den Appstore für Serverless-Software

  8. Free-to-Play-Strategie

    Total War Arena beginnt den Betabetrieb

  9. Funkchip

    US-Grenzbeamte können Pass-Signaturen nicht prüfen

  10. Telekom-Chef

    "Sorry! Da ist mir der Gaul durchgegangen"



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Homepod im Test: Smarter Lautsprecher für den Apple-affinen Popfan
Homepod im Test
Smarter Lautsprecher für den Apple-affinen Popfan
  1. Rückstände Homepod macht weiße Ringe auf Holzmöbeln
  2. Smarter Lautsprecher Homepod schwer reparierbar
  3. Smarter Lautsprecher Homepod-Reparaturen kosten fast so viel wie ein neues Gerät

Indiegames-Rundschau: Tiefseemonster, Cyberpunks und ein Kelte
Indiegames-Rundschau
Tiefseemonster, Cyberpunks und ein Kelte
  1. Indiegames-Rundschau Krawall mit Knetmännchen und ein Mann im Fass
  2. Games 2017 Die besten Indiespiele des Jahres

HP Omen X VR im Test: VR auf dem Rücken kann nur teils entzücken
HP Omen X VR im Test
VR auf dem Rücken kann nur teils entzücken
  1. 3D Rudder Blackhawk Mehr Frags mit Fußschlaufen
  2. Kreativ-Apps für VR-Headsets Austoben im VR-Atelier
  3. Apps und Games für VR-Headsets Der virtuelle Blade Runner und Sport mit Sparc

  1. Re: Habe noch nie verstanden...

    Niaxa | 19:07

  2. Re: Anschlüsse!

    gaelic | 19:03

  3. Re: Das sagt eine Schlange auch

    teenriot* | 19:01

  4. Re: An alle Schreihälse die meinen gucken reicht

    xMarwyc | 18:50

  5. Re: Vergleich zu Nvidia

    =PP= | 18:12


  1. 19:00

  2. 11:53

  3. 11:26

  4. 11:14

  5. 09:02

  6. 17:17

  7. 16:50

  8. 16:05


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel