Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. ioBroker Log auslesen und verarbeiten

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    ioBroker Log auslesen und verarbeiten

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

      @paul53
      wollte auch gerade vorschlagen
      ist das besser

      
      const dpPrefix = "javascript."+ instance +".";
      
      //definition des dp's - BLOCK 1
      
      createState(dpPrefix + "OwnLogEntries.Meross",false, { name: 'Meross',  type: 'boolean', role:"switch", read:  true,  write: true,});
      createState(dpPrefix + "OwnLogEntries.Test",false, { name: 'Test',  type: 'boolean', role:"switch", read:  true,  write: true,});
      
      
      
      // für jeden definierten fehler der trigger - BLOCK 2
      
      onLog("error", data => {
         
       // hier mit regex um genauer zu filtern
          if(data.message.match(/Error Test/g)){                                 // hier angleichen fehler meldung
         setState(dpPrefix + "OwnLogEntries.Test",true);                         // hier angleichen dp
         setStateDelayed(dpPrefix + "OwnLogEntries.Test",false,2000);            // hier angleichen dp
         }
      
      
         if(data.message.includes("instance system.adapter.meross.0 terminated with code 156")){
         setState(dpPrefix + "OwnLogEntries.Meross",true);
         setStateDelayed(dpPrefix + "OwnLogEntries.Meross",false,2000);
         }
       
      });
      
      

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @liv-in-sky last edited by

        @liv-in-sky sagte:

        ist das besser

        Ja, aber besser in einer separaten Funktion, damit man diese testen kann, bevor man den Trigger darauf loslässt.
        dpPrefix braucht es bei den Befehlen createState(), getState() und setState() nicht.

        liv-in-sky 1 Reply Last reply Reply Quote 0
        • liv-in-sky
          liv-in-sky @paul53 last edited by liv-in-sky

          @paul53 ich werde es mit einer eigenen function machen und oben ausbessern - nochmals vielen dank

          verbessertes script ist oben ausgebessert https://forum.iobroker.net/post/329570

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

            Oh, jetzt war ich ein paar Tage nicht online und hier sind neue Lösungsansätze entstanden. Vielen Dank! Das Script https://forum.iobroker.net/topic/13971/vorlage-js-log-datei-aufbereiten-für-vis ist recht komplex. Ich versuche mal das Script von hier, es erscheint einfacher für meinen Anwendungsbereich.

            1 Reply Last reply Reply Quote 0
            • Psycho0verload
              Psycho0verload @liv-in-sky last edited by

              @liv-in-sky den Fehler nach dem ich suchen möchte

              radar2.0	2019-12-05 10:59:32.612	warn	(515) BT already scanning!
              

              Ich versuche dein Script mal dahingehend umzubauen, aber vielleicht kannst du auch mal schauen.

              Tausend Dank schonmal für das Script!

              liv-in-sky 1 Reply Last reply Reply Quote 0
              • liv-in-sky
                liv-in-sky @Psycho0verload last edited by

                @Psycho0verload

                probier mal das hier - hier ist eine function für warnings drin

                
                
                
                
                const dpPrefix = "javascript."+ instance +".";
                
                //definition des dp's - BLOCK 1
                
                createState(dpPrefix + "OwnLogEntries.Meross",false, { name: 'Meross',  type: 'boolean', role:"switch", read:  true,  write: true,});
                createState(dpPrefix + "OwnLogEntries.Test",false, { name: 'Test',  type: 'boolean', role:"switch", read:  true,  write: true,});
                createState(dpPrefix + "OwnLogEntries.Warn515",false, { name: 'Test',  type: 'boolean', role:"switch", read:  true,  write: true,});
                
                
                
                // für jeden definierten fehler der trigger - BLOCK 2
                
                function checkErrors(data) {
                  //Alarm 1 
                 // hier mit regex um genauer zu filtern
                    if(data.message.match(/ Error Test /g)){                               // hier angleichen fehler meldung
                   setState(dpPrefix + "OwnLogEntries.Test",true);                         // hier angleichen dp
                   setStateDelayed(dpPrefix + "OwnLogEntries.Test",false,2000);            // hier angleichen dp
                   }
                
                   //Alarm2
                   if(data.message.includes("instance system.adapter.meross.0 terminated with code 156")){       // hier angleichen fehler meldung
                   setState(dpPrefix + "OwnLogEntries.Meross",true);                                             // hier angleichen dp
                   setStateDelayed(dpPrefix + "OwnLogEntries.Meross",false,2000);                                // hier angleichen dp
                   }
                
                
                 
                }
                
                function checkWarnings(data) {
                           //Warn1
                   if(data.message.includes("(515) BT already scanning!")){       // hier angleichen warning meldung
                   setState(dpPrefix + "OwnLogEntries.Warn515",true);                                             // hier angleichen dp
                   setStateDelayed(dpPrefix + "OwnLogEntries.Warn515",false,2000);                                // hier angleichen dp
                   }
                }
                
                
                
                onLog("error", checkErrors);
                onLog("warn", checkWarnings);
                
                

                dein beispiel ist auch eingefügt - müßte eigentlich sofort funktionieren

                Psycho0verload B 2 Replies Last reply Reply Quote 0
                • Psycho0verload
                  Psycho0verload @liv-in-sky last edited by

                  @liv-in-sky 😘 Ich werde es gleich ausprobieren!

                  1 Reply Last reply Reply Quote 0
                  • B
                    Bjoern2021 @liv-in-sky last edited by

                    @liv-in-sky Vielen Dank!
                    Hab das bei mir auch mal einbaut und insoweit geändert, das ich das in Node-RED weiter verarbeiten kann.

                    1 Reply Last reply Reply Quote 1
                    • D
                      Diamand2k22 last edited by

                      @paul53

                      Hallo Paul, ich weiß der Thread ist etwas älter aber ich würde bei einem bestimmten error im Log den zigbee2mqtt Service gerne restarten.

                      Wäre das hier so möglich mit excec?
                      Wie kann man sicher stellen, dass der Restart nur 1x ausgeführt wird und nicht in einer Endlosschleife?

                      function checkErrors(data) {
                         
                         if(data.message.includes("SRSP - AF - dataRequest after 6000ms")){ 
                         exec('sudo systemctl restart zigbee2mqtt');
                         }
                       
                      }
                       
                      onLog("error", checkErrors);
                      

                      Danke und Grüße

                      haus-automatisierung 1 Reply Last reply Reply Quote 0
                      • haus-automatisierung
                        haus-automatisierung Developer Most Active @Diamand2k22 last edited by

                        @diamand2k22 Denke nicht dass dein iobroker Linux-Nutzer sudo-Rechte hat, oder?

                        1 Reply Last reply Reply Quote 0
                        • D
                          Diamand2k22 last edited by

                          @haus-automatisierung

                          wohl eher nicht, aber zumindest starte ich den externen dienst so immer neu. bei iobroker selber arbeite ich in der Regel immer ohne sudo!
                          evtl. kann ich den service auch ohne sudo reststarten, hab ich noch nicht probiert.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          585
                          Online

                          31.7k
                          Users

                          79.7k
                          Topics

                          1.3m
                          Posts

                          blockly javascript node-red
                          6
                          20
                          5588
                          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