NEWS
If statement wird nicht ausgeführt
-
Hallo zusammen!
Ich habe einen Multisensor, der einen Helligkeitswert liefert.
Der Datenpunkt
fhem.0.ug_buero_multisensor_zwave.luminance
liefert bspw. als Wert60 Lux
, also einen String.Ich habe daher in einem Blockly Script zunächst eine Variable
luminance
erstellt, die bei Änderung des Objektwertes diesen in eine Zahl umwandelt. Aus60 Lux
wird dann60
. Das läuft und lässt sich auch im Log per debug output ablesen.Nun möchte ich eine eigentlich simple IF Abfrage erstellen. Falls der Wert von
luminance
größer ist als 50, soll eine Sonoff Steckdose eingeschaltet werden. Dies habe ich mittelssteuere...
-Element realisiert. Wenn ich dieses Blockly-Element isoliert ausführen lasse, schaltet sich die Steckdose ein.Mein Problem liegt anscheinend in dem
falls...mache
Block.Vermutlich ist die Lösung ziemlich simpel.
Hier das Script:
var luminance; on({id: "fhem.0.ug_buero_multisensor_zwave.luminance"/*Multisensor Büro luminance*/, change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; luminance = parseFloat(getState("fhem.0.ug_buero_multisensor_zwave.luminance").val); console.log(('luminance: ' + String(luminance))); }); if (luminance > 50) { setState("mqtt.0.smarthome.ug.sz.bueroheizung.cmnd.Power"/*smarthome/ug/sz/bueroheizung/cmnd/Power*/, 'on'); }
Besten Dank...
-
Das If Statement wird nur einmal bei Skriptstart ausgeführt. Wenn du es in Verbindung mit dem Trigger ausführen willst muss es auch innerhalb des Trigger-Blocks stehen.
A.
-
@Asgothian
Habs geblickt. Danke!