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.3k

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

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

    @thomas-braun das müsste schon lange darin sein. ich meine ja i h gatte es früher auch
    Vielleicht weiß @haus-automatisierung was da los ist

    MartinPM Online
    MartinPM Online
    MartinP
    schrieb am zuletzt editiert von MartinP
    #18

    @homoran Ich bin gerade dabei, das komplette Backup von heute Nacht einzuspielen - da habe ich die Hoffnung, dass die Aussage stimmt, dass da alle Skripte integriert sind.

    Dann müssten die von mit heute eingebauten Fehler wieder weg sein ...

    Da scheine ich aber etwas falsch verstanden haben, nach Aktivieren von "Sicherung abrufen" gibt es hier die ganze Zeit nur diese blaue wandernde Linie
    354b1b47-02ca-494c-ad95-3ed3afe17c19-grafik.png

    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

      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 Online
        MartinPM Online
        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 Online
          simatecS Online
          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 Online
            MartinPM Online
            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 Online
              MartinPM Online
              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 Online
                  MartinPM Online
                  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 Online
                      MartinPM Online
                      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

                        901

                        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