File Name: Module: DoorMinder - intelligent monitoring of doors and windows
File Submitter: 123
File Submitted: 14 Mar 2009
File Updated: 30 Mar 2009
File Category: Premise
Contact: PM me
DoorMinder is a Module that adds the following features to all Door, GarageDoor, and Window objects:
Announces when a door or window is opened/closed.
Reminds you when a door or window is left open too long. It can be constrained to operate within a specific time period (when you are home) and only if the exterior temperature warrants it (when the furnace or AC is active).
- It is cold outside.
The exterior temperature is below 32 F (ReminderLowTemp).
- You arrive home.
The time is between 6:00 PM (StartTime) and 11:00 PM (EndTime).
- You forget to close the garage door.
The garage door has been left open for longer than 20 minutes (ReminderDelay).
- You are reminded to close the door.
A spoken reminder is issued announcing the garage door was left open.
- You ignore the reminder.
Reminders are issued every 2 minutes (ReminderPeriod) until the door is closed.
DoorMinder is configured with Premise Builder but can also be controlled with Premise Browser (enabled/disabled/paused). For example, if you wish to leave a door open for awhile, you can Pause the Reminder function and it will suspend all reminders for one hour. After one hour, the Reminder function will automatically re-enable itself.
The following features make DoorMinder extremely flexible:
Extends existing objects
DoorMinder is a class extension; it adds new functionality to all Door, GarageDoor, and Window objects. Each object can have unique DoorMinder properties such as AnnunciatorEnabled, ReminderEnabled, ReminderDelay, and the time period.
The Module's source code is visible and allows you to customize it. For example:
- Instead of using the ReminderLowTemp and ReminderHighTemp properties, you could use a Thermostat object's HeatingSetPoint and CoolingSetPoint properties to serve as temperature thresholds.
- Reminders are normally issued in the form of Text-To-Speech. You can alter the code to transmit email and/or flash a light.
- A counter keeps track of the number of times a reminder is repeated. You can add logic to take action after the fifth reminder and send a signal to close the garage door.
The Module provides a new user-interface for all Door and Windows. It displays the current state of the Annunciator and Reminder functions (enabled/disabled/paused) plus the state of the Door (open/closed). If the Occupancy module is installed, DoorMinder's UI will also display the last time the Door was opened.
DoorMinder is controlled via the following properties:
Allows you selectively enable/disable the Annunciator function for each door and window.
- StartTime and StopTime
Specify hours of the day when the Annunciator is operational. All hours become eligible if StartTime equals EndTime.
Allows you selectively enable/disable the Reminder function for each door and window.
Specify the amount of time a door, or window, is left open before a reminder is issued (one or more minutes).
Specify the amount time between repeated reminders (zero or more minutes; zero suppresses repeated reminders). This is the delay time after the first reminder is issued.
- StartTime and EndTime
Specify hours of the day when reminders may be issued. All hours become eligible if StartTime equals EndTime.
- ReminderLowTemp and ReminderHighTemp
Specify low and high temperature thresholds for each door and window. Reminders will be sent only if the exterior temperature exceeds the thresholds.
- Ensure the AutomationBrowser module is installed!
- Using Premise Builder, import the attached XDO file.
You have to specify a source for the exterior temperature value. In Builder, click Modules and navigate to the following function: Modules/DoorMinder/Classes/Reminder/ExceedsTemp
It contains examples of how to set the temperature source using the XML Weather module, a Temperature Probe, and a Thermostat.
You have to specify a means of issuing the Annunciator and Reminder messages. In Builder, click Modules and navigate to the following function: Modules/DoorMinder/Classes/Reminder/PlayReminder
It contains examples of how to use the MSSAPI Speech and ELK M1 drivers to speak the reminder message. Similarly, modify the following function to issue appropriate Annunciator messages: Modules/DoorMinder/Classes/Annunciator/PlayAnnunciator
Monitoring is enabled on an individual basis; set the AnnunciatorEnabled and ReminderEnabled properties for each Door and Window object.
To enable a Time range, adjust StartTime and EndTime. By default, both values are set to 12:00 AM and effectively allow all hours to be eligible (i.e. time is ignored).
To enable the Temperature thresholds, set ReminderLowTemp and ReminderHighTemp. By default, both values are set to 70 F and effectively allow all temperatures to be eligible (i.e. temperature is ignored).
The default values for Time and Temperature are set in the Module and any changes will automatically update all Door and Window objects. If you wish to alter the Module's default values, using Builder click Modules and navigate to the following properties and change them to suit your needs:
V1.1 - Cosmetic corrections to the user-interface.
V1.2 - Bug fix. Corrected last line of the "PlayReminder" function.
V1.3 - Refined UI's appearance and fixed a bug.
Click here to download this file