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. Wie paralleles Ausführen verhindern?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    168

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    12
    1
    570

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.8k

Wie paralleles Ausführen verhindern?

Geplant Angeheftet Gesperrt Verschoben Blockly
10 Beiträge 4 Kommentatoren 720 Aufrufe 2 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.
  • S Offline
    S Offline
    somethingcreator
    schrieb am zuletzt editiert von
    #1

    Hallo Community,

    ich habe in einem Script mehrere Trigger. Ich möchte jedoch verhindern, dass verschiedene Trigger mehrere Instanzen des Scripts parallel starten. Wenn eine Script-Instanz bereits läuft und ein weiterer Trigger auslöst, so soll keine neue Script-Instanz gestartet werden.

    Wie kann man das umsetzen?

    Danke und Gruß
    somethingcreator

    souly75S paul53P 2 Antworten Letzte Antwort
    0
    • S somethingcreator

      Hallo Community,

      ich habe in einem Script mehrere Trigger. Ich möchte jedoch verhindern, dass verschiedene Trigger mehrere Instanzen des Scripts parallel starten. Wenn eine Script-Instanz bereits läuft und ein weiterer Trigger auslöst, so soll keine neue Script-Instanz gestartet werden.

      Wie kann man das umsetzen?

      Danke und Gruß
      somethingcreator

      souly75S Offline
      souly75S Offline
      souly75
      schrieb am zuletzt editiert von souly75
      #2

      @somethingcreator hallo,
      zeige doch mal bitte das Script. normalerweise wird das Script nur einmal gestartet bei auslösen eines Triggers. sind ja "oder" Auslöser.

      1 Antwort Letzte Antwort
      0
      • S somethingcreator

        Hallo Community,

        ich habe in einem Script mehrere Trigger. Ich möchte jedoch verhindern, dass verschiedene Trigger mehrere Instanzen des Scripts parallel starten. Wenn eine Script-Instanz bereits läuft und ein weiterer Trigger auslöst, so soll keine neue Script-Instanz gestartet werden.

        Wie kann man das umsetzen?

        Danke und Gruß
        somethingcreator

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

        @somethingcreator sagte: ein weiterer Trigger auslöst, so soll keine neue Script-Instanz gestartet werden.

        Es werden keine Skript-Instanzen neu gestartet, sondern die Trigger werden in der Reihenfolge ihres Auftretens innerhalb des Skriptes ausgelöst und die jeweils programmierten Aktionen ausgeführt.
        Soll der zuerst auftretende Trigger das Auslösen weiterer Trigger innerhalb einer bestimmten Zeit verhindern, dann muss man eine Timer-Sperre verwenden. Prinzip:

        Blockly_temp.JPG

        EDIT: Liefern die Trigger-DP zeitlich zusammenhängende Werte (aus einer Instanz), die ausgewertet werden sollen, muss man auf den letzten Trigger warten.

        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
        0
        • S Offline
          S Offline
          somethingcreator
          schrieb am zuletzt editiert von
          #4

          danke für die Hinweise. Ich verstehe nun die Funktionsweise der Script-Ausführung besser. Ich habe auch nun eine Lösung mit einer Sperrvariable, die auf ersten Blick gut funktioniert. Startet das Script, wird die Sperrvariable auf "true" gesetzt. Nach Beendigung auf "false". Alle Trigger-Auslösungen bei "true" werden abgebrochen.

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

            @somethingcreator Könntest du bitte dein Skript zeigen!
            Es kommt ja vielleicht auf Feinheiten an, ob und was geblockt werden muss

            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 -

            S 1 Antwort Letzte Antwort
            0
            • HomoranH Homoran

              @somethingcreator Könntest du bitte dein Skript zeigen!
              Es kommt ja vielleicht auf Feinheiten an, ob und was geblockt werden muss

              S Offline
              S Offline
              somethingcreator
              schrieb am zuletzt editiert von
              #6

              @homoran
              Hier zwei Trigger als Beispiele, es gibt noch mehr
              Screenshot 2024-08-19 182009.png

              Hier die Logik beim Start der Hauptroutine:
              Screenshot 2024-08-19 182048.png

              Hier wird die Sperre nach Ausführung aufgehoben.
              Screenshot 2024-08-19 182125.png

              HomoranH 1 Antwort Letzte Antwort
              0
              • S somethingcreator

                @homoran
                Hier zwei Trigger als Beispiele, es gibt noch mehr
                Screenshot 2024-08-19 182009.png

                Hier die Logik beim Start der Hauptroutine:
                Screenshot 2024-08-19 182048.png

                Hier wird die Sperre nach Ausführung aufgehoben.
                Screenshot 2024-08-19 182125.png

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

                @somethingcreator sagte in Wie paralleles Ausführen verhindern?:

                Hier zwei Trigger als Beispiele, es gibt noch mehr

                gut dass du es zeigst!
                das ist ja was anderes!

                du hast zwei unabhängige Skripte, die die selbe Funktion aufrufen in einem Blockly.

                Also nicht zwei triggernde Datenpunkte an einem Skript

                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 -

                S 1 Antwort Letzte Antwort
                0
                • HomoranH Homoran

                  @somethingcreator sagte in Wie paralleles Ausführen verhindern?:

                  Hier zwei Trigger als Beispiele, es gibt noch mehr

                  gut dass du es zeigst!
                  das ist ja was anderes!

                  du hast zwei unabhängige Skripte, die die selbe Funktion aufrufen in einem Blockly.

                  Also nicht zwei triggernde Datenpunkte an einem Skript

                  S Offline
                  S Offline
                  somethingcreator
                  schrieb am zuletzt editiert von
                  #8

                  @homoran ich habe noch weitere triggernde Datenpunkte. Kannst Du bitte erklären, was jetzt anders ist bei der Ausführung je Trigger? Es ist mir klar, dass die Lösung nicht ganz robust ist. Wenn sich z.B. das Setzen der Sperrvariable verheddert, wird das Script nicht laufen. Ist aber erstmal der Anfang. Kann man es besser/anders lösen?

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • S somethingcreator

                    @homoran ich habe noch weitere triggernde Datenpunkte. Kannst Du bitte erklären, was jetzt anders ist bei der Ausführung je Trigger? Es ist mir klar, dass die Lösung nicht ganz robust ist. Wenn sich z.B. das Setzen der Sperrvariable verheddert, wird das Script nicht laufen. Ist aber erstmal der Anfang. Kann man es besser/anders lösen?

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

                    @somethingcreator sagte: Kann man es besser/anders lösen?

                    Wozu soll der 5-Minuten-Trigger gut sein?
                    Übrigens: Eine Funktion ohne Timer wird nicht durch einen neuen Trigger unterbrochen, sondern sie wird bis zu Ende ausgeführt, bevor der neue Trigger sie erneut startet.

                    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

                    S 1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @somethingcreator sagte: Kann man es besser/anders lösen?

                      Wozu soll der 5-Minuten-Trigger gut sein?
                      Übrigens: Eine Funktion ohne Timer wird nicht durch einen neuen Trigger unterbrochen, sondern sie wird bis zu Ende ausgeführt, bevor der neue Trigger sie erneut startet.

                      S Offline
                      S Offline
                      somethingcreator
                      schrieb am zuletzt editiert von
                      #10

                      @paul53 sagte in Wie paralleles Ausführen verhindern?:

                      Übrigens: Eine Funktion ohne Timer wird nicht durch einen neuen Trigger unterbrochen, sondern sie wird bis zu Ende ausgeführt, bevor der neue Trigger sie erneut startet.

                      Das kann ich in meinen Tests nicht bestätigen. Jeder Trigger ob Timer oder Datenpunkt lässt die Hauptroutine sofort starten. Unabhängig davon, ob diese zu Ende gelaufen ist.

                      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

                      789

                      Online

                      32.5k

                      Benutzer

                      81.8k

                      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