Hallo,
Ich verzweifele mittlerweile
defmod Tuer.Motion.doif DOIF ([T:light] <3 and ([0x680ae2fffe39ae76:state] eq "motion")) (set Tuerlicht on-for-timer 45)
Wenn es dunkel ist und ein Bewegungsmeldern "motion" meldet soll ein Licht für 45sek angehen.
Irgendwie schaltet das DOIF nicht das Licht.
Ich sehe das CMD2 und bei Bewegung auch CMD1 getriggert wird, aber das blöde Licht geht nicht an.
Einzeln funktioniert der Befehl...
Hallo hyper2910
Kann denn das Device Tuerlicht überhaupt on-for-timer ?
Gruß
Stephan
Hallo,
Vorschlag (Edit: Fehler mit Devicenamen korrigiert):
defmod Tuer.Motion.doif DOIF ([T:light] <3 and ([0x680ae2fffe39ae76:state] eq "motion")) (set Tuerlicht on)(set Tuerlicht off)
attr Tuer.Motion.doif do resetwait
attr Tuer.Motion.doif room Flur
attr Tuer.Motion.doif wait 0,45
Vorteil gegenüber on-for-timer: würde nachtriggern wenn die Zeiten passen.
Gruß Otto
Zitat von: Otto123 am 02 Februar 2021, 23:53:45
Hallo,
Vorschlag:
defmod Tuer.Motion.doif DOIF ([T:light] <3 and ([0x680ae2fffe39ae76:state] eq "motion")) (set Tuerlicht on)(set Tuerlicht off)
attr di_Flurlicht do resetwait
attr di_Flurlicht room Flur
attr di_Flurlicht wait 0,45
Vorteil gegenüber on-for-timer: würde nachtriggern wenn die Zeiten passen.
Gruß Otto
Ein Schönheitsfehler...
Damit keine unnötigen Fehlermeldungen kommen:
attr Tuer.Motion.doif do resetwait
attr Tuer.Motion.doif room Flur
attr Tuer.Motion.doif wait 0,45
Hi zusammen,
also On-for-timer geht mit dem device, manuell kann ich es ja schalten.
defmod Tuer.Motion1.doif DOIF ([T:light] <3 and ([0x680ae2fffe39ae76:state] eq "motion")) (set Tuerlicht on)(set Tuerlicht off)
Tuer.Motion1.doif
initialized
Habe ich getestet, aber der steht nur auf initialzed, mehr passiert da nicht!
Moin
So ein freundliches list von "Tuer.Motion.doif" wuere eventuell Licht ins dunkel bringen!
Gruss Christoph
ist T:light aktuell >3 ?...
Ein list vom DOIF wäre hilfreich
list Tuer.Motion1.doif
Hier noch das List
Internals:
CFGFN
DEF ([T:light] <3 and ([0x680ae2fffe39ae76:state] eq "motion")) (set Tuerlicht on)(set Tuerlicht off)
FUUID 601a3f99-f33f-395a-7345-9107d70a1fb90ea7
MODEL FHEM
NAME Tuer.Motion1.doif
NOTIFYDEV T,global,0x680ae2fffe39ae76
NR 64844
NTFY_ORDER 50-Tuer.Motion1.doif
STATE initialized
TYPE DOIF
VERSION 23640 2021-01-30 10:49:48
READINGS:
2021-02-03 08:15:56 Device 0x680ae2fffe39ae76
2021-02-03 07:15:53 cmd 0
2021-02-03 08:15:56 e_0x680ae2fffe39ae76_state no_motion
2021-02-03 08:14:15 e_T_light 4
2021-02-03 08:52:09 mode enabled
2021-02-03 08:52:09 state initialized
Regex:
accu:
cond:
0x680ae2fffe39ae76:
0:
state ^0x680ae2fffe39ae76$:^state:
T:
0:
light ^T$:^light:
attr:
wait:
0:
0
45
condition:
0 ::ReadingValDoIf($hash,'T','light') <3 and (::ReadingValDoIf($hash,'0x680ae2fffe39ae76','state') eq "motion")
do:
0:
0 set Tuerlicht on
1 set Tuerlicht off
1:
helper:
DEVFILTER ^global$|^T$|^0x680ae2fffe39ae76$
NOTIFYDEV global|T|0x680ae2fffe39ae76
event no_motion,occupancy: false,requested_brightness_percent: 100,requested_brightness_level: 254,battery: ok,battery_level: 47,linkquality: 39
globalinit 1
last_timer 0
sleeptimer -1
triggerDev 0x680ae2fffe39ae76
triggerEvents:
no_motion
occupancy: false
requested_brightness_percent: 100
requested_brightness_level: 254
battery: ok
battery_level: 47
linkquality: 39
triggerEventsState:
state: no_motion
occupancy: false
requested_brightness_percent: 100
requested_brightness_level: 254
battery: ok
battery_level: 47
linkquality: 39
internals:
readings:
all T:light 0x680ae2fffe39ae76:state
trigger:
uiTable:
Attributes:
do resetwait
room 4.00 Draussen
wait 0,45
Moin,
sorry für den Fehler, wollte es von meinem Code noch anpassen und habe die Hälfte vergessen :-[
Zitat2021-02-03 08:15:56 e_0x680ae2fffe39ae76_state no_motion
2021-02-03 08:14:15 e_T_light 4
Keine der beiden Bedingungen ist erfüllt, also warum sollte das DOIF schalten?
Gruß Otto
Zitat von: Otto123 am 03 Februar 2021, 08:59:38
Moin,
sorry für den Fehler, wollte es von meinem Code noch anpassen und habe die Hälfte vergessen :-[
Keine der beiden Bedingungen ist erfüllt, also warum sollte das DOIF schalten?
Gruß Otto
...war ja auch schon spät.... :)
Ansonsten... Otto hats auf den Punkt gebracht.
klar jetzt nicht mehr weil es heller ist.
eben war der Wert noch auf 2.
Ich muss aber jetzt auch zur Arbeit und werde heute abend im Dunkeln nochmals testen!
falls Du heute Abend noch Hilfe brauchst solltest Du auch bitte ein list 0x680ae2fffe39ae76 liefern ;)
und im Dunkel für Bewegung sorgen ;)
Hallo zusammen,
kleine Zwischenfrage.
Es soll doch nur auf den Trigger "motion" reagiert werden.
Müsste der Aufruf dann nicht folgendermaßen aussehen?
(([0x680ae2fffe39ae76:"^state:.motion$"]) and ([?T:light] <3)) (set Tuerlicht on)(set Tuerlicht off)
Gruß Karsten
im ersten post sah das aber nicht so aus, aber nun dank des ? wird das Licht nur abgefragt und triggert selbst nicht...
sollte passen
kann man so machen - viele Wege führen zum Licht.
Dann muss der Event aber auch exakt so aussehen: ^state:.motion$
Das weiß aber nur der TE (bestenfalls :) )
Ich gebe zu bedenken, dass state im Event normal nicht vorkommt. Also ich würde sagen, dass passt (allein mit der Änderung) nicht. Stichwort addStateEvent
Lassen wir ihn erstmal im Dunkeln testen, optimieren kann man immer noch.
Hallo Otto,
Zitat von: Otto123 am 03 Februar 2021, 11:58:02
Dann muss der Event aber auch exakt so aussehen: ^state:.motion$
da hast du natürlich recht.
Ich hatte nur das Event vom TE übernommen.
Genauer kann man das nur im Event monitor erkennen auf welches Event DOIF reagieren soll.
Mir ging es nur darum, das wenn (wie im ersten Post geschrieben) beide Events abgefragt werden,
dann müssten die Events doch gleichzeitig stattfinden damit DOIF reagiert, oder täusche ich mich da.
Wie gesagt, war nur ne kleine Zwischenfrage ;)
Zitat von: Otto123 am 03 Februar 2021, 11:58:02
Lassen wir ihn erstmal im Dunkeln testen, optimieren kann man immer noch.
Zustimmung :)
Zitat von: hydrotec am 03 Februar 2021, 12:36:29
Hallo Otto,
da hast du natürlich recht.
Ich hatte nur das Event vom TE übernommen.
Genauer kann man das nur im Event monitor erkennen auf welches Event DOIF reagieren soll.
Mir ging es nur darum, das wenn (wie im ersten Post geschrieben) beide Events abgefragt werden,
dann müssten die Events doch gleichzeitig stattfinden damit DOIF reagiert, oder täusche ich mich da.
Wie gesagt, war nur ne kleine Zwischenfrage ;)
Zustimmung :)
Das, was du im ersten Poste definiert hast, sind keine Event-Abfragen, sondern event-getriggerte Zustandsabfragen. Zustände lassen sich im Grunde zu jedem Zeitpunkt abfragen. Event-Abfragen (Eventangaben in Anführungszeichen) dagegen sind nur zum Triggerzeitpunkt wahr und sonnst sind sie nicht wahr.
Hallo Damian,
Dankeschön für die Aufklärung. :)
Gruß Karsten