Ankündigung

Einklappen
Keine Ankündigung bisher.

Alexa Smarthome Skill (Payload Version 3)

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

    K L A P P T !!!!! MEGA! Danke !!

    Spielt dann auf Anhieb.
    Edomi reagiert perfelt auf mein Testobjekt.
    Was mir aufgefallen ist das in der App beim ein und ausschalten des Testobjektes oben ein "Ein Problem ist aufgetreten" erscheint. Kommt nach jedem Schaltvorgang so nach zwei Sek.

    Kommentar


      Hast du denn das "Send Alexa Events" nach der Aktivierung wieder eingeschaltet?

      Kommentar


        ja

        Kommentar


          Das ist das Log auf dem Baustein LBS19001201

          2019-01-30 21:37:56 954828 30231 debug LBS19001201 [v0.5]: LBS started (1334)
          2019-01-30 21:37:56 956269 30231 debug LBS19001201 [v0.5]: Received Event: Alexa/ReportState (1334)
          2019-01-30 21:37:56 957511 30231 debug LBS19001201 [v0.5]: AlexaResponse: (1334)
          2019-01-30 21:37:56 957619 30231 debug LBS19001201 [v0.5]: ================ ARRAY/OBJECT START ================
          2019-01-30 21:37:56 957909 30231 debug LBS19001201 [v0.5]: {"context":{"properties":[]},"event":{"header":{"namespace":"Alexa","name":"S tateReport","payloadVersion":"3","messageId":"00b2 1xxxxxxxxxxxx18985b0e5","correlationToken":"AAAAAA AAxxxxxxxxxxxxxxxxxxRLwFqFexheFA8dIkwHcstIOtA+\/Yc8W4Xk1TigqUZ5z2DryNJzwZLNhEucXLuHcz0s52Gg=="},"e ndpoint":{"scope":{"type":"BearerToken","token":"A tza|IwExxxxxxxxxxxxxxxxxxxIqVKb07SxOaS0M5V-aRtHahVQhZIVYzxsi8SWCeRxZ27X6OrkesGbzdtsYT1H-CGPeFYSLTt5cQGHZcp1tN-xxxrRNysIbPSYVUWnBUu0xPHLxeS3Tjktif_vn-8yEgP0zrR7rHoz4JVW8Ei2oZ3_EiBAVYaAUdcTsMY1egyPjbew SCMNpwmdtLNHsKrAe5XOU_tVeKGo"},"endpointId":"001De vice"},"payload":{}}}
          2019-01-30 21:37:56 958060 30231 debug LBS19001201 [v0.5]: ================ ARRAY/OBJECT END ================
          2019-01-30 21:37:56 959275 30231 debug LBS19001201 [v0.5]: Event received: Array[LF]([LF] [directive] => Array[LF] ([LF] [header] => Array[LF] ([LF] [payloadVersion] => 3[LF] [correlationToken] => AAAAAAAAAQBrdWxxxxxxxxcz0s52Gg==[LF] [namespace] => Alexa[LF] [name] => ReportState[LF] [messageId] => d5140ab3-8287-46b0-9cd1-5e495c544703[LF] )[LF][LF] [endpoint] => Array[LF] ([LF] [scope] => Array[LF] ([LF] [token] => Atza|IwEBII5qxxxxxxxxxxxxxxxxxxxvzI1VDVT5sryRo3aQ1 h0a2xlrqjnfokiFyqb-g-x-HGlokJB6v9iZFFVk7HjeKzXLNB1NmSSgwk_TXBCPMmVsCoV81L GNBkL0ZP2TNU9WaotdlEpszLlBFcLwtQvIqVKb07SxOaS0M5V-aRtHahVQhZIVYzxsi8SWCeRxZ27X6OrkesGbzdtsYT1H-CxxxxxxxxxxxxxxxxxxxxxxxeS3Tjktif_vn-8yEgP0zrR7rHoz4JVW8Ei2oZ3_EiBAVYaAUdcTsMY1egsKrAe5 XOU_tVeKGo[LF] [type] => BearerToken[LF] )[LF][LF] [cookie] => Array[LF] ([LF] )[LF][LF] [endpointId] => 001Device[LF] )[LF][LF] [payload] => Array[LF] ([LF] )[LF][LF] )[LF][LF] [type] => smarthome[LF] [queue] => 509267668[LF])[LF] (1334)
          2019-01-30 21:37:56 963844 30231 debug LBS19001201 [v0.5]: Sending message to Alexa Smarthome Skill LBS: (1334)
          2019-01-30 21:37:56 963999 30231 debug LBS19001201 [v0.5]: ================ ARRAY/OBJECT START ================
          2019-01-30 21:37:56 964123 30231 debug LBS19001201 [v0.5]: {"event":{"header":{"namespace":"Alexa","name":"Er rorResponse","messageId":"a5119345-d702-484a-9550-85c9b50f81ad","correlationToken":"AAAAAAAAAxxxxxxx xxxxxxxxxxxxxxxxxHcz0s52Gg==","payloadVersion":"3" },"endpoint":{"endpointId":"001Device"},"payload": {"type":"INTERNAL_ERROR","message":"An error occured during the execution of the command"}}}
          2019-01-30 21:37:56 964426 30231 debug LBS19001201 [v0.5]: ================ ARRAY/OBJECT END ================
          2019-01-30 21:37:56 968437 30231 debug LBS19001201 [v0.5]: LBS ended (1334)

          Kommentar


            Das Event Reporting scheint nicht zu funktionieren. Hast Du die richtigen Event Reporting Einträge in der alexa-config?
            Die Client-ID and das Secret welches auf Permissions Seite zu finden ist.

            Ich habe übrigens den Fehler im Skill-Skript gefunden, welcher zu dem Aktivierungsfehler führt. Das Skript sendet ein falsches AuthorizationGrant.Response. Es muss die Zeile 145 korrigiert werden:

            Aus

            PHP-Code:
               $authorizationResponse = array(
                    
            'event' => array(
                        
            'header' => array(),
                        
            'payload' => array()
                    )
                ); 
            wird

            PHP-Code:
                $authorizationResponse = array(
                    
            'event' => array(
                        
            'header' => array(),
                        
            'payload' => json_decode("{}")
                    )
                ); 
            Du kannst das mal ändern und dann den Skill deaktivieren, Send-Alexa-Events einschalten und dann nochmal aktivieren.
            Evtl. funktioniert dann das State Reporting.

            Kommentar


              Kurze Rückmeldung....Es geht jetzt. Danke für den Support ;-)

              Kommentar


                Ja die Event Reporting Einträge in der alexa-config stimmen überein !
                Der geänderte PHP funktioniert was die Aktivierung des Skills betrifft.

                Das ErrorResponse Problem besteht / kommt aber immer noch.

                Kommentar


                  Dann poste mal die Config des 1201 LBS.
                  Hast du denn beim 1201 auch den entsprechenden Status Eingang belegt. Dies ist notwendig, wenn Retrievable oder Proactive aktiviert sind.

                  Bei einem PowerController (E10=1) muss also PowerState (E30) mit dem Status KO des zu schaltenden Objekts belegt sein.
                  Wenn man die Alexa App öffnet und auf der Statusseite ist, dann fragt die App den Status ab, wenn Retrievable=1 ist. Wenn Proactive=1, dann sendet der Skill auch Statusänderungen proaktiv an Alexa, so dass die App beim Start immer aktuelle Statuswerte haben sollte. Sollte eigentlich funktionieren, wenn's korrekt konfiguriert ist.

                  Kommentar


                    Puh das hat mir jetzt irgendwie keine Ruhe gelassen.
                    Wenn der Wald mal so groß ist dann sieht man die Bäume echt nicht mehr.
                    Schande über mich .... Du hattest natürlich recht ! Retrievable war aktiv und das Status Objekt nicht gesetzt.
                    Funktioniert einwandfrei !! Sorry nochmals.
                    Bleibt mir nur noch zu sagen ... tolle Arbeit ! Jetzt gehts ans konfigurieren .... Alexa, gute Nacht erst mal :-)

                    Kommentar


                      Super das freut mich. Viel Spaß damit.
                      Und danke für das Bug Reporting
                      Ich werde den LBS im Downloadportal in den nächsten Tagen updaten.

                      Alexa, gute Nacht.

                      Kommentar


                        Zitat von jonofe Beitrag anzeigen
                        Mein ihr das php5 auf dem Reverse Proxy? Eigentlich wird das gar nicht benötigt, wenn man auf den Test mit dem phpinfo.php verzichtet und das stattdessen den Test mit einer HTML Datei macht. Also völlig unkritisch für die eigentliche Funktionalität. Mit PHP6.x oder 7.x gehts natürlich auch.
                        Ja, das meinte ich. Ich habe dann auch php7 installiert - bis jetzt funktioniert alles :-)

                        Aber eine andere Frage hätte ich. Und zwar zum SSL Zertifikat.
                        Ich konnte das Zertifikat erst erstellen nachdem ich den Port 80 auf meiner fitzbox auf das rasspberry pi weitergeleitet hatte. Als die Weiterleitung nicht aktiv war kam der Hinweis: "Error getting validation data".

                        Kann es jemand kurz erklären? Port 80 ist ja http, und 443 https. Und das Zertifikat ist ja auch quasi https bzw. https nutzt ja die SSL Verschlüsselung/Zertifikate... Warum muss ich dann den Port 443 weiterleiten...

                        LG!

                        Kommentar


                          Zitat von knxgkl Beitrag anzeigen
                          Kann es jemand kurz erklären?
                          Blätter mal ein paar Seiten zurück, ich glaube da wurde es schon mal diskutiert. Ist eine Änderung bei Letsencrypt. Die Verifizierung ist nur noch über Port 80 möglich. D.h. für das Setup als auch für die Erneuerung alle 90 Tage muss Port 80 weitergeleitet sein.

                          Zitat von knxgkl Beitrag anzeigen
                          Warum muss ich dann den Port 443 weiterleiten...
                          Hier meintest du vermutlich Port 80. Die Verifizierung über Port 443 wird nicht mehr unterstützt, da unsicher. Die genauen technischen Hintergünde müsste ich auch erst wieder nachlesen.

                          Kommentar


                            Hallo zusammen,

                            Habe es jetzt mehrfach aufs Neue und von vorne probiert, habe sogar einen neuen Raspberry Pi ausprobiert, aber ich scheitere leider immer noch am Ausstellen des Zertifikats. Sowohl Port 80 als auch Port 443 sind weitergeleitet und funktionieren auch, die apache2-Testseite ist über die DynDNS-Seite erreichbar.
                            Um vor dem Zertifikat Apache zu beenden, muss ich mit "sudo su" auf den Root-User wechseln (ansonsten werde ich nach dem root-Passwort gefragt, welches aber nicht akzeptiert wird), dann apache beenden und per "su pi" wieder auf den Standard-User.
                            Nach Aufruf des letsencrypt-auto-Befehls erhalte ich immer und immer wieder folgende Fehlermeldung:

                            Failed authorization procedure. <DYNDNS> (http-01): urn:ietfarams:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://<DYNDNS>/.well-known/acme/challenge/.... "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">\n<html>\n<head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p"

                            Important Notes:
                            - The following errors were reported by the server:

                            Domain: <DYNDNS>
                            Type: unauthorized
                            Detail: http://<DYNDNS>/.well-known/acme/challenge/.... "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">\n<html>\n<head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p"

                            To fix these errors, please make sure that your domain name was entered correctly and the DNS A/AAAA record(s) for that domain contain(s) the right IP address


                            Die <DYNDNS> ist richtig geschrieben, irgend etwas scheint nicht gefunden zu werden, allerdings ist mir unklar was noch fehlen könnte.
                            Kann mir hier jemand helfen? Ich bin kurz vorm Aufgeben, weil ich seit 3 Monaten nicht über dieses Zertifikat hinaus komme...

                            Vielen Dank im Voraus.

                            Kommentar


                              Zitat von KBNSX Beitrag anzeigen
                              Die <DYNDNS> ist richtig geschrieben,
                              Steht bei Dir <DYNDNS> oder hast Du das mit der richtigen URL ersetzt? Musst Du nämlich machen ;-)

                              Hast Du einen anderen DynDNS Anbieter versucht? Bei mir hat es wunderbar sofort mit goip.de geklappt.
                              404 sagt, dass er unter der angegebenen URL nicht findet.

                              Kommentar


                                Zitat von knxgkl Beitrag anzeigen
                                Steht bei Dir <DYNDNS> oder hast Du das mit der richtigen URL ersetzt? Musst Du nämlich machen ;-)

                                Hast Du einen anderen DynDNS Anbieter versucht? Bei mir hat es wunderbar sofort mit goip.de geklappt.
                                404 sagt, dass er unter der angegebenen URL nicht findet.
                                Selbstverständlich habe ich DYNDNS durch die richtige URL ersetzt, wollte die URL aber nicht hier im Forum posten.
                                Ich hatte die ganze Prozedur mit 3 verschiedenen DynDns-Diensten ausprobiert und habe immer Fehler bekommen. Jetzt habe ich es auch noch mit goip.de probiert und es hat auf Anhieb funktioniert.... Also danke für den Tipp! :-)

                                Kommentar

                                Lädt...
                                X