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

                        396
                        Online

                        31.6k
                        Users

                        79.5k
                        Topics

                        1.3m
                        Posts

                        backup objekte sicherung wiederherstellung
                        8
                        30
                        2002
                        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