Moin,
ich war auf der Suche nach einer Möglichkeit, um mit einfachen frei definierbaren Alexa-Kommandos ohne ioBroker-Cloud Aktionen in ioBroker auszulösen.
Konkret wollte ich den Zustand meiner Waschmaschine abfragen. Die Leistung wird mit einem WLAN Stecker ausgelesen und verwendet, um das Ende der Wäsche zu erkennen. Danach wird über den alexa2 Adapter mit dem Datenpunkt "echo-devices/<euerDeviceName>/Commands/speak" eine Meldung abgesetzt. Da ich die manchmal nicht mitbekomme, wollte ich Alexa zusätzlich jederzeit "Alexa, ist die Wäsche fertig?" fragen können. Das ganze sollte ohne Cloud-Adapter funktionieren.
Meine Lösung möchte ich euch kurz vorstellen:
-
Anlegen einer Routine für Alexa
Zuerst muss eine Routine in der Alexa-App angelegt werden. Als Bedingung tragt ihr den Text eures Kommandos ein. Als Aktion wählt ihr "Benutzerdefiniert" und tragt als Aktion "stopp" ein. Dies ist nötig, weil Alexa bei der Frage "ist die wäsche fertig" sonst irgendetwas sagen würde (z.B. "ich weiß nicht, wie ich dir helfen kann")
-
Anlegen eines Skripts, z.B. in Blockly
Nun erstellt ihr ein Skript. In diesem fügt ihr einen Trigger auf Änderungen des Datenpunkts "history/summary" hinzu. In summary steht die letzte erkannte Spracheingabe. Prüft im nächsten Schritt nun, ob summary="ist die wäsche fertig". Wenn ja, dann führt eure Aktion aus. Bei mir wird über "speak" eine Antwort ausgegeben (siehe Bild). Achtung: das Kommando muss komplett klein geschrieben werden!
Selbstverständlich kann das Sprachkommando und die Aktion beliebig angepasst werden.