diff --git a/CODEOWNERS b/CODEOWNERS index 9a873a30c62c..bc253e3d876e 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -185,7 +185,6 @@ source/_integrations/lcn.markdown @alengwenus source/_integrations/life360.markdown @pnbruckner source/_integrations/linky.markdown @Quentame source/_integrations/linux_battery.markdown @fabaff -source/_integrations/liveboxplaytv.markdown @pschmitt source/_integrations/local_ip.markdown @issacg source/_integrations/logger.markdown @home-assistant/core source/_integrations/logi_circle.markdown @evanjd diff --git a/_config.yml b/_config.yml index e91275132850..3c967d8ecb72 100644 --- a/_config.yml +++ b/_config.yml @@ -100,9 +100,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 105 -current_patch_version: 5 -date_released: 2020-02-17 +current_minor_version: 106 +current_patch_version: 0 +date_released: 2020-02-26 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_integrations/abode.markdown b/source/_integrations/abode.markdown index 50029a87f860..f030fbb3ee72 100644 --- a/source/_integrations/abode.markdown +++ b/source/_integrations/abode.markdown @@ -31,7 +31,7 @@ There is currently support for the following device types within Home Assistant: - **Cover**: Reports on `Secure Barriers` and can be used to open and close the cover. - **Lock**: Reports on `Door Locks` and can be used to lock and unlock the door. - [**Light**](/integrations/abode/#light): Reports on `Dimmer` lights and can be used to dim or turn the light on and off. -- [**Switch**](/integrations/abode/#switch): Reports on `Power Switch` devices and can be used to turn the power switch on and off. Also reports on `Automations` set up in the Abode system and allows you to activate or deactivate them (does not work with Abode's CUE automations). +- [**Switch**](/integrations/abode/#switch): Reports on `Power Switch` and `Water Valve` devices which can be used to turn the devices on and off. Also reports on `Automations` set up in the Abode system and allows you to activate or deactivate them (does not currently work with Abode's CUE automations). - **Sensor**: Reports on `Temperature`, `Humidity`, and `Light` sensors. ## Configuration diff --git a/source/_integrations/air_quality.xiaomi_miio.markdown b/source/_integrations/air_quality.xiaomi_miio.markdown index 84ed346c5163..0cedb56be44c 100644 --- a/source/_integrations/air_quality.xiaomi_miio.markdown +++ b/source/_integrations/air_quality.xiaomi_miio.markdown @@ -16,6 +16,8 @@ Currently, the supported features are: - Attributes - carbon_dioxide_equivalent - total_volatile_organic_compounds + - temperature + - humidity Please follow the instructions on [Retrieving the Access Token](/integrations/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token. diff --git a/source/_integrations/binary_sensor.modbus.markdown b/source/_integrations/binary_sensor.modbus.markdown index 8adc0dd0d89a..7ce37eddd520 100644 --- a/source/_integrations/binary_sensor.modbus.markdown +++ b/source/_integrations/binary_sensor.modbus.markdown @@ -18,20 +18,21 @@ To use your Modbus binary sensors in your installation, add the following to you # Example configuration.yaml entry binary_sensor: - platform: modbus - coils: + inputs: - name: Sensor1 hub: hub1 slave: 1 - coil: 100 + address: 100 - name: Sensor2 hub: hub1 slave: 1 - coil: 110 + address: 110 + input_type: discrete_input ``` {% configuration %} -coils: - description: The array contains a list of coils to read from. +inputs: + description: The array contains a list of coils and discrete inputs to read from. required: true type: [map, list] keys: @@ -48,10 +49,14 @@ coils: description: The number of the slave (Optional for TCP and UDP Modbus). required: true type: integer - coil: - description: Coil number. + 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 diff --git a/source/_integrations/blockchain.markdown b/source/_integrations/blockchain.markdown index 458fc37d852b..f9c948a4e9f7 100644 --- a/source/_integrations/blockchain.markdown +++ b/source/_integrations/blockchain.markdown @@ -1,6 +1,6 @@ --- -title: Blockchain.info -description: Instructions on how to integrate Blockchain.info data within Home Assistant. +title: Blockchain.com +description: Instructions on how to integrate Blockchain.com data within Home Assistant. logo: blockchain.png ha_category: - Finance @@ -8,7 +8,7 @@ ha_release: 0.47 ha_iot_class: Cloud Polling --- -The `Blockchain` sensor platform displays Bitcoin wallet balances from [blockchain.info](https://blockchain.info). +The `Blockchain` sensor platform displays Bitcoin wallet balances from [blockchain.com](https://blockchain.com). To add the Blockchain sensor to your installation, specify a list of bitcoin addresses to watch in the `configuration.yaml` file. The sensor state will be the sum of the balances of all addresses listed. diff --git a/source/_integrations/climate.modbus.markdown b/source/_integrations/climate.modbus.markdown index c3b9a4ea9f00..827160891c44 100644 --- a/source/_integrations/climate.modbus.markdown +++ b/source/_integrations/climate.modbus.markdown @@ -56,6 +56,11 @@ 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 diff --git a/source/_integrations/cover.mqtt.markdown b/source/_integrations/cover.mqtt.markdown index 60d73b2106b4..758a8c288beb 100644 --- a/source/_integrations/cover.mqtt.markdown +++ b/source/_integrations/cover.mqtt.markdown @@ -12,8 +12,8 @@ The `mqtt` cover platform allows you to control an MQTT cover (such as blinds, a ## Configuration -The device state (`open` or `closed`) will be updated only after a new message is published on `state_topic` matching `state_open` or `state_closed`. If these messages are published with the `retain` flag set, the cover will receive an instant state update after subscription and Home Assistant will display the correct state on startup. Otherwise, the initial state displayed in Home Assistant will be `unknown`. -`state_topic` can only manage `state_open` and `state_closed`. No percentage positions etc. +The device state (`open`, `opening`, `closed` or `closing`) will be updated only after a new message is published on `state_topic` matching `state_open`, `state_opening`, `state_closed` or `state_closing`. If these messages are published with the `retain` flag set, the cover will receive an instant state update after subscription and Home Assistant will display the correct state on startup. Otherwise, the initial state displayed in Home Assistant will be `unknown`. +`state_topic` can only manage `state_open`, `state_opening`, `state_closed` and `state_closing`. No percentage positions etc. For this purpose is `position_topic` which can set state of the cover and position. Default setting are 0 means the device is `closed` and all other intermediate positions means the device is `open`. @@ -70,11 +70,21 @@ state_open: required: false type: string default: open +state_opening: + description: The payload that represents the opening state. + required: false + type: string + default: opening state_closed: description: The payload that represents the closed state. required: false type: string default: closed +state_closing: + description: The payload that represents the closing state. + required: false + type: string + default: closing position_topic: description: The MQTT topic subscribed to receive cover position messages. If `position_topic` is set `state_topic` is ignored. required: false @@ -242,7 +252,9 @@ cover: payload_close: "CLOSE" payload_stop: "STOP" state_open: "open" + state_opening: "opening" state_closed: "closed" + state_closing: "closing" payload_available: "online" payload_not_available: "offline" optimistic: false @@ -297,7 +309,9 @@ cover: payload_close: "CLOSE" payload_stop: "STOP" state_open: "open" + state_opening: "opening" state_closed: "closed" + state_closing: "closing" payload_available: "online" payload_not_available: "offline" optimistic: false diff --git a/source/_integrations/derivative.markdown b/source/_integrations/derivative.markdown index a525a55f229d..19caccc31451 100644 --- a/source/_integrations/derivative.markdown +++ b/source/_integrations/derivative.markdown @@ -12,7 +12,8 @@ ha_codeowners: - '@afaucogney' --- -The `derivative` platform provides the numerical derivative or numerical differentiation of the values provided by a source sensor. Derivative sensors are updated upon changes of the **source**. Fast sampling source sensors provide better results. +The `derivative` platform creates a sensor that estimates the derivative of the values provided by a source sensor. +Derivative sensors are updated upon changes of the **source**. ## Configuration @@ -41,7 +42,7 @@ round: default: 3 type: integer unit_prefix: - description: Metric unit to prefix the derivative result. Available units are k, M, G, T. + description: Metric unit to prefix the derivative result ([Wikipedia](https://en.wikipedia.org/wiki/Unit_prefix)]). Available symbols are "n" (1e-9), "µ" (1e-6), "m" (1e-3), "k" (1e3), "M" (1e6), "G" (1e9), "T" (1e12). required: false default: None type: string @@ -54,6 +55,27 @@ unit: description: Unit of Measurement to be used for the derivative. required: false type: string +time_window: + description: The time window in which to calculate the derivative. This is useful for sensor that output discrete values. By default the derivative is calculated between two consecutive updates. + default: 0 + required: false + type: time {% endconfiguration %} -If 'unit' is set then 'unit_prefix' and 'unit_time' are ignored. +## Temperature example + +For example, you have a temperature sensor `sensor.temperature` that outputs a value every few seconds, but rounds to the nearest half number. +That means that two consecutive output values might be the same (so the derivative is `Δy/Δx=0` because `Δy=0` !) +However, the temperature might actually be changing over time. +In order to capture this, you should use a `time_window`, such that immediate jumps don't result in high derivatives and that after the next sensor update, the derivatives doesn't vanish to zero. +An example configuration that uses `time_window` is + +```yaml +sensor: + - platform: derivative + source: sensor.temperature + name: Temperature change per hour + round: 1 + unit_time: h + time_window: "00:30:00" # we look at the change over the last half hour +``` diff --git a/source/_integrations/dsmr.markdown b/source/_integrations/dsmr.markdown index 351150f86729..a8e8db8de7c0 100644 --- a/source/_integrations/dsmr.markdown +++ b/source/_integrations/dsmr.markdown @@ -10,7 +10,7 @@ ha_iot_class: Local Push A sensor platform for Dutch Smart Meters which comply to DSMR (Dutch Smart Meter Requirements), also known as 'Slimme meter' or 'P1 poort'. -- Currently support DSMR V2.2, V3, V4 and V5 through the [dsmr_parser](https://github.com/ndokter/dsmr_parser) module by Nigel Dokter. +- Currently support DSMR V2.2, V3, V4, V5 and V5 Belgian through the [dsmr_parser](https://github.com/ndokter/dsmr_parser) module by Nigel Dokter. - For official information about DSMR refer to: [DSMR Document](https://www.netbeheernederland.nl/dossiers/slimme-meter-15) - For official information about the P1 port refer to: - For unofficial hardware connection examples refer to: [Domoticx](http://domoticx.com/p1-poort-slimme-meter-hardware/) @@ -35,6 +35,7 @@ USB serial converters: - - - +- Serial to network proxies: @@ -60,7 +61,7 @@ sensor: required: false type: string dsmr_version: - description: "Version of DSMR used by meter. Choices: 2.2, 4, 5. Defaults to 2.2." + description: "Version of DSMR used by meter. Choices: 2.2, 4, 5, 5B (For Belgian Meter). Defaults to 2.2." required: false type: string precision: @@ -83,10 +84,10 @@ group: meter_readings: name: Meter readings entities: - - sensor.power_consumption_low - - sensor.power_consumption_normal - - sensor.power_production_low - - sensor.power_production_normal + - sensor.energy_consumption_tarif_1 + - sensor.energy_consumption_tarif_2 + - sensor.energy_production_tarif_1 + - sensor.energy_production_tarif_2 - sensor.gas_consumption ``` @@ -102,10 +103,10 @@ group: meter_readings: name: Meter readings entities: - - sensor.power_consumption_low - - sensor.power_consumption_normal - - sensor.power_production_low - - sensor.power_production_normal + - sensor.energy_consumption_tarif_1 + - sensor.energy_consumption_tarif_2 + - sensor.energy_production_tarif_1 + - sensor.energy_production_tarif_2 - sensor.gas_consumption ``` diff --git a/source/_integrations/duke_energy.markdown b/source/_integrations/duke_energy.markdown deleted file mode 100644 index 8e635da2a390..000000000000 --- a/source/_integrations/duke_energy.markdown +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Duke Energy -description: Instructions on how to set Duke Energy smart meter sensors within Home Assistant. -logo: duke_energy.png -ha_category: - - Energy -ha_release: 0.74 -ha_iot_class: Cloud Polling ---- - -The `duke_energy` sensor platform allows you get the previous days usage for all of your Duke Energy smart meters. - -## Setup - -You will only have access to meters listed in your account at [Duke Energy Usage](https://www.duke-energy.com/my-account/usage-analysis). - -This supports both electric and gas meters. Along with previous days usage, each sensor will have attributes for the previous bills total usage and average usage. - -## Configuration - -To enable the sensor, add the following lines to your `configuration.yaml`: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: duke_energy - username: YOUR_DUKE_USERNAME - password: YOUR_DUKE_PASSWORD -``` - -{% configuration %} -username: - description: Your Duke Energy username - required: true - type: string -password: - description: Your Duke Energy password - required: true - type: string -{% endconfiguration %} - -
-Meter usage isn't updated until mid-morning. Prior to updating your meter will report 0 for usage starting at midnight. The API is only called to update every 2 hours from startup time. -
diff --git a/source/_integrations/dynalite.markdown b/source/_integrations/dynalite.markdown new file mode 100755 index 000000000000..bf0b9203b782 --- /dev/null +++ b/source/_integrations/dynalite.markdown @@ -0,0 +1,149 @@ +--- +title: "Philips Dynalite" +description: "Instructions on setting up Philips Dynalite within Home Assistant." +logo: dynalite.png +ha_category: + - Hub + - Light +ha_iot_class: Local Push +ha_release: 0.106 +--- + +Philips Dynalite support is integrated into Home Assistant as a hub that can drive the light platforms. + +There is currently support for the following device types within Home Assistant: + +- Lights + +A Philips Dynalite hub connects to the Dynet network, which is composed of areas, channels, and preset. + +A Dynalite area typically (although not necessarily) defines some physical area, such as a room. + +Each area can have one or more channels that correspond to the different devices they control. A channel can relate to a dimmable light, or other devices, such as a cover. + +Additionally, each area can have one or more presets that determine the behavior of all the channels, and sometimes trigger additional actions. Typically, preset 1 in an area means 'on', and preset '4' means off. Additional presets could be used for scenes and dimming. + +## Configuration + +Since Philips Dynalite has virtually no auto-discover capabilities, it needs to be configured via the `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +dynalite: + bridges: + - host: DEVICE_IP_ADDRESS +``` + +{% configuration %} +host: + description: The IP address of the bridge (e.g., 192.168.1.10). + required: true + type: string +port: + description: Port number of the bridge. + required: false + type: integer + default: 12345 +name: + description: Name for the bridge. + required: false + type: string + default: dynalite +active: + description: Actively query network. When starting, it will query all devices for their current status, and also will send queries when some changes are in progress (e.g., lights dimming or covers moving). Better experience but creates more load on the Dynalite network. + required: false + type: boolean + default: false +polltimer: + description: Polling interval for devices in transition. Value in seconds. When devices are in transition (e.g., a light fading), it will ask for a new state every X seconds until it is at the target level. Only relevant when active is set. + required: false + type: float + default: 1.0 +autodiscover: + description: Enable auto-discover. As Dynalite does not support autodiscovery, this tracks event on your network, so if you turn on a light, it will be added to Home Assistant. + required: false + type: boolean + default: false +default: + description: Global defaults for the system + required: false + type: map + keys: + fade: + description: Default fade + required: false + type: float +area: + description: Definition for the various Dynalite areas. + required: true + type: map + keys: + 'AREA_NUMBER': + description: The Dynalite area number, 1-255. + required: true + type: map + keys: + name: + description: Name of the area. + required: true + type: string + fade: + description: Fade time for the area, in seconds. + required: false + type: float + default: 2.0 + channel: + description: Map of the channels in this area. + required: false + type: map + keys: + 'CHANNEL_NUMBER': + description: The Dynalite channel number in the area, 1-255. + required: true + type: map + keys: + name: + description: Name of the channel. + required: false + type: string + default: \"AREA_NAME Channel CHANNEL_NUMBER\" + fade: + description: Fade time for the channel, in seconds. + required: false + type: float + default: 2.0 +{% endconfiguration %} + +## Examples + +```yaml +# Example configuration.yaml entry specifying optional parameters +dynalite: + bridges: + - host: DEVICE_IP_ADDRESS + port: 12345 + autodiscover: true + polltimer: 1 + areacreate: auto + log_level: debug + area: + '2': + name: Living Room + channel: + '2': + name: Entrance Spot + fade: 10.0 + '3': + name: Dining Table +``` + +## Initial configuration and discovery + +Maybe the most difficult thing about a Dynalite system is finding out the areas and channel mapping. If you have them or have access to the Dynalite software and your configuration files, this could be easy, +but in the likely case that your system was installed by an integrator, you will have to discover them on your own. + +This is where the `autodiscover` option comes handy. If it is on, the component will track the Dynet network and every time a device is used, it will be added to Home Assistant. It will initially show as "Area 123 Channel 7", but you can then add it to your `configuration.yaml` with the correct configuration. + +For example, you would go to your kitchen light and turn it on. Now you log into Home Assistant and see what the channel was. If there was more than one discovered (e.g., someone turned off the living room lights), you can try one, turn it on and off in Home Assistant and see which light it affects. + +The initial process can be a bit time consuming and tedious, but it only has to be done once. Once you are done configuring, it is better to set `autodiscover` to `false`, since there are many "fake" channels and areas that the system uses for internal communication and you do not want to have visible. diff --git a/source/_integrations/eight_sleep.markdown b/source/_integrations/eight_sleep.markdown index 51773ca235fb..15dcc5b0c6db 100644 --- a/source/_integrations/eight_sleep.markdown +++ b/source/_integrations/eight_sleep.markdown @@ -17,11 +17,11 @@ The `eight_sleep` integration allows Home Assistant to fetch data from your [Eig There is currently support for the following device types within Home Assistant: - Binary Sensor - lets observe the presence state of a [Eight Sleep](https://eightsleep.com/) cover/mattress through Home Assistant. -- Sensor - This includes bed state and results of the current and previous sleep sessions. +- Sensor - This includes bed state, sleep fitness scores, and results of the current and previous sleep sessions. ## Configuration -It's setup utilizing 'Sensor' platform to convey the current state of your bed and results of your sleep sessions and a 'Binary Sensor' platform to indicate your presence in the bed. A service is also provided to set the heating level and duration of the bed. +It's setup utilizing 'Sensor' platform to convey the current state of your bed and results of your sleep sessions and a 'Binary Sensor' platform to indicate your presence in the bed. A service is also provided to set the cooling/heating level and duration of the bed (cooling is only available for the POD mattress). You must have at least two sleep sessions recorded in the Eight Sleep app prior to setting up the Home Assistant component. @@ -55,6 +55,7 @@ partner: Sensors: - eight_left/right_bed_state +- eight left/right_sleep_fitness - eight_left/right_sleep_session - eight_left/right_previous_sleep_session - eight_left/right_bed_temperature @@ -67,13 +68,13 @@ Binary Sensors: ### Service `heat_set` -You can use the service eight_sleep/heat_set to adjust the target heating level and heating duration of your bed. +You can use the service eight_sleep/heat_set to adjust the target cooling/heating level and heating duration of your bed (cooling is only available for the POD mattress). | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | no | Entity ID of bed state to adjust. -| `target` | no | Target heating level from 0-100. -| `duration` | no | Duration to heat at the target level in seconds. +| `target` | no | Target cooling/heating level from -100 to 100. +| `duration` | no | Duration to cool/heat at the target level in seconds. Script Example: diff --git a/source/_integrations/fritzdect.markdown b/source/_integrations/fritzdect.markdown deleted file mode 100644 index 6e2ace51ab34..000000000000 --- a/source/_integrations/fritzdect.markdown +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: AVM FRITZ!DECT -description: Instructions on how to integrate your AVM FRITZ!DECT switches into Home Assistant. -logo: avm.png -ha_category: - - Switch -ha_iot_class: Local Polling -ha_release: 0.38 ---- - -The `fritzdect` switch platform allows you to control the state of your [AVM FRITZ!DECT DECT-based wireless switches](https://en.avm.de/products/fritzdect/). The AVM FRITZ!DECT switches need to be paired to your FRITZ!Box and then can be monitored and controlled via Home Assistant. - -Supported devices (tested): - -- FRITZ!DECT 200 - -Supported Firmwares (tested): - -- FRITZ!OS: 06.80 / FRITZ!DECT: 03.83 -- FRITZ!OS: 06.98-51288 (Beta) / FRITZ!DECT: 03.87 -- FRITZ!OS: 7.01 / FRITZ!DECT: 04.09 - -To use your AVM FRITZ!DECT switch(es) in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -switch: - - platform: fritzdect - username: YOUR_USERNAME - password: YOUR_PASSWORD -``` - -{% configuration %} -username: - description: The username for your Fritz!Box. - required: true - type: string -password: - description: The password for your Fritz!Box. - required: true - type: string -host: - description: The IP address/hostname of your Fritz!Box. - required: false - type: string - default: fritz.box -{% endconfiguration %} - -It is recommended to create a dedicated user for Home Assistant and only allow access to "Smart Home". - -
-If this integration throws an error when starting home-assistant you should check if all actors are plugged in and connected to the FritzBox. Inactive actors that are not deleted from FritzBox configuration might lead to errors. -
diff --git a/source/_integrations/garmin_connect.markdown b/source/_integrations/garmin_connect.markdown index 4dc06cd7a3df..3b76f5f54566 100644 --- a/source/_integrations/garmin_connect.markdown +++ b/source/_integrations/garmin_connect.markdown @@ -65,9 +65,6 @@ Body Battery Most Recent Average SPO2 Lowest SPO2 Latest SPO2 -Highest Respiration -Lowest Respiration -Latest Respiration ``` Disabled by default: @@ -104,4 +101,7 @@ Moderate Intensity Vigorous Intensity Intensity Goal Latest Respiration Update +Highest Respiration +Lowest Respiration +Latest Respiration ``` diff --git a/source/_integrations/gdacs.markdown b/source/_integrations/gdacs.markdown new file mode 100644 index 000000000000..40157ff07272 --- /dev/null +++ b/source/_integrations/gdacs.markdown @@ -0,0 +1,136 @@ +--- +title: Global Disaster Alert and Coordination System (GDACS) +description: Instructions on how to integrate the Global Disaster Alert and Coordination System (GDACS) feed into Home Assistant. +logo: gdacs.jpg +ha_category: + - Geolocation +ha_iot_class: Cloud Polling +ha_release: 0.106 +ha_config_flow: true +ha_quality_scale: platinum +ha_codeowners: + - '@exxamalte' +--- + +The `gdacs` integration lets you use a GeoRSS feed provided by +[GDACS](https://www.gdacs.org/) with information +about major droughts, earthquakes, floods, tropical cyclones, tsunamis and +volcanic activities worldwide. +It retrieves alerts from a feed and shows information of those alerts filtered +by distance to Home Assistant's location. + +Entities are generated, updated and removed automatically with each update +from the feed. Each entity defines latitude and longitude and will be shown +on the default map automatically, or on a map card by defining the source +`gdacs`. The distance is available as the state of each entity, and +converted to the unit (kilometers or miles) configured in Home Assistant. + +

+ +

+ +The data is updated every 5 minutes. + +
+ +The material used by this integration is provided by the [Global Disaster +Alert and Coordination System (GDACS)](https://www.gdacs.org/) - a cooperation +framework between the United Nations and the European Commission - under the +[Creative Commons Attribution 4.0 International (CC BY 4.0) license](http://creativecommons.org/licenses/by/4.0/). +It has only been modified for the purpose of presenting the material in Home Assistant. +Please refer to the [creator's disclaimer and terms of use notice](https://www.gdacs.org/About/termofuse.aspx) for more information. + +
+ +## Configuration + +To integrate the GDACS feed use the "Integrations" feature +in the GUI, you find it under Configurations - Integrations, or add the +following line to your `configuration.yaml`. + +```yaml +# Example configuration.yaml entry +gdacs: +``` + +{% configuration %} +categories: + description: The categories of alerts to be included. Valid categories are 'Drought', 'Earthquake', 'Flood', 'Tropical Cyclone', 'Tsunami', 'Volcano'. + required: false + type: list +radius: + description: The radius around your location to monitor; defaults to 500 km or mi (depending on the unit system defined in your `configuration.yaml`). + required: false + type: float + default: 500.0 +latitude: + description: Latitude of the coordinates around which alerts are considered. + required: false + type: float + default: Latitude defined in your configuration. +longitude: + description: Longitude of the coordinates around which alerts are considered. + required: false + type: float + default: Longitude defined in your configuration. +{% endconfiguration %} + +## State Attributes + +The following state attributes are available for each entity in addition to +the standard ones: + +| Attribute | Description | +|------------------|-------------| +| latitude | Latitude of the alert's location. | +| longitude | Longitude of the alert's location. | +| source | `gdacs` to be used in conjunction with `geo_location` automation trigger. | +| external_id | The external ID used in the feed to identify the alert. | +| title | Title of this entry. | +| description | Description of this entry. | +| event type | Type of event this alert is for (Drought, Earthquake, Flood, Tropical Cyclone, Tsunami, Volcano). | +| alert level | Alert level (Red, Orange, Green). | +| country | Country that the alert is applicable to. | +| duration in week | Duration of the alert in full weeks (only shown if more than one week). | +| from date | Date and time this alert started. | +| to date | Date and time this alert ended (or now if ongoing). | +| population | Exposed population. | +| severity | Severity of the alert. | +| vulnerability | Vulnerability score (textual or numerical). | + +Please note that some of the attribute values depend on the context and may not +be comparable between different event types. + +## Sensor + +This integration automatically creates a sensor that shows how many entities +are currently managed by this integration. In addition to that the sensor has +some useful attributes that indicate the currentness of the data retrieved +from the feed. + +

+ +

+ +| Attribute | Description | +|------------------------|-------------| +| status | Status of last update from the feed ("OK" or "ERROR"). | +| last update | Timestamp of the last update from the feed. | +| last update successful | Timestamp of the last successful update from the feed. | +| last timestamp | Timestamp of the latest entry from the feed. | +| created | Number of entities that were created during last update (optional). | +| updated | Number of entities that were updated during last update (optional). | +| removed | Number of entities that were removed during last update (optional). | + +## Full Configuration + +```yaml +# Example configuration.yaml entry +gdacs: + categories: + - Drought + - Earthquake + radius: 1000 + latitude: -41.2 + longitude: 174.7 +``` diff --git a/source/_integrations/geo_location.markdown b/source/_integrations/geo_location.markdown index 2b020ba19740..81ae7364bafa 100644 --- a/source/_integrations/geo_location.markdown +++ b/source/_integrations/geo_location.markdown @@ -13,15 +13,16 @@ Entities can have associated geolocation coordinates (latitude and longitude) so The [Geolocation trigger](/docs/automation/trigger/#geolocation-trigger) can be used in automations triggered by Geolocation entities appearing in or disappearing from zones. The following value must be used as `source` of the trigger depending on which platform is managing the entities: -| Platform | Source | -|---------------------------------------------------|-------------------------------| -| GeoJSON Events | `geo_json_events` | -| GeoNet New Zealand Quakes | `geonetnz_quakes` | -| IGN Sismología | `ign_sismologia` | -| NSW Rural Fire Service Incidents | `nsw_rural_fire_service_feed` | -| Queensland Bushfire Alert | `qld_bushfire` | -| U.S. Geological Survey Earthquake Hazards Program | `usgs_earthquakes_feed` | -| The World Wide Lightning Location Network | `wwlln` | +| Platform | Source | +|-------------------------------------------------------|-------------------------------| +| GeoJSON Events | `geo_json_events` | +| GeoNet New Zealand Quakes | `geonetnz_quakes` | +| Global Disaster Alert and Coordination System (GDACS) | `gdacs` | +| IGN Sismología | `ign_sismologia` | +| NSW Rural Fire Service Incidents | `nsw_rural_fire_service_feed` | +| Queensland Bushfire Alert | `qld_bushfire` | +| U.S. Geological Survey Earthquake Hazards Program | `usgs_earthquakes_feed` | +| The World Wide Lightning Location Network | `wwlln` | Conditions can be used to further filter entities, for example by inspecting their state attributes. diff --git a/source/_integrations/glances.markdown b/source/_integrations/glances.markdown index 2bd6b8fb9ea3..a91cca13c2d8 100644 --- a/source/_integrations/glances.markdown +++ b/source/_integrations/glances.markdown @@ -90,11 +90,12 @@ version: ## Integration Entities -Glances integration will add the following sensors: +Glances integration will add the following sensors if available in the platform: -- disk_use_percent: The used disk space in percent. -- disk_use: The used disk space. -- disk_free: The free disk space. +- For each detected disk (or mount point) the following sensors will be created: + - disk_use_percent: The used disk space in percent. + - disk_use: The used disk space. + - disk_free: The free disk space. - memory_use_percent: The used memory in percent. - memory_use: The used memory. - memory_free: The free memory. @@ -107,9 +108,9 @@ Glances integration will add the following sensors: - process_thread: The number of threads. - process_sleeping: The number of sleeping processes. - cpu_use_percent: The used CPU in percent. -- cpu_temp: The CPU temperature (may not be available on all platforms). +- sensor_temp: A temperature sensor for each device that provides temperature (depends on platform). - docker_active: The count of active Docker containers. - docker_cpu_use: The total CPU usage in percent of Docker containers. - docker_memory_use: The total memory used by Docker containers. -Not all platforms are able to provide all metrics. For instance `cpu_temp` requires installing and configuring `lmsensors` in Ubuntu, and may not be available at all in other platforms. +Not all platforms are able to provide all metrics. For instance the cpu temp sensor requires installing and configuring `lmsensors` in Ubuntu, and may not be available at all in other platforms. diff --git a/source/_integrations/homematicip_cloud.markdown b/source/_integrations/homematicip_cloud.markdown index 870a8897c172..3590b5e1b054 100644 --- a/source/_integrations/homematicip_cloud.markdown +++ b/source/_integrations/homematicip_cloud.markdown @@ -90,7 +90,7 @@ Within this delay the device registration should be completed in the App, otherw * homematicip_cloud.binary_sensor * Acceleration Sensor (*HMIP-SAM*) - * Window and door contact (*HmIP-SWDO, -I*) + * Window and door contact (*HmIP-SWDO, HmIP-SWDO-PL, HmIP-SWDO-I, HmIP-SWDM, HmIP-SWDM-B2*) * Contact Interface flush-mount – 1 channel (*HmIP-FCI1*) * Contact Interface (*HmIP-SCI*) * Window Rotary Handle Sensor (*HmIP-SRH*) @@ -111,11 +111,13 @@ Within this delay the device registration should be completed in the App, otherw * homematicip_cloud.climate * Climate group (*HmIP-HeatingGroup*) * This includes temperature/humidity measures for climate devices of a room delivered by: - * Wall-mounted thermostat (*HmIP-WTH, WTH-2*) - * Brand Wall-mounted thermostat (*HmIP-BWTH, BWTH-24*) - * Radiator thermostat (*HmIP-eTRV,-2,-C*) - should also work with (*HmIP-eTRV-2-UK, -B, -B1*) + * Wall-mounted thermostat (*HmIP-WTH, HmIP-WTH-2, HmIP-WTH-B*) + * Brand Wall-mounted thermostat (*HmIP-BWTH, HmIP-BWTH-24*) + * Radiator thermostat (*HmIP-eTRV, HmIP-eTRV-2, HmIP-eTRV-C*) - should also work with (*HmIP-eTRV-2-UK, HmIP-eTRV-2-B, HmIP-eTRV-2-B1*) * Temperature and humidity sensor (*HmIP-STH*) * Temperature and humidity Sensor with display (*HmIP-STHD*) + * Alpha IP Wall Thermostat Display (*ALPHA-IP-RBG*) + * Alpha IP Wall Thermostat Display analog (*ALPHA-IP-RBGa*) * There is no need to directly support the following devices by Home Assistant, because their integration is done by the required wall thermostats: * Floor Heating Actuator – 6x channels, 230V (*HMIP-FAL230-C6*) * Floor Heating Actuator – 10x channels, 230V (*HMIP-FAL230-C10*) @@ -138,9 +140,9 @@ Within this delay the device registration should be completed in the App, otherw * Switch Actuator for brand switches – with signal lamp (*HmIP-BSL*) * homematicip_cloud.sensor - * Cloud Access point duty-cycle (*HmIP-HAP, -B1*) - * Wall Mounted Thermostat Pro with Display (*HmIP-WTH, WTH2*) - * Radiator thermostat (*HmIP-eTRV,-2, -C*) - should also work with (*HmIP-eTRV-2-UK, -B, -B1*) + * Cloud Access point duty-cycle (*HmIP-HAP, HmIP-HAP-B1*) + * Wall Mounted Thermostat (*HmIP-WTH, HmIP-WTH2, HmIP-WTH-B*) + * Radiator thermostat (*HmIP-eTRV, HmIP-eTRV-2, HmIP-eTRV-C*) - should also work with (*HmIP-eTRV-2-UK, HmIP-eTRV-2-B, HmIP-eTRV-2-B1*) * Temperature and Humidity Sensor without display - indoor (*HmIP-STH*) * Temperature and Humidity Sensor with display - indoor (*HmIP-STHD*) * Temperature and Humidity sensor - outdoor (*HmIP-STHO, -A*) @@ -149,11 +151,13 @@ Within this delay the device registration should be completed in the App, otherw * Presence Sensor – indoor (*HmIP-SPI*) * Light Sensor - outdoor (*HmIP-SLO*) * Passage Sensor with Direction Recognition (*HmIP-SPDR*) (delta counter) + * Alpha IP Wall Thermostat Display (*ALPHA-IP-RBG*) + * Alpha IP Wall Thermostat Display analog (*ALPHA-IP-RBGa*) * homematicip_cloud.switch * Pluggable Switch (*HmIP-PS*) - * Pluggable Switch and Meter (*HmIP-PSM*) - should also work with (*HmIP-PSM-CH, -IT, -UK, -PE*) - * Switch Actuator and Meter – flush-mount (*HmIP-FSM, -FSM16*) + * Pluggable Switch and Meter (*HmIP-PSM*) - should also work with (*HmIP-PSM-CH, HmIP-PSM-IT, HmIP-PSM-UK, HmIP-PSM-PE*) + * Switch Actuator and Meter – flush-mount (*HmIP-FSM, HmIP-FSM16*) * Open Collector Module Receiver - 8x (*HmIP-MOD-OC8*) * Multi IO Box - 2x (*HmIP-MIOB*) * Switch Circuit Board - 1x channels (*HmIP-PCBS*) diff --git a/source/_integrations/ipma.markdown b/source/_integrations/ipma.markdown index abff031040cd..cfe40bb619f8 100644 --- a/source/_integrations/ipma.markdown +++ b/source/_integrations/ipma.markdown @@ -40,4 +40,9 @@ longitude: required: false type: string default: Home Assistant global longitude configuration +mode: + description: "The forecast type. Can be `hourly` or `daily`." + required: false + type: string + default: "`daily`" {% endconfiguration %} diff --git a/source/_integrations/jewish_calendar.markdown b/source/_integrations/jewish_calendar.markdown index 8d6a50ba6e9d..cbe0d9f5475f 100644 --- a/source/_integrations/jewish_calendar.markdown +++ b/source/_integrations/jewish_calendar.markdown @@ -60,6 +60,7 @@ havdalah_minutes_after_sunset: - weekly_portion: Shows the weekly portion (parshat hashavu'a). - holiday: If it is a holiday, shows the name of the holiday _(see below for more info)_. - omer_count: An integer sensor indicating the day of the Omer (1-49) or 0 if it is not currently the Omer. +- daf_yomi: Shows the date's daf yomi page. ### Time sensors diff --git a/source/_integrations/konnected.markdown b/source/_integrations/konnected.markdown index e6529b4bf478..65084bad9fbd 100644 --- a/source/_integrations/konnected.markdown +++ b/source/_integrations/konnected.markdown @@ -12,7 +12,7 @@ ha_codeowners: - '@heythisisnate' --- -The `konnected` integration lets you connect wired sensors and switches to a NodeMCU ESP8226 based device running the [open source Konnected software](https://github.com/konnected-io/konnected-security). Reuse the wired sensors and siren from an old or pre-wired alarm system installation and integrate them directly into Home Assistant. +The `konnected` integration lets you connect wired sensors and switches to a Konnected Alarm Panel, or NodeMCU ESP8226 based device running the [open source Konnected software](https://github.com/konnected-io/konnected-security). Reuse the wired sensors and siren from an old or pre-wired alarm system installation and integrate them directly into Home Assistant. Visit the [Konnected.io website](https://konnected.io) for more information about the Konnected Alarm Panel board and compatible hardware. @@ -22,7 +22,7 @@ The integration currently supports the following device types in Home Assistant: - Switch: Actuate a siren, strobe, buzzer or relay module. - Sensor: Periodic measurements from DHT temperature/humidity sensors and DS18B20 temperature sensors. -This integration uses the [`discovery`](/integrations/discovery) component, which must be enabled for device discovery to work. If you don't want to use discovery, set the _host_ and _port_ for each device in the description. +This integration uses the [SSDP](/integrations/ssdp) integration, which must be enabled for device discovery to work. If you don't want to use discovery, set the _host_ and _port_ for each device in the description.
@@ -32,7 +32,13 @@ Konnected devices communicate with Home Assistant over your local LAN -- there i ## Configuration -A `konnected` section must be present in the `configuration.yaml` file that specifies the Konnected devices on the network and the sensors or actuators attached to them: +Home Assistant offers Konnected integration through **Configuration** -> **Integrations** -> **Konnected.io**. + +The configuration flow will guide you through a setup process that lets you connect to the panel and generate a configuration entry. You can then utilize the options flow to configure or modify the behavior of each zone. + +If you prefer you can also utilize a `konnected` section in the `configuration.yaml` file that specifies the Konnected devices on the network and the sensors or actuators attached to them. If using `configuration.yaml` the configuration will automatically be imported and used to start a configuration flow. **Note that you must still complete the configuration/options flow before the configuration entry will be finalized.** + +Details of the configuration fields and values can be found below - these apply to both the configuration flow and the YAML. ```yaml # Example configuration.yaml entry @@ -69,7 +75,7 @@ devices: type: list keys: id: - description: The MAC address of the NodeMCU Wi-Fi module with colons/punctuation removed, for example `68c63a8bcd53`. You can usually find the mac address in your router's client list. Or, check the home-assistant.log for log messages from automatically discovered devices. + description: The MAC address of the Konnected device with colons/punctuation removed, for example, `68c63a8bcd53`. You can usually find the mac address in your router's client list. Or, check the `home-assistant.log` for log messages from automatically discovered devices. required: true type: string binary_sensors: @@ -78,10 +84,10 @@ devices: type: list keys: pin: - description: The number corresponding to the _IO index_ of the labeled pin on the NodeMCU dev board. See the [NodeMCU GPIO documentation](https://nodemcu.readthedocs.io/en/master/en/modules/gpio/) for more details. Valid values are `1`, `2`, `5`, `6`, `7` and `9`. + description: See [Configuration Notes](#configuration-notes). required: exclusive zone: - description: The number corresponding to the labeled zone on the [Konnected Alarm Panel](https://konnected.io) board. Valid values are `1`, `2`, `3`, `4`, `5` and `6`. + description: See [Configuration Notes](#configuration-notes). required: exclusive type: description: Any [binary sensor](/integrations/binary_sensor/) class, typically `door`, `window`, `motion` or `smoke`. @@ -101,10 +107,10 @@ devices: type: list keys: pin: - description: The number corresponding to the _IO index_ of the labeled pin on the NodeMCU dev board. See the [NodeMCU GPIO documentation](https://nodemcu.readthedocs.io/en/master/en/modules/gpio/) for more details. Valid values for sensors are `1`, `2`, `5`, `6`, `7` and `9`. + description: See [Configuration Notes](#configuration-notes). required: exclusive zone: - description: The number corresponding to the labeled zone on the [Konnected Alarm Panel](https://konnected.io) board. Valid values for sensors are `1`, `2`, `3`, `4`, `5` and `6`. + description: See [Configuration Notes](#configuration-notes). required: exclusive name: description: The name of the device used in the front end. @@ -124,10 +130,10 @@ devices: type: list keys: pin: - description: The number corresponding to the _IO index_ of the labeled pin on the NodeMCU dev board. See the [NodeMCU GPIO documentation](https://nodemcu.readthedocs.io/en/master/en/modules/gpio/) for more details. Valid values are 1, 2, 5, 6, 7 and 8. + description: See [Configuration Notes](#configuration-notes). required: exclusive zone: - description: The number corresponding to the labeled zone on the [Konnected Alarm Panel](https://konnected.io) board or the word `out` to specify the dedicated ALARM/OUT terminal on the Konnected board. Valid values are `1`, `2`, `3`, `4`, `5` and `out`. + description: See [Configuration Notes](#configuration-notes). required: exclusive name: description: The name of the device used in the front end. @@ -169,8 +175,11 @@ devices: ### Configuration Notes -- Either **pin** or **zone** is required for each actuator or sensor. Do not use both in the same definition. +- Either `pin` or `zone` is required for each actuator or sensor. Do not use both in the same definition. +- `pin` represents the number corresponding to the _IO index_ of the labeled pin on the NodeMCU dev board. See the [NodeMCU GPIO documentation](https://nodemcu.readthedocs.io/en/master/en/modules/gpio/) for more details. Valid values are `1`, `2`, `5`, `6`, `7`, `8`, and `9`. Pin based configuration is only allowed with ESP8266 based devices. - Pin `D8` or the `out` zone will only work when activation is set to high (the default). +- `zone` represents the value corresponding to the labeled zone on the [Konnected Alarm Panel](https://konnected.io) boards. Valid zone values are `1`, `2`, `3`, `4`, `5`, `6`, and `out` for the Konnected Alarm Panel (`out` represents the dedicated ALARM/OUT terminal) and `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `out1`, `alarm1`, and `alarm2_out2` for the Konnected Alarm Panel Pro. +- **The Konnected Alarm Panel Pro does not support configuration via `pin`.** ## Extended Configuration diff --git a/source/_integrations/lg_netcast.markdown b/source/_integrations/lg_netcast.markdown index 5f7c0d407e92..c5adcce89021 100644 --- a/source/_integrations/lg_netcast.markdown +++ b/source/_integrations/lg_netcast.markdown @@ -5,7 +5,7 @@ logo: lg.png ha_category: - Media Player ha_iot_class: Local Polling -ha_release: '0.20' +ha_release: 0.20 --- The `lg_netcast` platform allows you to control a LG Smart TV running NetCast 3.0 (LG Smart TV models released in 2012) and NetCast 4.0 (LG Smart TV models released in 2013). For the new LG WebOS TV's use the [webostv](/integrations/webostv#media-player) platform. @@ -16,7 +16,7 @@ To add a LG TV to your installation, add the following to your `configuration.ya # Example configuration.yaml entry media_player: - platform: lg_netcast - host: 192.168.0.20 + host: IP_ADDRESS ``` {% configuration %} @@ -33,6 +33,10 @@ name: required: false default: LG TV Remote type: string +turn_on_action: + description: Defines an [action](/docs/automation/action/) to turn the TV on. + required: false + type: string {% endconfiguration %} To get the access token for your TV configure the `lg_netcast` platform in Home Assistant without the `access_token`. @@ -40,5 +44,20 @@ After starting Home Assistant the TV will display the access token on screen. Just add the token to your configuration and restart Home Assistant and the media player integration for your LG TV will show up.
-The access token will not change until you factory reset your TV. + The access token will not change until you factory reset your TV.
+ +## Advanced configuration + +The example below shows how you can use the `turn_on_action` + +```yaml +# Example configuration.yaml entry +media_player: + - platform: lg_netcast + host: 192.168.0.20 + turn_on_action: + service: switch.turn_on + data: + entity_id: switch.tv_switch +``` diff --git a/source/_integrations/light.markdown b/source/_integrations/light.markdown index 64cce7036d9e..f5f2aad10f0f 100644 --- a/source/_integrations/light.markdown +++ b/source/_integrations/light.markdown @@ -36,6 +36,8 @@ Most lights do not support all attributes. You can check the integration documen | `color_name` | yes | A human-readable string of a color name, such as `blue` or `goldenrod`. All [CSS3 color names](https://www.w3.org/TR/css-color-3/#svg-color) are supported. | `brightness` | yes | Integer between 0 and 255 for how bright the light should be, where 0 means the light is off, 1 is the minimum brightness and 255 is the maximum brightness supported by the light. | `brightness_pct`| yes | Alternatively, you can specify brightness in percent (a number between 0 and 100), where 0 means the light is off, 1 is the minimum brightness and 100 is the maximum brightness supported by the light. +| `brightness_step` | yes | Change brightness by an amount. Should be between -255..255. +| `brightness_step_pct` | yes | Change brightness by a percentage. Should be between -100..100. | `flash` | yes | Tell light to flash, can be either value `short` or `long`. | `effect`| yes | Applies an effect such as `colorloop` or `random`. @@ -87,7 +89,6 @@ Turns one or multiple lights off. ### Service `light.toggle` -Toggles the state of one or multiple lights using [groups]({{site_root}}/integrations/group/). -Takes the same arguments as [`turn_on`](#service-lightturn_on) service. +Toggles the state of one or multiple lights. Takes the same arguments as [`turn_on`](#service-lightturn_on) service. -*Note*: If `light.toggle` is used for a group of lights, it will toggle the individual state of each light. +*Note*: If `light.toggle` is used for a group of lights, it will toggle the individual state of each light. If you want the lights to be treated as a single light, use [Light Groups](/integrations/light.group/) instead. diff --git a/source/_integrations/light.template.markdown b/source/_integrations/light.template.markdown index 37b6f2413f2b..7e840561f131 100644 --- a/source/_integrations/light.template.markdown +++ b/source/_integrations/light.template.markdown @@ -28,6 +28,7 @@ light: level_template: "{{ state_attr('sensor.theater_brightness', 'lux')|int }}" value_template: "{{ state_attr('sensor.theater_brightness', 'lux')|int > 0 }}" temperature_template: "{{states('input_number.temperature_input') | int}}" + color_template: "({{states('input_number.h_input') | int}}, {{states('input_number.s_input') | int}})" turn_on: service: script.theater_lights_on turn_off: @@ -41,6 +42,15 @@ light: data_template: value: "{{ color_temp }}" entity_id: input_number.temperature_input + set_color: + - service: input_number.set_value + data_template: + value: "{{ h }}" + entity_id: input_number.h_input + - service: input_number.set_value + data_template: + value: "{{ s }}" + entity_id: input_number.s_input ``` {% endraw %} @@ -74,6 +84,11 @@ light: required: false type: template default: optimistic + color_template: + description: Defines a template to get the color of the light. Must render a tuple (hue, saturation) + required: false + type: template + default: optimistic icon_template: description: Defines a template for an icon or picture, e.g., showing a different icon for different states. required: false @@ -99,6 +114,10 @@ light: description: Defines an action to run when the light is given a color temperature command. required: false type: action + set_color: + description: Defines an action to run when the light is given a color command. + required: false + type: action {% endconfiguration %} ## Considerations diff --git a/source/_integrations/liveboxplaytv.markdown b/source/_integrations/liveboxplaytv.markdown deleted file mode 100644 index 3c481370564e..000000000000 --- a/source/_integrations/liveboxplaytv.markdown +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Orange Livebox Play TV -description: Instructions on how to integrate a Livebox Play TV appliance into Home Assistant. -logo: orange.png -ha_category: - - Media Player -ha_release: 0.38 -ha_iot_class: Local Polling -ha_codeowners: - - '@pschmitt' ---- - -The `liveboxplaytv` platform allows you to control [Orange Livebox Play TV appliances](https://boutique.orange.fr/internet/decodeur-tv-livebox). - -## Configuration - -To add an Orange Livebox Play TV to your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -media_player: - - platform: liveboxplaytv - host: 192.168.1.3 -``` - -{% configuration %} -host: - description: The IP address or hostname of the Orange Livebox Play TV appliance. - required: true - type: string -name: - description: The name to use in the frontend. - required: false - default: "`Livebox Play TV`" - type: string -port: - description: The port on which the Livebox is listening on. - required: false - default: 8080 - type: integer -{% endconfiguration %} - -## Full configuration - -A full configuration example for an Orange TV appliance can look like this: - -```yaml -# Example configuration.yaml entry -media_player: - - platform: liveboxplaytv - host: 192.168.1.3 - port: 8080 - name: Orange Livebox Play TV -``` diff --git a/source/_integrations/melcloud.markdown b/source/_integrations/melcloud.markdown new file mode 100644 index 000000000000..9233cfd0cff5 --- /dev/null +++ b/source/_integrations/melcloud.markdown @@ -0,0 +1,66 @@ +--- +title: MELCloud +description: MELCloud integration +logo: melcloud.png +ha_category: + - Climate +ha_release: 0.106 +ha_iot_class: Cloud Polling +ha_config_flow: true +ha_codeowners: + - '@vilppuvuorinen' +--- + +The `melcloud` integration integrates Mitsubishi Electric's [MELCloud](https://www.melcloud.com/) enabled devices into Home Assistant. + +## Device support + +- Air-to-Air heat pumps, e.g., AC units - **Supported** +- Air-to-Water heat pumps - **Work in progress** +- Energy recovery ventilators - **Not supported** +- Other - **Not supported** + +## Configuration + +The integration should be configured through the user interface ("Configurations -> Integrations") using the MELCloud login details. While not optimal, **the provided password is not stored**. + +An expired token needs to be updated manually by adding the MELCloud integration again with the same email address. + +Configuration is also possible through `configuration.yaml`. The required authentication token can be found in `X-MitsContextKey` header when logged into the MELCloud. The language needs to be set to English and the "Remember me" option needs to be selected. + +```yaml +melcloud: + username: xxxx@xxxxxxx + token: xxxxxxxxxxxxxxxxxxx +``` + +{% configuration %} +username: + description: Email address used to login to MELCloud + required: true + type: string +token: + description: X-MitsContextKey access token + required: true + type: string +{% endconfiguration %} + +## Air-to-Air device + +An Air-to-Air heat pump provides `climate` and `sensor` platforms. Device capabilities can limit the available parameters and sensors. + +### Climate + +The following parameters can be controlled for the `climate` platform entities: + +- Power (using HVAC mode) +- Target temperature +- Operation mode (HVAC mode) +- Fan speed + +### Sensor + +The following attributes are available for `sensor` platform entities: + +- Room temperature +- Energy - The total consumed energy in kWh. **Not supported by all models.** diff --git a/source/_integrations/meteo_france.markdown b/source/_integrations/meteo_france.markdown index a9a491f4c4c1..63b6d67d4d09 100644 --- a/source/_integrations/meteo_france.markdown +++ b/source/_integrations/meteo_france.markdown @@ -5,24 +5,35 @@ logo: meteo-france.png ha_release: 0.89 ha_iot_class: Cloud Polling ha_category: - - Hub - Sensor - Weather ha_codeowners: - '@victorcerutti' - '@oncleben31' + - '@Quentame' +ha_config_flow: true --- The `meteo_france` integration uses the [Météo-France](http://www.meteofrance.com/) web service as a source for meteorological data for your location. The location is based on the `city` configured in your `configuration.yaml` file. -There is currently support for the following device types within Home Assistant: +There is currently support for the following platforms within Home Assistant: -- Sensor +- [Sensor](#sensor) - Weather -It displays the current weather along with a 4 days forecast and can create sensors based on the `monitored_conditions` set in your `configuration.yaml` file, including weather alerts from [Vigilance Météo-France](https://vigilance.meteofrance.com/) +It displays the current weather along with a 4 days forecast and create sensors, including weather alerts from [Vigilance Météo-France](https://vigilance.meteofrance.com/) -## Configuration +## Setup the integration + +There are two ways to integrate Météo-France in Home Assistant. + +### Via the frontend + +Menu: *Configuration* -> *Integrations* + +Search for "Météo-France", add your city, click submit, you are done! + +### Via the configuration file To add Météo-France to your installation, add the following to your `configuration.yaml` file: @@ -34,34 +45,9 @@ meteo_france: {% configuration %} city: - description: Name of the city ([see below](#about-city-configuration)). + description: French postal code or name of the city ([see below](#about-city-configuration)). required: true type: string - monitored_conditions: - description: The conditions types to monitor. - required: true - type: list - keys: - temperature: - description: The current temperature. - weather: - description: A human-readable text summary of the current conditions. - wind_speed: - description: The wind speed. - uv: - description: The current UV index. - next_rain: - description: Time to the next rain if happening for the next hour ([see note below](#about-next_rain-condition-sensor)). - freeze_chance: - description: Probability of temperature below 0°C for the day. - rain_chance: - description: Probability of rain for the day. - snow_chance: - description: Probability of snow for the day. - thunder_chance: - description: Probability of thunderstorm for the day. - weather_alert: - description: Weather alert status. {% endconfiguration %} ### About `city` configuration @@ -81,6 +67,20 @@ meteo_france: - city: 'montreal,amerique' ``` +## Sensor + +All these sensors will be created : +- `temperature`: The current temperature. +- `weather`: A human-readable text summary of the current conditions. +- `wind_speed`: The wind speed. +- `uv`: The current UV index. +- `next_rain`: Time to the next rain if happening for the next hour ([see note below](#about-next_rain-condition-sensor)). +- `freeze_chance`: Probability of temperature below 0°C for the day. +- `rain_chance`: Probability of rain for the day. +- `snow_chance`: Probability of snow for the day. +- `thunder_chance`: Probability of thunderstorm for the day. +- `weather_alert`: Weather alert status ([see note below](#about-weather_alert-sensor)). + ### About `next_rain` condition sensor
@@ -113,25 +113,12 @@ The sensor attributes give access to each type of alerts and date of the bulleti ### Complete example -This is an example for 3 cities forecast with different monitored conditions: +This is an example for 3 cities forecast: ```yaml # Complete example configuration.yaml entry meteo_france: + - city: '69004' - city: 'Rouen' - monitored_conditions: - - rain_chance - - freeze_chance - - thunder_chance - - snow_chance - - weather - - next_rain - - wind_speed - - temperature - - uv - - weather_alert - city: 'Oslo, norvege' - monitored_conditions: - - temperature - - city: '51100' ``` diff --git a/source/_integrations/minecraft_server.markdown b/source/_integrations/minecraft_server.markdown new file mode 100644 index 000000000000..4fd0695dfc33 --- /dev/null +++ b/source/_integrations/minecraft_server.markdown @@ -0,0 +1,41 @@ +--- +title: Minecraft Server +description: Instructions on how to integrate a Minecraft server into Home Assistant. +logo: minecraft.png +ha_release: 0.106 +ha_category: + - Binary Sensor + - Sensor +ha_iot_class: Local Polling +ha_quality_scale: silver +ha_config_flow: true +ha_codeowners: + - '@elmurato' +--- + +Minecraft servers allow players to play the sandbox video game [Minecraft](https://www.minecraft.net) by [Mojang AB](https://www.mojang.com) online or via a local area network with other players. The `Minecraft Server` integration lets you retrieve information from a Minecraft server (Java edition) within Home Assistant. + +
+The server must be version 1.7 or higher, since older versions don't expose any information. +
+ +## Configuration via the frontend + +In the settings go to `Integrations`, click on the `+` sign to add an integration and click on **Minecraft Server**. +After completing the configuration flow, the Minecraft Server integration will be available. + +## Binary sensors + +This integration provides a binary sensor for the following information from a Minecraft server: + +- Connection status + +## Sensors + +This integration provides sensors for the following information from a Minecraft server: + +- Latency time +- Version +- Protocol version +- Number of online players (player names are available in state attributes) +- Number of maximum players diff --git a/source/_integrations/nederlandse_spoorwegen.markdown b/source/_integrations/nederlandse_spoorwegen.markdown index e5ff9313d172..9560709542e0 100644 --- a/source/_integrations/nederlandse_spoorwegen.markdown +++ b/source/_integrations/nederlandse_spoorwegen.markdown @@ -29,6 +29,10 @@ sensor: from: Gn to: Mt via: Zl + - name: 'AlmereBuiten-Duivendrecht-the-08h06m-train' + from: Almb + to: Dvd + time: '08:06:00' ``` {% configuration %} @@ -57,8 +61,27 @@ routes: description: A station the route needs to pass through. required: false type: string + time: + description: Optional time to search for a specific train. + required: false + type: time {% endconfiguration %} -The data are coming from [Nederlandse Spoorwegen](https://www.ns.nl/). +### Station codes Station codes must be used and can be looked up [here](https://nl.wikipedia.org/wiki/Lijst_van_spoorwegstations_in_Nederland). + +### Searching a specific train vs. the next train + +The default behavior (without configuration variable `time`) gives you the information about the *next* train that fits the criteria (`from`, `to`, `via`). +When using the configuration variable `time`, you can search for a specific train. +This is convenient when searching for the next train doesn't give you enough time to base an automation on. +E.g., when you normally take the 08h06m train and want to get information about this train, but there is another train +that's departing just minutes before your train, your time window to warn you on a delay might be too small. + +Using `time` only updates the route sensor during a time window around the chosen time. +Outside this window, the route sensor's state is `unknown`. +The window is from half an hour before the chosen time until half an hour after the chosen time. +In this way, you can have multiple routes with specific trains before hitting the FUP threshold for using NS API. + +The data are coming from [Nederlandse Spoorwegen](https://www.ns.nl/). diff --git a/source/_integrations/onewire.markdown b/source/_integrations/onewire.markdown index 6c7aae9ebfe5..410f1b5b8e56 100644 --- a/source/_integrations/onewire.markdown +++ b/source/_integrations/onewire.markdown @@ -10,55 +10,59 @@ ha_codeowners: - '@garbled1' --- -The `onewire` platform supports sensors which are using the One wire (1-wire) bus for communication. +The `onewire` platform supports sensors which that using the One wire (1-wire) bus for communication. -Supported devices: +Every 1-wire device has a (globally) unique ID that identifies the device on the bus. The first two digits identify a device family and the last 14 digits are a globally unique number given to it during manufacturing. -- [DS18B20](https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf) -- [DS18S20](https://www.maximintegrated.com/en/products/sensors/DS18S20.html) -- [DS1822](https://datasheets.maximintegrated.com/en/ds/DS1822.pdf) -- [DS1825](https://datasheets.maximintegrated.com/en/ds/DS1825.pdf) -- [DS28EA00](https://datasheets.maximintegrated.com/en/ds/DS28EA00.pdf) temperature sensors -- [DS2406/TAI-8570](https://datasheets.maximintegrated.com/en/ds/DS2406.pdf) Temperature and pressure sensor made by AAG -- [DS2438/B1-R1-A](https://datasheets.maximintegrated.com/en/ds/DS2438.pdf) Temperature, pressure and humidity sensor by AAG +Different families have different functionality and can measure different quantities. -The 1-Wire bus can be connected directly to the IO pins of Raspberry Pi or using dedicated interface adapter (e.g [DS9490R](https://datasheets.maximintegrated.com/en/ds/DS9490-DS9490R.pdf)). +### Supported devices: -## Raspberry Pi setup +| Family | Device | Physical Quantity | +| -------|:-----|:-----| +| 10 | [DS18S20](https://www.maximintegrated.com/en/products/sensors/DS18S20.html) | Temperature | +| 12 | [DS2406(TAI-8570)](https://datasheets.maximintegrated.com/en/ds/DS2406.pdf) | Temperature (pressure when using TAI-8570) | +| 1D | [DS2423](https://datasheets.maximintegrated.com/en/ds/DS2423.pdf) | Counter | +| 22 | [DS1822](https://datasheets.maximintegrated.com/en/ds/DS1822.pdf) | | +| 26 | [DS2438/B1-R1-A/S2-R1-A](https://datasheets.maximintegrated.com/en/ds/DS2438.pdf)| Temperature, Voltage, Current, (pressure and humidity when using TAI-8570) | +| 28 | [DS18B20](https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf) | Temperature | +| 3B | [DS1825](https://datasheets.maximintegrated.com/en/ds/DS1825.pdf) | Temperature | +| 42 | [DS28EA00](https://datasheets.maximintegrated.com/en/ds/DS28EA00.pdf) | Temperature | +| EF | [HobbyBoard](https://hobbyboards.com/) | Temperature, Humidity, Moisture | -In order to setup 1-Wire support on Raspberry Pi, you'll need to edit `/boot/config.txt` following [this documentation](https://www.waveshare.com/wiki/Raspberry_Pi_Tutorial_Series:_1-Wire_DS18B20_Sensor#Enable_1-Wire). -To edit `/boot/config.txt` on the Home Assistant Operating System, use [this documentation](https://developers.home-assistant.io/docs/en/hassio_debugging.html) to enable SSH and edit `/mnt/boot/config.txt` via `vi`. +Notes: -## Interface adapter setup +- The TAI-8570 Pressure Sensor is based on a 1-wire composite device by AAG Electronica. It contains, above 1-wire components, also a barometer, hygrometer and illuminance sensors. This onewire platform can read and present values from that device. -### owfs +- Each 1-wire component data sheet describes the different properties the component provides. The owfs software adds some extra tools to make it easier for DIY implementers to use the component. By hobbyists, it is quite common to use DS2438 Smart Battery Monitor as a multipurpose measurement node that can place temperature, humidity and luminosity on the 1-wire bus by just adding some standard components to the DS2438. For different component types, there are ready-made algorithms implemented in owfs. Those are exposed by the owfs software and can be read by this platform. The B1-R1-A/pressure is exposed as a barometric pressure sensor. S2-R1-A/illuminance is presented as an illuminance sensor. For a more detailed description of these properties, refer to the [owfs documentation](https://owfs.org/index_php_page_ds2438.html). + For this component, the more basic quantities temperature, VAD, VDD and IAD is exported as separate sensors. -When an interface adapter is used, sensors can be accessed on Linux hosts via [owfs 1-Wire file system](https://owfs.org/). When using an interface adapter and the owfs, the `mount_dir` option must be configured to correspond a directory, where owfs device tree has been mounted. +- Hobbyboards is a company that has been selling DIY boards of different kinds. The company has been away from the market for some time, so no reference to the boards can be made. This platform has an implementation for some of those. -### owserver +## Interfacing with the 1-wire bus -When an interface adapter is used, you can also access sensors on a remote or local Linux host that is running owserver. owserver by default runs on port 4304. Use the `host` option to specify the host or IP of the remote server, and the optional `port` option to change the port from the default. +The 1-Wire bus can be connected directly to the IO pins of Raspberry Pi or by using a dedicated interface adapter, for example +[DS9490R](https://datasheets.maximintegrated.com/en/ds/DS9490-DS9490R.pdf) or adapters based on [DS2482-100](https://datasheets.maximintegrated.com/en/ds/DS2482-100.pdf) that can be directly attached to the IO pins on the Raspberry Pi. -### Units with multiple sensors +It is also possible for this platform to interface with a remote 1-wire host over a network connection using ofws and owserver. -This platform works with devices with multiple sensors which will cause a discontinuity in recorded values. Existing devices will receive a new ID and therefore show up as new devices. -If you wish to maintain continuity it can be resolved in the database by renaming the old devices to the new names. +## Raspberry Pi set up -Connect to your database using the instructions from [Database section](/docs/backend/database/). Check the names of sensors: +In order to setup 1-Wire support on Raspberry Pi, you'll need to edit `/boot/config.txt` following [this documentation](https://www.waveshare.com/wiki/Raspberry_Pi_Tutorial_Series:_1-Wire_DS18B20_Sensor#Enable_1-Wire). +To edit `/boot/config.txt` on the Home Assistant Operating System, use [this documentation](https://developers.home-assistant.io/docs/en/hassio_debugging.html) to enable SSH and edit `/mnt/boot/config.txt` via `vi`. -```sql -SELECT entity_id, COUNT(*) as count FROM states GROUP BY entity_id ORDER BY count DESC LIMIT 10; -``` +When using the GPIO pins on Raspberry Pi directly as a 1-wire bus, the description above uses two kernel modules. `1w_gpio`, that implements the 1-wire protocol, and `1w_therm`, that understands the DS18B20 (family 28) components inner structure and reports temperature. +There is no support for other device types (families) and hence this onewire platform only supports temperature measurements from family 28 devices. -Alter the names of sensors using the following examples: +## Interface adapter setup -```sql -UPDATE states SET entity_id='sensor._temperature' WHERE entity_id LIKE 'sensor.%' AND attributes LIKE '%\u00b0C%'; -UPDATE states SET entity_id='sensor._pressure' WHERE entity_id LIKE 'sensor.%' AND attributes LIKE '%mb%'; -UPDATE states SET entity_id='sensor._humidity' WHERE entity_id LIKE 'sensor.%' AND attributes LIKE '%%%' ESCAPE ''; -``` +### owfs + +When an interface adapter is used, sensors can be accessed on Linux hosts via [owfs 1-Wire file system](https://owfs.org/). When using an interface adapter and the owfs, the `mount_dir` option must be configured to correspond to a directory, where owfs device tree has been mounted. On systems where Home Assistant runs in a Docker container. `owfs` cannot escape that environment and hence cannot populate the `mount_dir`. Use the owserver method on these systems instead. -Remember to replace `` with the actual name of the sensor as seen in the `SELECT` query. +### owserver + +When an interface adapter is used, you can also access sensors on a remote or local Linux host that is running owserver. owserver by default runs on port 4304. Use the `host` option to specify the host or IP of the remote server, and the optional `port` option to change the port from the default. ## Configuration @@ -80,7 +84,7 @@ mount_dir: required: false type: string host: - description: Remote or local host running owserver. + description: Remote or localhost running owserver. required: false type: string port: @@ -101,3 +105,41 @@ sensor: names: GENERATED_ID: FRIENDLY_NAME ``` + +### Entities and attributes + +Upon startup of the platform, the 1-wire bus is searched for available 1-wire devices. For each device that this platform handles (see list of supported devices above), the platform adds one sensor for each physical quantity it measures. The name of the sensor is the device ID with the physical quantity it measures appended. + +`sensor.28.FF5C68521604_temperature` + +Each sensor will present its value in the state variable and for presentation purposes, rounded to one decimal for analog values and as integers for counts. + +Each sensor also exposes some additional attributes. + +```alpha +device_file: /28.FF5C68521604/temperature << Device path in owfs file system (or on Rpi system directory) +raw_value: 31.9375 << The raw measurement numbers as red from device. Not rounded. +unit_of_measurement: °C +friendly_name: 28.FF5C68521604 Temperature +``` + +### Units with multiple sensors + +This platform works with devices with multiple sensors, which will cause a discontinuity in recorded values. Existing devices will receive a new ID and therefore show up as new devices. +If you wish to maintain continuity, it can be resolved in the database by renaming the old devices to the new names. + +Connect to your database using the instructions from [Database section](/docs/backend/database/). Check the names of sensors: + +```sql +SELECT entity_id, COUNT(*) as count FROM states GROUP BY entity_id ORDER BY count DESC LIMIT 10; +``` + +Alter the names of sensors using the following examples: + +```sql +UPDATE states SET entity_id='sensor._temperature' WHERE entity_id LIKE 'sensor.%' AND attributes LIKE '%\u00b0C%'; +UPDATE states SET entity_id='sensor._pressure' WHERE entity_id LIKE 'sensor.%' AND attributes LIKE '%mb%'; +UPDATE states SET entity_id='sensor._humidity' WHERE entity_id LIKE 'sensor.%' AND attributes LIKE '%%%' ESCAPE ''; +``` + +Remember to replace `` with the actual name of the sensor, as seen in the `SELECT` query. diff --git a/source/_integrations/pioneer.markdown b/source/_integrations/pioneer.markdown index 116510aebf6e..69c8fda5ef4b 100644 --- a/source/_integrations/pioneer.markdown +++ b/source/_integrations/pioneer.markdown @@ -121,3 +121,24 @@ sources: 'MHL': '48' 'Game': '49' ``` + +#### VSX-528 + +```yaml +port: 8102 +sources: + 'CD': '01' + 'Tuner': '02' + 'DVD': '04' + 'TV': '05' + 'Sat/Cbl': '06' + 'DVR/BDR': '15' + 'iPod/USB': '17' + 'HDMI/MHL': '48' + 'BD': '25' + 'Adapter': '33' + 'Netradio': '38' + 'Media Server': '44' + 'Favorites': '45' + 'Game': '49' +``` diff --git a/source/_integrations/plex.markdown b/source/_integrations/plex.markdown index c3264595d39c..9b564ddab803 100644 --- a/source/_integrations/plex.markdown +++ b/source/_integrations/plex.markdown @@ -89,6 +89,11 @@ media_player: required: false default: false type: boolean + ignore_new_shared_users: + description: Do not track Plex clients for newly added Plex users. + required: false + default: false + type: boolean {% endconfiguration %} ```yaml @@ -102,12 +107,15 @@ plex: media_player: use_episode_art: true show_all_controls: false + ignore_new_shared_users: false ``` ## Media Player The `plex` media_player platform will create Media Player entities for each connected client device. These entities will display media information, playback progress, and playback controls if supported by the device. +By default the Plex integration will create Media Player entities for all local, managed, and shared users on the Plex server. To choose specific users to monitor or ignore, select them via the Configuration Options (**Integrations** -> **Configured** --> **Plex** --> **Gear Icon**). + ### Service `play_media` Plays a song, playlist, TV episode, or video on a connected client. diff --git a/source/_integrations/rainforest_eagle.markdown b/source/_integrations/rainforest_eagle.markdown index 91d608cbef62..1ef1cc76d49c 100644 --- a/source/_integrations/rainforest_eagle.markdown +++ b/source/_integrations/rainforest_eagle.markdown @@ -1,6 +1,6 @@ --- -title: Rainforest Eagle-200 -description: Instructions on how to setup the Rainforest Eagle-200 with Home Assistant. +title: "Rainforest Eagle" +description: "Instructions on how to setup the Rainforest Eagle with Home Assistant." logo: rainforest_automation_logo.png ha_category: - Energy @@ -11,7 +11,8 @@ ha_codeowners: - '@gtdiehl' --- -A `sensor` platform for the [Rainforest Eagle-200](https://rainforestautomation.com/rfa-z114-eagle-200/) energy gateway. +A `sensor` platform for the Rainforest Automation's [Eagle-200](https://rainforestautomation.com/rfa-z114-eagle-200/) +and [Legacy Eagle](https://rainforestautomation.com/support/rfa-z109-eagle-support/) energy gateways. ## Configuration @@ -28,15 +29,15 @@ sensor: {% configuration %} ip_address: - description: The local IP address of your Eagle-200 device. + description: The local IP address of your Eagle device. required: true type: string cloud_id: - description: The Cloud ID that is printed on the bottom of the Eagle-200 + description: The Cloud ID that is printed on the bottom of the Eagle required: true type: string install_code: - description: The Install Code that is printed on the bottom of the Eagle-200 + description: The Install Code that is printed on the bottom of the Eagle required: true type: string {% endconfiguration %} diff --git a/source/_integrations/recorder.markdown b/source/_integrations/recorder.markdown index 4dbad6af6554..8e452b3c88bd 100644 --- a/source/_integrations/recorder.markdown +++ b/source/_integrations/recorder.markdown @@ -37,6 +37,16 @@ recorder: description: The URL that points to your database. required: false type: string + db_max_retries: + description: The max amount of times, the recorder retries to connect to the database. + required: false + default: 10 + type: integer + db_retry_wait: + description: The time in seconds, that the recorder sleeps when trying to connect to the database. + required: false + default: 3 + type: integer purge_keep_days: description: Specify the number of history days to keep in recorder database after a purge. required: false @@ -186,6 +196,7 @@ If you are using the default `FULL` recovery model for MS SQL Server you will ne ### Database startup If you are running a database server instance on the same server as Home Assistant then you must ensure that this service starts before Home Assistant. For a Linux instance running Systemd (Raspberry Pi, Debian, Ubuntu and others) you should edit the service file. +To help facilitate this, db_max_retry and db_retry_wait variables have been added to ensure the recorder retries the connection to your database enough times, for your database to start up. ```bash sudo nano /etc/systemd/system/home-assistant@homeassistant.service diff --git a/source/_integrations/rest.markdown b/source/_integrations/rest.markdown index 69fbf37cc367..77cdd9402f27 100644 --- a/source/_integrations/rest.markdown +++ b/source/_integrations/rest.markdown @@ -105,12 +105,16 @@ headers: required: false type: [string, list] json_attributes: - description: A list of keys to extract values from a JSON dictionary result and then set as sensor attributes. - reqired: false + description: A list of keys to extract values from a JSON dictionary result and then set as sensor attributes. If the endpoint returns XML with the "text/xml" content type, it will automatically be converted to JSON according to this [specification](https://www.xml.com/pub/a/2006/05/31/converting-between-xml-and-json.html) + required: false type: [string, list] +json_path_attributes: + description: A [JSONPath](https://goessner.net/articles/JsonPath/) that references the location of the `json_attributes` in the JSON content. + required: false + type: string force_update: description: Sends update events even if the value hasn't changed. Useful if you want to have meaningful value graphs in history. - reqired: false + required: false type: boolean default: false {% endconfiguration %} @@ -264,6 +268,26 @@ sensor: ``` {% endraw %} +[JSONPlaceholder](https://jsonplaceholder.typicode.com/) provides sample JSON data for testing. In the below example, JSONPath locates the attributes in the JSON document. [JSONPath Online Evaluator](https://jsonpath.com/) provides a tool to test your JSONPath. If the endpoint returns XML, it will be converted to JSON using `xmltodict` before searching for attributes. You may find the [XMLtoDict debug tool](https://xmltodict-debugger.glitch.me/) helpful for testing how your XML converts to JSON. + +{% raw %} + +```yaml +sensor: + - platform: rest + name: JSON users + json_attributes_path: "$.[0].address" + json_attributes: + - street + - suite + - city + - zipcode + resource: https://jsonplaceholder.typicode.com/users + value_template: '{{ value_json[0].name }}' +``` + +{% endraw %} + This sample fetches a weather report from [OpenWeatherMap](https://openweathermap.org/), maps the resulting data into attributes of the RESTful sensor and then creates a set of [template](/integrations/template) sensors that monitor the attributes and present the values in a usable form. {% raw %} @@ -358,3 +382,106 @@ sensor: unit_of_measurement: '°C' ``` {% endraw %} + +The below example allows shows how to extract multiple values from a dictionary with `json_attributes` and `json_attributes_path` from the XML of a Steamist Steambath Wi-Fi interface and use them to create a switch and multiple sensors without having to poll the endpoint numerous times. + +In the below example `json_attributes_path` is set to `$.response` which is the location of the `usr0`, `pot0`, ... attributes used for `json_attributes`. + +{% raw %} + +```yaml +sensor: +# Steam Controller + - platform: rest + name: Steam System Data + resource: http://192.168.1.105/status.xml + json_attributes_path: "$.response" + scan_interval: 15 + value_template: 'OK' + json_attributes: + - "usr0" + - "pot0" + - "temp0" + - "time0" + - platform: template + sensors: + steam_temp: + friendly_name: Steam Temp + value_template: '{{ states.sensor.steam_system_data.attributes["temp0"] | regex_findall_index("([0-9]+)XF") }}' + unit_of_measurement: "°F" + steam_time_remaining: + friendly_name: "Steam Time Remaining" + value_template: '{{ states.sensor.steam_system_data.attributes["time0"] }}' + unit_of_measurement: "minutes" + +switch: + - platform: template + switches: + steam: + value_template: '{{ states.sensor.steam_system_data.attributes["usr0"] | int >= 1 }}' + turn_on: + - service: rest_command.set_steam_led + data: + led: 6 + - service: homeassistant.update_entity + data: + entity_id: sensor.steam_system_data + - delay: 00:00:15 + - service: homeassistant.update_entity + data: + entity_id: sensor.steam_system_data + turn_off: + - service: rest_command.set_steam_led + data: + led: 7 + - service: homeassistant.update_entity + data: + entity_id: sensor.steam_system_data + - delay: 00:00:15 + - service: homeassistant.update_entity + data: + entity_id: sensor.steam_system_data + friendly_name: Steam + +rest_command: + set_steam_led: + url: http://192.168.1.105/leds.cgi?led={{ led }} +``` + +{% endraw %} + +For reference, the XML content of endpoint shown above example is below: + +```xml + + + + 0 + 12556 + 48 + alexander + + 0 + 0 + 0 + 0 + 0 + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + up + up + up + up + 0 + 0 + 0x73XF0x73XF + 0 + +``` diff --git a/source/_integrations/rpi_gpio_pwm.markdown b/source/_integrations/rpi_gpio_pwm.markdown index fcc13105bef5..bd0ad3aa1140 100644 --- a/source/_integrations/rpi_gpio_pwm.markdown +++ b/source/_integrations/rpi_gpio_pwm.markdown @@ -8,7 +8,7 @@ ha_release: 0.43 logo: raspberry-pi.png --- -The `rpi_gpio_pwm` platform allows to control multiple lights using pulse-width modulation, for example LED strips. It supports one-color, RGB and RGBW LEDs driven by GPIOs of a Raspberry Pi or a PCA9685 controller. +The `rpi_gpio_pwm` platform allows to control multiple lights using pulse-width modulation, for example LED strips. It supports one-color, RGB and RGBW LEDs driven by GPIOs of a Raspberry Pi (same host or remote) or a PCA9685 controller. For controlling the GPIOs, the platform connects to the [pigpio-daemon](http://abyz.me.uk/rpi/pigpio/pigpiod.html), which must be running. On Raspbian Jessie 2016-05-10 or newer the `pigpio` library is already included. On other operating systems it needs to be installed first (see [installation instructions](https://github.com/soldag/python-pwmled#installation)). @@ -59,6 +59,10 @@ leds: required: false default: 0x40 type: string + host: + description: The remote host address for the GPIO driver. + required: false + type: string {% endconfiguration %} ## Examples @@ -94,3 +98,17 @@ light: pins: [3, 4, 5, 6] # [R, G, B, W] type: rgbw ``` + +### RGB LED connected to the GPIO pins of an remote Raspberry Pi. + +On the Raspberry Pi the pigpio daemon is running on the default port 6666. + +```yaml +# Example configuration.yaml entry +light: + - platform: rpi_gpio_pwm + leds: + - name: Lightstrip Sideboard + driver: gpio + host: 192.168.0.66 +``` diff --git a/source/_integrations/salt.markdown b/source/_integrations/salt.markdown new file mode 100644 index 000000000000..b1ac3c5ca6cf --- /dev/null +++ b/source/_integrations/salt.markdown @@ -0,0 +1,47 @@ +--- +title: Salt Fiber Box +description: Instructions on how to integrate Salt Fiber Box router into Home Assistant. +logo: salt.png +ha_category: + - Presence Detection +ha_iot_class: Local Polling +ha_codeowners: + - '@bjornorri' +ha_release: 0.106 +--- + +The `salt` platform offers presence detection by looking at connected devices to a [Salt Fiber Box](https://fiber.salt.ch/en/fiber/equipment/fiber-box) router from [Salt](https://www.salt.ch), which is an internet provider in Switzerland. + +
+The router only allows one user session at a time. If you log into the router's web interface, the platform will stop updating until you log out. +
+ +## Configuration + +To use a Salt Fiber Box router in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +device_tracker: + - platform: salt + host: 192.168.1.1 + username: admin + password: YOUR_PASSWORD +``` + +{% configuration %} +host: + description: The IP address of your router, e.g. `192.168.1.1`. + required: true + type: string +username: + description: The username used to log into the router's web interface, e.g. `admin`. + required: true + type: string +password: + description: The password used to log into the router's web interface. + required: true + type: string +{% endconfiguration %} + +See the [device tracker integration page](/integrations/device_tracker/) for instructions how to configure the people to be tracked. diff --git a/source/_integrations/scene.markdown b/source/_integrations/scene.markdown index fcc4604ea1b9..043015406c24 100644 --- a/source/_integrations/scene.markdown +++ b/source/_integrations/scene.markdown @@ -16,6 +16,7 @@ You can create scenes that capture the states you want certain entities to be. F # Example configuration.yaml entry scene: - name: Romantic + icon: "mdi:flower-tulip" entities: light.tv_back_light: on light.ceiling: @@ -39,6 +40,10 @@ name: description: Friendly name of scene. required: true type: string +icon: + description: Icon for the scene. + required: false + type: string entities: description: Entities to control and their desired state. required: true diff --git a/source/_integrations/script.markdown b/source/_integrations/script.markdown index 6264902767c2..b56178927f26 100644 --- a/source/_integrations/script.markdown +++ b/source/_integrations/script.markdown @@ -38,6 +38,10 @@ alias: description: Friendly name for the script. required: false type: string +icon: + description: Icon for the script. + required: false + type: string description: description: A description of the script that will be displayed in the Services tab under Developer Tools. required: false @@ -73,6 +77,7 @@ sequence: script:  wakeup: alias: Wake Up + icon: "mdi:party-popper" description: 'Turns on the bedroom lights and then the living room lights after a delay' fields: minutes: diff --git a/source/_integrations/signal_messenger.markdown b/source/_integrations/signal_messenger.markdown index e53243e64e97..905642736f1b 100644 --- a/source/_integrations/signal_messenger.markdown +++ b/source/_integrations/signal_messenger.markdown @@ -80,5 +80,6 @@ action: data: message: "Alarm in the living room!" data: - attachment: "/tmp/surveillance_camera.jpg" + attachments: + - "/tmp/surveillance_camera.jpg" ``` diff --git a/source/_integrations/simplisafe.markdown b/source/_integrations/simplisafe.markdown index 6a7438df916c..715cc2b57f40 100644 --- a/source/_integrations/simplisafe.markdown +++ b/source/_integrations/simplisafe.markdown @@ -92,3 +92,55 @@ For any property denoting a volume, the following values should be used: | `exit_delay_home` | yes | The number of seconds to delay triggering when exiting with a "home" state | | `light` | yes | Whether the light on the base station should display when armed | | `voice_prompt_volume` | yes | The volume of the base station's voice prompts | + +## Events + +### `SIMPLISAFE_EVENT` + +`SIMPLISAFE_EVENT` events represent events that appear on the timeline of the SimpliSafe +web and mobile apps. When received, they come with event data that contains the +following keys: + +* `changed_by`: the PIN that triggered the event (if appropriate) +* `event_type`: the type of event +* `info`: a human-friendly string describing the event in more detail +* `sensor_name`: the sensor that triggered the event (if appropriate) +* `sensor_serial`: the serial number of the sensor that triggered the event (if appropriate) +* `sensor_type`: the type of sensor that triggered the event (if appropriate) +* `system_id`: the system ID to which the event belongs +* `timestamp`: the UTC datetime at which the event was received + +For example, when the system is armed by "remote" means (via the web app, etc.), a +`SIMPLISAFE_EVENT` event will fire with the following event data: + +```python +{ + "changed_by": "", + "event_type": "armed_home", + "info": "System Armed (Home) by Remote Management", + "sensor_name": "", + "sensor_serial": "", + "sensor_type": "remote", + "system_id": 123456, + "timestamp": datetime.datetime(2020, 2, 13, 23, 1, 13, tzinfo=), +} +``` + +`event_type`, being one of the key fields automations might be built from, can have the +following values: + +* `camera_motion_detected` +* `doorbell_detected` +* `entry_detected` +* `motion_detected` + +### `SIMPLISAFE_NOTIFICATION` + +`SIMPLISAFE_NOTIFICATION` events represent system notifications that would appear in the +messages section of the SimpliSafe web and mobile apps. When received, they come with +event data that contains the following keys: + +* `category`: The notification category (e.g., `error`) +* `code`: The SimpliSafe code for the notification +* `message`: The actual text of the notification +* `timestamp`: The UTC timestamp of the notification diff --git a/source/_integrations/sleepiq.markdown b/source/_integrations/sleepiq.markdown index e17338d1027f..aa243ab2d563 100644 --- a/source/_integrations/sleepiq.markdown +++ b/source/_integrations/sleepiq.markdown @@ -6,11 +6,12 @@ ha_category: - Health - Sensor - Binary Sensor + - Light ha_release: 0.29 ha_iot_class: Local Polling --- -The SleepIQ implementation lets you view sensor data from [SleepIQ by SleepNumber](https://www.sleepnumber.com/sleepiq-sleep-tracker). In particular, it lets you see the occupancy and current SleepNumber (ie current firmness) of each side of a SleepNumber bed. +The SleepIQ implementation lets you view sensor data from [SleepIQ by SleepNumber](https://www.sleepnumber.com/sleepiq-sleep-tracker). In particular, it lets you see the occupancy and current SleepNumber (ie current firmness) of each side of a SleepNumber bed. Control of the lights included in the FlexFit platform is available as well. ## Setup diff --git a/source/_integrations/spc.markdown b/source/_integrations/spc.markdown index 40c10b0a3ad3..7f097eda38f9 100644 --- a/source/_integrations/spc.markdown +++ b/source/_integrations/spc.markdown @@ -10,7 +10,7 @@ logo: vanderbilt_spc.png ha_iot_class: Local Push --- -Home Assistant has support to integrate your [Vanderbilt SPC](https://www.spcsupportinfo.com/SPCConnectPro/) alarm panel and any connected motion, door and smoke sensors. +Home Assistant has support to integrate your [Vanderbilt SPC](https://www.spcsupportinfo.com/SPCConnectPro/) alarm panel and any connected motion, door, smoke and technical sensors. Integration with SPC is done through a third-party API gateway called [SPC Web Gateway](https://www.lundix.se/smarta-losningar/) which must be installed and configured somewhere on your network. @@ -65,4 +65,6 @@ automation: The `spc` platform allows you to get data from your [Vanderbilt SPC](https://www.spcsupportinfo.com/SPCConnectPro/) binary sensors from within Home Assistant. -Check the [type/class](/integrations/binary_sensor/) list for a possible visualization of your zone. Currently motion, smoke and door sensors are supported. +Check the [type/class](/integrations/binary_sensor/) list for a possible visualization of your zone. Currently motion, smoke, door and technical sensors are supported. + +Hint: In SPC, Technical zones can be used to track (for example) the status of an output. Virtual zones are supported in SPC firmware from 3.11. You can set up a virtual zone as technical, and link it to a mapping key that is controlling an output. diff --git a/source/_integrations/surepetcare.markdown b/source/_integrations/surepetcare.markdown index 763692d006c6..af8beb7d840b 100644 --- a/source/_integrations/surepetcare.markdown +++ b/source/_integrations/surepetcare.markdown @@ -20,11 +20,11 @@ To add a flap and pet, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry surepetcare: - username: x@y.com - password: v3rys3cr3t! - household_id: 1337 - flaps: [{id: 2337, name: Flap}] - pets: [{id: 3337, name: Pet}] + username: YOUR_SURE_PETCARE_LOGIN + password: YOUR_SURE_PETCARE_PASSWORD + feeders: [12345, 67890] + flaps: [13579] + pets: [24680] ``` {% configuration %} @@ -36,10 +36,6 @@ surepetcare: description: The Sure Petcare Password required: true type: string - household_id: - description: The Sure Petcare household_id - required: true - type: integer flaps: description: The Sure Petcare flaps required: true @@ -53,6 +49,19 @@ surepetcare: description: A name for the flap required: true type: string + feeders: + description: The Sure Petcare flaps + required: true + type: map + keys: + id: + description: The Sure Petcare id of a flap + required: true + type: integer + name: + description: A name for the flap + required: true + type: string pets: description: Pets managed by Sure Petcare flap(s) required: true @@ -83,6 +92,14 @@ surepetcare: type: device_class {% endconfiguration %} -## Getting the IDs of your household, flaps and pets +## Getting the IDs of your flaps, feeders and pets + +There are (at least) two ways: + +- Use the [sp_cli.py](https://github.com/rcastberg/sure_petcare/blob/master/sp_cli.py) from [@rcastberg](https://github.com/rcastberg) to fetch the IDs from the Sure Petcare API. With the default setting, the IDs will be written as JSON to `~/.surepet.cache`. +- Visit [surepetcare.io](https://surepetcare.io) and log in with your Sure Petcare credentials. Open the developer tools in Chrome/Firefox, switch to the "Network" tab and refresh the page. Now look for calls to `start` (`pets`, `` and others are also possible, but `start` shows you all information at once). Click on this call and in the JSON displayed you will find all the needed IDs. -For now, please use the [sp_cli.py](https://github.com/rcastberg/sure_petcare/blob/master/sp_cli.py) from [@rcastberg](https://github.com/rcastberg) to fetch the IDs from the Sure Petcare API. With default setting, the IDs will be written as JSON to `~/.surepet.cache`. +

+ + Where to find the IDs vie Browser developer console +

diff --git a/source/_integrations/tado.markdown b/source/_integrations/tado.markdown index 6e4e60285c62..a70560f80157 100644 --- a/source/_integrations/tado.markdown +++ b/source/_integrations/tado.markdown @@ -5,6 +5,7 @@ logo: tado.png ha_category: - Hub - Climate + - Water Heater - Presence Detection - Sensor ha_release: 0.41 @@ -18,6 +19,7 @@ The `tado` integration platform is used as an interface to the [my.tado.com](htt There is currently support for the following device types within Home Assistant: - Climate - for every Tado zone. +- Water Heater - for water heater zones. - [Presence Detection](#presence-detection) - Sensor - for some additional information of the zones. @@ -26,10 +28,21 @@ There is currently support for the following device types within Home Assistant: To use your Tado thermostats in your installation, add the following to your `configuration.yaml` file: ```yaml -# Example configuration.yaml entry +# Example configuration.yaml entry with multiple accounts tado: - username: YOUR_USERNAME - password: YOUR_PASSWORD + - username: YOUR_USERNAME1 + password: YOUR_PASSWORD1 + - username: YOUR_USERNAME2 + password: YOUR_PASSWORD2 +``` + +In case of single account works as well: + +```yaml +# Example configuration.yaml entry with single account +tado: + username: YOUR_USERNAME + password: YOUR_PASSWORD ``` {% configuration %} diff --git a/source/_integrations/tahoma.markdown b/source/_integrations/tahoma.markdown index 8d84fbcec8d9..2e5a522304a3 100644 --- a/source/_integrations/tahoma.markdown +++ b/source/_integrations/tahoma.markdown @@ -6,6 +6,7 @@ ha_category: - Hub - Binary Sensor - Cover + - Lock - Scene - Switch - Sensor @@ -22,6 +23,7 @@ There is currently support for the following device types within Home Assistant: - Binary Sensor - Sensor - Cover +- Lock - Switch - Scene diff --git a/source/_integrations/telegram_chatbot.markdown b/source/_integrations/telegram_chatbot.markdown index 6c2f2d0cd4ec..0a7fd78863a7 100644 --- a/source/_integrations/telegram_chatbot.markdown +++ b/source/_integrations/telegram_chatbot.markdown @@ -48,6 +48,7 @@ Send a photo. | `target` | yes | An array of pre-authorized chat_ids or user_ids to send the notification to. Defaults to the first allowed chat_id. | | `disable_notification` | yes | True/false for send the message silently. iOS users and web users will not receive a notification, Android users will receive a notification with no sound. Defaults to False. | | `verify_ssl` | yes | True/false for checking the SSL certificate of the server for HTTPS URLs. Defaults to True. | +| 'timeout' | yes | Timeout for send photo. Will help with timeout errors (poor internet connection, etc) | | `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. `[]` to reset to no custom keyboard. Example: `["/command1, /command2", "/command3"]` | | `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` | @@ -66,6 +67,7 @@ Send a video. | `target` | yes | An array of pre-authorized chat_ids or user_ids to send the notification to. Defaults to the first allowed chat_id. | | `disable_notification` | yes | True/false to send the message silently. iOS users and web users will not receive a notification. Android users will receive a notification with no sound. Defaults to False. | | `verify_ssl` | yes | True/false for checking the SSL certificate of the server for HTTPS URLs. Defaults to True. | +| 'timeout' | yes | Timeout for send video. Will help with timeout errors (poor internet connection, etc) | | `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. `[]` to reset to no custom keyboard. Example: `["/command1, /command2", "/command3"]` | | `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` | @@ -84,6 +86,7 @@ Send a document. | `target` | yes | An array of pre-authorized chat_ids or user_ids to send the notification to. Defaults to the first allowed chat_id. | | `disable_notification` | yes | True/false for send the message silently. iOS users and web users will not receive a notification, Android users will receive a notification with no sound. Defaults to False. | | `verify_ssl` | yes | True/false for checking the SSL certificate of the server for HTTPS URLs. Defaults to True. | +| 'timeout' | yes | Timeout for send document. Will help with timeout errors (poor internet connection, etc) | | `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. `[]` to reset to no custom keyboard. Example: `["/command1, /command2", "/command3"]` | | `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` | diff --git a/source/_integrations/tesla.markdown b/source/_integrations/tesla.markdown index 22bb62acf111..ae1d96c8b802 100644 --- a/source/_integrations/tesla.markdown +++ b/source/_integrations/tesla.markdown @@ -54,8 +54,8 @@ password: required: true type: string scan_interval: - description: API polling interval in seconds. Minimum value can't be less than 300 (5 minutes). Very frequent polling can use battery. + description: API polling interval in seconds. Minimum value can't be less than 60 (1 minute). Very frequent polling can use battery. required: false type: integer - default: 300 + default: 660 {% endconfiguration %} diff --git a/source/_integrations/totalconnect.markdown b/source/_integrations/totalconnect.markdown index bba1396b5e17..2b2ab3d5c479 100644 --- a/source/_integrations/totalconnect.markdown +++ b/source/_integrations/totalconnect.markdown @@ -4,23 +4,34 @@ description: Instructions on how to integrate TotalConnect alarms into Home Assi logo: honeywell-tc.png ha_category: - Alarm + - Binary Sensor ha_release: 0.42 --- -The `totalconnect` platform provides connectivity with the Honeywell TotalConnect alarm systems used by many alarm companies. +The `totalconnect` integration provides connectivity with the Honeywell TotalConnect alarm systems used by many alarm companies. -This platform supports the following services: `alarm_arm_away`, `alarm_arm_home`, `alarm_arm_night` and `alarm_disarm`. +If you have issues running this component, you may require `libxml2-dev` and `libxmlsec1-dev` packages. To install these on Raspbian, run the command `apt install libxml2-dev libxmlsec1-dev` with sudo. + +## Alarm Control Panel + +The integration provides an Alarm Control Panel for each TotalConnect location. It uses the name of your location from TotalConnect. For example, if your location name in TotalConnect is "Home", then you will get `alarm_control_panel.home` in Home Assistant. + +The alarm control panel supports the following services: `alarm_arm_away`, `alarm_arm_home`, `alarm_arm_night` and `alarm_disarm`. The `triggered` state also provides a state attribute called `triggered_source` giving more detail on what triggered the alarm: - `Police/Medical` is when sensors detected a burglar and/or a person pushed the Police or Medical button - `Fire/Smoke` is when fire or smoke is detected, or a person pushed the Fire button - `Carbon Monoxide` is when carbon monoxide is detected -If you have issues running this component, you may require `libxml2-dev` and `libxmlsec1-dev` packages. To install these on Raspbian, run the command `apt install libxml2-dev libxmlsec1-dev` with sudo. +## Binary Sensor + +The integration provides a Binary Sensor for each TotalConnect zone. To see zones in TotalConnect "fault" status, your TotalConnect account must have "Sensor Events" enabled. Your alarm monitoring company may charge an extra fee to enable this. + +The TotalConnect API has limited zone type information. Home Assistant device class `door` is assigned to TotalConnect door, window, perimeter, motion sensor, and most alarm panel buttons. The sensor will appear as `True` if the door is open (either fault or triggered in TotalConnect) and `False` otherwise. Device class `smoke` is assigned to TotalConnect smoke detectors and buttons with physical alarm panel "Response Type" setting of "Fire No Verification". The sensor will appear as `True` if smoke is detected. Device class `gas` is assigned to TotalConnect carbon monoxide detectors. The sensor will appear as `True` if gas is detected. ## Configuration -To enable this, add the following lines to your `configuration.yaml`: +To enable TotalConnect, add the following lines to your `configuration.yaml`: ```yaml totalconnect: diff --git a/source/_integrations/twitch.markdown b/source/_integrations/twitch.markdown index 4ba79e52fd78..38fab3d6634a 100644 --- a/source/_integrations/twitch.markdown +++ b/source/_integrations/twitch.markdown @@ -10,9 +10,22 @@ ha_iot_class: Cloud Polling The `twitch` platform will allow you to monitor [Twitch](https://www.twitch.tv/) channel status from within Home Assistant and setup automation based on the information. -## Setup +## Setup Client ID -Create a new app at "Register Your Application" in the [Twitch developer portal](https://glass.twitch.tv/console/apps). Then get the **Client ID** for the new app. +Create a new app at "Register Your Application" in the [Twitch developer portal](https://glass.twitch.tv/console/apps). Then get the __Client ID__ for the new application. + +## Setup OAuth Token + +To enable the follow and subscription attributes, the OAuth token is needed to get the right permissions on the Twitch API. +If you don't need those, ignore the configuration setting: `token`. + +To get the OAuth token, visit the [OAuth Token Generator](https://twitchapps.com/tokengen/#), insert your __Client ID__ and `user_read user_subscriptions` inside __scopes__. + +Before clicking Summit (the broken image below the form), visit the [Twitch dev console](https://dev.twitch.tv/console) and add a new application. + +As __OAuth Redirect URLs__ add `https://twitchapps.com/tokengen/` and click __Create__ +. +Back at the Token Generator, click the __Summit__ button, accept the consent screen and get your __OAuth Token__. ## Configuration @@ -33,6 +46,10 @@ client_id: description: Your Twitch client ID. required: true type: string +token: + description: Your Twitch OAuth Token. + required: false + type: string channels: description: List of channels names required: true diff --git a/source/_integrations/utility_meter.markdown b/source/_integrations/utility_meter.markdown index e906d666d5f5..005395bff51b 100644 --- a/source/_integrations/utility_meter.markdown +++ b/source/_integrations/utility_meter.markdown @@ -46,7 +46,7 @@ offset: description: "Cycle reset occur at the beginning of the period (0 minutes, 0h00 hours, Monday, day 1, January). This option enables the offsetting of these beginnings. Supported formats: `offset: 'HH:MM:SS'`, `offset: 'HH:MM'` and Time period dictionary (see example below)." required: false default: 0 - type: time + type: time type: integer net_consumption: description: Set this to True if you would like to treat the source as a net meter. This will allow your counter to go both positive and negative. @@ -67,7 +67,7 @@ offset: # At least one of these must be specified: days: 1 hours: 0 - minutes: 0 + minutes: 0 ``` ## Services @@ -153,8 +153,8 @@ When using the [DSMR component](/integrations/dsmr) to get data from the utility If you want to create a daily and monthly sensor for each tariff, you have to track separate sensors: -- `sensor.power_consumption_low` for off-peak power -- `sensor.power_consumption_normal` for peak power +- `sensor.energy_consumption_tarif_1` for tarif 1 power (for example off-peak) +- `sensor.energy_consumption_tarif_2` for for tarif 2 power (for example peak) - `sensor.gas_consumption` for gas consumption So, tracking daily and monthly consumption for each sensor, will require setting up 6 entries under the `utility_meter` component. @@ -162,26 +162,26 @@ So, tracking daily and monthly consumption for each sensor, will require setting ```yaml utility_meter: daily_power_offpeak: - source: sensor.power_consumption_low + source: sensor.energy_consumption_tarif_1 cycle: daily daily_power_peak: - source: sensor.power_consumption_normal + source: sensor.energy_consumption_tarif_2 cycle: daily daily_gas: source: sensor.gas_consumption cycle: daily monthly_power_offpeak: - source: sensor.power_consumption_low + source: sensor.energy_consumption_tarif_1 cycle: monthly monthly_power_peak: - source: sensor.power_consumption_normal + source: sensor.energy_consumption_tarif_2 cycle: monthly monthly_gas: source: sensor.gas_consumption cycle: monthly ``` -Additionally, you can add template sensors to compute daily and monthly total usage. +Additionally, you can add template sensors to compute daily and monthly total usage. {% raw %} ```yaml diff --git a/source/_integrations/vilfo.markdown b/source/_integrations/vilfo.markdown new file mode 100644 index 000000000000..18a52ee2694d --- /dev/null +++ b/source/_integrations/vilfo.markdown @@ -0,0 +1,34 @@ +--- +title: "Vilfo Router" +description: "Instructions on how to integrate a Vilfo Router into Home Assistant." +logo: vilfo.png +ha_release: "0.106" +ha_category: + - Network + - System Monitor + - Sensor +ha_iot_class: "Local Polling" +ha_config_flow: true +ha_codeowners: + - '@ManneW' +--- + +The `Vilfo Router` integration allows you to observe the state of your [Vilfo Router](https://www.vilfo.com) from Home Assistant. + +It currently supports reporting the current load of the device in percent and the current uptime measured in minutes. + +## Configuration + +The integration can be added using the UI. Go to **Configuration** >> **Integrations** and click the `+` sign button and select **Vilfo Router** from the list. + +To configure the integration you will need the hostname or IP of your router (`admin.vilfo.com` is the default hostname) as well as an API access token. + +### Obtaining an access token + +The access token for the API can be obtained through the Vilfo web-UI in the pane named "general". Visit [the official API documentation](https://www.vilfo.com/apidocs/#header-authorization) for more information on how to find your token. + +
+ +In version 1.0.13 of the Vilfo firmware, access tokens are invalidated when a new login to the web UI is made. To prevent web UI logins from interfering with the API calls, you can create a separate user solely for API purposes and use its access token. + +
diff --git a/source/_integrations/vizio.markdown b/source/_integrations/vizio.markdown index 8a2895c2ea6e..58d815f3f974 100644 --- a/source/_integrations/vizio.markdown +++ b/source/_integrations/vizio.markdown @@ -41,7 +41,7 @@ Make sure that your device is on before continuing. | Parameter | Description | | :------------ | :---------------------------------------------------------------------- | -| `ip` | IP address (possibly including port) obtained from the previous section | +| `ip` | `IP Address:Port` (obtained from the previous section) | | `device_type` | The type of device you are connecting to. Options are `tv` or `speaker` | Enter the following command to initiate pairing: diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown index c4475c536124..827fef5fa1ee 100644 --- a/source/_integrations/zha.markdown +++ b/source/_integrations/zha.markdown @@ -41,6 +41,10 @@ The custom quirks implementations for zigpy implemented as ZHA Device Handlers f ## Known working Zigbee radio modules +- dresden elektronik deCONZ based Zigbee radios (via the [zigpy-deconz](https://github.com/zigpy/zigpy-deconz) library for zigpy) + - [ConBee II (a.k.a. ConBee 2) USB adapter from dresden elektronik](https://phoscon.de/conbee2) + - [ConBee USB adapter from dresden elektronik](https://phoscon.de/conbee) + - [RaspBee Raspberry Pi Shield from dresden elektronik](https://phoscon.de/raspbee) - EmberZNet based radios using the EZSP protocol (via the [bellows](https://github.com/zigpy/bellows) library for zigpy) - [Nortek GoControl QuickStick Combo Model HUSBZB-1 (Z-Wave & Zigbee USB Adapter)](https://www.nortekcontrol.com/products/2gig/husbzb-1-gocontrol-quickstick-combo/) - [Elelabs Zigbee USB Adapter](https://elelabs.com/products/elelabs_usb_adapter.html) @@ -48,19 +52,22 @@ The custom quirks implementations for zigpy implemented as ZHA Device Handlers f - Telegesis ETRX357USB (Note! This first have to be flashed with other EmberZNet firmware) - Telegesis ETRX357USB-LRS (Note! This first have to be flashed with other EmberZNet firmware) - Telegesis ETRX357USB-LRS+8M (Note! This first have to be flashed with other EmberZNet firmware) +- Texas Instruments CC253x, CC26x2R, and CC13x2 based radios (via the [zigpy-cc](https://github.com/sanyatuning/zigpy-cc) library for zigpy) + - [CC2531 USB stick hardware flashed with custom Z-Stack coordinator firmware from the Zigbee2mqtt project](https://www.zigbee2mqtt.io/getting_started/what_do_i_need.html) + - [CC2530 + CC2591 USB stick hardware flashed with custom Z-Stack coordinator firmware from the Zigbee2mqtt project](https://www.zigbee2mqtt.io/getting_started/what_do_i_need.html) + - [CC2530 + CC2592 dev board hardware flashed with custom Z-Stack coordinator firmware from the Zigbee2mqtt project](https://www.zigbee2mqtt.io/getting_started/what_do_i_need.html) + - [CC2652R dev board hardware flashed with custom Z-Stack coordinator firmware from the Zigbee2mqtt project](https://www.zigbee2mqtt.io/getting_started/what_do_i_need.html) + - [CC1352P-2 dev board hardware flashed with custom Z-Stack coordinator firmware from the Zigbee2mqtt project](https://www.zigbee2mqtt.io/getting_started/what_do_i_need.html) + - [CC2538 + CC2592 dev board hardware flashed with custom Z-Stack coordinator firmware from the Zigbee2mqtt project](https://www.zigbee2mqtt.io/getting_started/what_do_i_need.html) - XBee Zigbee based radios (via the [zigpy-xbee](https://github.com/zigpy/zigpy-xbee) library for zigpy) - Digi XBee Series 3 (xbee3-24) modules - Digi XBee Series 2C (S2C) modules - Digi XBee Series 2 (S2) modules (Note! This first have to be flashed with Zigbee Coordinator API firmware) -- dresden elektronik deCONZ based Zigbee radios (via the [zigpy-deconz](https://github.com/zigpy/zigpy-deconz) library for zigpy) - - [ConBee II (a.k.a. ConBee 2) USB adapter from dresden elektronik](https://phoscon.de/conbee2) - - [ConBee USB adapter from dresden elektronik](https://phoscon.de/conbee) - - [RaspBee Raspberry Pi Shield from dresden elektronik](https://phoscon.de/raspbee) - ZiGate based radios (via the [zigpy-zigate](https://github.com/doudz/zigpy-zigate) library for zigpy and require firmware 3.1a or later) - [ZiGate USB-TTL](https://zigate.fr/produit/zigate-ttl/) - [ZiGate USB-DIN](https://zigate.fr/produit/zigate-usb-din/) - [PiZiGate](https://zigate.fr/produit/pizigate-v1-0/) - - [Wifi ZiGate](https://zigate.fr/produit/zigate-pack-wifi-v1-3/) (work in progress) + - [Wifi ZiGate](https://zigate.fr/produit/zigate-pack-wifi-v1-3/) ## Configuration - GUI diff --git a/source/_lovelace/entity-button.markdown b/source/_lovelace/button.markdown similarity index 91% rename from source/_lovelace/entity-button.markdown rename to source/_lovelace/button.markdown index a03a4be6e67a..6c77752c66db 100644 --- a/source/_lovelace/entity-button.markdown +++ b/source/_lovelace/button.markdown @@ -1,25 +1,25 @@ --- -title: "Entity Button Card" -sidebar_label: Entity Button -description: "The Entity Button card allows you to add buttons to perform tasks" +title: "Button Card" +sidebar_label: Button +description: "The Button card allows you to add buttons to perform tasks" --- -The Entity Button card allows you to add buttons to perform tasks. +The Button card allows you to add buttons to perform tasks.

-Screenshot of the entity button card -Screenshot of the Entity Button card. +Screenshot of the button card +Screenshot of the Button card.

```yaml -type: entity-button +type: button entity: light.living_room ``` {% configuration %} type: required: true - description: entity-button + description: button type: string entity: required: true @@ -50,6 +50,11 @@ icon_height: description: Set the height for the icon. This is in pixels which is handled by the configuration UI. (Advanced users can use other CSS values if they like) type: string default: auto +state_color: + required: false + description: Set to `true` to have icons colored when entity is active + type: boolean + default: true tap_action: required: false description: Action to take on tap @@ -189,7 +194,7 @@ user: Title and Script Service Example: ```yaml -type: entity-button +type: button name: Turn Off Lights tap_action: action: call-service @@ -200,6 +205,6 @@ entity: script.turn_off_lights ```

-Screenshot of the entity button card -Screenshot of the Entity Button card with Title and Script Service. +Screenshot of the button card +Screenshot of the Button card with Title and Script Service.

diff --git a/source/_lovelace/glance.markdown b/source/_lovelace/glance.markdown index a4f75fa9b5e1..726fc4acc77d 100644 --- a/source/_lovelace/glance.markdown +++ b/source/_lovelace/glance.markdown @@ -47,6 +47,11 @@ columns: required: false description: Number of columns to show. If not specified the number will be set automatically. type: integer +state_color: + required: false + description: Set to `true` to have icons colored when entity is active + type: boolean + default: true {% endconfiguration %} ## Options For Entities diff --git a/source/_lovelace/picture-elements.markdown b/source/_lovelace/picture-elements.markdown index a08dc9056264..0aeb8573ce3e 100644 --- a/source/_lovelace/picture-elements.markdown +++ b/source/_lovelace/picture-elements.markdown @@ -188,6 +188,11 @@ title: required: false description: Icon tooltip. Set to null to hide. type: string +state_color: + required: false + description: Set to `true` to have icons colored when entity is active + type: boolean + default: true tap_action: required: false description: Action to take on tap diff --git a/source/_posts/2017-02-11-alert-appletv-mqtt-yeelight.markdown b/source/_posts/2017-02-11-alert-appletv-mqtt-yeelight.markdown index e08c2206076b..b2ecfa575e78 100644 --- a/source/_posts/2017-02-11-alert-appletv-mqtt-yeelight.markdown +++ b/source/_posts/2017-02-11-alert-appletv-mqtt-yeelight.markdown @@ -43,9 +43,9 @@ The [`yeelight`][yeelight] component has been ported to use a more stable and fe - [Rflink][rflink] 433Mhz gateway platform and components ([@aequitas]) - Lock: Support for [Nuki.io][nuki] smart locks ([@pschmitt]) - Sensor: [QNAP][qnap] Sensor ([@colinodell]) -- Switch: Add support for [FRITZ!DECT][fritz] wireless switches based on fritzhome ([@BastianPoe]) +- Switch: Add support for FRITZ!DECT wireless switches based on fritzhome ([@BastianPoe]) - Sensor: Add [moon][moon] sensor ([@fabaff]) -- Media player: Support for the [Orange Livebox Play TV][orange] appliance ([@pschmitt]) +- Media player: Support for the Orange Livebox Play TV appliance ([@pschmitt]) - Media player: [Apple TV][apple-tv] support ([@postlund]) - MQTT: [MQTT discovery][mqtt-discovery] support ([@balloob], [@fabaff]) - Notify: [Mailgun][mailgun] notify service ([@pschmitt]) @@ -203,7 +203,6 @@ Experiencing issues introduced by this release? Please report them in our [issue [ffmpeg-bin]: /integrations/ffmpeg_motion [ffmpeg]: /integrations/ffmpeg/ [filters]: /topics/templating/#home-assistant-template-extensions -[fritz]: /integrations/fritzdect [hue]: /integrations/hue [light]: /cookbook/custom_ui_by_andrey-git [mailgun]: /integrations/mailgun @@ -212,7 +211,6 @@ Experiencing issues introduced by this release? Please report them in our [issue [mqtt-discovery]: /integrations/mqtt/#discovery [nuki]: /integrations/nuki [openevse]: /integrations/openevse -[orange]: /integrations/liveboxplaytv [owm]: /integrations/openweathermap#sensor [python-yeelight]: https://gitlab.com/stavros/python-yeelight [qnap]: /integrations/qnap diff --git a/source/_posts/2017-07-29-release-50.markdown b/source/_posts/2017-07-29-release-50.markdown index 2c701c3336e1..3cb91e69300a 100644 --- a/source/_posts/2017-07-29-release-50.markdown +++ b/source/_posts/2017-07-29-release-50.markdown @@ -119,7 +119,7 @@ conversation: - The kitchen is magic ``` -- Switch fritzdect: attributes have been renamed to use underscores and no capital letters ([@thomasklingbeil] - [#8436]) ([switch.fritzdect docs]) (breaking change) +- Switch fritzdect: attributes have been renamed to use underscores and no capital letters ([@thomasklingbeil] - [#8436]) (breaking change) - Yahoo Weather: no longer allow configuring forecasts but include all instead. ([@fanthos] - [#8626]) ([weather.yweather docs]) (breaking change) - The Home Assistant Z-Wave Cover implementation has been updated to support the latest development version of OpenZWave. If you are currently applying a workaround to your OpenZWave installation to support the barrier command class, you'll need to make sure you update your workaround to the latest development version of OpenZWave. ([@firstof9] - [#8574]) ([cover docs]) ([cover.zwave docs]) (breaking change) @@ -170,7 +170,7 @@ conversation: - bump python-mirobo version for more robust protocol handling, make the platform to update on startup ([@rytilahti] - [#8602]) ([switch.xiaomi_vacuum docs]) - Binary sensor ping fixed for hassio ([@gollo] - [#8573]) ([binary_sensor.ping docs]) - Simplified percent conversion, better logging ([@open-homeautomation] - [#8568]) ([sensor.knx docs]) -- make attributes in the fritzdect module easier to process ([@thomasklingbeil] - [#8436]) ([switch.fritzdect docs]) (breaking change) +- make attributes in the fritzdect module easier to process ([@thomasklingbeil] - [#8436]) (breaking change) - Allow set_cover_position in scenes ([@peckham] - [#8613]) - better but still not great ([@cribbstechnologies] - [#8618]) - Upgrade youtube_dl to 2017.7.23 ([@fabaff] - [#8617]) ([media_extractor docs]) @@ -391,7 +391,6 @@ conversation: [shopping_list docs]: /integrations/shopping_list/ [snips docs]: /integrations/snips/ [statsd docs]: /integrations/statsd/ -[switch.fritzdect docs]: /integrations/fritzdect [switch.mqtt docs]: /integrations/switch.mqtt/ [switch.wink docs]: /integrations/wink#switch [switch.xiaomi docs]: /integrations/switch.xiaomi_aqara/ diff --git a/source/_posts/2017-10-07-release-55.markdown b/source/_posts/2017-10-07-release-55.markdown index ecf114145a2f..7d43e88825c4 100644 --- a/source/_posts/2017-10-07-release-55.markdown +++ b/source/_posts/2017-10-07-release-55.markdown @@ -49,7 +49,7 @@ This release introduces a new sensor: [Tibber][sensor.tibber docs]. The sensor p - OwnTracks: Fix handler is None checking ([@balloob] - [#9794]) ([device_tracker.owntracks docs]) - Changed yaml.load into yaml.safe_load ([@GenericStudent] - [#9841]) ([google docs]) - Bugfix/9811 jinja autoescape ([@GenericStudent] - [#9842]) -- Livebox Play TV bug: fix #9839 ([@pschmitt] - [#9880]) ([media_player.liveboxplaytv docs]) +- Livebox Play TV bug: fix #9839 ([@pschmitt] - [#9880]) ## If you need help... ...don't hesitate to use our very active [forums][forum] or join us for a little [chat][discord]. The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. @@ -402,4 +402,3 @@ Experiencing issues introduced by this release? Please report them in our [issue [device_tracker.owntracks docs]: /integrations/owntracks [google docs]: /integrations/google_translate [light.tradfri docs]: /integrations/tradfri -[media_player.liveboxplaytv docs]: /integrations/liveboxplaytv diff --git a/source/_posts/2017-10-21-release-56.markdown b/source/_posts/2017-10-21-release-56.markdown index 0bb5badf2426..fd8ac7e6a77c 100644 --- a/source/_posts/2017-10-21-release-56.markdown +++ b/source/_posts/2017-10-21-release-56.markdown @@ -174,7 +174,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - OwnTracks: Fix handler is None checking ([@balloob] - [#9794]) ([device_tracker.owntracks docs]) - Changed yaml.load into yaml.safe_load ([@GenericStudent] - [#9841]) - Bugfix/9811 jinja autoescape ([@GenericStudent] - [#9842]) -- Fix #9839 ([@pschmitt] - [#9880]) ([media_player.liveboxplaytv docs]) +- Fix #9839 ([@pschmitt] - [#9880]) - Upgrade python-telegram-bot to 8.1.1 ([@azogue] - [#9882]) ([telegram_bot docs]) - Xknx improvements ([@Julius2342] - [#9871]) ([knx docs]) ([climate.knx docs]) - zha: Update to bellows 0.4.0 ([@rcloran] - [#9890]) ([zha docs]) ([sensor.zha docs]) @@ -211,7 +211,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Update directpy to 0.2 ([@arsaboo] - [#9948]) - Update enocean to 0.40 ([@arsaboo] - [#9949]) ([enocean docs]) - Update hikvision to 1.2 ([@arsaboo] - [#9953]) ([switch.hikvisioncam docs]) -- Update fritzhome to 1.0.3 ([@arsaboo] - [#9951]) ([switch.fritzdect docs]) +- Update fritzhome to 1.0.3 ([@arsaboo] - [#9951]) - Update fritzconnection to 0.6.5 ([@arsaboo] - [#9950]) ([device_tracker.fritz docs]) ([sensor.fritzbox_callmonitor docs]) ([sensor.fritzbox_netmonitor docs]) - Upgraded pyhomematic ([@danielperna84] - [#9956]) ([homematic docs]) - Add emeter attributes ([@gollo] - [#9903]) ([light.tplink docs]) @@ -472,7 +472,6 @@ Experiencing issues introduced by this release? Please report them in our [issue [media_player.denon docs]: /integrations/denon [media_player.denonavr docs]: /integrations/denonavr/ [media_player.dunehd docs]: /integrations/dunehd -[media_player.liveboxplaytv docs]: /integrations/liveboxplaytv [media_player.monoprice docs]: /integrations/monoprice [media_player.plex docs]: /integrations/plex#media-player [media_player.yamaha docs]: /integrations/yamaha @@ -520,7 +519,6 @@ Experiencing issues introduced by this release? Please report them in our [issue [shiftr docs]: /integrations/shiftr/ [skybell docs]: /integrations/skybell/ [switch.flux docs]: /integrations/flux -[switch.fritzdect docs]: /integrations/fritzdect [switch.hikvisioncam docs]: /integrations/hikvisioncam [switch.rainmachine docs]: /integrations/rainmachine#switch [switch.skybell docs]: /integrations/skybell#switch diff --git a/source/_posts/2017-11-04-release-57.markdown b/source/_posts/2017-11-04-release-57.markdown index 38f721c9348d..84d201f4700d 100644 --- a/source/_posts/2017-11-04-release-57.markdown +++ b/source/_posts/2017-11-04-release-57.markdown @@ -151,7 +151,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Fix no data event triggers ([@armills] - [#10049]) ([automation.event docs]) - fixing a typo in the old library which broke hub gen2 compatibility ([@sander76] - [#9990]) - Add fail2ban sensor ([@fronzbot] - [#9975]) ([sensor.fail2ban docs]) (new-platform) -- Show current program thumbnail as media_image ([@pschmitt] - [#10033]) ([media_player.liveboxplaytv docs]) +- Show current program thumbnail as media_image ([@pschmitt] - [#10033]) - Add link to docs and update ordering ([@fabaff] - [#10062]) ([duckdns docs]) - Remove STATE_UNKNOWN ([@fabaff] - [#10064]) ([sensor.glances docs]) - update library for xiaomi_aqara, change from pyCrypto to cryptography ([@danielhiversen] - [#10066]) ([xiaomi_aqara docs]) @@ -577,7 +577,6 @@ Experiencing issues introduced by this release? Please report them in our [issue [mailbox docs]: /integrations/mailbox/ [media_extractor docs]: /integrations/media_extractor/ [media_player docs]: /integrations/media_player/ -[media_player.liveboxplaytv docs]: /integrations/liveboxplaytv [media_player.monoprice docs]: /integrations/monoprice [media_player.plex docs]: /integrations/plex#media-player [media_player.russound_rnet docs]: /integrations/russound_rnet diff --git a/source/_posts/2017-12-17-release-60.markdown b/source/_posts/2017-12-17-release-60.markdown index 1b182e281c3c..b4afdf02547c 100644 --- a/source/_posts/2017-12-17-release-60.markdown +++ b/source/_posts/2017-12-17-release-60.markdown @@ -142,7 +142,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Fix incorrect comment. ([@emosenkis] - [#11111]) - Update Warrant ([@balloob] - [#11101]) ([cloud docs]) - Fixed typo in automation.py ([@ryanm101] - [#11116]) ([config.automation docs]) -- Add media position properties ([@pschmitt] - [#10076]) ([media_player.liveboxplaytv docs]) +- Add media position properties ([@pschmitt] - [#10076]) - update pyripple ([@nkgilley] - [#11122]) ([sensor.ripple docs]) - Skip HASS emulated Hue bridges from detection. ([@andreacampi] - [#11128]) ([hue docs]) - Always consume the no_throttle keyword argument. ([@andreacampi] - [#11126]) @@ -334,7 +334,6 @@ Experiencing issues introduced by this release? Please report them in our [issue [logbook docs]: /integrations/logbook/ [media_extractor docs]: /integrations/media_extractor/ [media_player.denonavr docs]: /integrations/denonavr/ -[media_player.liveboxplaytv docs]: /integrations/liveboxplaytv [media_player.samsungtv docs]: /integrations/samsungtv [media_player.sonos docs]: /integrations/sonos [media_player.ue_smart_radio docs]: /integrations/ue_smart_radio diff --git a/source/_posts/2018-01-27-release-62.markdown b/source/_posts/2018-01-27-release-62.markdown index 05e377734f51..87f1ceb3bf6f 100644 --- a/source/_posts/2018-01-27-release-62.markdown +++ b/source/_posts/2018-01-27-release-62.markdown @@ -83,7 +83,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Enable probot move ([@fabaff] - [#11690]) - fixed not to include spaces or dots in attribute names ([@olskar] - [#11694]) ([sensor.mold_indicator docs]) (breaking change) - Add attributes ([@fabaff] - [#11698]) ([sensor.random docs]) -- Feature/fritzdect errorhandling ([@BastianPoe] - [#11490]) ([switch.fritzdect docs]) +- Feature/fritzdect errorhandling ([@BastianPoe] - [#11490]) - Tesla bug fix #11598 ([@zabuldon] - [#11707]) - Update mold_indicator.py ([@olskar] - [#11715]) ([sensor.mold_indicator docs]) - Override default name for TP-Link devices ([@DanNixon] - [#11710]) ([light.tplink docs]) ([switch.tplink docs]) @@ -468,7 +468,6 @@ Experiencing issues introduced by this release? Please report them in our [issue [sensor.xiaomi_aqara docs]: /integrations/sensor.xiaomi_aqara/ [sensor.yr docs]: /integrations/yr [snips docs]: /integrations/snips/ -[switch.fritzdect docs]: /integrations/fritzdect [switch.hive docs]: /integrations/hive#switch [switch.ihc docs]: /integrations/ihc#switch [switch.snmp docs]: /integrations/snmp#switch diff --git a/source/_posts/2018-04-14-release-67.markdown b/source/_posts/2018-04-14-release-67.markdown index f92971ab4018..f86d606efc82 100644 --- a/source/_posts/2018-04-14-release-67.markdown +++ b/source/_posts/2018-04-14-release-67.markdown @@ -154,7 +154,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Update AbodePy version to 0.12.3 ([@MisterWil] - [#13709]) ([abode docs]) - Enable autodiscovery for mqtt cameras ([@jmtatsch] - [#13697]) ([mqtt docs]) ([camera.mqtt docs]) - Added ENTITY_ID_FORMAT import and set entity_id in __init__ ([@timmo001] - [#13642]) ([switch.broadlink docs]) (breaking change) -- Fix #10175 ([@pschmitt] - [#13713]) ([media_player.liveboxplaytv docs]) +- Fix #10175 ([@pschmitt] - [#13713]) - Add support for Nanoleaf Aurora Light Panels ([@Oro] - [#13456]) ([light.nanoleaf_aurora docs]) (new-platform) - Added gogogate2 cover ([@dlbroadfoot] - [#13467]) - Remove vendor lookup for mac addresses ([@balloob] - [#13788]) ([device_tracker docs]) @@ -367,7 +367,6 @@ Experiencing issues introduced by this release? Please report them in our [issue [light.yeelight docs]: /integrations/yeelight [lock.bmw_connected_drive docs]: /integrations/bmw_connected_drive [media_extractor docs]: /integrations/media_extractor/ -[media_player.liveboxplaytv docs]: /integrations/liveboxplaytv [media_player.philips_js docs]: /integrations/philips_js [media_player.songpal docs]: /integrations/songpal [media_player.webostv docs]: /integrations/webostv#media-player diff --git a/source/_posts/2018-07-21-release-74.markdown b/source/_posts/2018-07-21-release-74.markdown index 7c8b7fc00b09..7c675f6cb031 100644 --- a/source/_posts/2018-07-21-release-74.markdown +++ b/source/_posts/2018-07-21-release-74.markdown @@ -40,7 +40,7 @@ I'm happy to announce that this release introduces support for Tuya thanks to [@ - Add Tuya component and switch support ([@huangyupeng] - [#15399]) ([tuya docs]) ([switch.tuya docs]) (new-platform) - Add Tuya light platform ([@huangyupeng] - [#15444]) ([tuya docs]) ([light.tuya docs]) (new-platform) -- Added support for Duke Energy smart meters ([@w1ll1am23] - [#15165]) ([sensor.duke_energy docs]) (new-platform) +- Added support for Duke Energy smart meters ([@w1ll1am23] - [#15165]) (new-platform) - Added Push Camera ([@dgomes] - [#15151]) ([camera.push docs]) (new-platform) - Add Cloudflare DNS component. ([@ludeeus] - [#15388]) ([cloudflare docs]) (new-platform) - Add HomematicIP alarm control panel ([@mxworm] - [#15342]) ([alarm_control_panel docs]) ([homematicip_cloud docs]) ([alarm_control_panel.homematicip_cloud docs]) (new-platform) @@ -103,7 +103,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Added setting cover tilt position in scene ([@kstaniek] - [#15255]) - Pass tox posargs to pylint ([@scop] - [#15226]) - Fix Roomba exception ([@arbreng] - [#15262]) ([vacuum.roomba docs]) -- Added support for Duke Energy smart meters ([@w1ll1am23] - [#15165]) ([sensor.duke_energy docs]) (new-platform) +- Added support for Duke Energy smart meters ([@w1ll1am23] - [#15165]) (new-platform) - Update image_processing async ([@dgomes] - [#15082]) ([image_processing docs]) - Fix python-miio 0.4 compatibility of the xiaomi miio device tracker ([@serhtt] - [#15244]) ([device_tracker docs]) - Upgrade keyring to 13.1.0 ([@fabaff] - [#15268]) @@ -141,7 +141,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Improve NetAtmo sensors update logic ([@glpatcern] - [#14866]) ([sensor.netatmo docs]) - removed unused return ([@ludeeus] - [#15402]) ([cloudflare docs]) - Fix confused brightness of xiaomi_aqara gateway light ([@amelchio] - [#15314]) ([light.xiaomi_aqara docs]) -- Fix liveboxplaytv empty channel list ([@pschmitt] - [#15404]) ([media_player.liveboxplaytv docs]) +- Fix liveboxplaytv empty channel list ([@pschmitt] - [#15404]) - Fix credentials lookup ([@balloob] - [#15409]) - Change Ring binary_sensor frequency polling to avoid rate limit exceeded errors ([@tchellomello] - [#15414]) ([binary_sensor.ring docs]) - Add Tuya component and switch support ([@huangyupeng] - [#15399]) ([tuya docs]) ([switch.tuya docs]) (new-platform) @@ -374,14 +374,12 @@ Experiencing issues introduced by this release? Please report them in our [issue [media_extractor docs]: /integrations/media_extractor/ [media_player.denonavr docs]: /integrations/denonavr/ [media_player.lg_netcast docs]: /integrations/lg_netcast -[media_player.liveboxplaytv docs]: /integrations/liveboxplaytv [media_player.philips_js docs]: /integrations/philips_js [mysensors docs]: /integrations/mysensors/ [onboarding docs]: /integrations/onboarding/ [prometheus docs]: /integrations/prometheus/ [sensor.arlo docs]: /integrations/arlo#sensor [sensor.deconz docs]: /integrations/deconz#sensor -[sensor.duke_energy docs]: /integrations/duke_energy [sensor.efergy docs]: /integrations/efergy [sensor.fixer docs]: /integrations/fixer [sensor.gtfs docs]: /integrations/gtfs diff --git a/source/_posts/2018-08-29-release-77.markdown b/source/_posts/2018-08-29-release-77.markdown index 29f03486b5a7..4d6eb5658694 100644 --- a/source/_posts/2018-08-29-release-77.markdown +++ b/source/_posts/2018-08-29-release-77.markdown @@ -193,7 +193,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Add recent context ([@balloob] - [#15989]) - Add ecovacs component ([@OverloadUT] - [#15520]) ([ecovacs docs]) ([vacuum.ecovacs docs]) (new-platform) - Bumped NDMS2 client library to 0.0.4 to get compatible with python 3.5 ([@foxel] - [#16077]) ([device_tracker docs]) -- fritzdect change to current_power_w ([@Danielhiversen] - [#16079]) ([switch.fritzdect docs]) +- fritzdect change to current_power_w ([@Danielhiversen] - [#16079]) - Update pyhomematic to 0.1.47 ([@danielperna84] - [#16083]) ([homematic docs]) - Get user after login flow finished ([@awarecan] - [#16047]) ([auth docs]) - Upgrade pytest to 3.7.2 ([@scop] - [#16091]) @@ -480,7 +480,6 @@ Experiencing issues introduced by this release? Please report them in our [issue [sonos docs]: /integrations/sonos/ [splunk docs]: /integrations/splunk/ [switch.deconz docs]: /integrations/deconz#switch -[switch.fritzdect docs]: /integrations/fritzdect [switch.konnected docs]: /integrations/konnected#switch [switch.wemo docs]: /integrations/wemo [switch.xiaomi_miio docs]: /integrations/switch.xiaomi_miio/ diff --git a/source/_posts/2019-05-16-release-93.markdown b/source/_posts/2019-05-16-release-93.markdown index 0f14aa39063b..11b761ad1a0f 100644 --- a/source/_posts/2019-05-16-release-93.markdown +++ b/source/_posts/2019-05-16-release-93.markdown @@ -379,7 +379,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - deCONZ - Retry on BridgeBusy errors ([@Kane610] - [#23436]) ([deconz docs]) - Added option to select photoblack cartridge ([@ThaStealth] - [#23433]) ([epsonworkforce docs]) (breaking change) - Fix bad request for some IP ONVIF camera ([@GeertvanHorrik] - [#22972]) ([onvif docs]) -- Bump pyteleloisirs version ([@SNoof85] - [#23661]) ([liveboxplaytv docs]) +- Bump pyteleloisirs version ([@SNoof85] - [#23661]) - Upgrade psutil to 5.6.2 ([@fabaff] - [#23671]) ([systemmonitor docs]) - Upgrade shodan to 1.13.0 ([@fabaff] - [#23675]) ([shodan docs]) - Upgrade slacker to 0.13.0 ([@fabaff] - [#23672]) ([slack docs]) @@ -799,7 +799,6 @@ Experiencing issues introduced by this release? Please report them in our [issue [iqvia docs]: /integrations/iqvia/ [lcn docs]: /integrations/lcn/ [lifx docs]: /integrations/lifx/ -[liveboxplaytv docs]: /integrations/liveboxplaytv/ [local_file docs]: /integrations/local_file/ [locative docs]: /integrations/locative/ [logi_circle docs]: /integrations/logi_circle/ diff --git a/source/_posts/2019-10-30-release-101.markdown b/source/_posts/2019-10-30-release-101.markdown index d018de9430d2..b92b1f5692a6 100644 --- a/source/_posts/2019-10-30-release-101.markdown +++ b/source/_posts/2019-10-30-release-101.markdown @@ -567,7 +567,7 @@ The **holiday name** sensor has been renamed to **holiday**. ([@tsvi] - [#27654] - Move imports in keyboard component ([@Quentame] - [#27791]) ([keyboard docs]) - Move imports in linux_battery component ([@Quentame] - [#27789]) ([linux_battery docs]) - Move imports in ampio component ([@Bouni] - [#27788]) ([ampio docs]) -- Move imports in liveboxplaytv component ([@Quentame] - [#27790]) ([liveboxplaytv docs]) +- Move imports in liveboxplaytv component ([@Quentame] - [#27790]) - Move imports in amcrest component ([@Bouni] - [#27787]) ([amcrest docs]) - Move imports in imap + imap_email_content component ([@Quentame] - [#27793]) ([imap docs]) ([imap_email_content docs]) - Move imports in netgear_lte component ([@Quentame] - [#27777]) ([netgear_lte docs]) @@ -627,7 +627,7 @@ The **holiday name** sensor has been renamed to **holiday**. ([@tsvi] - [#27654] - Refactor the conversation integration ([@balloob] - [#27839]) ([conversation docs]) ([shopping_list docs]) - Use pre-commit in CI and tox ([@scop] - [#27743]) - Introduce new OAuth2 config flow helper ([@balloob] - [#27727]) ([somfy docs]) (breaking change) -- Move imports in fritzbox, fritz device tracker, fritzdect, fritzbox netmonitor ([@springstan] - [#27746]) ([fritz docs]) ([fritzbox docs]) ([fritzbox_netmonitor docs]) ([fritzdect docs]) +- Move imports in fritzbox, fritz device tracker, fritzdect, fritzbox netmonitor ([@springstan] - [#27746]) ([fritz docs]) ([fritzbox docs]) ([fritzbox_netmonitor docs]) - Move imports in cppm_tracker component ([@Bouni] - [#27889]) ([cppm_tracker docs]) - Move imports in concord232 component ([@Bouni] - [#27887]) ([concord232 docs]) - Move imports in comfoconnect component ([@Bouni] - [#27886]) ([comfoconnect docs]) @@ -1645,7 +1645,6 @@ The **holiday name** sensor has been renamed to **holiday**. ([@tsvi] - [#27654] [fritzbox docs]: /integrations/fritzbox/ [fritzbox_callmonitor docs]: /integrations/fritzbox_callmonitor/ [fritzbox_netmonitor docs]: /integrations/fritzbox_netmonitor/ -[fritzdect docs]: /integrations/fritzdect/ [frontend docs]: /integrations/frontend/ [frontier_silicon docs]: /integrations/frontier_silicon/ [futurenow docs]: /integrations/futurenow/ @@ -1716,7 +1715,6 @@ The **holiday name** sensor has been renamed to **holiday**. ([@tsvi] - [#27654] [linode docs]: /integrations/linode/ [linux_battery docs]: /integrations/linux_battery/ [lirc docs]: /integrations/lirc/ -[liveboxplaytv docs]: /integrations/liveboxplaytv/ [locative docs]: /integrations/locative/ [lock docs]: /integrations/lock/ [logbook docs]: /integrations/logbook/ diff --git a/source/_posts/2019-12-11-release-103.markdown b/source/_posts/2019-12-11-release-103.markdown index 165de45a94be..74857bb3f53b 100644 --- a/source/_posts/2019-12-11-release-103.markdown +++ b/source/_posts/2019-12-11-release-103.markdown @@ -842,7 +842,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Move imports to top for egardia ([@springstan] - [#29448]) ([egardia docs]) - Move imports to top for eight_sleep ([@springstan] - [#29447]) ([eight_sleep docs]) - Update eternalegypt to 0.0.11 ([@amelchio] - [#29446]) ([netgear_lte docs]) -- Move imports to top for duke_energy ([@springstan] - [#29445]) ([duke_energy docs]) +- Move imports to top for duke_energy ([@springstan] - [#29445]) - Move imports to top for dunehd ([@springstan] - [#29444]) ([dunehd docs]) - Move imports to top for dlink ([@springstan] - [#29443]) ([dlink docs]) - Move imports to top for doorbird ([@springstan] - [#29442]) ([doorbird docs]) @@ -1495,7 +1495,6 @@ Experiencing issues introduced by this release? Please report them in our [issue [doorbird docs]: /integrations/doorbird/ [dovado docs]: /integrations/dovado/ [dsmr_reader docs]: /integrations/dsmr_reader/ -[duke_energy docs]: /integrations/duke_energy/ [dunehd docs]: /integrations/dunehd/ [dwd_weather_warnings docs]: /integrations/dwd_weather_warnings/ [dyson docs]: /integrations/dyson/ diff --git a/source/_posts/2020-01-15-release-104.markdown b/source/_posts/2020-01-15-release-104.markdown index caf7b796e2e7..f396523a3e15 100644 --- a/source/_posts/2020-01-15-release-104.markdown +++ b/source/_posts/2020-01-15-release-104.markdown @@ -895,7 +895,7 @@ Make sure to fill in all fields of the issue template, that is helping us a lot! - Store capabilities and supported features in entity registry, restore registered entities on startup ([@balloob] - [#30094]) - Fix Withings leaking time zone change into other tests ([@frenck] - [#30320]) - Add local_ip component ([@issacg] - [#29973]) ([localip docs]) (new-integration) -- Update liveboxplay and pyteleloisirs ([@pschmitt] - [#30093]) ([liveboxplaytv docs]) +- Update liveboxplay and pyteleloisirs ([@pschmitt] - [#30093]) - Add homematic host port config for HMIP-only CCUs ([@sbyx] - [#30077]) ([homematic docs]) - Bump dependency for HomematicIP Cloud ([@SukramJ] - [#30319]) ([homematicip_cloud docs]) - Add support for Somfy RTS power socket and Somfy io Temperature sensor ([@rhadamantys] - [#30053]) ([tahoma docs]) @@ -1026,7 +1026,7 @@ Make sure to fill in all fields of the issue template, that is helping us a lot! - Set required_features field when registering fan services ([@Jc2k] - [#30516]) ([fan docs]) ([homekit_controller docs]) - Add Brother Printer integration ([@bieniu] - [#30359]) ([brother docs]) (new-integration) - Format all manifests with prettier ([@frenck] - [#30521]) -- Fix AVM FRITZ!DECT switch total consumption ([@Alexxander0] - [#30478]) ([fritzdect docs]) +- Fix AVM FRITZ!DECT switch total consumption ([@Alexxander0] - [#30478]) - Register 'androidtv.download' and 'androidtv.upload' services ([@JeffLIrion] - [#30086]) ([androidtv docs]) - Allow specific status codes while notifying mobile_app devices ([@rccoleman] - [#30496]) ([mobile_app docs]) - Correct integration names in manifests (A-B) ([@frenck] - [#30527]) @@ -1886,7 +1886,6 @@ Make sure to fill in all fields of the issue template, that is helping us a lot! [filter docs]: /integrations/filter/ [freebox docs]: /integrations/freebox/ [fritz docs]: /integrations/fritz/ -[fritzdect docs]: /integrations/fritzdect/ [frontend docs]: /integrations/frontend/ [geofency docs]: /integrations/geofency/ [geonetnz_quakes docs]: /integrations/geonetnz_quakes/ @@ -1938,7 +1937,6 @@ Make sure to fill in all fields of the issue template, that is helping us a lot! [light docs]: /integrations/light/ [lightwave docs]: /integrations/lightwave/ [linky docs]: /integrations/linky/ -[liveboxplaytv docs]: /integrations/liveboxplaytv/ [localip docs]: /integrations/local_ip/ [locative docs]: /integrations/locative/ [lock docs]: /integrations/lock/ diff --git a/source/_posts/2020-02-26-release-106.markdown b/source/_posts/2020-02-26-release-106.markdown new file mode 100644 index 000000000000..ae5db35adb74 --- /dev/null +++ b/source/_posts/2020-02-26-release-106.markdown @@ -0,0 +1,1128 @@ +--- +layout: post +title: "0.106: Light brightness stepping, better Safe Mode and person dialog" +description: "A great release that improves stability, reliability and a lot of helpful additions to make everything much more friendly and easier to use." +date: 2020-02-26 00:00:00 +date_formatted: "February 26, 2020" +author: Franck Nijhof +author_twitter: frenck +comments: true +categories: Release-Notes +og_image: /images/blog/2020-02-0.106/social.png +--- + + + +Well, hello!, Home Assistant Core 0.106! We are happy to see you 😃 + +A great release that improves stability, reliability and a lot of helpful additions to make everything much more friendly and easier to use. So let's dive in! + +## Safe Mode improvements + +In Home Assistant [0.105](/blog/2020/02/05/release-105/#safe-mode), we introduced Safe Mode. Our goal is to make sure Home Assistant always starts and provide you an interface to work with. No matter what. + +[@balloob] has been busy this release to improve on this feature even more, and Home Assistant is now able to overcome issues when things in the core system get into trouble and even when the Lovelace configuration isn't readable. Besides that, the way Safe Mode is presented has changed, so you instantly know you are in Safe Mode: + +

+Screenshot of Home Assistant running in Safe Mode +Screenshot of Home Assistant running in Safe Mode. +

+ +## Stepping up and down the brightness of lights + +Ever tried to make an automation to brighten or dim your lights? Or tried to hook up a remote to control the brightness of a light? +If you have, you probably know that doing that was pretty painful and involved some additional templating to get that going. + +This release just made that a lot easier. An example device automation: +

+Screenshot of a device automation with dimming lights +Screenshot of a device automation with dimming lights. +

+ +We have also added this functionality to the `light.turn_on` service. You can now change the brightness, based on the current brightness, +using the `brightness_step` (-255, 255) and `brightness_step_pct` (-100, 100) parameters. + +Good to know, when the brightness hits 0, it will turn off the light. If the light is already off, and you step the brightness up, it will turn on. +This is awesome, because if you have a rotating dimmer button (for example, an IKEA SYMFONISK), you can rotate it to change the brightness, but also turn the light on/off by just rotating it. + +## Person more info dialogs improvements + +Persons have a new more info dialog. They now show the location of the person on the map and if the person is not in a zone, you can create a zone with the current location of that person with one click. + +

+Screenshot of the new more info for a person +Screenshot of the new more info for a person. +

+ +## Entities configuration panel now shows all entities + +The entities configuration panel previously only contained entities that were uniquely identifiable by Home Assistant (they have a so-called: unique ID). However, those are not provided by all integrations of Home Assistant, confusing since the entities panel did not show all of your entities. + +In this version, we now include all entities in the panel, giving you a nice complete overview of all available entities in your system. You can't edit all entities, since that requires an entity to be uniquely identifiable. If an entity doesn't have a unique ID, the pencil icon will be striked through. + +

+Screenshot of uneditable entities in the configuration panel +Screenshot of uneditable entities in the configuration panel. +

+ +Since all entities are now available in this panel, it does not only provide you a clear overview of all the available entities; you can also make use of the "related items" feature introduced in release [0.105](/blog/2020/02/05/release-105/) to see where they are being used! + +## Updates to the developer tools panels + +The developer tools panel also got some nice little touches. In the "Info" tab you can now find a list of all integrations you are using and the logs are now aware of the integrations as well. + +Both now include links to the documentation and our GitHub issue tracker. This allows you to dive in quickly when you run into troubles with an integration. + +

+Screenshot of the integrations list and an example log message +Screenshot of the integrations list and an example log message. +

+ +## Sensor card + +Our sensor card has had a style update. We initially got the design from the [Lovelace Mini Graph Card](https://github.com/kalkih/mini-graph-card) and now updated to match the improved new look of that card. + +

+Screenshot of the updated sensor card +Screenshot of the updated sensor card. +

+ +## Other noteworthy changes + +But wait... there is more! Some other smaller noteworthy changes in this release: + +- In the zone editor that was introduced in the previous release, you can now change the location of your home zone. The radius of the home zone cannot be changed yet (we will work on that!), but you can drag the home zone on the map. + +- Also an improvement on a feature introduced in the previous release, the `state_color` option is now also available for other cards, so you can override the defaults of the cards. + +- New automations now default to device automations instead of state triggers and service calls. Device automations are so much easier and clearer to create from the UI. You can, of course, still use the old triggers and actions like you are used to. + +- In the generated Lovelace we no longer include automations and battery entities. You can find these in the automation configuration panel and the battery in the device configuration page. +If you want to have your automations and/or battery in your Lovelace UI, you can always take control and add them. + +- Scripts and scenes now have the ability to set a custom icon. Previously, you would have to create a customization to do this, now, you can just set them in your configuration. + + ```yaml + scene: + - name: Movies + icon: mdi:movie-open + entities: + light.tv_back_light: + state: on + brightness: 125 + light.ceiling: off + ``` + +## Custom cards + +Are you the creator of an awesome custom card for Lovelace? + +We have made some changes to Lovelace that might impact your custom card, so be sure to read the [blog post](https://developers.home-assistant.io/blog/2020/02/18/106-custom-card-changes.html) on the developers site about this. + +## New Integrations + +- Add Salt Fiber Box device tracker ([@bjornorri] - [#30986]) ([salt docs]) (new-integration) +- Add GDACS feed integration ([@exxamalte] - [#31235]) ([gdacs docs]) (new-integration) +- Add Minecraft Server Integration ([@elmurato] - [#30992]) ([minecraft_server docs]) (new-integration) +- Add MELCloud integration ([@vilppuvuorinen] - [#30712]) ([melcloud docs]) (new-integration) +- Dynalite Integration ([@ziv1234] - [#27841]) ([dynalite docs]) (new-integration) +- Add initial version of Vilfo Router integration ([@ManneW] - [#31177]) ([vilfo docs]) (new-integration) + +## New Platforms + +- Add totalconnect zones as binary sensors ([@austinmroczek] - [#28712]) ([totalconnect docs]) (new-platform) +- Add Tahoma lock support ([@vlebourl] - [#31311]) ([tahoma docs]) (new-platform) +- Clean up Tahoma smartlock ([@vlebourl] - [#31430]) ([tahoma docs]) (new-platform) +- Add Tado water_heater ([@michaelarnauts] - [#30095]) ([tado docs]) (breaking change) (new-platform) + +## If you need help... + +...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). + +Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template. + + + +## Breaking Changes + +- **Tesla** - Tesla default scan interval has been raised to 660 seconds from 300 seconds. This is the result of new testing showing the prior default would not allow Tesla vehicles to fall asleep. You should reevaluate your scan interval if you have changed it, to avoid battery drain. The scan interval has had the minimum lowered to 60. - ([@alandtse] - [#31194]) ([tesla docs]) + +- **Insteon** - The Insteon entity device state attributes were changed to conform to naming standards. Insteon Address is now `insteon_address` and Insteon Group is now `insteon_group`. You may need to update automations and scripts that rely on these attributes. - ([@teharris1] - [#31183]) ([insteon docs]) + +- **AVM FRITZ!DECT** _(Removed)_ - FRITZ!Dect is being removed and you should use the FRITZ!Box integration instead, which offers more features. - ([@escoand] - [#31359]) ([fritzbox docs]) + + Example YAML configuration: + + ```yaml + switch: + - platform: fritzdect + username: YOUR_USERNAME + password: YOUR_PASSWORD + ``` + + should change to + + ```yaml + fritzbox: + devices: + - host: fritz.box + username: YOUR_USERNAME + password: YOUR_PASSWORD + ``` + +- **Danfoss Air** - The names of some danfoss_air sensors include a misspelling of the word Danfoss. This typo has been corrected and you will need to adjust all occurrences respectively. - ([@KasperLK] - [#31344]) ([danfoss_air docs]) + + The following sensors are affected: + + - `dandoss_air_dial_battery` -> `danfoss_air_dial_battery` + - `dandoss_air_exhaust_fan_speed` -> `danfoss_air_exhaust_fan_speed` + - `dandoss_air_supply_fan_speed` -> `danfoss_air_supply_fan_speed` + +- **Météo-France** - Météo-France now supports the configuration flow and is now available to be added as an integration from the integrations UI! There are no more `monitored_conditions` and all sensors will be added automatically. - ([@Quentame] - [#29927]) ([meteo_france docs]) + +- **Glances** - Glances sensors are now dynamically added, which results in entities having new names, in particular sensors for mounted disks and temperature. You will need to remove the existing configuration and re-add it, and adjust for any automations you have using the new entity names. - ([@engrbm87] - [#28639]) ([glances docs]) + +- **Service Calls** - Service calls that reference non-existing entities will now log a warning instead of silently being omitted. If you are using a template and want to select no entities, you need to pass `none` instead. The TTS integration will no longer target all media players if no entity ID passed in. You need to specify `all` instead. - ([@balloob] - [#31427]) + +- **Light** - It is no longer allowed to pass both `brightness` and `brightness_pct` to `light.turn_on` service. Previously passing both would have used `brightness_pct`. - ([@balloob] - [#31452]) ([light docs]) + +- **DSMR** - Added Belgian meter. Some DSMR sensors have been renamed to align with DSMR specifications. "Power" sensors are now properly "Energy" sensors and those which were previously using "low" and "normal" descriptions now use "tarif 1" and "tarif 2", respectively. - ([@dupondje] - [#30121]) ([dsmr docs]) + + Example of sensor changes: + + - `Power Consumption (low)` -> `Energy Consumption (tarif 1)` + - `Power Consumption (normal)` -> `Energy Consumption (tarif 2)` + +- **Orange Livebox Play TV** - The Orange Livebox Play TV integration has been removed. A change to the site scraped with this integration has changed, causing the integration to break. This integration violated our design decisions and is therefore removed. - ([@frenck] - [#31525]) (breaking change) + +- **Core** - Only administrator users can stop or restart Home Assistant. - ([@balloob] - [#31509]) ([homeassistant docs]) + +- **Sure Petcare** - Sure Petcare supports new features and has improved existing features. As a result, you will want to note that `household_id` has been removed from configuration options as it is no longer needed. - ([@benleb] - [#31437]) ([surepetcare docs]) + + Example YAML configuration: + + ```yaml + surepetcare: + username: YOUR_SURE_PETCARE_LOGIN + password: YOUR_SURE_PETCARE_PASSWORD + feeders: [12345, 67890] + flaps: [13579] + pets: [24680] + ``` + +- **Frontend** - `frontend.set_theme` and `frontend.reload_themes` now require admin access. This will not break automations that set themes because those are run with admin access. Also, a `themes_updated event` no longer contains all theme data. - ([@balloob] - [#31654]) ([frontend docs]) + +- **Modbus** - The Modbus Binary Sensor can now read data from discrete inputs. A new variable `input_type` was added to define if you want to read from `coil` or `discrete_input`. Coil is the default option. - ([@vzahradnik] - [#30004]) ([modbus docs]) + + Example YAML configuration: + + ```yaml + binary_sensor: + - platform: modbus + scan_interval: 10 + inputs: + - name: Sensor1 + hub: hub1 + slave: 1 + address: 100 + input_type: discrete_input + ``` + +- **Tado** - Adding support of multiple Tado accounts has changed the unique ID generation of sensor and climate devices, and now includes the ID of the home. + + In addition, support for water heater zones has been added. Tado hot water zones with temperature control previously created a climate entity, e.g., `climate.hot_water`, and these will be replaced by a `water_heater.hot_water` entity. This change is not breaking for hot water zones without temperature control as they do not have a climate zone. + + ([@gorynychzmey] - [#31527]) ([@michaelarnauts] - [#30095]) ([tado docs]) + + Example YAML configuration: + + ```yaml + tado: + - username: user1@example.com + password: !secret tado_pwd1 + - username: user2@example.com + password: !secret tado_pwd2 + ``` + + If you have only one account this configuration will also work: + + ```yaml + tado: + username: user@example.com + password: !secret tado_pwd + ``` + +- **UniFi** - Changing tracking settings will no longer disable entities but will remove them completely from the state machine and entity registry. The SSID filter will now mark all wireless clients as `not_home` if they are connected to SSIDs that are not a part of the filter. - ([@Kane610] - [#31762]) ([unifi docs]) + +- **Rest** - Many devices continue to use XML for RESTful APIs. This change implements converting XML output to JSON via `xmltojson` so it can work with the existing rest sensor component. + + `xmltojson` tags may be confusing; if you are not familiar with the conversion, please use the [xmltodict](https://xmltodict-debugger.glitch.me/) tool created by [@balloob] to identify the tags to be used to parse the resulting JSON. + + As the attributes that usually need to be scraped are deeper in the document, support for passing in a template to find the JSON attributes has been added. JSON APIs that do not have their attributes at the top level can also benefit from this change. - ([@bdraco] - [#31809]) ([rest docs]) + + Example YAML configuration: + + ```yaml + sensor: + - platform: rest + resource: http://192.168.1.20/status.xml + authentication: basic + username: username + password: password + json_attributes: + - "htstatus" + - "poolsp" + - "spasp" + - "pooltemp" + - "spatemp" + - "airtemp" + json_attributes_path: "$.response.temp" + value_template: "{{ value_json.response.temp.poolsp }}" + - platform: rest + resource: http://192.168.1.5/status.xml + json_attributes: + - "led0" + - "led1" + - "user0" + - "temp0" + - "btn0" + json_attributes_path: "$.response" + value_template: "OK" + ``` + +- **GreenEye Monitor (GEM)** - Greeneye Monitor temperature readings are now correct (previously they would report as twice the actual value). If you've compensated for this in your dashboards or displays, you'll need to undo that compensation with this release. - ([@jkeljo] - [#31896]) ([greeneye_monitor docs]) + +- **Duke Energy** - The Duke Energy integration has been removed. The website of Duke Energy changed, causing the integration to break because it relied on web scraping, which is no longer allowed to be used. - ([@frenck] - [#31921]) (breaking change) + +- **deCONZ** - deCONZ will no longer change entities to being disabled when using the integration configuration options but rather remove them completely from the state machine. Enabling the option will load all relevant entities again. - ([@Kane610] - [#31661]) ([deconz docs]) + +- **Ring** - All Ring accounts require two-factor authentication. This means that it is no longer possible to configure it via YAML as this cannot support 2FA. - ([@balloob] - [#32039]) ([ring docs]) (breaking change) (beta fix) + +- **Hue** - The `filename` option from the Hue bridge configuration has been deprecated in 0.104 and now removed. - ([@frenck] - [#32027]) ([hue docs]) (breaking change) (beta fix) + +## Beta Fixes + +- Only check frontend for safe mode if frontend wanted to be loa… ([@balloob] - [#31969]) (beta fix) +- Fix Plex sensor title handling ([@jjlawren] - [#31973]) ([plex docs]) (beta fix) +- Bump ZHA quirks and add skip configuration support ([@dmulcahey] - [#31982]) ([zha docs]) (beta fix) +- Fix bug in ecobee integration ([@marthoc] - [#32008]) ([ecobee docs]) (beta fix) +- Fix recursion bug ([@balloob] - [#32009]) ([homeassistant docs]) (beta fix) +- Don't return coroutine in DLNA/DMR service handler ([@tsvi] - [#32011]) ([dlna_dmr docs]) (beta fix) +- Bump pyatmo to 3.2.4 ([@cgtobi] - [#32018]) ([netatmo docs]) (beta fix) +- Add missing name to logging in DataUpdateCoordinator ([@MatthewFlamm] - [#32023]) (beta fix) +- Add minimal version contrain to urllib3 ([@frenck] - [#32031]) (beta fix) +- Updated frontend to 20200220.0 ([@balloob] - [#32033]) ([frontend docs]) (beta fix) +- Enhance Dynalite Integration after review ([@ziv1234] - [#31760]) ([dynalite docs]) (beta fix) +- Remove YAML config from Ring integration ([@balloob] - [#32039]) ([ring docs]) (breaking change) (beta fix) +- Fix i/o in august camera async image update ([@bdraco] - [#32044]) ([august docs]) (beta fix) +- Updated frontend to 20200220.1 ([@balloob] - [#32046]) ([frontend docs]) (beta fix) +- Bump brother to 0.1.6 ([@bieniu] - [#32054]) ([brother docs]) (beta fix) +- Add additional logging to rest sensor ([@arsaboo] - [#32068]) ([rest docs]) (beta fix) +- Add ConfigEntryNotReady exception to Plex ([@jjlawren] - [#32071]) ([plex docs]) (beta fix) +- Fix Plugwise climate issues for new firmware #32080 ([@CoMPaTech] - [#32109]) ([plugwise docs]) (beta fix) +- 0.106 Beta - provide correctly formatted placeholders ([@kit-klein] - [#32119]) ([konnected docs]) (beta fix) +- Properly define depenency for Scrape integration on Rest integ… ([@balloob] - [#32136]) ([scrape docs]) (beta fix) +- Fix vizio bug to use 'get' to get volume_step since it is optional ([@raman325] - [#32151]) ([vizio docs]) (beta fix) +- Improve Vizio fix to avoid KeyError ([@raman325] - [#32163]) ([vizio docs]) (beta fix) +- Dedup and clarify imported konnected config flows ([@kit-klein] - [#32138]) ([konnected docs]) (beta fix) +- Bump python-tado to 0.3.0 ([@michaelarnauts] - [#32186]) ([tado docs]) (beta fix) +- Updated frontend to 20200220.3 ([@bramkragten] - [#32189]) ([frontend docs]) (beta fix) +- Fix Arlo doing I/O in event loop ([@balloob] - [#32190]) ([arlo docs]) (beta fix) +- Bump socialbladeclient to 0.5 ([@pinkywafer] - [#32191]) ([socialblade docs]) (beta fix) +- Fix error where SimpliSafe websocket would disconnect and not reconnect ([@bachya] - [#32199]) ([simplisafe docs]) (beta fix) +- Updated frontend to 20200220.4 ([@bramkragten] - [#32205]) ([frontend docs]) (beta fix) +- Remove deprecated Hue options (fixes CI) ([@frenck] - [#32027]) ([hue docs]) (breaking change) (beta fix) + +## All changes + +- Change scan_interval defaults for Tesla ([@alandtse] - [#31194]) ([tesla docs]) (breaking change) +- Removes I/O from linky tests ([@balloob] - [#31299]) ([linky docs]) +- Reorganize insteon code ([@teharris1] - [#31183]) ([insteon docs]) (breaking change) +- Upgrade pre-commit to 2.0.1 ([@frenck] - [#31308]) +- Add opening and closing states to MQTT covers ([@rickvdl] - [#31259]) ([mqtt docs]) +- Bump pytrafikverket to 0.1.6.1 ([@endor-force] - [#30697]) ([trafikverket_train docs]) ([trafikverket_weatherstation docs]) +- Update media_player and add tests to qualify vizio integration for platinum quality score ([@raman325] - [#31187]) ([vizio docs]) +- Register on HA stop event to gracefully shutdown HomematicIP Cloud connections ([@SukramJ] - [#31289]) ([homematicip_cloud docs]) +- Axis - config flow use new helper functions ([@Kane610] - [#31286]) ([axis docs]) +- UniFi - Try to discover local controller ([@Kane610] - [#31326]) ([unifi docs]) +- Bump pytest to 5.3.5 ([@frenck] - [#31327]) +- Remove Throttle on async_setup and bump pyvizio version ([@raman325] - [#31337]) ([vizio docs]) +- Fix typos found by codespell ([@cclauss] - [#31243]) +- UniFi integration move to push messaging ([@Kane610] - [#31086]) ([unifi docs]) +- Axis - Use core to start component tests ([@Kane610] - [#31328]) +- drop fritzdect ([@escoand] - [#31359]) (breaking change) +- Let core resolve entity_id for lastfm from username ([@inverse] - [#31280]) ([lastfm docs]) +- Add totalconnect zones as binary sensors ([@austinmroczek] - [#28712]) ([totalconnect docs]) (new-platform) +- Add Tahoma lock support ([@vlebourl] - [#31311]) ([tahoma docs]) (new-platform) +- Run mypy through a pyenv/virtualenv enabler wrapper script ([@scop] - [#30922]) +- Remove hour delay before checking for updates ([@balloob] - [#31368]) ([updater docs]) +- Add play, pause, previous and next track to kef ([@basnijholt] - [#31373]) ([kef docs]) +- Replace unmaintained BraviaRC backend with new fork: ([@dcnielsen90] - [#31234]) ([braviatv docs]) ([braviatv docs]) ([braviatv docs]) +- deCONZ - Improve config flow logging ([@Kane610] - [#31381]) ([deconz docs]) +- UniFi - Log better information than a backtrace when poor switch data is involved ([@Kane610] - [#31382]) ([unifi docs]) +- Add temperature and humidity to xiaomi miio air quality monitor ([@fierland] - [#31287]) ([xiaomi_miio docs]) +- Support multiple attachments in signal messenger integration ([@bbernhard] - [#31141]) ([signal_messenger docs]) +- Upgrade importlib-metadata to 1.5.0 ([@fabaff] - [#31390]) +- Upgrade sendgrid to 6.1.1 ([@fabaff] - [#31394]) ([sendgrid docs]) +- Upgrade holidays to 0.10.1 ([@fabaff] - [#31392]) ([workday docs]) +- Upgrade discord.py to 1.3.1 ([@fabaff] - [#31391]) ([discord docs]) +- Upgrade praw to 6.5.1 ([@fabaff] - [#31393]) ([reddit docs]) +- Add unique_id to essent sensors ([@vanbalken] - [#31408]) ([essent docs]) +- Catch device not found in device automations ([@balloob] - [#31401]) ([device_automation docs]) +- Upgrade numpy to 1.18.1 ([@fabaff] - [#31411]) ([iqvia docs]) ([opencv docs]) ([tensorflow docs]) ([trend docs]) +- Update pyhomematic to 0.1.64 ([@danielperna84] - [#31406]) ([homematic docs]) +- Add Salt Fiber Box device tracker ([@bjornorri] - [#30986]) ([salt docs]) (new-integration) +- Upgrade alpha_vantage to 2.1.3 ([@fabaff] - [#31388]) ([alpha_vantage docs]) +- Search specific train in Nederlandse Spoorwegen ([@gurbyz] - [#28898]) ([nederlandse_spoorwegen docs]) +- Enable SUPPORT_VOLUME_STEP ([@Cloudenius] - [#31023]) ([pioneer docs]) +- deCONZ - Library cleanup ([@Kane610] - [#31410]) ([deconz docs]) +- Streamline SimpliSafe data and token management ([@bachya] - [#31324]) ([simplisafe docs]) +- Replace cmp option with eq and order ([@springstan] - [#31423]) +- Bump pyvizio version and add additional device info ([@raman325] - [#31417]) ([vizio docs]) +- Pass correct config to updater ([@balloob] - [#31428]) ([updater docs]) +- Add guard clause for discovery_info to tahoma platforms ([@vlebourl] - [#31434]) ([tahoma docs]) +- Add color to light template ([@tetienne] - [#31435]) ([template docs]) +- Clean up Tahoma smartlock ([@vlebourl] - [#31430]) ([tahoma docs]) (new-platform) +- Fix issue with Notion dispatcher topic ([@bachya] - [#31441]) ([notion docs]) +- Fix issue with IQVIA dispatcher topic ([@bachya] - [#31440]) ([iqvia docs]) +- Fix issue with WWLLN dispatcher topic ([@bachya] - [#31442]) ([wwlln docs]) +- Fix issues with Ambient PWS dispatcher topic ([@bachya] - [#31439]) ([ambient_station docs]) +- Add missing await to HMIPC ([@SukramJ] - [#31415]) ([homematicip_cloud docs]) +- Add timeout attribute for send files ([@Konsts] - [#31379]) ([telegram_bot docs]) +- Fix misspelled sensor names ([@KasperLK] - [#31344]) ([danfoss_air docs]) (breaking change) +- Update StepSpeaker and Speaker interfaces in Alexa ([@ochlocracy] - [#31444]) ([alexa docs]) +- Remove Alexa.InputController from devices without supported inputs in Alexa ([@ochlocracy] - [#31450]) ([alexa docs]) +- Bump pyvizio version for bug fixes ([@raman325] - [#31453]) ([vizio docs]) +- Add config flow to Meteo-France ([@Quentame] - [#29927]) ([meteo_france docs]) (breaking change) +- Log warning when entities referenced in service call not found ([@balloob] - [#31427]) (breaking change) +- Use entity.async_request_call in service helper ([@balloob] - [#31454]) +- Add brightness_step to light.turn_on ([@balloob] - [#31452]) ([light docs]) (breaking change) +- deCONZ - Revert from using disabled_by when setting options ([@Kane610] - [#31446]) ([deconz docs]) +- Add belgian meter and rename some dsmr sensors ([@dupondje] - [#30121]) ([dsmr docs]) (breaking change) +- Add GDACS feed integration ([@exxamalte] - [#31235]) ([gdacs docs]) (new-integration) +- Update link when IO in event loop ([@balloob] - [#31519]) +- Remove of liveboxplaytv integration (ADR0004) ([@frenck] - [#31525]) (breaking change) +- Updated the provider name to blockchain.com ([@P-Verbrugge] - [#31534]) ([blockchain docs]) +- Changed website name to blockchain.com ([@P-Verbrugge] - [#31528]) ([bitcoin docs]) +- Update the update coordinator API to make it easier to use ([@balloob] - [#31471]) ([hue docs]) +- Make amcrest integration more robust ([@pnbruckner] - [#30843]) ([amcrest docs]) +- Skip updates when Plex client viewing photos ([@jjlawren] - [#31556]) ([plex docs]) +- Unregister listener for stats sensor with max_age ([@azogue] - [#31580]) ([statistics docs]) +- Add Minecraft Server Integration ([@elmurato] - [#30992]) ([minecraft_server docs]) (new-integration) +- Extract services from init.py for HomematicIP Cloud ([@SukramJ] - [#31376]) ([homematicip_cloud docs]) +- Fix exceptions when using newer Samsung TVs ([@escoand] - [#31602]) ([samsungtv docs]) +- Clean up core services ([@balloob] - [#31509]) ([group docs]) ([homeassistant docs]) (breaking change) +- Bump denonavr to 0.7.12 ([@scarface-4711] - [#31629]) ([denonavr docs]) +- Actually enable alarmdecoder to see open/close state of bypassed RF zones when armed ([@melyux] - [#31426]) ([alarmdecoder docs]) +- Use slug in ping device tracker config validation ([@springstan] - [#31329]) ([ifttt docs]) ([media_extractor docs]) ([onewire docs]) ([ping docs]) +- Handle missing next train from NS ([@YarmoM] - [#31626]) ([nederlandse_spoorwegen docs]) +- Remove stray debug from unifi integration ([@CHAZICLE] - [#31634]) ([unifi docs]) +- Add Abode water valve support ([@shred86] - [#30635]) ([abode docs]) +- Device tracker entities based on GPS should always publish updates ([@balloob] - [#31551]) ([device_tracker docs]) +- Hue to retry if hub errors out ([@balloob] - [#31616]) ([hue docs]) +- Bump insteonplm to 0.16.7 ([@teharris1] - [#31645]) ([insteon docs]) +- Only auth on enter_learning in response to errors for broadlink ([@bmfurtado] - [#27341]) ([broadlink docs]) +- Add unique ID to edimax switches ([@andersonshatch] - [#27984]) ([edimax docs]) +- Added zone type Technical as power. ([@crallian] - [#31611]) ([spc docs]) +- Add recorder vars db_max_retries and db_retry_wait ([@TechnicallyJoe] - [#31561]) ([recorder docs]) +- Sure Petcare new features various improvements ([@benleb] - [#31437]) ([surepetcare docs]) (breaking change) +- Add ZHA Texas Instruments CC device support ([@sanyatuning] - [#31621]) ([zha docs]) +- ZHA tests refactoring ([@Adminiuga] - [#31682]) ([zha docs]) +- Clean up frontend services and events ([@balloob] - [#31654]) ([frontend docs]) (breaking change) +- Add brightness light device actions ([@balloob] - [#31567]) ([device_automation docs]) ([light docs]) +- Fix Météo-France I/O while testing ([@Quentame] - [#31695]) ([meteo_france docs]) +- Bump velbus version + load velbus module names into device info ([@Cereal2nd] - [#31664]) ([velbus docs]) +- Vicare water_heater set_temperature fix and bump PyVicare to 0.1.7 ([@oischinger] - [#31672]) ([vicare docs]) +- Add MELCloud integration ([@vilppuvuorinen] - [#30712]) ([melcloud docs]) (new-integration) +- Dynalite Integration ([@ziv1234] - [#27841]) ([dynalite docs]) (new-integration) +- Extend Modbus binary sensor to support discrete inputs ([@vzahradnik] - [#30004]) ([modbus docs]) (breaking change) +- Fix Evohome checking override duration ([@eavanvalkenburg] - [#31697]) ([evohome docs]) +- For vizio integration, set unique ID early to prevent multiple zeroconf discovery items for the same device to appear ([@raman325] - [#31686]) ([vizio docs]) +- Use latest version of python-pushover (forked) to fix issue with diff… ([@SoftXperience] - [#31647]) ([pushover docs]) +- Add Glances sensors dynamically ([@engrbm87] - [#28639]) ([glances docs]) +- Adjust entity slow warning for custom component ([@balloob] - [#31711]) +- Limit derivative test ([@balloob] - [#31717]) +- Add support of multiple Tado accounts ([@gorynychzmey] - [#31527]) ([tado docs]) (breaking change) +- Disable Hue groups for new setups ([@balloob] - [#31713]) ([hue docs]) +- Significantly reduce the number of API calls that the august integration ([@bdraco] - [#31685]) ([august docs]) +- Entity Registry to store and restore name/icon ([@balloob] - [#31714]) ([config docs]) +- Support Konnected Pro alarm panel, embrace async, leverage latest HA features/architecture ([@kit-klein] - [#30894]) ([konnected docs]) +- Fix set volume level ([@maxcanna] - [#31731]) ([frontier_silicon docs]) +- Update Modbus service manifest ([@vzahradnik] - [#31727]) +- pyipma version bump ([@dgomes] - [#31739]) ([ipma docs]) +- Read door open/close events from the activity log. ([@bdraco] - [#31732]) ([august docs]) +- Improve Huawei LTE timeouting/stalling request behavior ([@scop] - [#31710]) ([huawei_lte docs]) +- Refresh the august access token when needed ([@bdraco] - [#31735]) ([august docs]) +- Add new webhook action to allow enabling encryption in an exis… ([@robbiet480] - [#31743]) ([mobile_app docs]) +- Use set for dependency lookup in hassfest ([@balloob] - [#31746]) +- Fix spelling of ecobee in manifest ([@frenck] - [#31751]) ([ecobee docs]) +- Add availability status to Modbus entities and improve error handling ([@vzahradnik] - [#31073]) ([modbus docs]) +- Fix moving average test for discrete derivative sensor ([@basnijholt] - [#31750]) +- Improve Plex media_player entity naming ([@jjlawren] - [#31755]) ([plex docs]) +- Add initial version of Vilfo Router integration ([@ManneW] - [#31177]) ([vilfo docs]) (new-integration) +- Whitelist shopping list updated event ([@balloob] - [#31742]) ([websocket_api docs]) +- Add device name to sensor name for mobile_app ([@dshokouhi] - [#31756]) ([mobile_app docs]) +- ZHA tests refactoring ([@Adminiuga] - [#31744]) ([zha docs]) +- Updated frontend to 20200212.0 ([@bramkragten] - [#31772]) ([frontend docs]) +- Cleanup August activity processing and add tests ([@bdraco] - [#31774]) ([august docs]) +- Fix spelling of VIVOTEK ([@frenck] - [#31773]) ([vivotek docs]) +- Fix spelling of apcupsd in manifest ([@frenck] - [#31770]) ([apcupsd docs]) +- Fix spelling of AVM FRITZ!Box in manifest ([@frenck] - [#31765]) ([fritz docs]) +- Implement PlatformNotReady to Linky + fix TypeError ([@Quentame] - [#31768]) ([linky docs]) +- UniFi - Change handling of updated options ([@Kane610] - [#31762]) ([unifi docs]) (breaking change) +- Rename codecov so it will be picked up ([@balloob] - [#31775]) +- Fix spelling of ASUSWRT in manifest ([@frenck] - [#31764]) ([asuswrt docs]) +- Update to version 2.6 of ihcsdk ([@dingusdk] - [#31789]) ([ihc docs]) +- Spelling: Config(uration) ([@frenck] - [#31782]) +- Add and use bunch of data size and rate related constants ([@scop] - [#31781]) +- Fix spelling of NETGEAR and CalDAV in manifests ([@frenck] - [#31790]) ([caldav docs]) ([netgear docs]) ([netgear_lte docs]) +- Write state if schedule update state from async context ([@balloob] - [#31758]) ([ps4 docs]) +- Add support for real-time data from SimpliSafe ([@bachya] - [#31424]) ([simplisafe docs]) +- Update onewire component ([@MrDadoo] - [#31419]) ([onewire docs]) +- Add multi select support to config validation and to custom serializer ([@Kane610] - [#31798]) +- Catch unexpected exceptions when validating config ([@balloob] - [#31795]) +- Use time.monotonic instead of time.time where appropriate ([@scop] - [#31780]) ([bme680 docs]) ([doods docs]) ([maxcube docs]) ([netatmo docs]) ([proxmoxve docs]) ([verisure docs]) +- Add Home Assistant Companion to manifest.json so we can sugges… ([@robbiet480] - [#31808]) ([frontend docs]) +- Update Plex connection class to push ([@jjlawren] - [#31806]) ([plex docs]) +- Remove force from async_schedule_update_ha_state for HMIPC ([@SukramJ] - [#31796]) ([homematicip_cloud docs]) +- Add summary attribtue for currently playing media ([@jjlawren] - [#31803]) ([plex docs]) +- Fix swap of min and max default values in Modbus climate ([@vzahradnik] - [#31801]) ([modbus docs]) +- Add device registry support for Plex ([@jjlawren] - [#31797]) ([plex docs]) +- update directv to directpy==0.6 ([@ctalkington] - [#31812]) ([directv docs]) ([directv docs]) +- Speed up tests of HomematicIP Cloud ([@SukramJ] - [#31810]) +- Allow hourly forecast in IPMA ([@abmantis] - [#30979]) ([ipma docs]) +- Limit translations_develop to an integration ([@balloob] - [#31804]) +- Annotate more async functions correctly ([@balloob] - [#31802]) ([coolmaster docs]) ([esphome docs]) ([homekit_controller docs]) ([mysensors docs]) ([sonos docs]) ([starline docs]) ([upnp docs]) +- Fire HASS events on SimpliSafe events ([@bachya] - [#31811]) ([simplisafe docs]) +- Change multi_select config validator to class ([@Kane610] - [#31828]) +- Remove energy sensor from incompatible Ata devices ([@vilppuvuorinen] - [#31831]) ([melcloud docs]) +- Add turn_on_action configuration variable ([@maxcanna] - [#31792]) ([lg_netcast docs]) +- Bump pillow to 7.0 ([@robmarkcole] - [#31847]) ([doods docs]) ([proxy docs]) ([qrcode docs]) ([seven_segments docs]) ([tensorflow docs]) +- Simplify missing Garmin Connect data handling, mark entities un/available ([@scop] - [#31718]) ([garmin_connect docs]) +- Add Tado water_heater ([@michaelarnauts] - [#30095]) ([tado docs]) (breaking change) (new-platform) +- Revert "Check netgear device_tracker link_rate to ensure device is connected" ([@MartinHjelmare] - [#31855]) ([netgear docs]) +- Helpers typing improvements ([@scop] - [#31865]) +- Improve media name detection on lg_netcast ([@maxcanna] - [#31863]) ([lg_netcast docs]) +- update pyTibber libary, add signal strength for Pulse and watty ([@Danielhiversen] - [#31851]) ([tibber docs]) +- Bump Apprise version to v0.8.4 ([@caronc] - [#31868]) ([apprise docs]) +- Add support for displaying Daf Yomi ([@moshekaplan] - [#30628]) ([jewish_calendar docs]) +- Use new custom_serializer ([@jjlawren] - [#31871]) ([config docs]) +- Fix CalDAV recurring events ([@PhilRW] - [#31805]) ([caldav docs]) +- Convert august to async so a token refresh lock can be used ([@bdraco] - [#31848]) ([august docs]) +- Add rainforest_eagle support for legacy hardware ([@jcalbert] - [#28082]) ([rainforest_eagle docs]) +- Support XML conversion for RESTful sensors ([@bdraco] - [#31809]) ([rest docs]) (breaking change) +- Fix mikrotik detecting capsman support ([@Marco98] - [#31819]) ([mikrotik docs]) +- Adjust tests after speed up to restore coverage for HomematicIP Cloud ([@SukramJ] - [#31836]) ([homematicip_cloud docs]) +- Upgrade python-velbus to 2.0.41 ([@Cereal2nd] - [#31875]) +- Type hint improvements ([@scop] - [#31876]) ([elgato docs]) ([esphome docs]) ([iaqualink docs]) ([nsw_rural_fire_service_feed docs]) ([remote docs]) ([wled docs]) +- Bump adafruit-blinka and adafruit-circuitpython-mcp230xx ([@jardiamj] - [#31845]) ([mcp23017 docs]) +- Update nederlandse_spoorwegen to properly handle punctuality ([@Squixx] - [#31741]) ([nederlandse_spoorwegen docs]) +- Add timestamp to lg_netcast media_image_url to update image correctly ([@laszlojakab] - [#30933]) ([lg_netcast docs]) +- Clean up netgear device tracker ([@MartinHjelmare] - [#31861]) ([netgear docs]) +- Activate Stale bot for PR's ([@frenck] - [#31837]) +- Fix check_real location guard ([@MartinHjelmare] - [#31890]) +- Clean soundtouch ([@MartinHjelmare] - [#31888]) ([soundtouch docs]) +- Fix bugs in greeneye_monitor voltage reporting ([@jkeljo] - [#31895]) ([greeneye_monitor docs]) +- Upgrade greeneye_monitor to 2.0 ([@jkeljo] - [#31896]) ([greeneye_monitor docs]) (breaking change) +- prevent dev_id being permanently assigned as config_name ([@mueslo] - [#31886]) ([device_tracker docs]) +- Upgrade youtube_dl to version 2020.02.16 ([@BKPepe] - [#31905]) ([media_extractor docs]) +- Upgrade aiohue ([@balloob] - [#31903]) ([hue docs]) +- Add POD support, sleep fitness sensor to EightSleep ([@mezz64] - [#31874]) ([eight_sleep docs]) +- Add logger name to system log ([@balloob] - [#31902]) ([system_log docs]) +- Allow specifying an icon for a scene ([@balloob] - [#31898]) ([homeassistant docs]) +- Add icons to scripts ([@balloob] - [#31899]) ([script docs]) +- Bump dependency to 0.10.17 for HomematicIP Cloud ([@SukramJ] - [#31911]) ([homematicip_cloud docs]) +- Start safe mode if invalid core conf ([@balloob] - [#31904]) +- Hue Group features based on the bulbs in it ([@guimaraes13] - [#31897]) ([hue docs]) +- Updated frontend to 20200212.0 ([@bramkragten] - [#31912]) ([frontend docs]) +- Provide user consumable errors when lock operations fail ([@bdraco] - [#31864]) ([august docs]) +- Bump simplisafe-python to 8.1.1 ([@bachya] - [#31915]) ([simplisafe docs]) +- Remove duke_energy integration (ADR-0004) ([@frenck] - [#31921]) (breaking change) +- Updated frontend to 20200217.0 ([@bramkragten] - [#31922]) ([frontend docs]) +- Add async_unload_entry to iCloud ([@Quentame] - [#31917]) ([icloud docs]) +- Add an options flow to demo ([@bramkragten] - [#31920]) ([demo docs]) +- Bump aio_geojson_geonetnz_quakes to 0.12 ([@exxamalte] - [#31930]) ([geonetnz_quakes docs]) +- Fix translations_develop ([@austinmroczek] - [#31942]) +- Bump aio_geojson_nsw_rfs_incidents to 0.3 ([@exxamalte] - [#31941]) ([nsw_rural_fire_service_feed docs]) +- Bump pyps4-2ndscreen to 1.0.7 ([@ktnrg45] - [#31943]) ([ps4 docs]) +- Add pigpio remote functionality ([@Poeschl] - [#31667]) ([rpi_gpio_pwm docs]) +- Fix entity registry not saving name/icon ([@balloob] - [#31932]) +- Untag discovery as an allowed dependency ([@balloob] - [#31934]) ([apple_tv docs]) ([freebox docs]) ([octoprint docs]) ([roku docs]) ([sabnzbd docs]) ([xiaomi_aqara docs]) ([yeelight docs]) +- Read Modbus climate current temp from input register ([@vzahradnik] - [#31944]) ([modbus docs]) +- Add support for SimpliSafe system notifications ([@bachya] - [#31936]) ([simplisafe docs]) +- Add Twitch subscription and additional stats ([@Poeschl] - [#31122]) ([twitch docs]) +- Extend safe mode ([@balloob] - [#31927]) ([zeroconf docs]) +- Do not use a set for hvac modes in SmartThings ([@balloob] - [#31959]) ([smartthings docs]) +- Audit state handling off august bridges and sensors ([@bdraco] - [#31935]) ([august docs]) +- deCONZ - Directly reflect changes to config entry options ([@Kane610] - [#31661]) ([deconz docs]) (breaking change) +- Upgrade pre-commit to 2.1.0 ([@frenck] - [#31962]) +- Fix pre-commit hook issue on Windows ([@teharris1] - [#31648]) +- Add support for MQTT device triggers ([@emontnemery] - [#31679]) ([device_automation docs]) ([mqtt docs]) +- UniFi config option SSID filter ([@Kane610] - [#31842]) ([unifi docs]) +- deConz - Use proper mechanisms for options flow tests ([@Kane610] - [#31965]) +- Optimize find bad JSON data ([@balloob] - [#31963]) +- Add options to ignore shared/managed Plex clients ([@jjlawren] - [#31738]) ([plex docs]) +- Fix Plex naming and devices for misbehaving clients ([@jjlawren] - [#31970]) ([plex docs]) +- Upgrade to bimmer_connected 0.7.1 to fix US and China access ([@gerard33] - [#31968]) ([bmw_connected_drive docs]) +- Modbus remove unnecessary get calls ([@vzahradnik] - [#31966]) ([modbus docs]) +- Bump vallox-websocket-api to 2.4.0 ([@springstan] - [#31913]) ([vallox docs]) +- Add new devices to HomematicIP Cloud ([@SukramJ] - [#31914]) ([homematicip_cloud docs]) +- Add shutter group to HomematicIP Cloud ([@SukramJ] - [#31916]) ([homematicip_cloud docs]) +- Fix test for HMIPC ([@SukramJ] - [#31981]) +- Updated frontend to 20200219.0 ([@bramkragten] - [#31979]) ([frontend docs]) +- Only check frontend for safe mode if frontend wanted to be loa… ([@balloob] - [#31969]) (beta fix) +- Fix Plex sensor title handling ([@jjlawren] - [#31973]) ([plex docs]) (beta fix) +- Bump ZHA quirks and add skip configuration support ([@dmulcahey] - [#31982]) ([zha docs]) (beta fix) +- Fix bug in ecobee integration ([@marthoc] - [#32008]) ([ecobee docs]) (beta fix) +- Fix recursion bug ([@balloob] - [#32009]) ([homeassistant docs]) (beta fix) +- Don't return coroutine in DLNA/DMR service handler ([@tsvi] - [#32011]) ([dlna_dmr docs]) (beta fix) +- Bump pyatmo to 3.2.4 ([@cgtobi] - [#32018]) ([netatmo docs]) (beta fix) +- Add missing name to logging in DataUpdateCoordinator ([@MatthewFlamm] - [#32023]) (beta fix) +- Add minimal version contrain to urllib3 ([@frenck] - [#32031]) (beta fix) +- Updated frontend to 20200220.0 ([@balloob] - [#32033]) ([frontend docs]) (beta fix) +- Enhance Dynalite Integration after review ([@ziv1234] - [#31760]) ([dynalite docs]) (beta fix) +- Remove YAML config from Ring integration ([@balloob] - [#32039]) ([ring docs]) (breaking change) (beta fix) +- Fix i/o in august camera async image update ([@bdraco] - [#32044]) ([august docs]) (beta fix) +- Updated frontend to 20200220.1 ([@balloob] - [#32046]) ([frontend docs]) (beta fix) +- Bump brother to 0.1.6 ([@bieniu] - [#32054]) ([brother docs]) (beta fix) +- Add additional logging to rest sensor ([@arsaboo] - [#32068]) ([rest docs]) (beta fix) +- Add ConfigEntryNotReady exception to Plex ([@jjlawren] - [#32071]) ([plex docs]) (beta fix) +- Fix Plugwise climate issues for new firmware #32080 ([@CoMPaTech] - [#32109]) ([plugwise docs]) (beta fix) +- 0.106 Beta - provide correctly formatted placeholders ([@kit-klein] - [#32119]) ([konnected docs]) (beta fix) +- Properly define depenency for Scrape integration on Rest integ… ([@balloob] - [#32136]) ([scrape docs]) (beta fix) +- Fix vizio bug to use 'get' to get volume_step since it is optional ([@raman325] - [#32151]) ([vizio docs]) (beta fix) +- Improve Vizio fix to avoid KeyError ([@raman325] - [#32163]) ([vizio docs]) (beta fix) +- Dedup and clarify imported konnected config flows ([@kit-klein] - [#32138]) ([konnected docs]) (beta fix) +- Bump python-tado to 0.3.0 ([@michaelarnauts] - [#32186]) ([tado docs]) (beta fix) +- Updated frontend to 20200220.3 ([@bramkragten] - [#32189]) ([frontend docs]) (beta fix) +- Fix Arlo doing I/O in event loop ([@balloob] - [#32190]) ([arlo docs]) (beta fix) +- Bump socialbladeclient to 0.5 ([@pinkywafer] - [#32191]) ([socialblade docs]) (beta fix) +- Fix error where SimpliSafe websocket would disconnect and not reconnect ([@bachya] - [#32199]) ([simplisafe docs]) (beta fix) +- Updated frontend to 20200220.4 ([@bramkragten] - [#32205]) ([frontend docs]) (beta fix) +- Remove deprecated Hue options (fixes CI) ([@frenck] - [#32027]) ([hue docs]) (breaking change) (beta fix) + +[#27341]: https://github.com/home-assistant/home-assistant/pull/27341 +[#27841]: https://github.com/home-assistant/home-assistant/pull/27841 +[#27984]: https://github.com/home-assistant/home-assistant/pull/27984 +[#28082]: https://github.com/home-assistant/home-assistant/pull/28082 +[#28639]: https://github.com/home-assistant/home-assistant/pull/28639 +[#28712]: https://github.com/home-assistant/home-assistant/pull/28712 +[#28898]: https://github.com/home-assistant/home-assistant/pull/28898 +[#29927]: https://github.com/home-assistant/home-assistant/pull/29927 +[#30004]: https://github.com/home-assistant/home-assistant/pull/30004 +[#30095]: https://github.com/home-assistant/home-assistant/pull/30095 +[#30121]: https://github.com/home-assistant/home-assistant/pull/30121 +[#30628]: https://github.com/home-assistant/home-assistant/pull/30628 +[#30635]: https://github.com/home-assistant/home-assistant/pull/30635 +[#30697]: https://github.com/home-assistant/home-assistant/pull/30697 +[#30712]: https://github.com/home-assistant/home-assistant/pull/30712 +[#30843]: https://github.com/home-assistant/home-assistant/pull/30843 +[#30894]: https://github.com/home-assistant/home-assistant/pull/30894 +[#30922]: https://github.com/home-assistant/home-assistant/pull/30922 +[#30933]: https://github.com/home-assistant/home-assistant/pull/30933 +[#30979]: https://github.com/home-assistant/home-assistant/pull/30979 +[#30986]: https://github.com/home-assistant/home-assistant/pull/30986 +[#30992]: https://github.com/home-assistant/home-assistant/pull/30992 +[#31023]: https://github.com/home-assistant/home-assistant/pull/31023 +[#31073]: https://github.com/home-assistant/home-assistant/pull/31073 +[#31086]: https://github.com/home-assistant/home-assistant/pull/31086 +[#31122]: https://github.com/home-assistant/home-assistant/pull/31122 +[#31141]: https://github.com/home-assistant/home-assistant/pull/31141 +[#31177]: https://github.com/home-assistant/home-assistant/pull/31177 +[#31183]: https://github.com/home-assistant/home-assistant/pull/31183 +[#31187]: https://github.com/home-assistant/home-assistant/pull/31187 +[#31194]: https://github.com/home-assistant/home-assistant/pull/31194 +[#31234]: https://github.com/home-assistant/home-assistant/pull/31234 +[#31235]: https://github.com/home-assistant/home-assistant/pull/31235 +[#31243]: https://github.com/home-assistant/home-assistant/pull/31243 +[#31259]: https://github.com/home-assistant/home-assistant/pull/31259 +[#31280]: https://github.com/home-assistant/home-assistant/pull/31280 +[#31286]: https://github.com/home-assistant/home-assistant/pull/31286 +[#31287]: https://github.com/home-assistant/home-assistant/pull/31287 +[#31289]: https://github.com/home-assistant/home-assistant/pull/31289 +[#31299]: https://github.com/home-assistant/home-assistant/pull/31299 +[#31308]: https://github.com/home-assistant/home-assistant/pull/31308 +[#31311]: https://github.com/home-assistant/home-assistant/pull/31311 +[#31324]: https://github.com/home-assistant/home-assistant/pull/31324 +[#31326]: https://github.com/home-assistant/home-assistant/pull/31326 +[#31327]: https://github.com/home-assistant/home-assistant/pull/31327 +[#31328]: https://github.com/home-assistant/home-assistant/pull/31328 +[#31329]: https://github.com/home-assistant/home-assistant/pull/31329 +[#31337]: https://github.com/home-assistant/home-assistant/pull/31337 +[#31344]: https://github.com/home-assistant/home-assistant/pull/31344 +[#31359]: https://github.com/home-assistant/home-assistant/pull/31359 +[#31368]: https://github.com/home-assistant/home-assistant/pull/31368 +[#31373]: https://github.com/home-assistant/home-assistant/pull/31373 +[#31376]: https://github.com/home-assistant/home-assistant/pull/31376 +[#31379]: https://github.com/home-assistant/home-assistant/pull/31379 +[#31381]: https://github.com/home-assistant/home-assistant/pull/31381 +[#31382]: https://github.com/home-assistant/home-assistant/pull/31382 +[#31388]: https://github.com/home-assistant/home-assistant/pull/31388 +[#31390]: https://github.com/home-assistant/home-assistant/pull/31390 +[#31391]: https://github.com/home-assistant/home-assistant/pull/31391 +[#31392]: https://github.com/home-assistant/home-assistant/pull/31392 +[#31393]: https://github.com/home-assistant/home-assistant/pull/31393 +[#31394]: https://github.com/home-assistant/home-assistant/pull/31394 +[#31401]: https://github.com/home-assistant/home-assistant/pull/31401 +[#31406]: https://github.com/home-assistant/home-assistant/pull/31406 +[#31408]: https://github.com/home-assistant/home-assistant/pull/31408 +[#31410]: https://github.com/home-assistant/home-assistant/pull/31410 +[#31411]: https://github.com/home-assistant/home-assistant/pull/31411 +[#31415]: https://github.com/home-assistant/home-assistant/pull/31415 +[#31417]: https://github.com/home-assistant/home-assistant/pull/31417 +[#31419]: https://github.com/home-assistant/home-assistant/pull/31419 +[#31423]: https://github.com/home-assistant/home-assistant/pull/31423 +[#31424]: https://github.com/home-assistant/home-assistant/pull/31424 +[#31426]: https://github.com/home-assistant/home-assistant/pull/31426 +[#31427]: https://github.com/home-assistant/home-assistant/pull/31427 +[#31428]: https://github.com/home-assistant/home-assistant/pull/31428 +[#31430]: https://github.com/home-assistant/home-assistant/pull/31430 +[#31434]: https://github.com/home-assistant/home-assistant/pull/31434 +[#31435]: https://github.com/home-assistant/home-assistant/pull/31435 +[#31437]: https://github.com/home-assistant/home-assistant/pull/31437 +[#31439]: https://github.com/home-assistant/home-assistant/pull/31439 +[#31440]: https://github.com/home-assistant/home-assistant/pull/31440 +[#31441]: https://github.com/home-assistant/home-assistant/pull/31441 +[#31442]: https://github.com/home-assistant/home-assistant/pull/31442 +[#31444]: https://github.com/home-assistant/home-assistant/pull/31444 +[#31446]: https://github.com/home-assistant/home-assistant/pull/31446 +[#31450]: https://github.com/home-assistant/home-assistant/pull/31450 +[#31452]: https://github.com/home-assistant/home-assistant/pull/31452 +[#31453]: https://github.com/home-assistant/home-assistant/pull/31453 +[#31454]: https://github.com/home-assistant/home-assistant/pull/31454 +[#31471]: https://github.com/home-assistant/home-assistant/pull/31471 +[#31509]: https://github.com/home-assistant/home-assistant/pull/31509 +[#31519]: https://github.com/home-assistant/home-assistant/pull/31519 +[#31525]: https://github.com/home-assistant/home-assistant/pull/31525 +[#31527]: https://github.com/home-assistant/home-assistant/pull/31527 +[#31528]: https://github.com/home-assistant/home-assistant/pull/31528 +[#31534]: https://github.com/home-assistant/home-assistant/pull/31534 +[#31551]: https://github.com/home-assistant/home-assistant/pull/31551 +[#31556]: https://github.com/home-assistant/home-assistant/pull/31556 +[#31561]: https://github.com/home-assistant/home-assistant/pull/31561 +[#31567]: https://github.com/home-assistant/home-assistant/pull/31567 +[#31580]: https://github.com/home-assistant/home-assistant/pull/31580 +[#31602]: https://github.com/home-assistant/home-assistant/pull/31602 +[#31611]: https://github.com/home-assistant/home-assistant/pull/31611 +[#31616]: https://github.com/home-assistant/home-assistant/pull/31616 +[#31621]: https://github.com/home-assistant/home-assistant/pull/31621 +[#31626]: https://github.com/home-assistant/home-assistant/pull/31626 +[#31629]: https://github.com/home-assistant/home-assistant/pull/31629 +[#31634]: https://github.com/home-assistant/home-assistant/pull/31634 +[#31645]: https://github.com/home-assistant/home-assistant/pull/31645 +[#31647]: https://github.com/home-assistant/home-assistant/pull/31647 +[#31648]: https://github.com/home-assistant/home-assistant/pull/31648 +[#31654]: https://github.com/home-assistant/home-assistant/pull/31654 +[#31661]: https://github.com/home-assistant/home-assistant/pull/31661 +[#31664]: https://github.com/home-assistant/home-assistant/pull/31664 +[#31667]: https://github.com/home-assistant/home-assistant/pull/31667 +[#31672]: https://github.com/home-assistant/home-assistant/pull/31672 +[#31679]: https://github.com/home-assistant/home-assistant/pull/31679 +[#31682]: https://github.com/home-assistant/home-assistant/pull/31682 +[#31685]: https://github.com/home-assistant/home-assistant/pull/31685 +[#31686]: https://github.com/home-assistant/home-assistant/pull/31686 +[#31695]: https://github.com/home-assistant/home-assistant/pull/31695 +[#31697]: https://github.com/home-assistant/home-assistant/pull/31697 +[#31710]: https://github.com/home-assistant/home-assistant/pull/31710 +[#31711]: https://github.com/home-assistant/home-assistant/pull/31711 +[#31713]: https://github.com/home-assistant/home-assistant/pull/31713 +[#31714]: https://github.com/home-assistant/home-assistant/pull/31714 +[#31717]: https://github.com/home-assistant/home-assistant/pull/31717 +[#31718]: https://github.com/home-assistant/home-assistant/pull/31718 +[#31727]: https://github.com/home-assistant/home-assistant/pull/31727 +[#31731]: https://github.com/home-assistant/home-assistant/pull/31731 +[#31732]: https://github.com/home-assistant/home-assistant/pull/31732 +[#31735]: https://github.com/home-assistant/home-assistant/pull/31735 +[#31738]: https://github.com/home-assistant/home-assistant/pull/31738 +[#31739]: https://github.com/home-assistant/home-assistant/pull/31739 +[#31741]: https://github.com/home-assistant/home-assistant/pull/31741 +[#31742]: https://github.com/home-assistant/home-assistant/pull/31742 +[#31743]: https://github.com/home-assistant/home-assistant/pull/31743 +[#31744]: https://github.com/home-assistant/home-assistant/pull/31744 +[#31746]: https://github.com/home-assistant/home-assistant/pull/31746 +[#31750]: https://github.com/home-assistant/home-assistant/pull/31750 +[#31751]: https://github.com/home-assistant/home-assistant/pull/31751 +[#31755]: https://github.com/home-assistant/home-assistant/pull/31755 +[#31756]: https://github.com/home-assistant/home-assistant/pull/31756 +[#31758]: https://github.com/home-assistant/home-assistant/pull/31758 +[#31760]: https://github.com/home-assistant/home-assistant/pull/31760 +[#31762]: https://github.com/home-assistant/home-assistant/pull/31762 +[#31764]: https://github.com/home-assistant/home-assistant/pull/31764 +[#31765]: https://github.com/home-assistant/home-assistant/pull/31765 +[#31768]: https://github.com/home-assistant/home-assistant/pull/31768 +[#31770]: https://github.com/home-assistant/home-assistant/pull/31770 +[#31772]: https://github.com/home-assistant/home-assistant/pull/31772 +[#31773]: https://github.com/home-assistant/home-assistant/pull/31773 +[#31774]: https://github.com/home-assistant/home-assistant/pull/31774 +[#31775]: https://github.com/home-assistant/home-assistant/pull/31775 +[#31780]: https://github.com/home-assistant/home-assistant/pull/31780 +[#31781]: https://github.com/home-assistant/home-assistant/pull/31781 +[#31782]: https://github.com/home-assistant/home-assistant/pull/31782 +[#31789]: https://github.com/home-assistant/home-assistant/pull/31789 +[#31790]: https://github.com/home-assistant/home-assistant/pull/31790 +[#31792]: https://github.com/home-assistant/home-assistant/pull/31792 +[#31795]: https://github.com/home-assistant/home-assistant/pull/31795 +[#31796]: https://github.com/home-assistant/home-assistant/pull/31796 +[#31797]: https://github.com/home-assistant/home-assistant/pull/31797 +[#31798]: https://github.com/home-assistant/home-assistant/pull/31798 +[#31801]: https://github.com/home-assistant/home-assistant/pull/31801 +[#31802]: https://github.com/home-assistant/home-assistant/pull/31802 +[#31803]: https://github.com/home-assistant/home-assistant/pull/31803 +[#31804]: https://github.com/home-assistant/home-assistant/pull/31804 +[#31805]: https://github.com/home-assistant/home-assistant/pull/31805 +[#31806]: https://github.com/home-assistant/home-assistant/pull/31806 +[#31808]: https://github.com/home-assistant/home-assistant/pull/31808 +[#31809]: https://github.com/home-assistant/home-assistant/pull/31809 +[#31810]: https://github.com/home-assistant/home-assistant/pull/31810 +[#31811]: https://github.com/home-assistant/home-assistant/pull/31811 +[#31812]: https://github.com/home-assistant/home-assistant/pull/31812 +[#31819]: https://github.com/home-assistant/home-assistant/pull/31819 +[#31828]: https://github.com/home-assistant/home-assistant/pull/31828 +[#31831]: https://github.com/home-assistant/home-assistant/pull/31831 +[#31836]: https://github.com/home-assistant/home-assistant/pull/31836 +[#31837]: https://github.com/home-assistant/home-assistant/pull/31837 +[#31842]: https://github.com/home-assistant/home-assistant/pull/31842 +[#31845]: https://github.com/home-assistant/home-assistant/pull/31845 +[#31847]: https://github.com/home-assistant/home-assistant/pull/31847 +[#31848]: https://github.com/home-assistant/home-assistant/pull/31848 +[#31851]: https://github.com/home-assistant/home-assistant/pull/31851 +[#31855]: https://github.com/home-assistant/home-assistant/pull/31855 +[#31861]: https://github.com/home-assistant/home-assistant/pull/31861 +[#31863]: https://github.com/home-assistant/home-assistant/pull/31863 +[#31864]: https://github.com/home-assistant/home-assistant/pull/31864 +[#31865]: https://github.com/home-assistant/home-assistant/pull/31865 +[#31868]: https://github.com/home-assistant/home-assistant/pull/31868 +[#31871]: https://github.com/home-assistant/home-assistant/pull/31871 +[#31874]: https://github.com/home-assistant/home-assistant/pull/31874 +[#31875]: https://github.com/home-assistant/home-assistant/pull/31875 +[#31876]: https://github.com/home-assistant/home-assistant/pull/31876 +[#31886]: https://github.com/home-assistant/home-assistant/pull/31886 +[#31888]: https://github.com/home-assistant/home-assistant/pull/31888 +[#31890]: https://github.com/home-assistant/home-assistant/pull/31890 +[#31895]: https://github.com/home-assistant/home-assistant/pull/31895 +[#31896]: https://github.com/home-assistant/home-assistant/pull/31896 +[#31897]: https://github.com/home-assistant/home-assistant/pull/31897 +[#31898]: https://github.com/home-assistant/home-assistant/pull/31898 +[#31899]: https://github.com/home-assistant/home-assistant/pull/31899 +[#31902]: https://github.com/home-assistant/home-assistant/pull/31902 +[#31903]: https://github.com/home-assistant/home-assistant/pull/31903 +[#31904]: https://github.com/home-assistant/home-assistant/pull/31904 +[#31905]: https://github.com/home-assistant/home-assistant/pull/31905 +[#31911]: https://github.com/home-assistant/home-assistant/pull/31911 +[#31912]: https://github.com/home-assistant/home-assistant/pull/31912 +[#31913]: https://github.com/home-assistant/home-assistant/pull/31913 +[#31914]: https://github.com/home-assistant/home-assistant/pull/31914 +[#31915]: https://github.com/home-assistant/home-assistant/pull/31915 +[#31916]: https://github.com/home-assistant/home-assistant/pull/31916 +[#31917]: https://github.com/home-assistant/home-assistant/pull/31917 +[#31920]: https://github.com/home-assistant/home-assistant/pull/31920 +[#31921]: https://github.com/home-assistant/home-assistant/pull/31921 +[#31922]: https://github.com/home-assistant/home-assistant/pull/31922 +[#31927]: https://github.com/home-assistant/home-assistant/pull/31927 +[#31930]: https://github.com/home-assistant/home-assistant/pull/31930 +[#31932]: https://github.com/home-assistant/home-assistant/pull/31932 +[#31934]: https://github.com/home-assistant/home-assistant/pull/31934 +[#31935]: https://github.com/home-assistant/home-assistant/pull/31935 +[#31936]: https://github.com/home-assistant/home-assistant/pull/31936 +[#31941]: https://github.com/home-assistant/home-assistant/pull/31941 +[#31942]: https://github.com/home-assistant/home-assistant/pull/31942 +[#31943]: https://github.com/home-assistant/home-assistant/pull/31943 +[#31944]: https://github.com/home-assistant/home-assistant/pull/31944 +[#31959]: https://github.com/home-assistant/home-assistant/pull/31959 +[#31962]: https://github.com/home-assistant/home-assistant/pull/31962 +[#31963]: https://github.com/home-assistant/home-assistant/pull/31963 +[#31965]: https://github.com/home-assistant/home-assistant/pull/31965 +[#31966]: https://github.com/home-assistant/home-assistant/pull/31966 +[#31968]: https://github.com/home-assistant/home-assistant/pull/31968 +[#31969]: https://github.com/home-assistant/home-assistant/pull/31969 +[#31970]: https://github.com/home-assistant/home-assistant/pull/31970 +[#31973]: https://github.com/home-assistant/home-assistant/pull/31973 +[#31979]: https://github.com/home-assistant/home-assistant/pull/31979 +[#31981]: https://github.com/home-assistant/home-assistant/pull/31981 +[#31982]: https://github.com/home-assistant/home-assistant/pull/31982 +[#32008]: https://github.com/home-assistant/home-assistant/pull/32008 +[#32009]: https://github.com/home-assistant/home-assistant/pull/32009 +[#32011]: https://github.com/home-assistant/home-assistant/pull/32011 +[#32018]: https://github.com/home-assistant/home-assistant/pull/32018 +[#32023]: https://github.com/home-assistant/home-assistant/pull/32023 +[#32027]: https://github.com/home-assistant/home-assistant/pull/32027 +[#32031]: https://github.com/home-assistant/home-assistant/pull/32031 +[#32033]: https://github.com/home-assistant/home-assistant/pull/32033 +[#32039]: https://github.com/home-assistant/home-assistant/pull/32039 +[#32044]: https://github.com/home-assistant/home-assistant/pull/32044 +[#32046]: https://github.com/home-assistant/home-assistant/pull/32046 +[#32054]: https://github.com/home-assistant/home-assistant/pull/32054 +[#32068]: https://github.com/home-assistant/home-assistant/pull/32068 +[#32071]: https://github.com/home-assistant/home-assistant/pull/32071 +[#32109]: https://github.com/home-assistant/home-assistant/pull/32109 +[#32119]: https://github.com/home-assistant/home-assistant/pull/32119 +[#32136]: https://github.com/home-assistant/home-assistant/pull/32136 +[#32138]: https://github.com/home-assistant/home-assistant/pull/32138 +[#32151]: https://github.com/home-assistant/home-assistant/pull/32151 +[#32163]: https://github.com/home-assistant/home-assistant/pull/32163 +[#32186]: https://github.com/home-assistant/home-assistant/pull/32186 +[#32189]: https://github.com/home-assistant/home-assistant/pull/32189 +[#32190]: https://github.com/home-assistant/home-assistant/pull/32190 +[#32191]: https://github.com/home-assistant/home-assistant/pull/32191 +[#32199]: https://github.com/home-assistant/home-assistant/pull/32199 +[#32205]: https://github.com/home-assistant/home-assistant/pull/32205 +[@Adminiuga]: https://github.com/Adminiuga +[@BKPepe]: https://github.com/BKPepe +[@CHAZICLE]: https://github.com/CHAZICLE +[@Cereal2nd]: https://github.com/Cereal2nd +[@Cloudenius]: https://github.com/Cloudenius +[@CoMPaTech]: https://github.com/CoMPaTech +[@Danielhiversen]: https://github.com/Danielhiversen +[@Kane610]: https://github.com/Kane610 +[@KasperLK]: https://github.com/KasperLK +[@Konsts]: https://github.com/Konsts +[@ManneW]: https://github.com/ManneW +[@Marco98]: https://github.com/Marco98 +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@MatthewFlamm]: https://github.com/MatthewFlamm +[@MrDadoo]: https://github.com/MrDadoo +[@P-Verbrugge]: https://github.com/P-Verbrugge +[@PhilRW]: https://github.com/PhilRW +[@Poeschl]: https://github.com/Poeschl +[@Quentame]: https://github.com/Quentame +[@SoftXperience]: https://github.com/SoftXperience +[@Squixx]: https://github.com/Squixx +[@SukramJ]: https://github.com/SukramJ +[@TechnicallyJoe]: https://github.com/TechnicallyJoe +[@YarmoM]: https://github.com/YarmoM +[@abmantis]: https://github.com/abmantis +[@alandtse]: https://github.com/alandtse +[@andersonshatch]: https://github.com/andersonshatch +[@arsaboo]: https://github.com/arsaboo +[@austinmroczek]: https://github.com/austinmroczek +[@azogue]: https://github.com/azogue +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@basnijholt]: https://github.com/basnijholt +[@bbernhard]: https://github.com/bbernhard +[@bdraco]: https://github.com/bdraco +[@benleb]: https://github.com/benleb +[@bieniu]: https://github.com/bieniu +[@bjornorri]: https://github.com/bjornorri +[@bmfurtado]: https://github.com/bmfurtado +[@bramkragten]: https://github.com/bramkragten +[@caronc]: https://github.com/caronc +[@cclauss]: https://github.com/cclauss +[@cgtobi]: https://github.com/cgtobi +[@crallian]: https://github.com/crallian +[@ctalkington]: https://github.com/ctalkington +[@danielperna84]: https://github.com/danielperna84 +[@dcnielsen90]: https://github.com/dcnielsen90 +[@dgomes]: https://github.com/dgomes +[@dingusdk]: https://github.com/dingusdk +[@dmulcahey]: https://github.com/dmulcahey +[@dshokouhi]: https://github.com/dshokouhi +[@dupondje]: https://github.com/dupondje +[@eavanvalkenburg]: https://github.com/eavanvalkenburg +[@elmurato]: https://github.com/elmurato +[@emontnemery]: https://github.com/emontnemery +[@endor-force]: https://github.com/endor-force +[@engrbm87]: https://github.com/engrbm87 +[@escoand]: https://github.com/escoand +[@exxamalte]: https://github.com/exxamalte +[@fabaff]: https://github.com/fabaff +[@fierland]: https://github.com/fierland +[@frenck]: https://github.com/frenck +[@gerard33]: https://github.com/gerard33 +[@gorynychzmey]: https://github.com/gorynychzmey +[@guimaraes13]: https://github.com/guimaraes13 +[@gurbyz]: https://github.com/gurbyz +[@inverse]: https://github.com/inverse +[@jardiamj]: https://github.com/jardiamj +[@jcalbert]: https://github.com/jcalbert +[@jjlawren]: https://github.com/jjlawren +[@jkeljo]: https://github.com/jkeljo +[@kit-klein]: https://github.com/kit-klein +[@ktnrg45]: https://github.com/ktnrg45 +[@laszlojakab]: https://github.com/laszlojakab +[@marthoc]: https://github.com/marthoc +[@maxcanna]: https://github.com/maxcanna +[@melyux]: https://github.com/melyux +[@mezz64]: https://github.com/mezz64 +[@michaelarnauts]: https://github.com/michaelarnauts +[@moshekaplan]: https://github.com/moshekaplan +[@mueslo]: https://github.com/mueslo +[@ochlocracy]: https://github.com/ochlocracy +[@oischinger]: https://github.com/oischinger +[@pinkywafer]: https://github.com/pinkywafer +[@pnbruckner]: https://github.com/pnbruckner +[@raman325]: https://github.com/raman325 +[@rickvdl]: https://github.com/rickvdl +[@robbiet480]: https://github.com/robbiet480 +[@robmarkcole]: https://github.com/robmarkcole +[@sanyatuning]: https://github.com/sanyatuning +[@scarface-4711]: https://github.com/scarface-4711 +[@scop]: https://github.com/scop +[@shred86]: https://github.com/shred86 +[@springstan]: https://github.com/springstan +[@teharris1]: https://github.com/teharris1 +[@tetienne]: https://github.com/tetienne +[@tsvi]: https://github.com/tsvi +[@vanbalken]: https://github.com/vanbalken +[@vilppuvuorinen]: https://github.com/vilppuvuorinen +[@vlebourl]: https://github.com/vlebourl +[@vzahradnik]: https://github.com/vzahradnik +[@ziv1234]: https://github.com/ziv1234 +[abode docs]: /integrations/abode/ +[alarmdecoder docs]: /integrations/alarmdecoder/ +[alexa docs]: /integrations/alexa/ +[alpha_vantage docs]: /integrations/alpha_vantage/ +[ambient_station docs]: /integrations/ambient_station/ +[amcrest docs]: /integrations/amcrest/ +[apcupsd docs]: /integrations/apcupsd/ +[apple_tv docs]: /integrations/apple_tv/ +[apprise docs]: /integrations/apprise/ +[arlo docs]: /integrations/arlo/ +[asuswrt docs]: /integrations/asuswrt/ +[august docs]: /integrations/august/ +[axis docs]: /integrations/axis/ +[bitcoin docs]: /integrations/bitcoin/ +[blockchain docs]: /integrations/blockchain/ +[bme680 docs]: /integrations/bme680/ +[bmw_connected_drive docs]: /integrations/bmw_connected_drive/ +[braviatv docs]: /integrations/braviatv/ +[broadlink docs]: /integrations/broadlink/ +[brother docs]: /integrations/brother/ +[caldav docs]: /integrations/caldav/ +[config docs]: /integrations/config/ +[coolmaster docs]: /integrations/coolmaster/ +[danfoss_air docs]: /integrations/danfoss_air/ +[deconz docs]: /integrations/deconz/ +[demo docs]: /integrations/demo/ +[denonavr docs]: /integrations/denonavr/ +[device_automation docs]: /integrations/device_automation/ +[device_tracker docs]: /integrations/device_tracker/ +[directv docs]: /integrations/directv/ +[discord docs]: /integrations/discord/ +[dlna_dmr docs]: /integrations/dlna_dmr/ +[doods docs]: /integrations/doods/ +[dsmr docs]: /integrations/dsmr/ +[dynalite docs]: /integrations/dynalite/ +[ecobee docs]: /integrations/ecobee/ +[edimax docs]: /integrations/edimax/ +[eight_sleep docs]: /integrations/eight_sleep/ +[elgato docs]: /integrations/elgato/ +[esphome docs]: /integrations/esphome/ +[essent docs]: /integrations/essent/ +[evohome docs]: /integrations/evohome/ +[freebox docs]: /integrations/freebox/ +[fritz docs]: /integrations/fritz/ +[frontend docs]: /integrations/frontend/ +[frontier_silicon docs]: /integrations/frontier_silicon/ +[garmin_connect docs]: /integrations/garmin_connect/ +[gdacs docs]: /integrations/gdacs/ +[geonetnz_quakes docs]: /integrations/geonetnz_quakes/ +[glances docs]: /integrations/glances/ +[greeneye_monitor docs]: /integrations/greeneye_monitor/ +[group docs]: /integrations/group/ +[homeassistant docs]: /integrations/homeassistant/ +[homekit_controller docs]: /integrations/homekit_controller/ +[homematic docs]: /integrations/homematic/ +[homematicip_cloud docs]: /integrations/homematicip_cloud/ +[huawei_lte docs]: /integrations/huawei_lte/ +[hue docs]: /integrations/hue/ +[iaqualink docs]: /integrations/iaqualink/ +[icloud docs]: /integrations/icloud/ +[ifttt docs]: /integrations/ifttt/ +[ihc docs]: /integrations/ihc/ +[insteon docs]: /integrations/insteon/ +[ipma docs]: /integrations/ipma/ +[iqvia docs]: /integrations/iqvia/ +[jewish_calendar docs]: /integrations/jewish_calendar/ +[kef docs]: /integrations/kef/ +[konnected docs]: /integrations/konnected/ +[lastfm docs]: /integrations/lastfm/ +[lg_netcast docs]: /integrations/lg_netcast/ +[light docs]: /integrations/light/ +[linky docs]: /integrations/linky/ +[maxcube docs]: /integrations/maxcube/ +[mcp23017 docs]: /integrations/mcp23017/ +[media_extractor docs]: /integrations/media_extractor/ +[melcloud docs]: /integrations/melcloud/ +[meteo_france docs]: /integrations/meteo_france/ +[mikrotik docs]: /integrations/mikrotik/ +[minecraft_server docs]: /integrations/minecraft_server/ +[mobile_app docs]: /integrations/mobile_app/ +[modbus docs]: /integrations/modbus/ +[mqtt docs]: /integrations/mqtt/ +[mysensors docs]: /integrations/mysensors/ +[nederlandse_spoorwegen docs]: /integrations/nederlandse_spoorwegen/ +[netatmo docs]: /integrations/netatmo/ +[netgear docs]: /integrations/netgear/ +[netgear_lte docs]: /integrations/netgear_lte/ +[notion docs]: /integrations/notion/ +[nsw_rural_fire_service_feed docs]: /integrations/nsw_rural_fire_service_feed/ +[octoprint docs]: /integrations/octoprint/ +[onewire docs]: /integrations/onewire/ +[opencv docs]: /integrations/opencv/ +[ping docs]: /integrations/ping/ +[pioneer docs]: /integrations/pioneer/ +[plex docs]: /integrations/plex/ +[plugwise docs]: /integrations/plugwise/ +[proxmoxve docs]: /integrations/proxmoxve/ +[proxy docs]: /integrations/proxy/ +[ps4 docs]: /integrations/ps4/ +[pushover docs]: /integrations/pushover/ +[qrcode docs]: /integrations/qrcode/ +[rainforest_eagle docs]: /integrations/rainforest_eagle/ +[recorder docs]: /integrations/recorder/ +[reddit docs]: /integrations/reddit/ +[remote docs]: /integrations/remote/ +[rest docs]: /integrations/rest/ +[ring docs]: /integrations/ring/ +[roku docs]: /integrations/roku/ +[rpi_gpio_pwm docs]: /integrations/rpi_gpio_pwm/ +[sabnzbd docs]: /integrations/sabnzbd/ +[salt docs]: /integrations/salt/ +[samsungtv docs]: /integrations/samsungtv/ +[scrape docs]: /integrations/scrape/ +[script docs]: /integrations/script/ +[sendgrid docs]: /integrations/sendgrid/ +[seven_segments docs]: /integrations/seven_segments/ +[signal_messenger docs]: /integrations/signal_messenger/ +[simplisafe docs]: /integrations/simplisafe/ +[smartthings docs]: /integrations/smartthings/ +[socialblade docs]: /integrations/socialblade/ +[sonos docs]: /integrations/sonos/ +[soundtouch docs]: /integrations/soundtouch/ +[spc docs]: /integrations/spc/ +[starline docs]: /integrations/starline/ +[statistics docs]: /integrations/statistics/ +[surepetcare docs]: /integrations/surepetcare/ +[system_log docs]: /integrations/system_log/ +[tado docs]: /integrations/tado/ +[tahoma docs]: /integrations/tahoma/ +[telegram_bot docs]: /integrations/telegram_chatbot/ +[template docs]: /integrations/template/ +[tensorflow docs]: /integrations/tensorflow/ +[tesla docs]: /integrations/tesla/ +[tibber docs]: /integrations/tibber/ +[totalconnect docs]: /integrations/totalconnect/ +[trafikverket_train docs]: /integrations/trafikverket_train/ +[trafikverket_weatherstation docs]: /integrations/trafikverket_weatherstation/ +[trend docs]: /integrations/trend/ +[twitch docs]: /integrations/twitch/ +[unifi docs]: /integrations/unifi/ +[updater docs]: /integrations/updater/ +[upnp docs]: /integrations/upnp/ +[vallox docs]: /integrations/vallox/ +[velbus docs]: /integrations/velbus/ +[verisure docs]: /integrations/verisure/ +[vicare docs]: /integrations/vicare/ +[vilfo docs]: /integrations/vilfo/ +[vivotek docs]: /integrations/vivotek/ +[vizio docs]: /integrations/vizio/ +[websocket_api docs]: /integrations/websocket_api/ +[wled docs]: /integrations/wled/ +[workday docs]: /integrations/workday/ +[wwlln docs]: /integrations/wwlln/ +[xiaomi_aqara docs]: /integrations/xiaomi_aqara/ +[xiaomi_miio docs]: /integrations/xiaomi_miio/ +[yeelight docs]: /integrations/yeelight/ +[zeroconf docs]: /integrations/zeroconf/ +[zha docs]: /integrations/zha/ diff --git a/source/_redirects b/source/_redirects index 5711821f682c..2e45dbb96780 100644 --- a/source/_redirects +++ b/source/_redirects @@ -521,7 +521,6 @@ /components/media_player.kodi /integrations/kodi /components/media_player.lg_netcast /integrations/lg_netcast /components/media_player.lg_soundbar /integrations/lg_soundbar -/components/media_player.liveboxplaytv /integrations/liveboxplaytv /components/media_player.mediaroom /integrations/mediaroom /components/media_player.monoprice /integrations/monoprice /components/media_player.mpchc /integrations/mpchc @@ -685,7 +684,6 @@ /components/sensor.dsmr /integrations/dsmr /components/sensor.dte_energy_bridge /integrations/dte_energy_bridge /components/sensor.dublin_bus_transport /integrations/dublin_bus_transport -/components/sensor.duke_energy /integrations/duke_energy /components/sensor.dwd_weather_warnings /integrations/dwd_weather_warnings /components/sensor.dweet /integrations/dweet#sensor /components/sensor.dyson /integrations/dyson#sensor @@ -978,7 +976,6 @@ /components/switch.fibaro /integrations/fibaro /components/switch.flux /integrations/flux /components/switch.fritzbox /integrations/fritzbox -/components/switch.fritzdect /integrations/fritzdect /components/switch.gc100 /integrations/gc100#switch /components/switch.hdmi_cec /integrations/hdmi_cec /components/switch.hikvisioncam /integrations/hikvisioncam @@ -1287,7 +1284,6 @@ /components/dte_energy_bridge /integrations/dte_energy_bridge /components/dublin_bus_transport /integrations/dublin_bus_transport /components/duckdns /integrations/duckdns -/components/duke_energy /integrations/duke_energy /components/dunehd /integrations/dunehd /components/dwd_weather_warnings /integrations/dwd_weather_warnings /components/dweet /integrations/dweet @@ -1371,7 +1367,6 @@ /components/fritzbox /integrations/fritzbox /components/fritzbox_callmonitor /integrations/fritzbox_callmonitor /components/fritzbox_netmonitor /integrations/fritzbox_netmonitor -/components/fritzdect /integrations/fritzdect /components/fronius /integrations/fronius /components/frontend /integrations/frontend /components/frontier_silicon /integrations/frontier_silicon @@ -1525,7 +1520,6 @@ /components/linux_battery /integrations/linux_battery /components/lirc /integrations/lirc /components/litejet /integrations/litejet -/components/liveboxplaytv /integrations/liveboxplaytv /components/llamalab_automate /integrations/llamalab_automate /components/local_file /integrations/local_file /components/locative /integrations/locative @@ -2095,3 +2089,6 @@ /addons/snips https://github.com/home-assistant/hassio-addons/blob/master/snips/README.md /addons/ssh https://github.com/home-assistant/hassio-addons/blob/master/ssh/README.md /addons/tellstick https://github.com/home-assistant/hassio-addons/blob/master/tellstick/README.md + +# Lovelace documentation +/lovelace/entity-button /lovelace/button diff --git a/source/images/blog/2020-02-0.106/brightness-step-device-automation.png b/source/images/blog/2020-02-0.106/brightness-step-device-automation.png new file mode 100644 index 000000000000..74ef6732a1d0 Binary files /dev/null and b/source/images/blog/2020-02-0.106/brightness-step-device-automation.png differ diff --git a/source/images/blog/2020-02-0.106/components.png b/source/images/blog/2020-02-0.106/components.png new file mode 100644 index 000000000000..cf926590ad69 Binary files /dev/null and b/source/images/blog/2020-02-0.106/components.png differ diff --git a/source/images/blog/2020-02-0.106/entities.png b/source/images/blog/2020-02-0.106/entities.png new file mode 100644 index 000000000000..cbfecbae0199 Binary files /dev/null and b/source/images/blog/2020-02-0.106/entities.png differ diff --git a/source/images/blog/2020-02-0.106/integrations-list.png b/source/images/blog/2020-02-0.106/integrations-list.png new file mode 100644 index 000000000000..29f49a700d8d Binary files /dev/null and b/source/images/blog/2020-02-0.106/integrations-list.png differ diff --git a/source/images/blog/2020-02-0.106/more-info-person.png b/source/images/blog/2020-02-0.106/more-info-person.png new file mode 100644 index 000000000000..6e0dd9f2a4a3 Binary files /dev/null and b/source/images/blog/2020-02-0.106/more-info-person.png differ diff --git a/source/images/blog/2020-02-0.106/safe-mode-activated.png b/source/images/blog/2020-02-0.106/safe-mode-activated.png new file mode 100644 index 000000000000..b07ff3ddd181 Binary files /dev/null and b/source/images/blog/2020-02-0.106/safe-mode-activated.png differ diff --git a/source/images/blog/2020-02-0.106/sensor-card.png b/source/images/blog/2020-02-0.106/sensor-card.png new file mode 100644 index 000000000000..1a590844ddb3 Binary files /dev/null and b/source/images/blog/2020-02-0.106/sensor-card.png differ diff --git a/source/images/blog/2020-02-0.106/social.png b/source/images/blog/2020-02-0.106/social.png new file mode 100644 index 000000000000..2db0479cdef3 Binary files /dev/null and b/source/images/blog/2020-02-0.106/social.png differ diff --git a/source/images/integrations/surepetcare/spc_ids.png b/source/images/integrations/surepetcare/spc_ids.png new file mode 100644 index 000000000000..75a6d473b076 Binary files /dev/null and b/source/images/integrations/surepetcare/spc_ids.png differ diff --git a/source/images/lovelace/lovelace_sensor.png b/source/images/lovelace/lovelace_sensor.png index a3a0fa824887..fc8b83b5c267 100644 Binary files a/source/images/lovelace/lovelace_sensor.png and b/source/images/lovelace/lovelace_sensor.png differ diff --git a/source/images/screenshots/gdacs-alerts-feed-map.png b/source/images/screenshots/gdacs-alerts-feed-map.png new file mode 100644 index 000000000000..906f8b8f515a Binary files /dev/null and b/source/images/screenshots/gdacs-alerts-feed-map.png differ diff --git a/source/images/screenshots/gdacs-alerts-sensor.png b/source/images/screenshots/gdacs-alerts-sensor.png new file mode 100644 index 000000000000..ff00f6e8cba6 Binary files /dev/null and b/source/images/screenshots/gdacs-alerts-sensor.png differ diff --git a/source/images/supported_brands/duke_energy.png b/source/images/supported_brands/duke_energy.png deleted file mode 100644 index 72f55e54037e..000000000000 Binary files a/source/images/supported_brands/duke_energy.png and /dev/null differ diff --git a/source/images/supported_brands/dynalite.png b/source/images/supported_brands/dynalite.png new file mode 100755 index 000000000000..7751c6b564a9 Binary files /dev/null and b/source/images/supported_brands/dynalite.png differ diff --git a/source/images/supported_brands/gdacs.jpg b/source/images/supported_brands/gdacs.jpg new file mode 100644 index 000000000000..0d63b968dea7 Binary files /dev/null and b/source/images/supported_brands/gdacs.jpg differ diff --git a/source/images/supported_brands/melcloud.png b/source/images/supported_brands/melcloud.png new file mode 100644 index 000000000000..85595ed89708 Binary files /dev/null and b/source/images/supported_brands/melcloud.png differ diff --git a/source/images/supported_brands/minecraft.png b/source/images/supported_brands/minecraft.png new file mode 100644 index 000000000000..0b274b8eb09c Binary files /dev/null and b/source/images/supported_brands/minecraft.png differ diff --git a/source/images/supported_brands/orange.png b/source/images/supported_brands/orange.png deleted file mode 100644 index 6a357089fe5b..000000000000 Binary files a/source/images/supported_brands/orange.png and /dev/null differ diff --git a/source/images/supported_brands/salt.png b/source/images/supported_brands/salt.png new file mode 100644 index 000000000000..96728c59d687 Binary files /dev/null and b/source/images/supported_brands/salt.png differ diff --git a/source/images/supported_brands/vilfo.png b/source/images/supported_brands/vilfo.png new file mode 100644 index 000000000000..9cd249246165 Binary files /dev/null and b/source/images/supported_brands/vilfo.png differ