Ankündigung

Einklappen
Keine Ankündigung bisher.

Amazon Alexa Plugin

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

    Habe alles nach Anleitung gemacht.
    Heute würde ich vielleicht mal Traefik als reverse proxy ausprobieren. Das ist gut mit Docker integriert.

    Kommentar


      So, lange rumgespielt mit Docker-Compose. Funktioniert nun einwandfrei auf meiner Synology.

      Für alle die es interessiert (ich hoffe es ist soweit komplett):

      1. Alexa Konfigurationen (AWS, usw.) entsprechend der Anleitung ausführen
      2. Domain Alias (z.B. xyz.synology.me) und Letsencrypt über Boardmittel von Synology erstellen
      # syno Speicherort: /usr/syno/etc/certificate/_archive/xxxx kopiert nach volume1
      3. Erweiterung der Plugin YAML:

      Code:
      alexa:
         class_name: Alexa
         class_path: plugins.alexa
         service_host: 0.0.0.0
         service_port: 9000
      4. docker-compose.yml Erweiterung von henfri (habe alle wichtigen Dateien zum Edit auf mein Volume gelegt, der Rest ist Standard)

      --> smarthome-ng um Port " - "9000:9000" erweitert und:

      Code:
      nginx:
        image: nginx:latest
        container_name: smarthome_nginx
        net: "host"
        volumes:
        - /volume1/smarthome/nginx/nginx.conf:/etc/nginx/nginx.conf
        - /volume1/smarthome/nginx/alexa.conf:/etc/nginx/sites-available/alexa.conf
        - /volume1/smarthome/nginx/alexa.conf:/etc/nginx/sites-enabled/alexa.conf
        - /volume1/smarthome/nginx/.htpasswd:/etc/nginx/.htpasswd
        - /volume1/smarthome/nginx/letsencrypt/fullchain.pem:/usr/local/smarthome/letsencrypt/fullchain.pem
        - /volume1/smarthome/nginx/letsencrypt/privkey.pem:/usr/local/smarthome/letsencrypt/privkey.pem
        - /volume1/smarthome/nginx/alexa.log:/var/log/nginx/alexa.log
        - /volume1/smarthome/nginx/alexa.err:/var/log/nginx/alexa.err
        ports:
        - 8090:8090
      5. Mittels dem folgenden Befehl die IP Adresse des smarthome_ng Containers auslesen. (wird für punkt 6 gebraucht)

      Code:
      docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container_id>
      6. Meine Alexa.conf

      Code:
      server {
          listen 8090 ssl;
          listen [::]:8090;
      
          server_name <yourdomainalias>.synology.me;
      
          access_log /var/log/nginx/alexa.log combined;
          error_log /var/log/nginx/alexa.err debug;
          auth_basic "alexa";
          auth_basic_user_file /etc/nginx/.htpasswd;
          ssl_certificate /usr/local/smarthome/letsencrypt/fullchain.pem;
          ssl_certificate_key /usr/local/smarthome/letsencrypt/privkey.pem;
      
          location / {
              proxy_set_header        Host                $http_host;
              proxy_set_header        X-Real-IP           $remote_addr;
              proxy_set_header        X-Forwarded-For     $proxy_add_x_forwarded_for;
              proxy_set_header        X-Forwarded-Proto   $scheme;
              proxy_intercept_errors  on;
              proxy_http_version      1.1;
      
              proxy_pass http://<deineip>:9000;
      
          }
      
      }
      Sofern noch Fehler auftreten dann sollten es nur Schreibberechtigungen sein, ich habe alles die 777 gegeben. Hart aber läuft

      Kommentar


        Alexa Payload V3 - It´s done.
        Hallo,

        vielen Dank an Hotzen für die Entwicklung des Alexa-Plugins und alle anderen die das Thema supporten.
        Ich habe das ursprüngliche Alexa-Plugin um die Funktionen für Payload V3 erweitert.
        Das Plugin kann nun Payload V2 und Payload V3.
        Es sollte für jeden möglich sein umzusteigen auch wenn er die Payload Version 3 Funktionen nicht nutzen möchte.

        Aktuell sind folgende "Capabilities" implementiert :

        -PowerController
        -PercentageController
        -BrightnessController
        -LockController

        die ReportState Funktionen sind für obige "Capabilities" eingebaut.

        Es fehlt das proaktive Senden von Änderungen (wer will das ?)

        How it works :
        neues Plugin mit Funktionen für Payload V3
        die Lambda bei Amazon und alles andere bei Amazon kann unverändert weiter benutzt werden. Es muss der Skill auf Payload V3 bei Amazon umgestellt werden,
        In den Items der Smarthome-Items müssen lediglich die neuen Actions hinterlegt werden.

        Dateien in Verzeichnis \usr\local\smarthome\plugins\alexa4payload3 kopieren
        plugin in plugin.yaml eintragen

        alexa4payload3:
        class_name: Alexa4P3
        class_path: plugins.alexa4p3
        service_port: 9000

        Port natürlich sowie er bisher war.

        Das alte Plugin kann deaktiviert werden.

        Payload V2 : turnOn --- Payload V3 : TurnOn (siehe Amazon Doku, die Capabilities sind 1:1 umgesetzt)

        Die Actions sind unterschiedlich nach Groß/Kleinschreibung.
        Bei meinen Tests funktioniert soweit alles. Auch die Alexa-App bereitet keine Probleme.

        Wenn mir jemand mitteilt wo ich das Plugin online stellen kann würde ich das gerne tun.
        Eventuell gibt es noch jemaden der bereit ist das Plugin zu testen.

        Someone interested ?
        Zuletzt geändert von AndreK; 06.10.2018, 20:51.

        Kommentar


          Ich würde es gerne testen.

          Kommentar


            Wow, was für ein Einstieg ins Forum :-)

            Wo finde ich denn, was in V3 neu ist?

            Hast du einen Github Account in dem du das Plugin bereitstellen kannst?

            Gruß,
            Hendrik

            Kommentar


              Bin gerade dabei den GitHub Account einzurichten.

              Die "Neuen Features" gibt es hier : Amazon

              Die Motivation war die Rolladen mit "öffne" / "schliesse" zu bedienen. Das funktioniert aber auch unter V3 nicht -
              Aber, einmal begonnen kann man ja auch fertig stellen.
              Ich habe dann bis auf den ThermostatController die bereits vorhandenen Funktionen eingebaut.
              Ich persönlich benötige kurzfristig noch den "CameraStreamController", diesen werde ich als nächstes einbauen.



              Ich werde das ganze vor der Online-Stellung nochmals kurz überarbeiten.
              Ich denke ich kann morgen am frühen Abend eine Version hochladen.

              Für die, die Lust haben, werde ich eine kurze Doku machen wie weitere "Capabilities" eingebaut werden können.

              Gruss Andre
              Zuletzt geändert von AndreK; 07.10.2018, 15:21.

              Kommentar


                AndreK machst du einen pr? wuerde den code gerne testen und in den dev branch packen

                Kommentar


                  Zitat von AndreK;n1274013
                  Die "Neuen Features" gibt es hier : [URL="https://developer.amazon.com/docs/device-apis/message-guide.html"
                  Amazon[/URL]
                  Da sind aber neue und alte und ich muss auch ehrlich sagen, dass das zu hoch für mich ist.

                  Gruß,
                  Hendrik

                  Kommentar


                    OK, das war der Link auf ganze Inhaltsverzeichnis, hier "nur" die neuen Controller : Amazon

                    Beim jeweiligen Controller gibt es dann die "directives", das sind die Funktionen die der jeweilge Controller kann.

                    Bin gerade dran eine Version für den Upload vorzubereiten. Wo und Wie folgt noch.

                    Gruss Andre

                    Kommentar


                      Hallo das Plugin ist nun auf Github verfügbar - Alexa4PayloadV3 -

                      Für die ersten die Testen wäre es gut das Plugin umzustellen aber noch nicht den Skill, es sollte alles wie gewohnt weiter funktionieren ;-)

                      Gruss Andre

                      Kommentar


                        erneut die frage, ob wir wenn es denn funzt die codeaenderungen ins haupt-repo aufnehmen duerfen oder du sogar einen pr machst?

                        Kommentar


                          Hallo Psilo,

                          natürlich kann/soll das ins Haupt-Repo :-)

                          hab´s jetzt mal via GitHub Online gestellt falls jemand direkt loslegen will.
                          Wenn Ihr das ins Haupt-Repo aufnehmt, kann ich dann noch Änderungen/Erweiterungen vornehmen ?
                          Hab keine Ahnung was der beste / einfachste Weg ist das zu warten.
                          Dazu einfach eine kurze Info was für die Community am Besten ist (klar Haupt-Repo) und wie ich dann weiter daran arbeiten kann.
                          Heute werde ich nichts mehr weiter tun, das Plugin kann so wie es ist gerne in den Develop-Branch übernommen werden.

                          Viele Grüsse

                          Andre
                          Zuletzt geändert von AndreK; 07.10.2018, 16:52.

                          Kommentar


                            AndreK cool, ich binde dann jetzt mal für den test ein.. via PR kannst Du jederzeit änderungen vornehmen. Frage wäre auch, ob Du den Checkin als PR machen magst? Dann hängt der Commit an Deinem Namen (wegen Credits und so).. alternativ pushe ich die neue version gerne auch selber rein, sobald ich sie im testlauf verifiziert habe.. lass uns das aber jetzt erstmal auf deinem repo machen.. ich checke gleich mal aus..

                            Kommentar


                              magst du mal ein beispiel für neue capabilities machen? wie gebe ich diese an? Kann ich mir bspw wie folgt die temperatur vorlesen lassen?

                              Code:
                                              state:
                                                  type: num
                                                  visu_acl: r
                                                  database@mysqldb: init
                                                  knx_dpt: 9
                                                  knx_listen: 2/1/1
                                                  knx_cache: 2/1/1
                                                  alexa_name: 'Temperatur Büro'
                                                  alexa_actions: 'temperature'
                              https://developer.amazon.com/de/docs...uresensor.html

                              Kommentar


                                achja und derzeit wirft er mir folgenden fehler

                                Code:
                                2018-10-08  17:00:16 ERROR    lib.plugin       Plugins: Plugin 'alexa' error importing Python package: No module named 'pydevd'
                                2018-10-08  17:00:16 ERROR    lib.plugin       Plugins: Plugin 'alexa' initialization failed, plugin not loaded
                                Die requirements.txt ist leer.. was ist das? Irgendwas für debugging.. sollte idealerweise final dann raus... oder mind in die requirements.txt
                                Zuletzt geändert von psilo; 08.10.2018, 16:07.

                                Kommentar

                                Lädt...
                                X