Colorpicker Rückmeldung HSV Werte

Begonnen von rolizer, 11 Mai 2022, 17:19:38

Vorheriges Thema - Nächstes Thema

rolizer

Hallo zusammen,

ich habe diesen Thread aufmerksam verfolgt - ggf. wäre meine Anfrage dort auch gut aufgehoben.
Ein KNX Aktor für LED Band soll mit HSV und Colorpicker gesteuert werden. Dies funktioniert auch - allerdings bekomme ich die Rückmeldungen von der Status GA nicht auf die HSV GA, um dem Colorpicker seine aktuellen Werte zu geben. Die HSV GA selbst wird ja mit dem Colorpicker nicht beschrieben, sondern es geht über die Hue,Sat,Bri Werte. Kann mir jemand auf die Sprünge helfen? Ein
stateCmd { fhem "sleep 0.05 quiet;; setreading $name hsv $state" if ($gadName eq 'status_hsv');; return $state;; }; funktioniert leider nicht bzw. liefert falsche Werte zurück zum Colorpicker.

defmod EG_Bad_beleuchtung_Nische KNX 0/2/20:dpt1.001:schalten:nosuffix 0/2/21:dpt1.011:status:nosuffix 0/2/26:dpt232:hsv:nosuffix 0/2/27:dpt232:status_hsv:nosuffix 0/2/30:dpt5.003:hue_farbwert:nosuffix 0/2/31:dpt5.001:saturation_saettigung:nosuffix 0/2/32:dpt5.001:value_hellwert:nosuffix
attr EG_Bad_beleuchtung_Nische DbLogExclude .*
attr EG_Bad_beleuchtung_Nische alias Bad Nische
attr EG_Bad_beleuchtung_Nische devStateIcon inactive:li_wht_off:on active:li_wht_on:off
attr EG_Bad_beleuchtung_Nische group Beleuchtung
attr EG_Bad_beleuchtung_Nische icon light_led_stripe_rgb
attr EG_Bad_beleuchtung_Nische room EG_Bad
attr EG_Bad_beleuchtung_Nische stateFormat status
attr EG_Bad_beleuchtung_Nische webCmd hsv
attr EG_Bad_beleuchtung_Nische widgetOverride hsv:colorpicker,HSV,hue_farbwert,0,1,360,saturation_saettigung,0,1,100,value_hellwert,0,1,100


Internals:
   CFGFN     
   DEF        0/2/20:dpt1.001:schalten:nosuffix 0/2/21:dpt1.011:status:nosuffix 0/2/26:dpt232:hsv:nosuffix 0/2/27:dpt232:status_hsv:nosuffix 0/2/30:dpt5.003:hue_farbwert:nosuffix 0/2/31:dpt5.001:saturation_saettigung:nosuffix 0/2/32:dpt5.001:value_hellwert:nosuffix
   DEVNAME    EG_Bad_beleuchtung_Nische
   FIRSTGADNAME schalten
   FUUID      627bad2a-f33f-b7b6-0bcd-8df15a3aa3b60774
   GETSTRING  status:noArg status_hsv:noArg saturation_saettigung:noArg schalten:noArg hue_farbwert:noArg value_hellwert:noArg hsv:noArg
   IODev      KNX
   KNX_MSGCNT 340
   KNX_RAWMSG C0110aw0021bdbff00
   KNX_TIME   2022-05-11 16:46:46
   LASTInputDev KNX
   MSGCNT     340
   NAME       EG_Bad_beleuchtung_Nische
   NR         16369
   SETSTRING  status:inactive,active status_hsv:colorpicker saturation_saettigung:slider,0,1,100 on:noArg off:noArg schalten:on,off,toggle hue_farbwert:slider,0,3,360 value_hellwert:slider,0,1,100 hsv:colorpicker
   STATE      inactive
   TYPE       KNX
   model      dpt1
   GADDETAILS:
     hsv:
       CODE       0021a
       GROUP      0/2/26
       MODEL      dpt232
       NO         3
       OPTION     
       RDNAMEGET  hsv
       RDNAMEPUT  hsv
       RDNAMESET  hsv
       SETLIST    :colorpicker
     hue_farbwert:
       CODE       0021e
       GROUP      0/2/30
       MODEL      dpt5.003
       NO         5
       OPTION     
       RDNAMEGET  hue_farbwert
       RDNAMEPUT  hue_farbwert
       RDNAMESET  hue_farbwert
       SETLIST    :slider,0,3,360
     saturation_saettigung:
       CODE       0021f
       GROUP      0/2/31
       MODEL      dpt5.001
       NO         6
       OPTION     
       RDNAMEGET  saturation_saettigung
       RDNAMEPUT  saturation_saettigung
       RDNAMESET  saturation_saettigung
       SETLIST    :slider,0,1,100
     schalten:
       CODE       00214
       GROUP      0/2/20
       MODEL      dpt1.001
       NO         1
       OPTION     
       RDNAMEGET  schalten
       RDNAMEPUT  schalten
       RDNAMESET  schalten
       SETLIST    :on,off,toggle
     status:
       CODE       00215
       GROUP      0/2/21
       MODEL      dpt1.011
       NO         2
       OPTION     
       RDNAMEGET  status
       RDNAMEPUT  status
       RDNAMESET  status
       SETLIST    :inactive,active
     status_hsv:
       CODE       0021b
       GROUP      0/2/27
       MODEL      dpt232
       NO         4
       OPTION     
       RDNAMEGET  status_hsv
       RDNAMEPUT  status_hsv
       RDNAMESET  status_hsv
       SETLIST    :colorpicker
     value_hellwert:
       CODE       00220
       GROUP      0/2/32
       MODEL      dpt5.001
       NO         7
       OPTION     
       RDNAMEGET  value_hellwert
       RDNAMEPUT  value_hellwert
       RDNAMESET  value_hellwert
       SETLIST    :slider,0,1,100
   GADTABLE:
     00214      schalten
     00215      status
     0021a      hsv
     0021b      status_hsv
     0021e      hue_farbwert
     0021f      saturation_saettigung
     00220      value_hellwert
   READINGS:
     2022-05-11 15:44:24   IODev           KNX
     2022-05-11 16:44:21   hsv             ae84c4
     2022-05-11 16:46:35   hue_farbwert    310 °
     2022-05-11 16:46:46   last-sender     1.1.10
     2022-05-11 16:46:28   saturation_saettigung 100 %
     2022-05-11 16:46:45   schalten        off
     2022-05-11 16:46:46   state           dbff00
     2022-05-11 16:46:45   status          inactive
     2022-05-11 16:46:46   status_hsv      dbff00
     2022-05-11 16:46:38   value_hellwert  43 %
Attributes:
   DbLogExclude .*
   alias      Bad Nische
   devStateIcon inactive:li_wht_off:on active:li_wht_on:off
   group      Beleuchtung
   icon       light_led_stripe_rgb
   room       EG_Bad
   stateFormat status
   webCmd     hsv
   widgetOverride hsv:colorpicker,HSV,hue_farbwert,0,1,360,saturation_saettigung,0,1,100,value_hellwert,0,1,100


Was übersehe ich?
Gruß
Oli

erwin

Hi Oli!

Gleich vorweg: ich hab mit dem colorpicker noch nie selbst gearbeitet, bin da wenig Hilfe!
Ich versuchs mal aus der KNX-Sicht: Ich hab dein Beispiel stark vereinfacht nachgestellt, bishierher funktionierts (Raw export):
defmod Colortest KNX 0/2/26:dpt232:hsv:nosuffix 0/2/27:dpt232:status_hsv:nosuffix
attr Colortest stateCmd { fhem "sleep 0.05 quiet;;;; setreading $name hsv $state" if ($gadName eq 'status_hsv');;;; return $state;;;; };;
attr Colortest webCmd hsv
attr Colortest widgetOverride widgetOverride hsv:colorpicker,RGB

setstate Colortest 609089
setstate Colortest 2022-05-14 20:25:36 hsv 609089
setstate Colortest 2022-05-14 20:25:36 state 609089
setstate Colortest 2022-05-14 20:25:36 status_hsv 609089


Es funktioniert das senden von FHEM (=set-cmd) Empfänger ist der GA-Monitor der ETS.
Es funktioniert das empfangen - sender ist der GA-Monitor (3Byte RGB)
Es funktioniert der setstate-cmd - kopiert was von "status_hsv" hereinkommt nach "hsv" - und der colorpicker reagiert auch darauf.

Ab jetzt kommen die Vermutungen......
Die Frage ist, ob dein KNX-RGB dpt5.003 Werte für hue_farbwert schickt, bzw dpt5.001 für value_hellwert, ..... da müsste man in der Beschreibung des Gerätes schauen.
Ein weiteres Problem ist das z.b. dpt5.003 als Unit Grad hat (0-360 °) und mit diesem string lässt sich schlecht rechnen..... evtl ein userreading anlegen mit readingsNum("$name",'hue_farbwert',0)   und diese reading dann im widgetoverride verwenden.
Welcher RGB-Controller ist es denn, dann kann ich evtl. gezielt suchen....
...Oder der Fehler liegt beim colorpicker-widget..... - im wiki gibts eine Seite dazu https://wiki.fhem.de/wiki/Color
...Oder,oder, ist im FHEM LOG was auffälliges?

l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

rolizer

Hallo Erwin,

vielen Dank für deine Versuche.
Ich teste weiter in den nächsten Tagen. Was ich bislang gefunden habe:
Dimmaktor ist ein MDT AKD-0424V.02.
Verbose 4 bringt folgende Warnung, mit dem Colorpicker RGB:
2022.05.16 11:15:07 4: KNX_Set: EG_Bad_beleuchtung_Nische, cmd= 56909c, value= 56909c, translated= 0056909c
2022.05.16 11:15:07 4: KNX_Parse -process: IO-name: KNX, device-name: EG_Bad_beleuchtung_Nische, rd-name: status_hsv, gadCode: 0021b, cmd: w
2022.05.16 11:15:07 4: KNX_Parse (wp): EG_Bad_beleuchtung_Nische, READINGNAME: status_hsv, VALUE: 56909c, SENDER: 0110a

und diese Meldungen mit Colorpicker HSV:
2022.05.16 11:44:01 4: KNX_Set: EG_Bad_beleuchtung_Nische, cmd= 74, value= off, translated= 00
2022.05.16 11:44:02 4: KNX_Set: EG_Bad_beleuchtung_Nische, cmd= on, value= on, translated= 01
2022.05.16 11:44:02 4: KNX_Parse -process: IO-name: KNX, device-name: EG_Bad_beleuchtung_Nische, rd-name: status, gadCode: 00215, cmd: w
2022.05.16 11:44:02 4: KNX_Parse (wp): EG_Bad_beleuchtung_Nische, READINGNAME: status, VALUE: active, SENDER: 0110a
2022.05.16 11:44:05 4: KNX_Set: EG_Bad_beleuchtung_Nische, cmd= 100, value= on, translated= 01
2022.05.16 11:44:11 4: KNX_Set: EG_Bad_beleuchtung_Nische, cmd= saturation_saettigung, value= off, translated= 00
2022.05.16 11:44:11 4: KNX_Parse -process: IO-name: KNX, device-name: EG_Bad_beleuchtung_Nische, rd-name: status, gadCode: 00215, cmd: w
2022.05.16 11:44:11 4: KNX_Parse (wp): EG_Bad_beleuchtung_Nische, READINGNAME: status, VALUE: inactive, SENDER: 0110a


lt. ETS habe ich für den DPT 2 Einstellmöglichkeiten: DPT 232.600 (RGB) oder DPT 251.600 (RGBW). Letzteren verwende ich, da ich den Weiß Anteil eben über den HSV Colorpicker steuern möchte.
Ich vermute mal, dass die Ursache tatsächlich der DPT251 ist, da dies ein 6 Byte Wert ist und dieser sich eben nicht mit DPT232 verträgt - der Aktor schaltet z.B. an und aus, sobald du Farben änderst.
Das muss ich dann wohl umstellen und einen zusätzlichen Slider für Weiß etablieren.

Gruß
Oli

erwin

Hi Oli,
die Log-messages zeigen, dass das KNX-Modul (dpt232) mit den Werten die vom colorpicker HSV kommen nicht richtig umgeht..., Allerdings mit den Werten von colorpicker RGB sehr wohl.
Die dpt232 implementation war auch so geplant/implementiert...
Das Problem: Das KNX-Modul kann nicht erkennen, von welchem widget die daten bekommen....Es verarbeitet 3bytes und nimmt an, das es sich um RGB handelt.
Noch heikler ist die Tatsache, dass vom colorpicker HSV nicht nur numerische Werte kommen, sondern auch on/off! - was wiederum im KNX-standard für diesen dpt nicht vorgesehen ist.
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Amenophis86

Der Thread ist zwar alt aber ich habe heute auch einen ersten RGBW Stripe an einem MDT AKD in Betrieb genommen. Jetzt beschäftige ich mich natürlich damit das Ganze in FHEM zu steuern. Daher die Frage an erwin, ist geplant auch dpt251.600 aufzunehmen? Damit kann man wohl direkt RGBW steuern, wenn ich es richtig gesehen habe.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

erwin

Hi Amenophis86!
Hat es etwas Zeit? Bin dzt. auf Urlaub. Problem ist sicher nicht die Implementierung des dpt, sondern die GUI
L.g. Erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

erwin

#6
Hi Amenophis86!
Re: dpt251.600 Implementierung sollte kein wirkliches Problem sein,

Die GUI sehr wohL: es gibt im colorpicker keine Variante wo RGBW als (4 byte) werte dem Set command übergeben werden, die Helligket wird jeweis vorher auf RGB (3byte) umgerechnet, zumindest nach meinen Recherchen.
Ebenso ist's in der Darstellung (webcmd, devstateicon).
Das würde Änderungen im Colorpicker / javascript bedeuten...... nicht meine Baustelle, das wär ein change request für ColorPicker.
Alternative: man bastelt sich ein readingsproxy, der das umrechnet, vmtl. nicht trivial.

Was ich anbieten kann als set/get cmd:
set <device> <gad> RRGGBBWW  #oder
set <device> <gad> R<0-100> G<0-100> B<0-100> H<0-100>
wobei die Werte entweder als 4byte HEX eingegeben werden müssen, oder (so stehts im Standard) als 0-100% .

In welchen Format sollten dann die reading-werte sein?

Meinung dazu?

Edit: ich hab mir jetzt das Manual vom MDT AKDxxx angeschaut, ich find da Obj.77 ->dpt249.600 und
Obj.81, das könnte ein dpt251.600 sein, allerdings kein set, sondern NUR als Rückmeldung vom Aktor..
kannst du das verifizieren?

l.g.erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Amenophis86

Hey erwin,

war selbst die letzten Tage beschäftigt, dass ich jetzt erst zum antworten kommen. Sorry. Zeit hat es auf jeden Fall :)

Das mit dem Colorpick habe ich mir schon fast gedacht. Das Problem wurde im Forum auch an anderer Stelle schon besprochen meine ich und da war man damals auch nicht bereit rgbw aufzunehmen. Vielleicht stoße ich das auch nochmal an.

Objekt 66 ist beim AKD die Eingabe per RGBW. Man kann sie in diesem Format eingeben "000 000 000 000 000 000" wobei dann die letzten drei 000 durch 015 ersetzt werden müssen, dass alle Farben berücksichtigt werden. Die ETS bietet als Alternativ auch HEX-Wert an im Format $00 $00 $00 $00 $00 $00. Objekt 81 wäre der entsprechende Status dazu.

Als HSV kann man es auch ein-/ausgeben im Format 000 000 000 bzw. $00 $00 $00 als Hexwert. Es scheint, als ob hier der Weiß-Wert automatisch mit berücksichtigt wird. Somit wäre das wohl eine Alternative, ohne, dass du etwas anpassen musst. Ich muss die Tage es selbst nochmal probieren, wenn ich wieder etwas mehr Zeit finde. Aktuell war der erste Schritt den Streifen einbauen und in Betrieb nehmen und jetzt machen die Kids natürlich Stress, dass sie es auch schnellst möglich nutzen wollen :D

Deine beiden Vorschläge für set cmd finde ich schon mal gut. Werde mich aber wie gesagt auch nochmal direkt mit HSV beschäftigen, ob man dann auch direkt den Colorpick ohne Anpassungen nutzen kann.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

erwin

Hi Amenophis86!
ich hab eine "experimentelle" Version für dpt251 am laufen, möchte aber noch nicht einchecken...
schicken per pm geht offensichtlich nicht,
muss überlegen, wie ich dir die senden kann.
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Amenophis86

Hey,
bisher fahre ich mit folgender Variante ganz gut. Sie geht per Alexa und lässt sich auch sonst gut steuern:
defmod EK1.LED_Streifen KNX 0/1/47:dpt1.001:schalten:nosuffix 0/4/47:dpt1.011:status:nosuffix 0/0/22:dpt232:hsv:nosuffix 0/0/24:dpt232:status_hsv:nosuffix 0/3/47:dpt5.003:hue:nosuffix 0/3/48:dpt5.001:saturation:nosuffix 0/3/49:dpt5.001:brightness:nosuffix 0/5/49:dpt5.001:status_brightness:nosuffix
attr EK1.LED_Streifen alexaName Streifen Kinderzimmer
attr EK1.LED_Streifen genericDeviceType light
attr EK1.LED_Streifen homebridgeMapping Brightness=status_brightness,cmd=brightness,minValue=0,maxValue=100
attr EK1.LED_Streifen room KNX->Final,alexa
attr EK1.LED_Streifen webCmd hsv
attr EK1.LED_Streifen widgetOverride hsv:colorpicker,HSV,hue,0,1,360,saturation,0,1,100,brightness,0,1,100

Kannst mir deine Datei aber zum testen mal per Mail schicken. Schicke dir gleich per PM meine E-Mail Adresse
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

erwin

FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

erwin

Hi Amenophis86!
ich hab im wiki: https://wiki.fhem.de/wiki/KNX_Device_Definition_-_Beispiele ein halbwegs vernüftiges Beispiel gepostet, wei die GUI für den dpt251 aussehen könnte...
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Amenophis86

Ich kam endlich dazu es zu testen und mit deinem Beispiel einzubauen. Klappt super. Kannst du aus meiner Sicht in der nächsten Version einchecken. Vielen Dank.

Ich muss aber auch anmerken, dass ich meine Version etwas flexibler finde. Sie hat den Vorteile, dass man auch die Helligkeit der Farbe anpassen kann. Aber für jemanden, der rein RGBW will, hast du genau das richtige gebaut.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

erwin

Hi Amenophis86!

Danke fürs Testen!
Ich geb dir recht, ich denke der RGBW macht nur Sinn, wenn der Stripe RGB UND Weisse Led's enthält und der Led Controller diese auch separat ansteuert. Im RGB ist die Helligkeit ja schon enthalten...
Ich werde allerdings die Möglichkeit: "set mittels % Werten" wieder entfernen, macht zuviel Ausnahmen im code....
l.g.erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...