Merge branch 'rc' into current

This commit is contained in:
Paulus Schoutsen 2019-02-20 11:15:07 -08:00
commit 28d0f2fe4a
62 changed files with 2399 additions and 302 deletions

View File

@ -138,9 +138,9 @@ social:
# Home Assistant release details
current_major_version: 0
current_minor_version: 87
current_patch_version: 1
date_released: 2019-02-10
current_minor_version: 88
current_patch_version: 0
date_released: 2019-02-20
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.

View File

@ -20,6 +20,7 @@ The component will accept the following states from your Alarm Panel (in lower c
- `disarmed`
- `armed_home`
- `armed_away`
- 'armed_night'
- `pending`
- `triggered`
@ -75,6 +76,11 @@ payload_arm_away:
required: false
type: string
default: ARM_AWAY
payload_arm_night:
description: The payload to set armed-night mode on your Alarm Panel.
required: false
type: string
default: ARM_NIGHT
code:
description: If defined, specifies a code to enable or disable the alarm in the frontend.
required: false

View File

@ -14,10 +14,9 @@ redirect_from:
---
The `Ambient Weather Station` component retrieves local weather information
via personal weather stations from
[Ambient Weather](https://ambientweather.net).
via personal weather stations from [Ambient Weather](https://ambientweather.net).
## {% linkable_title Generating API Keys and Application Keys %}
## {% linkable_title Setup %}
Using this component requires both an Application Key and an API Key. To
generate both, simply utilize the profile section of
@ -31,8 +30,8 @@ following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
ambient_station:
api_key: <YOUR API KEY>
app_key: <YOUR APPLICATION KEY>
api_key: YOUR_API_KEY
app_key: YOUR_APPLICATION_KEY
```
{% configuration %}
@ -57,6 +56,26 @@ monitored_conditions:
description: Relative atmospheric pressure
battout:
description: Weather station battery health
batt1:
description: Sensor 1 battery health
batt2:
description: Sensor 2 battery health
batt3:
description: Sensor 3 battery health
batt4:
description: Sensor 4 battery health
batt5:
description: Sensor 5 battery health
batt6:
description: Sensor 6 battery health
batt7:
description: Sensor 7 battery health
batt8:
description: Sensor 8 battery health
batt9:
description: Sensor 9 battery health
batt10:
description: Sensor 10 battery health
co2:
description: CO2 level
dailyrainin:
@ -71,6 +90,26 @@ monitored_conditions:
description: Hourly rain accumulation
humidity:
description: Outdoor humidity
humidity1:
description: Sensor 1 humidity
humidity2:
description: Sensor 2 humidity
humidity3:
description: Sensor 3 humidity
humidity4:
description: Sensor 4 humidity
humidity5:
description: Sensor 5 humidity
humidity6:
description: Sensor 6 humidity
humidity7:
description: Sensor 7 humidity
humidity8:
description: Sensor 8 humidity
humidity9:
description: Sensor 9 humidity
humidity10:
description: Sensor 10 humidity
humidityin:
description: Indoor humidity
lastRain:
@ -79,8 +118,88 @@ monitored_conditions:
description: Max daily wind gust
monthlyrainin:
description: Monthly rain accumulation
relay1:
description: Sensor 1 relay status
relay2:
description: Sensor 2 relay status
relay3:
description: Sensor 3 relay status
relay4:
description: Sensor 4 relay status
relay5:
description: Sensor 5 relay status
relay6:
description: Sensor 6 relay status
relay7:
description: Sensor 7 relay status
relay8:
description: Sensor 8 relay status
relay9:
description: Sensor 9 relay status
relay10:
description: Sensor 10 relay status
soilhum1:
description: Sensor 1 soil humidity
soilhum2:
description: Sensor 2 soil humidity
soilhum3:
description: Sensor 3 soil humidity
soilhum4:
description: Sensor 4 soil humidity
soilhum5:
description: Sensor 5 soil humidity
soilhum6:
description: Sensor 6 soil humidity
soilhum7:
description: Sensor 7 soil humidity
soilhum8:
description: Sensor 8 soil humidity
soilhum9:
description: Sensor 9 soil humidity
soilhum10:
description: Sensor 10 soil humidity
soiltemp1f:
description: Sensor 1 soil temperature
soiltemp2f:
description: Sensor 2 soil temperature
soiltemp3f:
description: Sensor 3 soil temperature
soiltemp4f:
description: Sensor 4 soil temperature
soiltemp5f:
description: Sensor 5 soil temperature
soiltemp6f:
description: Sensor 6 soil temperature
soiltemp7f:
description: Sensor 7 soil temperature
soiltemp8f:
description: Sensor 8 soil temperature
soiltemp9f:
description: Sensor 9 soil temperature
soiltemp10f:
description: Sensor 10 soil temperature
solarradiation:
description: Solar radiation
temp1f:
description: Sensor 1 temperature
temp2f:
description: Sensor 2 temperature
temp3f:
description: Sensor 3 temperature
temp4f:
description: Sensor 4 temperature
temp5f:
description: Sensor 5 temperature
temp6f:
description: Sensor 6 temperature
temp7f:
description: Sensor 7 temperature
temp8f:
description: Sensor 8 temperature
temp9f:
description: Sensor 9 temperature
temp10f:
description: Sensor 10 temperature
tempf:
description: Outdoor temperature
tempinf:

View File

@ -57,10 +57,21 @@ observations:
required: true
type: list
keys:
entity_id:
description: Name of the entity to monitor.
platform:
description: >
The supported platforms are `state`, `numeric_state`, and `template`.
They are modeled after their corresponding triggers for automations,
requiring `to_state` (for `state`), `below` and/or `above` (for `numeric_state`) and `value_template` (for `template`).
required: true
type: string
entity_id:
description: Name of the entity to monitor.
required: true (for `state` and `numeric_state`)
type: string
value_template:
description: Defines the template to be used.
required: true (for `template`)
type: template
prob_given_true:
description: The probability of the observation occurring, given the event is `true`.
required: true
@ -70,17 +81,10 @@ observations:
required: false
type: float
default: "`1 - prob_given_true` if `prob_given_false` is not set"
platform:
description: >
The only supported observation platforms are `state` and `numeric_state`,
which are modeled after their corresponding triggers for automations,
requiring `below` and/or `above` instead of `to_state`.
required: true
type: string
to_state:
description: The target state.
required: true
type: string
required: true (for `state`)
type: string
{% endconfiguration %}
## {% linkable_title Full examples %}
@ -95,23 +99,23 @@ binary_sensor:
prior: 0.25
probability_threshold: 0.95
observations:
- entity_id: 'sensor.living_room_motion'
- platform: 'state'
entity_id: 'sensor.living_room_motion'
prob_given_true: 0.4
prob_given_false: 0.2
platform: 'state'
to_state: 'off'
- entity_id: 'sensor.basement_motion'
- platform: 'state'
entity_id: 'sensor.basement_motion'
prob_given_true: 0.5
prob_given_false: 0.4
platform: 'state'
to_state: 'off'
- entity_id: 'sensor.bedroom_motion'
- platform: 'state'
entity_id: 'sensor.bedroom_motion'
prob_given_true: 0.5
platform: 'state'
to_state: 'on'
- entity_id: 'sun.sun'
- platform: 'state'
entity_id: 'sun.sun'
prob_given_true: 0.7
platform: 'state'
to_state: 'below_horizon'
```
@ -126,8 +130,27 @@ binary_sensor:
prior: 0.2
probability_threshold: 0.9
observations:
- entity_id: 'sensor.outside_air_temperature_fahrenheit'
- platform: 'numeric_state'
entity_id: 'sensor.outside_air_temperature_fahrenheit'
prob_given_true: 0.95
platform: 'numeric_state'
below: 50
```
Finally, here's an example for `template` observation platform,
as seen in the configuration it requires `value_template` and does not use `entity_id`.
{% raw %}
```yaml
# Example configuration.yaml entry
binary_sensor:
name: 'Paulus Home'
platform: 'bayesian'
prior: 0.5
probability_threshold: 0.9
observations:
- platform: template
value_template: >
{{is_state('device_tracker.paulus','not_home') and ((as_timestamp(now()) - as_timestamp(states.device_tracker.paulus.last_changed)) > 300)}}
prob_given_true: 0.95
```
{% endraw %}

View File

@ -25,9 +25,11 @@ binary_sensor:
- platform: modbus
coils:
- name: Sensor1
hub: hub1
slave: 1
coil: 100
- name: Sensor2
hub: hub1
slave: 1
coil: 110
```
@ -42,6 +44,11 @@ coils:
description: Name of the sensor.
required: true
type: string
hub:
description: The name of the hub.
required: false
default: default
type: string
slave:
description: The number of the slave (Optional for TCP and UDP Modbus).
required: true
@ -64,9 +71,11 @@ binary_sensor:
scan_interval: 10
coils:
- name: Sensor1
hub: hub1
slave: 1
coil: 100
- name: Sensor2
hub: hub1
slave: 1
coil: 110
```

View File

@ -52,7 +52,7 @@ password:
required: true
type: string
scan_interval:
description: How frequently to query for new data. Defaults to 60 seconds.
description: How frequently to query for new data. Defaults to 300 seconds (5 minutes).
required: false
type: integer
binary_sensors:
@ -95,7 +95,7 @@ Below is an example showing every possible entry:
blink:
username: YOUR_USERNAME
password: YOUR_PASSWORD
scan_interval: 60
scan_interval: 300
binary_sensors:
monitored_conditions:
- motion_enabled

View File

@ -0,0 +1,56 @@
---
layout: page
title: "CoolMasterNet Climate"
description: "Instructions on how to integrate CoolMasterNet within Home Assistant."
date: 2019-02-05 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: coolautomation.png
ha_category: Climate
ha_release: 0.88
ha_iot_class: "Local Polling"
---
The `coolmaster` climate platform lets you control HVAC through [CoolMasterNet](https://coolautomation.com/products/coolmasternet/). To set it up, add the following information to your `configuration.yaml` file:
```yaml
climate:
- platform: coolmaster
host: YOUR_COOLMASTER_HOST
port: YOUR_COOLMASTER_PORT
supported_modes:
- heat
- cool
- dry
```
{% configuration %}
host:
description: The host address of your CoolMasterNet instance (IP or host name).
required: true
type: string
port:
description: The port number of your CoolMasterNet instance.
required: false
type: integer
default: 10102
supported_modes:
description: The operation modes supported by your HVAC.
required: false
type: list
default: All modes
keys:
heat:
description: Heat mode.
cool:
description: Cool mode.
auto:
description: Auto mode.
dry:
description: Dry mode.
fan_only:
description: Fan only mode.
{% endconfiguration %}

View File

@ -35,6 +35,11 @@ name:
description: Displayed name of the A/C unit.
required: false
type: string
hub:
description: The name of the hub where this slave is located.
required: false
default: default
type: string
{% endconfiguration %}
<p class='note'>
@ -61,4 +66,4 @@ climate:
- platform: flexit
name: Main A/C
slave: 21
```
```

View File

@ -25,6 +25,7 @@ To use your Modbus thermostat in your installation, add the following to your `c
climate:
- platform: modbus
name: Watlow F4T
hub: hub1
slave: 1
target_temp_register: 2782
current_temp_register: 27586
@ -35,6 +36,11 @@ name:
description: Name of the device
required: true
type: string
hub:
description: The name of the hub.
required: false
default: default
type: string
slave:
description: The number of the slave (Optional for tcp and upd Modbus, use 1).
required: true

View File

@ -0,0 +1,16 @@
---
layout: page
title: "Default Config"
description: "The default config component will initate a default configuration for Home Assistant."
date: 2019-02-15 20:00
sidebar: true
comments: false
sharing: true
footer: true
logo: home-assistant.png
ha_category: Other
ha_release: 0.88
featured: false
---
This component is a meta-component and configures a default set of components for Home Assistant to load. The components that will be loaded can be found [here](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/default_config/__init__.py).

View File

@ -1,48 +0,0 @@
---
layout: page
title: "Google Home Bluetooth tracker"
description: "Instructions on how to use Google Home to track devices in Home Assistant."
date: 2018-11-04 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: google_home.png
ha_release: 0.83
ha_category: Presence Detection
ha_iot_class: "Local Polling"
---
The `googlehome` platform allows you to detect presence using an [unofficial Google Home API][googlehomeapi].
## {% linkable_title Configuration %}
To integrate Google Home Bluetooth tracker in Home Assistant, add the following section to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
device_tracker:
- platform: googlehome
host: IP_ADDRESS
```
{% configuration %}
host:
description: The IP address of the Google Home unit.
required: true
type: string
rssi_threshold:
description: The threshold for the RSSI signal of the device.
required: false
default: -70
type: integer
{% endconfiguration %}
## {% linkable_title Usage %}
Devices will appear in the format `devicetracker.<home hub ip>_<device mac address>`. Note that dots are removed from the IP and BT MAC addresses.
After running this component for a little while, you will likely see many devices appear. It's advisable to set the configuration to not discover new devices once the device you want to track have appeared (see [device tracker configuration][devicetrackerconfig] for details).
[googlehomeapi]: https://rithvikvibhu.github.io/GHLocalApi/
[devicetrackerconfig]: /components/device_tracker/#configuring-a-device_tracker-platform

View File

@ -121,6 +121,14 @@ Please note that clearing device registrations will prevent the device from send
Each event includes live image and video URLs for the Doorbird device that triggered the event. These URLs can be found on the event data and can be useful in automation actions. For example, you could use `html5_viewer_url` on a notification to be linked directly to the live view of the device that triggered the automation.
The following keys are available on `event_data`:
- `timestamp`
- `live_video_url`
- `live_image_url`
- `rtsp_live_video_url`
- `html5_viewer_url`
<p class="note">
The URLs on the event will be based on the configuration used to connect to your Doorbird device. Ability to connect from outside your network will depend on your configuration.
</p>

View File

@ -0,0 +1,120 @@
---
layout: page
title: "ebusd"
description: "The ebusd component allows the integration between eBUS heating system and Home Assistant."
date: 2018-12-27 15:00
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Sensor
ha_iot_class: "Local Polling"
ha_release: "0.88"
redirect_from:
- /components/sensor.ebusd/
---
Integration between [ebusd](https://github.com/john30/ebusd/) daemon for communication with eBUS heating systems, and Home Assistant using sensor component.
## {% linkable_title Configuration %}
Enable the sensor by adding the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
ebusd:
host: 127.0.0.1
circuit: '700'
```
{% configuration %}
host:
description: This is the IP address of your ebus daemon, e.g., `127.0.0.1`.
required: true
type: string
circuit:
description: The heating circuit name to monitor, e.g., 700.
required: true
type: string
port:
description: The port your ebus daemon uses.
type: integer
required: false
default: 8888
name:
description: The name to use when displaying this ebusd instance.
type: string
required: false
default: ebusd
monitored_conditions:
description: List of condition to monitor.
type: list
required: false
keys:
ActualFlowTemperatureDesired:
description: Heating circuit flow temperature desired.
MaxFlowTemperatureDesired:
description: Heating circuit maximum flow temperature.
MinFlowTemperatureDesired:
description: Heating circuit minimum flow temperature.
PumpStatus:
description: Heating circuit pump status.
HCSummerTemperatureLimit:
description: Heating circuit summer temperature limit.
HolidayTemperature:
description: Heating circuit holiday temperature.
HWTemperature:
description: Hot water circuit actual temperature.
HWTemperatureDesired:
description: Hot water circuit desired temperature.
HWTimerMonday:
description: Hot water circuit monday timer.
HWTimerTuesday:
description: Hot water circuit tuesday timer.
HWTimerWednesday:
description: Hot water circuit wednesday timer.
HWTimerThursday:
description: Hot water circuit thursday timer.
HWTimerFriday:
description: Hot water circuit friday timer.
HWTimerSaturday:
description: Hot water circuit saturday timer.
HWTimerSunday:
description: Hot water circuit sunday timer.
WaterPressure:
description: Water pressure (bar).
Zone1RoomZoneMapping:
description: Room controller assignment zone 1.
Zone1NightTemperature:
description: Heating circuit night temperature desired on zone 1.
Zone1DayTemperature:
description: Heating circuit day temperature desired on zone 1.
Zone1HolidayTemperature:
description: Heating circuit holiday temperature desired on zone 1.
Zone1RoomTemperature:
description: Actual room temperature on zone 1.
Zone1ActualRoomTemperatureDesired:
description: Actual room temperature desired on zone 1.
Zone1TimerMonday:
description: Heating circuit monday timer on zone 1.
Zone1TimerTuesday:
description: Heating circuit tuesday timer on zone 1.
Zone1TimerWednesday:
description: Heating circuit wednesday timer on zone 1.
Zone1TimerThursday:
description: Heating circuit thursday timer on zone 1.
Zone1TimerFriday:
description: Heating circuit friday timer on zone 1.
Zone1TimerSaturday:
description: Heating circuit saturday timer on zone 1.
Zone1TimerSunday:
description: Heating circuit sunday timer on zone 1.
Zone1OperativeMode:
description: Heating circuit operative mode (on/off/day/night).
ContinuosHeating:
description: Continuos heating.
PowerEnergyConsumptionLastMonth:
description: Power energy consumption from last month.
PowerEnergyConsumptionThisMonth:
description: Power energy consumption from the actual month.
{% endconfiguration %}

View File

@ -0,0 +1,86 @@
---
layout: page
title: "Fast.com"
description: "How to integrate Fast.com within Home Assistant."
date: 2019-02-01 21:30
sidebar: true
comments: false
sharing: true
footer: true
logo: fastdotcom.png
ha_category:
- System Monitor
- Sensor
featured: false
ha_release: 0.88
ha_iot_class: "Cloud Polling"
redirect_from:
- /components/sensor.fastdotcom/
---
The `fastdotcom` component uses the [Fast.com](https://fast.com/) web service to measure network bandwidth performance.
<p class='note'>
Currently fast.com only supports measuring download bandwidth. If you want to measure bandwidth metrics other then download such as ping and upload, utilize the [speedtest](/components/sensor.speedtest) component.
</p>
Enabling this component will automatically create the Fast.com Sensor.
By default, a speed test will be run every hour. The user can change the update frequency in the configuration by defining the `scan_interval` for a speed test to run.
## {% linkable_title Configuration %}
To add Fast.com to your installation, add the following to your `configuration.yaml` file:
Once per hour, on the hour (default):
```yaml
fastdotcom:
```
Every half hour of every day:
```yaml
fastdotcom:
scan_interval:
minutes: 30
```
{% configuration %}
scan_interval:
description: "Minimum time interval between updates. Supported formats: `scan_interval: 'HH:MM:SS'`, `scan_interval: 'HH:MM'` and Time period dictionary (see example below)."
required: false
default: 60 minutes
type: time
manual:
description: Turn manual mode on or off. Manual mode will disable scheduled speedtests.
required: false
default: false
type: boolean
{% endconfiguration %}
#### {% linkable_title Time period dictionary example %}
```yaml
scan_interval:
# At least one of these must be specified:
days: 0
hours: 0
minutes: 3
seconds: 30
milliseconds: 0
```
### {% linkable_title Service %}
Once loaded, the `fastdotcom` component will expose a service (`fastdotcom.speedtest`) that can be called to run a Fast.com speed test on demand. This service takes no parameters. This can be useful if you have enabled manual mode.
```yaml
action:
service: fastdotcom.speedtest
```
## {% linkable_title Notes %}
- When running on Raspberry Pi, the maximum speed is limited by its 100 Mbit/s LAN adapter.
- The sensor will return the maximum measured speed during a 15-second test.

View File

@ -44,7 +44,7 @@ freedns:
description: The full update URL. This is exclusive to `access_token`.
required: false
type: string
update_interval:
scan_interval:
description: How often to call the update service.
required: false
type: time period

View File

@ -0,0 +1,86 @@
---
layout: page
title: "Google Pub/Sub"
description: "Setup for Google Pub/Sub integration"
date: 2019-01-12 13:30
sidebar: true
comments: false
sharing: true
footer: true
logo: google-pubsub.png
ha_category: History
ha_release: 0.88
---
The `google_pubsub` component allows you to hook into the Home Assistant event bus and send events to [Google Cloud Pub/Sub](https://cloud.google.com/pubsub/docs/overview). The current [free tier](https://cloud.google.com/free/) of GCP should allow you to sync about 1 event every 2 seconds on average (2 million invocations per month).
## {% linkable_title First time setup %}
This assumes you already have a Google Cloud project. If you don't, please create one in the [Google Cloud Console](https://console.cloud.google.com/projectcreate)
You need to create a Service Account key in the [Google Cloud API Console](https://console.cloud.google.com/apis/credentials/serviceaccountkey)
- Choose a new "New Service Account", give it a name and leave the key type as JSON
- Select the role: Pub/Sub Publisher
This will download the Service Account JSON key to your machine. Do NOT share this with anyone. Place this file in your Home Assistant config folder.
Next, create a Google Pub/Sub topic in the [Google Cloud API Console](https://console.cloud.google.com/cloudpubsub/topicList). The topic name will become something like `projects/project-198373/topics/topic-name`. Note the last part only (the name you chose): `topic-name`.
## {% linkable_title Configuration %}
Add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
google_pubsub:
project_id: YOUR_PROJECT_ID
topic_name: YOUR_TOPIC_NAME
credentials_json: CREDENTIALS_FILENAME
```
{% configuration %}
project_id:
description: Project ID from the Google console (looks like `words-2ab12`).
required: true
type: string
topic_name:
description: The Pub/Sub topic name.
required: true
type: string
credentials_json:
description: The filename of the Google Service Account JSON file.
required: true
type: string
filter:
description: Filter domains and entities for Google Cloud Pub/Sub.
required: false
type: map
default: Includes all entities from all domains
keys:
include_domains:
description: List of domains to include (e.g., `light`).
required: false
type: list
exclude_domains:
description: List of domains to exclude (e.g., `light`).
required: false
type: list
include_entities:
description: List of entities to include (e.g., `light.attic`).
required: false
type: list
exclude_entities:
description: List of entities to include (e.g., `light.attic`).
required: false
type: list
{% endconfiguration %}
<p class='note warning'>
Not filtering domains or entities will send every event to Google PubSub, thus hitting the free tier limit very fast. Be sure to fill in this configuration parameter or have a paid subscription for Google Cloud.
</p>
### {% linkable_title Saving the data using a Google Cloud Function %}
To save your data automatically to BigQuery, follow the [instructions here](https://github.com/timvancann/home-assistant-pubsub-cloud-function). The current [free tier](https://cloud.google.com/free/) of GCP should allow to store up to 10GB of data.

View File

@ -0,0 +1,77 @@
---
layout: page
title: "Google Home"
description: "Instructions on how to connect to your Google Home device."
date: 2018-11-04 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: google_home.png
ha_release: 0.88
ha_category:
- Hub
- Presence Detection
- Sensor
ha_iot_class: "Local Polling"
redirect_from:
- /components/device_tracker.googlehome/
---
The `googlehome` component allows you to connect to your Google Home device using an [unofficial Google Home API][googlehomeapi].
This component will provide:
- [device_tracker](/components/device_tracker/) platform to track nearby bluetooth devices;
- [sensor](/components/sensor/) platform to track the alarms and the timers.
## {% linkable_title Configuration %}
To integrate the `googlehome` component in Home Assistant, add the following section to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
googlehome:
devices:
- host: IP_ADDRESS
```
{% configuration %}
devices:
description: A list of Google Home devices.
required: true
type: list
keys:
host:
description: The IP address of the Google Home device.
required: true
type: string
rssi_threshold:
description: The threshold for the RSSI signal of the device.
required: false
default: -70
type: integer
device_types:
description: Device types that will be tracked [see device types](#device_types), by default all types are tracked.
required: false
type: list
track_alarms:
description: Setting to tell the component to track the alarms of the device.
required: false
type: boolean
default: false
{% endconfiguration %}
## {% linkable_title Device types %}
Device type | Description
-- | --
1 | Classic - BR/EDR devices
2 | Low Energy - LE-only
3 | Dual Mode - BR/EDR/LE
## {% linkable_title Notes %}
Devices will appear in the format `devicetracker.<home hub ip>_<device mac address>`. Note that dots are removed from the IP and BT MAC addresses.
[googlehomeapi]: https://rithvikvibhu.github.io/GHLocalApi/
[devicetrackerconfig]: /components/device_tracker/#configuring-a-device_tracker-platform

View File

@ -323,6 +323,7 @@ The following components are currently supported:
| cover | WindowCovering | All covers that support `open_cover`, `stop_cover` and `close_cover` through value mapping. (`open` -> `>70`; `close` -> `<30`; `stop` -> every value in between) |
| device_tracker | Sensor | Support for `occupancy` device class. |
| fan | Fan | Support for `on / off`, `direction` and `oscillating`. |
| fan | Fan | All fans that support `speed` and `speed_list` through value mapping: `speed_list` is assumed to contain values in ascending order. The numeric ranges of HomeKit map to a corresponding entry of `speed_list`. The first entry of `speed_list` should be equivalent to `off` to match HomeKit's concept of fan speeds. (Example: `speed_list` = [`off`, `low`, `high`]; `off` -> `<= 33`; `low` -> between `33` and `66`; `high` -> `> 66`) |
| light | Light | Support for `on / off`, `brightness` and `rgb_color`. |
| lock | DoorLock | Support for `lock / unlock`. |
| media_player | MediaPlayer | Represented as a series of switches which control `on / off`, `play / pause`, `play / stop`, or `mute` depending on `supported_features` of entity and the `mode` list specified in `entity_config`. |

View File

@ -123,3 +123,4 @@ authtoken:
* Blind actuator for brand switches (*HmIP-BBL*)
* Shutter actuator brand-mount (*HmIP-BROLL*)
* Shutter actuator flush-mount (*HmIP-FROLL*)

View File

@ -11,6 +11,8 @@ logo: ipma.png
ha_category: Weather
ha_release: 0.72
ha_iot_class: "Cloud Polling"
redirect_from:
- /components/weather.ipma/
---
The `ipma` weather platform uses the [Instituto Português do Mar e Atmosfera](http://www.ipma.pt) as a source for current and forecast meteorological data.

View File

@ -47,7 +47,7 @@ automatic_add:
default: false
type: boolean
devices:
description: A list of devices with their ip address
description: A list of devices with their ip address.
required: false
type: list
keys:
@ -56,14 +56,33 @@ devices:
required: false
type: string
mode:
description: "The chosen brightness mode, options are: 'rgbw' and 'rgb'."
description: "The chosen brightness mode, options are: `rgbw`, `rgb` and `w`."
required: false
default: rgbw
type: string
protocol:
description: Set this to 'ledenet' if you are using a ledenet bulb.
description: Set this to `ledenet` if you are using a ledenet bulb.
required: false
type: string
custom_effect:
description: A definition of the custom effect.
required: false
type: map
keys:
colors:
description: A list of 1 to 16 colors, used in the effect loop (see example below). Defined as three comma-separated integers between 0 and 255 that represent the color in RGB. There is no way to set brightness, but you can define lower RGB values to simulate lower brightness. E.g., if you want 50% red, define it as `[127,0,0]` instead of `[255,0,0]`.
required: true
type: list
speed_pct:
description: A speed in percents (100 being the fastest), at which controller will transition between the colors.
required: false
type: integer
default: 50
transition:
description: "A type of transition, which will be used to transition between the colors. Supported values are: `gradual`, `jump` and `strobe`."
required: false
type: string
default: gradual
{% endconfiguration %}
<p class='note'>
@ -144,16 +163,36 @@ light:
### {% linkable_title Effects %}
The FLUX_LED light offers a number of effects which are not included in other lighting packages. These can be selected from the front-end, or sent in the effect field of the light TURN_ON command.
The Flux Led light offers a number of effects which are not included in other lighting packages. These can be selected from the front-end, or sent in the effect field of the `light.turn_on` command.
| Effect Name | Description |
|------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|
| colorloop | Smoothly transitions through the rainbow |
| colorjump | Jumps through seven different rainbow colors. |
| colorstrobe | Strobes each rainbow color in a loop. |
| random | Chooses a random color by selecting random values for R, G, and B |
| red_fade, green_fade, blue_fade, yellow_fade, cyan_fade, purple_fade, white_fade | Fades between the color as indicated in the effect name and black. |
| rg_cross_fade | Fades between red and green. |
| rb_cross_fade | Fades between red and blue. |
| gb_cross_fade | Fades between green and blue |
| red_strobe, green_strobe, blue_strobe, yellow_strobe, cyan_strobe, purple_strobe, white_strobe | Strobes the color indicated by the effect name. |
| Effect Name | Description |
|--------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|
| `colorloop` | Smoothly transitions through the rainbow. |
| `colorjump` | Jumps through seven different rainbow colors. |
| `colorstrobe` | Strobes each rainbow color in a loop. |
| `red_fade`, `green_fade`, `blue_fade`, `yellow_fade`, `cyan_fade`, `purple_fade`, `white_fade` | Fades between the color as indicated in the effect name and black. |
| `rg_cross_fade` | Fades between red and green. |
| `rb_cross_fade` | Fades between red and blue. |
| `gb_cross_fade` | Fades between green and blue. |
| `red_strobe`, `green_strobe`, `blue_strobe`, `yellow_strobe`, `cyan_strobe`, `purple_strobe`, `white_strobe` | Strobes the color indicated by the effect name. |
| `random` | Chooses a random color by selecting random values for R, G, and B. |
| `custom` | Custom effect (if defined, see below). |
Users can define their own custom effect. It consists of three parameters: a list of 1 to 16 colors, speed and type of transition. The controller will transition between the colors in a loop, with sepcified transition and speed. Here is an example of a custom effect that will quickly flash red, yellow, green, cyan, blue, magenta in a loop:
```yaml
light:
- platform: flux_led
devices:
192.168.1.10:
custom_effect:
speed_pct: 100
transition: 'strobe'
colors:
- [255,0,0]
- [255,255,0]
- [0,255,0]
- [0,255,255]
- [0,0,255]
- [255,0,255]
```

View File

@ -13,10 +13,14 @@ ha_release: 0.44
ha_iot_class: "Local Polling"
---
The `knx light` component is used as an interface to control knx actuators for lighting applications such as:
The `knx` light component is used as in interface to switching/light actuators.
- switching actuators
- dimming actuators
- LED controllers
- DALI gateways
The `knx` component must be configured correctly, see [KNX Component](/components/knx).
The `knx` component must be configured correctly to use this component, see [KNX Component](/components/knx).
## {% linkable_title Configuration %}
@ -31,34 +35,107 @@ light:
{% configuration %}
address:
description: KNX group address for switching the light on and off.
description: KNX group address for switching the light on and off. *DPT 1.001*
required: true
type: string
state_address:
description: KNX group address for retrieving the switch state of the light. *DPT 1.001*
required: false
type: string
name:
description: A name for this device used within Home Assistant.
required: false
type: string
brightness_address:
description: KNX group address for dimming light.
required: false
type: string
state_address:
description: separate KNX group address for retrieving the switch state of the light.
description: KNX group address for setting the brightness of the light in percent (absolute dimming). *DPT 5.001*
required: false
type: string
brightness_state_address:
description: separate KNX group address for retrieving the dimmed state of the light.
description: KNX group address for retrieving the brightness of the light in percent. *DPT 5.001*
required: false
type: string
color_address:
description: separate KNX group address for setting the color of the light.
description: KNX group address for setting the RGB color of the light. *DPT 232.600*
required: false
type: string
color_state_address:
description: separate KNX group address for retrieving the color of the light.
description: KNX group address for retrieving the RGB color of the light. *DPT 232.600*
required: false
type: string
color_temperature_address:
description: KNX group address for setting the color temperature of the light. *DPT 5.001 or 7.600 based on color_temperature_mode*
required: false
type: string
color_temperature_state_address:
description: KNX group address for retrieving the color temperature of the light. *DPT 5.001 or 7.600 based on color_temperature_mode*
required: false
type: string
color_temperature_mode:
description: Color temperature group address data type.
keys:
absolute:
description: color temperature in Kelvin. *color_temperature_address -> DPT 7.600*
relative:
description: color temperature in percent cold white (0% warmest; 100% coldest). *color_temperature_address -> DPT 5.001*
required: false
type: string
default: absolute
min_kelvin:
description: Warmest possible color temperature in Kelvin. (Used in combination with *color_temperature_address*)
required: false
type: integer
default: 2700
max_kelvin:
description: Coldest possible color temperature in Kelvin. (Used in combination with *color_temperature_address*)
required: false
type: integer
default: 6000
{% endconfiguration %}
Some KNX devices can change their state internally without any messages on the KNX bus, e.g., if you configure a timer on a channel. The optional `state_address` can be used to inform Home Assistant about these state changes. If a KNX message is seen on the bus addressed to the given state address, this will overwrite the state of the switch object.
For switching/light actuators that are only controlled by a single group address and can't change their state internally, you don't have to configure the state address.
Many KNX devices can change their state internally without a message to the switch address on the KNX bus, e.g., if you configure a scene or a timer on a channel. The optional `state_address` can be used to inform Home Assistant about these state changes. If a KNX message is seen on the bus addressed to the given `state_address` (in most cases from the light actuator), it will overwrite the state of the switch object.
For switching/light actuators that are only controlled by a single group address and don't have dedicated state communication objects you can set `state_address` to the same value as `address`.
*Note on tunable white:* Home-Assistant uses Mireds as the unit for color temperature, whereas KNX typically uses Kelvin. The Kelvin/Mireds relationship is reciprocal, not linear, therefore the color temperature pickers (sliders) in Home-Assistant may not align with ones of KNX visualizations. This is the expected behavior.
## {% linkable_title Extended configuration example %}
```yaml
light:
# dimmable light
- platform: knx
name: Bedroom-Light-1
address: '1/0/9'
state_address: '1/1/9'
brightness_address: '1/2/9'
brightness_state_address: '1/3/9'
#
# RGB light
- platform: knx
name: Bathroom-Light-1
address: '1/0/9'
state_address: '1/1/9'
brightness_address: '1/2/9'
brightness_state_address: '1/3/9'
color_address: '1/4/9'
color_state_address: '1/5/9'
#
# tunable white light
- platform: knx
name: Office-Light-1
address: '1/0/21'
state_address: '1/1/21'
brightness_address: '1/2/21'
brightness_state_address: '1/3/21'
color_temperature_address: '1/4/21'
color_temperature_state_address: '1/5/21'
color_temperature_mode: absolute
min_kelvin: 2550
max_kelvin: 6200
#
# actuator without dedicated state communication object
- platform: knx
name: Cellar-Light-1
address: '1/0/5'
state_address: '1/0/5'
```

View File

@ -30,6 +30,7 @@ Currently known supported models:
- TX-P50GT30Y
- TX-P50GT60E
- TH-32ES500
- TX-42AS650
If your model is not on the list then give it a test, if everything works correctly then add it to the list on [GitHub](https://github.com/home-assistant/home-assistant.github.io/blob/next/source/_components/media_player.panasonic_viera.markdown).

View File

@ -28,6 +28,7 @@ For a network connection, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry for a TCP connection
modbus:
name: hub1
type: tcp
host: IP_ADDRESS
port: 2020
@ -46,6 +47,11 @@ port:
description: The network port for the communication.
required: true
type: integer
name:
description: Name for this hub. Must be unique, so it is required when setting up multiple instances.
required: false
default: default
type: string
timeout:
description: Timeout for slave response in seconds.
required: false
@ -60,6 +66,7 @@ For a serial connection, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry for a serial connection
modbus:
name: hub1
type: serial
method: rtu
port: /dev/ttyUSB0
@ -98,6 +105,11 @@ parity:
description: "The parity for the serial connection; can be `E`, `O` or `N`."
required: true
type: string
name:
description: Name for this hub. Must be unique, so it is required when setting up multiple instances.
required: false
default: default
type: string
timeout:
description: Timeout for slave response in seconds.
required: false
@ -105,17 +117,36 @@ timeout:
type: integer
{% endconfiguration %}
### {% linkable_title Multiple connections %}
Multiple connections are possible, add something like the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry for multiple TCP connections
modbus:
- type: tcp
host: IP_ADDRESS_1
port: 2020
hub: hub1
- type: tcp
host: IP_ADDRESS_2
port: 501
hub: hub2
```
### {% linkable_title Services %}
| Service | Description |
| ------- | ----------- |
| write_register | Write register. Requires `unit`, `address` and `value` fields. `value` can be either single value or an array |
| write_register | Write register. Requires `hub`, `unit`, `address` and `value` fields. `value` can be either single value or an array |
#### {% linkable_title Service Data Attributes %}
| Attribute | Description |
| --------- | ----------- |
| hub | Hub name (defaults to 'default' when omitted) |
| unit | Slave address (set to 255 you talk to Modbus via TCP) |
| address | Address of the Register (e.g., 138) |
| value | An array of 16-bit values. Might need reverse ordering. E.g., to set 0x0004 you might need to set `[4,0]` |

View File

@ -0,0 +1,46 @@
---
layout: page
title: "Norway Air Quality"
description: "Display the current status of Norway air quality."
date: 2019-02-02 18:00
sidebar: true
comments: false
sharing: true
footer: true
logo: metno.png
ha_category: Health
ha_iot_class: "Cloud Polling"
ha_release: 0.88
---
The `norway_air` component [queries](https://luftkvalitet.miljostatus.no/) the Norway air quality [data feed](https://api.met.no/weatherapi/airqualityforecast/0.1/documentation) provided by the Norwegian Meteorological Institute.
To add air quality sensor to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
air_quality:
- platform: norway_air
```
{% configuration %}
name:
description: Additional name for the sensor.
required: false
type: string
default: Air quality
forecast:
description: If you want to get forecast data instead of the current data, set this to the number of hours that you want to look into the future.
required: false
type: integer
latitude:
description: Manually specify latitude.
required: false
type: number
default: Provided by Home Assistant configuration
longitude:
description: Manually specify longitude.
required: false
type: number
default: Provided by Home Assistant configuration
{% endconfiguration %}

View File

@ -22,6 +22,18 @@ HTML5 push notifications **do not** work on iOS.
To enable this platform, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
notify:
- platform: html5
name: NOTIFIER_NAME
vapid_pub_key: YOUR_PUBLIC_KEY
vapid_prv_key: YOUR_PRIVATE_KEY
vapid_email: YOUR_EMAIL
```
Or
```yaml
# Example configuration.yaml entry
notify:
@ -54,7 +66,9 @@ gcm_sender_id:
3. Go to [https://console.cloud.google.com/apis/credentials/domainverification](https://console.cloud.google.com/apis/credentials/domainverification) and verify your domain via Google Webmaster Central / Search Console - [instructions](#verify-your-domain).
4. With the domain verified, go to [https://console.firebase.google.com](https://console.firebase.google.com), select import Google project and select the project you created.
5. Then, click the cogwheel on top left and select "Project settings".
6. Select 'Cloud Messaging' tab, listed beneath Project Credentials will be your 152 character 'Server Key' and 12 digit ID 'Sender ID' you need for configuring this component.
6. Select 'Cloud Messaging' tab.
7. If using VAPID: Generate a new key pair under the Web configuration listing at the bottom of the page. To view the private key click the three dots to the right and 'Show private key'.
8. If using GCM: Listed beneath Project Credentials will be your 152 character 'Server Key' and 12 digit ID 'Sender ID' you need for configuring this component. Notice: GCM is deprecated and will stop working in April 2019, see https://developers.google.com/cloud-messaging/faq
#### {% linkable_title Verify your domain %}

View File

@ -0,0 +1,46 @@
---
layout: page
title: "Huawei LTE Notify"
description: "Instructions on how to add Huawei LTE notifications to Home Assistant."
date: 2018-12-23 17:00
sidebar: true
comments: false
sharing: true
footer: true
logo: huawei.svg
ha_category: Notifications
ha_release: 0.88
---
The `huawei_lte` platform allows you to use a Huawei LTE router for
notifications from Home Assistant. The messages will be sent as SMS
text messages.
This requires you to have set up the
[Huawei LTE component](/components/huawei_lte/).
```yaml
# Example configuration.yaml entry
notify:
- platform: huawei_lte
recipient: "+15105550123"
```
{% configuration %}
recipient:
description: The phone number of a default recipient or a list with multiple recipients.
required: true
type: string, list
name:
description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`.
required: false
default: notify
type: string
url:
description: The router to use. Not needed if you only have one.
required: false
type: url
{% endconfiguration %}
To use notifications, please see the
[getting started with automation page](/getting-started/automation/).

View File

@ -0,0 +1,68 @@
---
layout: page
title: "Person"
description: "Instructions on how to setup people tracking within Home Assistant."
date: 2019-02-05 22:36
sidebar: true
comments: false
sharing: true
footer: true
logo: home-assistant.png
ha_category: Presence Detection
ha_qa_scale: internal
ha_release: 0.88
---
The person component allows to connect device tracker entities to one or more person entities. The last state update of a connected device tracker will set the state of the person. Eg if you connect your router and your owntracks device as trackers to your person, the last state update from either the router or your owntracks device will set the state of your person.
You can manage persons via the UI from the person page inside the configuration panel.
## {% linkable_title Configuring the `person` component via YAML %}
If you prefer YAML, you can also configure your persons via `configuration.yaml`:
```yaml
# Example configuration.yaml entry
person:
- name: Ada
id: ada6789
device_trackers:
- device_tracker.ada
```
{% configuration %}
id:
description: A unique id of the person.
required: true
type: string
name:
description: The name of the person.
required: true
type: string
user_id:
description: The user id of the Home Assistant user account for the person.
required: false
type: string
device_trackers:
description: A list of device tracker entity ids to track. These will represent the state of the person.
required: false
type: list, string
{% endconfiguration %}
An extended example would look like the following sample:
```yaml
# Example configuration.yaml entry
person:
- name: Ada
id: ada6789
device_trackers:
- device_tracker.ada
- name: Stacey
id: stacey12345
user_id: 12345678912345678912345678912345
device_trackers:
- device_tracker.stacey
- device_tracker.beacon
```

View File

@ -69,5 +69,5 @@ automation:
```
<p class='note'>
Please note that the scene component currently only supports one service call per entity to achieve the state. Due to this limitation, you cannot set states belonging to different services. A workaround for this limitation is to write a script, which you then turn on in your scene.
Please note that the scene component for the most part only supports one service call per entity to achieve the state. Due to this limitation, you cannot set states belonging to different services. A workaround for this limitation is to write a script, which you then turn on in your scene. A few components have direct support for multiple service calls per state, Currently this is the media_player and climate components.
</p>

View File

@ -33,7 +33,7 @@ Configuration options:
- **host** (*Required*): The hostname/IP address to connect to.
- **mac** (*Required*): Device mac address.
- **name** (*Optional*): Default BL. Sensor name
- **update_interval** (*Optional*): Time in seconds to fetch data from sensors. Default 300.
- **scan_interval** (*Optional*): Time in seconds to fetch data from sensors. Default 300.
- **timeout** (*Optional*): Timeout in seconds for the connection to the device.
- **monitored_conditions** array (*Required*): States to monitor.
- 'temperature'
@ -49,7 +49,7 @@ Obtain sensor data from an A1:
```yaml
sensor:
- platform: broadlink
update_interval: 60
scan_interval: 60
host: IP_ADDRESS
mac: 'MAC_ADDRESS'
monitored_conditions:
@ -65,7 +65,7 @@ Obtain temperature data from an RM2:
```yaml
sensor:
- platform: broadlink
update_interval: 60
scan_interval: 60
host: IP_ADDRESS
mac: 'MAC_ADDRESS'
monitored_conditions:

View File

@ -143,8 +143,8 @@ units:
required: false
default: "`si` or `us`, based on the temperature preference in Home Assistant."
type: string
update_interval:
description: "Minimum time interval between updates. Supported formats: `update_interval: 'HH:MM:SS'`, `update_interval: 'HH:MM'` and Time period dictionary (see example below)."
scan_interval:
description: "Minimum time interval between updates. Supported formats: `scan_interval: 'HH:MM:SS'`, `scan_interval: 'HH:MM'` and Time period dictionary (see example below)."
required: false
default: 2 minutes
type: time
@ -153,7 +153,7 @@ update_interval:
#### {% linkable_title Time period dictionary example %}
```yaml
update_interval:
scan_interval:
# At least one of these must be specified:
days: 0
hours: 0
@ -183,6 +183,7 @@ All language options are described in this table that you can use for the dark s
|Estonian|`et`|
|Finnish|`fi`|
|French|`fr`|
|Hebrew|`he`|
|Croatian|`hr`|
|Hungarian|`hu`|
|Indonesian|`id`|
@ -190,7 +191,9 @@ All language options are described in this table that you can use for the dark s
|Italian|`it`|
|Japanese|`ja`|
|Georgian|`ka`|
|Korean|`ko`|
|Cornish|`kw`|
|Latvian|`lv`|
|Norwegian Bokmål|`nb`|
|Dutch|`nl`|
|Polish|`pl`|

View File

@ -64,6 +64,11 @@ sensor:
description: "Version of DSMR used by meter. Choices: 2.2, 4, 5. Defaults to 2.2."
required: false
type: string
precision:
description: Defines the precision of the calculated values, through the argument of round().
required: false
type: integer
default: 3
{% endconfiguration %}
Full configuration examples can be found below:

View File

@ -1,73 +0,0 @@
---
layout: page
title: "Fast.com"
description: "How to integrate Fast.com within Home Assistant."
date: 2016-08-10 17:30
sidebar: true
comments: false
sharing: true
footer: true
logo: fastdotcom.png
ha_category: System Monitor
featured: false
ha_release: 0.26
ha_iot_class: "Cloud Polling"
---
The `fastdotcom` sensor component uses the [Fast.com](https://fast.com/) web service to measure network bandwidth performance.
<p class='note'>
Currently fast.com only supports measuring download bandwidth. If you want to measure bandwidth metrics other then download such as ping and upload, utilize the [speedtest](/components/sensor.speedtest) component.
</p>
By default, it will run every hour. The user can change the update frequency in the configuration by defining the minute and hour for a speedtest to run.
## {% linkable_title Configuration %}
To add a Fast.com sensor to your installation, add the following to your `configuration.yaml` file:
Once per hour, on the hour (default):
```yaml
sensor:
- platform: fastdotcom
```
Every half hour of every day:
```yaml
sensor:
- platform: fastdotcom
minute:
- 0
- 30
```
{% configuration %}
second:
description: Specify the second(s) of the hour to schedule the speedtest. Use a list for multiple entries.
required: false
default: 0
type: list
minute:
description: Specify the minute(s) of the hour to schedule the speedtest. Use a list for multiple entries.
required: false
default: 0
type: list
hour:
description: Specify the hour(s) of the day to schedule the speedtest. Use a list for multiple entries.
required: false
type: list
manual:
description: Turn manual mode on or off. Manual mode will disable scheduled speedtests.
required: false
default: false
type: boolean
{% endconfiguration %}
There is also a service named `sensor.update_fastdotcom` that you can use to run a fast.com speedtest on demand. You can turn on manual mode to disable the scheduled speedtests.
## {% linkable_title Notes %}
- When running on Raspberry Pi, just note that the maximum speed is limited by its 100 Mbit/s LAN adapter.
- This entity will return the maximum measured speed during an 15 second test.

View File

@ -32,11 +32,11 @@ Configuration options for the FedEx Sensor:
- **username** (*Required*): The username to access the FedEx Delivery Manager service.
- **password** (*Required*): The password for the given username.
- **name** (*Optional*): Name the sensor.
- **update_inverval** (*Optional*): Minimum time interval between updates. Default is 1 hour. Supported formats:
- `update_interval: 'HH:MM:SS'`
- `update_interval: 'HH:MM'`
- **scan_inverval** (*Optional*): Minimum time interval between updates. Default is 1 hour. Supported formats:
- `scan_interval: 'HH:MM:SS'`
- `scan_interval: 'HH:MM'`
- Time period dictionary, e.g.:
<pre>update_interval:
<pre>scan_interval:
# At least one of these must be specified:
days: 0
hours: 0

View File

@ -0,0 +1,57 @@
---
layout: page
title: "GitHub Sensor"
description: "How to integrate the GitHub sensor into Home Assistant."
date: 2018-12-24 18:00
sidebar: true
comments: false
sharing: true
footer: true
logo: github.png
ha_category: Sensor
ha_release: 0.88
ha_iot_class: "Cloud Polling"
---
The GitHub sensor integrates data from [GitHub](https://github.com/) to monitor your favorite repositories.
## {% linkable_title Setup %}
To set up this sensor you will need a [personal access token][accesstoken]. You will need to check the `repo` scope for the sensor to function.
## {% linkable_title Configuration %}
To enable this platform, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: github
access_token: !secret github_access_token
repositories:
- path: 'home-assistant/home-assistant'
```
{% configuration %}
access_token:
description: Your GitHub Access Token
required: true
type: string
url:
description: If you are using a GitHub Enterprise server, add it's URL here. For example, `https://mygithubserver.com`
required: false
type: string
repositories:
description: A list of repository paths and optionally a name
required: true
type: list
keys:
path:
description: Path to the repository. For Home Assistant this will be `home-assistant/home-assistant`
required: true
type: string
name:
description: Name of the sensor. Gives the sensor a custom name in Home Assistant. Defaults to the repository name from GitHub if not specified.
required: false
type: string
{% endconfiguration %}

View File

@ -7,14 +7,16 @@ sidebar: true
comments: false
sharing: true
footer: true
ha_category: Utility
ha_category:
- Utility
- Energy
ha_release: 0.87
ha_iot_class: "Local Push"
logo: integral.png
ha_qa_scale: internal
---
The `integration` platform provides the [Riemann sum](https://en.wikipedia.org/wiki/Riemann_sum) of the values provided by a source sensor. The Riemann sum is an approximation of an **integral** by a finite sum. In this implementation, we follow the Trapezoidal rule.
The `integration` platform provides the [Riemann sum](https://en.wikipedia.org/wiki/Riemann_sum) of the values provided by a source sensor. The Riemann sum is an approximation of an **integral** by a finite sum. In this implementation, the default is the Trapezoidal method, but Left and Right methods can optionally be used.
## {% linkable_title Configuration %}
@ -56,6 +58,10 @@ unit:
description: Unit of Measurement to be used for the integration.
required: false
type: string
method:
description: Riemann sum method to be used. Available methods are trapezoidal, left, right.
required: false
default: trapezoidal
{% endconfiguration %}
If 'unit' is set then 'unit_prefix' and 'unit_time' are ignored.

View File

@ -26,15 +26,18 @@ sensor:
platform: modbus
registers:
- name: Sensor1
hub: hub1
unit_of_measurement: °C
slave: 1
register: 100
- name: Sensor2
hub: hub1
unit_of_measurement: mg
slave: 1
register: 110
count: 2
- name: Sensor3
hub: hub1
unit_of_measurement: °C
slave: 1
register: 120
@ -55,6 +58,11 @@ registers:
description: Name of the sensor.
required: true
type: string
hub:
description: The name of the hub.
required: false
default: default
type: string
slave:
description: The number of the slave (Optional for tcp and upd Modbus).
required: true
@ -118,6 +126,7 @@ sensor:
scan_interval: 10
registers:
- name: Room_1
hub: hub1
slave: 10
register: 0
register_type: holding

View File

@ -0,0 +1,77 @@
---
layout: page
title: "Rejseplanen Public Transport"
description: "Instructions on how to integrate timetable data for danish Rejseplanen within Home Assistant."
date: 2019-01-09 08:52
sidebar: true
comments: false
sharing: true
footer: true
logo: rejseplanen.png
ha_category: Transport
ha_iot_class: "Cloud Polling"
ha_release: 0.88
---
The `rejseplanen` sensor will provide you with traveling details for Danish public transport, using timetable data from [Rejseplanen](https://www.rejseplanen.dk/).
## {% linkable_title Configuration %}
Add a sensor to your `configuration.yaml` file as shown in the example:
```yaml
# Example configuration.yaml entry
sensor:
- platform: rejseplanen
stop_id: 'YOUR_STOP_ID'
```
The `stop_id` can be obtained by looking up the name of the stop at this link:
<http://xmlopen.rejseplanen.dk/bin/rest.exe/location?format=json&input=STOP_NAME>
find the stop and copy the `id` field with the trailing zeros.
The sensor can filter the timetables by one or more routes, directions and types. The known types are listed in the table below.
| Departure type | Description |
|--------------|-------------|
| BUS | Normal bus |
| EXB | Express bus |
| M | Metro |
| S | S-train |
| REG | Regional train |
{% configuration %}
stop_id:
description: The id of the public transport stop.
required: true
type: string
route:
description: List of route names.
required: false
type: string|list
direction:
description: List of directions to filter by.
required: false
type: string|list
departure_type:
description: List of departure types to filter by.
required: false
type: string|list
{% endconfiguration %}
## {% linkable_title Examples %}
A more extensive example on how to use this sensor:
```yaml
# Example configuration.yaml entry
sensor:
- platform: rejseplanen
stop_id: '000045740'
route: 'Bus 350S'
direction:
- 'Herlev St.'
- 'Ballerup St.'
```

View File

@ -32,11 +32,11 @@ Configuration options for the UPS Sensor:
- **username** (*Required*): The username to access the UPS My Choice service.
- **password** (*Required*): The password for the given username.
- **name** (*Optional*): Name the sensor.
- **update_inverval** (*Optional*): Minimum time interval between updates. Default is 1 hour. Supported formats:
- `update_interval: 'HH:MM:SS'`
- `update_interval: 'HH:MM'`
- **scan_inverval** (*Optional*): Minimum time interval between updates. Default is 1 hour. Supported formats:
- `scan_interval: 'HH:MM:SS'`
- `scan_interval: 'HH:MM'`
- Time period dictionary, e.g.:
<pre>update_interval:
<pre>scan_interval:
# At least one of these must be specified:
days: 0
hours: 0

View File

@ -10,20 +10,29 @@ footer: true
featured: true
logo: samsung_smartthings.png
ha_category:
- Binary Sensor
- Fan
- Hub
- Binary Sensor
- Climate
- Fan
- Light
- Lock
- Sensor
- Switch
ha_release: "0.87"
ha_iot_class: "Cloud Push"
redirect_from:
- /components/smartthings.binary_sensor/
- /components/binary_sensor.smartthings/
- /components/smartthings.climate/
- /components/climate.smartthings/
- /components/smartthings.fan/
- /components/fan.smartthings/
- /components/smartthings.light/
- /components/light.smartthings/
- /components/smartthings.lock/
- /components/lock.smartthings/
- /components/smartthings.sensor/
- /components/sensor.smartthings/
- /components/smartthings.switch/
- /components/switch.smartthings/
---
@ -35,6 +44,13 @@ Samsung SmartThings is integrated into Home Assistant through the SmartThings Cl
3. Support for multiple SmartThings accounts and locations, each represented as a unique integration in the front-end configuration.
4. No brokers, bridges, or additional dependencies.
See it in action, with a step-by-step setup guide, thanks to a fan! (v0.87 featured):
<div class='videoWrapper'>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/QZHlhQ7fqrA" frameborder="0" allowfullscreen></iframe>
</div>
## {% linkable_title Basic requirements %}
1. A [personal access token](https://account.smartthings.com/tokens) tied to a Samsung or SmartThings account (see below for instructions).
@ -74,6 +90,8 @@ The SmartThings component is configured exclusively through the front-end. Manua
Advanced: If you have multiple locations in SmartThings, each can be integrated into Home Assistant. Follow the steps above, then for each subsequent location, install the SmartApp and it will automatically add to Home Assistant. This can be completed during step 3 (install SmartApp) above or at any time after that.
</p>
See the [troubleshooting](#troubleshooting) if you are having issues setting up the integration.
## {% linkable_title Events %}
The SmartThings component triggers events for select device capabilities.
@ -100,37 +118,54 @@ The component will trigger an event when a device with the [button](https://smar
`value` | Describes the action taken on the button. See the [button](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Button) capability reference for a list of possible values (not all are supported by every device).
`name` | The name given to the device in SmartThings.
Event data payloads are logged at the debug level, see [debugging](#debugging) for more information.
## {% linkable_title Platforms %}
SmartThings represents devices as a set of [capabilities](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html) and the SmartThings component mapps those to entity platforms in Home Assistant. A single device may be represented by one or more platforms.
SmartThings represents devices as a set of [capabilities](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html) and the SmartThings component maps those to entity platforms in Home Assistant. A single device may be represented by one or more platforms.
- [Binary Sensor](#binary-sensor)
- [Climate](#climate)
- [Fan](#fan)
- [Light](#light)
- [Lock](#lock)
- [Sensor](#sensor)
- [Switch](#switch)
| Platform |Capabilities
|---------------------------------|--------------------------------------------------------------------------------------------|
[binary_sensor](#binary-sensor) | `accelerationSensor`, `contactSensor`, `filterStatus`, `motionSensor`, `presenceSensor`, `tamperAlert`, `valve` and `waterSensor`
[fan](#fan) | `fanSpeed` and `switch`
[light](#light) | `colorControl`, `colorTemperature`, `switch` and `switchLevel`
[switch](#switch) | `switch`
Support for additional capabilities will be added in the future.
Support for additional platforms will be added in the future.
### {% linkable_title Binary Sensor %}
The SmartThings Binary Sensor platform lets you view devices that have binary sensor-related capabilities. A Binary Sensor entity will be created for each attribute (below) supported by the device.
| Capability |Attribute |On-Value |Binary Sensor Device Class
|-------------------|--------------|----------------|---------------------------------|
| [`accelerationSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Acceleration-Sensor) | `acceleration` | `active` | `moving`
| [`contactSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Contact-Sensor) | `contact` | `open` | `opening`
| [`filterStatus`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Filter-Status) | `filterStatus` | `replace` | `problem`
| [`motionSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Motion-Sensor) | `motion` | `active` | `motion`
| [`presenceSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Presence-Sensor) | `presence` | `present` | `presence`
| [`tamperAlert`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Tamper-Alert) | `tamper` | `detected` | `problem`
| [`valve`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Valve) | `valve` | `open` | `opening`
| [`waterSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Water-Sensor) | `water` | `wet` | `moisture`
| Capability |Attribute |On-Value
|-------------------|--------------|----------------|
| [`accelerationSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Acceleration-Sensor) | `acceleration` | `active`
| [`contactSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Contact-Sensor) | `contact` | `open`
| [`filterStatus`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Filter-Status) | `filterStatus` | `replace`
| [`motionSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Motion-Sensor) | `motion` | `active`
| [`presenceSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Presence-Sensor) | `presence` | `present`
| [`tamperAlert`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Tamper-Alert) | `tamper` | `detected`
| [`valve`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Valve) | `valve` | `open`
| [`waterSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Water-Sensor) | `water` | `wet`
### {% linkable_title Climate %}
The SmartThings Climate platform lets you control devices that have thermostat-related capabilities. For a SmartThings device to be represented by the climate platform, it must have all the capabilities from either "set a" _or_ "set b":
| Capability |Climate Features
|-------------------------------------|--------------------------------------------|
| [`thermostat`](https://docs.smartthings.com/en/latest/capabilities-reference.html#thermostat) (set a) | `operation mode`, `operating state` (state attribute), `target temp high`, `target temp low` and `fan mode`
| [`thermostatMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Mode) (set b) | `operation mode`
| [`thermostatCoolingSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Cooling-Setpoint) (seb b) | `target temp low`
| [`thermostatHeatingSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Heating-Setpoint) (set b) | `target temp high`
| [`temperatureMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Temperature-Measurement) (set b) |
| [`thermostatOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Operating-State) | `operating state` (state attribute)
| [`thermostatFanMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Fan-Mode) | `fan mode`
| [`relativeHumidityMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Relative-Humidity-Measurement) | `humidity` (state attribute)
### {% linkable_title Fan %}
The SmartThings fan platform lets you control devices that have fan-related capabilities. For a SmartThings device to be represented by the fan platform, it must have one or more of the capabilities below in addition to the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability.
The SmartThings Fan platform lets you control devices that have fan-related capabilities. For a SmartThings device to be represented by the fan platform, it must have one or more of the capabilities below in addition to the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability.
| Capability |Fan Features
|-------------------|------------------------------------------------------------|
@ -138,7 +173,7 @@ The SmartThings fan platform lets you control devices that have fan-related capa
### {% linkable_title Light %}
The SmartThings light platform lets you control devices that have light-related capabilities. For a SmartThings device to be represented by the light platform, it must have one or more of the capabilities below in addition to the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability.
The SmartThings Light platform lets you control devices that have light-related capabilities. For a SmartThings device to be represented by the light platform, it must have one or more of the capabilities below in addition to the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability.
| Capability |Light Features
|-------------------|------------------------------------------------------------|
@ -146,6 +181,122 @@ The SmartThings light platform lets you control devices that have light-related
| [`colorControl`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Color-Control) | `color`
| [`colorTemperature`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Color-Temperature) | `color_temp`
### {% linkable_title Lock %}
The SmartThings Lock platform lets you control devices that have the [`lock`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Lock) capability, showing current lock status and supporting lock and unlock commands.
### {% linkable_title Sensor %}
The SmartThings Sensor platform lets your view devices that have sensor-related capabilities. A Sensor entity is created for each attribute (below) supported by the device.
| Capability |Attributes |
|-------------------|---------------|
| [`activityLightingMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Activity-Lighting-Mode) | `lightingMode`
| [`airConditionerMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Air-Conditioner-Mode) | `airConditionerMode`
| [`airQualitySensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Air-Quality-Sensory) | `airQuality`
| [`alarm`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Alarm) | `alarm`
| [`audioVolume`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Audio-Volume) | `volume`
| [`battery`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Battery) | `battery`
| [`bodyMassIndexMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Body-Mass-Index-Measurement) | `bmiMeasurement`
| [`bodyWeightMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Body-Weight-Measurement) | `bodyWeightMeasurement`
| [`carbonDioxideMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Carbon-Dioxide-Measurement) | `carbonDioxide`
| [`carbonMonoxideDetector`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Carbon-Monoxide-Detector) | `carbonMonoxide`
| [`carbonMonoxideMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Carbon-Monoxide-Measurement) | `carbonMonoxideLevel`
| [`dishwasherOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Dishwasher-Operating-State) | `machineState`, `dishwasherJobState` and `completionTime`
| [`doorControl`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Door-Control) | `door`
| [`dryerMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Dryer-Mode) | `dryerMode`
| [`dryerOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Dryer-Operating-State) | `machineState`, `dryerJobState` and `completionTime`
| [`dustSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Dust-Sensor) | `fineDustLevel` and `dustLevel`
| [`energyMeter`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Energy-Meter) | `energy`
| [`equivalentCarbonDioxideMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Equivalent-Carbon-Dioxide-Measurement) | `equivalentCarbonDioxideMeasurement`
| [`formaldehydeMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Formaldehyde-Measurement) | `formaldehydeLevel`
| [`garageDoorControl`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Garage-Door-Control) | `door`
| [`illuminanceMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Illuminance-Measurement) | `illuminance`
| [`infraredLevel`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Infrared-Level) | `infraredLevel`
| [`lock`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Lock) | `lock`
| [`mediaInputSource`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Media-Input-Source) | `inputSource`
| [`mediaPlaybackRepeat`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Media-Playback-Repeat) | `playbackRepeatMode`
| [`mediaPlaybackShuffle`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Media-Playback-Shuffle) | `playbackShuffle`
| [`mediaPlayback`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Media-Playback) | `playbackStatus`
| [`odorSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Odor-Sensor) | `odorLevel`
| [`ovenMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Oven-Mode) | `ovenMode`
| [`ovenOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Oven-Operating-State) | `machineState`, `ovenJobState` and `completionTime`
| [`ovenSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Oven-Setpoint) | `ovenSetpoint`
| [`powerMeter`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Power-Meter) | `power`
| [`powerSource`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Power-Source) | `powerSource`
| [`refrigerationSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Refrigeration-Setpoint) | `refrigerationSetpoint`
| [`relativeHumidityMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Relative-Humidity-Measurement) | `humidity`
| [`robotCleanerCleaningMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Robot-Cleaner-CleaningMode) | `robotCleanerCleaningMode`
| [`robotCleanerMovement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Robot-Cleaner-Movement) | `robotCleanerMovement`
| [`robotCleanerTurboMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Robot-Cleaner-Turbo-Mode) | `robotCleanerTurboMode`
| [`signalStrength`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Signal-Strength) | `lqi` and `rssi`
| [`smokeDetector`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Smoke-Detector) | `smoke`
| [`temperatureMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Temperature-Measurement) | `temperature`
| [`thermostatCoolingSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Cooling-Setpoint) | `coolingSetpoint`
| [`thermostatFanMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Fan-Mode) | `thermostatFanMode`
| [`thermostatHeatingSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Heating-Setpoint) | `heatingSetpoint`
| [`thermostatMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Mode) | `thermostatMode`
| [`thermostatOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Operating-State) | `thermostatOperatingState`
| [`thermostatSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Setpoint) | `thermostatSetpoint`
| [`tvChannel`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Tv-Channel) | `tvChannel`
| [`tvocMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Tvoc-Measurement) | `tvocLevel`
| [`ultravioletIndex`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Ultraviolet-Index) | `ultravioletIndex`
| [`voltageMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Voltage-Measurement) | `voltage`
| [`washerMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Washer-Mode) | `washerMode`
| [`washerOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Washer-Operating-State) | `machineState`, `washerJobState` and `completionTime`
| [`windowShade`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Window-Shade) | `windowShade`
### {% linkable_title Switch %}
The SmartThings switch platform lets you control devices that have the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability that are not already represented by a more specific platform.
The SmartThings Switch platform lets you control devices that have the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability that are not already represented by a more specific platform.
## {% linkable_title Troubleshooting %}
### {% linkable_title Setup %}
Perform the following steps if you receive one of the following error messages while attempting to setup the integration:
- "SmartThings could not validate the endpoint configured in base_url. Please review the component requirements."
- "Unable to setup the SmartApp. Please try again."
#### {% linkable_title Checklist %}
1. Ensure `base_url` is properly set to the _external address_ that Home Assistant is available to the internet. SmartThings must be able to reach this address.
1. Validate there are no problems with your certificate or SSL configuration by using an online checker, such as [https://www.digicert.com/help/](https://www.digicert.com/help/).
1. Some reverse proxy configuration settings can interfere with communication from SmartThings. For example, TLSv1.3 is not supported. Setting the supported cipher suite too restrictly will prevent handshaking. The following NGINX SSL configuration is known to work:
```nginx
# cert.crt also contains intermediate certificates
ssl_certificate /path/to/cert.crt;
ssl_certificate_key /path/to/cert.key;
ssl_dhparam /path/to/dhparam.pem;
ssl_protocols TLSv1.2;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
ssl_prefer_server_ciphers on;
ssl_ecdh_curve secp384r1;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
```
1. While the error message (above) is being displayed, run the following command from outside your local network to confirm it is responding to the ping lifecycle event:
```bash
curl -X POST https://{BASE_URL}/api/webhook/{WEBHOOK_ID} -H "Content-Type: application/json; charset=utf-8" -d $'{"lifecycle": "PING", "executionId": "00000000-0000-0000-0000-000000000000", "locale": "en", "version": "1.0.0", "pingData": { "challenge": "00000000-0000-0000-0000-000000000000"}}'
```
Where `{BASE_URL}` is your external address and `{WEBHOOK_ID}` is the value of `webhook_id` from `.storage/smartthings` in your Home Assistant configuration directory.
The expected response is:
```bash
{"pingData": {"challenge": "00000000-0000-0000-0000-000000000000"}}
```
If you have completed the checklist above and are still unable to setup the platform, [activate debug logging](#debugging) for the SmartThings component and include the log messages up until the point of failure in [a new issue](https://github.com/home-assistant/home-assistant/issues).
### {% linkable_title Debugging %}
The SmartThings component will log additional information about push updates received, events fired, and other messages when the log level is set to `debug`. Add the the relevent line below to the `configuration.yaml`:
```yaml
logger:
default: info
logs:
homeassistant.components.smartthings: debug
```

View File

@ -277,7 +277,7 @@ So now you can open and close your garage door, let's check the weather. Add the
- platform: darksky
name: "Dark Sky Weather"
api_key: !secret dark_sky_key
update_interval:
scan_interval:
minutes: 10
monitored_conditions:
- summary

View File

@ -8,41 +8,42 @@ comments: false
sharing: true
footer: true
logo: speedtest.png
ha_category: System Monitor
ha_category:
- System Monitor
- Sensor
featured: false
ha_release: 0.13
ha_iot_class: "Cloud Polling"
redirect_from:
- /components/sensor.speedtest/
- /components/sensor.speedtestdotnet/
---
The `speedtest` sensor component uses the [Speedtest.net](https://speedtest.net/)
web service to measure network bandwidth performance.
The `speedtestdotnet` component uses the [Speedtest.net](https://speedtest.net/) web service to measure network bandwidth performance.
Enabling this component will automatically create the Speedtest.net Sensors for the monitored conditions (below).
By default, a speed test will be run every hour. The user can change the update frequency in the configuration by defining the `scan_interval` for a speed test to run.
## {% linkable_title Configuration %}
By default, it will run every hour. The user can change the update frequency in
the configuration by defining the minute and hour for a speed test to run.
For the `server_id` check the list of
[available servers](https://www.speedtest.net/speedtest-servers.php).
To add a Speedtest.net sensor to your installation,
add the following to your `configuration.yaml` file:
To add Speedtest.net sensors to your installation, add the following to your `configuration.yaml` file:
Once per hour, on the hour (default):
```yaml
# Example configuration.yaml entry
sensor:
- platform: speedtest
monitored_conditions:
- ping
- download
- upload
speedtestdotnet:
```
{% configuration %}
monitored_conditions:
description: Sensors to display in the frontend.
required: true
required: false
default: All keys
type: list
keys:
ping:
@ -55,29 +56,40 @@ sensor:
description: Specify the speed test server to perform the test against.
required: false
type: integer
hour:
description: Specify the hour(s) of the day to schedule the speed test. Use a list for multiple entries.
scan_interval:
description: "Minimum time interval between updates. Supported formats: `scan_interval: 'HH:MM:SS'`, `scan_interval: 'HH:MM'` and Time period dictionary (see example below)."
required: false
type: [int, list]
minute:
description: Specify the minute(s) of the hour to schedule the speed test. Use a list for multiple entries.
required: false
type: [int, list]
default: 0
second:
description: Specify the second(s) of the minute to schedule the speed test. Use a list for multiple entries.
required: false
type: [int, list]
default: 0
default: 60 minutes
type: time
manual:
description: >
`true` or `false` to turn manual mode on or off.
Manual mode will disable scheduled speed tests.
`true` or `false` to turn manual mode on or off. Manual mode will disable scheduled speed tests.
required: false
type: boolean
default: false
{% endconfiguration %}
#### {% linkable_title Time period dictionary example %}
```yaml
scan_interval:
# At least one of these must be specified:
days: 0
hours: 0
minutes: 3
seconds: 30
milliseconds: 0
```
### {% linkable_title Service %}
Once loaded, the `speedtestdotnet` component will expose a service (`speedtestdotnet.speedtest`) that can be called to run a Speedtest.net speed test on demand. This service takes no parameters. This can be useful if you have enabled manual mode.
```yaml
action:
service: speedtestdotnet.speedtest
```
This component uses [speedtest-cli](https://github.com/sivel/speedtest-cli) to
gather network performance data from Speedtest.net.
Please be aware of the potential
@ -91,7 +103,7 @@ test. You can turn on manual mode to disable the scheduled speed tests.
## {% linkable_title Examples %}
In this section, you find some real-life examples of how to use this sensor.
In this section, you find some real-life examples of how to use this component.
### {% linkable_title Run periodically %}
@ -99,35 +111,13 @@ Every half hour of every day:
```yaml
# Example configuration.yaml entry
sensor:
- platform: speedtest
minute:
- 0
- 30
monitored_conditions:
- ping
- download
- upload
```
### {% linkable_title Run at a specific time %}
Everyday at 12:30AM, 6:30AM, 12:30PM, 6:30PM:
```yaml
# Example configuration.yaml entry
sensor:
- platform: speedtest
minute: 30
hour:
- 0
- 6
- 12
- 18
monitored_conditions:
- ping
- download
- upload
speedtestdotnet:
scan_interval:
minutes: 30
monitored_conditions:
- ping
- download
- upload
```
### {% linkable_title Using as a trigger in an automation %}
@ -139,7 +129,7 @@ automation:
- alias: "Internet Speed Glow Connect Great"
trigger:
- platform: template
value_template: "{{ states('sensor.speedtest_download')|float > 10 }}"
value_template: "{{ states('sensor.speedtest_download')|float >= 10 }}"
action:
- service: shell_command.green
@ -155,7 +145,7 @@ automation:
## {% linkable_title Notes %}
- When running on Raspberry Pi, just note that the maximum speed is limited by its 100 Mbit/s LAN adapter.
- Running this platform can have negative effects on the system's performance as it requires a fair amount of memory.
- Running this component can have negative effects on the system's performance as it requires a fair amount of memory.
- Entries under `monitored_conditions` only control what entities are available in Home Assistant, it does not disable the condition from running.
- If ran frequently, this component has the ability to use a considerable amount of data. Frequent updates should be avoided on bandwidth-capped connections.
- While running, your network capacity is fully utilized. This may have a negative effect on other devices in use the network such as gaming consoles or streaming boxes.

View File

@ -26,6 +26,7 @@ switch:
slave: 1
coils:
- name: Switch1
hub: hub1
slave: 1
coil: 13
- name: Switch2
@ -33,6 +34,7 @@ switch:
coil: 14
registers:
- name: Register1
hub: hub1
slave: 1
register: 11
command_on: 1
@ -45,6 +47,11 @@ coils:
required: false
type: map
keys:
hub:
description: The name of the hub.
required: false
default: default
type: string
slave:
description: The number of the slave (can be omitted for tcp and udp Modbus).
required: true
@ -62,6 +69,11 @@ register:
required: false
type: map
keys:
hub_name:
description: The hub to use.
required: false
default: default
type: string
slave:
description: The number of the slave (can be omitted for tcp and udp Modbus).
required: true

View File

@ -8,7 +8,7 @@ comments: false
sharing: true
footer: true
logo: tellduslive.svg
ha_category:
ha_category:
- Hub
- Binary Sensor
- Cover
@ -50,15 +50,15 @@ host:
description: Host address to Tellstick Net or Tellstick ZNet for Local API, only useful when automatic discovery is not enabled.
required: false
type: string
update_interval:
scan_interval:
description: Interval (in seconds) for polling the Telldus Live server (or the local server).
required: false
type: integer
default: 60
{% endconfiguration %}
<p class='note'>
It is only possible to configure the `update_interval` when setting up the device. If the polling interval needs to be changed after the device is configured it must be changed manually by changing `"scan_interval": 60,` for the device in the file `.storage/core.config_entries`.
<p class='note'>
It is only possible to configure the `scan_interval` when setting up the device. If the polling interval needs to be changed after the device is configured it must be changed manually by changing `"scan_interval": 60,` for the device in the file `.storage/core.config_entries`.
</p>
The component will offer configuration through the Home Assistant user interface where it will let you associate it with your Telldus Live account.

View File

@ -70,36 +70,36 @@ Pick an icon that you can find on [materialdesignicons.com](https://materialdesi
### {% linkable_title Service `timer.start` %}
Starts or restarts a timer with the provided duration. If no duration is given, it will either restart with its initial value, or continue a paused timer with the remaining duration. If a new duration is provided, this will be the new default for the timer until Home Assistant is restarted (which loads your default values). The duration can be specified as a number of seconds or the easier to read `01:23:45` format.
If no `entity_id` is given all active timers will be started.
You can also use `entity_id: all` and all active timers will be started.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | Name of the entity to take action, e.g., `timer.timer0`. |
| `entity_id` | no | Name of the entity to take action, e.g., `timer.timer0`. |
| `duration` | yes | Duration in seconds or `00:00:00` until the timer finishes. |
### {% linkable_title Service `timer.pause` %}
Pause a running timer. This will retain the remaining duration for later continuation. If no `entity_id` is given all active timers will be paused.
Pause a running timer. This will retain the remaining duration for later continuation. You can also use `entity_id: all` and all active timers will be paused.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | Name of the entity to take action, e.g., `timer.timer0`. |
| `entity_id` | no | Name of the entity to take action, e.g., `timer.timer0`. |
#### {% linkable_title Service `timer.cancel` %}
Cancel an active timer. This resets the duration to the last known initial value without firing the `timer.finished` event. If no `entity_id` is given all active timers will be canceled.
Cancel an active timer. This resets the duration to the last known initial value without firing the `timer.finished` event. You can also use `entity_id: all` and all active timers will be canceled.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | Name of the entity to take action, e.g., `timer.timer0`. |
| `entity_id` | no | Name of the entity to take action, e.g., `timer.timer0`. |
#### {% linkable_title Service `timer.finish` %}
Manually finish a running timer earlier than scheduled. If no `entity_id` is given all active timers will be finished.
Manually finish a running timer earlier than scheduled. You can also use `entity_id: all` and all active timers will be finished.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | Name of the entity to take action, e.g., `timer.timer0`. |
| `entity_id` | no | Name of the entity to take action, e.g., `timer.timer0`. |
### {% linkable_title Use the service %}

View File

@ -32,9 +32,9 @@ tplink_lte:
password: SECRET
notify:
- name: sms1
target: "+15105550123"
recipient: "+15105550123"
- name: sms2
target: "+55520525252"
recipient: "+55520525252"
```
{% configuration %}

View File

@ -10,14 +10,21 @@ footer: true
logo: velux.png
ha_category:
- Scene
- Cover
ha_release: 0.49
ha_iot_class: "Local Polling"
redirect_from:
- /components/scene.velux/
- /components/cover.velux/
---
[Velux](http://www.velux.com) integration for Home Assistant allows you to connect to a Velux KLF 200 interface, to control [io-homecontrol](http://www.io-homecontrol.com) devices like windows and blinds. The module allows you to start scenes configured within KLF 200.
There is currently support for the following device types within Home Assistant:
- Cover
- Scene
## {% linkable_title Configuration %}
A `velux` section must be present in the `configuration.yaml` file and contain the following options as required:

View File

@ -0,0 +1,110 @@
---
layout: page
title: "EZcontrol XS1"
description: "Instructions on how to integrate an XS1 Gateway within Home Assistant."
date: 2018-12-04 20:00
sidebar: true
comments: false
sharing: true
footer: true
logo: xs1.jpg
ha_category:
- Hub
- Climate
- Sensor
- Switch
ha_release: 0.88
featured: false
ha_iot_class: "Local Polling"
redirect_from:
- /components/climate.xs1/
- /components/sensor.xs1/
- /components/switch.xs1/
---
The [EZcontrol XS1](http://www.ezcontrol.de/content/view/36/28/) integration for Home Assistant allows you to observe and control devices configured on the XS1 Gateway. Please have a look at the official docs for using this gateway [Bedienungsanleitung v3.0.0.0](http://www.ezcontrol.de/support/downloads/XS1/xs1manual/Bedienungsanleitung_EZcontrol_XS1_3.0.0.0-2.pdf).
## {% linkable_title Configuration %}
Add the following entry to the `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
xs1:
host: "192.168.2.100"
```
The component will automatically detect the configuration of the XS1 Gateway only **on initialization** which currently means when Home Assistant boots. When you change the configuration of the XS1 you (currently) have to restart Home Assistant to see the effects.
{% configuration %}
host:
description: Host of the XS1 Gateway.
required: true
type: string
port:
description: Custom port if you are running your gateway behind some kind of proxy.
required: false
type: integer
default: 80
ssl:
description: Defines if `https` should be used for API requests (only possible via your own proxy).
required: false
type: boolean
default: false
username:
description: User to access XS1 web API.
required: false
type: string
password:
description: Password to access XS1 web API.
required: false
type: string
{% endconfiguration %}
## {% linkable_title Supported Device Types %}
<p class='note warning'>
This component currently only covers part of the device types supported by the XS1 gateway, unsupported types are simply ignored.
</p>
### {% linkable_title Sensors %}
Any type of sensor is supported.
<p class='note warning'>
If you are using climate devices the "current temp" sensor will be automatically used by the actuator (if named correctly). To make this work have a look at the actuator description below.
</p>
### {% linkable_title Actuators %}
| Type | Supported | Notes |
|---------------|-----------|--------------------------------------------------|
| `switch` | Yes | |
| `dimmer` | Partly | Dimmers are currently handled like switches so actual dimming is not supported :(|
| `temperature` | Yes | |
### {% linkable_title Climate Actuator/Sensor%}
Home Assistant can combine temperature sensors and climate actuators into a single device. The XS1 gateway does not allow this, but a sensor and actuator can be configured separately. To make Home Assistant register them in the same climate device just prefix the **sensor** name with the actuator name on the XS1 gateway configuration, f.ex:
- Actuator device name: "Bedroom_Temp"
- Sensor device name: "Bedroom_Temp_Sensor"
## {% linkable_title Examples %}
In this section, you find some real-life examples of how to use this component.
### {% linkable_title Full configuration %}
This example shows how you can use the optional configuration options.
```yaml
# Example configuration.yaml entry
xs1:
host: "192.168.2.100"
port: 80
ssl: false
username: myuser
password: 123totallySecure
```

View File

@ -83,6 +83,45 @@ http:
- fd00::/8
```
### {% linkable_title Command Line %}
The Command Line auth provider executes a configurable shell command to perform user authentication. Two environment variables, `username` and `password`, are passed to the command. Access is granted when the command exits successfully (with exit code 0).
This provider can be used to integrate Home Assistant with arbitrary external authentication services, from plaintext databases over LDAP to RADIUS. A compatible script for LDAP authentication is [this one](https://github.com/efficiosoft/ldap-auth-sh), for instance.
Here is a configuration example:
```yaml
homeassistant:
auth_providers:
- type: command_line
command: /absolute/path/to/command
# Optionally, define a list of arguments to pass to the command.
#args: ["--first", "--second"]
# Uncomment to enable parsing of meta variables (see below).
#meta: true
```
When `meta: true` is set in the auth provider's configuration, your command can write some variables to standard output to populate the user account created in Home Assistant with additional data. These variables have to be printed in the form:
```
name = John Doe
```
Leading and trailing whitespace, as well as lines starting with `#` are ignored. The following variables are supported. More may be added in the future.
* `name`: The real name of the user to be displayed in his profile.
Stdaerr is not read at all and just passed through to that of the Home Assistant process, hence you can use it for status messages or suchlike.
<p class='note'>
Any leading and trailing whitespace is stripped from usernames before they're passed to the configured command. For instance, " hello " will be rewritten to just "hello".
</p>
<p class='note'>
For now, meta variables are only respected the first time a particular user is authenticated. Upon subsequent authentications of the same user, the previously created user object with the old values is reused.
</p>
### {% linkable_title Legacy API password %}
<p class='note warning'>

View File

@ -0,0 +1,114 @@
---
layout: page
title: "HAProxy"
description: "Documentation about setting up Home Assistant with HAProxy"
date: 2018-01-02 11:23:00 -0500
sidebar: true
comments: false
sharing: true
footer: true
---
Using HAProxy to proxy for Home Assistant allows you to serve Home Assistant securely over standard ports with HTTP to HTTPS redirection.
### {% linkable_title Install HAProxy on your server %}
This will vary depending on your OS. Check out Google for this.
### {% linkable_title Obtain an SSL certificate %}
There are multiple ways of obtaining an SSL certificate. Lets Encrypt is one method.
Use Google for this, but a good example of using Certbot can be found [here](https://www.digitalocean.com/community/tutorials/how-to-secure-haproxy-with-let-s-encrypt-on-ubuntu-12-04).
### {% linkable_title HAPRoxy Configuration %}
The following configuration updates HAProxy defaults for more secure ciphers for SSL and logging and connection
timeouts.
Items to update for your deployment:
* `bind`: Update the ports HAProxy listens on for forwarding.
* `subdomain.domain.com`: Your domain to use
* `ssl crt`: The path to your SSL certificate.
* `server hass 127.0.0.1:8123`: The IP and port location of your Home Assistant instance.
```text
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
# Default ciphers to use on SSL-enabled listening sockets.
# For more information, see ciphers(1SSL). This list is from:
# https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
ssl-default-bind-options no-sslv3
maxconn 2048
tune.ssl.default-dh-param 2048
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
timeout http-request 5s #protection from Slowloris attacks
frontend www-http
bind *:80
redirect scheme https
frontend www-https
log /dev/log local0 debug
bind *:443 ssl crt /etc/haproxy/certs/MYCERT.pem
acl hass-acl hdr(host) -i SUBDOMAIN.DOMAIN.COM
use_backend hass-backend if hass-acl
backend hass-backend
server hass <Home Assistant Server IP>:8123
mode http
option forwardfor
http-request add-header X-Forwarded-Proto https
http-request add-header X-Forwarded-Port 443
```
### {% linkable_title Forward Ports %}
Forward ports 443 and (optionally) 80 to your server on your router.
Do not forward port 8123, HAProxy takes care of securing the connection with HTTPS on 443.
If 8123 is forwarded then it will not be secured.
Replace 443 with whatever port you chose to bind to in the config if different.
### {% linkable_title Configure Home Assistant HTTP Component %}
In your `configuration.yaml` file, edit the [http component](https://www.home-assistant.io/components/http/).
```text
http:
# For extra security set this to only accept connection on localhost if HAProxy is on the same machine
# server_host: 127.0.0.1
# Update this line to be your domain
base_url: https://example.com
use_x_forwarded_for: true
# You must set the trusted proxy IP address so that Home Assistant will properly accept connections
# Set this to your HAProxy machine IP, or localhost if hosted on the same machine.
trusted_proxies: <HAProxy IP address here, 127.0.0.1 if same machine>
```
### {% linkable_title Restart or Reload HAProxy %}
Use your OS method of restarting or reloading HAProxy. Use Google for this.

View File

@ -55,6 +55,8 @@ network={
You may need to adjust the country code depending upon where you are. A list of codes can be found [here](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements).
If you are using a [hidden SSID](https://en.wikipedia.org/wiki/Network_cloaking) for your WiFi network , you must add `scan_ssid=1` to the `network` section to be able to connect.
If you are running in trouble with your WiFi connection (for [further details](https://www.raspberrypi.org/forums/viewtopic.php?t=207882)), check the output of the following command:
```bash

View File

@ -17,7 +17,9 @@
{%- assign imp_url = imp_name | prepend: '/components/' | append: '/' -%}
{%- assign parent_name = file_parts[0] -%}
{%- assign parent_url = parent_name | prepend: '/components/' | append: '/' -%}
{%- assign parent_component = components | where: 'url', imp_url | first -%}
{%- assign embedded_url = imp_name | prepend: '/components/' | append: '/' -%}
{%- assign embedded_component = components | where: 'url', embedded_url | first -%}
{%- assign parent_component = components | where: 'url', parent_url | first -%}
{%- else -%}
{%- assign is_platform = false -%}
{%- assign imp_name = file_parts | first -%}
@ -58,6 +60,7 @@
</div>
{%- endif -%}
<<<<<<< HEAD
<div class='section'>
{%- if is_platform -%}
Source: <a href='{{github_main_repo}}{{imp_url}}{{parent_name}}.py'>{{imp_name}}/{{parent_name}}.py</a>
@ -65,6 +68,14 @@
Source: <a href='{{github_main_repo}}{{imp_url}}'>{{imp_url}}</a>
{%- endif -%}
</div>
=======
{%- if is_platform -%}
<div class='section'>
Source:
<a href='{{github_main_repo}}{{embedded_url}}{{parent_name}}.py'>{{imp_name}}/{{parent_name}}.py</a>
</div>
{%- endif -%}
>>>>>>> rc
{%- if is_platform and parent_name != 'sensor' -%}
<div class='section'>

View File

@ -187,6 +187,7 @@
<ul>
<li>{% active_link /docs/ecosystem/apache/ Apache %}</li>
<li>{% active_link /docs/ecosystem/caddy/ Caddy Server %}</li>
<li>{% active_link /docs/ecosystem/haproxy/ HAProxy %}</li>
<li>{% active_link /docs/ecosystem/nginx/ NGINX %}</li>
<li>{% active_link /docs/ecosystem/nginx_subdomain/ NGINX with subdomain%}</li>
<li>{% active_link /docs/ecosystem/tor/ Tor Onion Service %}</li>

View File

@ -0,0 +1,680 @@
---
layout: post
title: "0.88: Persons, Command line auth and event subscriptions"
description: "Happy new release day to all of you! Great features, solid bug fixes and performance gains."
date: 2019-02-20 00:11:03
date_formatted: "February 20, 2019"
author: Paulus Schoutsen
author_twitter: balloob
comments: true
categories: Release-Notes
og_image: /images/blog/2019-02-release-88/components.png
---
<a href='/components/#version/0.88'><img src='/images/blog/2019-02-release-88/components.png' style='border: 0;box-shadow: none;'></a>
Release 0.88 has landed. It's been a busy two weeks with a ton of cool stuff and improvements.
This release introduces a new [person component][person docs] thanks to [@MartinHjelmare]. With this component, Home Assistant can be set up to track the people in your home. Each person can be linked to a user and multiple device tracker entities. This release does basic device tracker state merging, which will be evolved in the future. Device trackers merging their own states will be phased out in favor of persons. You can configure persons via the config panel. To get started, add the person component to your configuration.yaml file: `person:`. If you want to automatically stay up to date with the latest default Home Assistant components, you can now also add `default_config:` to your config.
This release also extends the event dev tool to include an event debugger. It allows you to listen to core events and get them printend to the screen. This makes it easy to find the event data that your remote is sending out.
<img src='/images/blog/2019-02-release-88/event_subscription.png' style='border: 0;box-shadow: none; margin: 0 auto; display: block;' alt='Screenshot of the new event subscription tool.'>
We also have a new command line auth provider. This will allow you to use a shell script to validate users logging in to the system. This gives a lot of flexibility. For example, you can now authenticate against LDAP. More info in [the documentation](/docs/authentication/providers/#command-line).
[@andrewsayre] has been working hard on extending the SmartThings support. This release brings sensors and climate devices into the mix. Awesome!
## {% linkable_title Noteworthy breaking changes %}
We have tightened config validation, so expect a couple of new warnings. Platform configuration will no longer allow to contain keys that are not supported. This should help with finding typos in your current and future YAML configs. This will currently fallback to a warning and will become a full error in the future.
Note for Lovelace custom card developers: if you relied on the availability of `<paper-button>` in your code, you will have to update it to `<mwc-button>` to get a similar component.
Note for custom component developers: We are moving to a new file structure. More information on [our dev blog](https://developers.home-assistant.io/blog/2019/02/19/the-great-migration.html).
## {% linkable_title New Platforms %}
- Split googlehome to a component with device tracker platform ([@ludeeus] - [#19971]) ([device_tracker docs]) ([googlehome docs]) (breaking change) (new-platform)
- Support for new velux api, added cover.velux ([@Julius2342] - [#18738]) ([velux docs]) ([cover.velux docs]) (breaking change) (new-feature) (new-platform)
- Add huawei_lte notify component ([@scop] - [#19544]) ([notify docs]) (new-platform)
- Split out speedtest into a component and a sensor platform ([@rohankapoorcom] - [#20527]) ([speedtestdotnet docs]) ([sensor.speedtest docs]) ([sensor.speedtestdotnet docs]) (breaking change) (new-platform)
- Add google home alarm sensor ([@eliseomartelli] - [#20709]) ([googlehome docs]) (new-platform)
- Added command_line auth provider that validates credentials by calling a command ([@efficiosoft] - [#19985]) (new-feature) (new-platform)
- GitHub Sensor ([@timmo001] - [#19561]) ([sensor.github docs]) (new-platform)
- Fix binary sensor in Ambient PWS ([@bachya] - [#20801]) ([ambient_station docs]) (new-platform)
- XS1 component ([@markusressel] - [#19115]) ([xs1 docs]) ([climate.xs1 docs]) ([sensor.xs1 docs]) ([switch.xs1 docs]) (new-platform)
- Add person component ([@MartinHjelmare] - [#20290]) ([person docs]) (new-platform)
- Add default_config component ([@balloob] - [#20799]) ([default_config docs]) ([script docs]) (new-platform)
- Add SmartThings Sensor platform ([@andrewsayre] - [#20848]) ([smartthings docs]) (new-platform)
- CoolMasterNet Climate platform ([@OnFreund] - [#20787]) ([climate.coolmaster docs]) (new-platform)
- Add Google pubsub component ([@timvancann] - [#20049]) ([google_pubsub docs]) (new-platform)
- Ebusd integration ([@CrazYoshi] - [#19607]) ([ebusd docs]) ([sensor.ebusd docs]) (new-platform)
- Add SmartThings Climate platform ([@andrewsayre] - [#20963]) ([smartthings docs]) (new-platform)
- Add Rejseplanen danish public transport sensor component ([@tomatpasser] - [#19885]) ([sensor.rejseplanen docs]) (new-platform)
- Norway air quality ([@Danielhiversen] - [#20683]) (new-platform)
- Add Lock capability to SmartThings platform ([@bendews] - [#20977]) ([smartthings docs]) (new-platform)
## {% linkable_title New Features %}
- Support for new velux api, added cover.velux ([@Julius2342] - [#18738]) ([velux docs]) ([cover.velux docs]) (breaking change) (new-feature) (new-platform)
- Added HomeKit fan speed based on speed_list ([@nd-net] - [#19767]) ([homekit docs]) (new-feature)
- Added command_line auth provider that validates credentials by calling a command ([@efficiosoft] - [#19985]) (new-feature) (new-platform)
- Added more language options ([@VirtualL] - [#20890]) ([sensor.darksky docs]) (new-feature)
- add fan support for spider thermostats ([@peternijssen] - [#20897]) ([spider docs]) (new-feature)
- Add quirks info to ZHA device ([@dmulcahey] - [#20923]) ([zha docs]) (new-feature)
- Added IDs and enabled workarounds for Yale YRD220, YRL220, YRD120 ([@mw-white] - [#20929]) ([zwave docs]) (new-feature)
## {% linkable_title 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). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks.
## {% linkable_title Reporting Issues %}
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.
<!--more-->
## {% linkable_title Breaking Changes %}
- Split googlehome to a component with device tracker platform ([@ludeeus] - [#19971]) ([device_tracker docs]) ([googlehome docs]) (breaking change) (new-platform)
- Support for new velux api, added cover.velux ([@Julius2342] - [#18738]) ([velux docs]) ([cover.velux docs]) (breaking change) (new-feature) (new-platform)
- Split out fastdotcom into a component and a sensor platform ([@rohankapoorcom] - [#20341]) ([fastdotcom docs]) ([sensor.fastdotcom docs]) (breaking change)
- Split out speedtest into a component and a sensor platform ([@rohankapoorcom] - [#20527]) ([speedtestdotnet docs]) ([sensor.speedtest docs]) ([sensor.speedtestdotnet docs]) (breaking change) (new-platform)
- Use PLATFORM_SCHEMA_BASE as base schema for additional components. ([@emontnemery] - [#20578]) (breaking change)
- ZHA component rewrite ([@dmulcahey] - [#20434]) ([zha docs]) (breaking change)
- Enable the available property for zha entities ([@dmulcahey] - [#20788]) ([zha docs]) (breaking change)
- Add device ieee to zha events ([@dmulcahey] - [#20791]) ([zha docs]) (breaking change)
- Update platform loading path ([@balloob] - [#20807]) (breaking change)
- Make monitored_conditions more specific in Ambient PWS ([@bachya] - [#20803]) ([ambient_station docs]) (breaking change)
- Use CONF_RECIPIENT for default recipient in config ([@rohankapoorcom] - [#20925]) ([tplink_lte docs]) (breaking change)
- Update ZHA API to be device oriented ([@dmulcahey] - [#20990]) ([zha docs]) (breaking change)
- Deprecate conf_update_interval ([@rohankapoorcom] - [#20924]) (breaking change) (beta fix)
- Return None if no GTFS departures found ([@renemarc] - [#20919]) ([sensor.gtfs docs]) (breaking change) (beta fix)
- Set aioharmony version to 0.1.8 ([@ehendrix23] - [#21213]) ([harmony docs]) (breaking change) (beta fix)
## {% linkable_title Beta Fixes %}
- Set ZHA device availability on new join ([@dmulcahey] - [#21066]) ([zha docs]) (beta fix)
- Set uvloop version consistent with hass.io ([@philhawthorne] - [#21080]) (beta fix)
- Check against unlinked user ([@balloob] - [#21081]) ([person docs]) (beta fix)
- Fix hue retry crash ([@balloob] - [#21083]) ([hue docs]) (beta fix)
- Update pychromecast ([@balloob] - [#21097]) ([cast docs]) (beta fix)
- Bump aioambient to 0.1.2 ([@bachya] - [#21098]) ([ambient_station docs]) (beta fix)
- Bump thermoworks_smoke version to get new pyrebase version ([@nhorvath] - [#21100]) ([sensor.thermoworks_smoke docs]) (beta fix)
- Don't expose services in Utility_Meter unless tariffs are available ([@dgomes] - [#20878]) ([utility_meter docs]) (beta fix)
- Deprecate conf_update_interval ([@rohankapoorcom] - [#20924]) (breaking change) (beta fix)
- Fix battery_level error - HomeKit ([@cdce8p] - [#21120]) ([homekit docs]) (beta fix)
- Handle ValueError ([@balloob] - [#21126]) ([person docs]) (beta fix)
- Bump pychromecast to 2.5.2 ([@balloob] - [#21127]) ([cast docs]) (beta fix)
- Return None if no GTFS departures found ([@renemarc] - [#20919]) ([sensor.gtfs docs]) (breaking change) (beta fix)
- SmartThings Component Enhancements/Fixes ([@andrewsayre] - [#21085]) ([smartthings docs]) (beta fix)
- Fix SmartThings Translation Error ([@andrewsayre] - [#21103]) ([smartthings docs]) (beta fix)
- Fix track_change error in utility_meter ([@dgomes] - [#21134]) ([utility_meter docs]) (beta fix)
- Update pyEight for Python 3.7 Compatability ([@mezz64] - [#21161]) ([eight_sleep docs]) (beta fix)
- Add power source to device and clean up zha listeners ([@dmulcahey] - [#21174]) ([zha docs]) (beta fix)
- Fix for #19072 ([@sjabby] - [#21175]) ([light.flux_led docs]) (beta fix)
- Upgrade aioimaplib for Python 3.7 compatibility ([@amelchio] - [#21197]) ([sensor.imap docs]) (beta fix)
- ordered by last occurence ([@dgomes] - [#21200]) ([system_log docs]) (beta fix)
- Set aioharmony version to 0.1.8 ([@ehendrix23] - [#21213]) ([harmony docs]) (breaking change) (beta fix)
- Push pyads to 3.0.7 ([@carstenschroeder] - [#21216]) ([ads docs]) (beta fix)
- Refactor ZHA listeners into channels ([@dmulcahey] - [#21196]) ([zha docs]) (beta fix)
- Fix an Ambient PWS exception when location info is missing ([@bachya] - [#21220]) ([ambient_station docs]) (beta fix)
- Prevent invalid context from crashing ([@balloob] - [#21231]) (beta fix)
## {% linkable_title All changes %}
- Fix typo in config entries doc ([@therve] - [#20619]) ([point docs])
- Update synology-srm dependency to 0.0.4 ([@aerialls] - [#20625]) ([device_tracker docs])
- Add precision parameter to dsmr sensor ([@zumitnl] - [#19873]) ([sensor.dsmr docs])
- Split googlehome to a component with device tracker platform ([@ludeeus] - [#19971]) ([device_tracker docs]) ([googlehome docs]) (breaking change) (new-platform)
- Move mqtt_mock to tests/components/mqtt/conftest.py ([@awarecan] - [#20621])
- Revert #20611: code in Abode alarm panel ([@arsaboo] - [#20629]) ([alarm_control_panel.abode docs])
- Support for new velux api, added cover.velux ([@Julius2342] - [#18738]) ([velux docs]) ([cover.velux docs]) (breaking change) (new-feature) (new-platform)
- Fix xiaomi default gateway in services ([@therve] - [#20623]) ([xiaomi_aqara docs])
- Fix sensor.cpuspeed inside docker container (#20614) ([@rohankapoorcom] - [#20656]) ([sensor.cpuspeed docs])
- Update deconz integration text for PWA ([@akinomeroglu] - [#20634]) ([deconz docs])
- Add huawei_lte notify component ([@scop] - [#19544]) ([notify docs]) (new-platform)
- Upgrade rxv to 0.6.0 ([@fabaff] - [#20669]) ([media_player.yamaha docs])
- Update miflora.py to have relevant sensor icons ([@microraptor] - [#20650]) ([sensor.miflora docs])
- Consolidate config flow components ([@balloob] - [#20635])
- Split out fastdotcom into a component and a sensor platform ([@rohankapoorcom] - [#20341]) ([fastdotcom docs]) ([sensor.fastdotcom docs]) (breaking change)
- Remove fingerprint middleware ([@balloob] - [#20682]) ([http docs])
- print() left behind ([@dgomes] - [#20689])
- Embed all platforms into components ([@balloob] - [#20677]) ([abode docs]) ([ads docs]) ([alarmdecoder docs]) ([amcrest docs]) ([android_ip_webcam docs]) ([apcupsd docs]) ([apple_tv docs])
- add peternijssen as codeowner of spider component ([@peternijssen] - [#20695])
- Add tests for ZHA switch ([@dmulcahey] - [#20691])
- Add ZHA sensor tests ([@dmulcahey] - [#20710])
- Change log level for 'loading devices' message ([@Xiol] - [#20721]) ([device_tracker docs])
- Add app_id property to Fire TV component ([@JeffLIrion] - [#20719]) ([media_player.firetv docs])
- Remove SUPPORT_VOLUME_SET from Fire TV component ([@JeffLIrion] - [#20718]) ([media_player.firetv docs])
- Clean up fastdotcom by doing time tracking outside of the data object ([@rohankapoorcom] - [#20725]) ([fastdotcom docs])
- Split out speedtest into a component and a sensor platform ([@rohankapoorcom] - [#20527]) ([speedtestdotnet docs]) ([sensor.speedtest docs]) ([sensor.speedtestdotnet docs]) (breaking change) (new-platform)
- Add ZHA binary sensor tests ([@dmulcahey] - [#20711])
- Add ZHA fan tests ([@dmulcahey] - [#20712])
- Add ZHA light tests ([@dmulcahey] - [#20713])
- Add google home alarm sensor ([@eliseomartelli] - [#20709]) ([googlehome docs]) (new-platform)
- Add missing abbreviations ([@emontnemery] - [#20741]) ([mqtt docs])
- Update pysmartthings to 0.5.0 ([@andrewsayre] - [#20759]) ([smartthings docs])
- Use PLATFORM_SCHEMA_BASE as base schema for additional components. ([@emontnemery] - [#20578]) (breaking change)
- Update flake8 to 3.7.5 ([@Danielhiversen] - [#20761]) ([cast docs]) ([device_tracker docs]) ([isy994 docs])
- Modifying MTUs acquisition ([@SupremeSports] - [#20654]) ([sensor.ted5000 docs])
- Fix googlehome alarm sensor platform ([@eliseomartelli] - [#20742]) ([googlehome docs])
- SMHI component: Bugfix - calc precipitation ([@helto4real] - [#20745]) ([smhi docs])
- Added HomeKit fan speed based on speed_list ([@nd-net] - [#19767]) ([homekit docs]) (new-feature)
- Reproduce states by letting each component opt in on handling state recovery itself ([@elupus] - [#18700])
- Added egg age to the eggminder sensor ([@w1ll1am23] - [#20758]) ([wink docs])
- Move components to folders ([@balloob] - [#20774])
- Fix error handling in switch.broadlink module ([@OleksandrBerchenko] - [#20772]) ([switch.broadlink docs])
- Flux Led: Add support for defining custom effect ([@leppa] - [#19072]) ([light.flux_led docs])
- Allow pausing xiaomi vacuum in all states ([@pszafer] - [#20620]) ([vacuum.xiaomi_miio docs])
- ZHA component rewrite ([@dmulcahey] - [#20434]) ([zha docs]) (breaking change)
- Prevent template changing options ([@balloob] - [#20775])
- Allow both VOLUME_STEP and VOLUME_SET ([@notgwj] - [#20732]) ([media_player.universal docs])
- Added command_line auth provider that validates credentials by calling a command ([@efficiosoft] - [#19985]) (new-feature) (new-platform)
- Upgrade distro to 1.4.0 ([@fabaff] - [#20797]) ([updater docs])
- upgrade switchmate lib ([@Danielhiversen] - [#20792]) ([switch.switchmate docs])
- Remove wink sensor log calls ([@w1ll1am23] - [#20798]) ([wink docs])
- Upgrade astral to 1.9.2 ([@fabaff] - [#20796])
- Enable the available property for zha entities ([@dmulcahey] - [#20788]) ([zha docs]) (breaking change)
- Cleanup zha listener lifecycle ([@dmulcahey] - [#20789]) ([zha docs])
- Add device ieee to zha events ([@dmulcahey] - [#20791]) ([zha docs]) (breaking change)
- GitHub Sensor ([@timmo001] - [#19561]) ([sensor.github docs]) (new-platform)
- Deduplication of log entries in system_log ([@dgomes] - [#20493]) ([system_log docs])
- Update platform loading path ([@balloob] - [#20807]) (breaking change)
- Add more type hints to helpers ([@scop] - [#20811])
- Fix binary sensor in Ambient PWS ([@bachya] - [#20801]) ([ambient_station docs]) (new-platform)
- Embed Z-Wave platforms ([@balloob] - [#20810])
- Load as many components in parallel as possible ([@balloob] - [#20806])
- XS1 component ([@markusressel] - [#19115]) ([xs1 docs]) ([climate.xs1 docs]) ([sensor.xs1 docs]) ([switch.xs1 docs]) (new-platform)
- Fix zha light bugs ([@dmulcahey] - [#20825]) ([zha docs])
- Add MVP person component ([@MartinHjelmare] - [#20290]) ([person docs]) (new-platform)
- Clean up Z-Wave pt2 ([@balloob] - [#20842])
- Added Ambient PWS to device registry ([@bachya] - [#20841]) ([ambient_station docs])
- Add default_config component ([@balloob] - [#20799]) ([default_config docs]) ([script docs]) (new-platform)
- Make monitored_conditions more specific in Ambient PWS ([@bachya] - [#20803]) ([ambient_station docs]) (breaking change)
- Add SmartThings Sensor platform ([@andrewsayre] - [#20848]) ([smartthings docs]) (new-platform)
- Support knx tunable white and color temperature lights ([@marvin-w] - [#19699]) ([knx docs]) ([light.knx docs])
- Move weather.ipma into a component ([@dgomes] - [#20706]) ([ipma docs])
- Add better handling of deprecated configs ([@rohankapoorcom] - [#20565]) ([freedns docs])
- Add additional devices and features to Homematic IP ([@SukramJ] - [#20747]) ([homematicip_cloud docs])
- Upgrade youtube_dl to 2019.02.08 ([@fabaff] - [#20859]) ([media_extractor docs])
- Fix init of TransmissionData ([@MatteGary] - [#20817]) ([transmission docs])
- Media player const.py move ([@elupus] - [#20822])
- Set GTFS icon by route type ([@renemarc] - [#20876]) ([sensor.gtfs docs])
- Cleanup GTFS query ([@renemarc] - [#20874]) ([sensor.gtfs docs])
- Upgrade mypy to 0.660 ([@scop] - [#20873])
- Set August doorbell availability state from online state ([@wonderslug] - [#20883]) ([august docs])
- Added more language options ([@VirtualL] - [#20890]) ([sensor.darksky docs]) (new-feature)
- Person component: add storage and WS commands ([@balloob] - [#20852]) ([person docs]) ([websocket_api docs])
- Fix coroutine never awaited warning in test ([@awarecan] - [#20892])
- Add some api tests for ZHA ([@dmulcahey] - [#20909])
- Missing Binary Sensor ([@dagobert] - [#20921]) ([homematic docs])
- Fix encoding for MQTT camera ([@emontnemery] - [#20932]) ([mqtt docs])
- Fix RFLink restore state ([@javicalle] - [#20588]) ([rflink docs]) ([light.rflink docs])
- add fan support for spider thermostats ([@peternijssen] - [#20897]) ([spider docs]) (new-feature)
- Add quirks info to ZHA device ([@dmulcahey] - [#20923]) ([zha docs]) (new-feature)
- Added IDs and enabled workarounds for Yale YRD220, YRL220, YRD120 ([@mw-white] - [#20929]) ([zwave docs]) (new-feature)
- Fix #19990: Alexa-support for climate in manual-mode ([@pc-coholic] - [#20910])
- Reverts 2105724. ([@boralyl] - [#20915]) ([light.hyperion docs])
- Update ZHA helpers ([@dmulcahey] - [#20898]) ([zha docs])
- CoolMasterNet Climate platform ([@OnFreund] - [#20787]) ([climate.coolmaster docs]) (new-platform)
- Add device HmIP-BSL to Homematic IP ([@SukramJ] - [#20865]) ([homematicip_cloud docs])
- Add Google pubsub component ([@timvancann] - [#20049]) ([google_pubsub docs]) (new-platform)
- fix missing sensor values for Point ([@fredrike] - [#20937]) ([point docs])
- Fixed Thethingsnetwork sensor issue so that it takes the most recent (last) item from the TTN data storage query result instead of the first. ([@Sholofly] - [#20790]) ([thethingsnetwork docs])
- Use CONF_RECIPIENT for default recipient in config ([@rohankapoorcom] - [#20925]) ([tplink_lte docs]) (breaking change)
- Ebusd integration ([@CrazYoshi] - [#19607]) ([ebusd docs]) ([sensor.ebusd docs]) (new-platform)
- Update denonavr to 0.7.8 (add various sound modes) ([@scarface-4711] - [#20951]) ([media_player.denonavr docs])
- Add missing data fields to Ambient PWS ([@bachya] - [#20808]) ([ambient_station docs]) ([sensor.ambient_station docs])
- HomematicIP fix cover direction ([@mxworm] - [#20901]) ([homematicip_cloud docs])
- Update pyHS100 to 0.3.4 ([@StefanBCN] - [#20979]) ([light.tplink docs]) ([switch.tplink docs])
- Upgrade slixmpp to 1.4.2 ([@fabaff] - [#20971]) ([notify docs])
- Upgrade ruamel.yaml to 0.15.87 ([@fabaff] - [#20955])
- Set cover level using emulated_hue ([@ptc] - [#19594]) ([emulated_hue docs])
- Support for Multiple modbus hubs ([@benvm] - [#19726]) ([modbus docs]) ([binary_sensor.modbus docs]) ([climate.flexit docs]) ([climate.modbus docs]) ([sensor.modbus docs]) ([switch.modbus docs])
- add device info API ([@dmulcahey] - [#20950]) ([zha docs])
- Sort imports ([@fabaff] - [#20984]) ([netgear_lte docs])
- Unique Ids for August entities to allow renames ([@wonderslug] - [#20887]) ([august docs])
- Sort imports ([@fabaff] - [#20985]) ([mythicbeastsdns docs])
- Bump aioesphomeapi to 1.5.0 ([@OttoWinter] - [#20986]) ([esphome docs])
- Fix bug with monitored_conditions in Ambient PWS ([@bachya] - [#20837]) ([ambient_station docs])
- Add lagging hdate for sensors that should lag to update ([@arigilder] - [#20655]) ([sensor.jewish_calendar docs])
- Add SmartThings Climate platform ([@andrewsayre] - [#20963]) ([smartthings docs]) (new-platform)
- Add Rejseplanen danish public transport sensor component ([@tomatpasser] - [#19885]) ([sensor.rejseplanen docs]) (new-platform)
- Bump feedparser version to py3.7 compat ([@balloob] - [#20987]) ([feedreader docs])
- Update to Python 3.7 ([@balloob] - [#20988])
- Updates pyatmo to 1.8 and adds exception handling ([@carstenschroeder] - [#20938]) ([netatmo docs])
- Add frontend storage ([@balloob] - [#20880])
- Norway air quality ([@Danielhiversen] - [#20683]) (new-platform)
- Fix Point does I/O in event loop ([@fredrike] - [#20939]) ([point docs])
- Add unique id to ADS platforms ([@carstenschroeder] - [#20511]) ([light.ads docs])
- Upgrade cryptography to 2.5 ([@awarecan] - [#21011])
- Update ZHA API to be device oriented ([@dmulcahey] - [#20990]) ([zha docs]) (breaking change)
- Update ordering ([@fabaff] - [#21013]) ([system_health docs])
- Prevent OverflowError in ESPHome integration ([@OttoWinter] - [#21014]) ([esphome docs])
- Upgrade restrictedpython to 4.0b8 ([@fabaff] - [#21015]) ([python_script docs])
- Norway air, minor fix ([@Danielhiversen] - [#21016]) ([air_quality docs])
- Allow target all timer services using 'entity_id: all' ([@rbflurry] - [#21008]) ([timer docs])
- RFC: Embed platforms without component for remote component. ([@balloob] - [#20809])
- Fix discovery of audio groups ([@emontnemery] - [#20947]) ([cast docs])
- Update entity state when ZHA device becomes available ([@dmulcahey] - [#20993]) ([zha docs])
- Update co2signal==0.4.2 to fix #20805 ([@danielsjf] - [#21022]) ([sensor.co2signal docs])
- Add missing helpers ([@fabaff] - [#21021])
- Add lock config entry unload support. ([@andrewsayre] - [#21025]) ([lock docs])
- Bump aioambient to 0.1.1 ([@bachya] - [#21024]) ([ambient_station docs])
- Upgrade sqlalchemy to 1.2.17 ([@fabaff] - [#21020]) ([sensor.sql docs])
- Run tasks when ZHA devices become available ([@dmulcahey] - [#20998]) ([zha docs])
- Fix broken links to code examples ([@cisasteelersfan] - [#21039])
- Update scan interval to 5 minutes. ([@fronzbot] - [#21041]) ([blink docs])
- Add support for device_class to MQTT cover ([@emontnemery] - [#21044]) ([mqtt docs])
- Update file header ([@fabaff] - [#21023])
- Add night arm mode to MQTT alarm control panel ([@rwagoner] - [#20961]) ([mqtt docs])
- Fix updated file header ([@OttoWinter] - [#21049]) ([esphome docs])
- Add Lock capability to SmartThings platform ([@bendews] - [#20977]) ([smartthings docs]) (new-platform)
- Add template support to Bayesian sensor ([@arsaboo] - [#20757]) ([binary_sensor.bayesian docs])
- Create a person during onboarding ([@balloob] - [#21057]) ([default_config docs]) ([onboarding docs]) ([person docs])
- Person checks ([@balloob] - [#21056]) ([person docs])
- Person: Ignore unavailable states ([@balloob] - [#21058]) ([person docs])
- Add integration method to sensor.integration ([@dgomes] - [#21050]) ([sensor.integration docs])
- fix webhook update ([@fredrike] - [#21048]) ([point docs])
- Upgrade ruamel.yaml to 0.15.88 ([@fabaff] - [#21055])
- Update file header ([@fabaff] - [#21054])
- Don't directly update config entries ([@balloob] - [#20877]) ([deconz docs]) ([homematicip_cloud docs]) ([hue docs]) ([unifi docs])
- Set ZHA device availability on new join ([@dmulcahey] - [#21066]) ([zha docs]) (beta fix)
- Set uvloop version consistent with hass.io ([@philhawthorne] - [#21080]) (beta fix)
- Check against unlinked user ([@balloob] - [#21081]) ([person docs]) (beta fix)
- Fix hue retry crash ([@balloob] - [#21083]) ([hue docs]) (beta fix)
- Update pychromecast ([@balloob] - [#21097]) ([cast docs]) (beta fix)
- Bump aioambient to 0.1.2 ([@bachya] - [#21098]) ([ambient_station docs]) (beta fix)
- Bump thermoworks_smoke version to get new pyrebase version ([@nhorvath] - [#21100]) ([sensor.thermoworks_smoke docs]) (beta fix)
- Don't expose services in Utility_Meter unless tariffs are available ([@dgomes] - [#20878]) ([utility_meter docs]) (beta fix)
- Deprecate conf_update_interval ([@rohankapoorcom] - [#20924]) (breaking change) (beta fix)
- Fix battery_level error - HomeKit ([@cdce8p] - [#21120]) ([homekit docs]) (beta fix)
- Handle ValueError ([@balloob] - [#21126]) ([person docs]) (beta fix)
- Bump pychromecast to 2.5.2 ([@balloob] - [#21127]) ([cast docs]) (beta fix)
- Return None if no GTFS departures found ([@renemarc] - [#20919]) ([sensor.gtfs docs]) (breaking change) (beta fix)
- SmartThings Component Enhancements/Fixes ([@andrewsayre] - [#21085]) ([smartthings docs]) (beta fix)
- Fix SmartThings Translation Error ([@andrewsayre] - [#21103]) ([smartthings docs]) (beta fix)
- Fix track_change error in utility_meter ([@dgomes] - [#21134]) ([utility_meter docs]) (beta fix)
- Update pyEight for Python 3.7 Compatability ([@mezz64] - [#21161]) ([eight_sleep docs]) (beta fix)
- Add power source to device and clean up zha listeners ([@dmulcahey] - [#21174]) ([zha docs]) (beta fix)
- Fix for #19072 ([@sjabby] - [#21175]) ([light.flux_led docs]) (beta fix)
- Upgrade aioimaplib for Python 3.7 compatibility ([@amelchio] - [#21197]) ([sensor.imap docs]) (beta fix)
- ordered by last occurence ([@dgomes] - [#21200]) ([system_log docs]) (beta fix)
- Set aioharmony version to 0.1.8 ([@ehendrix23] - [#21213]) ([harmony docs]) (breaking change) (beta fix)
- Push pyads to 3.0.7 ([@carstenschroeder] - [#21216]) ([ads docs]) (beta fix)
- Refactor ZHA listeners into channels ([@dmulcahey] - [#21196]) ([zha docs]) (beta fix)
- Fix an Ambient PWS exception when location info is missing ([@bachya] - [#21220]) ([ambient_station docs]) (beta fix)
- Prevent invalid context from crashing ([@balloob] - [#21231]) (beta fix)
[#18700]: https://github.com/home-assistant/home-assistant/pull/18700
[#18738]: https://github.com/home-assistant/home-assistant/pull/18738
[#19072]: https://github.com/home-assistant/home-assistant/pull/19072
[#19115]: https://github.com/home-assistant/home-assistant/pull/19115
[#19544]: https://github.com/home-assistant/home-assistant/pull/19544
[#19561]: https://github.com/home-assistant/home-assistant/pull/19561
[#19594]: https://github.com/home-assistant/home-assistant/pull/19594
[#19607]: https://github.com/home-assistant/home-assistant/pull/19607
[#19699]: https://github.com/home-assistant/home-assistant/pull/19699
[#19726]: https://github.com/home-assistant/home-assistant/pull/19726
[#19767]: https://github.com/home-assistant/home-assistant/pull/19767
[#19873]: https://github.com/home-assistant/home-assistant/pull/19873
[#19885]: https://github.com/home-assistant/home-assistant/pull/19885
[#19971]: https://github.com/home-assistant/home-assistant/pull/19971
[#19985]: https://github.com/home-assistant/home-assistant/pull/19985
[#20049]: https://github.com/home-assistant/home-assistant/pull/20049
[#20290]: https://github.com/home-assistant/home-assistant/pull/20290
[#20341]: https://github.com/home-assistant/home-assistant/pull/20341
[#20434]: https://github.com/home-assistant/home-assistant/pull/20434
[#20493]: https://github.com/home-assistant/home-assistant/pull/20493
[#20511]: https://github.com/home-assistant/home-assistant/pull/20511
[#20527]: https://github.com/home-assistant/home-assistant/pull/20527
[#20565]: https://github.com/home-assistant/home-assistant/pull/20565
[#20578]: https://github.com/home-assistant/home-assistant/pull/20578
[#20588]: https://github.com/home-assistant/home-assistant/pull/20588
[#20619]: https://github.com/home-assistant/home-assistant/pull/20619
[#20620]: https://github.com/home-assistant/home-assistant/pull/20620
[#20621]: https://github.com/home-assistant/home-assistant/pull/20621
[#20623]: https://github.com/home-assistant/home-assistant/pull/20623
[#20625]: https://github.com/home-assistant/home-assistant/pull/20625
[#20629]: https://github.com/home-assistant/home-assistant/pull/20629
[#20634]: https://github.com/home-assistant/home-assistant/pull/20634
[#20635]: https://github.com/home-assistant/home-assistant/pull/20635
[#20650]: https://github.com/home-assistant/home-assistant/pull/20650
[#20654]: https://github.com/home-assistant/home-assistant/pull/20654
[#20655]: https://github.com/home-assistant/home-assistant/pull/20655
[#20656]: https://github.com/home-assistant/home-assistant/pull/20656
[#20669]: https://github.com/home-assistant/home-assistant/pull/20669
[#20677]: https://github.com/home-assistant/home-assistant/pull/20677
[#20682]: https://github.com/home-assistant/home-assistant/pull/20682
[#20683]: https://github.com/home-assistant/home-assistant/pull/20683
[#20689]: https://github.com/home-assistant/home-assistant/pull/20689
[#20691]: https://github.com/home-assistant/home-assistant/pull/20691
[#20695]: https://github.com/home-assistant/home-assistant/pull/20695
[#20706]: https://github.com/home-assistant/home-assistant/pull/20706
[#20709]: https://github.com/home-assistant/home-assistant/pull/20709
[#20710]: https://github.com/home-assistant/home-assistant/pull/20710
[#20711]: https://github.com/home-assistant/home-assistant/pull/20711
[#20712]: https://github.com/home-assistant/home-assistant/pull/20712
[#20713]: https://github.com/home-assistant/home-assistant/pull/20713
[#20718]: https://github.com/home-assistant/home-assistant/pull/20718
[#20719]: https://github.com/home-assistant/home-assistant/pull/20719
[#20721]: https://github.com/home-assistant/home-assistant/pull/20721
[#20725]: https://github.com/home-assistant/home-assistant/pull/20725
[#20732]: https://github.com/home-assistant/home-assistant/pull/20732
[#20741]: https://github.com/home-assistant/home-assistant/pull/20741
[#20742]: https://github.com/home-assistant/home-assistant/pull/20742
[#20745]: https://github.com/home-assistant/home-assistant/pull/20745
[#20747]: https://github.com/home-assistant/home-assistant/pull/20747
[#20757]: https://github.com/home-assistant/home-assistant/pull/20757
[#20758]: https://github.com/home-assistant/home-assistant/pull/20758
[#20759]: https://github.com/home-assistant/home-assistant/pull/20759
[#20761]: https://github.com/home-assistant/home-assistant/pull/20761
[#20772]: https://github.com/home-assistant/home-assistant/pull/20772
[#20774]: https://github.com/home-assistant/home-assistant/pull/20774
[#20775]: https://github.com/home-assistant/home-assistant/pull/20775
[#20787]: https://github.com/home-assistant/home-assistant/pull/20787
[#20788]: https://github.com/home-assistant/home-assistant/pull/20788
[#20789]: https://github.com/home-assistant/home-assistant/pull/20789
[#20790]: https://github.com/home-assistant/home-assistant/pull/20790
[#20791]: https://github.com/home-assistant/home-assistant/pull/20791
[#20792]: https://github.com/home-assistant/home-assistant/pull/20792
[#20796]: https://github.com/home-assistant/home-assistant/pull/20796
[#20797]: https://github.com/home-assistant/home-assistant/pull/20797
[#20798]: https://github.com/home-assistant/home-assistant/pull/20798
[#20799]: https://github.com/home-assistant/home-assistant/pull/20799
[#20801]: https://github.com/home-assistant/home-assistant/pull/20801
[#20803]: https://github.com/home-assistant/home-assistant/pull/20803
[#20806]: https://github.com/home-assistant/home-assistant/pull/20806
[#20807]: https://github.com/home-assistant/home-assistant/pull/20807
[#20808]: https://github.com/home-assistant/home-assistant/pull/20808
[#20809]: https://github.com/home-assistant/home-assistant/pull/20809
[#20810]: https://github.com/home-assistant/home-assistant/pull/20810
[#20811]: https://github.com/home-assistant/home-assistant/pull/20811
[#20817]: https://github.com/home-assistant/home-assistant/pull/20817
[#20822]: https://github.com/home-assistant/home-assistant/pull/20822
[#20825]: https://github.com/home-assistant/home-assistant/pull/20825
[#20837]: https://github.com/home-assistant/home-assistant/pull/20837
[#20841]: https://github.com/home-assistant/home-assistant/pull/20841
[#20842]: https://github.com/home-assistant/home-assistant/pull/20842
[#20848]: https://github.com/home-assistant/home-assistant/pull/20848
[#20852]: https://github.com/home-assistant/home-assistant/pull/20852
[#20859]: https://github.com/home-assistant/home-assistant/pull/20859
[#20865]: https://github.com/home-assistant/home-assistant/pull/20865
[#20873]: https://github.com/home-assistant/home-assistant/pull/20873
[#20874]: https://github.com/home-assistant/home-assistant/pull/20874
[#20876]: https://github.com/home-assistant/home-assistant/pull/20876
[#20877]: https://github.com/home-assistant/home-assistant/pull/20877
[#20878]: https://github.com/home-assistant/home-assistant/pull/20878
[#20880]: https://github.com/home-assistant/home-assistant/pull/20880
[#20883]: https://github.com/home-assistant/home-assistant/pull/20883
[#20887]: https://github.com/home-assistant/home-assistant/pull/20887
[#20890]: https://github.com/home-assistant/home-assistant/pull/20890
[#20892]: https://github.com/home-assistant/home-assistant/pull/20892
[#20897]: https://github.com/home-assistant/home-assistant/pull/20897
[#20898]: https://github.com/home-assistant/home-assistant/pull/20898
[#20901]: https://github.com/home-assistant/home-assistant/pull/20901
[#20909]: https://github.com/home-assistant/home-assistant/pull/20909
[#20910]: https://github.com/home-assistant/home-assistant/pull/20910
[#20915]: https://github.com/home-assistant/home-assistant/pull/20915
[#20919]: https://github.com/home-assistant/home-assistant/pull/20919
[#20921]: https://github.com/home-assistant/home-assistant/pull/20921
[#20923]: https://github.com/home-assistant/home-assistant/pull/20923
[#20924]: https://github.com/home-assistant/home-assistant/pull/20924
[#20925]: https://github.com/home-assistant/home-assistant/pull/20925
[#20929]: https://github.com/home-assistant/home-assistant/pull/20929
[#20932]: https://github.com/home-assistant/home-assistant/pull/20932
[#20937]: https://github.com/home-assistant/home-assistant/pull/20937
[#20938]: https://github.com/home-assistant/home-assistant/pull/20938
[#20939]: https://github.com/home-assistant/home-assistant/pull/20939
[#20947]: https://github.com/home-assistant/home-assistant/pull/20947
[#20950]: https://github.com/home-assistant/home-assistant/pull/20950
[#20951]: https://github.com/home-assistant/home-assistant/pull/20951
[#20955]: https://github.com/home-assistant/home-assistant/pull/20955
[#20961]: https://github.com/home-assistant/home-assistant/pull/20961
[#20963]: https://github.com/home-assistant/home-assistant/pull/20963
[#20971]: https://github.com/home-assistant/home-assistant/pull/20971
[#20977]: https://github.com/home-assistant/home-assistant/pull/20977
[#20979]: https://github.com/home-assistant/home-assistant/pull/20979
[#20984]: https://github.com/home-assistant/home-assistant/pull/20984
[#20985]: https://github.com/home-assistant/home-assistant/pull/20985
[#20986]: https://github.com/home-assistant/home-assistant/pull/20986
[#20987]: https://github.com/home-assistant/home-assistant/pull/20987
[#20988]: https://github.com/home-assistant/home-assistant/pull/20988
[#20990]: https://github.com/home-assistant/home-assistant/pull/20990
[#20993]: https://github.com/home-assistant/home-assistant/pull/20993
[#20998]: https://github.com/home-assistant/home-assistant/pull/20998
[#21008]: https://github.com/home-assistant/home-assistant/pull/21008
[#21011]: https://github.com/home-assistant/home-assistant/pull/21011
[#21013]: https://github.com/home-assistant/home-assistant/pull/21013
[#21014]: https://github.com/home-assistant/home-assistant/pull/21014
[#21015]: https://github.com/home-assistant/home-assistant/pull/21015
[#21016]: https://github.com/home-assistant/home-assistant/pull/21016
[#21020]: https://github.com/home-assistant/home-assistant/pull/21020
[#21021]: https://github.com/home-assistant/home-assistant/pull/21021
[#21022]: https://github.com/home-assistant/home-assistant/pull/21022
[#21023]: https://github.com/home-assistant/home-assistant/pull/21023
[#21024]: https://github.com/home-assistant/home-assistant/pull/21024
[#21025]: https://github.com/home-assistant/home-assistant/pull/21025
[#21039]: https://github.com/home-assistant/home-assistant/pull/21039
[#21041]: https://github.com/home-assistant/home-assistant/pull/21041
[#21044]: https://github.com/home-assistant/home-assistant/pull/21044
[#21048]: https://github.com/home-assistant/home-assistant/pull/21048
[#21049]: https://github.com/home-assistant/home-assistant/pull/21049
[#21050]: https://github.com/home-assistant/home-assistant/pull/21050
[#21054]: https://github.com/home-assistant/home-assistant/pull/21054
[#21055]: https://github.com/home-assistant/home-assistant/pull/21055
[#21056]: https://github.com/home-assistant/home-assistant/pull/21056
[#21057]: https://github.com/home-assistant/home-assistant/pull/21057
[#21058]: https://github.com/home-assistant/home-assistant/pull/21058
[#21066]: https://github.com/home-assistant/home-assistant/pull/21066
[#21080]: https://github.com/home-assistant/home-assistant/pull/21080
[#21081]: https://github.com/home-assistant/home-assistant/pull/21081
[#21083]: https://github.com/home-assistant/home-assistant/pull/21083
[#21085]: https://github.com/home-assistant/home-assistant/pull/21085
[#21097]: https://github.com/home-assistant/home-assistant/pull/21097
[#21098]: https://github.com/home-assistant/home-assistant/pull/21098
[#21100]: https://github.com/home-assistant/home-assistant/pull/21100
[#21103]: https://github.com/home-assistant/home-assistant/pull/21103
[#21120]: https://github.com/home-assistant/home-assistant/pull/21120
[#21126]: https://github.com/home-assistant/home-assistant/pull/21126
[#21127]: https://github.com/home-assistant/home-assistant/pull/21127
[#21134]: https://github.com/home-assistant/home-assistant/pull/21134
[#21161]: https://github.com/home-assistant/home-assistant/pull/21161
[#21174]: https://github.com/home-assistant/home-assistant/pull/21174
[#21175]: https://github.com/home-assistant/home-assistant/pull/21175
[#21196]: https://github.com/home-assistant/home-assistant/pull/21196
[#21197]: https://github.com/home-assistant/home-assistant/pull/21197
[#21200]: https://github.com/home-assistant/home-assistant/pull/21200
[#21213]: https://github.com/home-assistant/home-assistant/pull/21213
[#21216]: https://github.com/home-assistant/home-assistant/pull/21216
[#21220]: https://github.com/home-assistant/home-assistant/pull/21220
[#21231]: https://github.com/home-assistant/home-assistant/pull/21231
[@CrazYoshi]: https://github.com/CrazYoshi
[@Danielhiversen]: https://github.com/Danielhiversen
[@JeffLIrion]: https://github.com/JeffLIrion
[@Julius2342]: https://github.com/Julius2342
[@MartinHjelmare]: https://github.com/MartinHjelmare
[@MatteGary]: https://github.com/MatteGary
[@OleksandrBerchenko]: https://github.com/OleksandrBerchenko
[@OnFreund]: https://github.com/OnFreund
[@OttoWinter]: https://github.com/OttoWinter
[@Sholofly]: https://github.com/Sholofly
[@StefanBCN]: https://github.com/StefanBCN
[@SukramJ]: https://github.com/SukramJ
[@SupremeSports]: https://github.com/SupremeSports
[@VirtualL]: https://github.com/VirtualL
[@Xiol]: https://github.com/Xiol
[@aerialls]: https://github.com/aerialls
[@akinomeroglu]: https://github.com/akinomeroglu
[@amelchio]: https://github.com/amelchio
[@andrewsayre]: https://github.com/andrewsayre
[@arigilder]: https://github.com/arigilder
[@arsaboo]: https://github.com/arsaboo
[@awarecan]: https://github.com/awarecan
[@bachya]: https://github.com/bachya
[@balloob]: https://github.com/balloob
[@bendews]: https://github.com/bendews
[@benvm]: https://github.com/benvm
[@boralyl]: https://github.com/boralyl
[@carstenschroeder]: https://github.com/carstenschroeder
[@cdce8p]: https://github.com/cdce8p
[@cisasteelersfan]: https://github.com/cisasteelersfan
[@dagobert]: https://github.com/dagobert
[@danielsjf]: https://github.com/danielsjf
[@dgomes]: https://github.com/dgomes
[@dmulcahey]: https://github.com/dmulcahey
[@efficiosoft]: https://github.com/efficiosoft
[@ehendrix23]: https://github.com/ehendrix23
[@eliseomartelli]: https://github.com/eliseomartelli
[@elupus]: https://github.com/elupus
[@emontnemery]: https://github.com/emontnemery
[@fabaff]: https://github.com/fabaff
[@fredrike]: https://github.com/fredrike
[@fronzbot]: https://github.com/fronzbot
[@helto4real]: https://github.com/helto4real
[@javicalle]: https://github.com/javicalle
[@leppa]: https://github.com/leppa
[@ludeeus]: https://github.com/ludeeus
[@markusressel]: https://github.com/markusressel
[@marvin-w]: https://github.com/marvin-w
[@mezz64]: https://github.com/mezz64
[@microraptor]: https://github.com/microraptor
[@mw-white]: https://github.com/mw-white
[@mxworm]: https://github.com/mxworm
[@nd-net]: https://github.com/nd-net
[@nhorvath]: https://github.com/nhorvath
[@notgwj]: https://github.com/notgwj
[@pc-coholic]: https://github.com/pc-coholic
[@peternijssen]: https://github.com/peternijssen
[@philhawthorne]: https://github.com/philhawthorne
[@pszafer]: https://github.com/pszafer
[@ptc]: https://github.com/ptc
[@rbflurry]: https://github.com/rbflurry
[@renemarc]: https://github.com/renemarc
[@rohankapoorcom]: https://github.com/rohankapoorcom
[@rwagoner]: https://github.com/rwagoner
[@scarface-4711]: https://github.com/scarface-4711
[@scop]: https://github.com/scop
[@sjabby]: https://github.com/sjabby
[@therve]: https://github.com/therve
[@timmo001]: https://github.com/timmo001
[@timvancann]: https://github.com/timvancann
[@tomatpasser]: https://github.com/tomatpasser
[@w1ll1am23]: https://github.com/w1ll1am23
[@wonderslug]: https://github.com/wonderslug
[@zumitnl]: https://github.com/zumitnl
[abode docs]: /components/abode/
[ads docs]: /components/ads/
[air_quality docs]: /components/air_quality/
[alarm_control_panel.abode docs]: /components/alarm_control_panel.abode/
[alarmdecoder docs]: /components/alarmdecoder/
[ambient_station docs]: /components/ambient_station/
[amcrest docs]: /components/amcrest/
[android_ip_webcam docs]: /components/android_ip_webcam/
[apcupsd docs]: /components/apcupsd/
[apple_tv docs]: /components/apple_tv/
[august docs]: /components/august/
[binary_sensor.bayesian docs]: /components/binary_sensor.bayesian/
[binary_sensor.modbus docs]: /components/binary_sensor.modbus/
[blink docs]: /components/blink/
[cast docs]: /components/cast/
[climate.coolmaster docs]: /components/climate.coolmaster/
[climate.flexit docs]: /components/climate.flexit/
[climate.modbus docs]: /components/climate.modbus/
[climate.xs1 docs]: /components/climate.xs1/
[cover.velux docs]: /components/cover.velux/
[deconz docs]: /components/deconz/
[default_config docs]: /components/default_config/
[device_tracker docs]: /components/device_tracker/
[ebusd docs]: /components/ebusd/
[eight_sleep docs]: /components/eight_sleep/
[emulated_hue docs]: /components/emulated_hue/
[esphome docs]: /components/esphome/
[fastdotcom docs]: /components/fastdotcom/
[feedreader docs]: /components/feedreader/
[freedns docs]: /components/freedns/
[google_pubsub docs]: /components/google_pubsub/
[googlehome docs]: /components/googlehome/
[harmony docs]: /components/harmony/
[homekit docs]: /components/homekit/
[homematic docs]: /components/homematic/
[homematicip_cloud docs]: /components/homematicip_cloud/
[http docs]: /components/http/
[hue docs]: /components/hue/
[ipma docs]: /components/ipma/
[isy994 docs]: /components/isy994/
[knx docs]: /components/knx/
[light.ads docs]: /components/light.ads/
[light.flux_led docs]: /components/light.flux_led/
[light.hyperion docs]: /components/light.hyperion/
[light.knx docs]: /components/light.knx/
[light.rflink docs]: /components/light.rflink/
[light.tplink docs]: /components/light.tplink/
[lock docs]: /components/lock/
[media_extractor docs]: /components/media_extractor/
[media_player.denonavr docs]: /components/media_player.denonavr/
[media_player.firetv docs]: /components/media_player.firetv/
[media_player.universal docs]: /components/media_player.universal/
[media_player.yamaha docs]: /components/media_player.yamaha/
[modbus docs]: /components/modbus/
[mqtt docs]: /components/mqtt/
[mythicbeastsdns docs]: /components/mythicbeastsdns/
[netatmo docs]: /components/netatmo/
[netgear_lte docs]: /components/netgear_lte/
[norway_air docs]: /components/norway_air/
[notify docs]: /components/notify/
[onboarding docs]: /components/onboarding/
[person docs]: /components/person/
[point docs]: /components/point/
[python_script docs]: /components/python_script/
[rflink docs]: /components/rflink/
[script docs]: /components/script/
[sensor.ambient_station docs]: /components/sensor.ambient_station/
[sensor.co2signal docs]: /components/sensor.co2signal/
[sensor.cpuspeed docs]: /components/sensor.cpuspeed/
[sensor.darksky docs]: /components/sensor.darksky/
[sensor.dsmr docs]: /components/sensor.dsmr/
[sensor.ebusd docs]: /components/sensor.ebusd/
[sensor.fastdotcom docs]: /components/sensor.fastdotcom/
[sensor.github docs]: /components/sensor.github/
[sensor.gtfs docs]: /components/sensor.gtfs/
[sensor.imap docs]: /components/sensor.imap/
[sensor.integration docs]: /components/sensor.integration/
[sensor.jewish_calendar docs]: /components/sensor.jewish_calendar/
[sensor.miflora docs]: /components/sensor.miflora/
[sensor.modbus docs]: /components/sensor.modbus/
[sensor.rejseplanen docs]: /components/sensor.rejseplanen/
[sensor.speedtest docs]: /components/sensor.speedtest/
[sensor.speedtestdotnet docs]: /components/sensor.speedtestdotnet/
[sensor.sql docs]: /components/sensor.sql/
[sensor.ted5000 docs]: /components/sensor.ted5000/
[sensor.thermoworks_smoke docs]: /components/sensor.thermoworks_smoke/
[sensor.xs1 docs]: /components/sensor.xs1/
[smartthings docs]: /components/smartthings/
[smhi docs]: /components/smhi/
[speedtestdotnet docs]: /components/speedtestdotnet/
[spider docs]: /components/spider/
[switch.broadlink docs]: /components/switch.broadlink/
[switch.modbus docs]: /components/switch.modbus/
[switch.switchmate docs]: /components/switch.switchmate/
[switch.tplink docs]: /components/switch.tplink/
[switch.xs1 docs]: /components/switch.xs1/
[system_health docs]: /components/system_health/
[system_log docs]: /components/system_log/
[thethingsnetwork docs]: /components/thethingsnetwork/
[timer docs]: /components/timer/
[tplink_lte docs]: /components/tplink_lte/
[transmission docs]: /components/transmission/
[unifi docs]: /components/unifi/
[updater docs]: /components/updater/
[utility_meter docs]: /components/utility_meter/
[vacuum.xiaomi_miio docs]: /components/vacuum.xiaomi_miio/
[velux docs]: /components/velux/
[websocket_api docs]: /components/websocket_api/
[wink docs]: /components/wink/
[xiaomi_aqara docs]: /components/xiaomi_aqara/
[xs1 docs]: /components/xs1/
[zha docs]: /components/zha/
[zwave docs]: /components/zwave/

View File

@ -31,6 +31,7 @@ Have you found an issue in your Home Assistant installation? Please report it. R
### {% linkable_title Videos, talks, workshops and alike %}
- [PyconFR 2018 - Faire de la domotique libriste avec Python](https://www.youtube.com/watch?v=Eu6umBJ51I4) (French) ([Slides](https://hackmd.io/p/BJTSyDkqm)) - October 2018
- [Build your own smart home with Home Assistant](https://zmonkey.org/blog/files/Home%20Assistant%202018%20v1.0.pdf) at [OpenWest](https://openwest.org) - June 2018
- [Automate your home with Home Assistant](https://www.youtube.com/watch?v=SSrgi4iHGbs) at [foss-north 2018](http://foss-north.se/2018/speakers-and-talks.html#jparadies) - March 2018
- [Home Assistant](https://github.com/home-assistant/home-assistant-assets/tree/master/english/2017-qecampX) at QECampX 2017 - October 2017

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB