Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Alarm wenn sich BIT aus Word ändert

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Alarm wenn sich BIT aus Word ändert

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

      Hallo,

      Ich bekomme von einem Modbus Slave ein Word welches die 16 fehlermeldeungen ausgibt:
      z.B.
      Bit 1 -> Störung Pumpe
      ...
      Bit 16 -> Störung Zähler

      nun möchte ich wenn sich das Word ändert den jeweiligen Fehler bzw. wenn sich das Bit wieder auf 0 ändert eine Meldung in Telegram.

      Könnt Ihr mir bitte helfen, ich scheitere einige Tage bereits an dem,...

      das habe Ich bis jetzt:
      1.jpg
      2.jpg

      Leider bekomme Ich bei änderung immer alle Meldungen, D.h. Es komt 1 Fehler und die anderen als OK.

      danke euch

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

        @tiego sagte: ein Word welches die 16 fehlermeldeungen ausgibt:

        Wenn die Fehlermeldungen jeweils als Bit in einem Word ausgegeben werden, können doch sicherlich mehrere Fehler gleichzeitig gemeldet werden?
        Wenn nur zurückgesetzte Fehler als "wieder o.k." gemeldet werden sollen, muss man das Wort mit den Fehlern in einer Variablen merken.

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

          @paul53 sagte in Alarm wenn sich BIT aus Word ändert:

          @tiego sagte: ein Word welches die 16 fehlermeldeungen ausgibt:

          Wenn die Fehlermeldungen jeweils als Bit in einem Word ausgegeben werden, können doch sicherlich mehrere Fehler gleichzeitig gemeldet werden?
          Wenn nur zurückgesetzte Fehler als "wieder o.k." gemeldet werden sollen, muss man das Wort mit den Fehlern in einer Variablen merken.

          Hallo,

          danke für deine schnelle Antwort.
          ->zur ersten Frage, ja es können mehrere fehler gleichzeitig sein, hier sollte dann in einer
          Meldung alle Fehler bzw. OK Nachrichten sein.
          -> das hätte Ich eben gerne, weis leider nicht wie lösen,... müsste es 5x realisieren aber mit unterschiedlichen Texten.

          danke

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

            @tiego sagte: das hätte Ich eben gerne

            Vorschlag:

            Blockly_temp.JPG

            Inhalt der Funktion checkBit(word, bit):

            return word >> bit & 1;
            
            T 1 Reply Last reply Reply Quote 0
            • T
              tiego @paul53 last edited by

              @paul53 sagte in Alarm wenn sich BIT aus Word ändert:

              return word >> bit & 1;

              Danke, läuft 1A 🙂

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

                @tiego sagte: läuft 1A

                Es sollte auch ohne Variable lastWord funktionieren:

                Blockly_temp.JPG

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

                  @paul53
                  Danke, Frage woher hast du die Variable "vorheriger Wert" ? wo beschreibst du diese?

                  eine andere frage noch, Ich benötige das ganze 10*, gibt es auch die möglichkeit dies so anzupassen das es eine funktion wird? d.hich gebe die texte, das Word als Variable an und rufe eine funktion auf?

                  habs mal so angefange zu lösen:
                  1.jpg

                  danke

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

                    @tiego sagte: woher hast du die Variable "vorheriger Wert" ?

                    Die wird aus dem "Trigger" zur Verfügung gestellt (wie auch Wert).

                    Blockly_DP_properties.JPG

                    @tiego sagte in Alarm wenn sich BIT aus Word ändert:

                    so anzupassen das es eine funktion wird?

                    Ja, Prinzip:

                    Blockly_temp.JPG

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

                      @tiego sagte: so angefange zu lösen:

                      Wenn die Texte für Fehlermeldung und OK sehr unterschiedlich sein sollen, kann man die Liste doppelt so lang machen und Fehlermeldung und OK-Meldung direkt hintereinander anordnen:

                      Blockly_temp.JPG

                      Übrigens: Bits, die sich nie ändern, erzeugen keine Meldung. Man kann also alle 16 Bit prüfen.

                      @tiego sagte in Alarm wenn sich BIT aus Word ändert:

                      Ich benötige das ganze 10*

                      Dann müssen 10 Listen mit je 32 Texteinträgen erstellt werden.

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

                        @paul53
                        Top, vielen dank läuft mit der Funktion und den "vorherigen Wert" einwandfrei.

                        meine letzte Frage, wenn sich nun 2 Werte gleichzeitig ändern überschreib nicht der zweite Funktionsaufruf die Variablen der ersten oder?
                        Denn dies wäre ein mögliches Szenario.

                        1000 Dank dir und einen virtuellen ☕

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

                          @tiego sagte: wenn sich nun 2 Werte gleichzeitig ändern

                          Es wird nur auf einen Datenpunkt getriggert, also wird die Funktion bei jeder Änderung nur einmal aufgerufen - auch dann, wenn sich innerhalb des Wortes mehrere Bit geändert haben. Jede Bit-Änderung erzeugt eine Meldungszeile innerhalb der Schleife.

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

                            @paul53
                            danke, die frgae bezog sich aber auf das wenn sich in den 10 orten im Script (habe 10 Batterien) die selbe Funktion aufgerufen wird ob sie sich gegenseitig überschreiben...
                            es können z.B. aölle Batterien Zeitgleich in Störung gehen, somit ändern sich 10 Wörter zeitgleich und die Funktion wird Zeitgleich aufgerufen.

                            danke

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

                              @tiego sagte: die Funktion wird Zeitgleich aufgerufen.

                              Trigger können nie zeitgleich auslösen, sondern nur unmittelbar nacheinander.

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

                                @paul53
                                danke, das wuste ich nicht. aber somit ist mein bedenken eh unrelevant

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                462
                                Online

                                31.7k
                                Users

                                79.8k
                                Topics

                                1.3m
                                Posts

                                2
                                14
                                435
                                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