iobroker: SSH-Befehle mit Blockly und simple-ssh ausführen

In diesem Artikel erfährst du, wie du einfach und schnell einen SSH-Befehl mit “simple-ssh” und einem Blockly-Script ausführen kannst.

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:

Blockly-Beispiel: SSH-Befehle mit Blockly und simple-ssh ausführen

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

Blockly-Beispiel: SSH-Befehle mit Blockly und simple-ssh ausführen

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

Blockly-Beispiel: SSH-Befehle mit Blockly und simple-ssh ausführen

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“ :

Blockly-Beispiel: SSH-Befehle mit Blockly und simple-ssh ausführen

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

War dieser Beitrag hilfreich?
Hat dir der Beitrag geholfen?
Die mit Sternchen (*) gekennzeichneten Links sind sogenannte Affiliate-Links. Wenn du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekomme ich von dem betreffenden Online-Shop oder Anbieter eine Provision. Für dich verändert sich der Preis nicht.

8 Kommentare

Kommentieren

Hi,
ich habe versucht damit meinen NAS runter zu fahren, das klappt aber leider nicht!
Oder muss ich da noch was anderes beachte?

Gruß Andreas

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.

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

Schreibe einen Kommentar