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

  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Admin5: Ich kann keine Objekte mehr manuell anlegen

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.3k

Admin5: Ich kann keine Objekte mehr manuell anlegen

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
466 Beiträge 36 Kommentatoren 92.4k Aufrufe 25 Watching
  • Ä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.
  • F fastfoot

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

    Ob man aus der letzten Zeile wieder ein Blockly machen kann?

    Man kann, ich habe dazu auch schon verschiedene Beiträge gepostet. Die Behandlung ist etwas unterschiedlich je nachdem woher die Daten kommen(Extract aller Skripte, Blockly.js, backup.json). Hier mal für ein Beispiel für eine Blocklydatei im Mirrorpfad. Man könnte diese auch gleich ins System einlesen, ist hier aber nicht gemacht sondern wird als Datei zur Verfügung gestellt. Ist ein Skript aus meiner ersten Zeit mit Javascript.
    Pfad und Filename sind in den Zeilen 8 + 9 anzugeben, die Importdaten liegen dann als Datei.xml vor

     /**
     * Zweck:       Extrahiert XML Datei aus Blockly.js im Mirror-Pfad
     * Datum:       08.08.2021
     * Autor:       @fastfoot
     */
    var fs = require('fs');
    
    var scriptPath = '/opt/iobroker/scripts/';
    var inFile = 'TestXY'
    
    var scriptName1 = scriptPath + inFile + '.js';
    var scriptName2 = scriptName1.replace('.js','.xml');
    
    function getXML() {
        fs.readFile(scriptName1, 'utf8',  function(error, data) {
            if(error) log('Fehler beim Lesen von ' + scriptName1, 'error');
            else {
                const pos = data.lastIndexOf('\n');
                if (pos !== -1) {
                    data = data.substring(pos + 1);
                    if (data[0] === '/' && data[1] === '/') {
                        data = decodeURIComponent(Buffer.from(data.substring(2), 'base64').toString('utf8'));
                        if (data.startsWith('<xml xmlns')) {
                            fs.writeFile(scriptName2, data, function(err) {
                                if(err) return console.log(err);
                            });
                        }
                    }
                }
            }
        });
    }
    
    getXML();
    
    D Online
    D Online
    darkiop
    Most Active
    schrieb am zuletzt editiert von
    #264

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

    Proxmox-ioBroker-Redis-HA Doku: https://forum.iobroker.net/topic/47478/dokumentation-einer-proxmox-iobroker-redis-ha-umgebung

    F 1 Antwort Letzte Antwort
    0
    • apollon77A apollon77

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

      mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #265

      gelöscht

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      F 1 Antwort Letzte Antwort
      1
      • D darkiop

        @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 Offline
        F Offline
        fastfoot
        schrieb am zuletzt editiert von
        #266

        @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

        iobroker läuft unter Docker auf QNAP TS-451+
        SkriptRecovery: https://forum.iobroker.net/post/930558

        1 Antwort Letzte Antwort
        0
        • mickymM mickym

          gelöscht

          F Offline
          F Offline
          fastfoot
          schrieb am zuletzt editiert von
          #267

          @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

          iobroker läuft unter Docker auf QNAP TS-451+
          SkriptRecovery: https://forum.iobroker.net/post/930558

          mickymM 2 Antworten Letzte Antwort
          0
          • F fastfoot

            @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

            mickymM Online
            mickymM Online
            mickym
            Most Active
            schrieb am zuletzt editiert von mickym
            #268

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

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            F 1 Antwort Letzte Antwort
            0
            • F fastfoot

              @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

              mickymM Online
              mickymM Online
              mickym
              Most Active
              schrieb am zuletzt editiert von mickym
              #269

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

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              F apollon77A 2 Antworten Letzte Antwort
              0
              • mickymM 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 Offline
                F Offline
                fastfoot
                schrieb am zuletzt editiert von
                #270

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

                iobroker läuft unter Docker auf QNAP TS-451+
                SkriptRecovery: https://forum.iobroker.net/post/930558

                1 Antwort Letzte Antwort
                0
                • mickymM 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 Offline
                  F Offline
                  fastfoot
                  schrieb am zuletzt editiert von
                  #271

                  @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

                  iobroker läuft unter Docker auf QNAP TS-451+
                  SkriptRecovery: https://forum.iobroker.net/post/930558

                  mickymM 1 Antwort Letzte Antwort
                  0
                  • mickymM 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. ;)

                    apollon77A Offline
                    apollon77A Offline
                    apollon77
                    schrieb am zuletzt editiert von
                    #272

                    @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

                    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
                    mickymM 1 Antwort Letzte Antwort
                    0
                    • F fastfoot

                      @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

                      mickymM Online
                      mickymM Online
                      mickym
                      Most Active
                      schrieb am zuletzt editiert von
                      #273

                      @fastfoot Jo

                      adapter.setObject(id, data, _ => adapter.setState(id, val, () => callback && callback(true)));
                      

                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                      1 Antwort Letzte Antwort
                      0
                      • apollon77A apollon77

                        @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

                        mickymM Online
                        mickymM Online
                        mickym
                        Most Active
                        schrieb am zuletzt editiert von mickym
                        #274

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

                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                        apollon77A 1 Antwort Letzte Antwort
                        0
                        • mickymM 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.

                          apollon77A Offline
                          apollon77A Offline
                          apollon77
                          schrieb am zuletzt editiert von
                          #275

                          @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

                          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
                          mickymM 1 Antwort Letzte Antwort
                          0
                          • apollon77A apollon77

                            @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

                            mickymM Online
                            mickymM Online
                            mickym
                            Most Active
                            schrieb am zuletzt editiert von
                            #276

                            @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!

                            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                            1 Antwort Letzte Antwort
                            0
                            • OliverIOO Offline
                              OliverIOO Offline
                              OliverIO
                              schrieb am zuletzt editiert von OliverIO
                              #277

                              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.

                              Meine Adapter und Widgets
                              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                              Links im Profil

                              apollon77A 1 Antwort Letzte Antwort
                              1
                              • OliverIOO 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.

                                apollon77A Offline
                                apollon77A Offline
                                apollon77
                                schrieb am zuletzt editiert von
                                #278

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

                                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
                                OliverIOO 1 Antwort Letzte Antwort
                                0
                                • liv-in-skyL liv-in-sky

                                  @mickym

                                  erstmal vielen dank

                                  ein weiteres puzzleteil

                                  F Offline
                                  F Offline
                                  fastfoot
                                  schrieb am zuletzt editiert von
                                  #279

                                  @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?

                                  iobroker läuft unter Docker auf QNAP TS-451+
                                  SkriptRecovery: https://forum.iobroker.net/post/930558

                                  liv-in-skyL 1 Antwort Letzte Antwort
                                  0
                                  • apollon77A apollon77

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

                                    OliverIOO Offline
                                    OliverIOO Offline
                                    OliverIO
                                    schrieb am zuletzt editiert von
                                    #280

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

                                    Meine Adapter und Widgets
                                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                    Links im Profil

                                    apollon77A 1 Antwort Letzte Antwort
                                    0
                                    • OliverIOO OliverIO

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

                                      apollon77A Offline
                                      apollon77A Offline
                                      apollon77
                                      schrieb am zuletzt editiert von
                                      #281

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

                                      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
                                      • F fastfoot

                                        @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-skyL Offline
                                        liv-in-skyL Offline
                                        liv-in-sky
                                        schrieb am zuletzt editiert von
                                        #282

                                        @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

                                        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                        F 1 Antwort Letzte Antwort
                                        0
                                        • F 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);
                                          }
                                          

                                          R Offline
                                          R Offline
                                          rebel85
                                          schrieb am zuletzt editiert von
                                          #283

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

                                          folder

                                          das skript einfach kopieren, als neue javaskript instanz anlegen un dann nur auf play (starten) drücken?

                                          F 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
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          293

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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