@ub-privat
Hallo,
ich hatte was Ähnliches vorgehabt, aber mit mehr Farben im spiel und das auch für mehrere Widgets.
Hier ist das Problem, dass man die dann einzeln anpassen muss, wenn man an den Farbwerten Änderungen machen möchte.
Ich habe das so gelöst.
- Im Widget selbst z.B bei Background-color rufe ich eine JavaScript Funktion "TempToColor"
{n:hm-rpc.5.000E9569A32000.1.ACTUAL_TEMPERATURE; TempToColor(n)}
- Hinzufügen der JavaScript-Funktion in den "Script"-Tab:
function TempToColor(n)
{
var rgb = Hex2Deci('A9F5A9');
if (n > 50) rgb = Hex2Deci('8B0000');
else if (n >= 40) rgb = Hex2Deci('CD0000');
else if (n >= 35) rgb = Hex2Deci('FF0000');
else if (n >= 30) rgb = Hex2Deci('FF6347');
else if (n >= 25) rgb = Hex2Deci('edd0d4');
else if (n >= 20) rgb = Hex2Deci('00FF00');
else if (n >= 15) rgb = Hex2Deci('A9F5A9');
else if (n >= 10) rgb = Hex2Deci('CEECF5');
else if (n >= 5) rgb = Hex2Deci('A9E2F3');
else if (n >= 0) rgb = Hex2Deci('81BEF7');
else if (n >= -5) rgb = Hex2Deci('2E64FE');
else if (n >= -10) rgb = Hex2Deci('0000FF');
else rgb = Hex2Deci('08088A');
return 'rgb(' + rgb[0] + ',' + rgb[1] + ',' + rgb[2] + ')';
}
function Hex2Deci(hex) // Hexadezimal nach Dezimal
{
var r, g, b, hr, hg, hb;
hr = hex.substr(0,2);
r = parseInt(hr,16);
hg = hex.substr(2,2);
g = parseInt(hg,16);
hb = hex.substr(4,2);
b = parseInt(hb,16);
return [r, g, b];
}
Ich hoffe das hilft ebenfalls.
Viele Grüße