Hallo Community,
da ich mit einer Portfreigabe aus dem Internet und DynDNS nicht so glücklich war,
habe ich nach einem Weg gesucht, wie ich das umgehen kann, und FHEM trotzdem
aus dem Internet erreichbar machen kann.
Ich habe daher den node.js Server von Werner Schäffer (https://forum.fhem.de/index.php/topic,33755.0.html) als Basis genommen,
und um einen Websocket Client erweitert.
Dieser verbindet sich mit einem weiteren node.js Server im Internet auf der
Service-Plattform "heroku (https://heroku.com)", die gratis ein Serverhosting erlaubt (Platform as a
Service, PaaS).
An diesen Server auf Heroku können nun Kommandos gesendet werden, die an
den internen FHEM weitergeleitet werden, z.B. über die Webhooks von IFTTT (https://ifttt.com).
Damit habe ich mir dann eine (rudimentäre) Alexa Integration gebaut.
Als Bild sieht das so aus: https://goo.gl/19fB1B
Hier ein beispielhaftes IFTTT-Recipe: https://github.com/MarcProe/fhem-connect.js/raw/master/ifttt-recipe.png
Für mich ist das eine ganz passable Lösung, klappt jedenfalls. Das Ganze
ist aber sicherlich nicht fertig.
Unter https://github.com/MarcProe/fhem-connect.js habe ich eine Anleitung
geschrieben, hier ist auch der Code einsehbar.
Wer mag, kann sich das also mal ansehen.
Viele Grüße
Marc
Hi, wie hast Du das Thema Sicherheit gelöst?
Gruß Arnd
Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Hi,
im Heroku-Profil wird ein Schlüssel hinterlegt (als Umgebungsvariable).
Nur mit diesem Schlüssel kann sich ein Websocket an Heroku verbinden.
Um den Webhook aufzurufen ist ein weiterer Schlüssel notwendig.
Alle Verbindungen im Internet (fhem.js => Heroku und Webhook => Heroku) sind SSL gesichert.
Reguläre Ausdrücke erlauben es, die zu akzeptierenden Befehle einzuschränken.
Ich habe das hier mal eingezeichnet: https://goo.gl/19fB1B
Viele Grüße
Marc
SSL? Sicher?
WSS setzt nicht auf SSL sondern auf XML Encryption. Man kann natürlich dazu noch ssl verwenden, aber hast Du sowas gemacht?
Zitat von: amenomade am 18 Juli 2017, 15:35:14
SSL? Sicher?
WSS setzt nicht auf SSL sondern auf XML Encryption. Man kann natürlich dazu noch ssl verwenden, aber hast Du sowas gemacht?
Ich glaube da liegt eine Verwechslung vor. SSl unter WS passt schon (ist wss)
vg
joerg
Hi,
Zitat von: amenomade am 18 Juli 2017, 15:35:14
SSL? Sicher?
WSS setzt nicht auf SSL sondern auf XML Encryption. Man kann natürlich dazu noch ssl verwenden, aber hast Du sowas gemacht?
Was Du damit jetzt meinst weiß ich leider nicht.
Der lokale node.js Server baut eine wss:// Verbindung auf Port 443 zu Heroku auf, das Ganze wird TLS1.2 verschlüsselt (hab es jetzt gerade mal mit Wireshark mitgeschnitten, ist verschlüsselt).
Secure Sockets Layer
TLSv1.2 Record Layer: Application Data Protocol: http-over-tls
Content Type: Application Data (23)
Version: TLS 1.2 (0x0303)
Length: 169
Encrypted Application Data: 31e16e70a4fad6f12978538e8e3012f07c5721f3f91bf914...
Viele Grüße
Marc
Na dann alles ok :)
Zitat von: MarcP am 17 Juli 2017, 21:12:22
Unter https://github.com/MarcProe/fhem-connect.js habe ich eine Anleitung
geschrieben, hier ist auch der Code einsehbar.
Wer mag, kann sich das also mal ansehen.
Das ist richtig klasse! Leider kann ich nicht programmieren sont würde ich auf dieser Basis versuchen einen Node-Red Integration zu programmieren.
Ich versuche mal fhem.js irgendwie mit Node-Red abzugreifen das wäre schon mal ein Schritt in die richtige Richtung.
Weiter so, happy coding.
Ludger
Zitat von: MarcP am 17 Juli 2017, 21:12:22
Hallo Community,
da ich mit einer Portfreigabe aus dem Internet und DynDNS nicht so glücklich war,
habe ich nach einem Weg gesucht, wie ich das umgehen kann, und FHEM trotzdem
aus dem Internet erreichbar machen kann.
Ich habe daher den node.js Server von Werner Schäffer (https://forum.fhem.de/index.php/topic,33755.0.html) als Basis genommen,
und um einen Websocket Client erweitert.
Dieser verbindet sich mit einem weiteren node.js Server im Internet auf der
Service-Plattform "heroku (https://heroku.com)", die gratis ein Serverhosting erlaubt (Platform as a
Service, PaaS).
An diesen Server auf Heroku können nun Kommandos gesendet werden, die an
den internen FHEM weitergeleitet werden, z.B. über die Webhooks von IFTTT (https://ifttt.com).
Damit habe ich mir dann eine (rudimentäre) Alexa Integration gebaut.
Als Bild sieht das so aus: https://goo.gl/19fB1B
Hier ein beispielhaftes IFTTT-Recipe: https://github.com/MarcProe/fhem-connect.js/raw/master/ifttt-recipe.png
Für mich ist das eine ganz passable Lösung, klappt jedenfalls. Das Ganze
ist aber sicherlich nicht fertig.
Unter https://github.com/MarcProe/fhem-connect.js habe ich eine Anleitung
geschrieben, hier ist auch der Code einsehbar.
Wer mag, kann sich das also mal ansehen.
Viele Grüße
Marc
Hey Marc,
du schreibst bei github
ZitatHeroku allows you to execute a server for 550 hours (22 days) per month (1000 hours (42 days) if you give them your credit card info) for free.
Wie genau wird das berechnet?
Wie viele Webhooks sind das ungefähr?
Ich suche im Moment auch eine elegante und SICHERE Lösung um aus dem Internet (IFTT usw.) Webhooks oder wie auch immer auszuführen und dann ein Dummy Reading in FHEM zu beschreiben.
Grüße Marcel
Gibt es einen Grund, warum VPN von Euch nicht eingesetzt wird? Ich kenne mich nicht gut genug aus und will vermeiden, auf einmal meine Seite offen zu sehen (ich nehme VPN).
Gesendet von iPad mit Tapatalk Pro
Zitat von: andies am 26 Oktober 2017, 08:58:45
Gibt es einen Grund, warum VPN von Euch nicht eingesetzt wird? Ich kenne mich nicht gut genug aus und will vermeiden, auf einmal meine Seite offen zu sehen (ich nehme VPN).
Mit VPN kannst
DU auf dein FHEM zugreifen, nicht jedoch zB. IFTTT (für die angesprochene Alexa-Integration).