mqtt-discovery-types
Version:
Typescript Types For HomeAssistant MQTT Discovery
213 lines (175 loc) • 6.42 kB
TypeScript
import type { BaseComponentDiscovery } from "./BaseEntityDiscovery.ts";
import {MakeEntity} from './utils';
export type HVACModes = 'off' | 'heat' | 'cool' | 'auto' | 'dry' | 'fan_only';
/**
* @see https://www.home-assistant.io/integrations/climate.mqtt/
* */
export interface HVACComponentDiscovery extends BaseComponentDiscovery {
platform: 'climate';
/**
* A template to render the value received on the `action_topic` with.
*/
action_template?: string;
/**
* The MQTT topic subscribed for changes of the current action.
* Valid values are `off`, 'heating', 'cooling', 'drying', 'idle', 'fan'.
*/
action_topic?: string;
/**
* A template to render the value received on the `current_humidity_topic` with.
*/
current_humidity_template?: string;
/**
* The MQTT topic subscribed for changes of the current humidity.
* A "None" value will reset the current humidity.
* Empty values will be ignored.
*/
current_humidity_topic?: string;
/**
* A template to render the value received on the `current_temperature_topic` with.
*/
current_temperature_template?: string;
/**
* The MQTT topic subscribed for changes of the current temperature.
* A "None" value will reset the current temperature.
* Empty values will be ignored.
*/
current_temperature_topic?: string;
/**
* A template to render the value sent to the `fan_mode_command_topic` with.
*/
fan_mode_command_template?: string;
/**
* The MQTT topic to publish commands to change the fan mode.
*/
fan_mode_command_topic?: string;
/**
* A template to render the value received on the `fan_mode_state_topic` with.
*/
fan_mode_state_template?: string;
/**
* The MQTT topic subscribed for changes of the fan mode.
*/
fan_mode_state_topic?: string;
/**
* A list of available fan modes.
* @defaultValue ['low', 'medium', 'high', 'auto']
*/
fan_modes?: string[];
/**
* Set the initial target temperature.
* @defaultValue depends on the temperature unit, and will be 21 (Celsius) or 69.8 (Fahrenheit).
*/
initial?: number;
/**
* The maximum target humidity percentage that can be set.
* @defaultValue 99
*/
max_humidity?: number;
/**
* The maximum target temperature.
* @defaultValue depends on the temperature unit, and will be 35°C or 95°F.
*/
max_temp?: number;
/**
* The minimum target humidity percentage that can be set.
* @defaultValue 30
*/
min_humidity?: number;
/**
* The minimum target temperature.
* @defaultValue depends on the temperature unit, and will be 7°C or 44.6°F.
*/
min_temp?: number;
/**
* A template to render the value sent to the `mode_command_topic` with.
*/
mode_command_template?: string;
/**
* The MQTT topic to publish commands to change the mode.
*/
mode_command_topic?: string;
/**
* A template to render the value received on the `mode_state_topic` with.
*/
mode_state_template?: string;
/**
* The MQTT topic subscribed for changes of the mode.
* If this is not set, the operation mode works in optimistic mode.
*/
mode_state_topic?: string;
/**
* A list of available operation modes.
* @defaultValue ['off', 'heat', 'cool', 'auto', 'dry', 'fan_only']
*/
modes?: HVACModes[];
/**
* Flag that defines if the humidifier works in optimistic mode.
* @defaultValue true if no state topic is set, otherwise false.
*/
optimistic?: boolean;
/**
* Payload that represents the `off` state.
* @defaultValue 'OFF'
*/
payload_off?: string;
/**
* Payload that represents the `on` state.
* @defaultValue 'ON'
*/
payload_on?: string;
/**
* A template to render the value sent to the `power_command_topic` with.
* The valuee parameter is the payload set for `payload_on` or `payload_off`.
*/
power_command_template?: string;
/**
* The MQTT topic to publish commands to change the HVAC power state.
* Sends the payload configured with payload_on if the climate is turned on via the climate.turn_on,
* or the payload configured with payload_off if the climate is turned off via the climate.turn_off service.
* Note that optimistic mode is not supported through climate.turn_on and climate.turn_off services.
* When called, these services will send a power command to the device but will not optimistically update the state of the climate entity.
* The climate device should report its state back via mode_state_topic.
*/
power_command_topic?: string;
/**
* The desired precision for this device.
* Can be used to match your actual thermostat's precision.
* Supported values are 0.1, 0.5 and 1.0.
* @defaultValue 0.1 for Celsius, 1.0 for Fahrenheit
*/
precision?: 0.1 | 0.5 | 1.0;
preset_mode_command_template?: string;
preset_mode_command_topic?: string;
preset_mode_state_topic?: string;
preset_mode_value_template?: string;
preset_modes?: string[];
swing_mode_command_template?: string;
swing_mode_command_topic?: string;
swing_mode_state_template?: string;
swing_mode_state_topic?: string;
swing_modes?: string[];
target_humidity_command_template?: string;
target_humidity_command_topic?: string;
target_humidity_state_template?: string;
target_humidity_state_topic?: string;
temperature_command_template?: string;
temperature_command_topic?: string;
temperature_high_command_template?: string;
temperature_high_command_topic?: string;
temperature_high_state_template?: string;
temperature_high_state_topic?: string;
temperature_low_command_template?: string;
temperature_low_command_topic?: string;
temperature_low_state_template?: string;
temperature_low_state_topic?: string;
temperature_state_template?: string;
temperature_state_topic?: string;
temperature_unit?: 'C' | 'F';
temp_step?: number;
/**
* Default template to render the payloads on all `*_state_topic`s with
*/
value_template?: string;
}
export type HVACDiscovery = MakeEntity<HVACComponentDiscovery>;