Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Zugriff auf interne Blockly Variablen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] Zugriff auf interne Blockly Variablen

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

      Ich habe folgendes Blockly angelegt:

      7a3ac466-9eb6-4b12-be52-d95a16fc0758-grafik.png

      Schalte ich nun in die Javascript Ansicht um, sehe ich folgendes ...

      on({id: "0_userdata.0.Heizung.Nachtabsenkung"/*Nachtabsenkung*/, change: "any"}, async function (obj) {
        let value = obj.state.val;
        let oldValue = obj.oldState.val;
        if (getState("0_userdata.0.Heizung.Nachtabsenkung").val == true) {
          console.log('Setze Solltemperatur "Nacht"');
          setState("mqtt.0.thermostat.desired.temperature"/*thermostat/desired/temperature*/, 18.7);
        } else {
          console.log('Setze Solltemperatur "Tag"');
          setState("mqtt.0.thermostat.desired.temperature"/*thermostat/desired/temperature*/, 21.9);
        }
      });
      
      
      

      Kommt man irgendwie ohne Verrenkungen an "value" und "oldValue" über Blockly heran? - würde ggfs. den "falls" Block vereinfachen....

      Homoran M paul53 3 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @MartinP last edited by

        @martinp sagte in Zugriff auf interne Blockly Variablen:

        Schalte ich nun in die Javascript Ansicht um, sehe ich folgendes ...

        und?

        wo ist das Problem?

        was hat das mit dem Threadtitel zu tun?

        MartinP 1 Reply Last reply Reply Quote 0
        • M
          MCU @MartinP last edited by

          @martinp Trigger -> objectId
          a5aa50d4-5a07-41b0-bfd1-aab015a879d6-image.png

          1 Reply Last reply Reply Quote 0
          • MartinP
            MartinP @Homoran last edited by

            Ohh, da habe ich die Frage noch in den Code - Block gesteckt - werde umformatieren 😉

            Zeit für frische Luft ...

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

              @martinp sagte: Kommt man irgendwie ohne Verrenkungen an "value" und "oldValue" über Blockly heran?

              Ja. Variable mit identischem Bezeichner erstellen.

              Blockly_temp.JPG

              1 Reply Last reply Reply Quote 1
              • Homoran
                Homoran Global Moderator Administrators @MartinP last edited by Homoran

                @martinp sagte in Zugriff auf interne Blockly Variablen:

                Ohh, da habe ich die Frage noch in den Code - Block gesteckt

                Das erklärt einiges.
                da ich kein js kann hab ich mir den Code nicht angesehen.

                ja Wert und vorheriger Wert des triggernden Datenpunkts bekommst du mit dem Block, den @MCU dir gezeigt hat.
                aber leider nur von diesem DP

                MartinP 1 Reply Last reply Reply Quote 0
                • MartinP
                  MartinP @Homoran last edited by MartinP

                  Hat gut funktioniert ...

                  Der Thermostat hat einen Datenpunkt "Solltemperatur" der zu bestimmten Zeiten auf Nacht- bzw Tagtemperatur gesetzt werden soll...

                  Mehrschrittiges Vorgehen

                  Usersdata-Datenpunkt bool "Nachtabsenkung" (Nachtabsenkung immer zu gleicher Zeit beginnen, Sa/So erfolgt die Taganhebung etwas später. als Werktags)

                  1326f5f9-3772-42e7-891d-8dee9c88b5ac-grafik.png

                  Hier ein Trick mit "wurde aktualisiert" statt "wurde geändert", um die Solltemperatur zu setzen:

                  f4acd711-ceba-415c-a4f9-edf7eeb77909-grafik.png

                  Hier wird über die Aktualisierung des Datenpunktes "Raumtemperatur" per 30 Sekunden-Timeout überwacht, ob der ESP8266 des Raumthermostaten noch arbeitet.
                  2f7ff832-a632-479b-be85-cedd4a929fc2-grafik.png
                  Durch die Aktualiserung des "Nachtabsenkung" Datenpunktes (ohne den Wert zu ändern) wird das Setzen des Solltemperatur-Datenpunktes ausgelöst. Ansonsten würde der Thermostat mit der festverdrahteten Temperatur arbeiten, die die Thermostat-Software bei Neustart einstellt, bis das nächste mal ein Tag <-> Nacht Wechsel passiert ...

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  788
                  Online

                  31.7k
                  Users

                  79.8k
                  Topics

                  1.3m
                  Posts

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