1. Overview
NAS Herder is a small Windows app for Netgear ReadyNAS series of NAS. It lets user to start, monitor and shutdown ReadyNAS system easily from notification area (task tray). It also can make power on/off of the system synchronized with client PC.
2. Requirements
- Windows 8 or newer
- Windows 7 and Windows XP (required to install .NET Framework 4.0)
3. Install
No installation is required.
The folder where executable file (NasHerder.exe) exists will be used as a working folder to store settings file and log files (if enabled). If writing files is not allowed in that folder, like folders in "Program Files", an alternate folder will be created in the following path.
[system drive]\Users\[user name]\AppData\Local\NasHerder
4. Getting Started
- Start NasHerder.exe. If initial run, [Scan] Dialog will pop up. Press [Scan ReadyNAS in LAN] and wait a few seconds until ReadyNAS systems currently online in LAN will appear. Select one to be monitored by this app and press [OK].
Note: In most cases, you need to set Windows Firewall or other firewall software to allow this app to use network.
- Then [Settings] Dialog will pop up. Make settings as you wish and press [OK].
- This app will automatically check assigned ReadyNAS system at regular intervals. The status is indicated in color (Unknown, Offline, Online) and reflected to notification area (task tray) icon. Most functions and information is accessible at a menu opened by right clicking the icon. So, usually you don't need to make the window stayed on the desktop.
- To add another ReadyNAS system for monitoring, copy NasHerder.exe to another folder and do the same. Multiple instances of this app work fine as long as working folders are separated.
5. Functions
Start NAS
This function tries to start assigned ReadyNAS system by sending a magic packet for Wake-On-LAN (WOL). It can be done automatically when PC boots up or resumes.
Note: To use WOL, the system has to be x86 (or arm) based and WOL is enabled in FrontView. In some models that have multiple LAN ports, WOL is supported only one of the ports.
Ping NAS
This function checks if assigned ReadyNAS system is online. It is automatic but you can do it manually by pressing [Ping Now]. You can select from following 2 methods:
- SSL : It uses internal client to communicate with the system through SSL. Preferable for OS6 models.
- RAIDar Protocol : It emulates RAIDar Protocol to obtain detailed information from the system. Preferable for the older models.
Note: RAIDar Protocol is not official term. It is a communication way between RAIDar, official monitoring tool by Netgear, and ReadyNAS systems. RAIDar periodically sends UDP broadcast having 28 bytes request and destined to port 22081. On receiving that request, each system sends back UDP broadcast containing various information on itself to be consumed by RAIDar.
The result will be shown in [Status] box in the following manner.
- Unknown (gray) : Not checked yet. Or PC is not connected to network.
- Offline (black) : Tried to access the system but received no response.
- Online (light blue) : Received a response from the system. Depending on available information, this can be following 2 cases:
- Online All OK (light blue) : All devices are in status "ok" or "not_present".
- Online Warning (orange) : Any of devices is in status other than above. In such case, a box will appear and show detailed information on that device.
In addition, some featured items will appear underneath depending on models and configuration.
Note: Your need to select SSL for OS6 models and RAIDar Protocol for the older models.
- [CPU] : CPU temperature. The back color represents value. The default color scheme is shown below.
Low
(10C/50F)MiddleThreshold
(changeable) - [System] : System temperature.
- [Disk#] : Disk temperature. # is ordinal number when multiple disks are installed. If the disk is in spin-down mode, the back color turns to light green by default.
Note: Detecting spin-down mode depends on language setting of the system. In some languages, it may not work because the response does not include sign of spin-down mode.
- [Fan#] : Fan RPM. # is ordinal number when multiple fans exist in the chassis. The bar chart indicates rate of RPM using [Max fan RPM] in [Notification] tab as the denominator.
- [Volume#] : Volume usage rate. # is ordinal number when multiple volumes are created. The horizontal bar represents rate. Its normal color is Turquois. If the rate exceeds 90 percent, it will turn to red. This item can be switched to the remaining free space by [Volume by amount] in [Notification] tab.
- [UPS#] : UPS charge rate. # is ordinal number when multiple UPS units are connected. The horizontal bar represents rate.
Shutdown NAS
This function tries to shutdown assigned ReadyNAS system by sending a power off command through SSL. It can be done automatically when client PC on which this app is running powers off or suspends so as to synchronize power off of the system with that PC.
Note: If you use this function immediately after the system starts, it may not work because the system is still in starting process and so not ready for commands.
Reboot NAS
This function tries to reboot assigned ReadyNAS system by sending reboot command through SSL. To use this function, you need to enable it in [Synchro] tab.
Scan
This function shows all ReadyNAS systems in LAN using RAIDar Protocol. You can open [Scan] Dialog from [Tool]. This is mainly for settings.
Chart
This function shows line charts of temperature data during given period utilizing log files on NAS status. You can open [Chart] Dialog from [Tool]. The shown temperatures are the highest ones on an hourly basis.
Note: When a disk temperature indicates 0C/32F or -1C/30F, it actually means that the disk is in spin-down mode in some models.
This Dialog is freely expandable. You can change the length of period (ending on current date) by setting [Period]. The maximum period is 30 days.
6. Tweet
Utilizing Twitter, you can monitor ReadyNAS system remotely without hassle settings of network (as long as client PC on which this app is running is on). This app can tweet the system's latest status periodically and perform some commands sent by direct message (DM).
For this function, this app uses Twitterizer libraries to communicate with Twitter server.
Set up
To set up Tweet function, follow the steps below.
- Prepare a Twitter account which this app will use. It is recommended to create a new account rather than use your ordinary account because this app will receive commands by DM from commanding account (typically your ordinary account). It is not the case, however, if you only want this app tweet the system's status using your ordinary account.
- Follow your ordinary account and the account for this app each other.
- Development of original Twitterizer ended and it no longer works with current Twitter API (API 1.1). Instead, the forked version "Twitterizer-Remaked For API 1.1" works fine with API 1.1. So get it and copy "Twitterizer2.dll" and "Newtonsoft.Json.dll" to this app's working folder.
- Make sure your PC has .NET Framework 4.0 Extended (Full) installed.
Note: It is likely that your PC has only .NET Framework 4.0 Client Profile, a subset of Extended (Full) version, unless you installed it. If so, you need to get it from Microsoft.
- If above conditions are met, [Proceed to authorization] in [Tweet] tab will be enabled. Press it to open [Authorization] Dialog. Then press [Open authorization page] and wait until your browser opens Twitter's authorization page.
- In that page, authorize "NAS Herder" to use the account for this app prepared above. After that, the page will show a PIN code. So type it in [Authorization] Dialog and press [OK].
Note: The access token which is used by this app to access Twitter server will be encrypted with a key managed by Windows OS. So its data saved in settings file is unusable on other PC.
- If everything done well, returning to [Settings] Dialog, items below [Proceed to authorization] will become usable. Make settings as you wish. After pressing [OK], Tweet function will be enabled.
To stop Tweet function, close this app and delete Twitterizer libraries. You may revoke this app in Twitter's settings page (Only revoking will not stop this app from trying to access Twitter server).
Command
You can send a command by DM from commanding account (your ordinary account) to the account for this app. The following commands are available:
- [Status] : Tweet the system's latest status regardless of regular interval. No DM will be returned.
- [Start] : Do [Start NAS] when the system is offline. A DM on whether the command is accepted will be returned. After completion of the command, the system's status will be tweeted.
- [Shutdown] : Do [Shutdown NAS] when the system is online. Other things are same as [Start].
The command format is:
_COMMAND_NAME_
- _ is white space. One before COMMAND can be the beginning of DM and one after NAME can be the end of DM.
- NAME is [Name] of the system set out in [NAS] tab. It should not include the same word as command. If it's blank, Host Name or IP Address will be used according to the preference.
- The location inside DM will not matter.
- Not case sensitive.
For example, if command is [Status] and name of the system is "My Precious", it will be:
" Status My Precious "
If you want to cancel a command in DM sent already, send another DM immediately. Since this app evaluates only the latest DM from commanding account at the time of checking, if you are fast and lucky enough, it will prevent the older DM from being read.
7. Settings
Details of items in [Settings] Dialog.
[NAS] Tab
- [Name] : Optional. Put name of ReadyNAS system you wish or just leave it blank.
- [Host Name], [IP Address] : Selection on which is used for identifying assigned ReadyNAS system. At least one must be filled.
- If you're using DHCP to configure the system's IP Address, Host Name will be better because the IP Address may vary time to time.
- To use [Open FrontView] function, valid IP Address must be provided.
- [MAC Address] : Required for [Start NAS] because a magic packet contains MAC Address.
- [Admin Password] : Required for accessing the system through SSL for [Ping NAS] and [Shutdown NAS].
Note: Admin Password is encrypted with a key managed by Windows OS. So its data saved in settings file is unusable on other PC.
- [RAIDar path] : Optional. Path of RAIDar.exe for [Call RAIDar] function.
[Notification] Tab
- [Notify when temperature exceeds threshold] : Whether to notify when any temperature of featured items exceeds its designated threshold.
- [Threshold] : Threshold of each temperature. The range is from 0C/32F to 100C/212F. This value will be reflected to each color scheme of temperature.
- [CPU] : CPU temperature.
- [System] : Temperature of somewhere in the chassis.
- [Disk] : Temperature data retrieved from the disk. Default is 45C/113F. It is because, according to Google's study (Failure Trends in a Large Disk Drive Population), disk failure rate hikes beyond 45C.
- [Celsius], [Fahrenheit] : Selection of temperature scale.
- [Color] : Base colors for color gradient scheme of back color. You can customize them and so make your own scheme.
- [Threshold] : Color at the highest (this temperature can be changed at [Threshold] item above).
- [Middle] : Color at the middle.
- [Low] : Color at the lowest (10C/50F).
- [Sleeping] : Color for sleeping (disk spin-down).
- [Notify by] : Selection of the method to notify when temperature exceeds threshold or when any of status turns to be other than "ok" or "not_present". The interval is 30 minutes.
- [Balloon] : Notify by balloon message.
- [Toast] : Notify by toast notification. This function is only for Windows 8 or newer and NasHerderToast.exe must be placed in the same folder as NasHerder.exe. It will create a shortcut in Start menu and the shortcut will appear in Start screen.
- [None] : Do not nofity.
- [Max fan RPM] : The maximum value of fan RPM which is used as the denominator of bar chart. It will be automatically pushed up when the fan RPM is going to exceed it.
- [Volume by amount] : A remaining free space in the volume will be shown instead of usage rate and bar chart.
[Synchro] Tab
- [Register NAS Herder in Windows Startup] : If checked, a shortcut to current executable file of this app will be created in Windows Startup. If unchecked after once a shortcut is created, the shortcut will be deleted. This will not harm shortcuts to the other executable files of this app.
- [Boot up / Power off]
- [Start NAS when PC boots up] : [Start NAS] will be done when this app starts from Windows Startup. Only enabled when this app is registered in Windows Startup and valid MAC Address is provided in [NAS] tab.
- [Shutdown NAS when PC powers off] : [Shutdown NAS] will be done when PC is going to power off. Only enabled when Admin Password is provided in [NAS] tab.
- [Resume / Suspend]
- [Start NAS when PC resumes] : [Start NAS] will be done when PC resumes. [Waiting time] is period of time that this app will wait before proceeding to [Start NAS] in order to avoid mistakenly catching transition from suspend to hibernation. If you notice [Start NAS] is done during transition, make it longer.
- [Shutdown NAS when PC suspends] : [Shutdown NAS] will be done when PC is going to suspend or hibernate.
- [Enable Reboot NAS] : Whether to enable [Reboot NAS] to make use of it.
[Other] Tab
- [Number of ReadyNAS in LAN] : The maximum number of ReadyNAS systems that this app should expect responses when using RAIDar Protocol. Setting the exact number will shorten time for RAIDar Protocol by cutting unnecessary waiting time. It can be set also at [Scan] Dialog.
Note: Setting this number less than the exact number may cause this app to lose assigned ReadyNAS system because response order of multiple systems may change time to time.
- [Ping NAS]
- [Interval] : Interval length of [Ping NAS]
- [Timeout] : Timeout length of [Ping NAS] and [Scan]. The value for RAIDar Protocol and that for SSL are differentiated. Appropriate value may vary depending on network.
- [Use SSL rather than RAIDar Protocol] : For OS6 models, SSL is default method to obtain detailed information. For the older models, SSL is an alternative in case RAIDar Protocol does not work well.
- [Share responses with other instance] : Whether to leave responses of RAIDar Protocol to let other instances reuse it when possible and vice-versa. It will prevent multiple instances from increasing the total number of RAIDar Protocol communications so as to save network traffic.
- [Change index type] : In case featured items of CPU, System and Auxil are not correctly handled, you can change the sequence of types assigned to respective index numbers. The default type is System. The change made here will be saved in NasModel.csv in csv format and you can directly edit it.
- [Use SSL regularly to fasten Shutdown NAS] : Sometimes [Shutdown NAS] takes very long time like 10 seconds or more. Using SSL periodically (actually, doing the same as [Ping NAS] without reflecting the response) will keep the system ready for power off command so as to fasten [Shutdown NAS].
- [Record log on]
- [NAS status] : Log files on results of [Ping NAS] in csv format. These files will be used by [Chart] and will be handy if you check the system's status over certain period with spreadsheet.
- [Action] : Log files on all actions by this app.
- [Delete log after] specified [days] : Whether to delete log files that specified days have passed so as to keep working folder compact.
[Tweet] Tab
[Proceed to authorization] will be enabled if Twitterizer libraries exist in working folder and .NET Framework 4.0 Extended (Full) is installed. In addition, items below [Proceed to authorization] will not become usable until authorization is done.
- [Proceed to authorization] : For authorizing this app to use a Twitter account. See Set up for the usage.
- [Tweet NAS status every] specified [hours] : Whether to tweet the system's status at set intervals. If it is longer than 140 characters, it will be split into multiple tweets.
- [Tweet only if any notification comes up] : Whether to tweet only if any notification on temperature or warning comes up. Naturally, if you notice any tweet, it will mean something wrong happens to the system.
- [Command by DM]
- [Commanding Account] : Screen name of unique account from which this app will accept commands sent by DM. Leaving this box blank will suppress checking DM for commands.
- [Send test DM] : You can send test DM to commanding account to check if Tweet function is properly set.
- [Checking interval] : Interval length of checking DM for commands. It cannot be shorter than [Interval] of [Ping NAS] in [Other] tab.
- [Accept] : Acceptable commands. [Status] command will be always accepted.
- [Start NAS] : Accept [Start] command.
- [Shutdown NAS] : Accept [Shutdown] command.
- [Commanding Account] : Screen name of unique account from which this app will accept commands sent by DM. Leaving this box blank will suppress checking DM for commands.
8. Other
This app is tested on:
- Windows 8.1 64bit on ThinkPad X230
- Windows 7 SP1 64bit on ThinkPad X61s
- Windows XP SP3 on ThinkPad X60s
with:
- ReadyNAS 312 (ReadyNAS OS 6.4.1)
- ReadyNAS Ultra 2 (RAIDiator 4.2.28)
- ReadyNAS Duo (RAIDiator 4.1.14)
This app is an open source software. See License.txt for details.
I thank various people who gave me idea to develop this software, especially by showing one can utilize RAIDar Protocol to get information directly from ReadyNAS system. Also I thank author of original Twitterizer and author of the forked version for very useful libraries.
"ReadyNAS" is registered trademark of Netgear Inc.