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

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

    Warum überhaupt einen schedule ?

    ich habe keinen vorschlag für veränderung gemacht - weil ich nicht weiß, was genau er möchte - sondern nur mal alle offensichtlichen fehler aufgezählt

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

    Einen timeout (z.bsp. 15 s), der dir den „Brenner läuft“ auf false stellt.

    ist natürlich ein richtiger einwand, wenn das script das selbe ergebnis haben soll

    AsgothianA Offline
    AsgothianA Offline
    Asgothian
    Developer
    schrieb am zuletzt editiert von
    #5

    @liv-in-sky stimmt, ich hätte ihm und nicht dir antworten sollen. :)

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

    1 Antwort Letzte Antwort
    1
    • 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

                          560

                          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