NEWS
Admin5: Ich kann keine Objekte mehr manuell anlegen
-
@paul53 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Weshalb ist "controll-own.0" ein Folder-Objekt? Ändere es in den Eigenschaften in "meta".
das habe ich von hand geändert - ich habe mich nicht "getraut" meta daraus zu machen - da ich nicht weiß, ob das irgendwelche auswirkungen haben kann, wenn ich ein solches, selbstangelegtes object zu meta mache
@liv-in-sky sagte: irgendwelche auswirkungen haben kann, wenn ich ein solches, selbstangelegtes object zu meta mache
Es hat keine Auswirkung, entspricht aber dem Standard, dass Objekte der zweiten Punkt-Ebene ("xyz.0") vom Typ "meta" sind.
-
@liv-in-sky sagte: irgendwelche auswirkungen haben kann, wenn ich ein solches, selbstangelegtes object zu meta mache
Es hat keine Auswirkung, entspricht aber dem Standard, dass Objekte der zweiten Punkt-Ebene ("xyz.0") vom Typ "meta" sind.
-
@apollon77 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Die Skripte könnte man auch einfach machen in dem man die Mirroring Funktion des Javascript adapter nutzt (also ausser man nutzt blockly, dann blöd).
Geht doch bei Blockly auch - meine Blocklys werden in Dateien gespiegelt - oder habe dich da falsch verstanden?
-
@liv-in-sky Typ Meta??? Warum? Wozu? Das ist an sich falsch
-
@liv-in-sky Typ Meta??? Warum? Wozu? Das ist an sich falsch
@apollon77 was soll ich da reinschreiben ? was hälst du für besser
-
@paul53 Könnte man nicht auch die bestehende Struktur aufräumen? Wenn ich das richtig sehe ist
Gerät - Status ja nicht gut. Sondern eher folder - Status oder channel - StatusBzw gibt es eine Möglichkeit einfach alle Objekte von "eigene Objekte" nach 0_userdata zu kopieren. Man müßte danach nur noch die Scripte anpassen. Könnte dann "eigene Objekte" löschen und wäre clean. Gut man müsste noch bei den neuen Objekten SQL aktivieren und den Alias anpassen damit die alten Werte erhalten bleiben.
Zusatzfrage: Gibt es die Möglichkeit in den eigenen Objekten nach den Objekttypen "array" und "object" zu suchen? Da gab es ja auch ein Breaking Change. Bin mir bei mir nicht 100% sicher ob ich solche Felder habe. Die, die ich wußte habe ich geprüft. Die hatte ich als String angelegt und sollte somit dort keine Probleme haben.
@cash sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Bzw gibt es eine Möglichkeit einfach alle Objekte von "eigene Objekte" nach 0_userdata zu kopieren.
Hatten wir weiter oben schonmal: Objekt-Export im Admin, texteditor Search&Replace, Object Import im Admin
-
@liv-in-sky Typ Meta??? Warum? Wozu? Das ist an sich falsch
@apollon77 sagte: Typ Meta??? Warum? Wozu? Das ist an sich falsch
Was ist daran falsch? "0_userdata.0", "0_test.0", "admin.0", "alias.0" ... haben auch den Typ "meta".
-
@paul53
script lief - ohne fehler
ich kann keine datenpunkt in meiner struktur anlegen - liegt das daran, dass der typ von controll-own falsch ist ?
wenn ja - kann ich noch was tun - oder nur als expert arbeiten bzw mit der alten benutzeroberfläche für den objecte-tab
das umstellen der struktur nach userdata ist eher keine option - dp unter controll-own: 771, scripte: sehr viele - vis : sehr viele
@liv-in-sky Ich denke das wird faktisch nicht funktionieren weil Admin denkt das das ein Adapter ist und deren Objekte darf keiner ändern. Vllt im Expertenmodus? Ansonsten halt zum anlegen von neuen Objekten dort mit ner zweiten Admin Instanz mit alter UI arbeiten so lange bis Du umgestellt hast
-
@liv-in-sky sagte: oder nur als expert arbeiten
So ist es, wenn manuell Datenpunkte unter "controll-own" erstellt werden sollen (hatte ich oben nachträglich geschrieben).
Weshalb ist "controll-own.0" ein Folder-Objekt? Ändere es in den Eigenschaften in "meta".
-
@liv-in-sky Ich denke das wird faktisch nicht funktionieren weil Admin denkt das das ein Adapter ist und deren Objekte darf keiner ändern. Vllt im Expertenmodus? Ansonsten halt zum anlegen von neuen Objekten dort mit ner zweiten Admin Instanz mit alter UI arbeiten so lange bis Du umgestellt hast
@apollon77 sagte: Vllt im Expertenmodus?
Ja, nur im Expertenmodus.
-
@dr-bakterius sagte: meine Blocklys werden in Dateien gespiegelt
Aber nicht als Blockly, sondern der erzeugte Javascript-Code. Ob man aus der letzten Zeile wieder ein Blockly machen kann?
@paul53 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Ob man aus der letzten Zeile wieder ein Blockly machen kann?
Man kann, ich habe dazu auch schon verschiedene Beiträge gepostet. Die Behandlung ist etwas unterschiedlich je nachdem woher die Daten kommen(Extract aller Skripte, Blockly.js, backup.json). Hier mal für ein Beispiel für eine Blocklydatei im Mirrorpfad. Man könnte diese auch gleich ins System einlesen, ist hier aber nicht gemacht sondern wird als Datei zur Verfügung gestellt. Ist ein Skript aus meiner ersten Zeit mit Javascript.
Pfad und Filename sind in den Zeilen 8 + 9 anzugeben, die Importdaten liegen dann als Datei.xml vor/** * Zweck: Extrahiert XML Datei aus Blockly.js im Mirror-Pfad * Datum: 08.08.2021 * Autor: @fastfoot */ var fs = require('fs'); var scriptPath = '/opt/iobroker/scripts/'; var inFile = 'TestXY' var scriptName1 = scriptPath + inFile + '.js'; var scriptName2 = scriptName1.replace('.js','.xml'); function getXML() { fs.readFile(scriptName1, 'utf8', function(error, data) { if(error) log('Fehler beim Lesen von ' + scriptName1, 'error'); else { const pos = data.lastIndexOf('\n'); if (pos !== -1) { data = data.substring(pos + 1); if (data[0] === '/' && data[1] === '/') { data = decodeURIComponent(Buffer.from(data.substring(2), 'base64').toString('utf8')); if (data.startsWith('<xml xmlns')) { fs.writeFile(scriptName2, data, function(err) { if(err) return console.log(err); }); } } } } }); } getXML(); -
@paul53 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Weshalb ist "controll-own.0" ein Folder-Objekt? Ändere es in den Eigenschaften in "meta".
Nee bitte nicht meta ... Das ist für was anderes
@apollon77 said in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Nee bitte nicht meta ... Das ist für was anderes
Wofür ist meta? Und warum ist 0_userdata dann meta?
-
@liv-in-sky Ich denke das wird faktisch nicht funktionieren weil Admin denkt das das ein Adapter ist und deren Objekte darf keiner ändern. Vllt im Expertenmodus? Ansonsten halt zum anlegen von neuen Objekten dort mit ner zweiten Admin Instanz mit alter UI arbeiten so lange bis Du umgestellt hast
@apollon77 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Ansonsten halt zum anlegen von neuen Objekten dort mit ner zweiten Admin Instanz mit alter UI arbeiten so lange bis Du umgestellt hast
sorry - aber das ist wie von neu anzufangen
- vis
- nodered
- blockly
- aliase
- alle js scripte
- flot
- smart controll adapter setting
- iqontrol setting
- eventlist adapter setting
muss alles umgestellt werden und soll am ende auch noch funktionieren
ich hoffe einfach, dass wird in der zukunft keine auswirkungen haben - ich kann damit leben, dass ich keine objecte mehr anlegen kann bzw nur im expert modus - neue sachen kann ich unter userdata machen -aber das alte alles umzustellen wäre etwas zuviel verlangt
-
@apollon77 said in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Nee bitte nicht meta ... Das ist für was anderes
Wofür ist meta? Und warum ist 0_userdata dann meta?
@cash Ein meta Objekt ist die Grundlage um im ioBroker.eigenen File-Storage Dateien ablegen zu können.
0_userdata.0 hat es weil man auch unter dem Namespace Visu-Files ablegen können soll das man nicht immer alles in die Namespaces der Visu Adapter legen muss. -
@apollon77 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Ansonsten halt zum anlegen von neuen Objekten dort mit ner zweiten Admin Instanz mit alter UI arbeiten so lange bis Du umgestellt hast
sorry - aber das ist wie von neu anzufangen
- vis
- nodered
- blockly
- aliase
- alle js scripte
- flot
- smart controll adapter setting
- iqontrol setting
- eventlist adapter setting
muss alles umgestellt werden und soll am ende auch noch funktionieren
ich hoffe einfach, dass wird in der zukunft keine auswirkungen haben - ich kann damit leben, dass ich keine objecte mehr anlegen kann bzw nur im expert modus - neue sachen kann ich unter userdata machen -aber das alte alles umzustellen wäre etwas zuviel verlangt
@liv-in-sky Ich fange lieber jetzt damit an als in ein oder zwei Jahren wenn die Entwickler eine Version rausbringen wo es dann garnicht mehr geht und man dann alles schnell, schnell umstellen muss.
Ich werde auch einige Monate brauchen und richtig schön finde ich es nicht aber was nützt es? Es ist halt schade, dass man das früher machen konnte und das System es zugelassen hat…
-
@liv-in-sky Ich fange lieber jetzt damit an als in ein oder zwei Jahren wenn die Entwickler eine Version rausbringen wo es dann garnicht mehr geht und man dann alles schnell, schnell umstellen muss.
Ich werde auch einige Monate brauchen und richtig schön finde ich es nicht aber was nützt es? Es ist halt schade, dass man das früher machen konnte und das System es zugelassen hat…
-
@liv-in-sky Ich fange lieber jetzt damit an als in ein oder zwei Jahren wenn die Entwickler eine Version rausbringen wo es dann garnicht mehr geht und man dann alles schnell, schnell umstellen muss.
Ich werde auch einige Monate brauchen und richtig schön finde ich es nicht aber was nützt es? Es ist halt schade, dass man das früher machen konnte und das System es zugelassen hat…
@cash sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Ich werde auch einige Monate brauchen und richtig schön finde ich es nicht aber was nützt es? Es ist halt schade, dass man das früher machen konnte und das System es zugelassen hat…
leider geht das nicht über monate bzw ist viel aufwendiger - alles auf einmal oder garnicht - die vis macht das nicht mit, nur einzelene sachen umzustellen - der aufwand wäre um einiges mehr, wenn du das langsam machst - natürlich abhängig davon, was der nutzer konfiguriert hat, da du sonst immer wieder die selben umstellungen (search & replace) machen musst
-
@paul53 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Ob man aus der letzten Zeile wieder ein Blockly machen kann?
Man kann, ich habe dazu auch schon verschiedene Beiträge gepostet. Die Behandlung ist etwas unterschiedlich je nachdem woher die Daten kommen(Extract aller Skripte, Blockly.js, backup.json). Hier mal für ein Beispiel für eine Blocklydatei im Mirrorpfad. Man könnte diese auch gleich ins System einlesen, ist hier aber nicht gemacht sondern wird als Datei zur Verfügung gestellt. Ist ein Skript aus meiner ersten Zeit mit Javascript.
Pfad und Filename sind in den Zeilen 8 + 9 anzugeben, die Importdaten liegen dann als Datei.xml vor/** * Zweck: Extrahiert XML Datei aus Blockly.js im Mirror-Pfad * Datum: 08.08.2021 * Autor: @fastfoot */ var fs = require('fs'); var scriptPath = '/opt/iobroker/scripts/'; var inFile = 'TestXY' var scriptName1 = scriptPath + inFile + '.js'; var scriptName2 = scriptName1.replace('.js','.xml'); function getXML() { fs.readFile(scriptName1, 'utf8', function(error, data) { if(error) log('Fehler beim Lesen von ' + scriptName1, 'error'); else { const pos = data.lastIndexOf('\n'); if (pos !== -1) { data = data.substring(pos + 1); if (data[0] === '/' && data[1] === '/') { data = decodeURIComponent(Buffer.from(data.substring(2), 'base64').toString('utf8')); if (data.startsWith('<xml xmlns')) { fs.writeFile(scriptName2, data, function(err) { if(err) return console.log(err); }); } } } } }); } getXML();@fastfoot sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
@paul53 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Ob man aus der letzten Zeile wieder ein Blockly machen kann?
Man kann, ich habe dazu auch schon verschiedene Beiträge gepostet. Die Behandlung ist etwas unterschiedlich je nachdem woher die Daten kommen(Extract aller Skripte, Blockly.js, backup.json). Hier mal für ein Beispiel für eine Blocklydatei im Mirrorpfad. Man könnte diese auch gleich ins System einlesen, ist hier aber nicht gemacht sondern wird als Datei zur Verfügung gestellt. Ist ein Skript aus meiner ersten Zeit mit Javascript.
Pfad und Filename sind in den Zeilen 8 + 9 anzugeben, die Importdaten liegen dann als Datei.xml vor/** * Zweck: Extrahiert XML Datei aus Blockly.js im Mirror-Pfad * Datum: 08.08.2021 * Autor: @fastfoot */ var fs = require('fs'); var scriptPath = '/opt/iobroker/scripts/'; var inFile = 'TestXY' var scriptName1 = scriptPath + inFile + '.js'; var scriptName2 = scriptName1.replace('.js','.xml'); function getXML() { fs.readFile(scriptName1, 'utf8', function(error, data) { if(error) log('Fehler beim Lesen von ' + scriptName1, 'error'); else { const pos = data.lastIndexOf('\n'); if (pos !== -1) { data = data.substring(pos + 1); if (data[0] === '/' && data[1] === '/') { data = decodeURIComponent(Buffer.from(data.substring(2), 'base64').toString('utf8')); if (data.startsWith('<xml xmlns')) { fs.writeFile(scriptName2, data, function(err) { if(err) return console.log(err); }); } } } } }); } getXML();wußte gar nicht, dass du sowas gemacht hast - muss ich mal testen n - das wäre def. eine große hilfe
könnte man da noch js scripte mit reinbingen, damit dort auch die objecte replaced werden können und eine schleife für einen bestimmten ordner - wie "controll-own.0.xxx"
EDIT: sowas: "filesystem.readdirSync(dir).forEach(function(file) {"
-
@fastfoot sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
@paul53 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Ob man aus der letzten Zeile wieder ein Blockly machen kann?
Man kann, ich habe dazu auch schon verschiedene Beiträge gepostet. Die Behandlung ist etwas unterschiedlich je nachdem woher die Daten kommen(Extract aller Skripte, Blockly.js, backup.json). Hier mal für ein Beispiel für eine Blocklydatei im Mirrorpfad. Man könnte diese auch gleich ins System einlesen, ist hier aber nicht gemacht sondern wird als Datei zur Verfügung gestellt. Ist ein Skript aus meiner ersten Zeit mit Javascript.
Pfad und Filename sind in den Zeilen 8 + 9 anzugeben, die Importdaten liegen dann als Datei.xml vor/** * Zweck: Extrahiert XML Datei aus Blockly.js im Mirror-Pfad * Datum: 08.08.2021 * Autor: @fastfoot */ var fs = require('fs'); var scriptPath = '/opt/iobroker/scripts/'; var inFile = 'TestXY' var scriptName1 = scriptPath + inFile + '.js'; var scriptName2 = scriptName1.replace('.js','.xml'); function getXML() { fs.readFile(scriptName1, 'utf8', function(error, data) { if(error) log('Fehler beim Lesen von ' + scriptName1, 'error'); else { const pos = data.lastIndexOf('\n'); if (pos !== -1) { data = data.substring(pos + 1); if (data[0] === '/' && data[1] === '/') { data = decodeURIComponent(Buffer.from(data.substring(2), 'base64').toString('utf8')); if (data.startsWith('<xml xmlns')) { fs.writeFile(scriptName2, data, function(err) { if(err) return console.log(err); }); } } } } }); } getXML();wußte gar nicht, dass du sowas gemacht hast - muss ich mal testen n - das wäre def. eine große hilfe
könnte man da noch js scripte mit reinbingen, damit dort auch die objecte replaced werden können und eine schleife für einen bestimmten ordner - wie "controll-own.0.xxx"
EDIT: sowas: "filesystem.readdirSync(dir).forEach(function(file) {"
@liv-in-sky sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
wußte gar nicht, dass du sowas gemacht hast - muss ich mal testen n - das wäre def. eine große hilfe
da hast du meine Beiträge wohl nicht beachtet, bin ja auch noch nicht soo lange im Forum aktiv. Ausserdem waren das fast alles Antworten auf Probleme Anderer, keine eigenen, als [Skript] gekennzeichnete eigene Threads. Ich finde die teilweise selbst nicht mehr mit der SuFu hier im Forum
könnte man da noch js scripte mit reinbingen, damit dort auch die objecte replaced werden können und eine schleife für einen bestimmten ordner - wie "controll-own.0.xxx"
EDIT: sowas: "filesystem.readdirSync(dir).forEach(function(file) {"Können täte man, habe mal so einen kompletten Mirrorpfad in mein Testsystem importiert, rein aus Spaß. Ich verstehe allerdings nicht ganz was du konkret vorhast. Wenn du mal so ein Skript posten würdest und was du daran ändern möchtest kann ich gerne mal schauen
-
@liv-in-sky sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
wußte gar nicht, dass du sowas gemacht hast - muss ich mal testen n - das wäre def. eine große hilfe
da hast du meine Beiträge wohl nicht beachtet, bin ja auch noch nicht soo lange im Forum aktiv. Ausserdem waren das fast alles Antworten auf Probleme Anderer, keine eigenen, als [Skript] gekennzeichnete eigene Threads. Ich finde die teilweise selbst nicht mehr mit der SuFu hier im Forum
könnte man da noch js scripte mit reinbingen, damit dort auch die objecte replaced werden können und eine schleife für einen bestimmten ordner - wie "controll-own.0.xxx"
EDIT: sowas: "filesystem.readdirSync(dir).forEach(function(file) {"Können täte man, habe mal so einen kompletten Mirrorpfad in mein Testsystem importiert, rein aus Spaß. Ich verstehe allerdings nicht ganz was du konkret vorhast. Wenn du mal so ein Skript posten würdest und was du daran ändern möchtest kann ich gerne mal schauen
ich möchte meine datenpunkte von "controll-own.0" nach "0_userdata.0.controll-own." umstellen
normalerweise, wenn ich es sehe, schau ich mir deine sachen gerne an - du hast eigentlich immer gute scripte am start

ich hab auch ein script, dass alle scripte im mirror-pfad einliest und durchsucht - ich suche darin nach datenpunkten und schaue nach, ob die noch existieren (war mal zum testen) cool wäre es, wenn man in den einzelnen scripten die object-pfade ändern könnte - bei mir - alles was "controll-own.0." enthält in "0_userdata.0.controll-own." zu ändern - vorallem auch in blocklys
ich denke, man könnte das evtl mit nodered auch machen (weiß ich nicht - müßte man schauen, wie dort gespeichert wird)
dann noch ein paar adapter settting angleichen und die ganzen vis seiten und fertig ist die umsetellung von "controll-own.0" nach "0_userdata.0.controll-own."

