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

    Hallo zusammen,

    habe heute auch mal meinen alten RPI rausgekramt und alles konfiguriert.
    Wenn ich den Skill testen will (starte edomi) kommt bei Service Response die Meldung: The remote endpoint could not be called, or the response it returned was invalid.
    Schau ich mir die edomi-custom-skill.log an, steht da Invalid User id: obwohl ich in der alexa-config.php den wert $userIdValidation = 'false'; gesetzt habe.

    Hat wer nen Tipp für mich?

    Kommentar


      poste doch mal die alexa-config.php (IDs verfremden bitte) und das Logfile.

      Kommentar


        die alexa-config.php:

        PHP-Code:
        <?php

        // ####################
        // ### Custom Skill ###
        // ####################

        $applicationIdValidation 'sag ich dir nicht';
        $userIdValidation        'false';
        $echoServiceDomain       'echo-api.amazon.com';

        // #######################
        // ### Smarthome Skill ###
        // #######################

        $user_id   'ist geheim';
        $client_id 'amzn1.application-oa2-client.###################################';

        // ###############
        // ### General ###
        // ###############

        $debug   false;
        $targets = array(
            array(
                
        'ip' => '192.168.178.88',
                
        'protocol' => 'tcp',
                
        'port' => 8000,
                
        'status' => true
            
        )
        );

        ?>
        und die log:

        PHP-Code:
        Received JSON Request from alexa@amazon
        =======================================
        {
        "version":"1.0","session":{"new":true,"sessionId":"SessionId.79920acf-a7ab-4059-b1d5-698316eabef5","application":{"applicationId":"ist geheim"},"attributes":{},"user":{"userId":"sag ich dir nicht"}},"request":{"type":"LaunchRequest","requestId":"EdwRequestId.6bd922e9-1568-48fe-ab01-d7cde0ad7014","timestamp":"2017-05-18T18:57:33Z","locale":"de-DE"}}
            
        Application ID OK
        Invalid User id
        sag ich dir nicht 

        Kommentar


          Wie siehts mit dem edomi-custom-skill.php aus. Kann du mal prüfen, ob dies v0.5 ist?
          Hattest du ggf. die erste Version des Custom Skill schon aktiv?
          Prüf mal, ob im Configuration Tab des Custom Skills die Adresse richtig eingetragen ist, d.h. ob dort auch auf edomi-custom-skill.php verwiesen wird.

          Kommentar


            die edomi-custom-skill.php ist version 0.5
            ich hatte den custom skill mit einer älteren version bei amazon angelegt und die änderungen mit der neusten version angepasst (hoffe ich jedenfalls)
            im config tab wird auf https://meineadresse/edomi/edomi-custom-skill.php verwiesen, allerdings ist kein hacken bei den permissions, da steht in der beschreibung nix drin was anzuhacken ist

            Kommentar


              da ist auch nichts anzuhaken. Das ist neu. ist bei mir auch nicht angehakt.
              Kann es sein, dass du ggf. das Skript edomi-custom-skill.php zweimal auf deinem Server hast und vielleicht auf das falsche verweist.
              Nutzt du einen reverse proxy?
              Liegt das Skript im alexa Verzeichnis? Verlinkt der Reverse Proxy wirklich in alexa Verzeichnis oder ggf. ins übergeordnete Verzeichnis?

              Kommentar


                nein die datei ist nur in der v0.5 einmal auf dem server unter /usr/local/edomi/www/admin/lbs/alexa/
                ich habe laut der anleitung den rpi mit Alternative 2: nginx SSL + ReverseProxy eingerichtet
                dort wird ja laut der anleitung auf proxy_pass https://<EDOMI_IP>/admin/lbs/alexa/; verwiesen (edomi ip habe ich an meine angepasst)

                Kommentar


                  Sorry hatte Tomaten auf den Augen. Du hast 'false' in Anführungszeichen geschrieben. Das ist dann in PHP ein String und der ist immer true. Es muss false ohne Anführungsstriche sein.

                  PHP-Code:
                  $userIdValidation        'false'
                  ändern in

                  PHP-Code:
                  $userIdValidation        false

                  Kommentar


                    alternativ kannst du auch einfach die userId aus deinem Logfile dort eintragen.

                    Kommentar


                      Tatsache, das war der Fehler, vielen dank

                      Kommentar


                        Ich bin leider noch nicht dazu gekommen, das zu prüfen, melde mich aber noch dazu.

                        Kommentar


                          So Fehler gefunden, das war aber eine Suche, irgendwie hatte sich ein 2. Slash in eine Pfadangabe geschlichen, musste ich erstmal finden
                          Aber nun gehts Tolle Anleitung und danke für die Arbeit.

                          Kommentar


                            Zitat von b54 Beitrag anzeigen
                            Tolle Anleitung und danke für die Arbeit.
                            Super, freut mich, dass es funktioniert.

                            Kommentar


                              Hallo André,

                              ein kleiner Bug-Report von mir.
                              Du verwendest folgenden Code:

                              PHP-Code:
                                      if ($E[1]['value'] != && $E[1]['refresh'] == 1) {

                                          if (
                              logic_getVar($id1) != 1) { // dieses Konstrukt stellt sicher, dass das EXEC-Script nur einmal gestartet wird
                                              
                              logic_setVar($id11);
                                              
                              logic_callExec(LBSID$id);
                                          }
                                      } elseif (
                              $E[1]['value'] == && $E[1]['refresh'] == 1) {
                                          
                              $pid getLogicElementVar($id2);
                                          
                              posix_kill($pidSIGTERM);
                                          
                              logic_setVar($id10);
                                      } 
                              Ich habe mir große Teile Deines Codes aus den Alexa-Skripten für meinen Webhook-LBS entliehen.

                              Dabei bin ich auf das Problem gestoßen, dass ein Initalwert von 0 am Eingang E1 (Start/Trigger) zur Konsequenz hat, dass Edomi gar nicht mehr startet und sich nach dem Initialisieren der Logikbasteine selbst abschießt.

                              Ich hatte eine zweite Instanz des Webhook-LBS (auch mit Deinem Code-Snippet, wie die erste Instanz) verwendet und die erste Instanz mit "0" als Initalwert am Eingang E1 abgeschaltet. Das führt dann zum kompletten Edomi-Crash.

                              Dieses Problem zeigt der Alexa Receiver LBS ebenfalls.

                              Kommentar


                                Danke für den Hinweis. Ist klar, dass es ein Problem gibt, wenn man versucht einen Prozess zu beenden, den es noch gar nicht gibt. Werde ich zeitnah anpassen.

                                Kommentar

                                Lädt...
                                X