RGB zu HSV converter für TFT ?

Mein Sketch ist inzwischen 2500 Zeilen lang... das kann ich keinem antun :slight_smile:

Die Aufgabenstellung ist wie folgt:

Ich habe eine Zentrale, mit 7" Display. Diese empfängt von diversen PIR Sensoren in meiner Wohnung aktuelle Bewegungen und von einem Außensensor Informationen zum Tageslicht.

Die Zentrale vergleicht die Statusmeldungen der PIRs und die Uhrzeit, Wochentag, Feiertag etc. und gibt dann meinen Lampen Vorgaben welche Farbe, Sättigung und Helligkeit jeweils einzustellen ist.... es gibt noch ein paar zusätzliche Infos für bestimmte Effekte/Programme...

Auf dem 7" Display ist neben einer Uhr mit Datum, Wochentag und Feiertag auch der Grundriss der Wohnung skizziert. Ist in einem Raum Licht ist das "Kästchen" was den Raum darstellt weiß gefüllt....

Nun möchte ich das ganze etwas aufhübschen und gern die Farben die die jeweiligen Lampen haben auf dem Display darstellen- das muss nicht übermäßig genau sein, aber sollte halbwegs passen...

Die Fast-LED- Lib brauche ich sonst für keine Funktion in meinem Sketch.

Der Ausschnitt mit dem ich es versucht habe sieht so aus:

void showRGBTFT4( const CRGB& rgb)
{
  analogWrite(TFT4rot,   rgb.r );
  analogWrite(TFT4gruen, rgb.g );
  analogWrite(TFT4blau,  rgb.b );
}

void display134()
{
  /showRGBTFT1( CHSV( Status4[2], Status4[3], Status4[4]) ); 
  myGLCD.setColor(TFT4rot ,TFT4gruen , TFT4blau);
  myGLCD.fillRect(WoZX1 + 2, WoZY1 + 2, WoZX2 - 2, WoZY2 - 2); 
}