[gelöst] LWT von allen MQTT2-Device auslesen und ggf. Warnhinweis geben

Begonnen von Mihca, 25 Juni 2020, 14:59:40

Vorheriges Thema - Nächstes Thema

Mihca

@xenos1984
ja, so funktioniert es! Danke! :)

@Beta-User
da ich den Notify nicht automatisch getriggert bekomme, und der DoIf-Weg funktioniert, mache ich da jetzt nicht weiter. Vielen Dank Dir mal wieder für Geduld und tolle Unterstützung.  :)

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

Beta-User

...ist ok und Danke für die Rückmeldung.

Ich gebe nur zu Bedenken, dass das DOIF (fast) genau das .*:LWT:.*-Schema nutzt, um getriggert zu werden (jedenfalls nach meinem möglicherweise falschen Verständnis das Moduls). Du solltest solche Konstruktionen, die über alle Devices gehen, mMn. sehr kritisch im Auge behalten, da sowas schnell dazu führen _kann_, dass das System langsam wird, vor allem dann, wenn (möglicherweise indirekt) umfangreichere Aktionen daran anknüpfen.

Von daher kann ich nur nochmal meine allgemeine Empfehlung wiederholen, dich mit devspec und regex intensiver auseinanderzusetzen, sonst kommen irgendwann seltsame Effekte und der Frust ist größer, wie wenn du auf diesen Aspekt etwas mehr Wert gelegt hättest...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Mihca

Noch nicht ganz gelöst. Es funktioniert bei LWT=Offline, aber nicht bei LWT=Connection Lost
Viele Grüße
Achim
__________
Kein Fehler ist so dumm, dass man ihn nicht machen könnte.
Raspi Ubuntu 24.04 Perl 5.38.2, Rollo-, Sonnen-, Licht-, Heizungs-, Poolsteuerung, Energiebilanzen -- HomeMatic, FS20, ESP/Tasmota/ESPEasy, CUL868v3 USB, MAX! Cube LAN mit CUL-Firmware HomeMatic

Mihca

@Beta-User

habe auch das Notify jetzt mit dem Trigger über einen Tasmota-Switch hingekriegt:

4CH_Switch_E_Keller:Uptime.*
{
my $counts = fhem( "count TYPE=MQTT2_DEVICE:FILTER=LWT!~([Oo]nline|Connected) raw" );

if ($counts > 0.5 )
{
fhem("set StoerungMQTT2 on")
}
else
{
fhem("set StoerungMQTT2 off")
};

fhem("setreading StoerungMQTT2 DisconnectedDevices $counts")
}


Das Notify reagiert auch auf "Connected"

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

Beta-User

...immer noch nicht optimal: Wenn du auf ein anderes (!) Event von einem speziellen Device reagierst, und genau diese Hardware fällt aus, passiert: nichts...
Dann kannst du gleich einen Timer (at) anlegen, das ist dann sicherer (und vermutlich leichtgewichtiger, wie auf alle passenden Events zu reagieren)! Du solltest dann aber auf einen Statuswechsel prüfen und das Reading nur erneuern, wenn es sich ändert.

Die Prüfung auf $counts kann übrigens auch kürzer sein:
if ($counts)Das schlägt nur dann nicht an, wenn $counts=0 oder $counts nicht definiert ist ;) . (Aber schon ab 0.0000...1).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Mihca

Da hast Du natürlich Recht mit dem Trigger. Habe es jetzt als Timer. Für alle, die es nachmachen möchten, hier die endgültige Version:

defmod StoerungMQTT2at at +*00:05\
{ \
my $counts = fhem( "count TYPE=MQTT2_DEVICE:FILTER=LWT!~([Oo]nline|Connected) raw" );;\
\
if ($counts) \
{\
fhem("set StoerungMQTT2 on")\
}\
else\
{\
fhem("set StoerungMQTT2 off")\
};; \
\
fhem("setreading StoerungMQTT2 DisconnectedDevices $counts") \
}
Viele Grüße
Achim
__________
Kein Fehler ist so dumm, dass man ihn nicht machen könnte.
Raspi Ubuntu 24.04 Perl 5.38.2, Rollo-, Sonnen-, Licht-, Heizungs-, Poolsteuerung, Energiebilanzen -- HomeMatic, FS20, ESP/Tasmota/ESPEasy, CUL868v3 USB, MAX! Cube LAN mit CUL-Firmware HomeMatic