Mock water_leak value for Home Assistant when it's not available. #3146

This commit is contained in:
Koen Kanters
2020-03-26 22:01:05 +01:00
parent 4ce9370cc0
commit 1c8ba3d28e
+19 -4
View File
@@ -1445,10 +1445,25 @@ class HomeAssistant extends BaseExtension {
* Publish a value for update_available (if not there yet) to prevent Home Assistant generating warnings of
* this value not being available.
*/
if (data.entity.device && data.entity.mapped && data.entity.mapped.hasOwnProperty('ota') &&
!data.payload.hasOwnProperty('update_available')) {
logger.debug(`Mocking update_available value for Home Assistant`);
this.publishEntityState(data.entity.device.ieeeAddr, {update_available: false});
const mockedValues = [
{
property: 'update_available',
condition: data.entity.device && data.entity.mapped && data.entity.mapped.hasOwnProperty('ota'),
value: false,
},
{
property: 'water_leak',
condition: data.entity.device && data.entity.mapped &&
mapping[data.entity.mapped.model].includes(cfg.binary_sensor_water_leak),
value: false,
},
];
for (const entry of mockedValues) {
if (entry.condition && !data.payload.hasOwnProperty(entry.property)) {
logger.debug(`Mocking '${entry.property}' value for Home Assistant`);
this.publishEntityState(data.entity.device.ieeeAddr, {[entry.property]: entry.value});
}
}
}