DOIF schaltet nicht automatisch, nur manuell

Begonnen von Schronk, 26 November 2022, 09:40:41

Vorheriges Thema - Nächstes Thema

Schronk

Hallo Zusammen,

Ich bräuchte mal Hilfe bei einem DOIF, welches den Zustand nicht automatisch ändert, jedoch immer zuverlässig, wenn ich mit checkall manuell überprüfe. Mir ist bekannt, dass ein DOIF (ich ab einige in Benutzung) nur umschaltet, wenn eine Änderung stattfindet und es vorher in einem anderen Zustand war. Daher hab ich mit dem hier rumgespielt und es immer weiter vereinfacht aber keins der Beispiele schaltet automatisch, nur wenn ich eine Prüfung manuell über die Oberfläche anstoße. Sinn soll hier sein, das überprüft wird ob ein FHT den Stellantrieb offen hat und falls ja, einen Dummy einschaltet und falls nein, ihn wieder ausschaltet.

Original:

((ReadingsNum("FHT_Wohnzimmer","actuator",0) > 10) or (ReadingsNum("FHT_Arbeitszimmer","actuator",0) > 10) or (ReadingsNum("FHT_Bad","actuator",0) > 10)) (set OneFHT_Actor on)

DOELSE

(set OneFHT_Actor off)


Versuch 1:

((ReadingsNum("FHT_Wohnzimmer","actuator",0) > 10) or (ReadingsNum("FHT_Arbeitszimmer","actuator",0) > 10) or (ReadingsNum("FHT_Bad","actuator",0) > 10)) (set OneFHT_Actor on)

DOELSE

((ReadingsNum("FHT_Wohnzimmer","actuator",0) < 10) and (ReadingsNum("FHT_Arbeitszimmer","actuator",0) < 10) and (ReadingsNum("FHT_Bad","actuator",0) < 10)) (set OneFHT_Actor off)


Versuch 2:

(ReadingsNum("FHT_Wohnzimmer","actuator",0) == 0) (set OneFHT_Actor off)

DOELSEIF

(ReadingsNum("FHT_Wohnzimmer","actuator",0) > 1) (set OneFHT_Actor on)


Versuch 3:

(ReadingsNum("FHT_Wohnzimmer","actuator",0) > 10) (set OneFHT_Actor on)

DOELSE
set OneFHT_Actor off)


In keinem der Beispiele funktioniert es automatisch - unterliege ich hier einem Denkfehler?

Gruß

MadMax-FHEM

#1
Ich kenne ja DOIF zu wenig aber die Prinzipien von fhem: es braucht einen Trigger, damit etwas "losläuft"...

In deinem Fall läuft es, wenn du es "manuell anwirfst" (also "zwingst" zu laufen) aber es gibt in deinem "Konstrukt" nichts was das DOIF automatisch triggern könnte.

Eine ABFRAGE mittels ReadingsVal triggert nicht, sondern frägt eben ab, wenn es dran ist ;)

Am einfachsten mal den Eventmonitor öffnen, auf einen passenden Trigger/Event warten (oder provozieren) und dann die Zeile markieren und ein notify/DOIF/FileLog etc. anlegen lassen und erweitern...
https://wiki.fhem.de/wiki/Event_monitor

Commandref zu DOIF gelesen?
Beipiele im Wiki?

EDIT: und besser im passenden Unterforum posten/verschieben (kannst du selbst) 8)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

JudgeDredd

Auch ich bin kein DOIF Spezialist, aber wenn man mal in die CommandRef schaut, müsste es so doch funktionieren:
( [FHT_Wohnzimmer:actuator] > 10 || [FHT_Arbeitszimmer:actuator] > 10 || [FHT_Bad:actuator] > 10 )
  ( set OneFHT_Actor on )
DOELSE
  ( set OneFHT_Actor off )
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

Schronk

Zitat von: MadMax-FHEM am 26 November 2022, 10:34:22
Ich kenne ja DOIF zu wenig aber die Prinzipien von fhem: es braucht einen Trigger, damit etwas "losläuft"...

Vielen Dank, Joachim - dass war es ;)

Mir ist gar nicht in den Sinn gekommen, dass eine Reading nur ausgeführt wird und damit kein Trigger sein kann....