ioBroker.javascript icon indicating copy to clipboard operation
ioBroker.javascript copied to clipboard

Schedule in einem Skript kann nicht gestoppt werden bei Skript Stop

Open Negalein opened this issue 3 years ago • 4 comments

Script lässt sich nicht stoppen.

hier wurde das Script gestoppt und wieder gestartet. Da gibt es schon die 1. Error-Meldung.

javascript.0 2022-08-18 17:36:47.136	info	Start javascript script.js.Wetter.Wetter_to_FTP
javascript.0 2022-08-18 17:36:44.540	error	Error by canceling scheduled job "<Anonymous Job 23 2022-08-18T12:57:51.743Z>"
javascript.0 2022-08-18 17:36:44.539	info	Stop script script.js.Wetter.Wetter_to_FTP

Und hier dann doppelt im JS und Puppeteer

javascript.0 2022-08-18 17:39:03.369	error	script.js.Wetter.Wetter_to_FTP: Error on upload: Error: Command failed: wput -nc /opt/iobroker/iobroker-data/files/0_userdata.0/wetterstation.png ftp://xxxxx:[email protected] ()
javascript.0 2022-08-18 17:39:03.184	error	script.js.Wetter.Wetter_to_FTP: Error on upload: Error: Command failed: wput -nc /opt/iobroker/iobroker-data/files/0_userdata.0/wetterstation.png ftp://xxxxx:[email protected] ()
javascript.0 2022-08-18 17:39:03.157	info	script.js.Wetter.Wetter_to_FTP: exec: wput -nc /opt/iobroker/iobroker-data/files/0_userdata.0/wetterstation.png ftp://xxxxx:[email protected]
puppeteer.0  2022-08-18 17:39:03.056	debug	Write file to "wetterstation.png"
javascript.0 2022-08-18 17:39:02.884	info	script.js.Wetter.Wetter_to_FTP: exec: wput -nc /opt/iobroker/iobroker-data/files/0_userdata.0/wetterstation.png ftp://xxxxx:[email protected]
puppeteer.0  2022-08-18 17:39:02.783	debug	Write file to "wetterstation.png"
puppeteer.0  2022-08-18 17:39:00.289	debug	Message: {"command":"screenshot","message":{"url":"http://10.0.1.203:3000/d/sRh7W1m4k/wetterstation-copy-2?orgId=1&kiosk","clip":{"x":0,"y":0,"width":1000,"height":1100},"ioBrokerOptions":{"storagePath":"wetterstation.png"},"viewportOptions":{"width":1600,"height":1000}},"from":"system.adapter.javascript.0","callback":{"message":{"url":"http://10.0.1.203:3000/d/sRh7W1m4k/wetterstation-copy-2?orgId=1&kiosk","clip":{"x":0,"y":0,"width":1000,"height":1100},"ioBrokerOptions":{"storagePath":"wetterstation.png"},"viewportOptions":{"width":1600,"height":1000}},"id":298,"ack":false,"time":1660837140274},"_id":79533595}
puppeteer.0  2022-08-18 17:39:00.289	debug	Message: {"command":"screenshot","message":{"url":"http://10.0.1.203:3000/d/sRh7W1m4k/wetterstation-copy-2?orgId=1&kiosk","clip":{"x":0,"y":0,"width":1000,"height":1100},"ioBrokerOptions":{"storagePath":"wetterstation.png"},"viewportOptions":{"width":1600,"height":1000}},"from":"system.adapter.javascript.0","callback":{"message":{"url":"http://10.0.1.203:3000/d/sRh7W1m4k/wetterstation-copy-2?orgId=1&kiosk","clip":{"x":0,"y":0,"width":1000,"height":1100},"ioBrokerOptions":{"storagePath":"wetterstation.png"},"viewportOptions":{"width":1600,"height":1000}},"id":297,"ack":false,"time":1660837140273},"_id":79533594}

JS-Adapter: 6.0.0 Node.js: 16.15.1 NPM: 8.11.0 JS-Controller: 4.0.23

Negalein avatar Aug 18 '22 16:08 Negalein

Can you show the script?

GermanBluefox avatar Aug 19 '22 10:08 GermanBluefox

ver ysimpel script just setting a schedule https://forum.iobroker.net/post/843652

Apollon77 avatar Aug 19 '22 12:08 Apollon77

Can you show the script?

schedule('*/3 * * * *', () => {
    log('schedule triggered', 'info');
    sendTo('puppeteer.0', 'screenshot', {
        url: 'http://10.0.1.203:3000/d/sRh7W1m4k/wetterstation-copy-2?orgId=1&kiosk',
        clip: {
            x: 0,
            y: 0,
            width: 1000,
            height: 1100
        },
        ioBrokerOptions: {
            storagePath: 'wetterstation.png'
        },
        viewportOptions: {
            width: 1600,
            height: 1000
        }
    }, obj => {
        if (obj.error) {
            log(`Error taking screenshot: ${obj.error}`, 'error');
            return;
        }
 
        log(`exec: wput -nc /opt/iobroker/iobroker-data/files/0_userdata.0/wetterstation.png ftp://xxxxx:[email protected]`, 'info');
        exec('wput -nc /opt/iobroker/iobroker-data/files/0_userdata.0/wetterstation.png ftp://xxxxx:[email protected]', (error, stdout, stderr) => {
            if (error) {
                log(`Error on upload: ${error} (${stderr})`, 'error');
            } else {
                log(`Upload finished: ${stdout}`, 'info');
            }
        });
    });
});

Negalein avatar Aug 21 '22 12:08 Negalein

Ich habe das auch in den Logs, wenn ich z.B. das script stoppe oder javascript neu starte

javascript.0 | 2022-10-04 17:08:10.601 | error | Error by canceling scheduled job "<Anonymous Job 32 2022-10-04T12:36:34.611Z>"
javascript.0 | 2022-10-04 17:08:10.600 | error | Error by canceling scheduled job "<Anonymous Job 31 2022-10-04T12:36:34.609Z>"
javascript.0 | 2022-10-04 17:08:10.600 | error | Error by canceling scheduled job "<Anonymous Job 30 2022-10-04T12:36:34.605Z>"

Mein Blockly Script dazu:

weckerscript.txt

MarkSau avatar Oct 04 '22 15:10 MarkSau

Bei mir tritt der Fehler auch bei jedem Script in dem ein Schedule drin ist.

Bin auf Admin 6.2.21 Script Engine 6.0.0 JS-Controller 4.0.23 Node.js: 16.16.0 NPM: 8.11.0

Steff42 avatar Oct 14 '22 14:10 Steff42

Ich weiß nicht ob das wichtig ist.

Der Fehler wird im Protokolle Tab anders angezeigt als im Log herunterladen Fenster. Hier mal ein Beispiel: Der Fehler im Protokolle Tab, man beachte den Text zwischen den beiden "" image

und hier Das gleiche unter Log herunterladen, es fehlt der Text Anonymous Job......

` 2022-10-16 11:45:58.139 - error: javascript.0 (2999613) Error by canceling scheduled job "" 2022-10-16 11:45:59.468 - info: admin.0 (3741803) <== Disconnect system.user.admin from ::ffff:192.168.0.1 javascript 2022-10-16 11:46:05.405 - info: admin.0 (3741803) ==> Connected system.user.admin from ::ffff:192.168.0.1 2022-10-16 11:47:00.041 - info: host.Smarthome instance system.adapter.uv-protect.0 started with pid 869394 2022-10-16 11:47:00.514 - info: uv-protect.0 (869394) starting. Version 0.3.6 in /opt/iobroker/node_modules/iobroker.uv-protect, node: v16.16.0, js-controller: 4.0.23 2022-10-16 11:47:07.046 - info: uv-protect.0 (869394) Terminated (NO_ERROR): Without reason 2022-10-16 11:47:07.580 - info: host.Smarthome instance system.adapter.uv-protect.0 terminated with code 0 (NO_ERROR) 2022-10-16 11:48:13.545 - info: javascript.0 (2999613) Stop script script.js.common.Telegram.Infos_um_0Uhr 2022-10-16 11:48:15.323 - info: javascript.0 (2999613) Start javascript script.js.common.Telegram.Infos_um_0Uhr 2022-10-16 11:48:15.342 - info: javascript.0 (2999613) script.js.common.Telegram.Infos_um_0Uhr: registered 1 subscription, 1 schedule, 0 messages, 0 logs and 0 file subscriptions 2022-10-16 11:48:17.227 - info: admin.0 (3741803) <== Disconnect system.user.admin from ::ffff:192.168.0.1 javascript 2022-10-16 11:48:19.830 - info: admin.0 (3741803) ==> Connected system.user.admin from ::ffff:192.168.0.1 2022-10-16 11:48:23.717 - info: javascript.0 (2999613) Stop script script.js.common.Telegram.Infos_um_0Uhr 2022-10-16 11:48:23.718 - error: javascript.0 (2999613) Error by canceling scheduled job ""

` Gruß Steffen

Steff42 avatar Oct 16 '22 09:10 Steff42

Habe mal etwas probiert.

Alle meine Schedule habe ich wie folgt programmiert:

schedule('* * * * *', function () { // jede Minute --> nur zum Testen // do some crazy stuff });

Stoppe ich ein Script mit solch einer Schedule-Schreibweise kommt der Fehler "Error by canceling scheduled job xxxx"

Programmiere ich aber das Schedule so:

let oSchedule = schedule('* * * * *', function () { // jede Minute --> nur zum Testen // do some crazy stuff });

und füge die folgenden Zeilen dazu

// bei Scriptstop onStop (function scriptStop () { clearSchedule(oSchedule); }, 1000);

kommt beim Stoppen der Fehler nicht!?

Steff42 avatar Oct 17 '22 16:10 Steff42

Ich habe das Problem auch bei Blocklys. Selbst bei Skriptänderungen wegen Fehlern im Code sieht es so aus, als würde die alte Funktion innerhalb des Timers trotzdem noch ausgeführt. Ein Neustart des JS-Adapters bringt dann obige Fehlermeldung (Error by canceling scheduled job...) und dann geht's wieder.

kopierschnitte avatar Oct 23 '22 16:10 kopierschnitte