NEWS
Wie Werte von Datenpunkten in andere Installation übertragen
-
Hi Leute, haut mich bitte nicht, aber ich steh gerade vor einer Wand ... oder vielleicht doch nicht?
Ich habe eine neue Installaton von ioBroker. Ich habe alle Adapter frisch installiert, soweit alles ok. Nur ich habe ein paar Adapter, für die ich gerne die aktuellen Werte der Datenpunkte übernehmen würde. Die Datenpunkte ansich sind angelegt, nur die Werte sollte ich noch übernehmen. Wie macht man das am geschicktesten?
Danke für euren Support.
-
@jpgorganizer sagte in Wie Werte von Datenpunkten in andere Installation übertragen:
Wie macht man das am geschicktesten?
abtippen
Müssen die Werte regelmäßig überrtragen werden? -> MQTT
Müssen sie überhaupt übertragen werden oder füllen sich die Werte nach und nach?Ansonsten s.o.
-
@homoran sagte in Wie Werte von Datenpunkten in andere Installation übertragen:
@jpgorganizer sagte in Wie Werte von Datenpunkten in andere Installation übertragen:
Wie macht man das am geschicktesten?
abtippen
hab ich befürchtet, aber kann das denn wahr sein ???
Müssen die Werte regelmäßig überrtragen werden? -> MQTT
nein, nur einmal oder wiedermal, wenn ein neues System auf der grünen Wiese aufgesetzt wird
Müssen sie überhaupt übertragen werden oder füllen sich die Werte nach und nach?
füllen sich nicht automatisch, wurden im laufenden Betrieb händisch eingegeben
Ansonsten s.o.
ok, ich schreib mir ein Script, das eine Textdatei (ein anderes Script) erzeugt.
-
@jpgorganizer wenn die neue Installation Ersatz für die alte ist, spielst du doch einfach ein Backup ein.
Da sind doch die Werte drin, oder? -
@homoran sagte in Wie Werte von Datenpunkten in andere Installation übertragen:
@jpgorganizer wenn die neue Installation Ersatz für die alte ist, spielst du doch einfach ein Backup ein.
Da sind doch die Werte drin, oder?ja, aber ich will nicht alles aus dem Backup, nur zwei Adapter und das geht ja auch nicht, dass man raussuchen kann, was übernommen werden soll
-
Folgendes Script auf der alten Maschine ausführen.
txt.Datei ändern.
Und den Text in der neuen Maschine ausführen.// 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 var java = 'javascript.0.System.System.akt_Datum_'; // Variablen - zum ändern var wo_DP = "javascript.0" // oder z.B. "0_userdata.0" // Variablen - nicht ändern var fs = require('fs'); var now = new Date(); // store current date and time 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 datei = "/home/iobroker/states.txt"; //Sicherung_States(); schedule('2 19 * * *', function () { Sicherung_States(); }); // Schedule einstellen // Scripte async function Sicherung_States() { 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, zk);} else { fs.appendFileSync(datei, zk);} }; } }); const client = new ftp.Client(); client.ftp.verbose = true try { await client.access({ host: v_host, user: v_user, password: v_pass, secure: false }) var Jahr = getState(java + 'Jahr').val; var Monat = getState(java + 'Monat').val; if (Monat < 10) { Monat = "0" + Monat; }; var Tag = getState(java + 'Tag').val; if (Tag < 10) { Tag = "0" + Tag; }; var wohin = "Sicherung/Sicherung ioBroker/States/"+ Jahr + "_" + Monat + "_" + Tag; await client.ensureDir(wohin); await client.clearWorkingDir() await client.uploadFrom(datei, "states.txt") } catch(err) { console.log(err) } client.close() log("Backup : iobroker States gesichert auf NAS Synology"); sendTo('telegram.0', { user: "Dieter", text: "Backup : iobroker-States\ngesichert auf NAS Synology", parse_mode: 'HTML' }); setTimeout(function() { if (fs.existsSync(datei)) { Datei_loeschen(datei); } }, 5000); } //Sicherung_States();
Script musst du natürlich auf deine Verhältnisse anpassen.
-
@bahnuhr sagte in Wie Werte von Datenpunkten in andere Installation übertragen:
Folgendes Script auf der alten Maschine ausführen.
txt.Datei ändern.
Und den Text in der neuen Maschine ausführen.danke, das hilft