diff --git a/lib/extension/homeassistant.ts b/lib/extension/homeassistant.ts index 93d1e6f3..2d86016c 100644 --- a/lib/extension/homeassistant.ts +++ b/lib/extension/homeassistant.ts @@ -899,24 +899,25 @@ export default class HomeAssistant extends Extension { icon: 'mdi:update', value_template: `{{ value_json['update']['state'] }}`, enabled_by_default: false, + entity_category: 'diagnostic', }, }; configs.push(updateStateSensor); - if (this.legacyApi) { - const updateAvailableSensor = { - type: 'binary_sensor', - object_id: 'update_available', - mockProperties: ['update_available'], - discovery_payload: { - payload_on: true, - payload_off: false, - value_template: '{{ value_json.update_available}}', - enabled_by_default: false, - }, - }; - configs.push(updateAvailableSensor); - } + const updateAvailableSensor = { + type: 'binary_sensor', + object_id: 'update_available', + mockProperties: ['update_available'], + discovery_payload: { + payload_on: true, + payload_off: false, + value_template: `{{ value_json['update']['state'] == "available" }}`, + enabled_by_default: true, + device_class: 'update', + entity_category: 'diagnostic', + }, + }; + configs.push(updateAvailableSensor); } if (isDevice && entity.settings.hasOwnProperty('legacy') && !entity.settings.legacy) { diff --git a/test/homeassistant.test.js b/test/homeassistant.test.js index 14598f76..111f0865 100644 --- a/test/homeassistant.test.js +++ b/test/homeassistant.test.js @@ -1182,8 +1182,8 @@ describe('HomeAssistant extension', () => { const payload = { "payload_on":true, "payload_off":false, - "value_template":"{{ value_json.update_available}}", - "enabled_by_default": false, + "value_template":`{{ value_json['update']['state'] == "available" }}`, + "enabled_by_default": true, "state_topic":"zigbee2mqtt/bulb", "json_attributes_topic":"zigbee2mqtt/bulb", "name":"bulb update available", @@ -1198,6 +1198,8 @@ describe('HomeAssistant extension', () => { "manufacturer":"IKEA" }, 'availability': [{topic: 'zigbee2mqtt/bridge/state'}], + 'device_class': 'update', + 'entity_category': 'diagnostic' }; expect(MQTT.publish).toHaveBeenCalledWith(