Synology Diskstation via PHP herunterfahren

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • type0n
    Dumb Home'r
    • 07.01.2017
    • 18

    #1

    Synology Diskstation via PHP herunterfahren

    Moin!

    Bei mir läuft eine Synology Diskstation DS1513+ und hält vorwiegend Filme/Fotos/Musik im Netzwerk bereit. Um die Platten zu schonen, habe ich nach einer Möglichkeit gesucht das NAS aus der Ferne herunterfahren zu können, falls es nicht benötigt wird (z.B. keiner Zuhause, Nachts). Über den MS selbst funktioniert ja weder Telnet noch SSH, somit schieden diese Wege aus.
    Nun hatte ich die Idee den auf dem NAS laufenden Webserver zum herunterfahren zu nutzen. Dazu habe ich ein kleines PHP Script zusammengebaut, möglicherweise hilft es ja jemandem.
    Dazu nutze ich die kaum dokumentierte WebAPI von Synology.

    Bitte IP_DISKSTATION, USER_DISKSTATION und PASS_DISKSTATION entsprechend ersetzen.

    PHP-Code:
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_COOKIEJAR, "/tmp/cookieFileName");
    curl_setopt($ch, CURLOPT_URL,"http://IP_DISKSTATION:5000/webapi/auth.cgi");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "api=SYNO.API.Auth&version=3&method=login&account=USER_DISKSTATION&passwd=PASS_DISKSTATION&format=sid");
    ob_start();
    curl_exec ($ch);
    ob_end_clean();
    curl_close ($ch);
    unset($ch);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_COOKIEFILE, "/tmp/cookieFileName");
    curl_setopt($ch, CURLOPT_URL,"http://IP_DISKSTATION:5000/webapi/entry.cgi?api=SYNO.Core.System&method=shutdown&account=USER_DISKSTATION&passwd=PASS_DISKSTATION&version=1&force=false");
    $buf2 = curl_exec ($ch);
    curl_close ($ch);
    echo "<PRE>".htmlentities($buf2);
    ?> 
    

    Um die Diskstation über die Visu hernuterfahren zu können, habe ich einen virtuellen Ausgang mit der IP der Diskstation angelegt.

    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: ausgang.png Ansichten: 1 Größe: 11,2 KB ID: 124594
    An diesem hängt einen virtueller Ausgangs Befehl mit dem Pfad und Namen des Skripts.

    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: befehl.png Ansichten: 1 Größe: 18,9 KB ID: 124595

    In der Config habe ich dann einen Taster verwendet um das Skript auszuführen. Zusätzlich lass ich mir über Ping noch anzeigen, ob die Diskstation läuft. Ein weiterer Taster weckt die Station über WOL auf und über eine Schaltuhr kann ich die Diskstation Zeitgesteuert herunterfahren.

    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: config.png Ansichten: 1 Größe: 18,8 KB ID: 124596

    Schönen Gruß
    type0n
    Zuletzt geändert von type0n; 31.10.2017, 10:35.
    Loxberry, 1x MS, 1x 1-Wire, 11x Extension, 1x Airbase, viele ESP8266/ESP32 Geräte über UDP MQTT, Shellies! Novelan Solewärmepumpe, 10kWp PV mit SMA STL-9000, einige RaPis,FritzBoxen etc. Alte Hütte von 1770 mit rund 370m² für 2 Parteien, vollentkernt ab 2011, Einzug 2013, Fertigstellung , ein wenig Umlage 9K m²
  • christof89
    Lox Guru
    • 29.08.2015
    • 1374

    #2
    Danke für das Script!

    Mir ist nur eines nicht zu 100% klar, wieso gehst du den Umweg betreffend Schaltuhr über Loxone,
    das kann die Diskstation ja selbst...

    Shutdown macht so natürlich Sinn ;-)

    Kommentar

    • type0n
      Dumb Home'r
      • 07.01.2017
      • 18

      #3
      Hi!

      Ich habe ehrlich gesagt wenig Lust mich mit gefüllt 100 Weboberflächen,
      und Apps herumzuschlagen. Dort stelle ich was an der Wärmepumpe, da an der PV, hier dieses Kennwort, da das Submenü, dort noch eine Schraube an der man vergessen hat zu drehen. Klar kann man ne Menge mit der Syno anstellen! Ich möchte, soweit es möglich ist, alles über die Loxone App laufen lassen. In vielen Fällen klappt das auch sehr gut. Die Schaltuhr dient dazu die eigene Faulheit zu überwinden und zu einer bestimmten Zeit gezwungen zu werden einfach offline zu sein. Sozusagen wie das alte Fernsehtestbild (falls das noch jemand kennt...). So, jetzt ist es X Uhr, geh mal ins Bett jetzt kommt nichts mehr. Also für mich rein praktische und pragmatische Gründe.

      Schönen Gruß
      type0n
      Loxberry, 1x MS, 1x 1-Wire, 11x Extension, 1x Airbase, viele ESP8266/ESP32 Geräte über UDP MQTT, Shellies! Novelan Solewärmepumpe, 10kWp PV mit SMA STL-9000, einige RaPis,FritzBoxen etc. Alte Hütte von 1770 mit rund 370m² für 2 Parteien, vollentkernt ab 2011, Einzug 2013, Fertigstellung , ein wenig Umlage 9K m²

      Kommentar

      • tom37
        LoxBus Spammer
        • 11.11.2015
        • 306

        #4
        Hallo,

        im Script fehlt in der ersten Zeile noch das "<?php", damit es als PHP Script erkannt wird. Damit funktioniert es bei mir ebenfalls einwandfrei, vielen Dank!

        VG,
        Tom

        Kommentar

        Lädt...