Hallo zusammen,
ich habe diesen (https://forum.fhem.de/index.php/topic,57045.0.html) 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
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 (https://wiki.fhem.de/wiki/Color)
...Oder,oder, ist im FHEM LOG was auffälliges?
l.g. erwin
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 (https://www.mdt.de/produkte/produktdetail.html?tx_mdtproducts_detail%5Baction%5D=detail&tx_mdtproducts_detail%5Bcontroller%5D=Productseries&tx_mdtproducts_detail%5Bseries%5D=19&cHash=ff11e2223c3b1d221a57c086f14df4a3).
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
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
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.
Hi Amenophis86!
Hat es etwas Zeit? Bin dzt. auf Urlaub. Problem ist sicher nicht die Implementierung des dpt, sondern die GUI
L.g. Erwin
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
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.
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
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
...Mail ist unterwegs.
l.g. erwin
Hi Amenophis86!
ich hab im wiki: https://wiki.fhem.de/wiki/KNX_Device_Definition_-_Beispiele (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
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.
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