Thanks for your replies, BLH and grif091.
I have a web-based (PHP/MySQL) system that I wrote which uses a socket connection to the EZSrve to control Insteon devices (e.g.: on, off, status). It also uses EZSrve’s device-related commands to add/update/delete device records in the EZSrve when the corresponding action is taken through my system (sort of a redundant copy so that both systems agree on which devices are present, etc). I’m basically just using the EZSrve as a simpler version of the PLM/PLC. I preferred the XML socket over all the other protocols that I’d had to have dealt with to make this system work.
My system handles all the scheduling, etc. I have two components that run: a “listener” and a “scheduler”. The listener is a daemon (e.g.: it runs in the background all the time) which maintains a socket connection to the EZSrve so that it can monitor all output on the socket (e.g.: responses to commands). As full XML responses come in, it handles them as needed (e.g.: recording a NAK or ACK, etc.). The scheduler is a “cron” job which runs every minute on the minute. It opens a socket connection to the EZSrve in “write” mode so that it can issue any scheduled commands. On the rare occasion that I manually do things through my web interface, a 3rd socket connection may be made so that the web interface can “write” commands to the EZSrve. So, 99% of the time there is one constant socket connected from the listener and one socket connected and disconnected every minute. Also, when my system issues multiple commands to the EZSrve, it pauses for 1 second between each command in order to not overload the EZSrve.
Let me know if you need more information on the usage patterns.
Re: the mechanical timer idea, yes– I just thought of that this morning and was thinking I might try rigging something up like this as a workaround.
Since I chimed into this post a few weeks ago, I’ve had this lockup occur two more times. It is a real problem. I can just picture frustrated vacation home owners who try to run remote houses on an EZSrve only to find that a week or two go by and the thing freezes up, requiring a unplug/replug.