FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: DocPepper am 26 November 2018, 23:13:06

Titel: [gelöst] FHEM Werte von externem Rechner.
Beitrag von: DocPepper am 26 November 2018, 23:13:06
Moin Community,

vielleicht kann mir ja jemand helfen. Ich frage auf einem Linux Rechner in meinem Netzwerk per Script einen Wert ab. Gibt es einen Weg, diesen Wert in FHEM einzulesen/zu schreiben?

Gruss
DocPepper
Titel: Antw:FHEM Werte von externem Rechner.
Beitrag von: amenomade am 26 November 2018, 23:34:51
Z.B. so: https://wiki.fhem.de/wiki/CsrfToken-HowTo
Titel: Antw:FHEM Werte von externem Rechner.
Beitrag von: DocPepper am 26 November 2018, 23:52:10
Öhm... DAmit kann ich leider garnichts anfangen. Was hat den das Sicherheitstoken damit zu tun?

Vielleicht habe ich mich auch falsch ausgedrückt.

- Ich frage auf meinem Linux Rechner (ohen FHEM) ab, ob das Netzwerk über VPN läuft.
- Ich möchte nun in meinem FHEM anzeigen lassen, ob die VPN Verbindung auf dem externen Linux Rechner besteht, oder nicht.

Gruss
DocPepper
Titel: Antw:FHEM Werte von externem Rechner.
Beitrag von: connormcl am 27 November 2018, 00:06:46
Hast du nur die erste Zeile gelesen? Wenn du immer so rangehst, wirds mit FHEM schwierig!

Die Seite zeigt dir, wie von aussen ein Wert nach FHEM hereinkommen könnte...ein anderer Weg, den du auch implementieren könntest, wäre den Wert von FHEM selbst holen zu lassen...


Also:
Einfach mal die ganze Seite zum CsrfToken bis zum Ende durchlesen...

Dann verstehen...

Dann umsetzen... oder adaptieren... oder verwerfen, wenn es nicht zum Konzept passt und eher FHEM selber die Werte holen soll...(dann halt Perl lernen und selbst umsetzen)

Titel: Antw:FHEM Werte von externem Rechner.
Beitrag von: LuckyDay am 27 November 2018, 00:50:45
Du kannst auch in die Telnet schnittstelle schreiben, nur mal als Beispiel

https://forum.fhem.de/index.php/topic,24904.msg179738.html#msg179738 (https://forum.fhem.de/index.php/topic,24904.msg179738.html#msg179738)

da gibt es noch mehr möglichkeiten
Titel: Antw:FHEM Werte von externem Rechner.
Beitrag von: Peteruser am 27 November 2018, 10:21:23
Hallo,
ich mach sowas über MQTT.
Siehe : https://wiki.fhem.de/wiki/MQTT_Einf%C3%BChrung

Da noch eine Abfrage wie alt das Reading ist um ein Problem mitzubekommen.

Grüße Peter
Titel: Antw:FHEM Werte von externem Rechner.
Beitrag von: Morgennebel am 27 November 2018, 10:35:11
Zitat von: DocPepper am 26 November 2018, 23:52:10
- Ich frage auf meinem Linux Rechner (ohen FHEM) ab, ob das Netzwerk über VPN läuft.
- Ich möchte nun in meinem FHEM anzeigen lassen, ob die VPN Verbindung auf dem externen Linux Rechner besteht, oder nicht.

Ansatzproblem: wenn Rechner 1 im VPN ist, sollte er nicht mehr mit Rechnern im lokalen LAN reden können. Denn er ist ja im VPN - in einem anderen LAN...

Daher geht Telnet, MQTT, ... usw. eigentlich nicht, denn die Rechner erreichen sich nicht mehr.

Ciao, -MN
Titel: Antw:FHEM Werte von externem Rechner.
Beitrag von: Beta-User am 27 November 2018, 10:43:31
Na ja, wenn es darum geht festzustellen, ob ein Rechner außerhalb des Netzwerks ist oder innerhalb (also VPN steht), könnte auch PRESENCE mit Ping gehen.
Oder ein notify auf ein Fritzbox-Event möglich sein (ungeprüft, wie im Wiki).

Beides geht aber nur mit einer gewissen Verzögerung.
Titel: Antw:FHEM Werte von externem Rechner.
Beitrag von: Morgennebel am 27 November 2018, 10:49:04
Das hängt aber alles von Deinem VPN-Client ab.

Bei uns machen die Firmen-VPN-Clients jedwede Kommunikation im internen Netz unmöglich.

Aber Du hast natürlich einen Punkt - irgendwie muß der Rechner auch trotz VPN via dhcp eine IP-Adresse beziehen können...

Ciao, -MN
Titel: Antw:FHEM Werte von externem Rechner.
Beitrag von: Beta-User am 27 November 2018, 10:54:17
Hmm,

ich hatte es so verstanden, dass der Rechner eigentlich außerhalb ist ("...auf dem externen Linux-Rechner..."), aber gelegentlich dann via VPN in dasselbe Netz kommt wie der FHEM-Server. Unter anderen Vorbedingungen ist das mit dem Ping oder Fritten-Ereignis vermutlich keine Option.

Ansonsten könnte man auch mit ssh-Verbindung versuchen, eine Datei auf dem externen Rechner zu lesen (mit VPN-Beginn als Inhalt?) oder oder oder... Es gibt eigentlich immer (fast zu) viele Optionen.
Titel: Antw:FHEM Werte von externem Rechner.
Beitrag von: DocPepper am 27 November 2018, 14:15:23
Zitat von: connormcl am 27 November 2018, 00:06:46
Hast du nur die erste Zeile gelesen? Wenn du immer so rangehst, wirds mit FHEM schwierig!

(...)

Dann umsetzen... oder adaptieren... oder verwerfen, wenn es nicht zum Konzept passt und eher FHEM selber die Werte holen soll...(dann halt Perl lernen und selbst umsetzen)

Nein, ich habe durchaus bis zum Ende gelesen. Und nach Deinen Ausführungen gerade eben noch einmal... Vielleicht habe ich deswegen ins Anfängerforum geschrieben!?
Auch beim zweiten lesen, erkenne ich keinen für mich nützlichen Ansatz, weil ich eben Anfänger bin!

@all responders
Vielen Dank für die Lösungsansätze! Ich werde mich da mal einlesen! Beim lesen der Antworten muste ich feststellen, dass das technische Problem von mir nicht ausreichend beschrieben wurde!

Ich sitze zu hause und habe ein lokales Netzwerk. In diesem Netzwerk befindet sich ein Linux-PC, der seine Verbindung nach außen (Internet) über ein VPN-Tunnel realisiert. Extern habe ich ihn (missverständlich) genannt, weil das nicht der PC ist, auf dem FHEM läuft. Dieser PC befindet sich natürlich auch nach Aufbau des Tunnels in meinem lokalen Netzwerk. Nur alle Verbindungen, die über das Gateway geroutet werden, gehen durch den Tunnel!

Ich frage nun per Script ab, ob die externe IP dieses PC meine Provider-IP ist, oder die des Ausgangs des Tunnels. (done) Das Ergebnis dieser Prüfung würde ich gerne in FHEM darstellen. (todo)

Ich hoffe, ich habe alle Klarheiten beseitigt. ;)
Titel: Antw:FHEM Werte von externem Rechner.
Beitrag von: Morgennebel am 27 November 2018, 14:41:56
Zitat von: DocPepper am 27 November 2018, 14:15:23
Ich sitze zu hause und habe ein lokales Netzwerk. In diesem Netzwerk befindet sich ein Linux-PC, der seine Verbindung nach außen (Internet) über ein VPN-Tunnel realisiert. Extern habe ich ihn (missverständlich) genannt, weil das nicht der PC ist, auf dem FHEM läuft. Dieser PC befindet sich natürlich auch nach Aufbau des Tunnels in meinem lokalen Netzwerk. Nur alle Verbindungen, die über das Gateway geroutet werden, gehen durch den Tunnel!

Wie vermutet... :)

Dann stellt sich die Frage, ob Dein Linux-PC beim aufgebauten VPN eine HTTP-Verbindung zu Deinem FHEM Server aufbauen kann.

Wenn Ja, kannst Du einfach bei Wechsel der Gateway-IP eine Aktion auslösen und einen FHEM-Dummy befüllen.
Wenn Nein, kann es an der Konfiguration des VPN-Clienten liegen. Kannst Du die nicht ändern, bleiben nur Out-of-Band-Lösungen (USB, Relais, ...), damit umgehst Du aber wieder das VPN.

Ist es ein Arbeitsplatz-/Firmen-VPN oder ein VPN zum besseren Peer2Peer ohne Spuren zu hinterlassen?

Ciao, -MN
Titel: Antw:FHEM Werte von externem Rechner.
Beitrag von: DocPepper am 27 November 2018, 14:55:42
Zitat von: Morgennebel am 27 November 2018, 14:41:56
Ist es ein Arbeitsplatz-/Firmen-VPN oder ein VPN zum besseren Peer2Peer ohne Spuren zu hinterlassen?

Was soll ich sagen... ;) Es ist kein Firmen-PC

Aktuell versuche ich als schnelle Lösung die Telnet-Variante. Da die mir aber erstmal quick 'n dirty rüberkommt, schaue ich mir MQTT später in Ruhe an.
Titel: Antw:FHEM Werte von externem Rechner.
Beitrag von: DocPepper am 27 November 2018, 14:57:33
Zitat von: Morgennebel am 27 November 2018, 14:41:56
Dann stellt sich die Frage, ob Dein Linux-PC beim aufgebauten VPN eine HTTP-Verbindung zu Deinem FHEM Server aufbauen kann.

FHEM und der besagte PC befinden sich in einem gemeinsamen LAN.
Titel: [gelöst] FHEM Werte von externem Rechner.
Beitrag von: DocPepper am 27 November 2018, 15:36:44
Falls hier mal ein Newbie wie ich reinschaut:

Ich habe in FHEM ein dummy angelegt:

define vpnip dummy

Ich habe auf dem "externen" Rechner ein Script erstellt:

#!/bin/bash
vpnip=$(curl http://my.ip.fi)
echo "setreading vpnip ip $vpnip"  > vpnip.txt
grep ":" ./vpnip.txt
if [ $? -eq 0 ]
        then
                echo "setreading vpnip state aktiv" >> vpnip.txt
        else
                echo "setreading vpnip state inaktiv" >> vpnip.txt
                echo "VPN wird neu gestartet..."
                service openvpn restart
                sleep 10
                curl http://my.ip.fi | grep :
if [ $? -eq 0 ]
        then
                echo "Erfolgreich!"
        else
                echo "nicht erfolgreich!"
        fi
fi



Ich sende die Datei vpnip.txt mittels nc (netcat) an den TelnetPort meines FHEM (musste ich erst anlegen s. WIKI)

Danke für den entsprechenden Hinweis! Ich schaue mir an, ob das mit MQTT eleganter/sicherer geht. ;)