NEWS
[gelöst] Javascript "exec" nach fix.sh nicht mehr möglich
-
Huch, stimmt. Geht aber leider immer noch nicht
-
probier doch mal:
exec('sudo etherwake -i eth0 XX:XX:XX:XX:XX:XX', function (error, result, stderr) { console.log(result); });
ob da was im log steht
-
Vielen Dank.
Also wenn das in der Konsole des Javascripts auftauchen soll, dann kommt da nix:
on({id: "javascript.0.scriptEnabled.TV.TV_ein_aus", change: 'any' }, function(obj) { var current_state = getState("javascript.0.scriptEnabled.TV.TV_ein_aus").val; //"An"-Status für Alexa generieren if (current_state === true) { //Starte den NUC mit WOL-Befehl //exec('sudo etherwake -i eth0 XX:XX:XX:XX:XX:XX'); exec('sudo etherwake -i eth0 XX:XX:XX:XX:XX:XX', function (error, result, stderr) { console.log(result); }); //Yamaha-Receiver über Szene 2 einschalten (startet gleichzeitig den TV via HDMI-CEC) setTimeout(function() { setState('yamaha-community.0.scene', 1); }, 8000); setTimeout(function() { //Setze Receiver Lautstärke auf -40 & Surround Modus auf Standard setState('yamaha-community.0.volume', -450); setState ('yamaha-community.0.surround', "Standard"); }, 17000); log("Geräte sind gestartet mit Status, " + current_state, "info"); } else { //NUC über Kodi Adapter herunterfahren setState('kodi.0.system.Shutdown', true); log("Geräte sind heruntergefahren mit Status, " + current_state, "info"); } });
11:17:03.282 info javascript.0 (1417) script.js.TV.TV_ein_aus: Geräte sind gestartet mit Status, true
11:17:03.311 info javascript.0 (1417) Stop script script.js.TV.TV_ein_aus
11:17:03.319 info javascript.0 (1417) Start javascript script.js.TV.TV_ein_aus
11:17:03.329 info javascript.0 (1417) script.js.TV.TV_ein_aus: registered 1 subscription and 0 schedules
11:17:03.333 info javascript.0 (1417) script.js.TV.TV_ein_aus:
11:17:03.335 info javascript.0 (1417) script.js.TV.TV_ein_aus: Geräte sind heruntergefahren mit Status, false
11:17:03.357 info javascript.0 (1417) script.js.TV.TV_ein_aus: Geräte sind gestartet mit Status, true
11:17:03.384 info javascript.0 (1417) script.js.TV.TV_ein_aus:VG Modjo
-
@Modjo Bevor du im Adapter testest, probiers auf der Konsole oben aus. Solange du als
iobroker
ein Passwort brauchst, wirds nicht im Adapter gehen. -
Noch ne blöde idee: Wo findet
root
denn etherwake?sudo su which etherwake
-
Vielen Dank für den Tipp.
der root user findet den am selben Pfad:sudo su which etherwake /usr/sbin/etherwake
VG Modjo
-
ich habe es auch mit wakeonlan versucht - da funktioniert es auch
exec('sudo etherwake -i eth0 1C:69:7A:xxxxxx -D', function (error, result, stderr) { console.log(result); }); exec('wakeonlan 94:C6:91:xxxxx', function (error, result, stderr) { console.log(result); });
die ausgabe:
wie @AlCalzone schon sagte:
bei mir funktioniert aber auch :sudo -u iobroker -s /bin/bash
was auch bei mir geht: dieser befehl im script
sudo -u root etherwake -D -i eth0 1C:69:7A:xxxxxx
-
@Modjo was du auch anwenden könntest:
in der javascript- instanz (setting):
und dann im script:
var wol = require('wake_on_lan'); wol.wake("00:1D:72:xxxxx");
-
@Modjo sagte in Javascript "exec" nach fix.sh nicht mehr möglich:
der root user findet den am selben Pfad
Dann versteh ich es nicht ganz. Deine Datei sah gut aus. Ggf. einfach mal die Kiste komplett neu starten?
-
@AlCalzone
Das habe ich bereits mehrfach gemacht. Ich habe die "custom_iobroker" Datei auch neu erstellt, hat alles nichts gebracht.
@liv-in-sky
Danke für deine Unterstützung. Über wakeonlan hat es auch nicht funktioniert und die Logs blieben leer. Über den node-wol wollte ich es nicht lösen, da es per etherwake bisher immer super funktioniert habeIch habe nun einfach die iobroker Datei selbst in /etc/sudoers.d erweitert, anstatt eine neue Datei zu erstellen:
iobroker@RPI3:/etc/sudoers.d$ sudo cat iobroker iobroker ALL=(ALL) ALL iobroker ALL=(ALL) NOPASSWD: /sbin/shutdown iobroker ALL=(ALL) NOPASSWD: /sbin/halt iobroker ALL=(ALL) NOPASSWD: /sbin/poweroff iobroker ALL=(ALL) NOPASSWD: /sbin/reboot iobroker ALL=(ALL) NOPASSWD: /bin/systemctl start iobroker ALL=(ALL) NOPASSWD: /bin/systemctl stop iobroker ALL=(ALL) NOPASSWD: /bin/mount iobroker ALL=(ALL) NOPASSWD: /bin/umount iobroker ALL=(ALL) NOPASSWD: /usr/bin/systemd-run iobroker ALL=(ALL) NOPASSWD: /usr/bin/apt-get iobroker ALL=(ALL) NOPASSWD: /usr/bin/apt iobroker ALL=(ALL) NOPASSWD: /usr/bin/dpkg iobroker ALL=(ALL) NOPASSWD: /usr/bin/make iobroker ALL=(ALL) NOPASSWD: /bin/ping iobroker ALL=(ALL) NOPASSWD: /sbin/setcap iobroker ALL=(ALL) NOPASSWD: /usr/bin/vcgencmd iobroker ALL=(ALL) NOPASSWD: /bin/cat iobroker ALL=(ALL) NOPASSWD: /bin/df iobroker ALL=(ALL) NOPASSWD: /sbin/ldconfig iobroker ALL=(ALL) NOPASSWD: /usr/sbin/etherwake ALL ALL=NOPASSWD: /bin/systemctl start iobroker ALL ALL=NOPASSWD: /bin/systemctl stop iobroker ALL ALL=NOPASSWD: /bin/systemctl restart iobroker ALL ALL=(iobroker) NOPASSWD: /usr/bin/node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js *
Nun funktioniert es endlich wieder. Ich muss aber dann wohl nach jedem fix Installer einmal die Datei neu anpassen.
Ich danke allen für die Hilfe und die Unterstützung bei der Problemlösung!
VG Modjo
-
wakeonlan wird das selbe problem gehabt haben, wie etherwake - aber hauptsache du hast erstmal eine lösung
ich nehme mal an, die iobroker_custom hatte die lese-rechte - dann fällt mir dazu auch nix mehr ein
-rw-r--r-- 1 root root 189 Sep 1 13:11 iobroker-own