diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index 25834c0f317d..dbb0e9d2dc28 100644 --- a/source/_docs/mqtt/discovery.markdown +++ b/source/_docs/mqtt/discovery.markdown @@ -154,9 +154,11 @@ Supported abbreviations: 'on_cmd_type': 'on_command_type', 'opt': 'optimistic', 'osc_cmd_t': 'oscillation_command_topic', + 'osc_cmd_tpl': 'oscillation_command_template', 'osc_stat_t': 'oscillation_state_topic', 'osc_val_tpl': 'oscillation_value_template', 'pct_cmd_t': 'percentage_command_topic', + 'pct_cmd_tpl': 'percentage_command_template', 'pct_stat_t': 'percentage_state_topic', 'pct_val_tpl': 'percentage_value_template', 'pl': 'payload', @@ -196,6 +198,7 @@ Supported abbreviations: 'pow_stat_t': 'power_state_topic', 'pow_stat_tpl': 'power_state_template', 'pr_mode_cmd_t': 'preset_mode_command_topic', + 'pr_mode_cmd_tpl': 'preset_mode_command_template', 'pr_mode_stat_t': 'preset_mode_state_topic', 'pr_mode_val_tpl': 'preset_mode_value_template', 'pr_modes': 'preset_modes', diff --git a/source/_integrations/alarm_control_panel.mqtt.markdown b/source/_integrations/alarm_control_panel.mqtt.markdown index 4d7647c9e38d..895ba5364fe1 100644 --- a/source/_integrations/alarm_control_panel.mqtt.markdown +++ b/source/_integrations/alarm_control_panel.mqtt.markdown @@ -113,6 +113,10 @@ device: description: "The name of the device." required: false type: string + suggested_area: + description: 'Suggest an area if the device isn’t in one yet.' + required: false + type: string sw_version: description: "The firmware version of the device." required: false diff --git a/source/_integrations/amcrest.markdown b/source/_integrations/amcrest.markdown index 1c266a8d6ff5..fd642957a8de 100644 --- a/source/_integrations/amcrest.markdown +++ b/source/_integrations/amcrest.markdown @@ -117,6 +117,10 @@ binary_sensors: description: "Return `on` when a motion is detected, `off` when not. Motion detection is enabled by default for most cameras, if this functionality is not working check that it is enabled in Settings > Events > Video Detection. Uses streaming method (see [below](#streaming-vs-polled-binary-sensors))." motion_detected_polled: description: "Return `on` when a motion is detected, `off` when not. Motion detection is enabled by default for most cameras, if this functionality is not working check that it is enabled in Settings > Events > Video Detection. Uses polled method (see [below](#streaming-vs-polled-binary-sensors))." + crossline_detected: + description: "Return `on` when a tripwire tripping is detected, `off` when not. Uses streaming method (see [below](#streaming-vs-polled-binary-sensors))." + crossline_detected_polled: + description: "Return `on` when a tripwire is tripping is detected, `off` when not. Uses polled method (see [below](#streaming-vs-polled-binary-sensors))." online: description: "Return `on` when camera is available (i.e., responding to commands), `off` when not." sensors: @@ -377,6 +381,7 @@ amcrest: password: YOUR_PASSWORD binary_sensors: - motion_detected + - crossline_detected - online sensors: - sdcard diff --git a/source/_integrations/august.markdown b/source/_integrations/august.markdown index c357686cd2ff..2d82264b5680 100644 --- a/source/_integrations/august.markdown +++ b/source/_integrations/august.markdown @@ -8,7 +8,7 @@ ha_category: - Camera - Lock ha_release: 0.64 -ha_iot_class: Cloud Polling +ha_iot_class: Cloud Push ha_config_flow: true ha_codeowners: - '@bdraco' diff --git a/source/_integrations/binary_sensor.modbus.markdown b/source/_integrations/binary_sensor.modbus.markdown deleted file mode 100644 index 33424ab389a5..000000000000 --- a/source/_integrations/binary_sensor.modbus.markdown +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: "Modbus Binary Sensor" -description: "Instructions on how to set up Modbus binary sensors within Home Assistant." -ha_category: - - Binary Sensor -ha_release: 0.28 -ha_iot_class: Local Push -ha_domain: modbus ---- - -The `modbus` binary sensor allows you to gather data from [Modbus](http://www.modbus.org/) coils. - -## Configuration - -To use your Modbus binary sensors in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -binary_sensor: - - platform: modbus - inputs: - - name: Sensor1 - hub: hub1 - slave: 1 - address: 100 - - name: Sensor2 - hub: hub1 - slave: 1 - address: 110 - input_type: discrete_input -``` - -{% configuration %} -inputs: - description: The array contains a list of coils and discrete inputs to read from. - required: true - type: [map, list] - keys: - name: - description: Name of the sensor. - required: true - type: string - hub: - description: The name of the hub. - required: false - default: modbus_hub - type: string - slave: - description: The number of the slave (Optional for TCP and UDP Modbus). - required: true - type: integer - address: - description: Coil or discrete input Modbus address. - required: true - type: integer - input_type: - description: Modbus input type (coil, discrete_input), default coil. - required: false - type: string - device_class: - description: The [type/class](/integrations/binary_sensor/#device-class) of the binary sensor to set the icon in the frontend. - required: false - type: device_class - default: None -{% endconfiguration %} - -It's possible to change the default 30 seconds scan interval for the sensor updates as shown in the [Platform options](/docs/configuration/platform_options/#scan-interval) documentation. - -## Full example - -Example a sensor with a 10 seconds scan interval: - -```yaml -binary_sensor: - - platform: modbus - scan_interval: 10 - inputs: - - name: Sensor1 - hub: hub1 - slave: 1 - address: 100 - - name: Sensor2 - hub: hub1 - slave: 1 - address: 110 - input_type: discrete_input -``` diff --git a/source/_integrations/binary_sensor.mqtt.markdown b/source/_integrations/binary_sensor.mqtt.markdown index 428f376dfafb..be94a14381c5 100644 --- a/source/_integrations/binary_sensor.mqtt.markdown +++ b/source/_integrations/binary_sensor.mqtt.markdown @@ -84,6 +84,10 @@ device: description: The name of the device. required: false type: string + suggested_area: + description: 'Suggest an area if the device isn’t in one yet.' + required: false + type: string sw_version: description: The firmware version of the device. required: false diff --git a/source/_integrations/camera.mqtt.markdown b/source/_integrations/camera.mqtt.markdown index 811382e65a4d..80fd9f0796ae 100644 --- a/source/_integrations/camera.mqtt.markdown +++ b/source/_integrations/camera.mqtt.markdown @@ -77,6 +77,10 @@ device: description: The name of the device. required: false type: string + suggested_area: + description: 'Suggest an area if the device isn’t in one yet.' + required: false + type: string sw_version: description: The firmware version of the device. required: false diff --git a/source/_integrations/climate.modbus.markdown b/source/_integrations/climate.modbus.markdown deleted file mode 100644 index 1deeeab1c4b0..000000000000 --- a/source/_integrations/climate.modbus.markdown +++ /dev/null @@ -1,125 +0,0 @@ ---- -title: "Modbus Climate" -description: "Instructions how to integrate a Modbus thermostat within Home Assistant." -ha_category: - - Climate -ha_release: 0.68 -ha_iot_class: Local Polling -ha_domain: modbus ---- - - -The `modbus` thermostat allows you to use a sensor value (current temperature) and target value (target temperature) from [Modbus](http://www.modbus.org/) registers. - -## Configuration - -To use your Modbus thermostat in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -modbus: - - name: hub1 - type: tcp - host: IP_ADDRESS - port: 502 - - climates: - - name: Watlow F4T - slave: 1 - data_type: uint - data_count: 1 - scale: 0.1 - offset: 0 - precision: 1 - max_temp: 30 - min_temp: 15 - temp_step: 1 - target_temp_register: 2782 - current_temp_register: 27586 -``` - -{% configuration %} -name: - description: Name of the device - required: true - type: string -slave: - description: The number of the slave (Optional for tcp and upd Modbus, use 1). - required: true - type: integer -target_temp_register: - description: Register number for target temperature (Setpoint). - required: true - type: integer -current_temp_register: - description: Register number for current temperature (Process value). - required: true - type: integer -current_temp_register_type: - description: Modbus register type (holding, input) for current temperature, default holding. - required: false - type: string - default: holding -data_type: - description: Response representation (int, uint, float, custom). If float selected, value will converted to IEEE 754 floating point format. - required: false - type: string - default: float -structure: - description: "If `data_type` is custom specified a double-quoted Python struct is expected here, to format the string to unpack the value. See Python documentation for details. Example: `>i`." - required: false - type: string - default: ">f" -data_count: - description: Number of registers to read. - required: false - type: integer - default: 2 -precision: - description: Number of valid decimals. - required: false - type: integer - default: 1 -scale: - description: Scale factor (output = scale * value + offset). - required: false - type: float - default: 1 -offset: - description: Final offset (output = scale * value + offset). - required: false - type: float - default: 0 -max_temp: - description: Maximum setpoint temperature. - required: false - type: integer - default: 35 -min_temp: - description: Maximum setpoint temperature. - required: false - type: integer - default: 5 -temp_step: - description: The supported step size a target temperature can be increased/decreased. - required: false - type: float - default: 0.5 -temperature_unit: - description: Temperature unit reported by the current_temp_register. C or F - required: false - type: string - default: C -scan_interval: - description: Defines the update interval of the sensor in seconds. - required: false - type: integer - default: 15 -{% endconfiguration %} - - -### Services - -| Service | Description | -| ------- | ----------- | -| set_temperature | Set Temperature. Requires `value` to be passed in, which is the desired target temperature. `value` should be in the same type as `data_type` | diff --git a/source/_integrations/climate.mqtt.markdown b/source/_integrations/climate.mqtt.markdown index 448ac310a3cb..373ae3b2a8b8 100644 --- a/source/_integrations/climate.mqtt.markdown +++ b/source/_integrations/climate.mqtt.markdown @@ -116,6 +116,10 @@ device: description: 'The name of the device.' required: false type: string + suggested_area: + description: 'Suggest an area if the device isn’t in one yet.' + required: false + type: string sw_version: description: 'The firmware version of the device.' required: false diff --git a/source/_integrations/cover.modbus.markdown b/source/_integrations/cover.modbus.markdown deleted file mode 100644 index 59f6d3f25a61..000000000000 --- a/source/_integrations/cover.modbus.markdown +++ /dev/null @@ -1,210 +0,0 @@ ---- -title: "Modbus Cover" -description: "Instructions on how to integrate Modbus covers into Home Assistant." -ha_category: - - Cover -ha_release: 0.116 -ha_iot_class: Local Polling -ha_domain: modbus ---- - -The `modbus` cover platform allows you to control [Modbus](http://www.modbus.org/) covers (such as blinds, a roller shutter, or a garage door). - -## Configuration - -At the moment, we support the opening and closing of a cover. You can control your covers either using coils or holding registers. - -Cover that uses the `coil` attribute is not able to determine intermediary states such as opening and closing. Coil stores only two states — "0" means cover closed, and "1" implies cover open. To allow detecting intermediary states, we added an optional `status_register` attribute. It will enable you to write your command (e.g., to open a cover) into a coil, and read current cover status back through the register. Additionally, you can specify values for `state_open`, `state_opening`, `state_closed`, and `state_closing` attributes. These will be matched with the value read from the `status_register`. - -If your cover uses holding register to send commands (defined by the `register` attribute), it can also read the intermediary states. To adjust which value represents what state, you can fine-tune the optional state attributes, like `state_open`. These optional state values are also used for specifying values written into the register. If you specify an optional status_register attribute, cover states will be read from status_register instead of the register used for sending commands. - -To use Modbus covers in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -modbus: - - name: hub1 - type: tcp - host: IP_ADDRESS - port: 502 - - covers: - - name: Door1 - device_class: door - scan_interval: 1 - coil: 0 - - name: Door2 - device_class: door - scan_interval: 1 - coil: 1 - status_register: 1 - - name: Door3 - slave: 2 - device_class: door - scan_interval: 1 - register: 0 - state_open: 1 - state_closed: 0 -``` - -{% configuration %} -covers: - description: The array contains a list of all your Modbus covers. - required: true - type: map - keys: - slave: - description: The number of the slave (can be omitted for tcp and udp Modbus). - required: false - default: 1 - type: integer - name: - description: Name of the switch. - required: true - type: string - coil: - description: Coil address; can be omitted if a register attribute is specified. Coil and register attributes are mutually exclusive, and you need to always specify one of them. - required: true - type: integer - register: - description: Holding register address; can be omitted if a coil attribute is specified. Coil and register attributes are mutually exclusive, and you need to always specify one of them. - required: true - type: integer - status_register: - description: An address of an register, from which all the cover states will be read. If you specified `register` attribute, and not `status_register` attribute, your main register will also be used as a status register. - required: false - type: integer - status_register_type: - description: Modbus register type (holding, input), default holding. - required: false - type: string - state_open: - description: A value in `status_register` or `register` representing an open cover. If your configuration uses an `register` attribute, this value will be also written into a holding register to open the cover. - required: false - default: 1 - type: integer - state_closed: - description: A value in `status_register` or `register` representing a closed cover. If your configuration uses an `register` attribute, this value will be also written into a holding register to close the cover. - required: false - default: 0 - type: integer - state_opening: - description: A value in `status_register` or `register` telling us that the cover is opening at the moment. Note that this state should be also supported on your connected Modbus cover. If it won't write this intermediary state into the register, this state won't be detected. - required: false - default: 2 - type: integer - state_closing: - description: A value in `status_register` or `register` telling us that the cover is closing at the moment. Note that this state should be also supported on your connected Modbus cover. If it won't write this intermediary state into the register, this state won't be detected. - required: false - default: 2 - type: integer - device_class: - description: The [type/class](/integrations/cover/#device-class) of the cover to set the icon in the frontend. - required: false - type: device_class - default: None - scan_interval: - description: Defines the update interval of the sensor in seconds. - required: false - type: integer - default: 15 -{% endconfiguration %} - -## Examples - -In this section, you find some real-life examples of how to use this light. - -### Modbus cover controlled by a coil - -This example shows a configuration for a Modbus cover controlled using a coil. Intermediary states like opening/closing are not supported. The cover state is polled from Modbus every 10 seconds. - -```yaml -modbus: - - name: hub1 - type: tcp - host: IP_ADDRESS - port: 502 - - covers: - - name: Door1 - slave: 1 - coil: 1 - device_class: door - scan_interval: 10 - - name: Door2 - slave: 2 - coil: 2 - device_class: door - scan_interval: 10 -``` - -### Modbus cover controlled by a coil, it's state is read from the register - -This example shows a configuration for a Modbus cover controlled using a coil. Actual cover state is read from the `status_register`. We've also specified register values to match with the states open/opening/closed/closing. The cover state is polled from Modbus every 10 seconds. - -```yaml -modbus: - - name: hub1 - type: tcp - host: IP_ADDRESS - port: 502 - - covers: - - name: Door1 - slave: 1 - device_class: door - scan_interval: 10 - coil: 1 - status_register: 1 - status_register_type: input - state_opening: 1 - state_open: 2 - state_closing: 3 - state_closed: 4 -``` - -### Modbus cover controlled by a holding register - -This example shows a configuration for a Modbus cover controlled using a holding register, from which we also read current cover state. We've also specified register values to match with the states open/opening/closed/closing. The cover state is polled from Modbus every 10 seconds. - -```yaml -modbus: - - name: hub1 - type: tcp - host: IP_ADDRESS - port: 502 - - covers: - - name: Door1 - slave: 1 - device_class: door - scan_interval: 10 - register: 1 - state_opening: 1 - state_open: 2 - state_closing: 3 - state_closed: 4 -``` - -### Modbus cover controlled by a holding register, it's state is read from the status register - -This example shows a configuration for a Modbus cover controlled using a holding register. However, cover state is read from a `status_register`. In this case, we've specified only values for `state_open` and `state_closed`, for the rest, default values are used. The cover state is polled from Modbus every 10 seconds. - -```yaml -modbus: - - name: hub1 - type: tcp - host: IP_ADDRESS - port: 502 - - covers: - - name: Door1 - slave: 1 - device_class: door - scan_interval: 10 - register: 1 - status_register: 2 - register_type: holding - state_open: 1 - state_closed: 0 -``` diff --git a/source/_integrations/cover.mqtt.markdown b/source/_integrations/cover.mqtt.markdown index 8bf363c67107..0d72e73249b4 100644 --- a/source/_integrations/cover.mqtt.markdown +++ b/source/_integrations/cover.mqtt.markdown @@ -94,6 +94,10 @@ device: description: The name of the device. required: false type: string + suggested_area: + description: 'Suggest an area if the device isn’t in one yet.' + required: false + type: string sw_version: description: The firmware version of the device. required: false diff --git a/source/_integrations/device_tracker.mqtt.markdown b/source/_integrations/device_tracker.mqtt.markdown index 1c777d8f7a6a..33eda93ed908 100644 --- a/source/_integrations/device_tracker.mqtt.markdown +++ b/source/_integrations/device_tracker.mqtt.markdown @@ -133,6 +133,10 @@ device: description: The name of the device. required: false type: string + suggested_area: + description: 'Suggest an area if the device isn’t in one yet.' + required: false + type: string sw_version: description: The firmware version of the device. required: false diff --git a/source/_integrations/device_trigger.mqtt.markdown b/source/_integrations/device_trigger.mqtt.markdown index 1f47e3f0fe60..f088a7cbe687 100644 --- a/source/_integrations/device_trigger.mqtt.markdown +++ b/source/_integrations/device_trigger.mqtt.markdown @@ -68,6 +68,10 @@ device: description: The name of the device. required: false type: string + suggested_area: + description: 'Suggest an area if the device isn’t in one yet.' + required: false + type: string sw_version: description: The firmware version of the device. required: false diff --git a/source/_integrations/econet.markdown b/source/_integrations/econet.markdown index e5360fd0565a..de6cc6b9b822 100644 --- a/source/_integrations/econet.markdown +++ b/source/_integrations/econet.markdown @@ -2,6 +2,9 @@ title: Rheem EcoNet Products description: Instructions on how to integrate Rheem EcoNet water heaters into Home Assistant. ha_category: + - Binary Sensor + - Climate + - Sensor - Water Heater ha_release: 0.61 ha_iot_class: Cloud Push @@ -16,6 +19,31 @@ ha_platforms: - water_heater --- -The `econet` water heater platform is consuming the information provided by a [EcoNet enabled Rheem water heater](https://www.rheem.com/EcoNet/Home). This platform allows you to set the temperature, the operation mode, and away mode. It also provides access to several device sensors depending on your model of water heater. +The EcoNet integration is consuming the information provided by a [EcoNet enabled Rheem water heater or thermostat](https://www.rheem.com/EcoNet/Home). {% include integrations/config_flow.md %} + +## Platforms + +EcoNet devices may be represented by one or more platforms. + +- [Binary Sensor](#binary-sensor) +- [Climate](#climate) +- [Sensor](#sensor) +- [Water Heater](#water-heater) + +### Binary Sensor + +The EcoNet Binary Sensor platform lets you view binary states of sensors associated with your EcoNet thermostat or water heater. For example, if the device is currently running. + +### Climate + +The EcoNet Climate platform lets you control your EcoNet thermostat. Multi-zone HVAC systems will have 1 Climate entity per zone. + +### Sensor + +The EcoNet Sensor platform lets you view sensors associated with your EcoNet thermostat or water heater. For example, alert count or available hot water. + +### Water Heater + +The EcoNet Water Heater platform lets you control your EcoNet water heater. Water Heaters do not report the current water temperature. diff --git a/source/_integrations/fan.mqtt.markdown b/source/_integrations/fan.mqtt.markdown index 01263e366ab5..8e6368e6fcdb 100644 --- a/source/_integrations/fan.mqtt.markdown +++ b/source/_integrations/fan.mqtt.markdown @@ -56,6 +56,10 @@ availability_topic: description: The MQTT topic subscribed to receive availability (online/offline) updates. Must not be used together with `availability`. required: false type: string +command_template: + description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to generate the payload to send to `command_topic`. + required: false + type: template command_topic: description: The MQTT topic to publish commands to change the fan state. required: true @@ -85,6 +89,10 @@ device: description: The name of the device. required: false type: string + suggested_area: + description: 'Suggest an area if the device isn’t in one yet.' + required: false + type: string sw_version: description: The firmware version of the device. required: false @@ -111,6 +119,10 @@ optimistic: required: false type: boolean default: "`true` if no state topic defined, else `false`." +oscillation_command_template: + description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to generate the payload to send to `oscillation_command_topic`. + required: false + type: template oscillation_command_topic: description: The MQTT topic to publish commands to change the oscillation state. required: false @@ -153,6 +165,9 @@ payload_oscillation_on: required: false type: string default: oscillate_on +percentage_command_template: + description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to generate the payload to send to `percentage_command_topic`. + required: false percentage_command_topic: description: The MQTT topic to publish commands to change the fan speed state based on a percentage. required: false @@ -165,6 +180,10 @@ percentage_value_template: description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from fan percentage speed. required: false type: string +preset_mode_command_template: + description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to generate the payload to send to `preset_mode_command_topic`. + required: false + type: template preset_mode_command_topic: description: The MQTT topic to publish commands to change the preset mode. required: false @@ -257,3 +276,27 @@ fan: speed_range_min: 1 speed_range_max: 100 ``` + +This example demonstrates how to use command templates. + +```yaml +# Example configuration.yaml +# Example using command templates +fan: + - platform: mqtt + name: "Bedroom Fan" + command_topic: "bedroom_fan/on/set" + command_template: "{ state: '{{ value }}'}" + oscillation_command_topic: "bedroom_fan/oscillation/set" + oscillation_command_template: "{ oscillation: '{{ value }}'}" + percentage_command_topic: "bedroom_fan/speed/percentage" + percentage_command_template: "{ percentage: {{ value }}}" + preset_mode_command_topic: "bedroom_fan/speed/preset_mode" + preset_mode_command_template: "{ preset_mode: '{{ value }}'}" + preset_modes: + - "auto" + - "smart" + - "whoosh" + - "eco" + - "breeze" +``` diff --git a/source/_integrations/graphite.markdown b/source/_integrations/graphite.markdown index 32b19ee28628..03b766a06507 100644 --- a/source/_integrations/graphite.markdown +++ b/source/_integrations/graphite.markdown @@ -29,6 +29,11 @@ port: required: false type: integer default: 2003 +protocol: + description: "Type of communication protocol: `tcp` or `udp`." + required: false + type: string + default: tcp prefix: description: Prefix is the metric prefix in graphite. required: false diff --git a/source/_integrations/griddy.markdown b/source/_integrations/griddy.markdown deleted file mode 100644 index 2823de39722a..000000000000 --- a/source/_integrations/griddy.markdown +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Griddy Power -description: Instructions on how to integrate griddy real-time electricity prices into Home Assistant. -ha_category: - - Energy - - Sensor -ha_release: 0.107 -ha_iot_class: Cloud Polling -ha_config_flow: true -ha_codeowners: - - '@bdraco' -ha_domain: griddy -ha_platforms: - - sensor ---- - -The `griddy` integration allows you to integrate your [Griddy](https://griddy.com/) price data into Home Assistant. - -There is currently support for the following device types within Home Assistant: - -- Sensor - -## Prerequisites - -You will need your Griddy Load Zone to use this module. - -{% include integrations/config_flow.md %} - -### Sensor - -The current price for the Load Zone will appear as a sensor: - -- LZ_XXXXX Price Now - -### Example Automation - -```yaml -- id: '1572630019168' - alias: "Stop Tesla Charging if Power Price Spikes" - description: "" - trigger: - - above: '30' - entity_id: sensor.lz_houston_price_now - platform: numeric_state - condition: - - condition: zone - entity_id: device_tracker.my_tesla - zone: zone.home - action: - - service: switch.turn_off - target: - entity_id: switch.my_tesla_charger_switch -``` diff --git a/source/_integrations/hive.markdown b/source/_integrations/hive.markdown index b66db5a84708..47e9b5b6c75b 100644 --- a/source/_integrations/hive.markdown +++ b/source/_integrations/hive.markdown @@ -24,35 +24,20 @@ ha_platforms: - water_heater --- -The `hive` integration is the main integration to set up and integrate all supported Hive devices. Once configured with the minimum required details it will detect and add all Hive devices into Home Assistant, including support for multi-zone heating. +The Hive integration for Home Assistant allows you to interact with supported devices and services offered by +[hivehome.com](https://www.hivehome.com) -This integration uses the Hive website [https://my.hivehome.com](https://my.hivehome.com) credentials, you will need to use the same username and password you use on the Hive website to configure this Hive integration in Home Assistant. +This Hive integration uses the same username and password you use on the [Hive website](https://sso.hivehome.com) to configure it within Home Assistant, 2FA authentication is also supported. Once configured Home Assistant will detect and add all Hive devices, including support for multi-zone heating. -To add your Hive devices into your Home Assistant installation, add the following to your `configuration.yaml` file: +{% include integrations/config_flow.md %} -```yaml -# Example configuration.yaml entry -hive: - username: YOUR_USERNAME - password: YOUR_PASSWORD -``` -{% configuration %} -username: - description: Your username from [https://my.hivehome.com](https://my.hivehome.com). - required: true - type: string -password: - description: Your password from [https://my.hivehome.com](https://my.hivehome.com). - required: true - type: string -scan_interval: - description: The time in minutes between Hive API calls - required: false - type: integer - default: 2 -{% endconfiguration %} +## Options +Menu: *Configuration* > *Integrations* > *Select your new integration* > *Press the options button* + +- **Scan Interval**: Update the scan interval allowing the integration to poll for data more frequently (Cannot be set lower than 30 seconds). + ## Services ### Service `hive.boost_heating` diff --git a/source/_integrations/home_plus_control.markdown b/source/_integrations/home_plus_control.markdown new file mode 100644 index 000000000000..e1e197ad441e --- /dev/null +++ b/source/_integrations/home_plus_control.markdown @@ -0,0 +1,89 @@ +--- +title: Legrand Home+ Control +description: Instructions on how to integrate Legrand Home+ Control into Home Assistant. +ha_category: + - Switch +ha_release: 2021.4 +ha_iot_class: Cloud Polling +ha_codeowners: + - '@chemaaa' +ha_config_flow: true +ha_domain: home_plus_control +--- + +The Home+ Control integration platform allows you to control a range of Legrand in-wall switches and power outlets that have smart home functionality thanks to their "with Netatmo" capabilities. + +This integration works against the Home+ Control API, which is one of the many APIs offered through the [*Works with Legrand*](https://developer.legrand.com/) program. The API is capable of managing "Legrand/Btcino with Netatmo" devices, such as light switches, power outlets and rolling shutters. + +The devices that this API can manage are offered in different designs across different countries. The details of these can be found [here](https://developer.legrand.com/solutions/wiring-devices-with-netatmo/). + +This Home+ Control integration for Home Assistant currently has support for the following devices: +- Light switches +- Power outlets + +In both cases, the devices are modeled as on/off switches within Home Assistant. + +This integration has been tested to work with the following range of Legrand products: +- Valena Next™ with Netatmo + + +## Authentication + +Before you are able to configure the Legrand Home + Control integration into Home Assistant, you must register with the *Works with Legrand* platform. + +These Legrand APIs rely on Oauth2 authentication, so you must follow these steps to obtain the necessary authentication parameters: + +1. Register an account at . +2. Create a subscription to the *Starter Kit* (currently the only subscription available) and this will generate your `SUBSCRIPTION_KEY`. +3. Register an application, where you will have to define a name, a redirect URL and the scopes of your application. When selecting the scopes, be sure to include all of the `.read` scopes, as well as the `light.write` and `plug.write` scopes to be able to control these modules from the integration. + +Once the registered application is confirmed, you should receive an email containing the `CLIENT_IDENTIFIER` and the `CLIENT_SECRET` which you will be using to set up the authentication flows. The application confirmation email is usually received within a few hours of having issued the request. + +Finally, to set up Oauth2 authentication in Home Assistant you should add the following information to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +home_plus_control: + client_id: CLIENT_IDENTIFIER + client_secret: CLIENT_SECRET + subscription_key: SUBSCRIPTION_KEY +``` + +{% configuration %} +client_id: + description: Client identifier for your registered application on the *Works with Legrand* platform. Received via email. + required: true + type: string +client_secret: + description: Client secret for your registered application on the *Works with Legrand* platform. Received via email. + required: true + type: string +subscription_key: + description: Subscription identifier for your registered account on the *Works with Legrand* platform. Provided upon registration. + required: true + type: string +{% endconfiguration %} + + +At this point, you are now ready to add the Home+ Control integration to your Home Assistant instance as described in the [Configuration](#configuration) section. + + +{% include integrations/config_flow.md %} + + +## API Nomenclature + +Within the context of the Home+ Control API you may come across the following terms: + +* *Plant*: This is the term used to represent a *home* that holds the Legrand devices. In practice, a *plant* is represented by the *Legrand Home+ Control* gateway that acts as the central hub of the rest of the devices in the home network (uses Zigbee). +* *Module*: This is the term used to represent a generic device within the *plant*, i.e., a light, a plug, a remote, etc. +* *Light*: This is the term used to represent a light switch (or a micro-module). It is not modeled as your usual light entity because there are no brightness, color, etc. controls. It is modeled as an on/off switch. +* *Plug*: This is the term used to represent a power outlet. + +Other devices that are mentioned in the API, but that are not currently supported by this integration are: *remotes* (wireless switches), *heaters* and *automations*. + +## API Limitations + +As described in the [authentication](#authentication) section, this integration requires you to set up a subscription in the *Works with Legrand* platform. + +Currently, end-users only have access to the *Starter Kit* subscription which has a major limitation in the number of allowed API requests that are allowed - only 500 API calls per day (counter is reset at 00:00 every day). If this daily quota is ever exceeded, the API will report `403 Forbidden` HTTP responses. diff --git a/source/_integrations/homeassistant.markdown b/source/_integrations/homeassistant.markdown index cd242cb82acb..1b2768f2e33a 100644 --- a/source/_integrations/homeassistant.markdown +++ b/source/_integrations/homeassistant.markdown @@ -21,6 +21,16 @@ The `homeassistant` integration provides services for controlling Home Assistant Reads the configuration files and checks them for correctness, but **does not** load them into Home Assistant. Creates a persistent notification and log entry if errors are found. +### Service `homeassistant.reload_config_entry` + +Reloads an integration config entry. + +| Service data attribute | Description | +|---------------------------|-------------------------------------------------------| +| `entity_id` | List of entity ids used to reference a config entry. | +| `area_id` | List of area ids used to reference a config entry. | +| `device_id` | List of device ids used to reference a config entry. | + ### Service `homeassistant.reload_core_config` Reloads the core configuration under `homeassistant:` and all linked files. Once loaded the new configuration is applied. New `customize:` information will be applied the next time the state of the entity gets updated. diff --git a/source/_integrations/homekit.markdown b/source/_integrations/homekit.markdown index 7ea6daec7f10..947a7f8e5725 100644 --- a/source/_integrations/homekit.markdown +++ b/source/_integrations/homekit.markdown @@ -57,7 +57,7 @@ homekit: linked_battery_sensor: sensor.living_room_motion_battery low_battery_threshold: 31 light.kitchen_table: - name: "Kitchen Table Light" + name: Kitchen Table Light lock.front_door: code: 1234 media_player.living_room: @@ -69,9 +69,9 @@ homekit: switch.bedroom_outlet: type: outlet camera.back_porch: - support_audio: true - - name: "HASS Bridge 2" - port: 56332 + support_audio: True + - name: HASS Bridge 2 + port: 21065 filter: include_domains: - light @@ -83,16 +83,11 @@ homekit: required: true type: map keys: - auto_start: - description: Flag if the HomeKit Server should start automatically after the Home Assistant Core Setup is done. ([Disable Auto Start](#disable-auto-start)) - required: false - type: boolean - default: true port: description: Port for the HomeKit extension. If you are adding more than one instance they need to have different values for port. required: false type: integer - default: 51827 + default: 21063 name: description: Need to be individual for each instance of Home Assistant using the integration on the same local network. Between `3` and `25` characters. Alphanumeric and spaces allowed. required: false @@ -304,12 +299,6 @@ Currently, this integration uses the `entity_id` to generate a unique `accessory The HomeKit Accessory Protocol Specification only allows a maximum of 150 unique accessories (`aid`) per bridge. Be mindful of this when configuring the filter(s). If you plan on exceeding the 150 devices limit, it is possible to create multiple bridges. If you need specific configuration for some entities via `entity_config` be sure to add them to a bridge configured via `YAML`. -### Persistence Storage - -Unfortunately, `HomeKit` doesn't support any persistent storage - only the configuration for accessories that are added to the `Home Assistant Bridge` are kept. To avoid problems, it is recommended to use an automation to always start `HomeKit` with at least the same entities setup. If, for some reason, some entities are not set up, their configuration will be deleted. (State unknown or similar will not cause any issues.) - -A common situation might be if you decide to disable parts of the configuration for testing. Please make sure to disable `auto start` and `turn off` the `Start HomeKit` automation (if you have one). - ### Multiple HomeKit instances If you create a HomeKit integration via the UI (i.e., **Configuration** >> **Integrations**), it must be configured via the UI **only**. While the UI only offers limited configuration options at the moment, any attempt to configure a HomeKit instance created in the UI via the `configuration.yaml` file will result in another instance of HomeKit running on a different port. @@ -318,7 +307,7 @@ It is recommended to only edit a HomeKit instance in the UI that was created in ### Accessory mode -When exposing a Camera or Television media player (a `media_player` with device class `tv`) to HomeKit, `mode` must be set to `accessory`, and the include filter should be setup to only include a single entity. +When exposing a Camera, Activity based remote (a `remote` that supports activities), or Television media player (a `media_player` with device class `tv`) to HomeKit, `mode` must be set to `accessory`, and the include filter should be setup to only include a single entity. To quickly add all accessory modes entities in the UI: @@ -338,10 +327,6 @@ To add a single entity in accessory mode: 5. Complete the options flow 6. [Pair the accessory](#setup). -## Disable Auto Start - -It is not needed (anymore) to disable `Auto Start` for all accessories to be available for `HomeKit` as Home Assistant restores all entities on start instantly. - ## Configure Filter By default, no entity will be excluded. To limit which entities are being exposed to `HomeKit`, you can use the `filter` parameter. Keep in mind only [supported components](#supported-components) can be added. @@ -397,7 +382,7 @@ Restart your Home Assistant instance. This feature requires running an mDNS forw If you have a firewall configured on your Home Assistant system, make sure you open the following ports: - UDP: 5353 -- TCP: 51827 (or the configured/used `port` in the integration settings). +- TCP: 21063 (or the configured/used `port` in the integration settings). ## Supported Components @@ -537,10 +522,6 @@ Pairing works fine when the filter is set to only include `demo.demo`, but fails ### Issues during normal use -#### Some of my devices don't show up - Z-Wave / Discovery - -See [disable auto start](#disable-auto-start) - #### My entity doesn't show up Check if the domain of your entity is [supported](#supported-components). If it is, check your [filter](#configure-filter) settings. Make sure the spelling is correct, especially if you use `include_entities`. diff --git a/source/_integrations/hyperion.markdown b/source/_integrations/hyperion.markdown index d7c6ae197f03..f2e0b0ebbd76 100644 --- a/source/_integrations/hyperion.markdown +++ b/source/_integrations/hyperion.markdown @@ -32,8 +32,9 @@ All configuration options are offered from the frontend. Choose `Options` under relevant entry on the `Integrations` page. Options supported: -- **priority**: The priority for color and effects, make sure this is lower then the streaming sources priority in hyperion itself (typically lower than 200 is appropriate). - +- **Priority**: The priority for color and effects, make sure this is lower then the streaming sources priority in hyperion itself (typically lower than 200 is appropriate). +- **Effects to hide**: An optional selection of effects to hide from the light effects + list. New effects added to the Hyperion server will be shown by default. ## Hyperion Instances This integration supports multiple Hyperion instances running on a single Hyperion diff --git a/source/_integrations/izone.markdown b/source/_integrations/izone.markdown index 887535b5904b..819c9ddb3464 100644 --- a/source/_integrations/izone.markdown +++ b/source/_integrations/izone.markdown @@ -122,3 +122,23 @@ logger: ``` This will help you to find network connection issues etc. + +## Services + +### Service `izone.airflow_min` + +Set the minimum airflow for a particular zone. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | izone Zone entity. For example `climate.bed_2` +| `airflow` | no | Airflow percent in 5% increments + +### Service `izone.airflow_max` + +Set the maximum airflow for a particular zone. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | izone Zone entity. For example `climate.bed_2` +| `airflow` | no | Airflow percent in 5% increments diff --git a/source/_integrations/knx.markdown b/source/_integrations/knx.markdown index 68cea77559db..3ec42d0378d3 100644 --- a/source/_integrations/knx.markdown +++ b/source/_integrations/knx.markdown @@ -79,18 +79,7 @@ knx: Please see the dedicated platform sections below about how to configure them correctly. -Alternatively, if you want to use the [XKNX](https://xknx.io/) library abstraction (e.g., to re-use the configuration also for other scripted tools outside of Home Assistant): - -```yaml -knx: - config_file: "/path/to/xknx.yaml" -``` - {% configuration %} -config_file: - description: The path for XKNX configuration file. See [xknx.io](https://xknx.io/configuration) for details. - required: false - type: string individual_address: description: The KNX individual address (IA) that shall be used for routing or if a tunneling server doesn't assign an IA at connection. required: false @@ -145,6 +134,11 @@ local_ip: description: IP address of the local interface. type: string required: false +route_back: + description: When True the KNXnet/IP Server shall use the IP address and the port number from the IP package received as the target IP address or port number for the response to the KNXnet/IP Client (for NAT / Docker). + type: boolean + default: false + required: false {% endconfiguration %} ### Routing diff --git a/source/_integrations/light.mqtt.markdown b/source/_integrations/light.mqtt.markdown index 8f833fbe3b28..549cd01e1d10 100644 --- a/source/_integrations/light.mqtt.markdown +++ b/source/_integrations/light.mqtt.markdown @@ -138,6 +138,10 @@ device: description: 'The name of the device.' required: false type: string + suggested_area: + description: 'Suggest an area if the device isn’t in one yet.' + required: false + type: string sw_version: description: 'The firmware version of the device.' required: false diff --git a/source/_integrations/lock.mqtt.markdown b/source/_integrations/lock.mqtt.markdown index 08beb2e43aeb..1cb52e8d3961 100644 --- a/source/_integrations/lock.mqtt.markdown +++ b/source/_integrations/lock.mqtt.markdown @@ -85,6 +85,10 @@ device: description: 'The name of the device.' required: false type: string + suggested_area: + description: 'Suggest an area if the device isn’t in one yet.' + required: false + type: string sw_version: description: 'The firmware version of the device.' required: false diff --git a/source/_integrations/matrix.markdown b/source/_integrations/matrix.markdown index 9c2bda7d82b0..d334d064aecb 100644 --- a/source/_integrations/matrix.markdown +++ b/source/_integrations/matrix.markdown @@ -175,3 +175,18 @@ default_room: The target room has to be precreated, the room id can be obtained from the rooms settings dialog. Rooms by default have a canonical id of the form `"!:homeserver.tld"`, but can also be allocated aliases like `"#roomname:homeserver.tld"`. Make sure to use quotes around the room id or alias to escape special characters (`!`, and `#`) in YAML. The notifying account may need to be invited to the room, depending on the individual rooms policies. To use notifications, please see the [getting started with automation page](/getting-started/automation/). + +### Images in notification + +It is possible to send images with notifications. To do so, add a list of paths in the notification `data`. + +```yaml +# Example of notification with images +action: + service: notify.matrix_notify + data: + message: "Test with images" + data: + images: + - /path/to/picture.jpg +``` diff --git a/source/_integrations/media_player.markdown b/source/_integrations/media_player.markdown index 78d48f85693f..60430774f15a 100644 --- a/source/_integrations/media_player.markdown +++ b/source/_integrations/media_player.markdown @@ -14,7 +14,7 @@ Interacts with media players on your network. ## Services ### Media control services -Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`, `volume_set`, `volume_mute`, `media_play_pause`, `media_play`, `media_pause`, `media_stop`, `media_next_track`, `media_previous_track`, `clear_playlist`, `shuffle_set`, `repeat_set`, `play_media`, `select_source`, `select_sound_mode` +Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`, `volume_set`, `volume_mute`, `media_play_pause`, `media_play`, `media_pause`, `media_stop`, `media_next_track`, `media_previous_track`, `clear_playlist`, `shuffle_set`, `repeat_set`, `play_media`, `select_source`, `select_sound_mode`, `join`, `unjoin` | Service data attribute | Optional | Description | | ---------------------- | -------- | ------------------------------------------------ | @@ -156,6 +156,21 @@ Currently only supported on [Sonos](/integrations/sonos), [Spotify](/integration | `entity_id` | yes | Target a specific media player. For example `media_player.kitchen`| | `repeat` | no | `off`/`all`/`one` for setting repeat mode | +#### Service `media_player.join` + +Allows to group media players together for synchronous playback. Only works on supported multiroom audio systems. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ---------------------------------------------------- | +| `entity_id` | yes | The media player entity whose playback will be expanded to the players specified in `group_members`. | +| `group_members` | no | The player entities which will be synced with the playback from `entity_id`. | + +#### Service `media_player.unjoin` + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ---------------------------------------------------- | +| `entity_id` | yes | Unjoin this media player from any player groups. | + ### Device Class The way media players are displayed in the frontend can be modified in the [customize section](/getting-started/customizing-devices/). The following device classes are supported for media players: diff --git a/source/_integrations/modbus.markdown b/source/_integrations/modbus.markdown index 1da25a6d5bbb..5d9e7f06b9e2 100644 --- a/source/_integrations/modbus.markdown +++ b/source/_integrations/modbus.markdown @@ -1,6 +1,6 @@ --- title: Modbus -description: Instructions on how to integrate Modbus within Home Assistant. +description: Instructions on how to integrate Modbus and platforms. ha_category: - Hub ha_release: pre 0.7 @@ -23,7 +23,16 @@ It supports various types of devices which can be controlled over serial, TCP, a ## Configuration -The configuration for adding modbus to your installation depends on the connection type, either a network or serial connection. +How to add modbus to your installation depends on the connection type, either a network or serial connection. + +Platforms: + - binary_sensor + - climate + - cover + - sensor + - switch + +are all defined as part of the modbus configuration. The old configuration style, (having each outside the modbus configuration is still supported, but will cause a warning, and will be removed in a later release). ### Network connection @@ -32,40 +41,40 @@ For a network connection, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry for a TCP connection modbus: - name: hub1 - type: tcp - host: IP_ADDRESS - port: 2020 + - name: hub1 + type: tcp + host: IP_ADDRESS + port: 502 ``` {% configuration %} -type: - description: Type of the connection to Modbus. Possible values are `tcp` (Modbus TCP protocol according to "MODBUS Messaging Implementation Guide version 1.0b" provided by Schneider Automation.), `udp`(Modbus TCP form, but using UDP for transport. It removes the overheads required for TCP.) and `rtuovertcp` (Modbus RTU message transmitted with a TCP/IP wrapper and sent over a network instead of serial lines.). - required: true - type: string +delay: + description: Time to sleep in seconds after connecting and before sending messages. Some modbus-tcp servers need a short delay typically 1-2 seconds in order to prepare the communication. If a server accepts connecting, but there is no response to the requests send, this parameter might help. + required: false + default: 0 + type: integer host: description: The IP address of your Modbus device, e.g., 192.168.1.1. required: true type: string -port: - description: The network port for the communication. - required: true - type: integer name: description: Name for this hub. Must be unique, so it is required when setting up multiple instances. required: false default: modbus_hub type: string +port: + description: The network port for the communication. + required: true + type: integer timeout: description: Timeout for slave response in seconds. required: false default: 3 type: integer -delay: - description: Time to sleep in seconds after connecting and before sending messages. Some modbus-tcp servers need a short delay typically 1-2 seconds in order to prepare the communication. If a server accepts connecting, but there is no response to the requests send, this parameter might help. - required: false - default: 0 - type: integer +type: + description: Type of the connection to Modbus. Possible values are `tcp` (Modbus TCP protocol according to "MODBUS Messaging Implementation Guide version 1.0b" provided by Schneider Automation.), `udp`(Modbus TCP form, but using UDP for transport. It removes the overheads required for TCP.) and `rtuovertcp` (Modbus RTU message transmitted with a TCP/IP wrapper and sent over a network instead of serial lines.). + required: true + type: string {% endconfiguration %} ### Serial connection @@ -75,58 +84,661 @@ For a serial connection, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry for a serial connection modbus: - name: hub1 - type: serial - method: rtu - port: /dev/ttyUSB0 - baudrate: 9600 - stopbits: 1 - bytesize: 8 - parity: N + - name: hub1 + type: serial + method: rtu + port: /dev/ttyUSB0 + baudrate: 9600 + stopbits: 1 + bytesize: 8 + parity: N ``` {% configuration %} -type: - description: "Type of the connection to Modbus, needs to be `serial` for this setup." - required: true - type: string -method: - description: "Method of the connection to Modbus, either `rtu` or `ascii`." - required: true - type: string -port: - description: The port where your Modbus device is connected to your Home Assistant host. - required: true - type: string baudrate: description: The speed for the serial connection. required: true type: integer -stopbits: - description: "The stopbits for the serial connection, either `1` or `2`." - required: true - type: integer bytesize: description: "The bytesize for the serial connection; can be `5`, `6`, `7` or `8`." required: true type: integer -parity: - description: "The parity for the serial connection; can be `E`, `O` or `N`." +delay: + description: Time to sleep in seconds after connecting and before sending messages. Some modbus servers need a short delay typically 1-2 seconds in order to prepare the communication. If a server accepts connecting, but there is no response to the requests send, this parameter might help. + required: false + default: 0 + type: integer +method: + description: "Method of the connection to Modbus, either `rtu` or `ascii`." required: true type: string name: description: Name for this hub. Must be unique, so it is required when setting up multiple instances. required: false - default: default + default: modbus_hub + type: string +parity: + description: "The parity for the serial connection; can be `E`, `O` or `N`." + required: true + type: string +port: + description: The port where your Modbus device is connected to your Home Assistant host. + required: true type: string +stopbits: + description: "The stopbits for the serial connection, either `1` or `2`." + required: true + type: integer timeout: description: Timeout for slave response in seconds. required: false default: 3 type: integer +type: + description: "Type of the connection to Modbus, needs to be `serial` for this setup." + required: true + type: string +{% endconfiguration %} + +### Configuring platform binary sensor + +The `modbus` binary sensor allows you to gather data from [Modbus](http://www.modbus.org/) coils with state ON/OFF. + +To use your Modbus binary sensors in your installation, add the following to your `configuration.yaml` file: +```yaml +# Example configuration.yaml entry for binary_sensor configuration +modbus: + - name: hub1 + type: tcp + host: IP_ADDRESS + port: 502 + binary_sensors: + - name: Sensor1 + slave: 1 + address: 100 + - name: Sensor2 + address: 110 + input_type: discrete_input +``` +{% configuration %} +binary_sensors: + description: A list of all binary_sensors available in this modbus instance. + required: false + type: [map] + keys: + device_class: + description: Device class to be used for the UI (e.g. "door"). + required: false + type: string + input_type: + description: type of adddress (holding/discrete/coil) + required: false + default: holding + type: integer + name: + description: Name for this binary_sensor. Must be unique. + required: true + type: string + scan_interval: + description: Defines the update interval of the sensor in seconds. + required: false + type: integer + default: 15 + slave: + description: The number of the slave. + required: false + type: integer {% endconfiguration %} -### Multiple connections + +### Configuring platform climate + +To use your Modbus thermostat in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +modbus: + - name: hub1 + type: tcp + host: IP_ADDRESS + port: 502 + climates: + - name: Watlow F4T + slave: 1 + data_type: uint + data_count: 1 + scale: 0.1 + offset: 0 + precision: 1 + max_temp: 30 + min_temp: 15 + temp_step: 1 + target_temp_register: 2782 + current_temp_register: 27586 +``` + +{% configuration %} +climates: + description: A list of all climates available in this modbus instance. + required: false + type: [map] + keys: + current_temp_register: + description: Register number for current temperature (Process value). + required: true + type: integer + current_temp_register_type: + description: Modbus register type (holding, input) for current temperature, default holding. + required: false + type: string + default: holding + data_count: + description: Number of registers to read. + required: false + type: integer + default: 2 + data_type: + description: Response representation (int, uint, float, custom). If float selected, value will converted to IEEE 754 floating point format. + required: false + type: string + default: float + min_temp: + description: Maximum setpoint temperature. + required: false + type: integer + default: 5 + name: + description: Name of the device + required: true + type: string + offset: + description: Final offset (output = scale * value + offset). + required: false + type: float + default: 0 + precision: + description: Number of valid decimals. + required: false + type: integer + default: 1 + scale: + description: Scale factor (output = scale * value + offset). + required: false + type: float + default: 1 + scan_interval: + description: Defines the update interval of the sensor in seconds. + required: false + type: integer + default: 15 + slave: + description: The number of the slave (Optional for tcp and upd Modbus, use 1). + required: true + type: integer + structure: + description: "If `data_type` is custom specified a double-quoted Python struct is expected here, to format the string to unpack the value. See Python documentation for details. Example: `>i`." + required: false + type: string + default: ">f" + target_temp_register: + description: Register number for target temperature (Setpoint). + required: true + type: integer + temp_step: + description: The supported step size a target temperature can be increased/decreased. + required: false + type: float + default: 0.5 + temperature_unit: + description: Temperature unit reported by the current_temp_register. C or F + required: false + type: string + default: C +{% endconfiguration %} + +#### Services + +| Service | Description | +| ------- | ----------- | +| set_temperature | Set Temperature. Requires `value` to be passed in, which is the desired target temperature. `value` should be in the same type as `data_type` | + +### Configuring platform cover + +The `modbus` cover platform allows you to control [Modbus](http://www.modbus.org/) covers (such as blinds, a roller shutter, or a garage door). + +At the moment, we support the opening and closing of a cover. You can control your covers either using coils or holding registers. + +Cover that uses the `coil` attribute is not able to determine intermediary states such as opening and closing. Coil stores only two states — "0" means cover closed, and "1" implies cover open. To allow detecting intermediary states, we added an optional `status_register` attribute. It will enable you to write your command (e.g., to open a cover) into a coil, and read current cover status back through the register. Additionally, you can specify values for `state_open`, `state_opening`, `state_closed`, and `state_closing` attributes. These will be matched with the value read from the `status_register`. + +If your cover uses holding register to send commands (defined by the `register` attribute), it can also read the intermediary states. To adjust which value represents what state, you can fine-tune the optional state attributes, like `state_open`. These optional state values are also used for specifying values written into the register. If you specify an optional status_register attribute, cover states will be read from status_register instead of the register used for sending commands. + +To use Modbus covers in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +modbus: + - name: hub1 + type: tcp + host: IP_ADDRESS + port: 502 + covers: + - name: Door1 + device_class: door + scan_interval: 1 + coil: 0 + - name: Door2 + device_class: door + scan_interval: 1 + coil: 1 + status_register: 1 + - name: Door3 + slave: 2 + device_class: door + scan_interval: 1 + register: 0 + state_open: 1 + state_closed: 0 +``` + +{% configuration %} +covers: + description: The array contains a list of all your Modbus covers. + required: true + type: map + keys: + coil: + description: Coil address; can be omitted if a register attribute is specified. Coil and register attributes are mutually exclusive, and you need to always specify one of them. + required: true + type: integer + device_class: + description: The [type/class](/integrations/cover/#device-class) of the cover to set the icon in the frontend. + required: false + type: device_class + default: None + name: + description: Name of the switch. + required: true + type: string + register: + description: Holding register address; can be omitted if a coil attribute is specified. Coil and register attributes are mutually exclusive, and you need to always specify one of them. + required: true + type: integer + scan_interval: + description: Defines the update interval of the sensor in seconds. + required: false + type: integer + default: 15 + slave: + description: The number of the slave (can be omitted for tcp and udp Modbus). + required: false + default: 1 + type: integer + state_open: + description: A value in `status_register` or `register` representing an open cover. If your configuration uses an `register` attribute, this value will be also written into a holding register to open the cover. + required: false + default: 1 + type: integer + state_closed: + description: A value in `status_register` or `register` representing a closed cover. If your configuration uses an `register` attribute, this value will be also written into a holding register to close the cover. + required: false + default: 0 + type: integer + state_opening: + description: A value in `status_register` or `register` telling us that the cover is opening at the moment. Note that this state should be also supported on your connected Modbus cover. If it won't write this intermediary state into the register, this state won't be detected. + required: false + default: 2 + type: integer + state_closing: + description: A value in `status_register` or `register` telling us that the cover is closing at the moment. Note that this state should be also supported on your connected Modbus cover. If it won't write this intermediary state into the register, this state won't be detected. + required: false + default: 2 + type: integer + status_register: + description: An address of an register, from which all the cover states will be read. If you specified `register` attribute, and not `status_register` attribute, your main register will also be used as a status register. + required: false + type: integer + status_register_type: + description: Modbus register type (holding, input), default holding. + required: false + type: string +{% endconfiguration %} + +#### Example: Modbus cover controlled by a coil + +This example shows a configuration for a Modbus cover controlled using a coil. Intermediary states like opening/closing are not supported. The cover state is polled from Modbus every 10 seconds. + +```yaml +modbus: + - name: hub1 + type: tcp + host: IP_ADDRESS + port: 502 + covers: + - name: Door1 + slave: 1 + coil: 1 + device_class: door + scan_interval: 10 + - name: Door2 + slave: 2 + coil: 2 + device_class: door + scan_interval: 10 +``` + +#### Example: Modbus cover controlled by a coil, it's state is read from the register + +This example shows a configuration for a Modbus cover controlled using a coil. Actual cover state is read from the `status_register`. We've also specified register values to match with the states open/opening/closed/closing. The cover state is polled from Modbus every 10 seconds. + +```yaml +modbus: + - name: hub1 + type: tcp + host: IP_ADDRESS + port: 502 + covers: + - name: Door1 + slave: 1 + device_class: door + scan_interval: 10 + coil: 1 + status_register: 1 + status_register_type: input + state_opening: 1 + state_open: 2 + state_closing: 3 + state_closed: 4 +``` + +#### Example: Modbus cover controlled by a holding register + +This example shows a configuration for a Modbus cover controlled using a holding register, from which we also read current cover state. We've also specified register values to match with the states open/opening/closed/closing. The cover state is polled from Modbus every 10 seconds. + +```yaml +modbus: + - name: hub1 + type: tcp + host: IP_ADDRESS + port: 502 + covers: + - name: Door1 + slave: 1 + device_class: door + scan_interval: 10 + register: 1 + state_opening: 1 + state_open: 2 + state_closing: 3 + state_closed: 4 +``` + +#### Example: Modbus cover controlled by a holding register, it's state is read from the status register + +This example shows a configuration for a Modbus cover controlled using a holding register. However, cover state is read from a `status_register`. In this case, we've specified only values for `state_open` and `state_closed`, for the rest, default values are used. The cover state is polled from Modbus every 10 seconds. + +```yaml +modbus: + - name: hub1 + type: tcp + host: IP_ADDRESS + port: 502 + + covers: + - name: Door1 + slave: 1 + device_class: door + scan_interval: 10 + register: 1 + status_register: 2 + register_type: holding + state_open: 1 + state_closed: 0 +``` + +### Configuring platform sensor + +The `modbus` cover platform allows you to control [Modbus](http://www.modbus.org/) covers (such as blinds, a roller shutter, or a garage door). + + +The `modbus` sensor allows you to gather data from [Modbus](http://www.modbus.org/) registers. + +To use your Modbus sensors in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +modbus: + - name: hub1 + type: tcp + host: IP_ADDRESS + port: 502 + sensors: + - name: Sensor1 + unit_of_measurement: °C + slave: 1 + address: 100 + - name: Sensor2 + unit_of_measurement: mg + slave: 1 + register: 110 + count: 2 + - name: Sensor3 + unit_of_measurement: °C + slave: 1 + address: 120 + input_type: input + data_type: float + scale: 0.01 + offset: -273.16 + precision: 2 +``` + +{% configuration %} +sensors: + description: The array contains a list of all your Modbus sensors. + required: true + type: map + keys: + address: + description: Register number. + required: true + type: integer + count: + description: Number of registers to read. + required: false + type: integer + default: 1 + data_type: + description: Response representation (int, uint, float, string, custom). If float selected, value will be converted to IEEE 754 floating point format. + required: false + default: int + type: string + device_class: + description: The [type/class](/integrations/sensor/#device-class) of the sensor to set the icon in the frontend. + required: false + type: device_class + default: None + input_type: + description: Modbus register type (holding, input), default holding. + required: false + type: string + name: + description: Name of the sensor. + required: true + type: string + offset: + description: Final offset (output = scale * value + offset). + required: false + default: 0 + type: float + precision: + description: Number of valid decimals. + required: false + default: 0 + type: integer + reverse_order: + description: Reverse the order of registers when count >1. + required: false + default: false + type: boolean + scale: + description: Scale factor (output = scale * value + offset). + required: false + default: 1 + type: float + scan_interval: + description: Defines the update interval of the sensor in seconds. + required: false + type: integer + default: 15 + slave: + description: The number of the slave (Optional for tcp and upd Modbus). + required: true + type: integer + structure: + description: "If `data_type` is custom specified a double-quoted Python struct is expected here, to format the string to unpack the value. See Python documentation for details. Example: `>i`." + required: false + type: string + unit_of_measurement: + description: Unit to attach to value. + required: false + type: integer +{% endconfiguration %} + +
+ +If you specify scale or offset as floating point values, double precision floating point arithmetic will be used to calculate final value. This can cause loss of precision for values that are larger than 2^53. + +
+ +#### Full example + +Example a temperature sensor with a 10 seconds scan interval: + +```yaml +modbus: + - name: hub1 + type: tcp + host: IP_ADDRESS + port: 502 + sensors: + - name: Room_1 + slave: 10 + address: 0 + input_type: holding + unit_of_measurement: °C + count: 1 + scale: 0.1 + offset: 0 + precision: 1 + data_type: integer +``` + +### Configuring platform switch + +The `modbus` switch platform allows you to control [Modbus](http://www.modbus.org/) coils or registers. + +To use your Modbus switches in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +modbus: + - name: hub1 + type: tcp + host: IP_ADDRESS + port: 502 + switches: + - name: Switch1 + address: 13 + input_type: coil + - name: Switch2 + slave: 2 + address: 14 + input_type: coil + - name: Register1 + address: 11 + command_on: 1 + command_off: 0 +``` + +{% configuration %} +switches: + description: The array contains a list of all your Modbus switches. + required: true + type: map + keys: + address: + description: Coil number or register + required: true + type: integer + command_on: + description: Value to write to turn on the switch. + required: true + type: integer + command_off: + description: Value to write to turn off the switch. + required: true + type: integer + input_type: + description: type of adddress (holding/discrete/coil) + required: false + default: holding + type: integer + name: + description: Name of the switch. + required: true + type: string + scan_interval: + description: Defines the update interval of the sensor in seconds. + required: false + type: integer + default: 15 + slave: + description: The number of the slave (can be omitted for tcp and udp Modbus). + required: true + type: integer + state_on: + description: Register value when switch is on. + required: false + default: same as command_on + type: integer + state_off: + description: Register value when switch is off. + required: false + default: same as command_off + type: integer + verify_register: + description: Register to readback. + required: false + default: same as register + type: string + verify_state: + description: Define if is possible to readback the status of the switch. + required: false + default: true + type: boolean +{% endconfiguration %} + +#### Full example + +Example switches, for which the state is polled from Modbus every 10 seconds. + +```yaml +modbus: + - name: hub1 + type: tcp + host: IP_ADDRESS + port: 502 + switches: + - name: Switch1 + slave: 1 + address: 13 + input_type: coil + - name: Switch2 + slave: 2 + address: 14 +``` + +#### Multiple connections Multiple connections are possible, add something like the following to your `configuration.yaml` file: diff --git a/source/_integrations/notify_events.markdown b/source/_integrations/notify_events.markdown index dfac00790a3c..ca1b1e39eb5c 100644 --- a/source/_integrations/notify_events.markdown +++ b/source/_integrations/notify_events.markdown @@ -104,6 +104,7 @@ The following attributes can be placed inside `data` for extended functionality. | `priority` | For recipients which supports priority, the message will be highlighted accordingly.
Available values: `lowest`, `low`, `normal`, `high`, `highest`. | `images` | Array of images to attach (see item properties below). | `files` | Array of files to attach (see item properties below). +| `token` | Notify.Events channel token (in case you want to override the channel to get this message to). Every item of images and files has the following properties: diff --git a/source/_integrations/opentherm_gw.markdown b/source/_integrations/opentherm_gw.markdown index cff008c9358c..9caa472f8ce6 100644 --- a/source/_integrations/opentherm_gw.markdown +++ b/source/_integrations/opentherm_gw.markdown @@ -59,16 +59,14 @@ The precision and floor_temperature settings that were supported in configuratio The OpenTherm Gateway can be further configured through the integration settings in the web interface The following options are available: -{% configuration %} -Precision: - description: "The desired precision for this device. Can be used to match your actual thermostat's precision. Set to `0` to use the default value for your unit preference." - type: float - default: "`0.5` for Celsius and `1.0` for Fahrenheit." +{% configuration_basic %} +Read Precision: + description: "The desired read precision for this device. Used to display the current temperature on the climate entity. Can be used to match your actual thermostat's precision. Set to `0` to use the default value for your unit preference." +Set Precision: + description: "The desired set precision for this device. Used as step size for setting temperature setpoint from the climate entity. Can be used to match your actual thermostat's precision. Set to `0` to use the default value for your unit preference." Floor Temperature: description: "Some thermostats round all temperatures down to the lower value according to their precision. Default behavior for Home Assistant is to round temperatures to the nearest value. Enable this setting to override this behavior and round to the lower value according to the configured precision." - type: boolean - default: Disabled -{% endconfiguration %} +{% endconfiguration_basic %} ## Services diff --git a/source/_integrations/openweathermap.markdown b/source/_integrations/openweathermap.markdown index edd7e5aa66f5..445062bffbba 100644 --- a/source/_integrations/openweathermap.markdown +++ b/source/_integrations/openweathermap.markdown @@ -37,35 +37,61 @@ You need an API key, which is free, but requires a [registration](https://home.o | Mode | Forecast mode, `hourly` for a three-hour forecast, `daily` for daily forecast using a paid API tier, `onecall_hourly` for an hourly forecast up to 2 days, or `onecall_daily` for a daily forecast up to 7 days (ideal for the free tier). | | Language | Language for receiving data (only for `sensor`) | -The integration creates weather entity and also sensors for all available conditions. -Selecting a `onecall` mode with the free tier leverages the One Call API, resulting in updates every 5 minutes and is recommended for both hourly and daily forecast. +The integration creates a weather entity as well as sensors for supported weather conditions. +Selecting a `onecall` forecast mode with the free tier leverages the One Call API, resulting in updates every 5 minutes and is recommended for both hourly and daily forecast. -For each condition `sensor` entity will be created with id: +A `sensor` entity will be created for each supported condition. Their ids will follow the format: `sensor._` -Sensor prints information in language which was selected for integration. +Sensors provide data in the language that was selected when configuring the integration. -All conditions: +
+ +The Weather entity provides data only in English. Home Assistant automatically translates it to the language configured for the frontend. -| Condition | Description | -| :------------- | :----------------------------------- | -| `weather` | A human-readable text summary. | -| `temperature` | Current temperature. | -| `wind_speed` | Wind speed. | -| `wind_bearing` | Wind bearing. | -| `humidity` | Relative humidity. | -| `pressure` | Sea-level air pressure in millibars. | -| `clouds` | Description of cloud coverage. | -| `rain` | Rain volume. | -| `snow` | Snow volume. | -| `condition` | Current weather condition code. | -| `weather_code` | Current weather code. | +
+ +## Supported Weather Conditions + +### Current Weather Conditions + +| Condition | Description | +| :----------------------- | :------------------------------------------------------------------------------------------------------------------------------ | +| `cloud_coverage` | Cloudiness, %. | +| `condition` | [Weather condition](https://developers.home-assistant.io/docs/core/entity/weather/#recommended-values-for-state-and-condition). | +| `dew_point` | Atmospheric temperature below which water droplets begin to condense and dew can form, ºC. | +| `feels_like_temperature` | Temperature accounting for the human perception of weather, ºC. | +| `humidity` | Humidity, %. | +| `precipitation_kind` | The kind of precipitation (Rain, Snow, Snow and Rain, None) for the last hour. | +| `pressure` | Atmospheric pressure at sea level, hPa. | +| `rain` | Rain volume for the last hour, mm. | +| `snow` | Snow volume for the last hour, mm. | +| `temperature` | Temperature, ºC. | +| `uv_index` | UV Index. | +| `weather` | A human-readable description of the [weather condition](https://openweathermap.org/weather-conditions#Weather-Condition-Codes-2). | +| `weather_code` | ID of the [weather condition](https://openweathermap.org/weather-conditions#Weather-Condition-Codes-2). | +| `wind_bearing` | Wind direction, degrees (meteorological). | +| `wind_speed` | Wind speed, metre/sec. | + +### Forecast Weather Conditions
-Weather entity always will have English language. Home Assistant translate it to user language automatically. +The time period these sensors use depends on the forecast mode selected when configuring the integration: `hourly` or `onecall_hourly` will show conditions for the current hour of the day, while `daily` or `onecall_daily` will show conditions for the current day.
+| Condition | Description | +| :----------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `forecast_condition` | [Weather condition](https://developers.home-assistant.io/docs/core/entity/weather/#recommended-values-for-state-and-condition) for the forecast's time period. | +| `forecast_precipitation` | Combined Rain and Snow volume for the forecast's time period, mm. | +| `forecast_precipitation_probability` | Probability of precipitation for the forecast's time period. | +| `forecast_pressure` | Atmospheric pressure at sea level for the forecast's time period, hPa. | +| `forecast_temperature` | Maximum temperature for the day. | +| `forecast_temperature_low` | Minimum temperature for the day. | +| `forecast_time` | Time of the forecasted data. | +| `forecast_wind_bearing` | Wind direction for the forecast's time period, degrees (meteorological). | +| `forecast_wind_speed` | Wind speed for the forecast's time period, metre/sec. | + Details about the API are available in the [OpenWeatherMap documentation](https://openweathermap.org/api). diff --git a/source/_integrations/panasonic_viera.markdown b/source/_integrations/panasonic_viera.markdown index b0336fcd781d..6614b86464ca 100644 --- a/source/_integrations/panasonic_viera.markdown +++ b/source/_integrations/panasonic_viera.markdown @@ -3,6 +3,7 @@ title: Panasonic Viera description: Instructions on how to integrate a Panasonic Viera TV with Home Assistant. ha_category: - Media Player + - Remote ha_release: 0.17 ha_iot_class: Local Polling ha_domain: panasonic_viera @@ -11,11 +12,16 @@ ha_config_flow: true The `panasonic_viera` platform allows you to control a Panasonic Viera TV. +There is currently support for the following device types within Home Assistant: + +- Media Player +- [Remote](#remote) + {% include integrations/config_flow.md %} If your TV needs to be paired, you will be prompted to type the PIN code that will be displayed on it. -To allow your TV to be turned on or controlled while off, enable `Powered On By Apps` in the TV Settings: **Network > TV Remote App Settings** +To allow your TV to be turned on or controlled while off, enable `Powered On By Apps` in your settings (if available): **Network > TV Remote App Settings** ## Manual configuration @@ -89,6 +95,23 @@ script: entity_id: media_player.living_room_tv ``` +### Remote + +When the integration is configured, two entities will be created: a `media_player` and a `remote`. The remote allows you to send key commands to your TV with the `remote.send_command` service. + +Some of the known valid key values are: + +- `up` +- `down` +- `left` +- `right` +- `select` +- `home` +- `back` +- `power` + +The list with all known valid keys can be found [here](https://github.com/florianholzapfel/panasonic-viera/blob/521cefadc8e1543514ce41d3d49e9218d1c2302d/panasonic_viera/__init__.py#L35). Additionally, you can also send custom commands, such as `"NRC_HOME-ONOFF"` (which is the same as `home`). + ### Currently known supported models - TC-P50ST50 diff --git a/source/_integrations/philips_js.markdown b/source/_integrations/philips_js.markdown index 811ed095d179..730532dd35ac 100644 --- a/source/_integrations/philips_js.markdown +++ b/source/_integrations/philips_js.markdown @@ -3,6 +3,7 @@ title: Philips TV description: Instructions on how to add Philips TVs to Home Assistant. ha_category: - Media Player + - Remote ha_iot_class: Local Polling ha_release: 0.34 ha_codeowners: @@ -38,4 +39,75 @@ Instructions on how to activate the API and if your model is supported can be fo ### Turn on device -The Philips TV does not always support turning on via the API. You can either turn it on via IR blaster or on some models WOL. To trigger this command from the entities, the integration exposes a `device trigger` that can be setup to execute when the `media_player` is asked to turn on. +The Philips TV does not always support turning on via the API. You can either turn it on via IR blaster or on som models WOL. To trigger this command from the entities, the integration exposes a `device trigger` that can be setup to execute when the `media_player` is asked to turn on. + +### Remote + +The integration provides a remote entity for sending remote key presses directly to the TV. The following list of commands are available for use with the `remote.send_command` service. + +| Command | Comment | +| ---------------- | ----------------------------------------- | +| Standby | | +| CursorUp | | +| CursorDown | | +| CursorLeft | | +| CursorRight | | +| Confirm | | +| Back | | +| Exit | | +| WatchTV | | +| Home | | +| Source | | +| List | | +| Find | | +| Options | | +| Adjust | | +| RedColour | | +| GreenColour | | +| YellowColour | | +| BlueColour | | +| Play | | +| PlayPause | Mapped to same as Play on Android devices | +| Pause | | +| FastForward | | +| Stop | | +| Rewind | | +| Record | | +| ChannelStepUp | | +| ChannelStepDown | | +| Digit0 | | +| Digit1 | | +| Digit2 | | +| Digit3 | | +| Digit4 | | +| Digit5 | | +| Digit6 | | +| Digit7 | | +| Digit8 | | +| Digit9 | | +| Dot | | +| VolumeUp | | +| VolumeDown | | +| Mute | | +| Teletext | | +| Subtitle | | +| ClosedCaption | | +| TvGuide | | +| Info | | +| AmbilightOnOff | | +| Viewmode | | +| 3dFormat | | +| Multiview | | +| PictureStyle | | +| 3dDepth | | +| SoundStyle | | +| SurroundMode | | +| HeadphonesVolume | | +| 2PlayerGaming | | +| Setup | | +| WhiteColour | | +| PowerOn | | +| PowerOff | Mapped to same as Standby on Android | +| Online | | +| SmartTV | | +| PhilipsMenu | | diff --git a/source/_integrations/prometheus.markdown b/source/_integrations/prometheus.markdown index b7b7623abe23..3e541e0aa0b9 100644 --- a/source/_integrations/prometheus.markdown +++ b/source/_integrations/prometheus.markdown @@ -179,3 +179,16 @@ When looking into the metrics on the Prometheus side, there will be: - The [client library](https://github.com/prometheus/client_python) provided metrics, which are a bunch of **process_\*** and also a single pseudo-metric **python_info** which contains (not as value but as labels) information about the Python version of the client, i.e., the Home Assistant Python interpreter. Typically, you will only be interested in the first set of metrics. + +## Metrics in unavailable or unknown states + +When the Prometheus exporter starts (typically when Home Assistant starts), all non-excluded entities in an unavailable or unknown state are not be exported until they are available again. If the entity goes into state unavailable or unknown again, the value exported will always be the latest known one. + +While an entity is in those states, the `entity_available` corresponding metric is set to 0. This metric can be used to filter out values while the entity is unavailable or in an unknown state thanks to a [recording rule](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/). + +For example: + +```yaml +- record: "known_temperature_c" + expr: "temperature_c unless entity_available == 0" +``` diff --git a/source/_integrations/prowl.markdown b/source/_integrations/prowl.markdown index f9ce195bdb34..ea7e84b83e64 100644 --- a/source/_integrations/prowl.markdown +++ b/source/_integrations/prowl.markdown @@ -40,8 +40,9 @@ api_key: The following attributes can be placed `data` for extended functionality. -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `priority` | yes | Priority level, for more info refer to the [Prowl API documentation](https://www.prowlapp.com/api.php#add). | +| Service data attribute | Optional | Default | Description | +| ---------------------- | -------- | ------- | ----------- | +| `priority` | yes | 0 | Priority level, for more info refer to the [Prowl API documentation](https://www.prowlapp.com/api.php#add). | +| `url` | yes | n/a | URL to be attached, for more info refer to the [Prowl API documentation](https://www.prowlapp.com/api.php#add). | To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_integrations/recorder.markdown b/source/_integrations/recorder.markdown index 00b7d16ef671..a50954ad7be8 100644 --- a/source/_integrations/recorder.markdown +++ b/source/_integrations/recorder.markdown @@ -210,6 +210,7 @@ Note that purging will not immediately decrease disk space usage but it will sig | ---------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `keep_days` | yes | The number of history days to keep in recorder database (defaults to the integration `purge_keep_days` configuration) | | `repack` | yes | When using SQLite or PostgreSQL this will rewrite the entire database. When using MySQL or MariaDB it will optimize or recreate the events and states tables. This is a heavy operation that can cause slowdowns and increased disk space usage while it runs. Only supported by SQLite, PostgreSQL, MySQL and MariaDB. | +| `apply_filter` | yes | Apply entity_id and event_type filter in addition to time based purge. Useful in combination with `include` / `exclude` filter to remove falsely added states and events. Combine with `repack: true` to reduce database size. | ### Service `disable` diff --git a/source/_integrations/screenlogic.markdown b/source/_integrations/screenlogic.markdown new file mode 100644 index 000000000000..866349f6c7ab --- /dev/null +++ b/source/_integrations/screenlogic.markdown @@ -0,0 +1,33 @@ +--- +title: "Pentair ScreenLogic" +description: "Instructions on how to integrate a ScreenLogic gateway within Home Assistant." +ha_release: "2021.4" +ha_category: + - Hub + - Binary Sensor + - Climate + - Sensor + - Switch +ha_iot_class: "Local Polling" +ha_quality_scale: gold +ha_config_flow: true +ha_dhcp: true +ha_codeowners: + - '@dieselrabbit' +ha_domain: screenlogic +ha_platforms: + - binary_sensor + - climate + - sensor + - switch +--- + +The Pentair ScreenLogic integration allows you to integrate your Pentair Intellitouch or EasyTouch pool controller with Home Assistant via the [Pentair ScreenLogic](https://www.pentair.com/en-us/products/residential/pool-spa-equipment/pool-automation/screenlogic2_interfaceforintellitouchandeasytouchautomationsystems.html) gateway. + +{% include integrations/config_flow.md %} + +## Options + +ScreenLogic options are set via **Configuration** -> **Integrations** -> **Pentair ScreenLogic** -> **Options**. + +* Seconds between scans - How many seconds between each polling of the ScreenLogic gateway. diff --git a/source/_integrations/sensor.modbus.markdown b/source/_integrations/sensor.modbus.markdown deleted file mode 100644 index 7c7d03a2cfb8..000000000000 --- a/source/_integrations/sensor.modbus.markdown +++ /dev/null @@ -1,145 +0,0 @@ ---- -title: Modbus Sensor -description: "Instructions on how to integrate Modbus sensors into Home Assistant." -ha_category: - - Sensor -ha_release: pre 0.7 -ha_iot_class: Local Push -ha_domain: modbus ---- - -The `modbus` sensor allows you to gather data from [Modbus](http://www.modbus.org/) registers. - -## Configuration - -To use your Modbus sensors in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - platform: modbus - registers: - - name: Sensor1 - hub: hub1 - unit_of_measurement: °C - slave: 1 - register: 100 - - name: Sensor2 - hub: hub1 - unit_of_measurement: mg - slave: 1 - register: 110 - count: 2 - - name: Sensor3 - hub: hub1 - unit_of_measurement: °C - slave: 1 - register: 120 - register_type: input - data_type: float - scale: 0.01 - offset: -273.16 - precision: 2 -``` - -{% configuration %} -registers: - description: The array contains a list of relevant registers to read from. - required: true - type: map - keys: - name: - description: Name of the sensor. - required: true - type: string - hub: - description: The name of the hub. - required: false - default: modbus_hub - type: string - slave: - description: The number of the slave (Optional for tcp and upd Modbus). - required: true - type: integer - register: - description: Register number. - required: true - type: integer - register_type: - description: Modbus register type (holding, input), default holding. - required: false - type: string - unit_of_measurement: - description: Unit to attach to value. - required: false - type: integer - device_class: - description: The [type/class](/integrations/sensor/#device-class) of the sensor to set the icon in the frontend. - required: false - type: device_class - default: None - count: - description: Number of registers to read. - required: false - type: integer - default: 1 - reverse_order: - description: Reverse the order of registers when count >1. - required: false - default: false - type: boolean - scale: - description: Scale factor (output = scale * value + offset). - required: false - default: 1 - type: float - offset: - description: Final offset (output = scale * value + offset). - required: false - default: 0 - type: float - precision: - description: Number of valid decimals. - required: false - default: 0 - type: integer - data_type: - description: Response representation (int, uint, float, string, custom). If float selected, value will be converted to IEEE 754 floating point format. - required: false - default: int - type: string - structure: - description: "If `data_type` is custom specified a double-quoted Python struct is expected here, to format the string to unpack the value. See Python documentation for details. Example: `>i`." - required: false - type: string -{% endconfiguration %} - -It's possible to change the default 30 seconds scan interval for the sensor updates as shown in the [Platform options](/docs/configuration/platform_options/#scan-interval) documentation. - -
- -If you specify scale or offset as floating point values, double precision floating point arithmetic will be used to calculate final value. This can cause loss of precision for values that are larger than 2^53. - -
- -### Full example - -Example a temperature sensor with a 10 seconds scan interval: - -```yaml -sensor: -- platform: modbus - scan_interval: 10 - registers: - - name: Room_1 - hub: hub1 - slave: 10 - register: 0 - register_type: holding - unit_of_measurement: °C - count: 1 - scale: 0.1 - offset: 0 - precision: 1 - data_type: integer -``` diff --git a/source/_integrations/sensor.mqtt.markdown b/source/_integrations/sensor.mqtt.markdown index f0d2dc8391b4..e082f81f8c0a 100644 --- a/source/_integrations/sensor.mqtt.markdown +++ b/source/_integrations/sensor.mqtt.markdown @@ -75,6 +75,10 @@ device: description: The name of the device. required: false type: string + suggested_area: + description: 'Suggest an area if the device isn’t in one yet.' + required: false + type: string sw_version: description: The firmware version of the device. required: false diff --git a/source/_integrations/switch.modbus.markdown b/source/_integrations/switch.modbus.markdown deleted file mode 100644 index 0809e71a75c7..000000000000 --- a/source/_integrations/switch.modbus.markdown +++ /dev/null @@ -1,137 +0,0 @@ ---- -title: "Modbus Switch" -description: "Instructions on how to integrate Modbus switches into Home Assistant." -ha_category: - - Switch -ha_release: pre 0.7 -ha_iot_class: Local Push -ha_domain: modbus ---- - -The `modbus` switch platform allows you to control [Modbus](http://www.modbus.org/) coils or registers. - -## Configuration - -To use your Modbus switches in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -switch: - platform: modbus - coils: - - name: Switch1 - hub: hub1 - slave: 1 - coil: 13 - - name: Switch2 - slave: 2 - coil: 14 - registers: - - name: Register1 - hub: hub1 - slave: 1 - register: 11 - command_on: 1 - command_off: 0 -``` - -{% configuration %} -coils: - description: A list of relevant coils to read from/write to. - required: false - type: map - keys: - hub: - description: The name of the hub. - required: false - default: default - type: string - slave: - description: The number of the slave (can be omitted for tcp and udp Modbus). - required: true - type: integer - name: - description: Name of the switch. - required: true - type: string - coil: - description: Coil number. - required: true - type: integer -registers: - description: A list of relevant registers to read from/write to. - required: false - type: map - keys: - hub: - description: The hub to use. - required: false - default: default - type: string - slave: - description: The number of the slave (can be omitted for tcp and udp Modbus). - required: true - type: integer - name: - description: Name of the switch. - required: true - type: string - register: - description: Register number. - required: true - type: integer - command_on: - description: Value to write to turn on the switch. - required: true - type: integer - command_off: - description: Value to write to turn off the switch. - required: true - type: integer - verify_state: - description: Define if is possible to readback the status of the switch. - required: false - default: true - type: boolean - verify_register: - description: Register to readback. - required: false - default: same as register - type: string - register_type: - description: Modbus register types are holding or input. - required: false - default: holding - type: string - state_on: - description: Register value when switch is on. - required: false - default: same as command_on - type: integer - state_off: - description: Register value when switch is off. - required: false - default: same as command_off - type: integer -{% endconfiguration %} - -It's possible to change the default 30 seconds scan interval for the switch state updates as shown in the [Platform options](/docs/configuration/platform_options/#scan-interval) documentation. - -### Full example - -Example switches, for which the state is polled from Modbus every 10 seconds. - -```yaml -switch: - platform: modbus - scan_interval: 10 - coils: - - name: Switch1 - hub: hub1 - slave: 1 - coil: 13 - - name: Switch2 - hub: hub1 - slave: 2 - coil: 14 -``` diff --git a/source/_integrations/switch.mqtt.markdown b/source/_integrations/switch.mqtt.markdown index 4ad3ee8f93e8..59f51b21c29b 100644 --- a/source/_integrations/switch.mqtt.markdown +++ b/source/_integrations/switch.mqtt.markdown @@ -85,6 +85,10 @@ device: description: The name of the device. required: false type: string + suggested_area: + description: 'Suggest an area if the device isn’t in one yet.' + required: false + type: string sw_version: description: The firmware version of the device. required: false diff --git a/source/_integrations/tado.markdown b/source/_integrations/tado.markdown index 6018b729ee4f..9755b4e7157d 100644 --- a/source/_integrations/tado.markdown +++ b/source/_integrations/tado.markdown @@ -8,6 +8,7 @@ ha_category: - Water Heater - Presence Detection - Sensor + - Weather ha_release: 0.41 ha_iot_class: Cloud Polling ha_codeowners: @@ -34,6 +35,7 @@ There is currently support for the following device types within Home Assistant: - Water Heater - for water heater zones. - [Presence Detection](#presence-detection) - Sensor - for some additional information of the zones. +- Weather - for information about the current weather at the location of your Tado home. {% include integrations/config_flow.md %} diff --git a/source/_integrations/tag.mqtt.markdown b/source/_integrations/tag.mqtt.markdown index 1fba648a745a..1b509fd1efd6 100644 --- a/source/_integrations/tag.mqtt.markdown +++ b/source/_integrations/tag.mqtt.markdown @@ -49,6 +49,10 @@ device: description: The name of the device. required: false type: string + suggested_area: + description: 'Suggest an area if the device isn’t in one yet.' + required: false + type: string sw_version: description: The firmware version of the device. required: false diff --git a/source/_integrations/vacuum.mqtt.markdown b/source/_integrations/vacuum.mqtt.markdown index 60323b25f3b6..2bc77dff3be5 100644 --- a/source/_integrations/vacuum.mqtt.markdown +++ b/source/_integrations/vacuum.mqtt.markdown @@ -348,6 +348,10 @@ device: description: The name of the device. required: false type: string + suggested_area: + description: 'Suggest an area if the device isn’t in one yet.' + required: false + type: string sw_version: description: The firmware version of the device. required: false diff --git a/source/_integrations/verisure.markdown b/source/_integrations/verisure.markdown index 0d20e8bcae40..d3d9cc312e80 100644 --- a/source/_integrations/verisure.markdown +++ b/source/_integrations/verisure.markdown @@ -21,6 +21,8 @@ ha_platforms: - lock - sensor - switch +ha_config_flow: true +ha_dhcp: true --- Home Assistant has support to integrate your [Verisure](https://www.verisure.com/) devices. @@ -34,75 +36,7 @@ There is currently support for the following device types within Home Assistant: - Lock - Binary Sensor (Door & Window) -## Configuration - -To integrate Verisure with Home Assistant, add the following section to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -verisure: - username: USERNAME - password: PASSWORD -``` - -{% configuration %} -username: - description: The username to Verisure mypages. - required: true - type: string -password: - description: The password to Verisure mypages. - required: true - type: string -alarm: - description: Set to `true` to show alarm, `false` to disable. - required: false - type: boolean - default: true -hygrometers: - description: Set to `true` to show hygrometers, `false` to disable. - required: false - type: boolean - default: true -smartplugs: - description: Set to `true` to show smartplugs, `false` to disable. - required: false - type: boolean - default: true -locks: - description: Set to `true` to show locks, `false` to disable. - required: false - type: boolean - default: true -default_lock_code: - description: Code that will be used to lock or unlock, if none is supplied. - required: false - type: string -thermometers: - description: Set to `true` to show thermometers, `false` to disable. - required: false - type: boolean - default: true -mouse: - description: Set to `true` to show mouse detectors, `false` to disable. - required: false - type: boolean - default: true -door_window: - description: Set to `true` to show doors and windows, `false` to disable. - required: false - type: boolean - default: true -code_digits: - description: Number of digits in PIN code. - required: false - type: integer - default: 4 -giid: - description: The GIID of your installation (If you have more then one alarm system). To find the GIID for your systems run `python verisure.py` EMAIL PASSWORD installations'. - required: false - type: string -{% endconfiguration %} +{% include integrations/config_flow.md %} ## 2 Factor Authentication Prerequisite diff --git a/source/_integrations/wake_on_lan.markdown b/source/_integrations/wake_on_lan.markdown index f77761accaa6..31e1c48fe880 100644 --- a/source/_integrations/wake_on_lan.markdown +++ b/source/_integrations/wake_on_lan.markdown @@ -83,7 +83,7 @@ name: default: Wake on LAN type: string host: - description: The IP address or hostname to check the state of the device (on/off). + description: The IP address or hostname to check the state of the device (on/off). If this is not provided, the state of the switch will be assumed based on the last action that was taken. required: false type: string turn_off: diff --git a/source/_integrations/weather.template.markdown b/source/_integrations/weather.template.markdown index c148a45226cc..50235f8b044c 100644 --- a/source/_integrations/weather.template.markdown +++ b/source/_integrations/weather.template.markdown @@ -56,6 +56,10 @@ humidity_template: description: The current humidity. required: true type: template +attribution_template: + description: The attribution to be shown in the frontend. + required: false + type: string pressure_template: description: The current air pressure. required: false @@ -64,6 +68,18 @@ wind_speed_template: description: The current wind speed. required: false type: template +wind_bearing_template: + description: The current wind bearing. + required: false + type: template +ozone_template: + description: The current ozone level. + required: false + type: template +visibility_template: + description: The current visibility. + required: false + type: template forecast_template: description: Daily forecast data. required: false diff --git a/source/_integrations/xiaomi_miio.markdown b/source/_integrations/xiaomi_miio.markdown index 3174c9f0ca3c..ec0f92c02ae9 100644 --- a/source/_integrations/xiaomi_miio.markdown +++ b/source/_integrations/xiaomi_miio.markdown @@ -36,8 +36,7 @@ The `xiaomi_miio` integration supports the following devices: - [Xiaomi Gateway](#xiaomi-gateway) - [Xiaomi device tracker (Xiaomi Mi WiFi Repeater 2)](#xiaomi-device-tracker-xiaomi-mi-wifi-repeater-2) - [Xiaomi Air Purifier and Humidifier](#xiaomi-air-purifier-and-humidifier) -- [Xiaomi Air Quality Index Monitor](#xiaomi-air-quality-index-monitor) -- [Xiaomi Mi Air Quality Monitor](#xiaomi-mi-air-quality-monitor) +- [Xiaomi Air Quality Monitor](#xiaomi-air-quality-monitor) - [Xiaomi IR Remote](#xiaomi-ir-remote) - [Xiaomi Mi Robot Vacuum](#xiaomi-mi-robot-vacuum) - [Xiaomi Philips Light](#xiaomi-philips-light) @@ -239,6 +238,26 @@ These subdevices are fully implemented in HomeAssistant: | -------------------------------- | ----------------------- | --------------- | ------------------------------------------------ | | Weather sensor | lumi.sensor_ht | WSDCGQ01LM | readout `temperature` and `humidity` | | Weather sensor | lumi.weather.v1 | WSDCGQ11LM | readout `temperature`, `humidity` and `pressure` | +| Wall switch single | lumi.ctrl_ln1 | QBKG11LM | load_power, status, turn_on, turn_off, toggle | +| Wall switch single | lumi.ctrl_ln1.aq1 | QBKG11LM | load_power, status, turn_on, turn_off, toggle | +| Wall switch no neutral | lumi.ctrl_neutral1.v1 | QBKG04LM | status, turn_on, turn_off, toggle | +| Wall switch double | lumi.ctrl_ln2 | QBKG12LM | load_power, status, turn_on, turn_off, toggle | +| Wall switch double | lumi.ctrl_ln2.aq1 | QBKG12LM | load_power, status, turn_on, turn_off, toggle | +| Wall switch double no neutral | lumi.ctrl_neutral2 | QBKG03LM | status, turn_on, turn_off, toggle | +| D1 wall switch triple | lumi.switch.n3acn3 | QBKG26LM | load_power, status, turn_on, turn_off, toggle | +| D1 wall switch triple no neutral | lumi.switch.l3acn3 | QBKG25LM | load_power, status, turn_on, turn_off, toggle | +| Wall outlet | lumi.ctrl_86plug.v1 | QBCZ11LM | status, turn_on, turn_off, toggle | +| Wall outlet | lumi.ctrl_86plug.aq1 | QBCZ11LM | load_power, status, turn_on, turn_off, toggle | +| Plug | lumi.plug | ZNCZ02LM | load_power, status, turn_on, turn_off, toggle | +| Relay | lumi.relay.c2acn01 | LLKZMK11LM | load_power, status, turn_on, turn_off, toggle | +| Smart bulb E27 | lumi.light.aqcn02 | ZNLDP12LM | on/off, brightness, color temperature | +| IKEA smart bulb E27 white | ikea.light.led1545g12 | LED1545G12 | on/off, brightness, color temperature | +| IKEA smart bulb E27 white | ikea.light.led1546g12 | LED1546G12 | on/off, brightness, color temperature | +| IKEA smart bulb E12 white | ikea.light.led1536g5 | LED1536G5 | on/off, brightness, color temperature | +| IKEA smart bulb GU10 white | ikea.light.led1537r6 | LED1537R6 | on/off, brightness, color temperature | +| IKEA smart bulb E27 white | ikea.light.led1623g12 | LED1623G12 | on/off, brightness, color temperature | +| IKEA smart bulb GU10 white | ikea.light.led1650r5 | LED1650R5 | on/off, brightness, color temperature | +| IKEA smart bulb E12 white | ikea.light.led1649c5 | LED1649C5 | on/off, brightness, color temperature | ### Recognized subdevices (not yet implemented) @@ -266,18 +285,6 @@ These subdevices are recognized by the python-miio code but are still being work | Remote switch double | lumi.sensor_86sw2.v1 | WXKG02LM 2016 | | Remote switch double | lumi.remote.b286acn01 | WXKG02LM 2018 | | D1 remote switch double | lumi.remote.b286acn02 | WXKG07LM | -| Wall switch single | lumi.ctrl_ln1 | QBKG11LM | -| Wall switch single | lumi.ctrl_ln1.aq1 | QBKG11LM | -| Wall switch no neutral | lumi.ctrl_neutral1.v1 | QBKG04LM | -| Wall switch double | lumi.ctrl_ln2 | QBKG12LM | -| Wall switch double | lumi.ctrl_ln2.aq1 | QBKG12LM | -| Wall switch double no neutral | lumi.ctrl_neutral2 | QBKG03LM | -| D1 wall switch triple | lumi.switch.n3acn3 | QBKG26LM | -| D1 wall switch triple no neutral | lumi.switch.l3acn3 | QBKG25LM | -| Wall outlet | lumi.ctrl_86plug.v1 | QBCZ11LM | -| Wall outlet | lumi.ctrl_86plug.aq1 | QBCZ11LM | -| Plug | lumi.plug | ZNCZ02LM | -| Relay | lumi.relay.c2acn01 | LLKZMK11LM | | Curtain | lumi.curtain | ZNCLDJ11LM | | Curtain | lumi.curtain.aq2 | ZNGZDJ11LM | | Curtain B1 | lumi.curtain.hagl04 | ZNCLDJ12LM | @@ -285,14 +292,6 @@ These subdevices are recognized by the python-miio code but are still being work | Door lock S2 | lumi.lock.acn02 | ZNMS12LM | | Door lock S2 pro | lumi.lock.acn03 | ZNMS13LM | | Vima cylinder lock | lumi.lock.v1 | A6121 | -| Smart bulb E27 | lumi.light.aqcn02 | ZNLDP12LM | -| IKEA smart bulb E27 white | ikea.light.led1545g12 | LED1545G12 | -| IKEA smart bulb E27 white | ikea.light.led1546g12 | LED1546G12 | -| IKEA smart bulb E12 white | ikea.light.led1536g5 | LED1536G5 | -| IKEA smart bulb GU10 white | ikea.light.led1537r6 | LED1537R6 | -| IKEA smart bulb E27 white | ikea.light.led1623g12 | LED1623G12 | -| IKEA smart bulb GU10 white | ikea.light.led1650r5 | LED1650R5 | -| IKEA smart bulb E12 white | ikea.light.led1649c5 | LED1649C5 | | Thermostat S2 | lumi.airrtc.tcpecn02 | KTWKQ03ES | ## Xiaomi device tracker (Xiaomi Mi WiFi Repeater 2) @@ -350,6 +349,13 @@ Supported devices: | Air Humidifier CB1 | zhimi.humidifier.cb1 | | | Air Fresh VA2 | zhimi.airfresh.va2 | | + +### Configuration + +Please follow the instructions on [Retrieving the Access Token](/integrations/xiaomi_miio/#retrieving-the-access-token) to get the API token to use during configuration flow setup. + +To add a Xiaomi Air Purifier to your installation, click Configuration in the sidebar, then click Integrations and then click the + icon in the lower right and find xiaomi_miio. You will then be presented with a form in which you will need to fill in the “IP address” and 32 characters “token”. After you click submit, you will have the opportunity to select the area that your devices are located. + ### Features ### Air Purifier 2 et al. @@ -677,37 +683,6 @@ This model uses newer MiOT communication protocol. - `motor_speed` - `extra_features` -Please follow the instructions on [Retrieving the Access Token](/integrations/xiaomi_miio/#retrieving-the-access-token) to get the API token to use in the `configuration.yaml` file. - -To add a Xiaomi Air Purifier to your installation, add the following to your `configuration.yaml` file: - -```yaml -fan: -# Example configuration.yaml entry - - platform: xiaomi_miio - host: 192.168.130.66 - token: YOUR_TOKEN -``` - -{% configuration %} -host: - description: The IP address of your miio fan. - required: true - type: string -token: - description: The API token of your miio fan. - required: true - type: string -name: - description: The name of your miio fan. - required: false - type: string - default: Xiaomi Air Purifier -model: - description: The model of your miio fan. See the table above for valid values (f.e. `zhimi.airpurifier.v2`). This setting can be used to bypass the device model detection and is recommended if your device isn't always available. - required: false - type: string -{% endconfiguration %} ### Platform Services @@ -893,91 +868,29 @@ Check if the device is in the same subnet as the Home Assistant instance. Otherw If it's not possible to use VLANs for some reason, your last resort may be using NAT translation, between the IPs. -## Xiaomi Air Quality Index Monitor +## Xiaomi Air Quality Monitor -The `xiaomi_miio` sensor platform is observing your Xiaomi Mi Air Quality Monitor (PM2.5) and reporting the air quality index. +The `xiaomi_miio` Air Quality Monitor is observing your Xiaomi Mi Air Quality Monitor (PM2.5) and reporting the air quality index and other values. Currently, the supported features are: - Air Quality Index (AQI) +- Particulate matter 2.5 - Attributes - power - charging - battery - time_stat - -Please follow the instructions on [Retrieving the Access Token](/integrations/xiaomi_miio/#retrieving-the-access-token) to get the API token. - -### Configuration - -To add a Xiaomi Mi Air Quality Monitor to your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: xiaomi_miio - host: IP_ADDRESS - token: YOUR_TOKEN -``` - -{% configuration %} -host: - description: The IP address of your miio device. - required: true - type: string -token: - description: The API token of your miio device. - required: true - type: string -name: - description: The name of your miio device. - required: false - type: string - default: Xiaomi Miio Sensor -{% endconfiguration %} - -## Xiaomi Mi Air Quality Monitor - -The `xiaomi_miio` sensor platform is observing your Xiaomi Mi Air Quality Monitor and reporting the air quality values. - -Currently, the supported features are: - -- Particulate matter 2.5 -- Attributes - carbon_dioxide_equivalent - total_volatile_organic_compounds - temperature - humidity -Please follow the instructions on [Retrieving the Access Token](/integrations/xiaomi_miio/#retrieving-the-access-token) to get the API token. - ### Configuration -To add a Xiaomi Mi Air Quality Monitor to your installation, add the following to your `configuration.yaml` file: +Please follow the instructions on [Retrieving the Access Token](/integrations/xiaomi_miio/#retrieving-the-access-token) to get the API token to use during configuration flow setup. -```yaml -# Example configuration.yaml entry -air_quality: - - platform: xiaomi_miio - host: IP_ADDRESS - token: YOUR_TOKEN -``` - -{% configuration %} -host: - description: The IP address of your miio device. - required: true - type: string -token: - description: The API token of your miio device. - required: true - type: string -name: - description: The name of your miio device. - required: false - type: string - default: Xiaomi Miio Air Quality Monitor -{% endconfiguration %} +To add a Xiaomi Mi Air Quality Monitor to your installation, click Configuration in the sidebar, then click Integrations and then click the + icon in the lower right and find xiaomi_miio. You will then be presented with a form in which you will need to fill in the “IP address” and 32 characters “token”. After you click submit, you will have the opportunity to select the area that your devices are located. ## Xiaomi IR Remote @@ -1513,6 +1426,12 @@ It seems to be the case that Numbers 1..15 are used to number the intitial segme The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philips LED Ball Lamp, Xiaomi Philips Zhirui LED Bulb E14 Candle Lamp, Xiaomi Philips Zhirui Downlight, Xiaomi Philips LED Ceiling Lamp, Xiaomi Philips Eyecare Lamp 2, Xiaomi Philips Moonlight Bedside Lamp and Philips Zhirui Desk Lamp. +Please follow the instructions on [Retrieving the Access Token](/integrations/xiaomi_miio/#retrieving-the-access-token) to get the API token to use during configuration flow setup. + +### Configuration + +To add a Xiaomi Philips Light to your installation, click Configuration in the sidebar, then click Integrations and then click the + icon in the lower right and find xiaomi_miio. You will then be presented with a form in which you will need to fill in the “IP address” and 32 characters “token”. After you click submit, you will have the opportunity to select the area that your devices are located. + ### Features ### Philips LED Ball Lamp, Philips Zhirui LED Candle Lamp and Philips Zhirui Downlight @@ -1597,40 +1516,6 @@ Supported models: `philips.light.moonlight` - brand_sleep - brand -Please follow the instructions on [Retrieving the Access Token](/integrations/xiaomi_miio/#retrieving-the-access-token) to get the API token to use in the `configuration.yaml` file. - -To add a Xiaomi Philips Light to your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entries -light: - - platform: xiaomi_miio - name: Xiaomi Philips Smart LED Ball - host: 192.168.130.67 - token: YOUR_TOKEN - model: philips.light.bulb -``` - -{% configuration %} -host: - description: The IP address of your miio light. - required: true - type: string -token: - description: The API token of your miio light. - required: true - type: string -name: - description: The name of your miio light. - required: false - type: string - default: Xiaomi Philips Light -model: - description: The model of your light. Valid values are `philips.light.sread1`, `philips.light.ceiling`, `philips.light.zyceiling`, `philips.light.moonlight`, `philips.light.bulb`, `philips.light.candle`, `philips.light.candle2`, `philips.light.mono1` and `philips.light.downlight`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available. - required: false - type: string -{% endconfiguration %} - ### Platform Services ### Service `xiaomi_miio.light_set_scene` diff --git a/source/_integrations/zeroconf.markdown b/source/_integrations/zeroconf.markdown index 55f500cf875c..a578cd77ac1f 100644 --- a/source/_integrations/zeroconf.markdown +++ b/source/_integrations/zeroconf.markdown @@ -30,10 +30,10 @@ zeroconf: type: map keys: default_interface: - description: By default, `zeroconf` will attempt to bind to all interfaces. For systems running using network isolation or similar, this may result in `zeroconf` being unavailable. Change this option to `true` if `zeroconf` does not function. + description: By default, `zeroconf` will broadcast on the default interface. For systems that require broadcasting `mdns` on all interfaces, change this option to `false` if `zeroconf` does not function. required: false type: boolean - default: false + default: true ipv6: description: By default, `zeroconf` will enable IPv6 support. If your network has trouble with IPv6 being enabled, you can set this option to `false`. required: false diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown index 512ce6955663..1dc4f67d97b7 100644 --- a/source/_integrations/zha.markdown +++ b/source/_integrations/zha.markdown @@ -252,12 +252,45 @@ from the same group: ### Service `zha.remove` -This service remove an existing device from the network. +This service removes an existing device from the network. | Data | Optional | Description | | ---- | ---- | ----------- | | `ieee` | no | IEEE address of the device to remove +### Service `zha.set_lock_user_code` + +This service sets a lock code on a Zigbee lock. + +| Data | Optional | Description | +| --------- | ---- | ----------- | +| `code_slot` | no | Which lock code slot to store the code. Ex. 1-32 will work for Kwikset 954 +| `user_code` | no | Code to set on the lock. Ex. Kwikset accepts numbers 4-8 digits in length + +### Service `zha.clear_lock_user_code` + +This service clears a lock code from a Zigbee lock. + +| Data | Optional | Description | +| --------- | ---- | ----------- | +| `code_slot` | no | Which lock code slot to clear + +### Service `zha.enable_lock_user_code` + +This service enables a lock code on a Zigbee lock. + +| Data | Optional | Description | +| --------- | ---- | ----------- | +| `code_slot` | no | Which lock code slot to enable + +### Service `zha.disable_lock_user_code` + +This service disables a lock code on a Zigbee lock. + +| Data | Optional | Description | +| --------- | ---- | ----------- | +| `code_slot` | no | Which lock code slot to disable + ## Adding devices To add a new device: diff --git a/source/_redirects b/source/_redirects index f34de767f90d..4ad849a4135b 100644 --- a/source/_redirects +++ b/source/_redirects @@ -1073,14 +1073,19 @@ /components/xiaomi /integrations/xiaomi_aqara /integrations/air_quality.xiaomi_miio /integrations/xiaomi_miio /integrations/alarm_control_panel.xiaomi_miio /integrations/xiaomi_miio +/integrations/binary_sensor.modbus /integrations/modbus +/integrations/climate.modbus /integrations/modbus +/integrations/cover.modbus /integrations/modbus /integrations/fan.xiaomi_miio /integrations/xiaomi_miio /integrations/light.xiaomi_miio /integrations/xiaomi_miio +/integrations/lovelace /lovelace /integrations/remote.xiaomi_miio /integrations/xiaomi_miio /integrations/sensor.websocket_api /integrations/websocket_api +/integrations/sensor.modbus /integrations/modbus /integrations/sensor.xiaomi_miio /integrations/xiaomi_miio +/integrations/switch.modbus /integrations/modbus /integrations/switch.xiaomi_miio /integrations/xiaomi_miio /integrations/vacuum.xiaomi_miio /integrations/xiaomi_miio -/integrations/lovelace /lovelace # Renaming components to integrations /components /integrations @@ -2286,3 +2291,4 @@ /components/sensor.coinmarketcap /more-info/removed-integration 301 /components/coinmarketcap /more-info/removed-integration 301 /integrations/coinmarketcap /more-info/removed-integration 301 +/integrations/griddy /more-info/removed-integration 301