Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Fehler: Keine Subscription/Schedule nach Funktionsaufruf

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Fehler: Keine Subscription/Schedule nach Funktionsaufruf

    This topic has been deleted. Only users with topic management privileges can see it.
    • BananaJoe
      BananaJoe Most Active last edited by BananaJoe

      Ich bin im Beta-Zweig unterwegs, dementsprechend ist mein JavaScript-Adapter auf Version v8.1.1

      Folgendes Blockly (Beispiel):

      d5950a09-01f4-4667-a064-43af23bda427-image.png

      Müsste ja beim Ausführen eine Subscription generieren:

      2024-05-06 14:20:01.165  - info: javascript.0 (3659915) Start JavaScript script.js.Tests.Forum_TestFunktion (Blockly)
      2024-05-06 14:20:01.182  - warn: javascript.0 (3659915) script.js.Tests.Forum_TestFunktion: Wollen wir ein Spiel spielen?
      2024-05-06 14:20:01.182  - info: javascript.0 (3659915) script.js.Tests.Forum_TestFunktion: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
      
      

      Wenn ich das umdrehe geht alles wieder:
      fd125fa3-74df-45c0-9300-027acc5353e3-image.png

      2024-05-06 14:21:00.390  - info: javascript.0 (3659915) Start JavaScript script.js.Tests.Forum_TestFunktion (Blockly)
      2024-05-06 14:21:00.393  - warn: javascript.0 (3659915) script.js.Tests.Forum_TestFunktion: Wollen wir ein Spiel spielen?
      2024-05-06 14:21:00.393  - info: javascript.0 (3659915) script.js.Tests.Forum_TestFunktion: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
      
      

      Das habe leider in ganze vielen meiner Skripte - da baue ich erst die Datenpunkte (gerne mit einer eigenen Funktion) und befülle diese einmal beim Start (auch gerne per Funktion)
      Immer wenn ich einen Funktion vor Triggern oder Zeitplänen aufrufe werden diese nicht aktiviert. Es betrifft keine bestehenden Skripte, aber sobald ich die einmal anfasse muss ich die Reihenfolge umdrehen.

      Das war früher, sprich in älteren Versionen, noch nicht so, ich kann aber nicht mehr sagen wann das passiert ist.
      Ist das ein Bug oder mache ich etwas falsch?

      Ich stubbse mal @haus-automatisierung dazu mit an weil ich meine er zuletzt kräftig dran geschraubt hat.

      paul53 liv-in-sky haus-automatisierung 3 Replies Last reply Reply Quote 0
      • paul53
        paul53 @BananaJoe last edited by paul53

        @bananajoe sagte: Immer wenn ich einen Funktion vor Triggern oder Zeitplänen aufrufe werden diese nicht aktiviert.

        Das kann ich mit Version 8.0.3 nicht bestätigen: Der Trigger wird ausgeführt, obwohl im Log beim Skriptstart "registered 0 subscriptions," gemeldet werden.

        @bananajoe sagte in Fehler: Keine Subscription/Schedule nach Funktionsaufruf:

        Ist das ein Bug oder mache ich etwas falsch?

        Es ist ein Bug, der die Log-Ausgabe bei Skriptstart betrifft (Blockly).

        EDIT: Es tritt nur im Zusammenhang mit await vor dem Funktionsaufruf auf.

        BananaJoe 1 Reply Last reply Reply Quote 0
        • liv-in-sky
          liv-in-sky @BananaJoe last edited by liv-in-sky

          @bananajoe

          du rufst doch keine der funktionen auf (du definierst sie nur), beim script start - wieso soll es dann subscriben ?

          im gegesatz zum 2ten beispiel - dort wird der trigger gesetzt

          BananaJoe 1 Reply Last reply Reply Quote 0
          • BananaJoe
            BananaJoe Most Active @liv-in-sky last edited by

            @liv-in-sky schau dir das noch mal genau an, ich rufe die Funktion einmal auf bevor ich den Trigger starte

            liv-in-sky 1 Reply Last reply Reply Quote 1
            • liv-in-sky
              liv-in-sky @BananaJoe last edited by

              @bananajoe oh sorry - mein fehler 😞

              1 Reply Last reply Reply Quote 0
              • BananaJoe
                BananaJoe Most Active @paul53 last edited by

                @paul53 sagte in Fehler: Keine Subscription/Schedule nach Funktionsaufruf:

                Es ist ein Bug, der die Log-Ausgabe bei Skriptstart betrifft (Blockly).

                Recht hast du, es wird trotzdem ausgeführt, puhh

                haus-automatisierung 1 Reply Last reply Reply Quote 0
                • haus-automatisierung
                  haus-automatisierung Developer Most Active @BananaJoe last edited by

                  @bananajoe sagte in Fehler: Keine Subscription/Schedule nach Funktionsaufruf:

                  Recht hast du, es wird trotzdem ausgeführt, puhh

                  Ich kann hier nicht so richtig folgen. Das heißt, das alles funktioniert, aber eine Log-Meldung fehlt?

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @haus-automatisierung last edited by

                    @haus-automatisierung sagte: alles funktioniert, aber eine Log-Meldung fehlt?

                    Es funktioniert, aber bei Skriptstart wird eine falsche (zu geringe) Anzahl an Subscriptions und Schedules im Log ausgegeben.

                    haus-automatisierung 1 Reply Last reply Reply Quote 0
                    • haus-automatisierung
                      haus-automatisierung Developer Most Active @paul53 last edited by

                      @paul53 Das Problem ist wahrscheinlich, dass die Subscription erst nach der Ausgabe registriert wird. Es wird ja dieser Code zusammengebaut:

                      (async () => {
                        // globalScripts
                        // script
                      })();
                      log(
                          'registered ' +
                          __engine.__subscriptions + ' subscription' + (__engine.__subscriptions === 1 ? '' : 's' ) + ',' +
                          __engine.__schedules + ' schedule' + (__engine.__schedules === 1 ? '' : 's' ) + ',' +
                          __engine.__subscriptionsMessage + ' message' + (__engine.__subscriptionsMessage === 1 ? '' : 's' ) + ',' +
                          __engine.__subscriptionsLog + ' log' + (__engine.__subscriptionsLog === 1 ? '' : 's' ) + ' and ' +
                          __engine.__subscriptionsFile + ' file subscription' + (__engine.__subscriptionsFile === 1 ? '' : 's' )
                      );
                      

                      Dadurch kann es passieren, dass das log() vor dem Inhalt in der asynchronen Funktion ausgeführt wird. Das war dann aber schon immer so - daran wurde ewig nichts geändert. Ich gucke mal dass ich das auf .then() ändere, damit das Log immer erst später ausgegeben wird.

                      1 Reply Last reply Reply Quote 1
                      • haus-automatisierung
                        haus-automatisierung Developer Most Active @BananaJoe last edited by

                        @bananajoe sagte in Fehler: Keine Subscription/Schedule nach Funktionsaufruf:

                        Ich stubbse mal @haus-automatisierung dazu mit an weil ich meine er zuletzt kräftig dran geschraubt hat.

                        Okay, hier ein Fix für das oben genannte Problem: https://github.com/ioBroker/ioBroker.javascript/commit/3a87abff627e341875333f122015423152abf4ad

                        Aber: Die Logmeldung ist generell nur ein einmaliger "Zwischenstand" beim Start. Solltest Du einen Timeout drumherum packen, ist die Logmeldung wieder "falsch", weil ja zum Zeitpunkt des Logs die Subscription noch nicht angelegt wurde. z.B.

                        Screenshot 2024-05-07 at 22.38.28.png

                        Hier wird der Trigger ja eine Sekunde nach der Logmeldung angelegt. Funktioniert alles - nur die Logmeldung sagt dann logischerweise auch "0 subscriptions".

                        0 klein0r committed to ioBroker/ioBroker.javascript
                        Number of subscriptions not logged correctly in some cases
                        1 Reply Last reply Reply Quote 1
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        759
                        Online

                        32.0k
                        Users

                        80.4k
                        Topics

                        1.3m
                        Posts

                        4
                        10
                        361
                        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