Ankündigung

Einklappen

Sammelbestellung ETS6 Vollversionen aktiv!

Sammelbestellung für ETS6 Vollversionen (Prof., Home, Lite) mit 40% Rabatt aktiv! Infos im Forum!
Mehr anzeigen
Weniger anzeigen

Alexa Smarthome Skill (Payload Version 3)

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

  • KBNSX
    antwortet
    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.

    Einen Kommentar schreiben:


  • lordofchaos
    antwortet
    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.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    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)

    Einen Kommentar schreiben:


  • lordofchaos
    antwortet
    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.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    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.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    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.

    Einen Kommentar schreiben:


  • lordofchaos
    antwortet
    hab ich auch gemacht und hat nichts gebracht ebenso wo das
    Code:
    //if (validate_token($token) === false)
    // fail('OAUTH Access Token invalid');
    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.

    Wenn ich mir die Konfiguration erneut aufrufe kommt unten noch immer der Hinweistext
    "Sie müssen die Fähigkeit zum Verknüpfen von Konten konfigurieren, damit das Smart Home Voice-Modell funktionsfähig ist"
    Ich denke da werd ich nochmal schauen ob was falsch ist. Oder bleibt der Hinweistext immer stehen
    Zuletzt geändert von lordofchaos; 07.12.2018, 23:21.

    Einen Kommentar schreiben:


  • gspsteve
    antwortet
    Zitat von jonofe Beitrag anzeigen
    Habt ihr das "yum update nss" achon mal auf dem EDOMI Server gemacht?
    Ja, habe ich ausgeführt

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Ist echt seltsam, dass beide Responses leer sind. Hab gerade noch mal in der Amazon API nachgeschaut. Der Aufruf sollte richtig sein.
    Ich werde am Wochenende mal etwas mehr logging einbauen, dann kann man vielleicht erkennen, was da genau schief läuft.

    Habt ihr das "yum update nss" achon mal auf dem EDOMI Server gemacht?

    Ansonsten gehts vermutlich schief, weil ein curl request auf eine HTTPS Seite gemacht wird.

    Einen Kommentar schreiben:


  • gspsteve
    antwortet
    Zitat von jonofe Beitrag anzeigen
    Aber bei dir ist nicht "Source FAIL" oder?
    Source FAIL kommt auch bei mir, soeben wieder versucht:

    Source : FAIL
    OAUTH Access Token invalid
    JSON Validation Response:
    OAUTH Validattion Response:

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von gspsteve Beitrag anzeigen
    Bei mir steht genau dasselbe im Log wenn ich bei Amazon nach Geräte suche.
    Aber bei dir ist nicht "Source FAIL" oder?

    Aber insgesamt ist das schon recht seltsam und ich habe keine wirklich Erklärung dafür. Ich habe ja vor einer Woche noch einen komplett neuen Skill angelegt und hatte diese Probleme nicht.

    Einen Kommentar schreiben:


  • gspsteve
    antwortet
    Zitat von lordofchaos Beitrag anzeigen
    Wie hast du den die OAuth Funktion deaktiviert. Was muss ich wo machen?
    In der Datei edomi-smarthome-skill-PLv3.php einfach vor folgende Zeile ein "//"

    //if (validate_token($token) === false)
    // fail('OAUTH Access Token invalid');

    Einen Kommentar schreiben:


  • lordofchaos
    antwortet
    Zitat von gspsteve Beitrag anzeigen

    Bei mir steht genau dasselbe im Log wenn ich bei Amazon nach Geräte suche. Ich habe zwischenzeitlich die OAuth Funktion auskommentiert.
    ja hatte ich gelesen war mir nur nicht sicher ob dies nun auch genau auf mich zutrifft. Also die App aktivieren konntest du nur keine Geräte finden. Bei mir geht das aktivieren schon nicht.

    Wie hast du den die OAuth Funktion deaktiviert. Was muss ich wo machen? Irgendwo muss ich ne # davor setzen richtig.

    Einen Kommentar schreiben:


  • gspsteve
    antwortet
    Zitat von lordofchaos Beitrag anzeigen
    Also edomi-smarthome-skill-Plv3.log steht folgendes
    Bei mir steht genau dasselbe im Log wenn ich bei Amazon nach Geräte suche. Ich habe zwischenzeitlich die OAuth Funktion auskommentiert.

    Einen Kommentar schreiben:


  • lordofchaos
    antwortet
    Also edomi-smarthome-skill-Plv3.log steht folgendes

    Code:
    Received (JSON) Event from alexa@amazon
    =========================================
    Array
    (
    [directive] => Array
    (
    [header] => Array
    (
    [payloadVersion] => 3
    [namespace] => Alexa.Authorization
    [name] => AcceptGrant
    [messageId] => c4dacxxxxxxxxxxxxxxxxxxb51210
    )
    
    [payload] => Array
    (
    [grantee] => Array
    (
    [token] => Atza|IwEBIAeTLT2Zxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxGYVhG_FF0$
    [type] => BearerToken
    )
    
    [grant] => Array
    (
    (code] => RHxxxxxxxxxxxxxxxxxxxAjn
                                [type] => OAuth2.AuthorizationCode
                            )
    
                    )
    
            )
    
    )
    
    Validation URL: https://api.amazon.com/auth/O2/tokeninfo?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxd$
    JSON Validation Response:
    OAUTH Validattion Response:
    
    
    Source    : FAIL
    OAUTH Access Token invalid

    Einen Kommentar schreiben:

Lädt...
X