diff --git a/lib/extension/homeassistant.js b/lib/extension/homeassistant.js index 0d0c67ab..32740716 100644 --- a/lib/extension/homeassistant.js +++ b/lib/extension/homeassistant.js @@ -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}); + } } }