NEWS
Einen PI3 durch ioBroker herunterfahren?
-
Über ein Script geht das herunterfahren recht einfach:
node_ssh = require('node-ssh'); ssh = new node_ssh(); ssh.connect({ host: 'xxx.xxx.x.xxx', username: 'root', password: 'yourRootPasswordHere' }).then(() => { ssh.execCommand("YourShutdownCommandHere"); })
Damit das geht musst du im Admin Panel vom JS Adapter die Bibliothek "node-ssh" hinzufügen.
A.
-
Hallo Asgothian,
ich habe jetzt "node-ssh" bei den Instanzen bei "javascript.0" bei dem "Schraubenschlüssel" in der Zeile "Zusätzliche NPM-Module" eingetragen.
Das ist doch so richtig, oder?
Nach Eingabe der entsprechenden Daten im Skript, fährt der PI3 auch runter. Das ist doch dann so alles, oder?
Grüße und Danke für die schnelle Hilfe.
Manfred -
@Beowolf Ja, das ist alles.
-
Ich mußte ioBroker neu aufsetzten.
Jetzt bekomme ich diese Fehlermeldung in der LOG-Datei.
javascript.0 2020-08-07 15:08:47.189 error (24264) at Script.runInContext (vm.js:130:18) javascript.0 2020-08-07 15:08:47.189 error (24264) at script.js.common.PI3_CopyShop_PowerOff:2:7 javascript.0 2020-08-07 15:08:47.188 error (24264) TypeError: node_ssh is not a constructor javascript.0 2020-08-07 15:08:47.188 error (24264) ^ javascript.0 2020-08-07 15:08:47.188 error (24264) ssh = new node_ssh(); javascript.0 2020-08-07 15:08:47.188 error (24264) script.js.common.PI3_CopyShop_PowerOff: script.js.common.PI3_CopyShop_PowerOff:2
Was mache ich noch falsch?
Grüße
Manfred -
@Beowolf
Ist das Modul 'node-ssh' in die Konfiguration der Javascript-Instanz eingetragen ? -
So sieht das bei mir aus
Wenn ich das Skript unter iobroker "neustarte", kommt die Meldung im unteren LOG-Feld
16:22:20.233 info javascript.0 (24264) Stop script script.js.common.PI3_CopyShop_Neustart 16:22:20.297 info javascript.0 (24264) Start javascript script.js.common.PI3_CopyShop_Neustart 16:22:20.305 error javascript.0 (24264) script.js.common.PI3_CopyShop_Neustart: script.js.common.PI3_CopyShop_Neustart:2 16:22:20.306 error javascript.0 (24264) at script.js.common.PI3_CopyShop_Neustart:2:7
Ich habe zwei Skripte. Einmal für einen Neustart und einmal zum Ausschalten.
-
@Beowolf
Getestetconst node_ssh = require('node-ssh'); const ssh = new node_ssh();
und erhalte den gleichen Fehler:
javascript.1 2020-08-07 16:36:57.322 error (5051) at script.js.common.Test:13:13 javascript.1 2020-08-07 16:36:57.322 error (5051) TypeError: node_ssh is not a constructor javascript.1 2020-08-07 16:36:57.322 error (5051) ^ javascript.1 2020-08-07 16:36:57.322 error (5051) const ssh = new node_ssh(); javascript.1 2020-08-07 16:36:57.321 error (5051) script.js.common.Test: script.js.common.Test:13
-
-
@Beowolf bekomme den gleiche Fehler, aber erst seit dem letzten Javascript Adapter Update.
Im Script wird angezeigt, dass das Modul "node-ssh" nicht gefunden wird. -
Ist das den "rausgeflogen", oder nur ein Fehler?
-
@Beowolf gute Frage, weiß ich nicht. Mir ist es gestern nur aufgefallen, als ich meinen Po der am 3d Drucker hängt über iobroker runter fahren wollte. Ging bisher immer, vllt mal die Javascript Version downgraden, ob es dann funktioniert
-
-
@Thomas-Braun da kommt node-ssh@11.0.0
-
@coyote Genaue Rückmeldung?
-
Genaue Rückmeldung?
/opt/iobroker$ npm list node-ssh iobroker.inst@2.0.3 /opt/iobroker └─┬ iobroker.javascript@4.6.21 └── node-ssh@11.0.0
-
@coyote sagte:
Javascript Version downgraden, ob es dann funktioniert
Funktioniert auch mit Version 4.6.4 nicht. Muss wohl am Modul liegen.
-
Muss wohl am Modul liegen.
Der Zugriff wurde in Version 11.0.0 geändert:
const node_ssh = require('node-ssh').NodeSSH; const ssh = new node_ssh();
Die Doku unter npmjs.com ist noch nicht angepasst.
-
-
@Asgothian sagte in Einen PI3 durch ioBroker herunterfahren?:
Über ein Script geht das herunterfahren recht einfach:
node_ssh = require('node-ssh'); ssh = new node_ssh(); ssh.connect({ host: 'xxx.xxx.x.xxx', username: 'root', password: 'yourRootPasswordHere' }).then(() => { ssh.execCommand("YourShutdownCommandHere"); })
Mit einem anderen Command kann ich so den Plex-Dienst auf dem NAS stoppen/starten.
Was mich jedoch stört ist die Tatsache, dass ich mich für SSH als Administrator anmelden muss
und mein Passwort im Skript ersichtlich ist.Im Internet habe ich eine Seite gefunden, mit welchem man eine Key-Authentication erstellen kann.
Leider weis ich dennoch nicht, wie dies vonstatten gehen soll.
https://debian-administration.org/article/530/SSH_with_authentication_key_instead_of_passwordKann mir jemand helfen?
-
@Kusi Hilft dir dieser Thread vielleicht?
https://forum.iobroker.net/topic/12995/gelöst-blockly-per-ssh-an-anderen-rechner-und-script-ausführen