Hallo,
ich habe das Problem, dass es nicht möglich ist, die Farbe meiner Living Colors (LLC001) Lampe zu ändern. Per HUE App ist die Lampe (meistens) steuerbar.
Ich habe gelesen, das die Steuerung der älteren Modelle nicht über xy sondern nur mit bri sat und hue funktionieren.
Ist das 31_HUEDevice Modul in der Lage das zu berücksichtigen? Ich habe im Quelltext das Wort LLC001 nur einmal gefunden.
Vom Frontend wird im Falle einer Farbauswahl ja "set HUEDevice12 rgb 00ff00" gesendet? Ich vermute, dass in HUEDevice_SetParam noch eine Weiche für die LLC001 eingebaut werden muß, oder kann man einfach zusätzlich "hue" setzen?
31_HUEDevice.pm:310
$obj->{'on'} = JSON::true;
$obj->{'xy'} = [0+$x, 0+$y];
$obj->{'hue'} = ???;
$obj->{'bri'} = int(254*$bri);
Hier das Device:
define HUEDevice12 HUEDevice 12
attr HUEDevice12 IODev HUE
attr HUEDevice12 alias Büro Living Colors
attr HUEDevice12 devStateIcon {(HUEDevice_devStateIcon($name),"toggle")}
attr HUEDevice12 fp_wohnung 85,380,2,Büro Living Colors
attr HUEDevice12 room Raum_Buero
attr HUEDevice12 model LLC001
attr HUEDevice12 color-icons 1
attr HUEDevice12 subType colordimmer
attr HUEDevice12 webCmd rgb:rgb ff0000:rgb DEFF26:rgb 0000ff:toggle:on:off
Grüße und Danke,
mapovi
im modul wird zur zeit die ansteuerung nicht nach modell unterschieden sondern davon ausgegangen das sie bridge das richtige tut.
wenn es mit der hue app nicht wirklich zuverlässig funktioniert ist deine lc vielleicht wirklich zu alt.
man kann hue nicht zusätzlich setzen bzw parameter aus den unterschiedlichen farbräumen in einem set mischen.
aber du kannst sie direkt benutzen. funktioniert es denn wenn du bri,hue und sat über das fhem modul verwendest? das geht direkt 1:1 an die bridge.
gruss
andre
Zitatfunktioniert es denn wenn du bri,hue und sat über das fhem modul verwendest?
Ja, das funktioniert. Deswegen dachte ich ja, dass man in das Modul evtl. noch eine Modelweiche einbauen muß?
$obj->{'on'} = JSON::true;
if( AttrVal($name, "model", "") eq "LLC001" ) {
$obj->{'hue'} = ???;
} else {
$obj->{'xy'} = [0+$x, 0+$y];
}
$obj->{'bri'} = int(254*$bri);
ok.
dir weiche ist aber nicht so einfach. zum einen ist sie nodellbezeichnung bei den neuen modellen die gleiche und die funktionieren ohne änderung und zum anderen müssen hue und co ja erst mal aus rgb berechnet werden.
ich schau mit das mal an.
gruss
andre
Danke!
Hue ist doch das h in HSV/HSL?
use Graphics::ColorObject;
# rgb to hsv
$color = Graphics::ColorObject->new_RGB([$r, $g, $b]);
($h, $s, $v) = @{ $color->as_HSV() };
http://search.cpan.org/~aizvorski/Graphics-ColorObject-0.5.0/ColorObject.pm
PS: Die "hue, bri, sat" Variante sollte doch in allen LLC001 funktionieren? Ich sehe, dass Du auch eine davon hast - seltsam, dass es damit mit xy geht. Auf meiner LC steht unten "Gen2", jedoch war eine ovale Fernbedienung dabei.
Die Lampe selbst, gibt übrigens gar keine modelid preis - das steht nur in meiner Config...
{
"state": {
"on": true,
"bri": 254,
"hue": 12264,
"sat": 0,
"xy": [
0.1535,
0.0853
],
"alert": "none",
"effect": "none",
"colormode": "hs",
"reachable": false
},
"type": "Color light",
"name": "Büro",
"modelid": "",
"swversion": "",
"pointsymbol": {
"1": "none",
"2": "none",
"3": "none",
"4": "none",
"5": "none",
"6": "none",
"7": "none",
"8": "none"
}
}
die ersten lc lampen die offiziell unterstütz werden von der bridge sind die 'echten' LLC001. das sind gen2 mit runder fernbedienung. davon gibt es mindestens zwei modelle und danach die mit 'light link' auf der liste.
ich habe eine gen2 mit runder fernbedienung und eine light link. die gehen beide mit xy.
wenn keine modellbezeichung von der lampe kommt wäre das ein passendes untercheidungskriterium.
nicht das eigentliche berechnen ist das problem sonder es rückwärts und zu allen fhem systemen kompatibel hin zu bekommen. einfach irgendeine perl lib einzubauen würde bei mehreren dutzend Anwendern dazu führen das erst mal gar nichts mehr geht.
gruss
andre
Zitatnicht das eigentliche berechnen ist das problem sonder es rückwärts und zu allen fhem systemen kompatibel hin zu bekommen. einfach irgendeine perl lib einzubauen würde bei mehreren dutzend Anwendern dazu führen das erst mal gar nichts mehr geht.
Habe mal etwas ohne Lib zusammen gestellt (ist wahrscheinlich nicht sehr präzise, tut aber seinen Dienst):
sub max {
splice(@_, ($_[0] > $_[1]) ? 1 : 0, 1);
return ($#_ == 0) ? $_[0] : max(@_);
}
sub min {
splice(@_, ($_[0] > $_[1]) ? 0 : 1, 1);
return ($#_ == 0) ? $_[0] : min(@_);
}
sub rgbToHsv($@) {
my ($r, $g, $b) = @_;
$min = min($r, $g, $b);
$max = max($r, $g, $b);
$delta = $max - $min;
$h = $max;
$s = $max;
$v = int($max / 255 * 100);
if ( $max != 0 ) {
$s = int($delta / $max * 100);
} else {
return (0, 0, 0);
}
if( $r == $max ) {
$h = ( $g - $b ) / $delta;
} elsif( $g == $max ) {
$h = 2 + ( $b - $r ) / $delta;
} else {
$h = 4 + ( $r - $g ) / $delta;
}
$h = int($h * 60);
if( $h < 0 ) {$h += 360};
$h = int($h * 182.0417); # Konvertierung für den HUE Wertebereich (0-65535)
return ($h, $s, $v);
}
ich habe eben eine version eingecheckt die hsv statt xy verwendet wenn keine modelid gesetzt ist.
schau mal ob das bei dir so funktioniert.
gruss
andre
Zitatich habe eben eine version eingecheckt die hsv statt xy verwendet wenn keine modelid gesetzt ist.
Danke!
Ich habe die Datei ausgetauscht und fhem neu gestartet.
Wenn ich die Farbe über "set HUEDevice12 hue 20000" ändere, wird diese jetzt auch im Frontend korrekt angezeigt - das war vorher nicht so.
Wenn ich auf eine der voreingestellten Farben im Frontend klicke, verändert sich auch die Farbe des Feldes (war vorher nicht so)
Die Lichtfarbe der Lampe ändert sich allerdings noch nicht.
Grüße,
matthias
die farbe die im frontend angezeigt wird ist das was die bridge zurück meldet.
ändert sich die farbe der lampe wenn du von Hand hue,sat und bri im frontend verstellst?
gruss
andre
Du meinst die Befehle, die man oben eingeben kann? Ja, das funktioniert
set HUEDevice12 hue 20000
macht das Licht grün. (sat und bri gehen auch)
auch wenn du mehrere set kombinierst?
bitte schalte mal verbose auf 5 und schau ob du einen Unterschied siehst zwischen einem kommando das geht und einem das nicht geht. auch ob sich die readings unterscheiden.
gruss
andre
Bei der nicht funktionierenden:
/fhem?XHR=1&cmd=set%20HUEDevice12%20rgb%20ff0000&room=Raum_Buero / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
Bei der funktionierenden:
/fhem?XHR=1&cmd=set%20HUEDevice4%20rgb%20ff0000&room=Raum_Wohnzimmer / RL:20 / text/plain; charset=UTF-8 / Content- Encoding: gzip
Hier nochmal ausführlicher funktionierend:
2014.04.05 11:09:30 4: HTTP FHEMWEB:192.168.1.69:59270 GET /fhem?XHR=1&cmd=set%20HUEDevice4%20rgb%20DEFF26&room=Raum_Wohnzimmer
2014.04.05 11:09:30 5: Cmd: >set HUEDevice4 rgb DEFF26<
2014.04.05 11:09:30 5: Url: http://192.168.1.40/api/d183a24bb194f14a9cc81e229868f0ee/lights/4/state
2014.04.05 11:09:30 5: HUEBridge_HTTP_Request http://192.168.1.40/api/d183a24bb194f14a9cc81e229868f0ee/lights/4/state: Got data, length: 132
2014.04.05 11:09:30 5: $VAR1 = '[{"success":{"/lights/4/state/on":true}},{"success":{"/lights/4/state/xy":[0.4086,0.5181]}},{"success":{"/lights/4/state/bri":254}}]';
2014.04.05 11:09:30 5: Url: http://192.168.1.40/api/d183a24bb194f14a9cc81e229868f0ee/lights/4
2014.04.05 11:09:30 5: HUEBridge_HTTP_Request http://192.168.1.40/api/d183a24bb194f14a9cc81e229868f0ee/lights/4: Got data, length: 363
2014.04.05 11:09:30 5: $VAR1 = '{"state": {"on":true,"bri":254,"hue":64306,"sat":254,"xy":[0.4086,0.5181],"ct":500,"alert":"none","effect":"none","colormode":"xy","reachable":true}, "type": "Extended color light", "name": "Stehlampe", "modelid": "LCT001", "swversion": "66009663", "pointsymbol": { "1":"none", "2":"none", "3":"none", "4":"none", "5":"none", "6":"none", "7":"none", "8":"none" }}';
2014.04.05 11:09:30 4: parse status message for HUEDevice4
2014.04.05 11:09:30 5: Triggering HUEDevice4 (1 changes)
2014.04.05 11:09:30 5: Notify loop for HUEDevice4 xy: 0.4086,0.5181
2014.04.05 11:09:30 4: eventTypes: HUEDevice HUEDevice4 xy: 0.4086,0.5181 -> xy: .*,.*
2014.04.05 11:09:30 5: Triggering HUEDevice4 (1 changes)
2014.04.05 11:09:30 5: Notify loop for HUEDevice4 RGB: deff26
2014.04.05 11:09:30 4: eventTypes: HUEDevice HUEDevice4 RGB: deff26 -> RGB: deff26
2014.04.05 11:09:30 4: /fhem?XHR=1&cmd=set%20HUEDevice4%20rgb%20DEFF26&room=Raum_Wohnzimmer / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
Nicht funkionierend:
HTTP FHEMWEB:192.168.1.69:59338 GET /fhem?XHR=1&cmd=set%20HUEDevice12%20rgb%200000ff&room=Raum_Buero
2014.04.05 11:10:26 5: Cmd: >set HUEDevice12 rgb 0000ff<
2014.04.05 11:10:26 5: Url: http://192.168.1.40/api/d183a24bb194f14a9cc81e229868f0ee/lights/12/state
2014.04.05 11:10:26 5: HUEBridge_HTTP_Request http://192.168.1.40/api/d183a24bb194f14a9cc81e229868f0ee/lights/12/state: Got data, length: 135
2014.04.05 11:10:26 5: $VAR1 = '[{"success":{"/lights/12/state/on":true}},{"success":{"/lights/12/state/xy":[0.1321,0.0284]}},{"success":{"/lights/12/state/bri":254}}]';
2014.04.05 11:10:26 5: Url: http://192.168.1.40/api/d183a24bb194f14a9cc81e229868f0ee/lights/12
2014.04.05 11:10:26 5: HUEBridge_HTTP_Request http://192.168.1.40/api/d183a24bb194f14a9cc81e229868f0ee/lights/12: Got data, length: 326
2014.04.05 11:10:26 5: $VAR1 = '{"state": {"on":true,"bri":254,"hue":40000,"sat":0,"xy":[0.1321,0.0284],"alert":"none","effect":"none","colormode":"xy","reachable":false}, "type": "Color light", "name": "Büro", "modelid": "", "swversion": "", "pointsymbol": { "1":"none", "2":"none", "3":"none", "4":"none", "5":"none", "6":"none", "7":"none", "8":"none" }}';
2014.04.05 11:10:26 4: parse status message for HUEDevice12
2014.04.05 11:10:26 5: Triggering HUEDevice12 (1 changes)
2014.04.05 11:10:26 5: Notify loop for HUEDevice12 xy: 0.1321,0.0284
2014.04.05 11:10:26 4: eventTypes: HUEDevice HUEDevice12 xy: 0.1321,0.0284 -> xy: .*,.*
2014.04.05 11:10:26 5: Triggering HUEDevice12 (1 changes)
2014.04.05 11:10:26 5: Notify loop for HUEDevice12 RGB: 0000f9
2014.04.05 11:10:26 4: eventTypes: HUEDevice HUEDevice12 RGB: 0000f9 -> RGB: 0000f9
2014.04.05 11:10:26 4: /fhem?XHR=1&cmd=set%20HUEDevice12%20rgb%200000ff&room=Raum_Buero / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
Da wird immer noch xy gesetzt? {"success":{"/lights/12/state/xy":[0.1321,0.0284]}}
hast du das attribut model gelöscht?
ja, habe ich.
define HUEDevice12 HUEDevice 12
attr HUEDevice12 IODev HUE
attr HUEDevice12 alias Büro Living Colors
attr HUEDevice12 comment {"preset1":{"colormode":"xy","bri":"0","xy":"0.4864,0.3865"}}
attr HUEDevice12 devStateIcon {(HUEDevice_devStateIcon($name),"toggle")}
attr HUEDevice12 fp_roonstrasse 85,380,2,Büro Living Colors
attr HUEDevice12 room Raum_Buero
#attr HUEDevice12 model LLC001
attr HUEDevice12 color-icons 0
attr HUEDevice12 subType colordimmer
attr HUEDevice12 webCmd rgb:rgb ff0000:rgb DEFF26:rgb 0000ff:toggle:on:off
mach mal bitte ein list auf das device. was steht bei den attributen?
Internals:
CHANGED
DEF 12
ID 12
INTERVAL 60
IODev HUE
NAME HUEDevice12
NR 155
STATE off
TYPE HUEDevice
modelid
name Büro
swversion
type Color light
Readings:
2014-04-05 11:07:03 alert none
2014-04-05 11:07:08 bri 254
2014-04-05 11:07:08 colormode xy
2014-04-05 11:07:03 effect none
2014-04-05 11:07:03 hue 40000
2014-04-05 11:07:08 level 100 %
2014-04-05 11:07:03 onoff 1
2014-04-05 11:07:08 pct 100
2014-04-05 11:07:03 reachable 0
2014-04-05 11:07:03 sat 0
2014-04-05 11:07:03 state off
2014-04-05 11:10:26 xy 0.1321,0.0284
Helper:
RGB 0000f9
alert none
bri 254
colormode xy
ct
effect none
group
hue 40000
interfaces dimmer
percent 100
sat 0
update_timeout 0
xy 0.1321,0.0284
Attributes:
IODev HUE
alias Büro Living Colors
color-icons 0
comment {"preset1":{"colormode":"xy","bri":"0","xy":"0.4864,0.3865"}}
devStateIcon {(HUEDevice_devStateIcon($name),"toggle")}
fp_roonstrasse 85,380,2,Büro Living Colors
model LLC001
room Raum_Buero
subType colordimmer
webCmd rgb:rgb ff0000:rgb DEFF26:rgb 0000ff:toggle:on:off
Edit:
Da steht immer noch as model - ich muß das mal prüfen...
Edit:
Es funktioniert! Das Problem war in der Tat die modelid. Ich hatte meinen SFTP-Client über Nacht an und der hatte die Änderungen an der cfg aufgrund einer verloren Verbindung nicht gespeichert.
Danke für Deine Hilfe und ein schönes Wochenende!
das heisst es geht jetzt alles?
sehr schön.
gruss
andre
Ja, es geht alles (Farbfeld, voreingestellte Werte, im Floorplan).
Grüße,
Matthias