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

  • Glotzkowski
    antwortet
    Zitat von ThorstenGehrig Beitrag anzeigen
    heißt das wir sollen das Skill-Script entsprechend anpassen?
    Das hatte ich getestet aber alleine die Funktion zu ersetzen klappt aufgrund des folgenden Fehlers nicht.

    Code:
    [COLOR=#FF0000][FONT=EDOMIfontMono][SIZE=10px]Datei: /usr/local/edomi/www/data/liveproject/lbs/LBS19001201.php | Fehlercode: 8 | Zeile: 1401 | Undefined variable: eventGatewayRegion[/SIZE][/FONT][/COLOR]
    Ich hatte allerdings auch keine Probleme und habe wieder die vorherige Funktion eingebaut.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Im nächsten Update ist die Änderung dabei. Und normalerweise tritt das Problem nicht auf, denn dies deutet auf einen Fehler bei der Aktivierungs des Skills hin, welche zwar grundsätzlich unkritisch ist, aber das Event-Gateway dann nicht funktioniert.
    Zu deinem anderen Problem bin ich etwas ratlos. Kommt denn bei der Aktivierung etwas im Skillskript an? Das sollte eigentlich beim Aktivieren getriggert werden. Wenn dies nicht passiert, dann gibt es einen Aktivierungsfehler. Du könntest dir mal die Cloudwatch Einträge der Lambda Funktion anschauen.

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    Hi Jonofe
    heißt das wir sollen das Skill-Script entsprechend anpassen? Oder passt du das im DL portal an?
    Und... für meine Problemsituation gibts keinen Hinweiß?
    Hast du eine Idee wo man bei AWS logs finden kann in dem Auth-Kontext?

    Gruß
    Thorsten

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von millo Beitrag anzeigen
    Ich habe im LBS19001201 Zeile 1689: Code:

    include '/usr/local/edomi/www/admin/lbs/alexa/eventGatewayConfig.php';
    entfernt
    Das ist aber nicht im Sinne des Erfinders. Vielleicht solltest du eher die Ursache finden, als das Symptom zu beseitigen?

    EDIT: ich habe die Ursache gefunden, es ist nicht die aktuellste Version des Skill Skripts im DL Portal.
    Die sendEvent() Funktion sieht nun so aus:

    PHP-Code:
    function LB_LBSID_sendEvent($id$event)
    {
        if (
    file_exists('/usr/local/edomi/www/admin/lbs/alexa/eventGatewayConfig.php')) {
            include 
    '/usr/local/edomi/www/admin/lbs/alexa/eventGatewayConfig.php';
            static 
    $eventGatewayAccessToken;
            
            if (isset(
    $eventGatewayRefreshToken)) {
                if (! isset(
    $eventGatewayAccessToken ))
                    
    $eventGatewayAccessToken LB_LBSID_refresh_access_token($id$eventGatewayClientId$eventGatewayClientSecret$eventGatewayRefreshToken);
                
    $event['event']['endpoint']['scope']['token'] = $eventGatewayAccessToken;
                
    LB_LBSID_logging($id"Sending event to Alexa Event Gateway: "$event);
                
    $httpResponseCode LB_LBSID_sendEventToGateway($event$eventGatewayRegion);
                if (
    $httpResponseCode == 202)
                    
    LB_LBSID_logging($id'Successfully sent event');
                elseif (
    $httpResponseCode == 401) {
                    
    LB_LBSID_logging($id'Access token expired, refreshing now ...');
                    
    $eventGatewayAccessToken LB_LBSID_refresh_access_token($id$eventGatewayClientId$eventGatewayClientSecret$eventGatewayRefreshToken);
                    
    $event['event']['endpoint']['scope']['token'] = $eventGatewayAccessToken;
                    
    $httpResponseCode LB_LBSID_sendEventToGateway($event);
                    if (
    $httpResponseCode == 202)
                        
    LB_LBSID_logging($id'Successfully sent event');
                    else
                        
    LB_LBSID_logging($id'Failed to send event. Error Code: ' $httpResponseCode);
                } else
                    
    LB_LBSID_logging($id'Failed to send event. Error Code: ' $httpResponseCode);
            } else
                
    LB_LBSID_logging($id"Failed to send event due to missing RefreshToken!");
        } else
            
    LB_LBSID_logging($id"eventGatewayConfig.php missing. Please activate your EDOMI smarthome skill via the alexa app on your mobile device.");

    Eigentlich sollte die eventGatewayConfig.php nach der Aktivierung des Skills vorhanden sein, denn nur dann funktionieren auch die Funktionen des eventGateways, die vom LBS verwendet werden.

    Ich glaube mich zu erinnern, dass du bei der Konfiguration des Skills im Alexa Portal das EventGateway für den Skill aktivieren musst. Vermutlich wird nur dann die entsprechende Message geschickt, die dann das entsprechende Access und Refresh Token in der Config Datei speichert.

    Einfach mal checken und den Skill dann neu aktivieren.
    Zuletzt geändert von jonofe; 27.06.2019, 10:58.

    Einen Kommentar schreiben:


  • millo
    antwortet
    Ich habe die Verbindung mit Alexa erfolgreich nach Anleitung hergestellt.

    In den Fehler-Logs hatte ich noch diesen Fehler:
    Code:
    [COLOR=#FF0000][FONT=EDOMIfontMono][SIZE=10px]Datei: /usr/local/edomi/www/data/liveproject/lbs/LBS19001201.php | Fehlercode: 2 | Zeile: 1392 | include(/usr/local/edomi/www/admin/lbs/alexa/eventGatewayConfig.php): failed to open stream: No such file or directory[/SIZE][/FONT][/COLOR]

    Ich habe im LBS19001201 Zeile 1689:
    Code:
    include '/usr/local/edomi/www/admin/lbs/alexa/eventGatewayConfig.php';
    entfernt, nun habe ich keine Fehler mehr.

    Danke für die Umsetzung und super Arbeit!

    Einen Kommentar schreiben:


  • vento66
    antwortet
    Keine Ahnung, ich nutze das nicht, könnte das aber mit dem hier https://knx-user-forum.de/forum/supp...o-speach/page7 zusammenhängen?

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    Hi
    ich bin immer noch erfolglos :-(
    ich denke ich muss beim Account-Linking anfangen. Irgendwelche Tipps wo/wie ich Debuggebn kann?
    Ich hab schon vermutet das das Zertifikat nicht stimmt - aber bei meinen Tests (von außen) sieht alles gut aus ...
    Ich geh auf dem Zahnfleisch :-(

    Gruß
    Thorsten

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    Hi
    ja - der Login-Dialog kommt beim ersten mal ... dann kommt immer direkt die Fehlermeldung.
    Warum DevUS? ja... keine Ahnung :-( Der Skill ist definitiv GERMAN und für Deutschland... aber DevUS habe ich schon immer gehabt (und hat trotzdem Funktioniert).
    Irgendwie scheint mein Konto noch irgendwie mit den USA verbunden zu sein (aus der Zeit als es die Echo´s nur in den USA gab). Mittlerweile ist das aber nach Deutschland Transferiert - und alle anderen deutschen Skills sind auch da.
    Ich hab gestern sogar mein AWS Konto löschen und neu einrichten wollen - was eine blöde Idee ist (long story short: geht nicht unter gleicher email neu einzurichten).

    Jetzt mach ich mich nochmal dran AWS neu einzurichten... zum 3. mal :-(

    Gruß
    Thorsten

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Kommt denn beim Aktivieren des Skills der Amazon Login Dialog?
    Wieso denn DevUS? Hast du den Skill oder den Account auf US stehen?

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    .... und jetzt brauche ich eure Hilfe :-(
    Ich kriege den Skill nicht mehr ans laufen.
    Ich habe den Alexa-Smarthoime Skill und den Lambda schon neu angelegt.
    Die Verbindung über Reverse-Proxy scheint zu funktionieren - wenn ich den Link (von außen) direkt aufrufe kriege ich:
    Code:
    Received (JSON) Event from alexa@amazon
    =========================================
    
    No OAUTH Access Token received
    Was mir auffällt: mein Skill erscheint als "DevUS" (und nicht DevDE).
    Außerdem kann ich den Skill nicht aktivieren... es kommt immer eine Fehlermeldung "We were unable to link EDOMI Smarthome at this time." :-(

    Irgendeine Idee warum das Account-Linken nicht funktioniert?

    Gruß
    Thorsten

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    Hi
    da ich gerade ein paar Probleme mit meiner Alexa habe - habe ich alles mal "renoviert".
    Dabei ist mir ein kleiner Fehler in der Anleting aufgefallen:
    Auf Seite 33 steht:
    Code:
    touch /usr/local/edomi/www/data/log/edomi-smarthome-skill.log
    chmod 666 /usr/local/edomi/www/data/log/edomi-smarthome-skill.log
    tail -f /usr/local/edomi/www/data/log/edomi-smarthome-skill.log
    das File heißt jedoch /usr/local/edomi/www/data/log/edomi-smarthome-skill-PLv3.log ... damit klappt dann das log...


    Nachtrag: noch ein Fehler gefunden: auf Seite 27 ist der Punkt 4 zwar mit einem blauen Pfeil gekennzeichnet - es fehlt aber im text der hinweiß das dort "edomi-aws-lambda-skill-adapter-PLv3.lamda_handler" rein muss...

    Gruß
    Thorsten
    Zuletzt geändert von ThorstenGehrig; 23.06.2019, 23:34.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von momax Beitrag anzeigen
    ich habe eine lauffähige erst ALexa LBS Version (LBS19000806 & LBS19000646 ), muss ich nach Anleitung (Raspi/Reverse Proxy ausgenommen!) alles Neu einstellen/ersetzen?
    Jep.

    Zitat von momax Beitrag anzeigen
    Welche Vorteile hat Payload V3?
    Siehe erster Post in diesem Thread.

    Einen Kommentar schreiben:


  • momax
    antwortet
    Hallo,

    mal eine Verständnis Frage:
    • ich habe eine lauffähige erst ALexa LBS Version (LBS19000806 & LBS19000646 ), muss ich nach Anleitung (Raspi/Reverse Proxy ausgenommen!) alles Neu einstellen/ersetzen?
    • Welche Vorteile hat Payload V3?
    Vielen Dank!

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Ich erwarte keine Probleme, da nur wenige Standard Python Modules verwendet werden, welche alle Bestandteil des Deployments sind und keine Anforderungen an OS spezifisches Libraries gestellt werden.

    Einen Kommentar schreiben:


  • Glotzkowski
    antwortet
    Muss man bzgl. der anstehenden Aktualisierungen von AWS Lambda irgendwas bei der Nutzung des LBS beachten bzw. sind die in diesem Threads genutzten Funktionen überhaupt davon betroffen?
    Zuletzt geändert von Glotzkowski; 18.05.2019, 07:32.

    Einen Kommentar schreiben:

Lädt...
X