Skip to content
  • 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
  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.1k

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

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

Admin5: Ich kann keine Objekte mehr manuell anlegen

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
466 Beiträge 36 Kommentatoren 92.1k 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.
  • apollon77A apollon77

    @liv-in-sky Typ Meta??? Warum? Wozu? Das ist an sich falsch

    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von paul53
    #169

    @apollon77 sagte: Typ Meta??? Warum? Wozu? Das ist an sich falsch

    Was ist daran falsch? "0_userdata.0", "0_test.0", "admin.0", "alias.0" ... haben auch den Typ "meta".

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    1 Antwort Letzte Antwort
    0
    • liv-in-skyL liv-in-sky

      @paul53
      script lief - ohne fehler
      ich kann keine datenpunkt in meiner struktur anlegen - liegt das daran, dass der typ von controll-own falsch ist ?

      AApossis (97).gif

      wenn ja - kann ich noch was tun - oder nur als expert arbeiten bzw mit der alten benutzeroberfläche für den objecte-tab

      das umstellen der struktur nach userdata ist eher keine option - dp unter controll-own: 771, scripte: sehr viele - vis : sehr viele

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

      @liv-in-sky Ich denke das wird faktisch nicht funktionieren weil Admin denkt das das ein Adapter ist und deren Objekte darf keiner ändern. Vllt im Expertenmodus? Ansonsten halt zum anlegen von neuen Objekten dort mit ner zweiten Admin Instanz mit alter UI arbeiten so lange bis Du umgestellt hast

      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
      paul53P liv-in-skyL 2 Antworten Letzte Antwort
      0
      • paul53P paul53

        @liv-in-sky sagte: oder nur als expert arbeiten

        So ist es, wenn manuell Datenpunkte unter "controll-own" erstellt werden sollen (hatte ich oben nachträglich geschrieben).

        Weshalb ist "controll-own.0" ein Folder-Objekt? Ändere es in den Eigenschaften in "meta".

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

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

        Weshalb ist "controll-own.0" ein Folder-Objekt? Ändere es in den Eigenschaften in "meta".

        Nee bitte nicht meta ... Das ist für was anderes

        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
        cashC paul53P 2 Antworten Letzte Antwort
        0
        • apollon77A apollon77

          @liv-in-sky Ich denke das wird faktisch nicht funktionieren weil Admin denkt das das ein Adapter ist und deren Objekte darf keiner ändern. Vllt im Expertenmodus? Ansonsten halt zum anlegen von neuen Objekten dort mit ner zweiten Admin Instanz mit alter UI arbeiten so lange bis Du umgestellt hast

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #172

          @apollon77 sagte: Vllt im Expertenmodus?

          Ja, nur im Expertenmodus.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @dr-bakterius sagte: meine Blocklys werden in Dateien gespiegelt

            Aber nicht als Blockly, sondern der erzeugte Javascript-Code. Ob man aus der letzten Zeile wieder ein Blockly machen kann?

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

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

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

            liv-in-skyL D 2 Antworten Letzte Antwort
            1
            • apollon77A apollon77

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

              Weshalb ist "controll-own.0" ein Folder-Objekt? Ändere es in den Eigenschaften in "meta".

              Nee bitte nicht meta ... Das ist für was anderes

              cashC Offline
              cashC Offline
              cash
              Most Active
              schrieb am zuletzt editiert von
              #174

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

              Nee bitte nicht meta ... Das ist für was anderes

              Wofür ist meta? Und warum ist 0_userdata dann meta?

              apollon77A 1 Antwort Letzte Antwort
              0
              • apollon77A apollon77

                @liv-in-sky Ich denke das wird faktisch nicht funktionieren weil Admin denkt das das ein Adapter ist und deren Objekte darf keiner ändern. Vllt im Expertenmodus? Ansonsten halt zum anlegen von neuen Objekten dort mit ner zweiten Admin Instanz mit alter UI arbeiten so lange bis Du umgestellt hast

                liv-in-skyL Offline
                liv-in-skyL Offline
                liv-in-sky
                schrieb am zuletzt editiert von liv-in-sky
                #175

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

                Ansonsten halt zum anlegen von neuen Objekten dort mit ner zweiten Admin Instanz mit alter UI arbeiten so lange bis Du umgestellt hast

                sorry - aber das ist wie von neu anzufangen

                • vis
                • nodered
                • blockly
                • aliase
                • alle js scripte
                • flot
                • smart controll adapter setting
                • iqontrol setting
                • eventlist adapter setting

                muss alles umgestellt werden und soll am ende auch noch funktionieren

                ich hoffe einfach, dass wird in der zukunft keine auswirkungen haben - ich kann damit leben, dass ich keine objecte mehr anlegen kann bzw nur im expert modus - neue sachen kann ich unter userdata machen -aber das alte alles umzustellen wäre etwas zuviel verlangt

                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

                cashC 1 Antwort Letzte Antwort
                0
                • cashC cash

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

                  Nee bitte nicht meta ... Das ist für was anderes

                  Wofür ist meta? Und warum ist 0_userdata dann meta?

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

                  @cash Ein meta Objekt ist die Grundlage um im ioBroker.eigenen File-Storage Dateien ablegen zu können.
                  0_userdata.0 hat es weil man auch unter dem Namespace Visu-Files ablegen können soll das man nicht immer alles in die Namespaces der Visu Adapter legen muss.

                  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
                  • liv-in-skyL liv-in-sky

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

                    Ansonsten halt zum anlegen von neuen Objekten dort mit ner zweiten Admin Instanz mit alter UI arbeiten so lange bis Du umgestellt hast

                    sorry - aber das ist wie von neu anzufangen

                    • vis
                    • nodered
                    • blockly
                    • aliase
                    • alle js scripte
                    • flot
                    • smart controll adapter setting
                    • iqontrol setting
                    • eventlist adapter setting

                    muss alles umgestellt werden und soll am ende auch noch funktionieren

                    ich hoffe einfach, dass wird in der zukunft keine auswirkungen haben - ich kann damit leben, dass ich keine objecte mehr anlegen kann bzw nur im expert modus - neue sachen kann ich unter userdata machen -aber das alte alles umzustellen wäre etwas zuviel verlangt

                    cashC Offline
                    cashC Offline
                    cash
                    Most Active
                    schrieb am zuletzt editiert von
                    #177

                    @liv-in-sky Ich fange lieber jetzt damit an als in ein oder zwei Jahren wenn die Entwickler eine Version rausbringen wo es dann garnicht mehr geht und man dann alles schnell, schnell umstellen muss.

                    Ich werde auch einige Monate brauchen und richtig schön finde ich es nicht aber was nützt es? Es ist halt schade, dass man das früher machen konnte und das System es zugelassen hat…

                    paul53P liv-in-skyL 2 Antworten Letzte Antwort
                    0
                    • cashC cash

                      @liv-in-sky Ich fange lieber jetzt damit an als in ein oder zwei Jahren wenn die Entwickler eine Version rausbringen wo es dann garnicht mehr geht und man dann alles schnell, schnell umstellen muss.

                      Ich werde auch einige Monate brauchen und richtig schön finde ich es nicht aber was nützt es? Es ist halt schade, dass man das früher machen konnte und das System es zugelassen hat…

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #178

                      @cash sagte: Es ist halt schade, dass man das früher machen konnte und das System es zugelassen hat…

                      Das System lässt es immer noch zu, allerdings nur noch für "Experten". Daran wird sich sicherlich auch nichts ändern?

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      1 Antwort Letzte Antwort
                      0
                      • cashC cash

                        @liv-in-sky Ich fange lieber jetzt damit an als in ein oder zwei Jahren wenn die Entwickler eine Version rausbringen wo es dann garnicht mehr geht und man dann alles schnell, schnell umstellen muss.

                        Ich werde auch einige Monate brauchen und richtig schön finde ich es nicht aber was nützt es? Es ist halt schade, dass man das früher machen konnte und das System es zugelassen hat…

                        liv-in-skyL Offline
                        liv-in-skyL Offline
                        liv-in-sky
                        schrieb am zuletzt editiert von
                        #179

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

                        Ich werde auch einige Monate brauchen und richtig schön finde ich es nicht aber was nützt es? Es ist halt schade, dass man das früher machen konnte und das System es zugelassen hat…

                        leider geht das nicht über monate bzw ist viel aufwendiger - alles auf einmal oder garnicht - die vis macht das nicht mit, nur einzelene sachen umzustellen - der aufwand wäre um einiges mehr, wenn du das langsam machst - natürlich abhängig davon, was der nutzer konfiguriert hat, da du sonst immer wieder die selben umstellungen (search & replace) machen musst

                        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

                        1 Antwort Letzte Antwort
                        0
                        • 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();
                          
                          liv-in-skyL Offline
                          liv-in-skyL Offline
                          liv-in-sky
                          schrieb am zuletzt editiert von liv-in-sky
                          #180

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

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

                          wußte gar nicht, dass du sowas gemacht hast - muss ich mal testen n - das wäre def. eine große hilfe

                          könnte man da noch js scripte mit reinbingen, damit dort auch die objecte replaced werden können und eine schleife für einen bestimmten ordner - wie "controll-own.0.xxx"

                          EDIT: sowas: "filesystem.readdirSync(dir).forEach(function(file) {"

                          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
                          • liv-in-skyL liv-in-sky

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

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

                            wußte gar nicht, dass du sowas gemacht hast - muss ich mal testen n - das wäre def. eine große hilfe

                            könnte man da noch js scripte mit reinbingen, damit dort auch die objecte replaced werden können und eine schleife für einen bestimmten ordner - wie "controll-own.0.xxx"

                            EDIT: sowas: "filesystem.readdirSync(dir).forEach(function(file) {"

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

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

                            wußte gar nicht, dass du sowas gemacht hast - muss ich mal testen n - das wäre def. eine große hilfe

                            da hast du meine Beiträge wohl nicht beachtet, bin ja auch noch nicht soo lange im Forum aktiv. Ausserdem waren das fast alles Antworten auf Probleme Anderer, keine eigenen, als [Skript] gekennzeichnete eigene Threads. Ich finde die teilweise selbst nicht mehr mit der SuFu hier im Forum

                            könnte man da noch js scripte mit reinbingen, damit dort auch die objecte replaced werden können und eine schleife für einen bestimmten ordner - wie "controll-own.0.xxx"
                            EDIT: sowas: "filesystem.readdirSync(dir).forEach(function(file) {"

                            Können täte man, habe mal so einen kompletten Mirrorpfad in mein Testsystem importiert, rein aus Spaß. Ich verstehe allerdings nicht ganz was du konkret vorhast. Wenn du mal so ein Skript posten würdest und was du daran ändern möchtest kann ich gerne mal schauen

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

                            liv-in-skyL 1 Antwort Letzte Antwort
                            0
                            • F fastfoot

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

                              wußte gar nicht, dass du sowas gemacht hast - muss ich mal testen n - das wäre def. eine große hilfe

                              da hast du meine Beiträge wohl nicht beachtet, bin ja auch noch nicht soo lange im Forum aktiv. Ausserdem waren das fast alles Antworten auf Probleme Anderer, keine eigenen, als [Skript] gekennzeichnete eigene Threads. Ich finde die teilweise selbst nicht mehr mit der SuFu hier im Forum

                              könnte man da noch js scripte mit reinbingen, damit dort auch die objecte replaced werden können und eine schleife für einen bestimmten ordner - wie "controll-own.0.xxx"
                              EDIT: sowas: "filesystem.readdirSync(dir).forEach(function(file) {"

                              Können täte man, habe mal so einen kompletten Mirrorpfad in mein Testsystem importiert, rein aus Spaß. Ich verstehe allerdings nicht ganz was du konkret vorhast. Wenn du mal so ein Skript posten würdest und was du daran ändern möchtest kann ich gerne mal schauen

                              liv-in-skyL Offline
                              liv-in-skyL Offline
                              liv-in-sky
                              schrieb am zuletzt editiert von
                              #182

                              @fastfoot

                              ich möchte meine datenpunkte von "controll-own.0" nach "0_userdata.0.controll-own." umstellen

                              normalerweise, wenn ich es sehe, schau ich mir deine sachen gerne an - du hast eigentlich immer gute scripte am start 🙂

                              ich hab auch ein script, dass alle scripte im mirror-pfad einliest und durchsucht - ich suche darin nach datenpunkten und schaue nach, ob die noch existieren (war mal zum testen) cool wäre es, wenn man in den einzelnen scripten die object-pfade ändern könnte - bei mir - alles was "controll-own.0." enthält in "0_userdata.0.controll-own." zu ändern - vorallem auch in blocklys

                              ich denke, man könnte das evtl mit nodered auch machen (weiß ich nicht - müßte man schauen, wie dort gespeichert wird)

                              dann noch ein paar adapter settting angleichen und die ganzen vis seiten und fertig ist die umsetellung von "controll-own.0" nach "0_userdata.0.controll-own."

                              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
                              • apollon77A apollon77

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

                                Weshalb ist "controll-own.0" ein Folder-Objekt? Ändere es in den Eigenschaften in "meta".

                                Nee bitte nicht meta ... Das ist für was anderes

                                paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von
                                #183

                                @apollon77 sagte: Nee bitte nicht meta ... Das ist für was anderes

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

                                @apollon77 was soll ich da reinschreiben ? was hälst du für besser

                                Das würde mich auch interessieren.

                                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                apollon77A 1 Antwort Letzte Antwort
                                0
                                • HomoranH Homoran

                                  @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 Offline
                                  A Offline
                                  Abruni
                                  schrieb am zuletzt editiert von
                                  #184

                                  @homoran said in Admin5: Ich kann keine Objekte mehr manuell anlegen:
                                  könnte?
                                  Und dass ist wovon abhängig, kommt das automatisch mit der Zeit, oder ist das zufällig wie das Wetter? Wird das vorher nochmal kommuniziert, oder trifft es einen dann irgendwann überraschend, dass nichts mehr funktioniert? Gab es da vorher, mal einen Hinweis den ich nicht mitbekommen habe, dass man seine DP zu 0_Userdata umziehen sollte? Und, gibt es dafür evtl. einen Lösungsvorschlag?

                                  HomoranH 1 Antwort Letzte Antwort
                                  0
                                  • liv-in-skyL liv-in-sky

                                    @fastfoot

                                    ich möchte meine datenpunkte von "controll-own.0" nach "0_userdata.0.controll-own." umstellen

                                    normalerweise, wenn ich es sehe, schau ich mir deine sachen gerne an - du hast eigentlich immer gute scripte am start 🙂

                                    ich hab auch ein script, dass alle scripte im mirror-pfad einliest und durchsucht - ich suche darin nach datenpunkten und schaue nach, ob die noch existieren (war mal zum testen) cool wäre es, wenn man in den einzelnen scripten die object-pfade ändern könnte - bei mir - alles was "controll-own.0." enthält in "0_userdata.0.controll-own." zu ändern - vorallem auch in blocklys

                                    ich denke, man könnte das evtl mit nodered auch machen (weiß ich nicht - müßte man schauen, wie dort gespeichert wird)

                                    dann noch ein paar adapter settting angleichen und die ganzen vis seiten und fertig ist die umsetellung von "controll-own.0" nach "0_userdata.0.controll-own."

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

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

                                    ich möchte meine datenpunkte von "controll-own.0" nach "0_userdata.0.controll-own." umstellen

                                    du kannst doch unmittelbar vor dem Schreiben der XML-Datei ein data.replace(/oldPath/g,newPath) machen. Schwierig wird es mit JS-Funktionen, die sind auch base64 codiert, sollte aber gehen

                                    Hier mal ein kmpl. anderer Ansatz, extrahiert werden alle Skripte aus einer objects.json und wahlweise als Textdatei und/oder ins System geschrieben(mit Endung .bak). Eine Auflistung der Skripte wird in eine json exportiert.

                                    • Backup machen!
                                    • System stoppen(sonst könnte die objects.json beschädigt sein!)
                                    • objects.json nach zB /opt/iobroker/restore im Testsystem kopieren (oder im Produktiv 🙂 )
                                    • Die Zeilen 8-11 beachten
                                    • Skript laufen lassen und den Export anschauen, danach die Variablen zum Schreiben in eine Datei oder ins System auf true setzen
                                    • evtl. den Lauf auf ein einziges Skript/einzelnen Pfad (Zeile 32) beschränken, sonst wird es schnell unübersichtlich
                                    • Backup nicht vergessen!

                                    habe es nicht mehr extra laufen lassen, sollte aber noch funktionieren, sonst halt melden. Die replace Funktionen sind nicht drin, bei Blockly in handleBlockly() einfach einbauen

                                    /**
                                    * Zweck:   Extract scripts from objects.json
                                    * Datum:   16.11.2020
                                    * Autor:   @fastfoot
                                    */
                                    const fs = require('fs'),
                                       path = require('path'),
                                       restoreToSystemDb = !true,              // lädt die Daten sofort ins System(ACHTUNG! *** auf eigenes Risiko ***)
                                       restoreAsFile = !true,                  // Datei ins Filesystem schreiben
                                       pathToRestore = '/opt/iobroker/restore/', // <=== Pfad eintragen mit abschliessendem /
                                       fileName = 'objects.json';              // Dateiname der objects.json
                                    
                                    main(pathToRestore, fileName)
                                    
                                    async function main(pathRestore, fileName) {
                                       let allObjects = {},
                                           script = {},
                                           ext = '',
                                           data = '',
                                           resultText = 'Gefundene Skripte ' + formatDate(new Date().getTime(),'DD.MM.YYYY hh:mm') + '\n\n',
                                           res = {};
                                    
                                       try {
                                           allObjects = JSON.parse(fs.readFileSync(pathRestore + fileName, 'utf8'))
                                       } catch (e) {
                                           log(`Fehler beim Lesen von ${fileName} in ${pathRestore}: ` + e, "error")
                                       }
                                       let i = 0;
                                       for (let key in allObjects) {
                                           script = allObjects[key];
                                           if (script.type == 'script') {
                                               if (!existsObject(key)  && restoreToSystemDb) {
                                                   script.common.name += '.bak';
                                                   setObject(key, { type: script.type, common: script.common });
                                                   //setObject(key, allObjects[key]);
                                               }
                                               if (restoreAsFile) {
                                                   data = script.common.source;
                                                   switch (script.common.engine.toLowerCase()) {
                                                       case 'blockly':
                                                           ext = 'xml';
                                                           data = handleBlockly(script.common.source)
                                                           break;
                                                       case 'javascript/js':
                                                           ext = '.js';
                                                           break;
                                                       case 'typescript/ts':
                                                           ext = '.ts';
                                                           break;
                                                       default:
                                                           ext = '.js';
                                                   }
                                                   fs.writeFile(pathRestore + key.substring(10) + ext, data, e => {
                                                       if (e) log('Fehler beim Schreiben der Datei:' + e.error)
                                                   })
                                               }
                                               //res[key.substr(10)] = {name: script.common.name,typ:script.common.engineType};
                                               res[key.substr(10)] = script.common.engineType;
                                               //resultText += 'Skript: ' + script.common.name + '\t\t\t\t\t\t' + 'Typ: ' + script.common.engineType + '\n';
                                           }
                                       }
                                       /*fs.writeFile(pathRestore + 'GefundeneSkripte.txt', resultText, e => {
                                           if (e) log('Schreibfehler bei Ergebnisdatei');
                                       })*/
                                    
                                       // sortieren
                                       let b = {};
                                       let a=Object.keys(res).sort();
                                       for(let i=0;i<a.length;i++){
                                           b[i + ' ' + a[i]]=res[a[i]];
                                       }
                                    
                                       fs.writeFile(pathRestore + 'GefundeneSkripte.json', JSON.stringify(b,null,3), e => {
                                           if (e) log('Schreibfehler bei Ergebnisdatei');
                                       })
                                    
                                       log('done')
                                    }
                                    
                                    function handleBlockly(source){
                                       const pos = source.lastIndexOf('\n');
                                       if (pos !== -1) {
                                           source = source.substring(pos + 3);
                                           if(source.indexOf('JTNDeG1sJTIweG1') > -1) {
                                               source = decodeURIComponent(Buffer.from(source, 'base64').toString('utf8'));
                                               return prettifyXml(source);
                                           }
                                       }
                                    }
                                    
                                    //from Stackoverflow
                                    function prettifyXml(xml){
                                       var reg = /(>)\s*(<)(\/*)/g;
                                       xml = xml.replace(/\r|\n/g, ''); //deleting already existing whitespaces
                                       xml = xml.replace(reg, '$1\r\n$2$3');
                                       return xml;
                                    }
                                    

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

                                    liv-in-skyL 1 Antwort Letzte Antwort
                                    3
                                    • A Abruni

                                      @homoran said in Admin5: Ich kann keine Objekte mehr manuell anlegen:
                                      könnte?
                                      Und dass ist wovon abhängig, kommt das automatisch mit der Zeit, oder ist das zufällig wie das Wetter? Wird das vorher nochmal kommuniziert, oder trifft es einen dann irgendwann überraschend, dass nichts mehr funktioniert? Gab es da vorher, mal einen Hinweis den ich nicht mitbekommen habe, dass man seine DP zu 0_Userdata umziehen sollte? Und, gibt es dafür evtl. einen Lösungsvorschlag?

                                      HomoranH Nicht stören
                                      HomoranH Nicht stören
                                      Homoran
                                      Global Moderator Administrators
                                      schrieb am zuletzt editiert von
                                      #186

                                      @abruni Ist diese Antwort ernst gemeint?
                                      ich hoffe nicht.

                                      trotzdem:
                                      Das ist doch alles bereits gesagt worden.

                                      • bei einer breaking change in einem Namespace eines jeden Adapters könnte es dazu kommen, dass erst einmal alles geleert wird.
                                      • so etwas steht dann in dem changelog, der dir ja jetzt ab admin v5 angezeigt wird, bevor du auf update klickst
                                      • dies bei javascript die nächste Zeit nicht passieren wird
                                      • und selbstverständlich vorher kommuniziert wird.
                                        • genau wie die Information seit der Existenz des Namespaces 0_userdata.0, dass dies der Platz für eigene Datenpunkte sein soll mit Ausnahme von javascript.0/1/2...

                                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                      A 1 Antwort Letzte Antwort
                                      -1
                                      • HomoranH Homoran

                                        @abruni Ist diese Antwort ernst gemeint?
                                        ich hoffe nicht.

                                        trotzdem:
                                        Das ist doch alles bereits gesagt worden.

                                        • bei einer breaking change in einem Namespace eines jeden Adapters könnte es dazu kommen, dass erst einmal alles geleert wird.
                                        • so etwas steht dann in dem changelog, der dir ja jetzt ab admin v5 angezeigt wird, bevor du auf update klickst
                                        • dies bei javascript die nächste Zeit nicht passieren wird
                                        • und selbstverständlich vorher kommuniziert wird.
                                          • genau wie die Information seit der Existenz des Namespaces 0_userdata.0, dass dies der Platz für eigene Datenpunkte sein soll mit Ausnahme von javascript.0/1/2...
                                        A Offline
                                        A Offline
                                        Abruni
                                        schrieb am zuletzt editiert von
                                        #187

                                        @homoran
                                        Ist diese Antwort ernst gemeint?
                                        Ja, weil meine Fragen immer noch nicht beantwortet wurden, bzw. widersprüchlich.
                                        so etwas steht dann in dem changelog, der dir ja jetzt ab admin v5 angezeigt wird
                                        Kann ich das wissen, ohne Admin5 installiert zu haben? Ich würde wohl kaum fragen, wenn ich keine Bedenken hätte dies zu tun.
                                        genau wie die Information seit der Existenz des Namespaces 0_userdata.0, dass dies der Platz für eigene Datenpunkte sein soll mit Ausnahme von javascript.0/1/2...
                                        Genauso habe ich es doch auch geschrieben und habe JEDE Empfehlung befolgt. Bevor es 0_Userdata gab, sollten eigene DP im Javascript.0 angelegt werden, habe ich gemacht. Dann kam der Ordner 0_Userdata und die Empfehlung die DP dort anzulegen, habe ich gemacht. Also verstehe ich nicht, warum Du so einen Ton anschlägst und da Du selber schreibst "mit Ausnahme von javascript.0/1/2" weiss ich immer noch nicht, wie eine Lösung aussehen könnte.

                                        crunchipC HomoranH 2 Antworten Letzte Antwort
                                        0
                                        • A Abruni

                                          @homoran
                                          Ist diese Antwort ernst gemeint?
                                          Ja, weil meine Fragen immer noch nicht beantwortet wurden, bzw. widersprüchlich.
                                          so etwas steht dann in dem changelog, der dir ja jetzt ab admin v5 angezeigt wird
                                          Kann ich das wissen, ohne Admin5 installiert zu haben? Ich würde wohl kaum fragen, wenn ich keine Bedenken hätte dies zu tun.
                                          genau wie die Information seit der Existenz des Namespaces 0_userdata.0, dass dies der Platz für eigene Datenpunkte sein soll mit Ausnahme von javascript.0/1/2...
                                          Genauso habe ich es doch auch geschrieben und habe JEDE Empfehlung befolgt. Bevor es 0_Userdata gab, sollten eigene DP im Javascript.0 angelegt werden, habe ich gemacht. Dann kam der Ordner 0_Userdata und die Empfehlung die DP dort anzulegen, habe ich gemacht. Also verstehe ich nicht, warum Du so einen Ton anschlägst und da Du selber schreibst "mit Ausnahme von javascript.0/1/2" weiss ich immer noch nicht, wie eine Lösung aussehen könnte.

                                          crunchipC Abwesend
                                          crunchipC Abwesend
                                          crunchip
                                          Forum Testing Most Active
                                          schrieb am zuletzt editiert von
                                          #188

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

                                          weiss ich immer noch nicht, wie eine Lösung aussehen könnte.

                                          die Lösung ist, das alles was in javascript angelegt wurde bis auf weiteres auch dort bleiben kann. Für Neuankömmlinge wurde der userdata geschaffen um es zukünftig übersichtlicher zu gestalten und etwaige Fehler vermieden werden.
                                          ein "umsetzen" von javascript zu userdata ist letztendlich jedem selbst überlassen

                                          umgestiegen von Proxmox auf Unraid

                                          A 1 Antwort Letzte Antwort
                                          1
                                          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

                                          750

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe