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.
| |
| Name | Typ | Beschreibung |
|---|---|---|
hue | Zahl | Farbwinkel in Grad, 0 – 360 (0 Rot, 120 Grün, 240 Blau). |
saturation | Zahl | 0 – 1. 0 ist Weiß oder Grau, 1 die volle Farbe. |
value | Zahl | Helligkeit, 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: 255Beispiel — 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.
| |
| Name | Typ | Beschreibung |
|---|---|---|
red, green, blue | Zahl | 0 – 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: 30VAR hsv := RGBTOHSV(255, 128, 0);
ROUND(hsv.SATURATION * 100) / 100;
# Result: 1Werte rgbcolor und hsvcolor
rgbcolor und hsvcolor sind die Werttypen, die die Farbfunktionen zurückgeben; ihre Eigenschaften können gelesen und geschrieben werden.
| Typ | Eigenschaft | Bereich | Anmerkung |
|---|---|---|---|
rgbcolor | RED, GREEN, BLUE | 0 – 255 | Beim Schreiben wird ein Byte gespeichert: Werte über 255 laufen über. |
hsvcolor | HUE | 0 – 360 | Beim 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. |
hsvcolor | SATURATION, VALUE | 0 – 1 | Dezimalzahlen. |
Mit beiden Typnamen lässt sich eine Variable deklarieren:
rgbcolor colour := HSVTORGB(240, 1, 0.5);
colour.BLUE;
# Result: 128Siehe auch — Datentypen, Variablen und Konstanten.