NEWS
Admin5: Ich kann keine Objekte mehr manuell anlegen
-
@tschaeens sagte: Ich lege meine Objekte direkt mit Blockly oder einem js script an.
Dann hast Du ohnehin keine Probleme. Der Admin löscht nichts.
-
@mickym
meinst du das von fastfood das lnge skript oder so? sonst finde ich ncihts... habe noch nie was mit node red gemacht. -
NodeRed Flow gelöscht.
-
@rebel85 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
@mickym
meinst du das von fastfood das lnge skript oder so? sonst finde ich ncihts... habe noch nie was mit node red gemacht.NodeRed Flow gelöscht.
Das andere mit Import und Export ist vielleicht einfacher - habe aber gesehen, Du musst dann wieder auf die admin4 Oberfläche schalten. Beim Admin5 hat sich bei mir da nichts getan.
-
@mickym Habe das Skript mal getestet - klappt soweit schnell und gut. Auch alle Werte werden übernommen. Es gibt aber ein Problem: alle folder werden als state angelegt. Man müsste also wieder alle Ordner korrigieren. Gibt es dafür eine Lösung?
-
gelöscht
-
@mickym sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Es sollten keine Stiftsymbole vorhanden sein
Doch:
Die Rollen, Räume und die Einheiten werden leider nicht mit kopiert. Ebenso die Aufzeichnungseinstellungen (optimal mit Alias-ID) sind weg. Man spart sich zwar einiges an Arbeit, aber es bleibt noch genug übrig.
-
gelöscht
-
@mickym sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Das mit den Rollen Räumen das liegt daran, dass dies keine Bestandteile der Objekte sind.
Okay, die Raumzuordnung finde ich nicht in der Objektbeschreibung, aber die Rolle genauso wie die Einheit:
-
@mickym sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Es sollten keine Stiftsymbole vorhanden sein
Ach ja, der node-red Adapter wirft beim Erstellen eines 'folder' folgende Warnung aus:
Object 0_userdata.0.Ordnername is invalid: obj.common.type has an invalid value (undefined) but has to be one of number, string, boolean, array, object, mixed, file, json
-
@dr-bakterius Ja das weiß ich - das geht halt alles nur in der Übergangszeit zum Kopieren -
Ok Rollen, Units etc. - das kann ich in dem Flow noch modifizieren, das ist aber dann doch ein komplexerer Flow - weil ja nicht jeder Datenpunkt diese Einheiten hat. Da mache ich mich vielleicht morgen dran. Aber heute nicht mehr.
Auch die Raumzuordnungen kann ich anscheinend auslesen, aber wie gesagt ich weiß nicht ob ich das Schreiben kann.
-
Wobei ich habe es gesehen mit dem Export und Import ist doch einfach da ist dann alles dabei!! Dann betreibe ich nicht den Aufwand.
Flow gelöscht - bevor da Unsinn getrieben wird.
@Dr-Bakterius Am Besten Du löscht den kopierten Baum wieder und legst den über Export, Texteditor IDs ersetzen und Import neu an.
-
@mickym Trotzdem Danke für deine Mühe...
Hab' ich wohl überlesen: wie geht 'Export' -> 'Import'?
-
@dr-bakterius @mickym
Guter Ansatz, aber wenn ich das alles so lese, dann glaube ich, dass ich meine 70-80 DPs wahrscheinlich lieber direkt manuell migriere.
Ich befürchte, dass ich mich hinterher sonst mehr an den Nachbesserungen aufreiben würde, als wenn ich das direkt händisch mache.
Auch für die Blocklys ...Dass kann dann ja ruhig auch bis Jahresende dauern ..
Btw. mal eine Frage zu der sandfarbenen Infobox im Web-Frontend unter Info:
Da steht: "Das Speichern von Objekten oder Arrays muss immer als String erfolgen und dies wird von js-controller 3.3 überprüft. In vielen Fällen wurde dies beim Speichern oder Lesen von Werten nicht richtig gemacht und dadurch waren die Benutzer verwirrt."Also unter 'Objekten' verstehe ich auch Datenpunkte, richtig? Muss ich die dann 'nur' künftig immer als 'String' anlegen, oder gilt das auch für meine bisherigen unter javascript.0/[irgendein 'Ordner(=Kanal)'].
Weil wenn das so wäre, würde ich die tatsächlich wohl eher noch alle vor dem Update umstellen -
@pedder007 Also 70 oder Datenpunkte kann man spielend manuell migrieren. Ich habe meine ca. 700 Datenpunkte manuell migriert und gleichzeitig die Struktur leicht angepasst. Aufwand würde ich mal sagen ca. 30 Stunden incl Anpassung aller Scripte. Das einzige was mir noch fehlt ist vis das ist derzeit eher nutzlos Aber ich denke das werde ich vielleicht morgen schaffen.
Nächstes Wochenende könnte ich dann wohl mal das update machen. Wahrscheinlich werde ich aber noch abwarten.
-
@dr-bakterius Na ich habs gerade gesehen - wäre wohl eine Kombination aus beiden gut - da die Werte bei dem Export nicht mit übernommen werden - also dann wohl die Kombi aus beiden - zumindest sollten dann Rollen, Units etc übernommen werden.
- Baum exportieren - Download der JSON Datei
-
Mit Texteditor und suchen ersetzen den alten gegen den neuen Pfad ersetzen
-
Dann die Objekte mit der neuen JSON Datei wieder importieren
Die Werte damit nicht übernommen, sondern die Objekte, da müsstest Du dann doch mein NodeRed Flow oder ein Blockly etc. drüber laufen lassen. Da aber nur die ID ausgetauscht ist - bleiben alle Objekteigenschaften wie Unit etc. erhalten - deswegen war mir das zu viel - das im Flow abzubilden, da man quasi immer überprüfen müsste welche zusätzliche Eigenschaften ein Objekt hat und ich hatte ja nur die Werte übernommen.
Bei den Räumen und Funktionen musst Du alle Punkte unter enums überprüfen und in den Objektdaten die members anpassen.
-
@pedder007 In meinen Augen mussten Objekte immer schon als String abgespeichert werden. Man hat ein Objekt meist mit stringfy in einen JSON String konvertiert und beim Lesen den String wieder in ein Objekt gewandelt. Das macht der js-controller nur automatisch, sodass man Objekte wohl direkt schreiben kann und diese in einen JSON String gewandelt werden.
-
@pedder007 sagt: "Das Speichern von Objekten oder Arrays muss immer als String erfolgen und dies wird von js-controller 3.3 überprüft.
Das betrifft nur die Adapter-Entwickler: Objekte / Arrays müssen per JSON.stringify() als Wert in Datenpunkte geschrieben werden. Das war vorher nicht so.
Der Javascript-Adapter wandelt ab Version 5.2.x automatisch. -
@cash wow, das hört sich fix an , allerdings würden sich 30 Stunden bei mir dann über Wochen hinziehen. Deswegen werde ich das wohl eher nach dem Update machen, wenn es geht, nur diese String-Fragestellung hatte mich irritiert.
... und an VIS muss ich dann natürlich auch ran ...@mickym vielleicht habe ich auch irgendwas falsch verstanden, aber ich habe eigene Objekte (= Datenpunkte) auch z. B. als Zahl oder Boolean definiert!? Ist hier mit dem String etwas anderes gemeint?
@paul53 ich meinte tatsächlich nur eigene Datenpunkte. Ich bin Lichtjahre davon entfernt irgendeinen Adapter selber entwickeln zu können
-
@pedder007 Ok dann haben wir uns - oder Du was falsch verstanden.
Ein iobroker Objekt ist wieder was anderes als ein iobroker State.
Beim javascript Adapter ging es um Javascript Objekte.
Von was @paul53 und ich geschrieben habe ist im state ein Javascript Objekt zu speichern. Das musste man eben in einen JSON String umwandeln und das macht der Adapter nun in der Version 3.3 und neuer automatisch.Die States, die Du meinst sind aus Javascript Sicht skalare Werte (also Boolean, Zahl, String) und keine Objekte.
Das meinte ich mit Objekten: https://www.w3schools.com/js/js_objects.asp
da haben wir aneinander vorbei geredet.