mirror of
https://github.com/openhab/openhab-addons.git
synced 2025-01-25 14:55:55 +01:00
[surepetcare] Check for null before updating pet location channels (#11235)
fixes #11234 Signed-off-by: Maarten Blokker <maarten.blokker@outlook.com>
This commit is contained in:
parent
0c021ec795
commit
ebd268a42e
@ -164,6 +164,21 @@ public class SurePetcarePetHandler extends SurePetcareBaseObjectHandler {
|
||||
if (loc.since != null) {
|
||||
updateState(PET_CHANNEL_LOCATION_CHANGED, new DateTimeType(loc.since));
|
||||
}
|
||||
|
||||
if (loc.deviceId != null) {
|
||||
SurePetcareDevice device = petcareAPI.getDevice(loc.deviceId.toString());
|
||||
if (device != null) {
|
||||
updateState(PET_CHANNEL_LOCATION_CHANGED_THROUGH, new StringType(device.name));
|
||||
}
|
||||
} else if (loc.userId != null) {
|
||||
SurePetcareHousehold household = petcareAPI.getHousehold(pet.householdId.toString());
|
||||
if (household != null) {
|
||||
Long userId = loc.userId;
|
||||
household.users.stream().map(user -> user.user).filter(user -> userId.equals(user.userId))
|
||||
.forEach(user -> updateState(PET_CHANNEL_LOCATION_CHANGED_THROUGH,
|
||||
new StringType(user.userName)));
|
||||
}
|
||||
}
|
||||
}
|
||||
updateState(PET_CHANNEL_DATE_OF_BIRTH, pet.dateOfBirth == null ? UnDefType.UNDEF
|
||||
: new DateTimeType(pet.dateOfBirth.atStartOfDay(ZoneId.systemDefault())));
|
||||
@ -175,20 +190,6 @@ public class SurePetcarePetHandler extends SurePetcareBaseObjectHandler {
|
||||
updateState(PET_CHANNEL_TAG_IDENTIFIER, new StringType(tag.tag));
|
||||
}
|
||||
}
|
||||
if (pet.status.activity.deviceId != null) {
|
||||
SurePetcareDevice device = petcareAPI.getDevice(pet.status.activity.deviceId.toString());
|
||||
if (device != null) {
|
||||
updateState(PET_CHANNEL_LOCATION_CHANGED_THROUGH, new StringType(device.name));
|
||||
}
|
||||
} else if (pet.status.activity.userId != null) {
|
||||
SurePetcareHousehold household = petcareAPI.getHousehold(pet.householdId.toString());
|
||||
if (household != null) {
|
||||
Long userId = pet.status.activity.userId;
|
||||
household.users.stream().map(user -> user.user).filter(user -> userId.equals(user.userId))
|
||||
.forEach(user -> updateState(PET_CHANNEL_LOCATION_CHANGED_THROUGH,
|
||||
new StringType(user.userName)));
|
||||
}
|
||||
}
|
||||
SurePetcarePetFeeding feeding = pet.status.feeding;
|
||||
if (feeding != null) {
|
||||
SurePetcareDevice device = petcareAPI.getDevice(feeding.deviceId.toString());
|
||||
|
Loading…
Reference in New Issue
Block a user