2025-07-23 13:06:54 +02:00

30 lines
951 B
TypeScript

import { InclusionReportService } from "../fimp/inclusion_report";
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
import { HaComponent } from "../ha/publish_device";
export function battery__components(vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): { [key: string]: HaComponent } {
if (!svc.address) { return {}; }
if (svc.props?.sup_events?.includes('low_battery')) {
return {
[svc.address]: {
p: "binary_sensor",
device_class: "battery",
value_template: `{{ value_json['${svc.address}'].alarm.status == 'activ' | iif('on', 'off') }}`,
unique_id: svc.address,
},
};
}
else {
return {
[svc.address]: {
p: "sensor",
device_class: "battery",
unit_of_measurement: svc.props?.sup_units?.[0] ?? "%",
value_template: `{{ value_json['${svc.address}'].lvl }}`,
unique_id: svc.address,
},
}
};
}