TapHome

Farben

Farbfunktionen der TapHome-Skripte — HSVTORGB und RGBTOHSV — sowie die Werttypen rgbcolor und hsvcolor, mit denen Sie RGB-Leuchten aus Packet-Parser- und Modbus-Skripten steuern.

Farbfunktionen wandeln zwischen dem HSV-Modell — Farbton, Sättigung und Hellwert (Helligkeit) — und dem RGB-Modell mit den Kanälen Rot, Grün und Blau um. Eine TapHome-Farbleuchte arbeitet mit Farbton und Sättigung; viele Geräte, die aus Skripten von Packet Parser oder Modbus angesteuert werden, erwarten dagegen Rot, Grün und Blau. Beide Funktionen funktionieren in jedem Skript und erfordern Core 2023.1 oder neuer (im Kanal Next Core 2022.3, Build 27019).

HSVTORGB

HSVTORGB wandelt eine durch Farbton, Sättigung und Hellwert angegebene Farbe in einen rgbcolor-Wert mit den Kanälen Rot, Grün und Blau von 0 bis 255 um.

1
HSVTORGB(hue, saturation, value)
NameTypBeschreibung
hueZahlFarbwinkel in Grad, 0 – 360 (0 Rot, 120 Grün, 240 Blau).
saturationZahl0 – 1. 0 ist Weiß oder Grau, 1 die volle Farbe.
valueZahlHelligkeit, 0 – 1.

Rückgabewert — rgbcolor mit den Eigenschaften RED, GREEN und BLUE, jeweils auf eine ganze Zahl 0 – 255 gerundet.

Hinweise — Die Eingaben werden nicht auf ihren Bereich begrenzt. Halten Sie saturation und value zwischen 0 und 1, sonst überschreiten die Kanäle den Bereich 0 – 255.

Beispiel

VAR green := HSVTORGB(120, 1, 1);
green.GREEN;
# Result: 255

Beispiel — Schreibskript einer RGB-Leuchte über HTTP

Übergeben Sie im Schreibskript einer Farbleuchte die Werte Farbton (Hd) und Sättigung (Sa) der Leuchte und behandeln Sie die Helligkeit separat. Hier sind es lokale Variablen, damit das Beispiel für sich allein läuft:

VAR hue := 30;
VAR saturation := 1;
VAR color := HSVTORGB(hue, saturation, 1);
"red=" + color.RED + "&green=" + color.GREEN + "&blue=" + color.BLUE;
# Result: "red=255&green=128&blue=0"

Siehe auch — RGBTOHSV, SENDHTTPREQUEST.

RGBTOHSV

RGBTOHSV wandelt die Kanäle Rot, Grün und Blau (0 – 255) in einen hsvcolor-Wert mit dem Farbton in Grad sowie Sättigung und Hellwert von 0 bis 1 um.

1
RGBTOHSV(red, green, blue)
NameTypBeschreibung
red, green, blueZahl0 – 255. Jeder Wert wird in eine ganze Zahl in diesem Bereich umgewandelt.

Rückgabewert — hsvcolor mit HUE (0 – 360, mit Nachkommastellen), SATURATION (0 – 1) und VALUE (0 – 1). Bei Grautönen, in denen alle Kanäle gleich sind, sind HUE und SATURATION gleich 0.

Beispiel — Farbton einer Leuchte lesen, die Rot, Grün und Blau meldet

VAR hsv := RGBTOHSV(255, 128, 0);
ROUND(hsv.HUE);
# Result: 30
VAR hsv := RGBTOHSV(255, 128, 0);
ROUND(hsv.SATURATION * 100) / 100;
# Result: 1

Werte rgbcolor und hsvcolor

rgbcolor und hsvcolor sind die Werttypen, die die Farbfunktionen zurückgeben; ihre Eigenschaften können gelesen und geschrieben werden.

TypEigenschaftBereichAnmerkung
rgbcolorRED, GREEN, BLUE0 – 255Beim Schreiben wird ein Byte gespeichert: Werte über 255 laufen über.
hsvcolorHUE0 – 360Beim Schreiben wird ein Byte gespeichert, daher läuft ein Farbton über 255 über — hsv.HUE := 300 ergibt 44. Übergeben Sie den Farbton stattdessen an HSVTORGB.
hsvcolorSATURATION, VALUE0 – 1Dezimalzahlen.

Mit beiden Typnamen lässt sich eine Variable deklarieren:

rgbcolor colour := HSVTORGB(240, 1, 0.5);
colour.BLUE;
# Result: 128

Siehe auch — Datentypen, Variablen und Konstanten.