Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Mehrere SetState schalten nicht

    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

    Mehrere SetState schalten nicht

    This topic has been deleted. Only users with topic management privileges can see it.
    • CrunkFX
      CrunkFX Forum Testing last edited by

      Folgende Funktion habe ich.
      Zeile 2 WIrd ordnungsgemäß ausgeführt, 3+4 leider gar nicht.
      Hab ich da nen Denkfehler?

      schedule("59 23 * * *", function () {
          setState(end_str1, getState(shelly_kwh).val);
          setState(dif_str1, (getState(end_str1).val - getState(start_str1).val));
          setState(kosten_tag_gestern, (getState(dif_str1).val * preis_kwh));
      });
      
      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @CrunkFX last edited by

        @CrunkFX
        Man kann den Wert, den man gerade mit setState() erneuert hat, nicht sofort mit getState() auslesen, da setState() asynchron arbeitet, d.h. zum Zeitpunkt von getState() noch nicht fertig ist. Verwende Variablen !

        CrunkFX 1 Reply Last reply Reply Quote 0
        • CrunkFX
          CrunkFX Forum Testing @paul53 last edited by

          @paul53 aber end_str1 und dif_str1 sind doch variablen oder verstehe ich dich falsch?

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

            @CrunkFX sagte:

            sind doch variablen oder verstehe ich dich falsch?

            Das sind Datenpunkte, keine Variablen.

            CrunkFX 1 Reply Last reply Reply Quote 0
            • CrunkFX
              CrunkFX Forum Testing @paul53 last edited by CrunkFX

              @paul53 Meinst du das so?

              let test = getstate(dp).val
              setstate(dp2,test)
              
              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @CrunkFX last edited by paul53

                @CrunkFX sagte:

                Meinst du das so?

                Ja.

                schedule("59 23 * * *", function () {
                    let end = getState(shelly_kwh).val;
                    setState(end_str1, end);
                    let diff = end - getState(start_str1).val;
                    setState(dif_str1, diff);
                    setState(kosten_tag_gestern, diff * preis_kwh));
                });
                
                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                934
                Online

                31.9k
                Users

                80.1k
                Topics

                1.3m
                Posts

                2
                6
                271
                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