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
    6
    1
    56

  • 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.
  • 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
        • H Harald-ohne-Nummer

          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 Nicht stören
          T Nicht stören
          ticaki
          schrieb am zuletzt editiert von ticaki
          #21

          @harald-ohne-nummer
          Ich hab damit nur ein Problem die Zeitlinie:

          0:00 Telegram nachricht
          0:01 Skript check
          0:08 Zigbee hat sich seit 10 Minuten nicht gemeldet
          0:10 Telegammnachricht
          0:01 Skript registriert Zigbee
          0:20 Telegrammnachricht 12 Minuten zu spät.

          nur zur Info: ein/dein Interval startet das erste mal nach 10 minuten und dann alle 10 Minuten

          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

          Spenden

          H 1 Antwort Letzte Antwort
          0
          • T ticaki

            @harald-ohne-nummer
            Ich hab damit nur ein Problem die Zeitlinie:

            0:00 Telegram nachricht
            0:01 Skript check
            0:08 Zigbee hat sich seit 10 Minuten nicht gemeldet
            0:10 Telegammnachricht
            0:01 Skript registriert Zigbee
            0:20 Telegrammnachricht 12 Minuten zu spät.

            nur zur Info: ein/dein Interval startet das erste mal nach 10 minuten und dann alle 10 Minuten

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

            @ticaki Für meinen Anwendungsfall ist es egal, ob der "Funkausfall" ein paar Minuten früher oder später bemerkt wird. Das ist ein Ereignis, das ohnehin nicht oder nur sehr selten vorkommen sollte und dessen Auswirkungen nicht kritisch sind. D.h. es reicht, wenn ich das dann ggf. ein paar Minuten "zu spät" bemerke.

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

              @ticaki Für meinen Anwendungsfall ist es egal, ob der "Funkausfall" ein paar Minuten früher oder später bemerkt wird. Das ist ein Ereignis, das ohnehin nicht oder nur sehr selten vorkommen sollte und dessen Auswirkungen nicht kritisch sind. D.h. es reicht, wenn ich das dann ggf. ein paar Minuten "zu spät" bemerke.

              A Offline
              A Offline
              AXMLM
              schrieb am zuletzt editiert von
              #23

              Ich grabe das hier mal aus, da das Problem das gleiche ist. Die Reihenfolge der Aktionen unter einem Trigger läuft nicht sequenziell ab.

              Ich habe einen Berechnungsscript in Blockly gebaut. Hier scheint es zu sein, dass die Berechnungsreihenfolge durcheinander läuft und der Volumetracker dadurch Fehlermeldungen produziert.

              0_userdata.0.Benutzervariablen.Strom.Wert_Gespart wurde scheinbar resetet! Reset von 874.13 nach 874.11 passe alle Startwerte an
              

              hier ist der Blockly Block.

              982be6ea-a09b-4480-aa85-50dcf48226f5-image.png

              kann ich irgendwie Blockly dazu zwingen die Berechnungen nacheinander zu machen, oder macht er das eh und der Fehler liegt woanders?

              paul53P 1 Antwort Letzte Antwort
              0
              • A AXMLM

                Ich grabe das hier mal aus, da das Problem das gleiche ist. Die Reihenfolge der Aktionen unter einem Trigger läuft nicht sequenziell ab.

                Ich habe einen Berechnungsscript in Blockly gebaut. Hier scheint es zu sein, dass die Berechnungsreihenfolge durcheinander läuft und der Volumetracker dadurch Fehlermeldungen produziert.

                0_userdata.0.Benutzervariablen.Strom.Wert_Gespart wurde scheinbar resetet! Reset von 874.13 nach 874.11 passe alle Startwerte an
                

                hier ist der Blockly Block.

                982be6ea-a09b-4480-aa85-50dcf48226f5-image.png

                kann ich irgendwie Blockly dazu zwingen die Berechnungen nacheinander zu machen, oder macht er das eh und der Fehler liegt woanders?

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

                @axmlm sagte: kann ich irgendwie Blockly dazu zwingen die Berechnungen nacheinander zu machen

                Ja, verwende Variablen für Werte, die später wieder verwendet werden, denn "aktualisiere" wird asynchron ausgeführt, ist also beim Wiedereinlesen noch nicht fertig.

                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

                A 1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @axmlm sagte: kann ich irgendwie Blockly dazu zwingen die Berechnungen nacheinander zu machen

                  Ja, verwende Variablen für Werte, die später wieder verwendet werden, denn "aktualisiere" wird asynchron ausgeführt, ist also beim Wiedereinlesen noch nicht fertig.

                  A Offline
                  A Offline
                  AXMLM
                  schrieb am zuletzt editiert von AXMLM
                  #25

                  @paul53 said in Anfängerfrage: Reihenfolge von Skriptausführung:

                  @axmlm sagte: kann ich irgendwie Blockly dazu zwingen die Berechnungen nacheinander zu machen
                  Ja, verwende Variablen für Werte, die später wieder verwendet werden, denn "aktualisiere" wird asynchron ausgeführt, ist also beim Wiedereinlesen noch nicht fertig.

                  Meinst Du so?
                  ec8a0d0b-1484-4ad6-8142-ebe94ac4d43f-image.png
                  EDIT:

                  geht nicht:

                  
                  javascript.0	10:33:08.705	error	script.js.Strom.PV-Ertragswerte: getState has been called with id of type "number" but expects a string
                  javascript.0	10:33:08.706	error	script.js.Strom.PV-Ertragswerte: TypeError: Cannot read properties of undefined (reading 'val')
                  javascript.0	10:33:08.707	error	at Object.<anonymous> (script.js.Strom.PV-Ertragswerte:9:62)
                  
                  A 1 Antwort Letzte Antwort
                  0
                  • A AXMLM

                    @paul53 said in Anfängerfrage: Reihenfolge von Skriptausführung:

                    @axmlm sagte: kann ich irgendwie Blockly dazu zwingen die Berechnungen nacheinander zu machen
                    Ja, verwende Variablen für Werte, die später wieder verwendet werden, denn "aktualisiere" wird asynchron ausgeführt, ist also beim Wiedereinlesen noch nicht fertig.

                    Meinst Du so?
                    ec8a0d0b-1484-4ad6-8142-ebe94ac4d43f-image.png
                    EDIT:

                    geht nicht:

                    
                    javascript.0	10:33:08.705	error	script.js.Strom.PV-Ertragswerte: getState has been called with id of type "number" but expects a string
                    javascript.0	10:33:08.706	error	script.js.Strom.PV-Ertragswerte: TypeError: Cannot read properties of undefined (reading 'val')
                    javascript.0	10:33:08.707	error	at Object.<anonymous> (script.js.Strom.PV-Ertragswerte:9:62)
                    
                    A Offline
                    A Offline
                    AXMLM
                    schrieb am zuletzt editiert von
                    #26

                    jetzt läufts

                    a6453720-0a64-41fe-994b-94083bb0b97e-image.png

                    A 1 Antwort Letzte Antwort
                    0
                    • A AXMLM

                      jetzt läufts

                      a6453720-0a64-41fe-994b-94083bb0b97e-image.png

                      A Offline
                      A Offline
                      AXMLM
                      schrieb am zuletzt editiert von
                      #27

                      die Fehlermeldungen sind leider geblieben.

                      
                      valuetrackerovertime.0
                      2025-04-30 11:10:49.694	warn	0_userdata.0.Benutzervariablen.Strom.PV-Eigenverbrauch wurde scheinbar resetet! Reset von 3250.42 nach 3250.33 passe alle Startwerte an
                      
                      valuetrackerovertime.0
                      2025-04-30 11:10:49.693	warn	0_userdata.0.Benutzervariablen.Strom.Verbrauch_gesamt wurde scheinbar resetet! Reset von 9820.42 nach 9820.33 passe alle Startwerte an
                      
                      valuetrackerovertime.0
                      2025-04-30 11:10:49.691	warn	0_userdata.0.Benutzervariablen.Strom.Wert_Gewinn wurde scheinbar resetet! Reset von 1216.99 nach 1216.97 passe alle Startwerte an
                      
                      valuetrackerovertime.0
                      2025-04-30 11:10:49.689	warn	0_userdata.0.Benutzervariablen.Strom.Wert_Gespart wurde scheinbar resetet! Reset von 874.36 nach 874.34 passe alle Startwerte an
                      
                      valuetrackerovertime.0
                      2025-04-30 11:09:39.804	warn	0_userdata.0.Benutzervariablen.Strom.PV-Eigenverbrauch wurde scheinbar resetet! Reset von 3250.41 nach 3250.32 passe alle Startwerte an
                      
                      valuetrackerovertime.0
                      2025-04-30 11:09:39.801	warn	0_userdata.0.Benutzervariablen.Strom.Verbrauch_gesamt wurde scheinbar resetet! Reset von 9820.41 nach 9820.32 passe alle Startwerte an
                      
                      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

                      367

                      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