[GELÖST]FHEM als Datenbrücke zwischen DECT200 und SAE

Begonnen von JumpingJohn, 06 Januar 2020, 22:52:30

Vorheriges Thema - Nächstes Thema

JumpingJohn

#15
Ja, sorry bin N00b und ja das commandref wäre mir selbst wenn ich es gelesen hätte keine große Hilfe gewesen. Bin vielleicht auch einfach zu blöd, wer weiß.
Ich habe halt leider so gar keinen Programiererfahrung, ich kann ziemlich gut mit Windows, Office und Co und simple Installation nach Schritt für Schritt Anleitung wie ich es fürs RaspberryOS und den SAE hatte, aber hier das ist trotz diversen Tutorials irgendwie nicht gerade einsteigerfreudig oder ohne weiteres durch einlesen erlernbar, vielleicht ist mein Fall auch gerade einfach zu speziel, was weiß ich!? Mag ein mächtiges Tool sein, keine Frage, aber wohl nur für Cracks oder die die selbst daran mitgearbeitet haben. Ist zumindest meine Meinung dazu, sorry bin gerade etwas frustriert gerade weil ich mir eben eigentlich immer versuche sowas selbst bei zu bringen.

So, ich würde einfach gerne mal sehen was mir FHEM antwortet (damit könnte ich dann im PV-Forum nachfragen ob es damit klappt), aber entweder ist bei mir noch irgendwas falsch oder ich mache noch irgendwas falsch!

Habe ein Fixes Token zum testen eingegeben, dann brauche ich ja keine erlaubte IP Adresse über allowform angeben, richtig!? Wobei ich es auch mit versucht habe, aber leider mit dem selben Ergebnis. Freigegebene IP ist im übrigen zum Testen die meines Laptops.

Nun Nutze ich folgende Adresse um abzufragen, aber das Fenster vom Browser bleibt einfach leer!

http://192.168.178.39:8083/fhem?cmd={ReadingsVAL("FBDECT_fbahahttp_11630_0120749","power","NA")}&fwcsrf=123456789

Ich habe mal Screenshots vom WEBSAE und vom Gerät von dem ich Informationen haben möchte angehängt. Vielleicht hilft das ja irgendwie.

MadMax-FHEM

#16
In deiner Abfrage-Url hast du Port 8083 das FhemWeb mit dem fixen Token etc. ist aber Port 8088 das nur beim schnell Drüberkucken...

EDIT: da sollte es sogar eine entsprechende Fehlermeldung bzgl. csrfToken im fhem-Log geben...

Ob noch mehr ist kann ich mit Screenshots etc. auf dem Handy grad nicht analysieren...

Bitte keine Screenshots sondern lists der Devices.

Also list Devicename

EDIT: csrfToken und allowed sind komplett unterschiedliche Dinge. Frag doch zumindest Google bzgl. csrf... Ist nichts fhem-spezifisches sondern "allgemeine" Internetsicherheit/-problematik (bevor du wieder "schimpfst" ;)  )

EDIT2: für erste Tests würde ich csrfToken auf none setzen (also deaktivieren) und global beim FhemWeb-Device, sonst ist der Zugriff von einem ANDEREN Rechner (also nicht localhost) NICHT möglich... Und auch nix mit allowedFrom und auch nicht mit einem allowed-Device. Wenn das dann geht, kannst du ja Schritt für Schritt absichern...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

amenomade

ZitatNun Nutze ich folgende Adresse um abzufragen, aber das Fenster vom Browser bleibt einfach leer!


http://192.168.178.39:8083/fhem?cmd={ReadingsVAL("FBDECT_fbahahttp_11630_0120749","power","NA")}&fwcsrf=123456789

ReadingsVal <> ReadingsVAL
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

MadMax-FHEM

FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

JumpingJohn

Okay, probiere ich heute Abend. Der falsche Port und VAL statt Val kommen vom kopieren nach hin und her probieren mit der ein oder andere Adresse nur um mal irgendeine Reaktion zu erhalten und sei es nur eine Fehlermeldung, hatte es auch mit dem richtigen Port versucht. Ab einer gewissen Uhrzeit sollte man sowas wohl auch nicht mehr machen, wenn der Tag davor auch schon lang war.

JumpingJohn

Also, ich habe es sogar über MyFritz hinbekommen eine korrekte Abfrage auszulösen und auch für den SAE klappt das so wie ich in Erfahrung bringen konnte.

Natürlich aktuell mit csrfToken auf none. Wie gehe ich jetzt am besten weiter vor?

MadMax-FHEM

Dann mal noch mal für wirklich copy/paste, damit du zumindest mal ein Erfolgserlebnis haben solltest oder man analysieren kann warum auch das bei dir (vielleicht) nicht geht.


define WEBTest FHEMWEB 8086 global



define TestDummy dummy



setreading TestDummy power 100


Das alles einfach in das Web-Eingabefenster von fhem...
(wenn du KEIN save config drückst und einen Neustart von fhem machst, dann ist auch alles Test-Zeugs wieder weg)

Dann in irgendeinen Browser (bzw. bei mir: Firefox auf Ubuntu 18.04 hat funktioniert):


http://IP-VON-FHEM:8086/fhem?cmd={ReadingsVal("TestDummy","power","n.a.")}


Dann sollte eben die 100 zurückkommen...
Oder zumindest "n.a."...

Ansonsten hast du es NICHT bis fhem geschafft...
...oder irgendwelche Einstellungen in fhem habe den Aufruf nicht zugelassen (sollte aber nicht sein, wenn du genau so vorgegangen bist)...


Wenn das geht, gut.
Dann einfach den Aufruf auf dein Device und Reading umbauen und testen.
Geht auch das, dann eben mal das mit csrfToken testen.
Dann entweder ein allowFrom ODER (weil du wie ich verstanden habe nur "lokal" also selber "Rechner" abfragen willst) du kannst auch das Web-Device löschen und neu anlegen OHNE 'global', dann sind NUR lokale (SELBER RECHNER) Zugriffe möglich...
Wenn du dann willst kannsz du dich auch noch mit allowed (also dem allowed-Device) beschäftigen und User/Passwort anlegen und so den Zugriff weiter absichern...
Und wenn du das tust, dann ist eigentlich https ein MUSS, weil User/Passwort OHNE verschlüsselte Übertrageung naja...

Ob und welche Sicherheit du IN/für dein System brauchst willst, musst du wissen...
...ich kann dir nur die Möglichkeiten nennen...

Allerdings denke ich wenn du wirklich beide Systeme auf einem Rechner laufen hast reicht wohl das FhemWeb-Device OHNE 'global'...

Falls du die Möglichkeit hast aus dem anderen System Telnet zu nutzen, auch damit kann man in fhem Werte abfragen/setzen...

UND: wenn was nicht geht, bitte genau schreiben WAS du gemacht hast, evtl. mal ins fhem-Log schauen (wie geschrieben von deinen Versuchen MUSS was drin stehen, eigentlich) und dann eben GENAU den Aufruf posten den du gemacht hast. Schreiben WAS auf WELCHEM System (IP etc.) läuft bzw. von welchem System (IP etc.) du den Aufruf auf WELCHES System (IP etc.) abgesetzt hast und bitte lists (KEINE Screenshots) von den beteiligten fhem Devices... Und die Sachen bitte in Code-Tags, das '#' im "Menü"... Es kann auch sein, dass du eine "leere" Seite bekommst, evtl. steht dann "im Sourcecode" der Seite der gewünschte Wert (wie geschrieben habe ich das unter Ubuntu mit einem Firefox getestet und da kommt "sichtbar" einfach 'no' [das ist der Wert der in meinem Reading steht] zurück)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

MadMax-FHEM

#22
Zitat von: JumpingJohn am 08 Januar 2020, 11:11:10
Also, ich habe es sogar über MyFritz hinbekommen eine korrekte Abfrage auszulösen und auch für den SAE klappt das so wie ich in Erfahrung bringen konnte.

Natürlich aktuell mit csrfToken auf none. Wie gehe ich jetzt am besten weiter vor?

Was meinst du mit über myFritz!?

VON AUSSEN!? INTERNET??!!

Dann mach SOFORT die Portweiterleitung in der Fritzbox ZU!!!!


EDIT: alle weiteren Schritte bzgl. Absicherung etc. habe ich "oben" geschrieben. Aber noch mal: ich dachte das System das abfrägt läuft auf dem SELBEN Rechner wie auch fhem!? Wenn nicht, bzw. wenn gar Zugriff über Internet (dann hast du das aber gut "versteckt" nicht zu nennen), dann ist das eine (ganz) andere Baustelle!!

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

JumpingJohn

Ja, FHEM und SAE laufen auf dem selben Pi.

Von der Arbeit aus kann ich aber nur von einem externen Gerät üben und in dem Fall eben über die MyFritz-App, die nur bei Bedarf mich ins Heimnetz lässt, würde ein andere Gerät das versuchen würde ich sofort eine Meldung darüber bekommen. Wird aber generell nicht Standard werden und ist dann rein local.

MadMax-FHEM

Gut, Fritz-App kenne ich nicht.

Wenn das sicher ist, dann ist's ja gut.

Ich kenne myFritz (vom Lesen) halt als so eine Art "dynDNS"-Zugang.
D.h. somit "weißt" du die gerade aktive IP (vom Provider) deines Routers/FB zuhause und greifst dann eben darüber zu, also:

myFritz:8086 oder myFritz:8088

Wenn du KEINE Portweiterleitungen in der Fritzbox hast, dann wird das schon ok sein...
...wenn doch (und es so ist wie ich myFritz ohne App) kenne (vom Lesen), dann eben: Ports ZU!

Weil das was du da aktuell in fhem konfiguriert hast und eben "nach außen geöffnet" hast: da käme ja dann JEDER drauf, der deine IP und Port "findet" (und es gibt Suchmaschinen für sowas)...

War nur als Warnung gemeint, weil eben so Testsachen NICHT für das "Einstellen" ins Internet gedacht sind/waren... ;)

Alles weitere ist ja beschrieben bzgl. Absicherung etc.

Allerdings würde ich selbst bei lokaler Anwendung auf dem selben Rechner (wie bei dir) über die Verwendung von csrfToken nachdenken (bzw. ich würde es anraten!)...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

JumpingJohn

Ich kann mich bei aktiver Verbindung von unterwegs dann genauso verhalten wie wenn ich am Laptop im Wohnzimmer sitze würde.
Das läuft über eine seperate Anmeldung an einem Portal von AVM, wohl ähnlich wie z.B. das MAX!-Portal. Es ist kein fix eingerichteter Externer Zugriff der dauerhaft besteht.
Aber danke der Warnung und selbst diese vermeintlich sichere Verbindung versuche ich nur so selten wie möglich zu nutzen.

Ich möchte es natürlich so sicher wie möglich gestalten. Wichtig war zu erst einmal ob ich den nötigen Wert wieder aus FHEM herausbekomme, jetzt muss das ganze noch in eine Final nutzbare Version umgesetzt werden.

ZitatAllerdings würde ich selbst bei lokaler Anwendung auf dem selben Rechner (wie bei dir) über die Verwendung von csrfToken nachdenken (bzw. ich würde es anraten!)...

Ein Fix gesetztes csrfToken käme letztlich doch einem Passwort gleich, oder? Das muss ich doch nur entsprechend lang mit zufälligen Zahlen, Zeichen, Groß- und Kleinbuchstaben gestallten, oder meinst du mit Verwendung ein anderes Verfahren?

MadMax-FHEM

#26
Bitte lesen WAS bzw. WOFÜR (oder WOGEGEN) csrfToken ist... ;)

Prinzipiell ja. Der potentielle Angreifer muss das Token kennen/erraten bzw. beliebig viele ausprobieren.

D.h. jemand schickt dir einen Link und du klicks drauf (also z.B. http://ip-von-fhem:8086/fhem?cmd=delete%20.* / das kommando fegt dein fhem leer ;) ) und hast entweder (wie aktuell) kein Token, dann wird der Befehl ausgeführt, selbst wenn du mit Passwort etc. abgesichert hast (solltest du grad über den Brower zufällig an fhem angemeldet sein).
Mit einem gesetzten csrfToken muss der "Attakierer" eben das passende Token mitgeben...

Kein Token: du hast gesehen wie einfach das geht

Fixes Token: der "Angreifer" muss es kennen

fhem erzeugt bei jedem Start ein neues Token.
Mein fhem läuft normalerweise LANGE ;)
Also quasi hat (fast) jeder ein (fast) fixes Token... ;)

Aber gar kein Token würde ich nicht machen, außer mal zum Test...
...und noch mal: hat nichts mit Absicherung mittels User/Passwort zu tun, daher ja: mal bzgl. csrf im Internet suchen ;)

Aber auch hier: dein System deine Regeln ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

MadMax-FHEM

Wenn du den Wert dann noch in einem anderen Format brauchst (es klang so), dann evtl. mal userReadings anschauen.

https://wiki.fhem.de/wiki/UserReadings

Damit kannst du Werte/Readings eines Devices IM Device selbst (neu) "umwandeln" lassen und als neues/weiteres Reading "anzeigen" lassen...

Jedes mal wenn ein passendes Event kommt (beispielsweise eben power), dann wird das ausgeführt was bei userReadings hinerlegt ist.
Dort kann eben auch ein wenig Perl-Code stehen, der dann das Reading power "nimmt", entsprechend aufbereitet (xml, json, ...) und als neues Reading, sagen wir mal power_aufbereitet, "an das Device hängt"...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

JumpingJohn

Danke Joachim für diese Idee, ich werde aber vorerst auf das vorhanden zurückgreifen, damit kann SAE mittels Regular Expression auch schon was anfangen.

Eins nach dem anderen. Habe ich das Fass abgefüllt und geschlossen finde ich sicherlich noch ein anderes das ich auf machen kann!  ;D

MadMax-FHEM

Bitte gerne!

War nur für den Fall, dass die Empfangsseite "empfindlich" reagiert, wenn die Daten nicht wie gewünscht kommen... ;)

Dann bitte noch ein [gelöst] vor den ersten Post...

Wenn wieder was ist: einfach wieder melden in einem passend lautenden Thread im dafür geeigneten Unterforum (dort lesen dann die "Spezialisten" für das Thema mit) und den notwendigen Infos (z.B. lists der Devices um die es geht, Logauszüge etc. in "code-Tags")...

Viel Spaß dann noch, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)