Ankündigung

Einklappen
Keine Ankündigung bisher.

Alexa Smarthome Skill (Payload Version 3)

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

    Zitat von Lapheus Beitrag anzeigen
    Ich habe keine Idee mehr was ich machen kann, tüftle nun seit zwei Tagen damit rum.
    Ich habe mal eine neue Version hochgeladen, damit sollte es hoffentlich funktionieren.

    Kommentar


      Zitat von McEgg Beitrag anzeigen
      Muss ich irgendwas tun? Ich verstehs net so ganz. Nicht, dass irgendwelche Kosten anfallen...
      Das bezieht sich grundsätzlich auf deinen AWS Account.

      Wenn du den bislang nur für den Edomi Skill verwendet hast und diesen (inkl. der Lmbda Funktion) wieder gelöscht hast, dann fallen auch keine Kosten an.
      Es sollte sogar reichen, den EDOMI Skill in der Alexa App zu deaktivieren, denn dann wird die Lambda Funktion gar nicht mehr aufgerufen.
      Zusätzlich sind die ersten 1 Mio. Anforderungen (400,000 GB-SEKUNDEN) kostenfrei.

      Solltest du andere Ressourcen bei AWS verwendet haben, welche im ersten Jahr kostenlos sind und danach berechnet werden, dann musst du diese natürlich beenden, damit keine Kosten anfallen. Beispiele wären hier eine t2-micro-VM, 5GB S3 Storage, 25GB DynamoDB, etc., welche nur im ersten Jahr kostenfrei sind.

      Kommentar


        Ok, perfekt. Danke für die Antwort. Dann muss ich nichts tun...
        Ciao Jochen

        Kommentar


          Zitat von jonofe Beitrag anzeigen

          Ich habe mal eine neue Version hochgeladen, damit sollte es hoffentlich funktionieren.
          Hallo Andre, leider nicht.

          Habe das Zipfile im AWS aktualisiert.
          Hab das edomi-smarthome-skill-PLv3.php im Alexa Verzeichnis aktualisiert.

          Code:
          Received (JSON) Event from alexa@amazon
          =========================================
          Array
          (
              [directive] => Array
                  (
                      [header] => Array
                          (
                              [namespace] => Alexa.Authorization
                              [name] => AcceptGrant
                              [messageId] => 06d015c0-a93b-4099-b564-3916d5810fd2
                              [payloadVersion] => 3
                          )
          
                      [payload] => Array
                          (
                              [grant] => Array
                                  (
                                      [type] => OAuth2.AuthorizationCode
                                      ["code"] => RHzapBXSZfJgzaybGsDz
                                  )
          
                              [grantee] => Array
                                  (
                                      [type] => BearerToken
                                      [token] => Atza|IwEB...TnUsLQfutXAY
                                  )
          
                          )
          
                  )
          
          )
          
          Validation URL: https://api.amazon.com/auth/O2/tokeninfo?access_token=Atza|IwEBIBbnx...E0vTnUsLQfutXAY
          JSON Validation Response:
          OAUTH Validattion Response:
          
          Source    : FAIL
          OAUTH Access Token invalid
          Habe die alexa-config-PLv3.php nach der Anleitung gefüllt und mittlerweile fünfmal überprüft.

          Noch irgendwelche Ideen?
          Kann ich das irgendwo debuggen?
          Gruß
          Lapheus

          Kommentar


            Ja, die Validation URL im Browser aufrufen.
            Wenn das geht, dann liegt es vermutlich am SSL deines Curls.

            Kommentar


              Am besten mal ein PHP Skript validation.php erstellen mit folgendem Inhalt:

              PHP-Code:
              <?php
                  $url 
              ### DEINE Validation URL ###;
                  
              $ch curl_init();
                  
              //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                  
              curl_setopt($chCURLOPT_CAINFO'/etc/pki/tls/cacert.pem');
                  
              curl_setopt($chCURLOPT_URL$url);
                  
              curl_setopt($chCURLOPT_RETURNTRANSFER1);
                  
              $json curl_exec($ch);
                  
              curl_close($ch);
                  
              print_r($json);
              ?>
              und dann mal das cacert.pem auf den neuesten Stand bringen:

              Code:
              curl https://curl.haxx.se/ca/cacert.pem -o /etc/pki/tls/certs/ca-bundle.crt
              Danach mal das obige Skript starten:

              Code:
              php ./validation.php
              Zweiten Test ohne die Kommentarzeichen in der dritten Zeile druchführen.

              Danach mal zurückmelden, was dabei rauskam.

              Kommentar


                gelöscht da Andre noch ergänzt hat und somit die Angaben hier unnötig waren.
                Zuletzt geändert von Lapheus; 16.12.2019, 12:42.
                Gruß
                Lapheus

                Kommentar


                  Zitat von jonofe Beitrag anzeigen
                  Zweiten Test ohne die Kommentarzeichen in der dritten Zeile druchführen.

                  Danach mal zurückmelden, was dabei rauskam.
                  Hallo Andre,

                  da kommt:
                  Code:
                  {"error_index":"i0oc3JWy-yRS2PWom0rRLQAAAAAAAAAB06eVzxdP0DV8s3dy8Ba5AgD2tNBoLgoWKDv7PH5R0M2uaj1i3Ek7RfmseMJHAWddMidPt8Q1mjnwH8uARMDflWWuMt0PB-P0zGyv0ap8iWyyCtfceO60xcIugj_sM1iLvhvsQc1CFgQf-XtYy64MyfUiiow19abA8ywaoeQVwpgjYfHE7oQ__Xgf8RjbvI7esef9WsB4omQisP_u8woTyw==",
                  "error_description":"The request has an invalid parameter : access_token",
                  "error":"invalid_token"}
                  EDIT:
                  Die referenzierte Datei /etc/pki/tls/cacert.pem aus dem Scipt gibt es bei mir nicht...

                  EDIT2:
                  Scipt editiert auf
                  PHP-Code:
                  curl_setopt($chCURLOPT_CAINFO'/etc/pki/tls/cert.pem'); 

                  da, siehe hier:
                  Code:
                  [root@edomi alexa]# ll /etc/pki/tls/
                  insgesamt 24
                  lrwxrwxrwx  1 root root    49 15. Dez 23:15 cert.pem -> /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
                  drwxr-xr-x. 2 root root  4096 15. Dez 23:15 certs
                  drwxr-xr-x. 2 root root  4096 14. Dez 19:11 misc
                  -rw-r--r--  1 root root 10923  6. Aug 15:44 openssl.cnf
                  drwxr-xr-x. 2 root root  4096 15. Dez 00:46 private
                  Ergebnis mit kommentierter Zeile:
                  Code:
                  {"aud":"amzn1.application-oa2-client.xxx","user_id":"amzn1.account.yyy","iss":"https://www.amazon.com","exp":3521,"app_id":"amzn1.application.zzz","iat":1576496075}
                  Ergebnis mit auskommentierter Zeile:
                  Code:
                  {"aud":"amzn1.application-oa2-client.xxx","user_id":"amzn1.account.yyy","iss":"https://www.amazon.com","exp":3500,"app_id":"amzn1.application.zzz","iat":1576496075}
                  Demnach funktioniert das jetzt?!?
                  Zuletzt geändert von Lapheus; 16.12.2019, 12:41.
                  Gruß
                  Lapheus

                  Kommentar


                    Zitat von Lapheus Beitrag anzeigen
                    Demnach funktioniert das jetzt?!?
                    Ja, jetzt sollte es funktionieren.

                    Kommentar


                      Woher weis Dein edomi-smarthome-skill-PLv3.php Scipt jetzt das es die Datei /etc/pki/tls/cert.pem und nicht die etc/pki/tls/cacert.pem nutzen muss? muss da noch ein Link dazu?

                      Denn ein Aktivieren des Skills geht immer noch nicht.
                      Gruß
                      Lapheus

                      Kommentar


                        In der Hilfe des LBS steht übrigens:

                        Code:
                        On your EDOMI Server, please keep your SSL root certificate information up-tp-date by executing:
                        
                            curl https://curl.haxx.se/ca/cacert.pem -o /etc/pki/tls/cacert.pem
                        Wenn du das machst, dann passt es und du musst dich nicht bei jeder Neuinstallation daran erinnern, dass du einen Link erstellen musst, sondern musst einfach nur die Anleitung im LBS befolgen.

                        Kommentar


                          So ein Mist, jetzt hab ich versucht alles zu lesen um nicht so einen blöden Fehler zu machen.
                          Sorry, die Zeile in der LBS Hilfe habe ich überlesen.

                          Ja, es funktioniert jetzt!
                          Gruß
                          Lapheus

                          Kommentar


                            Zitat von Lapheus Beitrag anzeigen
                            Sorry, die Zeile in der LBS Hilfe habe ich überlesen.
                            Ist ja auch erst im Update dazugekommen. Und ich hab auch nicht mehr dran gedacht, dass ich sie ergänzt hatte.

                            Kommentar


                              Zitat von jonofe Beitrag anzeigen

                              Ist ja auch erst im Update dazugekommen. Und ich hab auch nicht mehr dran gedacht, dass ich sie ergänzt hatte.
                              Da bin ich ja beruhigt.
                              Gruß
                              Lapheus

                              Kommentar


                                Hi
                                hier schick ich gerade auch mal ein bei mir aktuell auftretendes Problem rein...
                                Seit einigen Tagen funktioniert zwar der Smarthome-Skill immernoch sehr gut - nach JEDEM befehl kommt aber "xxx reagiert leider nicht" (obwohl er es tut).
                                Ich habe gerade mal auf akttuelle Alexa-LBS aktualisiert, LAMDA aktualisiert (Phyton 3.7 ist richtig - in dem PDF steht im screenshot noch 2.7)

                                Im Log (laut PDF Seite 33 tail -f /usr/local/edomi/www/data/log/edomi-smarthome-skill.log - richtig ist aber tail -f /usr/local/edomi/www/data/log/edomi-smarthome-skill-PLv3.log) steht immer:
                                Code:
                                Source    : OK
                                User-ID   : OK
                                Client-ID : OK
                                Expiry    : OK
                                Authorization Token successfully validated
                                Starting communication with EDOMI
                                Alexa.PowerController event started...
                                Data sent to EDOMI
                                {"directive":{"header":{"namespace":"Alexa.PowerController","name":"TurnOff","payloadVersion":"3","messageId":"df5cccd1-981e-483a-be7d-7573da67ce73","correlationToken":"AAAAAAAAAQDre+b7hHYWQRaWCRuOZF9xDAIAAAAAAABquG+m\/P6w6E2LtmaLANd\/cxed2fD8wV2Y8mYsWsH6kYOaKPa\/gq6KQjQ4Jn+dm4zIOAD2c5RLAEA\/IwDLwip+kwHLutb+cLqNUHbqaT1vSbOlCJvcAae0TuDZj1LuJ2jJxNv1gD6EQzhl9h\/YU1LzD\/hv3P1\/YNAFwTnxtJ3Ozc0KgsWM9lje85gBvcNoaB27ft5DltsdDI9qBwDEqMRssC13rPeqAy5kqEp\/Z07ciWNQKFeTcquNFblehFxYTYhVa413AzM3TpqlEFU9IIwfyL4XAOGHcWm4Y03JjEwtkQS7hA\/uCIW0vTur0IsI3RkYTho9hE8LmkiFpiOvM0m5UXOzzotFEmCRzQYCx8aqWATh5hBJvv92djUXVJMftlSIl0KAixGI5L95N93ZaIYOAvr9FWdCenS0rgGuWEvsvUawFcQmaTeCox8Mf++yhHUkTmBHtxpnZEdXDSyJCV8UCBMX5buC12VUPb+NfIOxQCyb7UIrKs2oRl+Pb\/gxTJb4CCi+N123l64zw895G41CDfEiFSifZqdf\/zm+0rK\/M0e1aojwxBuhYbcDng2+660c+owynOqeA\/BDhbbJEeevVIg2BA8I63b3ujOfxcGxd1ToyKj2pwymMQ73NQoycB6hgI\/tHaJfgV6JFkQj4fGyHTJp54iL1047vOVMQ4\/D0Gg+PN\/xXXZUXX1g0w=="},"endpoint":{"scope":{"type":"BearerToken","token":"Atza|IwEBIG-5CCXsxMAKK1-0PUXFpQmMOTzs7Onyu8V4RwV_huBTH1Ym8KsRla_tKZQo_ro2Vx0VohVNmC5cGwiVMMBMbMnKRcRd3h3OPIXxSHT0Cq_EJdRDwQ_lk1Zffl4rX4NlWf4aNdRiSO1jLWglkXNMJMaECOm5VZqg7Jxe3eh9gMuY9_feCRJkG_nSgzWL4GGdaXHC3e2lpR9b32NDO-XyMgTRZUA7ooeBRDRXZ6cpeXNbvbBDXQqaTDGt_MyxMkmKosCIMkTQIyL9IGF6QNEk6TDbn1vbxdjtoQ89jsr7tObBron4WkHPxSO5G03XUJONF_qd11oHhK-aYM4dH-kc-yexFOUv9rFkkUXHXDUa0FKPeBgJOgUoNzvDEQNN45WWPFLpRjTEobg0xOJW0g5JgTWB0rki5TWq61PvzuwP2P0QAO0FI8UpElHypnSg8kAGPBY2sX5GnAz2Y8YGbxc66UvpBHpDP_Bx43T0zKgIt6WuXDVUWebLfaXZxX2wSEzOmRO3gn7hlHqS8vY5SvlsOschY30xyVXpJJqcLEy36Ga92A"},"endpointId":"deviceWeichnachten","cookie":[]},"payload":[]},"type":"smarthome"}
                                
                                Waiting for response from 192.168.0.11
                                
                                Status received from EDOMI: 
                                
                                JSON RESPONSE:
                                Also... wenn ich das richtig lese wartet das Script auf ein Status vom EDOMI... aber es kommt keiner?
                                Das Smartome-PHP script läuft auf dem EDOMI - eine Kommunikation zwischen Edomi und dem Script steht also nichts im weg...

                                Irgendeine Idee?

                                Gruß
                                Thorsten

                                Kommentar

                                Lädt...
                                X