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. [gelöst]Aus den Backups ein Javascript extrahieren

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.2k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    769

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

[gelöst]Aus den Backups ein Javascript extrahieren

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
28 Beiträge 7 Kommentatoren 2.4k Aufrufe 4 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.
  • MartinPM MartinP

    Ich habe eines meiner Skripte (Javascript, nicht Blockly) verhunzt, dass es sehr schwierig werden wird, den funktionieren Stand wieder herzustellen.
    Wollte es in einem "richtigen" Editor bearbeiten, und das Rückspeichern über die Zwischenablage hat das File wohl durcheinandergewürfelt ...

    Da dachte ich, kein Problem - mache ja mit dem Backup-Adapter tägliche Backups ...

    Dort scheint Javascript aber nicht leicht zu finden zu zu sein ... als ich das damals aufgesetzt habe, habe ich aufgrund einer Meldung auf ein explizites Sichern von Skripten verzichtet... der Javascript Haken war aus...

    2ec10c14-2a59-46c2-a20c-d06e32327c81-grafik.png

    Da erschien eine Meldung, dass Javascript in der iobroker Sicherung enthalten sei, und das nur eine weitere zusätzliche Sicherung anlegen würde...

    Zwei Fragen:

    1. Kann man ein einzelnes Javascript file aus dem Backup extrahieren?
    2. Mein Backup ist extrem klein (4,5 MByte) ist da überhaupt alles, was man für ein Restore braucht enthalten? Kommt mir etwas komisch vor ...
    grrfieldG Offline
    grrfieldG Offline
    grrfield
    schrieb am zuletzt editiert von
    #19

    @martinp Auch, wenn es jetzt vielleicht schon zu spät ist: vor längere Zeit gab es mal ein Skript https://forum.iobroker.net/topic/34161/source-code-von-script-aus-backup-json-extrahieren, um einzelne Skripte aus dem Backup zu extrahieren. Ich habe das mal erfolgreich angewandt, weiß aber nicht, ob es mit den aktuellen Backups noch funktioniert.

    1 Antwort Letzte Antwort
    1
    • MartinPM Offline
      MartinPM Offline
      MartinP
      schrieb am zuletzt editiert von
      #20

      @grrfield Das Restore aus der GUI scheint nicht weiterzulaufen, wenn man irgendwann den Browser schließt und den Rechner ausschaltet....

      Das Script hat wunderbar funktioniert ...

      Ich habe es auf meinem Linux-PC auf ein lokales Backup.tar.gz File vom NAS-Laufwerk arbeiten lassen

      Hier das angepasste Skript - geht alles in ein lokales Arbeitsverzeichnis, und nutzt "console.log()"

      /*
      
      Script zum Extrahieren von Scripts aus dem backup.json file
      1. Verzeichnis /opt/iobroker/restore/ erstellen
      2. backup.json file aus Backup extrahieren und in obiges Verzeichnis kopieren
      3. Im Script unten den gewünschten Namen des Scripts eintragen
      3. Script starten
      4. das extrahierte Script wird mit dem Namen "the_script.js" erzeugt
      */
      
       
      
      // Hier das Verzeichnis und den Namen des Scripts eintragen. 
      // Im Beispiel das Script 'Jalousien', das unter 'common' abgelegt wurde
      
      
      // const name_of_script = "common.Jalousien";
      const name_of_script = "Fritzbox.DOCSISV01";
      
       
      
      var fs = require('fs');
      //var filename = '/opt/iobroker/restore/backup.json';
      var filename = './backup.json';
      fs.readFile(filename, 'utf8', function(err, data) {
        if (!err) {
          var objects = JSON.parse(data).objects;
          var index = objects.findIndex(x => x.id ==="script.js." + name_of_script);
          var source = objects[index];
          var script_text = unescape(source.value.common.source);
          // fs.writeFile("/opt/iobroker/restore/the_script.js", script_text, function(err) {
          fs.writeFile("./the_script.js", script_text, function(err) {
          if(err) {
              return console.log(err);
          }
          console.log("Script was extracted");
          });
        } else console.log("backup.json konnte nicht gelesen werden");
      });
      
      
      

      Arbeitsanweisung:
      Auspacken von backup.json

      martin@martin-D2836-S1:~/backup$ tar -xf ../backups/iobroker_2024_06_29-02_40_11_backupiobroker.tar.gz  backup.json
      

      Aufrufen des Scripts

      martin@martin-D2836-S1:~/backup$ node extract.js 
      Script was extracted
      
      

      Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
      Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
      Linux pve 6.8.12-16-pve
      6 GByte RAM für den Container
      Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
      Remote-Access über Wireguard der Fritzbox

      simatecS 1 Antwort Letzte Antwort
      0
      • MartinPM MartinP

        @grrfield Das Restore aus der GUI scheint nicht weiterzulaufen, wenn man irgendwann den Browser schließt und den Rechner ausschaltet....

        Das Script hat wunderbar funktioniert ...

        Ich habe es auf meinem Linux-PC auf ein lokales Backup.tar.gz File vom NAS-Laufwerk arbeiten lassen

        Hier das angepasste Skript - geht alles in ein lokales Arbeitsverzeichnis, und nutzt "console.log()"

        /*
        
        Script zum Extrahieren von Scripts aus dem backup.json file
        1. Verzeichnis /opt/iobroker/restore/ erstellen
        2. backup.json file aus Backup extrahieren und in obiges Verzeichnis kopieren
        3. Im Script unten den gewünschten Namen des Scripts eintragen
        3. Script starten
        4. das extrahierte Script wird mit dem Namen "the_script.js" erzeugt
        */
        
         
        
        // Hier das Verzeichnis und den Namen des Scripts eintragen. 
        // Im Beispiel das Script 'Jalousien', das unter 'common' abgelegt wurde
        
        
        // const name_of_script = "common.Jalousien";
        const name_of_script = "Fritzbox.DOCSISV01";
        
         
        
        var fs = require('fs');
        //var filename = '/opt/iobroker/restore/backup.json';
        var filename = './backup.json';
        fs.readFile(filename, 'utf8', function(err, data) {
          if (!err) {
            var objects = JSON.parse(data).objects;
            var index = objects.findIndex(x => x.id ==="script.js." + name_of_script);
            var source = objects[index];
            var script_text = unescape(source.value.common.source);
            // fs.writeFile("/opt/iobroker/restore/the_script.js", script_text, function(err) {
            fs.writeFile("./the_script.js", script_text, function(err) {
            if(err) {
                return console.log(err);
            }
            console.log("Script was extracted");
            });
          } else console.log("backup.json konnte nicht gelesen werden");
        });
        
        
        

        Arbeitsanweisung:
        Auspacken von backup.json

        martin@martin-D2836-S1:~/backup$ tar -xf ../backups/iobroker_2024_06_29-02_40_11_backupiobroker.tar.gz  backup.json
        

        Aufrufen des Scripts

        martin@martin-D2836-S1:~/backup$ node extract.js 
        Script was extracted
        
        
        simatecS Offline
        simatecS Offline
        simatec
        Developer Most Active
        schrieb am zuletzt editiert von
        #21

        @martinp Warum stellst du denn alles wieder her... Du hast doch laut Screenshot ein Backup der Javaskripte separat gemacht.
        Es hätte völlig ausgereicht, dieses wiederherzustellen

        • Besuche meine Github Seite
        • Beitrag hat geholfen oder willst du mich unterstützen
        • HowTo Restore ioBroker
        MartinPM 1 Antwort Letzte Antwort
        0
        • simatecS simatec

          @martinp Warum stellst du denn alles wieder her... Du hast doch laut Screenshot ein Backup der Javaskripte separat gemacht.
          Es hätte völlig ausgereicht, dieses wiederherzustellen

          MartinPM Offline
          MartinPM Offline
          MartinP
          schrieb am zuletzt editiert von
          #22

          @simatec Den Haken bei "Javascript" habe ich erst aktivert NACHDEM ich das Skript geschrottet hatte ...

          Alte Bauernregel: Man sollte die Backups seiner Produkte unter die Lupe nehmen, BEVOR etwas passiert ist ...

          Aber immerhin habe ich gelernt, dass es eigentlich unnötig ist, die Skripte separat zu sichern ...

          Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
          Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
          Linux pve 6.8.12-16-pve
          6 GByte RAM für den Container
          Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
          Remote-Access über Wireguard der Fritzbox

          1 Antwort Letzte Antwort
          0
          • MartinPM MartinP

            @thomas-braun Habe vielleicht einen Workaround ...

            Man kann die Json Konfig exportieren und importieren, und ggfs. dazwischen einfach bei "mirrorPath" etwas eintragen ...

            {
              "latitude": "",
              "longitude": "",
              "enableSetObject": true,
              "enableSendToHost": true,
              "enableExec": true,
              "libraries": "",
              "libraryTypings": "",
              "subscribe": false,
              "useSystemGPS": true,
              "mirrorPath": "",
              "mirrorInstance": "0",
              "allowSelfSignedCerts": false,
              "sunriseEvent": "sunrise",
              "sunriseOffset": "",
              "sunriseLimitStart": "06:00",
              "sunriseLimitEnd": "12:00",
              "sunsetEvent": "dusk",
              "sunsetOffset": "",
              "sunsetLimitStart": "18:00",
              "sunsetLimitEnd": "23:00",
              "maxSetStatePerMinute": "1000",
              "gptKey": "",
              "createAstroStates": true,
              "maxTriggersPerScript": 100
            }
            

            2144aae9-0382-48ba-aee0-e5ab81590ac4-grafik.png

            MartinPM Offline
            MartinPM Offline
            MartinP
            schrieb am zuletzt editiert von MartinP
            #23

            Nachtrag: Ich habe jetzt die javascript.0.json von Hand bearbeitet, auf folgenden Stand:

            {
              "latitude": "",
              "longitude": "",
              "enableSetObject": true,
              "enableSendToHost": true,
              "enableExec": true,
              "libraries": "",
              "libraryTypings": "",
              "subscribe": false,
              "useSystemGPS": true,
              "mirrorPath": "/opt/iobroker/restore/skripte",
              "mirrorInstance": "javascript.0",
              "allowSelfSignedCerts": false,
              "sunriseEvent": "sunrise",
              "sunriseOffset": "",
              "sunriseLimitStart": "06:00",
              "sunriseLimitEnd": "12:00",
              "sunsetEvent": "dusk",
              "sunsetOffset": "",
              "sunsetLimitStart": "18:00",
              "sunsetLimitEnd": "23:00",
              "maxSetStatePerMinute": "1000",
              "gptKey": "",
              "createAstroStates": true,
              "maxTriggersPerScript": 100
            }
            

            Der Konfigurationsdialog sieht nun interessant aus ...

            65efb6f2-6bc1-492e-82c6-a909f55dbb22-grafik.png

            Ich denke, in dieser Version ist der Konfigurationsdialog ein wenig kaputt, da mit der Version aus dem Beta Repository die Probleme aber wohl nicht auftreten, werde ich das erstmal so lassen, und auf das Update in stable warten ...

            @martinp said in [gelöst]Aus den Backups ein Javascript extrahieren:

            @thomas-braun Habe vielleicht einen Workaround ...

            Man kann die Json Konfig exportieren und importieren, und ggfs. dazwischen einfach bei "mirrorPath" etwas eintragen ...

            {
              "latitude": "",
              "longitude": "",
              "enableSetObject": true,
              "enableSendToHost": true,
              "enableExec": true,
              "libraries": "",
              "libraryTypings": "",
              "subscribe": false,
              "useSystemGPS": true,
              "mirrorPath": "",
              "mirrorInstance": "0",
              "allowSelfSignedCerts": false,
              "sunriseEvent": "sunrise",
              "sunriseOffset": "",
              "sunriseLimitStart": "06:00",
              "sunriseLimitEnd": "12:00",
              "sunsetEvent": "dusk",
              "sunsetOffset": "",
              "sunsetLimitStart": "18:00",
              "sunsetLimitEnd": "23:00",
              "maxSetStatePerMinute": "1000",
              "gptKey": "",
              "createAstroStates": true,
              "maxTriggersPerScript": 100
            }
            

            Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
            Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
            Linux pve 6.8.12-16-pve
            6 GByte RAM für den Container
            Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
            Remote-Access über Wireguard der Fritzbox

            bahnuhrB 1 Antwort Letzte Antwort
            0
            • MartinPM MartinP

              Nachtrag: Ich habe jetzt die javascript.0.json von Hand bearbeitet, auf folgenden Stand:

              {
                "latitude": "",
                "longitude": "",
                "enableSetObject": true,
                "enableSendToHost": true,
                "enableExec": true,
                "libraries": "",
                "libraryTypings": "",
                "subscribe": false,
                "useSystemGPS": true,
                "mirrorPath": "/opt/iobroker/restore/skripte",
                "mirrorInstance": "javascript.0",
                "allowSelfSignedCerts": false,
                "sunriseEvent": "sunrise",
                "sunriseOffset": "",
                "sunriseLimitStart": "06:00",
                "sunriseLimitEnd": "12:00",
                "sunsetEvent": "dusk",
                "sunsetOffset": "",
                "sunsetLimitStart": "18:00",
                "sunsetLimitEnd": "23:00",
                "maxSetStatePerMinute": "1000",
                "gptKey": "",
                "createAstroStates": true,
                "maxTriggersPerScript": 100
              }
              

              Der Konfigurationsdialog sieht nun interessant aus ...

              65efb6f2-6bc1-492e-82c6-a909f55dbb22-grafik.png

              Ich denke, in dieser Version ist der Konfigurationsdialog ein wenig kaputt, da mit der Version aus dem Beta Repository die Probleme aber wohl nicht auftreten, werde ich das erstmal so lassen, und auf das Update in stable warten ...

              @martinp said in [gelöst]Aus den Backups ein Javascript extrahieren:

              @thomas-braun Habe vielleicht einen Workaround ...

              Man kann die Json Konfig exportieren und importieren, und ggfs. dazwischen einfach bei "mirrorPath" etwas eintragen ...

              {
                "latitude": "",
                "longitude": "",
                "enableSetObject": true,
                "enableSendToHost": true,
                "enableExec": true,
                "libraries": "",
                "libraryTypings": "",
                "subscribe": false,
                "useSystemGPS": true,
                "mirrorPath": "",
                "mirrorInstance": "0",
                "allowSelfSignedCerts": false,
                "sunriseEvent": "sunrise",
                "sunriseOffset": "",
                "sunriseLimitStart": "06:00",
                "sunriseLimitEnd": "12:00",
                "sunsetEvent": "dusk",
                "sunsetOffset": "",
                "sunsetLimitStart": "18:00",
                "sunsetLimitEnd": "23:00",
                "maxSetStatePerMinute": "1000",
                "gptKey": "",
                "createAstroStates": true,
                "maxTriggersPerScript": 100
              }
              
              bahnuhrB Online
              bahnuhrB Online
              bahnuhr
              Forum Testing Most Active
              schrieb am zuletzt editiert von
              #24

              @martinp

              @fastfoot hatte hier mal ein Script geschrieben.
              https://forum.iobroker.net/topic/53849/ordner-und-skripte-verschwunden/8?_=1719814391362

              vielleicht hilfts.


              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

              MartinPM 1 Antwort Letzte Antwort
              0
              • bahnuhrB bahnuhr

                @martinp

                @fastfoot hatte hier mal ein Script geschrieben.
                https://forum.iobroker.net/topic/53849/ordner-und-skripte-verschwunden/8?_=1719814391362

                vielleicht hilfts.

                MartinPM Offline
                MartinPM Offline
                MartinP
                schrieb am zuletzt editiert von MartinP
                #25

                @bahnuhr Das habe ich auch schon entdeckt und angepasst ...

                Ich hatte schon ein anderes Skript, was etwas ähnliches macht ...

                https://forum.iobroker.net/topic/75575/gelöst-aus-den-backups-ein-javascript-extrahieren/20?_=1719831259261

                Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
                Linux pve 6.8.12-16-pve
                6 GByte RAM für den Container
                Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                Remote-Access über Wireguard der Fritzbox

                bahnuhrB 1 Antwort Letzte Antwort
                0
                • MartinPM MartinP

                  @bahnuhr Das habe ich auch schon entdeckt und angepasst ...

                  Ich hatte schon ein anderes Skript, was etwas ähnliches macht ...

                  https://forum.iobroker.net/topic/75575/gelöst-aus-den-backups-ein-javascript-extrahieren/20?_=1719831259261

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

                  @martinp
                  Sollte man nicht den Autor im Script drin stehen lassen ?

                  ;-)


                  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

                  MartinPM 1 Antwort Letzte Antwort
                  0
                  • bahnuhrB bahnuhr

                    @martinp
                    Sollte man nicht den Autor im Script drin stehen lassen ?

                    ;-)

                    MartinPM Offline
                    MartinPM Offline
                    MartinP
                    schrieb am zuletzt editiert von MartinP
                    #27

                    @bahnuhr Ist doch ein komplett anderes Skript ...
                    https://forum.iobroker.net/topic/34161/source-code-von-script-aus-backup-json-extrahieren

                    Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                    Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
                    Linux pve 6.8.12-16-pve
                    6 GByte RAM für den Container
                    Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                    Remote-Access über Wireguard der Fritzbox

                    bahnuhrB 1 Antwort Letzte Antwort
                    0
                    • MartinPM MartinP

                      @bahnuhr Ist doch ein komplett anderes Skript ...
                      https://forum.iobroker.net/topic/34161/source-code-von-script-aus-backup-json-extrahieren

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

                      @martinp sagte in [gelöst]Aus den Backups ein Javascript extrahieren:

                      @bahnuhr Ist doch ein komplett anderes Skript ...

                      dann gut.


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

                      734

                      Online

                      32.6k

                      Benutzer

                      82.0k

                      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