mirror of
https://github.com/adrianjagielak/home-assistant-futurehome.git
synced 2025-09-13 15:47:08 +00:00
Remove the old parsers
This commit is contained in:
parent
d608afb455
commit
f120ee382c
@ -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 });
|
||||
}
|
||||
}
|
@ -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 });
|
||||
});
|
||||
}
|
@ -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 });
|
||||
}
|
||||
});
|
||||
}
|
@ -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 });
|
||||
}
|
||||
}
|
@ -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 });
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user