NEWS

  • Starter

    Hi,

    ich würde gerne den Script-Mirror vom Javascript-Adapter nutzen, verstehe aber nicht so recht wie der funktioniert. Den Link zu den Skripten auf dem Filesystem habe ich eingegeben.
    Wenn ich nun ein Skript dort ändere, so verschwindet das ganze Skript aus iobroker.
    Ich nutzte zur Zeit den JS2FS-Adapter, würde den aber gerne einsparen, um RAM zu sparen. Von dort kenne ich das so, dass die Änderung des Skripts in iobroker gespiegelt wird. Diese Funktion hätte ich nun hier auch erwartet.
    Gibt es dazu eine kleine Anleitung, wie der JavaScript Screen-Mirror zu verwenden ist?

    Danke schon mal!

  • Starter

    @Unterstedter Manchmal ist es einfacher, als man denkt. In der Konfiguration von der Javascript-Instanz wird der Pfad für den Mirror auf dem ioBroker angeben. Dieser kann zum Beispiel mit SMB im Netzwerk zur Verfügung gestellt werden.

  • Developer Most Active

    du musst es aber UNBEDINGT in der javascript.0 instanz eintragen.. und nur da.. von da aus werden alle Scripte dann gespiegelt


  • wie werden die Skripte dann gespeichert? Sprich wie kann man aus den gespiegelten Datein einen Restore machen ?

  • Most Active

    @Kuddel
    Als .js Datei. Wie man die dann restored weis ich aber nicht.

    Edit: über die Import Funktion des JS Adapters jedenfalls nicht


  • @FredF okay, dann ist das ja genau so wie mit dem JS2FS Adapter.

    Für JS sicherlich gut, nur für Blockly leider nicht.

  • Most Active

    @Kuddel sagte in Javascript-Adapter Script-Mirror:

    Für JS sicherlich gut, nur für Blockly leider nicht.

    Stimmt, es bleibt nur javascript übrig, allerdings mit dem Blockly Ende. Lässt sich nicht importieren .


  • Gibt es da schon eine Lösung, dass man auch Blockly importieren kann?
    Oder eine Lösung das man js2fs zum Laufen bekommt?

    Habe heute den js-controller Update gemacht. Da läuft js2fs nicht mehr 😞

    js2fs.0	2020-10-10 16:26:49.363	error	at processTicksAndRejections (internal/process/task_queues.js:97:5)
    js2fs.0	2020-10-10 16:26:49.363	error	at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:8147:76
    js2fs.0	2020-10-10 16:26:49.363	error	at Object.options.ready (/opt/iobroker/node_modules/iobroker.js2fs/node_modules/soef/soef.js:1365:13)
    js2fs.0	2020-10-10 16:26:49.363	error	at checkIfUpdated (/opt/iobroker/node_modules/iobroker.js2fs/node_modules/soef/soef.js:1239:20)
    js2fs.0	2020-10-10 16:26:49.363	error	(25740) TypeError: Cannot read property 'getState' of undefined
    js2fs.0	2020-10-10 16:26:49.360	error	(25740) unhandled promise rejection: Cannot read property 'getState' of undefined
    

  • @Bongo sagte in Javascript-Adapter Script-Mirror:

    Gibt es da schon eine Lösung, dass man auch Blockly importieren kann?

    wie genau hast du denn die Datei, welche du importieren möchtest, vorliegen?


  • @fastfoot sagte in Javascript-Adapter Script-Mirror:

    wie genau hast du denn die Datei, welche du importieren möchtest, vorliegen?

    Zum Test habe ich eine kleine Blockly Datei gemacht. Das steht dann im Filesystem mit der Dateiendung .js:

    // BlocklyTest
    
    //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwcyUzQSUyRiUyRmRldmVsb3BlcnMuZ29vZ2xlLmNvbSUyRmJsb2NrbHklMkZ4bWwlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjIoJTNBYXFxNzV6MU5UIW9pUCUyRiUyNEUlMjU1JTIyJTIweCUzRCUyMjMxMyUyMiUyMHklM0QlMjIxMzglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFQmxvY2tseVRlc3QlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGeG1sJTNF
    

    Wenn ich das importiere in ein neues, leeres Blockly sehe ich nichts.
    Bei js2fs hat es zu einem Blockly eine .js und eine .blockly gegeben.

    Aber ich sehe gerade, das .blockly kann man auch nicht importieren. Hmm ...
    Aha, wenn ich das .js aus der Spiegelung kopiere ist es im Javascript Adapter wieder als Blockly vorhanden.
    Mir geht es um eine zusätzliche Sicherung der Skripte. Das würde mit der Spiegelung funktionieren.
    Ich denke, ich bin damit zufrieden 🙂


  • @Bongo sagte in Javascript-Adapter Script-Mirror:

    Habe heute den js-controller Update gemacht. Da läuft js2fs nicht mehr

    nutze doch den von JS selber .

    1.JPG


  • @Bongo sagte in Javascript-Adapter Script-Mirror:

    Mir geht es um eine zusätzliche Sicherung der Skripte. Das würde mit der Spiegelung funktionieren.
    Ich denke, ich bin damit zufrieden

    Ich mache immer ein komplettes Backup der Skripte, bei Bedarf kopiere ich dann das benötigte Skript und erstelle mir davon den XML Import. Das zurück kopieren in den Mirror Ordner ist etwas tricky, je nachdem ob es dort noch existiert und man nur eine ältere Version einspielen will.
    test.PNG


  • @Glasfaser sagte in Javascript-Adapter Script-Mirror:

    nutze doch den von JS selber .

    Danke, das mache ich jetzt auch.


  • @Bongo sagte in Javascript-Adapter Script-Mirror:

    Zum Test habe ich eine kleine Blockly Datei gemacht. Das steht dann im Filesystem mit der Dateiendung .js:
    Wenn ich das importiere in ein neues, leeres Blockly sehe ich nichts.
    Bei js2fs hat es zu einem Blockly eine .js und eine .blockly gegeben.

    hier mal ein kleines Skript, welche eine solche Datei in ein XML zum Import umwandelt. Zeile 2+3 anpassen!

    const fs = require('fs');
    const fn = '/opt/iobroker/restore/Test.js'
    const fnOut = '/opt/iobroker/restore/Test.xml'
    
    getData();
    
    function getData(){
        try {
            var data = fs.readFileSync(fn, 'utf8')
            const pos = data.lastIndexOf('\n');
            if (pos !== -1) {
                data = data.substring(pos + 3);
                if(data.indexOf('JTNDeG1sJTIweG1') !== -1) {
                    data = decodeURIComponent(Buffer.from(data, 'base64').toString('utf8'));
                    fs.writeFile(fnOut, data, err => {
                        if(err) {
                            return console.log(err);
                        }
                        log('Done!');
                    });
                }
            }
        }catch(e){
            return log(e);
        }
    }
    

Suggested Topics

  • 16
  • 9
  • 3
  • 5
  • 6
  • 2
  • 12
  • 20

2.3k
Online

34.9k
Users

40.9k
Topics

561.3k
Posts