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

  • jonofe
    antwortet
    Am besten mal ein PHP Skript validation.php erstellen mit folgendem Inhalt:

    PHP-Code:
    <?php
        $url 
    ### DEINE Validation URL ###;
        
    $ch curl_init();
        
    //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        
    curl_setopt($chCURLOPT_CAINFO'/etc/pki/tls/cacert.pem');
        
    curl_setopt($chCURLOPT_URL$url);
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
    $json curl_exec($ch);
        
    curl_close($ch);
        
    print_r($json);
    ?>
    und dann mal das cacert.pem auf den neuesten Stand bringen:

    Code:
    curl https://curl.haxx.se/ca/cacert.pem -o /etc/pki/tls/certs/ca-bundle.crt
    Danach mal das obige Skript starten:

    Code:
    php ./validation.php
    Zweiten Test ohne die Kommentarzeichen in der dritten Zeile druchführen.

    Danach mal zurückmelden, was dabei rauskam.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Ja, die Validation URL im Browser aufrufen.
    Wenn das geht, dann liegt es vermutlich am SSL deines Curls.

    Einen Kommentar schreiben:


  • Lapheus
    antwortet
    Zitat von jonofe Beitrag anzeigen

    Ich habe mal eine neue Version hochgeladen, damit sollte es hoffentlich funktionieren.
    Hallo Andre, leider nicht.

    Habe das Zipfile im AWS aktualisiert.
    Hab das edomi-smarthome-skill-PLv3.php im Alexa Verzeichnis aktualisiert.

    Code:
    Received (JSON) Event from alexa@amazon
    =========================================
    Array
    (
        [directive] => Array
            (
                [header] => Array
                    (
                        [namespace] => Alexa.Authorization
                        [name] => AcceptGrant
                        [messageId] => 06d015c0-a93b-4099-b564-3916d5810fd2
                        [payloadVersion] => 3
                    )
    
                [payload] => Array
                    (
                        [grant] => Array
                            (
                                [type] => OAuth2.AuthorizationCode
                                ["code"] => RHzapBXSZfJgzaybGsDz
                            )
    
                        [grantee] => Array
                            (
                                [type] => BearerToken
                                [token] => Atza|IwEB...TnUsLQfutXAY
                            )
    
                    )
    
            )
    
    )
    
    Validation URL: https://api.amazon.com/auth/O2/tokeninfo?access_token=Atza|IwEBIBbnx...E0vTnUsLQfutXAY
    JSON Validation Response:
    OAUTH Validattion Response:
    
    Source    : FAIL
    OAUTH Access Token invalid
    Habe die alexa-config-PLv3.php nach der Anleitung gefüllt und mittlerweile fünfmal überprüft.

    Noch irgendwelche Ideen?
    Kann ich das irgendwo debuggen?

    Einen Kommentar schreiben:


  • McEgg
    antwortet
    Ok, perfekt. Danke für die Antwort. Dann muss ich nichts tun...

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von McEgg Beitrag anzeigen
    Muss ich irgendwas tun? Ich verstehs net so ganz. Nicht, dass irgendwelche Kosten anfallen...
    Das bezieht sich grundsätzlich auf deinen AWS Account.

    Wenn du den bislang nur für den Edomi Skill verwendet hast und diesen (inkl. der Lmbda Funktion) wieder gelöscht hast, dann fallen auch keine Kosten an.
    Es sollte sogar reichen, den EDOMI Skill in der Alexa App zu deaktivieren, denn dann wird die Lambda Funktion gar nicht mehr aufgerufen.
    Zusätzlich sind die ersten 1 Mio. Anforderungen (400,000 GB-SEKUNDEN) kostenfrei.

    Solltest du andere Ressourcen bei AWS verwendet haben, welche im ersten Jahr kostenlos sind und danach berechnet werden, dann musst du diese natürlich beenden, damit keine Kosten anfallen. Beispiele wären hier eine t2-micro-VM, 5GB S3 Storage, 25GB DynamoDB, etc., welche nur im ersten Jahr kostenfrei sind.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von Lapheus Beitrag anzeigen
    Ich habe keine Idee mehr was ich machen kann, tüftle nun seit zwei Tagen damit rum.
    Ich habe mal eine neue Version hochgeladen, damit sollte es hoffentlich funktionieren.

    Einen Kommentar schreiben:


  • McEgg
    antwortet
    Ich hatte den LBS mal in Verwendung. Nutze Alexa allerdings nicht mehr. Jetzt habe ich folgende Mail von Amazon bekommen:
    Dear AWS Customer,

    Our records indicate that the Free Tier for account xxxx will expire on December 31, 2019. The AWS Free Tier includes offers that expire 12 months following sign up, and others that never expire.

    If no action is taken, your resources will continue to run, and the credit card you have on file will be charged for resources you are using when the 12-month Free Tier period ends.

    Any service in the “Always Free” category will continue to run without charge, within the AWS Free Tier Usage limits.

    To estimate your monthly bill, use the forecasting tool in the billing console. You can also use AWS CloudWatch to create billing alerts.

    Sincerely,

    The Amazon Web Services Team
    Muss ich irgendwas tun? Ich verstehs net so ganz. Nicht, dass irgendwelche Kosten anfallen...

    Einen Kommentar schreiben:


  • Lapheus
    antwortet
    Zitat von Glotzkowski Beitrag anzeigen
    Dazu habe ich noch DIES gefunden.
    Das kann und wird natürlich jeder für sich entscheiden, ob man dies genauso sieht.
    Alternativ soll man die Challenges auch per DNS validieren können, dies habe ich aber noch nicht getestet, gibt es vielleicht jemanden, der dies bereits so umgesetzt hat?
    Hallo,
    beim durchstöbern des Threads gefunden...
    Ja, ich nutze das jetz schon 1,5 Jahre. Kurz bevor man sich damit auch Wildcard Zertifikate erstellen konnte (Ja, funktioniert auch!).
    Vielleicht mal für alle interessant: Der Hoster Servercow.de bietet die Domain für 7€ im Jahr an.
    Der Service von Ihm ist sehr schnell, ich habe auch meine Postfächer bei Ihm. Man kann ihn Anfragen ob er einen Sonderpreis bei "nur 4 bis 5" Postfächern macht.
    Wenn man seine Domain dort hat, kann man vom Router wie beim DynDNS die IP Adressen aktualisieren. es ist also sowas möglich wie edomi.meinedomain.de und alexa.meinedomain.de.
    Dann hat er eine saubere Beschreibung und Scripte für die DNS Verifizierung bei Letsencrypt zusammen mit dem Dehydrated Script, siehe hier.

    Ich wollte das so nicht mehr missen!

    PS: Nein ich bekomme kein Geld von Ihm. aber gute Dienstleister (aus meiner Sicht) darf man weiter empfehlen.
    Zuletzt geändert von Lapheus; 15.12.2019, 23:59. Grund: Ergänzung zu Wildcard Zertifikat

    Einen Kommentar schreiben:


  • Lapheus
    antwortet
    Hallo zusammen,

    ich bekomme aktuell den Skill nicht aktiviert.

    Umgebung Edomi V2.0 auf Centos 7 (Das verlinkte Image von der edomi.de Webseite)
    Code:
    [root@edomi log]# rpm -q centos-release
    centos-release-7-6.1810.2.el7.centos.x86_64

    In der edomi-smarthome-skill-PLv3.log steht:
    Code:
    Received (JSON) Event from alexa@amazon
    =========================================
    Array
    (
        [directive] => Array
            (
                [header] => Array
                    (
                        [payloadVersion] => 3
                        [namespace] => Alexa.Authorization
                        [name] => AcceptGrant
                        [messageId] => 8ca80338-1666-446f-9bd7-24116a4d7646
                    )
    
                [payload] => Array
                    (
                        [grantee] => Array
                            (
                                [token] => Atza|IwEBIEMTc...TGg1h7DQ gekürzt
                                [type] => BearerToken
                            )
    
                        [grant] => Array
                            (
                                [(code)] => RHSdUrWijTkwWtPrnXJu
                                [type] => OAuth2.AuthorizationCode
                            )
    
                    )
    
            )
    
    )
    
    Validation URL: https://api.amazon.com/auth/O2/tokeninfo?access_token=Atza%7CIwEBIEMTc...TGg1h7DQ gekürzt
    RAW Message:
    JSON Validation Response:
    OAUTH Validattion Response:
    
    
    Source    : FAIL
    OAUTH Access Token invalid
    Es kommt der Fehler per Webseiten Aktivierung: "Verknüpfung mit Edomi konnte diesmal nicht hergestellt werden."
    Auch die Aktivierung aus der Smartphone-App gibt das gleiche Ergebnis.

    Wenn ich im Skill unter Permissions die Option "Send Alexa Events" deaktiviere, kann ich den Skill aktivieren.
    Aber auch dabei bleibt es beim
    Code:
    Received (JSON) Event from alexa@amazon
    =========================================
    Array
    (
        [directive] => Array
            (
                [header] => Array
                    (
                        [payloadVersion] => 3
                        [namespace] => Alexa.Discovery
                        [name] => Discover
                        [messageId] => a34011e5-f2e9-453f-9fb7-8890cffa352f
                    )
    
                [payload] => Array
                    (
                        [scope] => Array
                            (
                                [token] => Atza|IwEBIF...OWyOto3Q gekürzt
                                [type] => BearerToken
                            )
    
                    )
    
            )
    
    )
    
    Validation URL: https://api.amazon.com/auth/O2/tokeninfo?access_token=Atza%7CIwEB...M9OWyOto3Q gekürzt
    RAW Message:
    JSON Validation Response:
    OAUTH Validattion Response:
    
    
    Source    : FAIL
    OAUTH Access Token invalid
    Es wird dann auch keine eventGatewayConfig.php erstellt, klar weil ja die Option "Send Alexa Events" deaktiviert ist.

    Bausteine sind nur noch die beiden aktuellen 19001200(Version 0.6) und 19001201(Version 0.5) eingerichtet.
    Meine alten Alexa Konfiguration mit den PLv2 Bausteinen habe ich komplett entfernt (obwohl es damit lief).

    Auch die Beiträge ab #540 habe ich mir angesehen, macht aber keinen Unterschied.
    Beitrag #552 hab ich auch angepasst, das steht in der Doku nicht drin mit Python Version 3.6.
    Die Datei scheint zu passen. Hoffe das das Deployment.zip File aus dem Download Version V0.6 dazu passt.

    Ich habe keine Idee mehr was ich machen kann, tüftle nun seit zwei Tagen damit rum.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von Stereofeld Beitrag anzeigen
    allerdings ist das Skript nach meinem Verständnis bereits Python 3 kompatibel, oder?
    Bei mir läuft es schon seit längerer Zeit unter Python 3.6.
    Ich lade mal in Kürze ein Update hoch, könnte sein, dass sich am Deployment ZIP etwas geändert hat.

    Einen Kommentar schreiben:


  • Stereofeld
    antwortet
    Hallo Andre,

    vielen Dank zunächst für die super Bausteine für den Alexa Smarthome-Skill. Sie laufen sehr stabil und zuverlässig bei mir.


    AWS hat mich heute drauf hingewiesen, dass die Lambda-Funktion Python 2.7 verwendet und der Support dafür am 1. Januar 2020 ausläuft. Das hat wohl erstmal keine Auswirkungen, aber sie empfehlen einen Umstieg auf Python 3. Wahrscheinlich hast du diese Mail auch bekommen.

    Nur um zu verhindern, dass AWS nicht doch den Support kurzfristig abschaltet und irgendwas stehen bleibt, meine Nachfrage: Ich habe leider sehr weinig Ahnung von Python, allerdings ist das Skript nach meinem Verständnis bereits Python 3 kompatibel, oder? Muss man dem AWS irgendwie mitteilen, welche Version verwendet werden soll?

    Danke und Gruß
    Thomas

    Einen Kommentar schreiben:


  • Guidokoeller
    antwortet
    Hallo
    Bei mir läuft alles prima. Danke nochmal. Ich möchte mir ein NAS zulegen. Kann man Edomi im Docker und gleichzeitig auch den Revers Proxy auf dem NAS einsetzen

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von PaWi Beitrag anzeigen
    Gibt es einen Workaround dafür?
    Nein, gibt es nicht.
    Außer zwei völlig getrennte EDOMI Instanzen.

    Einen Kommentar schreiben:


  • PaWi
    antwortet
    Gibt es einen Workaround dafür? Wir (zwei Benutzer) möchten Alexa völlig getrennt benutzen. Macht z. B. bei Kalenderfunktionen usw Sinn.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Mit zwei Accounts funktioniert der 1202 nicht. Der Alexa Control LBS schreibt die Konfiguration, die der 1202 verwendet in die Dateil /tmp/echos.inc.php.
    Diese wird vom 1202 verwendet. Darin steht dann auch welches Cookie verwendet wird. Für zwei Accounts funktioniert diese Logik nicht.

    Warum verwendest du zwei Accounts?

    Einen Kommentar schreiben:

Lädt...
X