Mehrfacher watchdog oder Alternative

Begonnen von flummy1978, 31 Januar 2022, 14:53:14

Vorheriges Thema - Nächstes Thema

flummy1978

Hallo zusammen,

ich schreibs bewusst im Anfängerforum, weil ich glaube dass ich einfach nur viel zu kompliziert dazu denke. Folgende Ausgangssituation:

Aus dem Heizkreisverteiler kommt für jeden Kanal (4x) das Signal true|false. Die Stellmotoren reagieren 5 min nach Einschalten und 4-5 Min (stuft langsam runter) nach Ausschalten. Nun würde ich das Ganze ganz gern beobachten und hab mir dafür den Watchdog ausgesucht (den ich noch nie in Benutztung hatte)

dev_Heizkreisverteiler:params_input_0_state:.true 00:05 dev_Heizkreisverteiler:params_input_0_state:.false setreading dev_Heizkreisverteiler heizkreis_0 10; trigger dev_Heizkreisverteiler heizkreis_0
Das Ganze wiederholend für input_1, input_2 und input_3 und es funktioniert beim Einschalten. Für das Ausschalten bräuchte ich nochmal 4 watchdogs Devices. Nun würde ich, wenn das Funktioniert noch andere Bereiche überwachen wollen und wäre dann bei 30 Watchdogs jeweils für ein und aus.

Nun zu meiner Frage:
Hat jemand sowas schon mal etwas "unkomplizierter" als globales Gerät gelöst ?

Ich habe etwas ähnliches globals für die Fenster und Bewegungsmelder in Perl Programmiert - tue mir hier aber mit der Überlegung schwer, wie ich den Zeitraum für true überwachen kann, wenn in der Zwischenzeit false kommt und andersrum (hier setzt nämlich das Heizkreisventil nicht zurück, sondern lässt es ja an)

Ich würde mich sehr freuen, wenn mich jemand in die richtige Richtung schubsen könnte, oder eine Idee / Beispiel oder sonst was für mich hätte ;)

Vielen Dank im Voraus
und viele Grüße
Andreas

kadettilac89

ehrlich gesagt verstehe ich nicht was du genau machen willst.

Ggf. hilft dir das Montoring-Modul ... https://fhem.de/commandref_DE.html#monitoring

Damit kannst du über regex auf Device/Reading einschränken und nach einer gewissen Zeit ein Event auslösen. Auf das Event kannst du per Notify dann reagieren.

Monitoring ist sehr mächtig, es sind Beispiele in der Doku enthalten. Wenn du genauer erklärst was du bezweckst kann dir mehr geholfen werden.

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

flummy1978

#3
Hallo Ihr zwei,

vielen herzlichen Dank für Eure Antworten und Vorschläge...

@kadettilac89: Also es geht darum, dass die Signale die in Fhem ankommen (true und false) überwacht werden sollen. Ich möchte also sehen, wann das Stellventil für die Heizung an und aus ist. Dummerweise (bzw zum Glück) hat das Ventil eine Verzögerung. D.h. das Ventil benötigt 6 Min zum Einschalten. Wenn dann false kommt fällt das Ventil nach 4 min langsam ab, bis es nach 5 min ganz aus ist.....  Dh ich möchte gern sehen, wann das Ventil tatsächlich an /aus ist. Jetzt ist es klarer oder ?
Monitoring-Modul könnte die richtige Richtung sein.... Ich muss mir das mal in Ruhe anschauen *grübel* Bin aber natürlich für weiteres offen, wenn es mit der Erklärung verständlicher wird.

@justme1968 Ich werde mir das sequenze auf jeden Fall mal anschauen, hätte dafür bei dem Namen aber nicht drauf gekommen, dass es für mich hilfreich hätte sein können. Schau aber in Ruhe ;)
Edith sagt: Kleiner Nachtrag vorab... wenn ich sequenze benutze, muss ich für jeden Eingang ein eigenes Sequenze-Device benutzen, oder gibt es eine Möglichkeit das ganze globaler zu gestalten ?

Vielen Dank

VG
Andreas

Damian

Ich würde im DOIF-Perl-Modus:

Einen allgemeinen Ereignisblock mit einem set_Exec-Timer mit Überprüfung des Zustands nach X-Minuten in ein Template packen - eine Zeile.

Und über eine Schleife für alle benötigten Devices das Template aufrufen.

So kannst du mit wenigen Zeilen zig Überwachungen produzieren, allerdings musst du dich dafür zuerst in die Materie einarbeiten:

https://wiki.fhem.de/wiki/DOIF/Perl-Modus

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF