Ankündigung

Einklappen
Keine Ankündigung bisher.

Alexa4p3 für Dummies

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

    #91
    Guten Morgen in die Runde!

    Gestern habe ich es leider nicht geschafft - Familie geht eben vor.

    Dank Andre für den Testcode! Ich muss mich bei Gelegenheit mal in den Rest einlesen - aber alles auf einmal geht irgendwie nicht Der Tag hat einfach viel zu wenig Stunden für viel zu viel Aufgaben....

    Den Test hab ich gemacht - er lief erfolgreich. Keine Fehler.
    Aber weder im error.log, noch im access.log kann ich einen Zugriffsversuch feststellen, wenn ich mit meinem Skill nach neuen Geräten suche.

    Das ist doch komisch, oder nicht? Irgendwas müsste ich doch sehen?

    Zuletzt geändert von 2malmama; 20.10.2020, 10:08.

    Kommentar


      #92
      Ich bin das hier gefühlt auch schon 100 mal durchgegangen:

      Zitat von AndreK Beitrag anzeigen
      Folgende Punkte würde ich bei Amazon im Skill prüfen :

      - den default-endpoint für die Lambda im Skill
      - die "geographical region"im Skill (korrekt ist hier "Europe/India")
      - beim Account Linking mal einen Scope hinzufügen (add scope)
      - beim Account Linking muss unter "Scope" -> "profile:user_id" stehen (genauso ohne Quotes)


      folgendes würde ich in der Lambda prüfen
      - Die IAM-Role und deren Berechtigung
      - die Region der Lambda (korrekt ist hier "Ireland")

      im Sicherheitsprofil (Seite 19) obiger Anleitung die "Alexa Redirect URLs" vom Skill eintragen

      Findet Ihr vielleicht einen Dusselfehler in meiner Konfiguration? Ich bin es eben noch mal Stück für Stück anhand schumas Anleitung durchgegangen (zusätzlich dem Scope - der in der Anleitung noch nicht drin ist):


      01 developer.PNG 02 account linking.PNG 03 lambda.PNG 04 Umgebungsvariablen.PNG 05 Sicherheitsprofil.PNG
      Zuletzt geändert von 2malmama; 20.10.2020, 11:35. Grund: Anhänge hinzugefügt

      Kommentar


        #93
        Hi,

        d.h. der Lambdatest war erfolgreich - hast dazu Einträge beim nginx ?
        Was hat die Testfunktion geliefert ?

        Falls Einträge beim nginx ohne Fehler sind passt die Lambda, dann liegt es an der Verknüpfung Skill <-> Lambda

        Das muss ich mir heute Abend selbst nochmal ansehen

        Gruss Andre

        Kommentar


          #94
          Hallo Andre,
          der Lambda-Test meldet zwar erfolgreich.
          Auf dem nginx finde ich aber weder Einträge in der access.log, noch in der error.log

          06 Lambda Test.PNG

          Kommentar


            #95
            Schick mal bitte Deinen Funktioncode
            aus der Lambda

            Die Anwort „Hello from Lambda“ - keine Ahnung was diesen Response sendet. Das Plugin jedenfalls nicht

            Gruss Andre

            Kommentar


              #96
              Hallo Andre,

              mmh - das ist der Code, den Du mir zur Verfügung gestellt hast.
              Ich habe ihn in den Testerereignissen als neuen Code eingefügt, ich hoffe, dass das die richtige Stelle war?!


              discoveryCode.PNG
              Angehängte Dateien
              Zuletzt geändert von 2malmama; 20.10.2020, 17:43.

              Kommentar


                #97
                Hi,

                ich meinte den Funktionscode in der Lambda selbst - in Deinem Screenshot mit den Umgebungsvariable für Deinen NGINX steht :

                "Über den Umgebungsvariablen habe ich den Funktionscode eingefügt" - diesen hatte ich gemeint.

                Gruss Andre

                Kommentar


                  #98
                  achso - tschuldige:
                  Der Einfachheit halber, nicht als Screenshot - sondern rauskopiert:

                  /*
                  You need to specify the following environmental variables in the lambda function:
                  - SMARTHOME_HOST
                  foobar.dyndns.tld
                  - SMARTHOME_PORT
                  443 - endpoint must be https enabled!
                  - SMARTHOME_PATH
                  '/'
                  - SMARTHOME_AUTH
                  'userassword'
                  */
                  exports.handler = function(event, context, callback) {
                  var data = JSON.stringify(event)
                  var options = {
                  hostname: process.env.SMARTHOME_HOST,
                  port: process.env.SMARTHOME_PORT,
                  path: process.env.SMARTHOME_PATH,
                  method: 'POST',
                  auth: process.env.SMARTHOME_AUTH,
                  headers: {
                  'Content-Type': 'application/json',
                  'Content-Length': Buffer.byteLength(data)
                  }
                  };
                  var https = require('https');
                  var req = https.request(options, (res) => {
                  console.log(`HTTP ${res.statusCode}`);
                  res.setEncoding('utf8');
                  var responseData = '';
                  res.on('data', (dataChunk) => {
                  responseData += dataChunk
                  });
                  res.on('end', () => {
                  console.log('raw response:', responseData)
                  var response = JSON.parse(responseData);
                  if (res.statusCode == 200) {
                  console.info('OK', JSON.stringify(response))
                  callback(null, response);
                  } else {
                  console.error('Failed', JSON.stringify(response))
                  callback('DependentServiceUnavailableError');
                  }
                  });
                  });
                  req.on('error', (e) => {
                  console.error('request failed', e);
                  callback(e);
                  });
                  console.log('requesting', data)
                  req.write(data);
                  req.end();
                  }

                  Kommentar


                    #99
                    der Smiley ist das P nach dem :

                    Kommentar


                      OK das sieht gut aus

                      dann muss ich selbst mal auf die Suche gehen wie man so einen Response bekommen kann - es geht definitiv nichts aus der Amazon-Welt raus, das passiert
                      irgendwo intern.

                      Ich mach mich mal auf die Suche

                      Gruss Andre

                      Kommentar


                        Hallo 2malmama ,

                        ich glaube ich habe den Übeltäter. Beim Anlegen einer neuen NodeJS-Anwendung wird ein Beispiel Script erzeugt. Das hast Du wohl noch irgendwo stehen.
                        Diese wird dann bei der Testfunktion aufgerufen und antwortet mit "Hello from Lambda".

                        Das muss komplett weg - nur "unsere" Lambda-Funktion darf hier stehen. "Unsere" Funktion muss genau in diese index.js, in keine zweite oder ähnlich.
                        Falls Du zwei index.js hast lösche die Falsche.

                        Lambda.png
                        Weiterhin viel Erfolg, ich denke Du bist nahe dran.

                        Gruss Andre

                        Kommentar


                          das ja lustig - bei mir gibt es nur die eine js, die mit dem richtigen Code: (da gibt angeblich der richtige Code den falschen Response zurück)
                          discoveryCode2.PNG

                          Kommentar


                            ha - aber Dein Hinweis war super!!!!

                            Ich habe mal die ganzen alten Funktionen gelöscht. Und nachdem ich das erledigt hatte, war in meiner Funktion der "Ursprungscode" drinnen. Der, der die 200 ausgibt.

                            Dann habe ich nochmals den Code aus der Anleitung einkopiert - und siehe da - der Test bringt ein ganz anderes Bild und noch viel (ich hoffe, ich dar das hier jetzt mal so ausdrücken) viel, viel VIEL geiler - meine Alexa hat ein neues Gerät gefunden, dass da heißt: "LAMPE"

                            Den Aufschrei von uns hier allen hättest Du gerade hören müssen!!!

                            DANKE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (muss ich jetzt noch sagen, dass Du der Held des Tages bist?!??)

                            Kommentar


                              Danke, danke, danke - dass Ihr Euch da alle mit eingeklinkt habt, gesucht und gewurschtelt - gelesen und überlegt - und mir geholfen habt!!!!

                              Ich werde jetzt eine Sicherung ziehen und dann in Ruhe einen weiteren Testaufbau starten - mal sehen, ob das so durchläuft

                              Kommentar


                                aber nicht mehr heute Abend

                                Kommentar

                                Lädt...
                                X