InternalDevice

package
v0.0.0-...-7185231 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 5, 2024 License: MIT Imports: 2 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AlarmControlPanel

type AlarmControlPanel struct {
	AvailabilityMode       *string     `json:"availability_mode,omitempty"`         // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate   *string     `json:"availability_template,omitempty"`     // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability           *([]string) `json:"availability,omitempty"`              // Availability for the AlarmControlPanel
	Code                   *string     `json:"code,omitempty"`                      // "If defined, specifies a code to enable or disable the alarm in the frontend. Note that the code is validated locally and blocks sending MQTT messages to the remote device. For remote code validation, the code can be configured to either of the special values `REMOTE_CODE` (numeric code) or `REMOTE_CODE_TEXT` (text code). In this case, local code validation is bypassed but the frontend will still show a numeric or text code dialog. Use `command_template` to send the code to the remote device. Example configurations for remote code validation [can be found here](#configurations-with-remote-code-validation)."
	CodeArmRequired        *bool       `json:"code_arm_required,omitempty"`         // "If true the code is required to arm the alarm. If false the code is not validated."
	CodeDisarmRequired     *bool       `json:"code_disarm_required,omitempty"`      // "If true the code is required to disarm the alarm. If false the code is not validated."
	CodeTriggerRequired    *bool       `json:"code_trigger_required,omitempty"`     // "If true the code is required to trigger the alarm. If false the code is not validated."
	CommandTemplate        *string     `json:"command_template,omitempty"`          // "The [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) used for the command payload. Available variables: `action` and `code`."
	Command                *([]string) `json:"command,omitempty"`                   // Command for the AlarmControlPanel
	EnabledByDefault       *bool       `json:"enabled_by_default,omitempty"`        // "Flag which defines if the entity should be enabled when first added."
	Encoding               *string     `json:"encoding,omitempty"`                  // "The encoding of the payloads received and published messages. Set to `\"\"` to disable decoding of incoming payload."
	EntityCategory         *string     `json:"entity_category,omitempty"`           // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	Icon                   *string     `json:"icon,omitempty"`                      // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	JsonAttributesTemplate *string     `json:"json_attributes_template,omitempty"`  // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
	JsonAttributes         *([]string) `json:"json_attributes,omitempty"`           // JsonAttributes for the AlarmControlPanel
	Name                   *string     `json:"name,omitempty"`                      // "The name of the alarm. Can be set to `null` if only the device name is relevant."
	ObjectId               *string     `json:"object_id,omitempty"`                 // "Used instead of `name` for automatic generation of `entity_id`"
	PayloadArmAway         *string     `json:"payload_arm_away,omitempty"`          // "The payload to set armed-away mode on your Alarm Panel."
	PayloadArmCustomBypass *string     `json:"payload_arm_custom_bypass,omitempty"` // "The payload to set armed-custom-bypass mode on your Alarm Panel."
	PayloadArmHome         *string     `json:"payload_arm_home,omitempty"`          // "The payload to set armed-home mode on your Alarm Panel."
	PayloadArmNight        *string     `json:"payload_arm_night,omitempty"`         // "The payload to set armed-night mode on your Alarm Panel."
	PayloadArmVacation     *string     `json:"payload_arm_vacation,omitempty"`      // "The payload to set armed-vacation mode on your Alarm Panel."
	PayloadAvailable       *string     `json:"payload_available,omitempty"`         // "The payload that represents the available state."
	PayloadDisarm          *string     `json:"payload_disarm,omitempty"`            // "The payload to disarm your Alarm Panel."
	PayloadNotAvailable    *string     `json:"payload_not_available,omitempty"`     // "The payload that represents the unavailable state."
	PayloadTrigger         *string     `json:"payload_trigger,omitempty"`           // "The payload to trigger the alarm on your Alarm Panel."
	Qos                    *int        `json:"qos,omitempty"`                       // "The maximum QoS level to be used when receiving and publishing messages."
	Retain                 *bool       `json:"retain,omitempty"`                    // "If the published message should have the retain flag on or not."
	State                  *([]string) `json:"state,omitempty"`                     // State for the AlarmControlPanel
	SupportedFeatures      *([]string) `json:"supported_features,omitempty"`        // "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`."
	UniqueId               *string     `json:"unique_id,omitempty"`                 // "An ID that uniquely identifies this alarm panel. If two alarm panels have the same unique ID, Home Assistant will raise an exception."
	ValueTemplate          *string     `json:"value_template,omitempty"`            // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the value."
	MQTT                   struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (AlarmControlPanel) Translate

type BinarySensor

type BinarySensor struct {
	AvailabilityMode       *string     `json:"availability_mode,omitempty"`        // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate   *string     `json:"availability_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability           *([]string) `json:"availability,omitempty"`             // Availability for the BinarySensor
	DeviceClass            *string     `json:"device_class,omitempty"`             // "Sets the [class of the device](/integrations/binary_sensor/#device-class), changing the device state and icon that is displayed on the frontend. The `device_class` can be `null`."
	EnabledByDefault       *bool       `json:"enabled_by_default,omitempty"`       // "Flag which defines if the entity should be enabled when first added."
	Encoding               *string     `json:"encoding,omitempty"`                 // "The encoding of the payloads received. Set to `\"\"` to disable decoding of incoming payload."
	EntityCategory         *string     `json:"entity_category,omitempty"`          // "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."
	ExpireAfter            *int        `json:"expire_after,omitempty"`             // "If set, it defines the number of seconds after the sensor's state expires, if it's not updated. After expiry, the sensor's state becomes `unavailable`. Default the sensors state never expires."
	ForceUpdate            *bool       `json:"force_update,omitempty"`             // "Sends update events (which results in update of [state object](/docs/configuration/state_object/)'s `last_changed`) even if the sensor's state hasn't changed. Useful if you want to have meaningful value graphs in history or want to create an automation that triggers on *every* incoming state message (not only when the sensor's new state is different to the current one)."
	Icon                   *string     `json:"icon,omitempty"`                     // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	JsonAttributesTemplate *string     `json:"json_attributes_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
	JsonAttributes         *([]string) `json:"json_attributes,omitempty"`          // JsonAttributes for the BinarySensor
	Name                   *string     `json:"name,omitempty"`                     // "The name of the binary sensor. Can be set to `null` if only the device name is relevant."
	ObjectId               *string     `json:"object_id,omitempty"`                // "Used instead of `name` for automatic generation of `entity_id`"
	OffDelay               *int        `json:"off_delay,omitempty"`                // "For sensors that only send `on` state updates (like PIRs), this variable sets a delay in seconds after which the sensor's state will be updated back to `off`."
	PayloadAvailable       *string     `json:"payload_available,omitempty"`        // "The string that represents the `online` state."
	PayloadNotAvailable    *string     `json:"payload_not_available,omitempty"`    // "The string that represents the `offline` state."
	PayloadOff             *string     `json:"payload_off,omitempty"`              // "The string that represents the `off` state. It will be compared to the message in the `state_topic` (see `value_template` for details)"
	PayloadOn              *string     `json:"payload_on,omitempty"`               // "The string that represents the `on` state. It will be compared to the message in the `state_topic` (see `value_template` for details)"
	Qos                    *int        `json:"qos,omitempty"`                      // "The maximum QoS level to be used when receiving and publishing messages."
	State                  *([]string) `json:"state,omitempty"`                    // State for the BinarySensor
	UniqueId               *string     `json:"unique_id,omitempty"`                // "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception."
	ValueTemplate          *string     `json:"value_template,omitempty"`           // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that returns a string to be compared to `payload_on`/`payload_off` or an empty string, in which case the MQTT message will be removed. Remove this option when `payload_on` and `payload_off` are sufficient to match your payloads (i.e no pre-processing of original message is required)."
	MQTT                   struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (BinarySensor) Translate

func (iDevice BinarySensor) Translate() externaldevice.BinarySensor

type Button

type Button struct {
	AvailabilityMode       *string     `json:"availability_mode,omitempty"`        // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate   *string     `json:"availability_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability           *([]string) `json:"availability,omitempty"`             // Availability for the Button
	CommandTemplate        *string     `json:"command_template,omitempty"`         // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `command_topic`."
	Command                *([]string) `json:"command,omitempty"`                  // Command for the Button
	DeviceClass            *string     `json:"device_class,omitempty"`             // "The [type/class](/integrations/button/#device-class) of the button to set the icon in the frontend. The `device_class` can be `null`."
	EnabledByDefault       *bool       `json:"enabled_by_default,omitempty"`       // "Flag which defines if the entity should be enabled when first added."
	Encoding               *string     `json:"encoding,omitempty"`                 // "The encoding of the published messages."
	EntityCategory         *string     `json:"entity_category,omitempty"`          // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	Icon                   *string     `json:"icon,omitempty"`                     // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	JsonAttributesTemplate *string     `json:"json_attributes_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
	JsonAttributes         *([]string) `json:"json_attributes,omitempty"`          // JsonAttributes for the Button
	Name                   *string     `json:"name,omitempty"`                     // "The name to use when displaying this button. Can be set to `null` if only the device name is relevant."
	ObjectId               *string     `json:"object_id,omitempty"`                // "Used instead of `name` for automatic generation of `entity_id`"
	PayloadAvailable       *string     `json:"payload_available,omitempty"`        // "The payload that represents the available state."
	PayloadNotAvailable    *string     `json:"payload_not_available,omitempty"`    // "The payload that represents the unavailable state."
	PayloadPress           *string     `json:"payload_press,omitempty"`            // "The payload To send to trigger the button."
	Qos                    *int        `json:"qos,omitempty"`                      // "The maximum QoS level to be used when receiving and publishing messages."
	Retain                 *bool       `json:"retain,omitempty"`                   // "If the published message should have the retain flag on or not."
	UniqueId               *string     `json:"unique_id,omitempty"`                // "An ID that uniquely identifies this button entity. If two buttons have the same unique ID, Home Assistant will raise an exception."
	MQTT                   struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Button) Translate

func (iDevice Button) Translate() externaldevice.Button

type Camera

type Camera struct {
	AvailabilityMode       *string     `json:"availability_mode,omitempty"`        // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate   *string     `json:"availability_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability           *([]string) `json:"availability,omitempty"`             // Availability for the Camera
	EnabledByDefault       *bool       `json:"enabled_by_default,omitempty"`       // "Flag which defines if the entity should be enabled when first added."
	Encoding               *string     `json:"encoding,omitempty"`                 // "The encoding of the payloads received. Set to `\"\"` to disable decoding of incoming payload. Use `image_encoding` to enable `Base64` decoding on `topic`."
	EntityCategory         *string     `json:"entity_category,omitempty"`          // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	Icon                   *string     `json:"icon,omitempty"`                     // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	ImageEncoding          *string     `json:"image_encoding,omitempty"`           // "The encoding of the image payloads received. Set to `\"b64\"` to enable base64 decoding of image payload. If not set, the image payload must be raw binary data."
	JsonAttributesTemplate *string     `json:"json_attributes_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`."
	JsonAttributes         *([]string) `json:"json_attributes,omitempty"`          // JsonAttributes for the Camera
	Name                   *string     `json:"name,omitempty"`                     // "The name of the camera. Can be set to `null` if only the device name is relevant."
	ObjectId               *string     `json:"object_id,omitempty"`                // "Used instead of `name` for automatic generation of `entity_id`"
	State                  *([]string) `json:"state,omitempty"`                    // State for the Camera
	UniqueId               *string     `json:"unique_id,omitempty"`                // "An ID that uniquely identifies this camera. If two cameras have the same unique ID Home Assistant will raise an exception."
	MQTT                   struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Camera) Translate

func (iDevice Camera) Translate() externaldevice.Camera

type Climate

type Climate struct {
	ActionTemplate                 *string     `json:"action_template,omitempty"`                   // "A template to render the value received on the `action_topic` with."
	Action                         *([]string) `json:"action,omitempty"`                            // Action for the Climate
	AvailabilityMode               *string     `json:"availability_mode,omitempty"`                 // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate           *string     `json:"availability_template,omitempty"`             // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability                   *([]string) `json:"availability,omitempty"`                      // Availability for the Climate
	CurrentHumidityTemplate        *string     `json:"current_humidity_template,omitempty"`         // "A template with which the value received on `current_humidity_topic` will be rendered."
	CurrentHumidity                *([]string) `json:"current_humidity,omitempty"`                  // CurrentHumidity for the Climate
	CurrentTemperatureTemplate     *string     `json:"current_temperature_template,omitempty"`      // "A template with which the value received on `current_temperature_topic` will be rendered."
	CurrentTemperature             *([]string) `json:"current_temperature,omitempty"`               // CurrentTemperature for the Climate
	EnabledByDefault               *bool       `json:"enabled_by_default,omitempty"`                // "Flag which defines if the entity should be enabled when first added."
	Encoding                       *string     `json:"encoding,omitempty"`                          // "The encoding of the payloads received and published messages. Set to `\"\"` to disable decoding of incoming payload."
	EntityCategory                 *string     `json:"entity_category,omitempty"`                   // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	FanModeCommandTemplate         *string     `json:"fan_mode_command_template,omitempty"`         // "A template to render the value sent to the `fan_mode_command_topic` with."
	FanModeCommand                 *([]string) `json:"fan_mode_command,omitempty"`                  // FanModeCommand for the Climate
	FanModeStateTemplate           *string     `json:"fan_mode_state_template,omitempty"`           // "A template to render the value received on the `fan_mode_state_topic` with."
	FanModeState                   *([]string) `json:"fan_mode_state,omitempty"`                    // FanModeState for the Climate
	FanModes                       *([]string) `json:"fan_modes,omitempty"`                         // "A list of supported fan modes."
	Icon                           *string     `json:"icon,omitempty"`                              // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	Initial                        *float64    `json:"initial,omitempty"`                           // "Set the initial target temperature. The default value depends on the temperature unit and will be 21° or 69.8°F."
	JsonAttributesTemplate         *string     `json:"json_attributes_template,omitempty"`          // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
	JsonAttributes                 *([]string) `json:"json_attributes,omitempty"`                   // JsonAttributes for the Climate
	MaxHumidity                    *int        `json:"max_humidity,omitempty"`                      // "The minimum target humidity percentage that can be set."
	MaxTemp                        *float64    `json:"max_temp,omitempty"`                          // "Maximum set point available. The default value depends on the temperature unit, and will be 35°C or 95°F."
	MinHumidity                    *int        `json:"min_humidity,omitempty"`                      // "The maximum target humidity percentage that can be set."
	MinTemp                        *float64    `json:"min_temp,omitempty"`                          // "Minimum set point available. The default value depends on the temperature unit, and will be 7°C or 44.6°F."
	ModeCommandTemplate            *string     `json:"mode_command_template,omitempty"`             // "A template to render the value sent to the `mode_command_topic` with."
	ModeCommand                    *([]string) `json:"mode_command,omitempty"`                      // ModeCommand for the Climate
	ModeStateTemplate              *string     `json:"mode_state_template,omitempty"`               // "A template to render the value received on the `mode_state_topic` with."
	ModeState                      *([]string) `json:"mode_state,omitempty"`                        // ModeState for the Climate
	Modes                          *([]string) `json:"modes,omitempty"`                             // "A list of supported modes. Needs to be a subset of the default values."
	Name                           *string     `json:"name,omitempty"`                              // "The name of the HVAC. Can be set to `null` if only the device name is relevant."
	ObjectId                       *string     `json:"object_id,omitempty"`                         // "Used instead of `name` for automatic generation of `entity_id`"
	Optimistic                     *bool       `json:"optimistic,omitempty"`                        // "Flag that defines if the climate works in optimistic mode"
	PayloadAvailable               *string     `json:"payload_available,omitempty"`                 // "The payload that represents the available state."
	PayloadNotAvailable            *string     `json:"payload_not_available,omitempty"`             // "The payload that represents the unavailable state."
	PayloadOff                     *string     `json:"payload_off,omitempty"`                       // "The payload sent to turn off the device."
	PayloadOn                      *string     `json:"payload_on,omitempty"`                        // "The payload sent to turn the device on."
	PowerCommandTemplate           *string     `json:"power_command_template,omitempty"`            // "A template to render the value sent to the `power_command_topic` with. The `value` parameter is the payload set for `payload_on` or `payload_off`."
	PowerCommand                   *([]string) `json:"power_command,omitempty"`                     // PowerCommand for the Climate
	Precision                      *float64    `json:"precision,omitempty"`                         // "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`."
	PresetModeCommandTemplate      *string     `json:"preset_mode_command_template,omitempty"`      // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `preset_mode_command_topic`."
	PresetModeCommand              *([]string) `json:"preset_mode_command,omitempty"`               // PresetModeCommand for the Climate
	PresetModeState                *([]string) `json:"preset_mode_state,omitempty"`                 // PresetModeState for the Climate
	PresetModeValueTemplate        *string     `json:"preset_mode_value_template,omitempty"`        // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the `preset_mode` value from the payload received on `preset_mode_state_topic`."
	PresetModes                    *([]string) `json:"preset_modes,omitempty"`                      // "List of preset modes this climate is supporting. Common examples include `eco`, `away`, `boost`, `comfort`, `home`, `sleep` and `activity`."
	Qos                            *int        `json:"qos,omitempty"`                               // "The maximum QoS level to be used when receiving and publishing messages."
	Retain                         *bool       `json:"retain,omitempty"`                            // "Defines if published messages should have the retain flag set."
	SwingModeCommandTemplate       *string     `json:"swing_mode_command_template,omitempty"`       // "A template to render the value sent to the `swing_mode_command_topic` with."
	SwingModeCommand               *([]string) `json:"swing_mode_command,omitempty"`                // SwingModeCommand for the Climate
	SwingModeStateTemplate         *string     `json:"swing_mode_state_template,omitempty"`         // "A template to render the value received on the `swing_mode_state_topic` with."
	SwingModeState                 *([]string) `json:"swing_mode_state,omitempty"`                  // SwingModeState for the Climate
	SwingModes                     *([]string) `json:"swing_modes,omitempty"`                       // "A list of supported swing modes."
	TargetHumidityCommandTemplate  *string     `json:"target_humidity_command_template,omitempty"`  // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `target_humidity_command_topic`."
	TargetHumidityCommand          *([]string) `json:"target_humidity_command,omitempty"`           // TargetHumidityCommand for the Climate
	TargetHumidityStateTemplate    *string     `json:"target_humidity_state_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value for the climate `target_humidity` state."
	TargetHumidityState            *([]string) `json:"target_humidity_state,omitempty"`             // TargetHumidityState for the Climate
	TempStep                       *float64    `json:"temp_step,omitempty"`                         // "Step size for temperature set point."
	TemperatureCommandTemplate     *string     `json:"temperature_command_template,omitempty"`      // "A template to render the value sent to the `temperature_command_topic` with."
	TemperatureCommand             *([]string) `json:"temperature_command,omitempty"`               // TemperatureCommand for the Climate
	TemperatureHighCommandTemplate *string     `json:"temperature_high_command_template,omitempty"` // "A template to render the value sent to the `temperature_high_command_topic` with."
	TemperatureHighCommand         *([]string) `json:"temperature_high_command,omitempty"`          // TemperatureHighCommand for the Climate
	TemperatureHighStateTemplate   *string     `json:"temperature_high_state_template,omitempty"`   // "A template to render the value received on the `temperature_high_state_topic` with. A `\"None\"` value received will reset the temperature high set point. Empty values (`”'`) will be ignored."
	TemperatureHighState           *([]string) `json:"temperature_high_state,omitempty"`            // TemperatureHighState for the Climate
	TemperatureLowCommandTemplate  *string     `json:"temperature_low_command_template,omitempty"`  // "A template to render the value sent to the `temperature_low_command_topic` with."
	TemperatureLowCommand          *([]string) `json:"temperature_low_command,omitempty"`           // TemperatureLowCommand for the Climate
	TemperatureLowStateTemplate    *string     `json:"temperature_low_state_template,omitempty"`    // "A template to render the value received on the `temperature_low_state_topic` with. A `\"None\"` value received will reset the temperature low set point. Empty values (`”'`) will be ignored."
	TemperatureLowState            *([]string) `json:"temperature_low_state,omitempty"`             // TemperatureLowState for the Climate
	TemperatureStateTemplate       *string     `json:"temperature_state_template,omitempty"`        // "A template to render the value received on the `temperature_state_topic` with."
	TemperatureState               *([]string) `json:"temperature_state,omitempty"`                 // TemperatureState for the Climate
	TemperatureUnit                *string     `json:"temperature_unit,omitempty"`                  // "Defines the temperature unit of the device, `C` or `F`. If this is not set, the temperature unit is set to the system temperature unit."
	UniqueId                       *string     `json:"unique_id,omitempty"`                         // "An ID that uniquely identifies this HVAC device. If two HVAC devices have the same unique ID, Home Assistant will raise an exception."
	ValueTemplate                  *string     `json:"value_template,omitempty"`                    // "Default template to render the payloads on *all* `*_state_topic`s with."
	MQTT                           struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Climate) Translate

func (iDevice Climate) Translate() externaldevice.Climate

type Cover

type Cover struct {
	AvailabilityMode       *string     `json:"availability_mode,omitempty"`        // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate   *string     `json:"availability_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability           *([]string) `json:"availability,omitempty"`             // Availability for the Cover
	Command                *([]string) `json:"command,omitempty"`                  // Command for the Cover
	DeviceClass            *string     `json:"device_class,omitempty"`             // "Sets the [class of the device](/integrations/cover/), changing the device state and icon that is displayed on the frontend. The `device_class` can be `null`."
	EnabledByDefault       *bool       `json:"enabled_by_default,omitempty"`       // "Flag which defines if the entity should be enabled when first added."
	Encoding               *string     `json:"encoding,omitempty"`                 // "The encoding of the payloads received and published messages. Set to `\"\"` to disable decoding of incoming payload."
	EntityCategory         *string     `json:"entity_category,omitempty"`          // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	Icon                   *string     `json:"icon,omitempty"`                     // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	JsonAttributesTemplate *string     `json:"json_attributes_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
	JsonAttributes         *([]string) `json:"json_attributes,omitempty"`          // JsonAttributes for the Cover
	Name                   *string     `json:"name,omitempty"`                     // "The name of the cover. Can be set to `null` if only the device name is relevant."
	ObjectId               *string     `json:"object_id,omitempty"`                // "Used instead of `name` for automatic generation of `entity_id`"
	Optimistic             *bool       `json:"optimistic,omitempty"`               // "Flag that defines if switch works in optimistic mode."
	PayloadAvailable       *string     `json:"payload_available,omitempty"`        // "The payload that represents the online state."
	PayloadClose           *string     `json:"payload_close,omitempty"`            // "The command payload that closes the cover."
	PayloadNotAvailable    *string     `json:"payload_not_available,omitempty"`    // "The payload that represents the offline state."
	PayloadOpen            *string     `json:"payload_open,omitempty"`             // "The command payload that opens the cover."
	PayloadStop            *string     `json:"payload_stop,omitempty"`             // "The command payload that stops the cover."
	PositionClosed         *int        `json:"position_closed,omitempty"`          // "Number which represents closed position."
	PositionOpen           *int        `json:"position_open,omitempty"`            // "Number which represents open position."
	PositionTemplate       *string     `json:"position_template,omitempty"`        // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `position_topic` topic. Within the template the following variables are available: `entity_id`, `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
	Position               *([]string) `json:"position,omitempty"`                 // Position for the Cover
	Qos                    *int        `json:"qos,omitempty"`                      // "The maximum QoS level to be used when receiving and publishing messages."
	Retain                 *bool       `json:"retain,omitempty"`                   // "Defines if published messages should have the retain flag set."
	SetPositionTemplate    *string     `json:"set_position_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to define the position to be sent to the `set_position_topic` topic. Incoming position value is available for use in the template `{% raw %}{{ position }}{% endraw %}`. Within the template the following variables are available: `entity_id`, `position`, the target position in percent; `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
	SetPosition            *([]string) `json:"set_position,omitempty"`             // SetPosition for the Cover
	StateClosed            *string     `json:"state_closed,omitempty"`             // "The payload that represents the closed state."
	StateClosing           *string     `json:"state_closing,omitempty"`            // "The payload that represents the closing state."
	StateOpen              *string     `json:"state_open,omitempty"`               // "The payload that represents the open state."
	StateOpening           *string     `json:"state_opening,omitempty"`            // "The payload that represents the opening state."
	StateStopped           *string     `json:"state_stopped,omitempty"`            // "The payload that represents the stopped state (for covers that do not report `open`/`closed` state)."
	State                  *([]string) `json:"state,omitempty"`                    // State for the Cover
	TiltClosedValue        *int        `json:"tilt_closed_value,omitempty"`        // "The value that will be sent on a `close_cover_tilt` command."
	TiltCommandTemplate    *string     `json:"tilt_command_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `tilt_command_topic` topic. Within the template the following variables are available: `entity_id`, `tilt_position`, the target tilt position in percent; `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
	TiltCommand            *([]string) `json:"tilt_command,omitempty"`             // TiltCommand for the Cover
	TiltMax                *int        `json:"tilt_max,omitempty"`                 // "The maximum tilt value."
	TiltMin                *int        `json:"tilt_min,omitempty"`                 // "The minimum tilt value."
	TiltOpenedValue        *int        `json:"tilt_opened_value,omitempty"`        // "The value that will be sent on an `open_cover_tilt` command."
	TiltOptimistic         *bool       `json:"tilt_optimistic,omitempty"`          // "Flag that determines if tilt works in optimistic mode."
	TiltStatusTemplate     *string     `json:"tilt_status_template,omitempty"`     // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `tilt_status_topic` topic. Within the template the following variables are available: `entity_id`, `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
	TiltStatus             *([]string) `json:"tilt_status,omitempty"`              // TiltStatus for the Cover
	UniqueId               *string     `json:"unique_id,omitempty"`                // "An ID that uniquely identifies this cover. If two covers have the same unique ID, Home Assistant will raise an exception."
	ValueTemplate          *string     `json:"value_template,omitempty"`           // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `state_topic` topic."
	MQTT                   struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Cover) Translate

func (iDevice Cover) Translate() externaldevice.Cover

type Device

type Device interface {
	Translate() string
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

type DeviceTracker

type DeviceTracker struct {
	AvailabilityMode       *string     `json:"availability_mode,omitempty"`        // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate   *string     `json:"availability_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability           *([]string) `json:"availability,omitempty"`             // Availability for the DeviceTracker
	Icon                   *string     `json:"icon,omitempty"`                     // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	JsonAttributesTemplate *string     `json:"json_attributes_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
	JsonAttributes         *([]string) `json:"json_attributes,omitempty"`          // JsonAttributes for the DeviceTracker
	Name                   *string     `json:"name,omitempty"`                     // "The name of the MQTT device_tracker."
	ObjectId               *string     `json:"object_id,omitempty"`                // "Used instead of `name` for automatic generation of `entity_id`"
	PayloadAvailable       *string     `json:"payload_available,omitempty"`        // "The payload that represents the available state."
	PayloadHome            *string     `json:"payload_home,omitempty"`             // "The payload value that represents the 'home' state for the device."
	PayloadNotAvailable    *string     `json:"payload_not_available,omitempty"`    // "The payload that represents the unavailable state."
	PayloadNotHome         *string     `json:"payload_not_home,omitempty"`         // "The payload value that represents the 'not_home' state for the device."
	PayloadReset           *string     `json:"payload_reset,omitempty"`            // "The payload value that will have the device's location automatically derived from Home Assistant's zones."
	Qos                    *int        `json:"qos,omitempty"`                      // "The maximum QoS level to be used when receiving and publishing messages."
	SourceType             *string     `json:"source_type,omitempty"`              // "Attribute of a device tracker that affects state when being used to track a [person](/integrations/person/). Valid options are `gps`, `router`, `bluetooth`, or `bluetooth_le`."
	State                  *([]string) `json:"state,omitempty"`                    // State for the DeviceTracker
	UniqueId               *string     `json:"unique_id,omitempty"`                // "An ID that uniquely identifies this device_tracker. If two device_trackers have the same unique ID, Home Assistant will raise an exception."
	ValueTemplate          *string     `json:"value_template,omitempty"`           // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that returns a device tracker state."
	MQTT                   struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (DeviceTracker) Translate

func (iDevice DeviceTracker) Translate() externaldevice.DeviceTracker

type DeviceTrigger

type DeviceTrigger struct {
	AutomationType *string     `json:"automation_type,omitempty"` // "The type of automation, must be 'trigger'."
	Payload        *string     `json:"payload,omitempty"`         // "Optional payload to match the payload being sent over the topic."
	Qos            *int        `json:"qos,omitempty"`             // "The maximum QoS level to be used when receiving and publishing messages."
	Subtype        *string     `json:"subtype,omitempty"`         // "The subtype of the trigger, e.g. `button_1`. Entries supported by the frontend: `turn_on`, `turn_off`, `button_1`, `button_2`, `button_3`, `button_4`, `button_5`, `button_6`. If set to an unsupported value, will render as `subtype type`, e.g. `left_button pressed` with `type` set to `button_short_press` and `subtype` set to `left_button`"
	State          *([]string) `json:"state,omitempty"`           // State for the DeviceTrigger
	Type           *string     `json:"type,omitempty"`            // "The type of the trigger, e.g. `button_short_press`. Entries supported by the frontend: `button_short_press`, `button_short_release`, `button_long_press`, `button_long_release`, `button_double_press`, `button_triple_press`, `button_quadruple_press`, `button_quintuple_press`. If set to an unsupported value, will render as `subtype type`, e.g. `button_1 spammed` with `type` set to `spammed` and `subtype` set to `button_1`"
	ValueTemplate  *string     `json:"value_template,omitempty"`  // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the value."
	MQTT           struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (DeviceTrigger) Translate

func (iDevice DeviceTrigger) Translate() externaldevice.DeviceTrigger

type Event

type Event struct {
	AvailabilityMode       *string     `json:"availability_mode,omitempty"`        // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate   *string     `json:"availability_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability           *([]string) `json:"availability,omitempty"`             // Availability for the Event
	DeviceClass            *string     `json:"device_class,omitempty"`             // "The [type/class](/integrations/event/#device-class) of the event to set the icon in the frontend. The `device_class` can be `null`."
	EnabledByDefault       *bool       `json:"enabled_by_default,omitempty"`       // "Flag which defines if the entity should be enabled when first added."
	Encoding               *string     `json:"encoding,omitempty"`                 // "The encoding of the published messages."
	EntityCategory         *string     `json:"entity_category,omitempty"`          // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	EventTypes             *([]string) `json:"event_types,omitempty"`              // "A list of valid `event_type` strings."
	Icon                   *string     `json:"icon,omitempty"`                     // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	JsonAttributesTemplate *string     `json:"json_attributes_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
	JsonAttributes         *([]string) `json:"json_attributes,omitempty"`          // JsonAttributes for the Event
	Name                   *string     `json:"name,omitempty"`                     // "The name to use when displaying this event."
	ObjectId               *string     `json:"object_id,omitempty"`                // "Used instead of `name` for automatic generation of `entity_id`"
	PayloadAvailable       *string     `json:"payload_available,omitempty"`        // "The payload that represents the available state."
	PayloadNotAvailable    *string     `json:"payload_not_available,omitempty"`    // "The payload that represents the unavailable state."
	Qos                    *int        `json:"qos,omitempty"`                      // "The maximum QoS level to be used when receiving and publishing messages."
	State                  *([]string) `json:"state,omitempty"`                    // State for the Event
	UniqueId               *string     `json:"unique_id,omitempty"`                // "An ID that uniquely identifies this event entity. If two events have the same unique ID, Home Assistant will raise an exception."
	ValueTemplate          *string     `json:"value_template,omitempty"`           // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the value and render it to a valid JSON event payload. If the template throws an error, the current state will be used instead."
	MQTT                   struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Event) Translate

func (iDevice Event) Translate() externaldevice.Event

type Fan

type Fan struct {
	AvailabilityMode           *string     `json:"availability_mode,omitempty"`            // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate       *string     `json:"availability_template,omitempty"`        // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability               *([]string) `json:"availability,omitempty"`                 // Availability for the Fan
	CommandTemplate            *string     `json:"command_template,omitempty"`             // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `command_topic`."
	Command                    *([]string) `json:"command,omitempty"`                      // Command for the Fan
	DirectionCommandTemplate   *string     `json:"direction_command_template,omitempty"`   // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `direction_command_topic`."
	DirectionCommand           *([]string) `json:"direction_command,omitempty"`            // DirectionCommand for the Fan
	DirectionState             *([]string) `json:"direction_state,omitempty"`              // DirectionState for the Fan
	DirectionValueTemplate     *string     `json:"direction_value_template,omitempty"`     // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value from the direction."
	EnabledByDefault           *bool       `json:"enabled_by_default,omitempty"`           // "Flag which defines if the entity should be enabled when first added."
	Encoding                   *string     `json:"encoding,omitempty"`                     // "The encoding of the payloads received and published messages. Set to `\"\"` to disable decoding of incoming payload."
	EntityCategory             *string     `json:"entity_category,omitempty"`              // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	Icon                       *string     `json:"icon,omitempty"`                         // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	JsonAttributesTemplate     *string     `json:"json_attributes_template,omitempty"`     // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
	JsonAttributes             *([]string) `json:"json_attributes,omitempty"`              // JsonAttributes for the Fan
	Name                       *string     `json:"name,omitempty"`                         // "The name of the fan. Can be set to `null` if only the device name is relevant."
	ObjectId                   *string     `json:"object_id,omitempty"`                    // "Used instead of `name` for automatic generation of `entity_id`"
	Optimistic                 *bool       `json:"optimistic,omitempty"`                   // "Flag that defines if fan works in optimistic mode"
	OscillationCommandTemplate *string     `json:"oscillation_command_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `oscillation_command_topic`."
	OscillationCommand         *([]string) `json:"oscillation_command,omitempty"`          // OscillationCommand for the Fan
	OscillationState           *([]string) `json:"oscillation_state,omitempty"`            // OscillationState for the Fan
	OscillationValueTemplate   *string     `json:"oscillation_value_template,omitempty"`   // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value from the oscillation."
	PayloadAvailable           *string     `json:"payload_available,omitempty"`            // "The payload that represents the available state."
	PayloadNotAvailable        *string     `json:"payload_not_available,omitempty"`        // "The payload that represents the unavailable state."
	PayloadOff                 *string     `json:"payload_off,omitempty"`                  // "The payload that represents the stop state."
	PayloadOn                  *string     `json:"payload_on,omitempty"`                   // "The payload that represents the running state."
	PayloadOscillationOff      *string     `json:"payload_oscillation_off,omitempty"`      // "The payload that represents the oscillation off state."
	PayloadOscillationOn       *string     `json:"payload_oscillation_on,omitempty"`       // "The payload that represents the oscillation on state."
	PayloadResetPercentage     *string     `json:"payload_reset_percentage,omitempty"`     // "A special payload that resets the `percentage` state attribute to `unknown` when received at the `percentage_state_topic`."
	PayloadResetPresetMode     *string     `json:"payload_reset_preset_mode,omitempty"`    // "A special payload that resets the `preset_mode` state attribute to `unknown` when received at the `preset_mode_state_topic`."
	PercentageCommandTemplate  *string     `json:"percentage_command_template,omitempty"`  // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `percentage_command_topic`."
	PercentageCommand          *([]string) `json:"percentage_command,omitempty"`           // PercentageCommand for the Fan
	PercentageState            *([]string) `json:"percentage_state,omitempty"`             // PercentageState for the Fan
	PercentageValueTemplate    *string     `json:"percentage_value_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the `percentage` value from the payload received on `percentage_state_topic`."
	PresetModeCommandTemplate  *string     `json:"preset_mode_command_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `preset_mode_command_topic`."
	PresetModeCommand          *([]string) `json:"preset_mode_command,omitempty"`          // PresetModeCommand for the Fan
	PresetModeState            *([]string) `json:"preset_mode_state,omitempty"`            // PresetModeState for the Fan
	PresetModeValueTemplate    *string     `json:"preset_mode_value_template,omitempty"`   // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the `preset_mode` value from the payload received on `preset_mode_state_topic`."
	PresetModes                *([]string) `json:"preset_modes,omitempty"`                 // "List of preset modes this fan is capable of running at. Common examples include `auto`, `smart`, `whoosh`, `eco` and `breeze`."
	Qos                        *int        `json:"qos,omitempty"`                          // "The maximum QoS level to be used when receiving and publishing messages."
	Retain                     *bool       `json:"retain,omitempty"`                       // "If the published message should have the retain flag on or not."
	SpeedRangeMax              *int        `json:"speed_range_max,omitempty"`              // "The maximum of numeric output range (representing 100 %). The number of speeds within the `speed_range` / `100` will determine the `percentage_step`."
	SpeedRangeMin              *int        `json:"speed_range_min,omitempty"`              // "The minimum of numeric output range (`off` not included, so `speed_range_min` - `1` represents 0 %). The number of speeds within the speed_range / 100 will determine the `percentage_step`."
	State                      *([]string) `json:"state,omitempty"`                        // State for the Fan
	StateValueTemplate         *string     `json:"state_value_template,omitempty"`         // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value from the state."
	UniqueId                   *string     `json:"unique_id,omitempty"`                    // "An ID that uniquely identifies this fan. If two fans have the same unique ID, Home Assistant will raise an exception."
	MQTT                       struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Fan) Translate

func (iDevice Fan) Translate() externaldevice.Fan

type Humidifier

type Humidifier struct {
	ActionTemplate                *string     `json:"action_template,omitempty"`                  // "A template to render the value received on the `action_topic` with."
	Action                        *([]string) `json:"action,omitempty"`                           // Action for the Humidifier
	AvailabilityMode              *string     `json:"availability_mode,omitempty"`                // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate          *string     `json:"availability_template,omitempty"`            // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability                  *([]string) `json:"availability,omitempty"`                     // Availability for the Humidifier
	CommandTemplate               *string     `json:"command_template,omitempty"`                 // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `command_topic`."
	Command                       *([]string) `json:"command,omitempty"`                          // Command for the Humidifier
	CurrentHumidityTemplate       *string     `json:"current_humidity_template,omitempty"`        // "A template with which the value received on `current_humidity_topic` will be rendered."
	CurrentHumidity               *([]string) `json:"current_humidity,omitempty"`                 // CurrentHumidity for the Humidifier
	DeviceClass                   *string     `json:"device_class,omitempty"`                     // "The device class of the MQTT device. Must be either `humidifier`, `dehumidifier` or `null`."
	EnabledByDefault              *bool       `json:"enabled_by_default,omitempty"`               // "Flag which defines if the entity should be enabled when first added."
	Encoding                      *string     `json:"encoding,omitempty"`                         // "The encoding of the payloads received and published messages. Set to `\"\"` to disable decoding of incoming payload."
	EntityCategory                *string     `json:"entity_category,omitempty"`                  // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	Icon                          *string     `json:"icon,omitempty"`                             // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	JsonAttributesTemplate        *string     `json:"json_attributes_template,omitempty"`         // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
	JsonAttributes                *([]string) `json:"json_attributes,omitempty"`                  // JsonAttributes for the Humidifier
	MaxHumidity                   *int        `json:"max_humidity,omitempty"`                     // "The minimum target humidity percentage that can be set."
	MinHumidity                   *int        `json:"min_humidity,omitempty"`                     // "The maximum target humidity percentage that can be set."
	ModeCommandTemplate           *string     `json:"mode_command_template,omitempty"`            // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `mode_command_topic`."
	ModeCommand                   *([]string) `json:"mode_command,omitempty"`                     // ModeCommand for the Humidifier
	ModeStateTemplate             *string     `json:"mode_state_template,omitempty"`              // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value for the humidifier `mode` state."
	ModeState                     *([]string) `json:"mode_state,omitempty"`                       // ModeState for the Humidifier
	Modes                         *([]string) `json:"modes,omitempty"`                            // "List of available modes this humidifier is capable of running at. Common examples include `normal`, `eco`, `away`, `boost`, `comfort`, `home`, `sleep`, `auto` and `baby`. These examples offer built-in translations but other custom modes are allowed as well.  This attribute ust be configured together with the `mode_command_topic` attribute."
	Name                          *string     `json:"name,omitempty"`                             // "The name of the humidifier. Can be set to `null` if only the device name is relevant."
	ObjectId                      *string     `json:"object_id,omitempty"`                        // "Used instead of `name` for automatic generation of `entity_id`"
	Optimistic                    *bool       `json:"optimistic,omitempty"`                       // "Flag that defines if humidifier works in optimistic mode"
	PayloadAvailable              *string     `json:"payload_available,omitempty"`                // "The payload that represents the available state."
	PayloadNotAvailable           *string     `json:"payload_not_available,omitempty"`            // "The payload that represents the unavailable state."
	PayloadOff                    *string     `json:"payload_off,omitempty"`                      // "The payload that represents the stop state."
	PayloadOn                     *string     `json:"payload_on,omitempty"`                       // "The payload that represents the running state."
	PayloadResetHumidity          *string     `json:"payload_reset_humidity,omitempty"`           // "A special payload that resets the `target_humidity` state attribute to an `unknown` state when received at the `target_humidity_state_topic`. When received at `current_humidity_topic` it will reset the current humidity state."
	PayloadResetMode              *string     `json:"payload_reset_mode,omitempty"`               // "A special payload that resets the `mode` state attribute to an `unknown` state when received at the `mode_state_topic`."
	Qos                           *int        `json:"qos,omitempty"`                              // "The maximum QoS level to be used when receiving and publishing messages."
	Retain                        *bool       `json:"retain,omitempty"`                           // "If the published message should have the retain flag on or not."
	State                         *([]string) `json:"state,omitempty"`                            // State for the Humidifier
	StateValueTemplate            *string     `json:"state_value_template,omitempty"`             // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value from the state."
	TargetHumidityCommandTemplate *string     `json:"target_humidity_command_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `target_humidity_command_topic`."
	TargetHumidityCommand         *([]string) `json:"target_humidity_command,omitempty"`          // TargetHumidityCommand for the Humidifier
	TargetHumidityStateTemplate   *string     `json:"target_humidity_state_template,omitempty"`   // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value for the humidifier `target_humidity` state."
	TargetHumidityState           *([]string) `json:"target_humidity_state,omitempty"`            // TargetHumidityState for the Humidifier
	UniqueId                      *string     `json:"unique_id,omitempty"`                        // "An ID that uniquely identifies this humidifier. If two humidifiers have the same unique ID, Home Assistant will raise an exception."
	MQTT                          struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Humidifier) Translate

func (iDevice Humidifier) Translate() externaldevice.Humidifier

type Image

type Image struct {
	AvailabilityMode       *string     `json:"availability_mode,omitempty"`        // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate   *string     `json:"availability_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability           *([]string) `json:"availability,omitempty"`             // Availability for the Image
	ContentType            *string     `json:"content_type,omitempty"`             // "The content type of and image data message received on `image_topic`. This option cannot be used with the `url_topic` because the content type is derived when downloading the image."
	EnabledByDefault       *bool       `json:"enabled_by_default,omitempty"`       // "Flag which defines if the entity should be enabled when first added."
	Encoding               *string     `json:"encoding,omitempty"`                 // "The encoding of the payloads received. Set to `\"\"` to disable decoding of incoming payload. Use `image_encoding` to enable `Base64` decoding on `image_topic`."
	EntityCategory         *string     `json:"entity_category,omitempty"`          // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	Icon                   *string     `json:"icon,omitempty"`                     // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	ImageEncoding          *string     `json:"image_encoding,omitempty"`           // "The encoding of the image payloads received. Set to `\"b64\"` to enable base64 decoding of image payload. If not set, the image payload must be raw binary data."
	Image                  *([]string) `json:"image,omitempty"`                    // Image for the Image
	JsonAttributesTemplate *string     `json:"json_attributes_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`."
	JsonAttributes         *([]string) `json:"json_attributes,omitempty"`          // JsonAttributes for the Image
	Name                   *string     `json:"name,omitempty"`                     // "The name of the image. Can be set to `null` if only the device name is relevant."
	ObjectId               *string     `json:"object_id,omitempty"`                // "Used instead of `name` for automatic generation of `entity_id`"
	UniqueId               *string     `json:"unique_id,omitempty"`                // "An ID that uniquely identifies this image. If two images have the same unique ID Home Assistant will raise an exception."
	UrlTemplate            *string     `json:"url_template,omitempty"`             // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the image URL from a message received at `url_topic`."
	Url                    *([]string) `json:"url,omitempty"`                      // Url for the Image
	MQTT                   struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Image) Translate

func (iDevice Image) Translate() externaldevice.Image

type LawnMower

type LawnMower struct {
	ActivityState          *([]string) `json:"activity_state,omitempty"`           // ActivityState for the LawnMower
	ActivityValueTemplate  *string     `json:"activity_value_template,omitempty"`  // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the value."
	AvailabilityMode       *string     `json:"availability_mode,omitempty"`        // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate   *string     `json:"availability_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability, the result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability           *([]string) `json:"availability,omitempty"`             // Availability for the LawnMower
	DockCommandTemplate    *string     `json:"dock_command_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `dock_command_topic`. The `value` parameter in the template will be set to `dock`."
	DockCommand            *([]string) `json:"dock_command,omitempty"`             // DockCommand for the LawnMower
	EnabledByDefault       *bool       `json:"enabled_by_default,omitempty"`       // "Flag which defines if the entity should be enabled when first added."
	Encoding               *string     `json:"encoding,omitempty"`                 // "The encoding of the payloads received and published messages. Set to `\"\"` to disable decoding of the incoming payload."
	EntityCategory         *string     `json:"entity_category,omitempty"`          // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	Icon                   *string     `json:"icon,omitempty"`                     // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	JsonAttributesTemplate *string     `json:"json_attributes_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`."
	JsonAttributes         *([]string) `json:"json_attributes,omitempty"`          // JsonAttributes for the LawnMower
	Name                   *string     `json:"name,omitempty"`                     // "The name of the lawn mower. Can be set to `null` if only the device name is relevant."
	ObjectId               *string     `json:"object_id,omitempty"`                // "Used instead of `name` for automatic generation of `entity_id`"
	Optimistic             *bool       `json:"optimistic,omitempty"`               // "Flag that defines if the lawn mower works in optimistic mode."
	PauseCommandTemplate   *string     `json:"pause_command_template,omitempty"`   // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `pause_command_topic`. The `value` parameter in the template will be set to `pause`."
	PauseCommand           *([]string) `json:"pause_command,omitempty"`            // PauseCommand for the LawnMower
	Qos                    *int        `json:"qos,omitempty"`                      // "The maximum QoS level to be used when receiving and publishing messages."
	Retain                 *bool       `json:"retain,omitempty"`                   // "If the published message should have the retain flag on or not."
	StartMowingCommand     *([]string) `json:"start_mowing_command,omitempty"`     // StartMowingCommand for the LawnMower
	StartMowingTemplate    *string     `json:"start_mowing_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `dock_command_topic`. The `value` parameter in the template will be set to `dock`."
	UniqueId               *string     `json:"unique_id,omitempty"`                // "An ID that uniquely identifies this lawn mower. If two lawn mowers have the same unique ID, Home Assistant will raise an exception."
	MQTT                   struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (LawnMower) Translate

func (iDevice LawnMower) Translate() externaldevice.LawnMower

type Light

type Light struct {
	AvailabilityMode          *string     `json:"availability_mode,omitempty"`           // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate      *string     `json:"availability_template,omitempty"`       // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability              *([]string) `json:"availability,omitempty"`                // Availability for the Light
	BrightnessCommandTemplate *string     `json:"brightness_command_template,omitempty"` // "Defines a [template](/docs/configuration/templating/) to compose message which will be sent to `brightness_command_topic`. Available variables: `value`."
	BrightnessCommand         *([]string) `json:"brightness_command,omitempty"`          // BrightnessCommand for the Light
	BrightnessScale           *int        `json:"brightness_scale,omitempty"`            // "Defines the maximum brightness value (i.e., 100%) of the MQTT device."
	BrightnessState           *([]string) `json:"brightness_state,omitempty"`            // BrightnessState for the Light
	BrightnessValueTemplate   *string     `json:"brightness_value_template,omitempty"`   // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the brightness value."
	ColorModeState            *([]string) `json:"color_mode_state,omitempty"`            // ColorModeState for the Light
	ColorModeValueTemplate    *string     `json:"color_mode_value_template,omitempty"`   // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the color mode."
	ColorTempCommandTemplate  *string     `json:"color_temp_command_template,omitempty"` // "Defines a [template](/docs/configuration/templating/) to compose message which will be sent to `color_temp_command_topic`. Available variables: `value`."
	ColorTempCommand          *([]string) `json:"color_temp_command,omitempty"`          // ColorTempCommand for the Light
	ColorTempState            *([]string) `json:"color_temp_state,omitempty"`            // ColorTempState for the Light
	ColorTempValueTemplate    *string     `json:"color_temp_value_template,omitempty"`   // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the color temperature value."
	Command                   *([]string) `json:"command,omitempty"`                     // Command for the Light
	EffectCommandTemplate     *string     `json:"effect_command_template,omitempty"`     // "Defines a [template](/docs/configuration/templating/) to compose message which will be sent to `effect_command_topic`. Available variables: `value`."
	EffectCommand             *([]string) `json:"effect_command,omitempty"`              // EffectCommand for the Light
	EffectList                *([]string) `json:"effect_list,omitempty"`                 // "The list of effects the light supports."
	EffectState               *([]string) `json:"effect_state,omitempty"`                // EffectState for the Light
	EffectValueTemplate       *string     `json:"effect_value_template,omitempty"`       // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the effect value."
	EnabledByDefault          *bool       `json:"enabled_by_default,omitempty"`          // "Flag which defines if the entity should be enabled when first added."
	Encoding                  *string     `json:"encoding,omitempty"`                    // "The encoding of the payloads received and published messages. Set to `\"\"` to disable decoding of incoming payload."
	EntityCategory            *string     `json:"entity_category,omitempty"`             // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	HsCommandTemplate         *string     `json:"hs_command_template,omitempty"`         // "Defines a [template](/docs/configuration/templating/) to compose message which will be sent to `hs_command_topic`. Available variables: `hue` and `sat`."
	HsCommand                 *([]string) `json:"hs_command,omitempty"`                  // HsCommand for the Light
	HsState                   *([]string) `json:"hs_state,omitempty"`                    // HsState for the Light
	HsValueTemplate           *string     `json:"hs_value_template,omitempty"`           // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the HS value."
	Icon                      *string     `json:"icon,omitempty"`                        // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	JsonAttributesTemplate    *string     `json:"json_attributes_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
	JsonAttributes            *([]string) `json:"json_attributes,omitempty"`             // JsonAttributes for the Light
	MaxMireds                 *int        `json:"max_mireds,omitempty"`                  // "The maximum color temperature in mireds."
	MinMireds                 *int        `json:"min_mireds,omitempty"`                  // "The minimum color temperature in mireds."
	Name                      *string     `json:"name,omitempty"`                        // "The name of the light. Can be set to `null` if only the device name is relevant."
	ObjectId                  *string     `json:"object_id,omitempty"`                   // "Used instead of `name` for automatic generation of `entity_id`"
	OnCommandType             *string     `json:"on_command_type,omitempty"`             // "Defines when on the payload_on is sent. Using `last` (the default) will send any style (brightness, color, etc) topics first and then a `payload_on` to the `command_topic`. Using `first` will send the `payload_on` and then any style topics. Using `brightness` will only send brightness commands instead of the `payload_on` to turn the light on."
	Optimistic                *bool       `json:"optimistic,omitempty"`                  // "Flag that defines if switch works in optimistic mode."
	PayloadAvailable          *string     `json:"payload_available,omitempty"`           // "The payload that represents the available state."
	PayloadNotAvailable       *string     `json:"payload_not_available,omitempty"`       // "The payload that represents the unavailable state."
	PayloadOff                *string     `json:"payload_off,omitempty"`                 // "The payload that represents disabled state."
	PayloadOn                 *string     `json:"payload_on,omitempty"`                  // "The payload that represents enabled state."
	Qos                       *int        `json:"qos,omitempty"`                         // "The maximum QoS level to be used when receiving and publishing messages."
	Retain                    *bool       `json:"retain,omitempty"`                      // "If the published message should have the retain flag on or not."
	RgbCommandTemplate        *string     `json:"rgb_command_template,omitempty"`        // "Defines a [template](/docs/configuration/templating/) to compose message which will be sent to `rgb_command_topic`. Available variables: `red`, `green` and `blue`."
	RgbCommand                *([]string) `json:"rgb_command,omitempty"`                 // RgbCommand for the Light
	RgbState                  *([]string) `json:"rgb_state,omitempty"`                   // RgbState for the Light
	RgbValueTemplate          *string     `json:"rgb_value_template,omitempty"`          // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the RGB value."
	RgbwCommandTemplate       *string     `json:"rgbw_command_template,omitempty"`       // "Defines a [template](/docs/configuration/templating/) to compose message which will be sent to `rgbw_command_topic`. Available variables: `red`, `green`, `blue` and `white`."
	RgbwCommand               *([]string) `json:"rgbw_command,omitempty"`                // RgbwCommand for the Light
	RgbwState                 *([]string) `json:"rgbw_state,omitempty"`                  // RgbwState for the Light
	RgbwValueTemplate         *string     `json:"rgbw_value_template,omitempty"`         // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the RGBW value."
	RgbwwCommandTemplate      *string     `json:"rgbww_command_template,omitempty"`      // "Defines a [template](/docs/configuration/templating/) to compose message which will be sent to `rgbww_command_topic`. Available variables: `red`, `green`, `blue`, `cold_white` and `warm_white`."
	RgbwwCommand              *([]string) `json:"rgbww_command,omitempty"`               // RgbwwCommand for the Light
	RgbwwState                *([]string) `json:"rgbww_state,omitempty"`                 // RgbwwState for the Light
	RgbwwValueTemplate        *string     `json:"rgbww_value_template,omitempty"`        // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the RGBWW value."
	Schema                    *string     `json:"schema,omitempty"`                      // "The schema to use. Must be `default` or omitted to select the default schema."
	State                     *([]string) `json:"state,omitempty"`                       // State for the Light
	StateValueTemplate        *string     `json:"state_value_template,omitempty"`        // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the state value. The template should match the payload `on` and `off` values, so if your light uses `power on` to turn on, your `state_value_template` string should return `power on` when the switch is on. For example if the message is just `on`, your `state_value_template` should be `power {{ value }}`."
	UniqueId                  *string     `json:"unique_id,omitempty"`                   // "An ID that uniquely identifies this light. If two lights have the same unique ID, Home Assistant will raise an exception."
	WhiteCommand              *([]string) `json:"white_command,omitempty"`               // WhiteCommand for the Light
	WhiteScale                *int        `json:"white_scale,omitempty"`                 // "Defines the maximum white level (i.e., 100%) of the MQTT device."
	XyCommandTemplate         *string     `json:"xy_command_template,omitempty"`         // "Defines a [template](/docs/configuration/templating/) to compose message which will be sent to `xy_command_topic`. Available variables: `x` and `y`."
	XyCommand                 *([]string) `json:"xy_command,omitempty"`                  // XyCommand for the Light
	XyState                   *([]string) `json:"xy_state,omitempty"`                    // XyState for the Light
	XyValueTemplate           *string     `json:"xy_value_template,omitempty"`           // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the XY value."
	MQTT                      struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Light) Translate

func (iDevice Light) Translate() externaldevice.Light

type Lock

type Lock struct {
	AvailabilityMode       *string     `json:"availability_mode,omitempty"`        // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate   *string     `json:"availability_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability           *([]string) `json:"availability,omitempty"`             // Availability for the Lock
	CodeFormat             *string     `json:"code_format,omitempty"`              // "A regular expression to validate a supplied code when it is set during the service call to `open`, `lock` or `unlock` the MQTT lock."
	CommandTemplate        *string     `json:"command_template,omitempty"`         // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `command_topic`. The lock command template accepts the parameters `value` and `code`. The `value` parameter will contain the configured value for either `payload_open`, `payload_lock` or `payload_unlock`. The `code` parameter is set during the service call to `open`, `lock` or `unlock` the MQTT lock and will be set `None` if no code was passed."
	Command                *([]string) `json:"command,omitempty"`                  // Command for the Lock
	EnabledByDefault       *bool       `json:"enabled_by_default,omitempty"`       // "Flag which defines if the entity should be enabled when first added."
	Encoding               *string     `json:"encoding,omitempty"`                 // "The encoding of the payloads received and published messages. Set to `\"\"` to disable decoding of incoming payload."
	EntityCategory         *string     `json:"entity_category,omitempty"`          // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	Icon                   *string     `json:"icon,omitempty"`                     // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	JsonAttributesTemplate *string     `json:"json_attributes_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
	JsonAttributes         *([]string) `json:"json_attributes,omitempty"`          // JsonAttributes for the Lock
	Name                   *string     `json:"name,omitempty"`                     // "The name of the lock. Can be set to `null` if only the device name is relevant."
	ObjectId               *string     `json:"object_id,omitempty"`                // "Used instead of `name` for automatic generation of `entity_id`"
	Optimistic             *bool       `json:"optimistic,omitempty"`               // "Flag that defines if lock works in optimistic mode."
	PayloadAvailable       *string     `json:"payload_available,omitempty"`        // "The payload that represents the available state."
	PayloadLock            *string     `json:"payload_lock,omitempty"`             // "The payload sent to the lock to lock it."
	PayloadNotAvailable    *string     `json:"payload_not_available,omitempty"`    // "The payload that represents the unavailable state."
	PayloadOpen            *string     `json:"payload_open,omitempty"`             // "The payload sent to the lock to open it."
	PayloadReset           *string     `json:"payload_reset,omitempty"`            // "A special payload that resets the state to `unknown` when received on the `state_topic`."
	PayloadUnlock          *string     `json:"payload_unlock,omitempty"`           // "The payload sent to the lock to unlock it."
	Qos                    *int        `json:"qos,omitempty"`                      // "The maximum QoS level to be used when receiving and publishing messages."
	Retain                 *bool       `json:"retain,omitempty"`                   // "If the published message should have the retain flag on or not."
	StateJammed            *string     `json:"state_jammed,omitempty"`             // "The payload sent to `state_topic` by the lock when it's jammed."
	StateLocked            *string     `json:"state_locked,omitempty"`             // "The payload sent to `state_topic` by the lock when it's locked."
	StateLocking           *string     `json:"state_locking,omitempty"`            // "The payload sent to `state_topic` by the lock when it's locking."
	State                  *([]string) `json:"state,omitempty"`                    // State for the Lock
	StateUnlocked          *string     `json:"state_unlocked,omitempty"`           // "The payload sent to `state_topic` by the lock when it's unlocked."
	StateUnlocking         *string     `json:"state_unlocking,omitempty"`          // "The payload sent to `state_topic` by the lock when it's unlocking."
	UniqueId               *string     `json:"unique_id,omitempty"`                // "An ID that uniquely identifies this lock. If two locks have the same unique ID, Home Assistant will raise an exception."
	ValueTemplate          *string     `json:"value_template,omitempty"`           // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a state value from the payload."
	MQTT                   struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Lock) Translate

func (iDevice Lock) Translate() externaldevice.Lock

type Number

type Number struct {
	AvailabilityMode       *string     `json:"availability_mode,omitempty"`        // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	Availability           *([]string) `json:"availability,omitempty"`             // Availability for the Number
	CommandTemplate        *string     `json:"command_template,omitempty"`         // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `command_topic`."
	Command                *([]string) `json:"command,omitempty"`                  // Command for the Number
	DeviceClass            *string     `json:"device_class,omitempty"`             // "The [type/class](/integrations/number/#device-class) of the number. The `device_class` can be `null`."
	EnabledByDefault       *bool       `json:"enabled_by_default,omitempty"`       // "Flag which defines if the entity should be enabled when first added."
	Encoding               *string     `json:"encoding,omitempty"`                 // "The encoding of the payloads received and published messages. Set to `\"\"` to disable decoding of incoming payload."
	EntityCategory         *string     `json:"entity_category,omitempty"`          // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	Icon                   *string     `json:"icon,omitempty"`                     // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	JsonAttributesTemplate *string     `json:"json_attributes_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`."
	JsonAttributes         *([]string) `json:"json_attributes,omitempty"`          // JsonAttributes for the Number
	Max                    *float64    `json:"max,omitempty"`                      // "Maximum value."
	Min                    *float64    `json:"min,omitempty"`                      // "Minimum value."
	Mode                   *string     `json:"mode,omitempty"`                     // "Control how the number should be displayed in the UI. Can be set to `box` or `slider` to force a display mode."
	Name                   *string     `json:"name,omitempty"`                     // "The name of the Number. Can be set to `null` if only the device name is relevant."
	ObjectId               *string     `json:"object_id,omitempty"`                // "Used instead of `name` for automatic generation of `entity_id`"
	Optimistic             *bool       `json:"optimistic,omitempty"`               // "Flag that defines if number works in optimistic mode."
	PayloadReset           *string     `json:"payload_reset,omitempty"`            // "A special payload that resets the state to `unknown` when received on the `state_topic`."
	Qos                    *int        `json:"qos,omitempty"`                      // "The maximum QoS level to be used when receiving and publishing messages."
	Retain                 *bool       `json:"retain,omitempty"`                   // "If the published message should have the retain flag on or not."
	State                  *([]string) `json:"state,omitempty"`                    // State for the Number
	Step                   *float64    `json:"step,omitempty"`                     // "Step value. Smallest value `0.001`."
	UniqueId               *string     `json:"unique_id,omitempty"`                // "An ID that uniquely identifies this Number. If two Numbers have the same unique ID Home Assistant will raise an exception."
	UnitOfMeasurement      *string     `json:"unit_of_measurement,omitempty"`      // "Defines the unit of measurement of the sensor, if any. The `unit_of_measurement` can be `null`."
	ValueTemplate          *string     `json:"value_template,omitempty"`           // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the value."
	MQTT                   struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Number) Translate

func (iDevice Number) Translate() externaldevice.Number

type Scene

type Scene struct {
	AvailabilityMode       *string     `json:"availability_mode,omitempty"`        // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate   *string     `json:"availability_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability           *([]string) `json:"availability,omitempty"`             // Availability for the Scene
	Command                *([]string) `json:"command,omitempty"`                  // Command for the Scene
	EnabledByDefault       *bool       `json:"enabled_by_default,omitempty"`       // "Flag which defines if the entity should be enabled when first added."
	Encoding               *string     `json:"encoding,omitempty"`                 // "The encoding of the published messages."
	EntityCategory         *string     `json:"entity_category,omitempty"`          // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	Icon                   *string     `json:"icon,omitempty"`                     // "Icon for the scene."
	JsonAttributesTemplate *string     `json:"json_attributes_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
	JsonAttributes         *([]string) `json:"json_attributes,omitempty"`          // JsonAttributes for the Scene
	Name                   *string     `json:"name,omitempty"`                     // "The name to use when displaying this scene."
	ObjectId               *string     `json:"object_id,omitempty"`                // "Used instead of `name` for automatic generation of `entity_id`"
	PayloadAvailable       *string     `json:"payload_available,omitempty"`        // "The payload that represents the available state."
	PayloadNotAvailable    *string     `json:"payload_not_available,omitempty"`    // "The payload that represents the unavailable state."
	PayloadOn              *string     `json:"payload_on,omitempty"`               // "The payload that will be sent to `command_topic` when activating the MQTT scene."
	Qos                    *int        `json:"qos,omitempty"`                      // "The maximum QoS level to be used when receiving and publishing messages."
	Retain                 *bool       `json:"retain,omitempty"`                   // "If the published message should have the retain flag on or not."
	UniqueId               *string     `json:"unique_id,omitempty"`                // "An ID that uniquely identifies this scene entity. If two scenes have the same unique ID, Home Assistant will raise an exception."
	MQTT                   struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Scene) Translate

func (iDevice Scene) Translate() externaldevice.Scene

type Select

type Select struct {
	AvailabilityMode       *string     `json:"availability_mode,omitempty"`        // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate   *string     `json:"availability_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability           *([]string) `json:"availability,omitempty"`             // Availability for the Select
	CommandTemplate        *string     `json:"command_template,omitempty"`         // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `command_topic`."
	Command                *([]string) `json:"command,omitempty"`                  // Command for the Select
	EnabledByDefault       *bool       `json:"enabled_by_default,omitempty"`       // "Flag which defines if the entity should be enabled when first added."
	Encoding               *string     `json:"encoding,omitempty"`                 // "The encoding of the payloads received and published messages. Set to `\"\"` to disable decoding of incoming payload."
	EntityCategory         *string     `json:"entity_category,omitempty"`          // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	Icon                   *string     `json:"icon,omitempty"`                     // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	JsonAttributesTemplate *string     `json:"json_attributes_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`."
	JsonAttributes         *([]string) `json:"json_attributes,omitempty"`          // JsonAttributes for the Select
	Name                   *string     `json:"name,omitempty"`                     // "The name of the Select. Can be set to `null` if only the device name is relevant."
	ObjectId               *string     `json:"object_id,omitempty"`                // "Used instead of `name` for automatic generation of `entity_id`"
	Optimistic             *bool       `json:"optimistic,omitempty"`               // "Flag that defines if the select works in optimistic mode."
	Options                *([]string) `json:"options,omitempty"`                  // "List of options that can be selected. An empty list or a list with a single item is allowed."
	Qos                    *int        `json:"qos,omitempty"`                      // "The maximum QoS level to be used when receiving and publishing messages."
	Retain                 *bool       `json:"retain,omitempty"`                   // "If the published message should have the retain flag on or not."
	State                  *([]string) `json:"state,omitempty"`                    // State for the Select
	UniqueId               *string     `json:"unique_id,omitempty"`                // "An ID that uniquely identifies this Select. If two Selects have the same unique ID Home Assistant will raise an exception."
	ValueTemplate          *string     `json:"value_template,omitempty"`           // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the value."
	MQTT                   struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Select) Translate

func (iDevice Select) Translate() externaldevice.Select

type Sensor

type Sensor struct {
	AvailabilityMode          *string     `json:"availability_mode,omitempty"`           // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate      *string     `json:"availability_template,omitempty"`       // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability              *([]string) `json:"availability,omitempty"`                // Availability for the Sensor
	DeviceClass               *string     `json:"device_class,omitempty"`                // "The [type/class](/integrations/sensor/#device-class) of the sensor to set the icon in the frontend. The `device_class` can be `null`."
	EnabledByDefault          *bool       `json:"enabled_by_default,omitempty"`          // "Flag which defines if the entity should be enabled when first added."
	Encoding                  *string     `json:"encoding,omitempty"`                    // "The encoding of the payloads received. Set to `\"\"` to disable decoding of incoming payload."
	EntityCategory            *string     `json:"entity_category,omitempty"`             // "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."
	ExpireAfter               *int        `json:"expire_after,omitempty"`                // "If set, it defines the number of seconds after the sensor's state expires, if it's not updated. After expiry, the sensor's state becomes `unavailable`. Default the sensors state never expires."
	ForceUpdate               *bool       `json:"force_update,omitempty"`                // "Sends update events even if the value hasn't changed. Useful if you want to have meaningful value graphs in history."
	Icon                      *string     `json:"icon,omitempty"`                        // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	JsonAttributesTemplate    *string     `json:"json_attributes_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`."
	JsonAttributes            *([]string) `json:"json_attributes,omitempty"`             // JsonAttributes for the Sensor
	LastResetValueTemplate    *string     `json:"last_reset_value_template,omitempty"`   // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the last_reset. Available variables: `entity_id`. The `entity_id` can be used to reference the entity's attributes."
	Name                      *string     `json:"name,omitempty"`                        // "The name of the MQTT sensor. Can be set to `null` if only the device name is relevant."
	ObjectId                  *string     `json:"object_id,omitempty"`                   // "Used instead of `name` for automatic generation of `entity_id`"
	PayloadAvailable          *string     `json:"payload_available,omitempty"`           // "The payload that represents the available state."
	PayloadNotAvailable       *string     `json:"payload_not_available,omitempty"`       // "The payload that represents the unavailable state."
	Qos                       *int        `json:"qos,omitempty"`                         // "The maximum QoS level to be used when receiving and publishing messages."
	StateClass                *string     `json:"state_class,omitempty"`                 // "The [state_class](https://developers.home-assistant.io/docs/core/entity/sensor#available-state-classes) of the sensor."
	State                     *([]string) `json:"state,omitempty"`                       // State for the Sensor
	SuggestedDisplayPrecision *int        `json:"suggested_display_precision,omitempty"` // "The number of decimals which should be used in the sensor's state after rounding."
	UniqueId                  *string     `json:"unique_id,omitempty"`                   // "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception."
	UnitOfMeasurement         *string     `json:"unit_of_measurement,omitempty"`         // "Defines the units of measurement of the sensor, if any. The `unit_of_measurement` can be `null`."
	ValueTemplate             *string     `json:"value_template,omitempty"`              // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the value. If the template throws an error, the current state will be used instead."
	MQTT                      struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Sensor) Translate

func (iDevice Sensor) Translate() externaldevice.Sensor

type Siren

type Siren struct {
	AvailabilityMode       *string     `json:"availability_mode,omitempty"`        // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate   *string     `json:"availability_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability           *([]string) `json:"availability,omitempty"`             // Availability for the Siren
	AvailableTones         *([]string) `json:"available_tones,omitempty"`          // "A list of available tones the siren supports. When configured, this enables the support for setting a `tone` and enables the `tone` state attribute."
	CommandOffTemplate     *string     `json:"command_off_template,omitempty"`     // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate a custom payload to send to `command_topic` when the siren turn off service is called. By default `command_template` will be used as template for service turn off. The variable `value` will be assigned with the configured `payload_off` setting."
	CommandTemplate        *string     `json:"command_template,omitempty"`         // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate a custom payload to send to `command_topic`. The variable `value` will be assigned with the configured `payload_on` or `payload_off` setting. The siren turn on service parameters `tone`, `volume_level` or `duration` can be used as variables in the template. When operation in optimistic mode the corresponding state attributes will be set. Turn on parameters will be filtered if a device misses the support."
	Command                *([]string) `json:"command,omitempty"`                  // Command for the Siren
	EnabledByDefault       *bool       `json:"enabled_by_default,omitempty"`       // "Flag which defines if the entity should be enabled when first added."
	Encoding               *string     `json:"encoding,omitempty"`                 // "The encoding of the payloads received and published messages. Set to `\"\"` to disable decoding of incoming payload."
	EntityCategory         *string     `json:"entity_category,omitempty"`          // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	Icon                   *string     `json:"icon,omitempty"`                     // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	JsonAttributesTemplate *string     `json:"json_attributes_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
	JsonAttributes         *([]string) `json:"json_attributes,omitempty"`          // JsonAttributes for the Siren
	Name                   *string     `json:"name,omitempty"`                     // "The name to use when displaying this siren. Can be set to `null` if only the device name is relevant."
	ObjectId               *string     `json:"object_id,omitempty"`                // "Used instead of `name` for automatic generation of `entity_id`"
	Optimistic             *bool       `json:"optimistic,omitempty"`               // "Flag that defines if siren works in optimistic mode."
	PayloadAvailable       *string     `json:"payload_available,omitempty"`        // "The payload that represents the available state."
	PayloadNotAvailable    *string     `json:"payload_not_available,omitempty"`    // "The payload that represents the unavailable state."
	PayloadOff             *string     `json:"payload_off,omitempty"`              // "The payload that represents `off` state. If specified, will be used for both comparing to the value in the `state_topic` (see `value_template` and `state_off` for details) and sending as `off` command to the `command_topic`."
	PayloadOn              *string     `json:"payload_on,omitempty"`               // "The payload that represents `on` state. If specified, will be used for both comparing to the value in the `state_topic` (see `value_template` and `state_on`  for details) and sending as `on` command to the `command_topic`."
	Qos                    *int        `json:"qos,omitempty"`                      // "The maximum QoS level to be used when receiving and publishing messages."
	Retain                 *bool       `json:"retain,omitempty"`                   // "If the published message should have the retain flag on or not."
	StateOff               *string     `json:"state_off,omitempty"`                // "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`."
	StateOn                *string     `json:"state_on,omitempty"`                 // "The payload that represents the `on` state. Used when value that represents `on` state in the `state_topic` is different from value that should be sent to the `command_topic` to turn the device `on`."
	State                  *([]string) `json:"state,omitempty"`                    // State for the Siren
	StateValueTemplate     *string     `json:"state_value_template,omitempty"`     // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's state from the `state_topic`. To determine the siren's state result of this template will be compared to `state_on` and `state_off`. Alternatively `value_template` can be used to render to a valid JSON payload."
	SupportDuration        *bool       `json:"support_duration,omitempty"`         // "Set to `true` if the MQTT siren supports the `duration` service turn on parameter and enables the `duration` state attribute."
	SupportVolumeSet       *bool       `json:"support_volume_set,omitempty"`       // "Set to `true` if the MQTT siren supports the `volume_set` service turn on parameter and enables the `volume_level` state attribute."
	UniqueId               *string     `json:"unique_id,omitempty"`                // "An ID that uniquely identifies this siren device. If two sirens have the same unique ID, Home Assistant will raise an exception."
	MQTT                   struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Siren) Translate

func (iDevice Siren) Translate() externaldevice.Siren

type Switch

type Switch struct {
	AvailabilityMode       *string     `json:"availability_mode,omitempty"`        // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate   *string     `json:"availability_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability           *([]string) `json:"availability,omitempty"`             // Availability for the Switch
	Command                *([]string) `json:"command,omitempty"`                  // Command for the Switch
	DeviceClass            *string     `json:"device_class,omitempty"`             // "The [type/class](/integrations/switch/#device-class) of the switch to set the icon in the frontend. The `device_class` can be `null`."
	EnabledByDefault       *bool       `json:"enabled_by_default,omitempty"`       // "Flag which defines if the entity should be enabled when first added."
	Encoding               *string     `json:"encoding,omitempty"`                 // "The encoding of the payloads received and published messages. Set to `\"\"` to disable decoding of incoming payload."
	EntityCategory         *string     `json:"entity_category,omitempty"`          // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	Icon                   *string     `json:"icon,omitempty"`                     // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	JsonAttributesTemplate *string     `json:"json_attributes_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
	JsonAttributes         *([]string) `json:"json_attributes,omitempty"`          // JsonAttributes for the Switch
	Name                   *string     `json:"name,omitempty"`                     // "The name to use when displaying this switch. Can be set to `null` if only the device name is relevant."
	ObjectId               *string     `json:"object_id,omitempty"`                // "Used instead of `name` for automatic generation of `entity_id`"
	Optimistic             *bool       `json:"optimistic,omitempty"`               // "Flag that defines if switch works in optimistic mode."
	PayloadAvailable       *string     `json:"payload_available,omitempty"`        // "The payload that represents the available state."
	PayloadNotAvailable    *string     `json:"payload_not_available,omitempty"`    // "The payload that represents the unavailable state."
	PayloadOff             *string     `json:"payload_off,omitempty"`              // "The payload that represents `off` state. If specified, will be used for both comparing to the value in the `state_topic` (see `value_template` and `state_off` for details) and sending as `off` command to the `command_topic`."
	PayloadOn              *string     `json:"payload_on,omitempty"`               // "The payload that represents `on` state. If specified, will be used for both comparing to the value in the `state_topic` (see `value_template` and `state_on`  for details) and sending as `on` command to the `command_topic`."
	Qos                    *int        `json:"qos,omitempty"`                      // "The maximum QoS level to be used when receiving and publishing messages."
	Retain                 *bool       `json:"retain,omitempty"`                   // "If the published message should have the retain flag on or not."
	StateOff               *string     `json:"state_off,omitempty"`                // "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`."
	StateOn                *string     `json:"state_on,omitempty"`                 // "The payload that represents the `on` state. Used when value that represents `on` state in the `state_topic` is different from value that should be sent to the `command_topic` to turn the device `on`."
	State                  *([]string) `json:"state,omitempty"`                    // State for the Switch
	UniqueId               *string     `json:"unique_id,omitempty"`                // "An ID that uniquely identifies this switch device. If two switches have the same unique ID, Home Assistant will raise an exception."
	ValueTemplate          *string     `json:"value_template,omitempty"`           // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's state from the `state_topic`. To determine the switches's state result of this template will be compared to `state_on` and `state_off`."
	MQTT                   struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Switch) Translate

func (iDevice Switch) Translate() externaldevice.Switch

type Tag

type Tag struct {
	State         *([]string) `json:"state,omitempty"`          // State for the Tag
	ValueTemplate *string     `json:"value_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that returns a tag ID."
	MQTT          struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Tag) Translate

func (iDevice Tag) Translate() externaldevice.Tag

type Text

type Text struct {
	AvailabilityMode       *string     `json:"availability_mode,omitempty"`        // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate   *string     `json:"availability_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability           *([]string) `json:"availability,omitempty"`             // Availability for the Text
	CommandTemplate        *string     `json:"command_template,omitempty"`         // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `command_topic`."
	Command                *([]string) `json:"command,omitempty"`                  // Command for the Text
	EnabledByDefault       *bool       `json:"enabled_by_default,omitempty"`       // "Flag which defines if the entity should be enabled when first added."
	Encoding               *string     `json:"encoding,omitempty"`                 // "The encoding of the payloads received and published messages. Set to `\"\"` to disable decoding of incoming payload."
	EntityCategory         *string     `json:"entity_category,omitempty"`          // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	JsonAttributesTemplate *string     `json:"json_attributes_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`."
	JsonAttributes         *([]string) `json:"json_attributes,omitempty"`          // JsonAttributes for the Text
	Max                    *int        `json:"max,omitempty"`                      // "The maximum size of a text being set or received (maximum is 255)."
	Min                    *int        `json:"min,omitempty"`                      // "The minimum size of a text being set or received."
	Mode                   *string     `json:"mode,omitempty"`                     // "The mode off the text entity. Must be either `text` or `password`."
	Name                   *string     `json:"name,omitempty"`                     // "The name of the text entity. Can be set to `null` if only the device name is relevant."
	ObjectId               *string     `json:"object_id,omitempty"`                // "Used instead of `name` for automatic generation of `entity_id`"
	Pattern                *string     `json:"pattern,omitempty"`                  // "A valid regular expression the text being set or received must match with."
	Qos                    *int        `json:"qos,omitempty"`                      // "The maximum QoS level to be used when receiving and publishing messages."
	Retain                 *bool       `json:"retain,omitempty"`                   // "If the published message should have the retain flag on or not."
	State                  *([]string) `json:"state,omitempty"`                    // State for the Text
	UniqueId               *string     `json:"unique_id,omitempty"`                // "An ID that uniquely identifies this Select. If two Selects have the same unique ID Home Assistant will raise an exception."
	ValueTemplate          *string     `json:"value_template,omitempty"`           // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the text state value from the payload received on `state_topic`."
	MQTT                   struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Text) Translate

func (iDevice Text) Translate() externaldevice.Text

type Update

type Update struct {
	AvailabilityMode       *string     `json:"availability_mode,omitempty"`        // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate   *string     `json:"availability_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability           *([]string) `json:"availability,omitempty"`             // Availability for the Update
	Command                *([]string) `json:"command,omitempty"`                  // Command for the Update
	DeviceClass            *string     `json:"device_class,omitempty"`             // "The [type/class](/integrations/update/#device-classes) of the update to set the icon in the frontend. The `device_class` can be `null`."
	EnabledByDefault       *bool       `json:"enabled_by_default,omitempty"`       // "Flag which defines if the entity should be enabled when first added."
	Encoding               *string     `json:"encoding,omitempty"`                 // "The encoding of the payloads received and published messages. Set to `\"\"` to disable decoding of incoming payload."
	EntityCategory         *string     `json:"entity_category,omitempty"`          // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	EntityPicture          *string     `json:"entity_picture,omitempty"`           // "Picture URL for the entity."
	Icon                   *string     `json:"icon,omitempty"`                     // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	JsonAttributesTemplate *string     `json:"json_attributes_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`."
	JsonAttributes         *([]string) `json:"json_attributes,omitempty"`          // JsonAttributes for the Update
	LatestVersionTemplate  *string     `json:"latest_version_template,omitempty"`  // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the latest version value."
	LatestVersion          *([]string) `json:"latest_version,omitempty"`           // LatestVersion for the Update
	Name                   *string     `json:"name,omitempty"`                     // "The name of the Update. Can be set to `null` if only the device name is relevant."
	ObjectId               *string     `json:"object_id,omitempty"`                // "Used instead of `name` for automatic generation of `entity_id`"
	PayloadInstall         *string     `json:"payload_install,omitempty"`          // "The MQTT payload to start installing process."
	Qos                    *int        `json:"qos,omitempty"`                      // "The maximum QoS level to be used when receiving and publishing messages."
	ReleaseSummary         *string     `json:"release_summary,omitempty"`          // "Summary of the release notes or changelog. This is suitable a brief update description of max 255 characters."
	ReleaseUrl             *string     `json:"release_url,omitempty"`              // "URL to the full release notes of the latest version available."
	Retain                 *bool       `json:"retain,omitempty"`                   // "If the published message should have the retain flag on or not."
	State                  *([]string) `json:"state,omitempty"`                    // State for the Update
	Title                  *string     `json:"title,omitempty"`                    // "Title of the software, or firmware update. This helps to differentiate between the device or entity name versus the title of the software installed."
	UniqueId               *string     `json:"unique_id,omitempty"`                // "An ID that uniquely identifies this Update. If two Updates have the same unique ID Home Assistant will raise an exception."
	ValueTemplate          *string     `json:"value_template,omitempty"`           // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the `installed_version` state value or to render to a valid JSON payload on from the payload received on `state_topic`."
	MQTT                   struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Update) Translate

func (iDevice Update) Translate() externaldevice.Update

type Vacuum

type Vacuum struct {
	AvailabilityMode       *string     `json:"availability_mode,omitempty"`        // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate   *string     `json:"availability_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability           *([]string) `json:"availability,omitempty"`             // Availability for the Vacuum
	Command                *([]string) `json:"command,omitempty"`                  // Command for the Vacuum
	Encoding               *string     `json:"encoding,omitempty"`                 // "The encoding of the payloads received and published messages. Set to `\"\"` to disable decoding of incoming payload."
	FanSpeedList           *([]string) `json:"fan_speed_list,omitempty"`           // "List of possible fan speeds for the vacuum."
	JsonAttributesTemplate *string     `json:"json_attributes_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
	JsonAttributes         *([]string) `json:"json_attributes,omitempty"`          // JsonAttributes for the Vacuum
	Name                   *string     `json:"name,omitempty"`                     // "The name of the vacuum. Can be set to `null` if only the device name is relevant."
	ObjectId               *string     `json:"object_id,omitempty"`                // "Used instead of `name` for automatic generation of `entity_id`"
	PayloadAvailable       *string     `json:"payload_available,omitempty"`        // "The payload that represents the available state."
	PayloadCleanSpot       *string     `json:"payload_clean_spot,omitempty"`       // "The payload to send to the `command_topic` to begin a spot cleaning cycle."
	PayloadLocate          *string     `json:"payload_locate,omitempty"`           // "The payload to send to the `command_topic` to locate the vacuum (typically plays a song)."
	PayloadNotAvailable    *string     `json:"payload_not_available,omitempty"`    // "The payload that represents the unavailable state."
	PayloadPause           *string     `json:"payload_pause,omitempty"`            // "The payload to send to the `command_topic` to pause the vacuum."
	PayloadReturnToBase    *string     `json:"payload_return_to_base,omitempty"`   // "The payload to send to the `command_topic` to tell the vacuum to return to base."
	PayloadStart           *string     `json:"payload_start,omitempty"`            // "The payload to send to the `command_topic` to begin the cleaning cycle."
	PayloadStop            *string     `json:"payload_stop,omitempty"`             // "The payload to send to the `command_topic` to stop cleaning."
	Qos                    *int        `json:"qos,omitempty"`                      // "The maximum QoS level to be used when receiving and publishing messages."
	Retain                 *bool       `json:"retain,omitempty"`                   // "If the published message should have the retain flag on or not."
	SendCommand            *([]string) `json:"send_command,omitempty"`             // SendCommand for the Vacuum
	SetFanSpeed            *([]string) `json:"set_fan_speed,omitempty"`            // SetFanSpeed for the Vacuum
	State                  *([]string) `json:"state,omitempty"`                    // State for the Vacuum
	SupportedFeatures      *([]string) `json:"supported_features,omitempty"`       // "List of features that the vacuum supports (possible values are `start`, `stop`, `pause`, `return_home`, `battery`, `status`, `locate`, `clean_spot`, `fan_speed`, `send_command`)."
	UniqueId               *string     `json:"unique_id,omitempty"`                // "An ID that uniquely identifies this vacuum. If two vacuums have the same unique ID, Home Assistant will raise an exception."
	MQTT                   struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Vacuum) Translate

func (iDevice Vacuum) Translate() externaldevice.Vacuum

type Valve

type Valve struct {
	AvailabilityMode       *string     `json:"availability_mode,omitempty"`        // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate   *string     `json:"availability_template,omitempty"`    // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the device's availability from the `availability_topic`. To determine the devices's availability, the result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability           *([]string) `json:"availability,omitempty"`             // Availability for the Valve
	CommandTemplate        *string     `json:"command_template,omitempty"`         // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `command_topic`."
	Command                *([]string) `json:"command,omitempty"`                  // Command for the Valve
	DeviceClass            *string     `json:"device_class,omitempty"`             // "Sets the [class of the device](/integrations/valve/), changing the device state and icon that is displayed on the frontend. The `device_class` can be `null`."
	EnabledByDefault       *bool       `json:"enabled_by_default,omitempty"`       // "Flag which defines if the entity should be enabled when first added."
	Encoding               *string     `json:"encoding,omitempty"`                 // "The encoding of the payloads received and published messages. Set to `\"\"` to disable decoding of incoming payload."
	EntityCategory         *string     `json:"entity_category,omitempty"`          // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	Icon                   *string     `json:"icon,omitempty"`                     // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	JsonAttributesTemplate *string     `json:"json_attributes_template,omitempty"` // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. A usage example can be found in the [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
	JsonAttributes         *([]string) `json:"json_attributes,omitempty"`          // JsonAttributes for the Valve
	Name                   *string     `json:"name,omitempty"`                     // "The name of the valve. Can be set to `null` if only the device name is relevant."
	ObjectId               *string     `json:"object_id,omitempty"`                // "Used instead of `name` to have the `entity_id` generated automatically."
	Optimistic             *bool       `json:"optimistic,omitempty"`               // "Flag that defines if a switch works in optimistic mode."
	PayloadAvailable       *string     `json:"payload_available,omitempty"`        // "The payload that represents the online state."
	PayloadClose           *string     `json:"payload_close,omitempty"`            // "The command payload that closes the valve. Is only used when `reports_position` is set to `false` (default). The `payload_close` is not allowed if `reports_position` is set to `true`. Can be set to `null` to disable the valve's close option."
	PayloadNotAvailable    *string     `json:"payload_not_available,omitempty"`    // "The payload that represents the offline state."
	PayloadOpen            *string     `json:"payload_open,omitempty"`             // "The command payload that opens the valve. Is only used when `reports_position` is set to `false` (default). The `payload_open` is not allowed if `reports_position` is set to `true`. Can be set to `null` to disable the valve's open option."
	PayloadStop            *string     `json:"payload_stop,omitempty"`             // "The command payload that stops the valve. When not configured, the valve will not support the `valve.stop` service."
	PositionClosed         *int        `json:"position_closed,omitempty"`          // "Number which represents closed position. The valve's position will be scaled to the(`position_closed`...`position_open`) range when a service is called and scaled back when a value is received."
	PositionOpen           *int        `json:"position_open,omitempty"`            // "Number which represents open position. The valve's position will be scaled to (`position_closed`...`position_open`) range when a service is called and scaled back when a value is received."
	Qos                    *int        `json:"qos,omitempty"`                      // "The maximum QoS level to be used when receiving and publishing messages."
	ReportsPosition        *bool       `json:"reports_position,omitempty"`         // "Set to `true` if the value reports the position or supports setting the position. Enabling the `reports_position` option will cause the position to be published instead of a payload defined by `payload_open`, `payload_close` or `payload_stop`. When receiving messages, `state_topic` will accept numeric payloads or one of the following state messages: `open`, `opening`, `closed`, or `closing`."
	Retain                 *bool       `json:"retain,omitempty"`                   // "Defines if published messages should have the retain flag set."
	StateClosed            *string     `json:"state_closed,omitempty"`             // "The payload that represents the closed state. Is only allowed when `reports_position` is set to `False` (default)."
	StateClosing           *string     `json:"state_closing,omitempty"`            // "The payload that represents the closing state."
	StateOpen              *string     `json:"state_open,omitempty"`               // "The payload that represents the open state. Is only allowed when `reports_position` is set to `False` (default)."
	StateOpening           *string     `json:"state_opening,omitempty"`            // "The payload that represents the opening state."
	State                  *([]string) `json:"state,omitempty"`                    // State for the Valve
	UniqueId               *string     `json:"unique_id,omitempty"`                // "An ID that uniquely identifies this valve. If two valves have the same unique ID, Home Assistant will raise an exception."
	ValueTemplate          *string     `json:"value_template,omitempty"`           // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `state_topic` topic. The rendered value should be a defined state payload or, if reporting a `position` is supported and `reports_position` is set to `true`, a numeric value is expected representing the position. See also `state_topic`."
	MQTT                   struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (Valve) Translate

func (iDevice Valve) Translate() externaldevice.Valve

type WaterHeater

type WaterHeater struct {
	AvailabilityMode           *string     `json:"availability_mode,omitempty"`            // "When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability."
	AvailabilityTemplate       *string     `json:"availability_template,omitempty"`        // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
	Availability               *([]string) `json:"availability,omitempty"`                 // Availability for the WaterHeater
	CurrentTemperatureTemplate *string     `json:"current_temperature_template,omitempty"` // "A template with which the value received on `current_temperature_topic` will be rendered."
	CurrentTemperature         *([]string) `json:"current_temperature,omitempty"`          // CurrentTemperature for the WaterHeater
	EnabledByDefault           *bool       `json:"enabled_by_default,omitempty"`           // "Flag which defines if the entity should be enabled when first added."
	Encoding                   *string     `json:"encoding,omitempty"`                     // "The encoding of the payloads received and published messages. Set to `\"\"` to disable decoding of incoming payload."
	EntityCategory             *string     `json:"entity_category,omitempty"`              // "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
	Icon                       *string     `json:"icon,omitempty"`                         // "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
	Initial                    *int        `json:"initial,omitempty"`                      // "Set the initial target temperature. The default value depends on the temperature unit, and will be 43.3°C or 110°F."
	JsonAttributesTemplate     *string     `json:"json_attributes_template,omitempty"`     // "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
	JsonAttributes             *([]string) `json:"json_attributes,omitempty"`              // JsonAttributes for the WaterHeater
	MaxTemp                    *float64    `json:"max_temp,omitempty"`                     // "Maximum set point available. The default value depends on the temperature unit, and will be 60°C or 140°F."
	MinTemp                    *float64    `json:"min_temp,omitempty"`                     // "Minimum set point available. The default value depends on the temperature unit, and will be 43.3°C or 110°F."
	ModeCommandTemplate        *string     `json:"mode_command_template,omitempty"`        // "A template to render the value sent to the `mode_command_topic` with."
	ModeCommand                *([]string) `json:"mode_command,omitempty"`                 // ModeCommand for the WaterHeater
	ModeStateTemplate          *string     `json:"mode_state_template,omitempty"`          // "A template to render the value received on the `mode_state_topic` with."
	ModeState                  *([]string) `json:"mode_state,omitempty"`                   // ModeState for the WaterHeater
	Modes                      *([]string) `json:"modes,omitempty"`                        // "A list of supported modes. Needs to be a subset of the default values."
	Name                       *string     `json:"name,omitempty"`                         // "The name of the water heater. Can be set to `null` if only the device name is relevant."
	ObjectId                   *string     `json:"object_id,omitempty"`                    // "Used instead of `name` for automatic generation of `entity_id`"
	Optimistic                 *bool       `json:"optimistic,omitempty"`                   // "Flag that defines if the water heater works in optimistic mode"
	PayloadAvailable           *string     `json:"payload_available,omitempty"`            // "The payload that represents the available state."
	PayloadNotAvailable        *string     `json:"payload_not_available,omitempty"`        // "The payload that represents the unavailable state."
	PayloadOff                 *string     `json:"payload_off,omitempty"`                  // "The payload that represents disabled state."
	PayloadOn                  *string     `json:"payload_on,omitempty"`                   // "The payload that represents enabled state."
	PowerCommandTemplate       *string     `json:"power_command_template,omitempty"`       // "A template to render the value sent to the `power_command_topic` with. The `value` parameter is the payload set for `payload_on` or `payload_off`."
	PowerCommand               *([]string) `json:"power_command,omitempty"`                // PowerCommand for the WaterHeater
	Precision                  *float64    `json:"precision,omitempty"`                    // "The desired precision for this device. Can be used to match your actual water heater's precision. Supported values are `0.1`, `0.5` and `1.0`."
	Qos                        *int        `json:"qos,omitempty"`                          // "The maximum QoS level to be used when receiving and publishing messages."
	Retain                     *bool       `json:"retain,omitempty"`                       // "Defines if published messages should have the retain flag set."
	TemperatureCommandTemplate *string     `json:"temperature_command_template,omitempty"` // "A template to render the value sent to the `temperature_command_topic` with."
	TemperatureCommand         *([]string) `json:"temperature_command,omitempty"`          // TemperatureCommand for the WaterHeater
	TemperatureStateTemplate   *string     `json:"temperature_state_template,omitempty"`   // "A template to render the value received on the `temperature_state_topic` with."
	TemperatureState           *([]string) `json:"temperature_state,omitempty"`            // TemperatureState for the WaterHeater
	TemperatureUnit            *string     `json:"temperature_unit,omitempty"`             // "Defines the temperature unit of the device, `C` or `F`. If this is not set, the temperature unit is set to the system temperature unit."
	UniqueId                   *string     `json:"unique_id,omitempty"`                    // "An ID that uniquely identifies this water heater device. If two water heater devices have the same unique ID, Home Assistant will raise an exception."
	ValueTemplate              *string     `json:"value_template,omitempty"`               // "Default template to render the payloads on *all* `*_state_topic`s with."
	MQTT                       struct {
		UpdateInterval *float64 `json:"update_interval,omitempty"`
		ForceUpdate    *bool    `json:"force_update,omitempty"`
	} `json:"mqtt"`
}

////////////////////////////////////////////////////////////////////////////// Do not modify this file, it is automatically generated //////////////////////////////////////////////////////////////////////////////

func (WaterHeater) Translate

func (iDevice WaterHeater) Translate() externaldevice.WaterHeater

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL