Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

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

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    402

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.4k

ioBroker Log auslesen und verarbeiten

Scheduled Pinned Locked Moved Skripten / Logik
blocklynode-redjavascript
20 Posts 6 Posters 6.6k Views 7 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Psycho0verloadP Psycho0verload

    @liv-in-sky oh, das habe ich übersehen. dann arbeite ich mich mal durch :monkey:

    liv-in-skyL Offline
    liv-in-skyL Offline
    liv-in-sky
    wrote on last edited by liv-in-sky
    #5

    @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

    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

    paul53P Psycho0verloadP 2 Replies Last reply
    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

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #6

      @liv-in-sky
      Weshalb verwendest Du zwei identische Trigger ?

      onLog('error', callback);
      

      Man muss aufpassen, dass das Skript selbst keinen Error-Log erzeugt, sonst gerät man in eine Endlosschleife. Deshalb vor Aktivierung des Triggers die Callback-Funktion ausgiebig testen !

      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 Reply Last reply
      0
      • paul53P paul53

        @liv-in-sky
        Weshalb verwendest Du zwei identische Trigger ?

        onLog('error', callback);
        

        Man muss aufpassen, dass das Skript selbst keinen Error-Log erzeugt, sonst gerät man in eine Endlosschleife. Deshalb vor Aktivierung des Triggers die Callback-Funktion ausgiebig testen !

        liv-in-skyL Offline
        liv-in-skyL Offline
        liv-in-sky
        wrote on last edited by
        #7

        @paul53 gut das du drüber schaust - aber ich dachte, der trigger ist einmal data und einmal data2 - oder check ich was nicht

        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

        paul53P 2 Replies Last reply
        1
        • liv-in-skyL liv-in-sky

          @paul53 gut das du drüber schaust - aber ich dachte, der trigger ist einmal data und einmal data2 - oder check ich was nicht

          paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by
          #8

          @liv-in-sky sagte:

          dachte, der trigger ist einmal data und einmal data2

          Der Trigger ist 'error' (alle Error-Logs). data ist der Parameter, der die Daten für die Callback-Funktion enthält.

          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 Reply Last reply
          0
          • liv-in-skyL liv-in-sky

            @paul53 gut das du drüber schaust - aber ich dachte, der trigger ist einmal data und einmal data2 - oder check ich was nicht

            paul53P Offline
            paul53P Offline
            paul53
            wrote on last edited by paul53
            #9

            @liv-in-sky
            In der Callback-Funktion wird man filtern, um Aktionen auszuführen.

            // Filtern nach Error-Message
            function checkErrors(logs) {
                if(logs.message.indexOf('radar2.0') != -1) {
                    // Aktion(en)
                }
            }
            
            onLog('error', checkErrors);
            

            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

            1 Reply Last reply
            0
            • paul53P paul53

              @liv-in-sky sagte:

              dachte, der trigger ist einmal data und einmal data2

              Der Trigger ist 'error' (alle Error-Logs). data ist der Parameter, der die Daten für die Callback-Funktion enthält.

              liv-in-skyL Offline
              liv-in-skyL Offline
              liv-in-sky
              wrote on last edited by
              #10

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

              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

              paul53P 1 Reply Last reply
              0
              • 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
                wrote on last edited by
                #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 Reply Last reply
                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
                  wrote on last edited by 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 Reply Last reply
                  0
                  • Psycho0verloadP Offline
                    Psycho0verloadP Offline
                    Psycho0verload
                    wrote on last edited by
                    #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 Reply Last reply
                    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
                      wrote on last edited by
                      #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 Reply Last reply
                      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
                        wrote on last edited by
                        #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 Replies Last reply
                        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
                          wrote on last edited by
                          #16

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

                          1 Reply Last reply
                          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
                            wrote on last edited by
                            #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 Reply Last reply
                            1
                            • D Offline
                              D Offline
                              Diamand2k22
                              wrote on last edited by
                              #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 Reply Last reply
                              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 Offline
                                haus-automatisierungH Offline
                                haus-automatisierung
                                Developer Most Active
                                wrote on last edited by
                                #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 Reply Last reply
                                0
                                • D Offline
                                  D Offline
                                  Diamand2k22
                                  wrote on last edited by
                                  #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 Reply Last reply
                                  0
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  320

                                  Online

                                  32.7k

                                  Users

                                  82.5k

                                  Topics

                                  1.3m

                                  Posts
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Login

                                  • Don't have an account? Register

                                  • Login or register to search.
                                  • First post
                                    Last post
                                  0
                                  • Home
                                  • Recent
                                  • Tags
                                  • Unread 0
                                  • Categories
                                  • Unreplied
                                  • Popular
                                  • GitHub
                                  • Docu
                                  • Hilfe