Ich habe zwei Remote Installationen per FHEM2FHEM an meine Hauptinstallation angebunden. An die Hauptinstallation sind einige Sensoren angebunden, deren Signale die 99_myUtils.pm auswertet und dann Dummies (Hell/Dunkel, Regen, Trocken, Wolken, Sonne, ...) schaltet. Solange FHEM2FHEM connected ist, nehmen die Remotes die Dummywerte der Hauptinstallation. Sollte FHEM2FHEM disconnected sein, werden die Dummies hilfweise mit deren eigener 99_myUtils.pm geschaltet, die anstatt der remote nicht vorhandenen Sensoren die Proplanta Wettervorhersage nutzt. Das kann dazu führen, dass die Dummies in der Hauptinstallation und den Remotes unterschiedlich sind, wenn FHEM2FHEM wieder connected ist.
Gibt es ein Attribut oder einen anderen Weg, das die Dummies wieder auf den Status der Hauptinstallation aktualisiert, sobald FHEM2FHEM connected ist?
Vielen Dank vorab.
Achim
Nicht direkt, aber man koennte die Werte der dummies mit einem notify, der auf die FHEM2FHEM CONNECTED Event reagiert, erneut auf dem aktuellen Wert setzen, dadurch ein Event erzeugen, was dann mit FHEM2FHEM uebertragen wird.
Eine Alternative ist statt FHEM2FHEM MQTT zu nutzen, und die Werte da mit retain zu setzen.
Es waere aber eine signifikanter Umbau, und ob neben dem Lerneffekt weitere Vorteile gibt, kann ich nicht abschaetzen.
Zitat von: rudolfkoenig am 17 Juni 2021, 08:46:07
... was dann mit FHEM2FHEM uebertragen wird. ...
Daran scheitere ich.
Im Remote und in der Hauptinstallation habe ich einen Dummy erzeugt, der Remote geschaltet wird, wenn FHEM2FEHEM "connected" ist. Leider kommt diese Schaltung nicht in der Hauptinstallation an. Nur wenn der Dummy in der Hauptinstallation geschaltet wird, schaltet der in der Remote auch. Ich nehme an, dass ich auch auf der Hauptinstallation FHEM2FHEM definieren müsste. Das wird nicht funktionieren, da die Remote-Ports im dortigen Router nicht freigeschaltet werden sollen.
Ich habe es in der Hauptinstallation mit folgendem Notify versucht, der aber auch nicht reagiert, wenn ein neuer Port Connected wird:
defmod FHEMConnectedNotify notify telnetPort_.*:Connected set FhemBlumenwegDisconnected off
attr FHEMConnectedNotify icon system_fhem
attr FHEMConnectedNotify room z.at
attr FHEMConnectedNotify verbose 0
Ich hatte einen Denkfehler: FHEM2FHEM erzeugt zwar ein CONNECTED Event, aber das ist auf der falschen Seite.
telnet erzeugt bei der Annahme einer Verbindung keine Events.
Ich habe aber jetzt in FHEM2FHEM ein reportConnected Attribut eingebaut. Damit schaut mein Beispiel so aus:
Server:
define ts telnet 7072 global
define d1 dummy
define d2 dummy
define dn notify global:CONNECTED.F2 set TYPE=dummy {( $defs{$DEV}{STATE} )}
Client:
define F2 FHEM2FHEM localhost:7072 LOG:d.
attr F2 reportConnected 1
define d1 dummy
define d2 dummy
Nachtrag: mit einem dem telnet zugeordneten allowed kann man auch ein Event erzeugen: beim gesetzten reportAuthAttempts generiert allowed ein Event (allowedName accepting connection from telnetName:127.0.0.1:59756). Allerdings ist dieses nicht immer eindeutig einem FHEM2FHEM zuzuordnen.
Cool, das funktioniert, danke! :)
Eine kleine Sache bleibt noch. Ich habe ein Device, "Regen" das nun mehrfach die Niederschlage im State anzeigt, siehe Listing. Gibts dazu noch eine Idee, das abzustellen? Danke vorab!
Internals:
FUUID 5d543387-f33f-9d8a-2610-00e98ae6c5bdf901
NAME Regen
NR 599
STATE off
</br>
Vorhersage: 4.4 </br> letzte 24h: 1.540
</br>
Vorhersage: 4.4 </br> letzte 24h: 1.540
</br>
Vorhersage: 4.4 </br> letzte 24h: 1.540
</br>
Vorhersage: 4.4 </br> letzte 24h: 1.540
</br>
Vorhersage: 4.4 </br> letzte 24h: 1.540
TYPE dummy
READINGS:
2021-06-18 12:20:00 Rain24h 1.540
2021-06-18 11:39:29 RainPerDay 4.4
2021-06-18 12:14:44 state off
</br>
Vorhersage: 4.4 </br> letzte 24h: 1.540
</br>
Vorhersage: 4.4 </br> letzte 24h: 1.540
</br>
Vorhersage: 4.4 </br> letzte 24h: 1.540
</br>
Vorhersage: 4.4 </br> letzte 24h: 1.540
Attributes:
devStateIcon on:weather_rain_heavy@blue off:weather_cloudy
group Information
icon weather_rain_heavy
readingList RainPerDay Rain24h
room Außen,Haus
setList on off
stateFormat state
</br>
Vorhersage: RainPerDay </br> letzte 24h: Rain24h
webCmd :
Versuchs mal mit ReadingsVal($DEV, "state", "") statt $defs{$DEV}{STATE}
ja, das wars, Danke! :)