NEWS
Admin5: Ich kann keine Objekte mehr manuell anlegen
-
@mickym Dann hatte sich da irgendwas verklemmt. In dem Fall wurden bestimmte Daten innerhalb von 60s nicht geladen. Checke dann ggf mal das Netzwerk oder die Verbindung
-
@apollon77 sagte: User sollten sich ausschliesslich in javascript.X (weil halt früher so war) oder alias.0 oder 0_userdata.0 aufhalten mit eigenen Objekten!
Bin voll Deiner Meinung.
-
@fabian1 sagte in js-controller 3.3 jetzt im STABLE!:
Warum darf ich z.B. nicht mehr bestimmen, wo ich welche Datenpunkte und Objekte anlegen möchte. Wenn ich das tue, wird das bestimmt seine Gründe haben.
Auch wenn das hier komplett in den Admin Thread gehört kurz ein paar Worte. Weitere Diskussion aber bitte im anderen Thread!
Hm ... also in den Bereichen wo es Sinn macht das User eigene States anlegen (javascipt/alias/0_userdata.0) ist alles noch erlaubt. Das einzige was jetzt gefordert ist das die Objektpfade bitte sauber ausformuliert sind - bedeutet das zwischendrin Bitte "Verzeichnis" Objekte existieren. Mehr ist an der Stelle nicht limitiert!
Warum das sinn macht ist ganz einfach: Viele User fordern immer mehr das Visualisierungen und ggf Smart-Assistenten doch bitte alles was so da ist ganz automatisch korrekt gefunden und ermittelt/erraten wird. Das geht, aber nur wenn auch bestimmte Regeln existieren.Falls Du in der Vergangenheit in den Objekten die Adapter angelegt haben "rumgepfuscht" (ja absichtline Wortwahl) hast, so hast Du etwas getan was noch NIE sinnvoll war und ggf zu mehr Problemen und Support-Fällen geführt hat wie andere Dinge. Daher ist dies jetzt ebenso eingeschänkt.
Wenn Du gute Gründe hast für etwas und es beschreiben kannst und wir es nachvollziehen können lass gern in einem Admin-Issue diskutieren ob bestimmte Dinge wieder zu lockern sein können.
-
@fabian1 ALao wenn ich das lese kann ich deinen Frust ein bissl nachvollziehen ... ich habe aber auch ein "ABER" Du schreibst Du hast es so aufgebaut ... Und ja ioBroker hat in der Vergangenheit sehr viel zugelassen was nie so gewollt und geplant war. DU willst nicht wissen wieviel Code existiert der sich nur um Edge-Cases von "Da hat ein User wieder mal die Grenzen des machbaren ausgetestet" zu behandeln. Am Ende ist die Realität die das 99,9999% der User damit nie ein Problem haben werden ... die anderen müssen vllt mal über Ihre Strukturen nachdenken.
Und ohne jetzt hier die große "wie kann ich das umgehen" Diskussion aufzumachen: Keiner hält dich davon ab deine "Sonderstates im fremden Gefilden" mittels einem JavaScript-Skript anzulegen, weil nur DAS macht dir gerade Probleme.
-
@fabian1 sagte in js-controller 3.3 jetzt im STABLE!:
Dafür ist der Mqtt Adapter ja gedacht.
Jain. der namespace mqtt.0 ist für die Datenpunktde die per mqtt "rein kommen" ... eigener kram war an sich nie sinnvoll dort anzulegen sondern sollte in javascriot.X (weil früher, oder heute) 0_userdata.0 bzw alias.0 sein und dann in der Konfig angegeben werden das es von dort subscribed wird.
-
@pedder007 javascript.0 ist "legacy" weil 0_userdata.0 der "seit js-controller 3.0 neue beste Platz" ist ... aber die Realität das es noch sehr viele User so haben wie Du (ich bin ehrlich, ich auch weitestgehend) existiert und daher ist das erlaubt
-
Als ich angefangen habe mit iobroker gab es userdata noch nicht, da es mir unter javascript unlogisch erschien habe ich mir einen eigenen Ort „Systemvariablen“ ausgedacht.
Ist das jetzt wirklich kritisch? Sollte ich alle Objekte unter Systemvariablen nach Userdata (vermutlich mehr als 200) umziehen? Wenn ich Update kann ich dann dort nichts mehr erstellen?
Eigentlich eine Schande das man früher als User das einfach machen konnte wenn es doch so böse ist…
-
@jan1 sagte in js-controller 3.3 jetzt im STABLE!:
Eigene sollen nicht in vorhandene Strukturen rein, da sie dort je nachdem auch mal bei nem Update gelöscht werden und dann wunderst Dich, wenn nix mehr geht.
Das ist einer der hauptgründe warum eigene States nichts in den Namespaces der Adapter verloren haben. Jeder Adapterhat dort die Hoheit und kann mit den Objekten machen was er will. Das der mqtt-Adapter "zusätzliche States" aktuell ignoriert ist Glück ... Alexa2 als Beispiel mistet gnadenlos aus bei jedem Start.
-
@markus-frankl Korrekt. Und - falls Du Skripte hast die aus States mit array/object lesen oder schreiben das hier ggf JavaScript und Admin vorher geupdatet sein sollten.
-
@jan1 Wie geschrieben wird das bei "Javascript" auf lange absehbare zeit nicht passieren. Es ist "Legacy" aber naja da ist zuviel schon da
-
@pedder007 As said in anderenANtworten: Das mit javascript.X vs 0_userdata.0 ist kein Issue für das Update, hak es ab, schreib es auf die "langer Winterabed"-Liste
-
@apollon77 said in js-controller 3.3 jetzt im STABLE!:
@fabian1 sagte in js-controller 3.3 jetzt im STABLE!:
Dafür ist der Mqtt Adapter ja gedacht.
Jain. der namespace mqtt.0 ist für die Datenpunktde die per mqtt "rein kommen" ... eigener kram war an sich nie sinnvoll dort anzulegen sondern sollte in javascriot.X (weil früher, oder heute) 0_userdata.0 bzw alias.0 sein und dann in der Konfig angegeben werden das es von dort subscribed wird.
Ich gebe dir wie immer bei allem Recht fast du sagst! Ich verstehe die Entscheidung auch, natürlich ist es nicht sinnvoll sich unter Alexa2 oder Hue irgendwelche eigenen Datenpunkte anzulegen, das ist sogar ganz schön bescheuert. ABER der MQTT Adapter ist da wirklich ein sonderfall, den man berücksichtigen sollte.
Wenn ich meine eigenen Geräte programmiere, mit einer eigenen Datenstruktur, dann muss es mir auch erlaubt sein diese anlegen zu können.Als kleines Beispiel, mein LED Uhr. Auf einem ESP8266 selbst programmiert und läuft komplett über MQTT. Will ich jetzt eine neue Funktion einbauen, dann lege ich mir "bis jetzt" immer zuerst den Datenpunkt im IOBroker an. Unter MQTT.0.LED_Uhr z.b. Hintergrundfarbe, dort mach ich dann sämtliche Definitionen des Datenpunktes.
Mein ESP8266 ist auf LED_Uhr subscribed und kriegt jetzt den neuen Datenpunkt. Dann verarbeite ich ihn im Code dort weiter.
Das funktioniert spitze und es ist echt etwas frustrierend, warum das in Zukunft nicht mehr gehen soll.
Vielleicht kann man für den MQTT Adapter eine ausnahme machen.
-
@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
-
@htrecksler sagte in js-controller 3.3 jetzt im STABLE!:
und wie gesagt, dabei dann auch gleich aufgeräumt und teilweise neu organisiert.
Das ist ne gute IDee. "Nutze die Chance und verbessere deine Struktur" :-))
Vllt sogar gleich noch mit dem Einsatz von Aliases um die genutzten geräte wegzuabstrahieren ...wenn man die Skripte eh anfasstKönntest auch alles als alias definieren was heute auf javascript.0 zeigt ... und dann nach und nach mit den Skripten die aliasse ändern.
Hachja... sooooo viele Möglichkeiten
-
@cash sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
Ist das jetzt wirklich kritisch?
nein, nicht unbedingt!
Auch ich habe zwei solche Verzeichnisse aus der Steinzeit: Messwerte.0 und Systemvariablen.0Nur dann wenn es mal einen Adapter geben sollte, der genau diesen Namespace nutzen wird, kommt es zu einem Problem
-
@michl75 Ahhh du meinst weil Du dort einen "zustand" hast und kein Verzeichnis?
Korrekt manuell über den Stift und en Objekttyp von Zustand auf Verzeichnis ändern
-
@fabian1 Ok, haben wir im anderen Thread ausführlichst Diskutiert
-
@cash Naja solche eigene Plätze waren noch nie wirklich supportet. Sobald wir mal einen Adapter namens "Systemvariablen" bekommen hätten, hätte es bei dir direkt geknallt.
Aber ja es wurde halt noch nie geprüft. Jetzt haben wir den "Sonderlocken-Salat"Solche Randfälle den solltest Du schauen bald mal umzustellen.
-
@apollon77 Wie kann ich denn mit dem alten js-controller „Ordner anlegen?“
Oder sehe ich das richtig, dass wenn ich mir jetzt die Mühe mache nach dem Update dann alles auf „Ordner“ umbauen muss?
Es wird auf jeden Fall einige Zeit dauern bis ich updaten kann. Erstmal alle meine Datenpunkte umziehen und alle Scripte anpassen dann Admi und Adapter updaten (wegen Scripte) und dann js-controller… Puh
Könnte ich im Raw den Datenpunkt nicht einfach ändern von „device“ auf „Ordner“
-
@apollon77 sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:
@fabian1 sagte in js-controller 3.3 jetzt im STABLE!:
Dafür ist der Mqtt Adapter ja gedacht.
Jain. der namespace mqtt.0 ist für die Datenpunktde die per mqtt "rein kommen" ... eigener kram war an sich nie sinnvoll dort anzulegen sondern sollte in javascriot.X (weil früher, oder heute) 0_userdata.0 bzw alias.0 sein und dann in der Konfig angegeben werden das es von dort subscribed wird.
Na das bestreite ich mal. Mein mqtt Adapter bildet das FrontEnd für einen mosquitto Broker. Das heißt wenn ich eigene Punkte über mqtt publishe, ist das in meinen Augen sehr wohl sinnvoll. Auch hier die ganzen Datenpunkte im cmnd Ast von Tasmota müssen selbst und auf Bedarf angelegt werden. Also "nie sinnvoll" - kann ich ganz und gar nicht unterschreiben. Wenn ich schon in der Adaptervorgabe mqtt.0.* publishe, dann hat das schon seinen Sinn. Aber egal.
Ich hab ja noch ein Beispiel gebracht - aber es hilft ja nichts - ihr habt entschieden, also brauchen wir nicht über Sinn oder Unsinn diskutieren.