Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. hilfe bei script anpassung für abfrage/schleife

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    hilfe bei script anpassung für abfrage/schleife

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

      hallo zusammen,

      ich habe ein script gebaut, womit die weihnachtsbeleuchtung ein- und ausgeschaltet wird.
      nun ist es so, dass gelegentlich eins der vielen zigbee schalter (auch immer unterschiedlich welcher), sich nicht ausschaltet.
      deshalb ist meine idee, in dem script so ne art schleife zu bauen, welche so lange prüft, bis alle aktoren ein- bzw. auschgeschaltet wurden.
      jemand ne idee wie ich das umsetzen kann?

      evtl mit timeouts?

      dd72b670-58e1-489d-b1f7-fb3ae4164601-image.png

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

        @ltsalvatore
        Vorschlag: Gestaffelt senden (nicht alle gleichzeitig) und nach 1 s wiederholen, falls nicht erfolgreich. Etwa so:

        Blockly_temp.JPG

        Die Javascript-Funktion enthält nur eine Anweisung.

        clearStateDelayed(id);
        

        @ltsalvatore sagte in hilfe bei script anpassung für abfrage/schleife:

        schleife zu bauen, welche so lange prüft, bis alle aktoren ein- bzw. auschgeschaltet wurden.

        Um nicht unnötig zu senden, würde man 6 Intervalle benötigen, die bei Erfolg beendet werden. Da die Intervalle nicht über die Datenpunkt-ID adressiert werden können, wäre der Aufwand entsprechend hoch. Aber vielleicht genügt ja mein Vorschlag oben ?

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

          @paul53 sagte in hilfe bei script anpassung für abfrage/schleife:

          @ltsalvatore
          Vorschlag: Gestaffelt senden (nicht alle gleichzeitig) und nach 1 s wiederholen, falls nicht erfolgreich. Etwa so:

          Blockly_temp.JPG

          Die Javascript-Funktion enthält nur eine Anweisung.

          clearStateDelayed(id);
          

          @ltsalvatore sagte in hilfe bei script anpassung für abfrage/schleife:

          schleife zu bauen, welche so lange prüft, bis alle aktoren ein- bzw. auschgeschaltet wurden.

          Um nicht unnötig zu senden, würde man 6 Intervalle benötigen, die bei Erfolg beendet werden. Da die Intervalle nicht über die Datenpunkt-ID adressiert werden können, wäre der Aufwand entsprechend hoch. Aber vielleicht genügt ja mein Vorschlag oben ?

          hi paul53 und danke für die hilfestellung..

          ich habe mir dein vorschlag jetzt 100 mal angeschaut und 101 nicht verstanden... 🤕

          das hier habe ich ja noch verstanden; da kommt mein objekt "Licht_Weihnachten_All" rein...
          3b2fa727-0eeb-4969-aea1-f165e963c116-image.png

          aber schon hier versteh nicht weiter:
          67be3f0a-438c-4923-aecd-5a2d57458d58-image.png

          was genau macht es und wieso sind das zwei variablen?

          vielleicht hilft es schon, wenn du mir genauer erklärst was diese zeile für eine funktion hat...

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

            @ltsalvatore sagte:

            was genau macht es und wieso sind das zwei variablen?

            Nur Sollzustand ist eine globale Variable. Wert ist eine (lokale) Eigenschaft des Trigger-Datenpunktes (Blöcke "Trigger"). Der lokale Wert wird in einer globalen Variablen gespeichert, damit er auch außerhalb der Trigger-Funktion verfügbar ist.

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

              @paul53 sagte in hilfe bei script anpassung für abfrage/schleife:

              @ltsalvatore sagte:

              was genau macht es und wieso sind das zwei variablen?

              Nur Sollzustand ist eine globale Variable. Wert ist eine (lokale) Eigenschaft des Trigger-Datenpunktes (Blöcke "Trigger"). Der lokale Wert wird in einer globalen Variablen gespeichert, damit er auch außerhalb der Trigger-Funktion verfügbar ist.

              also so dann:
              44cfef14-002a-41f9-b58f-863f589bd5b3-image.png

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

                @ltsalvatore sagte:

                also so dann:

                So geht es auch. Ich bevorzuge dies:

                Blockly_DP_properties.JPG

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

                  @paul53 sagte in hilfe bei script anpassung für abfrage/schleife:

                  @ltsalvatore sagte:

                  also so dann:

                  So geht es auch. Ich bevorzuge dies:

                  Blockly_DP_properties.JPG

                  sorry.. ich versuche es echt.... aber ich kann dir sowas von überhaupt nicht folgen...
                  und, nicht bös gemeint, aber je mehr du schreibst, umso weniger wird es verständlich... 😲

                  trotzdem danke für deine bemühungen, aber ich warte mal, dass vielleicht jemand anderes noch ein paar ratschläge hat.

                  BBTown 1 Reply Last reply Reply Quote 0
                  • BBTown
                    BBTown @ltsalvatore last edited by BBTown

                    @ltsalvatore
                    Alle drei nachfolgenden "falls-Fragen" bedeuten exakt das gleiche.
                    Es sind nur 3 verschieden Schreibweisen, weil javascript immer "true" als "gesetzt" annimt (also immer davon ausgeht das true als Antwort kommt), kann man es auch kurz fassen.
                    Die dritte Form ist nur für (uns) Nicht-Programmierer am einfachsten zu durchschauen/erkennen
                    93adf5fc-54e2-41c7-a07a-f5da7092b935-grafik.png triggerWert.gif

                    L 1 Reply Last reply Reply Quote 0
                    • L
                      ltsalvatore @BBTown last edited by

                      @BBTown sagte in hilfe bei script anpassung für abfrage/schleife:

                      @ltsalvatore
                      Alle drei nachfolgenden "falls-Fragen" bedeuten exakt das gleiche.
                      Es sind nur 3 verschieden Schreibweisen, weil javascript immer "true" als "gesetzt" annimt (also immer davon ausgeht das true als Antwort kommt), kann man es auch kurz fassen.
                      Die dritte Form ist nur für (uns) Nicht-Programmierer am einfachsten zu durchschauen/erkennen
                      93adf5fc-54e2-41c7-a07a-f5da7092b935-grafik.png triggerWert.gif

                      ahh okiii... das muss man erst mal wissen 😛

                      ich dachte das wäre offensichtlich, dass ich keine ahnung von programmierung habe, und solche infos dann gold wert sind 😛

                      die letzten beiden if abfragen leuchten dann ein..
                      aber.. bei der ersten fehlt mir immer noch etwas das verständnis
                      woher soll es denn bei der ersten if abfrage wissen, dass wert sich auf objekt id alarmanlage bezieht? immerhin könnten sich ja mehr als nur ein objekt im trigger befinden.
                      und wie würde das ganze aussehen, wenn der wert false statt true sein müsste...

                      PS: eine frage am rande.. wie kann man beim schreiben von posts dieses beschissene emoji kontext menu, welches automatisch erscheint, sobald man ":-" eintippert abschalten...
                      das ist so scheiße nervig...

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

                        @ltsalvatore sagte:

                        immerhin könnten sich ja mehr als nur ein objekt im trigger befinden.

                        Dann kann man diese Version nicht anwenden.

                        @ltsalvatore sagte in hilfe bei script anpassung für abfrage/schleife:

                        wie würde das ganze aussehen, wenn der wert false statt true sein müsste.

                        • falls nicht Wert
                        • falls Wert == falsch
                        L 1 Reply Last reply Reply Quote 0
                        • L
                          ltsalvatore @paul53 last edited by

                          @paul53 sagte in hilfe bei script anpassung für abfrage/schleife:

                          @ltsalvatore sagte:

                          immerhin könnten sich ja mehr als nur ein objekt im trigger befinden.

                          Dann kann man diese Version nicht anwenden.

                          oki... verstanden und gut zu wissen...
                          also ist es scheinbar wirklich so wie vermutet, dass sich "wert" der ersten if abfrage nur auf die objekt id des vorangegangenen trigger bezieht!?

                          @ltsalvatore sagte in hilfe bei script anpassung für abfrage/schleife:

                          wie würde das ganze aussehen, wenn der wert false statt true sein müsste.

                          • falls nicht Wert
                          • falls Wert == falsch

                          gibt es diesen falls nicht wert als eigenen punkt zu selektieren, oder muss man das mit einem weiteren block kombinieren?

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

                            @ltsalvatore sagte:

                            dass sich "wert" der ersten if abfrage nur auf die objekt id des vorangegangenen trigger bezieht!?

                            Ja, "Wert" ist der Wert des triggernden Datenpunktes zum Triggerzeitpunkt.

                            @ltsalvatore sagte in hilfe bei script anpassung für abfrage/schleife:

                            gibt es diesen falls nicht wert als eigenen punkt zu selektieren

                            nicht ist ein Logik-Block.

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

                              @paul53 sagte in hilfe bei script anpassung für abfrage/schleife:

                              @ltsalvatore sagte:

                              dass sich "wert" der ersten if abfrage nur auf die objekt id des vorangegangenen trigger bezieht!?

                              Ja, "Wert" ist der Wert des triggernden Datenpunktes zum Triggerzeitpunkt.

                              @ltsalvatore sagte in hilfe bei script anpassung für abfrage/schleife:

                              gibt es diesen falls nicht wert als eigenen punkt zu selektieren

                              nicht ist ein Logik-Block.

                              super, danke paul53, vor allem für die geduld 🙂

                              werde mir nachher nochmal deinen obigen vorschlag noch mal anschauen. müsste für mich nun alles etwas mehr sinn machen bzw. nachvollziehbarer sein.

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              777
                              Online

                              31.9k
                              Users

                              80.3k
                              Topics

                              1.3m
                              Posts

                              blockly
                              3
                              13
                              426
                              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