NEWS
[gelöst] Problem mit dem Blockly-Block "exec"
-
@klausstoertebeker
Wäre der umgekehrte Weg eine Option für Dich?
Ich habe einen DP den ich auf true setzen kann und das QNAP „guckt“ da nach, setzt den wieder auf false und fährt runter.Hallo j_paul,
die Idee ist nicht schlecht, aber ich möchte auch andere Geräte per Remote herunterfahren oder eventuell auch starten (mit "etherwake" zum Beispiel). Daher wäre es schön, wenn ich den Blockly-Block "exec" nutzenkönnte.
Wenn ich Deinen Vorschlag aber richtig interpretiere, schlägst Du vor, auf dem QNAP ein Skript laufen zu lassen, das regelmäßig über einen Webhook den Wert des Datenpunktes abfragt, oder? Und dieses Skript müsste ich dann auf dem QNAP als cron-Job starten?Viele Grüße
"Klaus" -
Hallo ins Forum,
ich habe ein Prblem mit dem Blockly-Block "exec":
Ich möchte mein QNAP-NAS über eine SSH-Verbindung herunterfahren. Der Befehl dazu lautet "poweroff".
Ich möchte mich dann mit dem Befehl "ssh" mit dem QNAP-NAS verbinden, das dazu notwendige Passwort übergebe ich mit dem Befehl "sshpass".
Der vollständige Befehl lautet:sshpass -pPASSWORT ssh ADMINUSER@XXX.XXX.XXX.XXX poweroffWennich diesen Befehl in einem Terminal eingebe, wird das QNAP-NAS ordnungsgemäß heruntergefahren. Sende ich diesen Befehl jedoch mit dem Blockly-Block "exec", passiert gar nichts.
Wenn ich jedoch einen Befehl über den Blockly-Block "exec" absetze, der auf dem ioBroker-Server ausgeführt wird (beispielsweise "cd /" oder "pwd"), wird dieser auch ordnungsgemäß ausgeführt.
Kann mir jemand sagen, ob dieses Verhalten so gewollt oder ein Fehler ist und ob es einen Workaround oder eine Lösung gibt?Viele Grüße
"Klaus"
Warum eigentlich so kompliziert mit "sshpass"?
- Für den iobroker Linux-User ein Keypair erstellen
- Den public key auf dem QNAP in die authorized_keys eintragen
- fertig
-
@klausstoertebeker
Wäre der umgekehrte Weg eine Option für Dich?
Ich habe einen DP den ich auf true setzen kann und das QNAP „guckt“ da nach, setzt den wieder auf false und fährt runter.@j_paul sagte in Problem mit dem Blockly-Block "exec":
@klausstoertebeker
Wäre der umgekehrte Weg eine Option für Dich?
Ich habe einen DP den ich auf true setzen kann und das QNAP „guckt“ da nach, setzt den wieder auf false und fährt runter.Moin,
die Lösung würde ich zu gerne sehen!
Ich fahre das QNAP bisher auch per ssh herunter, was das QNAP dann Zeitweise bemängelt (Das es nicht ordentlich heruntergefahren wurde).
Hochfahren per Magic-Paket funktioniert ohne Probleme. -
@klausstoertebeker sagte in Problem mit dem Blockly-Block "exec":
(Nutzer iobroker ist da übrigens auch drin, weil ich den mal wegen eines anderen Problems dort eintragen musste)
Das ist schon falsch. Der iobroker gehört unter keinen Umständen in die Gruppe 'sudo' rein.
Was ergibt denn der Selbstversuch nun?
@thomas-braun
Nachdem ich den Nutzer iobroker aus der sudo-Gruppe wieder herausgenommen habe und deinen Befehl in einem Terminal eingegeben hatte, passierte nichts.Nach dem Drücken der Eingabetaste kam sofort der nächste Eingabeprompt und auf dem QNAP passierte auch nichts. -
Warum eigentlich so kompliziert mit "sshpass"?
- Für den iobroker Linux-User ein Keypair erstellen
- Den public key auf dem QNAP in die authorized_keys eintragen
- fertig
@haus-automatisierung
Wenn ich wüsste, wie das mit dem ganzen Schlüssel-Gedöns funktionieren würde, hätte ich das bestimmt schonmal versucht. Aber das und auch diese Zertifikatsdinge sind ein Buch mit sieben Siegeln (noch) und ich greife da eher auf "einfache" Sachen zurück.
In einem ganz normalen Terminal funktioniert das ja auch einwandfrei, ich kann Nutzernamen und Passworte aus versteckten Dateien extrahieren und einen Befehl zusammen"bauen" und mein QNAP damit herunter fahren.
Das Ganze funktioniert auch unter Blockly mit dem einzigen Unterschied, dass der zusammen"gebaute" Befehl nicht ausgeführt wird... -
@haus-automatisierung
Wenn ich wüsste, wie das mit dem ganzen Schlüssel-Gedöns funktionieren würde, hätte ich das bestimmt schonmal versucht. Aber das und auch diese Zertifikatsdinge sind ein Buch mit sieben Siegeln (noch) und ich greife da eher auf "einfache" Sachen zurück.
In einem ganz normalen Terminal funktioniert das ja auch einwandfrei, ich kann Nutzernamen und Passworte aus versteckten Dateien extrahieren und einen Befehl zusammen"bauen" und mein QNAP damit herunter fahren.
Das Ganze funktioniert auch unter Blockly mit dem einzigen Unterschied, dass der zusammen"gebaute" Befehl nicht ausgeführt wird...@klausstoertebeker wechsle doch in einer SSH-Sitzung einmal ganz zum Benutzer ioBroker:
sudo -u iobroker /usr/bin/bashGib dann noch mal deinen SSH-Befehl ein wie du ihn im Skript hast.
Die Fehlermeldung sollte die Lösung bringen. Er wird irgendetwas nicht dürfen bzw. vermutlich musst du einmal den SSH-Host-Key aktzeptieren, der wird dann gespeichert und danach geht es.Mit
exitverlässt du die Sitzung wieder.Edit: Alternativ musst du
sshpassbzw.sshmit den zusätzlichen Parametern aufrufen:sshpass -pMeinPasswort ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=noDann ignoriert er den Host-Key ohne Warnung
-
@klausstoertebeker wechsle doch in einer SSH-Sitzung einmal ganz zum Benutzer ioBroker:
sudo -u iobroker /usr/bin/bashGib dann noch mal deinen SSH-Befehl ein wie du ihn im Skript hast.
Die Fehlermeldung sollte die Lösung bringen. Er wird irgendetwas nicht dürfen bzw. vermutlich musst du einmal den SSH-Host-Key aktzeptieren, der wird dann gespeichert und danach geht es.Mit
exitverlässt du die Sitzung wieder.Edit: Alternativ musst du
sshpassbzw.sshmit den zusätzlichen Parametern aufrufen:sshpass -pMeinPasswort ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=noDann ignoriert er den Host-Key ohne Warnung
@BananaJoe
:-( Funktioniert leider nicht. Und eine Fehlermeldung kommt auch nicht, sondern einfach nur der nächste Eingabeprompt.. -
@BananaJoe
:-( Funktioniert leider nicht. Und eine Fehlermeldung kommt auch nicht, sondern einfach nur der nächste Eingabeprompt..@klausstoertebeker poste hier noch mal den genauen, vollständigen String den du getestet hast, nur das Passwort ersetze mit etwas unverfänglichen.
-
@BananaJoe
:-( Funktioniert leider nicht. Und eine Fehlermeldung kommt auch nicht, sondern einfach nur der nächste Eingabeprompt..Ich würde das per key machen. Ob das auf einem QNAP funktioniert weiß ich allerdings nicht. Sollte aber eigentlich.
-
Ich würde das per key machen. Ob das auf einem QNAP funktioniert weiß ich allerdings nicht. Sollte aber eigentlich.
@thomas-braun
Das funktioniert definitiv. Ich lege so mein Qnap schlafen mittelsexec('ssh admin@192.168.1.151 /etc/init.d/pw_sleep.sh', function (error, result, stderr) {....Habe mir ein Schlüsselpaar erstellt und in die authorized_keys auf dem Qnap eingetragen so wie @haus-automatisierung es oben beschrieben hat.
@haus-automatisierung Muss der public key nicht in die authorized_keys? -
@thomas-braun
Das funktioniert definitiv. Ich lege so mein Qnap schlafen mittelsexec('ssh admin@192.168.1.151 /etc/init.d/pw_sleep.sh', function (error, result, stderr) {....Habe mir ein Schlüsselpaar erstellt und in die authorized_keys auf dem Qnap eingetragen so wie @haus-automatisierung es oben beschrieben hat.
@haus-automatisierung Muss der public key nicht in die authorized_keys?@dolomiti sagte in Problem mit dem Blockly-Block "exec":
/etc/init.d/pw_sleep.shich hab bisher
poweroffaufgerufen (ist auch ein Skript), ich schau mal was da anders ist.Edit: Gefunden: Funktioniert bei meinem QNAP nicht (ist kein x86 System sondern mit ARM CPU)
-
@dolomiti sagte in Problem mit dem Blockly-Block "exec":
/etc/init.d/pw_sleep.shich hab bisher
poweroffaufgerufen (ist auch ein Skript), ich schau mal was da anders ist.Edit: Gefunden: Funktioniert bei meinem QNAP nicht (ist kein x86 System sondern mit ARM CPU)
@bananajoe
poweroff fährt das System runter. Ich schicke meins nur in Standby. -
@thomas-braun
Das funktioniert definitiv. Ich lege so mein Qnap schlafen mittelsexec('ssh admin@192.168.1.151 /etc/init.d/pw_sleep.sh', function (error, result, stderr) {....Habe mir ein Schlüsselpaar erstellt und in die authorized_keys auf dem Qnap eingetragen so wie @haus-automatisierung es oben beschrieben hat.
@haus-automatisierung Muss der public key nicht in die authorized_keys?@dolomiti sagte in Problem mit dem Blockly-Block "exec":
@haus-automatisierung Muss der public key nicht in die authorized_keys?
Ja, logisch. Danke habs angepasst.
-
Ich würde das per key machen. Ob das auf einem QNAP funktioniert weiß ich allerdings nicht. Sollte aber eigentlich.
@thomas-braun und alle anderen helfenden Poster:
Ich habe es auch mit den Schlüsseln hingekommen - ganu nach der Anleitung, die Thomas als Link eingefügt hat. Das Thema war dann für alle QNAP's in fünf Minuten erledigt und ich kann sie ganz normal runterfahren :-)
Jetzt muss ich das nur noch auf meinem Rechner zu Hause hinbekommen, wenn ich wieder dort bin...
Vielen Dank für die Hilfe und viele Grüße"Klaus"
-
@bananajoe
poweroff fährt das System runter. Ich schicke meins nur in Standby.@dolomiti sagte in [gelöst] Problem mit dem Blockly-Block "exec":
@bananajoe
poweroff fährt das System runter. Ich schicke meins nur in Standby.stimmt, das war es, das kann mein System nicht