Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly - Prüfung des Werts aller Objekte eines Arrays

    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

    Blockly - Prüfung des Werts aller Objekte eines Arrays

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

      Hallo

      Ich habe in einem Array eine Liste mit Objekten, deren Wert "true/false" sein kann (in meinem Fall Anwesenheitssensoren).

      Gibt es eine elegante Möglichkeit ohne Schleife zu prüfen, ob der WERT all dieser Objekte, die im Array genannt sind, "true" oder "false" ist?

      Als Trigger kann man ja das Array nehmen (was schon sehr "elegant" ist).

      Danke!

      Gruß Nico

      M paul53 ? 4 Replies Last reply Reply Quote 0
      • M
        MCU @daNick last edited by

        @daNick Ein Ansatz vielleicht array.toString() und dann den String prüfen auf den gewünschten Wert false oder true.

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

          @daNick sagte:

          Array eine Liste mit Objekten

          Du meinst eine Liste mit Datenpunkt-IDs ?
          Was ist Dein Ziel ?

          D 1 Reply Last reply Reply Quote 0
          • ?
            A Former User @daNick last edited by A Former User

            @daNick

            .. in C war so etwas zu finden 🙂 Alle Elemente sind 0, wenn das erste Element 0 ist und jedes Element gleich dem Nachfolger ist:

            (a[0]==0) && (memcmp(a,a+1,sizeof(*a)*(a_len-1))==0) // a_len: Anzahl der Elemente in a. Der Typ von *a muss bitvergleichbar sein.
            

            Ansatz !

            LG Klaus

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

              @paul53

              Danke für die Nachfrage.

              Meine Grundlage:

              Array in Blockly definiert mit Datenpunkt "occupy" von verschiedenen Sensoren.
              Das Script startet, wenn sich einer der Werte ändert.

              array .png

              Was ist jetzt gerne hätte:
              Prüfung, ob alle Datenpunkt des Arrays auf "false" sind (dann ist keiner mehr im Flur).

              Bisher prüfe ich ja nur, ob sich einer geändert hat.

              Wenn ich den Trigger von "wurde geändert" auf "ist unwahr" ändere, bringt das auch nichts (die Bedingung tritt ja ein, wenn EINER der Datenpunkte auf unwahr springt, ich überwache aber einen Raum mit 3 Sensoren).

              Macht das soweit Sinn?

              Gruß daNick

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

                @daNick sagte:

                Möglichkeit ohne Schleife zu prüfen,

                Möglichkeit ohne Schleife "über alle Werte lesen": 2. Array, das die Werte enthält. Im Trigger ermittelt man den Index aus der ID und trägt den zugehörigen Wert in das Werte-Array ein.

                Blockly_temp.JPG

                prüft dann, ob mind. einer der Werte true ist.

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

                  @paul53

                  Danke für Deine Zeit und den Support!

                  Was mit nicht klar ist, ist der Schritt

                  "Im Trigger ermittelt man den Index aus der ID und trägt den zugehörigen Wert in das Werte-Array ein."

                  Wie sieht der Befehl aus, mit dem ich zu einem gegebenen Array, in dem Datenpunkt stehen, ein zweites Array gleicher Größe mit den Werten dieser Datenpunkte befülle?

                  Danke!

                  Gruß daNick

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

                    @daNick
                    Hier ein Beispiel. Man kann das Werte-Array bei Script start auch mittels einer Schleife befüllen.

                    Blockly_temp.JPG

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

                      @paul53

                      Danke!

                      Gruß daNick

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      490
                      Online

                      31.8k
                      Users

                      80.0k
                      Topics

                      1.3m
                      Posts

                      blockly javascript
                      4
                      9
                      970
                      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