Hauptmenü

NAS_Control

Begonnen von Dietmar63, 16 Januar 2013, 22:51:50

Vorheriges Thema - Nächstes Thema

Dietmar63

ich besitze ein NAS der Firma Buffalo und bin kein Anhänger davon ein NAS rund um die Uhr laufen zu lassen.

Die NAS von Buffalo haben die Funktion, sie per WOL zu wecken bzw. dann durch regelmäßiges Senden weiterer WOL-Pakete wach halten zu können. Diese Funktion habe ich bisher immer per PC(WLAN) oder Telefon(android) an das NAS gesandt. Manchmal ist diese Funkverbindung instabil, so dass das NAS herunterfährt und die Verbindung zusammenbricht - blöd wenn man Musik hört oder Videos schaut.

Nachdem ich in den FHEM-Sourcen auf das Modul 98_WOL gestossen bin, habe ich auf der Basis dieses Moduls ein weiteres Modul gebaut, dass ich 98_NAS_Control genannt habe. Es schickt dem NAS in regelmäßigen Abständen WOL-Pakete, so dass ich jetzt vom Sofa aus über die Weboberfläche das NAS einschalte und bequem auf die dort gespeicherten Videos zugreife.


Die Definition in fhem.cfg sieht so aus:


define <name>                 NAS_Control <MAC_ADRESS>     <IP>           <repeat> <mode>

define NAS                    NAS_Control 00:24:A5:A6:10:E0 192.168.2.196 180      UDP


Der Vorteil für mich ist, dass FHEM bei mir auf der Fritzbox läuft und somit zum NAS eine echte LAN-Verbindung besteht.
Bei Interesse kann ich es der Allgemeinheit zur Verfügung stellen.

Dietmar

Wenn das In
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Puschel74

Hallo,

super und danke für das Modul.
Schön langsam kommt ja einiges zusammen hier ;-)

Aber mal was anderes.

Du musst dein NAS "künstlich" wach halten damit es nicht runter fährt während du Musik hörst oder ein Video schaust?
Ich wage mal mein WD WorldBook auch als NAS einzuordnen.
Dieses fährt nach 5 Minuten runter wenn keine Daten angefordert werden und wird durch Datenzugriff
a) wieder geweckt wenn es schläft und
b) bleibt es wach solange Daten angefordert werden.
Wenn ich Musik höre oder ein Video anschaue fährt das NAS niemals runter - wär ja noch schöner.

Die Buffalo kenn ich (noch) nicht aber nachdem wie ich das hier lese wären die für mich unbrauchbar.

Sorry. Ich will hier nichts schlecht machen.
Aber zum Glück hat dieser Umstand wenigstens für ein neues Modul gesorgt.
Hat also auch was gutes das dein NAS runter fährt ;-)

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Dietmar63

Zur Klarstellung:

Das NAS läßt sich in zwei Modi betreiben:

a) NAS läuft rund um die Uhr. Dann schaltet die Platte ab, wenn kein Datenzugriff, schaltet wieder an sobald ein Zugriff erfolt. Das müßte dem entsprechen was du kennst.

b) es gibt aber auch den Modus es per WOL einzuschalten und dann durch weitere WOL-Pakete wach zu halten. Das ist die Variante, die ich in der Regel nutze.

Dietmar
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Tobias

Hi,
anstatt ein neues Modul zu bauen, hätte ich die Variante bevorzugt, das WOL Modul entsprechend zu erweitern.
Es wird sonst mit der Zeit zu unübersichtlich wenn mehrere Module sich nur in Nouancen unterscheiden :(

aber Immerhin lernt man damit Perl :)
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Fennek

Hallo Dietmar,

melde schon Mal Interesse an Deinem Modul an.
Danke dafür :-)

Ich habe selbst zwei leicht modifizierte Buffalo's am laufen und es
stört mich schon eine ganze Weile das man sie nur mit den NAS-Navigator
aus ihrem Tiefschlaf erwecken kann.
Aus diesem Grund laufen sie Zeitgesteuert im Dauerbetieb weil sie auch, bedingt
durch Raid Ihre Platten nicht abschalten.  
FHEM Cubietruck mit 50GB SSD
HMLAN: TC,VD,DN,DIM,SW,SEC,TH
HUEBridge, HUEDevice:LCT,LLC
Sonos: 5xPL1,2xPB,2xSUB
iBeacon's

maeb3

Hallo Dietmar,

habe ebenfalls Interesse an dem Modul, da ich die gleiche Situation habe (Buffalo Linkstation Mini). Insbesondere, um das NAS aufzuwecken (z.B. wenn der TV angeht), ohne dass mein PC hochfährt.  

Grüße,
 Matthias

Markus

Hallo Dietmar sei bitte nicht Böse, aber ich bin auch der selben Meinung wie Tobias.
Lieber etwas weniger Module als viele fast gleiche und keiner kennt sich mehr aus gerade als Anfänger kann man dann leicht denn Überblick verlieren.

vielleicht liest ja Boris mit und baut dein Modul in sein WOL ein.

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Dietmar63

ich bin niemandmn böse.

Es ist schon richtig, dass mit der Zeit das Ganze unübersichtlich wird.
Die bessere Lösung ist es allemal, beide Funktionen mit einem Modul zu erledigen.

Das Modul ist durch mich aber doch um einiges verändert worden.

a) 98_WOl beinhaltet zwei Möglichkeiten einen Rechner zu wecken. Per ether-wake(busybox) und per UDP-Paket mittels IO::Socket::INET

b) mit ether-wake läßt sich mein NAS nicht wecken(Ursache unbekannt). Die UDP-Variante funktioniert leider nur mit der Änderung, dass die echte IP an wol_by_udp() weitergegeben wird. In 98_WOL wird immer die Broardcast-Adresse(255.255.255.255) angesprochen.

c) in 98_WOL gibt es eine Funktion, die mittels "ping" den Status an/aus des fremden Rechners/NAS erfragt. Dies ist bei meinem Buffalo-NAS nicht sinnvoll, weil das NAS auf den "ping" immer eine Antwort sendet.

d) ich habe zwei zusätzliche Parameter <repeat> <mode> eingeführt, weil ich den Abstand zwischen zwei WOL-Paketen angeben möchte bzw. weil ich die Weckmethode auswählbar machen wollte. In 98_WOL wurden einfach beide Varianten ausgeführt.

e) mein Modul ist also leider nicht einfach abwärtskompatibel - das hatte ich anfangs auch nicht vor. Es funktioniert aber jetzt so gut, dass ich die Gemeinde davon profitieren lassen möchte. Ich habe von Euch auch so viel bekommen!

Ich werde Boris kontaktieren.

Dietmar
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dr. Boris Neubert

Zitat von: orti-otto schrieb am Do, 17 Januar 2013 18:18Die bessere Lösung ist es allemal, beide Funktionen mit einem Modul zu erledigen.

Hallo,

eins vorneweg: das Modul ist nicht von mir. Ich hatte es mir nur neulich mal angesehen, kann auch was dazu sagen.

Ich denke, daß es wie folgt gemacht werden sollte:
1. Zwei weitere optionale Parameter am define:
       mode (entweder etherwake oder magicpacket); wenn mode fehlt, werden beide Verfahren ausgeführt
       repeat (gibt an, alle wieviele Sekunden ein Weckruf gemäß mode geschickt wird; falls repeat fehlt, gibt es keine Wiederholung)
   Damit ist define abwärtskompatibel.
2. Neben set ... on, was einmal oder wiederholt die Weckrufe sendet, braucht man dann logischerweise auch ein set ... off, was aber nur das Senden der Weckrufe beendet.

Weiteres:
3. Die Prüfung in WOL_GetUpdate, ob der Rechner an oder aus ist, sollte nicht über den zurückgegebenen String (100% packet loss) sondern den Return-Code 0 oder 1 des Shell-Befehls erfolgen (die auskommentierte Zeile scheint das zu tun). Das ist portabel.

Ich schaue mir das gerne an, wenn es realisiert ist, und checke es auch ein. Bitte hier posten.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dietmar63

Ok so hätte ich es jetzt auch gemacht! Die Änderungen baue ich morgen ein. Es scheint mir kein großer Aufwand zu sein.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63

Hallo,

ich habe am Sonntag 98_WOL so erweitert, dass es die Funktion des oben beschriebenen NAS_Control zusätzich erfüllt.
Die Doku vervollstängige ich in den nächsten Tagen. Das Modul hänge ich zum Testen an. Über Feedback würde ich mich freuen.

Der Aufruf erfolgt so:

define <name> WOL <MAC_ADRESS> <IP> [<repeat> [<mode>]]

Die beiden zusätzlichen Parameter <repeat> bzw. <mode> stehen für den Abstand zwischen zwei Magic-Paketen bzw. für die Art des Weckrufs. Ich habe eine Fritzbox, mit ihr läßt sich aber offensichtlich mein NAS nicht per ether-wake wecken. Nach einigen Umbauten funktionierte aber die UDP-Methode.

Jetzt kann man jedenfalls mit mode=EW oder UDP zwischen diesen beiden Methoden auswählen.

Mit der Definition eines Geräts wird es  nicht sofort geweckt.
Mit set <wol> on bzw. set <wol> off kann ein- bzw. ausgeschaltet werden.

In Regelmäßigem Abständen wird  leider weiterhin per ping geprüft, ob das Gerät noch wach ist und ensprechende Stati versorgt. Die Idee von Tobias, auf ... system(..) umzuschalten funktionierte nicht. Der Rückgabewert der Funktion system lag immer bei -1.

Dietmar
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

maeb3

Hallo,

habe das WOL Modul bei mir mal getestet.

Wenn ich WOL dann einschalte, vermerkt er es zwar im Logfile, aber das Signal wird nicht wie erwartet zyklisch wiederholt.

2013.01.29 10:28:55 3: WOL set PrivateCloud on
2013.01.29 10:28:55 3: WOL waking  PrivateCloud with MAC 00:24:A5:7D:F6:B5 IP 192.168.10.100
2013.01.29 11:19:28 3: WOL set PrivateCloud off

Das Ein- und Ausschalten habe ich manuell vorgenommen (set .. on / set .. off), aber dazwischen liegt knapp eine Stunde und es kam kein Paket, obwohl ales Repeat 120 eingegeben war (das sind doch Sekunden, oder?)

define PrivateCloud WOL 00:24:A5:7D:F6:B5 192.168.10.100 120 UDP

Irgendeine Idee?

Grüße,
 Matthias

Dietmar63

Das Protokoll müßte so aussehen(reverse):

2013.01.29 20:12:02 3: WOL set NAS off
...
2013.01.29 20:12:02 3: WOL keeping NAS with MAC 00:24:A5:A6:10:E0 IP 192.168.2.196 busy
2013.01.29 20:12:02 3: WOL waking  NAS with MAC 00:24:A5:A6:10:E0 IP 192.168.2.196
2013.01.29 20:12:02 3: WOL set NAS on

habe es so definiert:

define NAS                    WOL 00:24:A5:A6:10:E0 192.168.2.196 240 UDP
attr   NAS                    room Wohnzimmer

Du müßtest die Zeilen mit busy finden - dann erfolgt das regelmäßige Wecken.

Ansonsten ip oder mac falsch.

Welche Hardware nutzt du? Wurde der host schon mal von woanders erfolgreich geweckt?
Prüf mal ob bei dir das Programm Nascontrol.exe (win) funktioniert.
Manchmal werden die Paket wg. firewalls nicht versandt oder bleigen hängen - Protokoll der firewall ansehen.

Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

maeb3

Hallo,

ich habe eine Buffalo Linkstation Mini; und ja, ich habe das System schon öfters per WOL aufgeweckt und wachgehalten.
Auf meinem (Windows) PC läuft z.B. die NASNavigator Software, die ebenfalls die Linkstation per WOL wachhält.
Sobald der PC runterfährt, geht nach spätestens 3 Minuten auch das NAS aus. Beim Starten des PCs wird die Linkstation wieder geweckt.

MAC und IP stimmen beide. Habe es nochmals geprüft. Trotzdem: ich bekomme keine busy-Einträge.
Bricht denn das Modul das Senden der WOL Pakete ab, wenn die MAC und/oder IP nicht erreichbar bzw. falsch wäre?

Macht das Modul einen Unterschied, ob die Station per Ping noch erreichbar ist?
Ich glaube nämlich, dass die Linkstation Mini im Standby/Sleep noch für eine ganze Zeit auf Pings antwortet. Trotzdem braucht man zum Starten der Festplatten (und zum Verhindern des Ausschaltens) die WOL Pakete.

Werde das am Wochenende nochmals detaillierter prüfen.

Wenn ich übrigens mein NAS "set ... on" über fhem anschalten will, zeigt er mir trotzdem als Status "off" an, d.h. er scheint das set on einfach nicht umzusetzen:

Laut Logfile angeschaltet:
2013.01.30 09:10:50 3: WOL set PrivateCloud on
2013.01.30 09:10:50 3: WOL waking  PrivateCloud with MAC 00:24:A5:7D:F6:B5 IP 192.168.10.100

Aber im device Status off:
(http://dl.dropbox.com/u/4212017/30-01-2013%2009-12-17.png)




maeb3

Hallo nochmal,

falscher Alarm, alles zurück. Sorry.
Ich hatte (ohne groß zu überlegen), die MAC und IP Adresse des NAS im define eingetragen, aber es muss natürlich die IP der Fritzbox (und die MAC des NAS) dort rein.

Jetzt funktioniert es.

Sorry für die Verwirrung.
 
 Matthias