Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Variablen Beständigkeit

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    917

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Variablen Beständigkeit

Geplant Angeheftet Gesperrt Verschoben JavaScript
7 Beiträge 4 Kommentatoren 231 Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • D Offline
    D Offline
    downbroker
    schrieb am zuletzt editiert von
    #1

    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

    arteckA paul53P 2 Antworten Letzte Antwort
    0
    • D downbroker

      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

      arteckA Offline
      arteckA Offline
      arteck
      Developer Most Active
      schrieb am zuletzt editiert von arteck
      #2

      @downbroker sagte in Variablen Beständigkeit:

      state

      ist das nicht ein reserviertes Wort ??

      nenn es mal anders..

      zigbee hab ich, zwave auch, nuc's genauso und HA auch

      D 1 Antwort Letzte Antwort
      0
      • D downbroker

        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

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #3

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

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • arteckA arteck

          @downbroker sagte in Variablen Beständigkeit:

          state

          ist das nicht ein reserviertes Wort ??

          nenn es mal anders..

          D Offline
          D Offline
          downbroker
          schrieb am zuletzt editiert von
          #4

          @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

          paul53P T 2 Antworten Letzte Antwort
          0
          • D downbroker

            @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

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #5

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

            Variablen werden nicht gelöscht.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Antwort Letzte Antwort
            0
            • D downbroker

              @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

              T Nicht stören
              T Nicht stören
              ticaki
              schrieb am zuletzt editiert von ticaki
              #6

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

              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

              Spenden

              1 Antwort Letzte Antwort
              0
              • D Offline
                D Offline
                downbroker
                schrieb am zuletzt editiert von
                #7

                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 Antwort Letzte Antwort
                0
                Antworten
                • In einem neuen Thema antworten
                Anmelden zum Antworten
                • Älteste zuerst
                • Neuste zuerst
                • Meiste Stimmen


                Support us

                ioBroker
                Community Adapters
                Donate

                581

                Online

                32.6k

                Benutzer

                82.2k

                Themen

                1.3m

                Beiträge
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Anmelden

                • Du hast noch kein Konto? Registrieren

                • Anmelden oder registrieren, um zu suchen
                • Erster Beitrag
                  Letzter Beitrag
                0
                • Home
                • Aktuell
                • Tags
                • Ungelesen 0
                • Kategorien
                • Unreplied
                • Beliebt
                • GitHub
                • Docu
                • Hilfe