Mächtige Dienste sinnvoll nutzen

a. 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.

2. Erklärvideo

Problemstellung

Wohin mit meinen Daten?

In verschiedenen Tutorials wie "Schulklima: Daten in der ThingSpeak-Cloud" , "Internet of Everything: Octopus trifft IFTT, MQTT und Alexa" oder "MitmachKlima: LoRaWAN"  haben wir bereits gelernt, dass unsere Octopus-Platine verschiedenste Daten mittels onboard- oder externen Sensoren erfassen und transportieren kann. Es wurden verschiedene Methoden zur Datenübetragung gezeigt und auch schon visualisiert. Was aber, wenn wir nun viele Daten von verschiedenen Sensoren bekommen, die alle überwacht, analysiert und visualisiert werden sollen? Wenn vielleicht noch weitere Sensoren dazu kommen sollen, oder weitere Nutzende? Oder wenn Daten anschließend noch weitergeleitet und -verarbeitet werden sollen?

Wie finden wir uns in dem Daten-Dschungel zurecht, welche Optionen gibt es, wie funktionieren sie und wieso es wichtig ist, Daten zu strukturieren und analysieren.

Was ist Thingsboard?

Thingsboard ist eine Open-Source-IoT-Plattform, die für fortgeschrittene Visualisierung, Alarmierungen und Automatisierungen entwickelt wurde.


Vorteile

  • Umfangreiche Dashboards: Thingsboard erlaubt interaktive Visualisierungen, bietet flexible Widgets
  • Regel Engines: Automatische Aktionen, wie Benachrichtigungen oder Geräte-Steuerung sind direkt in der Plattform integrierbar
  • Skalierbarkeit: Thingsboard unterstützt große Datenmengen und Geräte-Flotten druch MQTT, HTTP und auch OTA-Updates
  • Multi-Tenancy: Für größere Projekte oder Anwendungen können mehrere Benutzer und Rollen angelegt und verwaltet werden
  • Flexible Integration: Daten können vom Sensor direkt oder indirekt (bspw. erst an TheThingsNetwork und von dort aus) an Thingsboard gesendet werden und von Thingsboard aus an weitere Systeme weitergeleitet werden.

MQTT – das Protokoll der Profis

MQTT von Adafruit IO Broker nutzt das Publisher/Subscriber-Prinzip:

  • Der Broker verteilt neue Daten automatisch an abonnierte Geräte.
  • Beispiel: Der Octopus abonniert einen MQTT-Kanal – eine Nachricht vom Broker (z. B. von IFTTT gesendet) ändert die LED-Farbe des Octopus.
  • Vorteil: Geräte müssen sich nicht direkt kennen – alles läuft über den Broker.

3. Was brauchen wir? (Hardware)

Teil Anzahl Beschreibung
Octopus-Board oder Arduino 1 mit WLAN-Funktion und angeschlossenem Neopixel-LED
USB-Kabel 1 zum Anschluss an den PC
WLAN-Verbindung für die Verbindung zu Adafruit und IFTTT
Amazon Alexa Gerät (z. B. Echo Dot) 1 für Sprachsteuerung über IFTTT

4. Selbst machen

Teil 1: Umsetzung MQTT

Mit Hilfe des Cloud-Dienstes Adafruit IO lässt sich MQTT 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.

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