NEWS
Objekte sichern
Objekte sichern
-
Hallo Zusammen,
Das mit dem Export und Import der Datenpunkte hat funktioniert
Jetzt habe ich aber eine erneute Frage
Ich mochte gern einen neuen Datenpunkt erstellen welche in einem neuen Ordner ist
02_FuerAlexaUndVIS.0.testAlso der Ordner soll "02_FuerAlexaUndVIS" heissen und der Datenpunkt in dem Fall "test"
Als ich damals die "Ordner" erstellt habe brauchte ich nur die Seite mit dem Tab Datenpunkte neu laden und dann auf das "+" gehen und da war die erste Zeile leer
Wenn ich das jetzt mache springt er immer in den "0_userdata.0." reinHat sich da etwas geändert? Kann ich krinr neuen "Ordner" mehr ins Root-Verzeichniss anlegen=
Gibt es da einen neuen Trick? z.B. ein Script?
Danke im Voraus
Gruß
Marcel -
Hallo Zusammen,
Das mit dem Export und Import der Datenpunkte hat funktioniert
Jetzt habe ich aber eine erneute Frage
Ich mochte gern einen neuen Datenpunkt erstellen welche in einem neuen Ordner ist
02_FuerAlexaUndVIS.0.testAlso der Ordner soll "02_FuerAlexaUndVIS" heissen und der Datenpunkt in dem Fall "test"
Als ich damals die "Ordner" erstellt habe brauchte ich nur die Seite mit dem Tab Datenpunkte neu laden und dann auf das "+" gehen und da war die erste Zeile leer
Wenn ich das jetzt mache springt er immer in den "0_userdata.0." reinHat sich da etwas geändert? Kann ich krinr neuen "Ordner" mehr ins Root-Verzeichniss anlegen=
Gibt es da einen neuen Trick? z.B. ein Script?
Danke im Voraus
Gruß
Marcel -
Danke für deine Schnelle Antwort
Aber als ich meine Datenpunkte vom "alten" ioBroker wieder per .json Datei Importiert habe wurden diese ja auch wieder ins Root gelegt

-
Ich habe mir jetzt mal so eine .json genommen und diese wie folgt abgeändert
{ "02_FuerAlexaUndVIS.0.test": { "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1578150492870, "common": { "name": "Test_", "role": "", "type": "boolean", "desc": "Manuell erzeugt", "read": true, "write": true, "def": false, "smartName": { "de": "Test" } }, "native": {}, "acl": { "object": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1638 }, "_id": "02_FuerAlexaUndVIS.0.test", "type": "state" } }Wenn ich diese importieren will kommt folgender Fehler

-
Hallo zusammen,
möchte kein neues Thema aufmachen, daher hänge ich mich hier mal dran.Ich hab mein System neu aufgesetzt und muss daher ioBroker auch neu aufsetzen.
Dafür habe ich mir den gesamten Objektbaum "0_userdata" vom alten ioBroker als JSON gesichtert. Den kann ich im neuen System auch wieder einlesen. So weit so gut.Wie bekomme ich aber nun die ganzen Datenwerte, die in den einelnen Objekte stehen, ins neue ioBroker System übertragen?
Gibt's dazu ein paar praktikable Tipps?
Viele Grüße,
Strobi -
Hallo zusammen,
möchte kein neues Thema aufmachen, daher hänge ich mich hier mal dran.Ich hab mein System neu aufgesetzt und muss daher ioBroker auch neu aufsetzen.
Dafür habe ich mir den gesamten Objektbaum "0_userdata" vom alten ioBroker als JSON gesichtert. Den kann ich im neuen System auch wieder einlesen. So weit so gut.Wie bekomme ich aber nun die ganzen Datenwerte, die in den einelnen Objekte stehen, ins neue ioBroker System übertragen?
Gibt's dazu ein paar praktikable Tipps?
Viele Grüße,
Strobihabe es schon lange nicht mehr genutzt - damit hat es damals aber bei mir geklappt
mit diesem script wird eine datei erzeugt und auf dem server gespeichert /opt/iobroker
diese datei ist eigentlich ein script, das die states ausliest und diese dann speichert - nach dem import der objecte kann man das erzeugte script , welches die states erstellt, aufrufen
- script definieren (pfad der datei, datei name und welchen teil er kopieren soll
- anschliessend datei öffnen und als javascript impotieren
das erzeugt script im ordner (opt/iobroker) sieht dann so aus - das muss als javascript importiert werden und einmalig aufgerufen werden

das script, welches einmal im "alten iob" laufen muss:
die pfeile zeigen, wo man etwas einstellen soll/kann

in der javascript instanz muss fs als zusätzliches modul angegeben werden
-
habe es schon lange nicht mehr genutzt - damit hat es damals aber bei mir geklappt
mit diesem script wird eine datei erzeugt und auf dem server gespeichert /opt/iobroker
diese datei ist eigentlich ein script, das die states ausliest und diese dann speichert - nach dem import der objecte kann man das erzeugte script , welches die states erstellt, aufrufen
- script definieren (pfad der datei, datei name und welchen teil er kopieren soll
- anschliessend datei öffnen und als javascript impotieren
das erzeugt script im ordner (opt/iobroker) sieht dann so aus - das muss als javascript importiert werden und einmalig aufgerufen werden

das script, welches einmal im "alten iob" laufen muss:
die pfeile zeigen, wo man etwas einstellen soll/kann

in der javascript instanz muss fs als zusätzliches modul angegeben werden
@liv-in-sky
sehr cooles Script,
kann ich gebrauchen.
Danke.@liv-in-sky sagte in Objekte sichern:
in der javascript instanz muss fs als zusätzliches modul angegeben werden
Ist nicht mehr notwendig. Funktioniert mittlerweile auch ohne diesen Eintrag (müsste nun integriert sein).
-
habe es schon lange nicht mehr genutzt - damit hat es damals aber bei mir geklappt
mit diesem script wird eine datei erzeugt und auf dem server gespeichert /opt/iobroker
diese datei ist eigentlich ein script, das die states ausliest und diese dann speichert - nach dem import der objecte kann man das erzeugte script , welches die states erstellt, aufrufen
- script definieren (pfad der datei, datei name und welchen teil er kopieren soll
- anschliessend datei öffnen und als javascript impotieren
das erzeugt script im ordner (opt/iobroker) sieht dann so aus - das muss als javascript importiert werden und einmalig aufgerufen werden

das script, welches einmal im "alten iob" laufen muss:
die pfeile zeigen, wo man etwas einstellen soll/kann

in der javascript instanz muss fs als zusätzliches modul angegeben werden
@liv-in-sky
Cool, vielen Dank für schnelle & sehr hilfreiche Antwort.
Das probiere ich die Tage mal aus
-
habe es schon lange nicht mehr genutzt - damit hat es damals aber bei mir geklappt
mit diesem script wird eine datei erzeugt und auf dem server gespeichert /opt/iobroker
diese datei ist eigentlich ein script, das die states ausliest und diese dann speichert - nach dem import der objecte kann man das erzeugte script , welches die states erstellt, aufrufen
- script definieren (pfad der datei, datei name und welchen teil er kopieren soll
- anschliessend datei öffnen und als javascript impotieren
das erzeugt script im ordner (opt/iobroker) sieht dann so aus - das muss als javascript importiert werden und einmalig aufgerufen werden

das script, welches einmal im "alten iob" laufen muss:
die pfeile zeigen, wo man etwas einstellen soll/kann

in der javascript instanz muss fs als zusätzliches modul angegeben werden
@liv-in-sky
hab noch ein kleines Problem mit dem Unterscript für die 000

Hast du ne aktuelle (richtige) Version.
-
@liv-in-sky
hab noch ein kleines Problem mit dem Unterscript für die 000

Hast du ne aktuelle (richtige) Version.
ne - leider nicht - mir war das immer egal, es geht ja nur um den namen und ich habe die scripte gleich ausgeführt und die datei gelöscht - ich nutzte das imme rnur einmal
hast du andere pläne mit dem script ?
-
ne - leider nicht - mir war das immer egal, es geht ja nur um den namen und ich habe die scripte gleich ausgeführt und die datei gelöscht - ich nutzte das imme rnur einmal
hast du andere pläne mit dem script ?
@liv-in-sky sagte in Objekte sichern:
hast du andere pläne mit dem script ?
Ich weiß noch nicht. Aber vielleicht automatisiert die states sichern.
Und dann vielleicht noch auf der synology per ftp. Mal schauen.Aber ich passe das js mal an; wenn du nichts dagegen hast.
Setze es dann wieder hier rein.mfg
Dieter -
@liv-in-sky sagte in Objekte sichern:
hast du andere pläne mit dem script ?
Ich weiß noch nicht. Aber vielleicht automatisiert die states sichern.
Und dann vielleicht noch auf der synology per ftp. Mal schauen.Aber ich passe das js mal an; wenn du nichts dagegen hast.
Setze es dann wieder hier rein.mfg
Dieterja gerne - habe im moment eh nicht so viel zeit, dass anzupassen
-
ja gerne - habe im moment eh nicht so viel zeit, dass anzupassen
so, nun mal geändert; die 000 laufen nun richtig.
// Script um die eigenen DP mit den States zu sichern in einer txt Datei // diese Datei einfach öffnen und den Inhalt in ein Script einfügen und starten - dann werden die DP wieder mit dem richtigen Inhalt befüllt. // ursprünglich geschrieben von @liv-in-sky https://forum.iobroker.net/topic/31769/objekte-sichern/17?page=1 // umgeschrieben und erweitert von @bahnuhr // 09/2022 // Variablen - zum ändern var wo_DP = "javascript.0" // oder z.B. "0_userdata.0" let datei = "/opt/iobroker/state"; // Verzeichnis, wo die Datei gespeichert wird // Variablen - nicht ändern var fs = require('fs'); var now = new Date(); // store current date and time var Jahr = now.getFullYear(); var Monat = now.getMonth()+1; if (Monat < 10) { Monat = "0" + Monat; }; var Tag = now.getDate(); if (Tag < 10) { Tag = "0" + Tag; }; var Thour = now.getHours(); if (Thour < 10) { Thour = "0" + Thour; }; var Tmin = now.getMinutes(); if (Tmin < 10) { Tmin = "0" + Tmin; }; var Tsec = now.getSeconds(); if (Tsec < 10) { Tsec = "0" + Tsec; }; var logdate = Tag + '.' + Monat + '.' + Jahr; var logtime = Thour + ':' + Tmin + ':' + Tsec; // Script Selector var cacheSelectorState = $('[id=' + wo_DP + '.*]'); cacheSelectorState.each(function (id, i) { if (!id.includes('scriptEnabled') && !id.includes('scriptProblem') && !id.includes('debug') && !id.includes('variables') ){ var val1 = getState(id).val; if (val1 == null ) {log(id + " hat keinen state");} else {var zk = "setState('"+id+"', "+val1 +");\n"; if(typeof val1 === "string" && !val1.includes('span') && !val1.includes('class')) { zk = "setState('"+id+"', '"+val1+"');\n"; fs.appendFileSync(datei + "-javascript0-" + logdate + "-"+ logtime + ".txt", zk);} else { fs.appendFileSync(datei + "-javascript0-" + logdate + "-"+ logtime + ".txt", zk);} }; } }); -
so, nun mal geändert; die 000 laufen nun richtig.
// Script um die eigenen DP mit den States zu sichern in einer txt Datei // diese Datei einfach öffnen und den Inhalt in ein Script einfügen und starten - dann werden die DP wieder mit dem richtigen Inhalt befüllt. // ursprünglich geschrieben von @liv-in-sky https://forum.iobroker.net/topic/31769/objekte-sichern/17?page=1 // umgeschrieben und erweitert von @bahnuhr // 09/2022 // Variablen - zum ändern var wo_DP = "javascript.0" // oder z.B. "0_userdata.0" let datei = "/opt/iobroker/state"; // Verzeichnis, wo die Datei gespeichert wird // Variablen - nicht ändern var fs = require('fs'); var now = new Date(); // store current date and time var Jahr = now.getFullYear(); var Monat = now.getMonth()+1; if (Monat < 10) { Monat = "0" + Monat; }; var Tag = now.getDate(); if (Tag < 10) { Tag = "0" + Tag; }; var Thour = now.getHours(); if (Thour < 10) { Thour = "0" + Thour; }; var Tmin = now.getMinutes(); if (Tmin < 10) { Tmin = "0" + Tmin; }; var Tsec = now.getSeconds(); if (Tsec < 10) { Tsec = "0" + Tsec; }; var logdate = Tag + '.' + Monat + '.' + Jahr; var logtime = Thour + ':' + Tmin + ':' + Tsec; // Script Selector var cacheSelectorState = $('[id=' + wo_DP + '.*]'); cacheSelectorState.each(function (id, i) { if (!id.includes('scriptEnabled') && !id.includes('scriptProblem') && !id.includes('debug') && !id.includes('variables') ){ var val1 = getState(id).val; if (val1 == null ) {log(id + " hat keinen state");} else {var zk = "setState('"+id+"', "+val1 +");\n"; if(typeof val1 === "string" && !val1.includes('span') && !val1.includes('class')) { zk = "setState('"+id+"', '"+val1+"');\n"; fs.appendFileSync(datei + "-javascript0-" + logdate + "-"+ logtime + ".txt", zk);} else { fs.appendFileSync(datei + "-javascript0-" + logdate + "-"+ logtime + ".txt", zk);} }; } }); -
Habe den Quellcode nun in ein Java-Script kopiert und ausgeführt - aber es wird mir keine Datei etc. angelegt.
Was mache ich denn falsch?Wie lange muss ich das Skript laufen lassen oder beendet sich das von alleine?

-
so, nun mal geändert; die 000 laufen nun richtig.
// Script um die eigenen DP mit den States zu sichern in einer txt Datei // diese Datei einfach öffnen und den Inhalt in ein Script einfügen und starten - dann werden die DP wieder mit dem richtigen Inhalt befüllt. // ursprünglich geschrieben von @liv-in-sky https://forum.iobroker.net/topic/31769/objekte-sichern/17?page=1 // umgeschrieben und erweitert von @bahnuhr // 09/2022 // Variablen - zum ändern var wo_DP = "javascript.0" // oder z.B. "0_userdata.0" let datei = "/opt/iobroker/state"; // Verzeichnis, wo die Datei gespeichert wird // Variablen - nicht ändern var fs = require('fs'); var now = new Date(); // store current date and time var Jahr = now.getFullYear(); var Monat = now.getMonth()+1; if (Monat < 10) { Monat = "0" + Monat; }; var Tag = now.getDate(); if (Tag < 10) { Tag = "0" + Tag; }; var Thour = now.getHours(); if (Thour < 10) { Thour = "0" + Thour; }; var Tmin = now.getMinutes(); if (Tmin < 10) { Tmin = "0" + Tmin; }; var Tsec = now.getSeconds(); if (Tsec < 10) { Tsec = "0" + Tsec; }; var logdate = Tag + '.' + Monat + '.' + Jahr; var logtime = Thour + ':' + Tmin + ':' + Tsec; // Script Selector var cacheSelectorState = $('[id=' + wo_DP + '.*]'); cacheSelectorState.each(function (id, i) { if (!id.includes('scriptEnabled') && !id.includes('scriptProblem') && !id.includes('debug') && !id.includes('variables') ){ var val1 = getState(id).val; if (val1 == null ) {log(id + " hat keinen state");} else {var zk = "setState('"+id+"', "+val1 +");\n"; if(typeof val1 === "string" && !val1.includes('span') && !val1.includes('class')) { zk = "setState('"+id+"', '"+val1+"');\n"; fs.appendFileSync(datei + "-javascript0-" + logdate + "-"+ logtime + ".txt", zk);} else { fs.appendFileSync(datei + "-javascript0-" + logdate + "-"+ logtime + ".txt", zk);} }; } });@bahnuhr sagte in Objekte sichern:
so, nun mal geändert; die 000 laufen nun richtig.
// Script um die eigenen DP mit den States zu sichern in einer txt Datei // diese Datei einfach öffnen und den Inhalt in ein Script einfügen und starten - dann werden die DP wieder mit dem richtigen Inhalt befüllt. // ursprünglich geschrieben von @liv-in-sky https://forum.iobroker.net/topic/31769/objekte-sichern/17?page=1 // umgeschrieben und erweitert von @bahnuhr // 09/2022 // Variablen - zum ändern var wo_DP = "javascript.0" // oder z.B. "0_userdata.0" let datei = "/opt/iobroker/state"; // Verzeichnis, wo die Datei gespeichert wird // Variablen - nicht ändern var fs = require('fs'); var now = new Date(); // store current date and time var Jahr = now.getFullYear(); var Monat = now.getMonth()+1; if (Monat < 10) { Monat = "0" + Monat; }; var Tag = now.getDate(); if (Tag < 10) { Tag = "0" + Tag; }; var Thour = now.getHours(); if (Thour < 10) { Thour = "0" + Thour; }; var Tmin = now.getMinutes(); if (Tmin < 10) { Tmin = "0" + Tmin; }; var Tsec = now.getSeconds(); if (Tsec < 10) { Tsec = "0" + Tsec; }; var logdate = Tag + '.' + Monat + '.' + Jahr; var logtime = Thour + ':' + Tmin + ':' + Tsec; // Script Selector var cacheSelectorState = $('[id=' + wo_DP + '.*]'); cacheSelectorState.each(function (id, i) { if (!id.includes('scriptEnabled') && !id.includes('scriptProblem') && !id.includes('debug') && !id.includes('variables') ){ var val1 = getState(id).val; if (val1 == null ) {log(id + " hat keinen state");} else {var zk = "setState('"+id+"', "+val1 +");\n"; if(typeof val1 === "string" && !val1.includes('span') && !val1.includes('class')) { zk = "setState('"+id+"', '"+val1+"');\n"; fs.appendFileSync(datei + "-javascript0-" + logdate + "-"+ logtime + ".txt", zk);} else { fs.appendFileSync(datei + "-javascript0-" + logdate + "-"+ logtime + ".txt", zk);} }; } });du könntest noch beim namen folgendes einfügen - dann muss man da nichts ändern/anpassen

ps: das wurde nicht von mir geschrieben - habe ich irgendwoher kopiert
-
@bahnuhr sagte in Objekte sichern:
so, nun mal geändert; die 000 laufen nun richtig.
// Script um die eigenen DP mit den States zu sichern in einer txt Datei // diese Datei einfach öffnen und den Inhalt in ein Script einfügen und starten - dann werden die DP wieder mit dem richtigen Inhalt befüllt. // ursprünglich geschrieben von @liv-in-sky https://forum.iobroker.net/topic/31769/objekte-sichern/17?page=1 // umgeschrieben und erweitert von @bahnuhr // 09/2022 // Variablen - zum ändern var wo_DP = "javascript.0" // oder z.B. "0_userdata.0" let datei = "/opt/iobroker/state"; // Verzeichnis, wo die Datei gespeichert wird // Variablen - nicht ändern var fs = require('fs'); var now = new Date(); // store current date and time var Jahr = now.getFullYear(); var Monat = now.getMonth()+1; if (Monat < 10) { Monat = "0" + Monat; }; var Tag = now.getDate(); if (Tag < 10) { Tag = "0" + Tag; }; var Thour = now.getHours(); if (Thour < 10) { Thour = "0" + Thour; }; var Tmin = now.getMinutes(); if (Tmin < 10) { Tmin = "0" + Tmin; }; var Tsec = now.getSeconds(); if (Tsec < 10) { Tsec = "0" + Tsec; }; var logdate = Tag + '.' + Monat + '.' + Jahr; var logtime = Thour + ':' + Tmin + ':' + Tsec; // Script Selector var cacheSelectorState = $('[id=' + wo_DP + '.*]'); cacheSelectorState.each(function (id, i) { if (!id.includes('scriptEnabled') && !id.includes('scriptProblem') && !id.includes('debug') && !id.includes('variables') ){ var val1 = getState(id).val; if (val1 == null ) {log(id + " hat keinen state");} else {var zk = "setState('"+id+"', "+val1 +");\n"; if(typeof val1 === "string" && !val1.includes('span') && !val1.includes('class')) { zk = "setState('"+id+"', '"+val1+"');\n"; fs.appendFileSync(datei + "-javascript0-" + logdate + "-"+ logtime + ".txt", zk);} else { fs.appendFileSync(datei + "-javascript0-" + logdate + "-"+ logtime + ".txt", zk);} }; } });du könntest noch beim namen folgendes einfügen - dann muss man da nichts ändern/anpassen

ps: das wurde nicht von mir geschrieben - habe ich irgendwoher kopiert

