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
    855

  • 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 65 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 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

                          368

                          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