Hallo zusammen,
Ich habe im Prinzip ein einfaches DoIf für einen Bewegungsmelder der mein Küchenlicht schalten soll.
Das Problem ist, dass das Licht nach der definierten Zeit ausgeht, auch wenn zwischendurch ein "motion" kommt und der Timer eigentlich von vorn beginnen sollte zu zählen.
Hier ein list meines DoIfs:
Internals:
DEF (([Motion_Kitchen:"motion$"] or [HUEDevice7:pct] > 1) and ([twilight:twilight_weather] < 55 and [07:01-19:59]))
(set HUEGroup49489 pct 40)
(set HUEGroup49489 pct 0)
DOELSEIF (([Motion_Kitchen:"motion$"] or [HUEDevice7:pct] > 1) and ([twilight:twilight_weather] <55 and [20:00-07:00]))
(set HUEGroup49489 pct 10)
(set HUEGroup49489 pct 0)
FUUID 5d911fc7-f33f-3040-8f68-5a42ab79708ecd71
FVERSION 98_DOIF.pm:0.205000/2019-11-12
MODEL FHEM
NAME di_Kuechenlicht
NOTIFYDEV global,HUEDevice7,Motion_Kitchen,twilight
NR 406
NTFY_ORDER 50-di_Kuechenlicht
STATE cmd_1
TYPE DOIF
VERSION 20500 2019-11-12 17:54:48
READINGS:
2019-11-18 13:41:28 Device twilight
2019-11-18 08:31:10 cmd 1.2
2019-11-18 08:31:10 cmd_event Motion_Kitchen
2019-11-18 08:31:10 cmd_nr 1
2019-11-18 08:31:10 cmd_seqnr 2
2019-11-18 08:31:10 e_HUEDevice7_pct 0
2019-11-18 08:37:21 e_Motion_Kitchen_events nomotion
2019-11-18 13:41:28 e_twilight_twilight_weather 61
2019-11-03 10:44:35 mode enabled
2019-11-18 08:31:10 state cmd_1
2019-11-17 19:59:00 timer_01_c01 18.11.2019 07:01:00
2019-11-17 19:59:00 timer_02_c01 18.11.2019 19:59:00
2019-11-18 07:00:00 timer_03_c02 18.11.2019 20:00:00
2019-11-18 07:00:00 timer_04_c02 19.11.2019 07:00:00
2019-11-18 08:31:10 wait_timer no timer
Regex:
accu:
cond:
HUEDevice7:
0:
pct ^HUEDevice7$:^pct:
1:
pct ^HUEDevice7$:^pct:
Motion_Kitchen:
0:
&STATE ^Motion_Kitchen$
1:
&STATE ^Motion_Kitchen$
twilight:
0:
twilight_weather ^twilight$:^twilight_weather:
1:
twilight_weather ^twilight$:^twilight_weather:
attr:
cmdState:
wait:
0:
0
240
1:
0
120
waitdel:
condition:
0 (::EventDoIf('Motion_Kitchen',$hash,'motion$',1) or ::ReadingValDoIf($hash,'HUEDevice7','pct') > 1) and (::ReadingValDoIf($hash,'twilight','twilight_weather') < 55 and ::DOIF_time($hash,0,1,$wday,$hms))
1 (::EventDoIf('Motion_Kitchen',$hash,'motion$',1) or ::ReadingValDoIf($hash,'HUEDevice7','pct') > 1) and (::ReadingValDoIf($hash,'twilight','twilight_weather') <55 and ::DOIF_time($hash,2,3,$wday,$hms))
days:
do:
0:
0 set HUEGroup49489 pct 40
1 set HUEGroup49489 pct 0
1:
0 set HUEGroup49489 pct 10
1 set HUEGroup49489 pct 0
2:
helper:
DEVFILTER ^global$|^twilight$|^HUEDevice7$|^Motion_Kitchen$
NOTIFYDEV global|twilight|HUEDevice7|Motion_Kitchen
event azimuth: 206.15,elevation: 13.98,twilight: 100,twilight_weather: 61,compasspoint: south-southwest
globalinit 1
last_timer 4
sleepdevice Motion_Kitchen
sleepsubtimer -1
sleeptimer -1
timerdev Motion_Kitchen
timerevent nomotion
triggerDev twilight
timerevents:
nomotion
timereventsState:
state: nomotion
triggerEvents:
azimuth: 206.15
elevation: 13.98
twilight: 100
twilight_weather: 61
compasspoint: south-southwest
triggerEventsState:
azimuth: 206.15
elevation: 13.98
twilight: 100
twilight_weather: 61
compasspoint: south-southwest
internals:
interval:
0 -1
1 0
2 -1
3 2
intervalfunc:
intervaltimer:
localtime:
0 1574056860
1 1574103540
2 1574103600
3 1574143200
perlblock:
readings:
all HUEDevice7:pct twilight:twilight_weather
realtime:
0 07:01:00
1 19:59:00
2 20:00:00
3 07:00:00
time:
0 07:01:00
1 19:59:00
2 20:00:00
3 07:00:00
timeCond:
0 0
1 0
2 1
3 1
timer:
0 0
1 0
2 0
3 0
timers:
0 0 1 0 1
1 2 3 2 3
trigger:
all Motion_Kitchen
triggertime:
1574103540:
localtime 1574103540
hash:
1574103600:
localtime 1574103600
hash:
1574143200:
localtime 1574143200
hash:
uiState:
uiTable:
Attributes:
devStateIcon cmd_1:10px-kreis-gruen cmd_1_1:10px-kreis-gelb disabled:10px-kreis-rot
disable 0
do resetwait
icon icoUhr
initialize initialized
room Automat
wait 0,240:0,120
Ich sitze da schon ewig dran, komme aber dem Übeltäter nicht auf die Spur und bin für jeden Hinweis dankbar.
Danke und LG
wolf
Zitat von: wolfram am 18 November 2019, 13:52:19(([Motion_Kitchen:"motion$"]
reagiert auch auf "nomotion", besser wäre hier "^motion". Allerdings sollte das dein Problem eher beheben als verschlimmern. Muss also noch ein Problem geben.
Hi,
schon mit:
attr do resetwait
Probiert?
Grüße
Achim
Zitat von: CBSnake am 18 November 2019, 16:35:40
Hi,
schon mit:
attr do resetwait
Probiert?
Grüße
Achim
Sonst würde es nicht in seinem "list" stehen, oder? ;)
Zitat von: amenomade am 18 November 2019, 21:36:53
Sonst würde es nicht in seinem "list" stehen, oder? ;)
;D klassisch drüber gescrollt
@wolfram: kein event-on-change-reading auf Motion_Kitchen? Zeig mal ein "list" davon
Guten Morgen,
erst einmal vielen Dank für die Antworten.
Hier ein List meines Motion_Kitchen:
Internals:
CHANGED
DEF sensor 9 IODev=deCONZ
FUUID 5d8e73f0-f33f-3040-130e-39a119be01a79f0d
FVERSION 31_HUEDevice.pm:0.204920/2019-11-11
ID S9
INTERVAL
IODev deCONZ
NAME Motion_Kitchen
NR 379
STATE nomotion
TYPE HUEDevice
lastupdated 2019-11-19 08:47:37
lastupdated_local 2019-11-19 09:47:37
manufacturername Philips
modelid SML001
name Move_Kitchen
on 1
reachable 1
sensitivity 2
sensitivitymax 2
swversion 6.1.1.27575
type ZHAPresence
uniqueid 00:17:88:01:02:12:ce:e6-02-0406
READINGS:
2019-11-19 08:55:21 battery 81
2019-11-19 08:55:21 reachable 1
2019-11-19 09:47:37 state nomotion
helper:
devtype S
reachable 0
update_timeout 1
configList:
setList:
Attributes:
HomeModeAlarmActive armaway
HomeSensorLocation inside
IODev deCONZ
devStateIcon motion:people_sensor nomotion:message_presence
event-on-change-reading .*
genericDeviceType MotionSensor
group Motion
homebridgeMapping MotionDetected=state,valueOn=motion,valueOff=nomotion
history:size=1024
icon motion_detector
room HUEDevice,Homekit,Küche
siriName Küche Bewegung
Es sollte ja auch das Licht ausgehen, wenn ich es manuell einschalte, ob am Schalter, oder per fhem. Das passiert gerade auch nicht :(
Schalte ich das Licht per fhem in der Küche ein und sehe mir den eventmonitor an, bekomme ich keine Info, dass "HUEDevice7" etwas auslöst, denn "pct" ist doch größer als 1 %, deshalb hier noch einmal ein list meines "HUEDevice7"
Internals:
CHANGED
DEF 7 IODev=deCONZ
FUUID 5d8e3434-f33f-3040-88a0-e6c50e784dd4e0a2
FVERSION 31_HUEDevice.pm:0.204920/2019-11-11
ID 7
INTERVAL
IODev deCONZ
NAME HUEDevice7
NR 368
STATE 40
TYPE HUEDevice
desired 1
manufacturername OSRAM
modelid PAR16 50 TW
name Küche links
swversion 01020510
type Color temperature light
uniqueid 84:18:26:00:00:01:59:16-03
READINGS:
2019-11-16 12:01:48 alert none
2019-11-19 09:59:32 bri 102
2019-11-16 12:01:48 colormode ct
2019-11-16 12:01:48 ct 370 (2702K)
2019-11-19 10:34:38 onoff 1
2019-11-19 10:34:38 pct 40
2019-11-19 09:56:03 reachable 1
2019-11-16 12:01:48 rgb ffc698
2019-11-19 10:35:21 state dim37%
helper:
alert none
battery -1
bri 102
colormode ct
ct 370
devtype
effect
hue -1
pct 40
reachable 1
rgb ffc698
sat -1
update_timeout -1
xy
helper:
Attributes:
IODev deCONZ
alias Küchenlicht_links
color-icons 2
devStateIcon {(HUEDevice_devStateIcon($name),"toggle")}
event-on-change-reading .*
group Licht
model PAR16 50 TW
room HUEDevice
stateFormat pct
subType ctdimmer
webCmd ct:ct 490:ct 380:ct 270:ct 160:toggle:on:off
Liebe Grüße
wolf
Durch event-on-change-reading .* auf Motion_Kitchen kommt nur ein "motion", irgendwann ein "nomotion", auf beides wird getriggert. Wenn du also dich bewegst, still stehst, wieder bewegst usw. sollte das Licht anbleiben.
Mein Vorschlag:
event-on-change-reading auf Motion_Kitchen löschen und auf [Motion_Kitchen:"^motion"] Triggern. Und hoffen, dass mehrere "motion" gesendet werden.
Oder event-on-change-reading .* auf Motion_Kitchen drin lassen und statt wait mit "nomotion" dimmen (+ wait zum Ausschalten).
Guten Abend,
@Per: Danke für Deine Antwort. Ich habe das event-on-change-reading im Motion_Kitchen entfernt. Den regulären Ausdruck angepasst: [Motion_Kitchen:"^motion"]
wie empfohlen.
Jetzt sendet der BM erst wieder ein "motion" nachdem er einmal ein "nomotion" gesendet hat (nach ca. 10 sec). Danach kommt sofort nach Bewegung wieder ein "motion". Also Möglichkeit 1 klappt leider nicht, denn wenn ich mich 2 min ununterbrochen bewege, geht das Licht aus.
Also Deine Möglichkeit 2, die ich noch nicht ganz verstehe...sorry, ich tu mich ein bisschen schwer. Also das DoIf [Motion_Kitchen:"^nomotion"]
triggern? Und dann das DoIf....ähhmm?? (sorry für die Leere)
Liebe Grüße
wolf
Hier noch 2x der Event-Monitor
1. mein DoIf
2019-11-19 20:33:26.451 DOIF di_Kuechenlicht wait_timer: no timer
2019-11-19 20:33:26.455 DOIF di_Kuechenlicht wait_timer: 19.11.2019 20:35:26 cmd_2_2 Motion_Kitchen
2019-11-19 20:33:27.471 DOIF di_Kuechenlicht wait_timer: no timer
2019-11-19 20:33:27.474 DOIF di_Kuechenlicht wait_timer: 19.11.2019 20:35:27 cmd_2_2 Motion_Kitchen
2019-11-19 20:33:49.539 DOIF di_Kuechenlicht wait_timer: no timer
2019-11-19 20:33:49.542 DOIF di_Kuechenlicht wait_timer: 19.11.2019 20:35:49 cmd_2_2 Motion_Kitchen
2019-11-19 20:35:49.767 DOIF di_Kuechenlicht wait_timer: no timer
2019-11-19 20:35:49.773 DOIF di_Kuechenlicht cmd_nr: 2
2019-11-19 20:35:49.773 DOIF di_Kuechenlicht cmd_seqnr: 2
2019-11-19 20:35:49.773 DOIF di_Kuechenlicht cmd: 2.2
2019-11-19 20:35:49.773 DOIF di_Kuechenlicht cmd_event: Motion_Kitchen
2019-11-19 20:35:49.773 DOIF di_Kuechenlicht cmd_2
2. Der Bewegungsmelder im gleichen Zeitraum:
2019-11-19 20:31:51.117 HOMEMODE Home prevMotionClosed: Motion_Kitchen
2019-11-19 20:31:51.117 HOMEMODE Home lastMotionClosed: Motion_Kitchen
2019-11-19 20:31:51.119 HUEDevice Motion_Kitchen motion
2019-11-19 20:33:26.455 DOIF di_Kuechenlicht wait_timer: 19.11.2019 20:35:26 cmd_2_2 Motion_Kitchen
2019-11-19 20:33:26.459 HOMEMODE Home prevMotionClosed: Motion_Kitchen
2019-11-19 20:33:26.459 HOMEMODE Home lastMotionClosed: Motion_Kitchen
2019-11-19 20:33:26.462 HUEDevice Motion_Kitchen nomotion
2019-11-19 20:33:27.475 DOIF di_Kuechenlicht wait_timer: 19.11.2019 20:35:27 cmd_2_2 Motion_Kitchen
2019-11-19 20:33:27.480 HOMEMODE Home prevMotionClosed: Motion_Kitchen
2019-11-19 20:33:27.480 HOMEMODE Home lastMotionClosed: Motion_Kitchen
2019-11-19 20:33:27.483 HUEDevice Motion_Kitchen motion
2019-11-19 20:33:49.543 DOIF di_Kuechenlicht wait_timer: 19.11.2019 20:35:49 cmd_2_2 Motion_Kitchen
2019-11-19 20:33:49.548 HOMEMODE Home prevMotionClosed: Motion_Kitchen
2019-11-19 20:33:49.548 HOMEMODE Home lastMotionClosed: Motion_Kitchen
2019-11-19 20:33:49.551 HUEDevice Motion_Kitchen nomotion
2019-11-19 20:35:49.773 DOIF di_Kuechenlicht cmd_event: Motion_Kitchen
ZitatJetzt sendet der BM erst wieder ein "motion" nachdem er einmal ein "nomotion" gesendet hat (nach ca. 10 sec). Danach kommt sofort nach Bewegung wieder ein "motion". Also Möglichkeit 1 klappt leider nicht, denn wenn ich mich 2 min ununterbrochen bewege, geht das Licht aus.
Das Entfernen von event-on-change-reading sollte nur die Anzahl Events erhöhen, und erlauben, dass,
wenn dein Bewegungsmelder so funktioniert, die wiederkehrende "motion" Aktualisierungen auch Events generieren, die das DOIF triggern können.
Wenn dein Bewegungsmelder aber nur einmal "motion" sendet und dann gar nichts mehr bis "nomotion":
- war es schon auch so, egal event-on-change-reading
- bleibt nur die zweite Möglichkeit: statt
DOIF (motion)
(on)(off) mit wait zwischen on und off,
eher
DOIF (motion) (on)
DOELSEIF (nomotion) (off) mit Timer
Kommt mir alles sehr bekannt vor: https://forum.fhem.de/index.php/topic,105329.msg992755.html#msg992755
DANKE! @per & @damian
@Damian: Über den Thread bin ich tatsächlich schonmal gestolpert, aber nicht "wahrgenommen"/verstanden - ist genau mein Problem.
Ich teste und löse auf.
wolf
ERGEBNIS:
das "?" im RegEx war es: Nicht das Event, sondern den Zustand abfragen. Danke, das ist für einen aus "der anderen Welt" manchmal nicht klar. Jetzt schon, dank dieses tollen Forums!
wolf