Hallo, ich habe folgende Vorstellung, wie mein LED-Stripe unter den Hängeschränken in der Küche funktionieren soll.
1. In der Zeit von 16:30-21:30, wenn es dunkel ist = Lux < 200 soll er auf 50 pct angehen. Zusätzlich soll er, wenn Bewegung erkannt wird auf 100% gehen. Die 100% sollen für 5 min an bleiben und dann zurückfallen auf 50%
2. In der Zeit von 21:31-16:29, wenn es dunkel ist = Lux < 1100 soll er auf 50 pct angehen
Im Augenblick habe ich die DOIF´s noch getrennt
Wenn die Zeit erreicht und es dunkel genug ist habe dieses DOIF in Gebrauch. Ist dann sinnvoll, wenn ich auf Geschäftsreise bin, wegen "jemand scheint zuhause zu sein":
defmod LUX_Kueche_DOIF DOIF ([16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance]< 50) (set H801_Kueche pct 50) DOELSE (set H801_Kueche off)
attr LUX_Kueche_DOIF do always
attr LUX_Kueche_DOIF room Küche
Dann habe ich dieses DOIF noch parallel laufen. Wenn alle 3 Bedingungen erfüllt sind, schaltet er im Moment "on-for-timer 300".
defmod DOIF_LED_Kueche DOIF (([16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance]< 50) and [MQTT2_DVES_BF00E2:"^Data:.D3D5DE"])(set H801_Kueche on-for-timer 300)
attr DOIF_LED_Kueche do always
attr DOIF_LED_Kueche room Küche
Dann gibt es noch einen 3. DOIF für den Stripe. Es soll eben alle 3 Bedingungen erfüllen und dann auf 50 pct anschalten:
defmod DOIF_LED_Kueche_21_16 DOIF (([21:31-16:29] and [Lux_Dachboden:BH1750_Illuminance]< 1100) and [MQTT2_DVES_BF00E2:"^Data:.D3D5DE"]) (set set H801_Kueche on-for-timer 300)
attr DOIF_LED_Kueche_21_16 room Küche
Es gab dann diese Hilfestellung von amenomade:
defmod LUX_LED_Kueche DOIF ([16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance]< 2000 and [MQTT2_DVES_BF00E2:"^Data:.D3D5DE"]) \
(set H801_Kueche pct 100) \
(set H801_Kueche pct 50) \
DOELSEIF ([16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance]< 2000 and [$SELF:cmd] ne "1.1") \
(set H801_Kueche pct 50) \
DOELSEIF ([Lux_Dachboden:BH1750_Illuminance] >= 55 or [21:31-16:29]) \
(set H801_Kueche off)
attr LUX_LED_Kueche wait 0,300:0:0
attr LUX_LED_Kueche do resetwait
Aber diese Lösung war nicht zielführend, weil das 2 DOELSEIF schaltet den Stripe aus und schaltet nicht mehr in der besagten Zeit -> 21:31-16:29
Meine Frage lautet nun, Soll ich 3 einzelne DOIF´s laufen lassen, oder gibt es einen Weg alles in einem DOIF zu vereinen? Ich hoffe ich habe alles nicht zu kompliziert geschrieben.
Liebe Grüße
Ralf
Dann den 3. DOELSEIF entspr anpassen (ich hatte im anderen Thread nicht gesehen, dass das Zeitfenster des 1. DOIFs anders war)
DOELSEIF ([21:31-16:29] and [Lux_Dachboden:BH1750_Illuminance]< 1100 and [MQTT2_DVES_BF00E2:"^Data:.D3D5DE"])
Ich bin aber ein bisschen mit deinen Lux Werte verwirrt (im anderen Thread war es 50, jetzt 1100 oder 200, und mein Vorschlag hast Du dann nur teilweise mit 2000 angepasst und teilweise 50 gelassen...)
Und wenn das Licht sonst aus sein muss, dann noch ein zusätzliches DOELSEIF am Ende
DOELSEIF ([21:31-16:29] and [Lux_Dachboden:BH1750_Illuminance] >= 1150 or [16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance] >= 250
Alles in einem:
defmod LUX_LED_Kueche DOIF ([16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance]< 200 and [MQTT2_DVES_BF00E2:"^Data:.D3D5DE"]) \
(set H801_Kueche pct 100) \
(set H801_Kueche pct 50) \
DOELSEIF ([16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance]< 200 and [$SELF:cmd] ne "1.1") \
(set H801_Kueche pct 50) \
DOELSEIF ([21:31-16:29] and [Lux_Dachboden:BH1750_Illuminance]< 1100 and [MQTT2_DVES_BF00E2:"^Data:.D3D5DE"]) \
(set H801_Kueche pct 50) \
(set H801_Kueche off) \
DOELSEIF ([21:31-16:29] and [Lux_Dachboden:BH1750_Illuminance] >= 1150 or [16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance] >= 250) \
(set H801_Kueche off)
attr LUX_LED_Kueche wait 0,300:0:0,300:0
attr LUX_LED_Kueche do resetwait
Es ist mMn besser eine Hysterese einzubauen, deswegen 1150 und 250 beim ausschalten.
Zitat von: amenomade am 03 Januar 2021, 19:01:27
Dann den 3. DOELSEIF entspr anpassen (ich hatte im anderen Thread nicht gesehen, dass das Zeitfenster des 1. DOIFs anders war)
DOELSEIF ([21:31-16:29] and [Lux_Dachboden:BH1750_Illuminance]< 1100 and [MQTT2_DVES_BF00E2:"^Data:.D3D5DE"])
Ich bin aber ein bisschen mit deinen Lux Werte verwirrt (im anderen Thread war es 50, jetzt 1100 oder 200, und mein Vorschlag hast Du dann nur teilweise mit 2000 angepasst und teilweise 50 gelassen...)
Die 2000 sind deshalb da drin gelandet, weil ich es tagsüber prüfen wollte und nicht zu den angegebenen Zeiten.
Die Luxwerte sind auch noch nicht in Stein gemeißelt. Da bin auch noch in der Testphase.
Der 3. DOELSEIF kann meiner Erachtens für meine Anwendung nicht funktionieren.
ZitatDOELSEIF ([21:31-16:29] and [Lux_Dachboden:BH1750_Illuminance] >= 1150 or [16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance] >= 250) \
(set H801_Kueche off)
denn
Zitatdefmod LUX_Kueche_DOIF DOIF ([16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance]< 200) (set H801_Kueche pct 50) DOELSE (set H801_Kueche off)
hier schaltet das DOIF um 21:30 das Licht aus unabhängig der Luxzahl
defmod DOIF_LED_Kueche_21_16 DOIF (([21:31-16:29] and [Lux_Dachboden:BH1750_Illuminance]< 1100) and [MQTT2_DVES_BF00E2:"^Data:.D3D5DE"]) (set set H801_Kueche on-for-timer 300)
Und hier sind die 1100 Lux drin, damit dass auch tagsüber funktioniert, weil es der GöGa sonst zu dunkel unter den Schränken ist, wenn sie dann mal da ist ;D
Vielleicht denke ich auch zu kompliziert.
Zitathier schaltet das DOIF um 21:30 das Licht aus unabhängig der Luxzahl
Muss es unbedingt um 21:30 ausschalten? Auch wenn um 21:28 Uhr eine Bewegung gemeldet wurde?
Zitat von: amenomade am 03 Januar 2021, 20:57:13
Muss es unbedingt um 21:30 ausschalten? Auch wenn um 21:28 Uhr eine Bewegung gemeldet wurde?
Ja, warum nicht? Denn wenn ich um 21:31 wieder eine Bewegung habe geht das Licht doch wieder an. So habe ich das im Augenblick auch in der Diele.
Inzwischen steht man aber im Dunkel.
Wie wäre es so?
defmod LUX_LED_Kueche DOIF ([MQTT2_DVES_BF00E2:"^Data:.D3D5DE"] and [?16:30-21:30] and [?Lux_Dachboden:BH1750_Illuminance]< 2000 ) \
(set H801_Kueche pct 100) \
(set H801_Kueche pct 50) \
DOELSEIF ([16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance]< 2000 and [$SELF:cmd] ne "1.1") \
(set H801_Kueche pct 50) \
DOELSEIF ([MQTT2_DVES_BF00E2:"^Data:.D3D5DE"] and [?21:31-16:29] and [?Lux_Dachboden:BH1750_Illuminance]< 1100) \
(set H801_Kueche pct 50) \
(set H801_Kueche off)
DOELSE
(set H801_Kueche off)
attr LUX_LED_Kueche do resetwait
attr LUX_LED_Kueche wait 0,300:0:0,300:0
Bei Copy & paste kommt Fehlermeldung
Meiner Meinung nach fehlt noch ein \
Hatte hinter
(set H801_Kueche pct 50) \
(set H801_Kueche off)
noch einen Backslash gemacht. Nun kommt keine Fehlermeldung mehr.
Habe es jetzt getestet. Aber der Timer / Wait hält keine 300 sek aus
Tatsächlich fehlen "\" bei der 2 vorletzten Zeilen.
Kannst Du bitte ein vollständiges "list" vom DOIF liefern, wenn es nicht "gehalten" hat?
Anscheinend hat der Bewegungsmelder ein anderes Event (D23C8E) geliefert, was das DOIF getriggert hat und auf cmd4 geschaltet hat. Kannst Du auch ein "list" von dem liefern? Hat der kein "motion" Reading, das wäre einfacher. Sonst muss man statt DOELSE ein komplizierter DOELSEIF einbauen.
GUten Morgen,
hier das List im Ruhezustand, vor dem Auslösen
Internals:
DEF ([MQTT2_DVES_BF00E2:"^Data:.D3D5DE"] and [?16:30-21:30] and [?Lux_Dachboden:BH1750_Illuminance]< 1100 )
(set H801_Kueche pct 100)
(set H801_Kueche pct 50)
DOELSEIF ([16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance]< 50 and [$SELF:cmd] ne "1.1")
(set H801_Kueche pct 50)
DOELSEIF ([MQTT2_DVES_BF00E2:"^Data:.D3D5DE"] and [?21:31-16:29] and [?Lux_Dachboden:BH1750_Illuminance]< 1100)
(set H801_Kueche pct 50)
(set H801_Kueche off)
DOELSE (set H801_Kueche off)
FUUID 5ff0773e-f33f-0409-991b-c90ebde730a35956
MODEL FHEM
NAME LUX_LED_Kueche
NOTIFYDEV Lux_Dachboden,global,LUX_LED_Kueche,MQTT2_DVES_BF00E2
NR 262
NTFY_ORDER 50-LUX_LED_Kueche
STATE cmd_4
TYPE DOIF
VERSION 23418 2020-12-26 10:04:12
Helper:
DBLOG:
cmd:
logdb:
TIME 1609747364.87947
VALUE 4
cmd_event:
logdb:
TIME 1609747364.87947
VALUE MQTT2_DVES_BF00E2
cmd_nr:
logdb:
TIME 1609747364.87947
VALUE 4
cmd_seqnr:
logdb:
TIME 1609747142.18022
VALUE 1
last_cmd:
logdb:
TIME 1609679484.45428
VALUE cmd_3
mode:
logdb:
TIME 1609747037.99137
VALUE enabled
state:
logdb:
TIME 1609747364.87947
VALUE cmd_4
wait_timer:
logdb:
TIME 1609747220.27739
VALUE no timer
READINGS:
2021-01-04 09:02:44 Device MQTT2_DVES_BF00E2
2021-01-04 09:02:44 cmd 4
2021-01-04 09:02:44 cmd_event MQTT2_DVES_BF00E2
2021-01-04 09:02:44 cmd_nr 4
2021-01-04 09:02:44 e_Lux_Dachboden_BH1750_Illuminance 394
2021-01-04 09:02:44 e_MQTT2_DVES_BF00E2_events json_raw: {"Time":"2021-01-04T09:02:45","RfReceived":{"Sync":10000,"Low":460,"High":1260,"Data":"111544","RfKey":"None"}},Data: 111544
2021-01-03 14:11:24 last_cmd cmd_3
2021-01-04 08:57:17 mode enabled
2021-01-04 09:02:44 state cmd_4
2021-01-04 08:57:18 timer_01_c01 04.01.2021 16:30:00
2021-01-04 08:57:18 timer_02_c01 04.01.2021 21:30:00
2021-01-04 08:57:18 timer_03_c02 04.01.2021 16:30:00
2021-01-04 08:57:18 timer_04_c02 04.01.2021 21:30:00
2021-01-04 08:57:18 timer_05_c03 04.01.2021 21:31:00
2021-01-04 08:57:18 timer_06_c03 04.01.2021 16:29:00
2021-01-04 09:00:20 wait_timer no timer
Regex:
accu:
cond:
LUX_LED_Kueche:
1:
cmd ^LUX_LED_Kueche$:^cmd:
Lux_Dachboden:
0:
1:
BH1750_Illuminance ^Lux_Dachboden$:^BH1750_Illuminance:
2:
MQTT2_DVES_BF00E2:
0:
&STATE ^MQTT2_DVES_BF00E2$
1:
2:
&STATE ^MQTT2_DVES_BF00E2$
attr:
cmdState:
wait:
0:
0
300
1:
0
2:
0
300
3:
0
waitdel:
condition:
0 ::EventDoIf('MQTT2_DVES_BF00E2',$hash,'^Data:.D3D5DE',1) and ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'Lux_Dachboden','BH1750_Illuminance')< 1100
1 ::DOIF_time($hash,2,3,$wday,$hms) and ::ReadingValDoIf($hash,'Lux_Dachboden','BH1750_Illuminance')< 50 and ::ReadingValDoIf($hash,'LUX_LED_Kueche','cmd') ne "1.1"
2 ::EventDoIf('MQTT2_DVES_BF00E2',$hash,'^Data:.D3D5DE',1) and ::DOIF_time($hash,4,5,$wday,$hms) and ::ReadingValDoIf($hash,'Lux_Dachboden','BH1750_Illuminance')< 1100
days:
do:
0:
0 set H801_Kueche pct 100
1 set H801_Kueche pct 50
1:
0 set H801_Kueche pct 50
2:
0 set H801_Kueche pct 50
1 set H801_Kueche off
3:
0 set H801_Kueche off
helper:
DEVFILTER ^global$|^LUX_LED_Kueche$|^MQTT2_DVES_BF00E2$|^Lux_Dachboden$
NOTIFYDEV global|LUX_LED_Kueche|MQTT2_DVES_BF00E2|Lux_Dachboden
event json_raw: {"Time":"2021-01-04T09:02:45","RfReceived":{"Sync":10000,"Low":460,"High":1260,"Data":"111544","RfKey":"None"}},Data: 111544
globalinit 1
last_timer 6
sleepdevice MQTT2_DVES_BF00E2
sleepsubtimer 1
sleeptimer -1
timerdev MQTT2_DVES_BF00E2
timerevent json_raw: {"Time":"2021-01-04T09:02:45","RfReceived":{"Sync":10000,"Low":460,"High":1260,"Data":"111544","RfKey":"None"}},Data: 111544
triggerDev MQTT2_DVES_BF00E2
timerevents:
json_raw: {"Time":"2021-01-04T09:02:45","RfReceived":{"Sync":10000,"Low":460,"High":1260,"Data":"111544","RfKey":"None"}}
Data: 111544
timereventsState:
json_raw: {"Time":"2021-01-04T09:02:45","RfReceived":{"Sync":10000,"Low":460,"High":1260,"Data":"111544","RfKey":"None"}}
Data: 111544
triggerEvents:
json_raw: {"Time":"2021-01-04T09:02:45","RfReceived":{"Sync":10000,"Low":460,"High":1260,"Data":"111544","RfKey":"None"}}
Data: 111544
triggerEventsState:
json_raw: {"Time":"2021-01-04T09:02:45","RfReceived":{"Sync":10000,"Low":460,"High":1260,"Data":"111544","RfKey":"None"}}
Data: 111544
internals:
interval:
0 -1
1 0
2 -1
3 2
4 -1
5 4
intervalfunc:
localtime:
0 1609774200
1 1609792200
2 1609774200
3 1609792200
4 1609792260
5 1609774140
readings:
all Lux_Dachboden:BH1750_Illuminance LUX_LED_Kueche:cmd
realtime:
0 16:30:00
1 21:30:00
2 16:30:00
3 21:30:00
4 21:31:00
5 16:29:00
time:
0 16:30:00
1 21:30:00
2 16:30:00
3 21:30:00
4 21:31:00
5 16:29:00
timeCond:
0 0
1 0
2 1
3 1
4 2
5 2
timer:
0 0
1 0
2 0
3 0
4 0
5 0
timers:
1 2 3
trigger:
all MQTT2_DVES_BF00E2
triggertime:
1609774140:
localtime 1609774140
hash:
1609774200:
localtime 1609774200
hash:
1609792200:
localtime 1609792200
hash:
1609792260:
localtime 1609792260
hash:
uiState:
uiTable:
Attributes:
do resetwait
room Küche
wait 0,300:0:0,300:0
Während des "Betriebs"
Internals:
DEF ([MQTT2_DVES_BF00E2:"^Data:.D3D5DE"] and [?16:30-21:30] and [?Lux_Dachboden:BH1750_Illuminance]< 1100 )
(set H801_Kueche pct 100)
(set H801_Kueche pct 50)
DOELSEIF ([16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance]< 50 and [$SELF:cmd] ne "1.1")
(set H801_Kueche pct 50)
DOELSEIF ([MQTT2_DVES_BF00E2:"^Data:.D3D5DE"] and [?21:31-16:29] and [?Lux_Dachboden:BH1750_Illuminance]< 1100)
(set H801_Kueche pct 50)
(set H801_Kueche off)
DOELSE (set H801_Kueche off)
FUUID 5ff0773e-f33f-0409-991b-c90ebde730a35956
MODEL FHEM
NAME LUX_LED_Kueche
NOTIFYDEV Lux_Dachboden,global,LUX_LED_Kueche,MQTT2_DVES_BF00E2
NR 262
NTFY_ORDER 50-LUX_LED_Kueche
STATE cmd_3_1
TYPE DOIF
VERSION 23418 2020-12-26 10:04:12
Helper:
DBLOG:
cmd:
logdb:
TIME 1609747483.35803
VALUE 3.1
cmd_event:
logdb:
TIME 1609747483.35803
VALUE MQTT2_DVES_BF00E2
cmd_nr:
logdb:
TIME 1609747483.35803
VALUE 3
cmd_seqnr:
logdb:
TIME 1609747483.35803
VALUE 1
last_cmd:
logdb:
TIME 1609679484.45428
VALUE cmd_3
mode:
logdb:
TIME 1609747037.99137
VALUE enabled
state:
logdb:
TIME 1609747483.35803
VALUE cmd_3_1
wait_timer:
logdb:
TIME 1609747483.37311
VALUE 04.01.2021 09:09:43 cmd_3_2 MQTT2_DVES_BF00E2
READINGS:
2021-01-04 09:04:43 Device MQTT2_DVES_BF00E2
2021-01-04 09:04:43 cmd 3.1
2021-01-04 09:04:43 cmd_event MQTT2_DVES_BF00E2
2021-01-04 09:04:43 cmd_nr 3
2021-01-04 09:04:43 cmd_seqnr 1
2021-01-04 09:02:44 e_Lux_Dachboden_BH1750_Illuminance 394
2021-01-04 09:04:43 e_MQTT2_DVES_BF00E2_events json_raw: {"Time":"2021-01-04T09:04:43","RfReceived":{"Sync":12530,"Low":430,"High":1250,"Data":"D3D5DE","RfKey":"None"}},Data: D3D5DE
2021-01-03 14:11:24 last_cmd cmd_3
2021-01-04 08:57:17 mode enabled
2021-01-04 09:04:43 state cmd_3_1
2021-01-04 08:57:18 timer_01_c01 04.01.2021 16:30:00
2021-01-04 08:57:18 timer_02_c01 04.01.2021 21:30:00
2021-01-04 08:57:18 timer_03_c02 04.01.2021 16:30:00
2021-01-04 08:57:18 timer_04_c02 04.01.2021 21:30:00
2021-01-04 08:57:18 timer_05_c03 04.01.2021 21:31:00
2021-01-04 08:57:18 timer_06_c03 04.01.2021 16:29:00
2021-01-04 09:04:43 wait_timer 04.01.2021 09:09:43 cmd_3_2 MQTT2_DVES_BF00E2
Regex:
accu:
cond:
LUX_LED_Kueche:
1:
cmd ^LUX_LED_Kueche$:^cmd:
Lux_Dachboden:
0:
1:
BH1750_Illuminance ^Lux_Dachboden$:^BH1750_Illuminance:
2:
MQTT2_DVES_BF00E2:
0:
&STATE ^MQTT2_DVES_BF00E2$
1:
2:
&STATE ^MQTT2_DVES_BF00E2$
attr:
cmdState:
wait:
0:
0
300
1:
0
2:
0
300
3:
0
waitdel:
condition:
0 ::EventDoIf('MQTT2_DVES_BF00E2',$hash,'^Data:.D3D5DE',1) and ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'Lux_Dachboden','BH1750_Illuminance')< 1100
1 ::DOIF_time($hash,2,3,$wday,$hms) and ::ReadingValDoIf($hash,'Lux_Dachboden','BH1750_Illuminance')< 50 and ::ReadingValDoIf($hash,'LUX_LED_Kueche','cmd') ne "1.1"
2 ::EventDoIf('MQTT2_DVES_BF00E2',$hash,'^Data:.D3D5DE',1) and ::DOIF_time($hash,4,5,$wday,$hms) and ::ReadingValDoIf($hash,'Lux_Dachboden','BH1750_Illuminance')< 1100
days:
do:
0:
0 set H801_Kueche pct 100
1 set H801_Kueche pct 50
1:
0 set H801_Kueche pct 50
2:
0 set H801_Kueche pct 50
1 set H801_Kueche off
3:
0 set H801_Kueche off
helper:
DEVFILTER ^global$|^LUX_LED_Kueche$|^MQTT2_DVES_BF00E2$|^Lux_Dachboden$
NOTIFYDEV global|LUX_LED_Kueche|MQTT2_DVES_BF00E2|Lux_Dachboden
event Data: D3D5DE
globalinit 1
last_timer 6
sleepdevice MQTT2_DVES_BF00E2
sleepsubtimer 1
sleeptimer 2
timerdev MQTT2_DVES_BF00E2
timerevent Data: D3D5DE
triggerDev MQTT2_DVES_BF00E2
timerevents:
json_raw: {"Time":"2021-01-04T09:04:43","RfReceived":{"Sync":12530,"Low":430,"High":1250,"Data":"D3D5DE","RfKey":"None"}}
Data: D3D5DE
timereventsState:
json_raw: {"Time":"2021-01-04T09:04:43","RfReceived":{"Sync":12530,"Low":430,"High":1250,"Data":"D3D5DE","RfKey":"None"}}
Data: D3D5DE
triggerEvents:
json_raw: {"Time":"2021-01-04T09:04:43","RfReceived":{"Sync":12530,"Low":430,"High":1250,"Data":"D3D5DE","RfKey":"None"}}
Data: D3D5DE
triggerEventsState:
json_raw: {"Time":"2021-01-04T09:04:43","RfReceived":{"Sync":12530,"Low":430,"High":1250,"Data":"D3D5DE","RfKey":"None"}}
Data: D3D5DE
internals:
interval:
0 -1
1 0
2 -1
3 2
4 -1
5 4
intervalfunc:
localtime:
0 1609774200
1 1609792200
2 1609774200
3 1609792200
4 1609792260
5 1609774140
readings:
all Lux_Dachboden:BH1750_Illuminance LUX_LED_Kueche:cmd
realtime:
0 16:30:00
1 21:30:00
2 16:30:00
3 21:30:00
4 21:31:00
5 16:29:00
time:
0 16:30:00
1 21:30:00
2 16:30:00
3 21:30:00
4 21:31:00
5 16:29:00
timeCond:
0 0
1 0
2 1
3 1
4 2
5 2
timer:
0 0
1 0
2 0
3 0
4 0
5 0
timers:
1 2 3
trigger:
all MQTT2_DVES_BF00E2
triggertime:
1609774140:
localtime 1609774140
hash:
1609774200:
localtime 1609774200
hash:
1609792200:
localtime 1609792200
hash:
1609792260:
localtime 1609792260
hash:
uiState:
uiTable:
Attributes:
do resetwait
room Küche
wait 0,300:0:0,300:0
Nach dem Betrieb
Internals:
DEF ([MQTT2_DVES_BF00E2:"^Data:.D3D5DE"] and [?16:30-21:30] and [?Lux_Dachboden:BH1750_Illuminance]< 1100 )
(set H801_Kueche pct 100)
(set H801_Kueche pct 50)
DOELSEIF ([16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance]< 50 and [$SELF:cmd] ne "1.1")
(set H801_Kueche pct 50)
DOELSEIF ([MQTT2_DVES_BF00E2:"^Data:.D3D5DE"] and [?21:31-16:29] and [?Lux_Dachboden:BH1750_Illuminance]< 1100)
(set H801_Kueche pct 50)
(set H801_Kueche off)
DOELSE (set H801_Kueche off)
FUUID 5ff0773e-f33f-0409-991b-c90ebde730a35956
MODEL FHEM
NAME LUX_LED_Kueche
NOTIFYDEV Lux_Dachboden,global,LUX_LED_Kueche,MQTT2_DVES_BF00E2
NR 262
NTFY_ORDER 50-LUX_LED_Kueche
STATE cmd_4
TYPE DOIF
VERSION 23418 2020-12-26 10:04:12
Helper:
DBLOG:
cmd:
logdb:
TIME 1609747664.90086
VALUE 4
cmd_event:
logdb:
TIME 1609747664.90086
VALUE MQTT2_DVES_BF00E2
cmd_nr:
logdb:
TIME 1609747664.90086
VALUE 4
cmd_seqnr:
logdb:
TIME 1609747483.35803
VALUE 1
last_cmd:
logdb:
TIME 1609679484.45428
VALUE cmd_3
mode:
logdb:
TIME 1609747037.99137
VALUE enabled
state:
logdb:
TIME 1609747664.90086
VALUE cmd_4
wait_timer:
logdb:
TIME 1609747520.2857
VALUE no timer
READINGS:
2021-01-04 09:07:44 Device MQTT2_DVES_BF00E2
2021-01-04 09:07:44 cmd 4
2021-01-04 09:07:44 cmd_event MQTT2_DVES_BF00E2
2021-01-04 09:07:44 cmd_nr 4
2021-01-04 09:07:44 e_Lux_Dachboden_BH1750_Illuminance 500
2021-01-04 09:07:44 e_MQTT2_DVES_BF00E2_events json_raw: {"Time":"2021-01-04T09:07:45","RfReceived":{"Sync":10000,"Low":460,"High":1260,"Data":"111544","RfKey":"None"}},Data: 111544
2021-01-03 14:11:24 last_cmd cmd_3
2021-01-04 08:57:17 mode enabled
2021-01-04 09:07:44 state cmd_4
2021-01-04 08:57:18 timer_01_c01 04.01.2021 16:30:00
2021-01-04 08:57:18 timer_02_c01 04.01.2021 21:30:00
2021-01-04 08:57:18 timer_03_c02 04.01.2021 16:30:00
2021-01-04 08:57:18 timer_04_c02 04.01.2021 21:30:00
2021-01-04 08:57:18 timer_05_c03 04.01.2021 21:31:00
2021-01-04 08:57:18 timer_06_c03 04.01.2021 16:29:00
2021-01-04 09:05:20 wait_timer no timer
Regex:
accu:
cond:
LUX_LED_Kueche:
1:
cmd ^LUX_LED_Kueche$:^cmd:
Lux_Dachboden:
0:
1:
BH1750_Illuminance ^Lux_Dachboden$:^BH1750_Illuminance:
2:
MQTT2_DVES_BF00E2:
0:
&STATE ^MQTT2_DVES_BF00E2$
1:
2:
&STATE ^MQTT2_DVES_BF00E2$
attr:
cmdState:
wait:
0:
0
300
1:
0
2:
0
300
3:
0
waitdel:
condition:
0 ::EventDoIf('MQTT2_DVES_BF00E2',$hash,'^Data:.D3D5DE',1) and ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'Lux_Dachboden','BH1750_Illuminance')< 1100
1 ::DOIF_time($hash,2,3,$wday,$hms) and ::ReadingValDoIf($hash,'Lux_Dachboden','BH1750_Illuminance')< 50 and ::ReadingValDoIf($hash,'LUX_LED_Kueche','cmd') ne "1.1"
2 ::EventDoIf('MQTT2_DVES_BF00E2',$hash,'^Data:.D3D5DE',1) and ::DOIF_time($hash,4,5,$wday,$hms) and ::ReadingValDoIf($hash,'Lux_Dachboden','BH1750_Illuminance')< 1100
days:
do:
0:
0 set H801_Kueche pct 100
1 set H801_Kueche pct 50
1:
0 set H801_Kueche pct 50
2:
0 set H801_Kueche pct 50
1 set H801_Kueche off
3:
0 set H801_Kueche off
helper:
DEVFILTER ^global$|^LUX_LED_Kueche$|^MQTT2_DVES_BF00E2$|^Lux_Dachboden$
NOTIFYDEV global|LUX_LED_Kueche|MQTT2_DVES_BF00E2|Lux_Dachboden
event json_raw: {"Time":"2021-01-04T09:07:45","RfReceived":{"Sync":10000,"Low":460,"High":1260,"Data":"111544","RfKey":"None"}},Data: 111544
globalinit 1
last_timer 6
sleepdevice MQTT2_DVES_BF00E2
sleepsubtimer 1
sleeptimer -1
timerdev MQTT2_DVES_BF00E2
timerevent json_raw: {"Time":"2021-01-04T09:07:45","RfReceived":{"Sync":10000,"Low":460,"High":1260,"Data":"111544","RfKey":"None"}},Data: 111544
triggerDev MQTT2_DVES_BF00E2
timerevents:
json_raw: {"Time":"2021-01-04T09:07:45","RfReceived":{"Sync":10000,"Low":460,"High":1260,"Data":"111544","RfKey":"None"}}
Data: 111544
timereventsState:
json_raw: {"Time":"2021-01-04T09:07:45","RfReceived":{"Sync":10000,"Low":460,"High":1260,"Data":"111544","RfKey":"None"}}
Data: 111544
triggerEvents:
json_raw: {"Time":"2021-01-04T09:07:45","RfReceived":{"Sync":10000,"Low":460,"High":1260,"Data":"111544","RfKey":"None"}}
Data: 111544
triggerEventsState:
json_raw: {"Time":"2021-01-04T09:07:45","RfReceived":{"Sync":10000,"Low":460,"High":1260,"Data":"111544","RfKey":"None"}}
Data: 111544
internals:
interval:
0 -1
1 0
2 -1
3 2
4 -1
5 4
intervalfunc:
localtime:
0 1609774200
1 1609792200
2 1609774200
3 1609792200
4 1609792260
5 1609774140
readings:
all Lux_Dachboden:BH1750_Illuminance LUX_LED_Kueche:cmd
realtime:
0 16:30:00
1 21:30:00
2 16:30:00
3 21:30:00
4 21:31:00
5 16:29:00
time:
0 16:30:00
1 21:30:00
2 16:30:00
3 21:30:00
4 21:31:00
5 16:29:00
timeCond:
0 0
1 0
2 1
3 1
4 2
5 2
timer:
0 0
1 0
2 0
3 0
4 0
5 0
timers:
1 2 3
trigger:
all MQTT2_DVES_BF00E2
triggertime:
1609774140:
localtime 1609774140
hash:
1609774200:
localtime 1609774200
hash:
1609792200:
localtime 1609792200
hash:
1609792260:
localtime 1609792260
hash:
uiState:
uiTable:
Attributes:
do resetwait
room Küche
wait 0,300:0:0,300:0
Was im Log steht als Bild
Als Bewegungsmelder setze ich die CT60M 433Mhz, die über eine Sonoff-Bridge "laufen", ein.
Die geben über das IT bzw. 1527 "Protocol" immer ein ein ab, aber kein aus.
Was mich wundert ist, das DOIF auf das Data 111544 reagiert.
2021-01-04 09:07:44 e_MQTT2_DVES_BF00E2_events json_raw: {"Time":"2021-01-04T09:07:45","RfReceived":{"Sync":10000,"Low":460,"High":1260,"Data":"111544","RfKey":"None"}},Data: 111544
ausgelöst wird es ja durch
2021-01-04 09:04:43 e_MQTT2_DVES_BF00E2_events json_raw: {"Time":"2021-01-04T09:04:43","RfReceived":{"Sync":12530,"Low":430,"High":1250,"Data":"D3D5DE","RfKey":"None"}},Data: D3D5DE
Das ist das List von der Sonoff-Bridge
Internals:
CID DVES_BF00E2
DEF DVES_BF00E2
DEVICETOPIC MQTT2_DVES_BF00E2
FUUID 5f033429-f33f-0409-0288-33566e763c13dda7
IODev myBroker
LASTInputDev myBroker
MSGCNT 1347
NAME MQTT2_DVES_BF00E2
NR 156
STATE state
<br>
<a href="http://192.168.178.28" target="_blank">192.168.178.28</a>
TYPE MQTT2_DEVICE
myBroker_MSGCNT 1347
myBroker_TIME 2021-01-04 10:33:06
Helper:
DBLOG:
Data:
logdb:
TIME 1609752764.91368
VALUE 111544
Heap:
logdb:
TIME 1609752486.44769
VALUE 26
LWT:
logdb:
TIME 1609752181.93098
VALUE Online
LoadAvg:
logdb:
TIME 1609751720.38672
VALUE 19
Module:
logdb:
TIME 1609752182.0353
VALUE Sonoff Bridge
MqttCount:
logdb:
TIME 1609752186.46266
VALUE 1
OtaUrl:
logdb:
TIME 1609752063.78739
VALUE http://ota.tasmota.com/tasmota/release/tasmota-DE.bin
POWER:
logdb:
TIME 1609752129.4755
VALUE
RestartReason:
logdb:
TIME 1609752105.53403
VALUE Software/System restart
Time:
logdb:
TIME 1609752786.42348
VALUE 2021-01-04T10:33:06
Upgrade:
logdb:
TIME 1609752155.47489
VALUE Successful. Restarting
Uptime:
logdb:
TIME 1609752786.42348
VALUE 0T00:10:14
UptimeSec:
logdb:
TIME 1609752786.42348
VALUE 614
Version:
logdb:
TIME 1609752182.0353
VALUE 9.2.0(tasmota)
Wifi_Downtime:
logdb:
TIME 1609752186.46266
VALUE 0T00:00:08
Wifi_LinkCount:
logdb:
TIME 1609752186.46266
VALUE 1
Wifi_Signal:
logdb:
TIME 1609752786.42348
VALUE -45
btn_1:
logdb:
TIME 1609752191.5179
VALUE 0
btn_2:
logdb:
TIME 1609752191.5179
VALUE 0
btn_3:
logdb:
TIME 1609752191.5179
VALUE 0
btn_4:
logdb:
TIME 1609752191.5179
VALUE 0
dn:
logdb:
TIME 1609752191.5179
VALUE SonoffBrigde
fn_1:
logdb:
TIME 1609752191.5179
VALUE SonoffBrigde
ft:
logdb:
TIME 1609752191.5179
VALUE %prefix%/%topic%/
hn:
logdb:
TIME 1609752191.5179
VALUE SonoffBridge-0226
if:
logdb:
TIME 1609752191.5179
VALUE 0
ip:
logdb:
TIME 1609752191.5179
VALUE 192.168.178.28
json_raw:
logdb:
TIME 1609752764.91368
VALUE {"Time":"2021-01-04T10:32:45","RfReceived":{"Sync":10000,"Low":460,"High":1260,"Data":"111544","RfKey":"None"}}
lk:
logdb:
TIME 1609752191.5179
VALUE 1
lt_st:
logdb:
TIME 1609752191.5179
VALUE 0
mac:
logdb:
TIME 1609752191.5179
VALUE 2CF432BF00E2
md:
logdb:
TIME 1609752191.5179
VALUE Sonoff Bridge
ofln:
logdb:
TIME 1609752191.5179
VALUE Offline
onln:
logdb:
TIME 1609752191.5179
VALUE Online
rl_1:
logdb:
TIME 1609752191.5179
VALUE 0
rl_2:
logdb:
TIME 1609752191.5179
VALUE 0
rl_3:
logdb:
TIME 1609752191.5179
VALUE 0
rl_4:
logdb:
TIME 1609752191.5179
VALUE 0
rl_5:
logdb:
TIME 1609752191.5179
VALUE 0
rl_6:
logdb:
TIME 1609752191.5179
VALUE 0
rl_7:
logdb:
TIME 1609752191.5179
VALUE 0
rl_8:
logdb:
TIME 1609752191.5179
VALUE 0
sho_1:
logdb:
TIME 1609752191.5179
VALUE 0
sho_2:
logdb:
TIME 1609752191.5179
VALUE 0
sho_3:
logdb:
TIME 1609752191.5179
VALUE 0
sho_4:
logdb:
TIME 1609752191.5179
VALUE 0
sn_Time:
logdb:
TIME 1609752191.68221
VALUE 2021-01-04T10:23:11
so_11:
logdb:
TIME 1609752191.5179
VALUE 0
so_114:
logdb:
TIME 1609752191.5179
VALUE 0
so_13:
logdb:
TIME 1609752191.5179
VALUE 0
so_17:
logdb:
TIME 1609752191.5179
VALUE 0
so_20:
logdb:
TIME 1609752191.5179
VALUE 0
so_30:
logdb:
TIME 1609752191.5179
VALUE 0
so_4:
logdb:
TIME 1609752191.5179
VALUE 0
so_68:
logdb:
TIME 1609752191.5179
VALUE 0
so_73:
logdb:
TIME 1609752191.5179
VALUE 0
so_82:
logdb:
TIME 1609752191.5179
VALUE 0
state_1:
logdb:
TIME 1609752191.5179
VALUE OFF
state_2:
logdb:
TIME 1609752191.5179
VALUE ON
state_3:
logdb:
TIME 1609752191.5179
VALUE TOGGLE
state_4:
logdb:
TIME 1609752191.5179
VALUE HOLD
sw:
logdb:
TIME 1609752191.5179
VALUE 9.2.0
swc_1:
logdb:
TIME 1609752191.5179
VALUE -1
swc_2:
logdb:
TIME 1609752191.5179
VALUE -1
swc_3:
logdb:
TIME 1609752191.5179
VALUE -1
swc_4:
logdb:
TIME 1609752191.5179
VALUE -1
swc_5:
logdb:
TIME 1609752191.5179
VALUE -1
swc_6:
logdb:
TIME 1609752191.5179
VALUE -1
swc_7:
logdb:
TIME 1609752191.5179
VALUE -1
swc_8:
logdb:
TIME 1609752191.5179
VALUE -1
t:
logdb:
TIME 1609752191.5179
VALUE SonoffBridge
tp_1:
logdb:
TIME 1609752191.5179
VALUE cmnd
tp_2:
logdb:
TIME 1609752191.5179
VALUE stat
tp_3:
logdb:
TIME 1609752191.5179
VALUE tele
ty:
logdb:
TIME 1609752191.5179
VALUE 0
ver:
logdb:
TIME 1609752191.5179
VALUE 1
READINGS:
2021-01-04 10:32:44 Data 111544
2021-01-04 10:23:01 FallbackTopic cmnd/DVES_BF00E2_fb/
2021-01-04 10:23:01 GroupTopic cmnd/tasmotas/
2021-01-04 10:33:06 Heap 26
2021-01-04 10:23:02 Hostname SonoffBridge-0226
2021-01-04 10:23:02 IPAddress 192.168.178.28
2021-01-04 10:23:01 LWT Online
2021-01-04 10:33:06 LoadAvg 19
2021-01-04 10:23:01 Module Sonoff Bridge
2021-01-04 10:33:06 MqttCount 1
2021-01-04 10:22:09 OtaUrl http://ota.tasmota.com/tasmota/release/tasmota-DE.bin
2021-01-04 10:23:01 POWER
2021-01-04 10:23:02 RestartReason Software/System restart
2020-07-18 10:30:45 RfKey1 Default sent
2020-07-18 10:30:46 RfKey2 Default sent
2020-07-18 10:30:47 RfKey3 Default sent
2020-07-18 10:30:47 RfKey4 Default sent
2021-01-04 10:33:06 Sleep 50
2021-01-04 10:33:06 SleepMode Dynamic
2021-01-04 10:33:06 Time 2021-01-04T10:33:06
2021-01-04 10:22:35 Upgrade Successful. Restarting
2021-01-04 10:33:06 Uptime 0T00:10:14
2021-01-04 10:33:06 UptimeSec 614
2021-01-04 10:23:01 Version 9.2.0(tasmota)
2021-01-04 10:23:02 WebServerMode Admin
2021-01-04 10:33:06 Wifi_AP 1
2021-01-04 10:33:06 Wifi_BSSId 5C:49:79:34:26:B3
2021-01-04 10:33:06 Wifi_Channel 1
2021-01-04 10:33:06 Wifi_Downtime 0T00:00:08
2021-01-04 10:33:06 Wifi_LinkCount 1
2021-01-04 10:33:06 Wifi_RSSI 100
2021-01-04 10:33:06 Wifi_SSId Wlan-Fritz_24
2021-01-04 10:33:06 Wifi_Signal -45
2020-07-19 08:06:56 attrTemplateVersion 20200522 or prior
2021-01-04 10:23:11 btn_1 0
2021-01-04 10:23:11 btn_2 0
2021-01-04 10:23:11 btn_3 0
2021-01-04 10:23:11 btn_4 0
2021-01-04 10:23:11 dn SonoffBrigde
2021-01-04 10:23:11 fn_1 SonoffBrigde
2021-01-04 10:23:11 ft %prefix%/%topic%/
2021-01-04 10:23:11 hn SonoffBridge-0226
2021-01-04 10:23:11 if 0
2021-01-04 10:23:11 ip 192.168.178.28
2021-01-04 10:32:44 json_raw {"Time":"2021-01-04T10:32:45","RfReceived":{"Sync":10000,"Low":460,"High":1260,"Data":"111544","RfKey":"None"}}
2021-01-04 10:23:11 lk 1
2021-01-04 10:23:11 lt_st 0
2021-01-04 10:23:11 mac 2CF432BF00E2
2021-01-04 10:23:11 md Sonoff Bridge
2021-01-04 10:23:11 ofln Offline
2021-01-04 10:23:11 onln Online
2021-01-04 10:23:11 rl_1 0
2021-01-04 10:23:11 rl_2 0
2021-01-04 10:23:11 rl_3 0
2021-01-04 10:23:11 rl_4 0
2021-01-04 10:23:11 rl_5 0
2021-01-04 10:23:11 rl_6 0
2021-01-04 10:23:11 rl_7 0
2021-01-04 10:23:11 rl_8 0
2021-01-04 10:23:11 sho_1 0
2021-01-04 10:23:11 sho_2 0
2021-01-04 10:23:11 sho_3 0
2021-01-04 10:23:11 sho_4 0
2021-01-04 10:23:11 sn_Time 2021-01-04T10:23:11
2021-01-04 10:23:11 so_11 0
2021-01-04 10:23:11 so_114 0
2021-01-04 10:23:11 so_13 0
2021-01-04 10:23:11 so_17 0
2021-01-04 10:23:11 so_20 0
2021-01-04 10:23:11 so_30 0
2021-01-04 10:23:11 so_4 0
2021-01-04 10:23:11 so_68 0
2021-01-04 10:23:11 so_73 0
2021-01-04 10:23:11 so_82 0
2021-01-04 10:23:11 state_1 OFF
2021-01-04 10:23:11 state_2 ON
2021-01-04 10:23:11 state_3 TOGGLE
2021-01-04 10:23:11 state_4 HOLD
2021-01-03 11:24:54 subscriptions cmnd/DVES_BF00E2_fb/# cmnd/SonoffBridge/# cmnd/tasmotas/#
2021-01-04 10:23:11 sw 9.2.0
2021-01-04 10:23:11 swc_1 -1
2021-01-04 10:23:11 swc_2 -1
2021-01-04 10:23:11 swc_3 -1
2021-01-04 10:23:11 swc_4 -1
2021-01-04 10:23:11 swc_5 -1
2021-01-04 10:23:11 swc_6 -1
2021-01-04 10:23:11 swc_7 -1
2021-01-04 10:23:11 swc_8 -1
2021-01-04 10:23:11 t SonoffBridge
2021-01-04 10:23:11 tp_1 cmnd
2021-01-04 10:23:11 tp_2 stat
2021-01-04 10:23:11 tp_3 tele
2021-01-04 10:23:11 ty 0
2021-01-04 10:23:11 ver 1
Attributes:
IODev myBroker
event-on-change-reading .*
model tasmota_rf
readingList tele/SonoffBridge/INFO.:.* { json2nameValue($EVENT) }
tele/SonoffBridge/RESULT:.* { $EVENT =~ m,..RfReceived....Sync..([A-Za-z0-9]+)..Low..([\d]+)..High..([\d]+)..Data...([A-Za-z0-9]+)...RfKey...([^"]+)..., ? {"json_raw"=>$EVENT} : undef }
tele/SonoffBridge/RESULT:.* { $EVENT =~ m,..RfReceived....Sync..([A-Za-z0-9]+)..Low..([\d]+)..High..([\d]+)..Data...([A-Za-z0-9]+)...RfKey...([^"]+)..., ? {"Data"=>"$4"} : undef }
DVES_BF00E2:tele/SonoffBridge/STATE:.* { json2nameValue($EVENT) }
DVES_BF00E2:tele/SonoffBridge/LWT:.* LWT
DVES_BF00E2:cmnd/SonoffBridge/POWER:.* POWER
DVES_BF00E2:stat/SonoffBridge/RESULT:.* { json2nameValue($EVENT) }
DVES_BF00E2:stat/SonoffBridge/UPGRADE:.* { json2nameValue($EVENT) }
DVES_BF00E2:stat/SonoffBridge/POWER:.* POWER
DVES_BF00E2:tasmota/discovery/2CF432BF00E2/config:.* { json2nameValue($EVENT) }
DVES_BF00E2:tasmota/discovery/2CF432BF00E2/sensors:.* { json2nameValue($EVENT) }
room MQTT2_DEVICE
setList power:noArg cmnd/SonoffBridge/RFsend POWERCMD
volumeup:noArg cmnd/SonoffBridge/RFsend VOLUMEUPCMD
rfsend:textField cmnd/SonoffBridge/RFsend {"Protocol":"$EVTPART1","Bits":$EVTPART2,"Data":"0x$EVTPART3"}
stateFormat state
<br>
<a href="http://IPAddress" target="_blank">IPAddress</a>
Im "Ruhezustand" interessiert sich das DOIF nicht dafür
2021-01-04 10:32:44 MQTT2_DEVICE MQTT2_DVES_BF00E2 json_raw: {"Time":"2021-01-04T10:32:45","RfReceived":{"Sync":10000,"Low":460,"High":1260,"Data":"111544","RfKey":"None"}}
2021-01-04 10:37:44 MQTT2_DEVICE MQTT2_DVES_BF00E2 json_raw: {"Time":"2021-01-04T10:37:45","RfReceived":{"Sync":10000,"Low":450,"High":1270,"Data":"111544","RfKey":"None"}}
2021-01-04 10:42:45 MQTT2_DEVICE MQTT2_DVES_BF00E2 json_raw: {"Time":"2021-01-04T10:42:45","RfReceived":{"Sync":10000,"Low":450,"High":1270,"Data":"111544","RfKey":"None"}}
2021-01-04 10:47:45 MQTT2_DEVICE MQTT2_DVES_BF00E2 json_raw: {"Time":"2021-01-04T10:47:45","RfReceived":{"Sync":10020,"Low":450,"High":1270,"Data":"111544","RfKey":"None"}}
2021-01-04 10:52:44 MQTT2_DEVICE MQTT2_DVES_BF00E2 json_raw: {"Time":"2021-01-04T10:52:45","RfReceived":{"Sync":9990,"Low":450,"High":1270,"Data":"111544","RfKey":"None"}}
Auch daran kann es nicht liegen:
Hexadezimal -> D3D5DE
entspricht
Dezimal -> 13882846
Wenn Du
[MQTT2_DVES_BF00E2:"^Data:.D3D5DE"]
schreibst, reagieren die entspr. Bedingungen bei jedem Event von MQTT2_DVES_BF00E2 und testen dann ob das Event tatsächlich ^Data:.D3D5DE matcht.
Hier bei jedem Event von MQTT2_DVES_BF00E2 werden (nur) Bedingungen 1 und 3 getestet, und wenn das Event nicht matcht, geht er dann auf DOELSE. Deswegen kann man hier nicht mit DOELSE arbeiten.
Hätte dein Device ein bestimmtes Reading motion / nomotion könnte man es
([MQTT2_DVES_BF00E2:reading] eq "motion")
schreiben, und da würden die Bedingungen 1 und 3 nur triggern, wenn dieses Reading sich ändert.
Ein kleiner aber wichtiger Tipp:
bei [MQTT2_DVES_BF00E2:"^Data:.D3D5DE"] wird ein konkretes Device angegeben, wenn dieses Device etwas anderes sendet, so wird die Bedingung getestet, da sie aber nicht wahr ist, wird DOELSE ausgeführt,
bei ["^MQTT2_DVES_BF00E2$:^Data:.D3D5DE"] gehört das Device zum Event, wenn das Device etwas anderes sendet, wird die Bedingung erst gar nicht getestet, damit wird kein DOELSE ausgeführt.
Danke Damian. Dann ist die Lösung einfach. Ich war schon auf der Suche nach einem passenden DOELSEIF um das DOELSE zu ersetzen, z.B.:
DOELSEIF (([Lux_Dachboden:"BH1750_Illuminance"] or [MQTT2_DVES_BF00E2:"^Data"]) \
and [?21:31-16:29] and [$SELF:cmd] ne "3.1" and [?H801_Kueche] ne "off") \
(set H801_Kueche off)
Hier hätte ich Illuminance und MQTT2 Events als reine Trigger benutzt (je nachdem welches das erste ist, das sich meldet), und dann den Rest getestet.
aber es reicht denn in der 1. und in der 3. Bedingung, die Events in deiner 2. Form zu schreiben
DEF (["^MQTT2_DVES_BF00E2$:^Data:.D3D5DE"] and [?16:30-21:30] and [?Lux_Dachboden:BH1750_Illuminance]< 1100 )
(set H801_Kueche pct 100)
(set H801_Kueche pct 50)
DOELSEIF ([16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance]< 50 and [$SELF:cmd] ne "1.1")
(set H801_Kueche pct 50)
DOELSEIF (["^MQTT2_DVES_BF00E2$:^Data:.D3D5DE"] and [?21:31-16:29] and [?Lux_Dachboden:BH1750_Illuminance]< 1100)
(set H801_Kueche pct 50)
(set H801_Kueche off)
DOELSE (set H801_Kueche off)
Hier wird er auf DOELSE schalten, sobald Illuminance sich meldet und die 2. Bedingung nicht wahr ist.
Zitat von: Damian am 04 Januar 2021, 13:34:37
bei ["^MQTT2_DVES_BF00E2$:^Data:.D3D5DE"] gehört das Device zum Event, wenn das Device etwas anderes sendet, wird die Bedingung erst gar nicht getestet, damit wird kein DOELSE ausgeführt.
Danke, das war der Schlüssel.
Danke an alle die mitgeholfen haben.
Mache den Thread dann mal auf gelöst ;D
Liebe Grüße aus dem Osten Hamburgs
Ralf
Hallo, ich muss das gelöst noch einmal aufheben ;), weil ich habe noch einen entscheidenen "Kinken" drin.
21:31-9:29 alle 3 Bedingungen erfüllen
defmod LUX_LED_Kueche DOIF (["^MQTT2_DVES_BF00E2$:^Data:.D3D5DE"] and [?16:30-21:30] and [?Lux_Dachboden:BH1750_Illuminance]< 1100 ) \
(set H801_Kueche pct 100) \
(set H801_Kueche pct 50) \
DOELSEIF ([16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance]< 50 and [$SELF:cmd] ne "1.1") \
(set H801_Kueche pct 50) \
DOELSEIF (["^MQTT2_DVES_BF00E2$:^Data:.D3D5DE"] and [?21:31-9:29] and [?Lux_Dachboden:BH1750_Illuminance]< 50) \
(set H801_Kueche pct 50) \
(set H801_Kueche off) \
DOELSE (set H801_Kueche off)
attr LUX_LED_Kueche do resetwait
attr LUX_LED_Kueche room Küche
attr LUX_LED_Kueche wait 0,300:0:0,300:0
Weil es fehlt, dass das Licht in der Zeit von 9.30-16:29 angeht, wenn die Schwelle unter 1100 Lux fällt, aber ohne Bewegungsmelder
defmod LUX_LED_Kueche DOIF (["^MQTT2_DVES_BF00E2$:^Data:.D3D5DE"] and [?16:30-21:30] and [?Lux_Dachboden:BH1750_Illuminance]< 1100 ) \
(set H801_Kueche pct 100) \
(set H801_Kueche pct 50) \
DOELSEIF ([16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance]< 50 and [$SELF:cmd] ne "1.1") \
(set H801_Kueche pct 50) \
DOELSEIF (["^MQTT2_DVES_BF00E2$:^Data:.D3D5DE"] and [?21:31-9:29] and [?Lux_Dachboden:BH1750_Illuminance]< 50) \
(set H801_Kueche pct 50) \
(set H801_Kueche off) \
DOELSEIF ([?9:30-16:29] and [?Lux_Dachboden:BH1750_Illuminance]< 1100) \
(set H801_Kueche pct 50) \
DOELSE (set H801_Kueche off)
attr LUX_LED_Kueche do resetwait
attr LUX_LED_Kueche room Küche
attr LUX_LED_Kueche wait 0,300:0:0,300:0:0
Oder müsste da noch der cmd rein?
defmod LUX_LED_Kueche DOIF (["^MQTT2_DVES_BF00E2$:^Data:.D3D5DE"] and [?16:30-21:30] and [?Lux_Dachboden:BH1750_Illuminance]< 1100 ) \
(set H801_Kueche pct 100) \
(set H801_Kueche pct 50) \
DOELSEIF ([16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance]< 50 and [$SELF:cmd] ne "1.1") \
(set H801_Kueche pct 50) \
DOELSEIF (["^MQTT2_DVES_BF00E2$:^Data:.D3D5DE"] and [?21:31-9:29] and [?Lux_Dachboden:BH1750_Illuminance]< 50) \
(set H801_Kueche pct 50) \
(set H801_Kueche off) \
DOELSEIF ([?9:30-16:29] and [?Lux_Dachboden:BH1750_Illuminance]< 1100) and [$SELF:cmd] ne "1.1") \
(set H801_Kueche pct 50) \
DOELSE (set H801_Kueche off)
attr LUX_LED_Kueche do resetwait
attr LUX_LED_Kueche room Küche
attr LUX_LED_Kueche wait 0,300:0:0,300:0:0
Hängt hat mit der Anwesenheit zusammen ;D
Ich dachte Du willst nur am Tag beleuchten, wenn eine Bewegung kommt, aber nicht permanent. Und das macht
DOELSEIF (["^MQTT2_DVES_BF00E2$:^Data:.D3D5DE"] and [?21:31-16:29] and [?Lux_Dachboden:BH1750_Illuminance]< 1100)
(set H801_Kueche pct 50)
(set H801_Kueche off)
Habe das gerade so der Regerung vorgeführt, aber die war not amused 8)
Also:
(["^MQTT2_DVES_BF00E2$:^Data:.D3D5DE"] and [?16:30-21:30] and [?Lux_Dachboden:BH1750_Illuminance]< 1100 )
Bewegung abends wenn dunkel
([16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance]< 50 and [$SELF:cmd] ne "1.1")
Dunkel abends und wir sind nicht während wait nach Bewegung
(["^MQTT2_DVES_BF00E2$:^Data:.D3D5DE"] and [?21:31-9:29] and [?Lux_Dachboden:BH1750_Illuminance]< 50)
Bewegung nachts wenn dunkel
[21:31-9:29] and [Lux_Dachboden:BH1750_Illuminance]< 50
Dunkel nachts
Die Bedingungen mit ? triggern nicht
Wenn Du nur strikt das willst ,(bis auf die Uhrzeiten und Lux Grenzen):
Zitat1. In der Zeit von 16:30-21:30, wenn es dunkel ist = Lux < 200 soll er auf 50 pct angehen. Zusätzlich soll er, wenn Bewegung erkannt wird auf 100% gehen. Die 100% sollen für 5 min an bleiben und dann zurückfallen auf 50%
2. In der Zeit von 21:31-16:29, wenn es dunkel ist = Lux < 1100 soll er auf 50 pct angehen
DEF (["^MQTT2_DVES_BF00E2$:^Data:.D3D5DE"] and [?16:30-21:30] and [?Lux_Dachboden:BH1750_Illuminance]< 1100 ) #Bewegung abends wenn dunkel
(set H801_Kueche pct 100)
(set H801_Kueche pct 50)
DOELSEIF ([16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance]< 50 and [$SELF:cmd] ne "1.1") #Abends wenn dunkel und keine Bewegung vorher
(set H801_Kueche pct 50)
DOELSEIF ([21:31-9:29] and [Lux_Dachboden:BH1750_Illuminance]< 50) #Nachts wenn dunkel
(set H801_Kueche pct 50)
DOELSE (set H801_Kueche off)
Das Missverständnis kam, da Du jetzt wieder die Uhrzeiten geändert hast. Früher war es 21:31-16:29 und ich hätte nie gedacht, dass du permanent auch am Tag beleuchten willst.
Die Zeiten hatte verändert, wahrscheinlich als du geantwortet hast.
Ich habe dieses DOIF jetzt mal initialisiert.
defmod LUX_Kueche DOIF (["^MQTT2_DVES_BF00E2$:^Data:.D3D5DE"] and [?16:30-21:30] and [?Lux_Dachboden:BH1750_Illuminance]< 1100 ) \ #1100 Lux decken auch Frühjahr und Herbst ab#
(set H801_Kueche pct 100) \
(set H801_Kueche pct 50) \
DOELSEIF ([16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance]< 50 and [$SELF:cmd] ne "1.1") \ #generell an egal ob jemand zuhause oder nicht#
(set H801_Kueche pct 50) \
DOELSEIF (["^MQTT2_DVES_BF00E2$:^Data:.D3D5DE"] and [?21:31-16:29] and [?Lux_Dachboden:BH1750_Illuminance]< 1100) \ #wenn jemand tagsüber in der Küche ist, in der Nacht runtergeht oder spät heimkommt, die 1100 Lux sind bedeckter Himmel#
(set H801_Kueche pct 50) \
(set H801_Kueche off) \
DOELSE (set H801_Kueche off)
attr LUX_Kueche do resetwait
attr LUX_Kueche room Küche
attr LUX_Kueche wait 0,300:0:0,300:0:0
Wobei ich das Schwachsinn finde was die GöGa da will :( - Also alles wieder auf den Ursprung und gut ist. Alles andere ist doppelt gemoppelt 8)
Danke für Hilfe und Denkanstöße
Liebe Grüße
Ralf
Bitte auch die Anmerkung von Beta-User im anderen Thread berücksichtigen: ich weiss nicht wie "MQTT2_DVES_BF00E2:Data" babbelt, aber mit "event-on-change-reading .*" wird eine erneute Bewegung das DOIF nicht triggern, falls inzwischen kein anderes "Data" Event angekommen ist.
Zitat von: Damian am 04 Januar 2021, 13:34:37
Ein kleiner aber wichtiger Tipp:
bei [MQTT2_DVES_BF00E2:"^Data:.D3D5DE"] wird ein konkretes Device angegeben, wenn dieses Device etwas anderes sendet, so wird die Bedingung getestet, da sie aber nicht wahr ist, wird DOELSE ausgeführt,
bei ["^MQTT2_DVES_BF00E2$:^Data:.D3D5DE"] gehört das Device zum Event, wenn das Device etwas anderes sendet, wird die Bedingung erst gar nicht getestet, damit wird kein DOELSE ausgeführt.
Aber das hattest du auch gelesen?
Ja, aber das ändert nicht an den Fakt: kein Event = keine Triggerung
EDIT: da im "json_raw" aber immer der Timestamp enthalten ist, wird sich das json_raw Reading jedes mal ändern, und dann kriegst Du wahrscheinlich jedes Mal doch ein Event. Ist wahrscheinlich schon OK.
Ich gebe dann an der Stelle auf, weil es nicht funktioniert, wie ich es mir vorstelle. Werde mir andere Lösungen
Ganz seltsam was nun passiert ist. Bewegung wurde erkannt und schaltet auf 100% hoch. Nach dem wait 300 sek später schaltet es sich ab.
Dann nach weiteren 300 sek geht der Stripe auf 50% an.
Ich bin verwirrt.
Ich werde mir wohl was anderes einfallen lassen müssen.
Einfach die Zustände (cmdx / cmdx_x) beobachten. Wer der Zustand sich ändert, hast Du im Reading Device, welches Device die Zustandsänderung ausgelöst hat, und in einem "e_....." Reading genau welches Event.
Da Du jetzt unterschiedliche Lux Werte in Bedingung 1 (1100) und Bedingung 2 hast (50), kann eine Illuminance von z.B. 60 dazu führen, dass er cmd_2 überspringt, und direkt auf DOELSE geht (aus). Dann wird die Illuminance kleiner als 50 und er springt wieder auf cmd_2
Im Augenblick befinde sich das DOIF in cmd_2, reagiert aber nicht mehr:
Hier ein Readingslist
define LUX_Kueche DOIF (["^MQTT2_DVES_BF00E2$:^Data:.D3D5DE"] and [?16:30-21:30] and [?Lux_Dachboden:BH1750_Illuminance]< 1100 ) \
(set H801_Kueche pct 100) \
(set H801_Kueche pct 50) \
DOELSEIF ([16:30-21:30] and [Lux_Dachboden:BH1750_Illuminance]< 50 and [$SELF:cmd] ne "1.1") \
(set H801_Kueche pct 50) \
DOELSEIF (["^MQTT2_DVES_BF00E2$:^Data:.D3D5DE"] and [?21:31-16:29] and [?Lux_Dachboden:BH1750_Illuminance]< 1100) \
(set H801_Kueche pct 50) \
(set H801_Kueche off) \
DOELSE (set H801_Kueche off)
attr LUX_Kueche do resetwait
attr LUX_Kueche room Küche
attr LUX_Kueche wait 0,300:0:0,300:0
setstate LUX_Kueche cmd_2
setstate LUX_Kueche 2021-01-04 17:47:44 Device Lux_Dachboden
setstate LUX_Kueche 2021-01-04 17:47:44 cmd 2
setstate LUX_Kueche 2021-01-04 17:47:44 cmd_event Lux_Dachboden
setstate LUX_Kueche 2021-01-04 17:47:44 cmd_nr 2
setstate LUX_Kueche 2021-01-04 17:47:44 e_Lux_Dachboden_BH1750_Illuminance 0
setstate LUX_Kueche 2021-01-04 16:47:26 mode enabled
setstate LUX_Kueche 2021-01-04 17:47:44 state cmd_2
setstate LUX_Kueche 2021-01-04 16:41:47 timer_01_c01 05.01.2021 16:30:00
setstate LUX_Kueche 2021-01-04 16:41:47 timer_02_c01 04.01.2021 21:30:00
setstate LUX_Kueche 2021-01-04 16:41:47 timer_03_c02 05.01.2021 16:30:00
setstate LUX_Kueche 2021-01-04 16:41:47 timer_04_c02 04.01.2021 21:30:00
setstate LUX_Kueche 2021-01-04 16:41:47 timer_05_c03 04.01.2021 21:31:00
setstate LUX_Kueche 2021-01-04 16:41:47 timer_06_c03 05.01.2021 16:29:00
setstate LUX_Kueche 2021-01-04 15:40:10 timer_07_c04 05.01.2021 09:30:00
setstate LUX_Kueche 2021-01-04 15:40:10 timer_08_c04 04.01.2021 16:29:00
setstate LUX_Kueche 2021-01-04 17:17:44 wait_timer no timer
:-X ::) :P
"Reagiert nicht mehr" => Auch bei einer Bewegung?
Ja.
Aber wir machen jetzt zunächst einen neuen MQTT Thread auf.
Siehe auch "alten Thread".
Vielleicht bekommen wir das darüber besser in den Griff.