Expose local_temperature_calibration to Home Assistant (#9595)

* expose local_temperature_calibration in HA as numeric

* fix eslint

* added min/max logic

* remove magic values

* Update homeassistant.ts

* Update types.d.ts

Co-authored-by: Koen Kanters <koenkanters94@gmail.com>
This commit is contained in:
Artem Draft
2021-11-10 20:17:56 +00:00
committed by GitHub
co-authored by Koen Kanters
parent 420bae4259
commit 6ca8d35183
2 changed files with 23 additions and 1 deletions
+22
View File
@@ -266,6 +266,28 @@ export default class HomeAssistant extends Extension {
`{{ value_json.${awayMode.property} }}`;
}
const tempCalibration = firstExpose.features.find((f) => f.name === 'local_temperature_calibration');
if (tempCalibration) {
const discoveryEntry: DiscoveryEntry = {
type: 'number',
object_id: endpoint ? `${tempCalibration.name}_${endpoint}` : `${tempCalibration.name}`,
mockProperties: [tempCalibration.property],
discovery_payload: {
value_template: `{{ value_json.${tempCalibration.property} }}`,
command_topic: true,
command_topic_prefix: endpoint,
command_topic_postfix: tempCalibration.property,
entity_category: 'config',
icon: 'mdi:math-compass',
...(tempCalibration.unit && {unit_of_measurement: tempCalibration.unit}),
},
};
if (tempCalibration.value_min != null) discoveryEntry.discovery_payload.min = tempCalibration.value_min;
if (tempCalibration.value_max != null) discoveryEntry.discovery_payload.max = tempCalibration.value_max;
discoveryEntries.push(discoveryEntry);
}
discoveryEntries.push(discoveryEntry);
} else if (firstExpose.type === 'lock') {
assert(!endpoint, `Endpoint not supported for lock type`);
+1 -1
View File
@@ -95,7 +95,7 @@ declare global {
}
interface DefinitionExposeFeature {name: string, endpoint?: string,
property: string, value_max?: number, value_min?: number,
property: string, value_max?: number, value_min?: number, unit?: string,
value_off?: string, value_on?: string, value_step?: number, values: string[], access: number}
interface DefinitionExpose {