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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Admin5: Ich kann keine Objekte mehr manuell anlegen

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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
                          • mickym
                            mickym Most Active @apollon77 last edited by mickym

                            @apollon77 Das Prinzip hab ich ja verstanden - ich versuche ja nur gerade zu überlegen, wie ein einfache Lösung aussehen könnte. ;), sodass man mit einer "id" einfach weiterarbeiten kann - auch wenn zur Erstellung des Objektes eben nicht alle Hierarchieebenen vorhanden sind.

                            Und das ist meines Erachtens ja kein Problem von NodeRed oder anderen Logikmaschinen, ich kann ja auch in dem jetzigen Admin einen Datenpunkt mit xx.yy.zz erstellen und yy ist dann automatisch ein nicht existierendes Objekt.

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

                              @mickym Am Ende müssen die relevanten Adapterentwickler das angehen ... wie node-red und so ... und der controller muss unterstützen. Aber das führt hier etwas zu weit

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

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

                                @mickym Am Ende müssen die relevanten Adapterentwickler das angehen ... wie node-red und so ... und der controller muss unterstützen. Aber das führt hier etwas zu weit

                                Na wie gesagt auch der jetzige Admin 5 lässt noch über xxx.yyy.zzz bei der Erstellung eines Datenpunktes "nicht existierende Objekte zu" - deswegen war ich der Meinung es liegt vielleicht nicht nur am einzelnen Adapter, sondern man kann das im System irgendwie lösen. Aber OK führt wohl zu weit.

                                Mit Umgehungslösungen und dem Skript von @fastfoot kann man sich ja behelfen, zumindest solange nicht weiter eingeschränkt wird!

                                1 Reply Last reply Reply Quote 0
                                • OliverIO
                                  OliverIO last edited by OliverIO

                                  Grundsätzlich muss man mal überlegen warum das so sein muss. Welches zukünftige geplante Feature wird nicht funktionieren, wenn die Objektstruktur nicht bereinigt wird.

                                  oder möchte man nur bereinigen, weil das in einem ursprünglichen Konzept so mal aufgeschrieben wurde?

                                  Ich selbst verwende in meinen Adaptern fast nur Objekte, mit der Bezeichnung von xxx.yyy.zzz. Das ist für die Erstellung und Verwaltung viel einfacher und dennoch hat man in der Visualisierung die Unterteilung in eine "Pseudo-Ordner-Struktur"

                                  Wenn ich jetzt dran denke, das ich für jede Ebene ein separates Objekt anlegen muss, asynchron darauf warten muss, bis es angelegt wurde, dann die nächste Ebene anlegen kann und so fort, dann wird das mit den heutigen mitteln schon aufwändiger.

                                  Das muss ich dann bei jedem Adapterstart auch noch überprüfen (gibt es eigentlich die Funktion: gib mir alle Objekte unterhalb eines Astes?).
                                  Auch hier muss ich warten, bis eine Ebene abgefragt wurde und kann dann erst die nächste Ebene abfragen.

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

                                    @oliverio Bitte das Thema "Adapter-Entwicklung" hier nicht auch noch reinmischen ... lasst das bitte in den Entwickler Foren bzw Channeln klären.

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

                                      @liv-in-sky sagte in Admin5: Ich kann keine Objekte mehr manuell anlegen:

                                      ein weiteres puzzleteil

                                      der Datenpunktkonverter für Skripte ist jetzt im Pre-Alpha. Läuft schon perfekt(???) für Blocklys aber so kann ich ihn noch nicht freigeben. Ich suche noch ein paar fancy Skripte(Blockly only) um mehr zu testen, am Besten mit zu konvertierenden DP in JS-Funktionen...

                                      • Schreiben als XML oder js/ts ins Dateisystem
                                      • Direktes Ändern im System, wahlweise mit neuer ID(.chg)
                                      • Filtern nach Ordner oder Skript möglich

                                      Braucht das Wer?

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

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

                                        @oliverio Bitte das Thema "Adapter-Entwicklung" hier nicht auch noch reinmischen ... lasst das bitte in den Entwickler Foren bzw Channeln klären.

                                        Hm, ist das anlegen von Datenpunkten nicht ein generelles Thema um das es hier in diesem Thread geht?
                                        Gelten den für Adapter und manuelle Anlage von Datenpunkten unterschiedliche Regeln?

                                        Ich lese hier nur, das es hier auch um die Anlage von verschiedenen Objekten (channel, devices, directory) geht, um eine gewisse (gestaffelte) Struktur in vis zu erzeugen, gegenüber einer flachen Liste von Datenpunkten, die im Namen ein oder mehrere Punkte enthalten.

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

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

                                          Hm, ist das anlegen von Datenpunkten nicht ein generelles Thema um das es hier in diesem Thread geht?

                                          Jain ... in dem Thread geht es um "Hilfe ich kann per Admin5 keine Objekt mehr manuell anlegen" 🙂

                                          Die ganze andere Diskussion ist quasi Off Topic reingerutscht.

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

                                            @fastfoot danke für's weiterverfolgen - vielleicht sollten wir neuen thread aufmachen ?

                                            ich habe so gut wie keine scripte, die in blockly datenpunkte anlegen, damit du das testen kannst - aber das hier habe ich gefunden

                                            • legt dp unter javascript an
                                            • ist eine stoppuhr
                                            • wenn start unter steuerung gedrückt wird - beginnt stoppuhr
                                            • anschliessend stopp drücken
                                            • anschliessend reset um wieder bei 0 zu beginnen
                                            • die dp werden mit einer js-function angelegt - kannst du ja disabeln, falls das stört

                                            Image 1.png

                                            hoffe, dass hilft weiter

                                            stoppuhr-script-blockly.txt

                                            F 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

                                            762
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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