Befehle von Homee an Alexa senden?

Es gibt mittlerweile tatsächlich eine Möglichkeit so etwas zu realisieren:

Es gibt den Alexa Skill „URL Routine Trigger“.
Dieser simuliert ein als Auslöser in Alexa- Routinen auswählbares Gerät (eine Türklingel). Man kann dem Trigger einen Namen geben, z.B. Homee und mit diesem Namen wird er in der Alexa App als Gerät gefunden.

Der Trigger selbst ist dann eine URL (https) mit einem für euer Konto generierten Token. Die kriegt man bei der Einrichtung des Skills bzw. der Trigger dann angezeigt.

Diese URL kann als Webhook in einem Homeegramm genutzt werden (mit „PUT“ als Methode und Content-Type „Application/x-www-Form-url…“).

Habe ich gerade mit einem Abus Z-Wave Bewegungsmelder eingerichtet:
Alexa gibt eine Benachrichtigung aus, wenn die Katze im verschlossenen Keller sitzt…

Vielleicht findet das ja noch jemand interessant!

4 „Gefällt mir“

Ändert sich bei dieser Methode der Token nicht in regelmäßigen Abständen?

Würde ich laut der Beschreibung nicht so interpretieren.

https://www.amazon.de/Virtual-Smart-Home-Routine-Trigger/dp/B08SHHS8JZ/ref=nodl_?dplnkId=796f7205-39a7-4c0a-a8c7-7572148f8056

Ich realisiere das über Voice Monkey. Funktioniert tadellos.

Die Ansagen durch Alexa kommen da auch sehr zeitnah.

Gerade die Aussage „Es ist noch ein Fenster offen“ sollte ja kommen, wenn man die Tür öffnet und nicht erst wenn man draußen ist :wink:

1 „Gefällt mir“

Das klingt ziemlich ähnlich.
Scheint es also doch schon öfter zu geben, wusste ich bislang tatsächlich nicht.

Gute Idee im Übrigen, sich von Alexa erinnern zu lassen das noch ein Fenster offen ist, wenn man das Haus verlässt… mal grübeln ob sich das bei mir auch umsetzen lässt. Hab nur leider ziemlich viele Fenster…

Ich mache das bei den Bädern, wo man auch bei kälteren Temperaturen aus bekannten Gründen mal ein Fenster länger öffnet. Der Heizplan schaltet zwar den HKT auf die Fenster-offen-Temperatur, aber ich lasse mir alle 10 min einen Push schicken, wenn es draußen unter 8°C hat und das Fenster noch offen ist. Die Ansage bei Aktivierung der EMA ist natürlich auch sehr sinnvoll.
Bei mir läuft das über iobroker mit Alexa-Adapter.

Zumindest bei den wichtigsten Fenstern macht das Sinn. Ich habe das bei einem Fenster immer erst gesehen, dass es offen stand, wenn ich bereits am Auto war. Und dann wieder ins Dachgeschoss um es zu schließen, hat mir nach dem 3. Mal gereicht :joy:

Ich nutze das z. B. auch als Erinnerung die Standheizung am Auto von oben aus der Wohnung einzuschalten wenn die Außentemperatur unter 5 Grad ist. Der prüft die Temperatur ca. 30 Minuten bevor ich losfahren und gibt dann die Info über Alexa aus.

Oder die devs bauen das script hier ein Lötzimmer: Amazon Alexa per Shell fernsteuern (Echo remote control)
Und parsen die Alexas als eigene Geräte. Dann könnte man alles steuern. Ausgabe, radio usw.

1 „Gefällt mir“

Das muss ich mir mal anschauen, klingt gut.

1 „Gefällt mir“

Stimmt - ist nicht weit weg vom web cube. Man braucht ja eigentlich nur die eine funktion, wo man ihr per text etwas befehlen kann - und den rest macht alexa selbst =)

Edit: @Micha wenn du magst, kann ich das skript oben auch kurz auseinander nehmen und die paar funktionen zusammenschreiben, die’s braucht.

Wenn du magst dann kannst du mir da gerne zuarbeiten. Ich muss mir erstmal die Anmeldung anschauen.

Prima - dann setze mich morgen abend dran und tacker die curls für die steuerung zusammen =)

Dann werde ich die mal auf nen esp zum laufen bringen und schauen was es bringt.

1 „Gefällt mir“

Der gute Mann hat unfassbar viel Arbeit in sein Skript gesteckt. Selten ein so gutes Skript gesehen.

Also, bei der Anmeldung ging user/passwort bei mir nicht. Ich musste auf die neue Token methode gehen → Lötzimmer: Alexa Remote Control Shell Script (da gibts linux u windows binaries)

Den Token dann in das Skript kopiert und noch jq im WSL nachinstalliert (sudo apt install jq). Danach noch einen kleinen curl wrapper geschrieben und den bei der SET_CURL variable eingetragen

DESKTOP:~/alexa$ cat curlwrapper.sh
#!/bin/sh
echo "$@" >> ./curls.txt
curl "$@"
cp ./tmp/.alexa.cmd ./.alexa.cmd

Das Ergebnis - er macht 2 curls bei dem textcommand:

./alexa_remote_control.sh -e textcommand:"lichterkette wohnzimmer einschalten" -d "Echo Dot Küche"
curl --compressed --http1.1 -s -b /home/asd/alexa/tmp/.alexa.cookie -A Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:1.0) bash-script/1.0 -H DNT: 1 -H Connection: keep-alive -L https://alexa.amazon.de/api/bootstrap?version=0
curl --compressed --http1.1 -s -b /home/asd/alexa/tmp/.alexa.cookie -A Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:1.0) bash-script/1.0 -H DNT: 1 -H Connection: keep-alive -L -H Content-Type: application/json; charset=UTF-8 -H Referer: https://alexa.amazon.de/spa/index.html -H Origin: https://alexa.amazon.de -H csrf: -1717812345 -X POST -d @/home/asd/alexa/tmp/.alexa.cmd https://alexa.amazon.de/api/behaviors/preview

Das Json das er hochpumpt, sieht geschmeidig aus:

{"behaviorId":"PREVIEW","sequenceJson":"{\"@type\":\"com.amazon.alexa.behaviors.model.Sequence\",\"startNode\":{\"@type\":\"com.amazon.alexa.behaviors.model.ParallelNode\",\"nodesToExecute\":[{\"@type\":\"com.amazon.alexa.behaviors.model.OpaquePayloadOperationNode\",\"type\":\"Alexa.TextCommand\",\"skillId\":\"amzn1.ask.1p.tellalexa\",\"operationPayload\":{\"deviceType\":\"SDFJDSNFJSDFJ\",\"deviceSerialNumber\":\"SJDHFJDSHFJSDHF\",\"customerId\":\"SDFJSDJFHSDJFH\",\"locale\":\"de-DE\",\"text\":\"lichterkette wohnzimmer ausschalten\"}}]}}","status":"ENABLED"}

Prinzipiell also machbar mit dem ESP. Allerdings müsste man das Token Generieren/Refresh → alexa-cookie/alexa-cookie.js at master · Apollon77/alexa-cookie · GitHub von JS auf ESP umschreiben. Da ich in der ESP Welt noch nicht ganz angekommen bin - und vermute das es da keinen JS interpreter für gibt - müsste ich genau wissen wie du die Befehle die es macht am besten brauchen/verarbeiten kannst. Sprich ob das wirklich die mühe Wert ist, oder man einfach einen Raspi mit dem Skript und einen kurzen PHP wrapper per webhook nutzt…

Übrigens kann man mit dem Textcommand auch problemlos textausgaben machen - aka ‚Mach eine Ankündigung an Echo Dot Küche: Die Wäsche ist fertig‘. Auch Lautstärke oder Radio oder was auch immer kann man so einstellen. Auslesen der aktuellen lautstärke oder was gespielt wird geht über weitere befehle in dem skript.

4 „Gefällt mir“

Wollt ihr für diese Diskussion nicht einen neuen Thread aufmachen? Das mit der Lösung über den ESP oder PI o.ä. hat nichts mehr mit dem ursprünglichen Feature Vorschlag zu tun.

1 „Gefällt mir“