Ankündigung

Einklappen
Keine Ankündigung bisher.

Amazon Alexa Plugin

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

    Wie peinlich!!
    Jetzt stehts dort wo es hingehört. Nächster Fehler beim Test.
    Code:
     {   "errorMessage": "getaddrinfo ENOTFOUND http://xyz.spdns.eu http://xyz.spdns.eu:443",   "errorType": "Error",   "stackTrace": [     "errnoException (dns.js:26:10)",     "GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:77:26)"   ] }
    Beim Aufruf von
    http://xyz.spdns.eu/.well-known/acme-challenge/ kommt eine nginx Seite mit 404. Der Ordner well-known ist auch leer. Hat das damit zu tun?
    Zuletzt geändert von Max2612; 21.09.2017, 11:08.

    Kommentar


      Update: Lambda Test erfolgreich. Gerät wird auch angezeigt.
      Code:
       {   "payload": {     "discoveredAppliances": [       {         "friendlyName": "Lampe Vorraum",         "manufacturerName": "smarthomeNG.alexa",         "version": "1.3.0.9.0",         "friendlyDescription": "Lampe Vorraum",         "applianceId": "LampeVorraum",         "additionalApplianceDetails": {           "item1": "EG.Vorraum_schalten"         },         "isReachable": true,         "modelName": "smarthomeNG.alexa-device",         "actions": [           "turnOff",           "turnOn"         ]       }     ]   },   "header": {     "payloadVersion": "2",     "name": "DiscoverAppliancesResponse",     "namespace": "Alexa.ConnectedHome.Discovery",     "messageId": "e2f134e566084d258e46d74683eb4df3"   } }
      Nur in der App werden keine Geräte gefunden.

      Ich wollte den Amazon-Dschungel nochmal durchgehen. Aber wie bekomme ich die "Consent Privacy Notice URL"??
      Zuletzt geändert von Max2612; 21.09.2017, 11:58.

      Kommentar


        Okay das ist aber seltsam. Wenn lambda das kann sollte das das Gerät auch können. Ist dein Skill unter alexa.amazon.de oder in der alexa app schon verknüpft? Musstest du dabei ein OAUTH Verfahren durchmachen (dich in der App einmal mit deinem Amazon Account anmelden und autorisieren)? Hast du in deinen Items auch schon Alexa Geräte hinterlegt?

        und was sagt dein smarthome.log, wenn du alexa sagst sie soll nach geräten suchen.
        Zuletzt geändert von patrickgoll; 21.09.2017, 12:02.

        Kommentar


          Sorry, ich komme erst morgen wieder dazu.
          Aber wieder ein großes Danke an dich!!

          Gruß, Max

          Kommentar


            Max, kein Ding.
            Wir lesen uns morgen wieder.

            Kommentar


              Jetzt fällt mir noch eine blöde Frage ein.
              Wer sucht eigentlich die Geräte von sh? Macht das die App, oder der Echo? Hab nämlich noch keinen.(kommt morgen) Habe nur die Reverb App am Handy.

              Ein OAUTH Verfahren musste ich nicht machen. Hab aber die App schon länger am Handy. Der Skill wird mir aber angezeigt, in der App. Und er sucht auch nach Geräten.

              Im sh-Log erscheint nichts von Alexa. Oder muss sh im debug Modus laufen?

              Kommentar


                Die Geräte sucht die Funktion in Lambda und meldet das an deine App als "Gehirn" weiter. Die Alexa Geräte greifen da auch nur drauf zu.

                Bin mir nicht sicher ob das überhaupt gehen kann wenn du da noch kein OAUTH durchmachen musstest. Müssen wir wohl abwarten.

                Das SH Log musst du für Alexa nicht auf Debugging stellen. Kann aber sein, dass du einen Absatz in der logging.yaml ergänzen musst.
                Code:
                Debug logging, da sieht man dann vielleicht mehr:
                
                 loggers:  
                   plugins.alexa:    
                        level: DEBUG

                Aber meiner Meinung nach muss zumindest beim Service neustart von Alexa was im Logging erscheinen und wenn das Logging auf debugging steht dann glaube ich zu wissen, dass man dann auch jeden Zugriff (Sprachbefehl oder Test aus Lambda) dort im Log sehen sollte. Wenn das da nicht auftaucht stimmt noch was nicht.

                Kommentar


                  So, da bin ich wieder.

                  Ich habe jetzt nochmal die Amazon-Anmeldung durchgemacht. 3 Punkte sind mir nicht klar.
                  Was ist die "Consent Privacy Notice Url" ??
                  Was ist die "Privacy Policy Url" ??
                  Muss in der Lambda unter "Trigger" auch was hin??

                  Wenn ich Geräte suche, kommt im sh Log
                  Code:
                  2017-09-22 08:39:28 DEBUG    service      alexa        HTTP/1.0 POST / -- service.py:do_POST:44
                  192.168.1.13 - - [22/Sep/2017 08:39:28] code 500, message Internal Server Error
                  192.168.1.13 - - [22/Sep/2017 08:39:28] "POST / HTTP/1.0" 500 -
                  Und beim Start von sh kommt
                  Code:
                  2017-09-22  08:33:51 DEBUG    Main         Plugin: alexa
                  2017-09-22  08:33:51 DEBUG    Main         Using arguments ['service_host', 'service_port']
                  2017-09-22  08:33:51 DEBUG    Main         Alexa: initializing action turnOn
                  2017-09-22  08:33:51 DEBUG    Main         Alexa: initializing action turnOff
                  2017-09-22  08:33:51 DEBUG    Main         Alexa: initializing action setTargetTemperature
                  2017-09-22  08:33:51 DEBUG    Main         Alexa: initializing action incrementTargetTemperature
                  2017-09-22  08:33:51 DEBUG    Main         Alexa: initializing action decrementTargetTemperature
                  2017-09-22  08:33:51 DEBUG    Main         Alexa: initializing action setPercentage
                  2017-09-22  08:33:51 DEBUG    Main         Alexa: initializing action incrementPercentage
                  2017-09-22  08:33:51 DEBUG    Main         Alexa: initializing action decrementPercentage
                  2017-09-22  08:33:51 DEBUG    Main         Alexa: initializing action getLockState
                  2017-09-22  08:33:51 DEBUG    Main         Alexa: initializing action setLockState
                  2017-09-22  08:33:51 INFO     Main         Alexa: service setup at 0.0.0.0:9000
                  Zuletzt geändert von Max2612; 22.09.2017, 07:56.

                  Kommentar


                    Ja unter Trigger muss da auf jedenfall was hin. Ohne Trigger kann das nicht gehen. Das musst du mit deinem Alexa Skill verknüpfen. Das steht hier auch nochmals genauer beschrieben: https://github.com/smarthomeNG/plugi...lexa/README.md

                    Was die 2 URLs angeht bin ich mir nicht mehr ganz so sicher. Ich denke du wirst das wahrscheinlich nicht wirklich brauchen aber trotzdem muss was drinstehen. Ich habe da glaube ich einfach meine Domäne eingetragen.

                    Ich bin mir aber ziemlich sicher, dass ich noch irgendwo eine oauth Anmeldung über Amazon eingerichtet habe. Das wurde dann im Skill verknüpft, genauso wie der Trigger mit Lambda verknüpft wurde.

                    Ich empfehle dir den Amazon Part nochmals strikt nach der Readme und den darin enthaltenen Links durchzumachen. Das ist gar nicht so ohne. Der rein technische Teil, Lambda Anbindung an shNG und die Items sehen für mich richtig aus.

                    Der Startup von deinem Service sieht übrigens korrekt aus.
                    Zuletzt geändert von patrickgoll; 22.09.2017, 08:09.

                    Kommentar


                      Ich habe dir hier mal die relevanten Stellen bei mir rauskopiert. Vielleicht erschließt sich dir dadurch der Zusammenhang des Amazon Konglomerat einfacher.

                      01.JPG
                      #####################

                      02.JPG###################
                      03.JPG
                      ########################
                      04.JPG
                      ###############
                      05.JPG

                      Kommentar


                        Danke für die Bilder!

                        Nochmal alles durchgegangen. Sieht bei mir genauso aus.

                        Ein Lambda Test ergibt
                        Code:
                        192.168.1.13 - - [22/Sep/2017 09:25:12] "POST / HTTP/1.0" 200 -
                        2017-09-22 09:25:26 DEBUG    service      alexa        HTTP/1.0 POST / -- service.py:do_POST:44
                        Und von der App
                        Code:
                        192.168.1.13 - - [22/Sep/2017 09:25:26] code 500, message Internal Server Error
                        192.168.1.13 - - [22/Sep/2017 09:25:26] "POST / HTTP/1.0" 500 -
                        Wenn ich den Skill deaktiviere und anschließend aktiviere, meldet die App "Alexa wurde erfolgreich mit MySkill verknüpft."
                        Ohne Anmeldedaten einzugeben...

                        Kommentar


                          Hast du bei deinem Skill bei Authorization Grant Type "implicit" oder "auth"? Der Smart Home Skill von Alexa erfordert einen oauth, sonst kann der nicht funktionieren. Mich macht das mehr als stutzig, dass du dich nicht anmelden musst.

                          Hast du in der Developer Console unter Apss und Services, Login with Amazon ein eigenes Profil hinterlegt und die Client ID und auch den das Client Secret im Skill hinterlegt?

                          Kommentar


                            Unglaublich!! Ich habs geschafft.
                            Der Fehler war, dass ich den Skill in EnglishUS erstellt habe. Jetzt auf Deutsch umgestellt, und es funktioniert. Geil!!


                            So, nun erreiche ich aber die Visu nicht mehr. Liegt wohl am Apache, der deaktiviert ist. Hast du hierfür auch noch eine Lösung??

                            Kommentar


                              Okay. Endlich. Mhh mal sehen.
                              Jetzt weiß ich auch wieder wofür ich php-fpm benötigt habe. Damit nämlich der nginx die Visu korrekt anzeigt.
                              Also installierst du php-fpm:
                              Code:
                              sudo apt-get install php-fpm
                              Danach passt du unter /etc/php/7.0/fpm/pool.d/ die config www.conf an:
                              Du musst da den socket listen mit einem ; auskommentieren und deine Listen direktive auf deine Local Loopback mit dem Port 9090 legen.

                              Code:
                              ; The address on which to accept FastCGI requests.
                              ; Valid syntaxes are:
                              ; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on
                              ; a specific port;
                              ; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
                              ; a specific port;
                              ; 'port' - to listen on a TCP socket to all addresses
                              ; (IPv6 and IPv4-mapped) on a specific port;
                              ; '/path/to/unix/socket' - to listen on a unix socket.
                              ; Note: This value is mandatory.
                              ;listen = /run/php/php7.0-fpm.sock
                              listen = 127.0.0.1:9090
                              Anschließend musst du nun deine Visu über den NGINX erreichbar machen.

                              Ich habe das in der config (etc/nginx/sites-available/default.conf) so gelöst:
                              Code:
                                
                              
                              upstream php {  
                               server localhost:9090;
                              }  
                              
                              server {
                                  listen 80 default_server;
                                  server_name smarthome.fritz.box;
                                  satisfy any;
                                  allow 192.168.1.0/24;
                                  allow 192.168.179.0/24;
                                  deny all;
                                  auth_basic "SmartVisu Anmeldung";
                                  auth_basic_user_file /etc/nginx/htpasswd;
                                  root /var/www/html;
                                  index index.php index.html index.htm;
                              
                                 location / {
                                   autoindex on;
                                 }
                              
                                 location ~ \.php$ {
                                   include /etc/nginx/fastcgi_params;    
                                   fastcgi_pass 127.0.0.1:9090;    
                                   fastcgi_read_timeout 300;  
                                   fastcgi_read_timeout 300;
                                   fastcgi_index index.php;
                                   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                                }
                              
                                location /.well-known {      
                                     allow all;  
                                }
                              }
                              Wie du hier sehen kannst erlaube ich den Zugriff auf meine Visu auf Port 80 für das Netz 192.168.1.0/24 und 192.168.179.0 und ansonsten kommt eine Anmeldeabfrage. Das kannst du auf dein Netz anpassen, sodass du von intern nicht jedes mal eine Anmeldung bekommst. Wichtig ist auch der upstream Teil und vorallem die location ~\.php$ Dort biegst du praktisch die direktive um auf deinen Port 9090, damit php-fpm das regeln kann. Es kann sein, dass du noch einen Bad Gateway oder einen 500er Fehler bekommst. Lass mich wissen wenn das passiert. Und nicht vergessen den nginx nach der Aktion durchzustarten.


                              Kommentar


                                Super, das wird dann das Projekt fürs Wochenende.
                                Besten Dank!

                                Kommentar

                                Lädt...
                                X