mirror of
https://github.com/adrianjagielak/home-assistant-futurehome.git
synced 2025-09-13 07:37:09 +00:00
Improve MQTT components interfaces
This commit is contained in:
parent
5d8ce20bff
commit
e079b47760
3
futurehome/.prettierrc
Normal file
3
futurehome/.prettierrc
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"singleQuote": true
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
# https://developers.home-assistant.io/docs/add-ons/configuration#add-on-config
|
||||
name: Futurehome
|
||||
version: "0.1.5"
|
||||
version: "0.1.6"
|
||||
slug: futurehome
|
||||
description: Local Futurehome Smarthub integration
|
||||
url: "https://github.com/adrianjagielak/home-assistant-futurehome"
|
||||
|
@ -1,33 +1,34 @@
|
||||
import js from "@eslint/js";
|
||||
import globals from "globals";
|
||||
import tseslint from "typescript-eslint";
|
||||
import { defineConfig } from "eslint/config";
|
||||
import js from '@eslint/js';
|
||||
import globals from 'globals';
|
||||
import tseslint from 'typescript-eslint';
|
||||
import { defineConfig } from 'eslint/config';
|
||||
|
||||
export default defineConfig([
|
||||
js.configs.recommended,
|
||||
tseslint.configs.recommended,
|
||||
{
|
||||
files: ["**/*.{ts,tsx}"],
|
||||
files: ['**/*.{ts,tsx}'],
|
||||
languageOptions: {
|
||||
parser: tseslint.parser,
|
||||
parserOptions: {
|
||||
ecmaVersion: "latest",
|
||||
sourceType: "module",
|
||||
ecmaVersion: 'latest',
|
||||
sourceType: 'module',
|
||||
},
|
||||
globals: globals.node,
|
||||
},
|
||||
plugins: {
|
||||
"@typescript-eslint": tseslint.plugin,
|
||||
'@typescript-eslint': tseslint.plugin,
|
||||
},
|
||||
rules: {
|
||||
"@typescript-eslint/no-explicit-any": "off",
|
||||
"@typescript-eslint/no-unused-vars": [
|
||||
"error",
|
||||
'@typescript-eslint/no-explicit-any': 'off',
|
||||
'@typescript-eslint/no-unused-vars': [
|
||||
'error',
|
||||
{
|
||||
argsIgnorePattern: "^_",
|
||||
varsIgnorePattern: "^_",
|
||||
argsIgnorePattern: '^_',
|
||||
varsIgnorePattern: '^_',
|
||||
},
|
||||
],
|
||||
},
|
||||
quotes: ['error', 'single'],
|
||||
},
|
||||
]);
|
||||
|
70
futurehome/src/ha/mqtt_components/_base_component.ts
Normal file
70
futurehome/src/ha/mqtt_components/_base_component.ts
Normal file
@ -0,0 +1,70 @@
|
||||
import { MaterialDesignIcon } from './_material_design_icon';
|
||||
|
||||
export interface BaseComponent {
|
||||
/**
|
||||
* An ID that uniquely identifies this entity.
|
||||
* If two entities have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
* When set, the entity category must be `diagnostic` for sensors.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The name to use when displaying this entity.
|
||||
*
|
||||
* It is recommended to set the name when entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity, to avoid showing the default 'MQTT <component>' name.
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: MaterialDesignIcon;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: 0 | 1 | 2;
|
||||
|
||||
/**
|
||||
* If the published message should have the retain flag on or not.
|
||||
* Default: false
|
||||
*/
|
||||
retain?: boolean;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The encoding of the published messages.
|
||||
* Set to `""` to disable decoding of incoming payload.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
}
|
7448
futurehome/src/ha/mqtt_components/_material_design_icon.ts
Normal file
7448
futurehome/src/ha/mqtt_components/_material_design_icon.ts
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents an MQTT Alarm Control Panel component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -12,30 +14,13 @@
|
||||
* For full documentation see:
|
||||
* https://www.home-assistant.io/integrations/alarm_control_panel.mqtt/
|
||||
*/
|
||||
export interface AlarmControlPanelComponent {
|
||||
export interface AlarmControlPanelComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `alarm_control_panel`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'alarm_control_panel';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this alarm panel.
|
||||
* If two alarm panels have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic subscribed to receive state updates.
|
||||
* A `None` payload resets to an `unknown` state.
|
||||
@ -86,30 +71,6 @@ export interface AlarmControlPanelComponent {
|
||||
*/
|
||||
command_template?: string;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The encoding of the payloads received and published messages.
|
||||
* Set to `""` to disable decoding of incoming payload.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt)
|
||||
* to extract the JSON dictionary from messages received on the `json_attributes_topic`.
|
||||
@ -123,21 +84,6 @@ export interface AlarmControlPanelComponent {
|
||||
*/
|
||||
json_attributes_topic?: string;
|
||||
|
||||
/**
|
||||
* The name of the alarm.
|
||||
*
|
||||
* It is recommended to set the name when entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity, to avoid showing the default 'MQTT' name.
|
||||
*
|
||||
* Default: "MQTT Alarm"
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* The payload to set armed-away mode on your Alarm Panel.
|
||||
* Default: "ARM_AWAY"
|
||||
@ -192,18 +138,6 @@ export interface AlarmControlPanelComponent {
|
||||
*/
|
||||
payload_trigger?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* If the published message should have the retain flag on or not.
|
||||
* Default: false
|
||||
*/
|
||||
retain?: boolean;
|
||||
|
||||
/**
|
||||
* A list of features that the alarm control panel supports.
|
||||
* The available list options are `arm_home`, `arm_away`, `arm_night`, `arm_vacation`, `arm_custom_bypass`, and `trigger`.
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { BinarySensorDeviceClass } from "./_enums";
|
||||
import { BaseComponent } from './_base_component';
|
||||
import { BinarySensorDeviceClass } from './_enums';
|
||||
|
||||
/**
|
||||
* Represents a MQTT Binary Sensor component for Home Assistant MQTT Discovery.
|
||||
@ -8,31 +9,13 @@ import { BinarySensorDeviceClass } from "./_enums";
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/binary_sensor.mqtt/
|
||||
*/
|
||||
export interface BinarySensorComponent {
|
||||
export interface BinarySensorComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `binary_sensor`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'binary_sensor';
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
* When set, the entity category must be `diagnostic` for sensors.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this sensor.
|
||||
* If two sensors have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic subscribed to receive sensor's state.
|
||||
* Valid states are `OFF` and `ON`.
|
||||
@ -85,51 +68,6 @@ export interface BinarySensorComponent {
|
||||
*/
|
||||
expire_after?: number;
|
||||
|
||||
/**
|
||||
* The encoding of the payloads received.
|
||||
* Set to `""` to disable decoding of incoming payload.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The name of the binary sensor.
|
||||
*
|
||||
* It is recommended to set the name when entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity, to avoid showing the default 'MQTT' name.
|
||||
*
|
||||
* Default: "MQTT binary sensor"
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt)
|
||||
* to extract the JSON dictionary from messages received on the `json_attributes_topic`.
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents a MQTT Button component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -7,30 +9,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/button.mqtt/
|
||||
*/
|
||||
export interface ButtonComponent {
|
||||
export interface ButtonComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `button`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'button';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this button.
|
||||
* If two buttons have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic to publish commands to trigger the button.
|
||||
*/
|
||||
@ -54,29 +39,6 @@ export interface ButtonComponent {
|
||||
*/
|
||||
device_class?: 'identify' | 'restart' | 'update' | null;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The encoding of the published messages.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt)
|
||||
* to extract the JSON dictionary from messages received on the `json_attributes_topic`.
|
||||
@ -90,21 +52,6 @@ export interface ButtonComponent {
|
||||
*/
|
||||
json_attributes_topic?: string;
|
||||
|
||||
/**
|
||||
* The name to use when displaying this button.
|
||||
*
|
||||
* It is recommended to set the name when entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity, to avoid showing the default 'MQTT' name.
|
||||
*
|
||||
* Default: "MQTT Button"
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* The payload that represents the available state.
|
||||
* Default: "online"
|
||||
@ -116,16 +63,4 @@ export interface ButtonComponent {
|
||||
* Default: "offline"
|
||||
*/
|
||||
payload_not_available?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* If the published message should have the retain flag on or not.
|
||||
* Default: false
|
||||
*/
|
||||
retain?: boolean;
|
||||
}
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents an MQTT Camera component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -8,60 +10,18 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/camera.mqtt/
|
||||
*/
|
||||
export interface CameraComponent {
|
||||
export interface CameraComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `camera`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'camera';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this camera.
|
||||
* If two cameras have the same unique ID Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic to subscribe to.
|
||||
*/
|
||||
topic: string;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The encoding of the payloads received.
|
||||
* Set to `""` to disable decoding of incoming payload.
|
||||
* Use `image_encoding` to enable Base64 decoding on `topic`.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* The encoding of the image payloads received.
|
||||
* Set to `"b64"` to enable base64 decoding of image payload.
|
||||
@ -80,18 +40,4 @@ export interface CameraComponent {
|
||||
* Implies `force_update` of the current sensor state when a message is received on this topic.
|
||||
*/
|
||||
json_attributes_topic?: string;
|
||||
|
||||
/**
|
||||
* The name of the camera.
|
||||
*
|
||||
* It is recommended to set the name when entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity, to avoid showing the default 'MQTT' name.
|
||||
*
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
}
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents an MQTT HVAC (Climate) component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -6,30 +8,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/climate.mqtt/
|
||||
*/
|
||||
export interface ClimateComponent {
|
||||
export interface ClimateComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `climate`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'climate';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this HVAC.
|
||||
* If two HVACs have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* A template to render the value received on the `action_topic` with.
|
||||
*/
|
||||
@ -67,19 +52,6 @@ export interface ClimateComponent {
|
||||
*/
|
||||
current_temperature_topic?: string;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true.
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The encoding of the payloads received and published messages.
|
||||
* Set to `""` to disable decoding of incoming payload.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* A template to render the value sent to the `fan_mode_command_topic` with.
|
||||
*/
|
||||
@ -114,17 +86,6 @@ export interface ClimateComponent {
|
||||
*/
|
||||
initial?: number;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt)
|
||||
* to extract the JSON dictionary from messages received on the `json_attributes_topic`.
|
||||
@ -190,21 +151,6 @@ export interface ClimateComponent {
|
||||
*/
|
||||
modes?: string[];
|
||||
|
||||
/**
|
||||
* The name of the HVAC.
|
||||
*
|
||||
* It is recommended to set the name when entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity, to avoid showing the default 'MQTT' name.
|
||||
*
|
||||
* Default: "MQTT HVAC"
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* Flag that defines if the climate works in optimistic mode (not waiting for state update before showing the change in Home Assistant).
|
||||
* Default: `true` if no state topic defined, else `false`.
|
||||
@ -289,18 +235,6 @@ export interface ClimateComponent {
|
||||
*/
|
||||
preset_modes?: string[];
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* Defines if published messages should have the retain flag set.
|
||||
* Default: false
|
||||
*/
|
||||
retain?: boolean;
|
||||
|
||||
/**
|
||||
* A template to render the value sent to the `swing_horizontal_mode_command_topic` with.
|
||||
*/
|
||||
|
@ -1,3 +1,4 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
import { CoverDeviceClass } from './_enums';
|
||||
|
||||
/**
|
||||
@ -8,30 +9,13 @@ import { CoverDeviceClass } from './_enums';
|
||||
* A cover entity can be in states (`open`, `opening`, `closed`, `closing` or `stopped`).
|
||||
* See the full documentation at https://www.home-assistant.io/integrations/cover.mqtt/
|
||||
*/
|
||||
export interface CoverComponent {
|
||||
export interface CoverComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `cover`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'cover';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this cover.
|
||||
* If two covers have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic to publish commands to control the cover.
|
||||
*/
|
||||
@ -44,30 +28,6 @@ export interface CoverComponent {
|
||||
*/
|
||||
device_class?: CoverDeviceClass;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The encoding of the payloads received and published messages.
|
||||
* Set to `""` to disable decoding of incoming payload.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt)
|
||||
* to extract the JSON dictionary from messages received on the `json_attributes_topic`.
|
||||
@ -81,21 +41,6 @@ export interface CoverComponent {
|
||||
*/
|
||||
json_attributes_topic?: string;
|
||||
|
||||
/**
|
||||
* The name of the cover.
|
||||
*
|
||||
* It is recommended to set the name when entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity, to avoid showing the default 'MQTT' name.
|
||||
*
|
||||
* Default: "MQTT Cover"
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* Flag that defines if switch works in optimistic mode (not waiting for state update before showing the change in Home Assistant).
|
||||
* Default: `false` if `state_topic` or `position_topic` defined, else `true`.
|
||||
@ -160,18 +105,6 @@ export interface CoverComponent {
|
||||
*/
|
||||
position_topic?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* Defines if published messages should have the retain flag set.
|
||||
* Default: false
|
||||
*/
|
||||
retain?: boolean;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-command-templates-with-mqtt)
|
||||
* to define the position to be sent to the `set_position_topic` topic.
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents a MQTT Device Trigger component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -12,29 +14,12 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/device_automation.mqtt/
|
||||
*/
|
||||
export interface DeviceAutomationComponent {
|
||||
export interface DeviceAutomationComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `device_automation`. Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'device_automation';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this device trigger.
|
||||
* If two device triggers have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The type of automation, must be 'trigger'.
|
||||
*/
|
||||
@ -45,12 +30,6 @@ export interface DeviceAutomationComponent {
|
||||
*/
|
||||
payload?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* The MQTT topic subscribed to receive trigger events.
|
||||
*/
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents a MQTT Device Tracker component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -7,30 +9,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/device_tracker.mqtt/
|
||||
*/
|
||||
export interface DeviceTrackerComponent {
|
||||
export interface DeviceTrackerComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `device_tracker`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'device_tracker';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this device tracker.
|
||||
* If two device trackers have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic subscribed to receive device tracker state changes.
|
||||
* The states defined in `state_topic` override the location states defined by the `json_attributes_topic`.
|
||||
@ -75,17 +60,6 @@ export interface DeviceTrackerComponent {
|
||||
*/
|
||||
name?: string;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* Attribute of a device tracker that affects state when being used to track a [person](https://www.home-assistant.io/integrations/person/).
|
||||
* Valid options are `gps`, `router`, `bluetooth`, or `bluetooth_le`.
|
||||
@ -121,15 +95,4 @@ export interface DeviceTrackerComponent {
|
||||
* Default: "offline"
|
||||
*/
|
||||
payload_not_available?: string;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
}
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents a MQTT Event component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -9,30 +11,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/event.mqtt/
|
||||
*/
|
||||
export interface EventComponent {
|
||||
export interface EventComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `event`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'event';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this event entity.
|
||||
* If two events have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic subscribed to receive JSON event payloads.
|
||||
* The JSON payload should contain the `event_type` element.
|
||||
@ -52,18 +37,6 @@ export interface EventComponent {
|
||||
*/
|
||||
device_class?: string | null;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The encoding of the published messages.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt)
|
||||
* to extract the JSON dictionary from messages received on the `json_attributes_topic`.
|
||||
@ -83,11 +56,6 @@ export interface EventComponent {
|
||||
*/
|
||||
name?: string;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* The payload that represents the available state.
|
||||
* Default: "online"
|
||||
@ -100,12 +68,6 @@ export interface EventComponent {
|
||||
*/
|
||||
payload_not_available?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt)
|
||||
* to extract the value and render it to a valid JSON event payload.
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents a MQTT Fan component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -6,30 +8,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/fan.mqtt/
|
||||
*/
|
||||
export interface FanComponent {
|
||||
export interface FanComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `fan`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'fan';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this fan.
|
||||
* If two fans have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic to publish commands to change the fan state.
|
||||
*/
|
||||
@ -150,63 +135,12 @@ export interface FanComponent {
|
||||
*/
|
||||
preset_modes?: string[];
|
||||
|
||||
/**
|
||||
* The encoding of the payloads received and published messages.
|
||||
* Set to `""` to disable decoding of incoming payload.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* The name of the fan.
|
||||
*
|
||||
* It is recommended to set the name when entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity, to avoid showing the default 'MQTT' name.
|
||||
*
|
||||
* Default: "MQTT Fan"
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* Flag that defines if fan works in optimistic mode (not waiting for state update before showing the change in Home Assistant).
|
||||
* Default: `true` if no state topic defined, else `false`.
|
||||
*/
|
||||
optimistic?: boolean;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* If the published message should have the retain flag on or not.
|
||||
* Default: true
|
||||
*/
|
||||
retain?: boolean;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt)
|
||||
* to extract the JSON dictionary from messages received on the `json_attributes_topic`.
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents a MQTT Humidifier component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -6,30 +8,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/humidifier.mqtt/
|
||||
*/
|
||||
export interface HumidifierComponent {
|
||||
export interface HumidifierComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `humidifier`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'humidifier';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this humidifier.
|
||||
* If two humidifiers have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic to publish commands to change the humidifier state.
|
||||
*/
|
||||
@ -188,45 +173,6 @@ export interface HumidifierComponent {
|
||||
*/
|
||||
payload_not_available?: string;
|
||||
|
||||
/**
|
||||
* The name of the humidifier.
|
||||
*
|
||||
* It is recommended to set the name when entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity, to avoid showing the default 'MQTT' name.
|
||||
*
|
||||
* Default: `"MQTT humidifier"`
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The encoding of the payloads received and published messages.
|
||||
* Set to `""` to disable decoding of incoming payload.
|
||||
* Default: `"utf-8"`
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt)
|
||||
* to extract the JSON dictionary from messages received on the `json_attributes_topic`.
|
||||
@ -239,16 +185,4 @@ export interface HumidifierComponent {
|
||||
* Usage example can be found in [MQTT sensor](https://www.home-assistant.io/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation.
|
||||
*/
|
||||
json_attributes_topic?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* If the published message should have the retain flag on or not.
|
||||
* Default: true
|
||||
*/
|
||||
retain?: boolean;
|
||||
}
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents an MQTT Image component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -11,30 +13,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/image.mqtt/
|
||||
*/
|
||||
export interface ImageComponent {
|
||||
export interface ImageComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `image`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'image';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this image.
|
||||
* If two images have the same unique ID Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic to subscribe to receive the image payload of the image to be downloaded.
|
||||
* Ensure the `content_type` type option is set to the corresponding content type.
|
||||
@ -72,34 +57,6 @@ export interface ImageComponent {
|
||||
*/
|
||||
image_encoding?: string;
|
||||
|
||||
/**
|
||||
* The encoding of the payloads received.
|
||||
* Set to `""` to disable decoding of incoming payload.
|
||||
* Use `image_encoding` to enable `Base64` decoding on `image_topic`.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The name of the image.
|
||||
*
|
||||
* It is recommended to set the name when entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity, to avoid showing the default 'MQTT' name.
|
||||
*
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.
|
||||
* Implies `force_update` of the current sensor state when a message is received on this topic.
|
||||
@ -111,15 +68,4 @@ export interface ImageComponent {
|
||||
* to extract the JSON dictionary from messages received on the `json_attributes_topic`.
|
||||
*/
|
||||
json_attributes_template?: string;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
}
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents a MQTT Lawn Mower component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -6,30 +8,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/lawn_mower.mqtt/
|
||||
*/
|
||||
export interface LawnMowerComponent {
|
||||
export interface LawnMowerComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `lawn_mower`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'lawn_mower';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this lawn mower.
|
||||
* If two lawn mowers have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic subscribed to receive an update of the activity.
|
||||
* Valid activities are `mowing`, `paused`, `docked`, and `error`.
|
||||
@ -57,30 +42,6 @@ export interface LawnMowerComponent {
|
||||
*/
|
||||
dock_command_topic?: string;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The encoding of the payloads received and published messages.
|
||||
* Set to `""` to disable decoding of the incoming payload.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt)
|
||||
* to extract the JSON dictionary from messages received on the `json_attributes_topic`.
|
||||
@ -93,20 +54,6 @@ export interface LawnMowerComponent {
|
||||
*/
|
||||
json_attributes_topic?: string;
|
||||
|
||||
/**
|
||||
* The name of the lawn mower.
|
||||
*
|
||||
* It is recommended to set the name when entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity, to avoid showing the default 'MQTT' name.
|
||||
*
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* Flag that defines if the lawn mower works in optimistic mode (not waiting for state update before showing the change in Home Assistant).
|
||||
* Default: `true` if no `activity_state_topic` defined, else `false`.
|
||||
@ -127,12 +74,6 @@ export interface LawnMowerComponent {
|
||||
*/
|
||||
pause_command_topic?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-command-templates-with-mqtt)
|
||||
* to generate the payload to send to `start_mowing_command_topic`.
|
||||
@ -146,10 +87,4 @@ export interface LawnMowerComponent {
|
||||
* Use a `start_mowing_command_template` to publish a custom format.
|
||||
*/
|
||||
start_mowing_command_topic?: string;
|
||||
|
||||
/**
|
||||
* If the published message should have the retain flag on or not.
|
||||
* Default: false
|
||||
*/
|
||||
retain?: boolean;
|
||||
}
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents a MQTT Light component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -7,30 +9,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/light.mqtt/
|
||||
*/
|
||||
export interface LightComponent {
|
||||
export interface LightComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `light`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'light';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this light.
|
||||
* If two lights have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* Flag that defines if light supports brightness when the `rgb`, `rgbw`, or `rgbww` color mode is supported.
|
||||
* Only for JSON schema.
|
||||
@ -322,41 +307,6 @@ export interface LightComponent {
|
||||
*/
|
||||
command_topic: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* Flag to indicate if the published messages should have the retain flag set.
|
||||
* Default: false
|
||||
*/
|
||||
retain?: boolean;
|
||||
|
||||
/**
|
||||
* The name of the light.
|
||||
* Can be set to null if only the device name is relevant.
|
||||
* Default: "MQTT Light" or "MQTT JSON Light" or "MQTT Template Light" depending on schema.
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt)
|
||||
* to extract the JSON dictionary from messages received on the `json_attributes_topic`.
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents a MQTT Lock component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -6,30 +8,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/lock.mqtt/
|
||||
*/
|
||||
export interface LockComponent {
|
||||
export interface LockComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `lock`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'lock';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this lock.
|
||||
* If two locks have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic to publish commands to change the lock state.
|
||||
*/
|
||||
@ -57,30 +42,6 @@ export interface LockComponent {
|
||||
*/
|
||||
command_template?: string;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The encoding of the payloads received and published messages.
|
||||
* Set to `""` to disable decoding of incoming payload.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt)
|
||||
* to extract the JSON dictionary from messages received on the `json_attributes_topic`.
|
||||
@ -94,21 +55,6 @@ export interface LockComponent {
|
||||
*/
|
||||
json_attributes_topic?: string;
|
||||
|
||||
/**
|
||||
* The name of the lock.
|
||||
*
|
||||
* It is recommended to set the name when entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity, to avoid showing the default 'MQTT' name.
|
||||
*
|
||||
* Default: "MQTT Lock"
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* Flag that defines if lock works in optimistic mode (not waiting for state update before showing the change in Home Assistant).
|
||||
* Default: `true` if no `state_topic` defined, else `false`.
|
||||
@ -150,18 +96,6 @@ export interface LockComponent {
|
||||
*/
|
||||
payload_reset?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* If the published message should have the retain flag on or not.
|
||||
* Default: false
|
||||
*/
|
||||
retain?: boolean;
|
||||
|
||||
/**
|
||||
* The payload sent to `state_topic` by the lock when it's jammed.
|
||||
* Default: "JAMMED"
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents a MQTT manual alarm control panel component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -11,30 +13,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/manual_mqtt.mqtt/
|
||||
*/
|
||||
export interface ManualMqttComponent {
|
||||
export interface ManualMqttComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `button`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'manual_mqtt';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this manual alarm control panel.
|
||||
* If two manual alarm control panels have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic Home Assistant will publish state updates to.
|
||||
* This topic is where Home Assistant will publish the current state of the alarm.
|
||||
@ -107,12 +92,6 @@ export interface ManualMqttComponent {
|
||||
*/
|
||||
disarm_after_trigger?: boolean;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* The payload to disarm this Alarm Panel.
|
||||
* Default: "DISARM"
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents an MQTT Notify component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -8,30 +10,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/notify.mqtt/
|
||||
*/
|
||||
export interface NotifyComponent {
|
||||
export interface NotifyComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `notify`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'notify';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this notify entity.
|
||||
* If two notify entities have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic to publish send message commands at.
|
||||
*/
|
||||
@ -43,23 +28,6 @@ export interface NotifyComponent {
|
||||
*/
|
||||
command_template?: string;
|
||||
|
||||
/**
|
||||
* The encoding of the published messages.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt)
|
||||
* to extract the JSON dictionary from messages received on the `json_attributes_topic`.
|
||||
@ -73,39 +41,6 @@ export interface NotifyComponent {
|
||||
*/
|
||||
json_attributes_topic?: string;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* If the published message should have the retain flag on or not.
|
||||
* Default: false
|
||||
*/
|
||||
retain?: boolean;
|
||||
|
||||
/**
|
||||
* The name to use when displaying this notify entity.
|
||||
*
|
||||
* It is recommended to set the name when entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity, to avoid showing the default 'MQTT' name.
|
||||
*
|
||||
* Default: "MQTT notify"
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* The payload that represents the available state.
|
||||
* Default: "online"
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents a MQTT Number component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -9,30 +11,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/number.mqtt/
|
||||
*/
|
||||
export interface NumberComponent {
|
||||
export interface NumberComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `number`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'number';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this number entity.
|
||||
* If two number entities have the same unique ID Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic to publish commands to change the number.
|
||||
*/
|
||||
@ -144,30 +129,6 @@ export interface NumberComponent {
|
||||
| 'wind_speed'
|
||||
| null;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The encoding of the payloads received and published messages.
|
||||
* Set to `""` to disable decoding of incoming payload.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt)
|
||||
* to extract the JSON dictionary from messages received on the `json_attributes_topic`.
|
||||
@ -191,27 +152,4 @@ export interface NumberComponent {
|
||||
* Default: "None"
|
||||
*/
|
||||
payload_reset?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* If the published message should have the retain flag on or not.
|
||||
* Default: false
|
||||
*/
|
||||
retain?: boolean;
|
||||
|
||||
/**
|
||||
* The name of the Number. Can be set to `null` if only the device name is relevant.
|
||||
* Default: "MQTT Number"
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
}
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents a MQTT Scene component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -6,29 +8,12 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/scene.mqtt/
|
||||
*/
|
||||
export interface SceneComponent {
|
||||
export interface SceneComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `scene`. Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'scene';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this scene entity.
|
||||
* If two scenes have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic to publish `payload_on` to activate the scene.
|
||||
*/
|
||||
@ -52,23 +37,6 @@ export interface SceneComponent {
|
||||
*/
|
||||
payload_not_available?: string;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The encoding of the published messages.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* Icon for the scene.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt)
|
||||
* to extract the JSON dictionary from messages received on the `json_attributes_topic`.
|
||||
@ -87,21 +55,4 @@ export interface SceneComponent {
|
||||
* Default: "MQTT Scene"
|
||||
*/
|
||||
name?: string;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* If the published message should have the retain flag on or not.
|
||||
* Default: false
|
||||
*/
|
||||
retain?: boolean;
|
||||
}
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents a MQTT Select component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -9,30 +11,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/select.mqtt/
|
||||
*/
|
||||
export interface SelectComponent {
|
||||
export interface SelectComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `select`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'select';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this select.
|
||||
* If two selects have the same unique ID Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic subscribed to receive update of the selected option.
|
||||
* A "None" payload resets to an `unknown` state. An empty payload is ignored.
|
||||
@ -67,42 +52,6 @@ export interface SelectComponent {
|
||||
*/
|
||||
command_template?: string;
|
||||
|
||||
/**
|
||||
* The encoding of the payloads received and published messages.
|
||||
* Set to `""` to disable decoding of incoming payload.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* If the published message should have the retain flag on or not.
|
||||
* Default: false
|
||||
*/
|
||||
retain?: boolean;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt)
|
||||
* to extract the JSON dictionary from messages received on the `json_attributes_topic`.
|
||||
@ -114,14 +63,4 @@ export interface SelectComponent {
|
||||
* Implies `force_update` of the current select state when a message is received on this topic.
|
||||
*/
|
||||
json_attributes_topic?: string;
|
||||
|
||||
/**
|
||||
* The name of the Select. Can be set to `null` if only the device name is relevant.
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
}
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents an MQTT Sensor component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -9,31 +11,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/sensor.mqtt/
|
||||
*/
|
||||
export interface SensorComponent {
|
||||
export interface SensorComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `sensor`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'sensor';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this sensor.
|
||||
* If two sensors have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
* When set, the entity category must be `diagnostic` for sensors.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic subscribed to receive sensor values.
|
||||
* If `device_class`, `state_class`, `unit_of_measurement` or `suggested_display_precision` is set,
|
||||
@ -141,51 +125,6 @@ export interface SensorComponent {
|
||||
*/
|
||||
value_template?: string;
|
||||
|
||||
/**
|
||||
* The name of the MQTT sensor.
|
||||
*
|
||||
* It is recommended to set the name when entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity, to avoid showing the default 'MQTT' name.
|
||||
*
|
||||
* Default: "MQTT Sensor"
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The encoding of the payloads received.
|
||||
* Set to `""` to disable decoding of incoming payload.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt) to extract the JSON dictionary from messages received on the `json_attributes_topic`.
|
||||
*/
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents a MQTT Siren component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -6,29 +8,12 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/siren.mqtt/
|
||||
*/
|
||||
export interface SirenComponent {
|
||||
export interface SirenComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `siren`. Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'siren';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this siren.
|
||||
* If two sirens have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* List of available tones the siren supports. When configured, this enables the support for setting a `tone` and enables the `tone` state attribute.
|
||||
*/
|
||||
@ -49,29 +34,6 @@ export interface SirenComponent {
|
||||
*/
|
||||
command_topic?: string;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The encoding of the payloads received and published messages. Set to `""` to disable decoding of incoming payload.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](https://www.home-assistant.io/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation.
|
||||
*/
|
||||
@ -82,17 +44,6 @@ export interface SirenComponent {
|
||||
*/
|
||||
json_attributes_topic?: string;
|
||||
|
||||
/**
|
||||
* The name to use when displaying this siren. Can be set to `null` if only the device name is relevant.
|
||||
* Default: "MQTT Siren"
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* Flag that defines if siren works in optimistic mode (not waiting for state update before showing the change in Home Assistant).
|
||||
* Default: `true` if no `state_topic` defined, else `false`.
|
||||
@ -123,18 +74,6 @@ export interface SirenComponent {
|
||||
*/
|
||||
payload_on?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* If the published message should have the retain flag on or not.
|
||||
* Default: false
|
||||
*/
|
||||
retain?: boolean;
|
||||
|
||||
/**
|
||||
* The payload that represents the `off` state. Used when value that represents `off` state in the `state_topic` is different from value that should be sent to the `command_topic` to turn the device `off`.
|
||||
* Default: "`payload_off` if defined, else `'OFF'`"
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents a MQTT Switch component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -6,30 +8,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/switch.mqtt/
|
||||
*/
|
||||
export interface SwitchComponent {
|
||||
export interface SwitchComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `switch`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'switch';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this switch.
|
||||
* If two switches have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic to publish commands to change the switch state.
|
||||
*/
|
||||
@ -49,30 +34,6 @@ export interface SwitchComponent {
|
||||
*/
|
||||
device_class?: 'outlet' | 'switch' | null;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The encoding of the payloads received and published messages.
|
||||
* Set to `""` to disable decoding of incoming payload.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt) to extract the JSON dictionary from messages received on the `json_attributes_topic`.
|
||||
* Usage example can be found in [MQTT sensor](https://www.home-assistant.io/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation.
|
||||
@ -85,21 +46,6 @@ export interface SwitchComponent {
|
||||
*/
|
||||
json_attributes_topic?: string;
|
||||
|
||||
/**
|
||||
* The name to use when displaying this switch.
|
||||
*
|
||||
* It is recommended to set the name when entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity, to avoid showing the default 'MQTT' name.
|
||||
*
|
||||
* Default: "MQTT Switch"
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* Flag that defines if switch works in optimistic mode (not waiting for state update before showing the change in Home Assistant).
|
||||
* Default: `true` if no `state_topic` defined, else `false`.
|
||||
@ -134,18 +80,6 @@ export interface SwitchComponent {
|
||||
*/
|
||||
payload_on?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* If the published message should have the retain flag on or not.
|
||||
* Default: false
|
||||
*/
|
||||
retain?: boolean;
|
||||
|
||||
/**
|
||||
* The payload that represents the `off` state.
|
||||
* Used when value that represents `off` state in the `state_topic` is different from value that should be sent to the `command_topic` to turn the device `off`.
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents a MQTT Tag Scanner component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -6,30 +8,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/tag.mqtt/
|
||||
*/
|
||||
export interface TagComponent {
|
||||
export interface TagComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `tag`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'tag';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this tag.
|
||||
* If two tags have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic subscribed to receive tag scanned events.
|
||||
*/
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents a MQTT Text component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -7,30 +9,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/text.mqtt/
|
||||
*/
|
||||
export interface TextComponent {
|
||||
export interface TextComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `text`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'text';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this text entity.
|
||||
* If two text entities have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic to publish the text value that is set.
|
||||
*/
|
||||
@ -55,21 +40,6 @@ export interface TextComponent {
|
||||
*/
|
||||
value_template?: string;
|
||||
|
||||
/**
|
||||
* The name of the text entity.
|
||||
*
|
||||
* It is recommended to set the name when entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity, to avoid showing the default 'MQTT' name.
|
||||
*
|
||||
* Default: "MQTT Text"
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* The maximum size of a text being set or received (maximum is 255).
|
||||
* Default: 255
|
||||
@ -94,19 +64,6 @@ export interface TextComponent {
|
||||
*/
|
||||
pattern?: string;
|
||||
|
||||
/**
|
||||
* The encoding of the payloads received and published messages.
|
||||
* Set to `""` to disable decoding of incoming payload.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt)
|
||||
* to extract the JSON dictionary from messages received on the `json_attributes_topic`.
|
||||
@ -130,16 +87,4 @@ export interface TextComponent {
|
||||
* Default: "offline"
|
||||
*/
|
||||
payload_not_available?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* If the published message should have the retain flag on or not.
|
||||
* Default: false
|
||||
*/
|
||||
retain?: boolean;
|
||||
}
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents an MQTT Update component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -7,29 +9,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/update.mqtt/
|
||||
*/
|
||||
export interface UpdateComponent {
|
||||
export interface UpdateComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `update`.
|
||||
* Required and only allowed in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'update';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this update entity.
|
||||
* If two update entities have the same unique ID, Home Assistant will raise an exception.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic subscribed to receive state updates.
|
||||
* The payload may be JSON or a simple string with `installed_version` value.
|
||||
@ -77,30 +63,6 @@ export interface UpdateComponent {
|
||||
*/
|
||||
display_precision?: number;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The encoding of the payloads received and published messages.
|
||||
* Set to `""` to disable decoding of incoming payload.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* Defines a [template](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt) to extract the JSON dictionary from messages received on the `json_attributes_topic`.
|
||||
*/
|
||||
@ -112,16 +74,6 @@ export interface UpdateComponent {
|
||||
*/
|
||||
json_attributes_topic?: string;
|
||||
|
||||
/**
|
||||
* The name of the Update. Can be set to `null` if only the device name is relevant.
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* A summary of the release notes or changelog.
|
||||
* Suitable for a brief update description (max 255 characters).
|
||||
@ -133,24 +85,12 @@ export interface UpdateComponent {
|
||||
*/
|
||||
release_url?: string;
|
||||
|
||||
/**
|
||||
* Flag if the published message should have the retain flag on or not.
|
||||
* Default: false
|
||||
*/
|
||||
retain?: boolean;
|
||||
|
||||
/**
|
||||
* Title of the software or firmware update.
|
||||
* Helps differentiate between device/entity name and the update software title.
|
||||
*/
|
||||
title?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* The string that represents the `online` state.
|
||||
* Default: "online"
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents a MQTT Vacuum component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -7,42 +9,18 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/vacuum.mqtt/
|
||||
*/
|
||||
export interface VacuumComponent {
|
||||
export interface VacuumComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `vacuum`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'vacuum';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this vacuum.
|
||||
* If two vacuums have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic to publish commands to control the vacuum.
|
||||
*/
|
||||
command_topic?: string;
|
||||
|
||||
/**
|
||||
* The encoding of the payloads received and published messages.
|
||||
* Set to `""` to disable decoding of incoming payload.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* List of possible fan speeds for the vacuum.
|
||||
*/
|
||||
@ -61,21 +39,6 @@ export interface VacuumComponent {
|
||||
*/
|
||||
json_attributes_topic?: string;
|
||||
|
||||
/**
|
||||
* The name of the vacuum.
|
||||
*
|
||||
* It is recommended to set the name when entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity, to avoid showing the default 'MQTT' name.
|
||||
*
|
||||
* Default: "MQTT Vacuum"
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* The payload that represents the available state.
|
||||
* Default: "online"
|
||||
@ -124,18 +87,6 @@ export interface VacuumComponent {
|
||||
*/
|
||||
payload_stop?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* If the published message should have the retain flag on or not.
|
||||
* Default: false
|
||||
*/
|
||||
retain?: boolean;
|
||||
|
||||
/**
|
||||
* The MQTT topic to publish custom commands to the vacuum.
|
||||
*/
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents a MQTT Valve component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -8,30 +10,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/valve.mqtt/
|
||||
*/
|
||||
export interface ValveComponent {
|
||||
export interface ValveComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `valve`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'valve';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this valve.
|
||||
* If two valves have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The MQTT topic to publish commands to control the valve.
|
||||
* The value sent can be a value defined by `payload_open`, `payload_close`, or `payload_stop`.
|
||||
@ -167,57 +152,6 @@ export interface ValveComponent {
|
||||
*/
|
||||
payload_not_available?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* Defines if published messages should have the retain flag set.
|
||||
* Default: false
|
||||
*/
|
||||
retain?: boolean;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The encoding of the payloads received and published messages.
|
||||
* Set to `""` to disable decoding of incoming payload.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* The name of the valve.
|
||||
*
|
||||
* It is recommended to set the name when entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity, to avoid showing the default 'MQTT' name.
|
||||
*
|
||||
* Default: "MQTT valve"
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` to have the `entity_id` generated automatically.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* Sets the [class of the device](https://www.home-assistant.io/integrations/valve/#device_class),
|
||||
* changing the device state and icon that is displayed on the frontend.
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { BaseComponent } from './_base_component';
|
||||
|
||||
/**
|
||||
* Represents a MQTT Water Heater component for Home Assistant MQTT Discovery.
|
||||
*
|
||||
@ -6,69 +8,13 @@
|
||||
* For detailed documentation see:
|
||||
* https://www.home-assistant.io/integrations/water_heater.mqtt/
|
||||
*/
|
||||
export interface WaterHeaterComponent {
|
||||
export interface WaterHeaterComponent extends BaseComponent {
|
||||
/**
|
||||
* Must be `water_heater`.
|
||||
* Only allowed and required in [MQTT auto discovery device messages](https://www.home-assistant.io/integrations/mqtt/#device-discovery-payload).
|
||||
*/
|
||||
platform: 'water_heater';
|
||||
|
||||
/**
|
||||
* An ID that uniquely identifies this water heater.
|
||||
* If two water heaters have the same unique ID, Home Assistant will raise an exception.
|
||||
* Required when used with device-based discovery.
|
||||
*/
|
||||
unique_id: string;
|
||||
|
||||
/**
|
||||
* The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
|
||||
*/
|
||||
entity_category?: string;
|
||||
|
||||
/**
|
||||
* Picture URL for the entity.
|
||||
*/
|
||||
entity_picture?: string;
|
||||
|
||||
/**
|
||||
* The name of the water heater.
|
||||
*
|
||||
* It is recommended to set the name when entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity, to avoid showing the default 'MQTT' name.
|
||||
*
|
||||
* Default: "MQTT water heater"
|
||||
*/
|
||||
name?: string | null;
|
||||
|
||||
/**
|
||||
* Used instead of `name` for automatic generation of `entity_id`.
|
||||
*/
|
||||
object_id?: string;
|
||||
|
||||
/**
|
||||
* Flag which defines if the entity should be enabled when first added.
|
||||
* Default: true
|
||||
*/
|
||||
enabled_by_default?: boolean;
|
||||
|
||||
/**
|
||||
* The encoding of the payloads received and published messages.
|
||||
* Set to `""` to disable decoding of incoming payload.
|
||||
* Default: "utf-8"
|
||||
*/
|
||||
encoding?: string;
|
||||
|
||||
/**
|
||||
* [Icon](https://www.home-assistant.io/docs/configuration/customizing-devices/#icon) for the entity.
|
||||
*
|
||||
* The icon must be a Material Design Icons (MDI) string identifier, for example: `mdi:thermometer`, `mdi:battery`, or `mdi:water`.
|
||||
*
|
||||
* It is recommended to set the icon when the default icon or other entity identifiers (such as `device_class` or `state_class`)
|
||||
* do not accurately represent the purpose of the entity. In most cases, relying on the automatic icon selection ensures better consistency
|
||||
* and compatibility with future updates.
|
||||
*/
|
||||
icon?: string;
|
||||
|
||||
/**
|
||||
* The payload that represents the available state.
|
||||
* Default: "online"
|
||||
@ -224,18 +170,6 @@ export interface WaterHeaterComponent {
|
||||
*/
|
||||
json_attributes_topic?: string;
|
||||
|
||||
/**
|
||||
* The maximum QoS level to be used when receiving and publishing messages.
|
||||
* Default: 0
|
||||
*/
|
||||
qos?: number;
|
||||
|
||||
/**
|
||||
* Defines if published messages should have the retain flag set.
|
||||
* Default: false
|
||||
*/
|
||||
retain?: boolean;
|
||||
|
||||
/**
|
||||
* Default template to render the payloads on *all* `*_state_topic`s with.
|
||||
*/
|
||||
|
@ -13,6 +13,7 @@ import {
|
||||
CommandHandlers,
|
||||
ServiceComponentsCreationResult,
|
||||
} from '../ha/publish_device';
|
||||
import { MaterialDesignIcon } from '../ha/mqtt_components/_material_design_icon';
|
||||
|
||||
export function media_player__components(
|
||||
topicPrefix: string,
|
||||
@ -203,8 +204,8 @@ export function media_player__components(
|
||||
/**
|
||||
* Get appropriate icon for playback mode
|
||||
*/
|
||||
function getPlaybackModeIcon(mode: string): string {
|
||||
const iconMap: Record<string, string> = {
|
||||
function getPlaybackModeIcon(mode: string): MaterialDesignIcon {
|
||||
const iconMap: Record<string, MaterialDesignIcon> = {
|
||||
repeat: 'mdi:repeat',
|
||||
repeat_one: 'mdi:repeat-once',
|
||||
shuffle: 'mdi:shuffle',
|
||||
@ -216,8 +217,8 @@ function getPlaybackModeIcon(mode: string): string {
|
||||
/**
|
||||
* Get appropriate icon for metadata type
|
||||
*/
|
||||
function getMetadataIcon(metadata: string): string {
|
||||
const iconMap: Record<string, string> = {
|
||||
function getMetadataIcon(metadata: string): MaterialDesignIcon {
|
||||
const iconMap: Record<string, MaterialDesignIcon> = {
|
||||
album: 'mdi:album',
|
||||
track: 'mdi:music-note',
|
||||
artist: 'mdi:account-music',
|
||||
|
Loading…
x
Reference in New Issue
Block a user