NEWS
[Vorlage] JS: Log-Datei aufbereiten für VIS
-
@Mic Vielen Dank für die Erläuterung!
-
Ich habe die JavaScript 4.3.4 seit Freitag Abend laufen ohne Probleme. Auch das Auslesen des Logs funktioniert nun.
Danke für eure Hilfe. -
Hallo zusammen,
bin nicht ganz neu, aber mit dem Script tue ich mich doch etwas schwer und benötige Hilfe.
Habe den ioBroker auf Windows 10 laufen und habe das iobroker.logfile-script auf meinem Rechner kopiert und installiert. Beim starten kommt aber folgende Fehlermeldung:13:12:30.786 error javascript.0 (9896) script.js.common.LogScript: script.js.common.LogScript:379 13:12:30.787 error javascript.0 (9896) at init (script.js.common.LogScript:379:5) 13:12:30.787 error javascript.0 (9896) at script.js.common.LogScript:372:1
Kann mir jemand sagen, was da verkehrt ist?
Somit werden zwar Datenpunkte gesetzt, aber keine Inhalte.
Ist es Möglich das der Fehler daher kommt, das er die Logfiles nicht findet?
Habe folgenden Eintrag gemacht:Danke...
-
@Andreas_Stefan
Fehler gefunden...
Javascript/Blockly Skriptausführung für ioBroker auf 4.3.4 aktualisiert.
Dann funktioniert es auch. -
@Mic
Vielen Dank für das Script.Gibt es eine Möglichkeit, die Datenpunkte nicht im Javacript.0 Verzeichniss sondern in einem Eigenem abzulegen?
Ich bin mit JSON Tabellen noch nicht ganz fit, kann ich die Spatenbreiten irgendwie vorgeben? -
@M-Siemens
Danke für dein Feedback, sehr gerne.Zu 1) ioBroker erlaubt es nicht, Datenpunkte vom JavaScript-Adapter außerhalb von
javascript.<Instanz-Nr.>.
abzulegen. Wenn du zentral die Datenpunkte brauchst, wäre vielleicht dieser Adapter für dich interessant. Ich weiß allerdings nicht, ob das mit den Datenpunkten meines Scripts funktionert.Zu 2) Ja, indem du in VIS im Widget "basic - Table" unter "Kolumnanzahl" die Anzahl der Spalten einträgst, also z.B. 4. Dann erscheint darunter ein Menü mit "Headers[x]". Dort gibst du dann unter "Width[x]" die jeweilige Spaltenbreite ein, z.B. "150px".
Für weitere Fragen zur Formatierung zu JSON-Tabellen: bitte am besten neuen Thread aufmachen hier. -
@Mic das mit den Spaltenbreiten klappt
zu den Datenpunkten, ich leg selber mit folgendem Code Datenpunkte an, die auch Global sind
setObject('Test.0.test', { type: 'state', common: { read : true, write : true, name: 'Test', type: 'number', role: '' }, native: {} });
würde sowas bei dir nicht auch gehen?
-
@M-Siemens
Ist meines Wissens offiziell nicht von ioBroker vorgesehen, da alle Datenpunkte durch den JavaScript-Adapter der lieben Ordnung halber unter javascript.x... erstellt werden sollen.
Du kannst aber gerne versuchen, folgendes in den Script-Einstellungen anpassen, um zu versuchen, ob es geht:// Pfad, unter dem die States (Datenpunkte) in den Objekten angelegt werden. // Kann man so bestehen lassen. const LOG_STATE_PATH = 'javascript.'+ instance + '.' + 'Log-Script';
Z.B. in (ungetestet):
// Pfad, unter dem die States (Datenpunkte) in den Objekten angelegt werden. // Kann man so bestehen lassen. const LOG_STATE_PATH = 'Test.0.test.Log-Script';
Weiß aber nicht, ob das die JavaScript-Funktionen createState() etc. unterstützen.
-
Muss man den Pfad zu den Scripten, die Logeinträge genrieren immer über den Filter entfernen, damit sie nicht mit aufgelistet werden ?
Beispiel:
Eintrag im ioBroker Log: "+++ Das ist ein test +++"
Eintrag in Tabelle des Sripts: "script.js.java.smarthome.test1: +++ Das ist ein Test +++" -
@Mic sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
@M-Siemens
Ist meines Wissens offiziell nicht von ioBroker vorgesehen, da alle Datenpunkte durch den JavaScript-Adapter der lieben Ordnung halber unter javascript.x... erstellt werden sollen.
Du kannst aber gerne versuchen, folgendes in den Script-Einstellungen anpassen, um zu versuchen, ob es geht:// Pfad, unter dem die States (Datenpunkte) in den Objekten angelegt werden. // Kann man so bestehen lassen. const LOG_STATE_PATH = 'javascript.'+ instance + '.' + 'Log-Script';
Z.B. in (ungetestet):
// Pfad, unter dem die States (Datenpunkte) in den Objekten angelegt werden. // Kann man so bestehen lassen. const LOG_STATE_PATH = 'Test.0.test.Log-Script';
Weiß aber nicht, ob das die JavaScript-Funktionen createState() etc. unterstützen.
Hierzu ne Frage.
Bei mir gibts ganz oben in den Objekten den Ordner:dieser wurde vom System angelegt. hier habe ich bis jetzt alle meine Datenpunkte erstellt.
in JavaScript habe ich bis jetzt noch nichts erstellt.
Sollte ich das dann liebe rin Javascript machen oder weiterhin in dem oben gezeigten Ordner?Danke Dir!
-
@Kuddel said in [Vorlage] JS: Log-Datei aufbereiten für VIS:
Muss man den Pfad zu den Scripten, die Logeinträge genrieren immer über den Filter entfernen, damit sie nicht mit aufgelistet werden ?
Beispiel:
Eintrag im ioBroker Log: "+++ Das ist ein test +++"
Eintrag in Tabelle des Sripts: "script.js.java.smarthome.test1: +++ Das ist ein Test +++"Hast du hier schon eine Lösung?
Würde das auch gerne so machen.
Das wäre gut ,wenn es klappen würde.
Da ich die Meldungen so aufgebaut habe -
@Knallix als Workaround habe ich alles hinterlegt, was abgeschnitten werden soll
-
@Kuddel said in [Vorlage] JS: Log-Datei aufbereiten für VIS:
@Knallix als Workaround habe ich alles hinterlegt, was abgeschnitten werden soll
Also alles in den Filter knallen
-
@Alex-0 sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
Hierzu ne Frage.
Bei mir gibts ganz oben in den Objekten den Ordner:dieser wurde vom System angelegt. hier habe ich bis jetzt alle meine Datenpunkte erstellt.
in JavaScript habe ich bis jetzt noch nichts erstellt.
Sollte ich das dann liebe rin Javascript machen oder weiterhin in dem oben gezeigten Ordner?Danke Dir!
Ich muss meine obigen Aussagen teils korrigieren
Derzeit erlaubt es der JavaScript-Adapter noch nicht, States unterhalb von0_userdata.0
per offizieller ioBroker-Funktion anzulegen.
Aber es geht hiermit: [Vorlage] Skript: Erstellen von User-DatenpunktenIch habe angefangen, nun all meine Scripte auf
0_userdata.0
umzustellen, aber das dauert noch
Bis dahin bitte so belassen wie im Log-Script vorgesehen. -
@Mic said in [Vorlage] JS: Log-Datei aufbereiten für VIS:
0_userdata.0
Welche Vorteile bringt mir das, wenn alles auf 0_userdata.0 umgestellt wird ?
-
@Kuddel, @Knallix
@Knallix sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:@Kuddel said in [Vorlage] JS: Log-Datei aufbereiten für VIS:
@Knallix als Workaround habe ich alles hinterlegt, was abgeschnitten werden soll
Also alles in den Filter knallen
Jepp, dafür ist die Filter-Option "clean" gedacht . Beispiel:
{ id: 'Bierkühlschrank', filter_all: ['[Bierkühlschrank]', ''], filter_any: ['', ''], blacklist: ['', '', ''], clean: ['script.js.Bierkühlschrank: [Bierkühlschrank]', '', ''], columns: ['date','msg'], merge: false, },
-
@Knallix sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
@Mic said in [Vorlage] JS: Log-Datei aufbereiten für VIS:
0_userdata.0
Welche Vorteile bringt mir das, wenn alles auf 0_userdata.0 umgestellt wird ?
Siehe HIER.
Erster Treffer: https://forum.iobroker.net/topic/26389/0_userdata-0-müssen-eigene-daten-dort-liegen
-
@Mic sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
Welche Vorteile bringt mir das, wenn alles auf 0_userdata.0 umgestellt wird ?
Einfach gesagt, um zu verhindern das jemand im Root des Objektesbaumes direkt Objekte anlegt (z.B. MeineDatenpunkte.0). Grundsätzlich ist das kein Problem, wenn aber Morgen ein Adapter erscheint der genau diese Struktur verwendet wird es nicht gut ausgehen Liegen deine Punkte heute aber schon unter javascript.0 können Sie dort auch bleiben - das ist dann reine Geschmacksache.
-
@darkiop sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
@Mic sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
Welche Vorteile bringt mir das, wenn alles auf 0_userdata.0 umgestellt wird ?
Einfach gesagt, um zu verhindern das jemand im Root des Objektesbaumes direkt Objekte anlegt (z.B. MeineDatenpunkte.0). Grundsätzlich ist das kein Problem, wenn aber Morgen ein Adapter erscheint der genau diese Struktur verwendet wird es nicht gut ausgehen Liegen deine Punkte heute aber schon unter javascript.0 können Sie dort auch bleiben - das ist dann reine Geschmacksache.
@Mic , @Knallix
danke für eure Antworten
ok so wie ich das jetzt verstanden habe und gelernt habe ist es sicherer die eigenen Datenobjekte unser 0_Userdata zu erstellen.
Jeder Adapter hat seine eigene Root und Struktur, wenn ich den deinstalliere oder aus irgendeinem Grund Änderungen gemacht werden, wären eigene Datenpunkte innerhalb diese Adapters auch betroffen, bzw. werden gelöscht.
Das gilt natürlich dann auch für den Javascript Adapter.
Lösche ich den Adapter aus irgendeinem Grund, z.B. Reparatur o.ä. wären meine Daten auch futsch.
Das würde eben für die .0_Userdata sprechen.
Also das ist ja kein Custom Ordner von mir, der wurde bei der Installation von Javascript mit ausgeliefert, somit hat der schon seinen Zweck und gehe davon aus, das kein anderer Adapter dieses Verzeichnis nutzt. -
@Alex-0 said in [Vorlage] JS: Log-Datei aufbereiten für VIS:
Das würde eben für die .0_Userdata sprechen.
Der ist mir bis jetzt nie aufgefallen, dass er da ist
Habe hier auch alles unter Javascript. Dein Einwand finde ich aber nachvollziehbar.
Habe allerdings alle GlobalenVar über ein Script angelegt. Dieses müsste ich dann einfach nur ausführen und die Struktur wäre wieder da.