Moin Leute, ich hab da mal ne Frage, zur besseren Verständlichkeit.
Kurze Vorgeschichte: da weder die Hue-App, noch Hue-Labs in der Lage ist, mit mehr als 2 Bewegungsmeldern vernünftig umzugehen, dachte ich mir, ich bastel mir eine Lösung, die Funktioniert, hier in FHEM nach.
Gesagt getan, läuft soweit auch super.
Jetzt habe ich aber folgendes Problem:
Zur besseren Übersicht, habe ich mir für jeden Bewegungsmelder per stateFormat den Wert auf state | battery gesetzt, um sowohl den Status, als auch das Batterielevel im Auge zu behalten.
Wenn ich in meiner DOIF-Abfrage aber nun darauf warte, dass sich beim state der Wert ändert und auf selbigen triggere, passiert dann leider nichts, was mich zu der Vermutung führt, dass das stateFormat übergeben wird, statt dem reinen state.
Meine DOIF-Abfrage sieht dann aktuell so aus:
([FL.MotionSensor1] eq "motion" or [FL.MotionSensor2] eq "motion" or [...] ) {Hallway_Lights_on()} DOELSEIF ([FL.MotionSensor1] eq "nomotion" and [FL.MotionSensor2] eq "nomotion" and [...]) {Hallway_Lights_off()}
Setze ich kein stateFormat, funktioniert das problemlos. Anbei das list für einen der 4 Bewegungssensoren (sind alle vom selben Typ, von daher sind die Werte so ziemlich identisch).
Internals:
DEF sensor 12 25 IODev=HUEBridge
FUUID 5d88e600-f33f-f2a1-2434-1322ca309f677bf2
FVERSION 31_HUEDevice.pm:0.201220/2019-09-07
ID S12
INTERVAL 25
IODev HUEBridge
NAME FL.MotionSensor1
NR 178
STATE nomotion
TYPE HUEDevice
lastupdated 2019-10-08 04:49:43
lastupdated_local 2019-10-08 06:49:43
manufacturername Philips
modelid SML001
name Flur Sensor 1
on 1
reachable 1
sensitivity 2
sensitivitymax 2
swversion 6.1.1.27575
type ZLLPresence
uniqueid 00:17:88:01:04:b5:df:ae-02-0406
READINGS:
2019-10-08 06:49:43 battery 100
2019-10-08 06:49:43 reachable 1
2019-10-08 06:49:43 state nomotion
helper:
devtype S
reachable 0
update_timeout 1
configList:
setList:
Attributes:
IODev HUEBridge
group Bewegungssensoren
room Flur
Nun zur Frage: wie kann ich, auch mit gesetztem stateFormat den reinen Wert des Readings state (motion oder nomotion) auslesen, damit bei einer Bewegung ganz normal getriggert wird, wenn ich nur auf motion oder nomotion reagieren will?
Vielen Dank im Voraus :)
Hi,
[devicenam:state]
Auszug aus der Doku:
ZitatStatus werden mit [<devicename>], Readings mit [<devicename>:<readingname>], Internals mit [<devicename>:&<internal>] angegeben.
Ich "liebe" den Begriff
Status, der wird glaube ich gern verwendet um den User zu verunsichern. ;D
Meistens ist damit (das Internal) STATE gemeint.
Gruß Otto
Hui, das ging ja schnell. Vielen Dank :)
Ich war mir nicht sicher, ob das so etwas bringen würde, weil ich dachte, dass da der selbe Wert zurückgegeben wird (als Standard), wenn ich state nicht angebe.
Nur zum reinen Verständnis: das passiert in diesem Falle nicht? Sondern es wird nur das reine Reading ausgegeben und stateFormat völlig außen vor gelassen?
ja.
Der Standard (default) ist quasi so zu verstehen:
[device] = [device:&STATE]
und STATE ensteht quasi per default so:
attr device stateFormat state
Gruß Otto
Super. Dann habe ich da wohl mal etwas falsch verstanden gehabt :D
Hab es auch gerade getestet. Bin zwar nicht Zuhause, aber hab über die Oberfläche das state-Reading einfach mal geändert (mit aktiviertem stateFormat) und siehe da, es triggert und schaltet die Lampen ein (zumindest laut Frontend) :)
Ich bedanke mich für die schnelle Hilfe ;D