Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Io-package.json => native / Daten hinterlegen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    478

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    616

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

Io-package.json => native / Daten hinterlegen

Geplant Angeheftet Gesperrt Verschoben Entwicklung
13 Beiträge 2 Kommentatoren 1.6k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • snadorS Offline
    snadorS Offline
    snador
    schrieb am zuletzt editiert von
    #3

    Ja ich weis, das mache ich die ganze Zeit, allerdings behebt es das Problem nicht. Wenn ich etwas hinzufüge dann sehe ich die neuen Einträge beim loggen im Baum. Ich sehe allerdings auch alle alten Einträge, die schon nicht mehr vorhanden sind. Darauf kann ich mir keinen Reim machen…

    Die Daten hole ich übrigen so:

    ngl.conn.getObject('system.adapter.nightingale.0','false',function(err, obj){
    		            if (err) console.error(err);
    		            if (obj) {
    		                ngl.theAdapterConfig = obj;
    		                ngl.theWidgetsConfig = ngl.theAdapterConfig.native.widgets;
    		                ngl.theFormConfig = ngl.theAdapterConfig.native.formoption;
    		            }
    		        });
    

    Gleichzeit scheinen sich auch die Reihenfolge zu unterscheiden. Im File ist die ne andere als das Log ausgibt… Siehe Anhang...
    4236_iopackage.jpg
    4236_log.jpg

    1 Antwort Letzte Antwort
    0
    • apollon77A Online
      apollon77A Online
      apollon77
      schrieb am zuletzt editiert von
      #4

      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

      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
      1 Antwort Letzte Antwort
      0
      • snadorS Offline
        snadorS Offline
        snador
        schrieb am zuletzt editiert von
        #5

        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? :-)

        1 Antwort Letzte Antwort
        0
        • snadorS Offline
          snadorS Offline
          snador
          schrieb am zuletzt editiert von
          #6

          Auch ein Adapter Neustart bringt nichts…

          1 Antwort Letzte Antwort
          0
          • apollon77A Online
            apollon77A Online
            apollon77
            schrieb am zuletzt editiert von
            #7

            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

            Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

            • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
            • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
            1 Antwort Letzte Antwort
            0
            • snadorS Offline
              snadorS Offline
              snador
              schrieb am zuletzt editiert von
              #8

              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.

              1 Antwort Letzte Antwort
              0
              • snadorS Offline
                snadorS Offline
                snador
                schrieb am zuletzt editiert von
                #9

                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

                1 Antwort Letzte Antwort
                0
                • apollon77A Online
                  apollon77A Online
                  apollon77
                  schrieb am zuletzt editiert von
                  #10

                  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

                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                  1 Antwort Letzte Antwort
                  0
                  • snadorS Offline
                    snadorS Offline
                    snador
                    schrieb am zuletzt editiert von
                    #11

                    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

                    1 Antwort Letzte Antwort
                    0
                    • snadorS Offline
                      snadorS Offline
                      snador
                      schrieb am zuletzt editiert von
                      #12

                      @apollon77:

                      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…

                      1 Antwort Letzte Antwort
                      0
                      • snadorS Offline
                        snadorS Offline
                        snador
                        schrieb am zuletzt editiert von
                        #13

                        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!

                        1 Antwort Letzte Antwort
                        0
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        892

                        Online

                        32.6k

                        Benutzer

                        81.9k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe