Hi all, I'm releasing an application which is designed to refresh idle nodes (devices) in the network. The application monitors the last activity time for a set of devices, and performs a refresh on devices if they have not been used for an extended period of time. This application is specifically designed not to overwhelm the network.
Two key values control the behavior of the application:
Inactivity Idle Hours : The number of hours of inactivity before a node is considered idle. A reasonable value for this is 24 (1 day) or greater. The default value is 25 hours.
Refresh Interval Minutes : The minimum number of minutes between idle node refreshes. Only one node will be refreshed per interval. A reasonable value for this is 5 or greater. The default value is 10 minutes.
The application is designed to take a slow and steady approach to refreshing devices. It will refresh only one device per Refresh Interval, regardless of how many devices are considered idle. The purpose of this is to minimize unnecessary traffic and ensure that networks such as Z-Wave are not overwhelmed.
In addition to a refresh() call, the application also has the ability to refresh the state of a switch by calling on() or off(). See the configuration page for more information. Use this option with care.
There are two components to the Idle Node Refresher:
Sorry to say that there was a bug introduced when I cleaned up variable names prior to publish. The bug would cause the app to sleep for too long in-between node refreshes.
idle-node-refresher.groovy has been updated to version 1.0.1 to address this.
Step two, optional, occurs 60 seconds later, and issues an on() or off() to match whatever the current state of the driver is at that moment.
The actual description text reads:
Refresh Switch : If this option is enabled and the device being refreshed has Switch capability, one minute after calling refresh() on the device we will read the current value of the switch and call on() or off() as appropriate to refresh the current state. The advantage of refreshing switch state is that it will trigger Z-Wave Plus devices to update their route if appropriate. The disadvantage of switch refresh is additional network traffic. Additionally, if the state in the driver is stale due to prior communication issues, it could result in the switch mysteriously turning on or off.
This app will attempt to refresh the node, and optionally operate the switch. If the node has left the mesh, then the refresh/switch operation will fail, but the app does not send an alert to that affect.
There are other community apps that send idle alerts. I have one that I use (Simple Idle Alerts) for time critical devices:
Given that Simple Idle Alerts is one child per device, it's not intended for broad scale monitoring. For broad scale monitoring, here are a couple of apps that I would suggest: