Hallo,
ich komme aktuell nicht mehr weiter. Ich habe in der Wohnung verschiedene Bewegungsmelder 3 mit Helligkeitsmessung und 3 ohne. Der Plan war: im Bad, Schlafzimmer und Wohnzimmer die ohne Helligkeitsmessung verwenden und die anhand der Werte vom Flur schalten. So eigentlich funktioniert es auch aber ein Problem ist z.B. wenn ich im dunkeln in die Wohnung komme, dann geht das Licht im Flur an. Wenn ich dann aber ins Wohnzimmer gehe, dann kann es passieren das es "zu hell" ist weil der Helligkeitsmesser im Flur ja schon die Helligkeit mit Lampen an misst. Daher geht das Licht nicht an:
So jetzt habe ich gedacht, okay nimmst du einfach den Mittelwert aus allen Sensoren zur Steuerung. Hat aber auch nicht funktioniert, weil ich den Sensor im Flur nur so hinstellen kann, dass eine LED direkt darauf leuchtet, d.h. er hat immer Werte von 300 wenn er an ist.
So also dachte ich mir der Sensor soll diese die Werte nur in ein Reading schreiben wenn die Lichter aus sind. Dies funktioniert aber auch nicht wie ich es haben will: und hier kommen wir zur eigentlichen Frage:
Mein Ansatz war:
lux2 {if(ReadingsVal("Flur_Lichter","state","") eq "off") {(ReadingsNum("0x00158d00031b4dca","lux",0))}}
0x00158d00031b4dca ist der Sensor
Flur_Lichter ist die Gruppe aus LEDs
dies funktioniert auch wenn die LEDs aus sind.
SO aber wie man in dem List unten sieht ist lux2 sobald die Leuchten an ist leer bzw. gelöscht. Wie bekomme ich es hin, dass der Wert stehen bleibt.
Ich hoffe ich konnte es ein wenig verständlich formulieren was ich brauche, falls ihr aber noch eine bessere Lösung für mein Problem habt dann bitte gerne:
List vom Sensor:
Internals:
DEF RTCGQ11LM 0x00158d00031b4dca Xiaomi_Praesenz_Lux_Flur
FRIENDLYNAME Xiaomi_Praesenz_Lux_Flur
FUUID 5ceba20f-f33f-6fd6-d2cb-4101fba81aa6c5be
IODev MQTT
MODEL RTCGQ11LM
NAME 0x00158d00031b4dca
NOTIFYDEV RTCGQ11LM 0x00158d00031b4dca Xiaomi_Praesenz_Lux_Flur
NR 209
SID 0x00158d00031b4dca
STATE no_motion,295
TYPE XiaomiMQTTDevice
Helper:
DBLOG:
Statenum:
DBLogging:
TIME 1572502961.5767
VALUE 0
average_ii:
DBLogging:
TIME 1572502961.5767
VALUE 42.120
illuminance:
DBLogging:
TIME 1572502961.5767
VALUE 295
occupancy:
DBLogging:
TIME 1572502961.5767
VALUE false
READINGS:
2019-10-31 07:22:41 Statenum 0
2019-10-31 07:22:41 average_ii 42.120
2019-10-31 07:22:41 battery ok
2019-10-31 07:22:41 battery_level 100
2019-10-31 07:22:41 illuminance 295
2019-10-31 07:22:41 linkquality 36
2019-10-31 07:22:41 lux 295
2019-10-31 07:22:41 lux2
2019-10-31 07:22:41 occupancy false
2019-10-31 07:22:41 state no_motion
2019-10-31 07:22:41 transmission-state incoming publish received
2019-10-31 07:22:41 voltage 3025
message_ids:
subscribe:
zigbee2mqtt/Xiaomi_Praesenz_Lux_Flur
xiaomi/0x00158d00031b4dca/#
subscribeExpr:
^zigbee2mqtt\/Xiaomi_Praesenz_Lux_Flur$
^xiaomi\/0x00158d00031b4dca.*$
subscribeQos:
xiaomi/0x00158d00031b4dca/# 0
zigbee2mqtt/Xiaomi_Praesenz_Lux_Flur 0
Attributes:
DbLogExclude .*
DbLogInclude occupancy,illuminance,Statenum,average_ii
IODev MQTT
alias Xiaomi_Praesenz_Lux_Flur
devStateIcon motion:motion_detector@red off:motion_detector@green no_motion:motion_detector@green
mqttName Xiaomi_Praesenz_Lux_Flur
mqttRoom Flur
room XiaomiMQTTDevice
stateFormat state,illuminance
userReadings Statenum {if(ReadingsVal("0x00158d00031b4dca","occupancy","") eq "false") {return 0} else {return 1}},
average_ii {movingAverage("0x00158d00031b4dca","lux",1800)},
lux2 {if(ReadingsVal("Flur_Lichter","state","") eq "off") {(ReadingsNum("0x00158d00031b4dca","lux",0))}}
List vom doif:
Internals:
DEF ([0x00158d00031b4dca:occupancy] eq "true" and [?0x00158d00031b4dca:lux2] < 25) (set Flur_Lichter on) (set Flur_Lichter off)
FUUID 5da5c2de-f33f-6fd6-167a-66a878aac5397e03
MODEL FHEM
NAME LichtAnFlur_2
NR 352
NTFY_ORDER 50-LichtAnFlur_2
STATE cmd_1
TYPE DOIF
VERSION 19786 2019-07-05 21:47:08
Helper:
DBLOG:
cmd:
DBLogging:
TIME 1572503052.54662
VALUE 1.2
cmd_event:
DBLogging:
TIME 1572503052.54662
VALUE 0x00158d00031b4dca
cmd_nr:
DBLogging:
TIME 1572503052.54662
VALUE 1
cmd_seqnr:
DBLogging:
TIME 1572503052.54662
VALUE 2
error:
DBLogging:
TIME 1572090106.41861
VALUE 0x000b57fffea848da off
last_cmd:
DBLogging:
TIME 1572164540.30064
VALUE cmd_1
mode:
DBLogging:
TIME 1572502468.60438
VALUE enabled
state:
DBLogging:
TIME 1572503052.54662
VALUE cmd_1
wait_timer:
DBLogging:
TIME 1572503052.33122
VALUE no timer
READINGS:
2019-10-31 07:22:41 Device 0x00158d00031b4dca
2019-10-31 07:24:12 cmd 1.2
2019-10-31 07:24:12 cmd_event 0x00158d00031b4dca
2019-10-31 07:24:12 cmd_nr 1
2019-10-31 07:24:12 cmd_seqnr 2
2019-10-31 07:22:41 e_0x00158d00031b4dca_occupancy false
2019-10-31 07:14:28 mode enabled
2019-10-31 07:24:12 state cmd_1
2019-10-31 07:24:12 wait_timer no timer
Regex:
accu:
attr:
cmdState:
wait:
0:
0
180
waitdel:
condition:
0 ::ReadingValDoIf($hash,'0x00158d00031b4dca','occupancy') eq "true" and ::ReadingValDoIf($hash,'0x00158d00031b4dca','lux2') < 25
devices:
0 0x00158d00031b4dca
all 0x00158d00031b4dca
do:
0:
0 set Flur_Lichter on
1 set Flur_Lichter off
1:
helper:
event linkquality: 36,battery: ok,battery_level: 100,lux: 295,illuminance: 295,motion,occupancy: true,voltage: 3025,Statenum: 1,average_ii: 19.080,lux2:
globalinit 1
last_timer 0
sleepdevice 0x00158d00031b4dca
sleepsubtimer -1
sleeptimer -1
timerdev 0x00158d00031b4dca
timerevent linkquality: 36,battery: ok,battery_level: 100,lux: 295,illuminance: 295,motion,occupancy: true,voltage: 3025,Statenum: 1,average_ii: 19.080,lux2:
triggerDev 0x00158d00031b4dca
DOIF_eventas:
cmd_nr: 1
cmd_seqnr: 2
cmd_event: 0x00158d00031b4dca
state: cmd_1
timerevents:
linkquality: 36
battery: ok
battery_level: 100
lux: 295
illuminance: 295
motion
occupancy: true
voltage: 3025
Statenum: 1
average_ii: 19.080
lux2:
timereventsState:
linkquality: 36
battery: ok
battery_level: 100
lux: 295
illuminance: 295
state: motion
occupancy: true
voltage: 3025
Statenum: 1
average_ii: 19.080
lux2:
triggerEvents:
linkquality: 36
battery: ok
battery_level: 100
lux: 295
illuminance: 295
motion
occupancy: true
voltage: 3025
Statenum: 1
average_ii: 19.080
lux2:
triggerEventsState:
linkquality: 36
battery: ok
battery_level: 100
lux: 295
illuminance: 295
state: motion
occupancy: true
voltage: 3025
Statenum: 1
average_ii: 19.080
lux2:
internals:
itimer:
readings:
0 0x00158d00031b4dca:occupancy
all 0x00158d00031b4dca:occupancy
trigger:
uiState:
uiTable:
Attributes:
DbLogInclude cmd
do resetwait
room Logik
wait 0,180
Warum stellst du nicht einfach einen BWM mit Helligkeitssensor nach aussen?
Der sagt dir dann ob es dunkel ist oder nicht. Mit diesem kannst du dann alle anderen triggern.
Alternativ dazu würde ich einfach einen ohne Helligkeitssensor in den Flur packen. Du musst ja schließlich jedesmal durch den Flur um in ander Zimmer zu kommen und würdest somit immer ein zu hellen Luxwert bei den 3 anderen erhalten.
Sonst denke ich, dass die Idee mit dem Mittelwert aus 3 BWM garnicht so schlecht klingt.
kurz da handy
schreib die Helligkeit in ein userreading, aktualisierung aber nur dann wenn eine Messung erfolgt ist und das Licht in diesem moment aus war/ist.
dann beziehe deine Steuerung aud dieses userreading. mache ich in allen Räumen so.
gruss Byte09
Gesendet von meinem ELE-L29 mit Tapatalk