Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. ioBroker Log auslesen und verarbeiten

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

ioBroker Log auslesen und verarbeiten

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
blocklynode-redjavascript
20 Beiträge 6 Kommentatoren 6.3k Aufrufe 7 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • liv-in-skyL liv-in-sky

    @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);
       }
     
    });
    
    

    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von
    #11

    @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.

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    liv-in-skyL 1 Antwort Letzte Antwort
    0
    • paul53P paul53

      @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-skyL Offline
      liv-in-skyL Offline
      liv-in-sky
      schrieb am zuletzt editiert von liv-in-sky
      #12

      @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

      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

      1 Antwort Letzte Antwort
      0
      • Psycho0verloadP Offline
        Psycho0verloadP Offline
        Psycho0verload
        schrieb am zuletzt editiert von
        #13

        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 Antwort Letzte Antwort
        0
        • liv-in-skyL liv-in-sky

          @Psycho0verload - ein kleines script- ist javascript - aber sehr einfach zum handhaben - damit kannst du einfach auf log einträge reagieren - brauchst du mehr, ist das andere script zu empfehlen

          es legt 2 datenpunkte an unter der javascript-instanz, in der das script läuft
          Image 1.png

          wenn nun ein "error" im log kommt wird der def. datenpunkt auf true gesetzt und nach 2 sec wieder auf false - dann kannst du diesen datenpunkt überwachen - und darauf reagieren

          wenn du mehr alarme brauchst kopierst du dir die einzelnen abfragen und gleichst die daten an
          im script sind die anzugleichenden werte kommentiert. da du Meross und test nicht brauchst, kannst du auch diese löschen oder angleichen

          
          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
          
          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
             }
          
             //Alarm 2
             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
             }
           
          }
          
          onLog("error", checkErrors);
          
          
          
          

          danke @paul53 - kannte ich noch nicht ist aber cool

          Psycho0verloadP Offline
          Psycho0verloadP Offline
          Psycho0verload
          schrieb am zuletzt editiert von
          #14

          @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-skyL 1 Antwort Letzte Antwort
          0
          • Psycho0verloadP Psycho0verload

            @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-skyL Offline
            liv-in-skyL Offline
            liv-in-sky
            schrieb am zuletzt editiert von
            #15

            @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

            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

            Psycho0verloadP B 2 Antworten Letzte Antwort
            0
            • liv-in-skyL liv-in-sky

              @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

              Psycho0verloadP Offline
              Psycho0verloadP Offline
              Psycho0verload
              schrieb am zuletzt editiert von
              #16

              @liv-in-sky :kissing_heart: Ich werde es gleich ausprobieren!

              1 Antwort Letzte Antwort
              0
              • liv-in-skyL liv-in-sky

                @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

                B Offline
                B Offline
                Bjoern2021
                schrieb am zuletzt editiert von
                #17

                @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 Antwort Letzte Antwort
                1
                • D Offline
                  D Offline
                  Diamand2k22
                  schrieb am zuletzt editiert von
                  #18

                  @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-automatisierungH 1 Antwort Letzte Antwort
                  0
                  • D Diamand2k22

                    @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-automatisierungH Online
                    haus-automatisierungH Online
                    haus-automatisierung
                    Developer Most Active
                    schrieb am zuletzt editiert von
                    #19

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

                    🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                    🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                    📚 Meine inoffizielle ioBroker Dokumentation

                    1 Antwort Letzte Antwort
                    0
                    • D Offline
                      D Offline
                      Diamand2k22
                      schrieb am zuletzt editiert von
                      #20

                      @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 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      811

                      Online

                      32.4k

                      Benutzer

                      81.5k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe