Hallo zusammen, ich habe einen digitalen Bilderrahmen mit einem Rapsberry gebaut der via iobroker ein bzw. ausgeschaltet wird, das funktioniert soweit auch.
Naja fast, beim ausschalten bekomme ich error Meldungen und der Javascript Adapter stürzt ab
Javascript
// Datenpunkt erzeugen durch den der Raspberry herunter gefahren werden soll
var DP_Raspy_down = 'javascript.0.Automatisierung.raspy_down';
if ( !existsState(DP_Raspy_down )) {
createState("javascript.0.Automatisierung.raspy_down", '', JSON.parse('{"name": "Automatisierung.raspy_down","desc": "Blockly erzeugt","role": "state","type": "boolean","read": true,"write": true,"def": ""}'), async function () {});
}
const idTrigger = 'javascript.0.Automatisierung.raspy_down'; // Datenpunkt-ID des Auslösers
const Client = require('ssh2').Client;
function shutdown() {
var conn = new Client();
conn.on('ready', function() {
conn.exec('sudo bash /etc/shutdown.sh', function(err, stream) {
if (err) throw err;
stream.on('close', function(code, signal) {
conn.end();
}).on('data', function(data) {
log('Ausgabe: ' + data);
conn.end();
}).stderr.on('data', function(data) {
log('Fehler: ' + data);
conn.end();
}).on('error', function(err) {
log("Error: " + err);
conn.end();
});
});
}).on('ready', function() {
conn.exec('exit', function(err, stream) {
if (err) throw err;
stream.on('close', function(code, signal) {
conn.end();
}).on('data', function(data) {
log('Ausgabe: ' + data);
conn.end();
}).stderr.on('data', function(data) {
log('Fehler: ' + data);
conn.end();
}).on('error', function(err) {
log("Error: " + err);
conn.end();
});
});
}).connect({
host: 'raspy-picture', // IP oder bei funktierendem lokalen DNS den Namen des RPi
port: 22,
username: 'pi',
password: 'xyz'
});
}
on(idTrigger, shutdown);
Wenn der Raspi ausgeschaltet ist und der Ping auf FALSE umschaltet, dann wird die Steckdose via Blockly ausgeschaltet.

Erst dann bekomme ich error Meldungen ins Log und der Javascript Adapter stürzt ab.
host.iobroker
2023-01-12 07:14:55.838 error instance system.adapter.javascript.0 terminated with code 1 (JS_CONTROLLER_STOPPED)
host.iobroker
2023-01-12 07:14:55.837 error Caught by controller[0]: at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1159:16)
host.iobroker
2023-01-12 07:14:55.836 error Caught by controller[0]: Error: connect EHOSTUNREACH xxx.xxx.xxx.xxx:22
javascript.0
2023-01-12 07:14:55.730 error Error: connect EHOSTUNREACH xxx.xxx.xxx.xxx:22 at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1159:16)
javascript.0
2023-01-12 07:14:55.730 error Error: connect EHOSTUNREACH xxx.xxx.xxx.xxx:22
javascript.0
2023-01-12 07:14:55.729 error An error happened which is most likely from one of your scripts, but the originating script could not be detected.
Kann mir jemand bei dem Problem helfen?
Ich vermute die SSH Connection zum Raspy steht noch, obwohl der Raspi ausgeschaltet ist
Alle Adapter & iobroker sind auf dem aktuellen stand.
Systemdata |
Bitte Ausfüllen |
Hardwaresystem: |
Docker |
Arbeitsspeicher: |
16GB |
Festplattenart: |
HDD NAS |
Betriebssystem: |
Linux |
Nodejs-Version: |
v14.19.3 |
NPM-Version: |
6.14.17 |
Ort/Name der Imagedatei: |
Docker Image |