123
Senior Member
I took a hiatus from my Home Automation system (just enjoyed the fruits of my labour) and spent the last year with my other love, namely hiking. Before the winter hiking season gets into full swing, I've returned to my HA system and developed a few new things that I will be releasing, as well as a few modules I created in the past. Here's what's in the pipeline:
HAI Omnistat 2
This driver has been working for over a year and provides control over most everything the Omnistat offers (i.e. dozens of properties including scheduling). The only thing it does not have is an AutomationBrowser UI for the scheduling portion. My thermostat is located in a high-traffic area so it lights up when we pass it and we easily notice its background colour. My EnvironmentCanada module monitors Weather Warnings/Watches and alters the Omnistat 2's background accordingly. The Omnistat's background is set to red when there's a Warning, yellow for a Watch, green when the Warning/Watch has ended, and back to blue when all Warnings/Watches have expired. It also displays a short description of the Warning or Watch (in addition to the exterior temperature gleaned from my Wunderground PWS module).
CallerIDModem
This driver works with VoiceModems and reports CallerID information. Not sexy but it gets the job done. I no longer use it because I've switched to VOIP.
ReBinder
This is a utility tool that can 'rebind' a Device to its Home objects. When you upgrade a device's module you typically lose the device and all its bindings. Rebinding some devices can be tedious and ReBinder automates this chore. Rebinder also reestablishes other properties such as Network (i.e. the COM port used by the Device) and whatever is an ObjectRef (i.e. pointers). Each time you run ReBinder, it makes a time-stamped folder containing one script for each device that, when executed, rebinds the Device. Even if you have no need for ReBinder, it serves as a nice example of Premise's ability to have scripts generate other scripts (i.e. code that builds more code).
Composites
This module introduces Door, Window, and GarageDoor that provide superior models of real-world doors and windows because they support multiple bindings. For example, a Composite Door can bind to a DoorSensor, Lock Sensor, Lock Opener, and Lock Closer. Composites also incorporate all functions found in the DoorMinder module and provide a full AutomationBrowser UI that displays daily opening/closings, and the ability to lock/unlock a door (open/close a garage door).
Obihai Obi110
This driver was developed in collaboration with etc6849. The Obi110 is a VOIP telephone adapter and the driver reports inbound and outbound calls. Premise does not have the ability to use UDP to listen to a port (only TCP) so etc6849 developed 'middleware' in the form of a Perl program that listens via UDP and reports via TCP. The Obihai's status messages are very verbose so we developed a simplified reporting protocol for the middleware. As a result, Premise's driver has less junk to process. I also added the ability to activate up to ten ScriptMacros via the telephone. Pick up your house phone's handset, dial *#275# and that will activate ScriptMacro number 2 and pass it a value of 75 (i.e. set a light to 75% brightness or set a thermostat to 75 F).
CallMonitor
CallMonitor maintains a log of inbound and outbound calls when used with the Obihai device (inbound only when used with the CallerIDModem). It displays its logs via AutomationBrowser and Minibrowser. It can also report missed-calls (calls from specific callers received but unanswered while we are home) if used with the Contacts module.
Contacts
This module is an enhancement to the CallMonitor module. It allows CallMonitor to create a list of all contacts based on the information it collects from inbound/outbound calls (i.e. a self-populating list of contacts). You can flag a contact so that if his or her call goes unanswered (i.e. missed-call), CallMonitor will report it (via email, announcement, etc). Contacts also allows CallMonitor to display calls using a custom name, of your choosing, as opposed to the supplied Caller ID Name.
Enhanced UI Controls
When creating user-interfaces for a module, there a few UI Controls that Premise lacks. This module introduces ChildrenListBox and BoundPropertyInputBox. ChildrenListbox displays child-objects in a selectable list (derived from Premise's existing ChildrenComboBox). BoundPropertyInputBox (BPIB) was an S.O.B. to develop but it was sorely needed. It displays an editable text box that, when clicked/touched, displays Premise's pop-up keyboard and allows the user to alter the text box's contents. You don't need to do add any scripting to make it work. Each BPIB's appearance can be tweaked (background/font color, font, size, text-clipping,etc).
MessageQueue
My ELK M1 module allows you to display a single message on a keypad. This module creates a queue that can store multiple messages and deliver them in the sequence received (FIFO). When the user presses * to clear the currently displayed message, MessageQueue delivers the next message to be displayed. I use this with CallMonitor to display missed-calls from family members.
HAI Omnistat 2
This driver has been working for over a year and provides control over most everything the Omnistat offers (i.e. dozens of properties including scheduling). The only thing it does not have is an AutomationBrowser UI for the scheduling portion. My thermostat is located in a high-traffic area so it lights up when we pass it and we easily notice its background colour. My EnvironmentCanada module monitors Weather Warnings/Watches and alters the Omnistat 2's background accordingly. The Omnistat's background is set to red when there's a Warning, yellow for a Watch, green when the Warning/Watch has ended, and back to blue when all Warnings/Watches have expired. It also displays a short description of the Warning or Watch (in addition to the exterior temperature gleaned from my Wunderground PWS module).
CallerIDModem
This driver works with VoiceModems and reports CallerID information. Not sexy but it gets the job done. I no longer use it because I've switched to VOIP.
ReBinder
This is a utility tool that can 'rebind' a Device to its Home objects. When you upgrade a device's module you typically lose the device and all its bindings. Rebinding some devices can be tedious and ReBinder automates this chore. Rebinder also reestablishes other properties such as Network (i.e. the COM port used by the Device) and whatever is an ObjectRef (i.e. pointers). Each time you run ReBinder, it makes a time-stamped folder containing one script for each device that, when executed, rebinds the Device. Even if you have no need for ReBinder, it serves as a nice example of Premise's ability to have scripts generate other scripts (i.e. code that builds more code).
Composites
This module introduces Door, Window, and GarageDoor that provide superior models of real-world doors and windows because they support multiple bindings. For example, a Composite Door can bind to a DoorSensor, Lock Sensor, Lock Opener, and Lock Closer. Composites also incorporate all functions found in the DoorMinder module and provide a full AutomationBrowser UI that displays daily opening/closings, and the ability to lock/unlock a door (open/close a garage door).
Obihai Obi110
This driver was developed in collaboration with etc6849. The Obi110 is a VOIP telephone adapter and the driver reports inbound and outbound calls. Premise does not have the ability to use UDP to listen to a port (only TCP) so etc6849 developed 'middleware' in the form of a Perl program that listens via UDP and reports via TCP. The Obihai's status messages are very verbose so we developed a simplified reporting protocol for the middleware. As a result, Premise's driver has less junk to process. I also added the ability to activate up to ten ScriptMacros via the telephone. Pick up your house phone's handset, dial *#275# and that will activate ScriptMacro number 2 and pass it a value of 75 (i.e. set a light to 75% brightness or set a thermostat to 75 F).
CallMonitor
CallMonitor maintains a log of inbound and outbound calls when used with the Obihai device (inbound only when used with the CallerIDModem). It displays its logs via AutomationBrowser and Minibrowser. It can also report missed-calls (calls from specific callers received but unanswered while we are home) if used with the Contacts module.
Contacts
This module is an enhancement to the CallMonitor module. It allows CallMonitor to create a list of all contacts based on the information it collects from inbound/outbound calls (i.e. a self-populating list of contacts). You can flag a contact so that if his or her call goes unanswered (i.e. missed-call), CallMonitor will report it (via email, announcement, etc). Contacts also allows CallMonitor to display calls using a custom name, of your choosing, as opposed to the supplied Caller ID Name.
Enhanced UI Controls
When creating user-interfaces for a module, there a few UI Controls that Premise lacks. This module introduces ChildrenListBox and BoundPropertyInputBox. ChildrenListbox displays child-objects in a selectable list (derived from Premise's existing ChildrenComboBox). BoundPropertyInputBox (BPIB) was an S.O.B. to develop but it was sorely needed. It displays an editable text box that, when clicked/touched, displays Premise's pop-up keyboard and allows the user to alter the text box's contents. You don't need to do add any scripting to make it work. Each BPIB's appearance can be tweaked (background/font color, font, size, text-clipping,etc).
MessageQueue
My ELK M1 module allows you to display a single message on a keypad. This module creates a queue that can store multiple messages and deliver them in the sequence received (FIFO). When the user presses * to clear the currently displayed message, MessageQueue delivers the next message to be displayed. I use this with CallMonitor to display missed-calls from family members.