Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] Ein Trigger auf alle Datenpunkte in einer Liste

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Ein Trigger auf alle Datenpunkte in einer Liste

    This topic has been deleted. Only users with topic management privileges can see it.
    • MartinP
      MartinP @paul53 last edited by MartinP

      @paul53 Kann man irgendwie auf diese intern erzeugte ID Liste zugreifen?

      Das Blockly dient der Alive Überwachung von Geräten nebst eMail versand, und Ich würde im Text der Mail dann einfach den Zustand jedes Gerätes in einer Zeile ausgeben. Da wäre ein Recycling der Liste einfacher, als eine Variable anzulegen....

      1 Reply Last reply Reply Quote 0
      • Ro75
        Ro75 @MartinP last edited by

        @martinp so mache ich es via JS:

        var list_gc_temperatur  = ['fritzdect.0.DECT_087610464655.celsius','fritzdect.0.DECT_087610465893.celsius','fritzdect.0.DECT_087610482188.celsius','fritzdect.0.DECT_087610517354.celsius','fritzdect.0.DECT_116300042978.celsius','fritzdect.0.DECT_116300052609.celsius','fritzdect.0.DECT_116300299458.celsius','fritzdect.0.DECT_116300299459.celsius','fritzdect.0.DECT_116300299460.celsius'];
        
        on({id: list_gc_temperatur, change: 'ne'}, function (dp) {
           // hier der Code oder einen Aufruf einer Funktion
        });
        

        Ro75.

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

          @ro75 sagte: so mache ich es via JS:

          Das entspricht der ersten Version.

          @martinp sagte in Ein Trigger auf alle Datenpunkte in einer Liste:

          Kann man irgendwie auf diese intern erzeugte ID Liste zugreifen?

          Nein. Nimm die Version mit der Variablen.

          1 Reply Last reply Reply Quote 0
          • MartinP
            MartinP last edited by MartinP

            @paul53 So, das ist der erste Versuch ... sind noch nicht annähernd alle Geräte ...
            Vielleicht wäre "über Bande" mit einer Sammlung von "Alive" Punkten als Aliase zu arbeiten eine bequemere Lösung, als da im Blockly die Liste zu pflegen... bin da noch unsicher

            07da10c3-f585-46c7-9c42-ca8be506984c-Bildschirmfoto vom 2024-05-12 18-44-41.png

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

              @martinp sagte: Sammlung von "Alive" Punkten

              Kann man keinen Selektor verwenden? Wie sieht die ID-Struktur aus?

              Anmerkung: Die Variable EmailBody muss vor der Schleife initialisiert werden.

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

                @paul53 Die meisten Datenpunkte kommen aus dem Ping-Adapter. Die hätten natürlich eine einheitliche Struktur ... man muss sich da ansonsten durch die Objektbäume der Adapter, und die Lesarten, wie man so etwas ausgeben sollte der verschiedenen Entwickler kämpfen...

                Inzwischen habe ich zwei zigbee2MQTT Datenpunkte hinzugefügt, aber selbst die sind nicht untereinander "Kompatibel":
                beim Lidl-Fluter "...availability={"state" : "online"}",
                beim aqara-thermometer "...availability=true (bool)

                ... und deshalb habe ich mir schon einmal Alias-Datenpunkte für die beiden angelegt ...

                a48027de-4e00-49b5-b436-41ccd170560d-grafik.png

                Vielleicht wäre es da wirklich das Einfachste, in einem ersten Schritt allen Geräten, die überwacht werden sollen dort unter "alias.0.available" einen Eintrag zu verschaffen, der über read Konvertierungsfunktion dann die Unterschiede glattbügelt, und verlässlich true/false enthält ...

                paul53 2 Replies Last reply Reply Quote 0
                • paul53
                  paul53 @MartinP last edited by

                  @martinp sagte: allen Geräten, die überwacht werden sollen dort unter "alias.0.available" einen Eintrag zu verschaffen, der über read Konvertierungsfunktion dann die Unterschiede glattbügelt, und verlässlich true/false enthält ...

                  Gute Idee.

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

                    @martinp sagte: Die meisten Datenpunkte kommen aus dem Ping-Adapter.

                    Man kann auch eine Liste per Selektor erstellen und sie anschließend um weitere IDs erweitern:

                    Blockly_temp.JPG

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

                      @paul53 Danke, das würde das Blockly wieder um einiges verkürzen.

                      MartinP 1 Reply Last reply Reply Quote 0
                      • MartinP
                        MartinP @MartinP last edited by MartinP

                        So, hier die endgültige Lösung

                        Initialisierung:

                        e665a404-9fd7-4fd6-83e7-d39a1f550889-grafik.png

                        Trigger-Schleife:
                        559f84e1-6cf2-4b4b-bb29-d0a4e83fb455-grafik.png

                        Durch die um 3 Sekunden verzögerte Ausführung möchte ich die Anzahl der Mails verringern. Häufig fallen ja die Geräte in "Rudeln" aus, z. B. bei WLAN-Problemen, und dann ist es sicher gut, erst eine Mail zu bekommen, wenn das ganze Rudel die Probleme gemeldet hat ... Vielleicht spiele ich noch mit der Wartezeit. Der Ping-Adapter ist auf 60 Sekunden eingestellt, wahrscheinlich wären da mehr als 70 Sekunden besser, aber dann dauert es noch länger, bis die Mail eintrudelt...

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        430
                        Online

                        32.0k
                        Users

                        80.4k
                        Topics

                        1.3m
                        Posts

                        3
                        12
                        333
                        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