Die Service-Frühstücksklingel

Wie du einen Service-Knopf baust, der für dich nach Service klingelt

Her mit dem schönen Leben! Der Zimmerservice im Hotel gilt vielen als Luxus. Ähnlich der Service-Knopf im Flieger. Stell dir vor, du hättest so einen Knopf. Für dein Kind, das einen Notrufknopf zu Hause hat. Oder neben deinem Bett ist ein Knopf, der in der Pizzeria deine Lieblingspizza ordert. Selbst  wenn die Pizzeria keine Online-Bestellfunktion hat. Oder der Knopf erinnert deine Partnerin per automatischem Anruf daran, von der Party nach Hause zu kommen. All das ermöglicht der FEUERKNOPF. Wir programmieren einen M5-Stack-Fire so, dass er einen Anruf auslöst. Der Minicomputer Fire soll in diesem Beispiel einen Anruf bei dir tätigen, wenn du deine Partnerin oder dein Partner auf einen Knopf drückt und nach Frühstück verlangt. Er nutzt dafür zwei Dienste: IFTTT, das Postamt für das Internet der Dinge. Und den Dienst Woopla, ein Telefon-Anbieter aus Duisburg.

Die Bauteile

SCHRITT 1: Ab ins Netz

Der Service Knopf basiert auf dem M5 FIRE, einem kleinen Computer. Das Schwierigste ist es, den Mini-Computer in dein WLAN zu bringen. Denn er hat keine Tastatur. Das Verfahren ist wie bei einer vernetzten Smarthome-Steckdose oder einem Staubsaugerroboter: Man wählt sich ins interne WLAN des FIRE ein, um ihm die Zugangsdaten zum eigenen Haus-WLAN mitzuteilen. (Ausführlich gibts das hier erklärt). Dann lässt er sich bequem kabellos programmieren. Und kann später übers Internet einen Anruf tätigen.

Die ersten Label für den Feuerknopf werden in der Software UI_Flow angelegt
Die ersten Label für den Feuerknopf werden in der Software UI_Flow angelegt

SCHRITT 2: Der erste Teil vom Feuerknopf-Code

Programmierung des FIRE erfolgt elegant über das Web-Interface UI-Flow (flow.m5stack.com). Hier trägst du nur die Buchstaben-Zahlen-Kombination (den sogenannten API-Key) ein, den der FIRE anzeigt. Ausführlicher habe ich UI-Flow in dieser Anleitung beschrieben. Diesmal soll das Programm nur ein Ereignis ins Netz senden. 

Ziehe im UI-Bereich einen Titel auf das Display und nenne deine App “Feuerknopf”. Ziehe ein Label auf den Bildschirm. Durch einen Klick kannst du das Label bearbeiten. Gib als Text zum Beispiel ein “Press button for breakfast”. Ziehe einen Kreis aufs Display und platziere ihn über dem linken Knopf. Er soll markieren, welcher Knopf gedrückt werden kann. Speichere das Programm (im Burger-Menü rechts oben –> Save). 

SCHRITT 3: Ein Postfach anlegen

Für unseren Service brauchen wir einen Helfer, der unseren vernetzten Knopf mit dem Woopla-Anrufservice verbindet. Dieser Helfer ist der kostenlose Dienst IFTTT.com. IFTTT verbindet die vernetzte Welt miteinander. Hier legen wir ein Applet an, das für uns als Telefonist arbeitet. Es lauscht rund um die Uhr darauf, ob wir auf den Knopf drücken, und löst dann einen Anruf aus. Und sei es Sonntag morgens.

Der Aufruf eines Telefondienstes mittels IFTTT
Der Aufruf eines Telefondienstes mittels Internetpostamt IFTTT

SCHRITT 4: Einen Telefonisten bauen

Jetzt baust du den Telefonisten. Du klickst in IFTTT auf dein Profilbild und wählst “Create”. Als THIS wählst du “Webhook”. Als Ereignis gibst du “knopfdruck” an. Im nächsten Schritt wählst du als THAT “Whoopla”. Das ist der Dienst, der den Anruf durchführen soll. Er soll dich anrufen. Wählt den Service “Call me and play text”. Was den Spielspaß einschränkt: Jeder Anruf kostet ein paar Cent. Damit der Telefonist funktioniert, musst du bei Whoopla etwa 5€ aufladen. So ist das mit dem Luxus, er kostet!

SCHRITT 5:  Ran an den Code

Ziehe im Befehlsbaum in der Mitte aus Events einen Loop-Block und docke ihn an den gelben Setup-Block. Ziehe eine “Button A was pressed”-Klammer neben das Hauptprogramm. Sie sorgt dafür, dass der linke silberne Button des FIRE zum Feuerknopf wird.  

Wie man Variablen in der Oberfläche UI-Flow anlegt
Wie man Variablen in der Oberfläche UI-Flow anlegt

SCHRITT 6: Die Bestellung definieren 

Lege eine Variable an, die Anruftext heißt. Setze ihren Inhalt als Text “Bitte Frühstück bringen!” Dieser Text soll der Angerufenen später am Telefon vorgelesen werden. Speichere das Programm (im Burger-Menü rechts oben –> Save). 

Der Adress-Generator für Webadressen in IFTTT
Die Oberfläche von IFTTT, auf der die Adressen generiert werden

SCHRITT 7: Die Adresse herausfinden

Der Knopf wird gedrückt. Wir müssen fix die Bestellung an unseren Telefonisten schicken! Nur wie erreichst du ihn? Dafür musst du kurz zum Detektiv werden. Denn seine Adresse ist gut versteckt. Die verrät uns IFTTT in einer Unterseite einer Unterseite. Klicke bei IFTTT in den Webhook-Settings auf “Documentation”. Dann stößt du auf das praktische Feature, mit dem du die Empfängeradresse generieren kannst. Hier kannst du als {event} “knopfdruck” eingeben. Das ist die Adresse, die unseren Knopfdruck empfangen soll! Kopiere die komplette Adresse in die Zwischenablage, du brauchst sie im nächsten Schritt in UI-Flow.

Wie man in UI-Flow einen HTTP-Request zu IFTTT schickt
Wie man in UI-Flow einen HTTP-Request zu IFTTT schickt

SCHRITT 8: Die Bestellung zu IFTTT schicken

Wir senden unsere Bestellung als POST-Request ins Internet. Das heißt, die gesamte Anfrage ist eine Zeile. Dafür brauchst du den Block “http-Request” in UI-Flow (Advanced –> http). Diesen ziehst du in die gelbe Klammer “Button 'A' pressed”. Immer, wenn der Feuerknopf gedrückt wird, soll der FIRE ins Netz feuern und eine Frühstücksbestellung auslösen. Als "Method" wählst du ‘POST’. Ins Feld URL kopierst du die Adresse aus Schritt 7. Jetzt musst du dem Aufruf nur noch den Inhalt mitgeben. Durch einen Klick auf das Plus-Zeichen bei “Create Map” erscheint ein neuer “Key-Block”. Das ist der Container für unsere Sprachnachricht. In die erste Lücke kommt der Name des Keys. Der ist strikt festgelegt. Ziehe ein Textfeld mit dem Begriff “value1” hinein. Diesen Begriff solltest du bitte nicht ändern. Als Fracht kommt ins zweite Lückenfeld die Variable “anruftext”. Voìla. Dein Butler-Service für das Internet der Dinge ist fertig!

SCHRITT 9: Testen

Der größte Spaß an diesem Projekt ist der Test. Hoffentlich ist dein Kühlschrank gut gefüllt. Drück den FIRE jemandem in die Hand, der gerne Frühstück bekommen würde. Begib dich in deine Küche und warte auf den Anruf. Ich bin sicher, du wirst noch viele tolle Ideen für den Serviceknopf haben: Einen Zeitungsknopf? Oder einen für einen Dankesanruf?

Flatrate ab 8 € RiffReporter unterstützen
Jakob Vicaris Journalismus der Dinge