Autor Thema: HUEGroup Readings state und pct  (Gelesen 5122 mal)

Offline igami

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2414
  • RTFM
    • commandref
HUEGroup Readings state und pct
« am: 28 Dezember 2017, 09:36:46 »
Es haben sich schon mehrere Leute darüber geärgert, dass die HUEGroups keine Readings haben (Ich selbst gehöre auch dazu).
Deshalb habe ich mich nun hingesetzt und ein notify geschrieben, welches state und pct auf die HUEGroup überträgt, wenn eine Lampe ein Event pct sendet.
Das Reading pct wird dabei als durchschnitt aller Lampen ermittelt. Ist nur eine von 2 Lampen auf 100 % eingeschaltet hat die Gruppe einen Wert von 50 %.

Hier der Code als Raw definition
defmod HUE_LightGroup_Status notify .+:pct:..+ {\
  my $ID = InternalVal($NAME, "ID", "");;\
  \
  return unless($TYPE eq "HUEDevice" && looks_like_number($ID));;\
  \
  my ($group) = devspec2array("TYPE=HUEDevice:FILTER=type=LightGroup:FILTER=lights=(^|.+\\D)$ID(\\D.+|\$)");;\
  \
  return unless($group);;\
  \
  my $hash = $defs{$group};;\
  my $lights = InternalVal($group, "lights", "");;\
  my $count = int(split(",", $lights));;\
  $lights =~ s/,/|/g;;\
  my $pct;;\
  $pct += (split(/[\s]+/, $_))[3]\
    foreach (split("\n", fhem("list TYPE=HUEDevice:FILTER=ID=$lights pct", 1)));;\
  $pct /= $count;;\
  \
  readingsBeginUpdate($hash);;\
  readingsBulkUpdate($hash, "pct", $pct);;\
  readingsBulkUpdate($hash, "state", $pct == 0 ? "off" : "on");;\
  readingsEndUpdate($hash, 1);;\
  \
  return;;\
}
attr HUE_LightGroup_Status devStateIcon {ReadingsVal($name, "state", "inactive") eq "active" ? ".*:ios-on-blue:inactive" : ".*:ios-off:active"}
attr HUE_LightGroup_Status group HUE
attr HUE_LightGroup_Status icon light_light_dim_70
attr HUE_LightGroup_Status room helper
Pi3 mit fhem.cfg + DbLog/logProxy
FHEM Module: archetype, Heating_Control, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap, RandomTimer, Twilight, WeekdayTimer
FHEM Module ToDo: Babel, FluxLED, HABridgeUpdater

Offline Gasmast3r

  • Full Member
  • ***
  • Beiträge: 357
Antw:HUEGroup Readings state und pct
« Antwort #1 am: 28 Dezember 2017, 11:20:51 »
Es haben sich schon mehrere Leute darüber geärgert, dass die HUEGroups keine Readings haben (Ich selbst gehöre auch dazu).
Deshalb habe ich mich nun hingesetzt und ein notify geschrieben, welches state und pct auf die HUEGroup überträgt, wenn eine Lampe ein Event pct sendet.
Das Reading pct wird dabei als durchschnitt aller Lampen ermittelt. Ist nur eine von 2 Lampen auf 100 % eingeschaltet hat die Gruppe einen Wert von 50 %.

Hier der Code als Raw definition
defmod HUE_LightGroup_Status notify .+:pct:..+ {\
  my $ID = InternalVal($NAME, "ID", "");;\
  \
  return unless($TYPE eq "HUEDevice" && looks_like_number($ID));;\
  \
  my ($group) = devspec2array("TYPE=HUEDevice:FILTER=type=LightGroup:FILTER=lights=(^|.+\\D)$ID(\\D.+|\$)");;\
  \
  return unless($group);;\
  \
  my $hash = $defs{$group};;\
  my $lights = InternalVal($group, "lights", "");;\
  my $count = int(split(",", $lights));;\
  $lights =~ s/,/|/g;;\
  my $pct;;\
  $pct += (split(/[\s]+/, $_))[3]\
    foreach (split("\n", fhem("list TYPE=HUEDevice:FILTER=ID=$lights pct", 1)));;\
  $pct /= $count;;\
  \
  readingsBeginUpdate($hash);;\
  readingsBulkUpdate($hash, "pct", $pct);;\
  readingsBulkUpdate($hash, "state", $pct == 0 ? "off" : "on");;\
  readingsEndUpdate($hash, 1);;\
  \
  return;;\
}
attr HUE_LightGroup_Status devStateIcon {ReadingsVal($name, "state", "inactive") eq "active" ? ".*:ios-on-blue:inactive" : ".*:ios-off:active"}
attr HUE_LightGroup_Status group HUE
attr HUE_LightGroup_Status icon light_light_dim_70
attr HUE_LightGroup_Status room helper
Hy ich bin nicht gut im Code lesen wo trage ich überall meine zugehörigen hue nummern ein

Gesendet von meinem SM-G950F mit Tapatalk


Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17720
Antw:HUEGroup Readings state und pct
« Antwort #2 am: 28 Dezember 2017, 11:48:36 »
hallo igami,

die idee ist gut.wenn es ein paar stimmen dafür gibt würde ich es etwas angepasst in die hue module übernehmen.

bedingung: es gibt nicht zu viele sonderwünsche in richtung minimum, durchschnitt, maximum, farbe, ... :)

gruss
  andre
« Letzte Änderung: 28 Dezember 2017, 15:06:33 von justme1968 »
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH
Zustimmung Zustimmung x 1 Liste anzeigen

Offline igami

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2414
  • RTFM
    • commandref
Antw:HUEGroup Readings state und pct
« Antwort #3 am: 28 Dezember 2017, 13:44:13 »
Hy ich bin nicht gut im Code lesen wo trage ich überall meine zugehörigen hue nummern ein
Ist nicht notwendig, dass notify prüft für alle HUEDevices ob diese in einer Gruppe sind. Falls ja werden die Readings in die Gruppe geschrieben.

hallo igami,

die idee ist gut.wenn es ein paar stimmen dafür gibt würde ich es etwas angepasst in die hui module übernehmen.

bedingung: es gibt nicht zu viele sonderwünsche in richtung minimum, durchschnitt, maximum, farbe, ... :)

gruss
  andre
Ich habe selbst nur white und eine white ambiance im Einsatz, da müssen sich andere zu äußern.
Bei mir ist es auch so, dass ich nur Gruppen im Einsatz habe, wenn ich mehrere Leuchtmittel in einer Lampe im Einsatz habe (z.B. das klassische drei-flammige Deckenrondell)

Ich würde mich freuen, wenn es direkt in das HUE Modul integriert wird. Dadurch sollte das System auch wieder entlastet werden, da ja mit meinem notify bei allen pct Events geprüft wird ob es sich um HUE handelt.
Pi3 mit fhem.cfg + DbLog/logProxy
FHEM Module: archetype, Heating_Control, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap, RandomTimer, Twilight, WeekdayTimer
FHEM Module ToDo: Babel, FluxLED, HABridgeUpdater
Zustimmung Zustimmung x 1 Liste anzeigen

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17720
Antw:HUEGroup Readings state und pct
« Antwort #4 am: 28 Dezember 2017, 15:11:24 »
dann lass uns doch einfach mal sammeln was sinnvoll ist.

mein vorschlag wäre:
- pct aller lampen in der gruppe konfigurierbar als minimum, mittelwert oder maximum
- farbtemperatur genau so, konfigurierbar als minimum, mittelwert oder maximum der einzelnen lampen
- hue könnte man vermutlich halbwegs korrekt aus den beteiligten lampen mischen

das würde den fall einer lampe mit mehreren leuchtmitteln vermutlich schon komplett abdecken.

wie schaut es mit gruppen aus die z.b. für einen raum verwendet werden? passt das da auch?
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline somansch

  • New Member
  • *
  • Beiträge: 48
Antw:HUEGroup Readings state und pct
« Antwort #5 am: 28 Dezember 2017, 16:31:31 »
Wün
hallo igami,

die idee ist gut.wenn es ein paar stimmen dafür gibt würde ich es etwas angepasst in die hue module übernehmen.

bedingung: es gibt nicht zu viele sonderwünsche in richtung minimum, durchschnitt, maximum, farbe, ... :)

gruss
  andre

Würde mich auch über eine offizielle Anpassung freuen.

Danke und Gruß
Andreas
Zustimmung Zustimmung x 1 Liste anzeigen

Offline tpm88

  • Full Member
  • ***
  • Beiträge: 360
Antw:HUEGroup Readings state und pct
« Antwort #6 am: 28 Dezember 2017, 20:31:39 »
+1 zur offiziellen Übernahme


Mobil gesendet, darum kurz...
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on CubieTruck, HM-USB, JeeLink
DB Logging FHEM Server on QNAP NAS
Devices: diverse HM, IT1500, 1wire via AVR NetIO, LaCrosse

Offline Mave

  • Full Member
  • ***
  • Beiträge: 387
Antw:HUEGroup Readings state und pct
« Antwort #7 am: 02 Januar 2018, 11:38:57 »
Ins offizielle Modul damit....ich bin dafür.


Offline igami

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2414
  • RTFM
    • commandref
Antw:HUEGroup Readings state und pct
« Antwort #8 am: 02 Januar 2018, 12:55:05 »
- pct aller lampen in der gruppe konfigurierbar als minimum, mittelwert oder maximum
- farbtemperatur genau so, konfigurierbar als minimum, mittelwert oder maximum der einzelnen lampen
Bei nicht gesetztem Attribut dann bitte den Mittelwert verwenden.

- hue könnte man vermutlich halbwegs korrekt aus den beteiligten lampen mischen
Ist das dann auch ein Mittelwert?

wie schaut es mit gruppen aus die z.b. für einen raum verwendet werden? passt das da auch?
Für Räume würde ich das nicht implementieren, wenn jemand das wünscht kann er sich das ja als Gruppe anlegen. Wenn du anderer Meinung bist einfach analog handhaben.
Pi3 mit fhem.cfg + DbLog/logProxy
FHEM Module: archetype, Heating_Control, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap, RandomTimer, Twilight, WeekdayTimer
FHEM Module ToDo: Babel, FluxLED, HABridgeUpdater

Offline Mave

  • Full Member
  • ***
  • Beiträge: 387
Antw:HUEGroup Readings state und pct
« Antwort #9 am: 02 Januar 2018, 18:20:05 »
Es haben sich schon mehrere Leute darüber geärgert, dass die HUEGroups keine Readings haben (Ich selbst gehöre auch dazu).
Deshalb habe ich mich nun hingesetzt und ein notify geschrieben, welches state und pct auf die HUEGroup überträgt, wenn eine Lampe ein Event pct sendet.
Das Reading pct wird dabei als durchschnitt aller Lampen ermittelt. Ist nur eine von 2 Lampen auf 100 % eingeschaltet hat die Gruppe einen Wert von 50 %.

Hier der Code als Raw definition
defmod HUE_LightGroup_Status notify .+:pct:..+ {\
  my $ID = InternalVal($NAME, "ID", "");;\
  \
  return unless($TYPE eq "HUEDevice" && looks_like_number($ID));;\
  \
  my ($group) = devspec2array("TYPE=HUEDevice:FILTER=type=LightGroup:FILTER=lights=(^|.+\\D)$ID(\\D.+|\$)");;\
  \
  return unless($group);;\
  \
  my $hash = $defs{$group};;\
  my $lights = InternalVal($group, "lights", "");;\
  my $count = int(split(",", $lights));;\
  $lights =~ s/,/|/g;;\
  my $pct;;\
  $pct += (split(/[\s]+/, $_))[3]\
    foreach (split("\n", fhem("list TYPE=HUEDevice:FILTER=ID=$lights pct", 1)));;\
  $pct /= $count;;\
  \
  readingsBeginUpdate($hash);;\
  readingsBulkUpdate($hash, "pct", $pct);;\
  readingsBulkUpdate($hash, "state", $pct == 0 ? "off" : "on");;\
  readingsEndUpdate($hash, 1);;\
  \
  return;;\
}
attr HUE_LightGroup_Status devStateIcon {ReadingsVal($name, "state", "inactive") eq "active" ? ".*:ios-on-blue:inactive" : ".*:ios-off:active"}
attr HUE_LightGroup_Status group HUE
attr HUE_LightGroup_Status icon light_light_dim_70
attr HUE_LightGroup_Status room helper


Hallo igami,

vielen Dank für Dein geniales Notify.

Dein notify funktioniert super bei meiner Gruppe "alle HUE Devices", das automatisch angelegt wurde.

Bei einer neu angelegten Gruppe mit 5 HUE Lampen wird der Status von pct aber leider nicht aktualisiert und ich weiß nicht mehr, wo ich noch suchen muß.

Über Unterstützung würde ich mich sehr freuen.

Vielen Dank.

Grüße Mave


PS: Den einzigen Unterschied zwischen den beiden Gruppen den ich erkennen kann, ist das Internal "name". Bei der Gruppe "alle HUE Devices" ist "name" "Group 0" und bei meiner neu angelegten Gruppe "wz_Wohnen".
« Letzte Änderung: 02 Januar 2018, 18:29:57 von Mave »

Offline igami

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2414
  • RTFM
    • commandref
Antw:HUEGroup Readings state und pct
« Antwort #10 am: 02 Januar 2018, 18:33:24 »
Bitte ein list von der Gruppe wo es nicht funktioniert
Pi3 mit fhem.cfg + DbLog/logProxy
FHEM Module: archetype, Heating_Control, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap, RandomTimer, Twilight, WeekdayTimer
FHEM Module ToDo: Babel, FluxLED, HABridgeUpdater

Offline Mave

  • Full Member
  • ***
  • Beiträge: 387
Antw:HUEGroup Readings state und pct
« Antwort #11 am: 02 Januar 2018, 18:34:42 »
Internals:
   CHANGED   
   DEF        group 16  IODev=HUE
   ID         G16
   INTERVAL   
   IODev      HUE
   NAME       HUEGroup16
   NR         245
   STATE      on
   TYPE       HUEDevice
   desired    1
   lights     4,5,6,7,9,12,13,14
   name       wz_Wohnen
   type       LightGroup
   READINGS:
     2018-01-02 18:16:51   all_on          1
     2018-01-02 18:03:09   any_on          1
     2018-01-02 17:29:05   pct             70
     2018-01-02 17:29:05   state           on
   helper:
     devtype    G
     update_timeout 1
Attributes:
   IODev      HUE
   alexaName  Licht
   alexaRoom  Wohnzimmer
   alias      wz_Wohnen
   color-icons 2
   delayedUpdate 1
   devStateIcon {(HUEDevice_devStateIcon($name),"toggle")}
   genericDeviceType light
   group      Licht
   icon       light_light
   room       Wohnzimmer
   webCmd     pct:on:off

Offline Mave

  • Full Member
  • ***
  • Beiträge: 387
Antw:HUEGroup Readings state und pct
« Antwort #12 am: 02 Januar 2018, 18:36:46 »
Habe gerade festgestellt, dass auch die Gruppe Küchenlicht, wo die Deckenlampe aus zwei HUE Lampen besteht, nicht aktualisiert wird.

Immerhin wurden ja in meiner neuen Gruppe wz_Wohnen ja schonmal die Readings state und pct angelegt. Bei der Gruppe Küchenlicht gibt es die Readings noch nicht.

Internals:
   CHANGED   
   DEF        group 1  IODev=HUE
   ID         G1
   INTERVAL   
   IODev      HUE
   NAME       HUEGroup1
   NR         41
   STATE      0
   TYPE       HUEDevice
   class      Kitchen
   desired    0
   lights     1,3
   name       Kueche Decke
   type       Room
   READINGS:
     2018-01-02 18:13:05   all_on          0
     2018-01-02 18:35:35   any_on          0
   helper:
     devtype    G
     update_timeout 1
Attributes:
   IODev      HUE
   alexaName  Licht
   alexaRoom  Küche
   alias      Kueche Decke
   color-icons 2
   delayedUpdate 1
   devStateIcon 0:off 1:on
   genericDeviceType light
   group      Licht
   icon       hue_room_kitchen
   room       Kueche
   sortby     1
   stateFormat any_on
   webCmd     pct:on:off

Offline igami

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2414
  • RTFM
    • commandref
Antw:HUEGroup Readings state und pct
« Antwort #13 am: 02 Januar 2018, 20:49:55 »
HUEGroup16 hat doch die readings.
Das andere ist vom internal type (Achtung,klein geschrieben) ein room, darauf guckt das notify nicht
Pi3 mit fhem.cfg + DbLog/logProxy
FHEM Module: archetype, Heating_Control, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap, RandomTimer, Twilight, WeekdayTimer
FHEM Module ToDo: Babel, FluxLED, HABridgeUpdater

Offline Mave

  • Full Member
  • ***
  • Beiträge: 387
Antw:HUEGroup Readings state und pct
« Antwort #14 am: 02 Januar 2018, 21:28:14 »
Okay, verstanden. Also Zimmer (rooms) werden nicht beachtet, nur selbst in FHEM angelegte Gruppen vom Typ LightGroup.

Aber warum wird pct in der Gruppe HUEGroup16 nicht aktualisiert?
Ich hab keine Ahnung, warum das auf 70 steht. Es steht immer auf 70 und wird nicht aktualisiert.  :-[

 

decade-submarginal