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 kann man ein Programm in ""Falls Objekt(e)" stoppen?

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Wie kann man ein Programm in ""Falls Objekt(e)" stoppen?

Geplant Angeheftet Gesperrt Verschoben Blockly
14 Beiträge 4 Kommentatoren 59 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.
  • hg6806H Offline
    hg6806H Offline
    hg6806
    Most Active
    schrieb zuletzt editiert von
    #1

    Hallo zusammen,

    ich habe hier ein Programm, dass durch einen Datenpunkt ein Falls Objekt Trigger auslöst und somit ein darin enthaltenes Programm mit Zeitplan, Pausen, wiederhole bis und timeout startet.
    Jetzt kann aber ein anderer Trigger ausgelöst werden und ich möchte keine parallele Abarbeitung, sondern, es soll der erste "Falls Objekt" Programm gestoppt werden.
    Wie geht das?

    paul53P AsgothianA 2 Antworten Letzte Antwort
    0
    • hg6806H hg6806

      Hallo zusammen,

      ich habe hier ein Programm, dass durch einen Datenpunkt ein Falls Objekt Trigger auslöst und somit ein darin enthaltenes Programm mit Zeitplan, Pausen, wiederhole bis und timeout startet.
      Jetzt kann aber ein anderer Trigger ausgelöst werden und ich möchte keine parallele Abarbeitung, sondern, es soll der erste "Falls Objekt" Programm gestoppt werden.
      Wie geht das?

      paul53P Offline
      paul53P Offline
      paul53
      schrieb zuletzt editiert von
      #2

      @hg6806 sagte: ich habe hier ein Programm

      Zeigen!

      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
      • hg6806H hg6806

        Hallo zusammen,

        ich habe hier ein Programm, dass durch einen Datenpunkt ein Falls Objekt Trigger auslöst und somit ein darin enthaltenes Programm mit Zeitplan, Pausen, wiederhole bis und timeout startet.
        Jetzt kann aber ein anderer Trigger ausgelöst werden und ich möchte keine parallele Abarbeitung, sondern, es soll der erste "Falls Objekt" Programm gestoppt werden.
        Wie geht das?

        AsgothianA Offline
        AsgothianA Offline
        Asgothian
        Developer
        schrieb zuletzt editiert von
        #3

        @hg6806 sagte in Wie kann man ein Programm in ""Falls Objekt(e)" stoppen?:

        Jetzt kann aber ein anderer Trigger ausgelöst werden und ich möchte keine parallele Abarbeitung, sondern, es soll der erste "Falls Objekt" Programm gestoppt werden.
        Wie geht das?

        Das ist nicht trivial, und hängt davon ab welche Befehle in dem Trigger ausgeführt werden.

        Einfacher ist es, die neue Ausführung zu verhindern. Alles was du dafür brauchst ist eine 'blockierende' Variable die gesetzt ist solange das was du 'programm' nennst läuft.

        A.

        ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
        "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

        1 Antwort Letzte Antwort
        0
        • hg6806H Offline
          hg6806H Offline
          hg6806
          Most Active
          schrieb zuletzt editiert von
          #4

          Hier ist das Programm. ist recht groß deshalb hoffe ich man kann es erkennen.

          image.png

          1 Antwort Letzte Antwort
          0
          • hg6806H Offline
            hg6806H Offline
            hg6806
            Most Active
            schrieb zuletzt editiert von hg6806
            #5

            Hintergrund ist, ich möchte meine Wärmepumpe auf Grund häufiger Abtau Vorgänge kontinuierlich nach x Minuten abschalten und nach x Minuten wieder einschalten.
            Nach einem Abtauvorgang soll es ebenfalls neu gestartet werden.
            Das Ganze nur unter 4,5°C Außentemperatur.
            Im schlimmsten Fall habe ich alle 25 Minuten Abtauvorgänge, die m ir den Warmwasserspeicher "leersaugen".

            HomoranH 1 Antwort Letzte Antwort
            0
            • AsgothianA Offline
              AsgothianA Offline
              Asgothian
              Developer
              schrieb zuletzt editiert von Asgothian
              #6

              Das entscheidende kann man sehen:

              1. Du musst das widerhole bis mit pause durch eine timout chain oder ein Intervall ersetzen

              Das sollte (meiner Meinung nach) innerhalb des Shedule so aussehen:
              Screenshot 2026-01-24 at 17.45.14.png

              Dabei gilt:
              DataA ist das rot im Folgenden Screenshot markierte
              DataB ist das grün im folgenden Screenshot markierte
              das was bei selectID rein muss ergibt sich au sdem was in den Steuer befehlen drin steht. Ich denke das kriegst du hin.
              Actions A ist das blau im folgenden Screenshot markierte.

              Screenshot 2026-01-24 at 17.47.44.png

              In dieser Konstellation wird, sofern der Shedule erneut zuschlägt der laufende Prozess abgebrochen und das ganze neu gestartet.

              Ich hoffe das war gemeint.

              Zusätzlich feht vor dem Zeitplan Schedule1 ein stop Shedule1 Baustein.

              ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
              "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

              1 Antwort Letzte Antwort
              0
              • hg6806H hg6806

                Hintergrund ist, ich möchte meine Wärmepumpe auf Grund häufiger Abtau Vorgänge kontinuierlich nach x Minuten abschalten und nach x Minuten wieder einschalten.
                Nach einem Abtauvorgang soll es ebenfalls neu gestartet werden.
                Das Ganze nur unter 4,5°C Außentemperatur.
                Im schlimmsten Fall habe ich alle 25 Minuten Abtauvorgänge, die m ir den Warmwasserspeicher "leersaugen".

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

                @hg6806 sagte in Wie kann man ein Programm in ""Falls Objekt(e)" stoppen?:

                nach x Minuten abschalten und nach x Minuten wieder einschalten.

                bist du sicher, dass das

                • der Wärmepumpe gut tut
                • zu dem gewünschten Erfolg führt
                  • was soll das sein?

                @hg6806 sagte in Wie kann man ein Programm in ""Falls Objekt(e)" stoppen?:

                Das Ganze nur unter 4,5°C Außentemperatur

                wie hoch ist die Luftfeuchte und der Taupunkt?
                je nach den Werten wird durch einfaches abschalten nichts abtauen, schon gar nicht in ausreichend kurzer Zeit.

                @hg6806 sagte in Wie kann man ein Programm in ""Falls Objekt(e)" stoppen?:

                die mir den Warmwasserspeicher "leersaugen".

                dazu ist der da, dafür springt wahrscheinlich dann der Heizstab noch nicht an
                (möglicherweise ist da trotzdem etwas unglücklich konfiguriert/ausgelegt)

                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 -

                1 Antwort Letzte Antwort
                0
                • hg6806H Offline
                  hg6806H Offline
                  hg6806
                  Most Active
                  schrieb zuletzt editiert von
                  #8

                  @asgothian
                  Danke für den Tipp, habe ich verstanden.
                  Doch wozu am Anfang der "Clear Intervall" Baustein?
                  Und wieso fehlt vor dem Zeitplan ein Stop?

                  @homoran
                  Ich habe das händisch probiert und hilft etwas gangen die häufigen unnötigen Abtauvorgänge.
                  Erfahrungsgemäß taut die Rotex nicht öfters ab, wenn sie auf mehr Last läuft, könnte sogar seltener sein. Deshalb dieVersuche, sie mit mehr Last laufen zu lassen und dann eine gewisse Zeit abzuschalten.
                  Ich schalte nicht ganz ab sondern nur auf "Sommer", also wird immer Warmwasser erzeugt, je nach WW Einstellung.
                  Und schaden tut es ganz sicher nicht, da ich ja nicht "hart" sonder erst abschalte, wenn dem Kompressor aus ist.

                  4,5°C ist mal ein Anfangs- und Erfahrungswert, könnte natürlich auch auf den Taupunkt triggern, den ich auch zur Verfügung habe.
                  Schön wäre, wenn man von der Rotex einen Wert erhalten könnte, der anzeigt ob ein Abtauvorgang kurz bevorsteht. Dann könnte man direkt abschalten und im besten Fall nur den Lüfter laufen lassen, damit sich das Temperatur-Delta normalisiert. Alles etwas hypothetisch. Habe gerade Zeit für solche "Spielchen".

                  AsgothianA HomoranH 2 Antworten Letzte Antwort
                  0
                  • hg6806H hg6806

                    @asgothian
                    Danke für den Tipp, habe ich verstanden.
                    Doch wozu am Anfang der "Clear Intervall" Baustein?
                    Und wieso fehlt vor dem Zeitplan ein Stop?

                    @homoran
                    Ich habe das händisch probiert und hilft etwas gangen die häufigen unnötigen Abtauvorgänge.
                    Erfahrungsgemäß taut die Rotex nicht öfters ab, wenn sie auf mehr Last läuft, könnte sogar seltener sein. Deshalb dieVersuche, sie mit mehr Last laufen zu lassen und dann eine gewisse Zeit abzuschalten.
                    Ich schalte nicht ganz ab sondern nur auf "Sommer", also wird immer Warmwasser erzeugt, je nach WW Einstellung.
                    Und schaden tut es ganz sicher nicht, da ich ja nicht "hart" sonder erst abschalte, wenn dem Kompressor aus ist.

                    4,5°C ist mal ein Anfangs- und Erfahrungswert, könnte natürlich auch auf den Taupunkt triggern, den ich auch zur Verfügung habe.
                    Schön wäre, wenn man von der Rotex einen Wert erhalten könnte, der anzeigt ob ein Abtauvorgang kurz bevorsteht. Dann könnte man direkt abschalten und im besten Fall nur den Lüfter laufen lassen, damit sich das Temperatur-Delta normalisiert. Alles etwas hypothetisch. Habe gerade Zeit für solche "Spielchen".

                    AsgothianA Offline
                    AsgothianA Offline
                    Asgothian
                    Developer
                    schrieb zuletzt editiert von
                    #9

                    @hg6806 sagte in Wie kann man ein Programm in ""Falls Objekt(e)" stoppen?:

                    Doch wozu am Anfang der "Clear Intervall" Baustein?
                    Und wieso fehlt vor dem Zeitplan ein Stop?

                    Es gibt 2 Situtionen wo das ganze 'neu' gestartet werden kann - wenn der externe Trigger neu kommt, und der Zeitplan neu gesetzt wird.

                    Wenn der voherige Zeitplan nicht gestoppt oder abgearbeitet wurde wird ohne den stop Schedule 1 Bausten ggf. ein 2. Zeitplan mit der gleichen und/oder einer anderen Zeit gesezt. Das willst du nicht.

                    Die 2. Situation ist wenn der Zeitplan ausgeführt wird während ein vorheriger Zeitplan noch läuft - dann ist das Intervall ggf. noch aktiv. Um das Abzubrechen brauchst du den clear Interval Baustein

                    A.

                    ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                    "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                    1 Antwort Letzte Antwort
                    0
                    • hg6806H Offline
                      hg6806H Offline
                      hg6806
                      Most Active
                      schrieb zuletzt editiert von hg6806
                      #10

                      @asgothian

                      Danke!
                      Sieht ganz gut aus bis auf ein Warning:

                      javascript.0 19:47:30.024 warn
                      at Object.<anonymous> (script.js.common.Energiesparen.Wärmepumpe_Pause_nach_Abtauen:48:11)

                      Im Javascript ist die Zeile 48:

                      timeout = setTimeout(async () => {

                      AsgothianA 1 Antwort Letzte Antwort
                      0
                      • hg6806H hg6806

                        @asgothian

                        Danke!
                        Sieht ganz gut aus bis auf ein Warning:

                        javascript.0 19:47:30.024 warn
                        at Object.<anonymous> (script.js.common.Energiesparen.Wärmepumpe_Pause_nach_Abtauen:48:11)

                        Im Javascript ist die Zeile 48:

                        timeout = setTimeout(async () => {

                        AsgothianA Offline
                        AsgothianA Offline
                        Asgothian
                        Developer
                        schrieb zuletzt editiert von
                        #11

                        @hg6806 Zeig mal den Kontext (die 10 Zeilen davor und dahinter)

                        ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                        "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                        1 Antwort Letzte Antwort
                        0
                        • hg6806H Offline
                          hg6806H Offline
                          hg6806
                          Most Active
                          schrieb zuletzt editiert von
                          #12
                          Intervall2 = setInterval(async () => {
                                  if (getState('canbus.0.500.61').val == true) {
                                    setState('canbus.0.680.05-set' /* T-Raum Soll1 setzen */, (getState('canbus.0.300.05').val - 0.5));
                                  } else {
                                    (() => { if (Intervall2) { clearInterval(Intervall2); Intervall2 = null; }})();
                                    setState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.Status_WP_aktiv' /* Status_WP_aktiv */, false, true);
                                    setState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.Status_WP_inaktiv' /* Status_WP_inaktiv */, true, true);
                                    setState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.WP_inaktiv_seit' /* WP_inaktiv_seit */, formatDate(new Date(), 'hh:mm'), true);
                                    setState('canbus.0.680.fa0112-set' /* Modus setzen */, 5);
                                    Naechstes_Einschalten = (new Date().getTime());
                                    Naechstes_Einschalten = (typeof Naechstes_Einschalten === 'number' ? Naechstes_Einschalten : 0) + getState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.Zeit_WP-Pause').val * 60000;
                                    setState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.Naechstes_WP-Einschalten' /* Naechstes_WP-Einschalten */, formatDate(getDateObject(Naechstes_Einschalten), 'hh:mm'), true);
                                    timeout = setTimeout(async () => {
                                      timeout = null;
                                      setState('canbus.0.680.fa0112-set' /* Modus setzen */, 3);
                                      setState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.Status_WP_inaktiv' /* Status_WP_inaktiv */, false, true);
                                      setState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.Status_WP_aktiv' /* Status_WP_aktiv */, true, true);
                                      setState('canbus.0.680.05-set' /* T-Raum Soll1 setzen */, getState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.alter_Soll_Raum_Temp_Wert').val);
                                      setState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.Trigger-Timer-Start' /* Trigger-Timer-Start */, true, true);
                                      setState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.Trigger-Timer-Start' /* Trigger-Timer-Start */, false, true);
                                    }, parseInt((getState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.Zeit_WP-Pause').val * 60000)));
                                  }
                                }, 15000);
                              });
                            } else {
                          
                          AsgothianA 1 Antwort Letzte Antwort
                          0
                          • hg6806H hg6806

                            @asgothian
                            Danke für den Tipp, habe ich verstanden.
                            Doch wozu am Anfang der "Clear Intervall" Baustein?
                            Und wieso fehlt vor dem Zeitplan ein Stop?

                            @homoran
                            Ich habe das händisch probiert und hilft etwas gangen die häufigen unnötigen Abtauvorgänge.
                            Erfahrungsgemäß taut die Rotex nicht öfters ab, wenn sie auf mehr Last läuft, könnte sogar seltener sein. Deshalb dieVersuche, sie mit mehr Last laufen zu lassen und dann eine gewisse Zeit abzuschalten.
                            Ich schalte nicht ganz ab sondern nur auf "Sommer", also wird immer Warmwasser erzeugt, je nach WW Einstellung.
                            Und schaden tut es ganz sicher nicht, da ich ja nicht "hart" sonder erst abschalte, wenn dem Kompressor aus ist.

                            4,5°C ist mal ein Anfangs- und Erfahrungswert, könnte natürlich auch auf den Taupunkt triggern, den ich auch zur Verfügung habe.
                            Schön wäre, wenn man von der Rotex einen Wert erhalten könnte, der anzeigt ob ein Abtauvorgang kurz bevorsteht. Dann könnte man direkt abschalten und im besten Fall nur den Lüfter laufen lassen, damit sich das Temperatur-Delta normalisiert. Alles etwas hypothetisch. Habe gerade Zeit für solche "Spielchen".

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

                            @hg6806 sagte in Wie kann man ein Programm in ""Falls Objekt(e)" stoppen?:

                            Erfahrungsgemäß

                            siehe https://forum.iobroker.net/post/1321821

                            wird hier sonst zu sehr OT

                            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 -

                            1 Antwort Letzte Antwort
                            0
                            • hg6806H hg6806
                              Intervall2 = setInterval(async () => {
                                      if (getState('canbus.0.500.61').val == true) {
                                        setState('canbus.0.680.05-set' /* T-Raum Soll1 setzen */, (getState('canbus.0.300.05').val - 0.5));
                                      } else {
                                        (() => { if (Intervall2) { clearInterval(Intervall2); Intervall2 = null; }})();
                                        setState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.Status_WP_aktiv' /* Status_WP_aktiv */, false, true);
                                        setState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.Status_WP_inaktiv' /* Status_WP_inaktiv */, true, true);
                                        setState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.WP_inaktiv_seit' /* WP_inaktiv_seit */, formatDate(new Date(), 'hh:mm'), true);
                                        setState('canbus.0.680.fa0112-set' /* Modus setzen */, 5);
                                        Naechstes_Einschalten = (new Date().getTime());
                                        Naechstes_Einschalten = (typeof Naechstes_Einschalten === 'number' ? Naechstes_Einschalten : 0) + getState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.Zeit_WP-Pause').val * 60000;
                                        setState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.Naechstes_WP-Einschalten' /* Naechstes_WP-Einschalten */, formatDate(getDateObject(Naechstes_Einschalten), 'hh:mm'), true);
                                        timeout = setTimeout(async () => {
                                          timeout = null;
                                          setState('canbus.0.680.fa0112-set' /* Modus setzen */, 3);
                                          setState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.Status_WP_inaktiv' /* Status_WP_inaktiv */, false, true);
                                          setState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.Status_WP_aktiv' /* Status_WP_aktiv */, true, true);
                                          setState('canbus.0.680.05-set' /* T-Raum Soll1 setzen */, getState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.alter_Soll_Raum_Temp_Wert').val);
                                          setState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.Trigger-Timer-Start' /* Trigger-Timer-Start */, true, true);
                                          setState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.Trigger-Timer-Start' /* Trigger-Timer-Start */, false, true);
                                        }, parseInt((getState('0_userdata.0.Rotex_HPSU.Abtauvermeidung.Zeit_WP-Pause').val * 60000)));
                                      }
                                    }, 15000);
                                  });
                                } else {
                              
                              AsgothianA Offline
                              AsgothianA Offline
                              Asgothian
                              Developer
                              schrieb zuletzt editiert von
                              #14

                              @hg6806 Hmm.. das bringt erst einmal wenig. Kannst du mal bitte im globalen ioBroker protokoll nachschauen was da vom JS Adatper noch mehr an Meldungen kommt ? Ich seh da erst einmal wenig was 'warnfähig' wäre.

                              A

                              ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                              "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                              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

                              677

                              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