Ankündigung

Einklappen
Keine Ankündigung bisher.

Amazon Alexa Plugin

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

  • Polecat
    antwortet
    wenn ich das so lese, denke dass ich irgendwie nene grundsätzliches problem habe.

    kann es sein das nginx nicht auf den gleichen system laufen darf wie smarthome.py + smartvisu?

    bei mir läuft alles auf einen bananian.pi, also die 192.168.178.27



    Einen Kommentar schreiben:


  • hotzen
    antwortet
    sicher, dass dein upstream für smartvisu korrekt konfiguriert ist?
    das muss die location sein, wo smartvisua wirklich hosted wird und nginx forwarded einfach dorthin:
    Code:
     
     location /smartVISU {                proxy_pass http://192.168.178.27/smartVISU;
    Code:
    192.168.178.27
    ist doch dein nginx selbst und nicht der smartvisu host oder?

    Einen Kommentar schreiben:


  • Polecat
    antwortet
    So, nun hänge ich daran, dass ich nicht mehr meine Smartvisu ansehen kann per Webaufruf.

    Habe Port 443 per TCP in der Fritz weitergeleitet.


    Meine Config sieht wie folgt aus:

    mydomain.com.conf
    Code:
    server {
        server_tokens off;
    
        ## Blocken, wenn Zugriff aus einem nicht erlaubten Land erfolgt ##
        ## if ($allowed_country = no) {
        ##    return 403;
        ## }    
    
        # https://www.cyberciti.biz/tips/linux-unix-bsd-nginx-webserver-security.html
        ## Block download agents ##
        ##if ($http_user_agent ~* LWP::Simple|BBBike|wget) {
        ##    return 403;
        ##}
    
        ## Block some robots ##
        ##if ($http_user_agent ~* msnbot|scrapbot) {
        ##    return 403;
        ##}
    
        ## Deny certain Referers ##
        ##if ( $http_referer ~* (babes|forsale|girl|jewelry|love|nudit|organic|poker|porn|sex|teen) )
        ##{
        ##    return 403;
        ##}
    
        listen 443 ssl default_server;
        server_name mydomain.com;
    
        ##
        # SSL
        ##
    
        ## Activate SSL, setze SERVER Zertifikat Informationen ## 
        # Generiert via Let's Encrypt! 
        ssl on;
        ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;
        ssl_session_cache builtin:1000 shared:SSL:10m;
        ssl_prefer_server_ciphers on;
        # unsichere SSL Ciphers deaktivieren!
        ssl_ciphers    HIGH:!aNULL:!eNULL:!LOW:!3DES:!MD5:!RC4;
    
        ##
        # HSTS
        ##
    
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
    
        ##
        # global
        ##
    
        root /var/www/mydomain.com;
        #root /var/www;
        index index.php index.htm index.html;
    
        # Weiterleitung zu SmartHomeNG (Websocket Schnittstelle) mit Basic Auth
        location / {
            auth_basic "Restricted Area: smartVISU";
            auth_basic_user_file /etc/nginx/.smartvisu;
    
            # Zugreifendes Land erlaubt?
            ##if ($allowed_country = no) {
            ##        return 403;
            ##}
    
            # Nur Websocket Verbindungen gegen "/" durchlassen!
            if ($http_upgrade = websocket) {
                    proxy_pass http://192.168.178.27:2424;
            }
            if ($http_upgrade != websocket) {
                    return 403;
            }
        }
    
        # Zugriff auf die SmartVISU mit Basic Auth
        location /smartVISU {      
            auth_basic "Restricted Area: smartVISU";
            auth_basic_user_file /etc/nginx/.smartvisu;
    
            # Zugreifendes Land erlaubt? 
            ##if ($allowed_country = no)  {
            ##        return 403;
            ##}
    
            proxy_pass http://192.168.178.27/smartVISU;
            proxy_set_header Host $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;
        }
    
        # Alexa Plugin Weiterleitung
        location /alexa {
            auth_basic "Restricted Area: Alexa";
            auth_basic_user_file /etc/nginx/.alexa;
    
            # Zugreifendes Land erlaubt?
            ##if ($allowed_country = no) {
            ##        return 403;
            ##}
    
            proxy_pass http://192.168.178.27:9000/;
            proxy_set_header Host $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;
        }
    
        # Network Plugin Weiterleitung
        location /shng {
            auth_basic "Restricted Area: SmartHomeNG";
            auth_basic_user_file /etc/nginx/.shng;
    
            ##if ($allowed_country = no) {
             ##       return 403;
            ##        break;
            ##}
            proxy_pass http://192.168.178.27:8383/;
            proxy_set_header Host $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;
        }
    }
    default
    Code:
    # Default server configuration
    #
    
    
    
    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        include /etc/nginx/snippets/letsencrypt.conf;
    
        # SSL configuration
        #
        # listen 443 ssl default_server;
        # listen [::]:443 ssl default_server;
        #
        # Self signed certs generated by the ssl-cert package
        # Don't use them in a production server!
        #
        # include snippets/snakeoil.conf;
    
        root /var/www/html;
        #root /var/www;
    
        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;
    
        server_name _;
    
        location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ =404;
        }
    
    
    }
    Smartvisu liegt in /var/www/smartVISU

    Wenn ich "http://192.168.178.27/smartVISU" öffne kommt gleich von nginx 404
    Wenn ich "mydomain.com" öffne wird in https geändert und 403 erscheint.

    Passwörter habe ich angelegt per:
    Code:
     sudo htpasswd -c /etc/nginx/.smartvisu <username> sudo htpasswd -c /etc/nginx/.alexa <username> sudo htpasswd -c /etc/nginx/.shng <username> [FONT=Arial][/FONT]

    Solang der SmartVISU Aufruf nicht funktioniert wird bestimmt auch Alexa nicht sauber funktionieren...

    Einen Kommentar schreiben:


  • Polecat
    antwortet
    Prima hat funktioniert mit CNAME auf mydomain.com.

    Danke dir

    dann kann ich mal versuchen ob ich das nginx mit pfade ans laufen bekomm

    Einen Kommentar schreiben:


  • yachti
    antwortet
    Zitat von Polecat Beitrag anzeigen
    Die fritz ist nur mit ‚mydomain.com’ verknüpft.
    dann leg den CNAME für alexa auf die mydomain.com bei Strato. Wie das bei Strato geht kann ich dir leider nicht sagen.

    Beispiel DNS
    Host ->alexa Typ->CNAME Destination -> mydomain.com
    Zuletzt geändert von yachti; 09.12.2017, 16:37. Grund: Beispiel eingefügt

    Einen Kommentar schreiben:


  • Polecat
    antwortet
    Kann man nen DNS a-Record auf nen dyndns legen bei Strato?
    Die fritz ist nur mit ‚mydomain.com’ verknüpft.
    Die sub ‚alexa.mydomain.com‘ wüsste ja dann nicht wohin, oder?

    Einen Kommentar schreiben:


  • yachti
    antwortet
    Hast Du einen öffentlichen DNS A-record für alexa.mydomain.com gesetzt?
    ggf. wenn keine IP Adresse mehr dafür hast einen CNAME im DNS konfigurieren.
    Zuletzt geändert von yachti; 09.12.2017, 15:52.

    Einen Kommentar schreiben:


  • hotzen
    antwortet
    Code:
     
      alexa.mydomain.com (http-01): urn:acme:error:unknownHost :: The server could not resolve a domain name :: No valid IP addresses found for alexa.mydomain.com  IMPORTANT NOTES:  - The following errors were reported by the server:     Domain: alexa.mydomain.com    Type:   unknownHost    Detail: No valid IP addresses found for alexa.pol3cat.com

    Einen Kommentar schreiben:


  • Polecat
    antwortet
    Hallo Alexa Gemeinde,
    ich plane auch Alexa mal in meinen Haus einzusetzen, scheitere jetzt schon an der Aufsetzung von ngnix. Alexa Skill habe ich schon in meiner Skill Übersicht, aber testen kann ich da ja nix da ich kein ngnix fertig habe.
    Normalerweise hatte ich apache2 am laufen um z.B. Smartvisu zu nutzen. So wie ich das verstehe wird dann apache2 gestoppt und dafür ngnix genutzt.
    Habe mich an der Anleitung von https://github.com/smarthomeNG/smart...s-ReverseProxy an das Thema herangetraut.
    Installation klappte ohne Probleme.


    Wenn ich mir jedoch jetzt per:
    Code:
    sudo certbot certonly --rsa-key-size 4096 --webroot -w /var/www -d mydomain.com -d alexa.mydomain.com
    ein Zertifikat erstellen will steigt er mit Fehler aus:
    Code:
    smarthome@smarthome:~$ sudo certbot certonly --webroot -w /var/www -d mydomain.com -d alexa.mydomain.com
    [sudo] password for smarthome:
    Saving debug log to /var/log/letsencrypt/letsencrypt.log
    Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
    Obtaining a new certificate
    Performing the following challenges:
    http-01 challenge for mydomain.com
    http-01 challenge for alexa.mydomain.com
    Using the webroot path /var/www for all unmatched domains.
    Waiting for verification...
    Cleaning up challenges
    Failed authorization procedure. mydomain.com (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://mydomain.com/.well-known/acme-challenge/CSUGRfeOrrlkyGe0IKMe3PSFxOvB4QLADvPUga-_i-E: "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html><head>
    <title>404 Not Found</title>
    </head><body>
    <h1>Not Found</h1>
    <p", alexa.mydomain.com (http-01): urn:acme:error:unknownHost :: The server could not resolve a domain name :: No valid IP addresses found for alexa.mydomain.com
    
    IMPORTANT NOTES:
     - The following errors were reported by the server:
    
       Domain: alexa.mydomain.com
       Type:   unknownHost
       Detail: No valid IP addresses found for alexa.pol3cat.com
    
       To fix these errors, please make sure that your domain name was
       entered correctly and the DNS A record(s) for that domain
       contain(s) the right IP address.
     - The following errors were reported by the server:
    
       Domain: mydomain.com
       Type:   unauthorized
       Detail: Invalid response from
       http://mydomain.com/.well-known/acme-challenge/CSUGRfeOrrlkyGe0IKMe3PSFxOvB4QLADvPUga-_i-E:
       "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
       <html><head>
       <title>404 Not Found</title>
       </head><body>
       <h1>Not Found</h1>
       <p"
    
       To fix these errors, please make sure that your domain name was
       entered correctly and the DNS A record(s) for that domain
       contain(s) the right IP address.
    mydomain.com steht für meine Domaine.
    Habe diese bei Strato liegen und per DynDNS an meine FritzBox gekoppelt.
    Zum Test habe ich auf der Fritz einen Exposed Host auf auf meinen Smarthome gelegt. Später wollte ich dann gezielte Ports öffnen.


    Verzeichnisse liegen auch alle in /var/www/
    .wellknown sowie das acme unterverzeichnis

    im acme Unterverzeichnis ist aber keine Datei vorhanden?!



    Hatte das jemand auch mal und weiß jemand rat?

    Danke.

    Einen Kommentar schreiben:


  • OsLee540i
    antwortet
    Psilo, wenn sich kein anderer hier rührt, wirds schon gefixt sein, ist ja schon fast ein Jahr her.

    Wenn du´s im Dezember gefixt hast, hab ich im Februar einfach noch nicht geupdatet gehabt.

    Nachdem sich keiner gemeldet hatte, wollt ich nur den Hinweis geben, nicht dass es mehreren mit der HABridge so geht wie mir.

    Gruß Wolfi

    Einen Kommentar schreiben:


  • psilo
    antwortet
    OsLee540i das ging an mir vorbei.. es geht um die
    self.close()
    oder?

    Ich hatte vor längerem in der connection.py was gefixt.. M.E. sollte über den bool parameter an die send methode jetzt auch geschlossen werden ohne diese zeilen... das ist dort implementiert..

    ist es nicht so?

    Hier:
    https://github.com/smarthomeNG/smart...2bf4555a074ad4
    Zuletzt geändert von psilo; 29.11.2017, 17:14.

    Einen Kommentar schreiben:


  • OsLee540i
    antwortet
    Ich weis nicht ob das gefixt wurde, da hab ich keine Rückmeldung bekommen, deswegen folgender Hinweis.

    Für alle die Probleme haben beim NW Plugin und Habridge kann ich nur das empfehlen:
    https://knx-user-forum.de/forum/supp...ge-amazon-echo

    Gruß Wolfi

    Einen Kommentar schreiben:


  • patrickgoll
    antwortet
    Hi Krischan4711 ,

    das ist doch mal ein erfrischend anderer Ansatz das "Problem" zu lösen. Gefällt mir. Das NW Plugin habe ich auch zuerst bemüht und dann via reverse proxy die API calls umgesetzt. So ist das natürlich auch chic. Das ist für diejenigen die nicht so gut können mit der Cloud Variante sicher eine gute Lösung.

    Einen Kommentar schreiben:


  • Krischan4711
    antwortet
    So Freunde der Nacht,

    Nach langem rumprobieren und verstehen, was Alexa und alle Drittanbieter da treiben, hätte ich hier eine schlanke, kostenlose, standardisierte Lösung für Euch in 5 Schritten.
    Insbesondere auch für die Anwender interessant, die wie ich, keine öffentlich IP von Ihrem Provider bereit gestellt bekommen (QUIX ist einer dieser Provider. Das ist der Nachteil, wenn man aufs Land zieht ;o) ).

    Beschreibung hier:
    https://github.com/bwssytems/ha-bridge/

    Neueste Version 5.0.0 hier (kostenlos!!!):
    http://bwssystems.com/

    Ablauf:
    Step1:
    Das Tool basiert auf Java. Ich habe den SmarthomeNG auf einem Raspi laufen, in der aktuellen Version ist das OpenJava schon vorinstalliert.
    Einfach in ein Verzeichnis entpacken und mit den Parametern siehe Beschreibung starten (-Dserver.Port=81 Port auf z.B. 81 umlegen, statt Standard 80).
    Danach ist die HABridge per Browser erreichbar. Dort legt man nun neue Bridges per Klicki-bunti an. Der vergebene Name ist der, der dann von Alexa aufgerufen werden kann.
    Man kann nun aus mehreren Möglichkeiten wählen, was bei ON, OFF, DIM, COLOR für Befehle abgesetzt werden soll. Von HTTP über TCP, UDP oder das Ausführen eines Scriptes (bash).
    Ich habe mich für letzteres entschieden.
    Habe mir 2 Scripte angelegt unter /usr/local/smarthome/bin/schalte.sh und starte.sh.

    Step2:
    Im SmarthomeNG habe ich das Netzwerkplugin aktiviert. Dort kann man per netcat direkt Werte eines Items setzen (schalten.sh) oder Logiken aufrufen (starte.sh).
    Zusätzlich kann man noch per acl festlegen, von welcher IP die Wertzuweisung erlaubt ist (Thema Sicherheit).
    Was im Beispiel im Plugin gefehlt hat, war das Attribut tcp = yes. Dann funktioniert auch der Netcataufruf.

    Step3:
    Alle Items/Logiken die per Netwerk-Plugin verändert werden sollen, müssen in der Itemliste ein Flag bekommen.
    [Licht]
    type = num
    visu = yes
    nw = yes <====

    [myLogik]
    filename = ...
    nw = yes

    Step4 (Fleißarbeit):
    Man legt sich die Bridges an. Z.B. Wohnzimmer => Execute.... /usr/local/smarthome/bin/schalte.sh EG.Wohnzimmer.Licht on|off|${intensity.byte}
    schalte.sh sieht dann so aus
    echo "item|$1|$2"|nc -w 1 localhost 2727

    Bsp.: Panikschaltung => Execute ... /usr/local/smarthome/bin/starte.sh panikschaltung on|off|wasDirGefaellt
    starte.sh so:
    echo "logic|$1|$2"|nc -w 1 localhost 2727

    Dann braucht man natürlich eine Logik mit dem Namen "panikschaltung", die aufgerufen werden kann. "on|off|..." wird der Logik als Übergabewert mitgegeben.

    Idee der Logik ist, darüber Scenen abbilden zu können, wenn man auf Grund eines Aufrufes mehrere Items schlaten möchte. Vlt. will man aber ja auch etwas anderes Starten.

    Step5:
    "Alexa, scanne alle Geräte"
    "... das kann bis zu 20 Sekunden dauern .... Ich habe x neue Geräte gefunden."
    Test: "Alexa, Wohnzimmer an"
    Et voila.

    Viel Spaß damit!

    Kurze Rückmeldungen, ob es bei Euch geklappt hat, wären für das Forum bestimmt hilfreich.

    Viele Grüße aus dem Saarland
    Krischan
    Zuletzt geändert von Krischan4711; 27.11.2017, 20:52.

    Einen Kommentar schreiben:


  • hotzen
    antwortet
    Zitat von do5tj80 Beitrag anzeigen
    Wenn ich mein Letsencrypt SSL Zertifikat verwede bekomme ich beim test der AWS Funktion immer folgenden Error:
    "errorMessage": "unable to verify the first certificate" Mittlerweile bin ich mit meinem Latain am Ende. Was kann ich noch tun um das ganze via HTTPS ans laufen zu bekommen. Wenn ich das via POST aus dem Firefox händisch auf die Externe Adresse absetze bekomme ich die gewünschte Antwort. LG Tobias
    schick mir mal per PN deine Endpunkt Daten und ich kann mal drauf schauen

    Einen Kommentar schreiben:

Lädt...
X