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. Blockly Script wird nach ca. 3 Tagen beendet

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Blockly Script wird nach ca. 3 Tagen beendet

Geplant Angeheftet Gesperrt Verschoben Blockly
16 Beiträge 4 Kommentatoren 339 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.
  • liv-in-skyL liv-in-sky

    @mhdau

    grundsätzlich - trigger ("schedule" und "falls object") in trigger funktioniert nieeeee - ganz böse - nie wieder machen !!! :-)

    • im schedule sollte * * * * * stehen - das bedeutet jede minute (fünf sterne - die sekunden brauchst du da nicht)
    • zu if (falls) : falls etwas "true ist" trifft das inmmer zu - daher kann das weggelassen werden - der if block ist überflüssig)

    irgendwie ist mir nicht klar, wie du feststellst, dass der brenner nicht mehr läuft? du weißt doch nur, dass wenn der zähler eins höher ist, der brenner eingeschalten wurde - eine minute später zu fragen, wie der zähler ist, sagt doch nicht aus, dass der brenner aus ist

    keine ahnung wie du den gasverbrauch aus dieser info erfasst

    M Offline
    M Offline
    mhdau
    schrieb am zuletzt editiert von
    #6

    @liv-in-sky

    Moin,

    also, grundsätzlich funktioniert mein "umständliches" Script ja so wie ich es mir vorstelle.
    Dass der Gasbrenner aus ist, erkennt das Script an dem Zählerstand, der sich eben nach einer Minute nicht geändert hat. Dabei hoffe ich natürlich, dass immer, wenn Gas strömt, auch die Zündung des Gases erfolgt.
    Anbei eine EChart, die ich aus der Brenner AN _ AUS Aussage generiert habe.

    Echart Gasbrenner AN _ AUS.jpg
    Wie schon beschrieben, funktioniert das Script immer nur ca 3 Tage, dann wird es beendet. Ich werde Eure Anregungen bzgl "Trigger", "Schedule" "falls" versuchen zu verstehen und mein Script dann zu ändern.
    Danke

    M 1 Antwort Letzte Antwort
    0
    • M mhdau

      Moin,

      ich möchte mit IOBroker erfassen, wie hoch der Gasverbrauch in meinem Hause ist und wann der Gasbrenner heizt. Dazu habe ich mit einem TRTC5000 einen SONOFF Basic als Counter konfiguriert. Das funktioniert ganz ordentlich, so dass ich die Gasverbrauchswerte stdl., tgl., mtl. gut im Blick habe. Um den AN / AUS - Zustand des BUDERUS Gasbrenners zu erfassen könnte ich in die Elektronik des Gasbrenners eingreifen und ein entsprechendes Signal auswerten, oder eine nach aussen geführte "Brenner An LED" verwenden. Beides möchte ich nicht. Statt dessen war meine Idee, ganz einfach den bereits funktionierenden Zähler auszuwerten. Den frage ich zur Zeit einmal pro Minute ab. Wenn sich der Zählerstand geändert hat, kann nur der Brenner angewesen sein. Mittels Blockly habe ich mir dazu ein Script erstellt, welches auch funktioniert. Nur leider wird das Script nahezu regelmäßig "disabled". Im protokoll deutet es auf zu viele Statusabfragen pro Minute hin, mit dem Hinweis "Please, check your Script". Wenn ich dass Script wieder "enable" habe ich wieder ca 3 Tage Ruhe.
      Ich bin völlig unerfahren im programmieren. Erkennt jemand meinen Fehler?

      Gruß Dau (das ist mein Familienname, trifft aber ja evtl. zu)

      Blockly Gasbrenner_AN.jpg

      schedule("*/60 * * * * *", async () => {
        on({ id: 'sonoff.0.DVES_8F8B87.COUNTER_C1' /* DVES_8F8B87 COUNTER  C1 */, change: 'gt' }, async (obj) => {
          let value = obj.state.val;
          let oldValue = obj.oldState.val;
          if (true) {
            setState('0_userdata.0.Gasbrenner_AN' /* Gasbrenner_AN */, true, true);
          }
        });
        on({ id: 'sonoff.0.DVES_8F8B87.COUNTER_C1' /* DVES_8F8B87 COUNTER  C1 */, change: 'le' }, async (obj) => {
          let value = obj.state.val;
          let oldValue = obj.oldState.val;
          if (true) {
            setState('0_userdata.0.Gasbrenner_AN' /* Gasbrenner_AN */, false, true);
          }
        });
      });
      

      MOD-EDIT: Code in code-tags gesetzt!

      Auch finde ich die doppelte Abfrage "Falls Objekt" unnötig. Ich dachte mir, dass eine Abfrage unter Verwendung von "Falls - Sonst" genügen müsste. Ein solches Script ändert den Gasbrenner Status nur einmal, und dann nie wieder.

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

      @mhdau
      Du willst also anhand des sich (mehr oder weniger konstant) ändernden Zählerstandes erkennen, ob der Brenner läuft oder nicht?

      Vielleicht nach diesem Prinzip

      64fd7248-3391-4328-8726-e8ddecd6b536-image.png

      Erkennt der Zähler-Sensor eine Änderung, setzt er der Wert für brenner_an auf true und startet einen timeout.
      Erfolgt nun innerhalb der Zeitspanne keine erneute Änderung, wird der Wert wieder auf false gesetzt.

      Erfolgt eine Änderung innerhalb der Zeitspanne, wird der timeout gestoppt. Damit bleibt der Wert auf true.

      "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

      M 1 Antwort Letzte Antwort
      0
      • M mhdau

        @liv-in-sky

        Moin,

        also, grundsätzlich funktioniert mein "umständliches" Script ja so wie ich es mir vorstelle.
        Dass der Gasbrenner aus ist, erkennt das Script an dem Zählerstand, der sich eben nach einer Minute nicht geändert hat. Dabei hoffe ich natürlich, dass immer, wenn Gas strömt, auch die Zündung des Gases erfolgt.
        Anbei eine EChart, die ich aus der Brenner AN _ AUS Aussage generiert habe.

        Echart Gasbrenner AN _ AUS.jpg
        Wie schon beschrieben, funktioniert das Script immer nur ca 3 Tage, dann wird es beendet. Ich werde Eure Anregungen bzgl "Trigger", "Schedule" "falls" versuchen zu verstehen und mein Script dann zu ändern.
        Danke

        M Offline
        M Offline
        mhdau
        schrieb am zuletzt editiert von
        #8

        @mhdau

        . . . und noch einmal Moin,
        glaubt mir, dass ich schon lange auf mein "umständliches Script" gestarrt habe, und keinen der Fehler wahrgenommen habe! Mannomann! Ich habe das Script jetzt vereinfacht und lasse es parallel zu meinem "überladenen laufen.

        Screenshot 2024-03-11 114518.jpg

        Bisher funktioniert es. Evtl. ist ja auch der Fehler des Script - Abbruchs damit beseitigt,
        Ich lasse es Euch dann wissen.

        Gruß
        Dau

        CodierknechtC 1 Antwort Letzte Antwort
        0
        • M mhdau

          @mhdau

          . . . und noch einmal Moin,
          glaubt mir, dass ich schon lange auf mein "umständliches Script" gestarrt habe, und keinen der Fehler wahrgenommen habe! Mannomann! Ich habe das Script jetzt vereinfacht und lasse es parallel zu meinem "überladenen laufen.

          Screenshot 2024-03-11 114518.jpg

          Bisher funktioniert es. Evtl. ist ja auch der Fehler des Script - Abbruchs damit beseitigt,
          Ich lasse es Euch dann wissen.

          Gruß
          Dau

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

          @mhdau sagte in Blockly Script wird nach ca. 3 Tagen beendet:

          Ich habe das Script jetzt vereinfacht

          Aber immer noch "Trigger in Trigger".
          Das funktioniert so nicht!

          https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps

          "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

          M 1 Antwort Letzte Antwort
          1
          • CodierknechtC Codierknecht

            @mhdau sagte in Blockly Script wird nach ca. 3 Tagen beendet:

            Ich habe das Script jetzt vereinfacht

            Aber immer noch "Trigger in Trigger".
            Das funktioniert so nicht!

            https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps

            M Offline
            M Offline
            mhdau
            schrieb am zuletzt editiert von
            #10

            @codierknecht

            Ich werde mir die Starthilfe noch zu Gemüte führen. Sicher mache ich einiges falsch.
            Aber auch das vereinfachte Script funktioniert! Zumindest so, wie ich mir das vorstelle.
            Ob der Abbruch wieder erfolgt, muss ich abwarten.

            Verlaufsdaten_2.jpg Verlaufsdaten_1.jpg

            Gruß
            Dau

            CodierknechtC 1 Antwort Letzte Antwort
            0
            • M mhdau

              @codierknecht

              Ich werde mir die Starthilfe noch zu Gemüte führen. Sicher mache ich einiges falsch.
              Aber auch das vereinfachte Script funktioniert! Zumindest so, wie ich mir das vorstelle.
              Ob der Abbruch wieder erfolgt, muss ich abwarten.

              Verlaufsdaten_2.jpg Verlaufsdaten_1.jpg

              Gruß
              Dau

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

              @mhdau sagte in Blockly Script wird nach ca. 3 Tagen beendet:

              Aber auch das vereinfachte Script funktioniert

              Damit erzeugst Du jede Minute 2 neue Trigger!
              Das fliegt Dir über kurz oder lang um die Ohren.

              @mhdau sagte in Blockly Script wird nach ca. 3 Tagen beendet:

              Ob der Abbruch wieder erfolgt, muss ich abwarten.

              Es werden noch Wetten angenommen :grin:

              "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
              1
              • CodierknechtC Codierknecht

                @mhdau
                Du willst also anhand des sich (mehr oder weniger konstant) ändernden Zählerstandes erkennen, ob der Brenner läuft oder nicht?

                Vielleicht nach diesem Prinzip

                64fd7248-3391-4328-8726-e8ddecd6b536-image.png

                Erkennt der Zähler-Sensor eine Änderung, setzt er der Wert für brenner_an auf true und startet einen timeout.
                Erfolgt nun innerhalb der Zeitspanne keine erneute Änderung, wird der Wert wieder auf false gesetzt.

                Erfolgt eine Änderung innerhalb der Zeitspanne, wird der timeout gestoppt. Damit bleibt der Wert auf true.

                M Offline
                M Offline
                mhdau
                schrieb am zuletzt editiert von
                #12

                @codierknecht

                Ich werde gründlich über die Verwendung von Timeout nachdenken müssen!
                Immerhin ist dann wohl kein CRON-Job nötig.
                Auf jeden Fall Dank für die Denkanstöße.

                liv-in-skyL 1 Antwort Letzte Antwort
                0
                • M mhdau

                  @codierknecht

                  Ich werde gründlich über die Verwendung von Timeout nachdenken müssen!
                  Immerhin ist dann wohl kein CRON-Job nötig.
                  Auf jeden Fall Dank für die Denkanstöße.

                  liv-in-skyL Offline
                  liv-in-skyL Offline
                  liv-in-sky
                  schrieb am zuletzt editiert von liv-in-sky
                  #13

                  @mhdau kurz nochmal erklärt: ein trigger wird im system angemeldet, da iob darauf reagiert - "schedule oder falls object"

                  dein script erzeugt in 3 tagen 8640 trigger einträge

                  dein script funktioniert eigentlich nicht, da der schedule zum zeitpunkt x aktiviert wird und nur wenn zum zeitpunkt x auch der "falls object" getriggert wird, funktioniert es - das ist eigentlich fast unmöglich zu erreichen

                  wenn du aber 1000-ende von triggern hast, ist wahrscheinlich dein system so beschäftigt, dass tatsächlich mal der innere trigger getroffen wird - weil sich alles irgendwie verzögert

                  auf gut deutsch: du hast glück gehabt, dass dein script überhaupt was macht - dafür aber stürzt es auch nach ein paar tagen ab

                  nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                  M 1 Antwort Letzte Antwort
                  1
                  • liv-in-skyL liv-in-sky

                    @mhdau kurz nochmal erklärt: ein trigger wird im system angemeldet, da iob darauf reagiert - "schedule oder falls object"

                    dein script erzeugt in 3 tagen 8640 trigger einträge

                    dein script funktioniert eigentlich nicht, da der schedule zum zeitpunkt x aktiviert wird und nur wenn zum zeitpunkt x auch der "falls object" getriggert wird, funktioniert es - das ist eigentlich fast unmöglich zu erreichen

                    wenn du aber 1000-ende von triggern hast, ist wahrscheinlich dein system so beschäftigt, dass tatsächlich mal der innere trigger getroffen wird - weil sich alles irgendwie verzögert

                    auf gut deutsch: du hast glück gehabt, dass dein script überhaupt was macht - dafür aber stürzt es auch nach ein paar tagen ab

                    M Offline
                    M Offline
                    mhdau
                    schrieb am zuletzt editiert von
                    #14

                    @liv-in-sky

                    Vielen Dank für die Mühe, die Ihr Euch mit mir macht! Aber langsam dämmert es mir.
                    Ich habe den Vorschlag von "Codierknecht" an meine bestehende Konfiguration angepasst. Lediglich die Timeout - Zeit werde ich noch ändern müssen, denn in der Grafik wird "Brenner AN = TRUE" nur für die angegebene Zeit angezeigt.
                    Die ganze Thematik kam bei mir auf, weil kurz vor unserem Weihnachtsurlaub ein Defekt in meiner Heizung auftrat. Der wurde zwar beseitigt, aber ich traute dem Frieden nicht.
                    Künftig kann ich jetzt zumindest aus der Ferne meine Heizung, Vorlauftemperatur, etc. überwachen und muss nicht die Verwandtschaft bemühen, um nach dem Rechten zu sehen.
                    Gruß
                    M H Dau

                    CodierknechtC 1 Antwort Letzte Antwort
                    0
                    • M mhdau

                      @liv-in-sky

                      Vielen Dank für die Mühe, die Ihr Euch mit mir macht! Aber langsam dämmert es mir.
                      Ich habe den Vorschlag von "Codierknecht" an meine bestehende Konfiguration angepasst. Lediglich die Timeout - Zeit werde ich noch ändern müssen, denn in der Grafik wird "Brenner AN = TRUE" nur für die angegebene Zeit angezeigt.
                      Die ganze Thematik kam bei mir auf, weil kurz vor unserem Weihnachtsurlaub ein Defekt in meiner Heizung auftrat. Der wurde zwar beseitigt, aber ich traute dem Frieden nicht.
                      Künftig kann ich jetzt zumindest aus der Ferne meine Heizung, Vorlauftemperatur, etc. überwachen und muss nicht die Verwandtschaft bemühen, um nach dem Rechten zu sehen.
                      Gruß
                      M H Dau

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

                      @mhdau sagte in Blockly Script wird nach ca. 3 Tagen beendet:

                      Lediglich die Timeout - Zeit werde ich noch ändern müssen

                      Die hängt natürlich davon ab, in welchen Intervallen sich bei eingeschaltetem Brenner der Zählerstand ändert.
                      Immer vorausgesetzt, ich habe das Vorhaben korrekt interpretiert.

                      "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

                      M 1 Antwort Letzte Antwort
                      1
                      • CodierknechtC Codierknecht

                        @mhdau sagte in Blockly Script wird nach ca. 3 Tagen beendet:

                        Lediglich die Timeout - Zeit werde ich noch ändern müssen

                        Die hängt natürlich davon ab, in welchen Intervallen sich bei eingeschaltetem Brenner der Zählerstand ändert.
                        Immer vorausgesetzt, ich habe das Vorhaben korrekt interpretiert.

                        M Offline
                        M Offline
                        mhdau
                        schrieb am zuletzt editiert von
                        #16

                        @codierknecht
                        Genau, das Rädchen an dem Zähler liefert jeweils nach 10 Litern Durchfluss einen Impuls an den Zähler. Aber der Durchfluss kann ja auch schon z.B. nach 3 Litern stoppen. Das steuert natürlich die Gastherme selbst. 100 % genau wird der Status so nie angezeigt. Mir genügt die zu erreichende Genauigkeit aber.

                        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

                        559

                        Online

                        32.6k

                        Benutzer

                        82.3k

                        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