Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Datenpunkte Monitor

    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

    Datenpunkte Monitor

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

      Suche Adapter oder Script um Datenpunkte zu monitoren (z.B. auf Änderungen). Konkrete Anwendung: Healthcheck von Sensoren. Habe im Forum bzw. in den Adaptern nichts gefunden.

      crunchip htrecksler 2 Replies Last reply Reply Quote 0
      • crunchip
        crunchip Forum Testing Most Active @ocio last edited by

        @ocio vllt https://github.com/Scrounger/ioBroker.linux-control

        1 Reply Last reply Reply Quote 0
        • htrecksler
          htrecksler Forum Testing @ocio last edited by

          @ocio das hab ich mal irgendwann im Einsatz gehabt.

          //Das Script überprüft regelmässig die Datenpunkte auf Aktualisierung
           
          //Angabe des Datenpunkts= Datenpunkt der Überwacht werden soll
          //StateBezeichnung= Unter pfad_javascript.StateBezeichung wird ein State angelegt; True = Daten sind aktuell / False = Daten veraltet
          //Zeit in Sekunden = Zeit die vergangen sein darf seit der letzen Aktualisierung des Datenpunkts  (0 = default Zeit wird genommen).
           
          schedule("*/3 * * * *" , function () {                                  
           
              // Angabe des Datenpunkts;StateBezeichnung;Zeit in Sekunden
              var ueberwachung = ['mqtt.0.Sensoren.Sensor03.Feuchtigkeit;Bodenfeuchte_Hinten;400', 
                                  'mqtt.0.Sensoren.Sensor02.Feuchtigkeit;Bodenfeuchte_Vorne;400'];
          
              //var ueberwachung = ['mqtt.0.Sensoren.Sensor03.Feuchtigkeit;Bodenfeuchte_Hinten;400'];
          
          
           
              var default_zeit = 240;
              var pfad_userdata ='0_userdata.0.watchdog.';   // Beispiel: 'javascript.0.watchdog.'  !Punkt nicht vergessen am Ende!
           
           
              //------------------------------------------------------------------
              //Ab hier nichts mehr Ändern
              //------------------------------------------------------------------
              var zeit= Math.floor(Date.now() / 1000);
              var differenz, lchange;
              var daten, tchange;
           
              ueberwachung.forEach(function(item, index, array) 
              {
                  // Array Splitten
                     daten = item.split(";");
           
                  //Datenpunkt erstellen wenn nicht vorhanden
                      createState(pfad_userdata + daten[1], { read: true, write: false, name: "Watchdog " + daten[1], type: "boolean", role: " ", def: "false"});
           
                  //Differenz Zeit default oder manuell?
                      differenz = parseInt(daten[2]);
                      if (differenz == 0) differenz=default_zeit;
           
                  //Zeitstempel abfragen in Sekunden
                      tchange=parseInt(getState(daten[0]).ts / 1000);
                      
                  //Vergleichen der Zeitstempel
                          if ((zeit-tchange)>differenz)
                          {
                              setState(pfad_userdata + daten[1], false);
                              //console.log(daten[1] + "  ist älter als " + differenz + " Sekunden", 'warn');
                        //Telegramm
                             // setState("telegram.0.communicate.response", "Info: Gerät nicht erreicht");
                            // setState("telegram.0.communicate.response", daten[1]);
                          }
                          else
                          {
                              setState(pfad_userdata + daten[1], true);
                              //console.log(daten[1] + "  ist jünger als " + differenz + " Sekunden");
                          } 
           
              });  
          });
          
          

          Vielleicht hilft das als Einstieg. Es sollte immer noch funktionieren, ich hab es jedoch im moment nicht im Einsatz

          O 1 Reply Last reply Reply Quote 0
          • O
            ocio @htrecksler last edited by

            @htrecksler
            Danke für das script, sieht gut aus, reicht für ein Sensor Ok/Nicht Ok.

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

            Support us

            ioBroker
            Community Adapters
            Donate
            FAQ Cloud / IOT
            HowTo: Node.js-Update
            HowTo: Backup/Restore
            Downloads
            BLOG

            872
            Online

            31.9k
            Users

            80.2k
            Topics

            1.3m
            Posts

            3
            4
            232
            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