Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Admin5: Ich kann keine Objekte mehr manuell anlegen

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Admin5: Ich kann keine Objekte mehr manuell anlegen

    This topic has been deleted. Only users with topic management privileges can see it.
    • liv-in-sky
      liv-in-sky @s.bormann last edited by

      @s-bormann danke - ein problem weniger

      1 Reply Last reply Reply Quote 0
      • cash
        cash Most Active @Homoran last edited by

        @homoran wo ist das Problem. Angenommen ich habe in den Einstellungen (klar wäre eine neue Option) eingestellt das mein userdata nicht default sondern xxx wäre dann wäre die Folge wenn jemand einen Adapter der xxx heißt bei diesen einen User nicht installiert werden kann. Der User kann nun überlegen ob ihm der Adapter so wichtig ist das er alles ändert oder darauf verzichtet und dafür seine Struktur beibehalten kann. Nur weil mein Dataverzeichnis so heißt wie ein Adapter haben doch die anderen User kein Problem. Betroffen sind doch eh eher die User die halbswegs technisch versiert sind.

        Ich habe bei mir angefangen zu migrieren und es ist eine Schweinearbeit. Ich habe über 600 Datenpunkte die ich umhängen muss. Dass ist kein großer Spaß. Und ich werde wohl mehrere Wochen brauchen. Positiv daran ist zumindest das ich die Struktur nun noch einmal etwas verfeinert habe und es somit noch übersichtlicher wird… Dauert halt zusätzlich Zeit weil ich nicht einfach nur einen Pfad ersetzen muss.

        1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @liv-in-sky last edited by mickym

          gelöscht

          mickym liv-in-sky 3 Replies Last reply Reply Quote 1
          • mickym
            mickym Most Active @mickym last edited by mickym

            gelöscht

            liv-in-sky 1 Reply Last reply Reply Quote 0
            • liv-in-sky
              liv-in-sky @mickym last edited by

              @mickym

              erstmal vielen dank

              ein weiteres puzzleteil

              F 1 Reply Last reply Reply Quote 0
              • liv-in-sky
                liv-in-sky @mickym last edited by

                @mickym

                habe gerade den export gesehen -müßte doch auch funktionieren-

                export alle flows, löschen flows, search&replace, import flows

                mickym 2 Replies Last reply Reply Quote 0
                • mickym
                  mickym Most Active @liv-in-sky last edited by

                  @liv-in-sky Falls Du pfade in Deinen Flows meinst - klar geht das entweder Flow für Flow oder wie Du sagt für alle Flows. Wenn Du alle Flows als Datei exportierst bekommst im Prinzip eine komplette flows.json zum Download.

                  Das geht auch einfacher: Sichere Dir einfach die flows.json weg (die enthält alle Flows). Dann kannst sie mit search und replace bearbeiten.

                  Wenn Du mit Projekten im Node Red arbeitest dann in den Ordner:

                  d391da1c-b106-4379-ab74-af7cb5bb70a0-image.png

                  1 Reply Last reply Reply Quote 1
                  • mickym
                    mickym Most Active @liv-in-sky last edited by

                    @liv-in-sky Im Übrigen kannst Du auch über alle Flows natrülich nach dem Pfad suchen - wenn Du was überprüfen oder genauer untersuchen willst

                    f9a23eff-2cfe-4484-9e7b-f652279f4d7b-image.png

                    In dem Fall schmeißt er Die alle Nodes über alle Flows raus - die diesen String enthalten.

                    1 Reply Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @mickym last edited by mickym

                      gelöscht

                      apollon77 1 Reply Last reply Reply Quote 1
                      • apollon77
                        apollon77 @mickym last edited by

                        @mickym sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:

                        Vielleicht kann ja auch der JS -Adapter oder das System bei "undefined" - folder Objekte als Default erstellen.

                        undefined heisst an sich das was vergessen wurde ... da automatisch auf "folder" zu rate finde ich irgend wie nicht sinnvoll ...

                        mickym 1 Reply Last reply Reply Quote 0
                        • D
                          darkiop Most Active @fastfoot last edited by

                          @fastfoot Guten Morgen, Danke für das Skript! Könntest du die Möglichkeiten der unterschiedlichen Quellen ggf. in einem eigenen Thread kurz beschreiben? Glaub das würde im ein oder anderen Recovery Fall hilfreich sein (z.B. Backitup sichert aktuell zwar die Blocklys, diese aber nur js-export).

                          F 1 Reply Last reply Reply Quote 0
                          • mickym
                            mickym Most Active @apollon77 last edited by mickym

                            gelöscht

                            F 1 Reply Last reply Reply Quote 1
                            • F
                              fastfoot @darkiop last edited by

                              @darkiop sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:

                              @fastfoot Guten Morgen, Danke für das Skript! Könntest du die Möglichkeiten der unterschiedlichen Quellen ggf. in einem eigenen Thread kurz beschreiben? Glaub das würde im ein oder anderen Recovery Fall hilfreich sein (z.B. Backitup sichert aktuell zwar die Blocklys, diese aber nur js-export).

                              die Skripte wurden hier nur gepostet, um aufzuzeigen wie man evtl. Datenpunkte ersetzen könnte. Es gibt ein Beispiel für eine einzelne Skript-Datei und für alle Skripte.

                              Es ist derzeit nicht geplant, eine Restore-Suite zu veröffentlichen, welche alle möglichen Quellen abdeckt, im Katastrophenfall ist man da sehr gut mit dem Import aller Skripte bzw. mit dem BackitUp Adapter bedient, letzterer stellt sehr wohl auch Blocklys wieder her. Um ein einzelnes (Blockly)Skript wieder herzustellen empfiehlt sich der Mirrorpfad und das hier gepostete Skript. Für alle anderen Fälle empfehle ich eine Anfrage hier im Forum, dann kann man/ich da speziell darauf eingehen

                              1 Reply Last reply Reply Quote 0
                              • F
                                fastfoot @mickym last edited by

                                @mickym ich denke der node-out setzt da auch nur die Struktur zusammen und als Ergebnis kommt dann in JS Notation sowas raus: setObject('xxx.yyy.zzz.dp',....) Es wird also ein DP in/mit einer Struktur erzeugt, welche evtl. gar nicht vorhanden ist und damit eig. ungültig.

                                Ich sehe da nur zwei Möglichkeiten für die Zukunft:

                                • iobroker erzeugt diese Strukturen selber wenn nicht vorhanden(generic type==folder)
                                • iobroker verbietet das Erzeugen von DP in nicht vorhandene Strukturen(nicht nur in der UI sondern auch programmatisch)
                                  • der User kümmert sich selbst um valide Strukturen

                                auf Dauer das Skript zu nutzen halte ich nicht für sinnvoll, dann kann man die Funktionalität auch gleich einbauen oder konsequent Punkt 2 umsetzen. So wie es jetzt ist bleibt dieses Thema ein Dauerbrenner, fürchte ich

                                mickym 2 Replies Last reply Reply Quote 0
                                • mickym
                                  mickym Most Active @fastfoot last edited by mickym

                                  @fastfoot sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:

                                  iobroker erzeugt diese Strukturen selber wenn nicht vorhanden(generic type==folder)

                                  Na das war ja meine präferierte Lösung, die ich @apollon77 so vorgeschlagen hatte. Damit würde halt die Funktionalität wie bisher erhalten bleiben.
                                  Zumindest für die Ordner, in dem man als User solche Strukturen erstellen darf, fände ich das sinnvoll.

                                  Ich habe mich da nur mit dem undefined etwas unglücklich ausgedrückt. Mixed als Objekttyp würde aber in diesem Fall eben nicht helfen.

                                  Die 2. Lösung kostet viel mehr Programmieraufwand und ist wahrscheinlich auch langsamer - denn im Prinzip müsste man jede Hierarchieebene prüfen (solange die nicht am Ende steht) und auch auf vorhandene Objekte vor dem Schreiben prüfen.

                                  Und ich denke auch, das letztlich eine setObject/setState - Funktion in der Node arbeitet, d.h. wenn man das generell einfach so macht hat man nicht nur eine Lösung für NodeRed, sondern auch für Blockly etc.

                                  F 1 Reply Last reply Reply Quote 0
                                  • mickym
                                    mickym Most Active @fastfoot last edited by mickym

                                    @fastfoot Habe gerade mal den Quellcode der iobroker-out Node geschaut, die scheint alles mit setState zu schreiben:

                                    adapter.setState(id, {val, ack}, callback);
                                    

                                    Wobei das wahrscheinlich egal ist, weil man einfach die id übergeben hat - egal ob bei setState oder setObject - obwohl das ja dann mit adapter.setState auch eine eigene Funktion im Adapter sein könnte. Ich steck da nicht so tief drin. 😉 - Muss ich ja auch nicht - bin ja nur blöder Anwender. 😉

                                    F apollon77 2 Replies Last reply Reply Quote 0
                                    • F
                                      fastfoot @mickym last edited by

                                      @mickym ich bin da ganz bei dir,. den Programmieraufwand hätte jeder anstatt 'nur' der iobroker. Ob das aber wirklich so einfach auf Systemseite umgesetzt werden kann ist eine andere Sache, die ich nicht beurteilen kann. Ich könnte mir vorstellen dass setObject() an sehr vielen Stellen verwendet wird wo es nicht um das (Erst-)Erstellen eines Objektes geht, eine Dauerprüfung auf valide Strukturen würde dann das System erheblich belasten. Die momentane Handhabung scheint mir jedenfalls inkonsequent zu sein.

                                      1 Reply Last reply Reply Quote 0
                                      • F
                                        fastfoot @mickym last edited by

                                        @mickym nee, da müsste mehr sein, ein reines setState() ohne existierendes Objekt wirft einen Fehler und erstellt den state nicht, zumindest im JS-Adapter

                                        mickym 1 Reply Last reply Reply Quote 0
                                        • apollon77
                                          apollon77 @mickym last edited by

                                          @mickym Ein Objekt definiert das da was ist und die zugehörigen Metadaten (Typ, min/max und so). Hat aber keinen Wert! Ein State ist der aktuelle Wert des Objekts. Wenn das Objekt mal existiert brauchen nur noch States geschrieben zu werden um die Werte zu ändern

                                          mickym 1 Reply Last reply Reply Quote 0
                                          • mickym
                                            mickym Most Active @fastfoot last edited by

                                            @fastfoot Jo

                                            adapter.setObject(id, data, _ => adapter.setState(id, val, () => callback && callback(true)));
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            768
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            36
                                            466
                                            69602
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo