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 goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • 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.
    • Homoran
      Homoran Global Moderator Administrators @mickym last edited by

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

      aber ist halt nicht mehr gewünscht.

      das stimmt nicht so

      nur weil es ging...
      @mickym sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:

      so gings halt vorher und war auch praktisch,

      war es nicht gewünscht und schon gar nicht als korrekt dokumentiert.

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

        @homoran OK. 🙂 Verstanden!

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

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

          Und ja wenn so ein Script von @Dutchman "Nicht existierenden Objekten" den Typ "folder" spendiert ist es ja gut.

          @Dutchman kann das sicher besser, aber das hier funktioniert auch. Dennoch, beim Rumfummeln am System empfiehlt sich immer ein Backup

          Vorraussetzung: In den Settings der Javascript-Instanz muss setObject erlaubt sein

          • Das Setzen des Stammordners erfolgt in Zeile 12
          • Als Stammordner werden javascript.x und 0_userdata.0 unterstützt, man könnte oder sollte es evtl. noch auf alias.0 erweitern(Zeile 17)

          /**
          * Zweck:       Korrigiert übergeordnete Ordnerstrukturen eines Datenpunkts
          * Datum:      07.08.2021
          * Autor:       @fastfoot
          */
          
          //              In den Settings der Javascript-Instanz muss setObject erlaubt sein!!!
          
          let arr = [],
             id = '';
          
          const ids = $('0_userdata.0.*');
          ids.each(idTmp => {
             arr=idTmp.split('.');
             arr.splice(arr.length-1);
             id=arr.join('.');
             if(arr[0] === '0_userdata' || arr[0] === 'javascript'){
                 correctObject(id, arr);
             }
          })
          
          function correctObject(id,arr){
             if(arr.length === 2) return;
             if(!existsObject(id)){
                 let obj = {};
                 obj = {
                     type: 'folder',
                     common:{
                         name: arr[arr.length - 1]
                     }
                 }
                 extendObject(id, obj, e => {
                     if (e) log('Fehler beim Schreiben des Objektes: '+ id + ' ' + e);
                 })
             }
             arr.splice(arr.length - 1);
             id = arr.join('.');
             correctObject(id, arr);
          }
          

          sigi234 mickym paul53 R M 5 Replies Last reply Reply Quote 6
          • sigi234
            sigi234 Forum Testing Most Active @fastfoot last edited by sigi234

            @fastfoot
            0_userdata.0 hat einwandfrei funktioniert ! 👍

            javascript.x nicht.

            So Richtig?

            Screenshot (4109).png

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

              @apollon77 said in Admin5: Ich kann keine Objekte mehr manuell anlegen:

              If Du keinen stift hast dann existiert das Objekt nicht ... daher musst du es "initial" anlegen (sorry ... )

              Dann gibt es bei mir viele Instanzen die es eigentlich nicht gibt und das sogar sehr bekannte wie die Homematic Instanzen 🙂 Und selbst meine Javascript Instanzen gibt es nicht.

              Bildschirmfoto 2021-08-07 um 22.23.36.png

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

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

                So Richtig?

                javascript.0Punkt*. Müsste ohne eig. auch gehen, habe aber javascript auch getestet

                Edit: Nach dem Test hatte ich erst Zeile 17 eingebaut und dort auf javavascript geprüft. Ist korrigiert

                sigi234 1 Reply Last reply Reply Quote 0
                • sigi234
                  sigi234 Forum Testing Most Active @fastfoot last edited by sigi234

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

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

                  So Richtig?

                  javascript.0Punkt*. Müsste ohne eig. auch gehen, habe aber javascript auch getestet

                  Leider Nein

                  Aha Zeile 17

                  Geht jetzt 😀

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

                    @fastfoot Also auch von mir herzlichen Dank.

                    Ich habe es neben 0_userdata, über alias, javascript und mqtt Instanzen gejagt. Und das Script hat nun überall Folder Objekte daraus erstellt. 😉 - Das war eine Superidee, das so zu implementieren.

                    Danke schön!!!!!!!!!!! 👍 👍 👍 👍 👍

                    Sowas in das Update gebaut - und .... 😉

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

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

                      Sowas in das Update gebaut - und ....

                      Ja, und das mit nur 39 Zeilen und in 1 Sekunde fertig. Wahnsinn.

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

                        @fastfoot sagte: das hier funktioniert auch.

                        Etwas abgewandelt für eine Struktur folder.device.channel.state bzw. nur der hintere Teil, wenn die Struktur kürzer ist:

                        // In den Settings der Javascript-Instanz muss setObject erlaubt sein!!!
                        const ids = $('javascript.1.*'); // Anpassen!!
                        
                        var arr = [];
                        
                        function correctObject(id, arr, level){
                           if(arr.length === 2) return;
                           let type = 'folder';
                           if(level == 1) type = 'device';
                           else if(level == 0) type = 'channel';
                           if(!existsObject(id)) {
                               const obj = {
                                   type: type,
                                   common:{
                                       name: arr[arr.length - 1]
                                   },
                                   native: {}
                               }
                               setObject(id, obj, e => {
                                   if (e) log('Fehler beim Schreiben des Objektes: '+ id + ' ' + e);
                               })
                           }
                           arr.pop();
                           id = arr.join('.');
                           level++;
                           correctObject(id, arr, level);
                        }
                        
                        ids.each(id => {
                           arr = id.split('.');
                           arr.pop();
                           id = arr.join('.');
                           if(arr[0] === '0_userdata' || arr[0] === 'javascript' || arr[0] === 'alias') {
                               correctObject(id, arr, 0);
                           }
                        });
                        
                        F 1 Reply Last reply Reply Quote 1
                        • apollon77
                          apollon77 @klassisch last edited by

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

                          Wird das mit dem neuen Admin jetzt auch verboten/blockiert/funktionslos/bewarnt?

                          ne, wie Paul53 schon sagte hat das nichts damit zu tun - so wie ich auch in mehreren Posts oben geschrieben habe.

                          Aber Deine Strukturen sind ein typisches Beispiel für das Ausreizen der Grenzen. Und dann wundern sich User warum Dinge nicht tun ... tja ...

                          Ob das irgendwann mal mit einem künftigen js-controller angemeckert wird kann ich Dir heute nicht sagen.

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

                            @cash Was meinst du? Weil es nur "hm-rpc" auf der ersten ebene gibt? Dann klapp mal auf ... da ommt dann 0/1 und so

                            cash 1 Reply Last reply Reply Quote 0
                            • apollon77
                              apollon77 last edited by

                              @fastfoot @paul53 Habe Eure Skripte oben mal verlinkt. Da wart Ihr schneller als @Dutchman 🙂

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

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

                                Etwas abgewandelt...

                                Gute Idee, die Struktur zu erweitern, da habe ich keinerlei Erfahrung

                                Du hast obj.native:{} gesetzt, aber zumindest Admin5 setzt dieses beim manuellen Anlegen für keines der level folder, device oder channel, weshalb ich es auch weggelassen hatte. Macht es dennoch Sinn?

                                setObject() scheint logischer, da es ja nichts zu erweitern gibt. Hatte ich ursprünglich aber dann hatte ich wohl einen Denkfehler

                                arr.pop() made my day 🙂 Wieder was gelernt...

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

                                  @apollon77 said in Admin5: Ich kann keine Objekte mehr manuell anlegen:

                                  @cash Was meinst du? Weil es nur "hm-rpc" auf der ersten ebene gibt? Dann klapp mal auf ... da ommt dann 0/1 und so

                                  Du hattest oben geschrieben wenn es bei einem existieren Objekt kein Stift gibt wurde das Objekt nicht richtig angelegt. In meinem Screenshot sieht man das nicht nur wir Anwender solche Fälle bei den selbsterstellten Objekten haben sondern das viele Adapter es auch nicht besser machen. Die müssten doch als type „folder“, „meta“ oder was auch immer angelegt werden?

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

                                    @cash korrekt und unterhalb von name.0 sollten sie das auch schon größtenteils tun. Andere Baustelle.

                                    1 Reply Last reply Reply Quote 0
                                    • Dr. Bakterius
                                      Dr. Bakterius Most Active @apollon77 last edited by

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

                                      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).

                                      Geht doch bei Blockly auch - meine Blocklys werden in Dateien gespiegelt - oder habe dich da falsch verstanden?

                                      paul53 apollon77 2 Replies Last reply Reply Quote 0
                                      • A
                                        Abruni @apollon77 last edited by Abruni

                                        @apollon77 Tut mir Leid, dass ich da bezüglich der eigens erstellten DP im Ordner javascript.0 nachfragen muss. In meiner Erinnerung, war es so, dass die Erstellung dieser eigenen DP dort empfohlen wurde und es gar nicht möglich war, diese woanders anzulegen, zumindest über die Funktion CreateState aus einem (Blockly-) Script. Erste später ging es eben auch in 0_userdata.0. Seit dem dies geht, sind erstellte DP auch dort erstellt worden, aber es gibt eben noch viele DP in javascript.0 die auch in etlichen Scripten genutzt werden. Einerseits lese ich, dass diese DP bei einem javascript Update gelöscht werden, andererseits, dass da auf "lange Zeit nichts passieren wird". Was ist nun richtig? Werden eigene DP in javascript.0 "geduldet" und falls ja, müssen die in einem Unterordner sein? Wäre javascript.0.Kalender.Datuminfo.de.Woche.Jahr.Kalenderwoche.Nummer OK?
                                        Wäre javascript.0.Adventszeit OK?

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

                                          @fastfoot sagte: Du hast obj.native:{} gesetzt, aber zumindest Admin5 setzt dieses beim manuellen Anlegen für keines der level folder, device oder channel, weshalb ich es auch weggelassen hatte. Macht es dennoch Sinn?

                                          Bei einigen Device- und Channel-Objekten habe ich es gesehen. Ob es Sinn macht, kann vielleicht @apollon77 beantworten?

                                          1 Reply Last reply Reply Quote 0
                                          • Homoran
                                            Homoran Global Moderator Administrators last edited by

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

                                            Einerseits lese ich, dass diese DP bei einem javascript Update gelöscht werden, andererseits, dass da auf "lange Zeit nichts passieren wird". Was ist nun richtig? Werden eigene DP in javascript.0 "geduldet"

                                            da fehlt ein wichtiges Wort

                                            bei einem javascript Update gelöscht werden könnten

                                            der Rest passt

                                            A 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

                                            485
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            36
                                            466
                                            60767
                                            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