Vielleicht ist es Zufall aber ich habe gestern ein Update von FHEM gemacht weil der Indicator hat mich über die Verfügbarkeit von Updates informiert.
Seitdem habe ich Probleme mit mein DOIF.
sogar ein ganz einfacher DOIF funktioniert richtig!
nur beim ersten Mal oder bei set outside_lights_DOIF checkall, danach nicht mehr.
Obwohl do always gesetzt ist.
Ist irgendetwas mit dem DO ALWAYS passiert, oder mache ich irgendwo einen Anfängerfehler?
Die Information von meinen Bewegungsmeldern (Philips HUE und IKEA Tradfri, beide mit ConBee2 angeschlossen) kommen korrekt an, werden auch in FHEM angezeigt.
Nur der DOIF schaltet die Shelly nicht an >:(
Internals:
DEF (
((ReadingsVal("Philips1Motion","state","") eq "motion")
or
(ReadingsVal("TrafdriMotion_01","state","") eq "motion"))
)
(set Shelly1PM_765FC5 on-for-timer 30,
set deCONZ_HUEDevice5 on-for-timer 30)
FUUID 5e5ee3a2-f33f-6a06-b5b0-7d3cf68e16af5e97
FVERSION 98_DOIF.pm:0.212240/2020-02-18
MODEL FHEM
NAME outside_lights_DOIF
NOTIFYDEV global
NR 128
NTFY_ORDER 50-outside_lights_DOIF
STATE cmd_1
TYPE DOIF
VERSION 21224 2020-02-18 18:45:49
READINGS:
2020-03-23 17:26:35 cmd 1
2020-03-23 17:26:35 cmd_event outside_lights_DOIF
2020-03-23 17:26:35 cmd_nr 1
2020-03-23 15:00:48 mode enabled
2020-03-23 17:26:35 state cmd_1
Regex:
accu:
attr:
cmdState:
wait:
waitdel:
condition:
0 ((ReadingsVal("Philips1Motion","state","") eq "motion") or (ReadingsVal("TrafdriMotion_01","state","") eq "motion"))
do:
0:
0 set Shelly1PM_765FC5 on-for-timer 30, set deCONZ_HUEDevice5 on-for-timer 30
1:
helper:
DEVFILTER ^global$
NOTIFYDEV global
globalinit 1
last_timer 0
sleeptimer -1
timerdev
timerevent
timerevents
timereventsState
triggerDev
DOIF_eventa:
cmd_nr: 1
cmd: 1
cmd_event: outside_lights_DOIF
cmd_1
DOIF_eventas:
cmd_nr: 1
cmd: 1
cmd_event: outside_lights_DOIF
state: cmd_1
perlblock:
uiState:
uiTable:
Attributes:
do always
room Outside_Perimeter
(set Shelly1PM_765FC5 on-for-timer 30,
set deCONZ_HUEDevice5 on-for-timer 30)
Du solltest Deinen Thread besser nach Automatisierung -> DOIF verschieben.
Da hat cooltux recht. Verschieben Button findest du ganz unten links.
Ich frage mich allerdings:
A) Was für einen ,,Indicator" zeigt dir updates an? FHEM Updates gibt es ja eigentlich täglich...
B) Hat das DOIF wirklich mal funktioniert? Bei DOIF brauche ich doch eigentlich kein ReadingsVal... triggert das überhaupt?
Gesendet von iPhone mit Tapatalk
Ein DOIF muss einen Trigger haben (Angaben in eckigen Klammern). Deine DOIF-Defintion hat keinen.
Zitat von: Damian am 23 März 2020, 18:27:20
Ein DOIF muss einen Trigger haben (Angaben in eckigen Klammern). Deine DOIF-Defintion hat keinen.
vielen Dank, das war es!
Grund war das die ursprüngliche Version bereits einen Trigger mit eckigen Klammern hatte:
(
([Ring_FrontDoor] eq "motion")
and ([17:00-23:59] or [00:00-07:00])
and ReadingsNum("Philips1Lumin","lux",0) < 70
)
(set Shelly1PM_765FC5 on-for-timer 90, set deCONZ_HUEDevice5 blink 4 1)
und ich habe die ganze Zeit versucht eine Lösung für das nicht funktionierende ReadingsNum("Philips1Lumin","lux",0) < 70
Jetzt habe ich verstanden, dass es es viel einfacher geht: [Philips1Lumin:lux] < 100 :)
Ich habe noch eine Verständnis Frage:
Dass, was mich die ganze Zeit auf die falsche fährte gelockt hat war die Tatasache das checkall ("set outside_lights_DOIF checkall") das DOIF korrekt interpretiert hat und mir die korrekt Antwort gegeben hat (cmd_1) sowie die Lichte korrekt eingeschaltet hat (siehe Bild).
daher bin ich immer davon ausgegangen, dass das DOIF korrekt ist.
Mache ich ein Denkfehler irgendwo? Hätte nicht das "set outside_lights_DOIF checkall" die Lichte aus lassen sollen?
Mit set ... checkall werden die Bedingungen auf Wahrheit geprüft und ggf. Anweisungen ausgeführt (siehe Commandref), den Trigger hast du dann selbst gespielt.