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

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Objekte sichern

NEWS

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

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

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

Objekte sichern

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
sicherungbackupobjektewiederherstellung
30 Beiträge 8 Kommentatoren 3.0k Aufrufe 8 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.
  • S Offline
    S Offline
    Strobi
    schrieb am zuletzt editiert von Strobi
    #16

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

      @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

      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

      bahnuhrB S 3 Antworten Letzte Antwort
      1
      • liv-in-skyL liv-in-sky

        @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

        bahnuhrB Online
        bahnuhrB Online
        bahnuhr
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #18

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


        Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
        Danke.
        gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
        ScreenToGif :https://www.screentogif.com/downloads.html

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

          @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

          S Offline
          S Offline
          Strobi
          schrieb am zuletzt editiert von
          #19

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

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

            @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

            bahnuhrB Online
            bahnuhrB Online
            bahnuhr
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #20

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


            Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
            Danke.
            gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
            ScreenToGif :https://www.screentogif.com/downloads.html

            liv-in-skyL 1 Antwort Letzte Antwort
            0
            • bahnuhrB bahnuhr

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

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

              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

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

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

                bahnuhrB Online
                bahnuhrB Online
                bahnuhr
                Forum Testing Most Active
                schrieb am zuletzt editiert von
                #22

                @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


                Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                Danke.
                gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                ScreenToGif :https://www.screentogif.com/downloads.html

                liv-in-skyL 1 Antwort Letzte Antwort
                0
                • bahnuhrB bahnuhr

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

                  @bahnuhr

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

                  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

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

                    @bahnuhr

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

                    bahnuhrB Online
                    bahnuhrB Online
                    bahnuhr
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von
                    #24

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

                    Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                    Danke.
                    gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                    ScreenToGif :https://www.screentogif.com/downloads.html

                    S liv-in-skyL 2 Antworten Letzte Antwort
                    2
                    • bahnuhrB bahnuhr

                      @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 Offline
                      S Offline
                      Strobi
                      schrieb am zuletzt editiert von
                      #25

                      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-skyL 1 Antwort Letzte Antwort
                      0
                      • S Strobi

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

                        @strobi

                        hast du im dateisystem nachgeschaut -?

                        Image 121.png

                        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
                        • bahnuhrB bahnuhr

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

                          @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

                          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

                          S 1 Antwort Letzte Antwort
                          0
                          • liv-in-skyL 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 Offline
                            S Offline
                            Strobi
                            schrieb am zuletzt editiert von
                            #28

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

                            --> /opt/iobroker/state/

                            1 Antwort Letzte Antwort
                            0
                            • S Offline
                              S Offline
                              Strobi
                              schrieb am zuletzt editiert von
                              #29

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

                              liv-in-skyL 1 Antwort Letzte Antwort
                              0
                              • S Strobi

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

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

                                @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

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

                                818

                                Online

                                32.4k

                                Benutzer

                                81.5k

                                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