Does a quick way exist to forward all events, other than defining each variable?
Probably the wrong tool for the job. What are you actually trying to do?
I am looking to replace my home grown service that uses their alternative event interface (I have used this for years). Currently, I use a Windows service, written in C#. This method has always been flawed, in that one must define notifications for each device, then rely on the notifications to both the defined vera user and the alternate event interface. Consequently, if either my service is off-line, or the internet connection is down, the vera controller tries to resend each event every 20 seconds. With many events defined, over time, this will literally lock the vera controller.
I did implement your DataYours DataWatcher daemon, with about 2 dozen variables watched, and was able to accomplish my goal. By writing a sysLog server in C#, and repackaging your events to emulate those of the alternative event interface I was able to swap out the alter event service without having to redo any downstream event consumers.
I just wondered if a method existed to allow all for the use of * for a specific service id, rather then having to define each variable separately. So I could use:
=*.<serviceId>.*
Thank you for the daemons, and for your quick response. If a better way exists to easily receive vera events, I am all ears.
This is really interesting.
I wrote an Alternate event server for UI5 and released it as part of the EventWatcher plugin. But UI7 broke that, and I never bothered, because I had moved on. The openLuup system is really my HA ‘home’ these days – fast and totally reliable, but Vera API compatible.
Similarly, I don’t use DataWatcher any more (except a bit of legacy on dying Veras that are still part of my network) since the built-in Data Historian of openLuup allows me to do exactly what you want without any configuration at all.
Well, yes, in fact it does.
http://wiki.micasaverde.com/index.php/Luup_Lua_extensions#function:_variable_watch
If variable is nil, function_name will be called whenever any variable in the service is changed.
…continued…
Sorry, had to break here to reformat your post above so that I could read your example. What I have copied here from the documentation is not exactly what you want. However… the documentation is incomplete. Looking through my openLuup/Vera comparative documentation, I note:
nil device parameter in luup.variable_watch – whilst the use of a nil variable parameter to watch ALL service variables is documented, the use of a nil DEVICE is not, but works as expected: the callback occurs a change in ANY device with an update to the given serviceId and variable (thanks for @vosmont for that information.)
But, again, that’s not quite it. So, AFAIK, you can’t use a nil service in luup.variable_watch()
(although you can in openLuup.) Sadly, in Vera, it’s not even easy to find out which services a device actually implements.
Are you really sure that this is what you want to do? There must be a better way. (Buy an RPi, or use a VM, install openLuup, and the world is your oyster.)
Thanks again. I just say this in my junk mail. I am simply trying to get real-time events from vera and forward them the HA subscribers.