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. Anfängerfrage: Reihenfolge von Skriptausführung

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    124

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

Anfängerfrage: Reihenfolge von Skriptausführung

Geplant Angeheftet Gesperrt Verschoben Blockly
27 Beiträge 8 Kommentatoren 2.8k 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.
  • H Offline
    H Offline
    Harald-ohne-Nummer
    schrieb am zuletzt editiert von
    #1

    Hallo!

    Sorry, für die Anfängerfrage...

    Ich dachte zunächst, dass Blockly-Skripte "von oben nach unten" abgearbeitet werden. Ist aber wohl nicht so. Wenn ich mehrere "Falls Objekt ..." - Trigger-Blöcke passend übereinanderpuzzle, dann ist offenbar jeder für sich aktiv. D.h. das Skript steigt auch beim zweiten Block ein, falls dessen Trigger ausgelöst wird, aber erste Block nicht getriggert wird. Stimmt das so?

    Und wenn beide Blöcke den selben Trigger verwenden, werden dann beide gleichzeitig durchlaufen?

    Danke!

    Harald

    Thomas BraunT W paul53P 3 Antworten Letzte Antwort
    0
    • H Harald-ohne-Nummer

      Hallo!

      Sorry, für die Anfängerfrage...

      Ich dachte zunächst, dass Blockly-Skripte "von oben nach unten" abgearbeitet werden. Ist aber wohl nicht so. Wenn ich mehrere "Falls Objekt ..." - Trigger-Blöcke passend übereinanderpuzzle, dann ist offenbar jeder für sich aktiv. D.h. das Skript steigt auch beim zweiten Block ein, falls dessen Trigger ausgelöst wird, aber erste Block nicht getriggert wird. Stimmt das so?

      Und wenn beide Blöcke den selben Trigger verwenden, werden dann beide gleichzeitig durchlaufen?

      Danke!

      Harald

      Thomas BraunT Online
      Thomas BraunT Online
      Thomas Braun
      Most Active
      schrieb am zuletzt editiert von Thomas Braun
      #2

      @harald-ohne-nummer

      Zeig mal so ein 'zusammengepuzzeltes' Blockly.
      'Trigger in Trigger' geht z. B. nicht.

      Es wird natürlich immer die getriggerte Passage ausgeführt.

      Linux-Werkzeugkasten:
      https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
      NodeJS Fixer Skript:
      https://forum.iobroker.net/topic/68035/iob-node-fix-skript
      iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

      H 1 Antwort Letzte Antwort
      0
      • H Harald-ohne-Nummer

        Hallo!

        Sorry, für die Anfängerfrage...

        Ich dachte zunächst, dass Blockly-Skripte "von oben nach unten" abgearbeitet werden. Ist aber wohl nicht so. Wenn ich mehrere "Falls Objekt ..." - Trigger-Blöcke passend übereinanderpuzzle, dann ist offenbar jeder für sich aktiv. D.h. das Skript steigt auch beim zweiten Block ein, falls dessen Trigger ausgelöst wird, aber erste Block nicht getriggert wird. Stimmt das so?

        Und wenn beide Blöcke den selben Trigger verwenden, werden dann beide gleichzeitig durchlaufen?

        Danke!

        Harald

        W Offline
        W Offline
        Wildbill
        schrieb am zuletzt editiert von
        #3

        @harald-ohne-nummer Es gibt da bei Blockly/Javascript kein von oben nach unten. Alle Trigger laufen quasi gleichzeitig ab. Ebenso wie alle Scripte, die parallel gestartet sind.
        Du musst Dir also schon von Anfang an Gedanken machen, was genau wann passieren soll und dann für dieses wann eben den passenden Trigger verwenden. Das kann zeitbasiert sein, eine Reaktion auf einen Melder (Fensterkontakt, Lichtschalter), ein eigens angelegter Datenpunkt, was auch immer.
        Du kannst auch 10x den geichen Trigger in 10 verschiedenen Scripten nehmen, die werden dann eben zeitgleich ausgelöst.

        Gruss, Jürgen

        1 Antwort Letzte Antwort
        0
        • Thomas BraunT Thomas Braun

          @harald-ohne-nummer

          Zeig mal so ein 'zusammengepuzzeltes' Blockly.
          'Trigger in Trigger' geht z. B. nicht.

          Es wird natürlich immer die getriggerte Passage ausgeführt.

          H Offline
          H Offline
          Harald-ohne-Nummer
          schrieb am zuletzt editiert von
          #4

          @thomas-braun So zum Beispiel (hat keinen tieferen Sinn, ist nur Test für mich). Die Blöcke außerhalb der Trigger werden bei Skript-Start einmal durchlaufen, dann nicht mehr. Die Trigger sind aber immer beide aktiv. Ich dachte wegen der graphischen Gestaltung (Puzzle), dass da eine Abfolge wäre.

          2023-08-23_Trigger-Reihenfolge.jpg

          Thomas BraunT 1 Antwort Letzte Antwort
          0
          • W Offline
            W Offline
            Wildbill
            schrieb am zuletzt editiert von
            #5

            @harald-ohne-nummer Jeder Trigger ist immer aktiv und reagiert, sobald seine Bedingung erfüllt ist, egal wo Du ihn in Blockly hinsetzt oder im Javascript-code hinschreibst. Ebenso wird alles, was außerhalb eines Triggers steht genau einmal bein Starten des Scripts (oder des ganzen JS-Adapters) ausgeführt.

            Gruss, Jürgen

            H 1 Antwort Letzte Antwort
            0
            • H Harald-ohne-Nummer

              @thomas-braun So zum Beispiel (hat keinen tieferen Sinn, ist nur Test für mich). Die Blöcke außerhalb der Trigger werden bei Skript-Start einmal durchlaufen, dann nicht mehr. Die Trigger sind aber immer beide aktiv. Ich dachte wegen der graphischen Gestaltung (Puzzle), dass da eine Abfolge wäre.

              2023-08-23_Trigger-Reihenfolge.jpg

              Thomas BraunT Online
              Thomas BraunT Online
              Thomas Braun
              Most Active
              schrieb am zuletzt editiert von
              #6

              @harald-ohne-nummer

              Du könntest den zweiten Triggerblock auch rechts neben den ersten Teil setzen.

              Javaskript ist Ereignis-gesteuert, eintretende Ereignisse lösen also immer weiteres aus.

              Linux-Werkzeugkasten:
              https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
              NodeJS Fixer Skript:
              https://forum.iobroker.net/topic/68035/iob-node-fix-skript
              iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

              H 1 Antwort Letzte Antwort
              0
              • Thomas BraunT Thomas Braun

                @harald-ohne-nummer

                Du könntest den zweiten Triggerblock auch rechts neben den ersten Teil setzen.

                Javaskript ist Ereignis-gesteuert, eintretende Ereignisse lösen also immer weiteres aus.

                H Offline
                H Offline
                Harald-ohne-Nummer
                schrieb am zuletzt editiert von
                #7

                @thomas-braun @Wildbill

                Vielen Dank!!! Für die Antworten und die Geschwindigkeit der Antworten, das hilft mir!

                W T 2 Antworten Letzte Antwort
                0
                • H Harald-ohne-Nummer

                  @thomas-braun @Wildbill

                  Vielen Dank!!! Für die Antworten und die Geschwindigkeit der Antworten, das hilft mir!

                  W Offline
                  W Offline
                  Wildbill
                  schrieb am zuletzt editiert von
                  #8

                  @harald-ohne-nummer Wie Thomas schon schrieb ist das bei Javascript generell so. Ist also keine iobroker-Eigenheit, sondern gilt generell überall wo Javascript oder Blockly Verwendung findet.

                  Gruss, Jürgen

                  1 Antwort Letzte Antwort
                  0
                  • H Harald-ohne-Nummer

                    @thomas-braun @Wildbill

                    Vielen Dank!!! Für die Antworten und die Geschwindigkeit der Antworten, das hilft mir!

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

                    @harald-ohne-nummer
                    Möchte noch anmerken, das nichts gleichzeitig abläuft, sondern immer nacheinander. Auch wenns so schnell ist, dass es nur für deinen Code/Blöcke einen Unterschied macht.

                    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                    Spenden

                    1 Antwort Letzte Antwort
                    2
                    • H Harald-ohne-Nummer

                      Hallo!

                      Sorry, für die Anfängerfrage...

                      Ich dachte zunächst, dass Blockly-Skripte "von oben nach unten" abgearbeitet werden. Ist aber wohl nicht so. Wenn ich mehrere "Falls Objekt ..." - Trigger-Blöcke passend übereinanderpuzzle, dann ist offenbar jeder für sich aktiv. D.h. das Skript steigt auch beim zweiten Block ein, falls dessen Trigger ausgelöst wird, aber erste Block nicht getriggert wird. Stimmt das so?

                      Und wenn beide Blöcke den selben Trigger verwenden, werden dann beide gleichzeitig durchlaufen?

                      Danke!

                      Harald

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

                      @harald-ohne-nummer sagte: wenn beide Blöcke den selben Trigger verwenden, werden dann beide gleichzeitig durchlaufen?

                      Nur "gefühlt" gleichzeitig. Tatsächlich unmittelbar nacheinander, wobei man nicht vorhersagen kann, welcher zuerst.

                      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

                      W 1 Antwort Letzte Antwort
                      1
                      • paul53P paul53

                        @harald-ohne-nummer sagte: wenn beide Blöcke den selben Trigger verwenden, werden dann beide gleichzeitig durchlaufen?

                        Nur "gefühlt" gleichzeitig. Tatsächlich unmittelbar nacheinander, wobei man nicht vorhersagen kann, welcher zuerst.

                        W Offline
                        W Offline
                        Wildbill
                        schrieb am zuletzt editiert von
                        #11

                        @paul53 @ticaki @Harald-ohne-Nummer Das ist eben wie beim Multitasking auf jedem Rechner. Jeder laufende Prozess schein zeitgleich mit den anderen laufenden Prozessen zu laufen. In Wahrheit laufen da je nach Anzahl der Prozessorkerne nur ein paar parallel und das wechselt immer durch. Da es aber erstens für den User nicht vorhersehbar ist, was als nächstes an die Reihe kommt und das so blitzschnell passiert, dass man es eh nicht mitbekommt, ist es für den User quasi gleichzeitig. Also ja, für Dich ist es beim Erstellen eines Blockly oder direkt Javascripts so, dass alle Trigger zeitgleich ablaufen. Das klitzekleine Nacheinander kannst Du weder beeinflussen, noch bekommst Du es mit.

                        Gruss, Jürgen

                        1 Antwort Letzte Antwort
                        0
                        • CodierknechtC Offline
                          CodierknechtC Offline
                          Codierknecht
                          Developer Most Active
                          schrieb am zuletzt editiert von Codierknecht
                          #12

                          @harald-ohne-nummer
                          Löse Dich von dem Gedanken einer prozeduralen Abarbeitung!

                          Jeder Trigger ist ein "Abonnement" auf ein Ereignis. Hast Du zwei Trigger auf das gleiche Event, werden beide auch (mehr oder weniger) gleichzeitig bearbeitet. Dabei ist die Reihenfolge nicht steuerbar.

                          Wenn Du auf ein bestimmtes Event in einer von Dir gewünschten Reihenfolge reagieren willst, darfst Du auch nur einen einzigen Trigger auf das entsprechende Event setzen.
                          Und selbst dann ist die Reihenfolge der Abarbeitung nicht in jedem Fall steuerbar, da vieles in ioBroker asynchron abläuft.

                          Nehmen wir mal ein ganz simples Beispiel:
                          8a13cb54-3ecc-4874-bfbc-67487e9a4c03-image.png
                          Das erste setState in Zeile 2 könnte - aus welchen Gründen auch immer - etwas länger dauern.
                          Du kannst Dich also nicht zu 100% darauf verlassen, dass Zeile 2 bereits ausgeführt wurde, wenn Zeile 3 abgearbeitet wird.
                          Es könnte also passieren, dass das getState in Zeile 3 noch einen alten Wert liest.

                          "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

                          T 1 Antwort Letzte Antwort
                          0
                          • CodierknechtC Codierknecht

                            @harald-ohne-nummer
                            Löse Dich von dem Gedanken einer prozeduralen Abarbeitung!

                            Jeder Trigger ist ein "Abonnement" auf ein Ereignis. Hast Du zwei Trigger auf das gleiche Event, werden beide auch (mehr oder weniger) gleichzeitig bearbeitet. Dabei ist die Reihenfolge nicht steuerbar.

                            Wenn Du auf ein bestimmtes Event in einer von Dir gewünschten Reihenfolge reagieren willst, darfst Du auch nur einen einzigen Trigger auf das entsprechende Event setzen.
                            Und selbst dann ist die Reihenfolge der Abarbeitung nicht in jedem Fall steuerbar, da vieles in ioBroker asynchron abläuft.

                            Nehmen wir mal ein ganz simples Beispiel:
                            8a13cb54-3ecc-4874-bfbc-67487e9a4c03-image.png
                            Das erste setState in Zeile 2 könnte - aus welchen Gründen auch immer - etwas länger dauern.
                            Du kannst Dich also nicht zu 100% darauf verlassen, dass Zeile 2 bereits ausgeführt wurde, wenn Zeile 3 abgearbeitet wird.
                            Es könnte also passieren, dass das getState in Zeile 3 noch einen alten Wert liest.

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

                            @codierknecht
                            mal abgesehen von dem schlechten Stil und dem hohen Ressourcenverbrauch(im Vergleich zu Variablen), wenn man einen Wert schreibt und unmittelbar wieder liest.

                            Bei 2000 Durchläufen war setState(wertA) == getState(wertA)

                            setState schreibt das afaik nur in den Cache und getState liest es daraus, oder? Das wirkliche schreiben läuft dann async ab.

                            offtopic: Womit hast du den screenshot gemacht, der gefällt mir. :)

                            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                            Spenden

                            CodierknechtC 1 Antwort Letzte Antwort
                            0
                            • T ticaki

                              @codierknecht
                              mal abgesehen von dem schlechten Stil und dem hohen Ressourcenverbrauch(im Vergleich zu Variablen), wenn man einen Wert schreibt und unmittelbar wieder liest.

                              Bei 2000 Durchläufen war setState(wertA) == getState(wertA)

                              setState schreibt das afaik nur in den Cache und getState liest es daraus, oder? Das wirkliche schreiben läuft dann async ab.

                              offtopic: Womit hast du den screenshot gemacht, der gefällt mir. :)

                              CodierknechtC Offline
                              CodierknechtC Offline
                              Codierknecht
                              Developer Most Active
                              schrieb am zuletzt editiert von
                              #14

                              @ticaki sagte in Anfängerfrage: Reihenfolge von Skriptausführung:

                              Womit hast du den screenshot gemacht, der gefällt mir

                              SnagIt von TechSmith.
                              Ist aber nicht gerade billig (sponsored by company).

                              "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
                              • arteckA Offline
                                arteckA Offline
                                arteck
                                Developer Most Active
                                schrieb am zuletzt editiert von arteck
                                #15

                                @ticaki sagte in Anfängerfrage: Reihenfolge von Skriptausführung:

                                Bei 2000 Durchläufen war setState(wertA) == getState(wertA)

                                bei eigen angelegten ja...

                                bei Geräten nicht.. da wird auf ack gewartet.. da kann schon mal passieren das das Gerät noch nicht das ok gesendet hat und du schon den mit getState abholst...

                                dafür gibts die

                                setStateAsync
                                getStateAsync

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

                                1 Antwort Letzte Antwort
                                0
                                • W Wildbill

                                  @harald-ohne-nummer Jeder Trigger ist immer aktiv und reagiert, sobald seine Bedingung erfüllt ist, egal wo Du ihn in Blockly hinsetzt oder im Javascript-code hinschreibst. Ebenso wird alles, was außerhalb eines Triggers steht genau einmal bein Starten des Scripts (oder des ganzen JS-Adapters) ausgeführt.

                                  Gruss, Jürgen

                                  H Offline
                                  H Offline
                                  Harald-ohne-Nummer
                                  schrieb am zuletzt editiert von
                                  #16

                                  Ich muss das Thema nochmal aufmachen. So ganz egal scheint die Anordnungs-Reihenfolge doch nicht zu sein.

                                  Ich habe eine ZigBee-Steckdose. Diese sendet zyklisch irgendwelche Statusmeldungen (z.B. "LinkQuality") über ZigBee. Auf dem KNX-Bus will ich die Info haben, ob die ZigBee Steckdose grds. "da" ist, d.h. aktiv im ZigBee sendet. Das habe ich so gelöst wie unten dargestellt. Das klappt auch. Alle 10 Minuten kommt ein Telegram auf den KNX-Bus. Und wenn binnen der 10 Minuten von der ZigBee-Steckdose ein Signal gesendet wurde, ist das KNX-Telegram "wahr", sonst "falsch".

                                  Wenn ich aber den Trigger und die Endlosschleife in Blocky tausche, wird zyklisch ein "falsch"-Telegram auf den KNX-Bus gesendet. Der Trigger wird nie ausgelöst, es gibt auch keinen Debug-Output.

                                  Wenn in Blockly/Javascript die Anordnungs-Reihenfolge aber egal ist, dürfte das Verhalten doch nicht verschieden sein?

                                  2023-08-25_Blockly-Reihenfolge.jpg

                                  T 1 Antwort Letzte Antwort
                                  0
                                  • H Harald-ohne-Nummer

                                    Ich muss das Thema nochmal aufmachen. So ganz egal scheint die Anordnungs-Reihenfolge doch nicht zu sein.

                                    Ich habe eine ZigBee-Steckdose. Diese sendet zyklisch irgendwelche Statusmeldungen (z.B. "LinkQuality") über ZigBee. Auf dem KNX-Bus will ich die Info haben, ob die ZigBee Steckdose grds. "da" ist, d.h. aktiv im ZigBee sendet. Das habe ich so gelöst wie unten dargestellt. Das klappt auch. Alle 10 Minuten kommt ein Telegram auf den KNX-Bus. Und wenn binnen der 10 Minuten von der ZigBee-Steckdose ein Signal gesendet wurde, ist das KNX-Telegram "wahr", sonst "falsch".

                                    Wenn ich aber den Trigger und die Endlosschleife in Blocky tausche, wird zyklisch ein "falsch"-Telegram auf den KNX-Bus gesendet. Der Trigger wird nie ausgelöst, es gibt auch keinen Debug-Output.

                                    Wenn in Blockly/Javascript die Anordnungs-Reihenfolge aber egal ist, dürfte das Verhalten doch nicht verschieden sein?

                                    2023-08-25_Blockly-Reihenfolge.jpg

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

                                    @Harald-ohne-Nummer

                                    Für Ereignisse und Zeitplan stimmt das alles, aber natürlich wird bei
                                    a= 3+2
                                    a = a * 3
                                    die Reihenfolge eingehalten.

                                    Dein while(1) blockiert alles was danach kommt und ist ganz schlechter Stil. Nimm dafür Zeitplan oder Intervall

                                    Alles was du unter Trigger/Timeout findest läuft asynchron alles andere* synchron.

                                    *Funktionen(Reiter Funktionen) ohne Rückgabe sind asynchron, die mit synchron

                                    Aber natürlich laufen nur Programmfunktionen die aufgerufen werden und wenn du mit while (1) oder ähnlichem die Ausführung stoppst, werden sie nie gestartet.

                                    Einfaches Beispiel:

                                    1. Wenn es klingelt öffne die Tür
                                    2. Warte bis die Tür sich öffnet und dann tue ...

                                    jetzt drehe die unumstößlichen Befehle rum :)

                                    Da wäre es doch besser:

                                    1. Wenn es klingelt öffne die Tür
                                    2. Wenn die Tür sich öffnet tue ....

                                    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                    Spenden

                                    paul53P 1 Antwort Letzte Antwort
                                    0
                                    • T ticaki

                                      @Harald-ohne-Nummer

                                      Für Ereignisse und Zeitplan stimmt das alles, aber natürlich wird bei
                                      a= 3+2
                                      a = a * 3
                                      die Reihenfolge eingehalten.

                                      Dein while(1) blockiert alles was danach kommt und ist ganz schlechter Stil. Nimm dafür Zeitplan oder Intervall

                                      Alles was du unter Trigger/Timeout findest läuft asynchron alles andere* synchron.

                                      *Funktionen(Reiter Funktionen) ohne Rückgabe sind asynchron, die mit synchron

                                      Aber natürlich laufen nur Programmfunktionen die aufgerufen werden und wenn du mit while (1) oder ähnlichem die Ausführung stoppst, werden sie nie gestartet.

                                      Einfaches Beispiel:

                                      1. Wenn es klingelt öffne die Tür
                                      2. Warte bis die Tür sich öffnet und dann tue ...

                                      jetzt drehe die unumstößlichen Befehle rum :)

                                      Da wäre es doch besser:

                                      1. Wenn es klingelt öffne die Tür
                                      2. Wenn die Tür sich öffnet tue ....
                                      paul53P Offline
                                      paul53P Offline
                                      paul53
                                      schrieb am zuletzt editiert von
                                      #18

                                      @ticaki sagte: ist ganz schlechter Stil. Nimm dafür Zeitplan oder Intervall

                                      Auch eine zyklische Abfrage ist kein guter Stil. Besser prüft man, ob mind. alle 10 Minuten getriggert wird:

                                      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

                                      T 1 Antwort Letzte Antwort
                                      0
                                      • paul53P paul53

                                        @ticaki sagte: ist ganz schlechter Stil. Nimm dafür Zeitplan oder Intervall

                                        Auch eine zyklische Abfrage ist kein guter Stil. Besser prüft man, ob mind. alle 10 Minuten getriggert wird:

                                        Blockly_temp.JPG

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

                                        @paul53
                                        Als Ersatz ist das guter Stil.

                                        Auf das Problem bezogen würde ich bei Erstellung des Telegramms prüfen, ob einer der Zeitstempel jünger als now() -10 Minuten ist. Hätte ich die Zeit vom letzten Telegram würde ich between prüfen. Mit der jetzigen Version sollte die Erstellung oder Versand des Telegrams den Wert auf false setzen und nicht ein Timer.

                                        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                        Spenden

                                        H 1 Antwort Letzte Antwort
                                        0
                                        • T ticaki

                                          @paul53
                                          Als Ersatz ist das guter Stil.

                                          Auf das Problem bezogen würde ich bei Erstellung des Telegramms prüfen, ob einer der Zeitstempel jünger als now() -10 Minuten ist. Hätte ich die Zeit vom letzten Telegram würde ich between prüfen. Mit der jetzigen Version sollte die Erstellung oder Versand des Telegrams den Wert auf false setzen und nicht ein Timer.

                                          H Offline
                                          H Offline
                                          Harald-ohne-Nummer
                                          schrieb am zuletzt editiert von
                                          #20

                                          Vielen Dank für Eure Rückmeldungen! Von Stil habe ich keine Ahnung :blush: , aber auf Basis Eurer Infos habe ich jetzt zwei Varianten, die beide funktionieren...

                                          2023-08-25_ZigBee-Aktualisierung_a.jpg

                                          oder

                                          2023-08-25_ZigBee-Aktualisierung_b.jpg

                                          Das ist dann beides ok?

                                          T 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

                                          352

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          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