setSignedTime

open suspend override fun setSignedTime(signedTime: SignedTime): ByteArray?

Sends the SET_SIGNED_TIME (0x71) command to the lock with the provided signed time. This command is crucial for ensuring that the lock's operations are synchronized with a trusted time source, enhancing the security and reliability of its operations.

Parameters

signedTime

The signed time to be set on the lock. The signedTime parameter should contain the datetime and signature obtained from a Tedee API, formatted as a SignedTime object.

Before sending the command, this function checks the state of Bluetooth and location services:

  • RxBleClient.State.BLUETOOTH_NOT_AVAILABLE: Bluetooth is unavailable on the device.

  • RxBleClient.State.LOCATION_PERMISSION_NOT_GRANTED: Required location permissions are not granted.

  • RxBleClient.State.BLUETOOTH_NOT_ENABLED: Bluetooth is not enabled.

  • RxBleClient.State.LOCATION_SERVICES_NOT_ENABLED: Location services are disabled. If any preconditions are not met, onError with BluetoothDisabled is called to handle the situation. Otherwise (i.e., RxBleClient.State.READY), lockConnectionWrapper?.setSignedTime(<singedTime>) will be called.