From c793cc83adb4bca427bd385ef80c271ef2fd11bb Mon Sep 17 00:00:00 2001 From: Filip Sandborg Date: Sat, 20 Nov 2021 13:59:04 +0100 Subject: [PATCH] Expose pi_heating_demand to Home Assistant (#9759) * homeassistant: expose pi_heating_demand on climate This allows homeassistant to access the actual percentage actuation currently used on thermostats. * Update homeassistant.ts Co-authored-by: Koen Kanters --- lib/extension/homeassistant.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/extension/homeassistant.ts b/lib/extension/homeassistant.ts index 62051f91..a1bdf1af 100644 --- a/lib/extension/homeassistant.ts +++ b/lib/extension/homeassistant.ts @@ -288,6 +288,23 @@ export default class HomeAssistant extends Extension { discoveryEntries.push(discoveryEntry); } + const piHeatingDemand = firstExpose.features.find((f) => f.name === 'pi_heating_demand'); + if (piHeatingDemand) { + const discoveryEntry = { + type: 'sensor', + object_id: endpoint ? `${piHeatingDemand.name}_${endpoint}` : `${piHeatingDemand.name}`, + mockProperties: [piHeatingDemand.property], + discovery_payload: { + value_template: `{{ value_json.${piHeatingDemand.property} }}`, + ...(piHeatingDemand.unit && {unit_of_measurement: piHeatingDemand.unit}), + entity_category: 'diagnostic', + icon: 'mdi:radiator', + }, + }; + + discoveryEntries.push(discoveryEntry); + } + discoveryEntries.push(discoveryEntry); } else if (firstExpose.type === 'lock') { assert(!endpoint, `Endpoint not supported for lock type`);