Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Lowbat *einmalig* mailen

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    Lowbat *einmalig* mailen

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

      Huhu in diese liebe Community,

      ich habe ein Blockly-Skript, welches stumpf folgendes macht:

      Trigger auf wenn sich ein Wert der IDs von der Aufzählung Batterie_Status ändert
      Falls der Wert wahr ist
      Sende eine Mail mit dieser ID

      Das tat was es soll, allerdings zeigten sich dieses Wochenende mögliche Verbesserungen. Ein Fensterkontakt (alles HM-IP) meldete lowbat. Dann war es wieder gut. Dann gings wieder los... Die Komponente war also an der 1V Schwelle und das Skript tat was es soll und schickte 45 Mails 😅

      Ich würde pro Objekt.ID gerne einmalig eine Mail versenden wollen. Mein Ansatz wäre, eine Liste mit den IDs zu befüllen und einfach zu prüfen, ob diese ID schon in der Liste enthalten ist. Nach 30 Tagen muss diese ID aus der Liste wieder entfernt werden:

      2f98e28f-57c7-48c7-8f9f-d5288aa2176e-grafik.png

      Das Blockly ist meinen Ansatz nach noch falsch. Habt ihr Ideen?

      Asgothian 1 Reply Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer @Timmss last edited by

        @timmss sagte in Lowbat *einmalig* mailen:

        Das Blockly ist meinen Ansatz nach noch falsch. Habt ihr Ideen?

        Der Baustein 'suche das erste aufteten' liefert eine Zahl zurück. 0: nicht gefunden, 1..n, Index des Elementes.

        Du musst also einen Vergleich auf != 0 einfügen, dann wird es gehen.

        A.

        T 1 Reply Last reply Reply Quote 0
        • T
          Timmss @Asgothian last edited by

          @asgothian Danke für den Hinweis. So habe ich es jetzt:

          85b35187-8efd-434a-98d1-ca842a1bb7bc-grafik.png

          Theoretisch muss ich ja auf 0 prüfen, weil ich nur IDs finden möchte, die noch nicht in der Liste sind.

          Ansonsten findest du das Handling vom Löschen so in Ordnung? Das könnten ja mehrere Timeouts werden, welche alle 30 Tage dauern.

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

            @timmss sagte: Das könnten ja mehrere Timeouts werden, welche alle 30 Tage dauern.

            Das wird so nicht funktionieren. Setze die Liste besser durch eine (virtuelle) Taste, die nach Batterietausch und nach erstem Skriptstart betätigt wird, zurück. Weiteres:

            • "erhöhe benachrichtigt um" ist eine mathematische und keine Listenfunktion.
            • Damit die Liste einen Skriptstart übersteht, muss sie in einem Datenpunkt vom Typ "array" gespeichert werden.

            Blockly_temp.JPG

            T 1 Reply Last reply Reply Quote 1
            • T
              Timmss @paul53 last edited by

              @paul53 Besten dank für deine Tipps. Dann baue ich den Taster auf der Visu ein. 🙌

              So sähe es jetzt final aus:

              1469d66c-b88f-492c-80e8-ca4b515fd7c1-grafik.png

              Ich habe im Tasten-Trigger noch eingebaut, dass der Wert wieder zurückgesetzt wird.

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

                @timmss sagte: im Tasten-Trigger noch eingebaut, dass der Wert wieder zurückgesetzt wird.

                Das ist nicht nötig.
                Beim Einfügen in die Liste ist die falsche Variable ausgewählt!

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

                  @paul53 Komplett übersehen, noch einmal Danke!

                  Warum ist das Zurücksetzen nicht notwendig? Angenommen jemand wechselt die Komponente und drückt den Taster. Dieser hat dann den Wert wahr und somit löst der Trigger im Skript aus. Wenn das jetzt nochmal passiert, hat der Taster den Wert falsch und der Trigger würde nicht auslösen?

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

                    @timmss sagte: Warum ist das Zurücksetzen nicht notwendig?

                    Wenn ein Taster (Rolle: "button") wahr ist und nochmal betätigt wird, bleibt er wahr, aber der Zeitstempel wird aktualisiert, was den Trigger auf "ist wahr" auslöst.

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    521
                    Online

                    32.1k
                    Users

                    80.6k
                    Topics

                    1.3m
                    Posts

                    3
                    8
                    117
                    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