Hauptmenü

HUE-Nachtlicht erweitern

Begonnen von Moonlightkid, 20 Februar 2020, 23:24:06

Vorheriges Thema - Nächstes Thema

Moonlightkid

Guten Abend zusammen,

nachdem ich einem anderen Problem abschliessend noch nicht auf die Spur gekommen bin  ::) mal eine Logikfrage zum DOIF mit HUE Bewegungsmeldern.

Die Flurbeleuchtung schaltet sich gemäß den Vorgaben aus der HUE-app, das passt soweit.
Jedoch möchte ich abends die Alibert-Beleuchtung zusätzlich für 3 Minuten einschalten wenn folgende Bedingungen gegeben sind:

  • Das einzuschaltende Licht ist aus, weil sonst braucht es grad jemand und der Timer geht los
  • Das Tageslicht ist weg - es ist dunkel - dafür habe ich sogar einen Dummy der Tag oder Nacht ausgibt
  • Der Bewegungsmelder schlägt an, weil er eine Bewegung erkennt

Aktuell ist mein DOIF so gestaltet:

(([FlurSensor1] eq motion) and ([Tageslicht] eq Nacht) and ([Spiegel] eq off)) (set Spiegel on-for-timer 180)


Nun, ich laufe durch den Flur hin und her... das zusätzliche Licht schaltet sich nicht ein  :-\

Da es aber mit den HUE-Bewegungsmeldern, laut Ergebnissen mit Google, öfter Probleme mit dem Reading State gibt möchte ich nach dem Ausschlussverfahren gehen.


  • Stimmt meine DEF für das DOIF? Oder hat sich ein Fehler eingeschlichen? Voraussetzung, die anderen Bedingungen stimmen. Tageslicht und Spiegel liefern die korrekten Zustände für meine Vorgabe.
  • Oder ist es die Statusabfrage zum Sensor?

Nebenbei:
Ich habe mittlerweile gelernt, dass "" einen Event voraussetzen, ohne "" ist es der aktuelle State. Ob eq wichtig ist oder nicht, manchmal ja, manchmal nein - so genau ist mir das noch nicht klar, da ich da bereits unterschiedliche Ergebnisse erreicht habe.

Raw-Code Bewegungsmelder (ZLL-Presence):
defmod FlurSensor1 HUEDevice sensor 43  IODev=hueBridge1
attr FlurSensor1 IODev hueBridge1
attr FlurSensor1 icon people_sensor
attr FlurSensor1 room Flur,HUEDevice

setstate FlurSensor1 nomotion
setstate FlurSensor1 2020-02-20 22:32:17 .lastupdated 2020-02-20 21:32:17
setstate FlurSensor1 2020-02-20 22:32:17 .lastupdated_local 2020-02-20 22:32:17
setstate FlurSensor1 2020-02-20 22:32:17 battery 97
setstate FlurSensor1 2020-02-20 22:32:17 reachable 1
setstate FlurSensor1 2020-02-20 22:32:17 state nomotion


Mir würde es ja ausreichen, wenn ich endlich den Zustand motion für einen so kurzen Moment erhalte, dass das Schalten funktioniert. Danach kann der State wieder auf nomotion rückgesetzt.

Die HUE-App liefert wie bei anderen erfolgreich wann genau eine Bewegung erkannt wurde.

Wenn es funktioniert kann ich auch den zweiten Bewegungsmelder einbinden, da der Flur zwei Bewegungsmelder braucht.

Der Eventmonitor gibt mir da mehr Infos:
20 22:59:23 DOIF DoifNachtlicht error: condition c01: Bareword "motion" not allowed while "strict subs" in use at (eval 5110) line 1. Bareword "Nacht" not allowed while "strict subs" in use at (eval 5110) line 1. Bareword "off" not allowed while "strict subs" in use at (eval 5110) line 1.
2020-02-20 22:59:23 HUEDevice FlurSensor1 reachable: 1
2020-02-20 22:59:23 HUEDevice FlurSensor1 battery: 97
2020-02-20 22:59:23 HUEDevice FlurSensor1 nomotion
2020-02-20 22:59:23 HUEDevice FlurSensor2 battery: 100
2020-02-20 22:59:23 HUEDevice FlurSensor2 nomotion
2020-02-20 22:59:23 HUEDevice FlurSensor2 reachable: 1
2020-02-20 22:59:23 HUEDevice FlurLicht 0
2020-02-20 22:59:23 HUEDevice FlurLicht lightlevel: 0
2020-02-20 22:59:23 HUEDevice FlurLicht battery: 97
2020-02-20 22:59:23 HUEDevice FlurLicht daylight: 0
2020-02-20 22:59:23 HUEDevice FlurLicht dark: 1
2020-02-20 22:59:23 HUEDevice FlurLicht reachable: 1
2020-02-20 22:59:23 HUEDevice FlurTemp temperature: 18.23
2020-02-20 22:59:23 HUEDevice FlurTemp battery: 100
2020-02-20 22:59:23 HUEDevice FlurTemp reachable: 1
2020-02-20 22:59:23 HUEDevice hueBridge1_HUEDevice1 onoff: 0
2020-02-20 22:59:23 HUEDevice hueBridge1_HUEDevice1 pct: 0
2020-02-20 22:59:23 HUEDevice hueBridge1_HUEDevice1 off
2020-02-20 22:59:23 HUEDevice hueBridge1_HUEDevice2 onoff: 0
2020-02-20 22:59:23 HUEDevice hueBridge1_HUEDevice2 pct: 0
2020-02-20 22:59:23 HUEDevice hueBridge1_HUEDevice2 off


Muss ich jetzt motion, Nacht und off auf 0 und 1 ändern? Die Anführungszeichen habe ich gelöscht, trotzdem klappt es nicht  :-\ Ich wollte ja den State und keinen Event abfragen...

Warum ich mich hiermit so abquäle... klar könnte ich einfach den Zustand einer der Lampen abfragen und hätte das Ergebnis schneller. Das Problem kommt meines Erachtens einfach von den Bewegungsmeldern. Nur wenn ich die Abfrage der Bewegungsmelder hinbekomme, dann kann ich auch die Licht- und Temperatursensoren abfragen. Zum Beispiel, ob die Temperatur ungewöhnlich hoch ist und es eventuell brennen könnte  ::)


Gibt es mittlerweile Lösungen zu den Hue-Bewegungsmeldern die ich einfach noch nicht im Forum oder Google gefunden habe?


Grüßle, Ralph
Synology 220+, Hue, MAX!, Sonoff, Zigbee2Mqtt, Shelly, Tuya

Moonlightkid

Aktuelle Nachricht aus dem Event-Monitor, nachdem ich die "" aus den Bedingungen vom DOIF genommen habe

2020-02-20 23:17:23 HUEDevice FlurLicht daylight: 0
2020-02-20 23:17:23 HUEDevice FlurLicht dark: 1
2020-02-20 23:17:23 HUEDevice FlurLicht reachable: 1
2020-02-20 23:17:23 HUEDevice FlurLicht 0
2020-02-20 23:17:23 HUEDevice FlurLicht lightlevel: 0
2020-02-20 23:17:23 HUEDevice FlurLicht battery: 97
2020-02-20 23:17:23 HUEDevice FlurTemp reachable: 1
2020-02-20 23:17:23 HUEDevice FlurTemp battery: 100
2020-02-20 23:17:23 HUEDevice FlurTemp temperature: 18.23



Also keine Fehlermeldung mehr. Leider funktioniert es ja trotzdem nicht  :'(

Ich bin dann mal off - ist ja schon spät  ::)
Synology 220+, Hue, MAX!, Sonoff, Zigbee2Mqtt, Shelly, Tuya

Moonlightkid

... doch nochmal schnell eine neue Nachricht vom Eventmonitor:

2020-02-20 23:29:23 HUEDevice FlurTemp temperature: 18.23
2020-02-20 23:29:23 HUEDevice FlurTemp battery: 100
2020-02-20 23:29:23 HUEDevice FlurTemp reachable: 1
2020-02-20 23:29:23 HUEDevice FlurLicht lightlevel: 0
2020-02-20 23:29:23 HUEDevice FlurLicht 0
2020-02-20 23:29:23 HUEDevice FlurLicht battery: 97
2020-02-20 23:29:23 HUEDevice FlurLicht reachable: 1
2020-02-20 23:29:23 HUEDevice FlurLicht daylight: 0
2020-02-20 23:29:23 HUEDevice FlurLicht dark: 1
2020-02-20 23:29:23 DOIF DoifNachtlicht warning: condition c01: (Missing operator before off?)
2020-02-20 23:29:23 DOIF DoifNachtlicht error: condition c01: syntax error, motion"
2020-02-20 23:29:24 HUEDevice FlurSensor1 nomotion
2020-02-20 23:29:24 HUEDevice FlurSensor1 battery: 97
2020-02-20 23:29:24 HUEDevice FlurSensor1 reachable: 1
2020-02-20 23:29:24 HUEDevice FlurSensor2 reachable: 1
2020-02-20 23:29:24 HUEDevice FlurSensor2 nomotion
2020-02-20 23:29:24 HUEDevice FlurSensor2 battery: 100
2020-02-20 23:29:24 HUEDevice hueBridge1_HUEDevice2 onoff: 0
2020-02-20 23:29:24 HUEDevice hueBridge1_HUEDevice2 pct: 0
2020-02-20 23:29:24 HUEDevice hueBridge1_HUEDevice2 off
2020-02-20 23:29:24 HUEDevice hueBridge1_HUEDevice1 onoff: 0
2020-02-20 23:29:24 HUEDevice hueBridge1_HUEDevice1 pct: 0
2020-02-20 23:29:24 HUEDevice hueBridge1_HUEDevice1 off


Warum auch immer das so sein muss  :o
Synology 220+, Hue, MAX!, Sonoff, Zigbee2Mqtt, Shelly, Tuya

Damian

Zitat von: Moonlightkid am 20 Februar 2020, 23:37:37
... doch nochmal schnell eine neue Nachricht vom Eventmonitor:

2020-02-20 23:29:23 HUEDevice FlurTemp temperature: 18.23
2020-02-20 23:29:23 HUEDevice FlurTemp battery: 100
2020-02-20 23:29:23 HUEDevice FlurTemp reachable: 1
2020-02-20 23:29:23 HUEDevice FlurLicht lightlevel: 0
2020-02-20 23:29:23 HUEDevice FlurLicht 0
2020-02-20 23:29:23 HUEDevice FlurLicht battery: 97
2020-02-20 23:29:23 HUEDevice FlurLicht reachable: 1
2020-02-20 23:29:23 HUEDevice FlurLicht daylight: 0
2020-02-20 23:29:23 HUEDevice FlurLicht dark: 1
2020-02-20 23:29:23 DOIF DoifNachtlicht warning: condition c01: (Missing operator before off?)
2020-02-20 23:29:23 DOIF DoifNachtlicht error: condition c01: syntax error, motion"
2020-02-20 23:29:24 HUEDevice FlurSensor1 nomotion
2020-02-20 23:29:24 HUEDevice FlurSensor1 battery: 97
2020-02-20 23:29:24 HUEDevice FlurSensor1 reachable: 1
2020-02-20 23:29:24 HUEDevice FlurSensor2 reachable: 1
2020-02-20 23:29:24 HUEDevice FlurSensor2 nomotion
2020-02-20 23:29:24 HUEDevice FlurSensor2 battery: 100
2020-02-20 23:29:24 HUEDevice hueBridge1_HUEDevice2 onoff: 0
2020-02-20 23:29:24 HUEDevice hueBridge1_HUEDevice2 pct: 0
2020-02-20 23:29:24 HUEDevice hueBridge1_HUEDevice2 off
2020-02-20 23:29:24 HUEDevice hueBridge1_HUEDevice1 onoff: 0
2020-02-20 23:29:24 HUEDevice hueBridge1_HUEDevice1 pct: 0
2020-02-20 23:29:24 HUEDevice hueBridge1_HUEDevice1 off


Warum auch immer das so sein muss  :o

deswegen: [FlurSensor1] eq motion

Du hast da etwas vergessen ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Moonlightkid

Zitatdeswegen: [FlurSensor1] eq motion

Du hast da etwas vergessen ;)

Booaaaa - ich steh voll auf dem Schlauch! Das steht doch in meinem DOIF drin? 🙈
Synology 220+, Hue, MAX!, Sonoff, Zigbee2Mqtt, Shelly, Tuya

Moonlightkid

Aaaaah, Du meinst es fehlt ein DOELSE? Weil der Bewegungsmelder zwei Zustände annehmen kann?
Ich hab das attr DO ALWAYS gesetzt. Ich will ja nur 0 oder 1  wissen... 🤷🏼‍♂️

Oder meinst Du doch was anderes Damian?
Synology 220+, Hue, MAX!, Sonoff, Zigbee2Mqtt, Shelly, Tuya

Damian

nein, motion soll der Inhalt des Bewegungsmelders sein. Das ist eine Zeichenkette, die muss in Anführungszeichen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Moonlightkid

#7
Hab ich halt nochmal probiert... das erzeugt nur einen Fehler mit "

DEF
(([FlurSensor1] "motion") and ([Tageslicht] Nacht) and ([Spiegel] off)) (set Spiegel on-for-timer 180)
FUUID
MODEL
FHEM
NAME
DoifNachtlicht
NOTIFYDEV
Spiegel,Tageslicht,global,FlurSensor1
NR
114
NTFY_ORDER
50-DoifNachtlicht
STATE
initialized
TYPE
DOIF
VERSION
21224 2020-02-18 18:45:49
Readings
Device
FlurSensor1
cmd
0
e_FlurSensor1_STATE
nomotion
error
condition c01: syntax error, "motion""
mode
enabled
state
initialized
warning
condition c01: (Missing operator before off?)


🤷🏼‍♂️ also ich peil das nicht. Wie ich gaaaaaanz oben beschrieben habe müsste ich ohne " abfragen. Selbst bei einem Irrtum müsste das funktionieren, wenn ich " verwende.

Ich glaube langsam, dass Hue da ne Sicherung eingebaut hat, dass das nicht jeder auslesen kann. Ich hol mal Alufolie und bastel mir jetzt nen Hut... 🤪

So was doofes. Nachher ist es wieder ne Kleinigkeit...

Nacht zusammen, und für die ersten Gedanken auch ein Danke Damian 👍🏻
Synology 220+, Hue, MAX!, Sonoff, Zigbee2Mqtt, Shelly, Tuya

Moonlightkid

Hab noch getüftelt. Durch das Dimmen steht weder on noch off im STATE, sondern auch der Dimmfaktor
z.B. dim06%

Also brauch ich ein größer als 0 als Abfrage 🙈

Jetzt aber gute Nacht...

Grüßle, Ralph
Synology 220+, Hue, MAX!, Sonoff, Zigbee2Mqtt, Shelly, Tuya

Damian

[FlurSensor1] "motion") and ([Tageslicht] Nacht) and ([Spiegel] off)

Jetzt hast du die Vergleichsoperatoren alle weggelassen.

Am besten schaust du noch mal in der Commandref nach der korrekten Syntax:

https://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF