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

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

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

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

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

Scheduled Pinned Locked Moved JavaScript
617 Posts 60 Posters 151.7k 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.
  • MicM Offline
    MicM Offline
    Mic
    Developer
    wrote on last edited by
    #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 Reply Last reply
    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
      wrote on last edited by 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 ☺

      1 Reply Last reply
      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 👍

        Haha.
        Danke 😊

        @ 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
        wrote on last edited by
        #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 Reply Last reply
        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
          wrote on last edited by 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 Reply Last reply
          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
            wrote on last edited by
            #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 Reply Last reply
            2
            • NegaleinN Offline
              NegaleinN Offline
              Negalein
              Global Moderator
              wrote on last edited by 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 Reply Last reply
              0
              • M Offline
                M Offline
                mguenther
                wrote on last edited by
                #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 Reply Last reply
                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
                  wrote on last edited by 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 Reply Last reply
                  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
                    wrote on last edited by
                    #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 Reply Last reply
                    0
                    • MicM Offline
                      MicM Offline
                      Mic
                      Developer
                      wrote on last edited by 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 Replies Last reply
                      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
                        wrote on last edited by 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 Replies Last reply
                        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
                          wrote on last edited by
                          #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 Reply Last reply
                          1
                          • NegaleinN Offline
                            NegaleinN Offline
                            Negalein
                            Global Moderator
                            wrote on last edited by
                            #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 Reply Last reply
                            0
                            • 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 😉

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

                              @Glasfaser
                              @Negalein
                              Vielen Dank für euer Feedback 😊

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

                              Ich würde das Skript noch auf Github legen

                              Guter Hinweis, erledigt (da ist auch das Filterbeispiel drin): https://github.com/Mic-M/iobroker.logfile-script/blob/master/alexa/alexa-log-script.js

                              sigi234S GlasfaserG 2 Replies Last reply
                              0
                              • MicM Mic

                                @Glasfaser
                                @Negalein
                                Vielen Dank für euer Feedback 😊

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

                                Ich würde das Skript noch auf Github legen

                                Guter Hinweis, erledigt (da ist auch das Filterbeispiel drin): https://github.com/Mic-M/iobroker.logfile-script/blob/master/alexa/alexa-log-script.js

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

                                @Mic

                                Hm, ist das jetzt ein eigenes Skript?

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

                                NegaleinN 1 Reply Last reply
                                0
                                • sigi234S sigi234

                                  @Mic

                                  Hm, ist das jetzt ein eigenes Skript?

                                  NegaleinN Offline
                                  NegaleinN Offline
                                  Negalein
                                  Global Moderator
                                  wrote on last edited by
                                  #543

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

                                  Hm, ist das jetzt ein eigenes Skript?

                                  das kurze Script wird benötigt, um mit den neuen Log-Script die Alexa-History auszulesen.

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

                                  1 Reply Last reply
                                  0
                                  • NegaleinN Negalein

                                    @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

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

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

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

                                    Leider stellt das Forum hier Regex in Codes nicht korrekt dar, bitte kopiere den Filter noch mal von hier:
                                    https://github.com/Mic-M/iobroker.logfile-script/blob/master/alexa/alexa-log-script.js
                                    (Zeile: "clean:" ersetzen reicht)

                                    sigi234S 1 Reply Last reply
                                    0
                                    • MicM Mic

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

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

                                      Leider stellt das Forum hier Regex in Codes nicht korrekt dar, bitte kopiere den Filter noch mal von hier:
                                      https://github.com/Mic-M/iobroker.logfile-script/blob/master/alexa/alexa-log-script.js
                                      (Zeile: "clean:" ersetzen reicht)

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

                                      @Mic

                                      Muss ich das was ändern und es in das Große Skript kopieren?

                                      Screenshot (1883).png

                                      Gecheckt!

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

                                      MicM NegaleinN 2 Replies Last reply
                                      0
                                      • sigi234S sigi234

                                        @Mic

                                        Muss ich das was ändern und es in das Große Skript kopieren?

                                        Screenshot (1883).png

                                        Gecheckt!

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

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

                                        Muss ich das was ändern und es in das Große Skript kopieren?

                                        Nein, sieht gut aus. Ist ein separates Script nur für Alexa.

                                        1 Reply Last reply
                                        0
                                        • sigi234S sigi234

                                          @Mic

                                          Muss ich das was ändern und es in das Große Skript kopieren?

                                          Screenshot (1883).png

                                          Gecheckt!

                                          NegaleinN Offline
                                          NegaleinN Offline
                                          Negalein
                                          Global Moderator
                                          wrote on last edited by
                                          #547

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

                                          Muss ich das was ändern

                                          Nein

                                          und es in das Große Skript kopieren

                                          Zeile 18 bis 30 ins Log-Script

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

                                          1 Reply Last reply
                                          1
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          587

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          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