NEWS
Io-package.json => native / Daten hinterlegen
-
Hm … hast recht. die io-package wird "kombiniert".
Versuch mal das was weg soll einmal mit undefined als Werrt im JSON zu setzen, dann sollte das beim kombinieren zum löschen führen
-
Also mit "undefined" kommt ein Syntax Error. Laut Web nimmt mal wohl eher "null". Hab beides probiert aber die Daten sind noch da…
Hast Du noch andere Ideen?
-
Auch ein Adapter Neustart bringt nichts…
-
Dann kannst Du nur direkt das Objekt editieren.
Admin -> Objekte -> system.adapter.adaptername.instanznummer, in der Zeile rechts auf den Stift, dort Tab "Raw Experts only", editieren. dann upload
-
Ok danke Dir!
Gibt es eventuell einen sinnvolleren oder anderen empfohlenen Weg Konfigdaten zu übergeben.
In meinem Falle ist es eine komplexe Konfiguration anhand derer Formulargelder im Frontend gerendert werden in denen der Benutzer seine eigene Konfiguration hinterlegen kann. Also Z.B. die Felder für die Konfiguration eines View. Ähnlich dem Vis Adapter…
Ich könnte ja auch eine zusätzlich JSON Datei mit der Konfig anlegen, dann brauch ich aber eine zusätzliche ReadFile Aktion. Die ich mir ja theoretisch sparen könnte.
-
Hallo apollon,
Im Admin sehe ich aber nur die angelegten Tetsvariablen und nicht den Native Part der aus der io-package.json kommt… Wie meinst Du das?
4236_admin.jpg -
Ok, jetzt verwirrst Du mich.
Bisher war ich davon ausgegangen das in der io-package.json eines Adapters zusätzliche Daten drin stehen die zuviel sind. Und die weg sollen.
Die Daten aus io-package.json eines Adapters landen in "system.adapter.adaptername.instanznummer" (im Zweifelsfall musst Du unter Objekte den Expertenmodus einschalten um diese States sehen zu können). Dort kannst Du sie manuell editieren.
Wenn es Adapterspezifische Konfigurationen sind ist das JSON des Adapterobjekts eine Variante.
Fü andere Ideen müsste ich besser verstehen können was genau Du vorhast
-
Danke für Deine Mühe
Ich erklärs mal so…
Ich versuche gerade so was in der Art wie den VIS Adapter zu bauen in klein. Das ist natürlich total übertrieben aber im Kern passts
Das Projekt muss nicht unbedingt Sinn machen, für mich geht es darum zu lernen und Dinge zu verstehen und eine Idee reifen zu lassen.
Ich erstelle im www des Adapters eine Ansicht (index.html) und eine Edit-Ansicht (edit.html). Auf der Edit kann der Benutzer ein Panel konfigurieren mit Views und einheitlichen, fertigen Widgets (ähnlich VIS). Da die Konfiguration über unzählige Input / Select / Textarea / etc. Felder läuft und ich nicht unzählige Formulare bauen möchte habe ich eine Konfig angelegt in der alle zur Verfügung stehenden Felder drin sind, die dann in der Edit Oberfläche in die entsprechenden Tabs gerendert werden. Mit diesen Feldern kann der User sein Panel konfigurieren und diese nutzerspezifische Konfiguration wird irgendwo (das weis ich noch nicht genau wo - (json File / Datenpunkt / etc.) ) gespeichert. Damit wird dann in der index.html das nutzerspezifische Panel generiert.
Mein erster Versucht ging über eine config.json die ich eingelesen haben. Dort waren die grundlegenden Settings hinterlegt und grundlegende Informationen über die Widgets, die in meinem Adapter zur Verfügung stehen. Alle weiteren Infos zu den Widgets wollte ich direkt aus meinen Widget Ordner herauslesen. Diesen ReadFile und vor alle auch ggf. nötige ReadDir wollte ich aber gerne vermeiden wenn nicht unbedingt nötig. Im Forum hab ich gelesen das initiale Werte zum Adapter in "native" abgelegt werden sollen. (Wenn ich es richtig verstanden habe) Also hab ich die Config einfach im Bereich "native" in der io-package.json abgelegt, was nun zu den genannten Probleme geführt hat
Ich hoffe Du verstehts was ich grundlegend möchte und kannst etwas Licht ins Dunkel bringen wenn ich es falsch angehe.
Wo die Daten gehalten werden ist mir prinzipiell egal. Ich legen auch Datenpunkte an und initialisiere diese mit den Daten wenn das der richtige Weg ist.
Danke! LG
-
Ok, jetzt verwirrst Du mich.
Bisher war ich davon ausgegangen das in der io-package.json eines Adapters zusätzliche Daten drin stehen die zuviel sind. Und die weg sollen.
Die Daten aus io-package.json eines Adapters landen in "system.adapter.adaptername.instanznummer" (im Zweifelsfall musst Du unter Objekte den Expertenmodus einschalten um diese States sehen zu können). Dort kannst Du sie manuell editieren.
Wenn es Adapterspezifische Konfigurationen sind ist das JSON des Adapterobjekts eine Variante.
Fü andere Ideen müsste ich besser verstehen können was genau Du vorhast `
Um das Problem nochmal anzusprechen. Ich hatte Einträge in der io-packages.json (native) drin, die ich wieder gelöscht habe. Wenn ich nun aber das Object hole, sind nicht nur die aktuellen Angaben der io-packages.json drin, sonder auch Einträge, die ich aus der io-packages.json schon wieder gelöscht hab…
Ich hab mir im Admin die Daten mal im Expertenmodus angeschaut. Dort ist genau das glöeiche drin wie in der io-packages.json, nämlich das:
"formoptions":{ "settings":{ "gutter":{ "elem":"input", "label":"Gutter" } }, "views":{ "base1":{ "prefix":"view_" }, "name":{ "elem":"input", "type":"text", "label":"Beschreibung", "value":"", "func":"" }, "background-color":{ "elem":"input", "type":"text", "label":"Beschreibung", "value":"", "func":"" }, "background-image":{ "elem":"input", "type":"text", "label":"Beschreibung", "value":"", "func":"" }, "test":{ "id1":"Test1", "id2":"Test2" } } }
Wenn ich jetzt allerdings das Objekt hole mit:
ngl.conn.getObject('system.adapter.nightingale.0',false,function(err, obj){ if (err) console.error(err); if (obj) { ngl.theAdapterConfig = obj; ngl.theFormConfig = ngl.theAdapterConfig.native.formoptions; } });
Und logge das ngl.theFormConfig dann ist das drin:
Form Config:{"views":{"name":{"type":"input","label":"Beschreibung","elem":"input","value":"","func":""},"background":{"type":"input","label":"Beschreibung","helper":"color"},"background-image":{"type":"input","label":"Beschreibung","helper":"file","elem":"input","value":"","func":""},"base1":{"prefix":"view_"},"background-color":{"elem":"input","type":"text","label":"Beschreibung","value":"","func":""},"test":{"id1":"Test1","id2":"Test2"}},"settings":{"gutter":{"elem":"input","label":"Gutter"}}}
Nicht nur, dass die Reihenfolge ne ganz andere ist, es sind auch alte Elemente drin, wie z.B. das Element "background" welches ich irgendwann durch "background-color" ersetzt habe.
Soweit…
-
Ich hatte gerade nen Geistesblitz und der hat das Problem behoben
Ich habe den Adapter irgendwann auf single umgestellt und die Daten aber weiter mit
ngl.conn.getObject('system.adapter.nightingale.0',false,function(err, obj){
geholt. Wenn ich die Daten jetzt mit
ngl.conn.getObject('system.adapter.nightingale',false,function(err, obj){
hole, dann passt es. Warum ich vorher allerdings gemischte Daten bekommen habe verstehe ich trotzdem nicht
Ggf. kannst Du oben nochmal schauen was ich vorhabe und mir sagen ob die Experten eher einen anderen Weg einschlagen würden. Danke!