Angefangen hat alles mit einem WLAN-fähigen Storenschalter, und als später noch mit Amazon Echo Dot Alexa den Weg in mein Büro zuhause fand war die Sache klar: Ich will meine Storen im Büro mit Alexa steuern können. In der Schweiz sind Storen übrigens nichts anderes als Rolladen. Was mit der Suche nach neuen Smart Home Komponenten begonnen hat, endete im Programmieren von Alexa Skills. In diesem Blogeintrag will ich aufzeigen was eingesetzt werden kann, um Smart Home Geräte welche eine REST API Schnittstelle besitzen via Alexa Sprachkommando steuern zu können. Bei meinem Projekt habe ich nicht unmittelbar mit dem Programmieren vom Alexa Skill begonnen, sondern ich habe am Ende beim Storenschalter begonnen und mich nach vorne vorgearbeitet. Spassfaktor: hoch, Lernkurve: steil.
Heimautomation muss her
Auf der Suche nach neuen Komponenten für Heimautomation bin ich auf das Produkt zeptrionAIR der Schweizer Firma Feller gestossen. zeptrionAIR ist die Produktbezeichnung für wireless-fähige Schalter für die Steuerung von Licht und Storen. Mir gefällt an diesem Produkt, das die Produkte zwar mit einer App steuerbar sind, aber von Haus aus keinerlei Verbindung in irgendeine Cloud haben. Zudem können die Geräte via REST API angesteuert werden. Zuhause habe ich bereits Feller-Schalter und Steckdosen installiert, die WLAN-Module passen in die bestehenden Dosen. Die Module benötigen einen einen Pol- und einen Neutralleiter und werden hinter der Schalterabdeckung platziert. Die Schalterabdeckungen können mit beliebigen Funktionen und Szenarien bestückt werden.
Testaufbau
Mein Elektriker hat den Storenschalter im Büro mit einem zeptrionAIR Schalter ausgetauscht, den neuen Schalter habe ich mit folgenden Funktionen programmiert:
- Storen hoch/runter
- Szenario 1: Storen halb hoch
- Szenario 2: Storen ganz unten, Lamellen 1/3 offen
Die Einrichtung via App und die Anbindung ans WLAN ging problemlos, die von Feller mitgelieferte Anleitung ist gut aufgebaut und leicht verständlich. Via Online-Formular kann beim Feller Kundendienst die API-Dokumentation kostenlos bestellt werden. Darin werden alle Möglichkeiten aufgezeigt, mit REST Kommandi die Komponenten zu steuern.
REST API Beispiel: zeptrionAIR Storen schliessen mit curl:
curl -X POST -H "Content-Type: text/plain" --data "cmd=close" http://172.16.16.51/zrap/chctrl/ch1
Das Kommando beinhaltet nebst der IP-Adresse der zeptrionAIR Komponente den Kanal / Schalter welchen man ansteuern will und welche Funktion ausgeführt werden soll (cmd=close).
Via Amazon Cloud zurück nach Kestenholz / Jürasüdfuss / Schweiz
Das Alexa Sprachkommando wandert zuerst in die Amazon Cloud und wird auch dort verarbeitet. Mein Storenschalter ist aber nur lokal ansteuerbar. Das erfordert einen entsprechenden Aufbau. Für die Kommunikation mit der Cloud und meinem Zuhause habe ich diese Komponenten eingesetzt:
- Amazon Echo Dot: “Meine Alexa” zuhause im Büro (lokal)
- AWS Lambda: Nimmt das Sprachkommando von Echo Dot entgegen, prüft die Korrektheit (Cloud)
- AWS IoT: MQTT Broker (Cloud)
- NodeRed: IoT Baukasten, läuft auf einem lokalen Raspberry Pi3 (lokal)
- zeptrionAIR: Storenschalter (lokal)
Der Ablauf:
- Echo Dot nimmt den Sprachbefehl entgegen, beispielsweise “Storen Büro schliessen”
- AWS Lambda prüft den Sprachbefehl und schickt eine Message an AWS IoT (MQTT Broker)
- Node-Red auf den lokalen Raspberry PI liest regelmässig die Messages aus der AWS IoT Queue
- Die neuen Messages werden auf Textinhalt ausgewertet und das entsprechende Kommando an zeptrionAIR gesendet
Soweit die Ausgangslage. In einem zweiten Teil werde ich euch die Installation und Konfiguration von Node-Red und das Zusammenspiel mit Amazon AWS IoT erläutern.