[nuki] Fixed nukiId migration for devices with shorter nukiId (#13088) (#13470)

Signed-off-by: Jan Vybíral <jan.vybiral1@gmail.com>
This commit is contained in:
Jan Vybíral 2022-10-01 13:45:35 +02:00 committed by GitHub
parent cedf6d9035
commit a646fe34e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 1 deletions

View File

@ -169,6 +169,15 @@ If secureToken property is enabled, make sure that time on device running openHA
is enabled, all requests contain timestamp and bridge will only accept requests with small time difference. If it is not possible to
keep time synchronized, disable secureToken feature.
### NukiId conversion when migrating from old binding version
Older versions of binding used nukiId in hexadecimal format (as displayed in Nuki app, e.g. 5C4BC4B3). The new version
expects nukiId to be in decimal format (e.g. 1548469427), since that's the format returned from API.
The binding does the conversion automatically, but only if your nukiId contains any letters A-F, otherwise the binding
has no way to tell whether the id is in hexadecimal or decimal format. If your nukiId in hexadecimal format
contains only numbers, you'll have to convert it to decimal format manually, or preferably delete the old Thing
and use discovery to recreate it.
## Full Example
A manual setup through files could look like this:

View File

@ -63,7 +63,8 @@ public abstract class AbstractNukiDeviceHandler<T extends NukiDeviceConfiguratio
protected final Logger logger = LoggerFactory.getLogger(getClass());
private static final int JOB_INTERVAL = 60;
private static final Pattern NUKI_ID_HEX_PATTERN = Pattern.compile("[A-F\\d]{8}", Pattern.CASE_INSENSITIVE);
private static final Pattern NUKI_ID_HEX_PATTERN = Pattern.compile("[A-F\\d]*[A-F]+[A-F\\d]*",
Pattern.CASE_INSENSITIVE);
@Nullable
protected ScheduledFuture<?> reInitJob;