23 lines
714 B
TypeScript
Raw Normal View History

2025-07-21 22:28:31 +02:00
import { MqttClient } from 'mqtt';
export function handleBattery(client: MqttClient, dev: any, svc: any) {
const uid = `fh_${dev.id}_${svc.name}`;
const base = `homeassistant/sensor/${uid}`;
// config
client.publish(`${base}/config`, JSON.stringify({
name: `${dev.name} Battery`,
uniq_id: uid,
dev_cla: "battery",
stat_t: `${base}/state`,
unit_of_meas: "%",
device: { identifiers: [dev.id.toString()], name: dev.name, model: dev.model }
}), { retain: true });
// initial state if available
const lvl = svc.attributes?.find((a: any) => a.name === 'lvl')?.values?.[0]?.val;
if (lvl !== undefined) {
client.publish(`${base}/state`, String(lvl), { retain: true });
}
}