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

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    118

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

Io-package.json => native / Daten hinterlegen

Geplant Angeheftet Gesperrt Verschoben Entwicklung
13 Beiträge 2 Kommentatoren 1.5k 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
    #1

    Hallo, ich habe versuchsweise ein paar Konfigurationsdaten in der io-package.json im Bereich native hinterlegt. Nun wollte ich ein zwei Einträge entfernen und der log spukt mit alle Einträge aus, auch die , die ich schön gelöscht habe.

    1: Landen die Einträge irgendwo in der DB oder im Cache? Udn wie bekommen ich die weg?

    2: Ist das überhaupt der richtige Ort um Daten zu hinterlegen?

    Danke für eure Hilfe!

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

      Nach Änderungen an der io-package.json musst du immer ein

      iobroker upload adaptername

      machen.

      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
        #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

                            638

                            Online

                            32.5k

                            Benutzer

                            81.7k

                            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