Heh, heh. I tried having my monitoring program send a GetClock command when it connects. That seems to have done the trick. I’m now getting ClusterResponse messages when I turn the KPL button on and off. Cool.
This last-client-to-the-party “feature” seems a bit problematic to me. Basically, it means that if you want to do device monitoring, you’re pretty much constrained to having only one client. Either that, or carefully organize things so that the client that is to do the monitoring is always the last one to connect. I wrote my programs assuming that multiple clients could connect at will to perform various tasks, which simply won’t work. The solution for me may be to write my own server, which is the only program to connect to the EZSrve. It would do the monitoring, and also act as an intermediary for other programs that want to connect from time to time to control and check the status of devices.
A better EZSrve design might be to let a client send an xml command to turn device status messages on and off. The messages could be off by default. That way, multiple clients could elect to receive status messages, irrespective of the order of client connections and which clients happen to be connected at any one time.