Ankündigung

Einklappen
Keine Ankündigung bisher.

Alexa Custom Skill für EDOMI (LBS 19000646 und 19000647)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mywap
    antwortet
    Hi jonofe, ich würde auch wieder mitmachen. Smarthome Skill mit reverse proxy der ersten Stunde läuft ....
    viele grüße
    frank

    Einen Kommentar schreiben:


  • Teutone
    antwortet
    Super! Den Smarthome Skill verwende ich noch nicht, aber den Custom mit Reverse Proxy! Dann werde ich schon mal den alten SmarthomeSkill zum laufen bringen.
    Denke ich bin soweit...
    Zuletzt geändert von Teutone; 27.03.2018, 15:46.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von Teutone Beitrag anzeigen

    Ich würde mich opfern jonofe ;-) Habe da Ambitionen da zu unterstützen beim testen!
    Super, das freut mich zu hören. Hast du schon den "alten" Skill laufen mit Reverse Proxy?
    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:

    Code:
    url = 'https://<dein-reverse-proxydns-name>/alexa/edomi-smarthome-skill-PLv3.php'
    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.

    Einen Kommentar schreiben:


  • Teutone
    antwortet
    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.

    Ich würde mich opfern jonofe ;-) Habe da Ambitionen da zu unterstützen beim testen!

    Einen Kommentar schreiben:


  • Micro
    antwortet
    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:


  • jonofe
    antwortet
    Zitat von Schulle Beitrag anzeigen
    Gibt es schon Neuigkeiten zum Thema Google Home?
    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:


  • Schulle
    antwortet
    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:


  • Micro
    antwortet
    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:


  • nno
    antwortet
    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:


  • jonofe
    antwortet
    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:


  • jonofe
    antwortet
    Ä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:


  • Micro
    antwortet
    Hallo, ich habe jetzt natürlich noch etwas weiter experimentiert:
    Temp3.png
    Meine Frage ist: Alexa, starte Haus, Wie ist die Temperatur im Wohnzimmer?
    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 "
            

    Das steht dann im log, wobei ich die langen Id's und token gekürzt habe...

    Ich werde da leider aber nicht schlau draus.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    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:


  • Micro
    antwortet
    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:


  • Micro
    antwortet
    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:

Lädt...
X