NEWS
Metro Tile ValueList + Wertebereich
-
Hallo zusammen,
ich würde gern für das Widget Tile ValueList unterschiedliche Hintergrundfarben für definierte Temperaturbereiche wählen.
Bisher kenne ich nur den Weg über ein Script mit switch-Syntax. Allerdings kann man da keinen Wertebereich festlegen bzw. ich weiß nicht wie.
Geht das evtl. über eine if-Funktion?
Müsste doch eigentlich ganz simpel sein.
Vielleicht kann mir jemand weiterhelfen. :mrgreen:
Grüße.
-
Hallo kekz,
ja das geht mit if-Abfragen. Poste dein Skript, dann können wir es hier anpassen.
Gruß
Pix
-
Ich hatte es hiermit versucht:
createState('aussentemp.number',0, function () { }); function checkState() { if ('hm-rpc.0.MEQ0832314.1.TEMPERATURE' <= 0) { setState(aussentemp.number, 0); } if ('hm-rpc.0.MEQ0832314.1.TEMPERATURE' > 0 && 'hm-rpc.0.MEQ0832314.1.TEMPERATURE' <= 10) { setState(aussentemp.number, 0); } if ('hm-rpc.0.MEQ0832314.1.TEMPERATURE' > 10 && 'hm-rpc.0.MEQ0832314.1.TEMPERATURE' <= 20) { setState(aussentemp.number, 1); } if ('hm-rpc.0.MEQ0832314.1.TEMPERATURE' > 20 && 'hm-rpc.0.MEQ0832314.1.TEMPERATURE' <= 27) { setState(aussentemp.number, 2); } if ('hm-rpc.0.MEQ0832314.1.TEMPERATURE' > 27 && 'hm-rpc.0.MEQ0832314.1.TEMPERATURE' <= 32) { setState(aussentemp.number, 3); } if ('hm-rpc.0.MEQ0832314.1.TEMPERATURE' > 32) { setState(aussentemp.number, 4); } }
Die Variable wird wohl angelegt, aber der Zustand bleibt immer auf 0.
Kenne mich auch leider überhaupt nicht aus :roll:
-
createState('aussentemp.number', 0); function checkState(at) { if (at <= 0) { setState(aussentemp.number, 0); } if (at > 0 && at <= 10) { setState(aussentemp.number, 0); } if (at > 10 && at <= 20) { setState(aussentemp.number, 1); } if (at > 20 && at <= 27) { setState(aussentemp.number, 2); } if (at > 27 && at <= 32) { setState(aussentemp.number, 3); } if (at > 32) { setState(aussentemp.number, 4); } } checkState(getState('hm-rpc.0.MEQ0832314.1.TEMPERATURE').val); // Script start on('hm-rpc.0.MEQ0832314.1.TEMPERATURE', function(dp) { // Wertänderung checkState(dp.state.val); });
-
Besten Dank
Bekomme aber noch folgende Fehlermeldung:
javascript.0 script.js.common.aussentemp_number: ReferenceError: aussentemp is not defined at checkState (script.js.common.aussentemp_number:14:16) at script.js.common.aussentemp_number:24:1 at ContextifyScript.Script.runInContext (vm.js:35:29)
-
Bekomme aber noch folgende Fehlermeldung: `
Bei setState fehlen überall die Hochkommata (habe ich leider übersehen).setState('aussentemp.number', 0);
-
Ah, jetzt funktioniert es!
Danke
-
Es geht noch etwas eleganter:
createState('aussentemp.number', 0); function checkState(at) { var wert = 0; if (at > 10) wert = 1; if (at > 20) wert = 2; if (at > 27) wert = 3; if (at > 32) wert = 4; setState('aussentemp.number', wert); } checkState(getState('hm-rpc.0.MEQ0832314.1.TEMPERATURE').val); // Script start on('hm-rpc.0.MEQ0832314.1.TEMPERATURE', function(dp) { // Wertänderung checkState(dp.state.val); });