All Projects → Mic-M → iobroker-logfile-script

Mic-M / iobroker-logfile-script

Licence: MIT license
Parses log file, applies filters, and sets states for visualization

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to iobroker-logfile-script

ioBroker.vis-materialdesign
ioBroker Material Design Widgets are based on Google's material design guidelines. The adapter uses different libraries.
Stars: ✭ 56 (+229.41%)
Mutual labels:  iobroker, iobroker-vis
ioBroker.vis-metro
ioBroker.vis metro widget set
Stars: ✭ 12 (-29.41%)
Mutual labels:  iobroker, iobroker-vis
ioBroker.mihome-vacuum
Control your Xiaomi vacuum cleaner
Stars: ✭ 96 (+464.71%)
Mutual labels:  iobroker
ioBroker.repositories
Repositories for ioBroker project
Stars: ✭ 55 (+223.53%)
Mutual labels:  iobroker
ioBroker.sonoff
Control Sonoff-Tasmota devices via ioBroker
Stars: ✭ 34 (+100%)
Mutual labels:  iobroker
ioBroker.hm-rega
Connects HomeMatic CCU "Logic Layer" ("ReGaHSS") to ioBroker
Stars: ✭ 36 (+111.76%)
Mutual labels:  iobroker
ioBroker.ecovacs-deebot
Control your Ecovacs Deebot vacuum cleaner with ioBroker
Stars: ✭ 36 (+111.76%)
Mutual labels:  iobroker
ioBroker.openhab
Connect ioBroker with openHAB
Stars: ✭ 13 (-23.53%)
Mutual labels:  iobroker
ioBroker.jarvis
jarvis - just another remarkable vis
Stars: ✭ 129 (+658.82%)
Mutual labels:  iobroker
klf-200-api
This module provides a wrapper to the REST API of a KLF-200 interface. Supporting the new API with firmware version 0.2.0.0.71 is in progress.
Stars: ✭ 29 (+70.59%)
Mutual labels:  iobroker
ioBroker.beckhoff
ioBroker Adapter to Communicate with Beckhoff Automation System over ADS
Stars: ✭ 14 (-17.65%)
Mutual labels:  iobroker
ioBroker.vis-inventwo
Individualisierbare VIS Widgets für den ioBroker
Stars: ✭ 38 (+123.53%)
Mutual labels:  iobroker
ioBroker.gardena
An ioBroker adapter for Gardena Smart System.
Stars: ✭ 12 (-29.41%)
Mutual labels:  iobroker
ioBroker.knx
connect KNX via eibd
Stars: ✭ 46 (+170.59%)
Mutual labels:  iobroker
ioBroker.google-sharedlocations
An ioBroker-adapter for retrieving shared locations from Google
Stars: ✭ 58 (+241.18%)
Mutual labels:  iobroker
ioBroker.flot
Charts for ioBroker with flot
Stars: ✭ 19 (+11.76%)
Mutual labels:  iobroker
ioBroker.homepilot20
Rademacher Homepilot 2.0 (version >= 5.0.39)
Stars: ✭ 19 (+11.76%)
Mutual labels:  iobroker
ioBroker.scenes
Group states to scenes and control them.
Stars: ✭ 26 (+52.94%)
Mutual labels:  iobroker
ioBroker.tuya
ioBroker adapter to connect to several small and cheap Wifi devices that care connected to the Tuya Cloud and mostly use the Smartlife App/Alexa-Skill
Stars: ✭ 64 (+276.47%)
Mutual labels:  iobroker
LogoRRR
A log viewer which visualises log events such that it is easy to identify problems or events of interest. This app was implemented using Scala and JavaFX, GluonHQ toolchain and GraalVM as platform.
Stars: ✭ 40 (+135.29%)
Mutual labels:  logfile

ioBroker-Log-Script

Wichtiger Hinweis (10.04.2020)

Ich habe das Script in einen Adapter umgewandelt: Adapter Log Parser. Daher wird die Entwicklung dieses Scripts nicht mehr fortgeführt!


Inhalt

Table of contents generated with markdown-toc

1. Sinn und Zweck

Der ioBroker loggt alle Aktionen der Adapter und Scripte entsprechend mit, einzusehen in der ioBroker-Administration, linke Seite Menüpunkt "Log". Dieses Script bietet nun folgendes:

  • Log im VIS darstellen: Entsprechend gefiltert, also etwa nur Warnungen und Fehler, nur Ausgaben eines bestimmten Adapters, usw.
  • Auf Log-Ereignisse agieren

Dabei nimmt das Script jeden neuen Logeintrag des ioBrokers und wendet entsprechend gesetzte Filter an, um den Eintrag dann in den entsprechenden Datenpunkten dieses Scripts abzulegen. Es stehen auch JSON-Datenpunkte zur Verfügung, mit diesen kann im vis eine Tabelle ausgegeben werden (z.B. über das Widget 'basic - Table').

2. Installation und Einrichtung

2.1 Wichtig - Voraussetzungen

  1. In der Instanz des JavaScript-Adapters die Option Erlaube das Kommando "setObject" aktivieren. Dies ist notwendig, damit die Datenpunkte unterhalb von 0_userdata.0 angelegt werden mittels Script github.com/Mic-M/iobroker.createUserStates. Wer das nicht möchte:

  2. Falls Datenpunkte unterhalb 0_userdata.0 (und nicht unterhalb von javascript.0) angelegt werden sollen: In der Instanz des JavaScript-Adapters die Option Erlaube das Kommando "setObject" aktivieren. Siehe auch: https://github.com/Mic-M/iobroker.createUserStates

2.2 Script in ioBroker hinzufügen

  1. Script-Code öffnen.
  2. Alles kopieren (Strg + a)
  3. Zur ioBroker-Administration wechseln und dort im linken Menü "Skripte" auswählen.
  4. Mit dem "+"-Menüpunkt ein neues Script hinzufügen, dann "Javascript" auswählen, und einen Namen vergeben (z.B. "Log-Script") und speichern.
  5. Dieses neue Script öffnen (ist jetzt natürlich noch leer), den zuvor kopierten Code mit Strg+v einfügen und Speichern.

Wichtig: Das Script nicht unterhalb des Ordners "Global" erstellen. Das ist unnötig und kostet Performance. Siehe auch: global-functions

2.3 Optionen im Script anpassen

Das neue Script nun öffnen und gemäß den Angaben im Script bei Bedarf entsprechend einrichten. Speichern nicht vergessen. Es funktioniert auch so ohne Änderungen und es werden schon mal Datenpunkte angelegt. Weiter einstellen kann man dann auch später.

2.4 Script aktivieren

Das Script nun aktivieren. Damit werden nach wenigen Sekunden alle Datenpunkte angelegt und das Script überwacht nun ab sofort das ioBroker-Log.

3. Log-Ausgaben im VIS darstellen

Hierzu habe ich ein Beispiel-Projekt erstellt: VIS-Project-Log-Script.zip Diese zip-Datei herunterladen, und in VIS im Menü Setup > Projekt-Export/Import > Import aufrufen, um dort das Projekt zu importieren. Siehe auch im ioBroker-Forum.

Voraussetzungen

  1. Die Widgets ioBroker Material Design Widgets werden benötigt
  2. Falls im Script in den Optionen unter LOG_STATE_PATH = '0_userdata.0.Log-Script' ein anderer Pfad eingestellt wurde, dann am besten in der zip die Datei vis-views.json in einem Editor öffnen und über Suchen/Ersetzen euren Pfad entsprechend setzen. Danach speichern und sicherstellen, dass die zip-Datei aktualisiert wurde.

4. Auf Log-Ereignisse reagieren

Um sich etwa bei einer bestimmten Log-Meldung eine Telegram-Nachricht zu senden, gibt es die ioBroker-Funktion onLog(). Alternativ kann man per JavaScript oder Blockly die entsprechenden Filter-Datenpunkte des Scripts (z.B. 0_userdata.0.Log-Script.logError.log überwachen und dann bei einer entsprechenden Log-Meldung über dieses erzeugte JavaScript / Blockly agieren.

5. Neues Feature ab 4.10: Per Log JSON-Spalteninhalte ändern

Ab Script-Version 4.10 gibt es die Möglichkeit, über JavaScript, Blockly, etc. Logs abzusetzen und dabei zu beeinflussen, welcher Inhalt in die Spalten 'date','level','source','msg' gesetzt wird.

Beispiel: Folgender Befehl wird in einem JavaScript ausgeführt:

log('[Alexa-Log-Script] ##{"msg":"' + 'Befehl [Musik an].' + '", "source":"' + 'Alexa Flur' + '"}##');

Damit wird nun der Teil ##{"msg":"' + 'Befehl [Musik an].' + '", "source":"' + 'Alexa Flur' + '"}## genommen, als Log-Text 'Befehl [Musik an].' (anstatt der Logzeile) angezeigt, und als Quelle wird 'Alexa Flur' (anstatt javascript.0) angezeigt.

Syntax: In die Logzeile folgendes aufnehmen: ##{"date":"", "level":"", "source":"", "msg":""}## Dabei können einzelne Werte entfernt werden, also z.B. nur um den Logtext (msg) zu ändern, nimmt man ##{"msg":"hier der Text."}##

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

Beispiele: Siehe hier im Forum.

6. Weiteres

Support

Support erhaltet ihr hier im ioBroker Forum: Log-Datei aufbereiten für VIS - JavaScript.

Changelog

Siehe im Script.

Lizenz

MIT License

Copyright (c) 2018-2020 Mic-M

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].