NEWS
Admin5: Ich kann keine Objekte mehr manuell anlegen
-
@paul53 sagte:
sondern nur Datenpunkte.
und die könnte @klassisch weiterhin verschachtelt anlegen.
Dann ist ja jeder glücklich
@homoran sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
und die könnte @klassisch weiterhin verschachtelt anlegen.
Nunja, das hätte ich von Anfang an tun können. Habe ich aber bewußt nicht getan. Denn dann muß man immer eine Stufe weiter runter klicken, um die Zahlen zu sehen, während man so alles auf einen Blick sieht

Und nur wenn man die Statistik sehen möchte muß man tiefer klicken. Also praktisch und übersichtlich.
-
@homoran sagte: Auch bei manueller Anlage?
Habe unter Ordner erst einen Datenpunkt "ebene1.ebene2" erstellt und den Namen geändert:

und anschließend den Datenpunkt "ebene1":

Das sollte aber bitte keiner nachmachen!
@paul53 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
@homoran sagte: Auch bei manueller Anlage?
Habe unter Ordner erst einen Datenpunkt "ebene1.ebene2" erstellt und den Namen geändert:

...
Das sollte aber bitte keiner nachmachen!
Na ja - so gings halt vorher und war auch praktisch, aber ist halt nicht mehr gewünscht. Ich hab es verstanden!
-
@paul53 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
@homoran sagte: Auch bei manueller Anlage?
Habe unter Ordner erst einen Datenpunkt "ebene1.ebene2" erstellt und den Namen geändert:

...
Das sollte aber bitte keiner nachmachen!
Na ja - so gings halt vorher und war auch praktisch, aber ist halt nicht mehr gewünscht. Ich hab es verstanden!
@mickym sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
aber ist halt nicht mehr gewünscht.
das stimmt nicht so
nur weil es ging...
@mickym sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:so gings halt vorher und war auch praktisch,
war es nicht gewünscht und schon gar nicht als korrekt dokumentiert.
-
@mickym sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
aber ist halt nicht mehr gewünscht.
das stimmt nicht so
nur weil es ging...
@mickym sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:so gings halt vorher und war auch praktisch,
war es nicht gewünscht und schon gar nicht als korrekt dokumentiert.
-
@apollon77 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
@mickym Auch hier , siehe mein letzter Post: Mal langsam!
Wenn Du alle Objekte per node-red anlegst dann stören dich doch vorerst die Admin-Checks nicht ... Das ganze kommt nur zum Tragen wenn Du manuell noch was tun willst.
Und bedenkt bitte immer noch die Info im Ersten Post:
Weiterhin arbeitet @Dutchman an einem kleinen JavaScript welches das Automatisch korrigieren kann.
OK - mit den Objekten habe ich nun verstanden.
Und ja wenn so ein Script von @Dutchman "Nicht existierenden Objekten" den Typ "folder" spendiert ist es ja gut.

Wenn ich auch in Zukunft mittels NodeRed noch meine Datenhierachien (zumindest unter userdata) erstellen kann, bin ich ja auch zufrieden.
Vielleicht sollte kann man ja ggf. die iobroker out Nodes, dann automatisch mit der Aufgabe betreuen, dass nicht existierenden Hierachieebenen als folder erstellt werden.
Alles gut - ich weiß mir nun zu helfen und bin auch schon still. Ich hab halt so meine Bedenken, dass man mit dem "Zwang" auch nützliche Funktionen verliert (s. mqtt).

Ich kann mich nur aus dem Beitrag hier wiederholen, dass das eine Frage der Philosophie ist und das beispielsweise auch "Verzeichnisse" oder "hierarchische Datenpunkte" eine gewisse Logik haben.
Auch wenn Du vielleicht mit mqtt nichts am Hut hast, aber letztlich ist das ja auch als Datenbank für IoT entworfen worden und ich denke es hat seinen Grund, warum man hier keine Einschränkungen von Datentypen in einer Hierarchie gemacht hat.Aber wie gesagt - ich halte mich hier nun raus, zumindest soweit ich das nun verstanden habe.
@mickym sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Und ja wenn so ein Script von @Dutchman "Nicht existierenden Objekten" den Typ "folder" spendiert ist es ja gut.
@Dutchman kann das sicher besser, aber das hier funktioniert auch. Dennoch, beim Rumfummeln am System empfiehlt sich immer ein Backup
Vorraussetzung: In den Settings der Javascript-Instanz muss setObject erlaubt sein
- Das Setzen des Stammordners erfolgt in Zeile 12
- Als Stammordner werden javascript.x und 0_userdata.0 unterstützt, man könnte oder sollte es evtl. noch auf alias.0 erweitern(Zeile 17)
-
@mickym sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Und ja wenn so ein Script von @Dutchman "Nicht existierenden Objekten" den Typ "folder" spendiert ist es ja gut.
@Dutchman kann das sicher besser, aber das hier funktioniert auch. Dennoch, beim Rumfummeln am System empfiehlt sich immer ein Backup
Vorraussetzung: In den Settings der Javascript-Instanz muss setObject erlaubt sein
- Das Setzen des Stammordners erfolgt in Zeile 12
- Als Stammordner werden javascript.x und 0_userdata.0 unterstützt, man könnte oder sollte es evtl. noch auf alias.0 erweitern(Zeile 17)
-
@mickym sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Ich hab das gemacht und das ging. Problematisch ist erst mal nur, wenn Du gar keinen Stift hast um das Objekt zu editieren, dann musst das Objekt wirklich quasi nochmal anlegen.
Wenn Du keinen stift hast dann existiert das Objekt nicht ... daher musst du es "initial" anlegen
(sorry ... )@apollon77 said in Admin5: Ich kann keine Objekte mehr manuell anlegen:
If Du keinen stift hast dann existiert das Objekt nicht ... daher musst du es "initial" anlegen (sorry ... )
Dann gibt es bei mir viele Instanzen die es eigentlich nicht gibt und das sogar sehr bekannte wie die Homematic Instanzen
Und selbst meine Javascript Instanzen gibt es nicht.
-
@sigi234 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
So Richtig?
javascript.0Punkt*. Müsste ohne eig. auch gehen, habe aber javascript auch getestet
Edit: Nach dem Test hatte ich erst Zeile 17 eingebaut und dort auf javavascript geprüft. Ist korrigiert
-
@sigi234 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
So Richtig?
javascript.0Punkt*. Müsste ohne eig. auch gehen, habe aber javascript auch getestet
Edit: Nach dem Test hatte ich erst Zeile 17 eingebaut und dort auf javavascript geprüft. Ist korrigiert
@fastfoot sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
@sigi234 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
So Richtig?
javascript.0Punkt*. Müsste ohne eig. auch gehen, habe aber javascript auch getestet
Leider Nein
Aha Zeile 17
Geht jetzt

-
@mickym sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Und ja wenn so ein Script von @Dutchman "Nicht existierenden Objekten" den Typ "folder" spendiert ist es ja gut.
@Dutchman kann das sicher besser, aber das hier funktioniert auch. Dennoch, beim Rumfummeln am System empfiehlt sich immer ein Backup
Vorraussetzung: In den Settings der Javascript-Instanz muss setObject erlaubt sein
- Das Setzen des Stammordners erfolgt in Zeile 12
- Als Stammordner werden javascript.x und 0_userdata.0 unterstützt, man könnte oder sollte es evtl. noch auf alias.0 erweitern(Zeile 17)
@fastfoot Also auch von mir herzlichen Dank.
Ich habe es neben 0_userdata, über alias, javascript und mqtt Instanzen gejagt. Und das Script hat nun überall Folder Objekte daraus erstellt.
- Das war eine Superidee, das so zu implementieren.Danke schön!!!!!!!!!!!

Sowas in das Update gebaut - und ....

-
@fastfoot Also auch von mir herzlichen Dank.
Ich habe es neben 0_userdata, über alias, javascript und mqtt Instanzen gejagt. Und das Script hat nun überall Folder Objekte daraus erstellt.
- Das war eine Superidee, das so zu implementieren.Danke schön!!!!!!!!!!!

Sowas in das Update gebaut - und ....

@mickym sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Sowas in das Update gebaut - und ....
Ja, und das mit nur 39 Zeilen und in 1 Sekunde fertig. Wahnsinn.
-
@mickym sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Und ja wenn so ein Script von @Dutchman "Nicht existierenden Objekten" den Typ "folder" spendiert ist es ja gut.
@Dutchman kann das sicher besser, aber das hier funktioniert auch. Dennoch, beim Rumfummeln am System empfiehlt sich immer ein Backup
Vorraussetzung: In den Settings der Javascript-Instanz muss setObject erlaubt sein
- Das Setzen des Stammordners erfolgt in Zeile 12
- Als Stammordner werden javascript.x und 0_userdata.0 unterstützt, man könnte oder sollte es evtl. noch auf alias.0 erweitern(Zeile 17)
@fastfoot sagte: das hier funktioniert auch.
Etwas abgewandelt für eine Struktur folder.device.channel.state bzw. nur der hintere Teil, wenn die Struktur kürzer ist:
// In den Settings der Javascript-Instanz muss setObject erlaubt sein!!! const ids = $('javascript.1.*'); // Anpassen!! var arr = []; function correctObject(id, arr, level){ if(arr.length === 2) return; let type = 'folder'; if(level == 1) type = 'device'; else if(level == 0) type = 'channel'; if(!existsObject(id)) { const obj = { type: type, common:{ name: arr[arr.length - 1] }, native: {} } setObject(id, obj, e => { if (e) log('Fehler beim Schreiben des Objektes: '+ id + ' ' + e); }) } arr.pop(); id = arr.join('.'); level++; correctObject(id, arr, level); } ids.each(id => { arr = id.split('.'); arr.pop(); id = arr.join('.'); if(arr[0] === '0_userdata' || arr[0] === 'javascript' || arr[0] === 'alias') { correctObject(id, arr, 0); } }); -
Oh, Leute, wieso nachträglich Regeln verschärfen? Do it once, do it right! Bein Ersten sind wir frei, beim Zweiten sind wir Knechte.
Und was halt mal erlaubt war, ist dann halt so und man sollte es nicht einschränken. Plötzlich muß man Skripte ändern. Der ioBroker soll für mich arbeiten, nicht ich für den ioBroker.Dann laufen mit Admin 5 evtl meine Skripte nicht mehr?
Habe für meine Statistiken praktische Datenstrukturen, bei der ein Kanal/"Folder" gleichzeitig auch Daten trägt:

Also der Kanal
0_userdata.0.power.smartMeterTotalEnergyStellt nicht nur ein Strukturelement ("Folder") dar, sondern trägt auch noch die Zahl als Inhalt. Wird per Skript für die Datenpunkte, für die ich Statistiken haben möchte, angelegt. Geht wunderbar, schöne Abkürzung und übersichtlich. Super praktisch.
Wird das mit dem neuen Admin jetzt auch verboten/blockiert/funktionslos/bewarnt?@klassisch sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Wird das mit dem neuen Admin jetzt auch verboten/blockiert/funktionslos/bewarnt?
ne, wie Paul53 schon sagte hat das nichts damit zu tun - so wie ich auch in mehreren Posts oben geschrieben habe.
Aber Deine Strukturen sind ein typisches Beispiel für das Ausreizen der Grenzen. Und dann wundern sich User warum Dinge nicht tun ... tja ...
Ob das irgendwann mal mit einem künftigen js-controller angemeckert wird kann ich Dir heute nicht sagen.
-
@apollon77 said in Admin5: Ich kann keine Objekte mehr manuell anlegen:
If Du keinen stift hast dann existiert das Objekt nicht ... daher musst du es "initial" anlegen (sorry ... )
Dann gibt es bei mir viele Instanzen die es eigentlich nicht gibt und das sogar sehr bekannte wie die Homematic Instanzen
Und selbst meine Javascript Instanzen gibt es nicht.
-
@fastfoot sagte: das hier funktioniert auch.
Etwas abgewandelt für eine Struktur folder.device.channel.state bzw. nur der hintere Teil, wenn die Struktur kürzer ist:
// In den Settings der Javascript-Instanz muss setObject erlaubt sein!!! const ids = $('javascript.1.*'); // Anpassen!! var arr = []; function correctObject(id, arr, level){ if(arr.length === 2) return; let type = 'folder'; if(level == 1) type = 'device'; else if(level == 0) type = 'channel'; if(!existsObject(id)) { const obj = { type: type, common:{ name: arr[arr.length - 1] }, native: {} } setObject(id, obj, e => { if (e) log('Fehler beim Schreiben des Objektes: '+ id + ' ' + e); }) } arr.pop(); id = arr.join('.'); level++; correctObject(id, arr, level); } ids.each(id => { arr = id.split('.'); arr.pop(); id = arr.join('.'); if(arr[0] === '0_userdata' || arr[0] === 'javascript' || arr[0] === 'alias') { correctObject(id, arr, 0); } });@paul53 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Etwas abgewandelt...
Gute Idee, die Struktur zu erweitern, da habe ich keinerlei Erfahrung
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?
setObject() scheint logischer, da es ja nichts zu erweitern gibt. Hatte ich ursprünglich aber dann hatte ich wohl einen Denkfehler
arr.pop() made my day
Wieder was gelernt... -
@cash Was meinst du? Weil es nur "hm-rpc" auf der ersten ebene gibt? Dann klapp mal auf ... da ommt dann 0/1 und so
@apollon77 said in Admin5: Ich kann keine Objekte mehr manuell anlegen:
@cash Was meinst du? Weil es nur "hm-rpc" auf der ersten ebene gibt? Dann klapp mal auf ... da ommt dann 0/1 und so
Du hattest oben geschrieben wenn es bei einem existieren Objekt kein Stift gibt wurde das Objekt nicht richtig angelegt. In meinem Screenshot sieht man das nicht nur wir Anwender solche Fälle bei den selbsterstellten Objekten haben sondern das viele Adapter es auch nicht besser machen. Die müssten doch als type „folder“, „meta“ oder was auch immer angelegt werden?
-
@apollon77 said in Admin5: Ich kann keine Objekte mehr manuell anlegen:
@cash Was meinst du? Weil es nur "hm-rpc" auf der ersten ebene gibt? Dann klapp mal auf ... da ommt dann 0/1 und so
Du hattest oben geschrieben wenn es bei einem existieren Objekt kein Stift gibt wurde das Objekt nicht richtig angelegt. In meinem Screenshot sieht man das nicht nur wir Anwender solche Fälle bei den selbsterstellten Objekten haben sondern das viele Adapter es auch nicht besser machen. Die müssten doch als type „folder“, „meta“ oder was auch immer angelegt werden?
-
@dr-bakterius
Wäre auch besser ein eigener Thread ;-))Naja ein Skript gibt es nicht weil hier ja jeder anders arbeitet.
bei mirr legen zB die Skripte die Datenpunkte an , das mache ich nicht manuell im Admin

Wenn Du aber konvertieren willst dann exportiere via admin den javascript.0 Baum, mach "search&Replace" in nem texteditor und reimportiere an der anderen stelle.
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). Dann hat man alles als Dateien, dort auch "seatc&replace" und speichern ...Aber das ist natürlich jetzt seeehr simplifiziert
Muss jeder für sich schauen@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?
-
@jan1 Wie geschrieben wird das bei "Javascript" auf lange absehbare zeit nicht passieren. Es ist "Legacy" aber naja da ist zuviel schon da
@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?
