Prüfen ob irgendein HUE Licht an ist

Begonnen von yep_DD, 26 Oktober 2018, 19:48:27

Vorheriges Thema - Nächstes Thema

yep_DD

Hallo zusammen,

gibt es eine Möglichkeit durch alle erkannten HUE Lichter zu iterieren um zu Prüfen ob irgendeines an ist? Die HUEBridge ist bei mir ganz normal eingebunden und alle devices werden angezeigt.

Liebe Grüße

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

yep_DD

Super, vielen lieben Dank. Sagen wir, ich möchte ein DoIf ausführen wenn irgendein HUE Licht aktiv ist, in meinem Fall:

define MonitorOnPresence DOIF ([JemandDa] eq "present" and [HIER_DIE_HUE_PRÜFUNG]) ({GetHttpFile("10.0.1.49:8000", "/on");return undef})

wie könnte ich das am einfachsten realisieren?

CoolTux

Ich persönlich würde dann eher alle Hue Devices in eine Struktur packen. Dann siehst auch gleich sobald eines an geschalten wurde.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

yep_DD

Leider bin ich im Thema FHEM noch nicht wirklich so firm. Kann ich die HUE Devices alle zusammen in eine Struktur packen und neue Devices darin automatisch ebenfalls hinzufügen wenn welche dazukommen?

betateilchen

Zitat von: yep_DD am 26 Oktober 2018, 20:05:29
Leider bin ich im Thema FHEM noch nicht wirklich so firm.

Das ist nicht schlimm, dafür gibt es ja die Doku. Nimm Dir einfach die Zeit, das zu lesen ("help structure") dann erledigen sich Deine Fragen von ganz alleine.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

yep_DD

Fair enough....

ich habe jetzt eine HUE Strucure angelegt und die devices damit: addstruct HUEState TYPE=HUEDevice:FILTER=onoff=1 hinzugefügt.

Jetzt müsste ich doch mit:

attr HUEState clientstate_behavior relative
attr HUEState clientstate_priority on off


[HUEState] eq "on" oder eben off müsste ja jetzt mein gewünschtes Verhalten widerspiegeln? Bin ich auf dem richtigen Weg?


CoolTux

sieht doch gut aus. wenn du Dimmer ist kommt noch ne kleine Herausforderung, sonst passt das aber
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

yep_DD

#8
Ja, das ist das Problem, es sind ca. 30 Lampen, 5 Dimmer Switches und alle in verschiedenen Räumen und Konfigurationen. Ich sehe noch nicht, wie es passt. In der Lösung jetzt kann ich alle Lampen aus- und wieder einschalten. Aber auslesen als single read "off" / "on", weiß ich nicht wie es geht. Ich müsste den Status jeder einzelnen Lampe "dimxx%" zu on setzen und alles andere wäre off?

Markus M.

Einfach nur WTF?!?  :o
Ihr müsst dafür überhaupt nichts machen, dafür gibt es ein Reading!
ReadingsVal("HUEGroup0","any_on","?")
Aktuell weder Smarthome noch FHEM vorhanden

yep_DD

#10
Hi Markus,

okay.... also wären alle Lampen ja über "Lightset 0" (HueGroup0) standardmäßig definiert? Gedimmte Lampen sind auch abgedeckt?

Grüße

Markus M.

Das ist die interne Gruppe der Bridge für alle Lampen.
Sobald nicht alles komplett aus ist, sollte da eine 1 stehen.
Aktuell weder Smarthome noch FHEM vorhanden

yep_DD

#12
okay, ich habe jetzt folgendes versucht, könnte das klappen?

([JemandDa] eq "absent" or ([HUEGroup0:any_on eq "0"] and [?{sunset("HORIZON=+6.0")}-{sunrise("HORIZON=+6.0")}])) ({GetHttpFile("10.0.1.49:8000", "/off");;return undef})


edit: geschweifte klammern um sunset/sunrise

es geht mir da um den HUEGroup und sunset / sunrise Teil. Wenn also alle Lampen aus sind und es zwischen Sonnenauf- und untergang ist, soll das Command ausgeführt werden.

OdfFhem

In der Hilfe zu HUEDevice steht u.a.
ZitatGroups are updated only on definition and statusRequest

Bei mir war der Timestamp für all_on bzw. any_on dann auch tatsächlich mehrere Monate alt.

Daher scheinen diese Readings im vorliegenden Fall zunächst eher ungeeignet ...

binford6000

ZitatDaher scheinen diese Readings im vorliegenden Fall zunächst eher ungeeignet ...
Sehe ich auch so. Structure ist die bessere Wahl. Also:
defmod HUEState structure room TYPE=HUEDevice
attr HUEState clientstate_behavior relative
attr HUEState clientstate_priority on|On|ON off|Off|OFF


Ein HUEDevice als Beispiel für room_map. Das brauchst du um den state dim... der HUEs auf on|off zu mappen:
defmod wz_kugel_licht HUEDevice 9 IODev=moebHUEs
attr wz_kugel_licht userattr room_map structexclude
attr wz_kugel_licht room_map onoff:[1]{1}:on onoff:[0]{1}:off

Die structure geht auf on wenn mind. ein HUEDevice auf on ist. Und auf off wenn alle HUEs off sind.

Also dann für dein DOIF:
([JemandDa] eq "absent" or ([HUEState] eq "on"]...
VG Sebastian