NEWS
[Skript] Wiederherstellen und Auflisten von Skripten
-
@sigi234 jein, die Archiv Entpackroutinen sind (noch!!??) auf Linux ausgelegt. Wenn Du aber die entsprechende Datei entpackst und nach inputPath kopierst sollte es problemlos funktionieren. Ich wollte vermeiden dass man noch zusätzliche Libs installieren muss, überlege aber das evtl. zu ändern
-
@sigi234 jein, die Archiv Entpackroutinen sind (noch!!??) auf Linux ausgelegt. Wenn Du aber die entsprechende Datei entpackst und nach inputPath kopierst sollte es problemlos funktionieren. Ich wollte vermeiden dass man noch zusätzliche Libs installieren muss, überlege aber das evtl. zu ändern
@fastfoot sagte in [Skript] Wiederherstellen und Auflisten von Skripten:
@sigi234 jein, die Archiv Entpackroutinen sind (noch!!??) auf Linux ausgelegt. Wenn Du aber die entsprechende Datei entpackst und nach inputPath kopierst sollte es problemlos funktionieren. Ich wollte vermeiden dass man noch zusätzliche Libs installieren muss, überlege aber das evtl. zu ändern
Hm, eventuell ist ja eine eigene Windows Version sinnvoll?
-
@fastfoot sagte in [Skript] Wiederherstellen und Auflisten von Skripten:
Inhaltsfilter contentFilter
['0_userdata.myState', 'sendTo'] findet Skripte welche im Code Wetter oder sendTo enthalten
super sache - kleiner fehler in der beschreibung ?
-
@fastfoot sagte in [Skript] Wiederherstellen und Auflisten von Skripten:
@sigi234 jein, die Archiv Entpackroutinen sind (noch!!??) auf Linux ausgelegt. Wenn Du aber die entsprechende Datei entpackst und nach inputPath kopierst sollte es problemlos funktionieren. Ich wollte vermeiden dass man noch zusätzliche Libs installieren muss, überlege aber das evtl. zu ändern
Hm, eventuell ist ja eine eigene Windows Version sinnvoll?
@sigi234 sagte in [Skript] Wiederherstellen und Auflisten von Skripten:
Hm, eventuell ist ja eine eigene Windows Version sinnvoll?
nee, zuviel Supportaufwand. Ich habe aber mittlerweile Libraries gefunden, welche man (hoffentlich!) nicht nachinstallieren muss. Damit sollte es auch unter Windows und Mac laufen. Ich update Post #1 wenn fertig
-
@fastfoot sagte in [Skript] Wiederherstellen und Auflisten von Skripten:
Inhaltsfilter contentFilter
['0_userdata.myState', 'sendTo'] findet Skripte welche im Code Wetter oder sendTo enthalten
super sache - kleiner fehler in der beschreibung ?
@liv-in-sky sagte in [Skript] Wiederherstellen und Auflisten von Skripten:
kleiner fehler in der beschreibung ?
Danke, hab's korrigiert. Du hast ja auch jede Menge Skripte, wie ist die Performance denn bei Dir? Hier benötigt das Skript für 500 Skripte nur wenige Sekunden (ohne Import ins System)
-
@liv-in-sky sagte in [Skript] Wiederherstellen und Auflisten von Skripten:
kleiner fehler in der beschreibung ?
Danke, hab's korrigiert. Du hast ja auch jede Menge Skripte, wie ist die Performance denn bei Dir? Hier benötigt das Skript für 500 Skripte nur wenige Sekunden (ohne Import ins System)
superschnell - 2-3 sekunden für über 850 scripte (muss mal wieder aufräumen :-) )
-
@liv-in-sky sagte in [Skript] Wiederherstellen und Auflisten von Skripten:
kleiner fehler in der beschreibung ?
Danke, hab's korrigiert. Du hast ja auch jede Menge Skripte, wie ist die Performance denn bei Dir? Hier benötigt das Skript für 500 Skripte nur wenige Sekunden (ohne Import ins System)
könnte sowas auch gut für die vis gebrauchen :-)
-
könnte sowas auch gut für die vis gebrauchen :-)
sagt, muss diese Datei
/home/iobroker/scriptInputvorhanden sein?
-
sagt, muss diese Datei
/home/iobroker/scriptInputvorhanden sein?
@homecineplexx du musst den ordner benennen und anlegen - hier mal mein setting des testscript - vielleicht hilft das - ich nutze direkt den backup folder in meinem setting und habe den output folder angelegt
-
sagt, muss diese Datei
/home/iobroker/scriptInputvorhanden sein?
@homecineplexx sagte in [Skript] Wiederherstellen und Auflisten von Skripten:
sagt, muss diese Datei
/home/iobroker/scriptInputvorhanden sein?
irgendwo muss deine zu durchsuchende Datei ja liegen :-) Du kannst das ja frei wählen. Wenn Du aber zB autoObjects angibst dann ist damit schon klar wo die Datei liegt. Allerdings wird dann nur die neueste Datei durchsucht. Oder du machst es wie liv-in-sky
-
kleines Update, die Fehlerbehandlung wurde verbessert. Da das Skript auch unter Windows und Mac lauffähig ist wäre eine Rückmeldung von Benutzern dieser Systeme hilfreich. Vor allem unter Mac ist das Skript gar nicht getestet
@fastfoot said in [Skript] Wiederherstellen und Auflisten von Skripten:
kleines Update, die Fehlerbehandlung wurde verbessert. Da das Skript auch unter Windows und Mac lauffähig ist wäre eine Rückmeldung von Benutzern dieser Systeme hilfreich. Vor allem unter Mac ist das Skript gar nicht getestet
Guten Morgen
danke für dein Script, aber eine Frage, warum legst du es nicht in GIT ab, dann hätte man auch eine Versionierung bzw wäre vielleicht einfacher -
@fastfoot said in [Skript] Wiederherstellen und Auflisten von Skripten:
kleines Update, die Fehlerbehandlung wurde verbessert. Da das Skript auch unter Windows und Mac lauffähig ist wäre eine Rückmeldung von Benutzern dieser Systeme hilfreich. Vor allem unter Mac ist das Skript gar nicht getestet
Guten Morgen
danke für dein Script, aber eine Frage, warum legst du es nicht in GIT ab, dann hätte man auch eine Versionierung bzw wäre vielleicht einfacher@homecineplexx eine Versionierung braucht es nicht, das Skript ist 'fertig' und tut alles wozu ich es geschrieben habe. Ausser evtl. kleinerer Fehlerbehebungen wird sich da also nicht mehr viel tun
-
Das Skript kann aus diversen Backupdateien
- Skripte wiederherstellen
- als Importdatei im Dateisystem, restoreToFilesystem im Standard false
- direkt in die Objektdatenbank, restoreToSystemDB im Standard false
- zur 'Sicherheit' und zum Schutz vor Überschreiben kann an den Namen das Suffix scriptSuffix angegeben werden, im Standard ist es auf '_rcvr' gesetzt
- Skripte auflisten
- als Datei, generateListing im Standard true, wird in outputPath gespeichert
- als JSON Tabelle in einem Datenpunkt zur Verwendung in VIS, generateTable im Standard true
- der DP wird in idBase und idJson angegeben und wird vom Skript erstellt falls generateTable true ist.
- Backupdateien können sein
- Backup der Objektdatenbank in /opt/iobroker/iobroker-data/backup-objects
- Backupdateien des BackitUp Adapters in /opt/iobroker/backups
- Exportdatei des Javascript Adapters
- Einzelne Skriptdatei
hierzu dienen verschiedene Filter-Arrays mit denen man die Ergebnisse einschränken kann. Groß- Kleinschreibung ist dabei egal, Teilausdrücke sind erlaubt, es sind reguläre Ausdrücke möglich. Die Filter können kombiniert werden
- Namenfilter scriptFilter
- ['wetter', '^a'] findet Skripte mit wetter im Namen oder die mit a oder A beginnen
- Inhaltsfilter contentFilter
- ['0_userdata.myState', 'sendTo'] findet Skripte welche im Code 0_userdata.myState oder sendTo enthalten
- Typfilter typeFilter
- ['Blockly', '^R'] findet nur Blockly- und Rules Skripte
- Ordnerfilter includeFolders
- ['tools', 'Forum'] findet nur Skripte in den Ordnern Tools und Forum und deren Unterordnern
- Ordnerfilter excludeFolders
- ['/'] oder ['root'] Nur Skripte welche in Ordnern sind werden gefunden
- ['Forum', 'Tools'] Skripte in diesen Ordnern und ihren Unterordnern werden ignoriert
Es macht keinen Sinn die beiden Ordnerfilter zu kombinieren!
Anleitung:
Mit den Standardsettings(inputFile = autoObjects) kann das Skript ohne weitere Einstellungen sofort gestartet werden. In einem neu aufgesetzten System funktioniert das jedoch nicht da ja noch keine Backupdateien existieren und die wohl auch keine Skripte enthalten- Ordner für die Backupdatei anlegen und in inputPath angeben. Standard ist /home/iobroker/scriptInput
- Die Datei in den Ordner inputPath kopieren und in inputFile angeben. Bei Verwendung eines der drei autoxxxxxxxx Namen kann die Erstellung des inputPath entfallen
- autoObjects - das zuletzt vom JS-Controller erstellte Backup wird verwendet
- autoBackup - die letzte Backupdatei des BackitUp Adapters wird verwendet
- autoScript - die letzte Backupdatei für Skripte des BackitUp Adapters wird verwendet
- Ausgabeordner in outputPath benennen, Standard ist /home/iobroker/scriptOutput. Der Ordner wird bei Skriptstart erstellt bzw. geleert.
- Skript starten, das Listing befindet sich in outputPath
@fastfoot
super Teil, war sehr lange auf der Suche ......Hat super funktioniert, doch nun kommt aber ein Fehler, bestimmt kein großes ding .......
16:19:25.797 info javascript.0 (22538) Stop script script.js.common.Restore 16:19:27.683 info javascript.0 (22538) Start javascript script.js.common.Restore 16:19:27.684 error javascript.0 (22538) script.js.common.Restore compile failed: at script.js.common.Restore:15javascript.0 2023-08-25 16:27:43.558 error at processImmediate (node:internal/timers:473:21) javascript.0 2023-08-25 16:27:43.558 error at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/main.js:1628:17) javascript.0 2023-08-25 16:27:43.558 error at /opt/iobroker/node_modules/iobroker.javascript/main.js:2153:17 javascript.0 2023-08-25 16:27:43.557 error at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:2055:37) javascript.0 2023-08-25 16:27:43.557 error at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1802:21) javascript.0 2023-08-25 16:27:43.557 error at new Script (node:vm:100:7) javascript.0 2023-08-25 16:27:43.557 error SyntaxError: Identifier 'dbg' has already been declared javascript.0 2023-08-25 16:27:43.557 error ^ javascript.0 2023-08-25 16:27:43.557 error const dbg = false; javascript.0 2023-08-25 16:27:43.557 error script.js.common.Restore compile failed: at script.js.common.Restore:15 javascript.0 2023-08-25 16:27:43.556 info Start javascript script.js.common.Restore javascript.0 2023-08-25 16:27:36.426 info Stop script script.js.common.RestoreGrüße Stephan
- Skripte wiederherstellen
-
Das Skript kann aus diversen Backupdateien
- Skripte wiederherstellen
- als Importdatei im Dateisystem, restoreToFilesystem im Standard false
- direkt in die Objektdatenbank, restoreToSystemDB im Standard false
- zur 'Sicherheit' und zum Schutz vor Überschreiben kann an den Namen das Suffix scriptSuffix angegeben werden, im Standard ist es auf '_rcvr' gesetzt
- Skripte auflisten
- als Datei, generateListing im Standard true, wird in outputPath gespeichert
- als JSON Tabelle in einem Datenpunkt zur Verwendung in VIS, generateTable im Standard true
- der DP wird in idBase und idJson angegeben und wird vom Skript erstellt falls generateTable true ist.
- Backupdateien können sein
- Backup der Objektdatenbank in /opt/iobroker/iobroker-data/backup-objects
- Backupdateien des BackitUp Adapters in /opt/iobroker/backups
- Exportdatei des Javascript Adapters
- Einzelne Skriptdatei
hierzu dienen verschiedene Filter-Arrays mit denen man die Ergebnisse einschränken kann. Groß- Kleinschreibung ist dabei egal, Teilausdrücke sind erlaubt, es sind reguläre Ausdrücke möglich. Die Filter können kombiniert werden
- Namenfilter scriptFilter
- ['wetter', '^a'] findet Skripte mit wetter im Namen oder die mit a oder A beginnen
- Inhaltsfilter contentFilter
- ['0_userdata.myState', 'sendTo'] findet Skripte welche im Code 0_userdata.myState oder sendTo enthalten
- Typfilter typeFilter
- ['Blockly', '^R'] findet nur Blockly- und Rules Skripte
- Ordnerfilter includeFolders
- ['tools', 'Forum'] findet nur Skripte in den Ordnern Tools und Forum und deren Unterordnern
- Ordnerfilter excludeFolders
- ['/'] oder ['root'] Nur Skripte welche in Ordnern sind werden gefunden
- ['Forum', 'Tools'] Skripte in diesen Ordnern und ihren Unterordnern werden ignoriert
Es macht keinen Sinn die beiden Ordnerfilter zu kombinieren!
Anleitung:
Mit den Standardsettings(inputFile = autoObjects) kann das Skript ohne weitere Einstellungen sofort gestartet werden. In einem neu aufgesetzten System funktioniert das jedoch nicht da ja noch keine Backupdateien existieren und die wohl auch keine Skripte enthalten- Ordner für die Backupdatei anlegen und in inputPath angeben. Standard ist /home/iobroker/scriptInput
- Die Datei in den Ordner inputPath kopieren und in inputFile angeben. Bei Verwendung eines der drei autoxxxxxxxx Namen kann die Erstellung des inputPath entfallen
- autoObjects - das zuletzt vom JS-Controller erstellte Backup wird verwendet
- autoBackup - die letzte Backupdatei des BackitUp Adapters wird verwendet
- autoScript - die letzte Backupdatei für Skripte des BackitUp Adapters wird verwendet
- Ausgabeordner in outputPath benennen, Standard ist /home/iobroker/scriptOutput. Der Ordner wird bei Skriptstart erstellt bzw. geleert.
- Skript starten, das Listing befindet sich in outputPath
- Skripte wiederherstellen