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.1k

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.
  • Psycho0verloadP Offline
    Psycho0verloadP Offline
    Psycho0verload
    schrieb am zuletzt editiert von
    #1

    Hallo Community :)

    gibt es eine Möglichkeit mit Blockly oder Node Red den Log von ioBroker auszulesen und auf einen Eintrag zu reagieren. Ich habe auf einem ioBroker Slave eine Radar 2.0 Instanz laufen. Nach ein paar Tagen führt diese zu einem Fehler und ich muss das Slave Neustarten und dann läuft es wieder.

    Ich würde gerne den Fehler auslesen und das Slave dann automatisch Neustarten lassen, da es mir meine Anwesenheit regelt.

    Hat jemand einen Tipp?

    Liebe Grüße

    Psycho0verload

    liv-in-skyL paul53P 2 Antworten Letzte Antwort
    0
    • Psycho0verloadP Psycho0verload

      Hallo Community :)

      gibt es eine Möglichkeit mit Blockly oder Node Red den Log von ioBroker auszulesen und auf einen Eintrag zu reagieren. Ich habe auf einem ioBroker Slave eine Radar 2.0 Instanz laufen. Nach ein paar Tagen führt diese zu einem Fehler und ich muss das Slave Neustarten und dann läuft es wieder.

      Ich würde gerne den Fehler auslesen und das Slave dann automatisch Neustarten lassen, da es mir meine Anwesenheit regelt.

      Hat jemand einen Tipp?

      Liebe Grüße

      Psycho0verload

      liv-in-skyL Offline
      liv-in-skyL Offline
      liv-in-sky
      schrieb am zuletzt editiert von
      #2

      @Psycho0verload gibt es

      https://forum.iobroker.net/topic/13971/vorlage-js-log-datei-aufbereiten-für-vis

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

        Hallo Community :)

        gibt es eine Möglichkeit mit Blockly oder Node Red den Log von ioBroker auszulesen und auf einen Eintrag zu reagieren. Ich habe auf einem ioBroker Slave eine Radar 2.0 Instanz laufen. Nach ein paar Tagen führt diese zu einem Fehler und ich muss das Slave Neustarten und dann läuft es wieder.

        Ich würde gerne den Fehler auslesen und das Slave dann automatisch Neustarten lassen, da es mir meine Anwesenheit regelt.

        Hat jemand einen Tipp?

        Liebe Grüße

        Psycho0verload

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

        @Psycho0verload sagte:

        mit Blockly oder Node Red den Log von ioBroker auszulesen und auf einen Eintrag zu reagieren.

        Mit Javascript.

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

          @Psycho0verload gibt es

          https://forum.iobroker.net/topic/13971/vorlage-js-log-datei-aufbereiten-für-vis

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

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

          liv-in-skyL 1 Antwort Letzte Antwort
          0
          • 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
            schrieb am zuletzt editiert von 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 Antworten 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

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #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 Antworten Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      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
                        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

                                          1.0k

                                          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