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
Ankündigung
Einklappen
Keine Ankündigung bisher.
Amazon Alexa Plugin
Einklappen
X
-
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;ist doch dein nginx selbst und nicht der smartvisu host oder?Code:192.168.178.27
Einen Kommentar schreiben:
-
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
defaultCode: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; } }
Smartvisu liegt in /var/www/smartVISUCode:# 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; } }
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:
-
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:
-
dann leg den CNAME für alexa auf die mydomain.com bei Strato. Wie das bei Strato geht kann ich dir leider nicht sagen.Zitat von Polecat Beitrag anzeigenDie fritz ist nur mit ‚mydomain.com’ verknüpft.
Beispiel DNS
Host ->alexa Typ->CNAME Destination -> mydomain.com
- Likes 1
Einen Kommentar schreiben:
-
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:
-
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:
-
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:
ein Zertifikat erstellen will steigt er mit Fehler aus:Code:sudo certbot certonly --rsa-key-size 4096 --webroot -w /var/www -d mydomain.com -d alexa.mydomain.com
mydomain.com steht für meine Domaine.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.
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:
-
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:
-
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...2bf4555a074ad4Zuletzt geändert von psilo; 29.11.2017, 17:14.
Einen Kommentar schreiben:
-
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
- Likes 1
Einen Kommentar schreiben:
-
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:
-
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
KrischanZuletzt geändert von Krischan4711; 27.11.2017, 20:52.
- Likes 1
Einen Kommentar schreiben:
-
schick mir mal per PN deine Endpunkt Daten und ich kann mal drauf schauenZitat von do5tj80 Beitrag anzeigenWenn 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
Einen Kommentar schreiben:


Einen Kommentar schreiben: