Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Frage zu on Funktion

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Frage zu on Funktion

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

      Hallo,

      ich habe eine Verständnisfrage zur on Funktion

      Diese Funktion wird immmer dann ausgeführt, wenn sich der Zustand vom Datenpunkt ändert. Würde sie dann in meinem Beispiel zweimal durchlaufen, wenn "Datenpunkt" Bool true irgendwo in der Vis gesetzt würde und durch das Script wieder gelöscht. Also hier im Beispiel wäre das Script selbst für die zweite Änderung verantwortlich und "Datenpunkt" würde zwei mal auf false gesetzt? Verstehe ich das richtig ?

      on("Datenpunkt", function(dp) { 
         setState(Datenpunkt, false);
      });
      

      Jetzt das gleiche, nur mit Bedingung "gt" . New value must be greater than old value (state.val > oldState.val) steht in der Doku über on. Hier würde setState nur ausgefürht, wenn "Datenpunkt" von false auf true wechselt. Ist das richtig ?

      on({id: "Datenpunkt", change: "gt"}, function (obj) {
         setState(Datenpunkt, false);
      });
      

      Und hier würde setState nur ausgefürht, wenn "Datenpunkt" von true auf false wechselt. Ist das richtig ?

      on({id: "Datenpunkt", change: "lt"}, function (obj) {
         setState(Datenpunkt, false);
      });
      

      Hoffe ich konnte mir klar genug ausdrücken.

      Beste Grüße.

      Tobo

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        @TOBO:

        Würde sie dann in meinem Beispiel zweimal durchlaufen, wenn "Datenpunkt" Bool true irgendwo in der Vis gesetzt würde und durch das Script wieder gelöscht `
        Ja.
        @TOBO:

        Also hier im Beispiel wäre das Script selbst für die zweite Änderung verantwortlich und "Datenpunkt" würde zwei mal auf false gesetzt? Verstehe ich das richtig ? `
        Nein. Erst auf true, dann gleich wieder auf false. Es wird ja nur bei Wertänderung ausgelöst. Teste selbst:

        on("Datenpunkt", function(dp) {
           setState(Datenpunkt, false);
           log('ne ' + dp.state.val);
        });
        

        @TOBO:

        Jetzt das gleiche, nur mit Bedingung "gt". Hier würde setState nur ausgefürht, wenn "Datenpunkt" von false auf true wechselt. Ist das richtig ? `
        Ja.

        1 Reply Last reply Reply Quote 0
        • T
          TOBO last edited by

          @paul53:

          Nein. Erst auf true, dann gleich wieder auf false. Es wird ja nur bei Wertänderung ausgelöst. Teste selbst:

          on("Datenpunkt", function(dp) {
             setState(Datenpunkt, false);
             log('ne ' + dp.state.val);
          });
          ```` `  
          

          Doch, weil ja die Funktion einmal auf Wertänderung reagiert und dann selbst den Wert von true auf false ändert und sich quasi somit seblst noch mal aufruft.

          Habe nun alle drei Möglichkeiten getestet und es ist genauso, wie ich es vermutet habe. Ich hatte nämlich bei einigen Funktionen ganz komische Ergebnisse, weil sie

          eben immer auf Wertänderung reagieren und dann zwei mal durchlaufen wurden. Nun verstehe ich das auch und kann das ändern.

          Gruß.

          Tobo

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

          Support us

          ioBroker
          Community Adapters
          Donate

          897
          Online

          31.7k
          Users

          79.8k
          Topics

          1.3m
          Posts

          2
          3
          325
          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