Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Statusüberwachung

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Statusüberwachung

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

      Hallo, ich bin neu hier im Forum und brauche mal Hilfe bei einem Node Red Flow.
      Ich habe verschiedene Türüberwachungssensoren/Bewegungsmelder/Temperatursensoren zu einer Alarmanlage via Lorawan zusammen gestellt. Die läuft wunderbar.
      Jetzt möchte ich, das die Statusmeldungen der einzelnen Sensoren(mehrmals täglich sollen der Status und der Batteriezustand gesendet werden), nicht als "Alarm" ans Handy geschickt werden, sondern nur wenn sich ein Sensor sich nicht meldet. Sozusagen alle Statusmeldungen werden "verschluckt" wenn der Status sich nicht ändert.
      Wie kann ich das realisieren, das Node Red ein Statusbericht erwartet, wenn keiner kommt "Alarm Sensorausfall".
      Hat da wer eine Idee?

      mickym 1 Reply Last reply Reply Quote 1
      • mickym
        mickym Most Active @Hans857 last edited by mickym

        @hans857 überhaupt kein Problem. Mach ich auch so. Nimm die Trigger-Node da hast alles was Du brauchst. Schick bei Start nichts, lass die Node warten solange Du meinst, dass es noch normal ist. Dann wird bei Eingang einer Nachricht diese Periode verlängert und wenn überschritten, triggers sie einen Alarm. Alles in einer Node.

        Beispiel - Einfach Sensor vor die Trigger Node klemmen, wenn der sich länger als 2 Stunden nicht meldet - wird Alarm getriggert.

        a495435e-d414-40bb-9abf-4c6199c16f99-image.png

        Kannst natürlich auch "True"schicken oder "Sensortyp xy meldete sich nicht innerhalb von 2 Stunden". Der Fantasie sind keine Grenzen gesetzt. Hier ist es auch unwichtig, was der Sensor schickt, es ist ja nur wichtig, dass er was schickt und somit zeigt, dass er noch lebt.

        Ich schick meist auch am Anfang was, damit man weiß, dass Überwachung gestartet ist.

        Im Übrigen kann man die NOde auch so konfigurieren, dass sie den msg topic mit berücksichtigt, dann kann man gleich mehrere Sensoren damit überwachen. Wenn Du die msg.topic ggf. nachbearbeitest kannst dann ein Überwachungsobjekt machen.

        T 1 Reply Last reply Reply Quote 1
        • T
          Tontechniker @mickym last edited by Tontechniker

          @mickym
          Kann mir vielleicht jemand von euch helfen?
          Ich möchte mit eurem Ansatz mehrere Sensordaten überwachen. Wenn die Überwachungszeit abläuft, ohne das neue Daten kommen, möchte ich per Mail eine Fehlermeldung senden. Ich habe das Senden der Mail eingebaut. In der "Funktion" stehen die zu sendenden Texte.

          Node Red.jpg
          Mein Problem ist nun, dass nach Ablauf der Zeit (hier im Beispiel 10 Sekunden) bei "Mail" eine Fehlermeldung "Senden fehlgeschlagen" erscheint und keine Mail gesendet wird. Wenn ich die Auslösung des Triggers über den "Injekt" mache, funktioniert das Senden der Mail nach Ablauf der Triggerzeit ohne Probleme. Das ist unabhängig davon, ob ich mit z.B. "timestamp" oder "bool = true" auslöse. Was mache ich falsch?

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @Tontechniker last edited by mickym

            @tontechniker ich melde mich mal gerade vom n unterwegs, deswegen kann ich im Moment Deinen Fehler schlecht nachvollziehen. Wir sind uns aber hoffentlich einig, dass es wohl einen Unterschied geben muss Ich kann zwar nicht hellsehen, was in der Function Node steht, aber habe spontan mal die Idee, dass die msg.topic noch unterschiedlich ist. Die wird meines Wissens als Betreff verwendet. Ansonsten mach hinter die Funktionnode eine Debug Node und schau Dir die Unterschiede im gesamten Nachrichtenobjekt wenn es geht und wenn es nicht geht an. Dann könntest Du auch mal das gesamte Objekt aus der In node in der Inject node abbilden. Fehlersuche ist nie einfach.

            Ich kann auch schlecht sehen ob deine Trigger Node vorhandene Objekte weiterreicht oder selbst was schickt. Wenn beispielsweise einach die triggernode einen Text oder Boolean verschickt sollte es eigentlich keine Unterschiede geben.

            T 1 Reply Last reply Reply Quote 1
            • T
              Tontechniker @mickym last edited by

              @mickym
              Vielen Dank für Deine schnelle Antwort!
              Ich bin Anfänger und sehe in den geloggten Daten einen Unterschied. Kannst Du etwas damit anfangen?

              Node Red 01.jpg

              Der erste Block kommt bei Auslösung durch "inject" der zweite bei Auslösung durch die Temperatur.

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @Tontechniker last edited by

                @tontechniker Also ich seh da schon einige Unterschiede. Das 2. enthält ja einige Eigenschaften mehr. Wie gesagt - ich sehe zwar Deine Trigger Node nicht - aber ich würde mal keine Nachrichten durchreichen, sondern nur true weiter schicken.
                Ansonsten zeig mal die Konfig Deiner trigger Node.

                T 1 Reply Last reply Reply Quote 1
                • T
                  Tontechniker @mickym last edited by Tontechniker

                  @mickym
                  Hier die Trigger-Node:

                  Node Red 02.jpg

                  Hab wieder auf 2 Minuten umgestellt.

                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @Tontechniker last edited by mickym

                    @tontechniker Also - das schaut alles gut - aus. Um das Nachrichtenobjekt neu zu erstellen.

                    Mach mal in Deiner function node:

                    msg ={};
                    
                    msg.topic="Überwachung sensoren";
                    msg.payload="Fehler Temperatur_2";
                    
                    return msg; 
                    
                    T 1 Reply Last reply Reply Quote 1
                    • T
                      Tontechniker @mickym last edited by Tontechniker

                      @mickym
                      Vielen Dank!
                      Es funktioniert wie gewünscht. Im Netz hatte ich in einem Erklär-Video diese Einstellung gefunden:

                      Node Red 03.jpg

                      Kannst Du mir erklären, warum diese nicht funktioniert?

                      T mickym 2 Replies Last reply Reply Quote 0
                      • T
                        Tontechniker @Tontechniker last edited by

                        @tontechniker
                        Hier kommt meine Anwendung:

                        Node Red 04.jpg

                        Nochmal vielen Dank für Deine Hilfe!

                        1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @Tontechniker last edited by mickym

                          @tontechniker sagte in Statusüberwachung:

                          Kannst Du mir erklären, warum diese nicht funktioniert?

                          Ich kann es Dir nicht genau - sagen. Man müsste untersuchen, welche Eigenschaft der Nachrichten von Deinen ioBroker in-Nodes die mail Node gestört hat.

                          Ich war nur einfach zu faul das zu untersuchen.

                          mit msg={};

                          erstellst Du halt ein komplett neues Nachrichtenobjekt und somit wird alles weggeschmissen, was sonst noch von Deinen ioBroker in-nodes kam. Eigentlich müsste man das halt untersuchen, welche Parameter das war. Aber ich denke Du wolltest eine schnelle Hilfe. 😉

                          T 1 Reply Last reply Reply Quote 1
                          • T
                            Tontechniker @mickym last edited by

                            @mickym
                            Danke für Deine Antwort.
                            Ich habe noch eine Frage: Gibt es die Möglichkeit, im Funktionsblock noch die Uhrzeit mitzugeben (wäre in der Mail bei Fehlern sehr hilfreich).
                            LG Hans

                            mickym 1 Reply Last reply Reply Quote 0
                            • mickym
                              mickym Most Active @Tontechniker last edited by mickym

                              @tontechniker sagte in Statusüberwachung:

                              @mickym
                              Danke für Deine Antwort.
                              Ich habe noch eine Frage: Gibt es die Möglichkeit, im Funktionsblock noch die Uhrzeit mitzugeben (wäre in der Mail bei Fehlern sehr hilfreich).
                              LG Hans

                              Natürlich ist das möglich - aber ich bin kein Freund davon, wie Du alles über eine function-Node machst. Da kannst Du gleich in JAVA Programmieren. Für Deine quick & dirty Lösung:

                              ....
                              msg.topic = "Überwachung ....";
                              var date = new Date();
                              msg.topic = msg.topic + ' ' + date;
                              ....
                              

                              Ich werde Dir aber sicher nicht mehr bei Formatieren des Datums helfen. Dann machen wir wirklich einen richtigen Flow daraus und nicht so was quick & dirty. Schließlich will man so was mit schönen Mitteln eines Flows machen und nicht mit JS. Leider findet man im Netz dauernd solche Beispiele weil man sich nicht mit Node Red beschäftigen will und dann schnell ein paar Javazeilen schreibt.

                              Wenn Du aber wirklich wissen willst, den Datumstring gescheit formatieren willst usw. und auch Node Red lernen und beherrschen willst , dann zeige ich Dir wie man ein schönes Mail und ein vernünftigen Flow daraus macht da helfe ich Dir gerne. Dann nehmen wir auch den orginalen Timestamp von dem Datenpunkt - einverstanden?
                              So sträuben sich mir eigentlich alle Nackenhaare.
                              So geht das alles eigentlich am Sinn von NodeRed vorbei.

                              EDIT: Ich habe das auch gerade mit meinen Datenpunkten getestet und deren Inhalte lassen sich auch direkt verschicken - also ich kann Deinen Fehler von gestern nicht nachvollziehen. Was er davor nicht mag - das gilt es halt herauszufinden und auch ob es sich bei jedem Datenpunkt so verhält.

                              T 1 Reply Last reply Reply Quote 0
                              • T
                                Tontechniker @mickym last edited by Tontechniker

                                @mickym
                                Danke für Deine Antwort!
                                Da ich Node Red nicht so gut kenne wie Du, war für mich die "quick and dirty" - Lösung das naheliegende.
                                Ich gehe aber gern mit Dir konform und bin deiner Lösung nicht abgeneigt.
                                Zu Edit: Kann das Problem mit dem Datenpunkt daher kommen, dass die Daten von KNX kommen?

                                mickym 1 Reply Last reply Reply Quote 0
                                • mickym
                                  mickym Most Active @Tontechniker last edited by mickym

                                  @tontechniker Ich kann Dir Deine Frage nicht beantworten - das würde es halt gelten herauszufinden und erfordert natürlich, dass wir etwas Zeit hier im Thread verbringen. 😉

                                  022f1470-ee13-4c12-80a2-76688b26ab8f-image.png

                                  Ich habe mal das direkt getestet mit einer ioBroker InNode als Quelle - den Trigger nur true senden lassen - und das ging einwandfrei.

                                  Mein Mail sah dann ganz schlicht so aus - das boolean wurde konvertiert.

                                  d0e5560b-c74f-4ce9-ac26-77eda3fe2b95-image.png

                                  Damit NodeRed einigermaßen vergleichbar ist, solltest Du in der Adapterkonfiguration diese leider standardgesetzte Funktion, dass alles in Strings konvertiert wird ausschalten. Je nachdem wieviele Flows Du hast, bedeutet es aber unter Umständen etwas Umstellungsaufwand - der aber je früher Du das machst - umso geringer ist.

                                  EDIT:

                                  Du kannst ja parallel einen Flow entwickeln - neben dem bestehenden - die Uhrzeit übrigens wann Du das Mail bekommen hast, hast Du ja eigentlich sowieso. 😉

                                  Im Prinzip müsstest Du halt nochmal die Situation von gestern wieder in dem Flow nachbilden.

                                  T 1 Reply Last reply Reply Quote 0
                                  • T
                                    Tontechniker @mickym last edited by Tontechniker

                                    @mickym
                                    Wie und wo schalte ich denn die Adapterkonfiguration aus?
                                    Zeitangabe in der Mail: Je nach Provider kommen die Mails nicht sofort durch.

                                    mickym 1 Reply Last reply Reply Quote 0
                                    • mickym
                                      mickym Most Active @Tontechniker last edited by mickym

                                      @tontechniker sagte in Statusüberwachung:

                                      @mickym
                                      Wie und wo schalte ich denn die Adapterkonfiguration aus?
                                      Zeitangabe in der Mail: Je nach Provider kommen die Mails nicht sofort durch.

                                      Nun in Deiner NodeRed Instanz - diesen Haken für die Stringkonvertierung wegmachen!

                                      9c49e70b-b844-4f09-ba88-1d568dbece70-image.png

                                      Die Zeitangabe sollte eigentlich das Erstellungsdatum der Mail sein und nicht das Empfangsdatum - aber egal wir setzen das Datum. 😉

                                      T 1 Reply Last reply Reply Quote 1
                                      • T
                                        Tontechniker @mickym last edited by Tontechniker

                                        @mickym
                                        Habe Node Red Instanz umgestellt.
                                        Ich greife jetzt die Daten nach dem Trigger und nach der Funktion ab.

                                        IoBroker 01.jpg

                                        Das funktioniert so, die Mail wird gesendet.
                                        Wenn ich die zwischengeschaltete Funktion herausnehme, bekomme ich wieder die Fehlermeldung "Senden fehlgeschlagen".

                                        mickym 1 Reply Last reply Reply Quote 0
                                        • mickym
                                          mickym Most Active @Tontechniker last edited by

                                          @tontechniker Bitte wieder das gesamte msg.Objekt posten und auch alle Felder bitte aufklappen.

                                          Ein grafischer Schnappschuss des Flows zur Orientierung finde ich auch immer gut.

                                          T 1 Reply Last reply Reply Quote 1
                                          • T
                                            Tontechniker @mickym last edited by

                                            @mickym
                                            Keine Ahnung, was ich jetzt posten soll (msg.Objekt?, Felder aufklappen?)? Hier erstmal der screenshot.

                                            IoBroker 02.jpg

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            node-red
                                            4
                                            47
                                            2958
                                            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