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,...