Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Objekte sichern

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    203

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

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

Objekte sichern

Objekte sichern

Scheduled Pinned Locked Moved ioBroker Allgemein
sicherungbackupobjektewiederherstellung
30 Posts 8 Posters 3.0k Views 8 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • 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
    wrote on last edited by
    #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 Reply Last reply
    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
      wrote on last edited by
      #19

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

      1 Reply Last reply
      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
        wrote on last edited by
        #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 Reply Last reply
        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
          wrote on last edited by
          #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 Reply Last reply
          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
            wrote on last edited by
            #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 Reply Last reply
            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
              wrote on last edited by
              #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 Reply Last reply
              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
                wrote on last edited by
                #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 Replies Last reply
                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
                  wrote on last edited by
                  #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 Reply Last reply
                  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
                    wrote on last edited by
                    #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 Reply Last reply
                    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
                      wrote on last edited by 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 Reply Last reply
                      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
                        wrote on last edited by
                        #28

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

                        --> /opt/iobroker/state/

                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          Strobi
                          wrote on last edited by
                          #29

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

                          liv-in-skyL 1 Reply Last reply
                          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
                            wrote on last edited by 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 Reply Last reply
                            1
                            Reply
                            • Reply as topic
                            Log in to reply
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes


                            Support us

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

                            131

                            Online

                            32.4k

                            Users

                            81.3k

                            Topics

                            1.3m

                            Posts
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                            ioBroker Community 2014-2025
                            logo
                            • Login

                            • Don't have an account? Register

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Recent
                            • Tags
                            • Unread 0
                            • Categories
                            • Unreplied
                            • Popular
                            • GitHub
                            • Docu
                            • Hilfe