Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Vorlage] JS: Log-Datei aufbereiten für VIS

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Vorlage] JS: Log-Datei aufbereiten für VIS

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

      @Nashra

      hab keinen slave daher vermutung:

      du hast doch eine javascript instanz auf dem slave installiert - und darin müßte dann das script nochmal laufen und dies sollte auf die lokale platte zugreifen ?

      lieg ich damit falsch ?

      und natürlich müßtest du dann die datenpunkte im script in einen anderen ordner speichern - sonst überschreiben sie sich - es muss das 2te script vollständig im bezug der datenpunkte geändert sein

      Nashra 1 Reply Last reply Reply Quote 0
      • D
        darkiop Most Active last edited by

        Das Log des Slaves sollte meines Wissens im Log des Masters enthalten sein.

        Nashra 1 Reply Last reply Reply Quote 0
        • Nashra
          Nashra Most Active Forum Testing @darkiop last edited by Nashra

          @darkiop, der Slave hat ein eigenes Log

          1 Reply Last reply Reply Quote 0
          • A
            aleks-83 last edited by

            Vielen Dank für das coole Skript.
            Ich habe es bei mir eingerichtet und in die vis eingebunden.

            Leider bekomme ich die Spaltenbreite noch nicht angepasst.
            Wie mache ich das?

            Mic 1 Reply Last reply Reply Quote 0
            • Mic
              Mic Developer @aleks-83 last edited by

              @aleks-83 sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:

              Vielen Dank für das coole Skript.
              Ich habe es bei mir eingerichtet und in die vis eingebunden.

              Leider bekomme ich die Spaltenbreite noch nicht angepasst.

              Hi Aleks,
              geht zum einen über CSS, als auch über das Widget "basic - table". Hast du mal danach hier im Forum gesucht? Über das Widget einzustellen wurde etwa hier kurz beschrieben: https://forum.iobroker.net/post/293422

              1 Reply Last reply Reply Quote 1
              • A
                aleks-83 last edited by

                Perfekt, Danke !

                Man braucht also nur in dem Widget die KollumnAnzahl angeben und schon erscheinen Eingabefelder für einzelnen Breiten.

                1 Reply Last reply Reply Quote 0
                • Nashra
                  Nashra Most Active Forum Testing @liv-in-sky last edited by

                  @liv-in-sky sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:

                  @Nashra

                  hab keinen slave daher vermutung:

                  du hast doch eine javascript instanz auf dem slave installiert - und darin müßte dann das script nochmal laufen und dies sollte auf die lokale platte zugreifen ?

                  lieg ich damit falsch ?

                  Nein, genau dies versuche ich. Problem ist die Pfadangabe im Script für den Slave da es sonst auf das Log des Master zugreift. Habe den Pfad auch angegeben aber es klappt nicht, schätze das hier Benutzername und Passwort mit
                  eingegeben werden müßen. Nur wie mache ich das?

                  und natürlich müßtest du dann die datenpunkte im script in einen anderen ordner speichern - sonst überschreiben sie sich - es muss das 2te script vollständig im bezug der datenpunkte geändert sein

                  Dies war kein Problem, einfach Log-Scripte-Slave eingetragen mit der entsprechenden Javainstanz.

                  liv-in-sky 1 Reply Last reply Reply Quote 0
                  • Nashra
                    Nashra Most Active Forum Testing last edited by

                    Und noch etwas...
                    Um 0 Uhr bekomme ich folgenden Error im Log

                    2019-09-28 00:00:02.102 - info: javascript.0 script.js.Meine_Geräte.VIS-Logs: Start new Tail process. File path to current log: [/opt/iobroker/log/iobroker.2019-09-28.log]
                    2019-09-28 00:00:02.126 - error: javascript.0 Error in callback: Error [ERR_UNHANDLED_ERROR]: Unhandled error. ('watch for /opt/iobroker/log/iobroker.2019-09-28.log failed: Error: ENOENT: no such file or directory, stat \'/opt/iobroker/log/iobroker.2019-09-28.log\'')
                    2019-09-28 00:00:02.126 - error: javascript.0 at Tail.emit (events.js:187:17)
                    2019-09-28 00:00:02.127 - error: javascript.0 at Tail.watch (/opt/iobroker/node_modules/iobroker.javascript/node_modules/tail/lib/tail.js:136:12)
                    2019-09-28 00:00:02.127 - error: javascript.0 at new Tail (/opt/iobroker/node_modules/iobroker.javascript/node_modules/tail/lib/tail.js:87:10)
                    2019-09-28 00:00:02.128 - error: javascript.0 at Object.startTailingProcess (script.js.Meine_Geräte.VIS-Logs:770:14)
                    2019-09-28 00:00:02.128 - error: javascript.0 at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1888:34)
                    2019-09-28 00:00:02.128 - error: javascript.0 at ontimeout (timers.js:438:13)
                    2019-09-28 00:00:02.128 - error: javascript.0 at tryOnTimeout (timers.js:300:5)
                    2019-09-28 00:00:02.128 - error: javascript.0 at listOnTimeout (timers.js:263:5)
                    2019-09-28 00:00:02.128 - error: javascript.0 at Timer.processTimers (timers.js:223:10)
                    2019-09-28 00:00:03.112 - info: javascript.0 script.js.Meine_Geräte.VIS-Logs: Start monitoring of the ioBroker log...
                    

                    Das sieht ja danach aus dass das Log noch nicht existiert, ist das richtig?
                    Was müßte wo und wie geändert werden.

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

                      @Nashra

                      ich habe kein slave system - daher wäre es besser jmd mit so einem system könnte dir helfen

                      • benutzername und passwort sollte kein thema sein - durch das fixer-script hat iobroker alle rechte
                      • was mich verwundert ist, dass der slave mit seiner javainstanz auf das filesystem des master zugreift ? das log file des slaves liegt doch auch im log verzeichnisses des slaves ? oder ist das anders?
                      • wenn es nicht klappt, irgendwo müßte doch eine fehlermeldung sein

                      zeig doch mal, was du im script, welches auf der slave-javascript-instanz läuft, eingetragen hast (LOG_STATE_PATH, LOG_FS_PATH)

                      ein fehler von mir - das es evtl zum überschreiben irgendwelcher datenpunkte kommen könnte, ist eigentlich falsch - du hast ja verschiedene scripte, die in verschiedenen javascript-instanzen laufen - also habe sie auch verschiedene datenpunkte

                      1 Reply Last reply Reply Quote 0
                      • Nashra
                        Nashra Most Active Forum Testing last edited by

                        @liv-in-sky
                        Alles an den Anfang, es läuft. Im Script braucht nur der Pfad zu den
                        Datenpunkten 'javascript.'+ instance + '.' + 'Log-Script-Slave' geändert werden und,
                        das wußte ich nicht da immer noch Anfänger, das Script über Edit auf die Instanz setzen
                        die auf dem Slave läuft 🤦‍♂️
                        Log vom Slave wird in der Vis angezeigt 😀

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

                          @Nashra 👍

                          Nashra 1 Reply Last reply Reply Quote 0
                          • Nashra
                            Nashra Most Active Forum Testing @liv-in-sky last edited by Nashra

                            @liv-in-sky sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:

                            @Nashra 👍

                            Einfach zu kompliziert gedacht, naja, wieder was gelernt.

                            Jetzt müßte man nur noch den Fehler beim Tageswechsel wegbekommen Error

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

                              @Nashra

                              hast du das gemacht ?

                              * Option 1: Hinzufügen im JavaScript-Adapter:
                               *    1. Im ioBroker links auf "Instanzen" klicken, dort den JS-Adapter wählen, etwa javascript.0
                               *    2. Unter "Zusätzliche NPM-Module" einfach "tail" (ohne Anführungszeichen) eingeben
                               *    3. Speichern
                               * 
                              

                              Image 1.png

                              1 Reply Last reply Reply Quote 1
                              • Nashra
                                Nashra Most Active Forum Testing last edited by Nashra

                                @liv-in-sky
                                Ja habe ich alles gemacht, danke für die Info und Hilfe 👍

                                1 Reply Last reply Reply Quote 0
                                • Mic
                                  Mic Developer @Nashra last edited by Mic

                                  @Nashra sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:

                                  Und noch etwas...
                                  Um 0 Uhr bekomme ich folgenden Error im Log

                                  2019-09-28 00:00:02.102 - info: javascript.0 script.js.Meine_Geräte.VIS-Logs: Start new Tail process. File path to current log: [/opt/iobroker/log/iobroker.2019-09-28.log]
                                  2019-09-28 00:00:02.126 - error: javascript.0 Error in callback: Error [ERR_UNHANDLED_ERROR]: Unhandled error. ('watch for /opt/iobroker/log/iobroker.2019-09-28.log failed: Error: ENOENT: no such file or directory, stat \'/opt/iobroker/log/iobroker.2019-09-28.log\'')
                                  2019-09-28 00:00:02.126 - error: javascript.0 at Tail.emit (events.js:187:17)
                                  2019-09-28 00:00:02.127 - error: javascript.0 at Tail.watch (/opt/iobroker/node_modules/iobroker.javascript/node_modules/tail/lib/tail.js:136:12)
                                  2019-09-28 00:00:02.127 - error: javascript.0 at new Tail (/opt/iobroker/node_modules/iobroker.javascript/node_modules/tail/lib/tail.js:87:10)
                                  2019-09-28 00:00:02.128 - error: javascript.0 at Object.startTailingProcess (script.js.Meine_Geräte.VIS-Logs:770:14)
                                  2019-09-28 00:00:02.128 - error: javascript.0 at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1888:34)
                                  2019-09-28 00:00:02.128 - error: javascript.0 at ontimeout (timers.js:438:13)
                                  2019-09-28 00:00:02.128 - error: javascript.0 at tryOnTimeout (timers.js:300:5)
                                  2019-09-28 00:00:02.128 - error: javascript.0 at listOnTimeout (timers.js:263:5)
                                  2019-09-28 00:00:02.128 - error: javascript.0 at Timer.processTimers (timers.js:223:10)
                                  2019-09-28 00:00:03.112 - info: javascript.0 script.js.Meine_Geräte.VIS-Logs: Start monitoring of the ioBroker log...
                                  

                                  Das sieht ja danach aus dass das Log noch nicht existiert, ist das richtig?
                                  Was müßte wo und wie geändert werden.

                                  Das ist seltsam, du bist bislang der erste, der das berichtet. Ich fange das eigentlich mit dem Script ab. D.h. falls für den neuen Tag um 0:00 Uhr noch kein neues Log-File existiert, lasse ich automatisch ein leeres Logfile erzeugen.

                                  function startTailingProcess() {
                                  
                                      // Path to iobroker log file
                                      let strFsFullPath = getCurrentFullFsLogPath();
                                  
                                      // Create a new log file. It will created if it is not yet existing.
                                      // This will avoid an error if right after midnight the log file is not yet there
                                  																											 
                                      const fs = require('fs');
                                      if (fs.existsSync(strFsFullPath)) {
                                          // File is existing
                                      } else {
                                          // File is not existing, so we create it.
                                          if (LOG_DEBUG) log (DEBUG_IGNORE_STR + 'Log file is not existing, so we need to create a blank file.');
                                          fs.writeFile(strFsFullPath, '', function(err) {
                                              if(err) return log(err);
                                          }); 
                                      }
                                  
                                      // Now start new tailing instance
                                      if(LOG_INFO) log('Start new Tail process. File path to current log: [' + strFsFullPath + ']');
                                      G_tail = new G_Tail(strFsFullPath, G_tailOptions);
                                  
                                  }
                                  

                                  Seltsam, dass das nur bei dir auftritt. Kann ich jetzt nicht reproduzieren...
                                  Aber ich habe eine Vermutung, und hab mal in die Runde gefragt: https://forum.iobroker.net/topic/25384/js-wie-erst-nach-file-erstellung-fortsetzen

                                  1 Reply Last reply Reply Quote 1
                                  • Mic
                                    Mic Developer last edited by

                                    @Nashra
                                    Bitte teste mal die neue Version 2.0.2 des Scripts und poste, welcher Log um Mitternacht dann ausgegeben wird.

                                    Also einfach Script austauschen, zum Test kannst du einfach alles unterhalb von dieser Zeile ersetzen, an den Einstellungen etc. habe ich nichts geändert:

                                    /*************************************************************************************************************************
                                     * Ab hier nichts mehr ändern / Stop editing here!
                                     *************************************************************************************************************************/
                                    
                                    
                                    Nashra 1 Reply Last reply Reply Quote 1
                                    • Nashra
                                      Nashra Most Active Forum Testing @Mic last edited by

                                      @Mic sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:

                                      @Nashra
                                      Bitte teste mal die neue Version 2.0.2 des Scripts und poste, welcher Log um Mitternacht dann ausgegeben wird.

                                      Also einfach Script austauschen, zum Test kannst du einfach alles unterhalb von dieser Zeile ersetzen, an den Einstellungen etc. habe ich nichts geändert:

                                      /*************************************************************************************************************************
                                       * Ab hier nichts mehr ändern / Stop editing here!
                                       *************************************************************************************************************************/
                                      

                                      Script ausgetauscht mal sehen was er um Mitternacht anzeigt, werde morgen berichten.

                                      1 Reply Last reply Reply Quote 1
                                      • Nashra
                                        Nashra Most Active Forum Testing last edited by

                                        Moin @Mic
                                        das Log von heute Morgen

                                        2019-10-02 00:00:00.079 - error: javascript.0 script.js.Meine_Geräte.VIS-Logs: monitorLogChanges not executed as starting new Tailing Process was not successful
                                        2019-10-02 00:00:00.122 - info: javascript.0 script.js.Meine_Geräte.VIS-Logs: Start new Tail process. File path to current log: [/opt/iobroker/log/iobroker.2019-10-02.log]
                                        
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • Mic
                                          Mic Developer last edited by

                                          @Nashra
                                          Danke fürs testen und berichten. Waren da nur diese 2 Zeilen im Log oder noch mehr?

                                          Was kommt als Ausgabe, wenn du in der Konsole folgendes eingibst:

                                          stat -c %a /opt/iobroker/log
                                          

                                          Bitte teste auch mal folgenden Code in einem neuen Script.

                                          const FILE_TO_TEST = '/opt/iobroker/log/testdatei_01.txt';
                                          const fs = require('fs');
                                          fs.writeFile(FILE_TO_TEST, '', function(err) {
                                              if (err) {
                                                  log('The file [' + FILE_TO_TEST + '] could not be created.', 'error');
                                                  log('fs.writeFile Error: ' + err, 'error');
                                              } else {
                                                  log('File [' + FILE_TO_TEST + '] created.');
                                              }
                                          });
                                          

                                          Damit testen wir, ob du generell die Rechte hast, im Log-Verzeichnis die Datei testdatei_01.txt anzulegen.

                                          Nashra 1 Reply Last reply Reply Quote 0
                                          • Nashra
                                            Nashra Most Active Forum Testing @Mic last edited by Nashra

                                            @Mic sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:

                                            @Nashra
                                            Danke fürs testen und berichten. Waren da nur diese 2 Zeilen im Log oder noch mehr?

                                            Nein, nur die zwei Zeilen

                                            Was kommt als Ausgabe, wenn du in der Konsole folgendes eingibst:

                                            stat -c %a /opt/iobroker/log
                                            

                                            Es kommt 777

                                            Bitte teste auch mal folgenden Code in einem neuen Script.

                                            Log-Ausgabe

                                            javascript.0	2019-10-02 20:07:53.458	info	script.js.Meine_Geräte.TEST: File [/opt/iobroker/log/testdatei_01.txt] created.
                                            javascript.0	2019-10-02 20:07:53.445	info	script.js.Meine_Geräte.TEST: registered 0 subscriptions and 0 schedules
                                            javascript.0	2019-10-02 20:07:53.396	info	Start javascript script.js.Meine_Geräte.TEST
                                            

                                            wird also angelegt

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            583
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            60
                                            617
                                            113241
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo