NEWS
Shutdown remote linux raspi
-
Ich versuche einen remoten raspi über ssh abzuschalten, und zwar mit folgendem Script:
on({id: "0_userdata.0.schalter.OpenMediaVaultEin"/OpenMediaVaultEin/, change: "ne"}, async function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (getState("0_userdata.0.schalter.OpenMediaVaultEin").val) {
console.debug("NAS RaspiOpenMediaVault eingeschalten!");
setState("shelly.0.SHSW-1#8CAAB50558E3#1.Relay0.Switch"/[object Object]/, true);
setState("0_userdata.0.schalter.OpenMediaVaultEin"/OpenMediaVaultEin/, true);
} else {
console.debug("NAS RaspiOpenMediaVault ausgeschalten!");
console.debug("exec: " + "'ssh -t rupi@192.168.1.65 'sudo shutdown -h 0'");
/exec('/opt/iobroker/script/shutdown_raspiomv.sh');/
exec("ssh -t rupi@192.168.1.65 'sudo shutdown -h 0'");
setStateDelayed("shelly.0.SHSW-1#8CAAB50558E3#1.Relay0.Switch"/[object Object]/, false, 30000, false);
setState("0_userdata.0.schalter.OpenMediaVaultEin"/OpenMediaVaultEin/, false);
}
});Auf der Befehlszeile funktioniert der SSH-Befehl tadellos. Im Script wird interessanterweise nur der SetStateDelayed vom Shelly-Schalter ausgeführt u. der PC eiskalt ausgeschalten. Weder der console.debug, noch der exec-Befehl werden ausgeführt. Ich verstehe nicht warum. Kann mir da jemand helfen?
-
Ich versuche einen remoten raspi über ssh abzuschalten, und zwar mit folgendem Script:
on({id: "0_userdata.0.schalter.OpenMediaVaultEin"/OpenMediaVaultEin/, change: "ne"}, async function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (getState("0_userdata.0.schalter.OpenMediaVaultEin").val) {
console.debug("NAS RaspiOpenMediaVault eingeschalten!");
setState("shelly.0.SHSW-1#8CAAB50558E3#1.Relay0.Switch"/[object Object]/, true);
setState("0_userdata.0.schalter.OpenMediaVaultEin"/OpenMediaVaultEin/, true);
} else {
console.debug("NAS RaspiOpenMediaVault ausgeschalten!");
console.debug("exec: " + "'ssh -t rupi@192.168.1.65 'sudo shutdown -h 0'");
/exec('/opt/iobroker/script/shutdown_raspiomv.sh');/
exec("ssh -t rupi@192.168.1.65 'sudo shutdown -h 0'");
setStateDelayed("shelly.0.SHSW-1#8CAAB50558E3#1.Relay0.Switch"/[object Object]/, false, 30000, false);
setState("0_userdata.0.schalter.OpenMediaVaultEin"/OpenMediaVaultEin/, false);
}
});Auf der Befehlszeile funktioniert der SSH-Befehl tadellos. Im Script wird interessanterweise nur der SetStateDelayed vom Shelly-Schalter ausgeführt u. der PC eiskalt ausgeschalten. Weder der console.debug, noch der exec-Befehl werden ausgeführt. Ich verstehe nicht warum. Kann mir da jemand helfen?
@rupobk 1. Musst Du die ssh keys im Homeverzeichnis des jeweiligen Users einrichten und 2. Wenn Dein Script läuft, läuft es mit dem User iobroker, wenn Du die Befehlszeile aufmachst mit dem User, mit dem Du Dich angemeldet hast. Du musst also den User iobroker auch auf dem Zielsystem die entsprechenden Rechte einrichten.
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