philips hue modul

Begonnen von justme1968, 11 Februar 2013, 13:55:14

Vorheriges Thema - Nächstes Thema

sinus61

Hast du mal bei den Sensoren nachgesehen? Für die Scenen aus HueLabs wurde bei mir auch immer ein Sensor angelegt, damit kann ich die Scene starten und stoppen.

Hier der Raw-Code für Christmas Living

defmod HUE1_Christmas_Living HUEDevice sensor 105 5 IODev=HUE1
attr HUE1_Christmas_Living IODev HUE1
attr HUE1_Christmas_Living group HUESensor
attr HUE1_Christmas_Living icon light_wall_2
attr HUE1_Christmas_Living model HUELABSVTOGGLE
attr HUE1_Christmas_Living setList start:{"status": 1 }\
stop:{"status": 0 }



SirMarco

#1861
Du bist der Beste!! :)

Danke

Für was steht denn die "5" im define?
defmod HUE1_Christmas_Living HUEDevice sensor 105 5 IODev=HUE1

sinus61

Das ist das Interval wie oft der Zustand des Sensors gepollt wird. Kann man hier sicher auch höher setzen, das Ergebnis sieht man ja an den Lampen.

sinus61

@justme1968

Gibt es eine Möglichkeit an Lampen einen Json String zu senden, ähnlich wie bei Sensoren?
Siehe hier das Thema zur Lidl Lichterkette: https://forum.fhem.de/index.php/topic,124785.0.html

Im Prinzip geht es dort um eine Erweiterung des effect Befehls
{"effect": "flag", "effectSpeed": 10, "effectColours": [[255,0,0],[0,255,0],[0,0,255]]}

justme1968

#1864
probier mal die angehängte version.

damit kann man dann:

  • beim effect kommando noch json zusätzlich angeben:
       set <name> effect flag {"effectSpeed": 10, "effectColours": [[255,0,0],[0,255,0],[0,0,255]]}
  • in einem set nur json verwenden:
      set <name> {"effect": "flag", "effectSpeed": 10, "effectColours": [[255,0,0],[0,255,0],[0,0,255]]}
das ganze sollte sich auch mit der : syntax für verkette kommandos verwenden lassen. also so etwas:
  set <name> {"hue": 0} : on : bri 15 : {"irgendwas: 123}

spätere parameter überschreiben dabei frühere mit gleichem namen und das ganze wird in einem rutsch zur bridge gesendet.

ich weiss nicht ob ich dabei vielleicht irgendwo probleme oder ein anderes verhalten beim parsen eingebaut habe. bitte das ganze auch mit 'komischen' kombinationen wie langen Verkettungen, gemischter syntax und dingen wie on-till testen. wobei letzteres auch bisher nur alleine sinnvoll funktioniert hat.

edit 2021-12-17: die version ist jetzt eingecheckt
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

sinus61

Bei der ersten Option kommt wenn die Kette aus ist
parameter, effect, is not modifiable. Device is set to off.
Normalerweise hatte sich die Kette mit dem effect Befehl auch eingeschaltet.
Wenn man sie vorher einschaltet funktioniert es aber die Effekte so zu verändern.

Die zweite Möglichkeit funktioniert nicht, da kommt immer
missing parameter, effect, for parameter, effectSpeed

justme1968

variante 1: die meldung kommt von der bridge. ich weiss nicht seit wann das so ist. ich vermute irgendeiner der letzen firmware updates. tatsächlich gab es im code bisher kein automatisches on für effekt. das habe ich jetzt eingebaut.

das on kann man auch per : mit schicken. also z.b. set HUEDevice1 on : effect xyz { "para": wert }.

variante 2: habe ich repariert. das sollte jetzt wirklich gehen. bei dieser variante muss man das on im json mitgeben: set HUEDevice1 {"on":true,"effect":"xyz"} oder wie im beispiel oben per : set HUEDevice1 on : {"effect":"xyz"}. wie gesagt sollten sich alle varianten ziemlich frei kombinieren lassen.

die neue version gibt es zwei post weiter oben.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

sinus61

Danke, funktioniert jetzt beides sehr gut. Nebenwirkungen konnte ich bisher keine feststellen, alles andere läuft auch wie bisher.

Einziges Problem bei der Version jetzt, jeder Befehl wird so ins Log geschrieben, auch wenn verbose nicht oder auf 0 gesetzt wird.

2021.12.16 10:03:50 1: $VAR1 = {
          'hue' => 0,
          'on' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
          'bri' => 15
        };

justme1968

sehr schön. die log nachricht hatte ich absichtlich noch drin gelassen falls es noch probleme gibt.

es wäre schön wenn sich noch ein oder zwei tester finden würden. dann checke ich es ein.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

juemuc

Hallo,

bei mir tauchen mit dieser Version folgende Zeilen im Log nach einem restart auf:

2021.12.16 19:48:40 1: {
  'on' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
}

2021.12.16 19:48:41 1: {
  'on' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
}

2021.12.16 19:49:40 1: {
  'on' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
}


Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

juemuc

Hallo justme1968,

die Meldungen kommen unregelmäßig. keine Ahnung warum.

2021.12.16 20:25:45 1: {
  'on' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
}

2021.12.16 20:59:30 1: {
  'on' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
}

2021.12.16 21:04:40 1: {
  'on' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
}

2021.12.16 21:09:04 1: {
  'on' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
}

2021.12.16 21:49:30 1: {
  'on' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
}

2021.12.16 22:19:10 1: {
  'on' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
}


Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

justme1968

Zitat von: justme1968 am 16 Dezember 2021, 10:17:03
die log nachricht hatte ich absichtlich noch drin gelassen falls es noch probleme gibt.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

sinus61

Eine Einschränkung beim Verketten von Befehlen gibt es aber doch. Wenn ich effect benutze kann ich nicht gleichzeitig sowas wie bri und sat verändern.

Hab es mal direkt mit dem RESTclient abgesetzt.
Das geht:
{ "bri": 20, "sat":20 }
Das auch:
{ "on": true, "effect": "glow" }
Aber das nicht:
{ "on": true, "bri": 39, "sat":39, "effect": "glow" }
Hier wird bri und sat nicht beachtet.

Aus FHEM funktioniert das Verketten dann halt auch nicht. Aus einem notify mache ich das daher so, dann geht es:
set Kette bri 254;sleep 1;set Kette effect glow

Das liegt aber wohl an der speziellen Umsetzung innerhalb von Deconz für die Lidl Kette.

Die Tint Lampen von Müller Licht haben ja auch alle eingebaute Effekte, da funktioniert sowas hier:

set Lampe bri 80 : { "effect": "romance" }

justme1968

#1873
ich bin mir ziemlich sicher das das nicht an fhem bzw. dem modul liegt. ich denke eher das diese speziellen lampen beim starten eines effekt alles andere ignorieren.

kannst du bei laufendem effekt nachträglich die helligkeit ändern? d.h. dein sleep beispiel aber mit umgekehrter reihenfolge?

ansonsten: beim verketten ist es (fast) egal was also kommando, was mit : und was mit json geschickt wird. pro set wir alles der reihe nach ins gleiche json objekt geschrieben und als ganzes auf einmal zur bridge geschickt. dabei überschreiben spätere werte gleiche werte die vorher gekommen sind. deshalb fast.

wenn es tatsächlich zwei getrennte api aufrufe sein müssen muss man zwei set kommandos verwenden. das sollte auch ohne sleep gehen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

sinus61

Zitat von: justme1968 am 17 Dezember 2021, 12:13:13
kannst du bei laufendem effekt nachträglich die helligkeit ändern? d.h. dein sleep beispiel aber mit umgekehrter reihenfolge?

Nein. Wenn ein Effekt eingeschaltet ist und man ändert die Helligkeit, aus FHEM oder per RESTclient, wird der Effekt abgeschaltet. Die Helligkeit muss also vorher eingestellt werden und ohne sleep dazwischen funktioniert es nicht zuverlässig.

Es düfte aber hier tatsächlich an der speziellen Umsetzung in Deconz für diese Kette liegen. Wenn ich das auf Github richtig verstehe wird das alles nur in eine Tuya Funktion umgesetzt, die API weiß hinterher nicht mehr was sie da abgeschickt hat, daher kann man außer dem Effektnamen hinterher auch nichts von den erweiterten Optionen auslesen.

Wie gesagt, bei den Tint Lampen funktioniert das alles mit effect und den Kombinationen.