Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Timeout in IDs vom Selektor

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Timeout in IDs vom Selektor

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

      Hallo zusammen,

      Ich hab da mal eine Frage zu diesem Blockly:

      c84e847c-2a7c-4c08-8b40-f2afba1bdc4d-image.png

      Der Auslöser kann aus einem Objekt der IDs vom Selektor kommen.
      Der Timeout beträgt eine halbe Stunde, dann soll der Wert in Objekt ID auf den Wert von "ID für Wert nach Ende manueller Modus" gesetzt werden.
      Zwischenzeitlich kann aber eine neue Anforderung eines neuen Timeouts mit einer neuen Objekt ID ankommen. Dann gibt es auch einen neuen Wert von "ID für Wert nach Ende manueller Modus".
      Versteht das Blockly das und führt die mehreren Timeouts mit den richtigen unterschiedlichen Werten aus oder geht das so gar nicht?

      Codierknecht paul53 haus-automatisierung 3 Replies Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @guitardoc last edited by

        @guitardoc sagte in Timeout in IDs vom Selektor:

        ID für Wert nach Ende manueller Modus

        Soll das 'ne Variable sein? Mit Leerzeichen?
        Das funzt nicht.

        Mit "sprechende Namen verwenden" ist kein halber Roman gemeint.

        G paul53 2 Replies Last reply Reply Quote 1
        • G
          guitardoc @Codierknecht last edited by

          @codierknecht Na klar funktionieren die Leerzeichen. Schon seit Ewigkeiten. Und so weiß ich auch in drei Jahren noch was ich da gemacht hab. Aber das war eigentlich nicht das Problem?

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

            @codierknecht sagte: Soll das 'ne Variable sein? Mit Leerzeichen?

            Blockly ersetzt Leerzeichen durch Unterstriche.

            1 Reply Last reply Reply Quote 1
            • paul53
              paul53 @guitardoc last edited by

              @guitardoc sagte: Versteht das Blockly das und führt die mehreren Timeouts mit den richtigen unterschiedlichen Werten aus oder geht das so gar nicht?

              Das geht so nicht. Jeder DP benötigt seinen eigenen Timeout.

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

                @guitardoc sagte in Timeout in IDs vom Selektor:

                Versteht das Blockly das und führt die mehreren Timeouts mit den richtigen unterschiedlichen Werten aus oder geht das so gar nicht?

                Das geht so, nur wird jedes Mal ein Timeout gestartet - auch, wenn bereits für die gleiche ID einer läuft. Der vorige für die ID kann nicht gestoppt werden, weil Dir dafür dann die Referenz fehlt.

                Mit JavaScript wäre das lösbar.

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

                  @haus-automatisierung sagte: Der vorige für die ID kann nicht gestoppt werden, weil Dir dafür dann die Referenz fehlt.

                  Das meinte ich mit meiner Aussage. Eine halbe Stunde ist eine lange Zeit.

                  G 1 Reply Last reply Reply Quote 0
                  • G
                    guitardoc @paul53 last edited by

                    Hmm, da werde ich für jeden Datenpunkt lieber einen separaten Timeout starten. Man muss es ja nicht unnötig verkomplizieren.
                    Aber interessehalber - wie würde man das in Javascript lösen bzw. was wäre da anders?

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @guitardoc last edited by

                      @guitardoc sagte: wie würde man das in Javascript lösen bzw. was wäre da anders?

                      In Javascript kann man z.B. ein "Array of timers" verwenden.

                      1 Reply Last reply Reply Quote 0
                      • G
                        guitardoc last edited by

                        @paul53 Das mit den Arrays (und Array of Array) ist auch ein Punkt der mir in den Blocklys fehlt, ebenso wie Unterprogramme mit mehreren Rückgabewerten. Ist zwar hier Off-Topic, aber ist da geplant dies irgendwann zu implementieren?

                        paul53 haus-automatisierung 2 Replies Last reply Reply Quote 0
                        • paul53
                          paul53 @guitardoc last edited by paul53

                          @guitardoc sagte: Unterprogramme mit mehreren Rückgabewerten.

                          Das gibt es nicht. Man kann ein Objekt oder ein Array zurück geben, was auch in Blockly möglich ist. Dabei aber beachten, dass Objekte / Arrays per Referenz (Zeiger) übergeben werden.

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

                            @guitardoc Eigentlich geht schon alles. Was nur fehlt, ist eine Möglichkeit einen Timer zu stoppen indem man eine Variable übergibt. Der Rest würde funktionieren.

                            1 Reply Last reply Reply Quote 0
                            • G
                              guitardoc @paul53 last edited by

                              @paul53 said in Timeout in IDs vom Selektor:

                              dass Objekte / Arrays per Referenz (Zeiger) übergeben werden

                              Wie macht man das konkret?

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

                                Wenn es die Blöcke gäbe, könnte man die Objekt-ID als Eigenschaft eines Objektes nehmen und dort den Timeout drauf speichern. Das Problem dabei ist, dass die meisten solche Konstrukte wohl nicht verstehen werden. Daher habe ich die "Objekt"-Blöcke so einfach wie möglich gestaltet.

                                Screenshot 2024-05-25 at 11.11.16.png

                                G 2 Replies Last reply Reply Quote 0
                                • G
                                  guitardoc @haus-automatisierung last edited by

                                  @haus-automatisierung Das stimmt - so würde es gehen. Hmm, vielleicht wäre es ein Vorschlag an die Entwickler von Blockly?

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

                                    @guitardoc sagte in Timeout in IDs vom Selektor:

                                    Hmm, vielleicht wäre es ein Vorschlag an die Entwickler von Blockly?

                                    Wie gesagt, könnte ich alles einbauen. Aber werden dann immer mehr Bausteine und viele sind ja jetzt schon mit einfachen Konstrukten überfordert.

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

                                      @haus-automatisierung said in Timeout in IDs vom Selektor:

                                      Das Problem dabei ist, dass die meisten solche Konstrukte wohl nicht verstehen werden.

                                      Das ist allerdings tatsächlich ein Problem. Man muss schon ganz schöne Gehirnakrobatik betreiben, um zu verstehen, was da passiert.

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

                                        @guitardoc Und dann denke ich mir oft: Wer das in Blockly hinbekommt, der versteht auch JavaScript und schafft es die paar Zeilen zu programmieren.

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

                                          @haus-automatisierung Naja, ich persönlich tu mich schwer mit Javascript. Habe jahrelang objektorientiert programmiert. Ja, mit Typescript geht das zwar auch, aber mir fehlt die Möglichkeit, den Code sinnvoll mit wenig Aufwand während der Laufzeit zu debuggen. Aber vielleicht hab ich mich auch nur noch nicht ausführlich genug damit beschäftigt.

                                          1 Reply Last reply Reply Quote 0
                                          • G
                                            guitardoc last edited by

                                            Ich hab es jetzt mit einem Cron gelöst - der schaut jede Minute ob bei verschiedenen States die 30 Minuten schon erreicht sind und schaltet dann. Ist zwar nicht besonders elegant, scheint aber zu funktionieren.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            736
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            20
                                            393
                                            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