NEWS
Admin5: Ich kann keine Objekte mehr manuell anlegen
-
@apollon77 Tut mir Leid, dass ich da bezüglich der eigens erstellten DP im Ordner javascript.0 nachfragen muss. In meiner Erinnerung, war es so, dass die Erstellung dieser eigenen DP dort empfohlen wurde und es gar nicht möglich war, diese woanders anzulegen, zumindest über die Funktion CreateState aus einem (Blockly-) Script. Erste später ging es eben auch in 0_userdata.0. Seit dem dies geht, sind erstellte DP auch dort erstellt worden, aber es gibt eben noch viele DP in javascript.0 die auch in etlichen Scripten genutzt werden. Einerseits lese ich, dass diese DP bei einem javascript Update gelöscht werden, andererseits, dass da auf "lange Zeit nichts passieren wird". Was ist nun richtig? Werden eigene DP in javascript.0 "geduldet" und falls ja, müssen die in einem Unterordner sein? Wäre javascript.0.Kalender.Datuminfo.de.Woche.Jahr.Kalenderwoche.Nummer OK?
Wäre javascript.0.Adventszeit OK? -
@fastfoot sagte: Du hast obj.native:{} gesetzt, aber zumindest Admin5 setzt dieses beim manuellen Anlegen für keines der level folder, device oder channel, weshalb ich es auch weggelassen hatte. Macht es dennoch Sinn?
Bei einigen Device- und Channel-Objekten habe ich es gesehen. Ob es Sinn macht, kann vielleicht @apollon77 beantworten?
-
@abruni sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Einerseits lese ich, dass diese DP bei einem javascript Update gelöscht werden, andererseits, dass da auf "lange Zeit nichts passieren wird". Was ist nun richtig? Werden eigene DP in javascript.0 "geduldet"
da fehlt ein wichtiges Wort
bei einem javascript Update gelöscht werden könnten
der Rest passt
-
@abruni sagte: Wäre javascript.0.Kalender.Datuminfo.de.Woche.Jahr.Kalenderwoche.Nummer OK? Wäre javascript.0.Adventszeit OK?
Es ist beides OK, aber wenn beides gleichzeitig existiert, ist es schlecht strukturiert, womit der Nutzer allerdings selbst zurecht kommen muss.
-
@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?
-
-
@liv-in-sky ja kannst Du. Musst Du nur anpassen also statt 0_userdata. Dein Ordner.
Wichtig die Scripte räumen nicht auf. Das heißt falsche Struktur bleibt falsch. Nur bei nicht existieren Objekten wird entsprechende etwas gemacht. Bei z. B. LG_TV . ;Matrix 1 - 3 bleiben Device bzw Channel.
-
@liv-in-sky sagte: kann ich eure scripte auch bei meiner struktur anwenden
Ja, mit Zeile 2:
const ids = $('controll-own.0.*');
und Erweiterung der Zeile 33:
if(arr[0] === '0_userdata' || arr[0] === 'javascript' || arr[0] === 'controll-own') {
Du hast allerdings schon auf der untersten Ebene einige Device- und Channel-Objekte, die nicht angefasst werden (Zeile 11).
Die Zeilennummern beziehen sich auf mein Skript. -
@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.
-
@paul53 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
if(arr[0] === '0_userdata' || arr[0] === 'javascript' || arr[0]) === 'controll-own') {
erstmal danke
in der geänderten zeile 33 ist eine klammer zuviel (nach 3ten arr[]) (nur falls andere das auch nutzen wollen)
@paul53 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Du hast allerdings schon auf der untersten Ebene einige Device- und Channel-Objekte, die nicht angefasst werden (Zeile 11).
bedeutet das, ich kann keine dp anlegen (ohne expert zu sein)
ich mach jetzt erstmal ein proxmox backup
-
@liv-in-sky sagte: in der geänderten zeile 33 ist eine klammer zuviel
Danke, korrigiert.
@liv-in-sky sagte: bedeutet das, ich kann keine dp anlegen
Doch. Datenpunkte können unter Channels und Devices erstellt werden (als Experte). Mit einem eigenen Verzeichnis in der Wurzel bist Du Experte.
-
@cash sagte: Gerät - Status ja nicht gut.
Doch - siehe Doku, die allerdings nicht ganz aktuell ist (folder fehlt).
@cash sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Man müßte danach nur noch die Scripte anpassen.
Nur noch? Das kann viel Aufwand sein. Visualisierungen nicht zu vergessen.
@cash sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Gibt es die Möglichkeit in den eigenen Objekten nach den Objekttypen "array" und "object" zu suchen?
Wozu? Javascript behandelt sie ab Version 5.2.x richtig. Viele Adapter sind auch schon angepasst.
-
@paul53 said in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Nur noch? Das kann viel Aufwand sein. Visualisierungen nicht zu vergessen.
Ich weiß auch das ist noch eine Menge arbeit aber man hat sich das anlegen unter 0_userdata schon mal gespart. In den Scripten kann man ja gut suchen und ersetzen.
VIS ist natürlich auch noch mal großer Aufwand.Was das Thema array und object betrifft: Ab JavaScript Adapter Version 5.2.0 werden die Werte der Objekttypen "object" und ",array" automatisch konvertiert! Das bedeutet, dass beim Lesen solcher Zustandswerte kein "JSON.parse", mehr benötigt wird. Wenn ein JSON-Parse verwendet wird, kann das Skript abstürzen und muss angepasst werden - einfach das JSON.parse entfernen. Auch ein JSON.stringify wird beim Schreiben solcher Zustandswerte nicht mehr benötigt. Dies betrifft nur Zustandswerte von Objekten vom Typ "Array" oder "Objekt".
Also muss man u. U. dort auch noch etwas machen…
-
@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 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
liegt das daran, dass der typ von controll-own falsch ist ?
ja. Das ist das klassische Problem
@liv-in-sky sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
kann ich noch was tun
ebenfalls ja - @paul53 hatte das irgendwo beschrieben.
man musste irgendwo / irgendwie dieses "Verzeichnis" mit identischem Namen nochmal als "folder" anlegen -
@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".
-
@homoran sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
ebenfalls ja - @paul53 hatte das irgendwo beschrieben.
man musste irgendwo / irgendwie dieses "Verzeichnis" mit identischem Namen nochmal als "folder" anlegenich kann auf der eben ja nix anlegen- wäre ja die unterste ebene - bei der alten benutzeroberfläche hat man einfach nichts ausgewählt und dann etwas angelegt - jetzt funktioniert das nicht mehr
ok - doof für mich - danke
das umstellen ist viel aufwand - man bräuchte ein script (für die objecte) welche die objekte liest (mit history,usw) und die states und diese dann neu anlegt und die states setzt- dann müßte auch für die aliase ein korrektur script gemacht werden - für die vis muss jede view in jedem project angefasst werden und die dp ersetzt werden. js-scripte einzeln zu verändern ist viieel zu aufwendig - da müßte man doch über die linux ebene arbeiten und mit einem bash script alles durchgehen - blockly/rules würden nur einzeln zu ändern sein, flot muss einzeln geändert werden.adapter wie smart control und iqontrol sind auch noch da
sehe ich das falsch und/oder habe ich noch was vergessen ? -
@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.
-
habe nur das geändert - sollte so ok sein