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. [gelöst] Script um Befehl auf Synology ausführen

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.7k

[gelöst] Script um Befehl auf Synology ausführen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
15 Beiträge 7 Kommentatoren 8.8k Aufrufe 1 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.
  • BluefoxB Offline
    BluefoxB Offline
    Bluefox
    schrieb am zuletzt editiert von
    #2

    Sollte nicht kompliziert sein. Oder?

    Z.b. über Javascirpt. Im Config "simple-ssh" eintragen und

    var SSH = require('simple-ssh');
    
    var ssh = new SSH({
        host: 'localhost',
        user: 'username',
        pass: 'password'
    });
    
    ssh.exec('POWEROFF', {
        out: function(stdout) {
            console.log(stdout);
        }
    }).start();
    

    https://www.npmjs.com/package/simple-ssh

    1 Antwort Letzte Antwort
    0
    • M Offline
      M Offline
      mctom
      schrieb am zuletzt editiert von
      #3

      ja sieht einfach aus…

      aber als Anfänger ist das alles noch etwas schwierig.

      Leider funktioniert in der aktuellen Synology Version der poweroff Befehl nicht mehr so einfach.

      Ich habe jetzt ein paar Infos im Netz gefunden, demnach muss vorher noch folgende Befehle eingegeben werden:

      sudo -i
      Admin Kennwort eingeben
      poweroff
      
      

      Jetzt ist mir nicht ganz klar wie ich es so in dem Script anpassen, dass alle nacheinander bzw. wenn die Aufforderung kommt eingegeben wird.

      Kannst du hier noch einmal helfen ?

      Gruß

      Michael

      1 Antwort Letzte Antwort
      0
      • BluefoxB Offline
        BluefoxB Offline
        Bluefox
        schrieb am zuletzt editiert von
        #4
        ssh.exec('sudo -i poweroff')
        ssh.exec('pass')
        .start();
        

        Aber keine Ahnung ob es geht.

        Kannst du nicht gleicht sich als root bei SSH anmelden?

        1 Antwort Letzte Antwort
        0
        • G Offline
          G Offline
          Gürol
          schrieb am zuletzt editiert von
          #5

          Hier hat seit 6 Monaten keine mehr etwas geschrieben. :shock:

          Da ich Threads nicht mag, wo am Ende keine Lösung steht (und diese Thread mir trotzdem geholfen hat das Problem zu lösen) dachte ich, daß ich hier meine Lösung präsentiere. ;)

          Ich fange mal mit der Beschreibung des Problems an.

          Synology hat inzwischen (aus Sicherheitsgründen) die Anmeldung als root mit einem Passwort gesperrt. :shock:

          So funktionieren alle alten Shutdown scripte nicht mehr, die sich als root einloggen und den Synology NAS herunterfahren. :cry:

          Ich hatte vor einige Zeit eine Lösung dafür unter Windows ausgetüftelt gehabt und wußte daher, daß sich das Problem grundsätzlich lösen läßt. ;)

          Die Lösung von damals hier zu implementieren war mir jedoch zu aufwändig, da ich das damals so gelöst hatte, daß sich meine Batch Datei mittels eines Zertifikats als root einloggt um den NAS herunterfahren zu können. :roll:

          Die Lösung hier basiert auf den Tipp von Bluefox (weiter oben hier im Thread) mit dem "simple-ssh" Modul, daher bitte erst diesen Modul dazu nehmen, bevor man weiter macht. (Im Javascript-Konfig als zusätzliche NPM-Modul eintragen.)

          Als ich das Problem gelöst hatte, war ich doch verwundert, warum niemand den Syntax des sudo Befehls nachgeschlagen hatte. :shock:

          "-i" öffnet z.B. eine interaktive sudo Session, das nützt hier aber nichts, weil kein Mensch da ist um interaktiv etwas machen zu können.

          Vielmehr wird hier ein "-S" benötigt, damit das Passwort via stdin eingelesen werden kann.

          var SSH = require('simple-ssh');
          
          var ssh = new SSH({
              host: '192.168.xx.aa',
              port: bbbb,
              user: 'admin',
              pass: 'password_here'
          });
          
          ssh.exec('echo "password_here"|sudo -S shutdown -h now').start();
          
          ````(xx, aa, bbbb sowie password_here müssen durch die eigenen Werte ersetzt werden.)
          
          Da ich inzwischen drei Synology NAS Systeme hier stehen habe, habe ich das ganze an die vis Oberfläche eingebunden.
          
          (Anbindung an vis via hqwidgets On/Off Button)
          
          Die Buttons sind jeweils mit "Auslöser.EinAus216", "Auslöser.EinAus1512" etc. verbunden.
          
          Hier ist mein Blockly Script, das sich um das Ein- und Ausschalten aller Synologys kümmert:
          
          (Eine zentrale Schaltung habe ich nicht eingebaut. Man kann die Synologys nur einzeln ein- und ausschalten.)
           ![1929_blockly1.png](/assets/uploads/files/1929_blockly1.png) 
          Hier ist "DS_EinAus":
          

          if (ds.state.val) {
          if (ds.name=="Auslöser.EinAus216") {
          require('wake_on_lan').wake("aa:aa:aa:aa:aa:aa");
          } else if (ds.name=="Auslöser.EinAus1512") {
          require('wake_on_lan').wake("bb:bb:bb:bb:bb:bb");
          } else if (ds.name=="Auslöser.EinAus214") {
          require('wake_on_lan').wake("cc:cc:cc:cc:cc:cc");
          }
          } else {
          var SSH = require('simple-ssh');
          if (ds.name=="Auslöser.EinAus216") {
          var ssh = new SSH({
          host: '192.168.xx.a1',
          port: a2,
          user: 'admin',
          pass: 'password_here'
          });
          } else if (ds.name=="Auslöser.EinAus1512") {
          var ssh = new SSH({
          host: '192.168.xx.b1',
          port: b2,
          user: 'admin',
          pass: 'password_here'
          });
          } else if (ds.name=="Auslöser.EinAus214") {
          var ssh = new SSH({
          host: '192.168.xx.c1',
          port: c2,
          user: 'admin',
          pass: 'password_here'
          });
          }
          ssh.exec('echo "password_here"|sudo -S shutdown -h now').start();
          }

          
          Diese Status stimmt aber nur, wenn die Synologys immer via ioBroker ein- und ausgeschaltet werden. Damit die jeweilige Status auch dann richtig angezeigt wird, wenn die Synologys anderweitig ein- und ausgeschaltet werden, habe den folgenden Blockly Script hinzugefügt. (Den iobroker.radar Modul vorher installieren.) So weiß man, ob die Synologys noch laufen oder nicht.
           ![1929_blockly2.png](/assets/uploads/files/1929_blockly2.png) Gruß
          
          Gürol
          1 Antwort Letzte Antwort
          0
          • K Offline
            K Offline
            Kuddel
            schrieb am zuletzt editiert von
            #6

            Hallo zusammen,

            ich habe auch versucht mein Synology NAS per Skript herunterzufahren. Leider ohne Erfolg. Es tut sich nichts.

            Hier mein Skript:

            on({id: "javascript.0.Shutdown_Synology", change: 'any'}, function (obj) {
            
            var SSH = require('simple-ssh');
            
            var ssh = new SSH({
                host: '192.168.4.12',
                port: 22,
                user: 'admin',
                pass: '**********'
            });
            
            ssh.exec('echo "password_here"|sudo -S shutdown -h now').start();   
            
                 }
            );
            
            

            Per Blockly Skript checke ich ein Paar Geräte auf Ping. Wenn alle Geräte offline sind, schaltet Blockly die Variable Shutdown_Synology um.

            Ich weiß nicht ob ich irgendein Fehler gemacht habe.

            Im Javascript-Adapter habe ich folgendes eingetragen:
            3467_javascript.png

            Jemand eine Idee, warum sich nichts tut?

            Vielen Dank schon einmal

            1 Antwort Letzte Antwort
            0
            • PeoplesP Offline
              PeoplesP Offline
              Peoples
              schrieb am zuletzt editiert von
              #7

              HI,

              ich glaube auf der Seite von Synology gelesen zu haben dass seit DSM6 der SSH-Zugang standardmäßig deaktiviert ist. Und wohl auch nach dem Neustart wieder deaktiviert wird sofern man nur den SSH - Zugang über Putty ändert. Ich such mal den Artikel und hänge ihn hier an wenn ich ihn finde.

              Gruß

              Steffen

              Ich beantworte keine Fragen zu Themen via PN

              1 Antwort Letzte Antwort
              0
              • K Offline
                K Offline
                Kuddel
                schrieb am zuletzt editiert von
                #8

                @peoples:

                HI,

                ich glaube auf der Seite von Synology gelesen zu haben dass seit DSM6 der SSH-Zugang standardmäßig deaktiviert ist. Und wohl auch nach dem Neustart wieder deaktiviert wird sofern man nur den SSH - Zugang über Putty ändert. Ich such mal den Artikel und hänge ihn hier an wenn ich ihn finde.

                Gruß

                Steffen `

                Also ich komme auch nach einen Reboot weiterhin per SSH auf das NAS

                1 Antwort Letzte Antwort
                0
                • G Offline
                  G Offline
                  Gürol
                  schrieb am zuletzt editiert von
                  #9

                  @Kuddel:

                  on({id: "javascript.0.Shutdown_Synology", change: 'any'}, function (obj) {
                      
                  var SSH = require('simple-ssh');
                   
                  var ssh = new SSH({
                      host: '192.168.4.12',
                      port: 22,
                      user: 'admin',
                      pass: '**********'
                  });
                  
                  ssh.exec('echo "password_here"|sudo -S shutdown -h now').start();   
                      
                      
                       }
                  );
                  
                  ```` `  
                  

                  Hallo Kuddel,

                  ich würde erstmal die üblichen Verdächtigen überprüfen. ;)

                  Stimmt die IP?

                  Stimmt die Portadresse?

                  Hast du an beiden Stellen, den Passwort eingesetzt?

                  (Also einmal, wo du die "****" hast und das zweite mal, wo du "password_here" hast.)

                  Gruß

                  Gürol

                  1 Antwort Letzte Antwort
                  0
                  • K Offline
                    K Offline
                    Kuddel
                    schrieb am zuletzt editiert von
                    #10

                    Ja das war der Fehler. Habe das zweite PW vergessen. Jetzt geht es perfekt :-)

                    1 Antwort Letzte Antwort
                    0
                    • PeoplesP Offline
                      PeoplesP Offline
                      Peoples
                      schrieb am zuletzt editiert von
                      #11

                      @Kuddel:

                      Also ich komme auch nach einen Reboot weiterhin per SSH auf das NAS `

                      Dann muss ich mal schauen weil bei mir geht das nicht :lol:

                      Gruß

                      Steffen

                      Ich beantworte keine Fragen zu Themen via PN

                      1 Antwort Letzte Antwort
                      0
                      • lobomauL Offline
                        lobomauL Offline
                        lobomau
                        schrieb am zuletzt editiert von
                        #12

                        Habt den Synology Adapter schon probiert?

                        Der hat die Befehle für Ausschalten und Neustarten.

                        Host: NUC8i3 mit Proxmox:

                        • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
                        • Slave: Pi4
                        1 Antwort Letzte Antwort
                        0
                        • K Offline
                          K Offline
                          Kuddel
                          schrieb am zuletzt editiert von
                          #13

                          @lobomau:

                          Habt den Synology Adapter schon probiert?

                          Der hat die Befehle für Ausschalten und Neustarten. `

                          Welcher?

                          Ich hatte einen getestet aber der kann nur per SNMP auslesen

                          1 Antwort Letzte Antwort
                          0
                          • DutchmanD Offline
                            DutchmanD Offline
                            Dutchman
                            Developer Most Active Administrators
                            schrieb am zuletzt editiert von
                            #14

                            Verwahrungsort auf latest stellen und synonology Adapter installieren (nicht den snmp)

                            –-----------------------

                            Send from mobile device

                            Das schöne ios hat Auto Korrektur zum k****

                            Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

                            1 Antwort Letzte Antwort
                            0
                            • lobomauL Offline
                              lobomauL Offline
                              lobomau
                              schrieb am zuletzt editiert von
                              #15

                              @Kuddel:

                              @lobomau:

                              Habt den Synology Adapter schon probiert?

                              Der hat die Befehle für Ausschalten und Neustarten. `

                              Welcher?

                              Ich hatte einen getestet aber der kann nur per SNMP auslesen `
                              Probier mal aus. Kannst deine Erfahrungen hier unten schildern ;-)

                              http://forum.iobroker.net/viewtopic.php … gy#p112046

                              Host: NUC8i3 mit Proxmox:

                              • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
                              • Slave: Pi4
                              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

                              401

                              Online

                              32.4k

                              Benutzer

                              81.5k

                              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