NEWS
Phillips Hue Farbsteuerung über Vis
-
Hallo liebe Leute,
ich bin grade am verzweifeln und komme einfach nicht mehr weiter. Ich hoffe das ihr mir helfen könnt.
Bin noch immer nicht gut was Java angeht und werde einige zusammenhänge wohl nie verstehen, also seid bitte geduldig mit mir.
Folgendes möchte ich gerne verwirklichen:
Ich habe mir ein Blockly zusammen gestückelt was ich im Internet gefunden habe. Dies bewirkt ganz grob das 2 Lampen in einer definierten Farbe blinken.
Dies möchte ich nun durch verschiedene dinge steuern. Also habe ich mir eigene Objekte erstellt: Rot, Grün, Blau, Level, Sättigung und eines zum ein- und ausschalten.Zusätzlich habe ich in meinem VIS ein Color-Rad eingebaut, welches mir die RGB-Objekte steuert und an dem ich die Farbe manuell einstellen kann (und über einen Button auch das blinken starten kann).
Das ganze wollte ich nun über das Blockly auf meine beiden Lampen übertragen lassen, deides Phillips Hue. Hierzu steuere ich die Werte r, g, b, level, sat, on und alert gleichzeitig.
Hier stieß ich auf das Problem (bzw. die Vermutung das es hier ein problem geben könnte), das nur 10 Befehle in 1 sec gesendet werden können. Um das ganze bei 2 Lampen zum laufen zu bekommen benötige ich aber min. 14.
Also dachte ich mir, mach es doch über das command. Hier sollte (meiner logik nach) nur ein Befehl gesendet werden.
Also Blockly umgebaut, aus den werten in den eigenen Objekten eine command Zeile erstellt und schon ein wenig stolz auf mich gewesen! Hat auch fast geklappt, bzw. anfangs hat es das auch. Bis ich versucht habe ein 0,0,255 Blau zu erzeugen (oder Rot oder Grün). Das bekommt Hue oder der Adapter scheinbar nicht hin. Das liegt daran das, warum auch immer, Hue nicht bis 255 im RGB geht, sondern nur bis 254. Gibt man 255 in eines der RGB-Felder einer Hue-Lampe ein springt er auf 254 zurück. Das wäre auch kein großes Problem, wenn er das auch machen würde wenn man den Befehl per command absetzt: tut er aber nicht! Hier scheint er es einfach nicht zu verstehen und macht halt einfach nix.
Tja, also habe ich versucht das ganze auf andere weise zu lösen: leider finde ich werder für das Objekt hue, noch für xy eine möglichkeit diese von normalen RGB umzurechnen. Ja, es gibt eines was ich gefunden habe, aber das bekomme ich nicht vernünftig in ein Blockly hinein, so das er die Werte aus meinen Objekten nimmt und mir einen hue Wert ausspuckt (https://gist.github.com/mjackson/5311256).
Das Problem bei dem ganzen ist, dass mir zwar mein Farb-Rad im Vis auch hue ausgeben kann, nur ich keine hue raus bekomme wenn ich aus einer anderen Quelle, etwa einem anderen Skript, Werte in die RGB-Objekte eintrage. Das Farb-Rad übernimmt zwar die Farben, wandelt diese aber nicht automatisch auch in hue um.
Jetzt hoffe ich, dass ihr eine Idee habt, ich komme einfach nicht mehr weiter.
Gruß
Jan -
@schlumpf said in Phillips Hue Farbsteuerung über Vis:
Ich habe mir ein Blockly zusammen gestückelt
Einfach mal zeigen damit wir die vielen, vielen Sätze auch visualisieren können.
-
@schlumpf sagte: steuere ich die Werte r, g, b, level, sat, on und alert gleichzeitig.
RGB sollte Helligkeit, Farbe und Sättigung vollständig enthalten.
-
Entschuldigt die vielen Sätze, ich bin immer unsicher ob ich verständlich machen kann was ich sagen will.
Ein Bild, kommt sofort:
Allerdings ist das nicht mal unbedingt das entscheidende Problem in meinem, zugegeben etwas langen, Text. Theoretisch funktioniert das Skript ganz gut (abgesehen davon das die beiden Lampen nicht ganz synchron sind).
Das Problem ist, wie bekomme ich die RGB Farben in eine Variante die mit command funktioniert.
Natürlich, wenn jemand eine ganz andere Lösung hat ware ich auch dafür dankbar.
Schwierig wird es halt, wenn ich dann auch noch von 2 verschiedenen Quellen (Farb-Rad und bspw. andere Skripte) Werte bekomme. Gerne würde ich daher sozusagen RGB in ein sinnvolles Format umwandeln was der Hue Adapter / die Hue Bridge / die Hue Lampen lesen/verstehen können.
Wenn ich es richtig verstanden habe ist ja auch generell die RGB Farben die man bei Hue einstellt nicht gleich der die man normal bei RGB raus bekommt, oder?
P.S.: Ach ja, habe im Moment in dem Skript den sat Wert noch ausgeschaltet bzw. setze ihn manuell (immer gleich).
-
@schlumpf sagte: bekomme ich nicht vernünftig in ein Blockly hinein, so das er die Werte aus meinen Objekten nimmt und mir einen hue Wert ausspuckt
Da ich keine Phillips Hue habe: Welche Wertebereiche haben hue und sat?
-
-
@schlumpf sagte: hue: 0-360
und sat meine ich 0-254Dann könnte das Blockly zur Umrechnung so aussehen:
wobei die Funktion rgb2hsv(r, g, b) folgenden Inhalt (aus dem von Dir verlinkten Skript) hat:
r /= 255, g /= 255, b /= 255; var max = Math.max(r, g, b), min = Math.min(r, g, b); var h, s, v = max; var d = max - min; s = max == 0 ? 0 : d / max; if (max == min) { h = 0; // achromatic } else { switch (max) { case r: h = (g - b) / d + (g < b ? 6 : 0); break; case g: h = (b - r) / d + 2; break; case b: h = (r - g) / d + 4; break; } h /= 6; } return [ h, s, v ];
-
@schlumpf said in Phillips Hue Farbsteuerung über Vis:
Zusätzlich habe ich in meinem VIS ein Color-Rad eingebaut, welches mir die RGB-Objekte steuert
Welches Widget in der VIS nutzt Du ? Würde es gerne mal bei mir simulieren.
EDIT:
Ich nutze den HUE-Extended Adapter. Der kann HEX und diese Datenpunkte werden aus meinen Blocklys mit den HEX-Werten gefüttert. Leider hat der Adapter keine einzelnen R/G/B Datenpunkte was aber für mich nicht so relevant ist. Dafür einen RGB Datenpunkt und es werden auch werte bis 255 akzeptiert. -
Scheinbar ist in den RGB Helligkeit und Sättigung nicht mit drin, habe ich zumindest beim eingeben manuell gemerkt.
Sobald ich Zeit habe probier ich die Sachen mal aus und gucke was bei raus kommt.
Adapter: Philips Hue-Bridge
Das Farb-Rad kommt vom color picker style Widget (vis-colorpicker).
-
@schlumpf sagte: Das Farb-Rad kommt vom color picker style Widget (vis-colorpicker).
Dieses?
@schlumpf sagte in Phillips Hue Farbsteuerung über Vis:
Scheinbar ist in den RGB Helligkeit und Sättigung nicht mit drin
Der Ring steuert die Farbe (hue), das Quadrat Helligkeit und Sättigung.
-
Ja genau das meine ich. Bzw. habe ich im Moment das drin, was man antippt um dann eine Farbe auszuwählen, das das Rad in einigen Werten nicht funktioniert.
Ja, die Werte werden ausgegeben. Nur wird die, ich weiß nicht ganz genau, entweder als 0-100 oder 0-255 ausgegeben. Heißt umwandeln damit es von Hue akzeptiert wird (werd ist eigentlich auf die doofe Idee gekommen nur bis 254 zu gehen?).
-
-
Hat, denke ich, funktioniert. Hab noch ne Rundung eingefügt um ganze Zahlen zu bekommen.
Vielen Dank.
P.S.: Kleine Frage, da Ihr scheinbar das Rad auch probiert habt: werden bei euch die Werte unter H.S.L. (HUE, Sättigung und Helligkeit) auch nicht geschrieben? Oder mache ich die ganze Zeit einfach nur irgendwas falsch?