diff --git a/assets/home_assistant_screenshot_dark_mode.jpg b/assets/home_assistant_screenshot_dark_mode.jpg index 78fe753..15499d0 100644 Binary files a/assets/home_assistant_screenshot_dark_mode.jpg and b/assets/home_assistant_screenshot_dark_mode.jpg differ diff --git a/assets/home_assistant_screenshot_light_mode.jpg b/assets/home_assistant_screenshot_light_mode.jpg index 456068c..eb94819 100644 Binary files a/assets/home_assistant_screenshot_light_mode.jpg and b/assets/home_assistant_screenshot_light_mode.jpg differ diff --git a/futurehome/CHANGELOG.md b/futurehome/CHANGELOG.md index b71a900..bc33f56 100644 --- a/futurehome/CHANGELOG.md +++ b/futurehome/CHANGELOG.md @@ -5,6 +5,7 @@ - Added support for 'chargepoint' service (EV chargers). - Updated demo mode data to add thermostat with dual setpoint system (heat+cool). +- Added default entities names. ## 0.1.2 (24.07.2025) diff --git a/futurehome/src/services/barrier_ctrl.ts b/futurehome/src/services/barrier_ctrl.ts index 1dee914..5a8895f 100644 --- a/futurehome/src/services/barrier_ctrl.ts +++ b/futurehome/src/services/barrier_ctrl.ts @@ -41,6 +41,7 @@ export function barrier_ctrl__components( } else { deviceClass = null; } + const name = deviceClass ? undefined : 'Barrier'; // Check if position control is supported const supportsPosition = svc.props?.sup_tposition === true; @@ -50,6 +51,7 @@ export function barrier_ctrl__components( unique_id: svc.addr, platform: 'cover', device_class: deviceClass, + name: name, command_topic: commandTopic, optimistic: false, value_template: `{{ value_json['${svc.addr}'].state }}`, diff --git a/futurehome/src/services/basic.ts b/futurehome/src/services/basic.ts index b59100e..3b9a2c6 100644 --- a/futurehome/src/services/basic.ts +++ b/futurehome/src/services/basic.ts @@ -16,7 +16,7 @@ import { ServiceComponentsCreationResult } from '../ha/publish_device'; export function basic__components( topicPrefix: string, - _device: VinculumPd7Device, + device: VinculumPd7Device, svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { // MQTT topic that HA will publish commands to @@ -31,6 +31,7 @@ export function basic__components( [svc.addr]: { unique_id: svc.addr, platform: 'number', + name: device.client?.name ?? device?.modelAlias, min: MIN_LVL, max: MAX_LVL, step: 1, diff --git a/futurehome/src/services/color_ctrl.ts b/futurehome/src/services/color_ctrl.ts index f22c6a1..1e922e9 100644 --- a/futurehome/src/services/color_ctrl.ts +++ b/futurehome/src/services/color_ctrl.ts @@ -58,6 +58,7 @@ export function color_ctrl__components( const lightComponent: LightComponent = { unique_id: svc.addr, platform: 'light', + name: 'Light', // Basic on/off control command_topic: commandTopic, diff --git a/futurehome/src/services/fan_ctrl.ts b/futurehome/src/services/fan_ctrl.ts index 6cece42..5b5800d 100644 --- a/futurehome/src/services/fan_ctrl.ts +++ b/futurehome/src/services/fan_ctrl.ts @@ -21,6 +21,7 @@ export function fan_ctrl__components( [svc.addr]: { unique_id: svc.addr, platform: 'fan', + name: 'Fan', command_topic: commandTopic, optimistic: false, preset_modes: supModes, diff --git a/futurehome/src/services/out_bin_switch.ts b/futurehome/src/services/out_bin_switch.ts index 5e20973..aa936e1 100644 --- a/futurehome/src/services/out_bin_switch.ts +++ b/futurehome/src/services/out_bin_switch.ts @@ -17,6 +17,7 @@ export function out_bin_switch__components( [svc.addr]: { unique_id: svc.addr, platform: 'switch', + name: 'Binary Switch', command_topic: commandTopic, optimistic: false, value_template: `{{ (value_json['${svc.addr}'].binary) | iif('ON', 'OFF') }}`, diff --git a/futurehome/src/services/out_lvl_switch.ts b/futurehome/src/services/out_lvl_switch.ts index 104da9d..47a30fc 100644 --- a/futurehome/src/services/out_lvl_switch.ts +++ b/futurehome/src/services/out_lvl_switch.ts @@ -20,6 +20,7 @@ export function out_lvl_switch__components( [svc.addr]: { unique_id: svc.addr, platform: 'number', + name: 'Level Switch', min: minLvl, max: maxLvl, step: 1, diff --git a/futurehome/src/services/scene_ctrl.ts b/futurehome/src/services/scene_ctrl.ts index 507eeb0..cf805ce 100644 --- a/futurehome/src/services/scene_ctrl.ts +++ b/futurehome/src/services/scene_ctrl.ts @@ -35,20 +35,12 @@ export function scene_ctrl__components( components[`${svc.addr}_scene`] = { unique_id: `${svc.addr}_scene`, platform: 'sensor', + name: 'Scene', unit_of_measurement: '', value_template: `{{ value_json['${svc.addr}'].scene }}`, }; } - if (svc.intf?.includes('evt.lvl.report')) { - components[`${svc.addr}_lvl`] = { - unique_id: `${svc.addr}_lvl`, - platform: 'sensor', - unit_of_measurement: '', - value_template: `{{ value_json['${svc.addr}'].lvl }}`, - }; - } - // ───────────── writeable “select” (scene activator) ───────────── const supScenes: string[] = svc.props?.sup_scenes ?? []; if (svc.intf?.includes('cmd.scene.set') && supScenes.length) { @@ -57,6 +49,7 @@ export function scene_ctrl__components( components[`${svc.addr}_select`] = { unique_id: `${svc.addr}_select`, platform: 'select', + name: 'Scene', options: supScenes, command_topic: commandTopic, optimistic: false, diff --git a/futurehome/src/services/sensor_accelx.ts b/futurehome/src/services/sensor_accelx.ts index 82e0378..dc9cf26 100644 --- a/futurehome/src/services/sensor_accelx.ts +++ b/futurehome/src/services/sensor_accelx.ts @@ -10,6 +10,7 @@ export function sensor_accelx__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = undefined; + const name = 'Acceleration, X-axis'; const unit = svc.props?.sup_units?.[0] ?? 'm/s2'; return { @@ -17,6 +18,7 @@ export function sensor_accelx__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_accely.ts b/futurehome/src/services/sensor_accely.ts index e7b631d..de27014 100644 --- a/futurehome/src/services/sensor_accely.ts +++ b/futurehome/src/services/sensor_accely.ts @@ -10,6 +10,7 @@ export function sensor_accely__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = undefined; + const name = 'Acceleration, Y-axis'; const unit = svc.props?.sup_units?.[0] ?? 'm/s2'; return { @@ -17,6 +18,7 @@ export function sensor_accely__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_accelz.ts b/futurehome/src/services/sensor_accelz.ts index 3b23e71..f74d039 100644 --- a/futurehome/src/services/sensor_accelz.ts +++ b/futurehome/src/services/sensor_accelz.ts @@ -10,6 +10,7 @@ export function sensor_accelz__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = undefined; + const name = 'Acceleration, Z-axis'; const unit = svc.props?.sup_units?.[0] ?? 'm/s2'; return { @@ -17,6 +18,7 @@ export function sensor_accelz__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_airflow.ts b/futurehome/src/services/sensor_airflow.ts index 0cc2b3b..3a85af7 100644 --- a/futurehome/src/services/sensor_airflow.ts +++ b/futurehome/src/services/sensor_airflow.ts @@ -10,6 +10,7 @@ export function sensor_airflow__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = undefined; + const name = 'Air flow'; const unit = svc.props?.sup_units?.[0] ?? 'm3/h'; return { @@ -17,6 +18,7 @@ export function sensor_airflow__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_airq.ts b/futurehome/src/services/sensor_airq.ts index 4d254cb..6428364 100644 --- a/futurehome/src/services/sensor_airq.ts +++ b/futurehome/src/services/sensor_airq.ts @@ -10,6 +10,7 @@ export function sensor_airq__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'aqi'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? 'pm25'; return { @@ -17,6 +18,7 @@ export function sensor_airq__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_anglepos.ts b/futurehome/src/services/sensor_anglepos.ts index f3d9fc1..fa4e189 100644 --- a/futurehome/src/services/sensor_anglepos.ts +++ b/futurehome/src/services/sensor_anglepos.ts @@ -10,14 +10,18 @@ export function sensor_anglepos__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = undefined; + const name = 'Angle Position'; const unit = svc.props?.sup_units?.[0] ?? '%'; + const state_class = svc.props?.sup_units?.[0] === '%' ? 'measurement' : 'measurement_angle'; return { components: { [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, + state_class: state_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, }, diff --git a/futurehome/src/services/sensor_atmo.ts b/futurehome/src/services/sensor_atmo.ts index 5f90839..fbc5fe9 100644 --- a/futurehome/src/services/sensor_atmo.ts +++ b/futurehome/src/services/sensor_atmo.ts @@ -10,6 +10,7 @@ export function sensor_atmo__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'atmospheric_pressure'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? 'kPa'; return { @@ -17,6 +18,7 @@ export function sensor_atmo__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_baro.ts b/futurehome/src/services/sensor_baro.ts index 4869c74..7b6a3e9 100644 --- a/futurehome/src/services/sensor_baro.ts +++ b/futurehome/src/services/sensor_baro.ts @@ -10,6 +10,7 @@ export function sensor_baro__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'atmospheric_pressure'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? 'kPa'; return { @@ -17,6 +18,7 @@ export function sensor_baro__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_co.ts b/futurehome/src/services/sensor_co.ts index 2b08a88..78187e0 100644 --- a/futurehome/src/services/sensor_co.ts +++ b/futurehome/src/services/sensor_co.ts @@ -10,6 +10,7 @@ export function sensor_co__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'carbon_monoxide'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? 'mol/m3'; return { @@ -17,6 +18,7 @@ export function sensor_co__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_co2.ts b/futurehome/src/services/sensor_co2.ts index 97ef8bb..dae3ffc 100644 --- a/futurehome/src/services/sensor_co2.ts +++ b/futurehome/src/services/sensor_co2.ts @@ -10,6 +10,7 @@ export function sensor_co2__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'carbon_dioxide'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? 'ppm'; return { @@ -17,6 +18,7 @@ export function sensor_co2__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_current.ts b/futurehome/src/services/sensor_current.ts index 62743e5..404082b 100644 --- a/futurehome/src/services/sensor_current.ts +++ b/futurehome/src/services/sensor_current.ts @@ -10,6 +10,7 @@ export function sensor_current__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'current'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? 'A'; return { @@ -17,6 +18,7 @@ export function sensor_current__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_dew.ts b/futurehome/src/services/sensor_dew.ts index de383c0..4a075b7 100644 --- a/futurehome/src/services/sensor_dew.ts +++ b/futurehome/src/services/sensor_dew.ts @@ -10,6 +10,7 @@ export function sensor_dew__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'temperature'; + const name = undefined; let unit = svc.props?.sup_units?.[0] ?? '°C'; if (unit === 'C') unit = '°C'; if (unit === 'F') unit = '°F'; @@ -19,6 +20,7 @@ export function sensor_dew__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_direct.ts b/futurehome/src/services/sensor_direct.ts index b764369..7b64237 100644 --- a/futurehome/src/services/sensor_direct.ts +++ b/futurehome/src/services/sensor_direct.ts @@ -10,6 +10,7 @@ export function sensor_direct__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'wind_direction'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? '°'; return { @@ -17,6 +18,7 @@ export function sensor_direct__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_distance.ts b/futurehome/src/services/sensor_distance.ts index 2f7214d..8218ef1 100644 --- a/futurehome/src/services/sensor_distance.ts +++ b/futurehome/src/services/sensor_distance.ts @@ -10,6 +10,7 @@ export function sensor_distance__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'distance'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? 'm'; return { @@ -17,6 +18,7 @@ export function sensor_distance__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_elresist.ts b/futurehome/src/services/sensor_elresist.ts index e333b5f..03adf22 100644 --- a/futurehome/src/services/sensor_elresist.ts +++ b/futurehome/src/services/sensor_elresist.ts @@ -10,6 +10,7 @@ export function sensor_elresist__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = undefined; + const name = 'Electrical resistivity'; const unit = svc.props?.sup_units?.[0] ?? 'ohm/m'; return { @@ -17,6 +18,7 @@ export function sensor_elresist__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_freq.ts b/futurehome/src/services/sensor_freq.ts index 17b9de8..319989c 100644 --- a/futurehome/src/services/sensor_freq.ts +++ b/futurehome/src/services/sensor_freq.ts @@ -10,6 +10,7 @@ export function sensor_freq__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'frequency'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? 'Hz'; return { @@ -17,6 +18,7 @@ export function sensor_freq__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_gp.ts b/futurehome/src/services/sensor_gp.ts index b556810..4eb8897 100644 --- a/futurehome/src/services/sensor_gp.ts +++ b/futurehome/src/services/sensor_gp.ts @@ -10,6 +10,7 @@ export function sensor_gp__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = undefined; + const name = 'Sensor'; const unit = svc.props?.sup_units?.[0] ?? '%'; return { @@ -17,6 +18,7 @@ export function sensor_gp__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_gust.ts b/futurehome/src/services/sensor_gust.ts index ac33413..46d7d3e 100644 --- a/futurehome/src/services/sensor_gust.ts +++ b/futurehome/src/services/sensor_gust.ts @@ -10,6 +10,7 @@ export function sensor_gust__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = undefined; + const name = 'Gust'; let unit = svc.props?.sup_units?.[0] ?? 'km/h'; if (unit === 'kph') unit = 'km/h'; @@ -18,6 +19,7 @@ export function sensor_gust__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_humid.ts b/futurehome/src/services/sensor_humid.ts index 1924d6f..946e463 100644 --- a/futurehome/src/services/sensor_humid.ts +++ b/futurehome/src/services/sensor_humid.ts @@ -10,6 +10,7 @@ export function sensor_humid__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'humidity'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? '%'; return { @@ -17,6 +18,7 @@ export function sensor_humid__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_lumin.ts b/futurehome/src/services/sensor_lumin.ts index 03da7a7..9f5c878 100644 --- a/futurehome/src/services/sensor_lumin.ts +++ b/futurehome/src/services/sensor_lumin.ts @@ -10,6 +10,7 @@ export function sensor_lumin__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'illuminance'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? 'lx'; return { @@ -17,6 +18,7 @@ export function sensor_lumin__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_moist.ts b/futurehome/src/services/sensor_moist.ts index 2bb8ddf..85433ad 100644 --- a/futurehome/src/services/sensor_moist.ts +++ b/futurehome/src/services/sensor_moist.ts @@ -10,6 +10,7 @@ export function sensor_moist__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'moisture'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? '%'; return { @@ -17,6 +18,7 @@ export function sensor_moist__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_noise.ts b/futurehome/src/services/sensor_noise.ts index ca99bc4..4d04566 100644 --- a/futurehome/src/services/sensor_noise.ts +++ b/futurehome/src/services/sensor_noise.ts @@ -10,6 +10,7 @@ export function sensor_noise__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'sound_pressure'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? 'dB'; return { @@ -17,6 +18,7 @@ export function sensor_noise__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_power.ts b/futurehome/src/services/sensor_power.ts index 744977a..b2c9362 100644 --- a/futurehome/src/services/sensor_power.ts +++ b/futurehome/src/services/sensor_power.ts @@ -10,6 +10,7 @@ export function sensor_power__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'power'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? 'W'; return { @@ -17,6 +18,7 @@ export function sensor_power__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_rain.ts b/futurehome/src/services/sensor_rain.ts index e8896a7..93e4511 100644 --- a/futurehome/src/services/sensor_rain.ts +++ b/futurehome/src/services/sensor_rain.ts @@ -10,6 +10,7 @@ export function sensor_rain__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'precipitation_intensity'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? 'mm/h'; return { @@ -17,6 +18,7 @@ export function sensor_rain__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_rotation.ts b/futurehome/src/services/sensor_rotation.ts index e243f0d..1d99d3c 100644 --- a/futurehome/src/services/sensor_rotation.ts +++ b/futurehome/src/services/sensor_rotation.ts @@ -10,6 +10,7 @@ export function sensor_rotation__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = undefined; + const name = 'Rotation'; const unit = svc.props?.sup_units?.[0] ?? 'rpm'; return { @@ -17,6 +18,7 @@ export function sensor_rotation__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_seismicint.ts b/futurehome/src/services/sensor_seismicint.ts index 39ae420..aee81f0 100644 --- a/futurehome/src/services/sensor_seismicint.ts +++ b/futurehome/src/services/sensor_seismicint.ts @@ -10,6 +10,7 @@ export function sensor_seismicint__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = undefined; + const name = 'Seismic intensity'; const unit = svc.props?.sup_units?.[0] ?? 'EMCRO'; return { @@ -17,6 +18,7 @@ export function sensor_seismicint__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_seismicmag.ts b/futurehome/src/services/sensor_seismicmag.ts index bce1f03..6bb7432 100644 --- a/futurehome/src/services/sensor_seismicmag.ts +++ b/futurehome/src/services/sensor_seismicmag.ts @@ -10,6 +10,7 @@ export function sensor_seismicmag__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = undefined; + const name = 'Seismic magnitude'; const unit = svc.props?.sup_units?.[0] ?? 'MB'; return { @@ -17,6 +18,7 @@ export function sensor_seismicmag__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_solarrad.ts b/futurehome/src/services/sensor_solarrad.ts index 8637a08..540ca89 100644 --- a/futurehome/src/services/sensor_solarrad.ts +++ b/futurehome/src/services/sensor_solarrad.ts @@ -10,6 +10,7 @@ export function sensor_solarrad__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = undefined; + const name = 'Solar radiation'; const unit = svc.props?.sup_units?.[0] ?? 'W/m2'; return { @@ -17,6 +18,7 @@ export function sensor_solarrad__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_tank.ts b/futurehome/src/services/sensor_tank.ts index 5a0b381..d5d5291 100644 --- a/futurehome/src/services/sensor_tank.ts +++ b/futurehome/src/services/sensor_tank.ts @@ -10,6 +10,7 @@ export function sensor_tank__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'volume_storage'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? 'l'; return { @@ -17,6 +18,7 @@ export function sensor_tank__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_temp.ts b/futurehome/src/services/sensor_temp.ts index 19e5711..b8244d0 100644 --- a/futurehome/src/services/sensor_temp.ts +++ b/futurehome/src/services/sensor_temp.ts @@ -10,6 +10,7 @@ export function sensor_temp__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'temperature'; + const name = undefined; let unit = svc.props?.sup_units?.[0] ?? '°C'; if (unit === 'C') unit = '°C'; if (unit === 'F') unit = '°F'; @@ -19,6 +20,7 @@ export function sensor_temp__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_tidelvl.ts b/futurehome/src/services/sensor_tidelvl.ts index daec44c..78637d2 100644 --- a/futurehome/src/services/sensor_tidelvl.ts +++ b/futurehome/src/services/sensor_tidelvl.ts @@ -10,6 +10,7 @@ export function sensor_tidelvl__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = undefined; + const name = 'Tide level'; const unit = svc.props?.sup_units?.[0] ?? 'm'; return { @@ -17,6 +18,7 @@ export function sensor_tidelvl__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_uv.ts b/futurehome/src/services/sensor_uv.ts index a28adaf..820f2b7 100644 --- a/futurehome/src/services/sensor_uv.ts +++ b/futurehome/src/services/sensor_uv.ts @@ -10,6 +10,7 @@ export function sensor_uv__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = undefined; + const name = 'Ultraviolet'; const unit = svc.props?.sup_units?.[0] ?? 'index'; return { @@ -17,6 +18,7 @@ export function sensor_uv__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_veloc.ts b/futurehome/src/services/sensor_veloc.ts index 4200789..b21452c 100644 --- a/futurehome/src/services/sensor_veloc.ts +++ b/futurehome/src/services/sensor_veloc.ts @@ -10,6 +10,7 @@ export function sensor_veloc__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = undefined; + const name = 'Velocity'; const unit = svc.props?.sup_units?.[0] ?? 'm/2'; return { @@ -17,6 +18,7 @@ export function sensor_veloc__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_voltage.ts b/futurehome/src/services/sensor_voltage.ts index 8c18a71..7b45a77 100644 --- a/futurehome/src/services/sensor_voltage.ts +++ b/futurehome/src/services/sensor_voltage.ts @@ -10,6 +10,7 @@ export function sensor_voltage__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'voltage'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? 'V'; return { @@ -17,6 +18,7 @@ export function sensor_voltage__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_watflow.ts b/futurehome/src/services/sensor_watflow.ts index 59816fa..89c7209 100644 --- a/futurehome/src/services/sensor_watflow.ts +++ b/futurehome/src/services/sensor_watflow.ts @@ -10,6 +10,7 @@ export function sensor_watflow__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'volume_flow_rate'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? 'l/h'; return { @@ -17,6 +18,7 @@ export function sensor_watflow__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_watpressure.ts b/futurehome/src/services/sensor_watpressure.ts index 024ce0e..3f5cfbf 100644 --- a/futurehome/src/services/sensor_watpressure.ts +++ b/futurehome/src/services/sensor_watpressure.ts @@ -10,6 +10,7 @@ export function sensor_watpressure__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'pressure'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? 'kPa'; return { @@ -17,6 +18,7 @@ export function sensor_watpressure__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_wattemp.ts b/futurehome/src/services/sensor_wattemp.ts index bbc8822..e101398 100644 --- a/futurehome/src/services/sensor_wattemp.ts +++ b/futurehome/src/services/sensor_wattemp.ts @@ -10,6 +10,7 @@ export function sensor_wattemp__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'temperature'; + const name = undefined; let unit = svc.props?.sup_units?.[0] ?? '°C'; if (unit === 'C') unit = '°C'; if (unit === 'F') unit = '°F'; @@ -19,6 +20,7 @@ export function sensor_wattemp__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_weight.ts b/futurehome/src/services/sensor_weight.ts index 378c7e2..9a946bb 100644 --- a/futurehome/src/services/sensor_weight.ts +++ b/futurehome/src/services/sensor_weight.ts @@ -10,6 +10,7 @@ export function sensor_weight__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'weight'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? 'kg'; return { @@ -17,6 +18,7 @@ export function sensor_weight__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/sensor_wind.ts b/futurehome/src/services/sensor_wind.ts index 9b0570c..c465a18 100644 --- a/futurehome/src/services/sensor_wind.ts +++ b/futurehome/src/services/sensor_wind.ts @@ -10,6 +10,7 @@ export function sensor_wind__components( svc: VinculumPd7Service, ): ServiceComponentsCreationResult | undefined { const device_class = 'wind_speed'; + const name = undefined; const unit = svc.props?.sup_units?.[0] ?? 'km/h'; return { @@ -17,6 +18,7 @@ export function sensor_wind__components( [svc.addr]: { unique_id: svc.addr, platform: 'sensor', + name: name, device_class: device_class, unit_of_measurement: unit, value_template: `{{ value_json['${svc.addr}'].sensor }}`, diff --git a/futurehome/src/services/thermostat.ts b/futurehome/src/services/thermostat.ts index 1f29101..7df8ee8 100644 --- a/futurehome/src/services/thermostat.ts +++ b/futurehome/src/services/thermostat.ts @@ -119,6 +119,7 @@ export function thermostat__components( const climateComponent: ClimateComponent = { unique_id: svc.addr, platform: 'climate', + name: 'Thermostat', modes: haModes, mode_command_topic: modeCommandTopic, // mode_state_topic seems to be required for mode state to be reported correctly in HA diff --git a/futurehome/src/services/water_heater.ts b/futurehome/src/services/water_heater.ts index 6ed9cad..66f5245 100644 --- a/futurehome/src/services/water_heater.ts +++ b/futurehome/src/services/water_heater.ts @@ -96,6 +96,7 @@ export function water_heater__components( const waterHeaterComponent: HaMqttComponent = { unique_id: svc.addr, platform: 'water_heater', + name: 'Water heater', modes: haModes.length > 0 ? haModes : ['off', 'heat_pump'], mode_command_topic: modeCommandTopic, mode_state_topic: stateTopic,