RunScript() - StopScript() / Adv WOL Addon (Buffalo Linkstation)

  • Hallo,

    mein System ist ein RPI3 mit LE 006 Beta

    Ich habe an meinem Pi ein Buffalo NAS hängen den ich via Adv. WOL Addon mit einem Callback starte, wie hier beschrieben.
    Danach schickt das Addon alle 30 sek packeges um das NAS "wach" zu halten.
    Da ich aber den PI nicht ausschalte oder derengleichen habe ich keine möglickeit das NAS wieder zum "schlafen" zu bringen.

    Jetzt meine Frage... Wie stelle ich es an, das NAS wieder zum "schlafen" zu bringen? Besteht die Möglichkeit das Adv. WOL Addon iwie zu stoppen mit nem befehl den ich in die Favorites schreibe. Wie zb.

    Code
    <favourite name="Sleep-NAS">StopScript(&quot;script.advanced.wol&quot;)</favourite>

    Vllt hat ja selbst einer solch eine Konstellation oder kann mir da weiter helfen.

    Gruesse

  • habe das problem gelöst.

    also wer ein buffalo linkstation (ls-wxl) sein eigen nennt und es ueber kodi steuern moechte,
    bzw bei nicht benutzen des nas diesen automatisch in den sleep faehrt, kann sich ja hier melden und ich schreibe dazu ein kleines tutorial.

  • Hi ide10,

    Habe das gleiche Problem. Buffalo nas mit adv. Wake on lan starten und alle 120 Sekunden Paket schicken. Bekomme nas aber nicht mehr in standby auch nicht wenn ich das automatische schicken der Pakete abwähle.

    Wie hast du dies gelöst?

  • Wie schon oben erwähnt kommt hier ein kleines Tutorial.
    In diesem geht es darum, eine Buffalo Linkstation (ls-wxl) welche sich im AUTO Modus befindet, bei Bedarf aufzuwecken und bei Nichtnutzung wieder in den Standby zu schicken.
    Die Linkstation hängt in meinem Fall an einem RPI3 mit LE 006 Beta.

    Aufwecken der LS:
    Hier gibt es verschiedene Methoden.
    Dies kann automatisch erfolgen wie HIER beschrieben, oder wie in meinem Fall, manuell.

    - manuelles WakeUp der LS:

    Dazu benötigen wir das Programm Cyberduck um via ssh auf den RPI zugreifen zu können. Später für die die Linkstation.
    Das Addon Advanced Wake On Lan wird ebenfalls benötigt.
    - In Basic Settings MAC und IP der LS eintragen.
    - alle weiteren Einstellungen belassen bis auf Advanced Settings beide Regler deaktivieren (wichtig).

    In Cyberduck erstellen wir nun eine neue Verbindung zum PI.
    - Verbindungstyp SFTP (SSH Verbindung)
    - IP des PI´s
    - USER (root)
    - PASS (euer root-pass)

    Sind wir verbunden navigieren wir zu /storage (oben unter Darstellung, Versteckte Dateien anzeigen aktivieren, nicht vergessen.
    Dann weiter zu /storage/.kodi/userdata.
    Hier bearbeiten wir die Datei favourites.xml, oder Download -> bearbeiten (z.B. mit Notepad ++) -> Upload.
    Und zwar fügen wir der Datei

    Code
    <favourite name="WOL-NAS">RunScript("script.advanced.wol",True)</favourite>

    aber innerhalb der übergeordneten <favourites> </favourites> hinzu.

    Anschließend PI neustarten. Nun sollte unter den Favouriten ein Button erschienen sein mit dem Label "WOL-NAS".
    Befindet sich nun die LS im Standby und im AUTO-Modus sollte sie beim klicken auf "WOL-NAS" schon einmal wach werden und wir haben den Teil der Einstellungen am PI beendet.

    - Einstellungen an der Linkstation:


    Hierbei wird es ein bisschen kniffliger.

    Und zwar verschaffen wir uns erst einmal root access auf die LS. Dazu verwenden wir das Tool ACP Commander GUI und folgen dazu dieser Anleitung
    Sollte alles funktioniert haben haben wir nun ssh und root für die LS.

    Wir erstellen in Cyberduck nun eine Verbindung mit der LS wie wir es mit dem PI gemacht haben.

    Sind wir mit der LS verbunden gehen wir auf /etc/cron/crontabs
    - hier bearbeiten wir die Datei root und fügen der Datei einen Cronjob (Ein Cronjob ist eine Automatisierung die in einer angegebenen Zeit Skripte ausführt) hinzu.


    Code
    */3 * * * * /etc/cron/cron.d/nas_sleep.sh

    Mit der Zeile, führen wir alle 3 Minuten das Script nas_sleep.sh aus.


    Anschließend gehen wir in /etc/cron/cron.d

    wir erstellen eine Datei, am besten in Notepad++, mit der Bezeichnung nas_sleep.sh und fügen folgendes ein


    Wir ändern noch in Zeile 14 die IP XXX.XXX.XXX.XXX und tragen hier die IP eures Computers ein mit welcher ihr die Verbindung zur LS erstellt.
    Das Script bewirkt, sollte keine aktive connection mit der LS bestehen, das diese automatisch in den Standby geht. Ist aber ein Gerät z.B. der PI mit der LS verbunden (Audio, Video Stream) wird diese nicht automatisch in den Standby gehen. Der Computer kann wiederum verbunden sein, da wir ihn zu den Ausnahmen hinzugefügt haben. Kann aber nachträglich entfernt werden wenn man in Zeile 14 die IP entfernt und in Zeile 15 den Wert auf 5 ändert.

    Nun schieben wir die Datei in /etc/cron/cron.d

    Anschließend stellen wir eine Verbindung zur LS mit dem Programm Putty her.
    - Einfach IP der LS eintragen und open clicken.

    Anmeden mit root und eurem pass.

    Dann gebt ihr:

    cd /etc/cron/cron.d


    chmod +x nas_sleep.sh

    ls


    ein. Nun sollten einige scripte aufgeführt werden. Darunter auch die Datei nas_sleep.sh. Diese sollte nun grün eingefärbt sein.
    Jetzt geben wir

    sh nas_sleep.sh

    ein. Sollte nichts passieren, bzw kein Fehler auftreten ist alles gut soweit.
    Sollte ein Fehler auftauchen dann nochmals

    dos2unix nas_sleep.sh

    sh nas_sleep.sh

    ein. Nun sollte der Fehler behoben sein.

    Jetzt noch

    shutdown -h now

    eingeben und die LS bootet neu und alles sollte funtionieren.

    Um zu testen ob alles funktioniert hat lassen wir die LS booten und im AUTO Modus wieder einschlafen. Jetzt wecken wir die LS über den in den Favouriten hinzugefügten Button auf, warten bis die LS aus dem Standby gekommen ist und starten mit dem Streamen (Audio, Video, etc).
    Die LS sollte solange ihr nun Streamt nicht mehr automatisch in den Standby gehen. Solltet ihr mit dem Streamen aufhören, geht die LS nach einem Augenblick wieder selbstständig in den Standby.


    Ich hoffe ich konnte Euch mit dem Tutorial ein bisschen helfen und freue mich auf Euer Feedback.

    Grüße ide10

  • @ide10:

    So finde mal Zeit mich damit zu beschäftigen.

    Mein Problem ist, das mit Addon Advanced Wake On Lan es zwar funktioniert den Buffalo NAS aus dem Standby zu holen, der NAS bleibt aber permanent an.

    Durch die genannten Änderungen könnte ich mit Addon Advanced Wake On Lan die Liinkstantion manuell wecken und diese bleibt automatisch so lange an wie eine aktive Verbindung besteht und geht dann selbstständig in den Standby zurück?

    Auch wenn ich z.B. einen Film Abspiele vom NAS, der 5 Minuten pausiert?
    Oder muss ich dann wieder manuell starten?

    Im Skript scheint das die Abfrage zu sein, ob ein Client verbunden ist, deckt das alles ab?

  • hey @jamhacker

    genau so wie du es aufgefuehrt hast funktioniert es.

    manuell aufwecken und solange aktive verbindung besteht, video im pausenmodus gehört ebenso dazu, bleibt das nas an. nach stoppen des videos geht das nas, je nach einstellung, wieder in den standby.

  • @jamhacker

    wie meinst du das mit:

    Wake on Lan funktioniert sowas.

    Das NAS finde ich aber nicht über das Tool ACP. Ich habe die neuste Firmware drauf ( 1.71 ).
    GIng das bei DIr? Mit welcher Firmware? Default Port ist richtig oder was muss da rein?

    bei mir ging das ohne probleme. hatte auch die 1.71 drauf. default port einfach stehen lassen. gehe einfach nach der verlinkten anleitung

    das nas sollte am besten im on mode sein. sprich dauerhaft on!

  • sorry sollte heißen "Wake on Lan funktioniert soweit."

    Ja bin im On Mode. Habe keine IP auswählbar in dem Tool. Obwohl ich die IP anpingen kann.

    Habe eine LS-WXL Linkstation. evtl. wird die nicht unterstützt.

    Bei mir kommt immer Communcation timeout. Kann ja keine IP auswählen :(

    Firewall aus, Anwendung mit Admin rechten gestartet, kein Erfolg.

    Auf Anhieb hab ich beim googeln auch keine Lösung gefunden.

  • Mit einem anderen Rechner hat es funktioniert den Root Zugriff zu erhalten. Keine Ahnung wieso.

    Einen Punkt zu Deiner Erklärung:

    Bei Cyberduck muss man bei Pfad "ls" eintragen und nicht nur IP, Benutzernamen und Passwort, ansonsten sieht man nix. Kommt man schnell drauf aber wollte es nur nochmal erwähnen.

    Die IP die ich indem Skript eintrage, ist das jetzt nun die IP, mit der ich den NAS wach halte also in meinem Fall der Raspberry oder ist das eine zusätzliche IP für einen normalen PC, wodurch der NAS permanent aktiv bleibt solange die IP im Netzwerk vorhanden ist?

    Die nas_sleep.sh ist bei mir grün, aber ich erhalte in beiden oben beschriebenen Fällen einen Fehler bei dem Kommando "sh nas_sleep.sh". Datei oder Pfad nicht gefunden, obwohl die Datei im richtigen Verzeichnis liegt.

    Hab die IP von meinem Rechner, sowie die IP des Raspberry probiert. Der NAS geht aber nach genau 5 Minuten in Standby und der Film stoppt.

  • Mit einem anderen Rechner hat es funktioniert den Root Zugriff zu erhalten. Keine Ahnung wieso.

    manchmal ist das so.. iwelche einstellungen firewall. windows vers. etc. aber laeuft ja.. gut..


    Bei Cyberduck muss man bei Pfad "ls" eintragen und nicht nur IP, Benutzernamen und Passwort, ansonsten sieht man nix. Kommt man schnell drauf aber wollte es nur nochmal erwähnen.

    kann man natuerlich mit ls machen. ich machs spaeter nach verbindung in cyberduck. rechts neben den zwei pfeilen in der laenglichen zeile kannst du ordner zurueck gehen.. aber laeuft ja.. gut ;)


    Die IP die ich indem Skript eintrage, ist das jetzt nun die IP, mit der ich den NAS wach halte also in meinem Fall der Raspberry oder ist das eine zusätzliche IP für einen normalen PC, wodurch der NAS permanent aktiv bleibt solange die IP im Netzwerk vorhanden ist?

    die ip die du zusaetzlich in das script eintraegst ist optional. es bedeutet das diese ip als ausnahme gesehen wird. bzw. diese ip wird ignoriert. bei verbindung dieser ip mit dem nas sollte das nas auch in den standby gehen. (in meinem fall mein laptop mit dem ich die funktionalitaet und ausfuehrung des scriptes ueberwacht habe) bzw zum [definition=12,4]debugging[/definition]. zum [definition=12,4]debugging[/definition] kommen wir evt spaeter wenn es weiterhin probleme geben sollte.


    Die nas_sleep.sh ist bei mir grün, aber ich erhalte in beiden oben beschriebenen Fällen einen Fehler bei dem Kommando "sh nas_sleep.sh". Datei oder Pfad nicht gefunden, obwohl die Datei im richtigen Verzeichnis liegt.

    befindest du dich auch in:

    /etc/cron/cron.d

    wenn du

    sh nas_sleep.sh

    ausfuehrst?


    chmod +x nas_sleep.sh

    hast du auch ausgefuehrt?

    das script muss ohne fehler ausgefuehrt werden bevor du ueberhaupt iwie weitermachen kannst.

    um zu ueberpruefen ob das script richtig ausgefuehrt wird, oder wurde, sollte sich im verzeichnis /var/[definition='1','0']log[/definition] die datei custom_sleep befinden

  • Alles so eingegeben, wie Du es beschrieben hast:

    ja, in dem Order liegt eine custom_sleep. Folgender Inhalt:

    Code
    Fri Dec 23 17:52:39 CET 2016 : wait-after-connection
    Fri Dec 23 17:52:39 CET 2016 : stay awake requested
    Fri Dec 23 17:53:35 CET 2016 : wait-after-connection
    Fri Dec 23 17:53:35 CET 2016 : stay awake requested
    Sat Dec 24 10:03:31 CET 2016 : 192.168.0.13 connected
    Sat Dec 24 10:03:31 CET 2016 : stay awake requested
    Sat Dec 24 10:03:53 CET 2016 : 114.160.56.3 connected
    Sat Dec 24 10:03:54 CET 2016 : stay awake requested

    bedeutet das, dass nas_sleep.sh ausgeführt wurde?

    Nicht das mein Eintrag in /etc/cron/crontabs/root nicht richtig ist. Hab Deinen Ausdruck einfach hinten rein kopiert hinter den letzten Eintrag in der Root Datei.

  • pwrmgr: sendto failed: No such file or directory

    das sieht mir danach aus als waere das nas nicht im auto mode.
    also das nas sollte im automode sein wenn es final laufen soll.

    wenn sich das nas im automode befindet bitte mal

    ping localhost

    in der console eingeben und schauen ob der localhost angepingt werden kann.

    also das script wird schonmal ausgefuehrt nur eben nicht der sendto befehl.

    192.168.0.13 -> ist das die ip deines mit dem nas verbundenen pc oder kodi?

    wenn pc, dann ist das die ip die zu den ausnahmen hinzugefuegt werden muss.

    114.160.56.3 -> was ist das fuer eine ip? (gerade geschaut. ist eine von buffalo) lassen wir erst mal aussen vor. habe ich auch nicht in den ausnahmen. wenn alles am laufen ist, musst mal die [definition='1','0']log[/definition] datei checken, ob diese ip oeffter connected ist. denn diese ip wuerde das nas am ins standby gehen hindern.

    das mit dem cronjob ist schon richtig.. einfach copy paste hinter den letzten cronjob in die datei packen.

  • Ja, die . 13 ist mein PC, den ich als Ausnahme hinzugefügt habe. Er nas ist im. Auto Modus sonst würde der nas ja nicht nach 5 Minuten in den standby gehen.

    Ping localhost von welchem System in die console? Vom PC einfach aus? Ich probiere es einfach mal.

  • bin mit Putty vom PC auf den NAS gegangen und haben dann ping localhost ausgeführt.

    Er pingt die 127.0.01 an, die er auch findet.

    Nun ist die Frage, ob das richtig ist und ob evtl in Zeile 14 mehr ersetzt werden muss, als nur die letzte IP?

    EXCLUDE_IPADDR=(${OWN_IPADDR} 192.168.0.255 0.0.0.0 127.0.0.1 239.255.255.250 XXX.XXX.XXX.XXX)

  • wenn du localhost findest und anpingen kannst sollte auch

    pwrmgr -c localhost act

    aus der console aus gehen.


    Nun ist die Frage, ob das richtig ist und ob evtl in Zeile 14 mehr ersetzt werden muss, als nur die letzte IP?

    EXCLUDE_IPADDR=(${OWN_IPADDR} 192.168.0.255 0.0.0.0 127.0.0.1 239.255.255.250 XXX.XXX.XXX.XXX)


    XXX.XXX.XXX.XXX hast du mit deiner ip ersetzt mit der du dich ueber putty, cyberduck, etc verbindest..? wenn ja passt das so! das eintragen ist nur noetig um das "[definition=12,4]debugging[/definition]" durchzufuehren ohne das du mit dem verbundenen pc das nas stoerst. sonst muesstest du dich immer komplett abmelden ueberall und koenntest die [definition='1','0']log[/definition] dateien nicht beobachten.

    also erst mal den obrigen befehl testen und dann leerst du mal die [definition='1','0']log[/definition] datei (custom_sleep) und gehst ganz normal vor wie wenn du einen film schauen moechtest. also nas im auto mode starten durch wake up aus kodi und schaust einen film. wenn er weiter laeuft alles bestens. sollte das nas wieder in den standby gehen, zeigst du mir mal bitte die [definition='1','0']log[/definition] aufzeichnungen aus custom_sleep von wakeup nass bis sleep.

  • Der genannte Befehl funktioniert auch nicht.

    Im Anhang die Eingabe in Putty, sowie die Ergänzung in der root Datei.

    Weiterhin wie das Verzeichnis in cron.d aussieht bei mir.

    Bin Deine Anleitung zweimal nochmal durchgegangen. Ich erhalte immer den Fehler das Datei oder Ordner nicht gefunden wurde.

    In diesem Zustand wird gerade nichts in die custom_sleep eingetragen, wenn ich manuell starte, Film Starte und der NAS nach 5 Minuten wieder in Standby geht.

    Im Anhang ebenfalls, was bei einem ping localhost ausgegeben wird.

    Also ich sehe keinen Fehler. Die ganzen Befehle sagen mir aber auch nichts.

  • Hallo zusammen,

    gibt es hierzu noch weitere Möglichkeiten?
    Besitze immer noch buffalo ls-wxl firmware 1.741 und wirklich lief es ( wie man ließt ) gegen ende nicht ganz rund.

    Für andere NAS gibt es ja add ons wenn ich es richtig verstanden habe.

    Gibt es evtl. ein allgemeines add on, welches dafür sorgt, dass der NAS wach bleibt? Reicht doch, wenn in ein Verzeichnis auf dem NAS eine Datei geschrieben wird, alle paar Minuten?

    Möchte halt das der NAS händisch gestartet wird und mit Kodi wieder in Standby geht oder halt händisch in standby schicken.

    Gruß,
    Jamhacker

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!