Mächtige Dienste sinnvoll nutzen

IFTTT – das Schweizer Taschenmesser der Cloud

IFTTT („If This Then That“) verbindet verschiedene Dienste, Geräte und Programme über einfache Wenn-dann-Regeln:

  • Beispiel: Wenn eine E-Mail eintrifft (Trigger) → Wohnzimmerlicht blinkt grün (Action).
  • So lassen sich komplexe Abläufe ohne Programmierkenntnisse automatisieren

Dieses Tutorial entspricht einer veralteten Version der Cloud-Anwendung IFTTT. Leider bietet IFTTT aktuell keine Alexa-Unterstützung mehr und auch die Anzahl der kostenlosen Regeln hat sich reduziert, so dass das unten gezeigte Beispiel nicht mehr funktioniert. Es dient nur noch der Dokumentation (unter anderem der Cocktailmaschine s. u.) und als Inspiration für neue Ideen.

Cocktailmaschine aus dem Makerspace

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an Youtube/Google übermittelt. Weitere Informationen dazu finden Sie unter Google Privacy.

Selbst machen

Teil 1: Umsetzung MQTT

Mit Hilfe des Cloud-Dienstes Adafruit IO lässt sich MQTT (Turorial) einfach nutzen, um z. B. die Neopixel-Farbe am Octopus per Nachricht aus der Cloud zu steuern. Auch ohne Sprachassistent wie Alexa ist das Projekt sinnvoll einsetzbar, zum Beispiel, um per IFTTT Voice Over IP Calls auf das eigene Telefon zu initiieren.

Schritte zur Umsetzung:

  1. Registrierung bei Adafruit IO
    Ein kostenloses Benutzerkonto wird benötigt: https://io.adafruit.com/. Beispiel-Username im Tutorial: „IoTWerkstatt“ (individuell anpassen)
  2. MQTT-Topic anlegen
    Nach dem Login eine Gruppe (z. B. „Octopus“) erstellen und darin einen Feed (z. B. „neopixel“) anlegen.
  3. Broker-Zugang in Ardublock einrichten
    In Ardublock den IoT-Superblock aus dem Baukasten „MQTT-Protokoll“ auswählen. Dort den persönlichen Adafruit-Username und den AIO-Key (API-Schlüssel) eintragen – diesen kopiert man aus dem Adafruit-Menü.
  4. MQTT-Feed abonnieren (Subscribe)
    Der Octopus muss als Subscriber den Feed überwachen. Die genaue Adresse folgt dem Schema: Username/feeds/Gruppe.Feedname. Beispiel: IoTWerkstatt/feeds/octopus.neopixel. Die Information ist über „Feed Info“ im Adafruit-Interface abrufbar.
  5. Aktion beim Empfang einer Nachricht
    Im Programm definieren, wie auf empfangene Nachrichten reagiert wird. Beispiel: Wenn „rot“ empfangen wird, schaltet der rechte Neopixel auf Rot.
  6. Test der MQTT-Kommunikation
    Auf der Adafruit-Webseite beim Feed auf „+ Add Data“ klicken und z. B. „rot“ eingeben. Wenn alles korrekt eingerichtet ist, reagiert der Octopus mit Farbwechsel.
Anmeldung Adafruit
Nach Anmeldung bei io.adafruit.com legen wir eine neue Gruppe und einen Feed für die Neopixel-Informationen an. Feednamen mit kleinen Buchstaben wählen. Die Gruppe hilft uns später Übersicht zu behalten.
AIO-Key
Nachdem wir den Kanal beim Broker konfiguriert haben, können wir auch unseren Octopus beim Broker anmelden. Username entspricht dem Anmeldenamen bei Adafruit. Das Passwort ist der AIO-Key von der Webseite (Cut&Paste).
Ardublock Subscribe
Da wir auf Änderungen im neopixel Feed reagieren möchten, nutzen wir MQTT-Subscribe zur Anmeldung beim Broker. Die Bezeichnung für das MQTT-Topic ist etwas versteckt in der Menüführung der Webseite zu finden.
Ardublock-Callback
Treffen neue Informationen vom Broker ein, so werten wir diese aus (Payload) und schalten die gewünschte Farbe beim Neopixel.
Test der MQTT-Verbindung
Die Funktion unserer Kommunikationsverbindung lässt sich durch Eingabe einer Farbinformation testen. Dazu auf der Webseite den entsprechenden neopixel-Feed anwählen und Daten eingeben. Anschließend sollte der Octopus reagieren. Gelingt die Anmeldung beim Broker nicht, finden wir im SerialMonitor der Arduino-IDE entsprechende Fehlermeldungen.

Teil 2: Umsetzung IFTTT

Mit dem Dienst IFTTT lässt sich eine Sprachsteuerung mit Alexa einfach umsetzen, um Neopixel-Farben über MQTT zu ändern. Dafür sind nur wenige Schritte nötig:

  1. Registrierung bei IFTTT
    Kostenlos unter ifttt.com registrieren.

  2. Trigger mit Alexa erstellen
    Im Bereich „My Applets“ eine neue „Wenn … dann …“-Regel anlegen. Unter „+this“ den Dienst Alexa auswählen, mit dem Amazon-Konto verbinden und z. B. den Sprachbefehl „Octopus rot“ festlegen.

  3. Action mit Adafruit festlegen
    Unter „+that“ den Dienst Adafruit auswählen, Konto verknüpfen und die Nachricht „rot“ an den entsprechenden Feed senden.

  4. Weitere Farben ergänzen
    Für jede gewünschte Farbe wird eine eigene Regel erstellt, z. B. „Octopus blau“, „Octopus grün“ usw.

  5. Echtzeittest durchführen
    Bei Sprachbefehl wie „Alexa, trigger Octopus rot“ erscheint im MQTT-Feed die Nachricht „rot“, und der Neopixel leuchtet entsprechend.

IFTTT-App: Trigger
Wenn Alexa einen bestimmten Befehl hört, dann wollen wir reagieren ...
IFTTT-App: Action
.. und die entsprechende Farbinformation an den Broker senden.

Man kann einen zusätzlichen MQTT-Feed wie „temperatur“ anlegen und damit regelmäßig Messwerte senden. Über IFTTT lassen sich einfache Regeln erstellen, z. B. ein Anruf bei Frostgefahr. Dafür braucht man nur die IFTTT-App auf dem Handy.

Auch ohne MQTT-Broker kann der Octopus direkt mit IFTTT über „Webhooks“ kommunizieren. Ein Beispiel dafür ist die Zimmerpflanzenüberwachung aus dem Downloadbereich.

MQTT: Publish
Fügen wir unserem Programm einen weiteren MQTT-Kanal hinzu, so kann der Octopus auch zyklisch die aktuelle Temperatur an den Broker senden. Achtung: Zykluszeit im delay nicht zu lang, sonst dauert die Reaktion auf einen Sprachbefehl zu lange.
IFTTT-Hitzefrei App
Auch die IFTTT-Regeln lassen sich flexibel erweitern. Ist die Temperatur größer als ein Schwellwert, so ruft das System unser Smartphone an und meldet Hitzefrei.
Verteiltes System
Kommunikation im verteilten System

5. Was passiert in echt?

  • Alexa hört Sprachbefehl: „Alexa trigger Octopus rot“
  • IFTTT erkennt diesen Trigger und sendet „rot“ an den MQTT-Feed
  • Octopus bekommt die Nachricht als Subscriber
  • LED am Octopus wird sofort rot
  • System funktioniert auch ohne Alexa: direkt mit Feed-Daten steuerbar
  • Mit weiteren Regeln kann z. B. eine Kaffeemaschine, Lampe oder Heizung gesteuert werden
back-to-top nach oben