Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. js-controller Scipte retten

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.7k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    703

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    1.2k

js-controller Scipte retten

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
js-controller
18 Beiträge 6 Kommentatoren 2.0k Aufrufe 7 Beobachtet
  • Ä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.
  • F fastfoot

    @cactus-online sagte in js-controller Scipte retten:

    @fastfoot Danke für die Rückmeldung. Ja habe ich. Wie finde ich da Scripte raus ?

    • lege die objects.json des alten Systems in einen Ordner, z.B. /opt/iobroker/restore
    • starte das Skript, in Zeile 7 noch den Pfad anpassen
    • die Skripte befinden sich danach im Ordner mit den entsprechenden Endungen

    /**
     * Extract scripts from objects.json
     * by @fastfoot 16.11.2020
     * 
     */
    const fs = require('fs'),
          path = '/opt/iobroker/restore/';      // <=== Pfad eintragen mit abschliessendem /
    let allObjects = {},
        script = {},
        name = '', 
        xml = '',
        logging = false;
    
    try{
        allObjects = JSON.parse(fs.readFileSync(path + 'objects.json', 'utf8'))
    } catch(e){
        log('objects.json wahrscheinlich defekt oder falscher Pfad angegeben',"error")
    }
    
    for(let key in allObjects){
        if(allObjects[key].type == 'script'){
            script = allObjects[key].common;
            if(logging){    
                log('Key:    ' + key);
                log('Name:   ' + script.name);
                log('Type:   ' + script.engineType);
                log('Engine: ' + script.engine);
            }
            if(script.engineType == 'Blockly'){
                name = path + key.substring(10) + '.xml';
                xml = handleBlockly(script.source)
                fs.writeFileSync(name, xml);
            } else if(script.engineType == 'Javascript/js' ||script.engineType == 'JavaScript/js'){
                name = path + key.substring(10) + '.js'
                fs.writeFileSync(name, script.source)
            } else {
                name = path + key.substring(10) + '.ts'
                fs.writeFileSync(name, script.source)
            }
        }
    }
    
    function handleBlockly(source){
        const pos = source.lastIndexOf('\n');
        if (pos !== -1) {
            source = source.substring(pos + 3);
            if(source.indexOf('JTNDeG1sJTIweG1') > -1) {
                source = decodeURIComponent(Buffer.from(source, 'base64').toString('utf8'));
                return prettifyXml(source);
            }
        }
    }
    
    //from Stackoverflow
    function prettifyXml(xml){
        var reg = /(>)\s*(<)(\/*)/g;
        xml = xml.replace(/\r|\n/g, ''); //deleting already existing whitespaces
        xml = xml.replace(reg, '$1\r\n$2$3');
        return xml;
    }
    
    log('done')
    
    

    K Offline
    K Offline
    klassisch
    Most Active
    schrieb am zuletzt editiert von
    #7

    @fastfoot Klasse, vielen Dank!

    1. Hoffentlich komme ich nie in die Sitation die Skripte nutzen zu müsse
    2. und falls doch, hoffentlich finde ich diesen Beitrag noch
    sigi234S F 2 Antworten Letzte Antwort
    0
    • K klassisch

      @fastfoot Klasse, vielen Dank!

      1. Hoffentlich komme ich nie in die Sitation die Skripte nutzen zu müsse
      2. und falls doch, hoffentlich finde ich diesen Beitrag noch
      sigi234S Online
      sigi234S Online
      sigi234
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #8

      @klassisch sagte in js-controller Scipte retten:

      und falls doch, hoffentlich finde ich diesen Beitrag noch

      Lesezeichen setzen. 😉

      Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
      Immer Daten sichern!

      K 1 Antwort Letzte Antwort
      1
      • K klassisch

        @fastfoot Klasse, vielen Dank!

        1. Hoffentlich komme ich nie in die Sitation die Skripte nutzen zu müsse
        2. und falls doch, hoffentlich finde ich diesen Beitrag noch
        F Online
        F Online
        fastfoot
        schrieb am zuletzt editiert von
        #9

        @klassisch sagte in js-controller Scipte retten:

        @fastfoot Klasse, vielen Dank!

        1. Hoffentlich komme ich nie in die Sitation die Skripte nutzen zu müsse
        2. und falls doch, hoffentlich finde ich diesen Beitrag noch

        tja, das Skript sollte eigentlich unnötig ein, iobroker bietet ausreichend viele und gute Möglichkeiten, seine Skripte zu sichern. Trotzdem lese ich immer wieder über nicht vorhandene Backups bei abgerauchten Systemen und da mich das Thema technisch interessiert hat habe ich es halt hurtig mal umgesetzt

        iobroker läuft unter Docker auf QNAP TS-451+
        SkriptRecovery: https://forum.iobroker.net/post/930558

        K 1 Antwort Letzte Antwort
        1
        • sigi234S sigi234

          @klassisch sagte in js-controller Scipte retten:

          und falls doch, hoffentlich finde ich diesen Beitrag noch

          Lesezeichen setzen. 😉

          K Offline
          K Offline
          klassisch
          Most Active
          schrieb am zuletzt editiert von
          #10

          @sigi234 wieder was gelernt, Danke!

          1 Antwort Letzte Antwort
          0
          • F fastfoot

            @klassisch sagte in js-controller Scipte retten:

            @fastfoot Klasse, vielen Dank!

            1. Hoffentlich komme ich nie in die Sitation die Skripte nutzen zu müsse
            2. und falls doch, hoffentlich finde ich diesen Beitrag noch

            tja, das Skript sollte eigentlich unnötig ein, iobroker bietet ausreichend viele und gute Möglichkeiten, seine Skripte zu sichern. Trotzdem lese ich immer wieder über nicht vorhandene Backups bei abgerauchten Systemen und da mich das Thema technisch interessiert hat habe ich es halt hurtig mal umgesetzt

            K Offline
            K Offline
            klassisch
            Most Active
            schrieb am zuletzt editiert von
            #11

            @fastfoot Eigentlich macht mein ioBroker jede Nacht ein Backup, oder sollte es zumindest tun. Hatte aber auch schon den Fall, daß das nicht mehr lesbar war.
            Deshalb: Welche Möglichkeiten gibt es noch, die JScripte zu sichern?

            F 1 Antwort Letzte Antwort
            0
            • K klassisch

              @fastfoot Eigentlich macht mein ioBroker jede Nacht ein Backup, oder sollte es zumindest tun. Hatte aber auch schon den Fall, daß das nicht mehr lesbar war.
              Deshalb: Welche Möglichkeiten gibt es noch, die JScripte zu sichern?

              F Online
              F Online
              fastfoot
              schrieb am zuletzt editiert von
              #12

              @klassisch sagte in js-controller Scipte retten:

              Deshalb: Welche Möglichkeiten gibt es noch, die JScripte zu sichern?

              Ich nutze oft die Option Exportieren Sie alle Skripte, zusammen mit dem BackitUp-Adapter ist man da immer auf der sicheren Seite

              iobroker läuft unter Docker auf QNAP TS-451+
              SkriptRecovery: https://forum.iobroker.net/post/930558

              K M 2 Antworten Letzte Antwort
              1
              • F fastfoot

                @klassisch sagte in js-controller Scipte retten:

                Deshalb: Welche Möglichkeiten gibt es noch, die JScripte zu sichern?

                Ich nutze oft die Option Exportieren Sie alle Skripte, zusammen mit dem BackitUp-Adapter ist man da immer auf der sicheren Seite

                K Offline
                K Offline
                klassisch
                Most Active
                schrieb am zuletzt editiert von
                #13

                @fastfoot Ah, danke, jetzt sehe ich es auch.
                72984ccd-712c-4053-9fea-f8b4e41bfa44-grafik.png

                1 Antwort Letzte Antwort
                0
                • F fastfoot

                  @klassisch sagte in js-controller Scipte retten:

                  Deshalb: Welche Möglichkeiten gibt es noch, die JScripte zu sichern?

                  Ich nutze oft die Option Exportieren Sie alle Skripte, zusammen mit dem BackitUp-Adapter ist man da immer auf der sicheren Seite

                  M Offline
                  M Offline
                  Markus84
                  schrieb am zuletzt editiert von
                  #14

                  @fastfoot said in js-controller Scipte retten:

                  Ich nutze oft die Option Exportieren Sie alle Skripte, zusammen mit dem BackitUp-Adapter ist man da immer auf der sicheren Seite

                  Sichert der BackitUp-Adapter die Skripte nicht mit?

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • M Markus84

                    @fastfoot said in js-controller Scipte retten:

                    Ich nutze oft die Option Exportieren Sie alle Skripte, zusammen mit dem BackitUp-Adapter ist man da immer auf der sicheren Seite

                    Sichert der BackitUp-Adapter die Skripte nicht mit?

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #15

                    @Markus84 sagte:

                    Sichert der BackitUp-Adapter die Skripte nicht mit?

                    Doch, aber nur zusammen mit allen anderen Objekten.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

                    M 1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @Markus84 sagte:

                      Sichert der BackitUp-Adapter die Skripte nicht mit?

                      Doch, aber nur zusammen mit allen anderen Objekten.

                      M Offline
                      M Offline
                      Markus84
                      schrieb am zuletzt editiert von
                      #16

                      @paul53 Also der Vorteil ist, dass man partiell die Skripte wieder einspielen kann ohne gleich alles aus dem Backup einspielen zu müssen?

                      F 1 Antwort Letzte Antwort
                      0
                      • M Markus84

                        @paul53 Also der Vorteil ist, dass man partiell die Skripte wieder einspielen kann ohne gleich alles aus dem Backup einspielen zu müssen?

                        F Online
                        F Online
                        fastfoot
                        schrieb am zuletzt editiert von
                        #17

                        @Markus84 sagte in js-controller Scipte retten:

                        @paul53 Also der Vorteil ist, dass man partiell die Skripte wieder einspielen kann ohne gleich alles aus dem Backup einspielen zu müssen?

                        JJJein. Der Sinn des Skripts ist es, aus einer noch intakten, alten objects.json die Skripte zu extrahieren, wenn man kein Backup hat. Um selektiv einzelne Skripte aus einem Backup einzuspielen, müsste man das Skript umschreiben, ich denke gerade über ein solches Skript(Adapter) nach, welches dann die verschiedenen Möglichkeiten nutzt... Die fehlende Möglichkeit, einzelne Skripte zurück zu spielen, stört mich irgendwie schon länger, aber ob es wirklich Sinn macht?

                        iobroker läuft unter Docker auf QNAP TS-451+
                        SkriptRecovery: https://forum.iobroker.net/post/930558

                        M 1 Antwort Letzte Antwort
                        0
                        • F fastfoot

                          @Markus84 sagte in js-controller Scipte retten:

                          @paul53 Also der Vorteil ist, dass man partiell die Skripte wieder einspielen kann ohne gleich alles aus dem Backup einspielen zu müssen?

                          JJJein. Der Sinn des Skripts ist es, aus einer noch intakten, alten objects.json die Skripte zu extrahieren, wenn man kein Backup hat. Um selektiv einzelne Skripte aus einem Backup einzuspielen, müsste man das Skript umschreiben, ich denke gerade über ein solches Skript(Adapter) nach, welches dann die verschiedenen Möglichkeiten nutzt... Die fehlende Möglichkeit, einzelne Skripte zurück zu spielen, stört mich irgendwie schon länger, aber ob es wirklich Sinn macht?

                          M Offline
                          M Offline
                          Markus84
                          schrieb am zuletzt editiert von
                          #18

                          @fastfoot said in js-controller Scipte retten:

                          Die fehlende Möglichkeit, einzelne Skripte zurück zu spielen, stört mich irgendwie schon länger, aber ob es wirklich Sinn macht?

                          Also ich war schon mehrfach in der blöden Situation, dass ich an einem Skript rumgefummelt habe, was dann gar nicht mehr funktioniert hat. Meine Lösung war dann immer (1) Backup machen, (2) altes Backup einspielen, (3) noch funktionierende Version des Skript in eine Textdatei kopieren, (4) kurz zuvor erstelltes Backup wieder herstellen und (5) das Skript von Hand wiederherstellen.

                          Da wäre natürlich eine automatische Backuperstellung der Skripten oder noch besser eine Versionsverwaltung natürlich extrem hilfreich gewesen!

                          1 Antwort Letzte Antwort
                          0

                          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

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

                          246

                          Online

                          32.9k

                          Benutzer

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