NEWS
Datenpunkte in Ordner verschieben?
-
Hallo,
ich bin grad dabei meine 380 selbst angelegten Datenpunkte neu zu ordnen, damit alles übersichtlicher wird. Jetzt wollte ich fragen ob ich bestehende Datenpunkte in Unterordner verschieben kann?
-
@saeft_2003 sagte:
Datenpunkte in Unterordner verschieben kann?
Verschieben geht nicht, da der Ordnername Bestandteil der Objekt-ID ist. Man kann einen Datenpunkt in einen neuen DP kopieren und anschließend den alten DP löschen.
-
Ok Danke, kannst du mir vielleicht kurz beschreiben wie ich diesen richtig kopiere?
-
@saeft_2003 sagte:
wie ich diesen richtig kopiere?
Funktioniert es nicht durch Manipulation der ID ?
Man kann es sicherlich mittels Script machen (aber nicht mehr heute). -
das habe ich schon probiert gehabt, ich wusste aber nicht ob es eine saubere Lösung ist. Ich hatte unter RAW die ID angepasst, dann wird der Datenpunkt dorthin kopiert. Wann würdest du zu einem Skript kommen?
-
@saeft_2003 sagte:
Wann würdest du zu einem Skript kommen?
Jetzt.
// Kopieren von Datenpunkten nach 0_userdata.0 // Pfade anpassen ! const pathSrc = 'meineDP.0.'; // abschließenden Punkt angeben const pathDst = '0_userdata.0.'; const idsSrc = $(pathSrc + '*'); idsSrc.each(function(id, i) { // Schleife über alle Datenpunkte im Pfad let idDst = pathDst + id.substring(pathSrc.length); if(existsObject(idDst)) log('Datenpunkt ' + idDst + ' existiert bereits !', 'warn'); else { let obj = getObject(id); setObject(idDst, obj, function (err) { if (err) log('Cannot write object: ' + err) else { let init = null; if(existsState(id)) init = getState(id).val; else { let common = obj.common; if(common.def === undefined) { if(common.type === 'number') init = 0; if(common.type === 'boolean') init = false; if(common.type === 'string') init = ''; if(common.type === 'array') init = []; } else init = common.def; } setStateDelayed(idDst, init, true, 20 * i + 50); } }); } });
Falls ioBroker.linkeddevices verwendet wird: Vorher die Instanz deaktivieren !
Vor dem manuellen Löschen der alten Datenpunkte (Ordner) sollten alle Scripte angepasst werden, da man sonst viele Warnungen und Fehlermeldungen riskiert.
-
Vielen vielen Dank ich werde es nachher testen!
Geht es auch das nur bestimmte Datenpunkte in einen Ordner kopiert werden, weil ich will gleichzeitig meine Datenpunkte sortieren und in Unterordner kopieren.
-
@saeft_2003 sagte:
Geht es auch das nur bestimmte Datenpunkte in einen Ordner kopiert werden,
Automatisch oder individuell ? Beides geht nicht gleichzeitig. Anstelle von '*' in Zeile 6 kann auch der Rest einer konkreten Datenpunkt-ID angegeben werden; dann wird jeweils nur ein Datenpunkt kopiert.
@saeft_2003 sagte in Datenpunkte in Ordner verschieben?:
in Unterordner kopieren.
Die Pfade lassen sich um Unterordner erweitern.
-
Hallo.
Mein Frage geht in eine ähnliche Richtung...
Das Verschieben der Geräte wird sicherlich auch nicht zwischen den Instanzen möglich sein.
Kann ich ein Gerät (hier: Sonoff Pow R2) in unterschiedlichen Instanzen parallel laufen lassen?Hintergrund:
Ich habe ein Problem mit Telegram (es werden Nachrichten an den Bot von einer Telegram-ID gesendet, die nicht mehr aktiv - die gibt es lt. Adapter nicht mehr). Die Gerät möchte ich nun in eine andere Instanz verschieben. Nach Überführung und Änderung der Skripte möchte ich das Gerät in der bisherigen Instanz löschen in der Hoffnung, dass dann auch keine Nachrichten mehr gesendet werden. -
@paul53 said in Datenpunkte in Ordner verschieben?:
@saeft_2003 sagte:
Geht es auch das nur bestimmte Datenpunkte in einen Ordner kopiert werden,
Automatisch oder individuell ? Beides geht nicht gleichzeitig. Anstelle von '*' in Zeile 6 kann auch der Rest einer konkreten Datenpunkt-ID angegeben werden; dann wird jeweils nur ein Datenpunkt kopiert.
@saeft_2003 sagte in Datenpunkte in Ordner verschieben?:
in Unterordner kopieren.
Die Pfade lassen sich um Unterordner erweitern.
Hallo, scheinbar hat sich bei den Rechten was verändert. Ich bekomme folgende Fehlermeldung: Cannot write object: Function "setObject" is not allowed. Use adapter settings to allow it.
Wie kann ich das in den Adaptereinstellungen erlauben? -
@mcbirne said in Datenpunkte in Ordner verschieben?:
Cannot write object: Function "setObject" is not allowed. Use adapter settings to allow it.
Lösung gefunden:
SetObjekt eine Funktion des Javascript-Adapters, die mit einem Haken in der Konfiguration freigegeben werden muss. Dann klappt alles. -
Hallo Paul, ich habe das Script gerade ausprobiert. Top! Gibt es eine Möglichkeit die Verknüpfungen mit den Programmen auch automatisch mit ändern zu lassen, oder gibt es eine Möglichkeit pro Datenpunk die Programme anzeigen zu lassen, mit welchem der Datenpunkt verknüpft ist.