Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. If statement wird nicht ausgeführt

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    If statement wird nicht ausgeführt

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      Kraxelhuber last edited by

      Hallo zusammen!

      Ich habe einen Multisensor, der einen Helligkeitswert liefert.

      Der Datenpunkt fhem.0.ug_buero_multisensor_zwave.luminance liefert bspw. als Wert 60 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. Aus 60 Lux wird dann 60. 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 mittels steuere...-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:

      162bb956-8e12-4adc-a00a-a74d9b88873f-image.png

      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...

      Asgothian 1 Reply Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer @Kraxelhuber last edited by

        @Kraxelhuber

        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.

        K 1 Reply Last reply Reply Quote 0
        • K
          Kraxelhuber @Asgothian last edited by

          @Asgothian
          Habs geblickt. Danke! 🙂

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Support us

          ioBroker
          Community Adapters
          Donate

          841
          Online

          32.0k
          Users

          80.5k
          Topics

          1.3m
          Posts

          blockly javascript
          2
          3
          158
          Loading More Posts
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes
          Reply
          • Reply as topic
          Log in to reply
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
          The ioBroker Community 2014-2023
          logo