Hallo Leute,
Ich denke ich habe irgendwo eine Klammer falsch gesetzt. Deswegen schaltet es nicht zuverlässig.
Es schaltet nur wenn ich ,,set WeihnachtsbaumDOIF checkall" schaltet es ein. Aus schaltet es zuverlässig.
([Weihnachtszeit] eq "on" and ([?6:40-8:30] and [ZWave_SENSOR_NOTIFICATION_23:motion_state] eq "Bewegung erkannt" or ([LOGOLichtsensor] eq "off")))
(set HUEDevice12 on)
Weihnachtszeit =dummy
ZWave_SENSOR_NOTIFICATION_23= bewegungsmelder
LOGOLichtsensor= lichtsensor der mit meiner Logo verbunden ist. Erkennt nur hell und dunkel. Der Lichtsensor lässt unsere Jalousien hochfahren dann soll das Licht aufjedenfall angehen. Der Bewegungsmelder soll das Licht anschalten wenn wir schon unten sind aber die Jalousien noch unten sind so das wir auf so schon was von dem Weihmachtsbaum haben.
Danke für eure Hilfe
Hi,
das da einer ist der aus schaltet sehe ich nicht? :-[
Ansonsten deutet das ev. darauf hin, dass attr do always fehlt?
Gruß Otto
Falsch ausgedrückt und nur den abschalten Befehl gesendet
Hier ist das ganze DOIF:
([Weihnachtszeit] eq "on" and ([?6:40-8:30] and [ZWave_SENSOR_NOTIFICATION_23:motion_state] eq "Bewegung erkannt" or [LOGOLichtsensor] eq "off"))
(set HUEDevice12 on)
DOELSEIF
([?20:15-23:59] and [HUEDevice5] eq "off")
(set HUEDevice12 off)
DOELSEIF
([Weihnachtszeit] eq "off")
(set HUEDevice12 off)
Ausschalten funktioniert super ohne Probleme nur das einschalten klappt nicht nur nach checkall
Du musst wie immer list von dem DOIF posten, sonst wird man dir hier nicht helfen können.
Danke
Habe noch die List mit angehangen.
Habe auch schon versucht die Klammern anders zu setzten. Oder welche wegzulassen. Ich denke das klammerfehler bei Logo und dem Bewegungssensor sitzt. Und wie immer 30cm vor dem Bildschirm 😉
Internals:
DEF ([Weihnachtszeit] eq "on" and ([?6:40-8:30] and [ZWave_SENSOR_NOTIFICATION_23:motion_state] eq "Bewegung erkannt" or ([LOGOLichtsensor] eq "off")))
(set HUEDevice12 on)
DOELSEIF
([?20:15-23:59] and [HUEDevice5] eq "off")
(set HUEDevice12 off)
DOELSEIF
([Weihnachtszeit] eq "off")
(set HUEDevice12 off)
FUUID 61bf5ba6-f33f-5e7b-00d5-bf6d967e98e7c501
MODEL FHEM
NAME WeihnachtsbaumDOIF
NOTIFYDEV LOGOLichtsensor,Weihnachtszeit,HUEDevice5,ZWave_SENSOR_NOTIFICATION_23,global
NR 172
NTFY_ORDER 50-WeihnachtsbaumDOIF
STATE cmd_1
TYPE DOIF
VERSION 24755 2021-07-15 16:40:59
READINGS:
2021-12-23 16:21:27 Device HUEDevice5
2021-12-23 15:07:51 cmd 1
2021-12-23 15:07:51 cmd_event WeihnachtsbaumDOIF
2021-12-23 15:07:51 cmd_nr 1
2021-12-23 16:21:27 e_HUEDevice5_STATE off
2021-12-23 15:07:48 mode enabled
2021-12-23 15:07:51 state cmd_1
2021-12-23 15:07:48 timer_01_c01 24.12.2021 06:40:00
2021-12-23 15:07:48 timer_02_c01 24.12.2021 08:30:00
2021-12-23 15:07:48 timer_03_c02 23.12.2021 20:15:00
2021-12-23 15:07:48 timer_04_c02 23.12.2021 23:59:00
Regex:
accu:
collect:
cond:
HUEDevice5:
0:
1:
&STATE ^HUEDevice5$
2:
LOGOLichtsensor:
0:
&STATE ^LOGOLichtsensor$
Weihnachtszeit:
0:
&STATE ^Weihnachtszeit$
2:
&STATE ^Weihnachtszeit$
ZWave_SENSOR_NOTIFICATION_23:
0:
motion_state ^ZWave_SENSOR_NOTIFICATION_23$:^motion_state:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::InternalDoIf($hash,'Weihnachtszeit','STATE') eq "on" and (::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'ZWave_SENSOR_NOTIFICATION_23','motion_state') eq "Bewegung erkannt" or ::InternalDoIf($hash,'LOGOLichtsensor','STATE') eq "off")
1 ::DOIF_time($hash,2,3,$wday,$hms) and ::InternalDoIf($hash,'HUEDevice5','STATE') eq "off"
2 ::InternalDoIf($hash,'Weihnachtszeit','STATE') eq "off"
days:
do:
0:
0 set HUEDevice12 on
1:
0 set HUEDevice12 off
2:
0 set HUEDevice12 off
3:
helper:
DEVFILTER ^global$|^ZWave_SENSOR_NOTIFICATION_23$|^Weihnachtszeit$|^LOGOLichtsensor$|^HUEDevice5$
NOTIFYDEV global|ZWave_SENSOR_NOTIFICATION_23|Weihnachtszeit|LOGOLichtsensor|HUEDevice5
event lastseen: 2021-12-23T15:19Z
globalinit 1
last_timer 4
sleeptimer -1
timerdev
timerevent
timerevents
timereventsState
triggerDev HUEDevice5
triggerEvents:
lastseen: 2021-12-23T15:19Z
triggerEventsState:
lastseen: 2021-12-23T15:19Z
internals:
all Weihnachtszeit:STATE LOGOLichtsensor:STATE HUEDevice5:STATE
interval:
0 -1
1 0
2 -1
3 2
intervalfunc:
localtime:
0 1640324400
1 1640331000
2 1640286900
3 1640300340
readings:
all ZWave_SENSOR_NOTIFICATION_23:motion_state
realtime:
0 06:40:00
1 08:30:00
2 20:15:00
3 23:59:00
time:
0 6:40
1 8:30
2 20:15:00
3 23:59:00
timeCond:
0 0
1 0
2 1
3 1
timer:
0 0
1 0
2 0
3 0
trigger:
triggertime:
1640286900:
localtime 1640286900
hash:
1640300340:
localtime 1640300340
hash:
1640324400:
localtime 1640324400
hash:
1640331000:
localtime 1640331000
hash:
uiState:
uiTable:
Attributes:
room Steckdosen
Der kann ja nur das Device ausschalten, wenn eine der beiden anderen Bedingung auch zutrifft, das ist hier nicht der Fall.
Bin zwar anfänger aber ich versuche mal zu helfen...
Zitat([?6:40-8:30] and [ZWave_SENSOR_NOTIFICATION_23:motion_state] eq "Bewegung erkannt" )
(set HUEDevice12 on)
Kannjetzt nicht klappen weil es zu spät ist... geht doch nur zwischen 06:40-08:30
und die "or" Funktion ... Ist denn der LogoLichtsensor auch wirklich "off" ein List vom Lichtsensor wäre vielleicht hilfreich..
Jo also der Lichtsensor wird dort noch nicht off sein. Er ist zur Zeit bis ca 8:30 on, da es draußen so dunkel ist
Zur Zeit ist der Lichtsensor on da es draußen dunkel ist.
Internals:
ADDRESS 1390.0
AREA db
DB 0
DEF NQ1
FUUID 61b5dad1-f33f-5e7b-8f08-067ccf24f75d4c2c
IODev Logo
LASTInputDev Logo
LENGTH 1
Logo_MSGCNT 92
Logo_TIME 2021-12-23 18:27:14
MSGCNT 92
NAME LOGOLichtsensor
NR 165
POSITION 11120
STATE on
TYPE S7_DRead
READINGS:
2021-12-23 18:25:17 IODev Logo
2021-12-23 18:27:14 state on
Attributes:
event-on-update-reading off:on
room Draußen,Logo
Deswegen ja auch das or damit er entweder den Lichtsensor nimmt oder den Bewegungsmelder nur den Bewegungsmelder soll er zwischen 6:40 und 8:30 abfragen
Wir brauchen den vermeintlich falschen Zustand, also den Fall wo du meinst, dass er off schalten sollte.
Du brauchst den Zustand wo der Lichtsensor off schaltet? Das macht er. Den habe noch ein Schaltung mit dem Lichtsensor die funktioniert ohne Probleme. Den Bewegungsmelder bekomme ich auch geschaltet. Den das bekomme ich abends bei Bewegungen im Wohnzimmer geschaltet. Geht das Licht an wenn wir nicht da waren.
Ich bekomme es nur nicht hin das entweder der Lichtsensor das Licht anschaltet wenn es hell genug ist, oder halt eben vorher der Bewegungsmelder. Das Klappt einfach nicht. Habe die Klammern auch schon anders gesetzt.
Zitat von: Wasserwerk33 am 23 Dezember 2021, 22:25:56
Du brauchst den Zustand wo der Lichtsensor off schaltet? Das macht er. Den habe noch ein Schaltung mit dem Lichtsensor die funktioniert ohne Probleme. Den Bewegungsmelder bekomme ich auch geschaltet. Den das bekomme ich abends bei Bewegungen im Wohnzimmer geschaltet. Geht das Licht an wenn wir nicht da waren.
Ich bekomme es nur nicht hin das entweder der Lichtsensor das Licht anschaltet wenn es hell genug ist, oder halt eben vorher der Bewegungsmelder. Das Klappt einfach nicht. Habe die Klammern auch schon anders gesetzt.
Dann musst du die or-Bedingung klammern und statt Zustandsabfragen auf reine Ereignisse umstellen:
([Weihnachtszeit] eq "on" and ([?6:40-8:30] and (["^ZWave_SENSOR_NOTIFICATION_23$:motion_state: Bewegung erkannt"] or ["^LOGOLichtsensor$:off"]))
Zitat von: Wasserwerk33 am 23 Dezember 2021, 18:29:29
Jo also der Lichtsensor wird dort noch nicht off sein. Er ist zur Zeit bis ca 8:30 on, da es draußen so dunkel ist
Zur Zeit ist der Lichtsensor on da es draußen dunkel ist.
Internals:
ADDRESS 1390.0
AREA db
DB 0
DEF NQ1
FUUID 61b5dad1-f33f-5e7b-8f08-067ccf24f75d4c2c
IODev Logo
LASTInputDev Logo
LENGTH 1
Logo_MSGCNT 92
Logo_TIME 2021-12-23 18:27:14
MSGCNT 92
NAME LOGOLichtsensor
NR 165
POSITION 11120
STATE on
TYPE S7_DRead
READINGS:
2021-12-23 18:25:17 IODev Logo
2021-12-23 18:27:14 state on
Attributes:
event-on-update-reading off:on
room Draußen,Logo
Deswegen ja auch das or damit er entweder den Lichtsensor nimmt oder den Bewegungsmelder nur den Bewegungsmelder soll er zwischen 6:40 und 8:30 abfragen
Hat zwar (evtl./verm.) nichts mit dem Problem zu tun, wollte es aber trotzdem anmerken, da offensichtlich falsch:
Zitat von: "Wasserwerk33
Attributes:
event-on-update-reading off:on
Zitat von: wiki
Syntax
Das event-on-update-reading Attribut wird in der folgenden Weise spezifiziert:
attr <device> event-on-update-reading reading1[,reading2...n]
Die zu berücksichtigenden Readings sind als durch Kommata getrennte Werte anzugeben, können aber auch über reguläre Ausdrücke zusammengefasst werden.
Gruß, Joachim
Joachim 👍
Damit erzeugt der Lichtsensor überhaupt keine Events mehr!?
Damit reagiert das DOIF in Folge auf keine Veränderung des Lichtsensors.
Zitat von: Otto123 am 24 Dezember 2021, 11:32:54
Damit erzeugt der Lichtsensor überhaupt keine Events mehr!?
Da war/bin ich mir nicht sicher (gewesen)...
...macht ein event-on-update-reading denn OHNE event-on-change-reading überhaupt Sinn?
(war eher was ich mir gedacht habe ;) und nat. dass die Syntax [ganz] falsch ist...)
Zitat von: Otto123 am 24 Dezember 2021, 11:32:54
Damit reagiert das DOIF in Folge auf keine Veränderung des Lichtsensors.
Gut, wenn nat. ersteres stimmt, dann nat. das hier auch 8)
Gruß, Joachim
Zitat Doku
Zitatevent-on-update-reading
Wenn nicht gesetzt, erzeugt jede Veränderung eines "readings" ein Ereignis, welches z.B. von notify oder FileLog berücksichtigt wird. Wenn gesetzt erzeugen nur Aktualisierungen der eingetragenen "readings" ein Ereignis.
War mir auch nicht ganz sicher, deswegen das Fragezeichen :)
Zitat von: Damian am 23 Dezember 2021, 22:39:53
Dann musst du die or-Bedingung klammern und statt Zustandsabfragen auf reine Ereignisse umstellen:
([Weihnachtszeit] eq "on" and ([?6:40-8:30] and (["^ZWave_SENSOR_NOTIFICATION_23$:motion_state: Bewegung erkannt"] or ["^LOGOLichtsensor$:off"]))
Leider schaltet es immer noch nicht an.
Hier ist noch eins was ein schaltet wenn die Jalousien hochfahren ( der Lichtsensor off ist). Habe jetzt ja nur zusätzlich nur den Bewegungsmelder reingebaut aber es klappt irgendwo nicht mit der ,,or" Verknüpfung.
([Weihnachtszeit] eq "on" and [LOGOLichtsensor] eq "off" and [?6:40-20:15] and [ZWave_SENSOR_NOTIFICATION_23:luminance:d]< 20)
(set HUEDevice8 on, set HUEDevice9 on)
DOELSEIF
([?6:40-20:15] and [ZWave_SENSOR_NOTIFICATION_23:luminance:d]> 21 or ([?20:15-23:59] and [HUEDevice3] eq "off"))
(set HUEDevice8 off, set HUEDevice9 off)
DOELSEIF
([Weihnachtszeit] eq "off")
(set HUEDevice8 off, set HUEDevice9 off)
List:
Internals:
DEF ([Weihnachtszeit] eq "on" and [LOGOLichtsensor] eq "off" and [?6:40-20:15] and [ZWave_SENSOR_NOTIFICATION_23:luminance:d]< 20)
(set HUEDevice8 on, set HUEDevice9 on)
DOELSEIF
([?6:40-20:15] and [ZWave_SENSOR_NOTIFICATION_23:luminance:d]> 21 or ([?20:15-23:59] and [HUEDevice3] eq "off"))
(set HUEDevice8 off, set HUEDevice9 off)
DOELSEIF
([Weihnachtszeit] eq "off")
(set HUEDevice8 off, set HUEDevice9 off)
FUUID 61b055da-f33f-5e7b-b0af-a0af9454e866d61e
MODEL FHEM
NAME WeihnachtszeitDOIF
NOTIFYDEV HUEDevice3,global,Weihnachtszeit,LOGOLichtsensor,ZWave_SENSOR_NOTIFICATION_23
NR 163
NTFY_ORDER 50-WeihnachtszeitDOIF
STATE cmd_1
TYPE DOIF
VERSION 24755 2021-07-15 16:40:59
READINGS:
2021-12-24 12:24:40 Device HUEDevice3
2021-12-24 08:30:54 cmd 1
2021-12-24 08:30:54 cmd_event ZWave_SENSOR_NOTIFICATION_23
2021-12-24 08:30:54 cmd_nr 1
2021-12-24 12:24:40 e_HUEDevice3_STATE on
2021-12-24 12:22:40 e_ZWave_SENSOR_NOTIFICATION_23_luminance 11 Lux
2021-12-21 07:59:38 mode enabled
2021-12-24 08:30:54 state cmd_1
2021-12-23 20:15:00 timer_01_c01 24.12.2021 06:40:00
2021-12-23 20:15:00 timer_02_c01 24.12.2021 20:15:00
2021-12-23 20:15:00 timer_03_c02 24.12.2021 06:40:00
2021-12-23 20:15:00 timer_04_c02 24.12.2021 20:15:00
2021-12-23 23:59:00 timer_05_c02 24.12.2021 20:15:00
2021-12-23 23:59:00 timer_06_c02 24.12.2021 23:59:00
Regex:
accu:
collect:
cond:
HUEDevice3:
0:
1:
&STATE ^HUEDevice3$
2:
LOGOLichtsensor:
0:
&STATE ^LOGOLichtsensor$
Weihnachtszeit:
0:
&STATE ^Weihnachtszeit$
2:
&STATE ^Weihnachtszeit$
ZWave_SENSOR_NOTIFICATION_23:
0:
luminance ^ZWave_SENSOR_NOTIFICATION_23$:^luminance:
1:
luminance ^ZWave_SENSOR_NOTIFICATION_23$:^luminance:
2:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::InternalDoIf($hash,'Weihnachtszeit','STATE') eq "on" and ::InternalDoIf($hash,'LOGOLichtsensor','STATE') eq "off" and ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'ZWave_SENSOR_NOTIFICATION_23','luminance','','d')< 20
1 ::DOIF_time($hash,2,3,$wday,$hms) and ::ReadingValDoIf($hash,'ZWave_SENSOR_NOTIFICATION_23','luminance','','d')> 21 or (::DOIF_time($hash,4,5,$wday,$hms) and ::InternalDoIf($hash,'HUEDevice3','STATE') eq "off")
2 ::InternalDoIf($hash,'Weihnachtszeit','STATE') eq "off"
days:
do:
0:
0 set HUEDevice8 on, set HUEDevice9 on
1:
0 set HUEDevice8 off, set HUEDevice9 off
2:
0 set HUEDevice8 off, set HUEDevice9 off
3:
helper:
DEVFILTER ^global$|^HUEDevice3$|^ZWave_SENSOR_NOTIFICATION_23$|^Weihnachtszeit$|^LOGOLichtsensor$
NOTIFYDEV global|HUEDevice3|ZWave_SENSOR_NOTIFICATION_23|Weihnachtszeit|LOGOLichtsensor
event lastseen: 2021-12-24T11:21Z
globalinit 1
last_timer 6
sleeptimer -1
timerdev ZWave_SENSOR_NOTIFICATION_23
timerevent luminance: 11 Lux
triggerDev HUEDevice3
timerevents:
luminance: 11 Lux
timereventsState:
luminance: 11 Lux
triggerEvents:
lastseen: 2021-12-24T11:21Z
triggerEventsState:
lastseen: 2021-12-24T11:21Z
internals:
all Weihnachtszeit:STATE LOGOLichtsensor:STATE HUEDevice3:STATE
interval:
0 -1
1 0
2 -1
3 2
4 -1
5 4
intervalfunc:
intervaltimer:
localtime:
0 1640324400
1 1640373300
2 1640324400
3 1640373300
4 1640373300
5 1640386740
perlblock:
readings:
all ZWave_SENSOR_NOTIFICATION_23:luminance
realtime:
0 06:40:00
1 20:15:00
2 06:40:00
3 20:15:00
4 20:15:00
5 23:59:00
time:
0 6:40
1 20:15:00
2 6:40
3 20:15:00
4 20:15:00
5 23:59:00
timeCond:
0 0
1 0
2 1
3 1
4 1
5 1
timer:
0 0
1 0
2 0
3 0
4 0
5 0
timers:
trigger:
triggertime:
1640373300:
localtime 1640373300
hash:
1640386740:
localtime 1640386740
hash:
uiState:
uiTable:
Attributes:
Du hast #12 - #14 schon gelesen? Wenn das bei anderen Devices auch so ist, sieht es ganz schlecht aus mit Events :)
Zitat von: Otto123 am 24 Dezember 2021, 12:54:42
Du hast #12 - #14 schon gelesen? Wenn das bei anderen Devices auch so ist, sieht es ganz schlecht aus mit Events :)
Drum immer wieder mal den Eventmonitor öffnen, wenn Sachen nicht schalten wie sie sollten...
...kein Event, keine Reaktion... ;)
Gruß, Joachim
Muss ich nach meinen Nächten mal schauen, was das Event mir mitteilt.
Schöne Weihnachten euch allen
Zitat von: Wasserwerk33 am 24 Dezember 2021, 13:58:51
Muss ich nach meinen Nächten mal schauen, was das Event mir mitteilt.
Event?
Ich hoffe du meinst das Attribut (event-on-update-reading)!
(und evtl. mal alle deine event-on- Einträge aller Devices prüfen! "Falsche" Nutzung kann "fatale" Folgen haben...)
Frohes Fest, Joachim