Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
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

Geplant Angeheftet Gesperrt Verschoben Blockly
7 Beiträge 3 Kommentatoren 601 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • K Offline
    K Offline
    Kuddel
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                Antworten
                • In einem neuen Thema antworten
                Anmelden zum Antworten
                • Älteste zuerst
                • Neuste zuerst
                • Meiste Stimmen


                Support us

                ioBroker
                Community Adapters
                Donate

                508

                Online

                32.5k

                Benutzer

                81.7k

                Themen

                1.3m

                Beiträge
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Anmelden

                • Du hast noch kein Konto? Registrieren

                • Anmelden oder registrieren, um zu suchen
                • Erster Beitrag
                  Letzter Beitrag
                0
                • Home
                • Aktuell
                • Tags
                • Ungelesen 0
                • Kategorien
                • Unreplied
                • Beliebt
                • GitHub
                • Docu
                • Hilfe