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.