Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Blockly Script triggert nicht

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Blockly Script triggert nicht

    This topic has been deleted. Only users with topic management privileges can see it.
    • Q
      Qlink last edited by Qlink

      Hi Leute,

      ich möchte, dass am Monatsanfang ein paar Werte meiner Heizung berechnet und in entsprechende DPs geschrieben werden.

      Leider triggert das Script scheinbar nicht richtig, ich finde aber den Fehler nicht.

      Wenn ich einen Monatsblock aus dem Script herausnehme und das Script starte, werden die Daten in den DPs sofort korrekt aktualisiert, aber innerhalb des Zeitplans scheints automatisiert nicht zu klappen ...

      Kann mir jemand weiterhelfen ?

      55d068f5-6a1f-448b-8e2c-f923ce151416-image.png
      d0fcde48-d3fe-4762-887c-6fdab4f10ebf-image.png

      script.txt

      Homoran David G. 2 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Qlink last edited by Homoran

        @qlink sagte in Blockly Script triggert nicht:

        Leider triggert das Script scheinbar nicht richtig,

        was soll das arne Skript denn machen?

        @qlink sagte in Blockly Script triggert nicht:

        ich möchte, dass am Monatsanfang

        das sagst du ihm aber nicht.

        dein CRON 47 0 2 * * bedeutet am 2. jeden Monats um 0:47, so wie es auch im Screenshot steht

        1 Reply Last reply Reply Quote 0
        • David G.
          David G. @Qlink last edited by

          @qlink

          So musste es da aussehen

          Screenshot_20230608_102852_Chrome.jpg

          1 Reply Last reply Reply Quote 0
          • Q
            Qlink last edited by

            Ja, das ist mir klar und das passt auch so.
            Ist nicht weiter wichtig ob das Script am Monats 1. oder am Monats 2. triggert... Hauptsache am Monatsanfang...

            Das Thema ist, wenn ich dann Tage später, z.B. am 8. oder 9. in iobroker schaue, merke ich dass die Daten nicht aktualisiert worden sind, weil das Script nicht getriggert hat.

            Codierknecht Homoran 2 Replies Last reply Reply Quote 0
            • Codierknecht
              Codierknecht Developer Most Active @Qlink last edited by

              @qlink
              Mein Vorschlag:
              6d87ac9b-8cb0-4c2a-88bc-51c35b4ae73f-image.png
              Es ist allerdings nicht ganz klar, ob die Werte alle aus dem gleichen Objekt stammen, oder ab das verschiedene Objekte mit jeweils gleichem Namen sind.

              Aber das Prinzip sollte hier klar sein: Die Namen der Zielobjekte werden dynamisch bestimmt und dann wird der Salat zentral beschrieben.

              Q 1 Reply Last reply Reply Quote 0
              • Q
                Qlink @Codierknecht last edited by

                @codierknecht

                Das sind verschiedene Objekte die leider alle den gleichen Namen haben ...

                Kannst du mir sagen wieso mein Script nicht triggert ?

                Dass deine Lösung viel besser und eleganter ist sehe ich zu 100 Prozent.

                Mich würde aber interessieren wieso meine Lösung nicht funktioniert ?

                Beste Grüße

                1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @Qlink last edited by

                  @qlink sagte in Blockly Script triggert nicht:

                  dass die Daten nicht aktualisiert worden sind, weil das Script nicht getriggert hat.

                  woran machst du das fest?
                  keinerlei andere Ursache für das Fehlen der Daten möglich?

                  Q 1 Reply Last reply Reply Quote 0
                  • Q
                    Qlink @Homoran last edited by

                    @homoran

                    weil die Datenpunkte Waermemenge-Jan, Waermemenge-Feb, Waermemenge-Mar usw. unter "Objects" keinen Zeitstempel zu dem Auslösezeit des Scripts erhalten...

                    Homoran 1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @Qlink last edited by

                      @qlink sagte in Blockly Script triggert nicht:

                      @homoran

                      weil die Datenpunkte Waermemenge-Jan, Waermemenge-Feb, Waermemenge-Mar usw. unter "Objects" keinen Zeitstempel zu dem Auslösezeit des Scripts erhalten...

                      ja und?
                      deswegen kann es triggern und bei einem Fehlet im Programm hängen bleiben...

                      Codierknecht 1 Reply Last reply Reply Quote 0
                      • Codierknecht
                        Codierknecht Developer Most Active @Homoran last edited by

                        @homoran sagte in Blockly Script triggert nicht:

                        deswegen kann es triggern und bei einem Fehlet im Programm hängen bleiben...

                        @Qlink
                        Bau doch mal einen Debug-Block ein und schau dann im Log, ob der Trigger gefeuert hat oder nicht.

                        1 Reply Last reply Reply Quote 0
                        • Q
                          Qlink last edited by

                          @Codierknecht

                          Hab jetzt endlich mal wieder Zeit gefunden für dieses Problemchen...
                          Der Tipp mit dem Debug Output war top.

                          2023-10-02 00:45:00.031 - info: javascript.0 (943) script.js.Stiebel.Leistungsaufnahme_V2: Berechnung Leistungsaufnahme September
                          2023-10-02 00:45:00.032 - info: javascript.0 (943) script.js.Stiebel.Leistungsaufnahme_V2: Berechnung LeistungsaufnahmeHEIZ September
                          2023-10-02 00:45:00.032 - info: javascript.0 (943) script.js.Stiebel.Leistungsaufnahme_V2: Berechnung LeistungsaufnahmeWW September
                          2023-10-02 00:45:00.032 - info: javascript.0 (943) script.js.Stiebel.Leistungsaufnahme_V2: Berechnung LeistungsaufnahmeGesamt September
                          2023-10-02 00:47:00.014 - info: javascript.0 (943) script.js.Stiebel.Wärmemenge_V2: Berechnung Wärmemenge September
                          2023-10-02 00:47:00.014 - info: javascript.0 (943) script.js.Stiebel.Wärmemenge_V2: Berechnung WärmemengeHEIZ September
                          2023-10-02 00:47:00.014 - info: javascript.0 (943) script.js.Stiebel.Wärmemenge_V2: Berechnung WärmemengeWW September
                          2023-10-02 00:47:00.014 - info: javascript.0 (943) script.js.Stiebel.Wärmemenge_V2: Berechnung WärmemengeWRG September
                          2023-10-02 00:47:00.014 - info: javascript.0 (943) script.js.Stiebel.Wärmemenge_V2: Berechnung WärmemengeGesamt September
                          2023-10-02 00:57:00.017 - info: javascript.0 (943) script.js.Stiebel.COP: Berechnung COP September
                          2023-10-02 00:57:00.018 - info: javascript.0 (943) script.js.Stiebel.COP: Berechnung COPGesamt September
                          

                          Jetzt weiß ich zumindest dass die Scripte alle korrekt triggern.

                          Was ich allerdings nicht verstehe ist, warum folgendes Script scheinbar die letzte Berechnung nicht durchführt:
                          b3fd108f-22c0-44e3-8e69-9e1cbae1b8c4-image.png

                          Die Werte "Leistungsaufnahme-HEIZ" und "Leistungsaufnahme-WW" werden richtig aktualisiert laut Zeitstempel und entsprechend geändert, aber der Wert "Leistungsaufnahme-Sep" (Addition von HEIZ + WW) bekommt nur einen Zeitstempel, wird aber nicht geändert:
                          5de5d80d-b519-4eab-a285-e70b18ff3c8c-image.png

                          Hat jemand eine Idee wo hier der Fehler liegt ?

                          Beste Grüße

                          Codierknecht 1 Reply Last reply Reply Quote 0
                          • Codierknecht
                            Codierknecht Developer Most Active @Qlink last edited by

                            @qlink sagte in Blockly Script triggert nicht:

                            Hat jemand eine Idee wo hier der Fehler liegt ?

                            Du rechnest mit Werten, die zu dem Zeitpunkt noch gar nicht aktualisiert vorliegen.
                            2x den Wert aus "Monatlicher Wert" auszulesen ist auch ineffizient.
                            Mein Vorschlag: Erstelle passende Variablen und berechne zunächst die Werte.
                            Erst dann schreibst Du die Werte, die dann in den Variablen bereits fertig berechnet sind, in die entsprechenden Datenpunkte.
                            Die Verzögerung kann man sich dann auch sparen.

                            Q 1 Reply Last reply Reply Quote 0
                            • Q
                              Qlink @Codierknecht last edited by Qlink

                              @codierknecht

                              Wieso liegen die noch nicht vor ?
                              Die Addition passiert mit 4 Minuten Verzögerung nach der Aktualisierung, oder verstehe ich hier was falsch ?
                              Nach 3min liegt der erste Wert vor, nach 6min der zweite Wert und nach 10min werden beide addiert ...
                              Die 2x monatlicher Wert sind zwei unterschiedliche DPs, die denselben Namen haben ...

                              Codierknecht 1 Reply Last reply Reply Quote 0
                              • Codierknecht
                                Codierknecht Developer Most Active @Qlink last edited by

                                @qlink sagte in Blockly Script triggert nicht:

                                Wieso liegen die noch nicht vor ?

                                Ich kann mich täuschen, aber nach der Verzögerung wird der Wert geschrieben.
                                Würde mich jedenfalls nicht wundern, wenn die Berechnung bereits vorher stattfindet oder durch die Asynchronität zum falschen Zeitpunkt ausgeführt wird.

                                Lies die Werte der Datenpunkte (ganz zu Beginn) in Variablen ein.
                                Mit denen kannst Du nach Herzenslust rechnen und die Ergebnisse in weitere Variablen schreiben.

                                Am Ende schreibst Du die Werte der Ergebnisvariablen zu einem Dir passenden Zeitpunkt in die Datenpunkte.
                                Wenn die Variablen dann auch noch sprechende Namen haben, macht das das Script auch noch gut lesbar.

                                Warum überhaupt zu unterschiedliche Zeitpunkten schreiben?

                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                866
                                Online

                                32.0k
                                Users

                                80.4k
                                Topics

                                1.3m
                                Posts

                                blockly
                                4
                                14
                                654
                                Loading More Posts
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes
                                Reply
                                • Reply as topic
                                Log in to reply
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                The ioBroker Community 2014-2023
                                logo