Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Warnings bei remote SSH Shutdown per Blockly von Windows VM

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Warnings bei remote SSH Shutdown per Blockly von Windows VM

Scheduled Pinned Locked Moved Blockly
7 Posts 3 Posters 599 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Offline
    K Offline
    Kuddel
    wrote on last edited by
    #1

    Hallo zusammen,

    ich schalte per Blockly eine Windows-VM aus, auf der OpenSSH läuft.

    Der Shutdown-Befehl steht in einer JS Funktion, die dann augerufen wird.

    var SSH = require('simple-ssh');
    var ssh = new SSH({
        host: '192.168.4.10',
        user: 'Mein_User',
        pass: 'Mein_PW'
    });
    ssh.exec('shutdown -s -f -t 120').start();
    

    An sich klappt alles und die VM wird auch ausgeschaltet, allerdings erhalte ich immer Fehler im Log:

    javascript.0	2022-10-11 09:53:10.472	error	Error: read ECONNRESET at TCP.onStreamRead (node:internal/stream_base_commons:217:20)
    javascript.0	2022-10-11 09:53:10.472	error	Error: read ECONNRESET
    javascript.0	2022-10-11 09:53:10.471	error	An error happened which is most likely from one of your scripts, but the originating script could not be detected.
    

    Kann jemand helfen ?

    BananaJoeB 1 Reply Last reply
    0
    • K Kuddel

      Hallo zusammen,

      ich schalte per Blockly eine Windows-VM aus, auf der OpenSSH läuft.

      Der Shutdown-Befehl steht in einer JS Funktion, die dann augerufen wird.

      var SSH = require('simple-ssh');
      var ssh = new SSH({
          host: '192.168.4.10',
          user: 'Mein_User',
          pass: 'Mein_PW'
      });
      ssh.exec('shutdown -s -f -t 120').start();
      

      An sich klappt alles und die VM wird auch ausgeschaltet, allerdings erhalte ich immer Fehler im Log:

      javascript.0	2022-10-11 09:53:10.472	error	Error: read ECONNRESET at TCP.onStreamRead (node:internal/stream_base_commons:217:20)
      javascript.0	2022-10-11 09:53:10.472	error	Error: read ECONNRESET
      javascript.0	2022-10-11 09:53:10.471	error	An error happened which is most likely from one of your scripts, but the originating script could not be detected.
      

      Kann jemand helfen ?

      BananaJoeB Online
      BananaJoeB Online
      BananaJoe
      Most Active
      wrote on last edited by
      #2

      @kuddel du öffnest die SSH Verbindung, schließt diese aber nie. Die Verbindung ist also die ganzen 2 Minuten offen bis die VM rebootet und dadurch die Verbindung verloren geht.

      Du müsstest die Verbindung also sauber trennen oder den Fehler abfangen, siehe https://www.npmjs.com/package/simple-ssh

      Wobei ich da kein Beispiel für ein beenden sehen.
      Log doch mal auch vor der Ausführung. Wenn meine Theorie stimmt kommt die Fehlermeldung 2 Minuten nachdem du den Befehl gesendet hast.

      Trennen könnte mit exit aus der Sitzung gehen:

      ssh.exec('shutdown -s -f -t 120 && exit 0').start();
      

      ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

      K 1 Reply Last reply
      0
      • BananaJoeB BananaJoe

        @kuddel du öffnest die SSH Verbindung, schließt diese aber nie. Die Verbindung ist also die ganzen 2 Minuten offen bis die VM rebootet und dadurch die Verbindung verloren geht.

        Du müsstest die Verbindung also sauber trennen oder den Fehler abfangen, siehe https://www.npmjs.com/package/simple-ssh

        Wobei ich da kein Beispiel für ein beenden sehen.
        Log doch mal auch vor der Ausführung. Wenn meine Theorie stimmt kommt die Fehlermeldung 2 Minuten nachdem du den Befehl gesendet hast.

        Trennen könnte mit exit aus der Sitzung gehen:

        ssh.exec('shutdown -s -f -t 120 && exit 0').start();
        
        K Offline
        K Offline
        Kuddel
        wrote on last edited by
        #3

        @bananajoe der Fehler kommt nicht erst nach 120 Sekunden, sondern direkt nach der Ausführung des Befehls.

        Ein "&& exit 0" brachte auch keine Erfolg.

        BananaJoeB 1 Reply Last reply
        0
        • K Kuddel

          @bananajoe der Fehler kommt nicht erst nach 120 Sekunden, sondern direkt nach der Ausführung des Befehls.

          Ein "&& exit 0" brachte auch keine Erfolg.

          BananaJoeB Online
          BananaJoeB Online
          BananaJoe
          Most Active
          wrote on last edited by BananaJoe
          #4

          @kuddel auch bei anderen Befehlen? z.B. ein echo?
          Teste doch sonst mal das Chaining command together und das Capturing error codes. bei dem Zweiten wird dann ja sogar eine Exit-Funktion gesetzt sowie der Returncode / Exit-Code des shutdown-befehls abgefangen.

          Das NPM Paket musstest du doch extra im JavaScrfipt Adapter hinzufügen, oder?

          Alternativ könntest du unter Linux (wenn dein iobroker unter Linux läuft) auch sshpass nachinstallieren und den ssh-Befehl als normalen Exec-Befehl absetzen (siehe Anleitung von sshpass)

          ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

          K 1 Reply Last reply
          0
          • BananaJoeB BananaJoe

            @kuddel auch bei anderen Befehlen? z.B. ein echo?
            Teste doch sonst mal das Chaining command together und das Capturing error codes. bei dem Zweiten wird dann ja sogar eine Exit-Funktion gesetzt sowie der Returncode / Exit-Code des shutdown-befehls abgefangen.

            Das NPM Paket musstest du doch extra im JavaScrfipt Adapter hinzufügen, oder?

            Alternativ könntest du unter Linux (wenn dein iobroker unter Linux läuft) auch sshpass nachinstallieren und den ssh-Befehl als normalen Exec-Befehl absetzen (siehe Anleitung von sshpass)

            K Offline
            K Offline
            Kuddel
            wrote on last edited by
            #5

            @bananajoe vielen Dank für die Antworten.

            Ich habe den Shutdown jetzt ersteinmal wieder umgebaut und den public ssh key vom ioBroker auf der Windows VM hinterlegt, dann kann man den Shutdown direkt per Blockly ohne JS Funktion machen.

            Den Rest werde ich dann mal in Ruhe in meiner Testumgebung versuchen zu fixen

            umbmU 1 Reply Last reply
            0
            • K Kuddel

              @bananajoe vielen Dank für die Antworten.

              Ich habe den Shutdown jetzt ersteinmal wieder umgebaut und den public ssh key vom ioBroker auf der Windows VM hinterlegt, dann kann man den Shutdown direkt per Blockly ohne JS Funktion machen.

              Den Rest werde ich dann mal in Ruhe in meiner Testumgebung versuchen zu fixen

              umbmU Offline
              umbmU Offline
              umbm
              wrote on last edited by
              #6

              @kuddel

              Auch wenn das Thema scgon sehr alt ist:

              Hast du inzwischen eine Lösung gefunden?
              Ich sitze zur Zeit vor der gleichen Fehlermeldung, wodurch dann der js-Adapter komplett neu startet und das Script, das den ssh-Befehl absetzt, natürlich abbricht.

              K 1 Reply Last reply
              0
              • umbmU umbm

                @kuddel

                Auch wenn das Thema scgon sehr alt ist:

                Hast du inzwischen eine Lösung gefunden?
                Ich sitze zur Zeit vor der gleichen Fehlermeldung, wodurch dann der js-Adapter komplett neu startet und das Script, das den ssh-Befehl absetzt, natürlich abbricht.

                K Offline
                K Offline
                Kuddel
                wrote on last edited by
                #7

                @umbm ich habe auf meinen ioBroker VM "sshpass" installiert.

                Damit kannn ich im Blockly das PW mitgeben.

                Im Exec Block steht dann folgendes:

                sshpass -p "**********" ssh admin@192.168.4.10 shutdown -s -f  -t 120 -c 'ioBroker-Shutdown'
                

                Wichtig war dabei irgendwie auch, dass im Comment kein Leerzeichen stehen darf.
                Deswegen "ioBroker-Shutdown" und nicht "ioBroker Shutdown"

                1 Reply Last reply
                0
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                Support us

                ioBroker
                Community Adapters
                Donate

                741

                Online

                32.5k

                Users

                81.7k

                Topics

                1.3m

                Posts
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Login

                • Don't have an account? Register

                • Login or register to search.
                • First post
                  Last post
                0
                • Home
                • Recent
                • Tags
                • Unread 0
                • Categories
                • Unreplied
                • Popular
                • GitHub
                • Docu
                • Hilfe