Ankündigung

Einklappen

Hinweis

Die Forenregeln wurden überarbeitet (Stand 7.11.22). Sie sind ab sofort verbindlich. Wir bitten um Beachtung.
Mehr anzeigen
Weniger anzeigen

Alexa Routine mit einer Frage - Antwort - Tätigkeit

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

    #31
    Hi
    folgende schwierigkeiten:
    * in der Zeile "tar xvfz alexa-actions-for-edomi.tar.gz​ -C alexa-actions​cd /tmp/alexa-actions" scheinen nach dem .tar.gz unsichtbare Sonderzeichen zu sein.
    ein direktes copy & paste geht nachweißlich nicht unter windows und mac ...
    * In der zeile "mysql -u root -p oauth2 < oauth.sql" werde ich nach einem passwort gefragt - vermutlich der datenbank. Da bin ich irgendwie ohne ideen...

    Frage: die "Alexa Redirect URL sollte die URL verwendet werden, welche mit dem String der Client-ID beginnt."... da steh ich auf dem schlauch welche/woher die kommt...

    Soweit von mir...
    Gruß
    Thorsten
    Zuletzt geändert von ThorstenGehrig; 22.11.2022, 19:28.
    Meine Inst.: 73 KNX-Geräte, 18 Rolläden, 36 Schaltkanäle, 22 Dimm-Kanäle, 12 Heizungskanäle, 16 PM, 18 Gruppentaster
    Wiregate: >50 x Temperaturfühler, 2 x Luftfeuchte, Transponderleser || Gira Homeserver: Visu: 98%, Logiken 98% || Heizung: Dimplex WP mit KNX || Sonstiges: 3xSqueezebox, Mobotix T24, Asterisk

    Kommentar


      #32
      Zitat von ThorstenGehrig Beitrag anzeigen
      * in der Zeile "tar xvfz alexa-actions-for-edomi.tar.gz​ -C alexa-actions​cd /tmp/alexa-actions" scheinen nach dem .tar.gz unsichtbare Sonderzeichen zu sein.
      ein direktes copy & paste geht nachweißlich nicht unter windows und mac ...
      Ja das war mir heute auch aufgefallen. Liegt vermutlich an der Forensoftware hier. Bei mir hat es gereicht das letzte Zeichen zu löschen und neu zu tippen. Ich werde die Anleitung als TXT mit ins Archiv packen.

      Zitat von ThorstenGehrig Beitrag anzeigen
      * In der zeile "mysql -u root -p oauth2 < oauth.sql" werde ich nach einem passwort gefragt - vermutlich der datenbank. Da bin ich irgendwie ohne ideen...
      Das ist das mySQL Passwort. Bei EDOMI hat root bekanntlich das leere Passwort, d.h. einfach nur Return drücken.
      Vermutlich kannst du einfach das -p weglassen. Dann wird hoffentlich gar nicht erst nach dem Passwort gefragt. Kannst du ja mal testen.

      Zitat von ThorstenGehrig Beitrag anzeigen
      Frage: die "Alexa Redirect URL sollte die URL verwendet werden, welche mit dem String der Client-ID beginnt."... da steh ich auf dem schlauch welche/woher die kommt...
      Die gültigen Redirect URL stehen ganz unten auf der Account-Linking Seite. Eine davon fängt mit der Client-ID an, welche du weiter oben eingetragen hast. Genau die solltest du verwenden.

      FYI: Gleich kommt noch eine neue Version des Archivs. Das kann man dann einfach nochmal entpacken, um die alten Dateien zu überschreiben.

      Kommentar


        #33
        ich dreh mich im kreis mit der oauth thematic.
        im Video ist die client-ID "https://layla.amazon.com" und das selbst generierte passwort (beisp. geheim).

        Sollte dann der string so aussehen:
        mysql -u root -e "insert into oauth2.oauth_clients (client_id, client_secret, redirect_uri) values ('https://layla.amazon.com’,’geheim,’https://layla.amazon.com/api/skill/link/M112233445599V')"

        da kriege ich aber:
        ERROR 1136 (21S01) at line 1: Column count doesn't match value count at row 1

        Client-ID und Client-Secret (amzn1.application-oa2-client.431f6e4dc112233445551a4a88a7d und da81001122334411223344557d4390a6f8ec2b4c2c7dcd9862 4 0d64284129134e ) hätte ich auch - aber das passt nicht zur Anleitung - und funktioniert auch irgendwie nicht...
        Irgendein tipp?

        Für die Anleitung: kann man das oauth.sql so aufbauen das es beim 2. Aufruf erstmal audräumt (DROP TABLE IF EXISTS ...)?

        ​Gruß
        Thorsten
        Meine Inst.: 73 KNX-Geräte, 18 Rolläden, 36 Schaltkanäle, 22 Dimm-Kanäle, 12 Heizungskanäle, 16 PM, 18 Gruppentaster
        Wiregate: >50 x Temperaturfühler, 2 x Luftfeuchte, Transponderleser || Gira Homeserver: Visu: 98%, Logiken 98% || Heizung: Dimplex WP mit KNX || Sonstiges: 3xSqueezebox, Mobotix T24, Asterisk

        Kommentar


          #34
          Da fehlt das abschließende Anführungszeichen bei 'geheim'.

          Kommentar


            #35
            Bei dem mysql insert hatte ich ebenfalls Schwierigkeiten, wenn das Passwort (bestimmte) Sonderzeichen enthielt.
            Ich hab dann ein recht langes aus alphanumerischen Zeichen genommen und vereinzelt Sonderzeichen eingebaut, bis ich das Statement erfolgreich absetzen konnte.
            Alternativ könntest Du den Datensatz mit "HeidiSQL" oder ähnlichem Workbench eintragen:
            Unbenannt.png

            Das Problem ist hier sicher die Bash, wo man bestimmte Sonderzeichen escapen müsste.
            In Deinem geposteten mysql-Statement sehen die einfachen Anführungsstriche unterschiedlich aus und hinter dem Passwort ist keins mehr aufgeführt, wurde dies korrekt eingegeben?
            Die Redirect-URI mit der "Layla" sieht bei mir auch ähnlich aus, es sollte die URL sein, welche mit "https://layla.amazon.com/api/skill/link" beginnt, also nicht die "https://alexa.amazon.co.jp/api/skill/link" und nicht "https://pitangui.amazon.com/api/skill/link".
            Als Client-Id nur die URL "https://layla.amazon.com/".

            Ich hatte die Anleitung von jonofe (und das Video), sowie diese hier in Kombination genutzt:
            https://github.com/keatontaylor/alex...ki/CustomSkill

            Hilft das etwas weiter?

            Kommentar


              #36
              Auf Basis der Kommentare habe ich nochmal ein Update gemacht.
              • Text-Doku ist jetzt im tar.gz-Archiv enthalten (wird dann hier im Forum in kürze gelöscht)
              • DB wird jetzt im oauth.sql gelöscht falls schon vorhanden und auch neu angelegt. Dadurch entfällt das database create Statement in der Anleitung und man kann den Vorgang wiederholen, ohne dass mySQL Fehler liefert. Bisherig Inhalte gehen dabei natürlich verloren.
              • Anleitung ist geupdatet
                • bzgl. o.g. database create
                • Ausführlichere Beschreibung wo die Callback-URL zu finden ist
              • Zusätzliches mysql Statement zur Erstellung des scope Eintrags in der oauth_scopes Tabelle
              • Zusätzliche wird der Scope in der oauth_client Tabelle eingetragen
              • In input_text.alexa_actionable_notification.php wird nun auch auf ein korrektes Access-Token geprüft.
              • Logging in alexa_actionable_notification.php wurde angepasst
              • oauth Library (oauth2-server.php) wird jetzt per git clone aus meinem github account geholt. Dadurch wird verhindert, dass es irgendwann nicht mehr geht, falls sich beim Original Autor was ändert.
              Bei denen die Actionaable Notifications jetzt schon laufen müssen nur noch folgendes machen:
              • Die Dateien oauth.sql, input_text.alexa_actionable_notification.php und alexa_actionable_notification.php sollten durch die neuen ersetzt werden (Link kommt per PN)
              • alexa_actionable_notification.php muss dann wieder auf lokale config angepasst werden (remote user, remote password, remote iKO ID)
              • Per mysql Tool kann der Scope in der oauth-client Tabelle ergänzt werden. Kein MUSS, aber sinnvoll.

              Kommentar


                #37
                Danke.
                Weiteres feedback:
                • nach "mysql -u root -p oauth2 < oauth.sql" die passwortabfrage einfach mit return beantworten (ist der default bei EDOMI)
                • Bei "Your Secret: <beliebiges Passwort> (wird auch später bei der OAUTH2 Konfiguration verwendet" fehlt die "klammer zu"
                • Bei '<ALEXA_REDIRECT_URL' fehlt die spitze klammer zu
                • spricht was dagegen die client-id wie im video mit https://layla.amazon.com vorzugeben?
                • bei Punkt 11 (aktivierung des skills) musste ich erstmal mich mit meinen Edomi-daten anmelden before ich den Skill autorisieren konnte
                Scheinbar hab ich es jetzt auch geschafft das es läuft... testen kann ich erst nacher.
                Gruß
                Thorsten
                Meine Inst.: 73 KNX-Geräte, 18 Rolläden, 36 Schaltkanäle, 22 Dimm-Kanäle, 12 Heizungskanäle, 16 PM, 18 Gruppentaster
                Wiregate: >50 x Temperaturfühler, 2 x Luftfeuchte, Transponderleser || Gira Homeserver: Visu: 98%, Logiken 98% || Heizung: Dimplex WP mit KNX || Sonstiges: 3xSqueezebox, Mobotix T24, Asterisk

                Kommentar


                  #38
                  Zitat von ThorstenGehrig Beitrag anzeigen
                  nach "mysql -u root -p oauth2 < oauth.sql" die passwortabfrage einfach mit return beantworten (ist der default bei EDOMI)
                  Hieraus wird jetzt:

                  Code:
                  mysql -u root < oauth.sql
                  Dann ist kein Passwort mehr notwendig.

                  Zitat von ThorstenGehrig Beitrag anzeigen
                  • Bei "Your Secret: <beliebiges Passwort> (wird auch später bei der OAUTH2 Konfiguration verwendet" fehlt die "klammer zu"
                  • Bei '<ALEXA_REDIRECT_URL' fehlt die spitze klammer zu
                  Wird korrigiert.


                  Zitat von ThorstenGehrig Beitrag anzeigen
                  spricht was dagegen die client-id wie im video mit https://layla.amazon.com vorzugeben?


                  Es kann ja durchaus auch eine andere Client-ID sein, je nach genutzter Alexa Region.

                  Zitat von ThorstenGehrig Beitrag anzeigen
                  bei Punkt 11 (aktivierung des skills) musste ich erstmal mich mit meinen Edomi-daten anmelden before ich den Skill autorisieren konnte
                  Das wird noch in der Doku ergänzt.

                  Danke für das Feedback! Ich hoffe die finale Erfolgsmeldung kommt dann auch bald. 😉

                  EDIT: Aktuelle Doku als TXT Datei ist angehängt.
                  Angehängte Dateien
                  Zuletzt geändert von jonofe; 23.11.2022, 21:56. Grund: Update der Doku angehängt

                  Kommentar


                    #39
                    Hier meine Testergebnisse: ich bekomme beim Triggern eine Fehlermeldung das wohl was schiefgelaufen ist :-(
                    CloudWatch sagt:
                    [ERROR] Runtime.ImportModuleError: Unable to import module 'lambda_function': No module named 'isodate'
                    Traceback (most recent call last):

                    So ganz kann ich das nicht verstehen - in der lambda_function.py steht import isodate und in utils.py steht isodate==0.6.0
                    Irgendeine Idee woher das kommen kann?

                    Ein bisschen grüble ich noch mit der "your client ID" (https://layla.amazon.com) - der hilfetext dazu sagt ja:
                    Unique public string used to identify the client requesting for authentication

                    Ich habe ja noch den Homeassistent skill - der die selbe client ID hat... und ich denke das hat nix mit dem angegebenen https://layla.amazon.com zu tun...
                    Ich probier mal was anderes aus - vielleicht gibts da ja einen konflikt.

                    Gruß
                    Thorsten

                    Nachtrag: was ich noch habe im CUSTOMLOG_Alexa_Control-LBS19000809-5048.log
                    Error: 8 | Line: 2933 | Undefined offset: 9
                    und im fehlerlog sehe ich:
                    Fehlercode: 8 | Zeile: 40 | Undefined offset: 9
                    Irgendeine Idee? Habt ihr das auch?
                    Zuletzt geändert von ThorstenGehrig; 23.11.2022, 23:08.
                    Meine Inst.: 73 KNX-Geräte, 18 Rolläden, 36 Schaltkanäle, 22 Dimm-Kanäle, 12 Heizungskanäle, 16 PM, 18 Gruppentaster
                    Wiregate: >50 x Temperaturfühler, 2 x Luftfeuchte, Transponderleser || Gira Homeserver: Visu: 98%, Logiken 98% || Heizung: Dimplex WP mit KNX || Sonstiges: 3xSqueezebox, Mobotix T24, Asterisk

                    Kommentar


                      #40
                      Zitat von ThorstenGehrig Beitrag anzeigen
                      So ganz kann ich das nicht verstehen - in der lambda_function.py steht import isodate und in utils.py steht isodate==0.6.0
                      Irgendeine Idee woher das kommen kann?
                      Das muss lait anleitung in die requirements.txt nicht in die utils.py

                      Zitat von ThorstenGehrig Beitrag anzeigen
                      Ein bisschen grüble ich noch mit der "your client ID" (https://layla.amazon.com) - der hilfetext dazu sagt ja:
                      Unique public string used to identify the client requesting for authentication


                      Ich vermute das geht auch mit einem anderen String. Der muss am Ende nur dem in der OAuth2-DB entsprechen. Hab es zwar nicht ausprobiert, aber sollte so sein. Derselbe String in zwei Skills sollte aber auch kein Problem sein. der neue Skill kontaktiert ja EDOMI und nicht HA.

                      Zitat von ThorstenGehrig Beitrag anzeigen
                      Fehlercode: 8 | Zeile: 40 | Undefined offset: 9
                      Irgendeine Idee? Habt ihr das auch?
                      Dazu hab ich spontan keine Idee. Müsste nochmal in den Code schauen, bin aber im Moment beruflich unterwegs.

                      Kommentar


                        #41
                        Hi Andre,

                        Kannst du mir bitte auch den DL-Link zum neuen Alexa Control LBS schicken.
                        Würde mir das auch gerne mal ansehen.

                        Kommentar


                          #42
                          Update: jetzt läuft es... utils.py hatte ich wohl nicht richtig kopiert/gespeichert :-( danke für den Augenöffner.

                          Vorschlag für die Anleitung: Bei Punk 7
                          --
                          7. Response iKO anlegen
                          # In EDOMI eine neues iKO z.B. mit dem Namen "AlexaActionResponse" anlegen und dieses iKO für den Fernzugriff freigeben (EDOMI Admin=>Konfiguration=>Fernzugriff).
                          # Die ID dieses iKO notieren.​
                          --
                          Die zweite Zeile hat mich noch etwas verwirrt: ich habe extra die ID des Remote-objekts aufegschrieben (war bei mir 3). Richtig ist aber die "normale" iKO des remote-Objekts zu verwenden (bei mir 2180). "Die iKO des objektes notieren" wäre mir deutlicher :-)

                          Gruß
                          Thorsten

                          Und nochmal 1000 dank!
                          Meine Inst.: 73 KNX-Geräte, 18 Rolläden, 36 Schaltkanäle, 22 Dimm-Kanäle, 12 Heizungskanäle, 16 PM, 18 Gruppentaster
                          Wiregate: >50 x Temperaturfühler, 2 x Luftfeuchte, Transponderleser || Gira Homeserver: Visu: 98%, Logiken 98% || Heizung: Dimplex WP mit KNX || Sonstiges: 3xSqueezebox, Mobotix T24, Asterisk

                          Kommentar


                            #43
                            Zitat von ThorstenGehrig Beitrag anzeigen
                            Die zweite Zeile hat mich noch etwas verwirrt: ich habe extra die ID des Remote-objekts aufegschrieben (war bei mir 3). Richtig ist aber die "normale" iKO des remote-Objekts zu verwenden (bei mir 2180). "Die iKO des objektes notieren" wäre mir deutlicher :-)
                            Es ist aber doch die iKO ID, deshalb spreche ich ja explizit nicht von Remote-Objekt. Remote Objekte legst du ja unter Konfiguration=>Fernzugriff an, iKOs hingegen unter Konfiguration=>Kommunikationsobjekte. Ist aber auch eine Standard EDOMI Funktion, die in der EDOMI Hilfe beschrieben ist.

                            Ich werde es also so formulieren:

                            # In EDOMI unter Konfiguration=>Kommunikationsobjekte ein neues iKO z.B. mit dem Namen "AlexaActionResponse" anlegen und die ID merken/aufschreiben. # Danach das neu angelegt iKO für den Fernzugriff freigeben (EDOMI Admin=>Konfiguration=>Fernzugriff).

                            Okay?

                            Kommentar


                              #44
                              Die Version 3.0 des LBS inkl. der Actionable Notification Funktionalität ist jetzt im DL Portal verfügbar.

                              Wer die Funktion nicht nutzen will, kann trotzdem gefahrlos die neue Version installieren, sollte aber die Eingänge E54/E55 dann nicht nutzen.

                              Die aktuelle Anleitung und die zusätzlichen Dateien sind in einer weiteren ZIP Datei in der LBS-ZIP-Datei enthalten.

                              Feedback dazu gerne hier.

                              Das Setup eines ReverseProxy (Schritt 1 in der Anleitung) sollte hier nicht diskutiert werden, da dies nicht Bestandteil der LBS Funktionalität ist, sondern lediglich vorausgesetzt wird und an vielen Stellen hier im Forum bereits diskutiert wurde. D.h. bitte hier Fragen stellen, sobald der ReverseProxy grundsätzlich funktioniert und darüber der Verzeichnisse des EDOMI Servers aus dem Internet grundsätzlich erreichbar sind.

                              Viel Spaß damit ....

                              Kommentar


                                #45
                                Zitat von jonofe Beitrag anzeigen
                                mysql -u root < oauth.sql
                                Genau hier komme ich nicht weiter. Die vorhergehenden Schritte unter 6. sind alle problemlos gelaufen, aber der mysql-Befehl bringt folgende Fehlermeldung:

                                Code:
                                [root@edomi oauth2]# ls -l
                                insgesamt 20
                                -rw-r--r-- 1 root root 3166 24. Nov 21:28 authorize.php
                                drwxr-xr-x 6 root root  188  2. Dez 10:08 oauth2-server-php
                                -rw-r--r-- 1 root root 1898 24. Nov 21:28 oauth.sql
                                -rw-r--r-- 1 root root   20 18. Nov 10:02 phpinfo.php
                                -rw-r--r-- 1 root root 1395 24. Nov 21:28 server.php
                                -rw-r--r-- 1 root root  409 24. Nov 21:28 token.php
                                [root@edomi oauth2]# mysql -u root -p oauth2 < oauth.sql
                                Enter password:
                                ERROR 1049 (42000): Unknown database 'oauth2'
                                [root@edomi oauth2]#
                                ​​
                                Hat jemand eine Idee, was ich falsch mache?

                                Danke und viele Grüße

                                Kommentar

                                Lädt...
                                X