Außerdem legen Sie nun die Intents an. Theoretisch könnten Sie dies von Hand tun, indem Sie sich durch die Dialoge klicken. Wesentlich schneller kommen Sie jedoch zum Ziel, indem Sie den Inhalt von Listing 5 über den JSON-Editor in das Interaction-Modell kopieren (Abbildung 10).
Listing 5
# intents.json
{
"languageModel": {
"invocationName": "haus",
"intents": [
{
"name": "AMAZON.CancelIntent",
"slots": [],
"samples": []
},
{
"name": "AMAZON.HelpIntent",
"slots": [],
"samples": []
},
{
"name": "AMAZON.StopIntent",
"slots": [],
"samples": []
},
{
"name": "FernseherIntent",
"slots": [
{
"name": "status",
"type": "GPIO"
}
],
"samples": [
"Fernseher {status}",
"tv {status}"
]
},
{
"name": "LichtIntent",
"slots": [
{
"name": "status",
"type": "GPIO"
}
],
"samples": [
"licht {status}"
]
},
{
"name": "SteckdoseIntent",
"slots": [
{
"name": "status",
"type": "GPIO"
}
],
"samples": [
"steckdose {status}"
]
}
],
"types": [
{
"name": "GPIO",
"values": [
{
"id": "",
"name": {
"value": "aus",
"synonyms": []
}
},
{
"id": "",
"name": {
"value": "an",
"synonyms": []
}
}
]
}
]
}
}
Dabei müssen Sie auf jeden Fall darauf achten, dass die Intents im Interaction-Modell dieselben Namen verwenden wie im Python-Programm, sonst klemmt es später bei der Ausführung des Skills. Zudem müssen Sie nach jeder Änderung am Interaction-Modell den Skill speichern und neu bauen (Build Model). Vergessen Sie das, bleibt es beim alten Modell.
Nun fehlt nur noch die Kommunikation zwischen dem Skill und dem Python-Programm. Klicken Sie dazu auf Endpoint und wählen Sie dort die Option HTTPS aus. In das Feld Default Region tragen Sie die gerade von Ngrok verwendete URL ein. In der Ausklappbox darunter aktivieren Sie zudem noch die Option My development endpoint is a subdomain of a domain that has a wildcard certificate from a certificate authority. (Abbildung 11). Mit einem Klick auf Save Endpoints im Kopf des Dialogs sichern Sie die Änderungen.
Nach dem Abschluss aller Konfigurationen gilt es, den Skill das erste Mal zu bauen. Der Schalter Build Model erscheint auf allen Seiten, auf denen man das Modell verändern kann. In unserem Beispiel klicken Sie erst auf Invocation und dann auf Build Model (Abbildung 12). Der Build benötigt je nach Komplexität des Skills und der Auslastung der AWS-Server ein wenig Zeit.
Für einen ersten Test wechseln Sie in den gleichnamigen Reiter des Skills. Über den Schieber unterhalb der Reiterleiste aktivieren Sie den Testmodus. Danach geben Sie in das Textfeld das Aktivierungswort Haus ein. Der Skill sollte Sie dann umgehend auf Hessisch begrüßen (Abbildung 13).
Danach lassen sich die angebundenen Geräte nach Belieben ein- und ausschalten. Die am GPIO des Raspberry Pi aufleuchtenden oder erlöschenden LEDs signalisieren, dass der Skill funktioniert. Genau so müsste auch die Steuerung über den Amazon Echo klappen: Das Sprachkommando “Starte Haus” lädt den Skill, anschließend schalten Sie beispielsweise mit dem Kommando “TV an” den Fernseher ein.
Fazit
Amazon Echo erweist sich als ein wirklich schönes Gerät, die Sprachsteuerung funktioniert überraschend gut. Durch die Möglichkeit, eigene Skills zu programmieren, bieten sich dem Technikfreund viele Optionen, um den Echo in eigene Smart-Home-Projekte zu integrieren.
Allerdings sollten Sie sich darüber im Klaren sein, dass die Infrastruktur zur Spracherkennung im Internet bei Amazon läuft. Das schreckt schon allein aufgrund der sich dadurch ergebenden Konsequenzen für die Privatsphäre viele Interessenten ab. Fällt das Netz einmal aus, verliert das Smart Home zudem seine Intelligenz. Für den Fall, dass eine der vielen Komponenten ausfällt, die hier zusammenwirken müssen, sollten Sie immer einen Plan B ausarbeiten.
Das muss Ihnen aber nicht den Spaß am Experimentieren verleiden: Funktioniert alles, wie es soll, macht das per Sprache gesteuerte Smart Home wirklich Spaß. Und haben Sie erst einmal die Funktionsweise der Skills verstanden, lassen sich die Mini-Programme schnell verändern oder neu erstellen.
Der Autor
Martin Mohr entwickelte schon in früher Jugend eine Vorliebe für alles, was blinkt. Nach einer Ausbildung zum Elektroniker und einem Informatikstudium programmierte er überwiegend Java-Applikationen. Mit dem RasPi erwachte die alte Liebe zur Elektronik wieder.
Infos
- Amazon Echo: https://www.amazon.de/dp/B01DFKBG54/
- Youtube-Video: https://youtu.be/-dtefCM7_Pg
- Ngrok: https://ngrok.com
- AWS-Webseite: https://aws.amazon.com/de/
- Liste der Alexa-Skills: https://developer.amazon.com/alexa/console/ask











