Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Variablen Beständigkeit

    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

    Variablen Beständigkeit

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

      Hallo,
      ich habe hier irgendwie einen Denkfehler und bräuchte mal Hilfe.
      Folgender Code:

      var state = 0;
      
      function test() {
           if (state == 0 && getState(...).val > 0){
             state = 1;
             tue irgendetwas...
           }
      }
      on({id: '...', change: 'ne'}, function (obj) {
        test();
      });
      
      

      Die If Bedingung ist nie wahr, da state = undefined ist. Wenn ich das ganze über ein Objekt anstatt der Variable ausführe, funktioniert der Code.
      Frage:
      Wie muss man die Variable definieren, dass diese solange existiert, bis das Script beendet wird etc., oder funktioniert das nur über Objekte?

      Vielen dank

      Lg

      arteck paul53 2 Replies Last reply Reply Quote 0
      • arteck
        arteck Developer Most Active @downbroker last edited by arteck

        @downbroker sagte in Variablen Beständigkeit:

        state

        ist das nicht ein reserviertes Wort ??

        nenn es mal anders..

        D 1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @downbroker last edited by paul53

          @downbroker sagte: Die If Bedingung ist nie wahr, da state = undefined ist.

          Das kann ich nicht nachvollziehen.

          var state = 0;
           
          function test() {
               if (state == 0) {
                 state = 1;
                 log('' + state);
               }
          }
          
          test();
          

          funktioniert wie erwartet.

          1 Reply Last reply Reply Quote 0
          • D
            downbroker @arteck last edited by

            @arteck said in Variablen Beständigkeit:

            @downbroker sagte in Variablen Beständigkeit:

            state

            ist das nicht ein reserviertes Wort ??

            nenn es mal anders..

            In dem script lautet die Variable stategas z.B., ich hatte das jetzt nur vereinfacht.
            Aber danke für den Tipp.

            @paul53 said in Variablen Beständigkeit:

            @downbroker sagte: Die If Bedingung ist nie wahr, da state = undefined ist.

            Das kann ich nicht nachvollziehen.

            var state = 0;
             
            function test() {
                 if (state == 0) {
                   state = 1;
                   log('' + state);
                 }
            }
            
            test();
            

            funktioniert wie erwartet.

            Das funktioniert natürlich bei mir auch, allerdings wird die Funktion erst aufgerufen, sobald mein ebus einen Statuswechsel meldet(z.B.: Gasbrenner läuft) mit:

            on({id: 'ebus.0.GAS.messages.pumpe.fields.status.value', change: 'ne'}, function (obj) {
              test();
            });
            

            zu diesem Zeitpunkt ist allerdings keine Variable mehr vorhanden, da die Variablen wohl nach dem ersten durchlauf gelöscht werden.

            Vielen Dank

            LG

            paul53 T 2 Replies Last reply Reply Quote 0
            • paul53
              paul53 @downbroker last edited by

              @downbroker sagte: da die Variablen wohl nach dem ersten durchlauf gelöscht werden.

              Variablen werden nicht gelöscht.

              1 Reply Last reply Reply Quote 0
              • T
                ticaki Developer @downbroker last edited by ticaki

                @downbroker
                ist der Datenpunkt bei on() und test() gleich? Meine die ... ?

                1 Reply Last reply Reply Quote 0
                • D
                  downbroker last edited by

                  Fehler gefunden und läuft wie gewünscht. Bei einer Funktion war noch die Variable "state" vorhanden, welche wohl das ganze Script durcheinander gebracht hat. Namen geändert und fertig wie @arteck vermutet hat.

                  Sorry und Vielen dank schon mal!

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  908
                  Online

                  31.9k
                  Users

                  80.2k
                  Topics

                  1.3m
                  Posts

                  4
                  7
                  212
                  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