NEWS
Exec Kommando an externen Pi funktioniert nicht
-
Hallo Leute,
ich habe schon seit einiger Zeit meinen IOBroker auf einem Intel-NUC unter Debian laufen. Hab mir für meine Homematic CCU2 eine schöne VIS gebastelt und bin soweit ganz zufrieden. Nun kämpfe ich jetzt aber jetzt schon seit ein paar Tagen mit einem Blockly Script und komme einfach nicht weiter. ich hab jetzt drei Tage am Stück gegoogelt und bin Tipps und Anleitungen aus den verschiedensten Foren gefolgt. Ich komme nicht weiter. Folgendes ist mein Problem.
Die Visualisierung läuft auf einem Raspberry PI 3B+ mit Raspbian und einem Touchpanel. Das Touchpanel lädt nach dem booten im Chromium in Vollbildmodus. Wie gesagt sehr stabil und ohne Probleme. Aber ich möchte auf dem Touch auch andere Anwendungen realisieren und deshalb den Vollbildmodus von Chromium beenden (Chromium einfach schliessen). Über die Konsole aus meinem iobroker zum Raspi funktioniert das einwandfrei, über das Script jedoch nicht. Mein Blocklyscript wird über einen Button (Taster) in der Vis getriggert. Das scheint zu funktionieren.
Nachdem was ich gelesen habe bis jetzt könnte es sich um ein Problem mit den Benutzerrechten handeln. Ich habe schon mehrere Key´s generiert (keygen) und diese Keys bei verschiedenen usern vom iobroker ausprobiert. Ich komme einfach nicht weiter. Das Script löst nicht den gewünschten Befehl aus. Oder liegt es am Script selbst. Ich habe auch es auch schon mit su pi -c, vorangestellt versucht. Auch mein zweites Script, den PI zu rebooten funktioniert nicht. Bin mir aber sicher, da handelt es sich um dasselbe Problem
Komme leider nicht aus der Linux Welt deshalb kann ich auch nicht sagen welche logs hier am meisten Aussagefähig sind.
Bin über jeden Input oder Hilfe von Euch dankbarFuso
-
Wenn du den SSH Key beim Iobroker User hinterlegt hast probiere es mal so:
ssh -tt 192.168.178.70 -l pi sudo killall chromium-browser
-
- erstelle mal in deinen script eine variable "result" - und setzte result in das console.log(result) nach dem exec-befehl, um zu sehen, was passiert
beispiel:
var result; exec('ps -p $(pgrep io.javascript.0) -o %cpu,%mem,cmd | awk \'NR==2 {print $1}\'', function (error, result, stderr) { console.log(result); if (result > 98) { sendTo("email.0", "send", {
- evtl - wenn du das fixer-script angewendet hast - muss der ssh befehl in das file "/etc/sudoers.d/iobroker" eingetragen werden
iobroker ALL=(ALL) NOPASSWD: /bin/ssh
vielleicht hat der iobroker user keine rechte auf etwas zuzugreifen - zur not einfach mal mit passwort angabe probieren - vielleicht hilf es auch einfacvh ein sudo vor das ssh in deinem exec.zu setzen
- erstelle mal in deinen script eine variable "result" - und setzte result in das console.log(result) nach dem exec-befehl, um zu sehen, was passiert
-
Hallo Leute,
sorry erstmal, daß ich nicht gleich geantwortet habe. Ich bin seit einer Woche nicht an dem Thema dran gewesen (Dienstreise). Bin leider noch eine gute Woche unterwegs, hab deshalb grad keine Gelegenheit eure Tipps auszuprobieren
Ich bedanke mich aber jetzt trotzdem schon mal für die Hilfe und werde auf alle Fälle Feedback geben.