Aktionen auf Remoteserver ausführen (FHEM2FHEM)

Begonnen von Borkk, 24 März 2014, 19:45:13

Vorheriges Thema - Nächstes Thema

UliM

Hi,
ich hätt auch noch ne Variante zu bieten - in diesem Fall ein Aufruf von fhem auf der FB an einen anderen fhem-Server - sollte aber in der Gegenrichtung ebenso tun:
system("echo 'set myRemoteDevice on' | /sbin/socat - TCP:192.168.1.123:7072");

Ggf muss der Pfads zu socat angepasst werden.

=8-)
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Gunther

hole den Thread gerne nochmal hoch. Keine der Lösungen bekomme ich umgesetzt.

Meine Situation: FHEM auf RPI (Hauptinstallation), FHEM auf Fritzbox (nur für WLAN-Steuerung).

Wie kann ich nun über meinen RPI WLAN an und ausschalten auf der Fritzbox?
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

epsrw1

evtl wäre es langfristig sinnvoll, das fhem2fhem zu erweitern um eine ORIGIN angabe im event. so wären gleichzeitig sowohl zirkelbezüge in den griff zu bekommen, als auch das mod. um funktionalität für umgebungen mit mehr als 2 servern bereichert.
clonedummy o.a. könnte dann in beide richtungen gleichzeitig eingesetzt werden
gruß,florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel

epsrw1

hat in einer ähnlichen umgebung mit gegenläufigem f2f-remote bei mir mit folgendem code problemlos funktioniert:
(leider mit zusätzlicher LWP lib)

use LWP::Simple;
my($valvepos);
my $zhkValveposDevice = AttrVal($name, "zhkValveposDevice", "valves1");
my $zhkValveposDeviceReading = AttrVal($name, "zhkValveposDeviceReading", "state");
#my $zhkValveposDeviceRemoteUrl = AttrVal($name, "zhkValveposDeviceRemoteUrl", "localhost");
my $zhkValveposDeviceRemoteUrl = AttrVal($name, "zhkValveposDeviceRemoteUrl", "192.168.0.20:8083");
if($zhkValveposDeviceRemoteUrl eq "localhost"){
$valvepos=ReadingsVal($zhkValveposDevice,$zhkValveposDeviceReading,"err");
}else{
my($query)="http://".$zhkValveposDeviceRemoteUrl."/fhem?cmd=get%20".$zhkValveposDevice."%20".$zhkValveposDeviceReading."&XHR=1";
$query= get $query;
my(@res)=split(/: /,$query);
if($#res ne "1"){
$valvepos="split-err";
}else{
$valvepos=$res[1];
}
if($valvepos eq "err"){
Log3($name, 3, "ZHK $name ValvepositionRegler unable to get device reading");
}
readingsSingleUpdate($hash, "valvepos", $valvepos, 1);
Log3($name, 3, "ZHK $name ValvepositionRegler '$query' debug l.".__LINE__);
}
Ich habe keine Ahnung, aber davon wenigstens ganz viel

Gunther

Ich zitiere mal Deine Signatur:
ZitatIch habe keine Ahnung, aber davon wenigstens ganz viel

Leider kann ich mit Deiner lösung noch nicht so richtig was anfangen. LWP habe ich mal gegoogled. Wofür brauche ich das im zusammenhang mit Deinem Code.
Der Code steht in der fhem.cfg?
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

uland2012

Zitat von: Borkk am 24 März 2014, 19:45:13
Hallo zusammen,



Ausgangslage:
Es geht um 2 FHEM Installationen. Eine auf einem RPI und eine auf einer FB7490. Beide sind via "FHEM2FHEM LOG:.*" gekoppelt. Der RPI ist Haupt- die FB ist Remoteserver. Ich nutze die FB nur für PRESENCE Meldungen von WLAN Geräten um RESIDENTS Stati zu setzen. Das funktioniert einwandfrei da ich am Hauptserver einfach die PRESENCE Readings des Remoteserver direkt über notify´s auswerten kann.


Hallo,

kannst Du mir bitte aufzeigen wie Du das gelöst hast?

Ich habe auch das Presence auf der FB am Laufen
Bekomme auch den Presence auf den Raspi übertragen und angezeigt.

Meine Hürde ist jetzt nur wie bekomme ich den Status presence / absent in den Roommate übertragen ?

Danke für die Hilfe.

Gruß
Uwe

Borkk

Hallo Uwe,

ich bin seit längerem mal wieder hier im Forum, falls du das Problem noch nicht gelöst hast, hier meine Lösung.

prs_roman = ist die PRESENCE variable die von der FB gesetzt wird
Roman = ist der ROMANE oder GUEST

prs_roman {
if ( Value("prs_roman") eq "present") {fhem("set Roman state home")}
if ( Value("prs_roman") eq "absent") {fhem("set Roman state absent")}
}
Proxmox & Docker:  FHEM, Raspberrymatic, ConBee3, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana, HmIP Akt- /Sensoren, Shelly´s, Alexa, ASC, Gardena, E-Paper, FritzBox; (Tado° x), iBeacon, OLED ; ESP32/8266, SwitchBot ... (Netatmo & Homekit über HomeAssistant)