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. Blockly
  5. Gibt es in Blockly Block-Lokale Variablen?

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Gibt es in Blockly Block-Lokale Variablen?

Geplant Angeheftet Gesperrt Verschoben Blockly
13 Beiträge 6 Kommentatoren 300 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.
  • MartinPM Online
    MartinPM Online
    MartinP
    schrieb am zuletzt editiert von MartinP
    #1

    Also, das was man in Javascript innerhalb eines { ... } Blocks hinter dem Schlüsselwort "let" deklariert...

    https://www.w3schools.com/js/js_scope.asp

    // code here can NOT use carName
    
    function myFunction() {
      let carName = "Volvo";
      // code here CAN use carName
    }
    
    // code here can NOT use carName 
    

    Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
    Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
    Linux pve 6.8.12-16-pve
    6 GByte RAM für den Container
    Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
    Remote-Access über Wireguard der Fritzbox

    BananaJoeB 1 Antwort Letzte Antwort
    0
    • MartinPM MartinP

      Also, das was man in Javascript innerhalb eines { ... } Blocks hinter dem Schlüsselwort "let" deklariert...

      https://www.w3schools.com/js/js_scope.asp

      // code here can NOT use carName
      
      function myFunction() {
        let carName = "Volvo";
        // code here CAN use carName
      }
      
      // code here can NOT use carName 
      
      BananaJoeB Online
      BananaJoeB Online
      BananaJoe
      Most Active
      schrieb am zuletzt editiert von BananaJoe
      #2

      @martinp naja, ja, wenn du eine JavaScript Funktion in Blockly baust, ja, in der hast du das.
      Bzw. deren Parameter wären auch nur lokal

      Also die Funktionsblöcke in denen du JavaScript Code verwenden kannst.
      Bei den Funktionsblöcken mit Blockly müsste das eigentlich auch so sein das diese nur innerhalb gültig sind (auch wenn diese dann global angezeigt werden).

      ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

      paul53P 1 Antwort Letzte Antwort
      0
      • HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von
        #3

        @martinp ich kann kein js, aber ist das nicht setze car name auf "volvo"?

        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        CodierknechtC MartinPM 2 Antworten Letzte Antwort
        0
        • HomoranH Homoran

          @martinp ich kann kein js, aber ist das nicht setze car name auf "volvo"?

          CodierknechtC Online
          CodierknechtC Online
          Codierknecht
          Developer Most Active
          schrieb am zuletzt editiert von Codierknecht
          #4

          @homoran
          Prinzipiell schon.
          Aber die Variable ist damit global für das gesamte Script.

          58106e03-bcd4-4993-912f-0ff3397d1465-image.png
          ee5f08fe-d432-4734-aa5e-98f828edf82b-image.png

          @MartinP sucht einen Variable wie hier value, die nur in dem Block gültig ist.
          AFAIK geht das direkt in Blockly nicht. Da müsste man Funktionen verwenden, wie @BananaJoe es vorgeschlagen hat.

          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
          HmIP|ZigBee|Tasmota|Unifi
          Zabbix Certified Specialist
          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

          HomoranH 1 Antwort Letzte Antwort
          0
          • HomoranH Homoran

            @martinp ich kann kein js, aber ist das nicht setze car name auf "volvo"?

            MartinPM Online
            MartinPM Online
            MartinP
            schrieb am zuletzt editiert von
            #5

            @homoran nein, das ist das einzige Vorkommen von carName;

            Außerhalb der Funktion würde man carName mit "var carName" definieren.

            Und da passiert auch mir den Variablen, die man sich in Blockly definiert, in dem jeweiligen View...

            67a531d7-dc87-4cc3-95c8-9ceb0fee1a68-grafik.png

            Für interne Zwecke benutzt Blockly das aber schon.
            Bei vorher mit var definierten Variablen wird das let weggelassen...

            var ActTime, LastSeen, ThermostatIsAlive;
            
            ....
            
            on({ id: 'mqtt.0.thermostat.sensors.raum.temperature' /* thermostat/sensors/raum/temperature */, change: 'any' }, async (obj) => {
              let value = obj.state.val;
              let oldValue = obj.oldState.val;
              ActTime = (new Date().getTime());
            ....
            

            Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
            Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
            Linux pve 6.8.12-16-pve
            6 GByte RAM für den Container
            Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
            Remote-Access über Wireguard der Fritzbox

            1 Antwort Letzte Antwort
            0
            • CodierknechtC Codierknecht

              @homoran
              Prinzipiell schon.
              Aber die Variable ist damit global für das gesamte Script.

              58106e03-bcd4-4993-912f-0ff3397d1465-image.png
              ee5f08fe-d432-4734-aa5e-98f828edf82b-image.png

              @MartinP sucht einen Variable wie hier value, die nur in dem Block gültig ist.
              AFAIK geht das direkt in Blockly nicht. Da müsste man Funktionen verwenden, wie @BananaJoe es vorgeschlagen hat.

              HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #6

              @codierknecht sagte in Gibt es in Blockly Block-Lokale Variablen?:

              Aber die Variable ist damit global für das gesamte Script.

              und was wäre daran schlimm?

              @martinp sagte in Gibt es in Blockly Block-Lokale Variablen?:

              in dem jeweiligen View...

              wenn das nichts nmit vis zu tun hat, habt ihr mich endgültig abgehängt :grin:
              wenn doch erst recht

              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              CodierknechtC MartinPM 2 Antworten Letzte Antwort
              0
              • HomoranH Homoran

                @codierknecht sagte in Gibt es in Blockly Block-Lokale Variablen?:

                Aber die Variable ist damit global für das gesamte Script.

                und was wäre daran schlimm?

                @martinp sagte in Gibt es in Blockly Block-Lokale Variablen?:

                in dem jeweiligen View...

                wenn das nichts nmit vis zu tun hat, habt ihr mich endgültig abgehängt :grin:
                wenn doch erst recht

                CodierknechtC Online
                CodierknechtC Online
                Codierknecht
                Developer Most Active
                schrieb am zuletzt editiert von Codierknecht
                #7

                @homoran sagte in Gibt es in Blockly Block-Lokale Variablen?:

                und was wäre daran schlimm?

                Schlimm wäre da nix - muss man halt beachten.
                Eine globale Variable kannst Du in allen Blöcken verändern.
                Wird sie nur im jeweiligen Block definiert, hat jeder Block "seine eigene" Variable - mit ggf. gleichem Namen.
                Das verhindert unerwünschte Seiteneffekte.

                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                HmIP|ZigBee|Tasmota|Unifi
                Zabbix Certified Specialist
                Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                1 Antwort Letzte Antwort
                0
                • HomoranH Homoran

                  @codierknecht sagte in Gibt es in Blockly Block-Lokale Variablen?:

                  Aber die Variable ist damit global für das gesamte Script.

                  und was wäre daran schlimm?

                  @martinp sagte in Gibt es in Blockly Block-Lokale Variablen?:

                  in dem jeweiligen View...

                  wenn das nichts nmit vis zu tun hat, habt ihr mich endgültig abgehängt :grin:
                  wenn doch erst recht

                  MartinPM Online
                  MartinPM Online
                  MartinP
                  schrieb am zuletzt editiert von
                  #8

                  @homoran Das geht da schon etwas in die Interna der Javascript-Ausführung.

                  Ich bin da auch noch nicht so belesen (da C++ mein Alltagsgeschäft ist), inwieweit Javascript da Multitasking-Problematiken ähnlich C++ hat.

                  Wenn diese beiden Trigger GENAU GLEICHZEITIG feuern, würde es in C++ zu Problemen kommen:

                  63df9ffc-81f0-455b-bf7e-6f48774c32fb-grafik.png

                  Nach Nachlesen ist aber Javascript anscheinend in diesem engen Zusammenhang single-Threaded. Die beiden Blöcke können nicht parallel ineinander verschaltelt ausgeführt werden, was zu Problemen führen könnte, wenn beide Blöcke auf die gleiche Variable zugreifen ...

                  damit ist das Ganze eher eine akademische Diskussion. ein let und ein var wird wohl kaum einen Unterschied in Performance und Speicherverbrauch machen, im Rahmen wie man es hier gebraucht ...

                  Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                  Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
                  Linux pve 6.8.12-16-pve
                  6 GByte RAM für den Container
                  Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                  Remote-Access über Wireguard der Fritzbox

                  CodierknechtC paul53P 2 Antworten Letzte Antwort
                  1
                  • MartinPM MartinP

                    @homoran Das geht da schon etwas in die Interna der Javascript-Ausführung.

                    Ich bin da auch noch nicht so belesen (da C++ mein Alltagsgeschäft ist), inwieweit Javascript da Multitasking-Problematiken ähnlich C++ hat.

                    Wenn diese beiden Trigger GENAU GLEICHZEITIG feuern, würde es in C++ zu Problemen kommen:

                    63df9ffc-81f0-455b-bf7e-6f48774c32fb-grafik.png

                    Nach Nachlesen ist aber Javascript anscheinend in diesem engen Zusammenhang single-Threaded. Die beiden Blöcke können nicht parallel ineinander verschaltelt ausgeführt werden, was zu Problemen führen könnte, wenn beide Blöcke auf die gleiche Variable zugreifen ...

                    damit ist das Ganze eher eine akademische Diskussion. ein let und ein var wird wohl kaum einen Unterschied in Performance und Speicherverbrauch machen, im Rahmen wie man es hier gebraucht ...

                    CodierknechtC Online
                    CodierknechtC Online
                    Codierknecht
                    Developer Most Active
                    schrieb am zuletzt editiert von
                    #9

                    @martinp sagte in Gibt es in Blockly Block-Lokale Variablen?:

                    Wenn diese beiden Trigger GENAU GLEICHZEITIG feuern, würde es in C++ zu Problemen kommen:

                    Nö - das sind ja jeweils lokale Variablen.

                    f724348b-23d3-4746-8da1-4c010eab8a71-image.png

                    Aber das hier könnte Probleme bereiten:
                    f1f6392b-78b3-43d9-9789-31fe47cd8bcf-image.png
                    c7df8911-fce2-44b4-a1f4-7a27e33c332e-image.png

                    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                    Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                    HmIP|ZigBee|Tasmota|Unifi
                    Zabbix Certified Specialist
                    Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                    haus-automatisierungH 1 Antwort Letzte Antwort
                    0
                    • MartinPM MartinP

                      @homoran Das geht da schon etwas in die Interna der Javascript-Ausführung.

                      Ich bin da auch noch nicht so belesen (da C++ mein Alltagsgeschäft ist), inwieweit Javascript da Multitasking-Problematiken ähnlich C++ hat.

                      Wenn diese beiden Trigger GENAU GLEICHZEITIG feuern, würde es in C++ zu Problemen kommen:

                      63df9ffc-81f0-455b-bf7e-6f48774c32fb-grafik.png

                      Nach Nachlesen ist aber Javascript anscheinend in diesem engen Zusammenhang single-Threaded. Die beiden Blöcke können nicht parallel ineinander verschaltelt ausgeführt werden, was zu Problemen führen könnte, wenn beide Blöcke auf die gleiche Variable zugreifen ...

                      damit ist das Ganze eher eine akademische Diskussion. ein let und ein var wird wohl kaum einen Unterschied in Performance und Speicherverbrauch machen, im Rahmen wie man es hier gebraucht ...

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

                      @martinp sagte: Trigger GENAU GLEICHZEITIG feuern

                      "GENAU GLEICHZEITIG" gibt es in Node.js nicht.

                      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
                      • CodierknechtC Codierknecht

                        @martinp sagte in Gibt es in Blockly Block-Lokale Variablen?:

                        Wenn diese beiden Trigger GENAU GLEICHZEITIG feuern, würde es in C++ zu Problemen kommen:

                        Nö - das sind ja jeweils lokale Variablen.

                        f724348b-23d3-4746-8da1-4c010eab8a71-image.png

                        Aber das hier könnte Probleme bereiten:
                        f1f6392b-78b3-43d9-9789-31fe47cd8bcf-image.png
                        c7df8911-fce2-44b4-a1f4-7a27e33c332e-image.png

                        haus-automatisierungH Online
                        haus-automatisierungH Online
                        haus-automatisierung
                        Developer Most Active
                        schrieb am zuletzt editiert von
                        #11

                        @codierknecht sagte in Gibt es in Blockly Block-Lokale Variablen?:

                        Aber das hier könnte Probleme bereiten:

                        Naja, da benutzt man aber auch bewusst die gleiche Variable. Ist nicht so schön.

                        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                        🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                        📚 Meine inoffizielle ioBroker Dokumentation

                        CodierknechtC 1 Antwort Letzte Antwort
                        0
                        • haus-automatisierungH haus-automatisierung

                          @codierknecht sagte in Gibt es in Blockly Block-Lokale Variablen?:

                          Aber das hier könnte Probleme bereiten:

                          Naja, da benutzt man aber auch bewusst die gleiche Variable. Ist nicht so schön.

                          CodierknechtC Online
                          CodierknechtC Online
                          Codierknecht
                          Developer Most Active
                          schrieb am zuletzt editiert von
                          #12

                          @haus-automatisierung
                          Ich gebe ja zu: Das ist schon ein ziemlich konstruiertes Beispiel. Sowas kommt in freier Wildbahn wohl kaum vor ;-)

                          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                          HmIP|ZigBee|Tasmota|Unifi
                          Zabbix Certified Specialist
                          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                          1 Antwort Letzte Antwort
                          0
                          • BananaJoeB BananaJoe

                            @martinp naja, ja, wenn du eine JavaScript Funktion in Blockly baust, ja, in der hast du das.
                            Bzw. deren Parameter wären auch nur lokal

                            Also die Funktionsblöcke in denen du JavaScript Code verwenden kannst.
                            Bei den Funktionsblöcken mit Blockly müsste das eigentlich auch so sein das diese nur innerhalb gültig sind (auch wenn diese dann global angezeigt werden).

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

                            @bananajoe sagte: Bei den Funktionsblöcken mit Blockly müsste das eigentlich auch so sein das diese nur innerhalb gültig sind

                            Nein, nur vordefinierte Variablen (value, oldValue) oder Funktionsparameter sind lokal. Alle selbst erstellten Variablen sind global, außer sie sind Funktionsparameter. Die Variable result ist lokal, obwohl sie auch global deklariert ist.

                            Blockly_temp.JPG

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


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            738

                            Online

                            32.6k

                            Benutzer

                            82.1k

                            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