update color picker für HSV mode

Begonnen von justme1968, 05 Juli 2016, 00:41:21

Vorheriges Thema - Nächstes Thema

justme1968

mit dem update nachher ist es möglich den colorpicker auch im HSV mode zu betreiben. hierzu werden dann drei slider für h, s und v dargestellt.

die verwendung ist hier: http://www.fhemwiki.de/wiki/Color#HSV_Farbe beschrieben.

ACHTUNG: das reading und kommando müssen zur zeit noch rgb werte enthalten.

was noch kommt:
- optional slider in einem popup statt direkt auf der seite
- verwendbarkeit auch für hsv readings
- wahlweise ausblenden einzelner slider

gruss
andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

justme1968

ab morgen gibt es zusätzlich noch dem mode HSVp. dann werden die drei slider nicht direkt auf der seite eingeblendet sondern erscheinen erst nach einem klick in einem popup.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

pjakobs

das kommt mir sehr gelegen, der rgb color picker ist für das rgbww Modul eher von hinten durch die Brust in's Auge, weil wir dort, trotz des Namens, nativ lieber hsv verwenden.

Grüße

pj

justme1968

achtung: aktuell muss trotz HSV darstellung ein RGB reading dahinter stehen.

fhem kann aktuell nur eine 1:1 zuordnung zwischen reading/kommando und widget.

ich habe noch keine gute Idee wie man das auf n:1 erweitern kann.

der kurzfristige ausweg wäre zur zeit das es ein reading mit allen drei werten gibt und ein kommando um alle drei auf ein mal zu setzen. wie müssen uns nur auf das format einigen. dann baue ich es ein.

was natürlich unabhängig davon schon immer geht sind drei getrennte regler für drei oder vier readings.

es gibt schon einen fertigen colorpicker für hue und farbtemperatur. mit entsprechendem hintergrund.

einen für v mit dem schwarz nach weiß verlauf kann ich einchecken.

nur einen regler für s mit farbigem hintergrund hätte zur zeit wieder genau das problem  das er von mehr als einem reading abhängig wäre.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

justme1968

also....

ich habe eben eine version eingecheckt die auch einen 'echten' hsv mode hat.

voraussetzung:
- das device muss ein reading haben das die aktuellen h,s und v werte mit komma getrennt enthält.
- das device muss jeweils ein kommando haben um hue, sat und helligkeit zu setzen.

die definition um das widget in diesem mode zu verwenden schaut so aus:hsv:colorpicker,HSV,hue,0,1,360,sat,0,1,100,bri,0,1,100d.h. man gibt nach dem HSV jeweils mit komma getrennt alle drei kommandos und jeweils den wertebereich an.

alle werte müssen integer werte sein.

das hsv reading kann man sich über ein user reading erzeugen wenn es im device nicht vorhanden ist:attr <device> userReadings hsv {ReadingsVal($name,'hue','0').','.ReadingsVal($name,'sat','100').','.ReadingsVal($name,'bri','100')}

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

pjakobs

Zitat von: justme1968 am 07 Juli 2016, 15:01:59
also....

ich habe eben eine version eingecheckt die auch einen 'echten' hsv mode hat.


vermutlich ne blöde Frage, aber: wo?

pj

justme1968

na ins fhem repository. kommt also mit dem normalen update.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Weissbrotgrill

Hallo,

ich bin schon länger hier im Forum angemeldet, aber bisher nur zum Lesen.

Hier möchte ich einen Vorschlag zum Speichern des HSV Wertes einbringen.

Ein RGB Werte wird als "rgb <hex_rot><hex_rot><hex_gruen><hex_gruen><hex_blau><hex_blau>" gespeichert.
Warum nicht bei HSV genau so vorgehen? Da der Farbwert (hue) aber Werte von 0 bis 359 haben kann reicht ein Byte nicht, dann eben zwei (360° entspricht 0°).
Würde dann ergeben: "hsv <hex_hue><hex_hue><hex_hue><hex_hue><hex_sat><hex_sat><hex_bri><hex_bri>".
Also z.B. "hsv 012C6464" für die Farbe Meganta bei maximaler Sättigung und Helligkeit (H:300, S:100, V:100).

Gruß
Christian

justme1968

wobei man die führende 0 auch weg lassen kann. drei byte wären genug.

aber: hex werte sind hier deutlich weniger lesbar als dezimal werte und es gibt schon module die ein hsv reading (dezimal) haben. statt etwas neues einzubauen ist es glaube ich besser as bestehende so weite wie möglich zu vereinheitlichen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

swifty

Hallo,

das ist genau was ich gesucht habe. Ich baue gerade ein MQTT Licht, das idealerweise per HSV angesteuert wird. Da meine perl kenntnisse nicht reichen ein eigenes Modul zu schreiben wollte ich ein dummy verwenden, um die Farbe auszuwählen und dann dem MQTT device zu übergeben.
Leider schaffe ich es nicht das dummy mit funktionierendem HSV Picker anzulegen. Der Picker erscheint, funktioniert auch, aber das hsv Reading bekommt immer nur defaultwerte zugewiesen. Siehe bild im Anhang.

das dummy:
define Colordummy dummy
attr Colordummy room Calib_light
attr Colordummy setList hsv:colorpicker,HSV,hue,0,1,360,sat,0,1,100,bri,0,1,100
attr Colordummy userReadings hsv {ReadingsVal($name,'hue','0').','.ReadingsVal($name,'sat','100').','.ReadingsVal($name,'bri','100')}
attr Colordummy webCmd hsv


kann jemand erkennen, was ich falsch mache?

gruß
swifty

justme1968

wie im wiki beschrieben braucht dein device jeweils set hue, set bat und set bri kommandos. bei einem dummy bekommst du die durch
attr Colordummy readingList hue sat bri

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

swifty

prima,

vielen Dank. Das funktioniert, ich hatte schon mit einem notify drumherum programmiert, aber so ist es natürlich besser.

swifty