At the moment, I don’t use the minimum-delay feature, so it returns with data very quickly. In some cases, what would likely be a single “set” of changes from a Plugin will come back over the course of a few of these HTTP long-poll responses.
I can parameterize the minimum-delay, so folks can use it, but I haven’t seen the need yet. CPU load seems reasonable, and my graphs of memory usage don’t appear to show anything different.
Overall I’m not worried. I’ll use the transition as a mechanism to lighten Vera’s load overall, by removing the Automation elements (scene scripting) from it and, over time, Plugins.
My initial JSON response is about 700K, but the incremental ones are a lot smaller. I need to put some logging into the code to see how long it takes to load the initial, but the incremental loads are low-ms levels (according to openHAB debug logs)
Think of it as a Server-side implementation of this:
http://wiki.micasaverde.com/index.php/UI_Simple
The only downside I’ve seen to this is that the routine will return every second (on my machine) due to bugs in Vera’s JSON/status2 handler. Specifically, it’ll return that content has “changed”, even when it hasn’t, for some of my devices (appears to be isolated to Leviton Scene controllers).
I have 3x of them, and every second this call will return, showing me that the “status” has changed, as the [device] id will come back in any response:
07:27:18.524 DEBUG o.o.b.m.internal.MiosBinding[:573] - internalPublish: {mios="unit:house,device:145/id"}, value=145, bound 0 time(s)
07:27:18.524 DEBUG o.o.b.m.internal.MiosBinding[:573] - internalPublish: {mios="unit:house,device:145/status"}, value=-1, bound 0 time(s)
07:27:18.524 DEBUG o.o.b.m.internal.MiosBinding[:573] - internalPublish: {mios="unit:house,device:146/id"}, value=146, bound 0 time(s)
07:27:18.524 DEBUG o.o.b.m.internal.MiosBinding[:573] - internalPublish: {mios="unit:house,device:146/status"}, value=-1, bound 0 time(s)
07:27:18.524 DEBUG o.o.b.m.internal.MiosBinding[:573] - internalPublish: {mios="unit:house,device:144/id"}, value=144, bound 0 time(s)
07:27:18.524 DEBUG o.o.b.m.internal.MiosBinding[:573] - internalPublish: {mios="unit:house,device:144/status"}, value=-1, bound 0 time(s)