Hi Robert,
The GET LOCK_PIN PID returns an unsigned int, but I assume you mean you returned 0xFFFF (indeed the error message confirms this)? Or certainly not 0x0000-0x270F (i.e. 0000-9999).
It looks like we currently don't (by default) validate the data returned from a lot of those fairly generic checks (where we're mostly just testing if GET works), we're then using your (incorrectly) returned lock PIN value to try and change the lock state, at which point OLA is complaining that a lock PIN of 65535 isn't valid and everything crashes.
I assume this was just a bug within your code returning an uninitialised PIN? If you're actually trying to stop access, then from the standard:
"Some devices may disallow getting the current PIN code using this message. For devices that protect
against the RDM Controller retrieving the current PIN code, any GET_COMMAND messages shall send a
NACK with a NACK Reason of NR_UNSUPPORTED_COMMAND_CLASS."
We'll look at getting this fixed soon anyway (and hopefully testing that every returned get value is in range).