RGB - "Loxone RGB" in echtes RGB umrechnen

Loxone verwendet bei seinen Ausgängen für RGB ein Prozentformat: Alle drei Farben voll ist 100100100 (3x 100%), bei 50% Dimmwert ist der "Loxone RGB-Wert" 50050050. Um diese Werte in echte RGB-Werte umzurechnen, kannst du diese Formeln verwenden.



Input ist der gemeinsame Loxone RGB Wert (z.B. 20040060 → Blau 20% / Grün 40% / Rot 60%).

Ausgabe ist für jede Farbe der Farbwert 0-255, d.h. es gibt drei Formeln.

Anm:
Die vorherige Vorgehensweise den Rundungsfehler zu korrigieren (einfach nur +0,1 am Ende) war leider nicht korrekt und führte bei gewissen Werten immer noch zu Fehlern.
Die Formeln wurden nun so korrigiert, dass es für alle Eingangswerte Werte jetzt passen sollte.
Hintergrund:
INT schneidet einfach die Nachkommastellen ab, rundet dabei aber Mathematisch nicht. Durch verschieben des Integerbereichs um eine halbe INT Stelle (also +0,5) wird dann korrekt gerundet.
Aufgefallen ist das Problem als R, G und B Werte beim reinen Einstellen der Helligkeit (also Weiss Dimmen) miteinander verglichen wurden, hierbei gab es Werte bei welchen obwohl der RGB Eingangswert für die Farben identisch war, die Ausgangswerte nicht identisch waren

Formel ROT

INT((I1-INT(I1/1000+0,5)*1000)*2,55)

Formel GRÜN

INT((INT(I1/1000+0,5)-INT(I1/1000000+0,5)*1000)*2,55)

Formel BLAU

INT(INT(I1/1000000+0,5)*2,55)

Formel WEISS

(nicht RGB - das ist nur die Umrechnung % auf 0-255, der Vollständigkeit halber)

INT(INT(I1+0,5)*2,55)

Anwendungsbeispiel

Dieses Beispiel steuert einen Shelly RGBW2 via MQTT Gateway Plugin:



{ "mode": "color", "red": <v2>, "green": <v3>, "blue": <v4>, "gain": 100, "white": <v1>, "effect": 0, "turn": "on" }

Virtueller Ausgangsbefehl zum MQTT Gateway:

publish shellies/shellyrgbw2-DB1DCB/color/0/set <v>

Als Digitalausgang verwenden: NEIN