Das erwartet dich in diesem Artikel
Vorbereitung
Damit du überhaupt eine Secure Shell-Verbindung aufbauen kannst, muss in der Javascript-Instanz „simple-ssh“ aktiviert werden. Dazu wechselst du in die Instanz-Ansicht und dann in die Javascript-Einstellungen:

Auf der folgenden Seite schreibst du „simple-ssh“ in den Bereich „Zusätzliche NPM-Module“ und bestätigst das mit <Enter>:

Aktiviere zusätzlich die Einstellung „Erlaube das Kommando exec“:

Blockly-Script mit Javascript-Funktion
Dann wechselst du in den Scripte-Bereich und erstellst eine neues Blockly-Script. Über „Funktionen“ fügst du eine neue „Javascript-Funktion“ hinzu und ziehst diese einfach in den Editor. Einen Namen kannst du nach Belieben wählen. Schreibe ihn in den Bereich „etwas tun“ :

Aufruf starten
Duch Klick auf „…“ kannst du folgendes Javascript einfügen und anpassen:
var SSH = require('simple-ssh');
var ssh = new SSH({
host: '<ZIEL-IP>',
user: '<USER>',
pass: '<PASSWORT>'
});
ssh.exec('<BEFEHL>').start();
- Unter „host“ trägst du die IP-Adresse des Zielrechners ein, auf den du dich bzw. das Script sich verbinden soll.
- Für „user“ und „pass“ trägst du deine Login-Daten ein.
- In die Klammer hinter „ssh.exec“ fügst du den Shell-Befehl ein, der durch das Script ausgeführt werden soll.
Abschließend erzeugst du mit einem Rechtsklick auf die Funktion durch „Erzeuge Aufruf <Name>“ einen Aktionsblock, der die Funktion startet. Diesen kannst du in einen Trigger stecken oder einfach so ohne umgebenden Block im Script lassen. Sobald das Blockly-Script gestartet wird, verbindet es sich auf die Ziel-IP, loggt sich ein und führt den definierten Befehl aus.
ioBroker: Daten aus Webseiten mit Parser und Regex extrahieren
14 Kommentare
KommentierenHi,
ich habe versucht damit meinen NAS runter zu fahren, das klappt aber leider nicht!
Oder muss ich da noch was anderes beachte?
Gruß Andreas
Gibt es eine Fehlermeldung? Was steht im Log? Viele Grüße
Mein script funtioniert nicht
var SSH = require(’simple-ssh‘);
var ssh = new SSH({
host: ‚192.168.178.71‘,
user: ‚pi‘,
pass: ‚xxxxxxxx‘
});
ssh.exec(‚keyble-sendcommand –adress 00:1a:22:0a:6d:b9 –user key xxxxxxxxxxxxx –command lock‘).start();
woran kann das liegen? Ich nutze iobroker auf proxmox lfc Container und ubuntu Template. Wenn ich den Befehl auf der Konsole absetze funktioniert es, In Blockly nicht.
L.G.
Hast du „erlaube exec“ im Adapter aktiviert?
Hallo Jürgen, hast die keyble zum laufen gebracht?
Wie bekomme ich damit eine Rückmeldung (ein Ergebnis)?
Beispiel:
——————–
var SSH = require(’simple-ssh‘);
var ssh = new SSH({
host: ‚192.168.130.180‘,
user: ‚pi‘,
pass: ‚xxx‘
});
ssh.exec(‚vcgencmd measure_temp‘).start();
——————–
Antwort wäre:
temp=30.6’C
Hallo, die vorige Frage mit der Rückmeldung würde mich auch sehr interessieren.
Gibt es da eine Lösung?
ssh
.exec(cmd, {
out: function(stdout) {
console.log(stdout);
},
}).start();
Wie kann ich nach dem Kommando noch evtl. Tastendrücke weitergeben? Das gewünschte Kommando erfordert eine Y/n-Antwort.
hallo !
Wie bekomme ich die Rückmeldung in die Variable result?
Hallo.
Die letzte Frage von Mario würde mich auch interessieren. Vielen Dank!
Hallo,
hat es schon jemand mit Rückmeldung hin bekommen?
Hallo,
ich will meine NAS (QNAP) damit herunterfahren und komme einfach nicht klar.
Wenn ich cmd eingebe und dann ssh admin@192.168.178.90 “ /sbin/poweroff“ werden ich nach dem Passwort gefragt und nach der Eingabe fährt das System herunter. Soweit ok
Im IObroker habe ich in der Instanz „zusätzliche NPM-Module simple-ssh eingegeben und exec zugelassen.
Im blockly habe ich das script NAS453_off genannt.
In der Javascript-Funktion habe ich folgendes Script eingegeben:
var SSH = require(’simple-ssh‘);
var ssh = new SSH({
host: ‚192.168.178.90‘,
user: ‚admin‘,
pass: ‚Frechdachs1973‘
});
ssh.exec(‚/sbin/poweroff‘).start();
Nach dem Start des scripts passiert NIX
in den Protokollen erscheint folgendes:
t.0
2025-12-19 09:09:32.615 info script.js.NAS453_off: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
javascript.0
2025-12-19 09:09:32.605 info script.js.NAS453_off: start JavaScript (Blockly)
javascript.0
2025-12-19 09:09:30.176 info script.js.NAS453_off: Stopping script
kann mir jemand helfen?
Hallo @all: Für Funktionen mit Rückgabe gibt es eine eigene Javascript-Funktion „JS-Funktion mit Ergebnis“. Versucht mal den.
Hallo Martin: Ich würde mal nach den Hochkommata schauen. Das müssen einfache oben sein (kein oben/unten etc.). Die sehen bei Dir komsich aus.