Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Objekte sichern

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Objekte sichern

    This topic has been deleted. Only users with topic management privileges can see it.
    • Wszene
      Wszene last edited by

      Ich habe mir jetzt mal so eine .json genommen und diese wie folgt abgeändert

      {
        "02_FuerAlexaUndVIS.0.test": {
          "from": "system.adapter.admin.0",
          "user": "system.user.admin",
          "ts": 1578150492870,
          "common": {
            "name": "Test_",
            "role": "",
            "type": "boolean",
            "desc": "Manuell erzeugt",
            "read": true,
            "write": true,
            "def": false,
            "smartName": {
              "de": "Test"
            }
          },
          "native": {},
          "acl": {
            "object": 1638,
            "owner": "system.user.admin",
            "ownerGroup": "system.group.administrator",
            "state": 1638
          },
          "_id": "02_FuerAlexaUndVIS.0.test",
          "type": "state"
        }
      }
      

      Wenn ich diese importieren will kommt folgender Fehler
      Bildschirmfoto 2020-04-06 um 09.20.08.png

      1 Reply Last reply Reply Quote 0
      • S
        Strobi last edited by Strobi

        Hallo zusammen,
        möchte kein neues Thema aufmachen, daher hänge ich mich hier mal dran.

        Ich hab mein System neu aufgesetzt und muss daher ioBroker auch neu aufsetzen.
        Dafür habe ich mir den gesamten Objektbaum "0_userdata" vom alten ioBroker als JSON gesichtert. Den kann ich im neuen System auch wieder einlesen. So weit so gut.

        Wie bekomme ich aber nun die ganzen Datenwerte, die in den einelnen Objekte stehen, ins neue ioBroker System übertragen?

        Gibt's dazu ein paar praktikable Tipps?

        Viele Grüße,
        Strobi

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

          @strobi

          habe es schon lange nicht mehr genutzt - damit hat es damals aber bei mir geklappt

          mit diesem script wird eine datei erzeugt und auf dem server gespeichert /opt/iobroker

          diese datei ist eigentlich ein script, das die states ausliest und diese dann speichert - nach dem import der objecte kann man das erzeugte script , welches die states erstellt, aufrufen

          • script definieren (pfad der datei, datei name und welchen teil er kopieren soll
          • anschliessend datei öffnen und als javascript impotieren

          das erzeugt script im ordner (opt/iobroker) sieht dann so aus - das muss als javascript importiert werden und einmalig aufgerufen werden

          Image 112.png

          das script, welches einmal im "alten iob" laufen muss:

          var fs = require('fs');
          var now =    new Date(); // store current date and time
          var year =   now.getFullYear();
          var month =  addZero(now.getMonth()+1).zero2;
          var day =    addZero(now.getDate()).zero2;
          var Thour =  addZero(now.getHours()).zero2;
          var Tmin =   addZero(now.getMinutes()).zero2;
          var Tsec =   addZero(now.getSeconds()).zero2;
          var logdate = day + '.' + month + '.' + year;
          var logtime = Thour + '-' + Tmin + '-' + Tsec;
          
          let datei = "/opt/iobroker/state";
          
          // Schedule für die Updates
          //schedule("52 9,12,16,19 * * *",  function () {       
          
              var cacheSelectorState = $('[id=0_userdata.0.*]');
          cacheSelectorState.each(function (id, i) {
             if (!id.includes('scriptEnabled') && !id.includes('scriptProblem') && !id.includes('Log-Script')  && !id.includes('Ereignisliste') && !id.includes('GETPROCESS') ){
             var val1 = getState(id).val;
                if (val1 == null ) 
                   {log(id + " hat keinen state");} 
              else {var zk = "setState('"+id+"', "+val1 +");\n";
                    if(typeof val1 === "string" && !val1.includes('span') && !val1.includes('class')) {
                        zk = "setState('"+id+"', '"+val1+"');\n";
                        fs.appendFileSync(datei + "-userdata0-" + logdate + "-"+ logtime + ".txt", zk);}
                    else {
                        fs.appendFileSync(datei + "-userdata0-" + logdate + "-"+ logtime + ".txt", zk);}
                    };}
          });  
          
          
          function addZero(i) {
             if (i < 10) {
                 i = "00" + i;
                 j = "0" + i;
             }
             if (i > 9 && i < 100) {
                 j = "0" + i;
             }
             return {
                 'zero2' : i,
                 'zero3' : j
             };
          } // Ende Funktion
          
          
          
          
          
          

          die pfeile zeigen, wo man etwas einstellen soll/kann

          Image 113.png

          in der javascript instanz muss fs als zusätzliches modul angegeben werden

          bahnuhr S 3 Replies Last reply Reply Quote 1
          • bahnuhr
            bahnuhr Forum Testing Most Active @liv-in-sky last edited by

            @liv-in-sky
            sehr cooles Script,
            kann ich gebrauchen.
            Danke.

            @liv-in-sky sagte in Objekte sichern:

            in der javascript instanz muss fs als zusätzliches modul angegeben werden

            Ist nicht mehr notwendig. Funktioniert mittlerweile auch ohne diesen Eintrag (müsste nun integriert sein).

            1 Reply Last reply Reply Quote 1
            • S
              Strobi @liv-in-sky last edited by

              @liv-in-sky
              Cool, vielen Dank für schnelle & sehr hilfreiche Antwort.
              Das probiere ich die Tage mal aus 👍

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

                @liv-in-sky
                hab noch ein kleines Problem mit dem Unterscript für die 000
                0ff6791c-0606-40b8-b426-2e9669c4a33d-image.png

                Hast du ne aktuelle (richtige) Version.

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

                  @bahnuhr

                  ne - leider nicht - mir war das immer egal, es geht ja nur um den namen und ich habe die scripte gleich ausgeführt und die datei gelöscht - ich nutzte das imme rnur einmal

                  hast du andere pläne mit dem script ?

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

                    @liv-in-sky sagte in Objekte sichern:

                    hast du andere pläne mit dem script ?

                    Ich weiß noch nicht. Aber vielleicht automatisiert die states sichern.
                    Und dann vielleicht noch auf der synology per ftp. Mal schauen.

                    Aber ich passe das js mal an; wenn du nichts dagegen hast.
                    Setze es dann wieder hier rein.

                    mfg
                    Dieter

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

                      @bahnuhr

                      ja gerne - habe im moment eh nicht so viel zeit, dass anzupassen

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

                        @liv-in-sky

                        so, nun mal geändert; die 000 laufen nun richtig.

                        
                        // Script um die eigenen DP mit den States zu sichern in einer txt Datei
                        // diese Datei einfach öffnen und den Inhalt in ein Script einfügen und starten - dann werden die DP wieder mit dem richtigen Inhalt befüllt.
                        // ursprünglich geschrieben von @liv-in-sky     https://forum.iobroker.net/topic/31769/objekte-sichern/17?page=1
                        // umgeschrieben und erweitert von @bahnuhr
                        // 09/2022
                        
                        // Variablen - zum ändern
                            var wo_DP = "javascript.0"              // oder z.B. "0_userdata.0"
                            let datei = "/opt/iobroker/state";      // Verzeichnis, wo die Datei gespeichert wird
                        
                        // Variablen - nicht ändern
                            var fs = require('fs');
                            var now = new Date();   // store current date and time
                            var Jahr = now.getFullYear();
                            var Monat = now.getMonth()+1; if (Monat < 10) { Monat = "0" + Monat; }; 
                            var Tag = now.getDate(); if (Tag < 10) { Tag = "0" + Tag; }; 
                            var Thour = now.getHours(); if (Thour < 10) { Thour = "0" + Thour; }; 
                            var Tmin = now.getMinutes(); if (Tmin < 10) { Tmin = "0" + Tmin; }; 
                            var Tsec = now.getSeconds(); if (Tsec < 10) { Tsec = "0" + Tsec; }; 
                            var logdate = Tag + '.' + Monat + '.' + Jahr;
                            var logtime = Thour + ':' + Tmin + ':' + Tsec;
                        
                        // Script Selector
                            var cacheSelectorState = $('[id=' + wo_DP + '.*]');
                            cacheSelectorState.each(function (id, i) {
                            if (!id.includes('scriptEnabled') && !id.includes('scriptProblem') && !id.includes('debug') && !id.includes('variables') ){
                                var val1 = getState(id).val;
                                if (val1 == null ) 
                                    {log(id + " hat keinen state");} 
                                else {var zk = "setState('"+id+"', "+val1 +");\n";
                                    if(typeof val1 === "string" && !val1.includes('span') && !val1.includes('class')) {
                                        zk = "setState('"+id+"', '"+val1+"');\n";
                                        fs.appendFileSync(datei + "-javascript0-" + logdate + "-"+ logtime + ".txt", zk);}
                                    else {
                                        fs.appendFileSync(datei + "-javascript0-" + logdate + "-"+ logtime + ".txt", zk);}
                                };
                            }
                            });
                        
                        
                        
                        S liv-in-sky 2 Replies Last reply Reply Quote 2
                        • S
                          Strobi @bahnuhr last edited by

                          Habe den Quellcode nun in ein Java-Script kopiert und ausgeführt - aber es wird mir keine Datei etc. angelegt.
                          Was mache ich denn falsch?

                          Wie lange muss ich das Skript laufen lassen oder beendet sich das von alleine?

                          a7048798-061c-420d-84e5-ec6aa6b0bd2c-grafik.png

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

                            @strobi

                            hast du im dateisystem nachgeschaut -?

                            Image 121.png

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

                              @bahnuhr sagte in Objekte sichern:

                              @liv-in-sky

                              so, nun mal geändert; die 000 laufen nun richtig.

                              
                              // Script um die eigenen DP mit den States zu sichern in einer txt Datei
                              // diese Datei einfach öffnen und den Inhalt in ein Script einfügen und starten - dann werden die DP wieder mit dem richtigen Inhalt befüllt.
                              // ursprünglich geschrieben von @liv-in-sky     https://forum.iobroker.net/topic/31769/objekte-sichern/17?page=1
                              // umgeschrieben und erweitert von @bahnuhr
                              // 09/2022
                              
                              // Variablen - zum ändern
                                  var wo_DP = "javascript.0"              // oder z.B. "0_userdata.0"
                                  let datei = "/opt/iobroker/state";      // Verzeichnis, wo die Datei gespeichert wird
                              
                              // Variablen - nicht ändern
                                  var fs = require('fs');
                                  var now = new Date();   // store current date and time
                                  var Jahr = now.getFullYear();
                                  var Monat = now.getMonth()+1; if (Monat < 10) { Monat = "0" + Monat; }; 
                                  var Tag = now.getDate(); if (Tag < 10) { Tag = "0" + Tag; }; 
                                  var Thour = now.getHours(); if (Thour < 10) { Thour = "0" + Thour; }; 
                                  var Tmin = now.getMinutes(); if (Tmin < 10) { Tmin = "0" + Tmin; }; 
                                  var Tsec = now.getSeconds(); if (Tsec < 10) { Tsec = "0" + Tsec; }; 
                                  var logdate = Tag + '.' + Monat + '.' + Jahr;
                                  var logtime = Thour + ':' + Tmin + ':' + Tsec;
                              
                              // Script Selector
                                  var cacheSelectorState = $('[id=' + wo_DP + '.*]');
                                  cacheSelectorState.each(function (id, i) {
                                  if (!id.includes('scriptEnabled') && !id.includes('scriptProblem') && !id.includes('debug') && !id.includes('variables') ){
                                      var val1 = getState(id).val;
                                      if (val1 == null ) 
                                          {log(id + " hat keinen state");} 
                                      else {var zk = "setState('"+id+"', "+val1 +");\n";
                                          if(typeof val1 === "string" && !val1.includes('span') && !val1.includes('class')) {
                                              zk = "setState('"+id+"', '"+val1+"');\n";
                                              fs.appendFileSync(datei + "-javascript0-" + logdate + "-"+ logtime + ".txt", zk);}
                                          else {
                                              fs.appendFileSync(datei + "-javascript0-" + logdate + "-"+ logtime + ".txt", zk);}
                                      };
                                  }
                                  });
                              
                              
                              

                              du könntest noch beim namen folgendes einfügen - dann muss man da nichts ändern/anpassen

                              Image 122.png

                              ps: das wurde nicht von mir geschrieben - habe ich irgendwoher kopiert

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

                                Peinlich - nach dem Pfadname "/opt/iobroker/state" hat einfach nur ein "/" gefehlt 🙂

                                --> /opt/iobroker/state/

                                1 Reply Last reply Reply Quote 0
                                • S
                                  Strobi last edited by

                                  Könnte man auch noch die Einheiten "unit" und die Datei-Typen "type" mit abspeichern?

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

                                    @strobi

                                    ich habe dafür immer einen export der objecte im object-tab genommen und beides zusammen gespeichert

                                    die einheit und der type sind ja nicht im dp-state - was das script sichert - sondern im dp-object definiert - das wären dann eh 2 verschiedene daten, da es keinen sinn macht,die in einer datei zu schreiben - also wäre möglich aber dann muss das script anders angelegt werden. es würde dann zuerst ein dp-object angelegt und dann der dp-state geschrieben

                                    ich nutze das meist, um adapter einzubinden, wenn ich ein script schreibe, bei dem ich die dp brauche, aber den adapter nicht installieren kann, weil ich zb. keine devices davon habe. z.b. eine liste aller hmip.0 geräte erstellen: ich habe kein hmip gerät und importiere mir einfach die dp, um das script zu testen

                                    ps:es gehört eigentlich kein / nach state, da state kein verzeichnis, sondern der anfang des namender datei ist

                                    1 Reply Last reply Reply Quote 1
                                    • First post
                                      Last post

                                    Support us

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

                                    889
                                    Online

                                    31.6k
                                    Users

                                    79.5k
                                    Topics

                                    1.3m
                                    Posts

                                    backup objekte sicherung wiederherstellung
                                    8
                                    30
                                    2005
                                    Loading More Posts
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                    The ioBroker Community 2014-2023
                                    logo