Ankündigung

Einklappen
Keine Ankündigung bisher.

Amazon Alexa Plugin

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

    #91
    Servus Miteinander,

    gester ist auch endlich meine Alexa angekommen.

    ich hab mich dann gleich gestern Abend auch mal durch den Amazon wirrwarr gekämpft, ich frage mich wer sowas ohne Anleitung schafft, und wer sich sowas ausdenkt.

    Den Skill bekomme ich in der APP angezeigt, wenn ich auf Testen gegangen bin, hat er mir in der Console auch lustige Meldungen gebracht.

    Also irgendwas macht schon mal was.

    Jetzt haperts aber enorm am Verständnis zum nginx.

    Ich hab mir die nginx.md aus dem Plugin Verzeichnis genommen, und bin danach Vorgegangen, bekomm aber immer die Fehlermeldung:


    nginx: [emerg] BIO_new_file("/etc/letsencrypt/live/YOUR-HOME.DYNDNS.TLD/fullchain.pem") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/letsencrypt/live/YOUR-HOME.DYNDNS.TLD/fullchain.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)
    nginx: configuration file /etc/nginx/nginx.conf test failed


    Jetzt hab ich rumprobiert, gesucht und gemacht, und mir ist nicht ganz klar, was ich jetzt alles beim nginx einstellen muss.


    die nginx.md hab ich mal mit meinen Unklarheiten ergänzt.



    # /etc/nginx/include.d/common
    ```
    # letsencrypt shizzle
    ssl_certificate /etc/letsencrypt/live/YOUR-HOME.DYNDNS.TLD/fullchain.pem; <---------------- MUSS ICH YOUR-HOME DURCH ETWAS ERSETZEN ?? DYNDNS WIRD MEINE ADRESSE in meinem Fall xxx.xxx.myfritz.net
    ssl_certificate_key /etc/letsencrypt/live/YOUR-HOME.DYNDNS.TLD/privkey.pem; <---------------- MUSS ICH YOUR-HOME DURCH ETWAS ERSETZEN ?? DYNDNS WIRD MEINE ADRESSE in meinem Fall xxx.xxx.myfritz.net

    ssl_stapling on;
    ssl_stapling_verify on;

    # maintain the .well-known directory alias for letsencrypt & renewals
    location /.well-known {
    auth_basic off;
    alias /var/www/.well-known; <------------- HEISST DER WIRKLICH SO, ODER MUSS ICH WAS ÄNDERN ???
    }
    ```

    # /etc/nginx/sites-available/your-home <---------------- MUSS ICH YOUR-HOME DURCH ETWAS ERSETZEN ??
    ```
    # SSL-Redirect & LetsEncrypt Endpoint
    server {
    listen 80 default_server;

    # redirect every requested $host (any, even invalid ones) to its SSL URL
    location / {
    return 301 https://$host$request_uri;
    }

    # LetsEncrypt Endpoint
    location /.well-known {
    alias /var/www/.well-known; <------------- HEISST DER WIRKLICH SO ODER MUSS ICH WAS ÄNDERN ???
    }

    }

    # Sitemap
    server {
    listen 443 ssl default_server;

    access_log /var/log/nginx/sitemap.log combined;
    auth_basic "YOUR-HOME.DYNDNS.TLD"; <---------------- MUSS ICH YOUR-HOME DURCH ETWAS ERSETZEN ?? DYNDNS WIRD MEINE ADRESSE in meinem Fall xxx.xxx.myfritz.net ??
    auth_basic_user_file /etc/nginx/htpasswd;
    include /etc/nginx/include.d/common;

    #add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

    location / {
    root /var/www/sitemap;
    index index.html;
    }
    }

    # Alexa
    server {
    listen 443 ssl;
    server_name ALEXA.YOUR-HOME.DYNDNS.TLD;
    access_log /var/log/nginx/alexa.log combined;
    auth_basic "Alexa";
    auth_basic_user_file /etc/nginx/htpasswd.alexa;
    include /etc/nginx/include.d/common;

    location / {
    proxy_pass http://192.168.16.5:9000/; <--------------- WIRD MEINE LOKALE ADRESSE AUF DER SMARTHOMENG LÄUFT ?
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    }

    # ANOTHER-SERVICE.YOUR-HOME.DYNDNS.TLD
    server {
    listen 443 ssl;
    server_name ANOTHER-SERVICE.YOUR-HOME.DYNDNS.TLD;
    access_log /var/log/nginx/ANOTHER-SERVICE.log combined;
    auth_basic "ANOTHER-SERVICE";
    auth_basic_user_file /etc/nginx/htpasswd; BRAUCHE ICH DEN ABSCHNITT ÜBERHAUPT ??
    include /etc/nginx/include.d/common;

    location / {
    proxy_pass http://192.168.16.6/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    }
    ```

    # /etc/nginx/sites-enabled/your-home <---------------- MUSS ICH YOUR-HOME DURCH ETWAS ERSETZEN ??
    just create a symlink in `/etc/nginx/sites-enabled/` that points to your config:
    `sudo ln -s /etc/nginx/sites-enabled/your-home /etc/nginx/sites-available/your-home`

    # Sitemap
    You can create a Sitemap at /var/www/sitemap/index.html to give a nice overview of your services
    ```
    <!doctype html>
    <html>
    <head>
    <title>YOU-HOME</title>
    </head>
    <body>
    <ul>
    <li><a href="https://alexa.YOUR-HOME.TLD/">Alexa</a></li> <---------------- MUSS ICH YOUR-HOME DURCH ETWAS ERSETZEN ??
    <li><a href="https://ANOTHER-SERVICE.YOUR-HOME.DYNDNS.TLD/">Another Service</a></li>
    </ul>
    </body>
    </html>
    ```

    # User & Passwords
    /etc/nginx/htpasswd
    format is `userassword`
    generate passwords using `openssl passwd "YOUR-PASSWORD"`

    # Let's Encrypt SSL Certificate
    - download certbot from https://certbot.eff.org/
    - create certificates: `sudo certbot certonly --webroot -w /var/www -d YOUR-HOME.DYNDNS.TLD -d ALEXA.YOUR-HOME.DYNDNS.TLD -d ANOTHER-SERVICE.YOUR-HOME.DYNDNS.TLD` <---------------- MUSS ICH YOUR-HOME DURCH ETWAS ERSETZEN ??



    Vielleicht kann mir als NGINX Vollnoob, jemand aus der Patsche helfen.

    Vielen dank Schonmal

    Gruß Wolfi

    Kommentar


      #92
      die domain `YOUR-HOME.DYNDNS.TLD` wurde durch letsencrypt bzw. durch dessen `certbot` doch von dir abgefragt und entsprechende verzeichnisse angelegt, also ja `YOUR-HOME.DYNDNS.TLD` ist die domain, fuer die du letsencrypt zertifikate beantragt hast und muss angepasst werden.

      der `alias /var/www/.well-known;` heisst wirklich so. im zweifel musst du das verzeichnis anlegen. das benutzt letsencrtypt im zusammenspiel mit dem certbot fuer den zertifikat-generierungs-prozess.

      # /etc/nginx/sites-available/your-home <---------------- MUSS ICH YOUR-HOME DURCH ETWAS ERSETZEN ??
      ja, sicher. das ist der name deiner konfigurations-datei, die du in sites-available ablegen musst. name spielt keine rolle.

      proxy_pass http://192.168.16.5:9000/; <--------------- WIRD MEINE LOKALE ADRESSE AUF DER SMARTHOMENG LÄUFT ?
      genau

      hast du schonmal was mit linux/unix aufgesetzt? das könnte sonst echt steinig werden

      Kommentar


        #93
        Servus,
        vielen dank, bin gestern schon ein Stück weiter gekommen.

        Hab mich am Nachmittag mal wieder hingesetzt und versucht zu verstehen was ich da mache.

        Jetzt hab ichs auch endlich hinbekommen Certbot zum laufen zu kriegen, bringt zwar auch noch einen fehler, da hatte ich aber dann keine Lust mehr, muss ich mir heute näher anschaun.

        Nein ich hab noch nichts selber aufgesetzt.

        Ich weiche da lieber auf fertige Sachen aus. Der Mensch ist halt faul.
        Da muss man halt dann mehr Zeit investieren wenns mal steinig wird ;-)
        Aber dafür isses ja auch ein Hobby.

        Vielen Dank nochmal für die Hilfe.

        Gruß Wolfi




        Kommentar


          #94
          Hallo,

          kann mir jemand sagen, warum mein Verstärker seine Lautstärke nicht ändern will?
          Code:
                      [[[[Power]]]]
                          type = bool
                          alexa_actions = "turnOn turnOff"
                          alexa_device = "Verstaerker"
                          alexa_name = "Verstaerker"
                          alexa_description = "Verstaerker im Wohnzimmer"
                      [[[[MasterVolume]]]]
                          type = num
                          alexa_device = "Verstaerker"
                          alexa_actions = "setPercentage incrementPercentage decrementPercentage"
                          alexa_item_range = 0-50
          Im Log sieht das auch richtig aus:
          Code:
          [LIST=1][*]2017-02-07 17:58:21 INFO __init__ Main Alexa: item mm.denon.main.Power supports actions ['turnOn', 'turnOff'] as device Verstaerker -- __init__.py:parse_item:123[*]2017-02-07 17:58:21 DEBUG __init__ Main Alexa: mm.denon.main.MasterVolume-device = Verstaerker -- __init__.py:parse_item:86[*]2017-02-07 17:58:21 INFO __init__ Main Alexa: item mm.denon.main.MasterVolume supports actions ['setPercentage', 'incrementPercentage', 'decrementPercentage'] as device Verstaerker -- __init__.py:parse_item:123[*]2017-02-07 17:58:22 DEBUG device alexa Alexa: validating device Verstaerker -- device.py:validate:59[/LIST]

          Ein- und Ausschalten funktioniert hingegen.
          Ich sage z.B. "Alexa schalte den Verstärker an" oder "Alexa setze den Verstärker auf 30 Prozent", oder "Alexa dimme den Verstärker auf 30 Prozent"

          Gruß,
          Hendrik

          Kommentar


            #95
            Ui,

            ich habe gerade alle Items aus der Alexa-App gelöscht und neu suchen lassen. Jetzt wird aber gar nichts mehr gefunden.
            Im Log sehe ich aber, dass gesucht wird:
            Code:
            2017-02-07 17:58:22 DEBUG device alexa Alexa: validating device keller_licht -- device.py:validate:59
            2017-02-07 17:58:22 DEBUG device alexa Alexa: validating device Staubsauger -- device.py:validate:59
            2017-02-07 17:58:22 DEBUG device alexa Alexa: validating device Verstaerker -- device.py:validate:59
            2017-02-07 17:58:22 DEBUG device alexa Alexa: validating device kueche_licht -- device.py:validate:59
            2017-02-07 17:58:22 DEBUG device alexa Alexa: validating device Arbeitszimmer_licht -- device.py:validate:59
            2017-02-07 17:58:22 DEBUG device alexa Alexa: validating device Esszimmer_licht -- device.py:validate:59
            2017-02-07 17:58:22 DEBUG device alexa Alexa: validating device Esszimmer_licht_sperre -- device.py:validate:59
            2017-02-07 17:58:22 DEBUG device alexa Alexa: validating device wohnzimmer_licht -- device.py:validate:59
            2017-02-07 17:58:22 DEBUG device alexa Alexa: validating device kueche_radio -- device.py:validate:59
            2017-02-07 17:58:22 DEBUG device alexa Alexa: validating device Tisch saugen -- device.py:validate:59
            2017-02-07 17:58:22 INFO service alexa Alexa: service starting -- service.py:start:27
            2017-02-07 17:59:38 DEBUG service alexa HTTP/1.0 POST / -- service.py:do_POST:48
            2017-02-07 17:59:38 DEBUG service alexa Alexa: discovery-directive 'DiscoverAppliancesRequest' received -- service.py:handle_discovery:104
            2017-02-07 17:59:39 DEBUG service alexa HTTP/1.0 POST / -- service.py:do_POST:48
            2017-02-07 17:59:39 DEBUG service alexa Alexa: discovery-directive 'DiscoverAppliancesRequest' received -- service.py:handle_discovery:104
            Woran kann das jetzt liegen?

            Es ist komisch. Bis gerade funktionierte ja alles und das 'aus der App löschen' war das einzige, was ich geändert habe. Bis dahin konnte ich ja auch das Licht noch schalten etc.
            Ich habe auch gerade mal mit einem Backup aus dem Januar verglichen und außer kleiner Änderungen der Items sehe ich nichts relevantes.
            Es ist ja durchaus möglich, dass ich in den letzten Wochen etwas verbastelt habe, dies aber nur beim Discover zum Tragen kommt. Aber da ich außer den Items nichts geändert habe und das Log oben hinsichtlich der Items aber auch hinsichtlich das "discovery" genau so aussieht, wie ich es erwarten würde, ist mir schleierhaft, was hier schief gegangen ist.

            Gruß,
            Hendrik
            Zuletzt geändert von henfri; 07.02.2017, 20:07.

            Kommentar


              #96
              Hallo Hendrik,

              ich weiß zwar nicht, ob du nicht doch ein anderes Problem hast, aber ich hatte schon ein paar mal die Falschmeldung von der Alexa-App, dass keine Geräte gefunden werden konnten. Nachdem ich kurz die Seite gewechselt hatte, (also einen anderen Menüpunkt angeklickt und dannach wieder auf Smart Home gegangen bin) wurden alle meine Geräte angezeigt.

              Gruß Werner

              Kommentar


                #97
                Hallo,

                danke für den Tipp.
                Leider keine Änderung. Ich habe es aus der App und auch aus dem Web-Interface (alexa.amazon.com) probiert. Den Echo habe ich auch mal vom Strom getrennt.

                Ich bin ratlos.

                Wie kann ich den Fehler eingrenzen?

                Gruß,
                Hendrik

                Kommentar


                  #98
                  das hatte ich auch paar mal, am besten alle geräte in der alexa app entfernen. app schließen, richtig schließen, alexa app wieder oeffnen.
                  dann discovery.

                  wenn es dann noch nicht geht, bitte items posten

                  Kommentar


                    #99
                    Hallo,

                    das hab ich schon versucht. Ich habe sogar den Skill aus der Alexa-App entfernt.

                    Edit:
                    Hieran lag es:
                    Code:
                    ../../items/Haustechnik.conf:                alexa_name = "Tisch saugen"
                    ../../items/Haustechnik.conf:                alexa_actions = "turnOn turnOff"
                    ../../items/Haustechnik.conf:                alexa_device = "Tisch saugen"
                    ../../items/Haustechnik.conf:                alexa_description = "Tisch saugen"
                    das Leerzeichen im alexa_device.
                    Vielleicht kannst du das im Code abfangen?

                    Hinzugefügt habe ich dieses Item übrigens vor einer Weile. Deshalb hatte ich es nicht mehr auf dem Schirm.

                    Edit2:
                    Die Geräte wurden jetzt zwar gefunden, ließen sich aber nicht ansteuern. Geräte nochmal entfernt und nun werden sie nicht mehr gefunden. :-(

                    Edit3:
                    Nix geändert, noch ein paar mal probiert --> Geräte wieder da und lassen sich steuern. Komisch.

                    Gruß,
                    Hendrik
                    Zuletzt geändert von henfri; 09.02.2017, 20:02.

                    Kommentar


                      jo, alexa_device muss ein technischer name sein, ohne space und scherze.
                      dachte das kann man der readme entnehmen :/

                      Kommentar


                        Kann man bestimmt.
                        Die Halbwertszeit dieser Information war bei mir aber ca. 50 Tage...

                        Kommentar


                          Von meiner Seite an dieser Stelle auch ein Dankeschön für das Plugin - nachdem ich mich durch AWS, Lambda, nginx & Co gekämpft hatte wurde ich wirklich mit einer schönen, stabilen Lösung belohnt. Danke!

                          Bei mir geht das Licht (verschiedene "Stehlampen", "Deckenstrahler" und "Hängeleuchten"), die Raffstore (müssen "Rollo" heißen, "Raffstore" scheint Alexa zu hassen) auf Prozent, "Rollo Winkel" auf Prozent und "Rollo Automatik" ein, "Musikanlage" ein/aus, "Musiklautstärke" auf Prozent etc.

                          Was mir fehlt ist ein lokaler Kontext - im Schlafzimmer gibt es halt auch "Rollos" - hier fällt mir leider nicht ein, wie ich zwischen verschiedenen Alexas unterscheiden könnte... Zur Not könnte man ja "Proxy-Items machen", die aufgrund der lokalen Anwesenheit (Präsensmelder?) dann zum richtigen SmarthomeNG-KNYX-Item routen... Jemand eine pfiffige Idee?

                          Grüße
                          Robert

                          Kommentar


                            hört man gerne, danke von einem begeisterten BBB-kunden

                            was fehlt ist szenen ansteuern, das wird bei mir gerade akut. hast du eine idee wie ich per true/false ein szenen item mit der richtigen szenen-nummer getriggert bekomme? muss ich das plugin dafuer erweitern, oder geht das irgendwie outofthebox mit so trigger-foo?

                            der kontext macht mir auch zu schaffen, denke ich nochmal drueber nach.

                            Kommentar


                              kontext klingt bisschen nach custom skillset a la: `alexa, sag dem SCHLAFZIMMER, das licht auszumachen.`
                              wobei man dann fuer jeden kontext ein eigenen custom skill registrieren muesste, auch nix...

                              Kommentar


                                Zitat von hotzen Beitrag anzeigen
                                was fehlt ist szenen ansteuern, das wird bei mir gerade akut. hast du eine idee wie ich per true/false ein szenen item mit der richtigen szenen-nummer getriggert bekomme? muss ich das plugin dafuer erweitern, oder geht das irgendwie outofthebox mit so trigger-foo?
                                Würde spontan für jede Szene nen Bool-Item anlegen (als Child der Szene?) und dann mit "eval" das Szenen-Item umschalten. Wenn das "enforce_updates" hat ist alles gut. Kunst ist es, dem eval nen Ausdruck unterzuschieben - evtl. mit weiterem "eval". Müsste ich mal gucken wie ich das mache...

                                Kontext: Ja genau, das ginge, aber der Mund wird faselig. Aber evtl. ein Bool-Item, was Anwesenheit registiert (PM/BM) ODER per Alexa eingeschalten wird "(Anwesenheit) Schlafzimmer einschalten" - und dann gehen alle weiteren Befehle an die entsprechenden Items. Zur Not hart in einer Logik coden. Also ein Proxy-Item "Licht" was eine Logik triggert. Diese guckt (bei mehreren Proxy-Items) evtl. noch nach welches Proxy-Item getriggert wurde, sucht in den (hard-gecodeten oder per Ausdruck gefundenen) Anwesenheitsitems das letzt-geänderte ("last_changed" oder so) und aktiviert in DESSEN Kontext das Licht (evtl. wieder über Ausdruck gefunden).

                                Wer machts? :-)

                                Grüße
                                Robert

                                Kommentar

                                Lädt...
                                X