NEWS
Anfängerfrage
-
Hallo in die Runde, ich habe mir ein neues Image runter geladen und installiert, läuft soweit problemlos.
Jetzt würde ich gerne von der alten Installation einige Sachen übernehmen/kopieren, z.B. vom Broadlink Adapter (der alte) die
"Learned Codes" oder aus dem Cloud Adapter die "Smarten Geräte" Geht das? Wo werden die Daten abgelegt?
Danke und ein schönes Wochenende
-
Jetzt wollte ich gerade sportlich einen Link zu iobroker.net und der Doku einstellen und stelle fest, dass es, zu mindestens in den ersichtlichen Menüs, gar kein Grundlagen Bereich gibt.
Hilft Dir zwar jetzt nicht, aber die Doku müsste um ein Grundlagenbereich erweitert werden, der hilft ioBroker zu verstehen.
(Deine beiden Fragen kann ich Dir leider nicht direkt beantworten)
States - was und wo können diese liegen (Datei, Redis)
Objekte - wo und Details
Logs - wo, wie lange gespeichert
VIS - wo und in welcher Form gespeichert
Adapter Einstellungen - wo und in welcher Form gespeichert.
Skripte - wo (in dder Object JSON und opt. mit js2file)
Datensicherungen - was enthalten diese und wo gespeichert
Historische Daten - welche Möglichkeiten. wenn im Dateisystem, wo
…
Homoran wird mich jetzt wahrscheinlich hauen, weil es das alles irgendwo gibt. Bei ibobroker.net/Doku bin ich da jetzt nciht schnell zum Ziel gekommen :mrgreen:
-
Homoran wird mich jetzt wahrscheinlich hauen, weil es das alles irgendwo gibt `
Würde ich ja gerne, aber dieser Wunsch steht auch bei mir gaaanz oben auf der Wunschliste:Das selektive Speichern/exportieren einzelner Adapterkonfigurationen.
Dieses ist IMHO insbesondere bei Adaptern mit sehr vielen Einträgen sinnvoll, wie es z.B. der Broadlink sein könnte (ich habe ihn immer noch nicht installiert). Außerdem gehören dazu:
-
ping
-
tankerkoenig
-
parser
um nur ein paar zu nennen.
Meines Wissens liegen diese Konfigurationen in einem einzigen json, weitestgehend ohne ordnende Struktur
Der Rest (mal eben auf die Schnelle in meiner Installation nachgesehen):
-
States: ?
-
logs: /opt/iobroker/log; standardmäßig 7 Tage, ist aber irgendwo in den Tiefen einstellbar - hatte Bluefox mal gepostet
-
vis: /opt/iobroker/iobroker-data/files/vis.0/ProjectName (meistens "main")/vis-views.json
-
Adapter Einstellungen: s.o.
-
Skripte : ?, können aber alle einzeln exportiert werden
-
Datensicherungen: /opt/iobroker/backups/
-
Historische Daten: /opt/iobroker/iobroker-data/history
Gruß
Rainer
-
-
Hallo,
genau diese Frage hätte ich schon beim Usertreffen 2017 in Kassel. Ich wollte die Adapterkonfiguration des Tankerkönig Adapters exportier-/importierbar machen.
Der S7 Adapter kann das bereits.
Bluefox hat mir den Weg erklärt, aber ich konnte es nicht verwirklichen [emoji45]<emoji seq="1f92d">🤭</emoji>
Die Einstellungen müssen URL-Encoded als Datei gespeichert werden. Soviel weiß ich noch.
Sonst hilft nur Screenshots machen und Hilfstextdateien, die man mit copy paste befüllt.
Gruß
Pix
-
States: ? `
States: /opt/iobroker/iobroker-data/states.json bzw. Redis-DB
@Homoran:Skripte : ?, können aber alle einzeln exportiert werden `
Objekte inkl. Skripte, Konfigurationen: /opt/iobroker/iobroker-data/objects.json
@Homoran:Historische Daten: /opt/iobroker/iobroker-data/history `
Das ist der Standard-Pfad, der in der Konfiguration der History-Instanz geändert werden kann. -
Meines Wissens liegen diese Konfigurationen in einem einzigen json, weitestgehend ohne ordnende Struktur
Ja, aber man könnte die Konfiguration in eine Datei (json) per Script exportieren und im Zielsystem wieder per Script importieren, da die Konfiguration typisch (mir bekannte Ausnahme: parser) als Objekt vorliegen: Im Objekt system.adapter.name.N ist sie unter native abgelegt.
const instanz = 'ping.0'; // zu sichernde Konfiguration const path = '/opt/iobroker/iobroker-data/files/'; const fn = path + instanz + '_native.json'; const fs = require('fs'); const idObj = 'system.adapter.' + instanz; var config = getObject(idObj).native; fs.writeFileSync(fn, JSON.stringify(config));
Im Zielsystem einlesen kann man die Konfiguration mit einem entsprechenden Script, nachdem man die Datei dorthin kopiert hat:
const instanz = 'ping.0'; // einzulesende Konfiguration const path = '/opt/iobroker/iobroker-data/files/'; const fn = path + instanz + '_native.json'; const fs = require('fs'); const idObj = 'system.adapter.' + instanz; fs.readFile(fn, function(err, json) { if(err) log('Fehler Datei lesen: ' + err, 'error'); else { var obj = getObject(idObj); if(obj) { obj.native = JSON.parse(json); setObject(idObj, obj); } } });
EDIT umbenannt: instance –> instanz
-
Guten Morgen, scheint doch nicht so einfach zu sein wie erhofft, aber auf alle Fälle, vielen Dank für euren Input.
-
Hallo,
@paul53:Meines Wissens liegen diese Konfigurationen in einem einzigen json, weitestgehend ohne ordnende Struktur `
Ja, aber man könnte die Konfiguration in eine Datei (json) per Script exportieren und im Zielsystem wieder per Script importieren, da die Konfiguration typisch (mir bekannte Ausnahme: parser) als Objekt vorliegen: Im Objekt system.adapter.name.N ist sie unter native abgelegt.const instance = 'ping.0'; // zu sichernde Konfiguration const path = '/opt/iobroker/iobroker-data/files/'; const fn = path + instance + '_native.json'; const fs = require('fs'); const idObj = 'system.adapter.' + instance; var config = getObject(idObj).native; fs.writeFileSync(fn, JSON.stringify(config));
Im Zielsystem einlesen kann man die Konfiguration mit einem entsprechenden Script, nachdem man die Datei dorthin kopiert hat:
const instance = 'ping.0'; // einzulesende Konfiguration const path = '/opt/iobroker/iobroker-data/files/'; const fn = path + instance + '_native.json'; const fs = require('fs'); const idObj = 'system.adapter.' + instance; fs.readFile(fn, function(err, json) { if(err) log('Fehler Datei lesen: ' + err, 'error'); else { var obj = getObject(idObj); if(obj) { obj.native = JSON.parse(json); setObject(idObj, obj); } } }); ```` `
du bist der Hammer! Ich hab den Post eben entdeckt, kurz dein Skript getestet. Und es geht!
Vielleicht kriege ich das noch in meinen Adapter eingebaut bis Kassel.
Herzlichen Dank für die Hilfe
Gruß,
Pix
-
Hab jetzt mal für mich ein kleines Skript draus gebastelt, dass meinen OS-X Pfad mag, den Punkt vor der Instanz ersetzt und eine Art Quelle -> Ziel Vorgehen erlaubt. Noch nicht fertig, aber läuft.
@Paul53: Ich habe die Konstante "instance" umbenannt, da der Begriff im Kavascript Adapter schon belegt ist: https://github.com/ioBroker/ioBroker.javascript/blob/master/doc/en/javascript.md#instance
Gruß
Pix
-
-
@pix:Ich habe die Konstante "instance" umbenannt, da der Begriff im Kavascript Adapter schon belegt ist `
Die doppelte Bezeichnung stört nicht, wenn "instance" aus dem JS-Adapter in dem Skript nicht verwendet wird. In der ersten Zeile wird der Variablen die komplette Instanz "Adaptername.N" zugeordnet. Aber insofern gebe ich Dir recht: Es kann einige verwirren. -
Jetzt wollte ich gerade sportlich einen Link zu iobroker.net und der Doku einstellen und stelle fest, dass es, zu mindestens in den ersichtlichen Menüs, gar kein Grundlagen Bereich gibt.
Hilft Dir zwar jetzt nicht, aber die Doku müsste um ein Grundlagenbereich erweitert werden, der hilft ioBroker zu verstehen.
(Deine beiden Fragen kann ich Dir leider nicht direkt beantworten)
States - was und wo können diese liegen (Datei, Redis)
Objekte - wo und Details
Logs - wo, wie lange gespeichert
VIS - wo und in welcher Form gespeichert
Adapter Einstellungen - wo und in welcher Form gespeichert.
Skripte - wo (in dder Object JSON und opt. mit js2file)
Datensicherungen - was enthalten diese und wo gespeichert
Historische Daten - welche Möglichkeiten. wenn im Dateisystem, wo
…
Homoran wird mich jetzt wahrscheinlich hauen, weil es das alles irgendwo gibt. Bei ibobroker.net/Doku bin ich da jetzt nciht schnell zum Ziel gekommen :mrgreen: `
-
+1 für die Skripts von Paul53
+1 für den Verweis von Bluefox zum Glossar
-
Das Glossar ist aktuell hier zu finden: