Hi jonofe, ich würde auch wieder mitmachen. Smarthome Skill mit reverse proxy der ersten Stunde läuft ....
viele grüße
frank
Ankündigung
Einklappen
Keine Ankündigung bisher.
Alexa Custom Skill für EDOMI (LBS 19000646 und 19000647)
Einklappen
X
-
Super, das freut mich zu hören. Hast du schon den "alten" Skill laufen mit Reverse Proxy?Zitat von Teutone Beitrag anzeigen
Ich würde mich opfern jonofe ;-) Habe da Ambitionen da zu unterstützen beim testen!
Falls ja, dann kannst du schon mal einen neuen Smarthome Skill v3 anlegen. eigentlich alles so wie beim v2 Skill, nur, dass du natürlich jetzt eine weitere Lambda Function anlegen musst, welche grundsätzlich den gleichen Inhalt hat, nur die url in der Lambda Function muss später angepasst werden. Bei der Skill Erstellung musst du auf die neue Lambda Function verweisen.
In kurz: Bestehende Anleitung verwenden und die URL in der Lambda Function wie folgt ändern:
Danach benötigst du hoffentlich nur noch den neuen Skill und die neuen LBS. Sobald ich hier eine testbare Version habe, werde ich die einen DL-Link per PN senden.Code:url = 'https://<dein-reverse-proxydns-name>/alexa/edomi-smarthome-skill-PLv3.php'
- Likes 1
Einen Kommentar schreiben:
-
Ich würde mich opfern jonofe ;-) Habe da Ambitionen da zu unterstützen beim testen!Zitat von jonofe Beitrag anzeigen
Von meiner Seite nicht. Ich habe den Fokus weiterhin auf Alexa.
Bzgl Alexa gibts es allerdings schon signifikante Fortschritte für einen Smarthome Skill der den aktuellen Payload Type v3 unterstützt.
Power (On/Off), Prozent (%), Powerlevel (%), Brightness (%), Color, Color Temperature funktionieren bereits.
Falls jemand mit einem funktionierenden Smarthome Skill Payload v2 an einem Betatest teilnehmen will, einfach hier melden. Neueinsteiger sollten sich noch ein wenig gedulden, bis ein ersten Release fertig ist, welches dann auch eine entsprechende Dokumentation enthält.
Einen Kommentar schreiben:
-
Hallo,
ich habe gerade mit den Device ID's experimentiert und bin begeistert! Allerdings gibt es hier auch noch ein Problem. Bei 3 Geräten funktioniert das einwandfrei. Bei einem 4-ten Gerät ist die Device-ID deutlich länger (25 Zeichen länger), als bei den anderen 3. Hier funktioniert es leider nicht! Kann ich die Device ID einfach kürzen?
Danke im Voraus.
Edit: Also kürzen, wie ja zu erwarten war, funktioniert nicht.
Edit2: Sorry, ich habe nichts geändert, aber auf einmal geht es!Zuletzt geändert von Micro; 12.03.2018, 15:45.
Einen Kommentar schreiben:
-
Von meiner Seite nicht. Ich habe den Fokus weiterhin auf Alexa.Zitat von Schulle Beitrag anzeigenGibt es schon Neuigkeiten zum Thema Google Home?
Bzgl Alexa gibts es allerdings schon signifikante Fortschritte für einen Smarthome Skill der den aktuellen Payload Type v3 unterstützt.
Power (On/Off), Prozent (%), Powerlevel (%), Brightness (%), Color, Color Temperature funktionieren bereits.
Falls jemand mit einem funktionierenden Smarthome Skill Payload v2 an einem Betatest teilnehmen will, einfach hier melden. Neueinsteiger sollten sich noch ein wenig gedulden, bis ein ersten Release fertig ist, welches dann auch eine entsprechende Dokumentation enthält.
Einen Kommentar schreiben:
-
Hallo zusammen!
Gibt es schon Neuigkeiten zum Thema Google Home? Ich habe zwei davon geschenkt bekommen und möchte nicht so frech sein diese gegen Alexa zu tauschen.
Viele Grüße!
Einen Kommentar schreiben:
-
Danke, danke, danke!
Es lag wirklich an E4! Den Rest hatte ich so auch schon, nur eben immer mit irgendwas in E4! Vielen, vielen Dank!
Einen Kommentar schreiben:
-
Hallo, erstmal ein dickes Dankeschön an jonofe für die super Anleitung. Habe damit den Custom Skill und Smart Home Skill erfolgreich zum Laufen bekommen.
Bin echt begeistert wie gut es geklappt hat
Hier ein paar Kleinigkeiten / Feedback zur Anleitung wo evtl. etwas nachgebessert werden könnte. Ich beziehe mich dabei auf das PDF Dokument "Alexa Skill für EDOMI_V0-6.pdf"- Seite 8, Kapitel 7.2 "Installation SSL Zertifikat":
./letsencrypt-auto certonly --standalone --rsa-key-size 4096 -d <DYNDNS_NAME>
hat bei mir immer zum Fehler
Problem binding to port 80: Could not bind to IPv4 or IPv6.
geführt. Lösung: Zunächst nginx stoppen (sudo nginx -s stop). Außerdem (temporär) Port 80 von der FRITZ!Box auf den Raspery Pi weiterleiten. - Seite 40, Kapitel 12.5 "EDOMI für Smarthome Skill konfigurieren":
Das Smarthome Skillscript edomi-smarthome-skill.php muss mit chmod 755 auch ausführbar gemacht werden (wie zuvor edomi-custom-skill.php auf Seite 11) - Seite 41, Kapitel 12.5 "EDOMI für Smarthome Skill konfigurieren":
Ausgang A7 ist jetzt A8. Ggf die Beschreibung des Ausgangs "SH Event" in der Anleitung ergänzen. - Seite 8, Kapitel 7.3 "nginx SSL Konfiguration": Im Kapitel 6.3 wird beschrieben wie man Apache so einrichtet, dass nur Zugriff aus dem lokalen Netzwerk und von Amazon Alexa (54.240.197.0/24) möglich ist. Das geht bei nginx (Kapitel 7.3) bestimmt auch, wäre super wenn das noch ergänzt werden könnte.
Einen Kommentar schreiben:
- Seite 8, Kapitel 7.2 "Installation SSL Zertifikat":
-
Habe es jetzt gerade mal bei mir genau mit deiner Logik nachgebaut. Funktioniert. Ich denke es liegt wirklich an E4 und ggf. an der Groß/Kleinschreibung an E3.
Screenshot from 2018-03-09 14-09-56.png
Einen Kommentar schreiben:
-
Ändere mal E3 zu "temperatur status" und E4 leer lassen, denn Temperaturabfrage hat keinen Namen sondern nur einen Raum.
Die möglichen Abfragen findest du im utterances File. Für Temperaturstatus sind das:
Temperature_Status nach der Temperatur {Praeposition} {Temperature_Room}
Temperature_Status Wie ist die Temperatur {Praeposition} {Temperature_Room}
Temperature_Status Wie hoch ist die Temperatur {Praeposition} {Temperature_Room}
Deine Anfrage ist also korrekt und wird auch korrekt erkannt, denn Temperature_room ist "Wohnzimmer" und Praeposition ist "im".
Was mich trotzdem wundert, ist, dass du einen Fehler bekommst, da der LBS eigentlich als Antwort ein "Okay" an den Skill liefert.
Aber erstmal o.g. Änderungen machen und schauen, ob sich dann was ändert.
Einen Kommentar schreiben:
-
Hallo, ich habe jetzt natürlich noch etwas weiter experimentiert:
Temp3.png
Meine Frage ist: Alexa, starte Haus, Wie ist die Temperatur im Wohnzimmer?
Das steht dann im log, wobei ich die langen Id's und token gekürzt habe...PHP-Code:Received JSON Request from alexa@amazon
=======================================
{"version":"1.0","session":{"new":true,"sessionId":"amzn1.echo-api.session.9c2XXXXXXXXXXXXXXXXX","application":{"applicationId":"amzn1.ask.skill.305058c6-3c42-4b01-98XXXXXXXXXX"},"user":{"userId":"amzn1.ask.account.AGPM24ABXXXXXXXXXXXX"}},"context":{"AudioPlayer":{"playerActivity":"IDLE"},"System":{"application":{"applicationId":"amzn1.ask.skill.3050XXXXXXXXX"},"user":{"userId":"amzn1.ask.account.AGPM24AB"},"device":{"deviceId":"amzn1.ask.device.AH24VZIY","supportedInterfaces":{"AudioPlayer":{}}},"apiEndpoint":"https://api.eu.amazonalexa.com","apiAccessToken":"eyJ0eXAiOiJKV1QiLCJ"}},"request":{"type":"LaunchRequest","requestId":"amzn1.echo-api.request.c17a82","timestamp":"2018-03-09T10:28:58Z","locale":"de-DE"}}
Application ID : OK
User ID : OK
KeyChain : OK
SSL signature : OK
Certificate parse : OK
SAN in certificate : OK
Certificate expiry : OK
Timing : OK (1520591338/1520591338)
Array
(
[version] => 1.0
[session] => Array
(
[new] => 1
[sessionId] => amzn1.echo-api.session.9c20f2d0-153
[application] => Array
(
[applicationId] => amzn1.ask.skill.305058c6-3c4
)
[user] => Array
(
[userId] => amzn1.ask.account.AGPM24AB
)
)
[context] => Array
(
[AudioPlayer] => Array
(
[playerActivity] => IDLE
)
[System] => Array
(
[application] => Array
(
[applicationId] => amzn1.ask.skill.305058c
)
[user] => Array
(
[userId] => amzn1.ask.account.AGPM24AB3
)
[device] => Array
(
[deviceId] => amzn1.ask.device.AH24VZIY7R6
[supportedInterfaces] => Array
(
[AudioPlayer] => Array
(
)
)
)
[apiEndpoint] => https://api.eu.amazonalexa.com
[apiAccessToken] => eyJ0eXAiOiJKV_w
)
)
[request] => Array
(
[type] => LaunchRequest
[requestId] => amzn1.echo-api.request.c17a
[timestamp] => 2018-03-09T10:28:58Z
[locale] => de-DE
)
)
=======================================
{
"version": "1.0",
"sessionAttributes": {},
"response": {
"outputSpeech": {
"type": "PlainText",
"text": "Willkommen bei Ihrer EDOMI Smart Home Steuerung"
},
"card": {
"type": "Simple",
"title": "EDOMI",
"content": "EDOMI Steuerung gestartet."
},
"reprompt": {
"outputSpeech": {
"type": "PlainText",
"text": "Bitte sagen Sie ein EDOMI Kommando"
}
},
"shouldEndSession": false
}
}
Received JSON Request from alexa@amazon
=======================================
{"version":"1.0","session":{"new":false,"sessionId":"amzn1.echo-api.session.9c20f2","application":{"applicationId":"amzn1.ask.skill.30505"},"user":{"userId":"amzn1.ask.account.AGPM24AB3"}},"context":{"AudioPlayer":{"playerActivity":"IDLE"},"System":{"application":{"applicationId":"amzn1.ask.skill.305058"},"user":{"userId":"amzn1.ask.account.AGPM24AB3"},"device":{"deviceId":"amzn1.ask.device.AH24VZI","supportedInterfaces":{"AudioPlayer":{}}},"apiEndpoint":"https://api.eu.amazonalexa.com","apiAccessToken":"eyJ0eXAiOi"}},"request":{"type":"IntentRequest","requestId":"amzn1.echo-api.request.a4a795","timestamp":"2018-03-09T10:29:06Z","locale":"de-DE","intent":{"name":"Temperature_Status","confirmationStatus":"NONE","slots":{"Temperature_Room":{"name":"Temperature_Room","value":"wohnzimmer","resolutions":{"resolutionsPerAuthority":[{"authority":"amzn1.er-authority.echo-sdk.amzn1.ask.skill.30505","status":{"code":"ER_SUCCESS_MATCH"},"values":[{"value":{"name":"Wohnzimmer","id":"fa9f73"}}]}]},"confirmationStatus":"NONE"},"Praeposition":{"name":"Praeposition","value":"IM","resolutions":{"resolutionsPerAuthority":[{"authority":"amzn1.er-authority.echo-sdk.amzn1.ask.skill.305058c","status":{"code":"ER_SUCCESS_MATCH"},"values":[{"value":{"name":"im","id":"73bebce395b6fbdb4d76"}}]}]},"confirmationStatus":"NONE"},"Article":{"name":"Article","confirmationStatus":"NONE"}}}}}
Application ID : OK
User ID : OK
KeyChain : OK
SSL signature : OK
Certificate parse : OK
SAN in certificate : OK
Certificate expiry : OK
Timing : OK (1520591346/1520591346)
Array
(
[version] => 1.0
[session] => Array
(
[new] =>
[sessionId] => amzn1.echo-api.session.9c20f2d0-1539-4e
[application] => Array
(
[applicationId] => amzn1.ask.skill.30505
)
[user] => Array
(
[userId] => amzn1.ask.account.AGPM24AB3
)
)
[context] => Array
(
[AudioPlayer] => Array
(
[playerActivity] => IDLE
)
[System] => Array
(
[application] => Array
(
[applicationId] => amzn1.ask.skill.305058c6-3c
)
[user] => Array
(
[userId] => amzn1.ask.account.AGPM24AB3
)
[device] => Array
(
[deviceId] => amzn1.ask.device.AH24VZIY7
[supportedInterfaces] => Array
(
[AudioPlayer] => Array
(
)
)
)
[apiEndpoint] => https://api.eu.amazonalexa.com
[apiAccessToken] => eyJ0eXAiOiJKV1QiLCJ6-t9VvKHKlXVPxp3mBR7Pmuf3vTDqWW9w
)
)
[request] => Array
(
[type] => IntentRequest
[requestId] => amzn1.echo-api.request.a4a7953c-29
[timestamp] => 2018-03-09T10:29:06Z
[locale] => de-DE
[intent] => Array
(
[name] => Temperature_Status
[confirmationStatus] => NONE
[slots] => Array
(
[Temperature_Room] => Array
(
[name] => Temperature_Room
[value] => wohnzimmer
[resolutions] => Array
(
[resolutionsPerAuthority] => Array
(
[0] => Array
(
[authority] => amzn1.er-authority.echo-sdk.amzn1.ask.skill.30505a3f.Room_Type
[status] => Array
(
[code] => ER_SUCCESS_MATCH
)
[values] => Array
(
[0] => Array
(
[value] => Array
(
[name] => Wohnzimmer
[id] => fa9f735c0fc9
)
)
)
)
)
)
[confirmationStatus] => NONE
)
[Praeposition] => Array
(
[name] => Praeposition
[value] => IM
[resolutions] => Array
(
[resolutionsPerAuthority] => Array
(
[0] => Array
(
[authority] => amzn1.er-authority.echo-sdk.amzn1.ask.skill.305053f.Praeposition_Type
[status] => Array
(
[code] => ER_SUCCESS_MATCH
)
[values] => Array
(
[0] => Array
(
[value] => Array
(
[name] => im
[id] => 73bebce395b66
)
)
)
)
)
)
[confirmationStatus] => NONE
)
[Article] => Array
(
[name] => Article
[confirmationStatus] => NONE
)
)
)
)
)
=======================================
Array
(
[group] => temperatur status
[name] =>
[location] => wohnzimmer
[value] =>
)
Data sent to EDOMI
Waiting for status response from 192.168.133.21
Status received from EDOMI:
{
"version": "1.0",
"sessionAttributes": {},
"response": {
"outputSpeech": {
"type": "PlainText",
"text": "Okay"},
},
"shouldEndSession": "true"
}
}
Received JSON Request from alexa@amazon
=======================================
{"version":"1.0","session":{"new":false,"sessionId":"amzn1.echo-api.session.9c20f2d0-15","application":{"applicationId":"amzn1.ask.skill.305058c6-3c"},"user":{"userId":"amzn1.ask.account.AGPM24AB3"}},"context":{"AudioPlayer":{"playerActivity":"IDLE"},"System":{"application":{"applicationId":"amzn1.ask.skill.3050"},"user":{"userId":"amzn1.ask.account.AGPM24AB3"},"device":{"deviceId":"amzn1.ask.device.AH24VZIY7R","supportedInterfaces":{"AudioPlayer":{}}},"apiEndpoint":"https://api.eu.amazonalexa.com","apiAccessToken":"eyJ0eXAiOiJKV1Q"}},"request":{"type":"SessionEndedRequest","requestId":"amzn1.echo-api.request.7832b72","timestamp":"2018-03-09T10:29:09Z","locale":"de-DE","reason":"ERROR","error":{"type":"INVALID_RESPONSE","message":"An exception occurred while dispatching the request to the skill."}}}
Application ID : OK
User ID : OK
KeyChain : OK
SSL signature : OK
Certificate parse : OK
SAN in certificate : OK
Certificate expiry : OK
Timing : OK (1520591349/1520591349)
Array
(
[version] => 1.0
[session] => Array
(
[new] =>
[sessionId] => amzn1.echo-api.session.9c20f
[application] => Array
(
[applicationId] => amzn1.ask.skill.30505
)
[user] => Array
(
[userId] => amzn1.ask.account.AGPM24AB3
)
)
[context] => Array
(
[AudioPlayer] => Array
(
[playerActivity] => IDLE
)
[System] => Array
(
[application] => Array
(
[applicationId] => amzn1.ask.skill.3050
)
[user] => Array
(
[userId] => amzn1.ask.account.AGPM24AB3
)
[device] => Array
(
[deviceId] => amzn1.ask.device.AH24VZIY7R
[supportedInterfaces] => Array
(
[AudioPlayer] => Array
(
)
)
)
[apiEndpoint] => https://api.eu.amazonalexa.com
[apiAccessToken] => eyJ0eXAWE1UVzNLmPqKrpGhRfv0dJDgZs7V3NwZw7gxDe4Eg3fBEg
)
)
[request] => Array
(
[type] => SessionEndedRequest
[requestId] => amzn1.echo-api.request.7832b7
[timestamp] => 2018-03-09T10:29:09Z
[locale] => de-DE
[reason] => ERROR
[error] => Array
(
[type] => INVALID_RESPONSE
[message] => An exception occurred while dispatching the request to the skill.
)
)
)
=======================================
{
"type": "SessionEndedRequest",
"requestId": "amzn1.echo-api.request.7832b723-6",
"timestamp": "2018-03-09T11:29:09+01:00",
"reason": "USER_INITIATED "
}
Ich werde da leider aber nicht schlau draus.
Einen Kommentar schreiben:
-
Wichtig wäre die Anfrage, die du an Alexa stellst und was dann im custom skill log erscheint bzw. in deinem iKO 947.
Es scheint ja in deinem Screenshot so zu sein, dass gar kein Intent ankommt (947 ist leer).
Einen Kommentar schreiben:
-
Ich beschreibe mal, was ich versucht habe. Die Antwort ist immer: Bei der Antwort des angeforderten Skill ist ein Fehler aufgetreten.
Temp2.png
vollgendes habe ich eingegeben:
E3: Temperatur Status
E4: Temperaturstatus
E5: Wohnzimmer
E8: Die Temperatur im Wohnzimmer beträgt %1% komma %2%.
Was habe ich falsch gemacht? Ich habe natürlich auch noch viele ander Varianten probiert. Aber es bleibt immer bei der selben Antwort.
Danke!
Einen Kommentar schreiben:
-
Ich vermute auch, dass ich beim editieren der config-Datei nicht aufgepasst habe und es kein utf-8 mehr war. Jetzt läuft alles wieder wie mit den ersten Versionen.
Also jedenfalls fast. Was ich bisher noch nicht umgesetzt hatte, war die Temperaturabfrage. Das wollte ich nun tun, weiß aber nicht so richtig, was da in den Alexa Custom Command Validator muss. Ich habe mich hier gründlich umgesehen, aber so richtig fündig bin ich leider nicht geworden. Ich habe nur gesehen, dass es "kompliziert war" oder auch viel umgerechnet werden musste, aber kein Beispiel oder ähnliches. Vielleicht kann hier jemand nochmal kurz was zu schreiben. Speziell die Belegung des LBS.
Vielen Dank!
Einen Kommentar schreiben:

Einen Kommentar schreiben: