Reduziertes Frontend auf anderem Host

Begonnen von Zrrronggg!, 09 Februar 2023, 15:34:01

Vorheriges Thema - Nächstes Thema

Zrrronggg!

Ich nutze FHEM auf einem Rechner (HostA), mit dem standard FHEM Webfrontend. Ziel ist es, auf einem Host im gleichen Netz (HostB) ein weiteres Webfrontend zu installieren, dass Zugriff auf dem FHEM Rechner bietet, vorzugsweise nur ausgewählte Funktionen (ist aber nicht zwingend).

Ich dachte zuerst, fhem2fhem sei da die Lösung, aber es scheint mir, als wenn das ggf zwar machbar aber nicht ganz der Fokus von fhem2 fhem ist: Auf HostB soll nichts passieren und nichts attached sein, er soll rein ein Webfrontend bieten.

Hat einer noch eine Idee? Das Webfrontend auf HostB muss nicht unbedingt das originale FHEM Webfrontend sein.


Hintergrunde: HostA ist von aussen nicht zu erreichen, auch nicht mit Portforwarding. HostB ist dual attached und gleichzeitig in einem anderen Netz, das per Portforwarding und dynDNS von aussen erreichbar wäre. Hier will ich für unterwegs einige Grundfunktionen  wie Heizung an, Alarmanlage ein/aus, Einfahrtstor auf und so anbieten.

FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

LuckyDay

#1
Das einfachste wird bei dir wahrscheinlich fhem2fhem sein.

Bei meiner Installation wäre Mqtt die Wahl, da ich alle Device inzwischen mqtt fähig sind. also auch HM , intertechno , fritzbox , Wetter wirklich alle.

der Zugang zum externen mqtt server
defmod mqttclient_localhost MQTT2_CLIENT localhost:1883
attr mqttclient_localhost autocreate no
attr mqttclient_localhost clientId localhost
attr mqttclient_localhost event-on-update-reading state
attr mqttclient_localhost keepaliveTimeout 10


und hier ein HM Licht als Beispiel
defmod WZ_Licht_1 MQTT2_DEVICE
attr WZ_Licht_1 IODev mqttclient_localhost

attr WZ_Licht_1 readingList haus/HM/wz_Licht_1/state:.* state\
haus/HM/wz_Licht_1/deviceMsg:.* deviceMsg\
haus/HM/wz_Licht_1/level:.* level\
haus/HM/wz_Licht_1/pct:.* pct\
haus/HM/wz_Licht_1/timedOn:.* timedOn

attr WZ_Licht_1 setList on:noArg cmnd/haus/HM/wz_Licht_1 on\
off:noArg cmnd/haus/HM/wz_Licht_1 off
attr WZ_Licht_1 setStateList on off
attr WZ_Licht_1 webCmd on:off


und hier mal die Heizung von Viessmann

defmod HZ_ST MQTT2_DEVICE
attr HZ_ST IODev mqttclient_localhost
attr HZ_ST group HZ_Z
attr HZ_ST readingList haus/Heizung/Viessmann/HZ_Status:.* HZ_Status\
haus/Heizung/Viessmann/Brennerleistung:.* Brennerleistung\
haus/Heizung/Viessmann/Umwaelzpumpe:.* Umwaelzpumpe\
haus/Heizung/Viessmann/Betriebsart:.* Betriebsart\
haus/Heizung/Viessmann/Kessel:.* Kessel
attr HZ_ST room test
attr HZ_ST setList HZ_Status:,AUS,HWW,WW cmnd/haus/Heizung/cmd set 2_Heizung_anschaltung
attr HZ_ST stateFormat HZ_Status | Umwaelzpumpe<br>Brennerleistung % |K: Kessel
attr HZ_ST webCmd HZ_Status



Im Endefekt tu ich nur noch Pfade abonnieren die interessant sind,
und Befehle ebenso auf cmd Pfaden verschicken,
das ist jetzt aber ganz vereinfacht von mir dargestellt

Thorsten Pferdekaemper

Hi,
möglicherweise kann da auch FUIP Teil der Lösung sein. Du kannst es auf HostB installieren und dann HostA als Backend eintragen. Dann greift FUIP auf HostA zu, aber die Darstellung läuft auf HostB.
Gruß,
   Thorsten
FUIP

Zrrronggg!

Danke für eure Antworten.

MQTT benutze ich in der Tat (bisher) nicht. 
FUIP lese ich mir gerade mal durch, könnte eine Lösung sein. HostB ist übrigens ein RasPi 3BV1.2
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Wernieman

Ich hoffe, Du hast Trotzdem einen Schutz zwischen "Erreichbaren Pi" und INet .. am besten VPN?

Ansonsten hättest Du noch als Lösung einen Reverse-Proxy (NGINX, Apache etc.) auf HostB, der auf ein eigenes FhemWeb (Eigener Port/Eigene Devinitionen) auf HostA zugreift.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Zrrronggg!

Zitat von: Wernieman am 10 Februar 2023, 08:58:58
Ich hoffe, Du hast Trotzdem einen Schutz zwischen "Erreichbaren Pi" und INet .. am besten VPN?

Ja, will VPN auf dem Pi terminieren, aber da der nicht zwischen den Netzten routet, sondern eben nur dual attched ist, reicht das noch nicht auf HostA zuzugreifen. Muss da auch immer WAF im Auge behalten. Wenn das Anstellen der Heizung für iPhone von unterwegs für meine Holde eine "17 einfache Schritte" Anleitung wird, hab ich wenig gewonnen.

Zitat
Ansonsten hättest Du noch als Lösung einen Reverse-Proxy (NGINX, Apache etc.) auf HostB, der auf ein eigenes FhemWeb (Eigener Port/Eigene Devinitionen) auf HostA zugreift.

Hmja, auch nicht einfach wegen Dual attached. Ich habe zu wenig Ahnung von NGINX oder ähnlich um zu beurteilen, mit welchem Konfigurationsaufwand in meinem seltsamen Netzdesign das Ziel erreicht werden kann.

Squeezebox / Slimserver und  RPi-Monitor Webinterfaces ging mal einfach so: Aufgesetzt, unter dem Port von beiden IP Adressen über beide Interfaces erreichbar.  Ich hatte daher Hoffnung, dass ich das ohne grössere Klimmzüge auch mit einem FHEM Frontend hinbekomme. Könnte auch falsch sein.

Ich muss mich sowieso reingraben, egal was ich mache. Aktuell ist das Ziel erstmal zu beurteilen, wo die Lernkurve am wenigsten steil sein könnte.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

binford6000

ZitatHat einer noch eine Idee? Das Webfrontend auf HostB muss nicht unbedingt das originale FHEM Webfrontend sein.
Moin,
ich würde noch fhemApp in den Ring werfen. Hier kannst du in den connection settings das fhem auf Host A eintragen.
Und du kannst nur die Geräte anzeigen lassen welche das entsprechende Attribut konfiguriert haben.
https://github.com/jemu75/fhemApp#readme
https://forum.fhem.de/index.php/board,104.0.html

Wenns um Steuerung von außen geht ist natürlich auch immer der TelegramBot mit msgDialog zu nennen.
https://forum.fhem.de/index.php/topic,77297.0.html
https://wiki.fhem.de/wiki/MsgDialog

VG Sebastian

ch.eick

Moin,
ich hatte mir mal FhemNative angeschaut, um einzelne manuelle Funktionen auf's Handy zu bringen,
nur gibt es da noch nicht die einfache Portierung in die Apple Welt :-( Wenn dann hätte ich es gerne gleich in beiden Welten.
VPN mit der FritzBox ist natürlich die Grundlage.

VG   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

MadMax-FHEM

Wenn vpn ein für dich gangbarer Weg ist, wozu einen zweiten PI?

Du kannst ja beim bestehenden ein 2tes FhemWeb anlegen, dort "freigeben" (konfigurieren) was du darüber zulassen willst und gut.

Mache ich so.
Ich habe per Port 8083 "Vollzugriff" (per vpn auch von außen), meine Freundin per Port 8084 nur auf bestimmte Dinge (per vpn auch von außen) und die Tochter mit Port 8085 auf andere Dinge...

"Link" zum Klicken (mit entspr. Port) auf die Oberfläche und gut.
EDIT: ist zwar Android aber "sowas" gibt's beim Apfel bestimmt auch...

Entweder dann "Dauer-vpn" oder 2 Schritte: vpn aktivieren und Link klicken...

Ich mache die 2-Schrittvariante und das klappt prima...

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)

Zrrronggg!

Zitat von: MadMax-FHEM am 11 Februar 2023, 09:59:22
Wenn vpn ein für dich gangbarer Weg ist, wozu einen zweiten PI?

Du kannst ja beim bestehenden ein 2tes FhemWeb anlegen, dort "freigeben" (konfigurieren) was du darüber zulassen willst und gut.


Ich frage natürlich hier, weil das genau nicht geht.

Das Netz von HostA ist 1. hinter DoubleNAT und liegt 2. nicht im Private-IP Bereich. Das Netz ist von aussen echt nicht erreichbar, also so RICHTIG nicht.

Ferner ist HostA kein Pi, sondern eine Linkstation, nur HostB ist ein Pi. (ist natürlich an sich egal)
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Zrrronggg!

Zitat von: binford6000 am 11 Februar 2023, 09:11:01
Moin,
ich würde noch fhemApp in den Ring werfen. Hier kannst du in den connection settings das fhem auf Host A eintragen.
Und du kannst nur die Geräte anzeigen lassen welche das entsprechende Attribut konfiguriert haben.
https://github.com/jemu75/fhemApp#readme
https://forum.fhem.de/index.php/board,104.0.html

Sehe ich mir auch an, danke.

Zitat von: binford6000 am 11 Februar 2023, 09:11:01
Wenns um Steuerung von außen geht ist natürlich auch immer der TelegramBot mit msgDialog zu nennen.
https://forum.fhem.de/index.php/topic,77297.0.html
https://wiki.fhem.de/wiki/MsgDialog
Nein. Keine Messenger.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Zrrronggg!

Weiss den jemand zufällig einer aus dem Hut, ob NGINX Reversproxy machen und man festlegen kann über welches Interface die Anfragen zur Source rausgehen? (bisschen off topic hier, schon klar)
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

MadMax-FHEM

#12
Zitat von: Zrrronggg! am 11 Februar 2023, 22:10:02
Das Netz von HostA ist 1. hinter DoubleNAT und liegt 2. nicht im Private-IP Bereich.

Wo soll das Problem mit Double Nat sein?
Hab ich auch:

Internet <-> FB DSL-Modem (192.168.178.0/24) <-> Unifi USG (192.168.1.0/24) <-> fhem bzw. piVPN auf einem PI im Netz...

Portfreigabe und Forwarding (in FB und USG) für vpn...
dynDNS per Cloudflare (ich hab eine eigene Domain aber das ist ja egal, geht auch ohne, hatte ich zuvor auch ohne, dann aber nicht Cloudflare).

Ich komme auf alle Rechner im Netz des USG, inkl. fhem.
Dort dann eben verschiedene FhemWeb für die diversen Zugriffe...

Zitat von: Zrrronggg! am 11 Februar 2023, 22:10:02
liegt 2. nicht im Private-IP Bereich. Das Netz ist von aussen echt nicht erreichbar, also so RICHTIG nicht.

Wie soll das gehen?
Wenn es NICHT im privaten IP-Bereich liegt, ist doch dein NW generell "falsch"...
Wenn du irgendwelche Router etc. hast, dann kommen die doch "durcheinander"...

Wie ist denn deine Konstellation genau?
Weil sonst: wie soll man helfen/brauchbare Vorschläge machen?

Und wenn Host A nicht (wirklich) erreichbar ist, wie soll denn dann Host B da helfen bzw. was soll Host B können, was ein Router nicht kann/könnte?

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)

Wernieman

Zitat von: Zrrronggg! am 11 Februar 2023, 22:22:23
Weiss den jemand zufällig einer aus dem Hut, ob NGINX Reversproxy machen und man festlegen kann über welches Interface die Anfragen zur Source rausgehen? (bisschen off topic hier, schon klar)
Warum solltest DU NGINX sagen müssen, über welches Interface er raus gehen muß?

Wenn NGINX weiß, das die URL über den DNS-Namen (oder IP) vom Rechner X erreichbar ist, geht er über das Device raus, über welchem er Rechner X erreichen kann.

Es sein denn .... kann es sein, das Du ein "komisches" Netzwerkdesign hast?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

MadMax-FHEM

Zitat von: Wernieman am 12 Februar 2023, 10:27:54
Es sein denn .... kann es sein, das Du ein "komisches" Netzwerkdesign hast?

Klingt für mich (auch) so...
...siehe meine Antwort.

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)