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
11 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?
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?