node-red-contrib-vacation-timer 2.2.8
A node-red node that simulates a house being occupied, by turning something on and off in a natural way.
Vacation Timer for node-red
Changes in v2.2.8
Sending subsequent positive payloads would keep reseting the schedule, which caused at least 2 major issues:
Sending too many payloads too quickly would often cause some of the previous schedules to be skipped from being canceled, thus there were multiple on/off commands being sent at different times.
Inadvertently sending a payload through and having the chosen schedule canceled and regenerated was causing some frustration with certain users, as this was not only an unintended oversight on our part, but is definately not what most would assume to be the expected result of the node.
To bring things inline with what we should have done in the first place, we have changed the node to only generate a schedule on a positive payload if the node is currently suspended
, or otherwise inactive. If you wish to manually generate a different schedule than the currently active schedule, you must send a negative payload first, and then you can send a postive payload again. This does not affect the automatic rescheduling of the node when the current schedule completes.
INTRODUCTION
With more and more people getting into Home Automation, node-red is becoming a more integral part of automation systems. But there is one question people tend to overlook in the automation of their home! What do you do when you go on vacation? Obviously you can have an alarm system that alerts you AFTER someone has broken into your house, but what can you do to help prevent the break-in from occurring in the first place?
Well... Simple... don't let them think you ever left!
This is a node that simulates someone being home in order to turn a device on and off at a semi-random, yet seemingly normal schedule. For instance, if you usually go to the Family Room and watch TV after work between 6 and 6:30 in the evening, and you go to bed anywhere from 11:30pm to Midnight, well, then you can automate the Family Room light to come on randomly between 6 and 6:30pm, and stay on for either a random length of time, such as 5 1/2 to 6 hours, or a specific time with a delay before going off, while shortly there after the bedroom light goes on, as well as the master bathroom light a few moments later, all mimicking a person making there way to bed after an evening in front of the TV.
Now, using the same ratios, the Vacation Timer
can generate a different on/off schedule each day, so although the specs are the same, it will be a random time within those specs, so it will always appear as if human interaction is taking place. Now again, imagine having several nodes setup for a handful of lights in different rooms in your home, all with different, semi-random schedules. That is the Vacation Timer
. It is simple, yet effective.
CONFIGURATION OPTIONS
Initially Suspended:
When this is checked, the schedule will only be activated when the node receives a msg
with a positive payload
of start, on, 1 or true
. If you uncheck this box, the schedule will be activated immediately upon Deploying. You can manually enable Suspend Mode
at any time by sending a msg
with a negative payload
of stop, off, 0 or false
. This option is checked by default, as the recommended way of activating and deactivating the schedule is to send the node a msg
, such as when you active or deactive your own custom "Vacation Mode" in your home automation system.
Reschedule After Completion:
When checked, a new randomized schedule will automatically be generated for the next active day, otherwise it will be Suspended
once the current schedule completes. It then must be re-activated with an incoming msg
containing a positive payload
of start, on, 1 or true
.
Latitude and Longitude:
Your latitude and longitude for use with Dusk, Dawn, Sunrise or Sunset from the Time On
and Time Off
dropdowns.
Days of the Week:
Here you can select which days of the week the schedule will be run.
Issue Off Command on non-scheduled days
If the scheduled Time On
is before Midnight on a scheduled day, the device will always turn on, however, if the following day is a non-scheduled day, and the Time Off
of the same schedule is after Midnight, thus falling on the non-scheduled day, the device will NOT
be turned off unless this option is checked. The assumption is that if you do not want the normal schedule to take place on a specific day, you may also not want the Off
command to be activated on that day either. If this option is not checked, you will have to either setup an additional Vacation Timer
node or some other node-red timer to take care of shutting off those devices that were not turned off.
Time On:
This is the earliest time you want the device to be turned on.
Max Delay:
This is the maximum number of random minutes you want tagged onto your chosen Time On
. If you choose 7:30 AM
as your Time On
with a Max Delay
of 30 minutes
, your device will turn on between 7:30 AM and 8:00 AM
.
Length of Time OR Specific Time to turn Off Device:
Depending on which tab you choose, you can have the device turn off after a Length of Time (minimum/maximum), or you can have the device turn off at a Specific Time with a Delay.
Use Length of Time:
Minimum Time On:
The minimum hours and minutes you want the device to be on.Maximum Time On:
The maximum hours and minutes you want the device to be on.Disable Maximum Time On:
If this is checked, theMaximum Time On
will be ignored and the device will be turned off after the exact hours and minutes selected inMinimum Time On
.
Use Specific Time:
Time Off:
This is the earliest time you want the device to be turned off.Max Delay:
This is the maximum number of random minutes you want tagged onto your chosenTime Off
. If you choose8:15 PM
as yourTime Off
with aMax Delay
of30 minutes
, your device will turn off between8:15 PM and 8:45 PM
.
Payload and Topic:
Set the Payload
and Topic
values for both the On
and Off
commands.
CHANGES
2.2.8
Sending subsequent positive payloads would keep reseting the schedule, which caused at least 2 major issues:
Sending too many payloads too quickly would often cause some of the previous schedules to be skipped from being canceled, thus there were multiple on/off commands being sent at different times.
Inadvertently sending a payload through and having the chosen schedule canceled and regenerated was causing some frustration with certain users, as this was not only an unintended oversight on our part, but is definately not what most would assume to be the expected result of the node.
To bring things inline with what we should have done in the first place, we have changed the node to only generate a schedule on a positive payload if the node is currently suspended
, or otherwise inactive. If you wish to manually generate a different schedule than the currently active schedule, you must send a negative payload first, and then you can send a postive payload again. This does not affect the automatic rescheduling of the node when the current schedule completes.
2.2.7
Minor bug fix that did not affect the majority of users. When a new node was dragged onto the editor and activated without the Initially Suspended
option unselected, it did not output the On
command immediately if the On Time
had already passed, but did work correctly with any positive payload. This should now be fixed.
2.2.6
Fixed the broken Disable Maximum Time On
feature.
2.2.5
Cleaned up the msg object.
2.2.4
Additional bug fixing for the same payload issue. Didn't realize how closely node-red holds onto the assigned _msgid
for an outgoing msg. This fix should ensure a newly generated _msgid
for each payload.
2.2.3
Quick bug fix. Extra msg data was being passed through along with the payload that could have caused the payload to become corrupted.
2.2.2
Previously, when the node was activated and the Start Time
was after the Activated Time
, it would schedule out for the next day, however, this is not the expected behavior for a Vaction Timer
. For example, if you activate the timers at 3:00 PM when you leave for vacation, all devices that would have been on before 3:00 PM should be turned on immediately, otherwise your house could end up being dark for the full day, and perhaps the evening, of your departure and only the following day would those particular devices begin their schedule.
Now, all devices that have a Start Time
that is after the Activated Time
will be turned on immediately upon activation, unless the Stop Time
has also already passed.
2.2.1
Fixed a bug that was causing the node to reschedule the same start and stop times each day without generating new random values.
2.2.0
Now you can choose between a Length of Time for the device to run OR
have the device shutoff at a Specific Time with a Delay. If you choose a Specific Time that falls before the hours/minutes of the Time On, the Off command will be scheduled for the following day.
2.1.2
Quick bug fix for an issue that broke the Minimum and Maximum time dropdowns from working correctly in v2.1.1
2.1.1
Fixed issues with the Minimum
and Maximum
hours/minutes dropdown selectors that would allow you to set a Maximum time
that was before the Minimum time
.
2.1.0
You can now set the Payload
and Topic
values for the schedules On and Off commands.
The Payload can use the String
, Number
and Boolean
type inputs.
2.0.0
COMPLETE REWRITE: There were a LOT of errors and problems with the previous versions of Vacation Timer
, to the point it was practically unusable, therefore, this version was completely rewritten from scratch with a new scheduling algorithm. It should not break any of your existing nodes and should run correctly now. Instead of rescheduling every night at midnight, each node will reschedule for the following active day at the end of each current schedule. This removes the need for an additional internal timer that was being fired at midnight, and more accurately handles schedules that span across midnight, as well as ensuring inactive days are honored correctly. The node status will also clearly show the next schedule date and times, and you can now disable the Maximum Time On fields if you wish to have the device turned off after a set number of hours and minutes.
1.4.0
Breaking Change: Added the ability to disable rescheduling at Midnight. Any Vacation Timer
nodes you already have set-up will need to have this feature enabled in the settings panel if you want them to continue working in their current manner.
1.3.3
Reworked the fix from 1.3.2 to be more consistent with expected results.
1.3.2
Ensure the pairing of Start and Stop schedules. Some rare situations could end up with an On
schedule without an associated Off
schedule.
Bringing versioning to a more standard, incremental format.
0.0.10 (1.3.1)
Further fix for the multiple msg
sending bug.
0.0.9 (1.3.0)
Significant Bug Fix: all msg
payloads (on/off) were being sent every second, for a full minute, for a total of 60 msgs.
New Feature: Added a choice of whether or not to issue an Off
command for a schedule that spans Midnight onto a non-scheduled day.
0.0.8 (1.2.2)
Changed the Visual On/Off times displayed in the node status from 24hr clock
to 12hr clock
0.0.7 (1.2.1)
Removed the need for the cron-parser dependency.
0.0.6 (1.2.0)
Significant Bug Fix: a major bug with the scheduling could have allowed the hours and minutes to be misinterpreted.
New Feature: Added days of the week, so you can set the schedule to only run on certain days.
0.0.5 (1.1.2)
Fixed alignment in configuration panel
0.0.4 (1.1.1)
Fixed typos in the README.md
0.0.3 (1.1.0)
For consistency, when the node is Suspended, a positive payload of start, on, 1 or true
is required to active the schedule.
Also, we changed the negative payloads to Suspend the node to include stop, off, 0 or false
.
0.0.2 (1.0.1)
Quick fix for incorrect times listed in the Time On
dropdown.
0.0.1 (1.0.0)
Initial Release