FHEM Forum

FHEM => Sonstiges => Thema gestartet von: MarcP am 17 Juli 2017, 21:12:22

Titel: FHEM ohne Portfreigabe aus dem Internet erreichbar machen: fhem-connect.js
Beitrag 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
Titel: Antw:FHEM ohne Portfreigabe aus dem Internet erreichbar machen: fhem-connect.js
Beitrag von: RaspiLED am 18 Juli 2017, 09:57:32
Hi, wie hast Du das Thema Sicherheit gelöst?
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Titel: Antw:FHEM ohne Portfreigabe aus dem Internet erreichbar machen: fhem-connect.js
Beitrag von: MarcP am 18 Juli 2017, 12:39:15
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
Titel: Antw:FHEM ohne Portfreigabe aus dem Internet erreichbar machen: fhem-connect.js
Beitrag 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?
Titel: Antw:FHEM ohne Portfreigabe aus dem Internet erreichbar machen: fhem-connect.js
Beitrag von: herrmannj am 18 Juli 2017, 15:54:45
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
Titel: Antw:FHEM ohne Portfreigabe aus dem Internet erreichbar machen: fhem-connect.js
Beitrag von: MarcP am 18 Juli 2017, 16:16:34
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

Titel: Antw:FHEM ohne Portfreigabe aus dem Internet erreichbar machen: fhem-connect.js
Beitrag von: amenomade am 18 Juli 2017, 16:45:40
Na dann alles ok :)
Titel: Antw:FHEM ohne Portfreigabe aus dem Internet erreichbar machen: fhem-connect.js
Beitrag von: LuBeDa am 23 Juli 2017, 11:34:22
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
Titel: Antw:FHEM ohne Portfreigabe aus dem Internet erreichbar machen: fhem-connect.js
Beitrag von: Ma_Bo am 25 Oktober 2017, 22:52:34
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
Titel: Antw:FHEM ohne Portfreigabe aus dem Internet erreichbar machen: fhem-connect.js
Beitrag 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).


Gesendet von iPad mit Tapatalk Pro
Titel: Antw:FHEM ohne Portfreigabe aus dem Internet erreichbar machen: fhem-connect.js
Beitrag von: ThoTo am 26 Oktober 2017, 15:11:53
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).