2025-07-23 13:50:33 +02:00

30 lines
953 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]: {
unique_id: svc.address,
p: 'binary_sensor',
device_class: 'battery',
value_template: `{{ (value_json['${svc.address}'].alarm.status == 'activ') | iif('ON', 'OFF') }}`,
},
};
}
else {
return {
[svc.address]: {
unique_id: svc.address,
p: 'sensor',
device_class: 'battery',
unit_of_measurement: svc.props?.sup_units?.[0] ?? '%',
value_template: `{{ value_json['${svc.address}'].lvl }}`,
},
}
};
}