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. JavaScript
  5. Remote Raspberry herunterfahren

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    911

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Remote Raspberry herunterfahren

Geplant Angeheftet Gesperrt Verschoben JavaScript
16 Beiträge 5 Kommentatoren 1.2k 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.
  • Thomas BraunT Thomas Braun

    @tiego Keine Meldung ist in der Regel positiv. Wird wohl dann funktionieren.

    T Offline
    T Offline
    tiego
    schrieb am zuletzt editiert von
    #7

    @thomas-braun leider nicht,
    im Log, steht wenn ich das script starte:

    Zeit
    	
    Nachricht
    javascript.0
    	2021-11-15 22:08:07.957	error	at processImmediate (internal/timers.js:461:21)
    javascript.0
    	2021-11-15 22:08:07.956	error	at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5706:41)
    javascript.0
    	2021-11-15 22:08:07.956	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:530:29)
    javascript.0
    	2021-11-15 22:08:07.956	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1087:38)
    javascript.0
    	2021-11-15 22:08:07.955	error	at Object.<anonymous> (script.js.common.Octoprint_shutdown:7:19)
    javascript.0
    	2021-11-15 22:08:07.949	error	script.js.common.Octoprint_shutdown: TypeError: node_ssh is not a constructor
    
    HomoranH ChaotC 2 Antworten Letzte Antwort
    0
    • T tiego

      @thomas-braun leider nicht,
      im Log, steht wenn ich das script starte:

      Zeit
      	
      Nachricht
      javascript.0
      	2021-11-15 22:08:07.957	error	at processImmediate (internal/timers.js:461:21)
      javascript.0
      	2021-11-15 22:08:07.956	error	at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5706:41)
      javascript.0
      	2021-11-15 22:08:07.956	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:530:29)
      javascript.0
      	2021-11-15 22:08:07.956	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1087:38)
      javascript.0
      	2021-11-15 22:08:07.955	error	at Object.<anonymous> (script.js.common.Octoprint_shutdown:7:19)
      javascript.0
      	2021-11-15 22:08:07.949	error	script.js.common.Octoprint_shutdown: TypeError: node_ssh is not a constructor
      
      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #8

      @tiego sagte in Remote Raspberry herunterfahren:

      im Log, steht wenn ich das script starte:

      @tiego sagte in Remote Raspberry herunterfahren:

      at Object.<anonymous> (script.js.common.Octoprint_shutdown:7:19)

      und was steht da im Script?

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      T 1 Antwort Letzte Antwort
      0
      • T tiego

        @thomas-braun leider nicht,
        im Log, steht wenn ich das script starte:

        Zeit
        	
        Nachricht
        javascript.0
        	2021-11-15 22:08:07.957	error	at processImmediate (internal/timers.js:461:21)
        javascript.0
        	2021-11-15 22:08:07.956	error	at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5706:41)
        javascript.0
        	2021-11-15 22:08:07.956	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:530:29)
        javascript.0
        	2021-11-15 22:08:07.956	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1087:38)
        javascript.0
        	2021-11-15 22:08:07.955	error	at Object.<anonymous> (script.js.common.Octoprint_shutdown:7:19)
        javascript.0
        	2021-11-15 22:08:07.949	error	script.js.common.Octoprint_shutdown: TypeError: node_ssh is not a constructor
        
        ChaotC Offline
        ChaotC Offline
        Chaot
        schrieb am zuletzt editiert von Chaot
        #9

        @tiego
        Sieht bei mir so aus:

        on({id: 'javascript.0.Vis.MonitorReload', val: true}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
        
        node_ssh = require('node-ssh');
        
        ssh = new node_ssh();
        
        ssh.connect({
        
          host: '192.168.8.15',
        
          username: '***i',
        
          password: '****'
        
        }).then(() => {
        
          ssh.execCommand("DISPLAY=:0 xdotool key F5");
        
        })
        });
        

        Ist bei Zeile 7 anders ausgeführt (ohne var)

        ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

        T 1 Antwort Letzte Antwort
        0
        • HomoranH Homoran

          @tiego sagte in Remote Raspberry herunterfahren:

          im Log, steht wenn ich das script starte:

          @tiego sagte in Remote Raspberry herunterfahren:

          at Object.<anonymous> (script.js.common.Octoprint_shutdown:7:19)

          und was steht da im Script?

          T Offline
          T Offline
          tiego
          schrieb am zuletzt editiert von
          #10

          @homoran
          node_ssh = require('node-ssh');

          HomoranH 1 Antwort Letzte Antwort
          0
          • ChaotC Chaot

            @tiego
            Sieht bei mir so aus:

            on({id: 'javascript.0.Vis.MonitorReload', val: true}, function (obj) {
              var value = obj.state.val;
              var oldValue = obj.oldState.val;
            
            node_ssh = require('node-ssh');
            
            ssh = new node_ssh();
            
            ssh.connect({
            
              host: '192.168.8.15',
            
              username: '***i',
            
              password: '****'
            
            }).then(() => {
            
              ssh.execCommand("DISPLAY=:0 xdotool key F5");
            
            })
            });
            

            Ist bei Zeile 7 anders ausgeführt (ohne var)

            T Offline
            T Offline
            tiego
            schrieb am zuletzt editiert von
            #11

            @chaot ???

            1 Antwort Letzte Antwort
            0
            • T tiego

              @homoran
              node_ssh = require('node-ssh');

              HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #12

              @tiego sagte in Remote Raspberry herunterfahren:

              @homoran
              node_ssh = require('node-ssh');

              das ist nicht Zeile 7

              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              T 1 Antwort Letzte Antwort
              0
              • HomoranH Homoran

                @tiego sagte in Remote Raspberry herunterfahren:

                @homoran
                node_ssh = require('node-ssh');

                das ist nicht Zeile 7

                T Offline
                T Offline
                tiego
                schrieb am zuletzt editiert von
                #13

                @homoran
                hallo, doch. oder wird die erste zeile als 0 gezählt?

                1 Antwort Letzte Antwort
                0
                • HomoranH Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von
                  #14

                  @tiego sagte in Remote Raspberry herunterfahren:

                  @homoran
                  hallo, doch. oder wird die erste zeile als 0 gezählt?

                  das ist dein gepostetes Skript:
                  ausnahmsweise als Screenshot
                  Screenshot_20211116-204749_Firefox.jpg

                  in zeile 7 steht was anderes

                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  1 Antwort Letzte Antwort
                  0
                  • T tiego

                    Hallo,
                    ich habe im Forum folgendes Script zum Herunterfahren eines Remote RPIs gefunden.

                    on({id: 'admin.0.Octoprint_Shutdown', change: "ne"}, async function (obj) {
                        var value = obj.state.val;
                        var oldValue = obj.oldState.val;
                        if ((obj.state ? obj.state.val : "") == true) {
                            setStateDelayed('admin.0.Octoprint_Shutdown', false, false, parseInt(((0) || "").toString(), 10), false);
                            node_ssh = require('node-ssh');
                            var ssh = new node_ssh();
                            ssh.connect({
                                host: '192.168.170.25',
                                username: 'pi',
                                password: 'xyz'
                            }).then(() => {
                                ssh.execCommand("sudo shutdown");
                            })
                    
                        }
                    });
                    

                    leider funktioniert es nicht.
                    das Packet "node_ssh" habe ich beim Javascript Kontroller hinzugefügt und neu gestartet, leider ohne erfolg. Ich erhalte immer folgende Fehler im Log.

                    javascript.0
                    	2021-11-15 21:40:32.984	error	Cannot install npm packet: node_ssh
                    javascript.0
                    	2021-11-15 21:40:32.983	error	Cannot install node_ssh: 1
                    javascript.0
                    	2021-11-15 21:40:32.963	error	npm ERR! A complete log of this run can be found in: npm ERR! /home/iobroker/.npm/_logs/2021-11-15T20_40_32_949Z-debug.log
                    javascript.0
                    	2021-11-15 21:40:32.949	error	npm ERR! 404 tarball, folder, http url, or git url.
                    javascript.0
                    	2021-11-15 21:40:32.947	error	ERR! 404 Not Found - GET https://registry.npmjs.org/node_ssh - Not found npm ERR! 404 npm ERR! 404 'node_ssh@latest' is not in the npm registry. npm ERR! 404 You should bug the author to publish it (or use the name yourself!) npm ERR! 404 npm ERR! 404 Note that you can also install from a
                    javascript.0
                    	2021-11-15 21:40:32.945	error	npm
                    javascript.0
                    	2021-11-15 21:40:32.934	error	ERR! code E404
                    javascript.0
                    	2021-11-15 21:40:32.931	error	npm
                    javascript.0
                    	2021-11-15 21:40:30.810	error	Cannot install node_ssh: 1
                    javascript.0
                    	2021-11-15 21:40:30.796	error	npm ERR! A complete log of this run can be found in: npm ERR! /home/iobroker/.npm/_logs/2021-11-15T20_40_30_782Z-debug.log
                    javascript.0
                    	2021-11-15 21:40:30.794	error	
                    javascript.0
                    	2021-11-15 21:40:30.781	error	ERR! 404 Not Found - GET https://registry.npmjs.org/node_ssh - Not found npm ERR! 404 npm ERR! 404 'node_ssh@latest' is not in the npm registry. npm ERR! 404 You should bug the author to publish it (or use the name yourself!) npm ERR! 404 npm ERR! 404 Note that you can also install from a npm ERR! 404 tarball, folder, http url, or git url.
                    javascript.0
                    	2021-11-15 21:40:30.779	error	npm
                    javascript.0
                    	2021-11-15 21:40:30.770	error	ERR! code E404
                    javascript.0
                    	2021-11-15 21:40:30.768	error	
                    javascript.0
                    	2021-11-15 21:40:30.766	error	npm
                    

                    könntet Ihr mir bitte helfen das Problem zu lösen? Ich steh seit über 2h auf der Leitung
                    danke euch.

                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von mickym
                    #15

                    @tiego Ehrlich gesagt verstehe ich nicht warum hier so ein Aufwand betrieben wird?

                    Ich würde einen ssh Zugang ohne Passwort ermöglichen. Hier zu gibt es genügend Anleitungen und ich nutze das auch und funktioniert:

                    https://www.dotkam.com/2009/03/10/run-commands-remotely-via-ssh-with-no-password/

                    Dann kann man mit einem einfach EXEC Befehl das entfernte System runterfahren ohne irgendwelche Bibliotheken etc.

                    user@host:~$ ssh remoteuser@remotehost.com sudo poweroff
                    

                    Ich habe es gerade nochmal getest - bei mir wurde der Zugriff von iobroker System auf mein GW über meinen FHEM Account:

                    fhem@MWHome:/home/pi$ ssh pi@192.168..xxx.xxx sudo reboot
                    bash: warning: setlocale: LC_ALL: cannot change locale (de_DE.UTF-8)
                    Connection to 192.168..xxx.xxx closed by remote host.
                    

                    Reboot funktioniert. ;)

                    Auch andere Kommandos

                    fhem@MWHome:/home/pi$ ssh pi@192.168.xxx.xxx uname -a
                    bash: warning: setlocale: LC_ALL: cannot change locale (de_DE.UTF-8)
                    Linux MWIPv6GW 5.10.63-v7+ #1459 SMP Wed Oct 6 16:41:10 BST 2021 armv7l GNU/Linux
                    

                    MWHome ist das lokale iobroker System
                    MWIPv6GW ist das remote System

                    Sprich das Ganze (also ssh Zugriff ohne PW) muss man halt in diesem Fall unter der iobroker Kennung machen - dann funktioniert das auch aus dem Skript. Die ssh Schlüssel müssen also alle im iobroker Home Verzeichnis /home/iobroker/.ssh liegen.

                    Zusätzlicher Vorteil: In den Skripten sieht man keine Passwörter etc. da man sich ohne PW anmeldet - aber eben nur mit einem bestimmten User und nur von einer bestimmten Maschine und unter bestimmter Userkennung.

                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                    ChaotC 1 Antwort Letzte Antwort
                    0
                    • mickymM mickym

                      @tiego Ehrlich gesagt verstehe ich nicht warum hier so ein Aufwand betrieben wird?

                      Ich würde einen ssh Zugang ohne Passwort ermöglichen. Hier zu gibt es genügend Anleitungen und ich nutze das auch und funktioniert:

                      https://www.dotkam.com/2009/03/10/run-commands-remotely-via-ssh-with-no-password/

                      Dann kann man mit einem einfach EXEC Befehl das entfernte System runterfahren ohne irgendwelche Bibliotheken etc.

                      user@host:~$ ssh remoteuser@remotehost.com sudo poweroff
                      

                      Ich habe es gerade nochmal getest - bei mir wurde der Zugriff von iobroker System auf mein GW über meinen FHEM Account:

                      fhem@MWHome:/home/pi$ ssh pi@192.168..xxx.xxx sudo reboot
                      bash: warning: setlocale: LC_ALL: cannot change locale (de_DE.UTF-8)
                      Connection to 192.168..xxx.xxx closed by remote host.
                      

                      Reboot funktioniert. ;)

                      Auch andere Kommandos

                      fhem@MWHome:/home/pi$ ssh pi@192.168.xxx.xxx uname -a
                      bash: warning: setlocale: LC_ALL: cannot change locale (de_DE.UTF-8)
                      Linux MWIPv6GW 5.10.63-v7+ #1459 SMP Wed Oct 6 16:41:10 BST 2021 armv7l GNU/Linux
                      

                      MWHome ist das lokale iobroker System
                      MWIPv6GW ist das remote System

                      Sprich das Ganze (also ssh Zugriff ohne PW) muss man halt in diesem Fall unter der iobroker Kennung machen - dann funktioniert das auch aus dem Skript. Die ssh Schlüssel müssen also alle im iobroker Home Verzeichnis /home/iobroker/.ssh liegen.

                      Zusätzlicher Vorteil: In den Skripten sieht man keine Passwörter etc. da man sich ohne PW anmeldet - aber eben nur mit einem bestimmten User und nur von einer bestimmten Maschine und unter bestimmter Userkennung.

                      ChaotC Offline
                      ChaotC Offline
                      Chaot
                      schrieb am zuletzt editiert von
                      #16

                      @mickym Er muss ja eigentlich nur die Zeile 7 ändern.
                      Aber deine Methode funktioniert auch recht interessant.

                      ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                      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

                      717

                      Online

                      32.6k

                      Benutzer

                      82.2k

                      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