mirror of
https://github.com/adrianjagielak/home-assistant-futurehome.git
synced 2025-09-13 15:47:08 +00:00
Add support for 'out_lvl_switch' service
This commit is contained in:
parent
f120ee382c
commit
ecb49f7b77
@ -1,6 +1,6 @@
|
|||||||
# https://developers.home-assistant.io/docs/add-ons/configuration#add-on-config
|
# https://developers.home-assistant.io/docs/add-ons/configuration#add-on-config
|
||||||
name: Futurehome
|
name: Futurehome
|
||||||
version: "0.0.14"
|
version: "0.0.15"
|
||||||
slug: futurehome
|
slug: futurehome
|
||||||
description: Local Futurehome Smarthub integration
|
description: Local Futurehome Smarthub integration
|
||||||
url: "https://github.com/adrianjagielak/home-assistant-futurehome"
|
url: "https://github.com/adrianjagielak/home-assistant-futurehome"
|
||||||
|
@ -17,10 +17,7 @@ export type InclusionReport = {
|
|||||||
export type InclusionReportService = {
|
export type InclusionReportService = {
|
||||||
name?: string | null;
|
name?: string | null;
|
||||||
address?: string | null;
|
address?: string | null;
|
||||||
props?: {
|
props?: { [key: string]: any } | null
|
||||||
sup_units?: string[] | null;
|
|
||||||
sup_events?: string[] | null;
|
|
||||||
} | null
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export async function getInclusionReport(parameters: { adapterAddress: string; adapterService: string; deviceId: string }): Promise<InclusionReport> {
|
export async function getInclusionReport(parameters: { adapterAddress: string; adapterService: string; deviceId: string }): Promise<InclusionReport> {
|
||||||
|
@ -78,8 +78,12 @@ type HaDeviceConfig = {
|
|||||||
qos: number,
|
qos: number,
|
||||||
}
|
}
|
||||||
|
|
||||||
export type HaComponent = SensorComponent | BinarySensorComponent | SwitchComponent;
|
export type HaComponent = SensorComponent | BinarySensorComponent | SwitchComponent | NumberComponent;
|
||||||
|
|
||||||
|
// Device class supported values: https://www.home-assistant.io/integrations/homeassistant/#device-class
|
||||||
|
|
||||||
|
/// https://www.home-assistant.io/integrations/sensor.mqtt/
|
||||||
|
/// https://www.home-assistant.io/integrations/sensor/#device-class
|
||||||
type SensorComponent = {
|
type SensorComponent = {
|
||||||
unique_id: string;
|
unique_id: string;
|
||||||
// platform
|
// platform
|
||||||
@ -89,6 +93,8 @@ type SensorComponent = {
|
|||||||
value_template: string;
|
value_template: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// https://www.home-assistant.io/integrations/binary_sensor.mqtt/
|
||||||
|
/// https://www.home-assistant.io/integrations/binary_sensor/#device-class
|
||||||
type BinarySensorComponent = {
|
type BinarySensorComponent = {
|
||||||
unique_id: string;
|
unique_id: string;
|
||||||
// platform
|
// platform
|
||||||
@ -97,6 +103,8 @@ type BinarySensorComponent = {
|
|||||||
value_template: string;
|
value_template: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// https://www.home-assistant.io/integrations/switch.mqtt/
|
||||||
|
/// https://www.home-assistant.io/integrations/switch/#device-class
|
||||||
type SwitchComponent = {
|
type SwitchComponent = {
|
||||||
unique_id: string;
|
unique_id: string;
|
||||||
// platform
|
// platform
|
||||||
@ -106,6 +114,20 @@ type SwitchComponent = {
|
|||||||
value_template: string;
|
value_template: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// https://www.home-assistant.io/integrations/number.mqtt/
|
||||||
|
/// https://www.home-assistant.io/integrations/number/#device-class
|
||||||
|
type NumberComponent = {
|
||||||
|
unique_id: string;
|
||||||
|
// platform
|
||||||
|
p: 'number';
|
||||||
|
min: number;
|
||||||
|
max: number;
|
||||||
|
step: number;
|
||||||
|
command_topic: string;
|
||||||
|
optimistic: boolean;
|
||||||
|
value_template: string;
|
||||||
|
}
|
||||||
|
|
||||||
// todo button reference
|
// todo button reference
|
||||||
// "cmps": {
|
// "cmps": {
|
||||||
// "bla1": {
|
// "bla1": {
|
||||||
@ -126,7 +148,7 @@ export type ServiceComponentsCreationResult = {
|
|||||||
export type CommandHandlers = { [topic: string]: (payload: string) => Promise<void> }
|
export type CommandHandlers = { [topic: string]: (payload: string) => Promise<void> }
|
||||||
|
|
||||||
const serviceHandlers: {
|
const serviceHandlers: {
|
||||||
[name: string]: (topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService) => ServiceComponentsCreationResult
|
[name: string]: (topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService) => ServiceComponentsCreationResult | undefined
|
||||||
} = {
|
} = {
|
||||||
battery: battery__components,
|
battery: battery__components,
|
||||||
out_bin_switch: out_bin_switch__components,
|
out_bin_switch: out_bin_switch__components,
|
||||||
@ -186,14 +208,21 @@ export function haPublishDevice(parameters: { hubId: string, vinculumDeviceData:
|
|||||||
|
|
||||||
for (const svc of parameters.deviceInclusionReport.services) {
|
for (const svc of parameters.deviceInclusionReport.services) {
|
||||||
if (!svc.name) { continue; }
|
if (!svc.name) { continue; }
|
||||||
|
|
||||||
const handler = serviceHandlers[svc.name];
|
const handler = serviceHandlers[svc.name];
|
||||||
if (handler) {
|
if (!handler) {
|
||||||
|
log.error(`No handler for service: ${svc.name}`);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
const result = handler(topicPrefix, parameters.vinculumDeviceData, svc);
|
const result = handler(topicPrefix, parameters.vinculumDeviceData, svc);
|
||||||
|
if (!result) {
|
||||||
|
log.error(`Invalid service data prevented component creation: ${parameters.vinculumDeviceData} ${svc}`);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
Object.assign(components, result.components);
|
Object.assign(components, result.components);
|
||||||
Object.assign(handlers, result.commandHandlers);
|
Object.assign(handlers, result.commandHandlers);
|
||||||
} else {
|
|
||||||
log.error(`No handler for service: ${svc.name}`);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const configTopic = `${topicPrefix}/config`
|
const configTopic = `${topicPrefix}/config`
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function battery__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function battery__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
if (svc.props?.sup_events?.includes('low_battery')) {
|
if (svc.props?.sup_events?.includes('low_battery')) {
|
||||||
return {
|
return {
|
||||||
|
@ -3,21 +3,27 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function out_bin_switch__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function out_bin_switch__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
|
const commandTopic = `${topicPrefix}${svc.address}/command`;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
components: {
|
components: {
|
||||||
[svc.address]: {
|
[svc.address]: {
|
||||||
unique_id: svc.address,
|
unique_id: svc.address,
|
||||||
p: 'switch',
|
p: 'switch',
|
||||||
command_topic: `${topicPrefix}${svc.address}/command`,
|
command_topic: commandTopic,
|
||||||
optimistic: false,//todo
|
optimistic: false,
|
||||||
value_template: `{{ (value_json['${svc.address}'].binary) | iif('ON', 'OFF') }}`,
|
value_template: `{{ (value_json['${svc.address}'].binary) | iif('ON', 'OFF') }}`,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
commandHandlers: {
|
commandHandlers: {
|
||||||
[`${topicPrefix}${svc.address}/command`]: async (payload: string) => {
|
[commandTopic]: async (payload: string) => {
|
||||||
await sendFimpMsg({
|
await sendFimpMsg({
|
||||||
address: svc.address!,
|
address: svc.address!,
|
||||||
service: 'out_bin_switch',
|
service: 'out_bin_switch',
|
||||||
|
@ -1,17 +1,49 @@
|
|||||||
|
import { sendFimpMsg } from "../fimp/fimp";
|
||||||
import { InclusionReportService } from "../fimp/inclusion_report";
|
import { InclusionReportService } from "../fimp/inclusion_report";
|
||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function out_lvl_switch__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function out_lvl_switch__components(
|
||||||
if (!svc.address) { return {components: {}}; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
|
const commandTopic = `${topicPrefix}${svc.address}/command`;
|
||||||
|
|
||||||
|
const minLvl = svc.props?.min_lvl ?? 0;
|
||||||
|
const maxLvl = svc.props?.max_lvl ?? 100;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
components: {
|
components: {
|
||||||
// [svc.address]: {
|
[svc.address]: {
|
||||||
// p: 'sensor',
|
unique_id: svc.address,
|
||||||
// device_class: 'temperature",
|
p: "number",
|
||||||
// unit_of_measurement: "°C",
|
min: minLvl,
|
||||||
// value_template: `{{ value_json['${svc.address}'].sensor }}`,
|
max: maxLvl,
|
||||||
// },
|
step: 1,
|
||||||
},};
|
command_topic: commandTopic,
|
||||||
|
optimistic: false,
|
||||||
|
value_template: `{{ value_json['${svc.address}'].lvl }}`,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
commandHandlers: {
|
||||||
|
[commandTopic]: async (payload: string) => {
|
||||||
|
const lvl = parseInt(payload, 10);
|
||||||
|
if (Number.isNaN(lvl)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
await sendFimpMsg({
|
||||||
|
address: svc.address!,
|
||||||
|
service: "out_lvl_switch",
|
||||||
|
cmd: "cmd.lvl.set",
|
||||||
|
val: lvl,
|
||||||
|
val_t: "int",
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_accelx__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_accelx__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = undefined;
|
const device_class = undefined;
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'm/s2';
|
const unit = svc.props?.sup_units?.[0] ?? 'm/s2';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_accely__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_accely__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = undefined;
|
const device_class = undefined;
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'm/s2';
|
const unit = svc.props?.sup_units?.[0] ?? 'm/s2';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_accelz__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_accelz__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = undefined;
|
const device_class = undefined;
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'm/s2';
|
const unit = svc.props?.sup_units?.[0] ?? 'm/s2';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_airflow__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_airflow__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = undefined;
|
const device_class = undefined;
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'm3/h';
|
const unit = svc.props?.sup_units?.[0] ?? 'm3/h';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_airq__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_airq__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'aqi';
|
const device_class = 'aqi';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'pm25';
|
const unit = svc.props?.sup_units?.[0] ?? 'pm25';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_anglepos__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_anglepos__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = undefined;
|
const device_class = undefined;
|
||||||
const unit = svc.props?.sup_units?.[0] ?? '%';
|
const unit = svc.props?.sup_units?.[0] ?? '%';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_atmo__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_atmo__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'atmospheric_pressure';
|
const device_class = 'atmospheric_pressure';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'kPa';
|
const unit = svc.props?.sup_units?.[0] ?? 'kPa';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_baro__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_baro__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'atmospheric_pressure';
|
const device_class = 'atmospheric_pressure';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'kPa';
|
const unit = svc.props?.sup_units?.[0] ?? 'kPa';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_co__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_co__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'carbon_monoxide';
|
const device_class = 'carbon_monoxide';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'mol/m3';
|
const unit = svc.props?.sup_units?.[0] ?? 'mol/m3';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_co2__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_co2__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'carbon_dioxide';
|
const device_class = 'carbon_dioxide';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'ppm';
|
const unit = svc.props?.sup_units?.[0] ?? 'ppm';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_contact__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_contact__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'opening'
|
const device_class = 'opening'
|
||||||
|
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_current__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_current__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'current';
|
const device_class = 'current';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'A';
|
const unit = svc.props?.sup_units?.[0] ?? 'A';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_dew__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_dew__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'temperature'
|
const device_class = 'temperature'
|
||||||
let unit = svc.props?.sup_units?.[0] ?? "°C";
|
let unit = svc.props?.sup_units?.[0] ?? "°C";
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_direct__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_direct__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'wind_direction';
|
const device_class = 'wind_direction';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? '°';
|
const unit = svc.props?.sup_units?.[0] ?? '°';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_distance__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_distance__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'distance';
|
const device_class = 'distance';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'm';
|
const unit = svc.props?.sup_units?.[0] ?? 'm';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_elresist__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_elresist__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = undefined;
|
const device_class = undefined;
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'ohm/m';
|
const unit = svc.props?.sup_units?.[0] ?? 'ohm/m';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_freq__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_freq__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'frequency';
|
const device_class = 'frequency';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'Hz';
|
const unit = svc.props?.sup_units?.[0] ?? 'Hz';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_gp__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_gp__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = undefined;
|
const device_class = undefined;
|
||||||
const unit = svc.props?.sup_units?.[0] ?? '%';
|
const unit = svc.props?.sup_units?.[0] ?? '%';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_gust__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_gust__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = undefined;
|
const device_class = undefined;
|
||||||
let unit = svc.props?.sup_units?.[0] ?? 'km/h';
|
let unit = svc.props?.sup_units?.[0] ?? 'km/h';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_humid__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_humid__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'humidity';
|
const device_class = 'humidity';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? '%';
|
const unit = svc.props?.sup_units?.[0] ?? '%';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_lumin__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_lumin__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'illuminance';
|
const device_class = 'illuminance';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'Lux';
|
const unit = svc.props?.sup_units?.[0] ?? 'Lux';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_moist__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_moist__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'moisture';
|
const device_class = 'moisture';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? '%';
|
const unit = svc.props?.sup_units?.[0] ?? '%';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_noise__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_noise__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'sound_pressure';
|
const device_class = 'sound_pressure';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'dB';
|
const unit = svc.props?.sup_units?.[0] ?? 'dB';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_power__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_power__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'power';
|
const device_class = 'power';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'W';
|
const unit = svc.props?.sup_units?.[0] ?? 'W';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_presence__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_presence__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'occupancy'
|
const device_class = 'occupancy'
|
||||||
|
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_rain__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_rain__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'precipitation_intensity';
|
const device_class = 'precipitation_intensity';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'mm/h';
|
const unit = svc.props?.sup_units?.[0] ?? 'mm/h';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_rotation__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_rotation__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = undefined;
|
const device_class = undefined;
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'rpm';
|
const unit = svc.props?.sup_units?.[0] ?? 'rpm';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_seismicint__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_seismicint__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = undefined;
|
const device_class = undefined;
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'EMCRO';
|
const unit = svc.props?.sup_units?.[0] ?? 'EMCRO';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_seismicmag__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_seismicmag__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = undefined;
|
const device_class = undefined;
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'MB';
|
const unit = svc.props?.sup_units?.[0] ?? 'MB';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_solarrad__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_solarrad__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = undefined;
|
const device_class = undefined;
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'W/m2';
|
const unit = svc.props?.sup_units?.[0] ?? 'W/m2';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_tank__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_tank__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'volume_storage';
|
const device_class = 'volume_storage';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'l';
|
const unit = svc.props?.sup_units?.[0] ?? 'l';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_temp__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_temp__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'temperature'
|
const device_class = 'temperature'
|
||||||
let unit = svc.props?.sup_units?.[0] ?? "°C";
|
let unit = svc.props?.sup_units?.[0] ?? "°C";
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_tidelvl__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_tidelvl__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = undefined;
|
const device_class = undefined;
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'm';
|
const unit = svc.props?.sup_units?.[0] ?? 'm';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_uv__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_uv__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = undefined;
|
const device_class = undefined;
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'index';
|
const unit = svc.props?.sup_units?.[0] ?? 'index';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_veloc__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_veloc__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = undefined;
|
const device_class = undefined;
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'm/2';
|
const unit = svc.props?.sup_units?.[0] ?? 'm/2';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_voltage__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_voltage__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'voltage';
|
const device_class = 'voltage';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'V';
|
const unit = svc.props?.sup_units?.[0] ?? 'V';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_watflow__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_watflow__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'volume_flow_rate';
|
const device_class = 'volume_flow_rate';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'l/h';
|
const unit = svc.props?.sup_units?.[0] ?? 'l/h';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_watpressure__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_watpressure__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'pressure';
|
const device_class = 'pressure';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'kPa';
|
const unit = svc.props?.sup_units?.[0] ?? 'kPa';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_wattemp__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_wattemp__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'temperature';
|
const device_class = 'temperature';
|
||||||
let unit = svc.props?.sup_units?.[0] ?? "°C";
|
let unit = svc.props?.sup_units?.[0] ?? "°C";
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_weight__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_weight__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'weight';
|
const device_class = 'weight';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'kg';
|
const unit = svc.props?.sup_units?.[0] ?? 'kg';
|
||||||
|
@ -2,8 +2,12 @@ import { InclusionReportService } from "../fimp/inclusion_report";
|
|||||||
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
import { VinculumPd7Device } from "../fimp/vinculum_pd7_device";
|
||||||
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
import { ServiceComponentsCreationResult } from "../ha/publish_device";
|
||||||
|
|
||||||
export function sensor_wind__components(topicPrefix: string, vinculumDeviceData: VinculumPd7Device, svc: InclusionReportService): ServiceComponentsCreationResult {
|
export function sensor_wind__components(
|
||||||
if (!svc.address) { return { components: {} }; }
|
topicPrefix: string,
|
||||||
|
vinculumDeviceData: VinculumPd7Device,
|
||||||
|
svc: InclusionReportService
|
||||||
|
): ServiceComponentsCreationResult | undefined {
|
||||||
|
if (!svc.address) { return; }
|
||||||
|
|
||||||
const device_class = 'wind_speed';
|
const device_class = 'wind_speed';
|
||||||
const unit = svc.props?.sup_units?.[0] ?? 'km/h';
|
const unit = svc.props?.sup_units?.[0] ?? 'km/h';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user