Interesting, so it appears something about how it returns the result for zid changed in HE from 2.2.3 to 2.2.4.
I have no idea if that is something we could work-around here.
"zid" is an internal-to-this-app construct. Hubitat (the Platform) doesn't have a zid to do anything to/at/about.
I don't own any Ring... thing. So I can't install this app and drivers and hope to get some results. However, I did take a journey through two pieces of code on Github and determined that "ring-api-virtual-device.groovy" has the task of initial creation of zid. The "refresh" option will re-establish it, apparently. Again, because I can't really install this, I am forced to just assume there's a Refresh button on the Device info page.
Maybe the inherent reboot of the Hub during an upgrade didn't resync perfectly and a manual reboot might be helpful... it's just a WAG from me.
I tried the refresh a few days ago with no luck. I did hit it again just now and it does show in the logs and looks ok. When I go back and hit a lock/unlock I still get that warning from earlier with no zid etc. In the logs it also appears that this refresh actually runs automatically around 6AM every day. Still confused on the zid being null. I see a value in the refresh for the lock and in all the other status updates coming from ring on sensors.
Another idea. Does someone have the exact zwave command I would need to send to make it work? perhaps hardcoding a command would allow testing of a few of the missing parameters. I am not sure of the exact commands to send.
I noticed that when addChildDevice is called in ring-api-virtual-device.groovy that it passes in a bunch of unsupported things (zid, fingerprint, manufacturer, serial, type, and src) to the properties arg. I wonder if previous to 2.2.4 that these extra args just became data values for the device and now those improperly set values are being cleaned up? I think that the appropriate way to set these would be to use updateDataValue.
I have this RING||b91dce4e-d22f-46a3-8c55-a2cccc39c139 and if you drop the Ring part it seems to match the zid I get when I refresh the device. null when calling lock/unlock. This seems to be it but I am not reading the code.
As I was reading this... I wonder - are we actually sending a Z-wave command to the device? I was thinking that we are sending a command to the Ring Hub which initiated a Z-wave command to the lock. But I really have no idea...
Before doing that, someone on 2.2.4 should take screenshots of the lock devices pages. Specifically the data section. If the data fields are missing, then we could throw some code together.
yeah realized that as I said it. What is odd is that on the dashboard when I click the icon to lock/unlock it spins for many seconds before coming back to the original state. like it is waiting on an ack but never gets it
Oh, I just checked the same on my 2.2.3 hub, much more data there!!! (zid, serial, src, fingerpring, hardwareVersion, type, firmware, manufacturer). Wow!
Try using this code for the ring-api-virtual-device.
After updating the code, run a 'refresh' on the ring api virtual device. You should see a bunch of warnings printed. Then try locking/unlocking one of your locks.