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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [Vorlage] JS: Log-Datei aufbereiten für VIS

NEWS

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

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

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

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

Geplant Angeheftet Gesperrt Verschoben JavaScript
617 Beiträge 60 Kommentatoren 152.8k Aufrufe 49 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.
  • GlasfaserG Glasfaser

    @sigi234

    Ist schon richtig , er hat ein _ und die Ausgabe 0 ist auch im Button

    sigi234S Online
    sigi234S Online
    sigi234
    Forum Testing Most Active
    schrieb am zuletzt editiert von
    #521

    @Glasfaser

    Hallo, wie kann ich im Menü Links einen neuen Button erstellen mit den DP

    {
        id:             'all',    // Beispiel "all": hier kommen alle Logeinträge rein, keine Filterung
        filter_all:     ['', ''], // wird ignoriert, wenn leer
        filter_any:     ['', ''], // wird ignoriert, wenn leer
        blacklist:      ['', ''], // wird ignoriert, wenn leer
        clean:          ['', '', ''], // wird ignoriert, wenn leer
        merge:          true,
        sortDescending: true,
        jsonDateFormat: '#DD.MM.# hh:mm',
        jsonColumns:    ['date','level','source','msg'],  // Spaltenreihenfolge für JSON (Tabelle in vis)
        jsonLogLength:  100,
        jsonMaxLines:   22,
        jsonCssToLevel: true,
      },
    

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

    GlasfaserG 1 Antwort Letzte Antwort
    0
    • sigi234S sigi234

      @Glasfaser

      Hallo, wie kann ich im Menü Links einen neuen Button erstellen mit den DP

      {
          id:             'all',    // Beispiel "all": hier kommen alle Logeinträge rein, keine Filterung
          filter_all:     ['', ''], // wird ignoriert, wenn leer
          filter_any:     ['', ''], // wird ignoriert, wenn leer
          blacklist:      ['', ''], // wird ignoriert, wenn leer
          clean:          ['', '', ''], // wird ignoriert, wenn leer
          merge:          true,
          sortDescending: true,
          jsonDateFormat: '#DD.MM.# hh:mm',
          jsonColumns:    ['date','level','source','msg'],  // Spaltenreihenfolge für JSON (Tabelle in vis)
          jsonLogLength:  100,
          jsonMaxLines:   22,
          jsonCssToLevel: true,
        },
      
      GlasfaserG Offline
      GlasfaserG Offline
      Glasfaser
      schrieb am zuletzt editiert von Glasfaser
      #522

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

      [{"tpl":"tplVis-materialdesign-Button-State","data":{"oid":"0_userdata.0.Log-Script.all.visView1.whichFilter","g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","buttonStyle":"text","vibrateOnMobilDevices":"50","iconPosition":"left","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis.0/miclog/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis.0/miclog/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis.0/miclog/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"all","buttontext":" All ({v:0_userdata.0.Log-Script.logall.logJSONcount;v})","image":"alert-circle-outline","labelWidth":"","colorPress":"{b:0_userdata.0.Log-Script.all.visView1.whichFilter;b==\"all\" ? \"#ffd71a\" : \"#8f8f8f\"}","class":"leftBarBtn","name":"btnAll"},"style":{"left":"25px","top":"304px","z-index":"50","width":"180px","height":"32px","background-color":"{b:0_userdata.0.Log-Script.All.visView1.whichFilter;b==\"Info\" ? \"#4d4d4d\" : \"#2e2e2e\"}"},"widgetSet":"materialdesign"}]
      

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

      NegaleinN sigi234S 2 Antworten Letzte Antwort
      1
      • GlasfaserG Glasfaser

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

        [{"tpl":"tplVis-materialdesign-Button-State","data":{"oid":"0_userdata.0.Log-Script.all.visView1.whichFilter","g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","buttonStyle":"text","vibrateOnMobilDevices":"50","iconPosition":"left","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis.0/miclog/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis.0/miclog/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis.0/miclog/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"all","buttontext":" All ({v:0_userdata.0.Log-Script.logall.logJSONcount;v})","image":"alert-circle-outline","labelWidth":"","colorPress":"{b:0_userdata.0.Log-Script.all.visView1.whichFilter;b==\"all\" ? \"#ffd71a\" : \"#8f8f8f\"}","class":"leftBarBtn","name":"btnAll"},"style":{"left":"25px","top":"304px","z-index":"50","width":"180px","height":"32px","background-color":"{b:0_userdata.0.Log-Script.All.visView1.whichFilter;b==\"Info\" ? \"#4d4d4d\" : \"#2e2e2e\"}"},"widgetSet":"materialdesign"}]
        

        NegaleinN Offline
        NegaleinN Offline
        Negalein
        Global Moderator
        schrieb am zuletzt editiert von
        #523

        @Glasfaser
        warst etwas schneller :)

        ° Node.js: 20.17.0 NPM: 10.8.2
        ° Proxmox, Ubuntu 22.04.3 LTS
        ° Fixer ---> iob fix

        1 Antwort Letzte Antwort
        0
        • GlasfaserG Glasfaser

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

          [{"tpl":"tplVis-materialdesign-Button-State","data":{"oid":"0_userdata.0.Log-Script.all.visView1.whichFilter","g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","buttonStyle":"text","vibrateOnMobilDevices":"50","iconPosition":"left","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis.0/miclog/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis.0/miclog/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis.0/miclog/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"all","buttontext":" All ({v:0_userdata.0.Log-Script.logall.logJSONcount;v})","image":"alert-circle-outline","labelWidth":"","colorPress":"{b:0_userdata.0.Log-Script.all.visView1.whichFilter;b==\"all\" ? \"#ffd71a\" : \"#8f8f8f\"}","class":"leftBarBtn","name":"btnAll"},"style":{"left":"25px","top":"304px","z-index":"50","width":"180px","height":"32px","background-color":"{b:0_userdata.0.Log-Script.All.visView1.whichFilter;b==\"Info\" ? \"#4d4d4d\" : \"#2e2e2e\"}"},"widgetSet":"materialdesign"}]
          

          sigi234S Online
          sigi234S Online
          sigi234
          Forum Testing Most Active
          schrieb am zuletzt editiert von sigi234
          #524

          @Glasfaser
          @Negalein

          Danke, hatte ich auch schon fast. Habe aber All eingefügt.

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

          GlasfaserG 1 Antwort Letzte Antwort
          0
          • sigi234S sigi234

            @Glasfaser
            @Negalein

            Danke, hatte ich auch schon fast. Habe aber All eingefügt.

            GlasfaserG Offline
            GlasfaserG Offline
            Glasfaser
            schrieb am zuletzt editiert von
            #525

            @sigi234

            Habe mich auch schon gewundert ;)

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

            sigi234S 1 Antwort Letzte Antwort
            0
            • GlasfaserG Glasfaser

              @sigi234

              Habe mich auch schon gewundert ;)

              sigi234S Online
              sigi234S Online
              sigi234
              Forum Testing Most Active
              schrieb am zuletzt editiert von sigi234
              #526

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

              @sigi234

              Habe mich auch schon gewundert ;)

              javascript.0	2020-02-27 23:34:22.047	error	(12272) script.js.LOG.MIC_Log1: Log-Script-Fehler: Gewählter Filter all, aber Datenpunkt [0_userdata.0.Log-Script.logall.logJSON] ist nicht vorhanden.
              

              Erledigt, Fehler weg.

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

              1 Antwort Letzte Antwort
              0
              • MicM Mic

                @Negalein
                Teste mal frisch:

                1. Altes Script deaktivieren
                2. Alle Datenpunkte löschen, es sei denn sie sind nicht unterhalb 0_userdata.0.Log-Script, sondern wo anders
                3. Frisches aktuelles Script in JavaScript-Adapter rein. Du brauchst daran erst mal gar nichts im Code ändern. Aktivieren
                4. Projekt installieren (nichts daran ändern)

                So geht es auf jeden Fall, zumindest bei mir so getestet.

                O Offline
                O Offline
                Oli
                schrieb am zuletzt editiert von
                #527

                @Mic

                nochmals danke für das tolle Script.

                Kann ich mir in deinem Script auch den Status aller Javascripte (aktiviert, nicht aktiviert, Pause) anzeigen lassen?

                Gruß
                Oliver

                MicM 1 Antwort Letzte Antwort
                0
                • MicM Offline
                  MicM Offline
                  Mic
                  Developer
                  schrieb am zuletzt editiert von
                  #528

                  @Negalein
                  Hi. Das Log-Script behandelt wirklich nur Logs, und keine Datenpunkte.
                  Aber ich nutze schon seit längerem ein von mir geschriebenes Script, um die Alexa-History zu loggen und in VIS auszugeben. Also so:
                  log_al.png

                  Falls gewünscht, kann ich das Script gerne veröffentlichen. Gibt einen Datenpunkt, dessen Inhalt dann in VIS als Tabelle ausgegeben wird.

                  NegaleinN 1 Antwort Letzte Antwort
                  0
                  • O Oli

                    @Mic

                    nochmals danke für das tolle Script.

                    Kann ich mir in deinem Script auch den Status aller Javascripte (aktiviert, nicht aktiviert, Pause) anzeigen lassen?

                    MicM Offline
                    MicM Offline
                    Mic
                    Developer
                    schrieb am zuletzt editiert von Mic
                    #529

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

                    Kann ich mir in deinem Script auch den Status aller Javascripte (aktiviert, nicht aktiviert, Pause) anzeigen lassen?

                    Hi,
                    das geht so leider nicht, da das Log-Script ausschließlich die Logs als Quelle nimmt. Für deine Anforderung am besten einen neuen Thread öffnen :relaxed:

                    1 Antwort Letzte Antwort
                    0
                    • P ple

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

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

                      @Mic

                      Du Schlingel ( Künstler ) ,dachte auch wie @Negalein es wäre das Top App Bar Menue .
                      Ist dir sehr gut gelungen :+1:

                      Haha.
                      Danke :blush:

                      @ Alle

                      Denkt auch daran, bestimmte Log-Ereignisse in anderen Views damit darstellen zu können. Also z.B. An-/Abwesenheiten, Zustandsänderungen von Geräten, usw.
                      Mit den Filtern ist fast alles möglich, bin da gerne behilflich.
                      Beispiel Garagentor (ein Javascript liefert hier z.B. die Logs):
                      g2.png

                      Mein Gott, was eine Arbeit.
                      Ich gucke mir dein Script bereits einige Zeit an, aber verstehe leider nicht viel davon.
                      Vielleicht hast du eine Idee, wie ich dein Script nutzen kann als Meldearchiv.
                      Eigentlich will ich mir in einer Table nur anzeigen lassen, wenn ein Aktor auf true geht, oder sonst was.
                      Ähnlich Fensterzähler oder dein Garagentor. Nur soll die Meldung auch wieder weggehen, wenn z.B. dein Garagentor nicht mehr klemmt.
                      Hast du da vielleicht eine Idee, wie man sowas umsetzen könnte?
                      Mein rudimentärer Anfang ist hier mal dokumentiert.

                      https://forum.iobroker.net/topic/30324/array-erstellen-mit-prüfung-für-json-tabelle/9

                      MicM Offline
                      MicM Offline
                      Mic
                      Developer
                      schrieb am zuletzt editiert von
                      #530

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

                      Vielleicht hast du eine Idee, wie ich dein Script nutzen kann als Meldearchiv.
                      Eigentlich will ich mir in einer Table nur anzeigen lassen, wenn ein Aktor auf true geht, oder sonst was.
                      Ähnlich Fensterzähler oder dein Garagentor. Nur soll die Meldung auch wieder weggehen, wenn z.B. dein Garagentor nicht mehr klemmt.
                      Hast du da vielleicht eine Idee, wie man sowas umsetzen könnte?
                      Mein rudimentärer Anfang ist hier mal dokumentiert.
                      https://forum.iobroker.net/topic/30324/array-erstellen-mit-prüfung-für-json-tabelle/9

                      Hi,
                      das Log-Script ist nicht für deinen Anwendungsfall gedacht, es nimmt ausschließlich die Logs als Quelle. Ebenso ist es ein "Log", daher werden ältere Werte nicht nachträglich angepasst.

                      P 1 Antwort Letzte Antwort
                      0
                      • MicM Mic

                        @Negalein
                        Hi. Das Log-Script behandelt wirklich nur Logs, und keine Datenpunkte.
                        Aber ich nutze schon seit längerem ein von mir geschriebenes Script, um die Alexa-History zu loggen und in VIS auszugeben. Also so:
                        log_al.png

                        Falls gewünscht, kann ich das Script gerne veröffentlichen. Gibt einen Datenpunkt, dessen Inhalt dann in VIS als Tabelle ausgegeben wird.

                        NegaleinN Offline
                        NegaleinN Offline
                        Negalein
                        Global Moderator
                        schrieb am zuletzt editiert von Negalein
                        #531

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

                        Aber ich nutze schon seit längerem ein von mir geschriebenes Script, um die Alexa-History zu loggen und in VIS auszugeben.
                        Falls gewünscht, kann ich das Script gerne veröffentlichen. Gibt einen Datenpunkt, dessen Inhalt dann in VIS als Tabelle ausgegeben wird.

                        Cool

                        Ja bitte

                        PS: kannst du mir dann einen Export von obigem Screenshot auch mitgeben?

                        ° Node.js: 20.17.0 NPM: 10.8.2
                        ° Proxmox, Ubuntu 22.04.3 LTS
                        ° Fixer ---> iob fix

                        MicM 1 Antwort Letzte Antwort
                        0
                        • NegaleinN Negalein

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

                          Aber ich nutze schon seit längerem ein von mir geschriebenes Script, um die Alexa-History zu loggen und in VIS auszugeben.
                          Falls gewünscht, kann ich das Script gerne veröffentlichen. Gibt einen Datenpunkt, dessen Inhalt dann in VIS als Tabelle ausgegeben wird.

                          Cool

                          Ja bitte

                          PS: kannst du mir dann einen Export von obigem Screenshot auch mitgeben?

                          MicM Offline
                          MicM Offline
                          Mic
                          Developer
                          schrieb am zuletzt editiert von
                          #532

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

                          Cool

                          Ja bitte

                          Gerne. Siehe hier: https://forum.iobroker.net/topic/30657/vorlage-alexa-history-befehle-in-vis-anzeigen

                          1 Antwort Letzte Antwort
                          2
                          • NegaleinN Offline
                            NegaleinN Offline
                            Negalein
                            Global Moderator
                            schrieb am zuletzt editiert von Negalein
                            #533

                            @Mic

                            Ich schaffe es nicht das Design der Tabelle in mein Projekt zu übernehmen.

                            Das komplette Widget hab ich von deinem Projekt exportiert und bei mir wieder eingefügt.
                            Dann in deinem Projekt das Widget markiert und unter CSS/Global den Code 1:1 in meinem Projekt beim Widget unter CSS/Global eingefügt.

                            Trotzdem sind bei mir die Zeilen anders.

                            EDIT:
                            Kommando retour.
                            Ich hab das falsche CSS kopiert.

                            ° Node.js: 20.17.0 NPM: 10.8.2
                            ° Proxmox, Ubuntu 22.04.3 LTS
                            ° Fixer ---> iob fix

                            1 Antwort Letzte Antwort
                            0
                            • M Offline
                              M Offline
                              mguenther
                              schrieb am zuletzt editiert von
                              #534

                              Ich weiß nicht, ob ich alles richtig verstehe. Wenn ich einen Log-File zu einem Adapter auswerten möchte, dann lege ich im Skript z.B. das an:

                                 {
                                  id:             'Modbus',
                                  filter_all:     [/modbus.0/],
                                  filter_any:     [' - error: ', ' - warn: ',  ' - info: '],  // entweder error oder warn
                                  blacklist:      ['', '', ''],
                                  clean:          ['', '', ''],
                                  merge:          true,
                                  sortDescending: true,
                                  jsonDateFormat: '#DD.MM.# hh:mm',
                                  jsonColumns:    ['date','level','source','msg'],
                                  jsonLogLength:  100,
                                  jsonMaxLines:   100,
                                  jsonCssToLevel: false,
                                },
                              

                              und schreibe das z.B. unter das Beispiel im Skript für homematic. Es werden auch die folgenden Datenpunkte angelegt.
                              c5e1b11b-9ecb-4023-ba7e-c8b2b2c45b6d-grafik.png

                              Jetzt werte ich das in der VIS separat aus, allerdings scheine ich beim Layout anpassen an meine VIS etwas geändert zu haben - ich habe keine farbigen Einträge mehr. Was muss ich denn wo entsprechend ändern?
                              97e798d7-c7bc-483b-9a44-eda8e885d871-grafik.png

                              danke
                              Marcus

                              GlasfaserG 1 Antwort Letzte Antwort
                              0
                              • M mguenther

                                Ich weiß nicht, ob ich alles richtig verstehe. Wenn ich einen Log-File zu einem Adapter auswerten möchte, dann lege ich im Skript z.B. das an:

                                   {
                                    id:             'Modbus',
                                    filter_all:     [/modbus.0/],
                                    filter_any:     [' - error: ', ' - warn: ',  ' - info: '],  // entweder error oder warn
                                    blacklist:      ['', '', ''],
                                    clean:          ['', '', ''],
                                    merge:          true,
                                    sortDescending: true,
                                    jsonDateFormat: '#DD.MM.# hh:mm',
                                    jsonColumns:    ['date','level','source','msg'],
                                    jsonLogLength:  100,
                                    jsonMaxLines:   100,
                                    jsonCssToLevel: false,
                                  },
                                

                                und schreibe das z.B. unter das Beispiel im Skript für homematic. Es werden auch die folgenden Datenpunkte angelegt.
                                c5e1b11b-9ecb-4023-ba7e-c8b2b2c45b6d-grafik.png

                                Jetzt werte ich das in der VIS separat aus, allerdings scheine ich beim Layout anpassen an meine VIS etwas geändert zu haben - ich habe keine farbigen Einträge mehr. Was muss ich denn wo entsprechend ändern?
                                97e798d7-c7bc-483b-9a44-eda8e885d871-grafik.png

                                danke
                                Marcus

                                GlasfaserG Offline
                                GlasfaserG Offline
                                Glasfaser
                                schrieb am zuletzt editiert von Glasfaser
                                #535

                                @mguenther

                                Wenn du von Ihm das View in dein Projekt kopierst , dann mußt du auch die CCS kopieren .

                                CSS:

                                
                                
                                /******************************************
                                               — LINKS —
                                ******************************************/
                                .noteProject a:link { color: #b8b8b8; } /* unvisited link */
                                .noteProject a:visited { color: #b8b8b8; } /* visited link */
                                .noteProject a:hover { color: #ffffff; } /* mouse over link */
                                .pnoteProjecte a:active { color: #ffffff; } /* selected link */
                                hr { border:0; height: 1px; background-color:#b8b8b8 }
                                
                                
                                /******************************************
                                               — TABLE —
                                ******************************************/
                                
                                .tableLog .log-warn { color: orange;}
                                .tableLog .log-error { color: red;}
                                .tableLog .log-info { color: yellow;}
                                
                                
                                /* Word-Break anwenden */
                                .tableLog {
                                   word-break: break-word; 
                                }
                                
                                
                                
                                /* Jede zweite Tabellenzeile formatieren */
                                .tableLog tr:nth-child(even) {
                                   background:rgba(56,46,67,0.1);
                                }
                                
                                /* Rand unterhalb Tabellenüberschrift */
                                .tableLog .mdc-data-table__header-row {
                                   border-bottom: 1px solid #434343;
                                }
                                
                                /* Zeilenhöhe und Abstände */
                                .tableLog .mdc-data-table__cell  {
                                   line-height:1.3em;
                                   padding-top: 6px;
                                   padding-bottom: 6px;
                                }
                                
                                
                                /* Scrollbar */
                                .tableLog::-webkit-scrollbar { width: 15px; }
                                .tableLog::-webkit-scrollbar-track { background: transparent; }
                                .tableLog::-webkit-scrollbar-thumb { background-color: rgba(63,64,71,1); border-radius: 7px; border-color: rgba(63,64,71,1); }
                                .tableLog::-webkit-scrollbar-thumb:hover { background: #8f8f8f; }
                                
                                
                                /******************************************
                                               — BUTTONS —
                                ******************************************/
                                
                                
                                .leftBarBtn .materialdesign-button-body {
                                   justify-content: left !important; 
                                   margin-left: 0.9em;
                                }
                                

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

                                M 1 Antwort Letzte Antwort
                                0
                                • GlasfaserG Glasfaser

                                  @mguenther

                                  Wenn du von Ihm das View in dein Projekt kopierst , dann mußt du auch die CCS kopieren .

                                  CSS:

                                  
                                  
                                  /******************************************
                                                 — LINKS —
                                  ******************************************/
                                  .noteProject a:link { color: #b8b8b8; } /* unvisited link */
                                  .noteProject a:visited { color: #b8b8b8; } /* visited link */
                                  .noteProject a:hover { color: #ffffff; } /* mouse over link */
                                  .pnoteProjecte a:active { color: #ffffff; } /* selected link */
                                  hr { border:0; height: 1px; background-color:#b8b8b8 }
                                  
                                  
                                  /******************************************
                                                 — TABLE —
                                  ******************************************/
                                  
                                  .tableLog .log-warn { color: orange;}
                                  .tableLog .log-error { color: red;}
                                  .tableLog .log-info { color: yellow;}
                                  
                                  
                                  /* Word-Break anwenden */
                                  .tableLog {
                                     word-break: break-word; 
                                  }
                                  
                                  
                                  
                                  /* Jede zweite Tabellenzeile formatieren */
                                  .tableLog tr:nth-child(even) {
                                     background:rgba(56,46,67,0.1);
                                  }
                                  
                                  /* Rand unterhalb Tabellenüberschrift */
                                  .tableLog .mdc-data-table__header-row {
                                     border-bottom: 1px solid #434343;
                                  }
                                  
                                  /* Zeilenhöhe und Abstände */
                                  .tableLog .mdc-data-table__cell  {
                                     line-height:1.3em;
                                     padding-top: 6px;
                                     padding-bottom: 6px;
                                  }
                                  
                                  
                                  /* Scrollbar */
                                  .tableLog::-webkit-scrollbar { width: 15px; }
                                  .tableLog::-webkit-scrollbar-track { background: transparent; }
                                  .tableLog::-webkit-scrollbar-thumb { background-color: rgba(63,64,71,1); border-radius: 7px; border-color: rgba(63,64,71,1); }
                                  .tableLog::-webkit-scrollbar-thumb:hover { background: #8f8f8f; }
                                  
                                  
                                  /******************************************
                                                 — BUTTONS —
                                  ******************************************/
                                  
                                  
                                  .leftBarBtn .materialdesign-button-body {
                                     justify-content: left !important; 
                                     margin-left: 0.9em;
                                  }
                                  

                                  M Offline
                                  M Offline
                                  mguenther
                                  schrieb am zuletzt editiert von
                                  #536

                                  @Glasfaser
                                  das hatte ich gesucht... ich bin blöd, bei mir stand die ganze Zeit CSS auf global und deswegen hatte ich es nicht gesehen
                                  danke

                                  1 Antwort Letzte Antwort
                                  0
                                  • MicM Offline
                                    MicM Offline
                                    Mic
                                    Developer
                                    schrieb am zuletzt editiert von Mic
                                    #537

                                    Update: Script-Version 4.10

                                    Die neue Log-Script Version 4.10 erlaubt es nun, über Logs, die abgegeben werden (z.B. über Funktion log() in JavaScript oder Blockly) die Inhalte zu manipulieren. Da das Log-Script umfangreiche Filter bietet, von denen beliebig viele angelegt werden können und dann in Datenpunkten verfügbar sind, können mit dieser Funktion einfach per log() entsprechend Tabellen gefüllt werden.

                                    Hier im Link weitere Infos zur Verwendung.

                                    Beispiel:

                                    Folgendes Script erzeugt eine Log-Zeile, sobald ein Befehl an ein Alexa-Gerät gesprochen wird.
                                    Github: alexa-log-script.js

                                    So sieht dann das Log dieses Scripts in etwa aus:
                                    javascript.0 (12345) script.js.Alexa: [Alexa-Log-Script] ##{"msg":"Licht An", "source":"Sonos Küche"}##

                                    Anzeige im VIS durch diese neue Funktion des Log-Scripts:
                                    xsagh.png

                                    Wie zu sehen wird damit "Quelle" (wäre hier normalerweise "javascript.0") durch das Alexa-Gerät (hier: Sonos Küche) ersetzt. Außerdem wird die Message durch den gesprochenen Befehl (hier: "Licht An") ersetzt.
                                    Genauso können auch noch das Datum ("date") und das Log-Level ("level") ersetzt werden.

                                    Für dieses Script-Beispiel einfach folgenden Filter setzen:

                                      {
                                        id:             'alexa',
                                        filter_all:     ['[Alexa-Log-Script]', ''],
                                        filter_any:     [' - info: '],
                                        blacklist:      ['', '', ''],
                                        clean:          [/script\.js\.[^:]*: \[Alexa-Log-Script]/, '', ''],
                                        merge:          false,
                                        sortDescending: true,
                                        jsonDateFormat: '#DD.MM.# hh:mm',
                                        jsonColumns:    ['date','level','source','msg'],
                                        jsonLogLength:  100,
                                        jsonMaxLines:   50,
                                        jsonCssToLevel: true,
                                      },
                                    

                                    Genau so können auch mehrere Filter für verschiedene Alexa-Geräte angelegt werden.
                                    Dazu einfach unter filter_all ein bestimmtes Alexa-Gerät, z.B. "Show 5 Küche" hinzufügen.

                                    Update von Vorversion
                                    Einfach alles unterhalb von hier ersetzen:

                                    /********************************************************
                                     * Ab hier nichts mehr ändern / Stop editing here!
                                     ********************************************************/
                                    
                                    GlasfaserG NegaleinN 2 Antworten Letzte Antwort
                                    1
                                    • MicM Mic

                                      Update: Script-Version 4.10

                                      Die neue Log-Script Version 4.10 erlaubt es nun, über Logs, die abgegeben werden (z.B. über Funktion log() in JavaScript oder Blockly) die Inhalte zu manipulieren. Da das Log-Script umfangreiche Filter bietet, von denen beliebig viele angelegt werden können und dann in Datenpunkten verfügbar sind, können mit dieser Funktion einfach per log() entsprechend Tabellen gefüllt werden.

                                      Hier im Link weitere Infos zur Verwendung.

                                      Beispiel:

                                      Folgendes Script erzeugt eine Log-Zeile, sobald ein Befehl an ein Alexa-Gerät gesprochen wird.
                                      Github: alexa-log-script.js

                                      So sieht dann das Log dieses Scripts in etwa aus:
                                      javascript.0 (12345) script.js.Alexa: [Alexa-Log-Script] ##{"msg":"Licht An", "source":"Sonos Küche"}##

                                      Anzeige im VIS durch diese neue Funktion des Log-Scripts:
                                      xsagh.png

                                      Wie zu sehen wird damit "Quelle" (wäre hier normalerweise "javascript.0") durch das Alexa-Gerät (hier: Sonos Küche) ersetzt. Außerdem wird die Message durch den gesprochenen Befehl (hier: "Licht An") ersetzt.
                                      Genauso können auch noch das Datum ("date") und das Log-Level ("level") ersetzt werden.

                                      Für dieses Script-Beispiel einfach folgenden Filter setzen:

                                        {
                                          id:             'alexa',
                                          filter_all:     ['[Alexa-Log-Script]', ''],
                                          filter_any:     [' - info: '],
                                          blacklist:      ['', '', ''],
                                          clean:          [/script\.js\.[^:]*: \[Alexa-Log-Script]/, '', ''],
                                          merge:          false,
                                          sortDescending: true,
                                          jsonDateFormat: '#DD.MM.# hh:mm',
                                          jsonColumns:    ['date','level','source','msg'],
                                          jsonLogLength:  100,
                                          jsonMaxLines:   50,
                                          jsonCssToLevel: true,
                                        },
                                      

                                      Genau so können auch mehrere Filter für verschiedene Alexa-Geräte angelegt werden.
                                      Dazu einfach unter filter_all ein bestimmtes Alexa-Gerät, z.B. "Show 5 Küche" hinzufügen.

                                      Update von Vorversion
                                      Einfach alles unterhalb von hier ersetzen:

                                      /********************************************************
                                       * Ab hier nichts mehr ändern / Stop editing here!
                                       ********************************************************/
                                      
                                      GlasfaserG Offline
                                      GlasfaserG Offline
                                      Glasfaser
                                      schrieb am zuletzt editiert von Glasfaser
                                      #538

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

                                      Beispiel:
                                      Folgendes Script erzeugt eine Log-Zeile, sobald ein Befehl an ein Alexa-Gerät gesprochen wird.

                                      Ich würde das Skript noch auf Github legen , sonst geht es hier unter !?

                                      EDIT: und das Filterbeispiel ...

                                      @Negalein .... da hat Mic was tolles für Dich gemacht ;)

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

                                      NegaleinN MicM 2 Antworten Letzte Antwort
                                      1
                                      • GlasfaserG Glasfaser

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

                                        Beispiel:
                                        Folgendes Script erzeugt eine Log-Zeile, sobald ein Befehl an ein Alexa-Gerät gesprochen wird.

                                        Ich würde das Skript noch auf Github legen , sonst geht es hier unter !?

                                        EDIT: und das Filterbeispiel ...

                                        @Negalein .... da hat Mic was tolles für Dich gemacht ;)

                                        NegaleinN Offline
                                        NegaleinN Offline
                                        Negalein
                                        Global Moderator
                                        schrieb am zuletzt editiert von
                                        #539

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

                                        da hat Mic was tolles für Dich gemacht

                                        Ja, definitiv!
                                        Schon geil, was @Mic da für Zauberhände hat.

                                        ° Node.js: 20.17.0 NPM: 10.8.2
                                        ° Proxmox, Ubuntu 22.04.3 LTS
                                        ° Fixer ---> iob fix

                                        1 Antwort Letzte Antwort
                                        1
                                        • NegaleinN Offline
                                          NegaleinN Offline
                                          Negalein
                                          Global Moderator
                                          schrieb am zuletzt editiert von
                                          #540

                                          @Mic

                                          Ich bekomm folgenden Error und das Log-Script geht auf Pause (Gelb).

                                          javascript.0	2020-03-01 20:31:44.477	error	(591) at Script.runInContext (vm.js:133:20)
                                          javascript.0	2020-03-01 20:31:44.477	error	(591) at script.js.System.IOBroker_Log:285:21
                                          javascript.0	2020-03-01 20:31:44.476	error	(591) SyntaxError: Invalid regular expression: /script\.js\.[^:]*: [Alexa-Log-Script]/: Range out of order in character class
                                          javascript.0	2020-03-01 20:31:44.476	error	(591) ^
                                          javascript.0	2020-03-01 20:31:44.476	error	(591) clean: [/script\.js\.[^:]*: [Alexa-Log-Script]/, '', ''],
                                          javascript.0	2020-03-01 20:31:44.475	error	(591) script.js.System.IOBroker_Log: script.js.System.IOBroker_Log:285
                                          

                                          /******************************************************************************************************
                                           * History der Alexa-Sprachbefehle in VIS darstellen.
                                           * Erfordert das Log-Script: https://github.com/Mic-M/iobroker.logfile-script
                                           ******************************************************************************************************/
                                          
                                          // Normalerweise wird die "summary", also der Befehl an Alexa, in Kleinbuchstaben zurückgegeben, also 
                                          // z.B. "flurlicht einschalten". Wenn diese Option auf "true" ist, wird die Ausgabe zu 
                                          // "Flurlicht Einschalten", also jeweils erster Buchstabe groß. 
                                          // Falls nicht gewünscht, auf "false" setzen.
                                          const CAPITALIZE_FIRSTS = true;
                                          
                                          /*************************************************************************************************************************
                                           * Ab hier nichts mehr ändern / Stop editing here!
                                           *************************************************************************************************************************/
                                          
                                          main();
                                          function main() {
                                              // All instances, so alexa2.0.History.json, alexa2.1.History.json, alexa2.2.History.json, etc.
                                              on({id: /^alexa2\.\d\.History\.json$/, change:'any'}, function(obj) {
                                          
                                                  // obj.state.val: JSON string of oject.
                                                  // Like: {"name":"Alexa Flur","serialNumber":"xxxxxxxxxx","summary":"Wohnlicht an","creationTime":1582843794820, ... }
                                                  let objHistory = JSON.parse(obj.state.val); 
                                          
                                                  // ignore alexa keywords or empty value.
                                                  if(! (['', 'alexa','echo','computer'].includes(objHistory['summary']) )) {
                                                      // ignore "sprich mir nach"
                                                      if (!(objHistory['summary'].includes('sprich mir nach '))) {
                                                          log('[Alexa-Log-Script] ##{"msg":"' + formatAlexaSummary(objHistory['summary']) + '", "source":"' + objHistory['name'] + '"}##');
                                                      }
                                                  }
                                              });
                                          }
                                          
                                          /**
                                           * Formats the Alexa summary text accordingly.
                                           * @param {string} summaryText   The summary text
                                           * @return {string} the formatted summary
                                           */
                                          function formatAlexaSummary(summaryText) {
                                              if (CAPITALIZE_FIRSTS) summaryText = summaryText.replace(/(^|\s)\S/g, l => l.toUpperCase()); // Capitalize if set. https://stackoverflow.com/questions/2332811/
                                              return summaryText;
                                          }
                                          


                                          Log-Script.txt

                                          ° Node.js: 20.17.0 NPM: 10.8.2
                                          ° Proxmox, Ubuntu 22.04.3 LTS
                                          ° Fixer ---> iob fix

                                          MicM 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

                                          754

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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