RGB Farbwähler für KNX

Hallo,

hat vielleicht jemand das Script für KNX?

Vielen Dank.

Brauchst du gar nicht. Es gibt RGB / RGBW Instanzen für KNX :slight_smile:

paresy

Hallo Paresy,

ich bin mir gerade ziemlich unsicher mit meiner Lichtsteuerung. Ich habe eine Dali KNX B.E.G IP Schnittstelle, und habe ein EVG am Start das 3 Adressen zur Verfügung stellt. Die einzelnen Farben kann ich dimmen und schalten, jetzt möchte ich aber die Farben über das Farbkreis setzen und dafür muss ich ja alle drei Farben zusammen fassen. Oder wie mach ich das?? Ich habe mir jetzt einen DALI RGBW Dimmer bestellt der nur eine Adresse braucht, da habe ich aber jetzt gesehen das mein Gateway die gar nicht kann. :eek:

Vielen Dank.

Da deine Frage nur indirekt mit dem Ursprünglichen Thema RGB Farbwähler für ModBus Instanzen zu tun hat, habe ich die Beiträge mal abgetrennt.
Eventuell kann dir hier ein KNX User helfen.

Michael

Hallo Rene,

DT8-EVGs mit einer Adresse für RGB funktionieren nur am einem DALI-Gateway, das DT8 unterstützt. Das funktioniert also mit deinem Gateway nicht. Eventuell kann man das EVG umschalten auf 3 einzelne Adressen, damit du es an deinem Gateway nutzen kannst. Ansonsten müsstest du es tauschen gegen ein EVG mit 3 Kanälen.

Dann kannst du einen „kombinierten“ RGB-Wert aus dem Farbwähler („Hexcolor“) auf die drei einzelnen Farbkanälen R,G,B splitten wie von paresy beschrieben.

Viele Grüße
Volker

Hallo,

ja habe ich erst zu spät bemerkt, dass das Gateway das nicht kann. Der Dimmer ist einer von Lunatone den kann man nicht umstellen, ich werde versuchen ihn zu tauschen. Kann ich das Skript von Paresy denn einfach so umschreiben, dass heist an der Stelle wo modBus steht EIB eintragen oder was muss in dem Skript alles geändert werden?? Mit der RGB/RGBW Instanz für KNX versteh ich nicht wie ich das bei 3 Dali Adressen machen soll??? :banghead::eek:

Vielen Dank für eure Hilfe.

Das „manuelle“ setzen der Grudnfarben über 3 einzelne GA hast du schon angelegt und es funktioniert, oder?

Getestet habe ich es selbst nicht, aber dann sollte es reichen, wenn du für jeden der drei Farbkanäle
ModBus_WriteRegisterByte
durch
EIB_Scale
ersetzt. Damit sollten die passenden Werte 0-255 (entsprechend 0-100%) auf die drei Farbkanäle geschrieben werden.

Soweit das Splitten des Farbwähler-Wertes in die drei Grundfarben. Ein zusätzlicher Weißkanal ist dann noch ein separates Thema, das mich auch interessieren würde.

Hallo,

ja die GA habe ich schon und das läuft auch soweit, ich kann Dimmen und die Farben mit einem Slider mischen. Ich möchte die Farbverstellung jetzt nur über den Farbkreis haben und da sind meine Probleme. Ich verwende im Moment nur RGB.

Ok, dann ist das Script von paresy die richtige Lösung.

Integer anlegen für den Farbkreis mit Profil ~HexColor wie dort beschrieben, und dann diesen kombinierten Wert zerlegen in RGB. Der entsprechende Teil des Script geht vielleicht etwas unter in den ganzen Hin-und Herverlinkungen:

    $r = (($_IPS['VALUE'] >> 16) & 0xFF);
    $g = (($_IPS['VALUE'] >> 8) & 0xFF);
    $b = (($_IPS['VALUE'] >> 0) & 0xFF);

Habe das Skript jetzt mal geändert und dann alles so wie in dem modBus Post von Paresy angelegt.
Hier mal das Skript:

<? 
switch($_IPS['SENDER']){ 
case*"WebFront":********//Split*RGB*Color 
$r*=*(($_IPS['VALUE']*>>*16)*&*0xFF); 
$g*=*(($_IPS['VALUE']*>>*8)*&*0xFF); 
$b*=*(($_IPS['VALUE']*>>*0)*&*0xFF); 
$r_link*=*IPS_GetLinkIDByName("R",*$_IPS['VARIABLE']); 
$r_addr*=*IPS_GetLink($r_link)['TargetID']; 
EIB_Scale(IPS_GetParent($r_addr),*$r); 
$g_link*=*IPS_GetLinkIDByName("G",*$_IPS['VARIABLE']); 
$g_addr*=*IPS_GetLink($g_link)['TargetID']; 
EIB_Scale(IPS_GetParent($g_addr),*$g); 
$b_link*=*IPS_GetLinkIDByName("B",*$_IPS['VARIABLE']); 
$b_addr*=*IPS_GetLink($b_link)['TargetID']; 
EIB_Scale(IPS_GetParent($b_addr),*$b); 
break; 
case*"Variable": 
$r_link*=*IPS_GetLinkIDByName("R",*$_IPS['VARIABLE']); 
$r_addr*=*IPS_GetLink($r_link)['LinkTargetID']; 
$r_svid*=*IPS_GetObjectIDByIdent("Value",*$r_addr); 
$g_link*=*IPS_GetLinkIDByName("G",*$_IPS['VARIABLE']); 
$g_addr*=*IPS_GetLink($g_link)['LinkTargetID']; 
$r_svid*=*IPS_GetObjectIDByIdent("Value",*$r_addr); 
$b_link*=*IPS_GetLinkIDByName("B",*$_IPS['VARIABLE']); 
$b_addr*=*IPS_GetLink($b_link)['LinkTargetID']; 
$b_svid*=*IPS_GetObjectIDByIdent("Value",*$b_addr); 
$rgb*=*(GetValue($r_svid)*<<*16)*+*(GetValue($g_svid)*<<*8)*+*GetValue($b_svid); 
SetValue(IPS_GetParent($_IPS['SELF']),*$rgb); 
break; 
} 
?> >

Dann kommt folgende Meldung:

Parse error: syntax error, unexpected ‚***case‘ (T_STRING), expecting case (T_CASE) or default (T_DEFAULT) or ‚}‘ in C:\IP-Symcon\scripts\27606.ips.php on line 3
Abort Processing during Fatal-Error: syntax error, unexpected ‚***case‘ (T_STRING), expecting case (T_CASE) or default (T_DEFAULT) or ‚}‘
Error in Script C:\IP-Symcon\scripts\27606.ips.php on Line 3
wenn ich es ausführe. Wenn ich den Farbkreis verändere passiert nichts.

Was kann ich tun??

Die ganzen Sterne löschen ;).

Das Script noch mal neu aus dem Forum kopieren, aber bitte mit einem anderen Browser (hast du Edge benutzt?).
Dein Browser hat anstatt Leerzeichen Sternchen kopiert, das mag PHP gar nicht.
Michael

Vielen Dank,

dass war der Entscheidende Tipp mit dem Browser, ich hatte das schon mal. Jetzt werden alle drei Adressen angesteuert.

Es gibt es ein neues Modul, womit man die RGB Ansteuerung vereinfachen kann: SymconMisc/RGBMultiplexer at master · symcon/SymconMisc · GitHub

paresy