[gelöst] Dummies nach reconnect von FHEM2FHEM aktualisieren

Begonnen von Mihca, 16 Juni 2021, 18:51:33

Vorheriges Thema - Nächstes Thema

Mihca

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
Viele Grüße
Achim
__________
Kein Fehler ist so dumm, dass man ihn nicht machen könnte.
Raspi Ubuntu 22.04 Perl 5.34, Rollo-, Sonnen-, Licht-, Heizungs-, Poolsteuerung, Energiebilanzen -- HomeMatic, FS20, ESP/Tasmota/ESPEasy, CUL868v3 USB, MAX! Cube LAN mit CUL-Firmware HomeMatic

rudolfkoenig

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.

Mihca

#2
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
Viele Grüße
Achim
__________
Kein Fehler ist so dumm, dass man ihn nicht machen könnte.
Raspi Ubuntu 22.04 Perl 5.34, Rollo-, Sonnen-, Licht-, Heizungs-, Poolsteuerung, Energiebilanzen -- HomeMatic, FS20, ESP/Tasmota/ESPEasy, CUL868v3 USB, MAX! Cube LAN mit CUL-Firmware HomeMatic

rudolfkoenig

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.

Mihca

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     :
Viele Grüße
Achim
__________
Kein Fehler ist so dumm, dass man ihn nicht machen könnte.
Raspi Ubuntu 22.04 Perl 5.34, Rollo-, Sonnen-, Licht-, Heizungs-, Poolsteuerung, Energiebilanzen -- HomeMatic, FS20, ESP/Tasmota/ESPEasy, CUL868v3 USB, MAX! Cube LAN mit CUL-Firmware HomeMatic

rudolfkoenig

Versuchs mal mit ReadingsVal($DEV, "state", "") statt $defs{$DEV}{STATE}

Mihca

Viele Grüße
Achim
__________
Kein Fehler ist so dumm, dass man ihn nicht machen könnte.
Raspi Ubuntu 22.04 Perl 5.34, Rollo-, Sonnen-, Licht-, Heizungs-, Poolsteuerung, Energiebilanzen -- HomeMatic, FS20, ESP/Tasmota/ESPEasy, CUL868v3 USB, MAX! Cube LAN mit CUL-Firmware HomeMatic