I’m with Buxton here. I use Oracle VM to run a PI emulator. Runs faster than any PI and is perfect for testing as well. If you trash it, you just restore the image. Back up running in seconds.
Not sure who or why would like to run on just Windows for an application like this.
Actually, it’s now a moot point, since I have just discovered a valid and robust way to access the low-level HTTP routines in the LuaSocket library. This means that I can now easily (well, fairly easily) split the HTTP request and responses into asynchronous activities and use the intervening latency for normal plugin processing.
I’ll be testing this first on the VeraBridge plugin which will allow me to use the proper lazy polling afforded by the lu_status request Timeout and MinimumDelay parameters, and, as a side-effect, get much better response times to Vera status changes.
This may a take a while to implement, but now I do know that it’s possible… have been wanting to do this for years!
I have been fooling with my network equipment and have at times had my switch or router disconnected between openluup and the vera. I noticed that when this happens, verabridge stops polling the vera until I reload luup on openluup. May I suggest to have either a button to restart the polling loop of the verabridge or alternatively for it to ignore the polling errors and just keep polling ad aeternam?
I have a similar request (and got the same result as Rafale changing the Vera IP adresses). If you add/remove devices from your Vera(s) the changes are not picked up until after a luup reload. That same option to restart the connection, could that pull a new full config? That would be great Just an action for this would do too as those are so simple to initiate from ALTUI, just like the GetVeraFiles one for example.
Well, normally it is not an issue indeed. However i moved from an Edge to a Plus in small batches so that meant quite some reloads. Not a top priority though. I was just thinking it could lift on top of the change from Rafale. No biggie if it cannot.
I’ve been digging into this and it seems that the issue may be to do with imperfect timeout handling in the LuaSocket library. This has been an issue elsewhere in the past.
It may mean that automatic detection of this condition is not possible, so I am investigating your suggestion of a manual action to reset the I/O.
I’ve added a VeraBridge variable AsyncTimeout (default is 300 seconds) which controls a watchdog timer to send an additional async_http request on each interval.
This is very crude, but could be refined if it works. I’ve tried unplugging the bridged Vera a few times and all seems in order (although there was already some recovery code which works in some circumstances.)
Grateful for any feedback on testing this. Development branch v19.10.22