Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [Vorlage] JS: Log-Datei aufbereiten für VIS

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    12
    2
    254

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

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

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

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

Scheduled Pinned Locked Moved JavaScript
617 Posts 60 Posters 151.5k Views 49 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.
  • O Oli

    @Negalein, @Glasfaser

    danke, aber bei mir wird der Button nicht erkannt, darum fragte ich nach dem Widgetadapter.

    b766d927-ef98-448b-878d-3665f5cb8aed-image.png

    GlasfaserG Offline
    GlasfaserG Offline
    Glasfaser
    wrote on last edited by
    #254

    @Oli

    1.JPG

    Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

    1 Reply Last reply
    0
    • O Oli

      @Negalein, @Glasfaser

      danke, aber bei mir wird der Button nicht erkannt, darum fragte ich nach dem Widgetadapter.

      b766d927-ef98-448b-878d-3665f5cb8aed-image.png

      sigi234S Online
      sigi234S Online
      sigi234
      Forum Testing Most Active
      wrote on last edited by sigi234
      #255

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

      @Negalein, @Glasfaser

      danke, aber bei mir wird der Button nicht erkannt, darum fragte ich nach dem Widgetadapter.

      Edit wegen Textänderung

      HdWidget ON/OFF

      Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
      Immer Daten sichern!

      GlasfaserG 1 Reply Last reply
      1
      • sigi234S sigi234

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

        @Negalein, @Glasfaser

        danke, aber bei mir wird der Button nicht erkannt, darum fragte ich nach dem Widgetadapter.

        Edit wegen Textänderung

        HdWidget ON/OFF

        GlasfaserG Offline
        GlasfaserG Offline
        Glasfaser
        wrote on last edited by
        #256

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

        HdWidget ON/FF

        Ist der Button neu … mit FF Funktion 😂

        Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

        O 1 Reply Last reply
        1
        • GlasfaserG Glasfaser

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

          HdWidget ON/FF

          Ist der Button neu … mit FF Funktion 😂

          O Offline
          O Offline
          Oli
          wrote on last edited by
          #257

          @Glasfaser ,@Negalein ,@sigi234

          vielen Dank!!

          Gruß
          Oliver

          1 Reply Last reply
          0
          • MicM Offline
            MicM Offline
            Mic
            Developer
            wrote on last edited by Mic
            #258

            Hi zusammen 🙂

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

            @Mic
            Hallo Mic,
            saubere Arbeit ! 👍

            Ich habe auch schon die ältere Version des Scriptes genutzt und hatte ebenfalls das "Mitternachts-Problem".
            Habe mir dann (mit meinen rudimentären JavaScript-Kenntnissen) so geholfen, daß ich erstens den Schedule auf jede 45te Sekunde gesetzt habe ( also nicht alle 45 Sek), damit auf jeden Fall immer 15 Sekunden Zeit bis zum "Mitternacht-Wechsel" war:

            Hi Jörg,
            danke für dein Feedback 🙂 und das war im alten Script definitiv (mit) das Problem, wegen des Mitternachtsproblems, aber hat sich ja jetzt erübrigt.

            Trotzdem habe ich - für mich persönlich! - auch im neuen Script wieder etwas "herumgepfuscht".
            Worum geht's ? Nun, ich wollte gerne, wenn ich das Log manuell lösche (clearJSON), daß das auch im vis optisch angezeigt wird.

            Schöne Umsetzung. Das mit der Anzeige im VIS ("Derzeit keine Logeinträge" o.ä.) mache ich noch einfacher: Ich hab ein Text-Widget hinter der Tabelle, das nur sichtbar ist, wenn kein Log vorhanden. Hier könnte man auch Datum/Uhrzeit des letzten Löschen ausgeben:
            log_sichtbarkeit.png

            Zur Performance:

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

            In der Zeit wo der Cron läuft wird das System doch sehr träge. Und das trotz sehr guter Hardware.

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

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

            Noch nie Probleme auf meiner Synology gehabt , aber sicherlich kann @Mic vielleicht eine Fehlerquelle bei dir finden ….. warum es bei dir das System sehr träge macht !?

            Ja, ich warte jetzt mal auf @Mic!

            Normal kenn ich auf der Syno auf keine Performanceeinbußen.
            Die CPU ist von 5% auf 16% angestiegen.
            Der RAM nur sehr minimal.

            Aber am ioBroker hab ich es vorallem an der VIS bemerkt, dass der Seitenaufbau sehr träge war und
            zB ein Button mit mdui-raisedbutton mdui-blue-blink nur ca. alle 10 Sekunden geblinkt hat (statt normal jede Sekunde).

            Seltsam, ich stelle bei mir keinerlei Performanceprobleme fest, weder wenn das Script läuft, noch beim Update lt. Schedule. Auch lt. Proxmox kein merklicher CPU-Load-Unterschied feststellbar.
            Ich habe allerdings die meisten Adapter auf Debug Level warn oder error, so dass bei mir generell nicht so viel im Log ankommt.

            Das Script bedient sich einiger Funktionen, um die Log-Zeilen aufzubereiten, da werden mehrere Schleifen durchlaufen, Arrays gefüllt, Regex-Funktionen ausgeführt, usw., und das für jede Logzeile und jede "Kategorie".
            Leider tue ich mir schwer zu identifizieren, ob hier eine Funktion / Script-Bestandteil die Performance in den Keller drückt, denn das gibt der JavaScript-Adapter nicht her.
            Das Parsing im Script muss ich noch mal bei Gelegenheit umstellen, das geht definitiv effizienter. Aber ob das danach dann Auswirkung auf langsameren Systemen hat, kann ich nicht sagen.

            Cool wäre, wenn man dem Script, oder alternativ den JavaScript-Adapter, nur bestimmte Systemressourcen (RAM und vor allem CPU in %) zuordnen könnte. Dann könnte man das auf z.B. CPU 5% stellen und das Script hätte Zeit, das nach und nach abzuarbeiten.
            Ob das überhaupt geht (JavaScript-Adapter-seitig) weiß ich nicht. Evtl. weiß das jemand von Euch. Dann könnte man auf schwachen Systemen das Script in eine eigene JS-Adapter-Instanz packen und dort für die Instanz verfügbare Ressourcen herunterschrauben.

            Grüße

            1 Reply Last reply
            0
            • O Offline
              O Offline
              Oli
              wrote on last edited by
              #259

              Hallo zusammen,

              ich habe mal ne blöde Anfängerfrage.

              Was muss ich in die Blacklist eintragen, damit ich folgende Logeinträge nicht mehr angezeigt bekomme?

              8863787f-0fc4-4cad-9d67-ad3e0e92057a-image.png

              Gruß
              Oliver

              GlasfaserG 1 Reply Last reply
              0
              • O Oli

                Hallo zusammen,

                ich habe mal ne blöde Anfängerfrage.

                Was muss ich in die Blacklist eintragen, damit ich folgende Logeinträge nicht mehr angezeigt bekomme?

                8863787f-0fc4-4cad-9d67-ad3e0e92057a-image.png

                GlasfaserG Offline
                GlasfaserG Offline
                Glasfaser
                wrote on last edited by
                #260

                @Oli

                blacklist:   ['snmp'],
                
                

                Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                O 1 Reply Last reply
                0
                • GlasfaserG Glasfaser

                  @Oli

                  blacklist:   ['snmp'],
                  
                  
                  O Offline
                  O Offline
                  Oli
                  wrote on last edited by
                  #261

                  @Glasfaser said in [Vorlage] JS: Log-Datei aufbereiten für VIS:

                  ['snmp']

                  danke für die schnelle Antwort, aber das scheint nicht zu klappen.

                  1f59b439-aa31-4729-94c4-7593492dee15-image.png

                  be4c261a-d050-41a8-a0cb-ebb8795f22e9-image.png

                  Wahrscheinlich sitzt die Schwachstelle wieder vorm PC 🙂

                  Gruß
                  Oliver

                  sigi234S 1 Reply Last reply
                  0
                  • O Oli

                    @Glasfaser said in [Vorlage] JS: Log-Datei aufbereiten für VIS:

                    ['snmp']

                    danke für die schnelle Antwort, aber das scheint nicht zu klappen.

                    1f59b439-aa31-4729-94c4-7593492dee15-image.png

                    be4c261a-d050-41a8-a0cb-ebb8795f22e9-image.png

                    Wahrscheinlich sitzt die Schwachstelle wieder vorm PC 🙂

                    sigi234S Online
                    sigi234S Online
                    sigi234
                    Forum Testing Most Active
                    wrote on last edited by
                    #262

                    @Oli
                    snmp.0

                    Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                    Immer Daten sichern!

                    O 1 Reply Last reply
                    1
                    • sigi234S sigi234

                      @Oli
                      snmp.0

                      O Offline
                      O Offline
                      Oli
                      wrote on last edited by
                      #263

                      @sigi234

                      danke, das war es.

                      Gruß
                      Oliver

                      GlasfaserG 1 Reply Last reply
                      0
                      • O Oli

                        @sigi234

                        danke, das war es.

                        GlasfaserG Offline
                        GlasfaserG Offline
                        Glasfaser
                        wrote on last edited by
                        #264

                        @Oli

                        Mein Angabe war für hier zum eintragen , deshalb nur " snmp "

                        1.JPG

                        Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                        1 Reply Last reply
                        0
                        • MicM Offline
                          MicM Offline
                          Mic
                          Developer
                          wrote on last edited by Mic
                          #265

                          @Oli
                          @Glasfaser
                          @sigi234

                          Es geht beides:

                          BLACKLIST_GLOBAL: Hier werden als erstes ALLE Log-Einträge global ausgefiltert.

                          Aber manchmal will man ja nicht global alles ausfiltern.

                          Daher kann man unterhalb von LOG_FILTER dann je nach Kategorie ('hubschrauberlandeplatz', 'error', etc.) noch zusätzlich filtern.

                          Das Beispiel aus dem Screenshot https://forum.iobroker.net/post/321724 kann nicht funktionieren, weil hier eckige Klammern hinzugefügt wurden:
                          '[snmp]'
                          Die Logzeile selbst enthält aber nur snmp.0 ohne eckige Klammern, daher greift der Filter nicht, da es '[snmp]' in der Logzeile selbst nicht gibt.
                          'snmp' ohne eckige Klammern geht natürlich. Besser ist es allerdings, näher zu spezifizieren, also 'snmp.0', damit nicht auch Logzeilen anderer Skripte mit ausgefiltert werden, falls diese in irgend einem Wort den Bestandteil snmp enthalten.

                          Also: besser 'snmp.0' statt 'snmp'. Oder: besser 'wetter.0' statt 'wetter' (Begriff wetter könnte schließlich auch wirklich in anderen Logzeilen enthalten sein).

                          1 Reply Last reply
                          0
                          • B Offline
                            B Offline
                            base
                            wrote on last edited by
                            #266

                            Hallo, bekomme nach Start des Scripts folgende Fehlermeldung:

                            javascript.0	2019-11-13 15:56:54.939	error	(29884) at process._tickCallback (internal/process/next_tick.js:68:7)
                            javascript.0	2019-11-13 15:56:54.939	error	(29884) at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49)
                            javascript.0	2019-11-13 15:56:54.939	error	(29884) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
                            javascript.0	2019-11-13 15:56:54.939	error	(29884) at client.get (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:491:17)
                            javascript.0	2019-11-13 15:56:54.939	error	(29884) at adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:845:17)
                            javascript.0	2019-11-13 15:56:54.938	error	(29884) at createProblemObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1254:17)
                            javascript.0	2019-11-13 15:56:54.938	error	(29884) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1201:37)
                            javascript.0	2019-11-13 15:56:54.938	error	(29884) at compile (/opt/iobroker/node_modules/iobroker.javascript/main.js:978:28)
                            javascript.0	2019-11-13 15:56:54.938	error	(29884) at Object.createScript (vm.js:277:10)
                            javascript.0	2019-11-13 15:56:54.938	error	(29884) at new Script (vm.js:83:7)
                            javascript.0	2019-11-13 15:56:54.938	error	(29884) SyntaxError: Unexpected end of input
                            javascript.0	2019-11-13 15:56:54.937	error	(29884)
                            javascript.0	2019-11-13 15:56:54.937	error	(29884) log('registered ' + __engine.__subscriptions + ' subscription' + (__engine.__subscriptions === 1 ? '' : 's' ) + ' and ' + __engine.__schedules + ' schedule' + (__engine.__schedules === 1 ? ''
                            javascript.0	2019-11-13 15:56:54.937	error	at script.js.common.Home.LogfileSrcipt2:1392
                            javascript.0	2019-11-13 15:56:54.937	error	(29884) script.js.common.Home.LogfileSrcipt2 compile failed:
                            

                            was bedeutet das?

                            GlasfaserG 1 Reply Last reply
                            0
                            • B base

                              Hallo, bekomme nach Start des Scripts folgende Fehlermeldung:

                              javascript.0	2019-11-13 15:56:54.939	error	(29884) at process._tickCallback (internal/process/next_tick.js:68:7)
                              javascript.0	2019-11-13 15:56:54.939	error	(29884) at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49)
                              javascript.0	2019-11-13 15:56:54.939	error	(29884) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
                              javascript.0	2019-11-13 15:56:54.939	error	(29884) at client.get (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:491:17)
                              javascript.0	2019-11-13 15:56:54.939	error	(29884) at adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:845:17)
                              javascript.0	2019-11-13 15:56:54.938	error	(29884) at createProblemObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1254:17)
                              javascript.0	2019-11-13 15:56:54.938	error	(29884) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1201:37)
                              javascript.0	2019-11-13 15:56:54.938	error	(29884) at compile (/opt/iobroker/node_modules/iobroker.javascript/main.js:978:28)
                              javascript.0	2019-11-13 15:56:54.938	error	(29884) at Object.createScript (vm.js:277:10)
                              javascript.0	2019-11-13 15:56:54.938	error	(29884) at new Script (vm.js:83:7)
                              javascript.0	2019-11-13 15:56:54.938	error	(29884) SyntaxError: Unexpected end of input
                              javascript.0	2019-11-13 15:56:54.937	error	(29884)
                              javascript.0	2019-11-13 15:56:54.937	error	(29884) log('registered ' + __engine.__subscriptions + ' subscription' + (__engine.__subscriptions === 1 ? '' : 's' ) + ' and ' + __engine.__schedules + ' schedule' + (__engine.__schedules === 1 ? ''
                              javascript.0	2019-11-13 15:56:54.937	error	at script.js.common.Home.LogfileSrcipt2:1392
                              javascript.0	2019-11-13 15:56:54.937	error	(29884) script.js.common.Home.LogfileSrcipt2 compile failed:
                              

                              was bedeutet das?

                              GlasfaserG Offline
                              GlasfaserG Offline
                              Glasfaser
                              wrote on last edited by
                              #267

                              @base

                              Zeige mal bitte dein ganzes Skript.
                              Lade es als . txt Datei hier hoch.

                              Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                              B 1 Reply Last reply
                              0
                              • GlasfaserG Glasfaser

                                @base

                                Zeige mal bitte dein ganzes Skript.
                                Lade es als . txt Datei hier hoch.

                                B Offline
                                B Offline
                                base
                                wrote on last edited by
                                #268

                                @Glasfaser logfilescript.txt

                                GlasfaserG 1 Reply Last reply
                                0
                                • B base

                                  @Glasfaser logfilescript.txt

                                  GlasfaserG Offline
                                  GlasfaserG Offline
                                  Glasfaser
                                  wrote on last edited by Glasfaser
                                  #269

                                  @base

                                  Hast du beim kopieren unterschlagen .

                                  1.JPG

                                  Habe es hier verbessert :

                                  NEU .txt

                                  Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                  B 1 Reply Last reply
                                  0
                                  • GlasfaserG Glasfaser

                                    @base

                                    Hast du beim kopieren unterschlagen .

                                    1.JPG

                                    Habe es hier verbessert :

                                    NEU .txt

                                    B Offline
                                    B Offline
                                    base
                                    wrote on last edited by
                                    #270

                                    @Glasfaser

                                    oh peinlich. Vielen Dank für den Hinweis👍

                                    1 Reply Last reply
                                    0
                                    • S Offline
                                      S Offline
                                      Sascha12
                                      wrote on last edited by
                                      #271

                                      Hallo,
                                      erstmal Kompliment, geiles Script, toll Dokumentiert, so viel Mühe. Meinen grössten Respekt.

                                      Nun kommt meine Frage: Ich benutze Habpanel und möchte ungerne die VIS einblenden extra dafür, zumal Habpanel so einfach ist.
                                      Dafür müsste mir das LOG die Daten nicht als Fließtext ausgeben, sondern es müsste immer einen harten Zeilenumbruch nach jeder Zeile einfügen.

                                      Ein Beispiel wie ich eine Statusseite hardcoded eingegeben hatte in das Template-Widget. So müsste also der Syntax aussehen. Am Log-Code selbst hatte ich bisher extra nichts geändert.
                                      Geht das irgendwie umzusetzen oder hat jemand irgendeine andere Idee wie ich es sauber in Habpanel einpflege?

                                      {{itemValue('deconz.0.Sensors.5.lastupdated')}}<br>
                                      {{itemValue('deconz.0.Sensors.6.lastupdated')}}<br>
                                      {{itemValue('deconz.0.Sensors.7.lastupdated')}}<br>
                                      {{itemValue('deconz.0.Sensors.8.lastupdated')}}<br>
                                      

                                      VG Sascha

                                      MicM 1 Reply Last reply
                                      0
                                      • S Sascha12

                                        Hallo,
                                        erstmal Kompliment, geiles Script, toll Dokumentiert, so viel Mühe. Meinen grössten Respekt.

                                        Nun kommt meine Frage: Ich benutze Habpanel und möchte ungerne die VIS einblenden extra dafür, zumal Habpanel so einfach ist.
                                        Dafür müsste mir das LOG die Daten nicht als Fließtext ausgeben, sondern es müsste immer einen harten Zeilenumbruch nach jeder Zeile einfügen.

                                        Ein Beispiel wie ich eine Statusseite hardcoded eingegeben hatte in das Template-Widget. So müsste also der Syntax aussehen. Am Log-Code selbst hatte ich bisher extra nichts geändert.
                                        Geht das irgendwie umzusetzen oder hat jemand irgendeine andere Idee wie ich es sauber in Habpanel einpflege?

                                        {{itemValue('deconz.0.Sensors.5.lastupdated')}}<br>
                                        {{itemValue('deconz.0.Sensors.6.lastupdated')}}<br>
                                        {{itemValue('deconz.0.Sensors.7.lastupdated')}}<br>
                                        {{itemValue('deconz.0.Sensors.8.lastupdated')}}<br>
                                        

                                        VG Sascha

                                        MicM Offline
                                        MicM Offline
                                        Mic
                                        Developer
                                        wrote on last edited by
                                        #272

                                        @Sascha12
                                        Vielen Dank für dein Feedback 🙂 !

                                        Was du machen kannst:
                                        Den entsprechenden Datenpunkt von logJSON, also etwa javascript.0.Log-Script.xxxxx.logJSON, einfach auf Änderung überwachen. Bei Änderung dann auslesen, die Logzeilen neu aufbauen, und dann in einen neuen Datenpunkt ausgeben.
                                        Beispiel (kopiert aus einem Script von mir):

                                        // State von Logfile-Script, den wir verarbeiten wollen
                                        const STATE_LOG = 'javascript.0.Log-Script.logError.logJSON';
                                        
                                        // Neuer State, der die geparste Ausgabe enthält
                                        const STATE_RESULT = 'javascript.0.Test.Testlog'
                                        
                                        ///////////////////////////////////////////////////////////////////////////////////////////////
                                        //////////////////////////// AB HIER NICHTS MEHR ÄNDERN ///////////////////////////////////////
                                        ///////////////////////////////////////////////////////////////////////////////////////////////
                                        
                                        createState(STATE_RESULT, {'name':'Test Log', 'type':'string', 'read':true, 'write':true, 'def':'' });
                                        
                                        on({id: STATE_LOG, change: 'any'}, function (obj) {
                                            doStuff();
                                        });
                                        
                                        
                                        function doStuff() {
                                        
                                            let obj;
                                            // https://forum.iobroker.net/topic/6805/mqtt-json-einzelner-datenpunkt-sonoffpow-script/4
                                        	try {obj = JSON.parse(getState(STATE_LOG).val);
                                        	} catch (e) {
                                                	log('Cannot parse: ' + getState(STATE_LOG).val, 'warn');
                                                	return;
                                         	}
                                        
                                            let logStr = '';
                                            for (let lpEntry of obj) {
                                        
                                                // hier kannst du beliebig alles anpassen für die Ausgabe        
                                                logStr += lpEntry.date + ' - Level: ' + lpEntry.level + ', Quelle: ' + lpEntry.source + ', Message: ' + lpEntry.msg;
                                        
                                            }
                                        
                                            setState(STATE_RESULT, logStr);
                                        
                                        }
                                        

                                        Bei // hier kannst du beliebig alles anpassen für die Ausgabe kannst du deine Ausgabe individuell konfigurieren.

                                        S 1 Reply Last reply
                                        0
                                        • MicM Mic

                                          @Sascha12
                                          Vielen Dank für dein Feedback 🙂 !

                                          Was du machen kannst:
                                          Den entsprechenden Datenpunkt von logJSON, also etwa javascript.0.Log-Script.xxxxx.logJSON, einfach auf Änderung überwachen. Bei Änderung dann auslesen, die Logzeilen neu aufbauen, und dann in einen neuen Datenpunkt ausgeben.
                                          Beispiel (kopiert aus einem Script von mir):

                                          // State von Logfile-Script, den wir verarbeiten wollen
                                          const STATE_LOG = 'javascript.0.Log-Script.logError.logJSON';
                                          
                                          // Neuer State, der die geparste Ausgabe enthält
                                          const STATE_RESULT = 'javascript.0.Test.Testlog'
                                          
                                          ///////////////////////////////////////////////////////////////////////////////////////////////
                                          //////////////////////////// AB HIER NICHTS MEHR ÄNDERN ///////////////////////////////////////
                                          ///////////////////////////////////////////////////////////////////////////////////////////////
                                          
                                          createState(STATE_RESULT, {'name':'Test Log', 'type':'string', 'read':true, 'write':true, 'def':'' });
                                          
                                          on({id: STATE_LOG, change: 'any'}, function (obj) {
                                              doStuff();
                                          });
                                          
                                          
                                          function doStuff() {
                                          
                                              let obj;
                                              // https://forum.iobroker.net/topic/6805/mqtt-json-einzelner-datenpunkt-sonoffpow-script/4
                                          	try {obj = JSON.parse(getState(STATE_LOG).val);
                                          	} catch (e) {
                                                  	log('Cannot parse: ' + getState(STATE_LOG).val, 'warn');
                                                  	return;
                                           	}
                                          
                                              let logStr = '';
                                              for (let lpEntry of obj) {
                                          
                                                  // hier kannst du beliebig alles anpassen für die Ausgabe        
                                                  logStr += lpEntry.date + ' - Level: ' + lpEntry.level + ', Quelle: ' + lpEntry.source + ', Message: ' + lpEntry.msg;
                                          
                                              }
                                          
                                              setState(STATE_RESULT, logStr);
                                          
                                          }
                                          

                                          Bei // hier kannst du beliebig alles anpassen für die Ausgabe kannst du deine Ausgabe individuell konfigurieren.

                                          S Offline
                                          S Offline
                                          Sascha12
                                          wrote on last edited by
                                          #273

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

                                          @Sascha12
                                          Vielen Dank für dein Feedback 🙂 !

                                          Was du machen kannst:

                                          Danke Dir. Das muss ich erstmal ansehen. Habe es implementiert und funktioniert wie von Dir angegeben !

                                          Ich glaube aber, dass ich das nicht weiter verfolge, weil das weitere Anpassen über meinen Horizont geht.

                                          Ich müsste ja auch in JS eine Tabelle definieren und in den Code einfügen, weil Habpanel "nur" den reinen Code nimmt im Template-Widget.
                                          VG Sascha

                                          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

                                          125

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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