From f120ee382c432920ee5d50173651cdf338bed0ab Mon Sep 17 00:00:00 2001 From: Adrian Jagielak Date: Wed, 23 Jul 2025 15:35:48 +0200 Subject: [PATCH] Remove the old parsers --- futurehome/src/parsers/battery.ts | 22 ----------- futurehome/src/parsers/out_bin_switch.ts | 35 ----------------- futurehome/src/parsers/out_lvl_switch.ts | 47 ----------------------- futurehome/src/parsers/sensor_presence.ts | 20 ---------- futurehome/src/parsers/sensor_temp.ts | 20 ---------- 5 files changed, 144 deletions(-) delete mode 100644 futurehome/src/parsers/battery.ts delete mode 100644 futurehome/src/parsers/out_bin_switch.ts delete mode 100644 futurehome/src/parsers/out_lvl_switch.ts delete mode 100644 futurehome/src/parsers/sensor_presence.ts delete mode 100644 futurehome/src/parsers/sensor_temp.ts diff --git a/futurehome/src/parsers/battery.ts b/futurehome/src/parsers/battery.ts deleted file mode 100644 index 930397d..0000000 --- a/futurehome/src/parsers/battery.ts +++ /dev/null @@ -1,22 +0,0 @@ -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 }); - } -} diff --git a/futurehome/src/parsers/out_bin_switch.ts b/futurehome/src/parsers/out_bin_switch.ts deleted file mode 100644 index 22279fe..0000000 --- a/futurehome/src/parsers/out_bin_switch.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { MqttClient } from 'mqtt'; -import { v4 as uuidv4 } from 'uuid'; - -export function handleBinSwitch(client: MqttClient, dev: any, svc: any) { - const uid = `fh_${dev.id}_${svc.name}`; - const base = `homeassistant/switch/${uid}`; - - client.publish(`${base}/config`, JSON.stringify({ - name: dev.name, - uniq_id: uid, - cmd_t: `${base}/set`, - stat_t: `${base}/state`, - device: { identifiers: [dev.id.toString()], name: dev.name, model: dev.model } - }), { retain: true }); - - // current value - const bin = svc.attributes?.find((a: any) => a.name === 'binary')?.values?.[0]?.val; - client.publish(`${base}/state`, bin ? 'ON' : 'OFF', { retain: true }); - - // HA → Smarthub - client.subscribe(`${base}/set`, { qos: 0 }); - client.on('message', (topic, payload) => { - if (topic !== `${base}/set`) return; - const target = payload.toString() === 'ON'; - - client.publish(`pt:j1/mt:cmd/${svc.address}`, JSON.stringify({ - type: "cmd.binary.set", - service: svc.name, - uid: uuidv4(), - val_t: "bool", - val: target, - src: "ha-futurehome" - }), { qos: 1 }); - }); -} diff --git a/futurehome/src/parsers/out_lvl_switch.ts b/futurehome/src/parsers/out_lvl_switch.ts deleted file mode 100644 index 24974a7..0000000 --- a/futurehome/src/parsers/out_lvl_switch.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { MqttClient } from 'mqtt'; -import { v4 as uuidv4 } from 'uuid'; - -export function handleLvlSwitch(client: MqttClient, dev: any, svc: any) { - const uid = `fh_${dev.id}_${svc.name}`; - const base = `homeassistant/light/${uid}`; - - client.publish(`${base}/config`, JSON.stringify({ - name: dev.name, - uniq_id: uid, - cmd_t: `${base}/set`, - stat_t: `${base}/state`, - bri_cmd_t: `${base}/brightness/set`, - bri_stat_t: `${base}/brightness/state`, - schema: "template", - device: { identifiers: [dev.id.toString()], name: dev.name, model: dev.model } - }), { retain: true }); - - const bin = svc.attributes?.find((a: any) => a.name === 'binary')?.values?.[0]?.val; - const lvl = svc.attributes?.find((a: any) => a.name === 'lvl')?.values?.[0]?.val; - client.publish(`${base}/state`, bin ? "ON" : "OFF", { retain: true }); - if (lvl !== undefined) client.publish(`${base}/brightness/state`, String(lvl), { retain: true }); - - client.subscribe([`${base}/set`, `${base}/brightness/set`]); - - client.on('message', (topic, payload) => { - if (topic === `${base}/set`) { - const on = payload.toString() === 'ON'; - client.publish(`pt:j1/mt:cmd/${svc.address}`, JSON.stringify({ - type: "cmd.binary.set", - service: svc.name, - uid: uuidv4(), - val_t: "bool", - val: on - }), { qos: 1 }); - } else if (topic === `${base}/brightness/set`) { - const value = parseInt(payload.toString(), 10); - client.publish(`pt:j1/mt:cmd/${svc.address}`, JSON.stringify({ - type: "cmd.lvl.set", - service: svc.name, - uid: uuidv4(), - val_t: "int", - val: value - }), { qos: 1 }); - } - }); -} diff --git a/futurehome/src/parsers/sensor_presence.ts b/futurehome/src/parsers/sensor_presence.ts deleted file mode 100644 index df11d1d..0000000 --- a/futurehome/src/parsers/sensor_presence.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { MqttClient } from 'mqtt'; - -export function handlePresenceSensor(client: MqttClient, dev: any, svc: any) { - const uid = `fh_${dev.id}_${svc.name}`; - const base = `homeassistant/sensor/${uid}`; - - client.publish(`${base}/config`, JSON.stringify({ - name: `${dev.name} Presence`, - uniq_id: uid, - dev_cla: "presence", - stat_t: `${base}/state`, - unit_of_meas: "°C", - device: { identifiers: [dev.id.toString()], name: dev.name, model: dev.model } - }), { retain: true }); - - const presence = svc.attributes?.find((a: any) => a.name === 'presence')?.values?.[0]?.val; - if (presence !== undefined) { - client.publish(`${base}/state`, String(presence), { retain: true }); - } -} diff --git a/futurehome/src/parsers/sensor_temp.ts b/futurehome/src/parsers/sensor_temp.ts deleted file mode 100644 index 72c49ec..0000000 --- a/futurehome/src/parsers/sensor_temp.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { MqttClient } from 'mqtt'; - -export function handleTempSensor(client: MqttClient, dev: any, svc: any) { - const uid = `fh_${dev.id}_${svc.name}`; - const base = `homeassistant/sensor/${uid}`; - - client.publish(`${base}/config`, JSON.stringify({ - name: `${dev.name} Temperature`, - uniq_id: uid, - dev_cla: "temperature", - stat_t: `${base}/state`, - unit_of_meas: "°C", - device: { identifiers: [dev.id.toString()], name: dev.name, model: dev.model } - }), { retain: true }); - - const temp = svc.attributes?.find((a: any) => a.name === 'sensor')?.values?.[0]?.val; - if (temp !== undefined) { - client.publish(`${base}/state`, String(temp), { retain: true }); - } -}