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 lordofchaos Beitrag anzeigen
    ehrlich gesagt weis ich auch nicht was das bringt. Muss ich nicht eher bei amazon nach einem Fehler suchen und nicht auf dem edomi server?
    Immerhin kann ich den Skill nicht aktivieren.
    Du kannst den Skill nicht aktivieren, weil dein Skill nicht antwortet und er antwortet nicht, weil er die Authentisierungsanfrage nicht validieren kann.

    Mach doch mal bitte folgendes:

    Nach fehlerhafter Aktivierung im Logfile den letzten Eintrag "Validation URL:" suchen.
    Diese URL dann per curl auf dem EDOMI Server in einem SH Terminal ausführen.

    Code:
    curl https://api.amazon.com/auth/O2/tokeninfo?accecc_token=<dein Token>
    Und dann das Ergebnis hier posten. Dies ist genau der Aufruf, der aus PHP heraus nicht erfolgreich ist und kein Ergebnis liefert. Evtl. kann man im Terminal einen Fehler sehen.

    Kommentar


      Du könntest auch nochmal prüfen,ob dein DNS auf dem EDOMI Server funktioniert:

      Code:
      nslookup api.amazon.com
      oder falls nslookup nicht installiert ist, sollte auch ein

      Code:
      ping api.amazon.com
      ausreichen.

      Kommentar


        Zitat von jonofe Beitrag anzeigen

        Mach doch mal bitte folgendes:

        Nach fehlerhafter Aktivierung im Logfile den letzten Eintrag "Validation URL:" suchen.
        Diese URL dann per curl auf dem EDOMI Server in einem SH Terminal ausführen.

        Code:
        curl https://api.amazon.com/auth/O2/tokeninfo?accecc_token=<dein Token>
        Und dann das Ergebnis hier posten. Dies ist genau der Aufruf, der aus PHP heraus nicht erfolgreich ist und kein Ergebnis liefert. Evtl. kann man im Terminal einen Fehler sehen.
        Hier mein Ergebnis (ganz schön lang der Token. Kann ich den wo anders auch überprüfen auf richtigkeit?)
        Code:
        [COLOR=#373e3e][FONT=Amazon Ember Regular, Helvetica Neue, Arial, Helvetica, Roboto, sans-serif][SIZE=2][COLOR=#16191f][FONT=Amazon Ember, Helvetica Neue, Roboto, Arial, sans-serif][root@edomi log]# curl https://api.amazon.com/auth/O2/tokeninfo?access_token=Atza%7CIxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxx[/FONT][/COLOR][/SIZE][/FONT][/COLOR]
        
        [COLOR=#373e3e][FONT=Amazon Ember Regular, Helvetica Neue, Arial, Helvetica, Roboto, sans-serif][SIZE=2][COLOR=#16191f][FONT=Amazon Ember, Helvetica Neue, Roboto, Arial, sans-serif]{"error_index":"XHxxxxxxxxxxxA-lIJYbcLBgAAAAAAAAAB0cawNdezoV7A9I5DSeGb37giFEaWJm-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx41JPnAIUxjvJ-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvi3NKdF6M2dni3QxJTiKA==","error_description":"The request has an invalid parameter : access_token","error":"invalid_token"}[/FONT][/COLOR][/SIZE][/FONT][/COLOR]
        invalid token. Hab ich da doch was falsch eingegeben wo?

        Was ich bei der ganzen Einleitung nicht gemacht habe ist die $client_id wo einzutragen (bzw. zurzeit temporär) da diese nicht mehr vorhanden war wie in der Anleitung

        ping funktioniert. Wobei ich hier im Forum ein extra Thema eröffnet habe das mein edomi Server ssh und sftp momentan sehr lange braucht zum reagieren bzw. einloggen.

        Kommentar


          Mir gehen so langsam die Ideen aus. Ist dein Amazon Account auf deutsch eingestellt und der Skill auch?
          In welcher AWS Region läuft deine Lambda Function? (steht oben in der lambda Konsole; vermutlich Ireland oder Frankfurt)

          Kommentar


            müsste alles richtig sein. Lambda Ireland wie in der Beschreibung
            Skill auf Deutsch. Hier sind noch zwei alte drin die nicht gehen vom Anfang des Jahres.

            Bildschirmfoto zu 2018-12-08 15-40-41.png
            Angehängte Dateien
            Zuletzt geändert von lordofchaos; 08.12.2018, 15:45.

            Kommentar


              Hallo zusammen,

              Lese hier im Forum schon eine ganze Weile mit, habe aber seither sehr wenig geschrieben. Daher kurz zu mir: WIr haben vor 3 Jahren gebaut, alles mit KNX ausgestattet, vor ca. 1 Jahr habe ich noch Edomi dazu aufgesetzt, auch das funktioniert seit dieer Zeit und die Logiken sind schon ganz schön angewachsen.


              Jetzt versuche ich mich seit einiger Zeit an Alexa und habe im Download-Bereich diesen tollen Skill entdeckt. Leider habe ich bei der Installation so einige Probleme und hoffe, dass mir evt. jemand helfen kann, der ein ähnliches Problem hatte oder sich besser mit Linux auskennt. :-)

              Ich versuche den Reverse-Proxy auf einem Raspberry Pi 1 aufzusetzen. Als erstes habe ich die Variante mit dem Apache2 verssucht. Dabei war allerdings die phpinfo-Seite zwar innerhalb meines Netzwerks erreichbar, aber nicht über den DynDNS bzw. aus dem Internet (ungefähr so wie in Eintrag 224 beschrieben). Wahrscheinlich war irgendwas an der Basis-Konfiguration des Apache-Servers falsch.
              Nach einigen Versuchen habe ich abgebrochen und es noch einmal mit dem NGinx versucht. Dieser war auf Anhieb sowohl im Netzwerk als auch über DYNDNS bzw. Internet erreichbar. Da habe ich sofort mit dem SSL-Zertifikat weitergemacht. Letsencrypt lief auch durch und brachte am Ende eine Erfolgsmeldung, auch die Konfiguration der default.orig habe ich noch hinbekommen. Allerdings war ab diesem Moment der Nginx nicht mehr erreichbar, weder im Netzwerk, noch über Internet.
              Das liegt daran, dass er gar nicht mehr gestartet werden kann, da der Startvorgang mit der Fehlermeldung abbricht, dass die beiden in der Konfiguration erwähnten Zertifikatsdateien fullchain.pem und privkey.pem nicht vorhanden sind. Schon das Verzeichnis live ist nicht vorhanden, bzw. wird mir aufgrund von nicht vorhandenen Rechten nicht angezeigt, keine Ahnung welche Variante wirklich zutrifft.

              Was habe ich falsch gemacht, bzw. was muss ich ändern?

              Vielen Dank im Voraus an alle Helfer.
              Zuletzt geändert von KBNSX; 09.12.2018, 11:20.

              Kommentar


                Hallo jonofe

                Ich habe den Alexa Smarthome LBS weitestgehend erfolgreich nach Eurer (Jonofe, tger977, Panzeron) Anleitung installiert und getestet. An dieser Stelle erst einmal vielen Dank für den LBS un die tolle Anleitung.

                Grundsätzlich kann ich mit der Beispielkonfiguration aus Kapitel 6 eine Lampe schalten.
                Einen Anbindung weiterer Smart-Home-Devices steht also "fast" nichts im Wege.

                Fast, weil noch zwei/drei Dinge nicht ganz rund laufen:

                Das Suchen nach Smart-Home-Geräten über die Alexa-Web-Seite führt genaus wenig zum Erfolg, wie die Aufforderung an Alexa "Alexa, finde meine Geräte", mit dem einen Unterschied, das beim Sprachdialog mit Alexa keine Logdatei durch die Lamda-Funktion erzeugt wird.

                In beiden Fällen kann man aber in der "edomi-smarthome-skill-PLv3.log" sehen, dass EDOMI eine korrekte Antwort zurück schickt.
                Im Fall der Suche über die Web-Seite, bei der eine Logdatei durch die Lamda-Funktion geschrieben wird, sind diese Daten auch dort zu sehen und identisch.

                Trotz der akustsichen Rückmeldung durch Alexa, dass keine smarten Geräte gefunden wurden, bzw. der weiterhin leeren Geräte-Liste auf der Webseite, kann ich die "Test"-Lampe mit "Alexa, schalte test ein" bzw "...aus" schalten.

                Wenn es Dir weiterhilft, kann ich Dir die entsprechenden Log's zur Verfügung stellen.

                Eine kleine redaktionelle Unschärfe hat mich auch noch einige Zeit der Suche nach der Ursache gekostet. Die Log-Datei in die das LBS bzw. das php-Script schreibt ist nicht
                "/usr/local/edomi/www/data/log/edomi-smarthome-skill.log" wie auf Seite 33 in Kapitel 6 beschrieben, sondern "/usr/local/edomi/www/data/log/edomi-smarthome-skill-PLv3.log". Mir ist das leider nicht aufgefallen, weil es die Datei "edomi-smarthome-skill.log" von den frühren Tests noch gab. Ein Blick in das aktuelle PHP-Script PLv3 war dann aber des Rätsels Lösung . ;-)

                Vielen Dank und viele Grüße
                wingfighter


                Kommentar


                  Zitat von KBNSX Beitrag anzeigen
                  Hallo zusammen,
                  Nach einigen Versuchen habe ich abgebrochen und es noch einmal mit dem NGinx versucht. Dieser war auf Anhieb sowohl im Netzwerk als auch über DYNDNS bzw. Internet erreichbar. Da habe ich sofort mit dem SSL-Zertifikat weitergemacht. Letsencrypt lief auch durch und brachte am Ende eine Erfolgsmeldung, auch die Konfiguration der default.orig habe ich noch hinbekommen. Allerdings war ab diesem Moment der Nginx nicht mehr erreichbar, weder im Netzwerk, noch über Internet.
                  Das liegt daran, dass er gar nicht mehr gestartet werden kann, da der Startvorgang mit der Fehlermeldung abbricht, dass die beiden in der Konfiguration erwähnten Zertifikatsdateien fullchain.pem und privkey.pem nicht vorhanden sind. Schon das Verzeichnis live ist nicht vorhanden, bzw. wird mir aufgrund von nicht vorhandenen Rechten nicht angezeigt, keine Ahnung welche Variante wirklich zutrifft.

                  Was habe ich falsch gemacht, bzw. was muss ich ändern?

                  Vielen Dank im Voraus an alle Helfer.
                  Hi hab zwar nicht soviel Ahnung aber versuche mal mein Glück. Du kannst zunächst
                  Code:
                  sudo su
                  eingeben damit du alle weiteren Befehle als root ausführst.
                  Versuche dann mal in das live Verzeichnis zu kommen.
                  Wenn das nicht geht würde ich zunächst sagen bei der Erstellung von dem ssl Zertifikat ist was schief gelaufen.

                  Hier noch ein Zitat von der alten Anleitung
                  Code:
                  Dann kann die SSL Installation über folgenden Link getestet werden.
                  
                  [URL]https://www.ssllabs.com/ssltest/analyze.html?d[/URL][COLOR=#0000ff][U]=[/U][/COLOR][COLOR=#ff3333][U]<DYNDNS_NAME>[/U][/COLOR][COLOR=#0000ff][U]&latest [/U][/COLOR]
                  
                  Hier sollte nach einigen Minuten ein Overall Rating B herauskommen. (Anzeige im Browser)
                  Zuletzt geändert von lordofchaos; 10.12.2018, 22:03. Grund: Tippfehler

                  Kommentar


                    Zitat von Wingfighter Beitrag anzeigen
                    Trotz der akustsichen Rückmeldung durch Alexa, dass keine smarten Geräte gefunden wurden, bzw. der weiterhin leeren Geräte-Liste auf der Webseite, kann ich die "Test"-Lampe mit "Alexa, schalte test ein" bzw "...aus" schalten.
                    Alexa sagt doch bestimmt, dass keine "neuen" Geräte gefunden wurde. Somit kannst du natürlich weiterhin auf bestehende Geräte zugreifen.
                    Auf welcher Webseite tauchen keine Geräte auf? Meinst du alexa.amazon.com? Wenn dort nichts auftaucht und du trotzdem was schalten kannst, dann wäre das kurios oder du befindest dich im falschen Account. Wie hast du denn die Leuchte gefunden, welche Du schalten kannst? Sicher dass du nicht noch den alten Skill laufen hast?

                    Kommentar


                      nochmal kurz drauf rumreiten
                      alexa-config-PLv3.php
                      Code:
                      $user_id                    = '';
                      ist zunächst ok ?

                      Kommentar


                        Zitat von lordofchaos Beitrag anzeigen

                        Hi hab zwar nicht soviel Ahnung aber versuche mal mein Glück. Du kannst zunächst
                        Code:
                        sudo su
                        eingeben damit du alle weiteren Befehle als root ausführst.
                        Versuche dann mal in das live Verzeichnis zu kommen.
                        Wenn das nicht geht würde ich zunächst sagen bei der Erstellung von dem ssl Zertifikat ist was schief gelaufen.
                        Danke schön, für Deine Antwort. Das Verzeichnis gibt es wirklich nicht, es gibt nur die Verzeichnisse accounts, csr, keys, renewal und renewal-hooks. Seltsam, dass letsencrypt dann mit einer Erfolgsmessung endet.

                        Zitat von lordofchaos Beitrag anzeigen
                        Hier noch ein Zitat von der alten Anleitung
                        Code:
                        Dann kann die SSL Installation über folgenden Link getestet werden.
                        
                        [URL]https://www.ssllabs.com/ssltest/analyze.html?d[/URL][COLOR=#0000ff][U]=[/U][/COLOR][COLOR=#ff3333][U]<DYNDNS_NAME>[/U][/COLOR][COLOR=#0000ff][U]&latest [/U][/COLOR]
                        
                        Hier sollte nach einigen Minuten ein Overall Rating B herauskommen. (Anzeige im Browser)
                        Das habe ich natürlich ausprobiert und - wer hätte das erwartet - natürlich kein Rating B rausbekommen, sondern ein Rating T. Das widerrum bedeutet ja aber eigentlich, dass zumindest ein Zertifikat vorhanden sein müsste, sonst kann ja wahrscheinlich kein Rating raus kommen. Allerdings - und jetzt wird es ganz seltsam - stand dort dabei, dass das Zertifikat für eine Webseite www.traffic-exchanger.com gültig sei und es sich wohl um einen "Certificate name mismatch" handle....
                        Die IP-Adresse , die dort genannt wird, also auf die verwiesen wird, stimmt aber mit der meiner FritzBox überein. Und ich habe es mehrfach versucht, meine DynDNS stimmt auch, habe mich also nicht vertippt....

                        Danke schonmal für weitere Hilfestellungen.

                        Kommentar


                          jonofe
                          OK. Das kann in der Tat sein, dass Alexa gesagt hate, keine "neuen" Geräte gefunden zu haben.
                          Ich habe mittlerweile in der App nachgeschaut. Dort wird die Lampe namens "test" angezeigt. Ich hatte das Gerät übrigens auf Verdacht angesprochen, da ich ja den Namen (test) veregeben hatte.
                          Auf der Web-Seite war ein explizites Neuladen der Seite notwendig. Dort wird jetzt "test" auch angezeigt.
                          Es funktioniert also doch alles wie es soll. ;-)

                          Vielen Dank für die Unterstützung.

                          Kommentar


                            lordofchaos
                            Ja, ist korrekt.. Nach der ersten erfolgreichen Verbindungsaufnahme steht die user-id in der Logdatei. Da kannst Du sie dann raus kopieren.

                            Kommentar


                              lordofchaos : Ich denke du musst zunächst das letsencrypt Thema klären. Ich würde das noch mal von vorn starten.

                              Kommentar


                                Mal ne Frage, weil ich das Thema demnächst auch mal angehen will... Bei mir steht schon so viel "Kram" rum (Fritzbox, Switch, NAS, Server mit VMs, Echo Dot, ...). Muss ich mir jetzt für den Alexa Smarthome Skill echt noch nen Raspberry organisieren? Gibts da ne Alternative? Linux VM etc.?
                                Ciao Jochen

                                Kommentar

                                Lädt...
                                X