Rick,
This is specifically addressed to you. I know that HAI does not provide an event driven interface where events (door open/close, etc) will automatically send a message over OmniLink and that a lot of this stuff needs to be polled which dramatically affects the performance of the plugin.
That being said, I was wondering if, through the use of programs in the Omni, there might be a way for the Omni program to tell HomeSeer when it needs to be polled for certain things.
ie:
WHEN Front Door SECURE: <Notify HS Zone>
WHEN Front Door NOT READY: <Notify HS Zone>
WHEN Back Door SECURE: <Notify HS Zone>
WHEN Back Door NOT READY: <Notify HS Zone>
WHEN ANY ALARM: <Notify HS Alarm>
WHEN OFF: <Notify HS OFF>
WHEN DAY: <Notify HS Day>
etc... By the <Notify HS...> message, this coudl be done in a number of ways... First, the Omni program could simply send an X10 command that HS would see and then know to re-poll the panel for the zone status, for instance...
Another way, would be using an extra serial port on the Omni (such as the OPII), the Omni program could send a message to HS that it would pickup over the serial port and tell the plugin to update that type of a status.
I can think of a few other ways this could be done as well... (ie: OPII output hooked into a joystick port, go high when a certain type of event occurs)...
While this is messy, was wondering if you thought there might be any merit in this? Specifically the serial port method (for those of us with OPIIs and extra ports on the PC) seems to be the best. It would require writing a program in the Omni to signal these events, however.
Then the plugin would need an option to be able to be notified externally of when to poll the Omni for status on certain types of events... Seems like this part would be a relatively straightforward change in the plugin.
Most likely, an HS script could look for the event notification (ie: over the serial port) and then tell the plugin to immediately poll for that type of event (ie: zone status).
it might already be possible to do this with the plugin (haven't had time to look into it), though I would imagine that there would be times where the plugin would poll by itself. I've noticed that the HAI Plugin seems to eat up a LOT of CPU cycles, so I'd like to reduce that. Thus, if we had an option (perhaps in a script) to be able to tell the plugin NOT to poll for certain types of events, until its TOLD to do so, that could dramatically reduce the CPU utilization from the constant polling.
Anyways, this just popped into my head the other day and I haven't tried to validate any of this reasoning yet. So wanted to get your thoughts about it...
Definitely not a perfect solution, but it might be workable in some configurations.
This is specifically addressed to you. I know that HAI does not provide an event driven interface where events (door open/close, etc) will automatically send a message over OmniLink and that a lot of this stuff needs to be polled which dramatically affects the performance of the plugin.
That being said, I was wondering if, through the use of programs in the Omni, there might be a way for the Omni program to tell HomeSeer when it needs to be polled for certain things.
ie:
WHEN Front Door SECURE: <Notify HS Zone>
WHEN Front Door NOT READY: <Notify HS Zone>
WHEN Back Door SECURE: <Notify HS Zone>
WHEN Back Door NOT READY: <Notify HS Zone>
WHEN ANY ALARM: <Notify HS Alarm>
WHEN OFF: <Notify HS OFF>
WHEN DAY: <Notify HS Day>
etc... By the <Notify HS...> message, this coudl be done in a number of ways... First, the Omni program could simply send an X10 command that HS would see and then know to re-poll the panel for the zone status, for instance...
Another way, would be using an extra serial port on the Omni (such as the OPII), the Omni program could send a message to HS that it would pickup over the serial port and tell the plugin to update that type of a status.
I can think of a few other ways this could be done as well... (ie: OPII output hooked into a joystick port, go high when a certain type of event occurs)...
While this is messy, was wondering if you thought there might be any merit in this? Specifically the serial port method (for those of us with OPIIs and extra ports on the PC) seems to be the best. It would require writing a program in the Omni to signal these events, however.
Then the plugin would need an option to be able to be notified externally of when to poll the Omni for status on certain types of events... Seems like this part would be a relatively straightforward change in the plugin.
Most likely, an HS script could look for the event notification (ie: over the serial port) and then tell the plugin to immediately poll for that type of event (ie: zone status).
it might already be possible to do this with the plugin (haven't had time to look into it), though I would imagine that there would be times where the plugin would poll by itself. I've noticed that the HAI Plugin seems to eat up a LOT of CPU cycles, so I'd like to reduce that. Thus, if we had an option (perhaps in a script) to be able to tell the plugin NOT to poll for certain types of events, until its TOLD to do so, that could dramatically reduce the CPU utilization from the constant polling.
Anyways, this just popped into my head the other day and I haven't tried to validate any of this reasoning yet. So wanted to get your thoughts about it...
Definitely not a perfect solution, but it might be workable in some configurations.
Comment