Hey zusammen,
ich benötige einmal Eure Hilfe. Ich bin mir ziemlich sicher, dass es sich nur um einen Denkfehler meinerseits handelt aufgrund von meiner Unerfahrenheit.
Kurz zur Erklärung was ich erreichen möchte:
Ich möchte beim Ändern von der DWD-Warnstufe zum einen eine Warnung auf meiner LaMetric Time ausgeben und zum anderen einen Lightstrip entsprechend der Warnstufe in bestimmten Farben leuchten lassen.
Folgende Problematiken habe ich festgestellt, warum der einfache Weg nicht geklappt hat: Wenn ich z.B. bei Warnstufe 1 über einen Fake-Schalter die Farbe gelb ausgeben möchte, sich dann die Warnstufe auf 2 erhöht, sind dann zwei Schalter gleichzeitig eingeschaltet, und der Lightstrip kommt durcheinander. Deswegen habe ich versucht bei der nächsten Warnstufe (welche sich ja nach oben und nach unten bewegen kann) den ersten Schalter auszuschalten um dann den nächsten zutreffenden Schalter zu schalten.
Ich habe mehrere Wege ausprobiert, komme aber nicht mehr weiter. Folgend meinen aktuellen (nicht funktionierenden) Code:
on({id: "dwd.0.warning.severity"/*Warning severity*/, change: "ne"}, async function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (true && getState("dwd.0.warning.severity").val == 1) {
setState("ham.0.DWD-aus.DWD-aus.On"/*On*/, false);
setState("ham.0.DWD-orange.DWD-orange.On"/*On*/, false);
setState("ham.0.DWD-rot.DWD-rot.On"/*On*/, false);
setState("ham.0.DWD-lila.DWD-lila.On"/*On*/, false);
setState("ham.0.DWD-gelb.DWD-gelb.On"/*On*/, true);
sendTo("lametric", "notification", {priority: "warning",iconType: "none",sound: "thunder",lifeTime: 10000,icon: 'i9537',text: 'DWD Warnung - Stufe 1',cycles: 5});}
});
on({id: "dwd.0.warning.severity"/*Warning severity*/, change: "ne"}, async function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (true && getState("dwd.0.warning.severity").val == 2) {
setStateDelayed("ham.0.DWD-aus.DWD-aus.On"/*On*/, false, 1000, false);
setStateDelayed("ham.0.DWD-gelb.DWD-gelb.On"/*On*/, false, 1000, false);
setStateDelayed("ham.0.DWD-rot.DWD-rot.On"/*On*/, false, 1000, false);
setStateDelayed("ham.0.DWD-lila.DWD-lila.On"/*On*/, false, 1000, false);
setState("ham.0.DWD-orange.DWD-orange.On"/*On*/, true);
sendTo("lametric", "notification", {priority: "warning",iconType: "none",sound: "thunder",lifeTime: 10000,icon: 'i9538',text: 'DWD Warnung - Stufe 2',cycles: 5});}
});
on({id: "dwd.0.warning.severity"/*Warning severity*/, change: "ne"}, async function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (true && getState("dwd.0.warning.severity").val == 3) {
setState("ham.0.DWD-aus.DWD-aus.On"/*On*/, false);
setState("ham.0.DWD-gelb.DWD-gelb.On"/*On*/, false);
setState("ham.0.DWD-orange.DWD-orange.On"/*On*/, false);
setState("ham.0.DWD-lila.DWD-lila.On"/*On*/, false);
setState("ham.0.DWD-rot.DWD-rot.On"/*On*/, true);
sendTo("lametric", "notification", {priority: "warning",iconType: "none",sound: "thunder",lifeTime: 10000,icon: 'i9539',text: 'DWD Warnung - Stufe 3',cycles: 5});}
});
on({id: "dwd.0.warning.severity"/*Warning severity*/, change: "ne"}, async function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (true && getState("dwd.0.warning.severity").val == 4) {
setState("ham.0.DWD-aus.DWD-aus.On"/*On*/, false);
setState("ham.0.DWD-gelb.DWD-gelb.On"/*On*/, false);
setState("ham.0.DWD-orange.DWD-orange.On"/*On*/, false);
setState("ham.0.DWD-rot.DWD-rot.On"/*On*/, false);
setState("ham.0.DWD-lila.DWD-lila.On"/*On*/, true);
sendTo("lametric", "notification", {priority: "warning",iconType: "alert",sound: "alarm1",lifeTime: 10000,icon: 'i45966',text: 'DWD Warnung - Stufe 4',cycles: 10});}
});
on({id: "dwd.0.warning.severity"/*Warning severity*/, change: "ne"}, async function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (getState("dwd.0.warning.severity").val == 0) {
setState("ham.0.DWD-aus.DWD-aus.On"/*On*/, true);
}
setState("ham.0.DWD-gelb.DWD-gelb.On"/*On*/, false);
setState("ham.0.DWD-orange.DWD-orange.On"/*On*/, false);
setState("ham.0.DWD-rot.DWD-rot.On"/*On*/, false);
setState("ham.0.DWD-lila.DWD-lila.On"/*On*/, false);
});
Vielen Dank für Euren Input!
VG sometime