diff --git a/.themes/classic/source/javascripts/libs/swfobject-dynamic.js b/.themes/classic/source/javascripts/libs/swfobject-dynamic.js index b021614524fa..a94423494226 100644 --- a/.themes/classic/source/javascripts/libs/swfobject-dynamic.js +++ b/.themes/classic/source/javascripts/libs/swfobject-dynamic.js @@ -202,7 +202,7 @@ var swfobject = function() { function hasPlayerVersion(rv) { var pv = ua.pv, v = rv.split("."); v[0] = parseInt(v[0], 10); - v[1] = parseInt(v[1], 10) || 0; // supports short notation, e.g. "9" instead of "9.0.0" + v[1] = parseInt(v[1], 10) || 0; // supports short notation, e.g., "9" instead of "9.0.0" v[2] = parseInt(v[2], 10) || 0; return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false; } diff --git a/_config.yml b/_config.yml index 901bd01abf40..7896bba25474 100644 --- a/_config.yml +++ b/_config.yml @@ -141,14 +141,14 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 79 -current_patch_version: 3 -date_released: 2018-10-02 +current_minor_version: 80 +current_patch_version: 0 +date_released: 2018-10-12 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. # Major release: -patch_version_notes: "#release-0793---october-2" +patch_version_notes: "#" # Minor release (Example #release-0431---april-25): # Date we moved to Discourse for comments diff --git a/plugins/filters.rb b/plugins/filters.rb index 41ad3357a8ba..9e3324252daf 100644 --- a/plugins/filters.rb +++ b/plugins/filters.rb @@ -32,7 +32,7 @@ def site_url # input - a url # # Returns input with all urls expanded to include the full site url - # e.g. /images/awesome.gif => http://example.com/images/awesome.gif + # e.g., /images/awesome.gif => http://example.com/images/awesome.gif # def full_url(input) expand_url(input, site_url) @@ -40,8 +40,8 @@ def full_url(input) # Prepends input with a url fragment # - # input - An absolute url, e.g. /images/awesome.gif - # url - The fragment to prepend the input, e.g. /blog + # input - An absolute url, e.g., /images/awesome.gif + # url - The fragment to prepend the input, e.g., /blog # # Returns the modified url, e.g /blog # diff --git a/sass/inuitcss/generic/_helper.scss b/sass/inuitcss/generic/_helper.scss index 3a488142bae6..39d45f29a5ec 100644 --- a/sass/inuitcss/generic/_helper.scss +++ b/sass/inuitcss/generic/_helper.scss @@ -5,7 +5,7 @@ /** * A series of helper classes to use arbitrarily. Only use a helper class if an * element/component doesn’t already have a class to which you could apply this - * styling, e.g. if you need to float `.main-nav` left then add `float:left;` to + * styling, e.g., if you need to float `.main-nav` left then add `float:left;` to * that ruleset as opposed to adding the `.float--left` class to the markup. * * A lot of these classes carry `!important` as you will always want them to win diff --git a/sass/inuitcss/objects/_beautons.scss b/sass/inuitcss/objects/_beautons.scss index cdb9a3becf2f..a6255287853a 100644 --- a/sass/inuitcss/objects/_beautons.scss +++ b/sass/inuitcss/objects/_beautons.scss @@ -175,7 +175,7 @@ .btn--tertiary{} /** - * Positive actions; e.g. sign in, purchase, submit, etc. + * Positive actions; e.g., sign in, purchase, submit, etc. */ .btn--positive{ background-color:#4A993E; @@ -183,7 +183,7 @@ } /** - * Negative actions; e.g. close account, delete photo, remove friend, etc. + * Negative actions; e.g., close account, delete photo, remove friend, etc. */ .btn--negative{ background-color:#b33630; diff --git a/sass/inuitcss/objects/_sprite.scss b/sass/inuitcss/objects/_sprite.scss index 898646bc7cf5..85459fd51bbb 100644 --- a/sass/inuitcss/objects/_sprite.scss +++ b/sass/inuitcss/objects/_sprite.scss @@ -22,7 +22,7 @@ * * Where ‘’ might map to a star in your particular icon font. * - * These all require extension in your theme stylesheet, e.g. in your own CSS: + * These all require extension in your theme stylesheet, e.g., in your own CSS: * .sprite{ background-image:url(path/to/your/sprite.png); diff --git a/source/_addons/lets_encrypt.markdown b/source/_addons/lets_encrypt.markdown index 0ac8d019945d..755d039a2f79 100644 --- a/source/_addons/lets_encrypt.markdown +++ b/source/_addons/lets_encrypt.markdown @@ -14,7 +14,7 @@ featured: false You should not use this if you are also using the [DuckDNS add-on]. The DuckDNS add-on has integrated Let's Encrypt support.
-Setup and manage a [Let's Encrypt](https://letsencrypt.org/) certificate. This addon will create a certificate on the first run and will auto-renew if the certificate is within 30 days of expiration. This add-on uses port 80 to verify the certificate request. You will need to stop all other add-ons that also use this port. +Setup and manage a [Let's Encrypt](https://letsencrypt.org/) certificate. This add-on will create a certificate on the first run and will auto-renew if the certificate is within 30 days of expiration. This add-on uses port 80 to verify the certificate request. You will need to stop all other add-ons that also use this port. ```json { @@ -43,7 +43,7 @@ If you use another port such as `8123` or an SSL proxy, change the port number. ## {% linkable_title Enabling auto-renewals %} -Out of the box, the add-on will not automatically renew your certificate. In fact, it only starts, tries to get/renew your certificte, and then stops. It's up to you to manually start it again whenever your certificate comes close to expiry. +Out of the box, the add-on will not automatically renew your certificate. In fact, it only starts, tries to get/renew your certificate, and then stops. It's up to you to manually start it again whenever your certificate comes close to expiry. However, you can automate this process using Home Assistant. diff --git a/source/_addons/samba.markdown b/source/_addons/samba.markdown index aa7d509c18b8..42519d3cfed4 100644 --- a/source/_addons/samba.markdown +++ b/source/_addons/samba.markdown @@ -10,7 +10,7 @@ footer: true featured: true --- -This addon allows you to set up a [Samba](https://samba.org/) server to access Hass.io folders using Windows network shares. +This add-on allows you to set up a [Samba](https://samba.org/) server to access Hass.io folders using Windows network shares. ```json { diff --git a/source/_addons/snips.markdown b/source/_addons/snips.markdown index e8377a1b5a73..b002ff1a4a17 100644 --- a/source/_addons/snips.markdown +++ b/source/_addons/snips.markdown @@ -15,7 +15,7 @@ The Snips add-on depends on the Mosquitto add on to bridge to Home Assistant, so Home Assistant comes with certain Intents builtin to handle common tasks. A complete list of Intents can be found in this wiki [Hass Snips Bundle](https://github.com/tschmidty69/hass-snips-bundle-intents/wiki). -The Snips addon by default comes with an assistant that allows you to turn on lights or switches, open covers, or add and list items to a shopping list if that component is enabled. +The Snips add-on by default comes with an assistant that allows you to turn on lights or switches, open covers, or add and list items to a shopping list if that component is enabled. If using a USB microphone and speakers plugged into the Raspberry Pi output, Snips will work without any change to the configuration. Trying saying things like: @@ -71,7 +71,7 @@ There is an active [discord](https://discordapp.com/invite/3939Kqx) channel for ### {% linkable_title Examples %} -So now you can turn lights on and off, let's check the weather. Log on to the [console](https://console.snips.ai/). If this is your first time, create a new assistant and add the Home Assistant skill, along with the Weather skill by snips. Download your assistant manually and copy it to the `/share` folder on your HassIO installation using the Samba addon. +So now you can turn lights on and off, let's check the weather. Log on to the [console](https://console.snips.ai/). If this is your first time, create a new assistant and add the Home Assistant skill, along with the Weather skill by snips. Download your assistant manually and copy it to the `/share` folder on your HassIO installation using the Samba add-on. Next create a weather sensor, e.g., one for (Dark Sky)[/components/sensor.darksky/] and put the `api_key` in your `secrets.yaml` file. diff --git a/source/_addons/ssh.markdown b/source/_addons/ssh.markdown index 479b05c98f66..0fa91e88684a 100644 --- a/source/_addons/ssh.markdown +++ b/source/_addons/ssh.markdown @@ -35,7 +35,7 @@ To start this add-on for the first time, you either need to include a key (enclo The username for login over SSH is `root`. The complete login command is `ssh root@hassio.local`. -After logging in, you will find yourself in this add-ons container. The Home Assistant configuration directory is mounted on the path `/config`. +After logging in, you will find yourself in this add-on's container. The Home Assistant configuration directory is mounted on the path `/config`. Configuration variables: diff --git a/source/_components/alarm_control_panel.nx584.markdown b/source/_components/alarm_control_panel.nx584.markdown index a98ad9050a6b..a46cbf752733 100644 --- a/source/_components/alarm_control_panel.nx584.markdown +++ b/source/_components/alarm_control_panel.nx584.markdown @@ -22,8 +22,20 @@ alarm_control_panel: - platform: nx584 ``` -Configuration variables: - -- **host** (*Optional*): The host where the nx584 server process is running. Defaults to `localhost`. -- **port** (*Optional*): The port where the Alarm panel is listening. Defaults to `5007`. - +{% configuration %} +host: + description: The host where the nx584 server process is running. + required: false + default: localhost + type: string +name: + description: This parameter allows you to override the name. + required: false + default: NX584 + type: string +port: + description: The port where the Alarm panel is listening. + required: false + default: 5007 + type: integer +{% endconfiguration %} diff --git a/source/_components/alert.markdown b/source/_components/alert.markdown index bbb2e6b72897..033cd9188738 100644 --- a/source/_components/alert.markdown +++ b/source/_components/alert.markdown @@ -51,13 +51,13 @@ alert: {% configuration %} name: - description: The friendly name of the alert. + description: The friendly name of the alert. This can include a [template][template]. required: true type: string done_message: description: > A message sent after an alert transitions from `on` to `off`. Is only sent - if an alert notification was sent for transitioning from `off` to `on`. + if an alert notification was sent for transitioning from `off` to `on`. This can include a [template][template]. required: false type: string entity_id: @@ -191,3 +191,5 @@ sent 30 minutes after that, and a 60 minute delay will fall between every following notification. For example, if the garage door opens at 2:00, a notification will be sent at 2:15, 2:45, 3:45, 4:45, etc., continuing every 60 minutes. + +[template]: /docs/configuration/templating/ diff --git a/source/_components/android_ip_webcam.markdown b/source/_components/android_ip_webcam.markdown index b11ac13595e8..a16ca91b979c 100644 --- a/source/_components/android_ip_webcam.markdown +++ b/source/_components/android_ip_webcam.markdown @@ -25,49 +25,92 @@ android_ip_webcam: - host: 192.168.1.10 ``` -Configuration variables: - -- **host** (*Required*): The IP Address of the phone on the network. -- **port** (*Optional*): Default is set 8080. The port the IP Webcam listens on. -- **name** (*Optional*): Override the name of the phone. -- **username** (*Optional*): The username to access the phone. -- **password** (*Optional*): The password to access the phone. -- **scan_interval** (*Optional*): Default is 10 seconds. Defines the update interval of the phone. -- **sensors** array (*Optional*): Conditions to display sensor in the frontend. See the list of supported sensors. -- **switches** array (*Optional*): Conditions to display settings in the frontend. See the list of supported settings. -- **motion_sensor** (*Optional*): Activate motion sensor if auto_discovery is disabled. +{% configuration %} +host: + description: The IP Address of the phone on the network. + required: true + type: string +port: + description: The port the IP Webcam listens on. + required: false + default: 8080 + type: integer +name: + description: Override the name of the phone. + required: false + default: IP Webcam + type: string +username: + description: The username to access the phone. + required: inclusive + type: string +password: + description: The password to access the phone. + required: inclusive + type: string +scan_interval: + description: Defines the update interval of the phone. + required: false + default: 10 + type: integer +sensors: + description: Conditions to display sensor in the frontend. See the list of supported sensors. + required: false + type: list + keys: + audio_connections: + description: Audio Connections + battery_level: + description: Battery Level + battery_temp: + description: Battery Temperature + battery_voltage: + description: Battery Voltage + light: + description: Light Level + motion: + description: Motion + pressure: + description: Pressure + proximity: + description: Proximity + sound: + description: Sound + video_connections: + description: Video Connections +switches: + description: Conditions to display settings in the frontend. See the list of supported switches. + required: false + type: list + keys: + exposure_lock: + description: Exposure Lock + ffc: + description: Front-facing Camera + focus: + description: Focus + gps_active: + description: GPS Active + night_vision: + description: Night Vision + overlay: + description: Overlay + torch: + description: Torch + whitebalance_lock: + description: White Balance Lock + video_recording: + description: Video Recording +motion_sensor: + description: Activate motion sensor if auto_discovery is disabled. + required: false + type: boolean +{% endconfiguration %}You need to enable logging in the Android app (`Data logging` > `Enable data logging`), if you wish to see the sensor states in Home Assistant. The sensor states stays as `unknown`, until it's enabled.
-### {% linkable_title Supported features %} - -Sensors: - -- audio_connections -- battery_level -- battery_temp -- battery_voltage -- light -- motion -- pressure -- proximity -- sound -- video_connections - -Settings (Switches): - -- exposure_lock -- ffc -- focus -- gps_active -- night_vision -- overlay -- torch -- whitebalance_lock -- video_recording - ## {% linkable_title Full example %} ```yaml diff --git a/source/_components/apple_tv.markdown b/source/_components/apple_tv.markdown index e9008af63856..c9a0e3f0606d 100644 --- a/source/_components/apple_tv.markdown +++ b/source/_components/apple_tv.markdown @@ -42,13 +42,28 @@ apple_tv: credentials: CREDENTIALS_2 ``` -Configuration variables: - -- **host** (*Required*): The IP-address of the device. -- **login_id** (*Required*): An identifier used to login to the device, see below. -- **name** (*Optional*): The name of the device used in the frontend. -- **start_off** (*Optional*): Set to true if the device should start in fake standby. -- **credentials** (*Optional*): Credentials used for AirPlay playback. +{% configuration %} +host: + description: The IP-address of the device. + required: true + type: string +login_id: + description: An identifier used to login to the device, see below. + required: true + type: string +name: + description: The name of the device used in the frontend. + required: false + type: string +start_off: + description: Set to true if the device should start in fake standby. + required: false + type: boolean +credentials: + description: Credentials used for AirPlay playback. + required: false + type: string +{% endconfiguration %} In order to connect to the device, you need a *login id*. The easiest way to obtain this identifier is to use the `apple_tv_scan` service (described below). Additional information about `start_off` and `credentials` can also be found under the guides section. diff --git a/source/_components/axis.markdown b/source/_components/axis.markdown index 9b2faadd9881..fc630149a00f 100644 --- a/source/_components/axis.markdown +++ b/source/_components/axis.markdown @@ -30,24 +30,62 @@ axis: - camera ``` -## {% linkable_title Configuration variables %} - -- **device** (*Required*): Unique name -- **host** (*Required*): The IP address to your Axis device. -- **username** (*Optional*): The username to your Axis device. Default 'root'. -- **password** (*Optional*): The password to your Axis device. Default 'pass'. -- **trigger_time** (*Optional*): Minimum time (in seconds) a sensor should keep its positive value. Default 0. -- **port** (*Optional*): Configure port web server of device is accessible from. Default 80. -- **location** (*Optional*): Physical location of your Axis device. Default not set. -- **include** (*Required*): This cannot be empty else there would be no use adding the device at all. - - **camera**: Stream MJPEG video to Home Assistant. - - **motion**: The built-in motion detection in Axis cameras. - - **vmd3**: ACAP Motion Detection app which has better algorithms for motion detection. - - **pir**: PIR sensor that can trigger on a motion. - - **sound**: Sound detector. - - **daynight**: Certain cameras have day/night mode if they have built-in IR lights. - - **tampering**: Signals when camera believes that it has been tampered with. - - **input**: Trigger on whatever you have connected to device input port. +{% configuration %} +device: + description: A unique name + required: true + type: string +host: + description: The IP address to your Axis device. + required: true + type: string +username: + description: The username to your Axis device. + required: false + default: root + type: string +password: + description: The password to your Axis device. + required: false + default: pass + type: string +trigger_time: + description: Minimum time (in seconds) a sensor should keep its positive value. + required: false + default: 0 + type: integer +port: + description: Configure port web server of device is accessible from. + required: false + default: 80 + type: integer +location: + description: Physical location of your Axis device. + required: false + default: not set + type: string +include: + description: This cannot be empty else there would be no use adding the device at all. + required: true + type: map + keys: + camera: + description: Stream MJPEG video to Home Assistant. + motion: + description: The built-in motion detection in Axis cameras. + vmd3: + description: ACAP Motion Detection app which has better algorithms for motion detection. + pir: + description: PIR sensor that can trigger on a motion. + sound: + description: Sound detector. + daynight: + description: Certain cameras have day/night mode if they have built-in IR lights. + tampering: + description: Signals when camera believes that it has been tampered with. + input: + description: Trigger on whatever you have connected to device input port. +{% endconfiguration %} A full configuration example could look like this: diff --git a/source/_components/binary_sensor.aurora.markdown b/source/_components/binary_sensor.aurora.markdown index f1c165381ece..460500c24c35 100644 --- a/source/_components/binary_sensor.aurora.markdown +++ b/source/_components/binary_sensor.aurora.markdown @@ -28,10 +28,18 @@ binary_sensor: - platform: aurora ``` -Configuration variables: - -- **forecast_threshold** (*Optional*): Provide your own threshold number above which the sensor will trigger. Defaults to 75. -- **name** (*Optional*): The name of the sensor. Default is 'Aurora Visibility'. +{% configuration %} +forecast_threshold: + description: Provide your own threshold number above which the sensor will trigger. + required: false + default: 75 + type: integer +name: + description: The name of the sensor. + required: false + default: Aurora Visibility + type: string +{% endconfiguration %} ```yaml binary_sensor: diff --git a/source/_components/binary_sensor.bbb_gpio.markdown b/source/_components/binary_sensor.bbb_gpio.markdown index f35f488a7eaf..66e4c98f4fa1 100644 --- a/source/_components/binary_sensor.bbb_gpio.markdown +++ b/source/_components/binary_sensor.bbb_gpio.markdown @@ -30,14 +30,36 @@ binary_sensor: name: Window ``` -Configuration variables: - -- **pins** array (*Required*): Array of used pins. - - **pin_name** (*Required*): Pin numbers and corresponding names. - - **name** (*Required*): Friendly name to use for the frontend. - - **bouncetime** (*Optional*): Debounce time for reading input pin defined in milliseconds [ms]. Defaults to `50 ms`. - - **invert_logic** (*Optional*): If `true`, inverts the input logic to ACTIVE LOW. Default is `false` (ACTIVE HIGH). - - **pull_mode** (*Optional*): Type of internal pull resistor connected to input. Options are `UP` - pull-up resistor and `DOWN` - pull-down resistor. Defaults to `UP`. +{% configuration %} +pins: + description: List of used pins. + required: true + type: map + keys: + pin_name: + description: Port numbers and corresponding names. + required: true + type: map + keys: + name: + description: Friendly name to use for the frontend. + required: true + type: string + bouncetime: + description: Debounce time for reading input pin defined in milliseconds [ms]. + required: false + default: 50 + type: integer + invert_logic: + description: If `true`, inverts the input logic to ACTIVE LOW + required: false + default: false + type: boolean + pull_mode: + description: Type of internal pull resistor connected to input. Options are `UP` - pull-up resistor and `DOWN` - pull-down resistor. + required: false + default: UP + type: string +{% endconfiguration %} For more details about the GPIO layout, visit the [article](http://elinux.org/Beagleboard:BeagleBoneBlack) about the BeagleBone Black. - diff --git a/source/_components/binary_sensor.command_line.markdown b/source/_components/binary_sensor.command_line.markdown index c206c3cb9279..0bf0512d2653 100644 --- a/source/_components/binary_sensor.command_line.markdown +++ b/source/_components/binary_sensor.command_line.markdown @@ -27,16 +27,45 @@ binary_sensor: command: cat /proc/sys/net/ipv4/ip_forward ``` -Configuration variables: - -- **command** (*Required*): The action to take to get the value. -- **name** (*Optional*): Let you overwrite the name of the device. By default *name* from the device is used. -- **device_class** (*Optional*): The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend. -- **payload_on** (*Optional*): The payload that represents enabled state. Default is "ON". -- **payload_off** (*Optional*): The payload that represents disabled state. Default is "OFF". -- **value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload. -- **scan_interval** (*Optional*): Defines number of seconds for polling interval (defaults to 60 seconds). -- **command_timeout** (*Optional*): Defines number of seconds for command timeout (defaults to 15 seconds). +{% configuration %} +command: + description: The action to take to get the value. + required: true + type: string +name: + description: Let you overwrite the name of the device. By default *name* from the device is used. + required: false + default: name + type: string +device_class: + description: The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend. + required: false + type: string +payload_on: + description: The payload that represents enabled state. + required: false + default: ON + type: string +payload_off: + description: The payload that represents disabled state. + required: false + default: OFF + type: string +value_template: + description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload. + required: false + type: string +scan_interval: + description: Defines number of seconds for polling interval. + required: false + default: 60 + type: integer +command_timeout: + description: Defines number of seconds for command timeout. + required: false + default: 15 + type: integer +{% endconfiguration %} ## {% linkable_title Examples %} diff --git a/source/_components/binary_sensor.concord232.markdown b/source/_components/binary_sensor.concord232.markdown index 39320bb67230..f734d4afa5bb 100644 --- a/source/_components/binary_sensor.concord232.markdown +++ b/source/_components/binary_sensor.concord232.markdown @@ -22,8 +22,15 @@ binary_sensor: - platform: concord232 ``` -Configuration variables: - -- **host** (*Optional*): The host where the concord232 server process is running. Defaults to `localhost`. -- **port** (*Optional*): The port where the Alarm panel is listening. Defaults to 5007. - +{% configuration %} +host: + description: The host where the concord232 server process is running. + required: false + default: localhost + type: string +port: + description: The port where the Alarm panel is listening. + required: false + default: 5007 + type: integer +{% endconfiguration %} diff --git a/source/_components/binary_sensor.ffmpeg_motion.markdown b/source/_components/binary_sensor.ffmpeg_motion.markdown index 0607a0127af0..eaf15a86a793 100644 --- a/source/_components/binary_sensor.ffmpeg_motion.markdown +++ b/source/_components/binary_sensor.ffmpeg_motion.markdown @@ -35,16 +35,45 @@ binary_sensor: input: FFMPEG_SUPPORTED_INPUT ``` -Configuration variables: - -- **input** (*Required*): An FFmpeg-compatible input file, stream, or feed. -- **name** (*Optional*): Override the name of your camera for the frontend. -- **initial_state** (*Optional*): Start `ffmpeg` with Home Assistant. Defaults to `true`. -- **changes** (*Optional*): How much needs to change between two frames to detect it as motion (a lower value is more sensitive). Defaults to 10%. -- **reset** (*Optional*): The time to reset the state after no new motion is detected. Defaults to 20 seconds. -- **repeat** (*Optional*): How many events need to be detected in *repeat_time* in order to trigger a motion. Defaults to 0 repeats (deactivated). -- **repeat_time** (*Optional*): The span of time *repeat* events need to occur in before triggering a motion. Defaults to 0 seconds (deactivated). -- **extra_arguments** (*Optional*): Extra options to pass to `ffmpeg`, e.g., video denoise filtering. +{% configuration %} +input: + description: An FFmpeg-compatible input file, stream, or feed. + required: true + type: string +name: + description: Override the name of your camera for the frontend. + required: false + type: string +initial_state: + description: Start `ffmpeg` with Home Assistant. + required: false + default: true + type: boolean +changes: + description: How much needs to change between two frames to detect it as motion, value in percentage (a lower value is more sensitive). + required: false + default: 10% + type: integer +reset: + description: The time to reset the state after no new motion is detected. + required: false + default: 20 + type: integer +repeat: + description: How many events need to be detected in *repeat_time* in order to trigger a motion, 0 repeats means deactivated. + required: false + default: 0 + type: integer +repeat_time: + description: The span of time *repeat* events need to occur in before triggering a motion, 0 seconds means deactivated. + required: false + default: 0 + type: integer +extra_arguments: + description: Extra options to pass to `ffmpeg`, e.g., video denoise filtering. + required: false + type: string +{% endconfiguration %} To experiment with values (changes/100 is the scene value in `ffmpeg`): diff --git a/source/_components/binary_sensor.ffmpeg_noise.markdown b/source/_components/binary_sensor.ffmpeg_noise.markdown index 842be8203e17..ae2077cd2988 100644 --- a/source/_components/binary_sensor.ffmpeg_noise.markdown +++ b/source/_components/binary_sensor.ffmpeg_noise.markdown @@ -30,16 +30,44 @@ binary_sensor: input: FFMPEG_SUPPORTED_INPUT ``` -Configuration variables: - -- **input** (*Required*): An FFmpeg-compatible input file, stream, or feed. -- **name** (*Optional*): Override the name of your camera. -- **initial_state** (*Optional*): Default true. Start ffmpeg with home-assistant. -- **peak** (*Optional*): Default -30. The threshold of detecting noise, in dB. 0 is very loud and -100 is low. -- **duration** (*Optional*): Default 1 second. How long the noise needs to be over the peak to trigger the state. -- **reset** (*Optional*): Default 20 seconds. The time to reset the state after no new noise is over the peak. -- **extra_arguments** (*Optional*): Extra options to pass to `ffmpeg`, like audio frequency filtering. -- **output** (*Optional*): Allows you to send the audio output of this sensor to an Icecast server or other FFmpeg-supported output, e.g., to stream with Sonos after a state is triggered. +{% configuration %} +input: + description: An FFmpeg-compatible input file, stream, or feed. + required: true + type: string +name: + description: Override the name of your camera. + required: false + type: string +initial_state: + description: Start ffmpeg with home-assistant. + required: false + default: true + type: boolean +peak: + description: The threshold of detecting noise, in dB. 0 is very loud and -100 is low. + required: false + default: -30 + type: integer +duration: + description: How long the noise needs to be over the peak to trigger the state. + required: false + default: 1 + type: integer +reset: + description: The time to reset the state after no new noise is over the peak. + required: false + default: 20 + type: integer +extra_arguments: + description: Extra options to pass to `ffmpeg`, like audio frequency filtering. + required: false + type: string +output: + description: Allows you to send the audio output of this sensor to an Icecast server or other FFmpeg-supported output, e.g., to stream with Sonos after a state is triggered. + required: false + type: string +{% endconfiguration %} To experiment with values: diff --git a/source/_components/binary_sensor.knx.markdown b/source/_components/binary_sensor.knx.markdown index 6f5ff0979062..97004e94b8e2 100644 --- a/source/_components/binary_sensor.knx.markdown +++ b/source/_components/binary_sensor.knx.markdown @@ -26,13 +26,29 @@ binary_sensor: address: '6/0/2' ``` -Configuration variables: - -- **address** (*Required*): KNX group address of the binary sensor. -- **name** (*Optional*): A name for this device used within Home Assistant. -- **device_class** (*Optional*): HASS device class e.g., "motion". -- **significant_bit** (*Optional*): Specify which significant bit of the KNX value should be used. Default is 1. -- **reset_after** (*Optional*): Reset back to OFF state after specified milliseconds. +{% configuration %} +address: + description: KNX group address of the binary sensor. + required: true + type: string +name: + description: A name for this device used within Home Assistant. + required: false + type: string +device_class: + description: HASS device class e.g., "motion". + required: false + type: string +significant_bit: + description: Specify which significant bit of the KNX value should be used. + required: false + default: 1 + type: integer +reset_after: + description: Reset back to OFF state after specified milliseconds. + required: false + type: integer +{% endconfiguration %} You can also attach actions to binary sensors (e.g., to switch on a light when a switch was pressed). In this example, one light is switched on when the button was pressed once and two others when the button was pressed a second time. @@ -57,10 +73,23 @@ binary_sensor: service: homeassistant.turn_on ``` -Configuration variables: - -- **name** (*Optional*): A name for this device used within Home Assistant. -- **counter** (*Optional*): Set to 2 if your only want the action to be executed if the button was pressed twice. To 3 for three times button pressed. Defaults to 1. -- **hook** (Optional): Indicates if the automation should be executed on what state of the binary sensor. Values: "on" or "off". Defaults to "on". -- **action**: Specify a list of actions analog to the [automation rules](/docs/automation/action/). - +{% configuration %} +name: + description: A name for this device used within Home Assistant. + required: false + type: string +counter: + description: Set to 2 if your only want the action to be executed if the button was pressed twice. To 3 for three times button pressed. + required: false + default: 1 + type: integer +hook: + description: Indicates if the automation should be executed on what state of the binary sensor. Values are "on" or "off". + required: false + default: "on" + type: string +action: + description: Specify a list of actions analog to the [automation rules](/docs/automation/action/). + required: false + type: list +{% endconfiguration %} diff --git a/source/_components/binary_sensor.modbus.markdown b/source/_components/binary_sensor.modbus.markdown index 62f5765dd3e1..fbc300c29842 100644 --- a/source/_components/binary_sensor.modbus.markdown +++ b/source/_components/binary_sensor.modbus.markdown @@ -32,13 +32,26 @@ binary_sensor: coil: 110 ``` -Configuration variables: +{% configuration %} +coils: + description: The array contains a list of coils to read from. + required: true + type: [map, list] + keys: + name: + description: Name of the sensor. + required: true + type: string + slave: + description: The number of the slave (Optional for TCP and UDP Modbus). + required: true + type: integer + coil: + description: Coil number. + required: true + type: integer +{% endconfiguration %} -- **coils** array (*Required*): The array contains a list of coils to read from. - - **name** (*Required*): Name of the sensor. - - **slave** (*Required*): The number of the slave (Optional for TCP and UDP Modbus). - - **coil** (*Required*): Coil number. - It's possible to change the default 30 seconds scan interval for the sensor updates as shown in the [Platform options](/docs/configuration/platform_options/#scan-interval) documentation. ## {% linkable_title Full example %} diff --git a/source/_components/binary_sensor.mqtt.markdown b/source/_components/binary_sensor.mqtt.markdown index 42b942922260..132c59298e0d 100644 --- a/source/_components/binary_sensor.mqtt.markdown +++ b/source/_components/binary_sensor.mqtt.markdown @@ -109,12 +109,14 @@ value_template: required: false type: string force_update: - description: > - Sends update events even if the value has not changed. - Useful if you want to have meaningful value graphs in history. - reqired: false + description: Sends update events even if the value hasn't changed. Useful if you want to have meaningful value graphs in history. + required: false type: boolean - default: false + default: False +off_delay: + description: For sensors that only sends ‘On’ state updates, this variable sets a delay in seconds after which the sensor state will be updated back to ‘Off’. + required: false + type: integer device: description: 'Information about the device this binary sensor is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.' required: false diff --git a/source/_components/binary_sensor.nx584.markdown b/source/_components/binary_sensor.nx584.markdown index cce9c46eb0f8..0f9c17dea933 100644 --- a/source/_components/binary_sensor.nx584.markdown +++ b/source/_components/binary_sensor.nx584.markdown @@ -25,12 +25,39 @@ binary_sensor: platform: nx584 ``` -Configuration variables: - -- **host** (*Optional*): This is the host where the nx584 server process is running. If unset, it is assumed to be `localhost`, which will work if the server process is running on the same system as Home Assistant. -- **port** (*Optional*): The port where the server process is running. Defaults to `5007`. -- **exclude_zones** (*Optional*): This is a list of zone numbers that should be excluded. Use this to avoid exposing a zone that is of no interest, unconnected, etc. -- **zone_types** (*Optional*): This is a list of zone numbers mapped to zone types. Use this to designate zones as doors, motion sensors, smoke detectors, etc. The list of available zone types relevant to alarm zones are: `opening`, `motion`, `gas`, `smoke`, `moisture`, `safety`. +{% configuration %} +host: + description: This is the host where the nx584 server process is running. If unset, it is assumed to be `localhost`, which will work if the server process is running on the same system as Home Assistant. + required: false + default: localhost + type: string +port: + description: The port where the server process is running. + required: false + default: 5007 + type: integer +exclude_zones: + description: This is a list of zone numbers that should be excluded. Use this to avoid exposing a zone that is of no interest, unconnected, etc. + required: false + type: [list, integer] +zone_types: + description: This is a list of zone numbers mapped to zone types. Use this to designate zones as doors, motion sensors, smoke detectors, etc. See the list of available zone types relevant to alarm zones below. + required: false + type: map + keys: + opening: + description: Opening + motion: + description: Motion + gas: + description: Gas + smoke: + description: Smoke + moisture: + description: Moisture + safety: + description: Safety +{% endconfiguration %} An extended configuration entry could look like this: diff --git a/source/_components/binary_sensor.octoprint.markdown b/source/_components/binary_sensor.octoprint.markdown index 369205ad94a1..56d0395e8cfa 100644 --- a/source/_components/binary_sensor.octoprint.markdown +++ b/source/_components/binary_sensor.octoprint.markdown @@ -13,26 +13,8 @@ ha_release: 0.19 ha_iot_class: "Local Polling" --- - -The `octoprint` binary sensor platform let you monitor if your 3D printer is printing or if there was a printing error. +The `octoprint` sensor platform let you monitor various states of your 3D printer and its print jobs.-You must have the [OctoPrint component](/components/octoprint/) configured to use this sensor. +You must have the [OctoPrint component](/components/octoprint/) configured to use this binary sensor. After configuring that component, binary sensors automatically appear.
- -To set it up, add the following information to your `configuration.yaml` file: - -```yaml -binary_sensor: - - platform: octoprint - monitored_conditions: - - Printing - - Printing Error -``` - -Configuration variables: - -- **monitored_conditions** array (*Required*): States to monitor. - - **Printing**: State of the printer. - - **Printing Error**: Error while printing. -- **name** (*Optional*): The name of the sensor. Default is 'OctoPrint'. diff --git a/source/_components/binary_sensor.xiaomi_aqara.markdown b/source/_components/binary_sensor.xiaomi_aqara.markdown index e782c1e9e9a7..190d72b2c3cb 100644 --- a/source/_components/binary_sensor.xiaomi_aqara.markdown +++ b/source/_components/binary_sensor.xiaomi_aqara.markdown @@ -31,7 +31,7 @@ The requirement is that you have setup the [`xiaomi aqara` component](/component | Gas Leak Detector | natgas | JTQJ-BF-01LM/BW | on, off | | | | | Water Leak Sensor | sensor_wleak.aq1 | SJCGQ11LM | on, off | | | | | Button (1st gen) | switch | WXKG01LM | on (through long_click_press), off | `click`| `click_type`| `long_click_press`, `long_click_release`, `hold`, `single`, `double` | -| Button (2nd gen) | sensor_switch.aq2 | WXKG11LM | off (always) | `click` | `click_type` | `single`, `double` | +| Button (2nd gen) | sensor_switch.aq2, remote.b1acn01 | WXKG11LM | off (always) | `click` | `click_type` | `single`, `double` | | Aqara Wireless Switch (Single) | 86sw1 | WXKG03LM | off (always) | `click` | `click_type` | `single` | | Aqara Wireless Switch (Double) | 86sw2 | WXKG02LM | off (always) | `click` | `click_type` | `single`, `both` | | Cube | cube | MFKZQ01LM | off (always) | `cube_action` | `action_type`, `action_value` (rotate) | `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swing`, `alert`, `free_fall`, `rotate` (degrees at action_value) | diff --git a/source/_components/bmw_connected_drive.markdown b/source/_components/bmw_connected_drive.markdown index ce7688c9d9dc..064d426cbb8d 100644 --- a/source/_components/bmw_connected_drive.markdown +++ b/source/_components/bmw_connected_drive.markdown @@ -21,7 +21,7 @@ This component provides the following platforms: - Binary Sensors: Doors, windows, condition based services, check control messages, parking lights, door lock state, charging status (electric cars) and connections status (electric cars). - Device tracker: The location of your car. - Lock: Control the lock of your car. - - Sensors: Mileage, remaining range, remaining fuel, charging time remaing (electric cars), charging status (electric cars), remaing range electric (electric cars). + - Sensors: Mileage, remaining range, remaining fuel, charging time remaining (electric cars), charging status (electric cars), remaining range electric (electric cars). To enable this component in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/calendar.google.markdown b/source/_components/calendar.google.markdown index 1c074f5ed81f..ffa9233da250 100644 --- a/source/_components/calendar.google.markdown +++ b/source/_components/calendar.google.markdown @@ -157,7 +157,7 @@ Otherwise everything following the hash sign would be considered a YAML comment. ### {% linkable_title Sensor attributes %} - **offset_reached**: If set in the event title and parsed out will be `on`/`off` once the offset in the title in minutes is reached. So the title `Very important meeting #Important !!-10` would trigger this attribute to be `on` 10 minutes before the event starts. - - **all_day**: `True`/`False` if this is an all day event. Will be `False` if there is no event found. + - **all_day**: `true`/`false` if this is an all day event. Will be `false` if there is no event found. - **message**: The event title with the `search` and `offset` values extracted. So in the above example for **offset_reached** the **message** would be set to `Very important meeting` - **description**: The event description. - **location**: The event Location. diff --git a/source/_components/camera.dispatcher.markdown b/source/_components/camera.dispatcher.markdown index 26eb74febcdf..b0f3c63b851e 100644 --- a/source/_components/camera.dispatcher.markdown +++ b/source/_components/camera.dispatcher.markdown @@ -36,6 +36,13 @@ from homeassistant.helpers.dispatcher import async_dispatcher_send async_dispatcher_send(hass, 'name_of_dispatcher_signal', image_data) ``` -Configuration variables: -- **signal** (*Required*): The signal name of dispatcher signal they send image data to this camera. -- **name** (*Optional*): This parameter allows you to override the name of your camera. +{% configuration %} +signal: + description: The signal name of dispatcher signal they send image data to this camera. + required: true + type: string +name: + description: This parameter allows you to override the name of your camera. + required: false + type: string +{% endconfiguration %} diff --git a/source/_components/camera.ffmpeg.markdown b/source/_components/camera.ffmpeg.markdown index 481c835a1535..e87ea2118445 100644 --- a/source/_components/camera.ffmpeg.markdown +++ b/source/_components/camera.ffmpeg.markdown @@ -25,11 +25,20 @@ camera: input: FFMPEG_SUPPORTED_INPUT ``` -Configuration variables: - -- **input** (*Required*): An FFmpeg-compatible input file, stream, or feed. -- **name** (*Optional*): Override the name of your camera. -- **extra_arguments** (*Optional*): Extra options to pass to `ffmpeg`, e.g., image quality or video filter options. +{% configuration %} +input: + description: An FFmpeg-compatible input file, stream, or feed. + required: true + type: string +name: + description: Override the name of your camera. + required: false + type: string +extra_arguments: + description: Extra options to pass to `ffmpeg`, e.g., image quality or video filter options. + required: false + type: string +{% endconfiguration %} ### {% linkable_title Image quality %} diff --git a/source/_components/camera.foscam.markdown b/source/_components/camera.foscam.markdown index c9d1aabd5059..8215b0f2ffb9 100644 --- a/source/_components/camera.foscam.markdown +++ b/source/_components/camera.foscam.markdown @@ -28,18 +28,34 @@ camera: password: YOUR_PASSWORD ``` -Configuration variables: - -- **ip** (*Required*): The IP address your camera. -- **port** (*Optional*): The port that the camera is running on. The default is 88. -- **username** (*Required*): The username for accessing your camera. -- **password** (*Required*): The password for accessing your camera. -- **name** (*Optional*): This parameter allows you to override the name of your camera. +{% configuration %} +ip: + description: The IP address your camera. + required: true + type: string +port: + description: The port that the camera is running on. + required: false + default: 88 + type: integer +username: + description: The username for accessing your camera. + required: true + type: string +password: + description: The password for accessing your camera. + required: true + type: string +name: + description: This parameter allows you to override the name of your camera. + required: false + type: string +{% endconfiguration %}There seems to be some issues within Foscam with lengthy passwords and passwords containing certain symbols. Be sure to check your camera's documentation.
- + ### {% linkable_title Control Foscam PTZ (Pan/Tilt/Zoom) - Home/Away %} Foscam Webcams which support CGI Commands can be controlled by Home Assistant ([Source](http://www.ipcamcontrol.net/files/Foscam%20IPCamera%20CGI%20User%20Guide-V1.0.4.pdf)). For an example of how this can be done, see the [Foscam IP Camera Pan, Tilt, Zoom Control](/cookbook/foscam_away_mode_PTZ/) Cookbook entry. diff --git a/source/_components/camera.generic.markdown b/source/_components/camera.generic.markdown index 99f7e03aa7e8..a5c9d503d680 100644 --- a/source/_components/camera.generic.markdown +++ b/source/_components/camera.generic.markdown @@ -27,17 +27,48 @@ camera: still_image_url: http://194.218.96.92/jpg/image.jpg ``` -Configuration variables: - -- **still_image_url** (*Required*): The URL your camera serves the image on, eg. http://192.168.1.21:2112/. Can be a [template](/topics/templating/). -- **name** (*Optional*): This parameter allows you to override the name of your camera. -- **username** (*Optional*): The username for accessing your camera. -- **password** (*Optional*): The password for accessing your camera. -- **authentication** (*Optional*): Type for authenticating the requests `basic` (default) or `digest`. -- **limit_refetch_to_url_change** (*Optional*): True/false value (default: false). Limits re-fetching of the remote image to when the URL changes. Only relevant if using a template to fetch the remote image. -- **content_type** (*Optional*): Set the content type for the IP camera if it is not a jpg file (default: `image/jpeg`). Use `image/svg+xml` to add a dynamic svg file. -- **framerate** (*Optional*): The number of frames-per-second (FPS) of the stream (setting this too high may cause too much traffic on the network or be heavy on the camera). -- **verify_ssl** (*Optional*): True/false value (default: true). Enable or disable SSL certificate verification. +{% configuration %} +still_image_url: + description: "The URL your camera serves the image on, eg. http://192.168.1.21:2112/. Can be a [template](/topics/templating/)." + required: true + type: string +name: + description: This parameter allows you to override the name of your camera. + required: false + type: string +username: + description: The username for accessing your camera. + required: false + type: string +password: + description: The password for accessing your camera. + required: false + type: string +authentication: + description: "Type for authenticating the requests `basic` or `digest`." + required: false + default: basic + type: string +limit_refetch_to_url_change: + description: True/false value. Limits re-fetching of the remote image to when the URL changes. Only relevant if using a template to fetch the remote image. + required: false + default: false + type: boolean +content_type: + description: Set the content type for the IP camera if it is not a jpg file. Use `image/svg+xml` to add a dynamic svg file. + required: false + default: image/jpeg + type: string +framerate: + description: The number of frames-per-second (FPS) of the stream. Can cause heavy traffic on the network and/or heavy load on the camera. + required: false + type: integer +verify_ssl: + description: Enable or disable SSL certificate verification. + required: false + default: true + type: boolean +{% endconfiguration %}-The live stream writing by the camera is not an supported format when the hass reads through FTP for Yi 720p and Xiaofang Cameras, so this platform retrives the video which was saved 1 minute earlier. +The live stream writing by the camera is not a supported format when the hass reads through FTP for Yi 720p and Xiaofang Cameras, so this platform retrives the video which was saved 1 minute earlier.
diff --git a/source/_components/climate.generic_thermostat.markdown b/source/_components/climate.generic_thermostat.markdown index 274ac0377f9e..89d09a5981e8 100644 --- a/source/_components/climate.generic_thermostat.markdown +++ b/source/_components/climate.generic_thermostat.markdown @@ -34,7 +34,7 @@ Configuration variables: - **max_temp** (*Optional*): Set maximum set point available (default: 35) - **target_temp** (*Optional*): Set initial target temperature. Failure to set this variable will result in target temperature being set to null on startup. As of version 0.59, it will retain the target temperature set before restart if available. - **ac_mode** (*Optional*): Set the switch specified in the *heater* option to be treated as a cooling device instead of a heating device. -- **min_cycle_duration** (*Optional*): Set a minimum amount of time that the switch specified in the *heater* option must be in it's current state prior to being switched either off or on. +- **min_cycle_duration** (*Optional*): Set a minimum amount of time that the switch specified in the *heater* option must be in its current state prior to being switched either off or on. - **cold_tolerance** (*Optional*): Set a minimum amount of difference between the temperature read by the sensor specified in the *target_sensor* option and the target temperature that must change prior to being switched on. For example, if the target temperature is 25 and the tolerance is 0.5 the heater will start when the sensor equals or goes below 24.5. - **hot_tolerance** (*Optional*): Set a minimum amount of difference between the temperature read by the sensor specified in the *target_sensor* option and the target temperature that must change prior to being switched off. For example, if the target temperature is 25 and the tolerance is 0.5 the heater will stop when the sensor equals or goes above 25.5. - **keep_alive** (*Optional*): Set a keep-alive interval. If set, the switch specified in the *heater* option will be triggered every time the interval elapses. Use with heaters and A/C units that shut off if they don't receive a signal from their remote for a while. Use also with switches that might lose state. The keep-alive call is done with the current valid climate component state (either on or off). diff --git a/source/_components/climate.opentherm_gw.markdown b/source/_components/climate.opentherm_gw.markdown index 4b67af4667b2..1248a6578160 100644 --- a/source/_components/climate.opentherm_gw.markdown +++ b/source/_components/climate.opentherm_gw.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "OpenTherm Gateway" +title: "OpenTherm Gateway Climate" description: "Control your OpenTherm Gateway from Home Assistant." date: 2018-08-29 16:23 sidebar: true @@ -18,48 +18,8 @@ The `opentherm_gw` climate platform is used to control the [OpenTherm Gateway](h # {% linkable_title Configuration %} -```yaml -# Example configuration.yaml entry -climate: - - platform: opentherm_gw - device: /dev/ttyUSB0 -``` - -{% configuration %} -device: - description: "Path to OpenTherm Gateway device as supported by [PySerial](https://pythonhosted.org/pyserial/url_handlers.html)." - required: true - type: string -name: - description: The name for the device within Home Assistant. - required: false - type: string - default: OpenTherm Gateway -precision: - description: "The desired precision for this device. Can be used to match your actual thermostat's precision. Supported values are `0.1`, `0.5` and `1.0`." - required: false - type: float - default: "`0.5` for Celsius and `1.0` for Fahrenheit." -floor_temperature: - description: Some thermostats round all temperatures down to the lower value according to their precision. Default behaviour for Home Assistant is to round temperatures to the nearest value. Set this to `True` to override Home Assistant and round to the lower value according to the configured `precision`. - required: false - type: boolean -{% endconfiguration %} +Configuration of this platform is achieved through the [OpenTherm Gateway Hub](/components/opentherm_gw/) configuration.
The OpenTherm protocol is based on polling. The thermostat sends requests to the boiler at specific intervals. As a result, it may take some time for changes to propagate between Home Assistant and the thermostat.
- -# {% linkable_title Example %} - -A full configuration example with the OpenTherm Gateway connected to a remote host running `ser2net` looks like the one below. - -```yaml -# Full example configuration.yaml entry -climate: - - platform: opentherm_gw - device: socket://otgw.example.org:2345 - name: Thermostat - precision: 0.5 - floor_temperature: True -``` diff --git a/source/_components/climate.sensibo.markdown b/source/_components/climate.sensibo.markdown index 02003d4aa6aa..85577dcdf81c 100644 --- a/source/_components/climate.sensibo.markdown +++ b/source/_components/climate.sensibo.markdown @@ -24,12 +24,16 @@ climate: api_key:If you create the API key using a dedicated user (and not your main user), @@ -46,3 +50,26 @@ climate: - id1 - id2 ``` + +### {% linkable_title Adding a quick switch example %} + +If you want a "Quick Switch" to turn your AC On / Off, you can do that using the following `Switch Template`: + +{% raw %} +```yaml +switch: + - platform: template + switches: + ac: + friendly_name: "AC" + value_template: "{{ is_state('climate.ac', 'cool') or is_state('climate.ac', 'heat') or is_state('climate.ac', 'dry') or is_state('climate.ac', 'heat')}}" + turn_on: + service: climate.turn_on + data: + entity_id: climate.ac + turn_off: + service: climate.turn_off + data: + entity_id: climate.ac +``` +{% endraw %} diff --git a/source/_components/cover.knx.markdown b/source/_components/cover.knx.markdown index d6d3733c1e19..4e43d315cf16 100644 --- a/source/_components/cover.knx.markdown +++ b/source/_components/cover.knx.markdown @@ -33,17 +33,54 @@ cover: travelling_time_up: 61 ``` -Configuration variables: - -- **name** (*Optional*): A name for this device used within Home Assistant. -- **move_long_address**: KNX group address for moving the cover full up or down. -- **move_short_address** (*Optional*): KNX group address for moving the cover short time up or down. If the KNX device has a stop group address you can use that here. -- **position_address** (*Optional*): KNX group address for moving the cover to the dedicated position. -- **position_state_address** (*Optional*): Separate KNX group address for requesting the current position of the cover. -- **angle_address** (*Optional*): KNX group address for moving the cover to the dedicated angle. -- **angle_state_address** (*Optional*): Separate KNX group address for requesting the current angle of cover. -- **travelling_time_down** (*Optional*): Time cover needs to travel down in seconds. Needed to calculate the intermediate positions of cover while traveling. Defaults to 25. -- **travelling_time_up** (*Optional*): Time cover needs to travel up in seconds. Needed to calculate the intermediate positions of cover while traveling. Defaults to 25. -- **invert_position** (*Optional*): Set this to true if your actuator report fully closed as 100%. -- **invert_angle** (*Optional*): Set this to true if your actuator reports tilt fully closed as 100%. - +{% configuration %} +name: + description: A name for this device used within Home Assistant. + required: false + default: KNX Cover + type: string +move_long_address: + description: KNX group address for moving the cover full up or down. + required: false + type: string +move_short_address: + description: KNX group address for moving the cover short time up or down. If the KNX device has a stop group address you can use that here. + required: false + type: string +position_address: + description: KNX group address for moving the cover to the dedicated position. + required: false + type: string +position_state_address: + description: Separate KNX group address for requesting the current position of the cover. + required: false + type: string +angle_address: + description: KNX group address for moving the cover to the dedicated angle. + required: false + type: string +angle_state_address: + description: Separate KNX group address for requesting the current angle of cover. + required: false + type: string +travelling_time_down: + description: Time cover needs to travel down in seconds. Needed to calculate the intermediate positions of cover while traveling. + required: false + default: 25 + type: integer +travelling_time_up: + description: Time cover needs to travel up in seconds. Needed to calculate the intermediate positions of cover while traveling. + required: false + default: 25 + type: integer +invert_position: + description: Set this to true if your actuator report fully closed as 100%. + required: false + default: false + type: boolean +invert_angle: + description: Set this to true if your actuator reports tilt fully closed as 100%. + required: false + default: false + type: boolean +{% endconfiguration %} diff --git a/source/_components/cover.mqtt.markdown b/source/_components/cover.mqtt.markdown index b3f15bfeccd7..26bb333b6b3c 100644 --- a/source/_components/cover.mqtt.markdown +++ b/source/_components/cover.mqtt.markdown @@ -159,6 +159,35 @@ unique_id: description: An ID that uniquely identifies this cover. If two covers have the same unique ID, Home Assistant will raise an exception. required: false type: string +device: + description: 'Information about the device this cover is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.' + required: false + type: map + keys: + identifiers: + description: 'A list of IDs that uniquely identify the device. For example a serial number.' + required: false + type: list, string + connections: + description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' + required: false + type: list + manufacturer: + description: 'The manufacturer of the device.' + required: false + type: string + model: + description: 'The model of the device.' + required: false + type: string + name: + description: 'The name of the device.' + required: false + type: string + sw_version: + description: 'The firmware version of the device.' + required: false + type: string {% endconfiguration %} ## {% linkable_title Examples %} diff --git a/source/_components/cover.opengarage.markdown b/source/_components/cover.opengarage.markdown index d9327afa2a64..2675766c3fa8 100644 --- a/source/_components/cover.opengarage.markdown +++ b/source/_components/cover.opengarage.markdown @@ -33,14 +33,36 @@ cover: name: Right Garage Door ``` -Configuration variables: - -- **covers** array (*Required*): List of your doors. - - **identifier** (*Required*): Name of the cover as slug. Multiple entries are possible. - - **host** (*Required*): IP address of device. - - **port** (*Optional*): HTTP Port. Default is `80`. - - **device_key** (*Required*): Access key to control device. Default is `opendoor`. - - **name** (*Optional*): Name to use in the Frontend. If not provided, it will use name configured in device. +{% configuration %} +covers: + description: List of your doors. + required: true + type: map + keys: + identifier: + description: Name of the cover as slug. Multiple entries are possible. + required: true + type: map + keys: + host: + description: IP address of device. + required: true + type: string + port: + description: HTTP Port. + required: false + default: 80 + type: integer + device_key: + description: Access key to control device. + required: true + default: opendoor + type: string + name: + description: Name to use in the Frontend. If not provided, it will use name configured in device. + required: false + type: string +{% endconfiguration %} **Example with more detail:**
diff --git a/source/_components/datadog.markdown b/source/_components/datadog.markdown index 7a3ec052c742..c78a0c8bd463 100644 --- a/source/_components/datadog.markdown +++ b/source/_components/datadog.markdown @@ -33,9 +33,25 @@ To use the `datadog` component in your installation, add the following to your ` datadog: ``` -Configuration variables: - -- **host** (*Optional*): The IP address or hostname of your Datadog host, e.g., 192.168.1.23. Defaults to `localhost`. -- **port** (*Optional*): Port to use. Defaults to 8125. -- **prefix** (*Optional*): Prefix to use. Defaults to `hass`. -- **rate** (*Optional*): The sample rate of UDP packets sent to Datadog. Defaults to 1. +{% configuration %} +host: + description: The IP address or hostname of your Datadog host, e.g., 192.168.1.23. + required: false + default: localhost + type: string +port: + description: Port to use. + required: false + default: 8125 + type: integer +prefix: + description: Prefix to use. + required: false + default: hass + type: string +rate: + description: The sample rate of UDP packets sent to Datadog. + required: false + default: 1 + type: integer +{% endconfiguration %} diff --git a/source/_components/device_tracker.actiontec.markdown b/source/_components/device_tracker.actiontec.markdown index fbf211965001..f33d631b8f39 100644 --- a/source/_components/device_tracker.actiontec.markdown +++ b/source/_components/device_tracker.actiontec.markdown @@ -33,11 +33,20 @@ device_tracker: password: YOUR_ADMIN_PASSWORD ``` -Configuration variables: - -- **host** (*Required*): The IP address of your router, eg. `192.168.1.1`. -- **username** (*Required*: The username of an user with administrative privileges, usually `admin`. -- **password** (*Required*): The password for your given admin account. +{% configuration %} +host: + description: The IP address of your router, eg. `192.168.1.1`. + required: true + type: string +username: + description: The username of an user with administrative privileges, usually `admin`. + required: true + type: string +password: + description: The password for your given admin account. + required: true + type: string +{% endconfiguration %} See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. diff --git a/source/_components/device_tracker.aruba.markdown b/source/_components/device_tracker.aruba.markdown index e84c37954b04..5ccea64ab67a 100644 --- a/source/_components/device_tracker.aruba.markdown +++ b/source/_components/device_tracker.aruba.markdown @@ -34,11 +34,19 @@ device_tracker: password: YOUR_ADMIN_PASSWORD ``` -Configuration variables: - -- **host** (*Required*): The IP address of your router, e.g., `192.168.1.1`. -- **username** (*Required*): The username of an user with administrative privileges, usually `admin`. -- **password** (*Required*): The password for your given admin account. +{% configuration %} +host: + description: The IP address of your router, e.g., `192.168.1.1`. + required: true + type: string +username: + description: The username of an user with administrative privileges, usually `admin`. + required: true + type: string +password: + description: The password for your given admin account. + required: true + type: string +{% endconfiguration %} See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. - diff --git a/source/_components/device_tracker.automatic.markdown b/source/_components/device_tracker.automatic.markdown index c109862af844..e4d8880f57ec 100644 --- a/source/_components/device_tracker.automatic.markdown +++ b/source/_components/device_tracker.automatic.markdown @@ -37,20 +37,32 @@ device_tracker: - 2004 Subaru Impreza ``` -Configuration variables: - -- **client_id** (*Required*): The OAuth client id (get from https://developer.automatic.com/). -- **secret** (*Required*): The OAuth client secret (get from https://developer.automatic.com/). -- **current_location** (*Optional*): Set to `true` if you have requested `scope:current_location` for your account. Home Assistant will then be able to receive periodic location updates during trips. -- **devices** (*Optional*): The list of vehicle display names you wish to track. If not provided, all vehicles will be tracked. +{% configuration %} +client_id: + description: "The OAuth client id (get from https://developer.automatic.com/)." + required: true + type: string +secret: + description: "The OAuth client secret (get from https://developer.automatic.com/)." + required: true + type: string +current_location: + description: "Set to `true` if you have requested `scope:current_location` for your account. Home Assistant will then be able to receive periodic location updates during trips." + required: false + default: false + type: boolean +devices: + description: The list of vehicle display names you wish to track. If not provided, all vehicles will be tracked. + required: false + type: list +{% endconfiguration %} Home Assistant will also fire events when an update is received from Automatic. These can be used to trigger automations, as shown in the example below. A list of available event types can be found in the [Automatic Real-Time Events documentation](https://developer.automatic.com/api-reference/#real-time-events). - ```yaml # Example automatic event automation automation: - - trigger: + - trigger: - platform: event event_type: automatic_update event_data: @@ -60,6 +72,7 @@ automation: action: - service: light.turn_off ``` +
You can obtain the correct ID for your vehicle from your known_devices.yaml file. Be sure to lower-case any letters contained in your vehicle's ID when using it in an automation trigger.
diff --git a/source/_components/device_tracker.bluetooth_le_tracker.markdown b/source/_components/device_tracker.bluetooth_le_tracker.markdown index 83c21c615b7a..421a6e0708ba 100644 --- a/source/_components/device_tracker.bluetooth_le_tracker.markdown +++ b/source/_components/device_tracker.bluetooth_le_tracker.markdown @@ -36,10 +36,18 @@ device_tracker: - platform: bluetooth_le_tracker ``` -Configuration variables: - -- **track_new_devices** (*Optional*): If new discovered devices are tracked by default. Defaults to `True`. -- **interval_seconds** (*Optional*): Seconds between each scan for new devices. Defaults to `12` seconds. +{% configuration %} +track_new_devices: + description: If new discovered devices are tracked by default. + required: false + default: true + type: boolean +interval_seconds: + description: Seconds between each scan for new devices. + required: false + default: 12 + type: integer +{% endconfiguration %} As some BT LE devices change their MAC address regularly, a new device is only discovered when it has been seen 5 times. Some BTLE devices (e.g., fitness trackers) are only visible to the devices that they are paired with. In this case, the BTLE tracker won't see this device. diff --git a/source/_components/device_tracker.bt_home_hub_5.markdown b/source/_components/device_tracker.bt_home_hub_5.markdown index ce8890a0ed70..22c67170faba 100644 --- a/source/_components/device_tracker.bt_home_hub_5.markdown +++ b/source/_components/device_tracker.bt_home_hub_5.markdown @@ -11,7 +11,6 @@ logo: bt.png ha_category: Presence Detection --- - This platform offers presence detection by looking at connected devices to a [BT Home Hub 5](https://en.wikipedia.org/wiki/BT_Home_Hub) based router. To use a BT Home Hub 5 router in your installation, add the following to your `configuration.yaml` file: @@ -23,8 +22,12 @@ device_tracker: host: 192.168.1.254 ``` -Configuration variables: - -- **host** (*Optional*): The IP address of your router, Default: 192.168.1.254. +{% configuration %} +host: + description: The IP address of your router. + required: false + default: 192.168.1.254 + type: string +{% endconfiguration %} See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. diff --git a/source/_components/device_tracker.cisco_ios.markdown b/source/_components/device_tracker.cisco_ios.markdown index 589241b8eb63..ef48b6abac62 100644 --- a/source/_components/device_tracker.cisco_ios.markdown +++ b/source/_components/device_tracker.cisco_ios.markdown @@ -18,7 +18,7 @@ This is a presence detection scanner for [Cisco](http://www.cisco.com) IOS devic This device tracker needs SSH to be enabled on the router. -Before using this scanner it is recommended that you lower the ARP cache timeout on your router, as Cisco IOS normally comes with a 4 hour default ARP cache timeout. +Before using this scanner it is recommended that you lower the ARP cache timeout on your router, as Cisco IOS normally comes with a 4 hour default ARP cache timeout. For example, the following commands will lower the timeout to 2 minutes on Vlan1: @@ -43,7 +43,7 @@ copy running-config startup-config ```-If you have a very large number of devices on your VLan (+1000), then you may want to adjust the ARP cache timeout to suit your needs. See [this discussion](https://supportforums.cisco.com/discussion/10169296/arp-timeout) to learn more. +If you have a very large number of devices on your VLan (+1000), then you may want to adjust the ARP cache timeout to suit your needs. See [this discussion](https://supportforums.cisco.com/discussion/10169296/arp-timeout) to learn more.
To use this device tracker in your installation, add the following to your `configuration.yaml` file: @@ -57,12 +57,19 @@ device_tracker: password: YOUR_ADMIN_PASSWORD ``` -Configuration variables: - -- **host** (*Required*): The IP address of your router, e.g., 192.168.1.1. -- **username** (*Required*): The username of an user with administrative privileges. -- **password** (*Required*): The password for your given admin account. - +{% configuration %} +host: + description: The IP address of your router, e.g., 192.168.1.1. + required: true + type: string +username: + description: The username of an user with administrative privileges. + required: true + type: string +password: + description: The password for your given admin account. + required: true + type: string +{% endconfiguration %} See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. - diff --git a/source/_components/device_tracker.ddwrt.markdown b/source/_components/device_tracker.ddwrt.markdown index 826046d029fc..01e1c68ce5eb 100644 --- a/source/_components/device_tracker.ddwrt.markdown +++ b/source/_components/device_tracker.ddwrt.markdown @@ -25,11 +25,20 @@ device_tracker: password: YOUR_ADMIN_PASSWORD ``` -Configuration variables: - -- **host** (*Required*): The IP address of your router, e.g., `192.168.1.1`. -- **username** (*Required*: The username of an user with administrative privileges, usually `admin`. -- **password** (*Required*): The password for your given admin account. +{% configuration %} +host: + description: The IP address of your router, e.g., `192.168.1.1`. + required: true + type: string +username: + description: The username of an user with administrative privileges, usually `admin`. + required: true + type: string +password: + description: The password for your given admin account. + required: true + type: string +{% endconfiguration %} By default Home Assistant pulls information about connected devices from DD-WRT every 5 seconds. See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. diff --git a/source/_components/device_tracker.fritz.markdown b/source/_components/device_tracker.fritz.markdown index ed813ae1c376..07d2eee540fc 100644 --- a/source/_components/device_tracker.fritz.markdown +++ b/source/_components/device_tracker.fritz.markdown @@ -31,15 +31,23 @@ device_tracker: - platform: fritz ``` -Configuration variables: - -- **host** (*Optional*): The IP address of your router, eg. `192.168.1.1`. It is optional since every fritzbox is also reachable by using the IP address 169.254.1.1. -- **username** (*Optional*: The username of an user with administrative privileges, usually `admin`. -- **password** (*Optional*): The password for your given admin account. +{% configuration %} +host: + description: The IP address of your router, e.g., `192.168.1.1`. It is optional since every fritzbox is also reachable by using the IP address 169.254.1.1. + required: false + type: string +username: + description: The username of an user with administrative privileges, usually `admin`. + required: false + type: string +password: + description: The password for your given admin account. + required: false + type: string +{% endconfiguration %}It seems that it is not necessary to use it in current generation Fritz!Box routers because the necessary data can be retrieved anonymously.
See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. - diff --git a/source/_components/device_tracker.geofency.markdown b/source/_components/device_tracker.geofency.markdown index be09d277a1bb..e6f68b9efa86 100644 --- a/source/_components/device_tracker.geofency.markdown +++ b/source/_components/device_tracker.geofency.markdown @@ -22,9 +22,12 @@ device_tracker: - platform: geofency ``` -Configuration variables: - -- **mobile_beacons** (*Optional*): List of beacon names that are to be treated as *mobile*. The name must match the name you configure in Geofency. By default, beacons will be treated as *stationary*. +{% configuration %} +mobile_beacons: + description: List of beacon names that are to be treated as *mobile*. The name must match the name you configure in Geofency. By default, beacons will be treated as *stationary*. + required: false + type: list +{% endconfiguration %} A full sample configuration for the `geofency` platform is shown below: @@ -43,4 +46,4 @@ Geofency will automatically generate the device tracker name used for geofences, When you enter a geofence or stationary beacon, your location name in Home Assistant will be set to the name of the geofence or beacon location in Geofency. When you exit a geofence or stationary beacon, your location name in Home Assistant will be set to 'not home'. For mobile beacons, the location name will be 'not_home' whenever the beacon is entered or exited outside of a [zone](/components/zone/), otherwise, it will be set to the name of the zone. -To make Geofency work better with the [proximity](/components/proximity/) component, you should enable the 'Send Current Location' feature in the Webhook configuration screen. This ensures that the _current_ GPS coordinates are included in exit events instead of the coordinates of the (center of) the zone that was exited. \ No newline at end of file +To make Geofency work better with the [proximity](/components/proximity/) component, you should enable the 'Send Current Location' feature in the Webhook configuration screen. This ensures that the _current_ GPS coordinates are included in exit events instead of the coordinates of the (center of) the zone that was exited. diff --git a/source/_components/device_tracker.icloud.markdown b/source/_components/device_tracker.icloud.markdown index a57ba44d4b43..6867eaae0071 100644 --- a/source/_components/device_tracker.icloud.markdown +++ b/source/_components/device_tracker.icloud.markdown @@ -13,7 +13,7 @@ ha_release: "0.10" --- -The `icloud` platform allows you to detect presence using the [iCloud](https://www.icloud.com/) service. iCloud allows users to track their location on iOS devices. +The `icloud` platform allows you to detect presence using the [iCloud](https://www.icloud.com/) service. iCloud allows users to track their location on iOS devices. It does require that your device is registered with "Find My iPhone". @@ -28,13 +28,30 @@ device_tracker: account_name: accountname ``` -Configuration variables: - -- **username** (*Required*): The username for the iCloud account. -- **password** (*Required*): The password for your given username. -- **account_name** (*Optional*): The friendly name for the account_name. If this isn't given, it will use the account_name of the username (so the part before the `@` in the email address). -- **max_interval** (*Optional*): Maximum interval in minutes between subsequent location upates. This tracker uses dynamic intervals for requesting location updates. When iphone is stationary, interval will eventually be set to `max_interval` to save battery. When iphone starts moving again interval will be dynamically updated to 1 min. Note that updating interval to 1 min might be delayed by maximum `max_interval` minutes. Default is 30 min. Minimum value is 1 min. -- **gps_accuracy_threshold** (*Optional*): iCloud location updates come with some gps_accuracy varying from 10 to 5000 meters. This setting defines the accuracy threshold in meters for a location update. Less accurate updates will be discarded by this tracker. This allows more precise location monitoring and fewer false positive zone changes. Default is 1000 meters. +{% configuration %} +username: + description: The username for the iCloud account. + required: true + type: string +password: + description: The password for your given username. + required: true + type: string +account_name: + description: The friendly name for the account_name. If this isn't given, it will use the account_name of the username (so the part before the `@` in the email address). + required: false + type: string +max_interval: + description: Maximum interval in minutes between subsequent location upates. This tracker uses dynamic intervals for requesting location updates. When iphone is stationary, interval will eventually be set to `max_interval` to save battery. When iphone starts moving again interval will be dynamically updated to 1 min. Note that updating interval to 1 min might be delayed by maximum `max_interval` minutes. Minimum value is 1 min. + required: false + default: 30 + type: integer +gps_accuracy_threshold: + description: iCloud location updates come with some gps_accuracy varying from 10 to 5000 meters. This setting defines the accuracy threshold in meters for a location update. Less accurate updates will be discarded by this tracker. This allows more precise location monitoring and fewer false positive zone changes. + required: false + default: 1000 + type: integer +{% endconfiguration %}Low `max_interval` may cause battery drainage as it wakes up your device to get the current location. @@ -50,7 +67,7 @@ To disable the drainage of the battery, a dynamic interval is being used for eac 2 Factor Authentication is the improved version of 2 Steps Authentication, this is still not supported by the pyicloud library. Therefore it's not possible to use it with the device_tracker yet. 4 services are available for this component: -- **icloud_update**: This service can be used to ask for an update of a certain iDevice. The `account_name` and `device_name` are optional. Request will result in new Home Assistant [state_changed](/docs/configuration/events/#event-state_changed) event describing current iphone location. Can be used in automations when manual location update is needed, e.g. to check if anyone is home when door's been opened. +- **icloud_update**: This service can be used to ask for an update of a certain iDevice. The `account_name` and `device_name` are optional. Request will result in new Home Assistant [state_changed](/docs/configuration/events/#event-state_changed) event describing current iphone location. Can be used in automations when manual location update is needed, e.g., to check if anyone is home when door's been opened. - **icloud_lost_iphone**: This service will play the Lost iPhone sound on a certain iDevice. The `account_name` and `device_name` are optional. - **icloud_set_interval**: This service will change the dynamic interval of an iDevice. The `account_name` and `device_name` are optional. If `interval` is used in the service_data, the iDevice will be updated with that new interval. That interval will be fixed until the iDevice changes zone or if this service is called again. If `interval` isn't used in the service_data, the interval for that iDevice will revert back to its default dynamic interval based on its current zone, its distance towards home and its battery level. - **icloud_reset_account**: This service can be used to reset an iCloud account. This is helpful when not all devices are being found by the component or if you have added a new iDevice to your account. The `account_name` is optional. diff --git a/source/_components/device_tracker.keenetic_ndms2.markdown b/source/_components/device_tracker.keenetic_ndms2.markdown index d2d9fc506be2..01e8b8b96bbe 100644 --- a/source/_components/device_tracker.keenetic_ndms2.markdown +++ b/source/_components/device_tracker.keenetic_ndms2.markdown @@ -21,18 +21,34 @@ To use a Keenetic router in your installation, add the following to your `config # Example configuration.yaml entry device_tracker: - platform: keenetic_ndms2 - host: !secret router_ip - username: !secret router_username - password: !secret router_password + host: YOUR_HOST + username: YOUR_USERNAME + password: YOUR_PASSWORD ``` -Configuration variables: - -- **host** (*Required*): The IP address of your router, e.g., 192.168.1.1. -- **port** (*Optional*): The Telnet port of your router. Default is 23. -- **username** (*Required*): The username to login into the router (user should have read access to telnet interface of the router). -- **password** (*Required*): The password for the specified username. -- **interface** (*Optional*): Ihe internal name of the interface to get devices connected to. Default is 'Home'. For expert users only. - +{% configuration %} +host: + description: The IP address of your router, e.g., 192.168.1.1. + required: true + type: string +port: + description: The Telnet port of your router. + required: false + default: 23 + type: integer +username: + description: The username to login into the router (user should have read access to telnet interface of the router). + required: true + type: string +password: + description: The password for the specified username. + required: true + type: string +interface: + description: Ihe internal name of the interface to get devices connected to. For expert users only. + required: false + default: Home + type: string +{% endconfiguration %} See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. diff --git a/source/_components/device_tracker.linksys_ap.markdown b/source/_components/device_tracker.linksys_ap.markdown index 70cc3e17a147..1204e61f77ad 100644 --- a/source/_components/device_tracker.linksys_ap.markdown +++ b/source/_components/device_tracker.linksys_ap.markdown @@ -29,12 +29,25 @@ device_tracker: password: YOUR_PASSWORD ``` -Configuration variables: - -- **host** (*Required*): The hostname or IP address of your access point, eg. `192.168.1.1`. -- **username** (*Required*): The username of an user with administrative privileges (read-only is sufficient). -- **password** (*Required*): The password for your given admin account. -- **verify_ssl** (*Optional*): Verify SSL certificate for HTTPS request. Defaults to true. +{% configuration %} +host: + description: The hostname or IP address of your access point, e.g., `192.168.1.1`. + required: true + type: string +username: + description: The username of an user with administrative privileges (read-only is sufficient). + required: true + type: string +password: + description: The password for your given admin account. + required: true + type: string +verify_ssl: + description: Verify SSL certificate for HTTPS request. + required: false + default: true + type: boolean +{% endconfiguration %} ## {% linkable_title Example %} diff --git a/source/_components/device_tracker.linksys_smart.markdown b/source/_components/device_tracker.linksys_smart.markdown index 0cc22363fd93..601771a86bd6 100644 --- a/source/_components/device_tracker.linksys_smart.markdown +++ b/source/_components/device_tracker.linksys_smart.markdown @@ -34,8 +34,11 @@ device_tracker: host: 192.168.1.1 ``` -Configuration variables: - -- **host** (*Required*): The hostname or IP address of your router, eg. `192.168.1.1`. +{% configuration %} +host: + description: The hostname or IP address of your router, e.g., `192.168.1.1`. + required: true + type: string +{% endconfiguration %} See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. diff --git a/source/_components/device_tracker.luci.markdown b/source/_components/device_tracker.luci.markdown index c95813e34785..3e74b5ed9720 100644 --- a/source/_components/device_tracker.luci.markdown +++ b/source/_components/device_tracker.luci.markdown @@ -37,16 +37,28 @@ device_tracker: password: YOUR_ADMIN_PASSWORD ``` -Configuration variables: - -- **host** (*Required*): The IP address of your router, e.g., `192.168.1.1`. -- **username** (*Required*): The username of an user with administrative privileges, usually `admin`. -- **password** (*Required*): The password for your given admin account. -- **ssl** (*Optional*): If your router enforces SSL connections, set to `true`. Defaults to `false`. +{% configuration %} +host: + description: The hostname or IP address of your router, e.g., `192.168.1.1`. + required: true + type: string +username: + description: The username of an user with administrative privileges, usually `admin`. + required: true + type: string +password: + description: The password for your given admin account. + required: true + type: string +ssl: + description: If your router enforces SSL connections, set to `true`. + required: false + default: false + type: boolean +{% endconfiguration %} See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked.
-Some installations have [a small bug](https://github.com/openwrt/luci/issues/576). The timeout for luci RPC calls is not set and this makes the call fail. +Some installations have [a small bug](https://github.com/openwrt/luci/issues/576). The timeout for luci RPC calls is not set and this makes the call fail.
- diff --git a/source/_components/device_tracker.mercedesme.markdown b/source/_components/device_tracker.mercedesme.markdown index 3707d5ca1cdb..c436e507c84c 100644 --- a/source/_components/device_tracker.mercedesme.markdown +++ b/source/_components/device_tracker.mercedesme.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "Mercedes me" +title: "Mercedes me Device Tracker" description: "Instructions on for how to integrate Mercedes me into Home Assistant." date: 2018-01-27 10:00 sidebar: true diff --git a/source/_components/device_tracker.mikrotik.markdown b/source/_components/device_tracker.mikrotik.markdown index da1dceee4d96..5476d7902bcd 100644 --- a/source/_components/device_tracker.mikrotik.markdown +++ b/source/_components/device_tracker.mikrotik.markdown @@ -41,11 +41,24 @@ device_tracker: password: ADMIN_PASSWORD ``` -Configuration variables: - -- **host** (*Required*): The IP address of your router. -- **username** (*Required*: The username of an user with administrative privileges. -- **password** (*Required*): The password for your given admin account. -- **port** (*Optional*): Mikrotik API port. Defaults to `8728`. +{% configuration %} +host: + description: The IP address of your router. + required: true + type: string +username: + description: The username of an user with administrative privileges. + required: true + type: string +password: + description: The password for your given admin account. + required: true + type: string +port: + description: Mikrotik API port. + required: false + default: 8728 + type: integer +{% endconfiguration %} See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. diff --git a/source/_components/device_tracker.mqtt.markdown b/source/_components/device_tracker.mqtt.markdown index cf8f006de1f4..bb40d07ea515 100644 --- a/source/_components/device_tracker.mqtt.markdown +++ b/source/_components/device_tracker.mqtt.markdown @@ -26,11 +26,16 @@ device_tracker: annetherese_n4: 'location/annetherese' ``` -Configuration variables: - -- **devices** (*Required*): List of devices with their topic. -- **qos** (*Optional*): The QoS level of the topic. - +{% configuration %} +devices: + description: List of devices with their topic. + required: true + type: list +qos: + description: The QoS level of the topic. + required: false + type: integer +{% endconfiguration %} Example JSON you can publish to the topic (e.g., via mqtt.publish service): diff --git a/source/_components/device_tracker.netgear.markdown b/source/_components/device_tracker.netgear.markdown index 8bdcacc8cde0..78f05695e00a 100644 --- a/source/_components/device_tracker.netgear.markdown +++ b/source/_components/device_tracker.netgear.markdown @@ -26,16 +26,42 @@ device_tracker: password: YOUR_ADMIN_PASSWORD ``` -Configuration variables: - -- **url** (*Optional*): The base URL, e.g., `http://routerlogin.com:5000` for example. If not provided `host` and `port` are used. If none provided autodetection of the URL will be used. -- **host** (*Optional*): The IP address of your router, e.g., `192.168.1.1`. -- **port** (*Optional*): The port your router communicates with. -- **username** (*Optional*): The username of a user with administrative privileges. If not provided `admin` will be used. -- **password** (*Required*): The password for your given admin account. -- **devices** (*Optional*): If provided only specified devices will be reported. Can be MAC address or the device name as reported in the Netgear UI. -- **exclude** (*Optional*): Devices to exclude from the scan. -- **accesspoints** (*Optional*): Also track devices on the specified APs. Only supports MAC address. +{% configuration %} +url: + description: The base URL, e.g., `http://routerlogin.com:5000` for example. If not provided `host` and `port` are used. If none provided autodetection of the URL will be used. + required: false + type: string +host: + description: The IP address of your router, e.g., `192.168.1.1`. + required: false + type: string +port: + description: The port your router communicates with. + required: false + default: 5000 + type: integer +username: + description: The username of a user with administrative privileges. + required: false + default: admin + type: string +password: + description: The password for your given admin account. + required: true + type: string +devices: + description: If provided only specified devices will be reported. Can be MAC address or the device name as reported in the Netgear UI. + required: false + type: list +exclude: + description: Devices to exclude from the scan. + required: false + type: list +accesspoints: + description: Also track devices on the specified APs. Only supports MAC address. + required: false + type: list +{% endconfiguration %} When `accesspoints` is specified an extra device will be reported for each device connected to the APs specified here, as `MY-LAPTOP on RBS40`. `Router` will be reported as AP name for the main AP. Only tested with Orbi. diff --git a/source/_components/device_tracker.nmap_tracker.markdown b/source/_components/device_tracker.nmap_tracker.markdown index a94ea14aeda7..aa268fe6fcf0 100644 --- a/source/_components/device_tracker.nmap_tracker.markdown +++ b/source/_components/device_tracker.nmap_tracker.markdown @@ -19,7 +19,7 @@ As an alternative to the router-based device tracking, it is possible to directl Please keep in mind that modern smart phones will usually turn off WiFi when they are idle. Simple trackers like this may not be reliable on their own. -You might have to install the packages for `arp` and `nmap`. On Debian based hosts (for example Hassbian and Raspbian) do so by running `$ sudo apt-get install net-tools nmap`. On a Fedora host run `$ sudo dnf -y install nmap`. +You might have to install the packages for `arp` and `nmap`. On Debian based hosts (for example Hassbian and Raspbian) do so by running `$ sudo apt-get install net-tools nmap`. On a Fedora host run `$ sudo dnf -y install nmap`.
If you are using [Hass.io](/hassio/) then just move forward to the configuration as all requirements are already fulfilled.
@@ -36,12 +36,25 @@ device_tracker:
hosts: 192.168.1.0/24
```
-Configuration variables:
-
-- **hosts** (*Required*): The network address to scan (in any supported Nmap format). Mixing subnets and IPs is possible.
-- **home_interval** (*Optional*): The number of minutes Nmap will not scan this device, assuming it is home, in order to preserve the device battery.
-- **exclude** (*Optional*): Hosts not to include in Nmap scanning. Scanning the host where Home Assistant is running can cause problems (websocket error), so excluding that host is a good idea.
-- **scan_options** (*Optional*): Configurable scan options for Nmap. Default to `-F --host-timeout 5s`
+{% configuration %}
+hosts:
+ description: The network address to scan (in any supported Nmap format). Mixing subnets and IPs is possible.
+ required: true
+ type: string
+home_interval:
+ description: The number of minutes Nmap will not scan this device, assuming it is home, in order to preserve the device battery.
+ required: false
+ type: integer
+exclude:
+ description: Hosts not to include in Nmap scanning. Scanning the host where Home Assistant is running can cause problems (websocket error), so excluding that host is a good idea.
+ required: false
+ type: list
+scan_options:
+ description: Configurable scan options for Nmap.
+ required: false
+ default: -F --host-timeout 5s
+ type: string
+{% endconfiguration %}
## {% linkable_title Examples %}
diff --git a/source/_components/device_tracker.openwrt.markdown b/source/_components/device_tracker.openwrt.markdown
index 2f4b0f5a18e6..f9f720ac7304 100644
--- a/source/_components/device_tracker.openwrt.markdown
+++ b/source/_components/device_tracker.openwrt.markdown
@@ -25,7 +25,7 @@ There are _multiple_ ways of integrating an OpenWRT router for presence detectio
* [ubus](/components/device_tracker.ubus/)
* [luci](/components/device_tracker.luci/)
* __passive/event-based__
- External services which notify Home Assistant of devices via the [REST API endpoint](/developers/rest_api.markdown).
+ External services which notify Home Assistant of devices via the [REST API endpoint](https://developers.home-assistant.io/docs/en/external_api_rest.html).
* Advantages:
* devices typically registered in under one second when they connect
* very few network requests
diff --git a/source/_components/device_tracker.owntracks.markdown b/source/_components/device_tracker.owntracks.markdown
index a3de574f9120..66838f654e4b 100644
--- a/source/_components/device_tracker.owntracks.markdown
+++ b/source/_components/device_tracker.owntracks.markdown
@@ -25,15 +25,39 @@ device_tracker:
- platform: owntracks
```
-Configuration variables:
-
-- **max_gps_accuracy** (*Optional*): Sometimes Owntracks can report GPS location with a very low accuracy (few kilometers). That can trigger false zoning in your Home Assistant installation. With the parameter, you can filter these GPS reports. The number has to be in meter. For example, if you put 200 only GPS report with an accuracy under 200 will be take in account.
-- **waypoints** (*Optional*): Owntracks users can define [waypoints](http://owntracks.org/booklet/features/waypoints/) (a.k.a regions) which are similar in spirit to Home Assistant zones. If this configuration variable is `True`, the Owntracks users who are in `waypoint_whitelist` can export waypoints from the device and Home Assistant will import them as zone definitions. Defaults to `True`.
-- **waypoint_whitelist** (*Optional*): A list of user names (as defined for [Owntracks](/components/device_tracker.owntracks/)) who can export their waypoints from Owntracks to Home Assistant. This would be the `username` portion of the Base Topic Name, (e.g., owntracks/**username**/iPhone). Defaults to all users who are connected to Home Assistant via Owntracks.
-- **secret** (*Optional*): [Payload encryption key](http://owntracks.org/booklet/features/encrypt/). This is usable when communicating with a third-party untrusted server or a public server (where anybody can subscribe to any topic). By default the payload is assumed to be unencrypted (although the communication between Home Assistant and the server might still be encrypted). This feature requires the `libsodium` library to be present.
-- **mqtt_topic** (*Optional*): The topic to subscribe for Owntracks updates on your MQTT instance (defaults to `owntracks/#`).
-- **events_only** (*Optional*): Home Assistant will ignore all location updates and rely solely on geofence enter/leave events.
-- **region_mapping** (*Optional*): Dictionary to remap names of regions as configured in the Owntracks app to Home Assistant zones. Use this if you have multiple homes or Home Assistant instances and want to map a different label to 'home'. `key: value` maps Owntracks region `key` to Home Assistant zone `value`.
+{% configuration %}
+max_gps_accuracy:
+ description: Sometimes Owntracks can report GPS location with a very low accuracy (few kilometers). That can trigger false zoning in your Home Assistant installation. With the parameter, you can filter these GPS reports. The number has to be in meter. For example, if you put 200 only GPS report with an accuracy under 200 will be take in account.
+ required: false
+ type: integer
+waypoints:
+ description: "Owntracks users can define [waypoints](http://owntracks.org/booklet/features/waypoints/) (a.k.a regions) which are similar in spirit to Home Assistant zones. If this configuration variable is `true`, the Owntracks users who are in `waypoint_whitelist` can export waypoints from the device and Home Assistant will import them as zone definitions."
+ required: false
+ default: true
+ type: boolean
+waypoint_whitelist:
+ description: "A list of user names (as defined for [Owntracks](/components/device_tracker.owntracks/)) who can export their waypoints from Owntracks to Home Assistant. This would be the `username` portion of the Base Topic Name, (e.g., owntracks/**username**/iPhone)"
+ required: false
+ default: All users who are connected to Home Assistant via Owntracks.
+ type: list
+secret:
+ description: "[Payload encryption key](http://owntracks.org/booklet/features/encrypt/). This is usable when communicating with a third-party untrusted server or a public server (where anybody can subscribe to any topic). By default the payload is assumed to be unencrypted (although the communication between Home Assistant and the server might still be encrypted). This feature requires the `libsodium` library to be present."
+ required: false
+ type: string
+mqtt_topic:
+ description: The topic to subscribe for Owntracks updates on your MQTT instance.
+ required: false
+ default: owntracks/#
+ type: string
+events_only:
+ description: Home Assistant will ignore all location updates and rely solely on geofence enter/leave events.
+ required: false
+ type: boolean
+region_mapping:
+ description: "Dictionary to remap names of regions as configured in the Owntracks app to Home Assistant zones. Use this if you have multiple homes or Home Assistant instances and want to map a different label to 'home'. `key: value` maps Owntracks region `key` to Home Assistant zone `value`."
+ required: false
+ type: list
+{% endconfiguration %}
A full sample configuration for the `owntracks` platform is shown below:
@@ -42,9 +66,9 @@ A full sample configuration for the `owntracks` platform is shown below:
device_tracker:
- platform: owntracks
max_gps_accuracy: 200
- waypoints: True
+ waypoints: true
mqtt_topic: "owntracks/#"
- events_only: True
+ events_only: true
waypoint_whitelist:
- jon
- ram
@@ -107,5 +131,5 @@ You can use iBeacons of both types together, so if you have a Zone `drive` with
By default, any Owntracks user connected to Home Assistant can export their waypoint definitions (from the *Export - Export to Endpoint* menu item) which will then be translated to zone definitions in Home Assistant. The zones will be named `
+Discovery is not yet supported for any robot vacuum models (Dyson 360 Eye). For these devices, you will need to provide them in the `devices` list.
+
If you've added Home Assistant to the home screen, you have to first remove it from home screen, otherwise, this HTML5 app will show up instead of a browser. Using it would prevent Home Assistant to redirect back to the `Google Assistant` app.
@@ -192,3 +192,7 @@ The request_sync service may fail with a 404 if the project_id of the Homegraph
When using NGINX, ensure that your `proxy_pass` line *does not* have a trailing `/`, as this will result in errors. Your line should look like:
proxy_pass http://localhost:8123;
+
+### {% linkable_title Unlink and relink %}
+
+If you're having trouble with *Account linking failed* after you unlinked your service, try clearing the browser history and cache.
diff --git a/source/_components/graphite.markdown b/source/_components/graphite.markdown
index 4802e4a75863..c4b8a78e2b1c 100644
--- a/source/_components/graphite.markdown
+++ b/source/_components/graphite.markdown
@@ -21,9 +21,21 @@ To enable this component, add the following lines to your `configuration.yaml`:
graphite:
```
-Configuration variables:
-
-- **host** (*Option*): IP address of your graphite host, eg. http://192.168.1.10. Defaults to `localhost`
-- **port** (*Optional*): Port to use. Defaults to 2003.
-- **prefix** (*Optional*): Prefix is the metric prefix in graphite. Defaults to `ha`.
+{% configuration %}
+host:
+ description: IP address of your graphite host, e.g., http://192.168.1.10.
+ required: false
+ type: string
+ default: localhost
+port:
+ description: This is a description of what this key is for.
+ required: false
+ type: integer
+ default: 2003
+prefix:
+ description: Prefix is the metric prefix in graphite.
+ required: false
+ type: string
+ default: ha
+{% endconfiguration %}
diff --git a/source/_components/group.markdown b/source/_components/group.markdown
index 5e5232e86aa1..d6b86a353295 100644
--- a/source/_components/group.markdown
+++ b/source/_components/group.markdown
@@ -62,6 +62,7 @@ Configuration variables:
- **icon** (*Optional*): If the group is a view, this icon will show at the top in the frontend instead of the name. If the group is a view and both name and icon have been specified, the icon will appear at the top of the frontend and the name will be displayed as the mouse-over text. If it's not a view, then the icon shows when this group is used in another group.
- **control** (*Optional*): Set value to `hidden`. If hidden then the group switch will be hidden.
- **entities** (*Required*): array or comma delimited string, list of entities to group.
+- **all** (*Optional*) Set this to `true` if the group state should only turn _on_ if __all__ grouped entities are _on_.
@@ -121,7 +122,7 @@ group:
## {% linkable_title Group behavior %}
-When any member of a group is `on` then the group will also be `on`. Similarly with a device tracker, when any member of the group is `home` then the group is `home`.
+By default when any member of a group is `on` then the group will also be `on`. Similarly with a device tracker, when any member of the group is `home` then the group is `home`. If you set the `all` option to `true` though, this behavior is inverted and all members of the group have to be `on` for the group to turn on as well.
## {% linkable_title Customize group order %}
You can also order your groups using [customize](/docs/configuration/customizing-devices/) with `order: ` if they don't show up in the order you want them in.
diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown
index f25897b42985..08d4835bd673 100644
--- a/source/_components/homekit.markdown
+++ b/source/_components/homekit.markdown
@@ -95,7 +95,7 @@ homekit:
required: false
type: list
entity_config:
- description: Configuration for specific entities. All subordinate keys are the corresponding entity ids to the domains, e.g. `alarm_control_panel.alarm`.
+ description: Configuration for specific entities. All subordinate keys are the corresponding entity ids to the domains, e.g., `alarm_control_panel.alarm`.
required: false
type: map
keys:
diff --git a/source/_components/homematic.markdown b/source/_components/homematic.markdown
index a60d144ec27f..64783bc44e29 100644
--- a/source/_components/homematic.markdown
+++ b/source/_components/homematic.markdown
@@ -294,7 +294,7 @@ action:
When the connection to your HomeMatic CCU or Homegear is lost, Home Assistant will stop getting updates from devices. This may happen after rebooting the CCU for example. Due to the nature of the communication protocol this cannot be handled automatically, so you must call *homematic.reconnect* in this case. That's why it is usually a good idea to check if your HomeMatic components are still updated properly, in order to detect connection losses. This can be done in several ways through an automation:
-- If you have a sensor which you know will be updated frequently (e.g. an outdoor temperature sensor or light sensor) you could set up an automation like this:
+- If you have a sensor which you know will be updated frequently (e.g., an outdoor temperature sensor or light sensor) you could set up an automation like this:
```yaml
automation:
@@ -309,7 +309,7 @@ When the connection to your HomeMatic CCU or Homegear is lost, Home Assistant wi
service: homematic.reconnect
```
-- If you have a CCU you can also create a system variable on the CCU, which stores it's last reboot time. Since Home Assistant can still refresh system variables from the CCU (even after a reboot), this is a pretty reliable way to detect situations where you need to call *homematic.reconnect*. This is how this can be done:
+- If you have a CCU you can also create a system variable on the CCU, which stores its last reboot time. Since Home Assistant can still refresh system variables from the CCU (even after a reboot), this is a pretty reliable way to detect situations where you need to call *homematic.reconnect*. This is how this can be done:
1. Create a string variable **V_Last_Reboot** on the CCU
diff --git a/source/_components/http.markdown b/source/_components/http.markdown
index ef9c3369fec8..3c3b20ca888f 100644
--- a/source/_components/http.markdown
+++ b/source/_components/http.markdown
@@ -15,11 +15,6 @@ The `http` component serves all files and data required for the Home Assistant
frontend. You only need to add this to your configuration file if you want to
change any of the default settings.
-
-It is HIGHLY recommended that you set the `api_password`,
-especially if you are planning to expose your installation to the internet.
-
Don't use option `server_host` on a Hass.io installation!
configuration.yaml
To set the default color and brightness values when the light is turned on, create a custom `light_profiles.csv` (as described below in the `profile` attribute of `light.turn_on`).
-The `.default` suffix should be added to the entity identifier of each light to define a default value, e.g. for `light.ceiling_2` the `id` field is `light.ceiling_2.default`. To define a default for all lights, the identifier `group.all_lights.default` can be used. Individual settings always supercede the `all_lights` default setting.
+The `.default` suffix should be added to the entity identifier of each light to define a default value, e.g., for `light.ceiling_2` the `id` field is `light.ceiling_2.default`. To define a default for all lights, the identifier `group.all_lights.default` can be used. Individual settings always supercede the `all_lights` default setting.
### {% linkable_title Service `light.turn_on` %}
@@ -29,7 +29,7 @@ Most lights do not support all attributes. You can check the platform documentat
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
-| `entity_id` | no | String or list of strings that point at `entity_id`s of lights. Else targets all.
+| `entity_id` | yes | String or list of strings that point at `entity_id`s of lights. Else targets all.
| `transition` | yes | Number that represents the time (in seconds) the light should take to transition to the new state.
| `profile` | yes | String with the name of one of the [built-in profiles](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/light/light_profiles.csv) (relax, energize, concentrate, reading) or one of the custom profiles defined in `light_profiles.csv` in the current working directory. Light profiles define an xy color and a brightness. If a profile is given and a brightness then the profile brightness will be overwritten.
| `hs_color` | yes | A list containing two floats representing the hue and saturation of the color you want the light to be. Hue is scaled 0-360, and saturation is scaled 0-100.
diff --git a/source/_components/light.mochad.markdown b/source/_components/light.mochad.markdown
index 9721e9d6c981..c175d48ffd15 100644
--- a/source/_components/light.mochad.markdown
+++ b/source/_components/light.mochad.markdown
@@ -26,10 +26,24 @@ light:
- address: a5
```
-Configuration variables:
-
-- **address** (*Required*): The X10 address of the light.
-- **name** (*Optional*): The name of the light. Default is: x10_light_dev_*address*.
-- **comm_type** (*Optional*): pl (powerline) or rf (radio frequency). Default is pl.
-- **brightness_levels** (*Optional*): The number of brightness levels the X10 light device supports. This can either be 32, 64, or 256 (note that the max
-value sent to the device will be n-1 because it starts at 0)
+{% configuration %}
+address:
+ description: The X10 address of the light.
+ required: true
+ type: string
+name:
+ description: The name of the light.
+ required: false
+ default: x10_light_dev_address
+ type: string
+comm_type:
+ description: pl (powerline) or rf (radio frequency).
+ required: false
+ default: pl
+ type: string
+brightness_levels:
+ description: The number of brightness levels the X10 light device supports. This can either be 32, 64, or 256 (note that the max value sent to the device will be n-1 because it starts at 0).
+ required: false
+ default: 32
+ type: integer
+{% endconfiguration %}
diff --git a/source/_components/light.mqtt_template.markdown b/source/_components/light.mqtt_template.markdown
index 27f5e0f0b335..adf44a2a92e5 100644
--- a/source/_components/light.mqtt_template.markdown
+++ b/source/_components/light.mqtt_template.markdown
@@ -52,7 +52,7 @@ state_topic:
required: false
type: string
command_on_template:
- description: "The [template](/docs/configuration/templating/#processing-incoming-data) for *on* state changes. Available variables: `state`, `brightness`, `red`, `green`, `blue`, `flash`, `transition` and `effect`."
+ description: "The [template](/docs/configuration/templating/#processing-incoming-data) for *on* state changes. Available variables: `state`, `brightness`, `red`, `green`, `blue`, `white_value`, `flash`, `transition` and `effect`."
required: true
type: string
command_off_template:
diff --git a/source/_components/light.xiaomi_miio.markdown b/source/_components/light.xiaomi_miio.markdown
index 4597bc7f8fa4..79f5a9b36c18 100644
--- a/source/_components/light.xiaomi_miio.markdown
+++ b/source/_components/light.xiaomi_miio.markdown
@@ -13,7 +13,7 @@ ha_iot_class: "Local Polling"
ha_release: 0.53
---
-The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philips LED Ball Lamp, Xiaomi Philips Zhirui LED Bulb E14 Candle Lamp, Xiaomi Philips LED Ceiling Lamp and Xiaomi Philips Eyecare Lamp 2.
+The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philips LED Ball Lamp, Xiaomi Philips Zhirui LED Bulb E14 Candle Lamp, Xiaomi Philips LED Ceiling Lamp, Xiaomi Philips Eyecare Lamp 2 and Philips Zhirui Desk Lamp.
## Features
@@ -62,6 +62,17 @@ The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philip
- reminder
- eyecare_mode
+### Philips Zhirui Desk Lamp
+
+* Power (on, off)
+* Brightness
+* Scene (1, 2, 3, 4)
+* Delayed turn off (Resolution in seconds)
+* Attributes
+ - model
+ - scene
+ - delayed_turn_off
+
Please follow the instructions on [Retrieving the Access Token](/components/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token to use in the `configuration.yaml` file.
To add a Xiaomi Philips Light to your installation, add the following to your configuration.yaml file:
@@ -91,7 +102,7 @@ name:
type: string
default: Xiaomi Philips Light
model:
- description: The model of your miio light. Valid values are `philips.light.bulb`, `philips.light.candle2`, `philips.light.sread1`, `philips.light.ceiling` and `philips.light.zyceiling`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available.
+ description: The model of your miio light. Valid values are `philips.light.bulb`, `philips.light.candle`, `philips.light.candle2`, `philips.light.sread1`, `philips.light.ceiling`, `philips.light.zyceiling` and `philips.light.mono1`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available.
required: false
type: string
{% endconfiguration %}
diff --git a/source/_components/light.yeelight.markdown b/source/_components/light.yeelight.markdown
index d5d5adb4e80d..83cc0d5a648d 100644
--- a/source/_components/light.yeelight.markdown
+++ b/source/_components/light.yeelight.markdown
@@ -40,6 +40,7 @@ Configuration variables:
- **transition** (*Optional*, default 350): Smooth transitions over time (in ms).
- **use_music_mode** (*Optional*, default False): Enable music mode.
- **save_on_change** (*Optional*, default False): Saves the bulb state in its nonvolatile memory when changed from Home Assistant.
+- **model** (*Optional*): Yeelight model. Possible values are `mono1`, `color1`, `strip1`, `bslamp1`, `ceiling1`, `ceiling2`, `ceiling3`, `ceiling4`. The setting is used to enable model specific features f.e. a particular color temperature range.
#### {% linkable_title Music mode %}
Per default the bulb limits the amount of requests per minute to 60, a limitation which can be bypassed by enabling the music mode. In music mode the bulb is commanded to connect back to a socket provided by the component and it tries to keep the connection open, which may not be wanted in all use-cases.
@@ -53,22 +54,27 @@ Determine your bulb IP (using router, software, ping ...).
Information on how to enable "LAN Mode" can be found [here](https://getyeti.co/posts/how-to-control-yeelight-and-your-smarthome-with-yeti).
+### {% linkable_title Supported models %}
+
This component is tested to work with the following models. If you have a different model and it is working please let us know.
-- **YLDP01YL**: LED Bulb (White) -- **YLDP02YL**: LED Bulb (Color) -- **YLDP03YL**: LED Bulb (Color) - E26 -- **YLDP05YL**: LED Bulb (White) II -- **YLDP06YL**: LED Bulb (Color) II -- **YLDD01YL**: Lightstrip (Color) -- **YLDD02YL**: Lightstrip (Color) -- **MJCTD01YL**: Xiaomi Mijia Bedside Lamp - WIFI Version! -- **MJTD01YL**: Xiaomi Mijia Smart LED Desk Lamp (autodiscovery isn't possible because the device doesn't support mDNS due to the small amount of RAM) -- **YLXD02YL**: Yeelight Ceiling Light 4 (Jiaoyue 650) -- **YLXD01YL**: Yeelight Smart LED Ceiling Light - Youth Version - +| Model ID | Model number | Product name | +|------------|--------------|--------------------------------------------------| +| `mono1` | YLDP01YL | LED Bulb (White) | +| ? | YLDP05YL | LED Bulb (White) - 2nd generation | +| `color1` | YLDP02YL | LED Bulb (Color) | +| `color1` | YLDP03YL | LED Bulb (Color) - E26 | +| `color2` | YLDP06YL | LED Bulb (Color) - 2nd generation | +| `strip1` | YLDD01YL | Lightstrip (Color) | +| `strip1` | YLDD02YL | Lightstrip (Color) | +| `bslamp1` | MJCTD01YL | Xiaomi Mijia Bedside Lamp - WIFI Version! | +| `lamp1` | MJTD01YL | Xiaomi Mijia Smart LED Desk Lamp (autodiscovery isn't possible because the device doesn't support mDNS due to the small amount of RAM) | +| `ceiling1` | ? | Yeelight Ceiling Light | +| `ceiling2` | YLXD01YL | Yeelight Smart LED Ceiling Light - Youth Version | +| `ceiling3` | ? | Yeelight Ceiling Light | +| `ceiling4` | YLXD02YL | Yeelight Ceiling Light 4 (Jiaoyue 650) | ## {% linkable_title Platform Services %} diff --git a/source/_components/lirc.markdown b/source/_components/lirc.markdown index ad96e2316b2e..7127b52caf7e 100644 --- a/source/_components/lirc.markdown +++ b/source/_components/lirc.markdown @@ -41,7 +41,7 @@ For more information have a look at `/usr/share/doc/lirc/README.Debian.gz` where Now teach LIRC about your particular remote control by preparing a lircd configuration file (`/etc/lirc/lircd.conf`). Search the [LIRC remote database](http://lirc.sourceforge.net/remotes/) for your model. If you can't find it, then you can always use the `irrecord` program to learn your remote. This will create a valid configuration file. Add as many remotes as you want by pasting them into the file. If `irrecord` doesn't work (e.g., for some air conditioner remotes), then the `mode2` program is capable of reading the codes in raw mode, followed by `irrecord -a` to extract hex codes. -Next, you have to make a `~/.lircrc` file that maps keypresses to system actions. The file has to be in the home dir of the user running Home Assistant, e.g. in `/home/homeassistant/.lircrc` if you're running in a virtual env. [The configuration](http://www.lirc.org/html/configure.html) is a bit tedious but it must be done. Use the `prog = home-assistant` for all keys you want to be recognized by Home Assistant. The values you set for `button` must be the same as in the `lircd.conf` file and the values you put for `config` entry will be the sensor value in Home Assistant when you press the button. An example may look like this: +Next, you have to make a `~/.lircrc` file that maps keypresses to system actions. The file has to be in the home dir of the user running Home Assistant, e.g., in `/home/homeassistant/.lircrc` if you're running in a virtual env. [The configuration](http://www.lirc.org/html/configure.html) is a bit tedious but it must be done. Use the `prog = home-assistant` for all keys you want to be recognized by Home Assistant. The values you set for `button` must be the same as in the `lircd.conf` file and the values you put for `config` entry will be the sensor value in Home Assistant when you press the button. An example may look like this: ```bash begin diff --git a/source/_components/lock.template.markdown b/source/_components/lock.template.markdown new file mode 100644 index 000000000000..155ba1390013 --- /dev/null +++ b/source/_components/lock.template.markdown @@ -0,0 +1,142 @@ +--- +layout: page +title: "Template Lock" +description: "Instructions on how to integrate Template Locks into Home Assistant." +date: 2018-10-09 19:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Lock +ha_release: 0.81 +ha_iot_class: "Local Push" +logo: home-assistant.png +ha_qa_scale: internal +--- + +The `template` platform creates locks that combines components. + +For example, if you have a garage door with a toggle switch that operates the motor and a sensor that allows you know whether the door is open or closed, you can combine these into a lock that knows whether the garage door is open or closed. + +This can simplify the GUI and make it easier to write automations. You can mark the components you have combined as `hidden` so they don't appear themselves. + +In optimistic mode, the lock will immediately change state after every command. Otherwise, the lock will wait for state confirmation from the template. Try to enable it, if experiencing incorrect lock operation. + +## {% linkable_title Configuration %} + +To enable Template Locks in your installation, add the following to your `configuration.yaml` file: + +{% raw %} +```yaml +# Example configuration.yaml entry +lock: + - platform: template + name: Garage door + value_template: "{{ is_state('sensor.door', 'on') }}" + lock: + service: switch.turn_on + data: + entity_id: switch.door + unlock: + service: switch.turn_off + data: + entity_id: switch.door +``` +{% endraw %} + +{% configuration %} + name: + description: Name to use in the frontend. + required: false + type: string + default: Template Lock + value_template: + description: Defines a template to set the state of the lock. + required: true + type: template + lock: + description: Defines an action to run when the lock is locked. + required: true + type: action + unlock: + description: Defines an action to run when the lock is unlocked. + required: true + type: action + optimistic: + description: Flag that defines if lock works in optimistic mode. + required: false + type: boolean + default: false +{% endconfiguration %} + +## {% linkable_title Considerations %} + +If you are using the state of a platform that takes extra time to load, the Template Lock may get an `unknown` state during startup. This results in error messages in your log file until that platform has completed loading. If you use `is_state()` function in your template, you can avoid this situation. For example, you would replace {% raw %}`{{ states.switch.source.state == 'on' }}`{% endraw %} with this equivalent that returns `true`/`false` and never gives an unknown result: {% raw %}`{{ is_state('switch.source', 'on') }}`{% endraw %} + +## {% linkable_title Examples %} + +In this section, you find some real-life examples of how to use this lock. + +### {% linkable_title Lock from Switch %} + +This example shows a lock that copies data from a switch. + +{% raw %} +```yaml +lock: + - platform: template + name: Garage Door + value_template: "{{ is_state('switch.source', 'on') }}" + lock: + service: switch.turn_on + data: + entity_id: switch.source + unlock: + service: switch.turn_off + data: + entity_id: switch.source +``` +{% endraw %} + +### {% linkable_title Optimistic Mode %} + +This example shows a lock in optimistic mode. This lock will immediately change state after command and will not wait for state update from the sensor. + +{% raw %} +```yaml +lock: + - platform: template + name: Garage Door + value_template: "{{ is_state('sensor.skylight.state', 'on') }}" + optimistic: true + lock: + service: switch.turn_on + data: + entity_id: switch.source + unlock: + service: switch.turn_off + data: + entity_id: switch.source +``` +{% endraw %} + +### {% linkable_title Sensor and Two Switches %} + +This example shows a lock that takes its state from a sensor, and uses two momentary switches to control a device. + +{% raw %} +```yaml +lock: + - platform: template + name: Garage Door + value_template: "{{ is_state('sensor.skylight.state', 'on') }}" + lock: + service: switch.turn_on + data: + entity_id: switch.skylight_open + unlock: + service: switch.turn_on + data: + entity_id: switch.skylight_close +``` +{% endraw %} diff --git a/source/_components/matrix.markdown b/source/_components/matrix.markdown index 75bd6da0e6af..d965ea1a9f50 100644 --- a/source/_components/matrix.markdown +++ b/source/_components/matrix.markdown @@ -31,7 +31,7 @@ Configuration variables: {% configuration %} username: - description: "The matrix username that Home Assistant should use to log in. *Note*: You must specify a full matrix ID here, including the homeserver domain, e.g. '@my_matrix_bot:matrix.org'. Please note also that the '@' character has a special meaning in YAML, so this must always be given in quotes." + description: "The matrix username that Home Assistant should use to log in. *Note*: You must specify a full matrix ID here, including the homeserver domain, e.g., '@my_matrix_bot:matrix.org'. Please note also that the '@' character has a special meaning in YAML, so this must always be given in quotes." required: true type: string password: diff --git a/source/_components/media_player.denon.markdown b/source/_components/media_player.denon.markdown index ebfe0177bae3..61fc86002fee 100644 --- a/source/_components/media_player.denon.markdown +++ b/source/_components/media_player.denon.markdown @@ -24,7 +24,8 @@ Supported devices: To add a Denon Network Receiver to your installation, add the following to your `configuration.yaml` file: -**Telnet platform** +## {% linkable_title Telnet platform %} + ```yaml # Example configuration.yaml entry media_player: @@ -32,10 +33,16 @@ media_player: host: IP_ADDRESS ``` -Configuration variables: - -- **host** (*Required*): IP address of the device. Example: 192.168.1.32 -- **name** (*Optional*): Name of the device. +{% configuration %} +host: + description: "IP address of the device. Example: 192.168.1.32" + required: true + type: string +name: + description: The name of the device + required: false + type: string +{% endconfiguration %} A few notes for platform: denon diff --git a/source/_components/media_player.mpd.markdown b/source/_components/media_player.mpd.markdown index 51888be2b20a..da37e9c478b7 100644 --- a/source/_components/media_player.mpd.markdown +++ b/source/_components/media_player.mpd.markdown @@ -27,12 +27,26 @@ media_player: host: IP_ADDRESS ``` -Configuration variables: - -- **host** (*Required*): IP address of the Host where Music Player Daemon is running. -- **port** (*Optional*): Port of the Music Player Daemon. Defaults to 6600. -- **name** (*Optional*): Name of your Music Player Daemon. Defaults to "MPD". -- **password** (*Optional*): Password for your Music Player Daemon. +{% configuration %} +host: + description: IP address of the Host where Music Player Daemon is running. + required: true + type: string +port: + description: Port of the Music Player Daemon. + required: false + type: integer + default: 6600 +name: + description: Name of your Music Player Daemon. + required: false + type: string + default: MPD +password: + description: Password for your Music Player Daemon. + required: false + type: string +{% endconfiguration %} Example script to load a saved playlist called "DeckMusic" and set the volume: diff --git a/source/_components/media_player.plex.markdown b/source/_components/media_player.plex.markdown index bc45310c3525..45db859c70eb 100644 --- a/source/_components/media_player.plex.markdown +++ b/source/_components/media_player.plex.markdown @@ -52,8 +52,8 @@ In case [discovery](/components/discovery/) does not work (GDM disabled or non-l - **IP_ADDRESS** (*Required*): IP address of the Plex Media Server. - **PORT** (*Required*): Port where Plex is listening. Default is 32400. - **TOKEN** (*Optional*): Only if authentication is required. Set to `null` (without quotes) otherwise. -- **ssl** (*Optional*): Whether to use SSL/TLS or not. Defaults to `False` if not present. -- **verify** (*Optional*): Perform a verification of the certificate. To allow invalid or self-signed SSL certificates set it to `False`. Defaults to `True` if not present. +- **ssl** (*Optional*): Whether to use SSL/TLS or not. Defaults to `false` if not present. +- **verify** (*Optional*): Perform a verification of the certificate. To allow invalid or self-signed SSL certificates set it to `false`. Defaults to `true` if not present. ## {% linkable_title Customization %} diff --git a/source/_components/media_player.samsungtv.markdown b/source/_components/media_player.samsungtv.markdown index 9a80e3ad3937..92139ec1d547 100644 --- a/source/_components/media_player.samsungtv.markdown +++ b/source/_components/media_player.samsungtv.markdown @@ -81,8 +81,10 @@ Currently known supported models: - KS8000 (port must be set to 8001, and `pip3 install websocket-client` must be executed) - KS8005 (port must be set to 8001, and `pip3 install websocket-client` must be executed) - KU6020 (port must be set to 8001, and `pip3 install websocket-client` must be executed) +- KU6100 (port must be set to 8001, and `pip3 install websocket-client` must be executed) - KU6290 (port must be set to 8001) - KU7000 (port must be set to 8001) +- NU8000 - MU6170UXZG (port must be set to 8001, and `pip3 install websocket-client` must be executed) - KS7502 (port must be set to 8001, and `pip3 install websocket-client` must be executed, turn on doesn't work, turn off works fine) - K5600AK (partially supported, turn on works but state is not updated) diff --git a/source/_components/media_player.vizio.markdown b/source/_components/media_player.vizio.markdown index 12916a2ed3c1..8345c3b1e808 100644 --- a/source/_components/media_player.vizio.markdown +++ b/source/_components/media_player.vizio.markdown @@ -56,7 +56,7 @@ Initiation will show you two different values: Finally, at this point a PIN code should be displayed at the top of your TV. With all these values, you can now finish pairing: ```bash -$ pyvizio --ip={ip} pair_finish --token={challenge_token} --pin={tv_pin} +$ pyvizio --ip={ip} pair-finish --token={challenge_token} --pin={tv_pin} ``` You will need the authentication token returned by this command to configure Home Assistant. diff --git a/source/_components/media_player.vlc.markdown b/source/_components/media_player.vlc.markdown index 09254957645a..0037537535af 100644 --- a/source/_components/media_player.vlc.markdown +++ b/source/_components/media_player.vlc.markdown @@ -24,10 +24,16 @@ media_player: - platform: vlc ``` -Configuration variables: - -- **name** (*Optional*): The name to use in the frontend. -- **arguments** (*Optional*): Additional arguments to be passed to VLC. +{% configuration %} +name: + description: The name to use in the frontend. + required: false + type: string +arguments: + description: Additional arguments to be passed to VLC. + required: false + type: string +{% endconfiguration %} Only the "music" media type is supported for now. diff --git a/source/_components/media_player.yamaha.markdown b/source/_components/media_player.yamaha.markdown index b996e642a47e..88a481b27d63 100644 --- a/source/_components/media_player.yamaha.markdown +++ b/source/_components/media_player.yamaha.markdown @@ -30,15 +30,33 @@ To add a Yamaha Network Receiver to your installation, add the following to your media_player: - platform: yamaha ``` -Configuration variables: - -- **name** (*Optional*): Name of the device. This overrides the - default name (often model number) that is returned by the device. -- **host** (*Optional*): IP address or hostname of the device -- **source_ignore** (*Optional*): List of sources to hide in the front-end -- **source_names** (*Optional*): Mapping of internal AVR source names to custom ones, allowing one to rename e.g., `HDMI1` to `ChromeCast` -- **zone_ignore** (*Optional*): List of zones to hide in the front-end -- **zone_names** (*Optional*): Mapping of zone names to custom ones, allowing one to rename e.g., `Main_Zone` to `Family Room` + +{% configuration %} +name: + description: Name of the device. This overrides the default name (often model number) that is returned by the device. + required: false + type: string +host: + description: IP address or hostname of the device. + required: false + type: string +source_ignore: + description: List of sources to hide in the front-end. + required: false + type: list +source_names: + description: Mapping of internal AVR source names to custom ones, allowing one to rename e.g., `HDMI1` to `ChromeCast`. + required: false + type: list +zone_ignore: + description: List of zones to hide in the front-end. + required: false + type: list +zone_names: + description: Mapping of zone names to custom ones, allowing one to rename e.g., `Main_Zone` to `Family Room`. + required: false + type: list +{% endconfiguration %} ### {% linkable_title Discovery notes %} diff --git a/source/_components/media_player.yamaha_musiccast.markdown b/source/_components/media_player.yamaha_musiccast.markdown index 7d98e77102f0..925f378816cc 100644 --- a/source/_components/media_player.yamaha_musiccast.markdown +++ b/source/_components/media_player.yamaha_musiccast.markdown @@ -24,15 +24,28 @@ media_player: - platform: yamaha_musiccast host: 192.168.xx.xx ``` -Configuration variables: -- **host** (*Required*): IP address or hostname of the device -- **port** (*Optional*): UDP source port. If multiple devices are present, specify a different port per device -- **interval_seconds** (*Optional*): Polling interval (default: 480 seconds = 8 minutes) - -A few notes: - -- Currently, this component supports powering on/off, mute, volume control, and source selection. Playback controls, for instance, play and stop are available for sources that support it. +{% configuration %} +host: + description: IP address or hostname of the device. + required: true + type: string +port: + description: UDP source port. If multiple devices are present, specify a different port per device. + required: false + type: integer +interval_seconds: + description: Polling interval in seconds. + required: false + type: integer + default: 480 +{% endconfiguration %} + +### {% linkable_title Supported operations %} + +Currently, this component supports powering on/off, mute, volume control, and source selection. Playback controls, for instance, play and stop are available for sources that support it. + +### {% linkable_title Example configuration %} A full configuration example will look like the sample below: ```yaml diff --git a/source/_components/modbus.markdown b/source/_components/modbus.markdown index dcccf0ede679..402cef31af26 100644 --- a/source/_components/modbus.markdown +++ b/source/_components/modbus.markdown @@ -30,15 +30,25 @@ modbus: port: 2020 ``` -Configuration variables: - -- **type** (*Required*): Type of the connection to Modbus. Possible values are: - - *tcp*: Modbus TCP protocol according to "MODBUS Messaging Implementation Guide version 1.0b" provided by Schneider Automation, - - *udp*: Modbus TCP form, but using UDP for transport (removes the overheads required for TCP), - - *rtuovertcp*: Modbus RTU message transmitted with a TCP/IP wrapper and sent over a network instead of serial lines. -- **host** (*Required*): The IP address of your Modbus device, eg. 192.168.1.1. -- **port** (*Required*): The port for the communication. -- **timeout** (*Optional*): Timeout for slave response in seconds. (default: 3) +{% configuration %} +type: + description: Type of the connection to Modbus. Possible values are `tcp` (Modbus TCP protocol according to "MODBUS Messaging Implementation Guide version 1.0b" provided by Schneider Automation.), `udp`(Modbus TCP form, but using UDP for transport. It removes the overheads required for TCP.) and `rtuovertcp` (Modbus RTU message transmitted with a TCP/IP wrapper and sent over a network instead of serial lines.). + required: true + type: string +host: + description: The IP address of your Modbus device, e.g., 192.168.1.1. + required: true + type: string +port: + description: The port for the communication. + required: true + type: integer +timeout: + description: Timeout for slave response in seconds. + required: false + default: 3 + type: integer +{% endconfiguration %} For a serial connection: @@ -54,16 +64,41 @@ modbus: parity: N ``` -Configuration variables: - -- **type** (*Required*): Type of the connection to Modbus. -- **method** (*Required*): Method of the connection to Modbus. -- **port** (*Required*): The port where your Modbus device is connected to your Home Assistant host. -- **baudrate** (*Required*): The speed for the serial connection. -- **stopbits** (*Required*): The stopbits for the serial connection. -- **bytesize** (*Required*): The bytesize for the serial connection. -- **parity** (*Required*): The parity for the serial connection. -- **timeout** (*Optional*): Timeout for slave response in seconds. (default: 3) +{% configuration %} +type: + description: Type of the connection to Modbus. + required: true + type: string +method: + description: Method of the connection to Modbus. + required: true + type: string +port: + description: The port where your Modbus device is connected to your Home Assistant host. + required: true + type: string +baudrate: + description: The speed for the serial connection. + required: true + type: integer +stopbits: + description: The stopbits for the serial connection. + required: true + type: integer +bytesize: + description: The bytesize for the serial connection. + required: true + type: integer +parity: + description: The parity for the serial connection. + required: true + type: string +timeout: + description: Timeout for slave response in seconds. + required: false + default: 3 + type: integer +{% endconfiguration %} ### {% linkable_title Services %} diff --git a/source/_components/nest.markdown b/source/_components/nest.markdown index a6e021b94fa9..9a22aeba8437 100644 --- a/source/_components/nest.markdown +++ b/source/_components/nest.markdown @@ -107,3 +107,7 @@ set_nest_eta: eta: 00:10:30 eta_window: 00:05 ``` + +{% linkable_title Troubleshooting %} + +- If you're getting [rickrolled](https://www.youtube.com/watch?v=dQw4w9WgXcQ) instead of being able to see your Nest cameras, you may not have set up your developer account's permissions correctly. Go back through and make sure you've selected read/write under every category that it's an option. diff --git a/source/_components/notify.flock.markdown b/source/_components/notify.flock.markdown index d164e2151ce8..f0612e929ca7 100644 --- a/source/_components/notify.flock.markdown +++ b/source/_components/notify.flock.markdown @@ -17,7 +17,7 @@ The `flock` platform uses [Flock.com](https://flock.com) to deliver notification ## {% linkable_title Setup %} -Go to the [Flock.com Admin website](https://admin.flock.com/#!/webhooks) and create a new "Incoming Webhooks". Choose a channel to send the notifications from Home Assistant to, specifiy a name and press *Save and Generate URL*. +Go to the [Flock.com Admin website](https://admin.flock.com/#!/webhooks) and create a new "Incoming Webhooks". Choose a channel to send the notifications from Home Assistant to, specify a name and press *Save and Generate URL*.diff --git a/source/_components/notify.html5.markdown b/source/_components/notify.html5.markdown index 029f65144784..41a46d12ba4f 100644 --- a/source/_components/notify.html5.markdown +++ b/source/_components/notify.html5.markdown @@ -99,7 +99,7 @@ Assuming the previous test completed successfully and your browser was registere 1. Open Home Assistant in Chrome or Firefox. 2. Open the sidebar and click the Services button at the bottom (shaped like a remote control), located below the Developer Tools. -3. From the Services dropdown, search for your HTML5 notify service (E.G. notify.NOTIFIER_NAME) and select it. +3. From the Services dropdown, search for your HTML5 notify service (e.g., notify.NOTIFIER_NAME) and select it. 4. In the Service Data text box enter: {"message":"hello world"}, then press the CALL SERVICE button. 5. If everything worked you should see a popup notification. diff --git a/source/_components/notify.knx.markdown b/source/_components/notify.knx.markdown index 4e81f1e2362e..72c18e724d4c 100644 --- a/source/_components/notify.knx.markdown +++ b/source/_components/notify.knx.markdown @@ -28,8 +28,13 @@ notify: address: '5/1/10' ``` -Configuration variables: - -* **address** (*Required*): KNX group address of the notification. -* **name** (*Optional*): A name for this device used within Home Assistant. - +{% configuration %} +address: + description: KNX group address of the notification. + required: true + type: string +name: + description: A name for this device used within Home Assistant. + required: false + type: string +{% endconfiguration %} diff --git a/source/_components/notify.markdown b/source/_components/notify.markdown index 7f3225bd73cb..63cf49b985d6 100644 --- a/source/_components/notify.markdown +++ b/source/_components/notify.markdown @@ -55,6 +55,16 @@ A simple way to test if you have set up your notify platform correctly, is to us "message": "The sun is {% raw %}{% if is_state('sun.sun', 'above_horizon') %}up{% else %}down{% endif %}{% endraw %}!" } ``` + +The automation equivalent would be: + +```yaml +action: + service: notify.notify + data: + message: "The sun is {% raw %}{% if is_state('sun.sun', 'above_horizon') %}up{% else %}down{% endif %}{% endraw %}!" +``` + For services which have support for sending images. ```json @@ -67,6 +77,19 @@ For services which have support for sending images. } ``` +The automation equivalent would be: + +```yaml +action: + service: notify.notify + data: + message: "Test plugin" + data: + photo: + url: "http://www.gbsun.de/gbpics/berge/berge106.jpg" +``` + + If the service support sending the location, the data from this sample can be used. ```json @@ -80,3 +103,15 @@ If the service support sending the location, the data from this sample can be us } ``` +The automation equivalent would be: + +```yaml +action: + service: notify.notify + data: + message: "Test plugin" + data: + location: + latitude: 7.3284 + longitude: 46.38234 +``` diff --git a/source/_components/notify.nfandroidtv.markdown b/source/_components/notify.nfandroidtv.markdown index 6ec1639edb2a..2933ca017893 100644 --- a/source/_components/notify.nfandroidtv.markdown +++ b/source/_components/notify.nfandroidtv.markdown @@ -13,7 +13,7 @@ ha_release: 0.32 --- -Notification platform for [Notifications for Android TV](https://play.google.com/store/apps/details?id=de.cyberdream.androidtv.notifications.google) and [Notifications for FireTV](https://play.google.com/store/apps/details?id=de.cyberdream.firenotifications.google). You can use this plarform to send notifications to your Android TV device. An overlay with the message content will appear for a configurable amount of seconds and then disapper again. Sending images (e.g. security cam) is supported too. +Notification platform for [Notifications for Android TV](https://play.google.com/store/apps/details?id=de.cyberdream.androidtv.notifications.google) and [Notifications for FireTV](https://play.google.com/store/apps/details?id=de.cyberdream.firenotifications.google). You can use this plarform to send notifications to your Android TV device. An overlay with the message content will appear for a configurable amount of seconds and then disapper again. Sending images (e.g., security cam) is supported too. The notifications are in the global scope of your Android TV device. They will be displayed regardless of which application is running. diff --git a/source/_components/notify.pushsafer.markdown b/source/_components/notify.pushsafer.markdown index 6060016e1c52..886be8aa0aea 100644 --- a/source/_components/notify.pushsafer.markdown +++ b/source/_components/notify.pushsafer.markdown @@ -35,69 +35,66 @@ notify: Message to two devices with formatted text. -```json -{ - "title": "Test to 2 devices", - "message": "Attention [b]bold[/b] text[br][url=https://www.pushsafer.com]Link to Pushsafer[/url]", - "target": ["1111", "2222"], - "data": { - "icon": "2", - "iconcolor": "#FF0000", - "sound": "2", - "vibration": "1", - "url": "https://www.home-assistant.io/", - "urltitle": "Open Home Assistant", - "time2live": "0" - } -} + +```yaml +action: + service: notify.notify + data: + title: "Test to 2 devices" + message: "Attention [b]bold[/b] text[br][url=https://www.pushsafer.com]Link to Pushsafer[/url]" + data: + icon: "2" + iconcolor: "#FF0000" + sound: "2" + vibration: "1" + url: "https://www.home-assistant.io/" + urltitle: "Open Home Assistant" + time2live: "0" ``` Message to one device with formatted text and image from an external URL. -```json -{ - "title": "Test to 1 device with image from an url", - "message": "Attention [i]italic[/i] Text[br][url=https://www.home-assistant.io/]Testlink[/url]", - "target": ["1111"], - "data": { - "icon": "14", - "iconcolor": "#FFFF00", - "sound": "22", - "vibration": "3", - "url": "https://www.home-assistant.io/", - "urltitle": "Open Home Assistant", - "time2live": "60", - "picture1": { - "url":"https://www.home-assistant.io/images/components/alexa/alexa-512x512.png" - } - } -} +```yaml +action: + service: notify.notify + data: + title: "Test to 1 device with image from an url" + message: "Attention [i]italic[/i] Text[br][url=https://www.home-assistant.io/]Testlink[/url]" + data: + icon: "14" + iconcolor: "#FFFF00" + sound: "22" + vibration: "31" + url: "https://www.home-assistant.io/" + urltitle: "Open Home Assistant" + time2live: "60" + picture1: + url: "https://www.home-assistant.io/images/components/alexa/alexa-512x512.png" ``` Message to two devices and one device group with formatted text and local image. -```json -{ - "title": "Test to 3 devices with local image", - "message": "Attention [i]italic[/i] Text[br][url=https://www.home-assistant.io/]Testlink[/url]", - "target": ["1111","2222","gs3333"], - "data": { - "icon": "20", - "iconcolor": "#FF00FF", - "sound": "33", - "vibration": "0", - "url": "https://www.home-assistant.io/", - "urltitle": "Open Home Assistant", - "time2live": "10", - "priority": "2", - "retry": "60", - "expire": "600", - "answer": "1", - "picture1": { - "path":"C:\\Users\\Kevin\\AppData\\Roaming\\.homeassistant\\image-760-testimage.jpg" - } - } -} +```yaml +action: + service: notify.notify + data: + title: "Test to 3 devices with local image" + message: "Attention [i]italic[/i] Text[br][url=https://www.home-assistant.io/]Testlink[/url]" + target: ["1111","2222","gs3333"], + data: + icon: "20" + iconcolor: "#FF00FF" + sound: "33" + vibration: "0" + url: "https://www.home-assistant.io/" + urltitle: "Open Home Assistant" + time2live: "10" + priority: "2" + retry: "60" + expire: "600" + answer: "1" + picture1: { + path: "C:\\Users\\Kevin\\AppData\\Roaming\\.homeassistant\\image-760-testimage.jpg" ``` To customize your push-notification you can take a look at the [Pushsafer API description](https://www.pushsafer.com/en/pushapi). diff --git a/source/_components/notify.telegram.markdown b/source/_components/notify.telegram.markdown index 42acb5bd290b..934965200ee4 100644 --- a/source/_components/notify.telegram.markdown +++ b/source/_components/notify.telegram.markdown @@ -277,11 +277,11 @@ action: {% configuration %} url: - description: A remote path to an document. Either this or the `file` configuration option is required. + description: A remote path to a document. Either this or the `file` configuration option is required. required: true type: string file: - description: A local path to an document. Either this or the `url` configuration option is required. + description: A local path to a document. Either this or the `url` configuration option is required. required: true type: string caption: diff --git a/source/_components/notify.xmpp.markdown b/source/_components/notify.xmpp.markdown index 2073c7b263b3..eea60e42d3b7 100644 --- a/source/_components/notify.xmpp.markdown +++ b/source/_components/notify.xmpp.markdown @@ -39,9 +39,9 @@ Configuration variables: - **room** (*Optional*): Room's name (e.g., example@conference.jabber.org). If set, send a message to chatroom instead of the recipient.
- Pre Home-Assistant
+If you are tracking temperature it is recommended to set `bed` and/or `number_of_tools` in your octoprint configuration. This will allow the octoprint sensors to load if the printer is offline during Home Assistant startup. +
+ +Example with multiple printers: -- **host** (*Required*): IP address or hostname of Octoprint host. -- **api_key** (*Required*): The retrieved api key. -- **bed** (*Optional*): If the printer has a heated bed. -- **number_of_tools** (*Optional*): Number of temperature adjustable tools. i.e. nozzle. +```yaml +octoprint: + - host: YOUR_OCTOPRINT_HOST + api_key: YOUR_API_KEY + name: PRINTER_NAME_1 + number_of_tools: 2 + sensors: + monitored_conditions: + - 'Current State' + - 'Job Percentage' + - host: YOUR_OCTOPRINT_HOST + api_key: YOUR_API_KEY + name: PRINTER_NAME_2 + number_of_tools: 1 +``` If the OctoPrint host is equipped with a web camera it is possible to add this as well. diff --git a/source/_components/opentherm_gw.markdown b/source/_components/opentherm_gw.markdown new file mode 100644 index 000000000000..307694883a6a --- /dev/null +++ b/source/_components/opentherm_gw.markdown @@ -0,0 +1,70 @@ +--- +layout: page +title: "OpenTherm Gateway Hub" +description: "Control your OpenTherm Gateway from Home Assistant." +date: 2018-10-07 16:23 +sidebar: true +comments: false +sharing: true +footer: true +logo: opentherm.png +ha_category: Hub +ha_release: 0.81 +ha_iot_class: "Local Push" +--- + +The `opentherm_gw` component is used to control the [OpenTherm Gateway](http://otgw.tclcode.com/) from Home Assistant. +When enabled, this component will automatically add it's [`climate` entity](/components/climate.opentherm_gw) to Home Assistant. + +# {% linkable_title Configuration %} + +```yaml +# Example configuration.yaml entry +opentherm_gw: + device: /dev/ttyUSB0 +``` + +{% configuration %} +device: + description: "Path to OpenTherm Gateway device as supported by [PySerial](https://pythonhosted.org/pyserial/url_handlers.html)." + required: true + type: string +climate: + description: "Settings for the `opentherm_gw` climate entity." + required: false + type: map + keys: + name: + description: "The name for the device within Home Assistant." + required: false + type: string + default: "OpenTherm Gateway" + precision: + description: "The desired precision for this device. Can be used to match your actual thermostat's precision. Supported values are `0.1`, `0.5` and `1.0`." + required: false + type: float + default: "`0.5` for Celsius and `1.0` for Fahrenheit." + floor_temperature: + description: "Some thermostats round all temperatures down to the lower value according to their precision. Default behavior for Home Assistant is to round temperatures to the nearest value. Set this to `True` to override Home Assistant and round to the lower value according to the configured `precision`." + required: false + type: boolean + default: false +{% endconfiguration %} + ++The OpenTherm protocol is based on polling. The thermostat sends requests to the boiler at specific intervals. As a result, it may take some time for changes to propagate between Home Assistant and the thermostat. +
+ +# {% linkable_title Example %} + +A full configuration example with the OpenTherm Gateway connected to a remote host running `ser2net` looks like the one below. + +```yaml +# Full example configuration.yaml entry +opentherm_gw: + device: socket://otgw.example.org:2345 + climate: + name: Thermostat + precision: 0.5 + floor_temperature: True +``` diff --git a/source/_components/openuv.markdown b/source/_components/openuv.markdown index 390249c7d309..cc66c3df92a5 100644 --- a/source/_components/openuv.markdown +++ b/source/_components/openuv.markdown @@ -114,5 +114,5 @@ These sensors display the approximate number of minutes a particular skin type c * Skin Type VI-The above guidelines constitude estimates and are intended to help informed decision making. They should not replace analysis, advice, or diagnosis from a trained medical professional. +The above guidelines constitute estimates and are intended to help informed decision making. They should not replace analysis, advice, or diagnosis from a trained medical professional.
diff --git a/source/_components/panel_iframe.markdown b/source/_components/panel_iframe.markdown index ba13cf6967b1..9f79b38edb3f 100644 --- a/source/_components/panel_iframe.markdown +++ b/source/_components/panel_iframe.markdown @@ -60,3 +60,4 @@ panel_iframe: type: icon {% endconfiguration %} +Do **not** create one that are named `lovelace` it will overwrite lovelace causing it to never load.
diff --git a/source/_components/prometheus.markdown b/source/_components/prometheus.markdown index 42eddb459964..ea36b0278df8 100644 --- a/source/_components/prometheus.markdown +++ b/source/_components/prometheus.markdown @@ -39,8 +39,14 @@ You can then configure Prometheus to fetch metrics from Home Assistant by adding - job_name: 'hass' scrape_interval: 60s metrics_path: /api/prometheus + + # Legacy api password params: api_password: ['PASSWORD'] + + # Long-Lived Access Token + bearer_token: 'your.longlived.token + scheme: https static_configs: - targets: ['HOSTNAME:8123'] diff --git a/source/_components/remote.harmony.markdown b/source/_components/remote.harmony.markdown index 6785cdb9fc44..3d9743b3715a 100644 --- a/source/_components/remote.harmony.markdown +++ b/source/_components/remote.harmony.markdown @@ -43,15 +43,31 @@ You can override some default configuration values on a discovered hub (e.g., th activity: Watch TV ``` -Configuration variables: - -- **name** (*Required*): The hub's name to display in the frontend. This name must match the name you have set on the Hub. -- **host** (*Optional*): The Harmony device's IP address. Leave empty for the IP to be discovered automatically. -- **port** (*Optional*): The Harmony device's port. Defaults to 5222. -- **activity** (*Optional*): Activity to use when `turn_on` service is called without any data. Overrides the `activity` setting for this discovered hub. -- **delay_secs** (*Optional*): Default duration in seconds between sending commands to a device. - -Configuration file: +{% configuration %} +name: + description: The hub's name to display in the frontend. This name must match the name you have set on the Hub. + required: true + type: string +host: + description: The Harmony device's IP address. Leave empty for the IP to be discovered automatically. + required: false + type: string +port: + description: The Harmony device's port. + required: false + type: integer + default: 5222 +activity: + description: Activity to use when `turn_on` service is called without any data. Overrides the `activity` setting for this discovered hub. + required: false + type: string +delay_secs: + description: Default duration in seconds between sending commands to a device. + required: false + type: float +{% endconfiguration %} + +### {% linkable_title Configuration file %} Upon startup one file will be written to your Home Assistant configuration directory per device in the following format: `harmony_REMOTENAME.conf`. The file will contain: diff --git a/source/_components/scene.elkm1.markdown b/source/_components/scene.elkm1.markdown new file mode 100644 index 000000000000..346e54be32a5 --- /dev/null +++ b/source/_components/scene.elkm1.markdown @@ -0,0 +1,22 @@ +--- +layout: page +title: "Elk-M1 Scene" +description: "Instructions on how to integrate Elk-M1 tasks (macros)." +date: 2018-10-07 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: elkproducts.png +ha_release: 0.81 +ha_category: Scene +ha_iot_class: "Local Push" +--- + +The `elkm1` platform allows you to control your [Elk-M1](https://www.elkproducts.com/m1_controls.html). + +Elk-M1 tasks are represented as `scene` entities. + ++Full configuration details can be found on the main [Elk-M1 component](/components/elkm1/) page. +
diff --git a/source/_components/scene.hunterdouglas_powerview.markdown b/source/_components/scene.hunterdouglas_powerview.markdown index 2ef810a113ee..a418c8f4ddd2 100644 --- a/source/_components/scene.hunterdouglas_powerview.markdown +++ b/source/_components/scene.hunterdouglas_powerview.markdown @@ -23,6 +23,9 @@ scene: address: IP_ADDRESS ``` -Configuration variables: - -- **address** (*Required*): IP address of the PowerView Hub, eg. 192.168.1.10. +{% configuration %} +address: + description: IP address of the PowerView Hub, eg. 192.168.1.10. + required: true + type: string +{% endconfiguration %} diff --git a/source/_components/scene.knx.markdown b/source/_components/scene.knx.markdown index 7fd18417d87f..95fe53698a75 100644 --- a/source/_components/scene.knx.markdown +++ b/source/_components/scene.knx.markdown @@ -29,9 +29,17 @@ scene: scene_number: 23 ``` -Configuration variables: - -- **address** (*Required*): KNX group address of the binary sensor. -- **scene_number** (*Required*): Zero-indexed KNX scene number to be activated. -- **name** (*Optional*): A name for this device used within Home Assistant. - +{% configuration %} +address: + description: KNX group address of the binary sensor. + required: true + type: string +scene_number: + description: Zero-indexed KNX scene number to be activated. + required: true + type: integer +name: + description: A name for this device used within Home Assistant. + required: false + type: string +{% endconfiguration %} diff --git a/source/_components/scene.lifx_cloud.markdown b/source/_components/scene.lifx_cloud.markdown index 7b6ac7a27994..219dcb48beeb 100644 --- a/source/_components/scene.lifx_cloud.markdown +++ b/source/_components/scene.lifx_cloud.markdown @@ -21,10 +21,17 @@ scene: token: YOUR_LIFX_TOKEN ``` -Configuration variables: - -- **token** (*Required*): The API token for your LIFX Cloud account. -- **timeout** (*Optional*): Network timeout in seconds (defaults to 10). +{% configuration %} +token: + description: The API token for your LIFX Cloud account. + required: true + type: string +timeout: + description: Network timeout in seconds. + required: false + default: 10 + type: integer +{% endconfiguration %} ### Getting an API token diff --git a/source/_components/sensor.bbox.markdown b/source/_components/sensor.bbox.markdown index a45e4bdb5edb..3f456901862a 100644 --- a/source/_components/sensor.bbox.markdown +++ b/source/_components/sensor.bbox.markdown @@ -34,11 +34,23 @@ sensor: - current_up_bandwidth ``` -Configuration variables: - -- **monitored_variables** array (*Required*): Sensors to display in the frontend. - - **down_max_bandwidth**: Maximum bandwidth available for download. - - **up_max_bandwidth**: Maximum bandwidth available for upload. - - **current_down_bandwidth**: Instant measure of the current used bandwidth for download. - - **current_up_bandwidth**: Instant measure of the current used bandwidth for upload. - +{% configuration %} +name: + description: Name to display in the frontend. + required: false + default: Bbox + type: string +monitored_variables: + description: Sensors to display in the frontend. + required: true + type: list + keys: + down_max_bandwidth: + description: Maximum bandwidth available for download. + up_max_bandwidth: + description: Maximum bandwidth available for upload. + current_down_bandwidth: + description: Instant measure of the current used bandwidth for download. + current_up_bandwidth: + description: Instant measure of the current used bandwidth for upload. +{% endconfiguration %} diff --git a/source/_components/sensor.bme680.markdown b/source/_components/sensor.bme680.markdown index aa7b7103a534..814b276edce2 100644 --- a/source/_components/sensor.bme680.markdown +++ b/source/_components/sensor.bme680.markdown @@ -107,7 +107,7 @@ aq_humidity_baseline: default: 40 type: integer aq_humidity_bias: - description: The bias for humidity to the gas resistance measurement in the air quality calculations expressed as a percentage of the total calculation e.g., 25% hudidtity to 75% gas. + description: The bias for humidity to the gas resistance measurement in the air quality calculations expressed as a percentage of the total calculation e.g., 25% humidity to 75% gas. required: false default: 25 type: integer diff --git a/source/_components/sensor.bom.markdown b/source/_components/sensor.bom.markdown index 7774077d9cff..c3cc033404c8 100644 --- a/source/_components/sensor.bom.markdown +++ b/source/_components/sensor.bom.markdown @@ -25,8 +25,6 @@ To add the BOM weather observation to your installation, add the following to yo # Example configuration.yaml entry sensor: - platform: bom - station: IDS60801.94675 - name: Adelaide monitored_conditions: - apparent_t - cloud @@ -64,11 +62,74 @@ To get the station ID for any BOM station: - The URL will look like: http://www.bom.gov.au/products/IDx60801/[station].shtml - For Adelaide, the URL will look like `http://www.bom.gov.au/products/IDS60801/IDS60801.94675.shtml`; the station ID is `IDS60801.94675`. -Configuration variables: - -- **station** (*Optional*): The station ID string as identified from the BOM website. If not given, defaults to the closest station. -- **name** (*Optional*): The name you would like to give to the weather station. -- **monitored_conditions** (*Required*): A list of the conditions to monitor. +{% configuration %} +station: + description: The station ID string as identified from the BOM website. + required: false + type: string + default: If not given, defaults to the closest station based on location data in configuration.yaml. +name: + description: The name you would like to give to the weather station. + required: false + type: string +monitored_conditions: + description: A list of the conditions to monitor. + required: true + type: list + keys: + apparent_t: + description: Feels like temperature in C. + cloud: + description: Cloud cover. + cloud_base_m: + description: Cloud Base in m. + cloud_oktas: + description: Cloud Oktas. + cloud_type_id: + description: Cloud type ID. + cloud_type: + description: Cloud type description. + delta_t: + description: Delta temperature in C. + gust_kmh: + description: Wind gust in km/h. + gust_kt: + description: Wing gust in kt. + air_temp: + description: Air temperature in C. + dewpt: + description: Drew point in C. + press: + description: Pressure in mbar. + press_qnh: + description: Pressure in qnh. + press_msl: + description: Pressure in msl. + press_tend: + description: Pressure trend. + rain_trace: + description: Raing today in mm. + rel_hum: + description: Relative Humidity in %. + sea_state: + description: Sea state. + swell_dir_worded: + description: Swell direction. + swell_height: + description: Swell hight in m. + swell_period: + description: Swell period. + vis_km: + description: Visibility in km. + weather: + description: Weather summary. + wind_dir: + description: Wind direction. + wind_spd_kmh: + description: Wind speed in km/h. + wind_spd_kt: + description: Wind speed in kt. +{% endconfiguration %}This sensor is an alternative to the [`bom`](/components/weather.bom/) weather platform. diff --git a/source/_components/sensor.cert_expiry.markdown b/source/_components/sensor.cert_expiry.markdown index 99b0578b76b3..f65dc2acdd1c 100644 --- a/source/_components/sensor.cert_expiry.markdown +++ b/source/_components/sensor.cert_expiry.markdown @@ -13,7 +13,7 @@ ha_release: 0.44 ha_iot_class: "depends" --- -The `cert_expiry` sensor fetches information from a configured URL and displays the certificate expiry in days. +The `cert_expiry` sensor fetches information from a configured URL and displays the certificate expiry in days. ## {% linkable_title Configuration %} @@ -26,13 +26,23 @@ sensor: host: home-assistant.io ``` -Configuration variables: - -- **host** (*Required*): The host FQDN (or IP) to retrieve certificate from. -- **port** (*Optional*): The port number where the server is running. Defaults to `443`. -- **name** (*Optional*): The friendly name for the certificate. +{% configuration %} +host: + description: The host FQDN (or IP) to retrieve certificate from. + required: true + type: string +port: + description: The port number where the server is running. + required: false + default: 443 + type: integer +name: + description: The friendly name for the certificate. + required: false + default: SSL Certificate Expiry + type: string +{% endconfiguration %}
Make sure that the URL exactly matches your endpoint or resource.
- diff --git a/source/_components/sensor.citybikes.markdown b/source/_components/sensor.citybikes.markdown index c23e5783aaae..265b448755c8 100644 --- a/source/_components/sensor.citybikes.markdown +++ b/source/_components/sensor.citybikes.markdown @@ -23,17 +23,38 @@ To enable it, add the following lines to your `configuration.yaml`: # Example configuration.yaml entry (using radius) sensor: - platform: citybikes - radius: 500 ``` -Configuration options: +{% configuration %} +name: + description: The base name of this group of monitored stations. The entity ID of every monitored station in this group will be prefixed with this base name, in addition to the network ID. + required: false + type: string +network: + description: The name of the bike sharing system to poll. + required: false + default: Defaults to the system that operates in the monitored location. + type: string +latitude: + description: Latitude of the location, around which bike stations are monitored. + required: false + default: Defaults to the latitude in your `configuration.yaml` file. + type: string +longitude: + description: Longitude of the location, around which bike stations are monitored. + required: false + default: Defaults to the longitude in your `configuration.yaml` file. + type: string +radius: + description: The radius (in meters or feet, depending on the Home Assistant configuration) around the monitored location. Only stations closer than this distance will be monitored. + required: false + type: integer +stations: + description: A list of specific stations to monitor. The list should contain station `ID`s or `UID`s, which can be obtained from the CityBikes API. + required: false + type: list +{% endconfiguration %} -- **name** (*Optional*): The base name of this group of monitored stations. The entity ID of every monitored station in this group will be prefixed with this base name, in addition to the network ID. -- **network** (*Optional*): The name of the bike sharing system to poll. Defaults to the system that operates in the monitored location. -- **latitude** (*Optional*): Latitude of the location, around which bike stations are monitored. Defaults to the latitude in your `configuration.yaml` file. -- **longitude** (*Optional*): Longitude of the location, around which bike stations are monitored. Defaults to the longitude in your `configuration.yaml` file. -- **radius** (*Optional*): The radius (in meters or feet, depending on the Home Assistant configuration) around the monitored location. Only stations closer than this distance will be monitored. -- **stations** array (*Optional*): A list of specific stations to monitor. The list should contain station `ID`s or `UID`s, which can be obtained from the CityBikes API. ## {% linkable_title Example %} diff --git a/source/_components/sensor.command_line.markdown b/source/_components/sensor.command_line.markdown index 04f31df2ae67..9e03ee8eae0f 100644 --- a/source/_components/sensor.command_line.markdown +++ b/source/_components/sensor.command_line.markdown @@ -27,15 +27,38 @@ sensor: command: SENSOR_COMMAND ``` -Configuration variables: - -- **command** (*Required*): The action to take to get the value. -- **name** (*Optional*): Name of the command sensor. -- **unit_of_measurement** (*Optional*): Defines the unit of measurement of the sensor, if any. -- **value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload. -- **scan_interval** (*Optional*): Defines number of seconds for polling interval (defaults to 60 seconds). -- **command_timeout** (*Optional*): Defines number of seconds for command timeout (defaults to 15 seconds). -- **json_attributes** (*Optional*): Defines a list of keys to extract values from a JSON dictionary result and then set as sensor attributes. +{% configuration %} +command: + description: The action to take to get the value. + required: true + type: string +name: + description: Name of the command sensor. + required: false + type: string +unit_of_measurement: + description: Defines the unit of measurement of the sensor, if any. + required: false + type: string +value_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload." + required: false + type: string +scan_interval: + description: Defines number of seconds for polling interval. + required: false + type: integer + default: 60 +command_timeout: + description: Defines number of seconds for command timeout + required: false + type: integer + default: 15 +json_attributes: + description: Defines a list of keys to extract values from a JSON dictionary result and then set as sensor attributes. + required: false + type: string, list +{% endconfiguration %} ## {% linkable_title Examples %} diff --git a/source/_components/sensor.dht.markdown b/source/_components/sensor.dht.markdown index 65a16633bda9..7766643d8b8b 100644 --- a/source/_components/sensor.dht.markdown +++ b/source/_components/sensor.dht.markdown @@ -31,14 +31,40 @@ sensor: - humidity ``` -Configuration variables: - -- **sensor** (*Required*): The sensor type, supported devices are DHT11, DHT22, and AM2302. -- **pin** (*Required*): The pin the sensor is connected to. -- **name** (*Optional*): The name of the sensor. -- **monitored_conditions** array (*Required*): Conditions to monitor. Available conditions are only *temperature* and *humidity*. -- **temperature_offset** (*Optional*): Add or subtract a value from the temperature. -- **humidity_offset** (*Optional*): Add or subtract a value from the humidity. +{% configuration %} +sensor: + description: The sensor type, supported devices are DHT11, DHT22, and AM2302. + required: true + type: string +pin: + description: The pin the sensor is connected to. + required: true + type: integer +name: + description: The name of the sensor. + required: false + default: DHT Sensor + type: string +monitored_conditions: + description: Conditions to monitor. Available conditions are only *temperature* and *humidity*. + required: true + type: list + keys: + temperature: + description: Temperature at the sensor's location. + humidity: + description: Humidity level at the sensor's location. +temperature_offset: + description: Add or subtract a value from the temperature. + required: false + default: 0 + type: [integer, float] +humidity_offset: + description: Add or subtract a value from the humidity. + required: false + default: 0 + type: [integer, float] +{% endconfiguration %} The name of the pin to which the sensor is connected has different names on different platforms. 'P8_11' for Beaglebone, '23' for Raspberry Pi. diff --git a/source/_components/sensor.dwd_weather_warnings.markdown b/source/_components/sensor.dwd_weather_warnings.markdown index 2965c0092608..84ed3ca5b525 100644 --- a/source/_components/sensor.dwd_weather_warnings.markdown +++ b/source/_components/sensor.dwd_weather_warnings.markdown @@ -37,7 +37,15 @@ The warning level is between 0 (no danger) and 4 (extreme weather conditions): - Warnungen vor markantem Wetter (Stufe 2) - Wetterwarnungen (Stufe 1) -Configuration variables: - -- **region_name** (*Optional*): The region name string as identified from the DWD website. If not given, defaults to Hansestadt Hamburg. -- **name** (*Optional*): The name you would like to give to the warnapp sensor. +{% configuration %} +region_name: + required: false + description: The region name string as identified from the DWD website. + default: Hansestadt Hamburg + type: string +name: + required: false + description: The name you would like to give to the warnapp sensor. + type: string + default: DWD-Weather-Warnings +{% endconfiguration %} diff --git a/source/_components/sensor.geizhals.markdown b/source/_components/sensor.geizhals.markdown index 636751da35bc..575c974b4de5 100644 --- a/source/_components/sensor.geizhals.markdown +++ b/source/_components/sensor.geizhals.markdown @@ -29,7 +29,7 @@ Configuration variables: - **name** (*Required*): The internal name of the product in Home Assistant. - **product_id** (*Required*): ID of the product. Get the ID from the Geizhals website of your chosen product by opening the *Price History* in a new browser tab (right-click on the price history > open in new tab). -The URL of this site reveals the ID, e.g. `https://geizhals.de/?phist=1696985` with a `product_id` of `1696985`. +The URL of this site reveals the ID, e.g., `https://geizhals.de/?phist=1696985` with a `product_id` of `1696985`. - **description** (*Optional*): The name of the product in the front end. - **locale** (*Optional*): Localisation which should be used for the request. Set this to `AT`, `EU`, `DE`, `UK` or `PL`. Defaults to `DE`. diff --git a/source/_components/sensor.geo_rss_events.markdown b/source/_components/sensor.geo_rss_events.markdown index 9d73fe5f7b93..bd1d773b0d75 100644 --- a/source/_components/sensor.geo_rss_events.markdown +++ b/source/_components/sensor.geo_rss_events.markdown @@ -21,7 +21,7 @@ This sensor is particularly useful if events occur unexpectedly in the vicinity -The reference point for comparing the distance is defined by `latitude` and `longitude` in the basic configuration. +The reference point for comparing the distance is by default defined by `latitude` and `longitude` in the basic configuration. Only entries of the feed are considered that define a location as `point` or `polygon` in *georss.org* format or as *WGS84 latitude/longitude*. @@ -54,6 +54,16 @@ name: required: false type: string default: Event Service +latitude: + description: Latitude of the coordinates around which events are considered. + required: false + type: string + default: Latitude defined in your `configuration.yaml` +longitude: + description: Longitude of the coordinates around which events are considered. + required: false + type: string + default: Longitude defined in your `configuration.yaml` radius: description: The distance in kilometers around the Home Assistant's coordinates in which events are considered. required: false diff --git a/source/_components/sensor.iperf3.markdown b/source/_components/sensor.iperf3.markdown index 068a9b879ada..44c5e7f36965 100644 --- a/source/_components/sensor.iperf3.markdown +++ b/source/_components/sensor.iperf3.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Iperf3 Sensor" -description: "How to use Iperf3 within Home Assistant to measure your network bandwith." +description: "How to use Iperf3 within Home Assistant to measure your network bandwidth." date: 2018-05-01 02:00 sidebar: true comments: false diff --git a/source/_components/sensor.jewish_calendar.markdown b/source/_components/sensor.jewish_calendar.markdown index 53002877895a..49eccc7da363 100644 --- a/source/_components/sensor.jewish_calendar.markdown +++ b/source/_components/sensor.jewish_calendar.markdown @@ -89,7 +89,7 @@ sensors: sensor: - platform: jewish_calendar language: english - diaspora: True + diaspora: true sensors: - date - weekly_portion diff --git a/source/_components/sensor.knx.markdown b/source/_components/sensor.knx.markdown index 3819a6dfdfd4..d558d1c3a15f 100644 --- a/source/_components/sensor.knx.markdown +++ b/source/_components/sensor.knx.markdown @@ -13,7 +13,7 @@ ha_release: 0.29 ha_iot_class: "Local Push" --- -The `knx` sensor platform allows you to monitor [KNX](http://www.knx.org) sensors. +The `knx` sensor platform allows you to monitor [KNX](http://www.knx.org) sensors. The `knx` component must be configured correctly, see [KNX Component](/components/knx). @@ -30,10 +30,21 @@ sensor: ``` +{% configuration %} +address: + description: KNX group address of the sensor. + required: true + type: string +name: + description: A name for this device used within Home Assistant. + required: false + type: string +type: + description: A type from the following table can be defined. The DPT of the group address should match the expected KNX DPT to be parsed correctly. + required: false + type: string +{% endconfiguration %} -- **address** (*Required*): KNX group address of the sensor. -- **name** (*Optional*): A name for this device used within Home Assistant. -- **type** (*Optional*): A type from the following table can be defined. The DPT of the group address should match the expected KNX DPT to be parsed correctly. | type | unit | expected KNX DPT | |--------------------|------|------------------| diff --git a/source/_components/sensor.miflora.markdown b/source/_components/sensor.miflora.markdown index 0e82f9a6e328..db6452c2c5e8 100644 --- a/source/_components/sensor.miflora.markdown +++ b/source/_components/sensor.miflora.markdown @@ -46,7 +46,7 @@ $ bluetoothctl [NEW] C4:D3:8C:12:4C:57 Flower mate ``` -If you can't use `hcitool` or `bluetoothctl` but have access to an Android phone you can try `BLE Scanner` or similar scanner applications from the Play Store to easily find your sensor MAC address. +If you can't use `hcitool` or `bluetoothctl` but have access to an Android phone you can try `BLE Scanner` or similar scanner applications from the Play Store to easily find your sensor MAC address. If you are using Windows 10, try the `Microsoft Bluetooth LE Explorer` app from the Windows Store. # Configure To use your Mi Flora plant sensor in your installation, add the following to your `configuration.yaml` file: @@ -60,17 +60,45 @@ sensor: - moisture ``` -- **mac** (*Required*): The MAC address of your sensor. -- **monitored_conditions** array (*Optional*): The parameters that should be monitored (defaults to monitoring all parameters). - - **moisture**: Moisture in the soil. - - **light**: Brightness at the sensor's location. - - **temperature**: Temperature at the sensor's location. - - **conductivity**: Conductivity in the soil. - - **battery**: Battery details. -- **name** (*Optional*): The name displayed in the frontend. -- **force_update** (*Optional*): Sends update events even if the value hasn't changed. -- **median** (*Optional*): Sometimes the sensor measurements show spikes. Using this parameter, the poller will report the median of the last 3 (you can also use larger values) measurements. This filters out single spikes. Median: 5 will also filter double spikes. If you never have problems with spikes, `median: 1` will work fine. -- **adapter** (*Optional*): Define the Bluetooth adapter to use (defaults to hci0). Run `hciconfig` to get a list of available adapters. +{% configuration %} +mac: + description: The MAC address of your sensor. + required: true + type: string +monitored_conditions: + description: The parameters that should be monitored. + required: false + default: [moisture, light, temperature, conductivity, battery] + type: list + keys: + moisture: + description: Moisture in the soil. + light: + description: Brightness at the sensor's location. + temperature: + description: Temperature at the sensor's location. + conductivity: + description: Conductivity in the soil. + battery: + description: Battery details. +name: + description: The name displayed in the frontend. + required: false + type: string +force_update: + description: Sends update events even if the value hasn't changed. + required: false + type: boolean +median: + description: "Sometimes the sensor measurements show spikes. Using this parameter, the poller will report the median of the last 3 (you can also use larger values) measurements. This filters out single spikes. Median: 5 will also filter double spikes. If you never have problems with spikes, `median: 1` will work fine." + required: false + type: integer +adapter: + description: "Define the Bluetooth adapter to use. Run `hciconfig` to get a list of available adapters." + required: false + default: hci0 + type: string +{% endconfiguration %}By default the sensor is only polled once every 20 minutes (`scan_interval` is 1200 seconds by default). On a Home Assistant restart sensor will report initial value. If you set `median: 3`, it will take _at least_ 40 minutes before the sensor will report an average value. Keep in mind though that reducing polling intervals will have a negative effect on the battery life. diff --git a/source/_components/sensor.mitemp_bt.markdown b/source/_components/sensor.mitemp_bt.markdown index b20d72a4bf5d..bf54f9768244 100644 --- a/source/_components/sensor.mitemp_bt.markdown +++ b/source/_components/sensor.mitemp_bt.markdown @@ -60,18 +60,56 @@ sensor: - temperature ``` -- **mac** (*Required*): The MAC address of your sensor. -- **monitored_conditions** array (*Optional*): The parameters that should be monitored (defaults to monitoring all parameters). - - **temperature**: Temperature in C at the sensor's location. - - **humidity**: Humidity level in % at the sensor's location. - - **battery**: Battery details (in %). -- **name** (*Optional*): The name displayed in the frontend. -- **force_update** (*Optional*): Sends update events even if the value hasn't changed. -- **median** (*Optional*): Sometimes the sensor measurements show spikes. Using this parameter, the poller will report the median of the last 3 (you can also use larger values) measurements. This filters out single spikes. Median: 5 will also filter double spikes. If you never have problems with spikes, `median: 1` will work fine. -- **timeout** (*Optional*): Define the timeout value in seconds when polling (defaults to 10 if not defined) -- **retries** (*Optional*): Define the number of retries when polling (defaults to 2 if not defined) -- **cache_value** (*Optional*): Define cache expiration value in seconds (defaults to 300 if not defined) -- **adapter** (*Optional*): Define the Bluetooth adapter to use (defaults to hci0). Run `hciconfig` to get a list of available adapters. +{% configuration %} +mac: + description: The MAC address of your sensor. + required: true + type: string +monitored_conditions: + description: The parameters that should be monitored. + required: false + default: [temperature, humidity, battery] + type: list + keys: + temperature: + description: Temperature in C at the sensor's location. + humidity: + description: Humidity level in % at the sensor's location. + battery: + description: Battery details (in %). +name: + description: The name displayed in the frontend. + required: false + type: string +force_update: + description: Sends update events even if the value hasn't changed. + required: false + type: boolean +median: + description: "Sometimes the sensor measurements show spikes. Using this parameter, the poller will report the median of the last 3 (you can also use larger values) measurements. This filters out single spikes. Median: 5 will also filter double spikes. If you never have problems with spikes, `median: 1` will work fine." + required: false + type: integer +timeout: + description: Define the timeout value in seconds when polling. + required: false + default: 10 + type: integer +retries: + description: Define the number of retries when polling. + required: false + default: 2 + type: integer +cache_value: + description: Define cache expiration value in seconds. + required: false + default: 300 + type: integer +adapter: + description: "Define the Bluetooth adapter to use. Run `hciconfig` to get a list of available adapters." + required: false + default: hci0 + type: string +{% endconfiguration %} Note that by default the sensor is only polled once every 5 minutes. This means with the `median: 3` setting will take as least 15 minutes before the sensor will report a value after a Home Assistant restart. Even though the hardware is able to provide new values every second, room temperatures don't change that quickly. Reducing polling intervals will have a negative effect on the battery life. @@ -91,4 +129,3 @@ sensor: - humidity - battery ``` - diff --git a/source/_components/sensor.modbus.markdown b/source/_components/sensor.modbus.markdown index d9681e8f6782..3345162f9db4 100644 --- a/source/_components/sensor.modbus.markdown +++ b/source/_components/sensor.modbus.markdown @@ -45,21 +45,66 @@ sensor: precision: 2 ``` -Configuration variables: - -- **registers** array (*Required*): The array contains a list of relevant registers to read from. - - **name** (*Required*): Name of the sensor. - - **slave** (*Required*): The number of the slave (Optional for tcp and upd Modbus). - - **register** (*Required*): Register number. - - **register_type** (*Optional*): Modbus register type (holding, input), default holding. - - **unit_of_measurement** (*Optional*): Unit to attach to value. - - **count** (*Optional*): Number of registers to read. - - **reverse_order** (*Optional*): Reverse the order of registers when count >1, default False. - - **scale** (*Optional*): Scale factor (output = scale * value + offset), default 1. - - **offset** (*Optional*): Final offset (output = scale * value + offset), default 0. - - **precision** (*Optional*): Number of valid decimals, default 0. - - **data_type** (*Optional*): Response representation (int, uint, float, custom). If float selected, value will be converted to IEEE 754 floating point format. Default int. - - **structure** (*Optional*): If data_type is custom specify here a double quoted python struct format string to unpack the value. See python documentation for details. Ex: ">i". +{% configuration %} +registers: + description: The array contains a list of relevant registers to read from. + required: true + type: map + keys: + name: + description: Name of the sensor. + required: true + type: string + slave: + description: The number of the slave (Optional for tcp and upd Modbus). + required: true + type: integer + register: + description: Register number. + required: true + type: integer + register_type: + description: Modbus register type (holding, input), default holding. + required: false + type: string + unit_of_measurement: + description: Unit to attach to value. + required: false + type: integer + count: + description: Number of registers to read. + required: integer + type: integer + reverse_order: + description: Reverse the order of registers when count >1. + required: false + default: False + type: boolean + scale: + description: Scale factor (output = scale * value + offset). + required: false + default: 1 + type: float + offset: + description: Final offset (output = scale * value + offset). + required: false + default: 0 + type: float + precision: + description: Number of valid decimals. + required: false + default: 0 + type: integer + data_type: + description: Response representation (int, uint, float, custom). If float selected, value will be converted to IEEE 754 floating point format. + required: false + default: int + type: string + structure: + description: "If data_type is custom specify here a double quoted python struct format string to unpack the value. See python documentation for details. Ex: >i." + required: false + type: string +{% endconfiguration %} It's possible to change the default 30 seconds scan interval for the sensor updates as shown in the [Platform options](/docs/configuration/platform_options/#scan-interval) documentation. diff --git a/source/_components/sensor.mqtt.markdown b/source/_components/sensor.mqtt.markdown index 8b8a0fc07b61..0b2182a83f68 100644 --- a/source/_components/sensor.mqtt.markdown +++ b/source/_components/sensor.mqtt.markdown @@ -91,6 +91,35 @@ device_class: required: false type: device_class default: None +device: + description: 'Information about the device this sensor is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.' + required: false + type: map + keys: + identifiers: + description: 'A list of IDs that uniquely identify the device. For example a serial number.' + required: false + type: list, string + connections: + description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' + required: false + type: list + manufacturer: + description: 'The manufacturer of the device.' + required: false + type: string + model: + description: 'The model of the device.' + required: false + type: string + name: + description: 'The name of the device.' + required: false + type: string + sw_version: + description: 'The firmware version of the device.' + required: false + type: string {% endconfiguration %} ## {% linkable_title Examples %} diff --git a/source/_components/sensor.octoprint.markdown b/source/_components/sensor.octoprint.markdown index c9f3aed618a7..c29983928555 100644 --- a/source/_components/sensor.octoprint.markdown +++ b/source/_components/sensor.octoprint.markdown @@ -17,34 +17,5 @@ ha_iot_class: "Local Polling" The `octoprint` sensor platform let you monitor various states of your 3D printer and its print jobs.
-You must have the [OctoPrint component](/components/octoprint/) configured to use this sensor. -
- -To set it up, add the following information to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: octoprint - name: OctoPrint - monitored_conditions: - - Current State - - Temperatures - - Job Percentage - - Time Elapsed - - Time Remaining -``` - -Configuration variables: - -- **name** (*Optional*): The name of the sensor. Default is 'OctoPrint'. -- **monitored_conditions** array (*Required*): States to monitor. - - **Current State**: Text of current state. - - **Temperatures**: Temperatures of all available tools, eg. `print`, `head`, `print bed`, etc. These will be displayed as `tool0`, `tool1`, or `toolN` please refer to your OctoPrint frontend to associate the tool number with an actual device. - - **Job Percentage**: Percentage of the job. - - **Time Elapsed**: Time elapsed on current print job, in seconds. - - **Time Remaining**: Time remaining on current print job, in seconds. - --If you are tracking temperature it is recommended to set `bed` and/or `number_of_tools` in your octoprint configuration. This will allow the octoprint sensors to load if the printer is offline during Home Assistant startup. +You must have the [OctoPrint component](/components/octoprint/) configured to use this sensor. After configuring that component, sensors automatically appear.
diff --git a/source/_components/sensor.rmvtransport.markdown b/source/_components/sensor.rmvtransport.markdown index 6c4cea8129bd..0ecb8212fd6a 100644 --- a/source/_components/sensor.rmvtransport.markdown +++ b/source/_components/sensor.rmvtransport.markdown @@ -28,39 +28,52 @@ sensor: ``` {% configuration %} -name: - description: Name to use in the frontend. +timeout: + description: Specify the timeout for the API calls. required: false - default: The default is the station name. - type: string -stationId: - description: ID of the stop or station, e.g. 3000010. Visit [the RMV OpenData web site](https://opendata.rmv.de) to find a list of valid IDs. - required: true - type: string -destinations: - description: "One or multiple final stop names, e.g., 'Frankfurt (Main) Hauptbahnhof' or ['Frankfurt (Main) Hauptbahnhof','Frankfurt (Main) Stadion']. This can be used to only consider a particular direction of travel." - required: false - type: [string] -lines: - description: "One or more line numbers, e.g., `'S8'` or `['S8', 'RB33', '41']`" - required: false - default: The default is the station name. - type: [string, int] -products: - description: "One or more modes of transport `['U-Bahn', 'Tram', 'Bus', 'S-Bahn', 'RB', 'RE', 'EC', 'IC', 'ICE']`." - required: false - default: Defaults to all. - type: [string] -time_offset: - description: Do not display departures leaving sooner than this number of minutes. Useful if you are a couple of minutes away from the stop. - required: false - default: The defaults is 0. + default: 10 type: integer -max_journeys: - description: Specify the maximal number of journeys. - required: false - default: The default is 5. - type: string +next_departure: + description: One or multiple departure sensors. + required: true + type: list + keys: + name: + description: Name to use in the frontend. + required: false + default: The default is the station name. + type: string + station: + description: "ID of the stop or station, e.g. `3000010`. Visit [the RMV OpenData web site](https://opendata.rmv.de) to find a list of valid IDs." + required: true + type: string + destinations: + description: "One or multiple final stop names, e.g., 'Frankfurt (Main) Hauptbahnhof' or ['Frankfurt (Main) Hauptbahnhof','Frankfurt (Main) Stadion']. This can be used to only consider a particular direction of travel." + required: false + type: [string] + direction: + description: "Name of a stop or station, e.g., 'Frankfurt (Main) Hauptbahnhof'. This can be used to only consider a particular direction of travel." + required: false + type: [string] + lines: + description: "One or more line numbers, e.g., `'S8'` or `['S8', 'RB33', '41']`" + required: false + type: [string, int] + products: + description: "One or more modes of transport `['U-Bahn', 'Tram', 'Bus', 'S-Bahn', 'RB', 'RE', 'EC', 'IC', 'ICE']`." + required: false + default: ['U-Bahn', 'Tram', 'Bus', 'S-Bahn', 'RB', 'RE', 'EC', 'IC', 'ICE'] + type: [string] + time_offset: + description: Do not display departures leaving sooner than this number of minutes. Useful if you are a couple of minutes away from the stop. + required: false + default: 0 + type: integer + max_journeys: + description: Specify the maximal number of journeys. + required: false + default: 5 + type: integer {% endconfiguration %} ## {% linkable_title Examples %} @@ -73,6 +86,8 @@ The example below shows a full configuration with three sensors that showcase th # Example configuration.yaml entry sensor: - platform: rmvtransport + scan_interval: 120 + timeout: 10 next_departure: - station: 3000010 time_offset: 5 diff --git a/source/_components/sensor.starlingbank.markdown b/source/_components/sensor.starlingbank.markdown index e997e0da2a35..5accaf731d54 100644 --- a/source/_components/sensor.starlingbank.markdown +++ b/source/_components/sensor.starlingbank.markdown @@ -24,7 +24,7 @@ You can find more information about Starling Bank at [their website](https://www ## {% linkable_title Access Token %} -Once you have your own Starling bank account you will need to sign up for a Staring developer account [here](https://developer.starlingbank.com/signup). You won't need to do any development but you will need to get a "Personal Access Token" that will allow the integration to access your account balance. +Once you have your own Starling bank account you will need to sign up for a Starling developer account [here](https://developer.starlingbank.com/signup). You won't need to do any development but you will need to get a "Personal Access Token" that will allow the integration to access your account balance.You control what access is granted using this token. This integration only needs very basic access (see below). @@ -33,7 +33,7 @@ Once you have your own Starling bank account you will need to sign up for a Star Once you've signed up: 1. Head to the [Personal Access Section](https://developer.starlingbank.com/personal/token) of your developer account. 2. Click "Create Token". -3. Give your token a name e.g. "Home Assistant". +3. Give your token a name e.g., "Home Assistant". 4. Tick the permissions "account:read" and "balance:read". The others you can leave un-ticked. 5. Click "Create" and make a note of the newly created token, you will need this for your Home Assistant configuration. diff --git a/source/_components/sensor.swiss_public_transport.markdown b/source/_components/sensor.swiss_public_transport.markdown index c1063e4d4a5d..b702c2dc50a6 100644 --- a/source/_components/sensor.swiss_public_transport.markdown +++ b/source/_components/sensor.swiss_public_transport.markdown @@ -30,10 +30,20 @@ sensor: to: STATION_ID ``` -Configuration variables: - -- **from** (*Required*): The ID of the station of the start station. -- **to** (*Required*): The ID of the station of the end station. -- **name** (*Optional*): The name of the sensor. Defaults to 'Next Departure'. +{% configuration %} +from: + description: The ID of the station of the start station. + required: true + type: string +to: + description: The ID of the station of the end station. + required: true + type: string +name: + description: The name of the sensor. + required: false + type: string + default: Next Departure +{% endconfiguration %} The public timetables are coming from [Swiss public transport](http://transport.opendata.ch). diff --git a/source/_components/sensor.ted5000.markdown b/source/_components/sensor.ted5000.markdown index 1dd451255c78..1e498eb1ca00 100644 --- a/source/_components/sensor.ted5000.markdown +++ b/source/_components/sensor.ted5000.markdown @@ -24,11 +24,23 @@ sensor: host: 192.168.1.100 ``` -Configuration variables: -- **host** (*Required*): The IP address of your ted gateway. -- **port** (*Optional*): The port of your ted gateway. Defaults to 80. -- **name** (*Optional*): Name of the ted gateway. Defaults to ted. +{% configuration %} +host: + description: The IP address of your ted gateway. + required: true + type: string +port: + description: The port of your ted gateway. + required: false + type: integer + default: 80 +name: + description: Name of the ted gateway. + required: false + type: string + default: ted +{% endconfiguration %} For each plugged MTU, using an index starting at 1, the platform creates 2 sensors: diff --git a/source/_components/sensor.template.markdown b/source/_components/sensor.template.markdown index c2942d023a05..eb5a34a6acbb 100644 --- a/source/_components/sensor.template.markdown +++ b/source/_components/sensor.template.markdown @@ -58,6 +58,7 @@ sensor: description: "Defines the units of measurement of the sensor, if any. This will also influence the graphical presentation in the history visualisation as continuous value. Sensors with missing `unit_of_measurement` are showing as discrete values." required: false type: string + default: None value_template: description: Defines a template to get the state of the sensor. required: true @@ -71,7 +72,7 @@ sensor: required: false type: template device_class: - description: The type/class of the sensor to set the icon in the frontend. + description: Sets the class of the device, changing the device state and icon that is displayed on the UI (see below). It does not set the `unit_of_measurement`. required: false type: device_class default: None diff --git a/source/_components/sensor.trafikverket_weatherstation.markdown b/source/_components/sensor.trafikverket_weatherstation.markdown index d66357695115..2b55ff6d2a62 100644 --- a/source/_components/sensor.trafikverket_weatherstation.markdown +++ b/source/_components/sensor.trafikverket_weatherstation.markdown @@ -55,7 +55,7 @@ station: required: true type: string monitored_conditions: - description: Specify what measurement data to retreive from the weather station. + description: Specify what measurement data to retrieve from the weather station. required: true type: map keys: diff --git a/source/_components/sensor.transport_nsw.markdown b/source/_components/sensor.transport_nsw.markdown new file mode 100644 index 000000000000..9ddf794d0695 --- /dev/null +++ b/source/_components/sensor.transport_nsw.markdown @@ -0,0 +1,54 @@ +--- +layout: page +title: "Transport NSW" +description: "Instructions on how to integrate timetable data for Transport NSW (Australia) within Home Assistant." +date: 2018-10-05 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: transport_nsw.png +ha_category: Transport +ha_iot_class: "Cloud Polling" +ha_release: 0.81 +--- + + +The `transport_nsw` sensor will give you the time until the next departure from a Transport NSW stop (bus, train or ferry). + +Get your free API key from [Transport NSW](https://opendata.transport.nsw.gov.au/). + +In order to find the stop id, just go to Google maps and click on the bus/train/ferry stop. It will give you there the stop ID. + +You can define a bus line, but if you don’t do it, the sensor will pick up the next stop event from any line servicing this stop. + +Then add the data to your `configuration.yaml` file as shown in the example: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: transport_nsw + stop_id: '200024' + api_key: 'YOUR API KEY' +``` + +{% configuration %} +api_key: + description: Your API key for Open Data Transport NSW + required: true + type: string +stop_id: + description: The ID of the stop to get the information for + required: true + type: string +route: + description: Only show a single bus route at the stop. This is the same as the bus number, e.g., `83` + required: false + type: string +name: + description: A friendly name for this sensor. + required: false + type: string +{% endconfiguration %} + +The public information is coming from [Transport NSW](https://opendata.transport.nsw.gov.au/). diff --git a/source/_components/sensor.waqi.markdown b/source/_components/sensor.waqi.markdown index 163ce64ee68e..f428d28db64b 100644 --- a/source/_components/sensor.waqi.markdown +++ b/source/_components/sensor.waqi.markdown @@ -26,15 +26,22 @@ sensor: token: AQICN_API_TOKEN locations: - beijing - stations: - - Beijing US Embassy, Beijing ``` -Configuration variables: - -- **locations** (*Required*): A list of location names to look for air quality data. In case a specific location has multiple registered stations all of them will be added to Home Assistant. -- **token** (*Required*): The token for the AQICN public API. -- **stations** (*Optional*): A list of station names to look for air quality data. Station should be within locations specified above. +{% configuration %} +token: + description: The token for the AQICN public API. + required: true + type: string +locations: + description: A list of location names to look for air quality data. In case a specific location has multiple registered stations all of them will be added to Home Assistant. + required: true + type: list +stations: + description: A list of station names to look for air quality data. Station should be within locations specified above. + required: false + type: list +{% endconfiguration %} The value reported is an overall AQ index for the location. The values of the index can be interpreted as following: diff --git a/source/_components/sensor.worldclock.markdown b/source/_components/sensor.worldclock.markdown index 620e29355189..1ca0964f86b9 100644 --- a/source/_components/sensor.worldclock.markdown +++ b/source/_components/sensor.worldclock.markdown @@ -26,10 +26,17 @@ sensor: time_zone: America/New_York ``` -Configuration variables: - -- **time_zone** (*Required*): The resource or endpoint that contains the value. -- **name** (*Optional*): The name of the sensor, eg. the city. Defaults to 'Worldclock Sensor'. +{% configuration %} +time_zone: + description: The resource or endpoint that contains the value. + required: true + type: string +name: + description: The name of the sensor, eg. the city. + required: false + type: string + default: Worldclock Sensor +{% endconfiguration %} For valid time zones check the **TZ** column in the [Wikipedia overview](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). Or get the full list from the [pytz](https://pypi.python.org/pypi/pytz) module. diff --git a/source/_components/sensor.worxlandroid.markdown b/source/_components/sensor.worxlandroid.markdown index 5497ae700572..d4ec6b401b81 100644 --- a/source/_components/sensor.worxlandroid.markdown +++ b/source/_components/sensor.worxlandroid.markdown @@ -25,8 +25,18 @@ sensor: pin: 1234 ``` -Configuration variables: - -- **host** (*Required*): The ip address or host name of the mower. -- **pin** (*Required*): The pin code for the mower. -- **allow_unreachable** (*Optional*): This will allow the mower to be outside of wifi range without raising an error (default: True). +{% configuration %} +host: + description: The ip address or host name of the mower. + required: true + type: string +pin: + description: The pin code for the mower. + required: true + type: integer +allow_unreachable: + description: This will allow the mower to be outside of wifi range without raising an error. + required: false + type: boolean + default: true +{% endconfiguration %} diff --git a/source/_components/sensor.wunderground.markdown b/source/_components/sensor.wunderground.markdown index 0ce56092b598..b5a2d5bec988 100644 --- a/source/_components/sensor.wunderground.markdown +++ b/source/_components/sensor.wunderground.markdown @@ -13,7 +13,7 @@ ha_release: 0.27 ha_iot_class: "Cloud Polling" --- -The `wunderground` platform uses [Weather Underground](http://www.wunderground.com) as a source for current weather information. +The `wunderground` platform uses [Weather Underground](http://www.wunderground.com) as a source for current weather information.
Obtain a WUnderground API key [here](https://www.wunderground.com/weather/api). They no longer offer free API keys, and all keys must be paid for. At this time existing free keys will continue to work, but will be disabled Dec 31, 2018. As of Sept 6, 2018 Weather Underground states they are declaring the [End of Service for the Weather Underground API](https://apicommunity.wunderground.com/weatherapi/topics/end-of-service-for-the-weather-underground-api). They say they will develop new plans for non-commercial users. No timeline for this has been announced. @@ -33,72 +33,154 @@ sensor: - dewpoint_c ``` -Configuration variables: - -- **api_key** (*Required*): The API key for Weather Underground. See above for details. -- **pws_id** (*Optional*): You can enter a Personal Weather Station ID. The current list of Wunderground PWS stations is available [here](https://www.wunderground.com/weatherstation/ListStations.asp). If you do not enter a PWS ID, the current location information (latitude and longitude) from your `configuration.yaml` will be used to display weather conditions. -- **lang** (*Optional*): Specify the language that the API returns. The current list of all Wunderground language codes is available [here](https://www.wunderground.com/weather/api/d/docs?d=language-support). If not specified, it defaults to English (EN). -- **latitude** (*Optional*): Latitude coordinate to monitor weather of (required if **longitude** is specified). Defaults to coordinates defined in your `configuration.yaml`. -- **longitude** (*Optional*): Longitude coordinate to monitor weather of (required if **latitude** is specified). Defaults to coordinates defined in your `configuration.yaml`. -- **monitored_conditions** array (*Required*): Conditions to display in the frontend. The following conditions can be monitored. - - **alerts**: Current severe weather advisories - - **dewpoint_c**: Temperature in Celsius below which water droplets begin to condense and dew can form - - **dewpoint_f**: Temperature in Fahrenheit below which water droplets begin to condense and dew can form - - **dewpoint_string**: Text summary of dew point - - **feelslike_c**: Feels like (or apparent) temperature in Celsius - - **feelslike_f**: Feels like (or apparent) temperature in Fahrenheit - - **feelslike_string**: Text summary of how the current temperature feels like - - **heat_index_c**: Heat index (combined effects of the temperature and humidity of the air) in Celsius - - **heat_index_f**: Heat index (combined effects of the temperature and humidity of the air) in Fahrenheit - - **heat_index_string**: Text summary of current heat index - - **elevation**: Elevation in feet - - **location**: City and State - - **observation_time**: Text summary of observation time - - **precip_today_in**: Total precipitation in inches - - **precip_today_metric**: Total precipitation in metric units - - **precip_today_string**: Text summary of precipitation today - - **precip_1d_mm** [[1d]](#1d): Forecasted precipitation intensity in millimeters - - **precip_1d_in** [[1d]](#1d): Forecasted precipitation intensity in inches - - **precip_1d** [[1d]](#1d): Forecasted precipitation probability in % - - **pressure_in**: Atmospheric air pressure in inches - - **pressure_mb**: Atmospheric air pressure in millibars - - **pressure_trend**: Atmospheric air pressure trend signal (+/-) - - **relative_humidity**: Relative humidity - - **station_id**: Your personal weather station (PWS) ID - - **solarradiation**: Current levels of solar radiation - - **temperature_string**: Temperature text combining Fahrenheit and Celsius - - **temp_c**: Current temperature in Celsius - - **temp_f**: Current temperature in Fahrenheit - - **temp_high_record_c**: Maximum temperature measured in Celsius - - **temp_high_record_f**: Maximum temperature measured in Fahrenheit - - **temp_low_record_c**: Minimal temperature measured in Celsius - - **temp_low_record_f**: Minimal temperature measured in Fahrenheit - - **temp_high_avg_c**: Average high for today in Celsius - - **temp_high_avg_f**: Average high for today in Fahrenheit - - **temp_low_avg_c**: Average low for today in Celsius - - **temp_low_avg_f**: Average low for today in Fahrenheit - - **temp_high_1d_c** [[1d]](#1d): Forecasted high temperature in Celsius - - **temp_high_1d_f** [[1d]](#1d): Forecasted high temperature in Fahrenheit - - **temp_low_1d_c** [[1d]](#1d): Forecasted low temperature in Celsius - - **temp_low_1d_f** [[1d]](#1d): Forecasted low temperature in Fahrenheit - - **UV**: Current levels of UV radiation. See [here](https://www.wunderground.com/resources/health/uvindex.asp) for explanation. - - **visibility_km**: Average visibility in km - - **visibility_mi**: Average visibility in miles - - **weather**: A human-readable text summary with picture from Wunderground. - - **weather_1d** [[12h]](#12h): A human-readable weather forecast using imperial units. - - **weather_1d_metric** [[12h]](#12h): A human-readable weather forecast using metric units. - - **weather_1h** [[1h]](#1h): Weather conditions in 1 hour. (e.g., "Thunderstorm" etc.) - - **wind_degrees**: Wind degrees - - **wind_dir**: Wind direction - - **wind_gust_kph**: Wind gusts speed in kph - - **wind_gust_mph**: Wind gusts speed in mph - - **wind_gust_1d_kph** [[1d]](#1d): Max. forecasted Wind in kph - - **wind_gust_1d_mph** [[1d]](#1d): Max. forecasted Wind in mph - - **wind_kph**: Current wind speed in kph - - **wind_mph**: Current wind speed in mph - - **wind_1d_kph** [[1d]](#1d): Forecasted wind speed in kph - - **wind_1d_mph** [[1d]](#1d): Forecasted wind speed in mph - - **wind_string**: Text summary of current wind conditions +{% configuration %} +api_key: + description: The API key for Weather Underground. See above for details. + required: true + type: string +pws_id: + description: "You can enter a Personal Weather Station ID. The current list of Wunderground PWS stations is available [here](https://www.wunderground.com/weatherstation/ListStations.asp). If you do not enter a PWS ID, the current location information (latitude and longitude) from your `configuration.yaml` will be used to display weather conditions." + required: false + type: string +lang: + description: Specify the language that the API returns. The current list of all Wunderground language codes is available [here](https://www.wunderground.com/weather/api/d/docs?d=language-support). If not specified, it defaults to English (EN). + required: false + type: string + default: EN +latitude: + description: Latitude coordinate to monitor weather of (required if **longitude** is specified). + required: false + type: string + default: Coordinates defined in your `configuration.yaml` +longitude: + description: Longitude coordinate to monitor weather of (required if **latitude** is specified). + required: false + type: string + default: Coordinates defined in your `configuration.yaml` +monitored_conditions: + description: Conditions to display in the frontend. The following conditions can be monitored. + required: true + type: list + default: symbol + keys: + alerts: + description: Current severe weather advisories + dewpoint_c: + description: Temperature in Celsius below which water droplets begin to condense and dew can form + dewpoint_f: + description: Temperature in Fahrenheit below which water droplets begin to condense and dew can form + dewpoint_string: + description: Text summary of dew point + feelslike_c: + description: Feels like (or apparent) temperature in Celsius + feelslike_f: + description: Feels like (or apparent) temperature in Fahrenheit + feelslike_string: + description: Text summary of how the current temperature feels like + heat_index_c: + description: Heat index (combined effects of the temperature and humidity of the air) in Celsius + heat_index_f: + description: Heat index (combined effects of the temperature and humidity of the air) in Fahrenheit + heat_index_string: + description: Text summary of current heat index + elevation: + description: Elevation in feet + location: + description: City and State + observation_time: + description: Text summary of observation time + precip_today_in: + description: Total precipitation in inches + precip_today_metric: + description: Total precipitation in metric units + precip_today_string: + description: Text summary of precipitation today + precip_1d_mm: + description: "[[1d]](#1d): Forecasted precipitation intensity in millimeters" + precip_1d_in: + description: "[[1d]](#1d): Forecasted precipitation intensity in inches" + precip_1d: + description: "[[1d]](#1d): Forecasted precipitation probability in %" + pressure_in: + description: Atmospheric air pressure in inches + pressure_mb: + description: Atmospheric air pressure in millibars + pressure_trend: + description: "Atmospheric air pressure trend signal `(+/-)`" + relative_humidity: + description: Relative humidity + station_id: + description: Your personal weather station (PWS) ID + solarradiation: + description: Current levels of solar radiation + temperature_string: + description: Temperature text combining Fahrenheit and Celsius + temp_c: + description: Current temperature in Celsius + temp_f: + description: Current temperature in Fahrenheit + temp_high_record_c: + description: Maximum temperature measured in Celsius + temp_high_record_f: + description: Maximum temperature measured in Fahrenheit + temp_low_record_c: + description: Minimal temperature measured in Celsius + temp_low_record_f: + description: Minimal temperature measured in Fahrenheit + temp_high_avg_c: + description: Average high for today in Celsius + temp_high_avg_f: + description: Average high for today in Fahrenheit + temp_low_avg_c: + description: Average low for today in Celsius + temp_low_avg_f: + description: Average low for today in Fahrenheit + temp_high_1d_c: + description: "[[1d]](#1d): Forecasted high temperature in Celsius" + temp_high_1d_f: + description: "[[1d]](#1d): Forecasted high temperature in Fahrenheit" + temp_low_1d_c: + description: "[[1d]](#1d): Forecasted low temperature in Celsius" + temp_low_1d_f: + description: "[[1d]](#1d): Forecasted low temperature in Fahrenheit" + UV: + description: Current levels of UV radiation. See [here](https://www.wunderground.com/resources/health/uvindex.asp) for explanation. + visibility_km: + description: Average visibility in km + visibility_mi: + description: Average visibility in miles + weather: + description: A human-readable text summary with picture from Wunderground. + weather_1d: + description: "[[12h]](#12h): A human-readable weather forecast using imperial units." + weather_1d_metric: + description: "[[12h]](#12h): A human-readable weather forecast using metric units." + weather_1h: + description: "[[1h]](#1h): Weather conditions in 1 hour. (e.g., \"Thunderstorm\" etc.)" + wind_degrees: + description: Wind degrees + wind_dir: + description: Wind direction + wind_gust_kph: + description: Wind gusts speed in kph + wind_gust_mph: + description: Wind gusts speed in mph + wind_gust_1d_kph: + description: "[[1d]](#1d): Max. forecasted Wind in kph" + wind_gust_1d_mph: + description: "[[1d]](#1d): Max. forecasted Wind in mph" + wind_kph: + description: Current wind speed in kph + wind_mph: + description: Current wind speed in mph + wind_1d_kph: + description: "[[1d]](#1d): Forecasted wind speed in kph" + wind_1d_mph: + description: "[[1d]](#1d): Forecasted wind speed in mph" + wind_string: + description: Text summary of current wind conditions +{% endconfiguration %} + All the conditions listed above will be updated every 5 minutes. @@ -195,6 +277,8 @@ Note: While the platform is called “wunderground” the sensors will show up i Note that the Weather Underground sensor is added to the entity_registry, so second and subsequent Personal Weather Station ID (pws_id) will have their monitored conditions suffixed with an index number e.g. +```yaml - sensor.pws_weather_1d_metric_2 +``` Additional details about the API are available [here](https://www.wunderground.com/weather/api/d/docs). diff --git a/source/_components/sensor.yweather.markdown b/source/_components/sensor.yweather.markdown index fdd5a38b808d..befc4a37d5e3 100644 --- a/source/_components/sensor.yweather.markdown +++ b/source/_components/sensor.yweather.markdown @@ -20,7 +20,7 @@ The `yweather` platform uses [Yahoo Weather](https://www.yahoo.com/news/weather/ Use of the Yahoo Weather API should not exceed reasonable request volume. Access is limited to 2000 signed calls per day.
-The `woeid` (Where On Earth ID) for your location, as shown in the example below. You can find your WOEID by copying the numeric digits at the end of the URL for your location at [Yahoo Weather](https://www.yahoo.com/news/weather/). If you don't add a WOEID it generate it from Home Assistant's latitude and longitude. +The `woeid` (Where On Earth ID) for your location, as shown in the example below. You can find your WOEID by copying the numeric digits at the end of the URL for your location at [Yahoo Weather](https://www.yahoo.com/news/weather/). If you don't add a WOEID it is generated from Home Assistant's latitude and longitude. To add Yahoo Weather to your installation, add the following to your `configuration.yaml` file: @@ -40,21 +40,46 @@ sensor: - temperature ``` -Configuration variables: - -- **woeid** (*Optional*): See above. -- **forecast** (*Optional*): Day of forecast. The default is the current day to display conditions. -- **name** (*Optional*): The name of the sensor. To easily recognize each sensor when adding more than one Yahoo weather sensor, it is recommended to use the name option. Defaults to `Yweather`. -- **monitored_conditions** array (*Required*): Conditions to display in the frontend. - - **weather**: A human-readable text summary with picture from yahoo. - - **weather_current**: A human-readable text summary with picture from yahoo from current condition. - - **temperature**: The current temperature. - - **temp_min**: The minimal temperature of this day. - - **temp_max**: The maximum temperature of this day. - - **wind_speed**: The wind speed. - - **humidity**: The relative humidity. - - **pressure**: The sea-level air pressure in millibars. - - **visibility**: The average visibility. +{% configuration %} +woeid: + required: false + description: See above. + type: string + default: "Defaults to a WOEID generated from coordinates defined in your `configuration.yaml` file." +forecast: + required: false + description: Day of forecast. The default is the current day to display conditions. + type: integer + default: 0 +name: + required: false + description: "The name of the sensor. To easily recognize each sensor when adding more than one Yahoo weather sensor, it is recommended to use the name option." + type: string + default: "`Yweather`" +monitored_conditions: + required: true + description: Conditions to display in the frontend. + type: list + keys: + weather: + description: A human-readable text summary with picture from yahoo. + weather_current: + description: A human-readable text summary with picture from yahoo from current condition. + temperature: + description: The current temperature. + temp_min: + description: The minimal temperature of this day. + temp_max: + description: The maximum temperature of this day. + wind_speed: + description: The wind speed. + humidity: + description: The relative humidity. + pressure: + description: The sea-level air pressure in millibars. + visibility: + description: The average visibility. +{% endconfiguration %} Example of forecast using multiple days. In example, first sensor shows tomorrow's forecast, second sensor shows the next day and so on: @@ -85,4 +110,3 @@ sensor: ``` Details about the API are available in the [Yahoo! Developer Network](https://developer.yahoo.com/weather/). - diff --git a/source/_components/sensor.zamg.markdown b/source/_components/sensor.zamg.markdown index 014752a66ec5..f1d25e0626b9 100644 --- a/source/_components/sensor.zamg.markdown +++ b/source/_components/sensor.zamg.markdown @@ -25,24 +25,55 @@ sensor: - platform: zamg ``` -Configuration variables: - -- **station_id** (*Optional*): The ID number for a supported ZAMG station. -- **name** (*Optional*): Additional name for the sensors. Defaults to platform name. -- **latitude** (*Optional*): Latitude coordinate to monitor weather of (required if **longitude** is specified). Defaults to coordinates defined in your `configuration.yaml` file. -- **longitude** (*Optional*): Longitude coordinate to monitor weather of (required if **latitude** is specified). Defaults to coordinates defined in your `configuration.yaml` file. -- **monitored_conditions** array (*Optional*): Conditions to display in the frontend. - - **pressure**: Pressure at station level - - **pressure_sealevel**: Pressure at sea Level - - **humidity**: Humidity - - **wind_speed**: Wind speed - - **wind_bearing**: Wind bearing - - **wind_max_speed**: Top wind speed - - **wind_max_bearing**: Top wind bearing - - **sun_last_hour**: Sun last hour percentage - - **temperature**: Temperature - - **precipitation**: Precipitation - - **dewpoint**: Dew point +{% configuration %} +station_id: + required: false + description: The ID number for a supported ZAMG station. + type: string +name: + required: false + description: Additional name for the sensors. Defaults to platform name. + default: zamg + type: string +latitude: + required: false + description: "Latitude coordinate to monitor weather of (required if **longitude** is specified)." + default: "Defaults to coordinates defined in your `configuration.yaml` file." + type: float +longitude: + required: false + description: "Longitude coordinate to monitor weather of (required if **latitude** is specified)." + default: "Defaults to coordinates defined in your `configuration.yaml` file." + type: float +monitored_conditions: + required: false + description: Conditions to display in the frontend. + type: list + default: temperature + keys: + pressure: + description: Pressure at station level + pressure_sealevel: + description: Pressure at sea Level + humidity: + description: Humidity + wind_speed: + description: Wind speed + wind_bearing: + description: Wind bearing + wind_max_speed: + description: Top wind speed + wind_max_bearing: + description: Top wind bearing + sun_last_hour: + description: Sun last hour percentage + temperature: + description: Temperature + precipitation: + description: Precipitation + dewpoint: + description: Dew point +{% endconfiguration %} A full configuration example: diff --git a/source/_components/sensor.zestimate.markdown b/source/_components/sensor.zestimate.markdown index ca9547e40400..1d24b3f0dfd3 100644 --- a/source/_components/sensor.zestimate.markdown +++ b/source/_components/sensor.zestimate.markdown @@ -19,7 +19,7 @@ The `zestimate` sensor allows one to track the Zestimate value of properties usi You will need to sign up for the Zillow API at the following link [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm). You will also need the Zillow property ID for each property you'd like to track. This information is available from the URL of a property you are interested in. -For example, the White House zpid is 84074482 and can be found in it's Zillow URL: [https://www.zillow.com/homedetails/1600-Pennsylvania-Ave-NW-Washington-DC-20006/84074482_zpid/](https://www.zillow.com/homedetails/1600-Pennsylvania-Ave-NW-Washington-DC-20006/84074482_zpid/) +For example, the White House zpid is 84074482 and can be found in its Zillow URL: [https://www.zillow.com/homedetails/1600-Pennsylvania-Ave-NW-Washington-DC-20006/84074482_zpid/](https://www.zillow.com/homedetails/1600-Pennsylvania-Ave-NW-Washington-DC-20006/84074482_zpid/) To enable this sensor, add the following lines to your `configuration.yaml`. diff --git a/source/_components/sensor.zoneminder.markdown b/source/_components/sensor.zoneminder.markdown index e60e27420582..fba8fe49a86c 100644 --- a/source/_components/sensor.zoneminder.markdown +++ b/source/_components/sensor.zoneminder.markdown @@ -14,7 +14,7 @@ ha_iot_class: "Local Polling" --- -The `zoneminder` sensor platform lets you monitor the current state of your [ZoneMinder](https://www.zoneminder.com) install including the number of events and the current state of the cameras. +The `zoneminder` sensor platform lets you monitor the current state of your [ZoneMinder](https://www.zoneminder.com) install including the number of events, the current state of the cameras and ZoneMinder's current run state.
You must have the [ZoneMinder component](/components/zoneminder/) configured to use this sensor.
diff --git a/source/_components/smappee.markdown b/source/_components/smappee.markdown
index c91c9d0f59c5..846fd2e33ef8 100644
--- a/source/_components/smappee.markdown
+++ b/source/_components/smappee.markdown
@@ -49,11 +49,29 @@ smappee:
password: YOUR_MYSMAPPEE_PASSWORD
```
-Configuration variables:
-
-- **host** (*Optional*): Your Local Smappee unit IP.
-- **host_password** (*Optional*): Your Local Smappee password.
-- **client_id** (*Optional*): Your Smappee API client_id.
-- **client_secret** (*Optional*): Your Smappee API client_secret.
-- **username** (*Optional*): Your My Smappee username.
-- **password** (*Optional*): Your My Smappee password.
+{% configuration %}
+host:
+ description: Your Local Smappee unit IP.
+ required: false
+ type: string
+host_password:
+ description: Your Local Smappee password.
+ required: false
+ type: string
+client_id:
+ description: Your Smappee API client_id.
+ required: false
+ type: string
+client_secret:
+ description: Your Smappee API client_secret.
+ required: false
+ type: string
+username:
+ description: Your My Smappee username.
+ required: false
+ type: string
+password:
+ description: Your My Smappee password.
+ required: false
+ type: string
+{% endconfiguration %}
diff --git a/source/_components/snips.markdown b/source/_components/snips.markdown
index b4e752ebc282..9a03d1c9d368 100644
--- a/source/_components/snips.markdown
+++ b/source/_components/snips.markdown
@@ -141,7 +141,7 @@ Alternatively, MQTT can be configured to bridge messages between servers if usin
In Home Assistant, we trigger actions based on intents produced by Snips using the [`intent_script`](/components/intent_script) component. For instance, the following block handles a `ActivateLightColor` intent to change light colors:
-Note: If your Snips action is prefixed with a username (e.g. `john:playmusic` or `john__playmusic`), the Snips component in Home Assistant [will try and strip off the username](https://github.com/home-assistant/home-assistant/blob/c664c20165ebeb248b98716cf61e865f274a2dac/homeassistant/components/snips.py#L126-L129). Bear this in mind if you get the error `Received unknown intent` even when what you see on the MQTT bus looks correct. Internally the Snips component is trying to match the non-username version of the intent (i.e., just `playmusic`).
+Note: If your Snips action is prefixed with a username (e.g., `john:playmusic` or `john__playmusic`), the Snips component in Home Assistant [will try and strip off the username](https://github.com/home-assistant/home-assistant/blob/c664c20165ebeb248b98716cf61e865f274a2dac/homeassistant/components/snips.py#L126-L129). Bear this in mind if you get the error `Received unknown intent` even when what you see on the MQTT bus looks correct. Internally the Snips component is trying to match the non-username version of the intent (i.e., just `playmusic`).
{% raw %}
```yaml
diff --git a/source/_components/spc.markdown b/source/_components/spc.markdown
index 0e8819fb854e..1e5d707c860b 100644
--- a/source/_components/spc.markdown
+++ b/source/_components/spc.markdown
@@ -25,10 +25,15 @@ spc:
ws_url: WS_URL
```
-Configuration variables:
-
-- **api_url** (*Required*): URL of the SPC Web Gateway command REST API, e.g., `http://
+Full configuration details can be found on the main [Elk-M1 component](/components/elkm1/) page.
+
diff --git a/source/_components/tado.markdown b/source/_components/tado.markdown
index 386db0de0d1b..cfb7294289c2 100644
--- a/source/_components/tado.markdown
+++ b/source/_components/tado.markdown
@@ -24,10 +24,16 @@ tado:
password: YOUR_PASSWORD
```
-Configuration variables:
-
-- **username** (*Required*): Username for my.tado.com.
-- **password** (*Required*): Password for my.tado.com.
+{% configuration %}
+username:
+ description: Username for my.tado.com.
+ required: true
+ type: string
+password:
+ description: Password for my.tado.com.
+ required: true
+ type: string
+{% endconfiguration %}
The tado thermostats are internet connected thermostats. There exists an unofficial API at [my.tado.com](https://my.tado.com/webapp/#/account/sign-in), which is used by their website and now by this component.
diff --git a/source/_components/tellduslive.markdown b/source/_components/tellduslive.markdown
index 584761f2db89..1b441341db40 100644
--- a/source/_components/tellduslive.markdown
+++ b/source/_components/tellduslive.markdown
@@ -28,9 +28,16 @@ To manually integrate your Telldus Live with Home Assistant, e.g., if your devic
tellduslive:
```
-Configuration variables:
-
-- **host** (*Optional*): Host address to Tellstick Net or Tellstick ZNet for Local API, only useful when automatic discovery is not enabled.
-- **update_interval** (*Optional*): Interval (in seconds) for polling the Telldus Live server (or the local server). Defaults to 60 seconds.
+{% configuration %}
+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:
+ description: Interval (in seconds) for polling the Telldus Live server (or the local server).
+ required: false
+ default: 60
+ type: integer
+{% endconfiguration %}
The component will offer configuration through the Home Assistant user interface where it will let you associate it with your Telldus Live account.
diff --git a/source/_components/tesla.markdown b/source/_components/tesla.markdown
index f912af94f821..c004585e3692 100644
--- a/source/_components/tesla.markdown
+++ b/source/_components/tesla.markdown
@@ -33,8 +33,18 @@ tesla:
password: YOUR_PASSWORD
```
-Configuration variables:
-
-- **username** (*Required*): The email address associated with your Tesla account.
-- **password** (*Required*): The password for your given Tesla account.
-- **scan_interval** (*Optional*): API polling interval. Minimal value can't be less then 300. (Defaults 300)
+{% configuration %}
+username:
+ description: The email address associated with your Tesla account.
+ required: true
+ type: string
+password:
+ description: The password associated with your Tesla account.
+ required: true
+ type: string
+scan_interval:
+ description: API polling interval. Minimal value can't be less then 300.
+ required: false
+ default: 300
+ type: integer
+{% endconfiguration %}
diff --git a/source/_components/thingspeak.markdown b/source/_components/thingspeak.markdown
index 2336a597473e..b18969ca64e1 100644
--- a/source/_components/thingspeak.markdown
+++ b/source/_components/thingspeak.markdown
@@ -27,9 +27,17 @@ thingspeak:
whitelist: sensor.yr_temperature
```
-Configuration variables:
-
-- **api_key** (*Required*): Your ThingSpeak Channel Write API key.
-- **id** (*Required*): The ID of your desired ThingSpeak channel.
-- **whitelist** (*Required*): The name of the entity whose states should be sent to the channel.
-
+{% configuration %}
+api_key:
+ description: Your ThingSpeak Channel Write API key.
+ required: true
+ type: string
+id:
+ description: The ID of your desired ThingSpeak channel.
+ required: true
+ type: integer
+whitelist:
+ description: The name of the entity whose states should be sent to the channel.
+ required: true
+ type: string
+{% endconfiguration %}
diff --git a/source/_components/toon.markdown b/source/_components/toon.markdown
index e516db9ce87c..d5201873af06 100644
--- a/source/_components/toon.markdown
+++ b/source/_components/toon.markdown
@@ -26,10 +26,26 @@ toon:
password: YOUR_PASSWORD
```
-Configuration variables:
-
-- **username** (*Required*): Username for Mijn Eneco.
-- **password** (*Required*): Password for Mijn Eneco.
+{% configuration %}
+username:
+ description: Username for Mijn Eneco.
+ required: true
+ type: string
+password:
+ description: Password for Mijn Eneco.
+ required: true
+ type: string
+gas:
+ description: With this option you can choose whether you want to measure gas consumption.
+ required: false
+ default: true
+ type: boolean
+solar:
+ description: With this option you can choose whether you want to measure electricity production.
+ required: false
+ default: false
+ type: boolean
+{% endconfiguration %}
Toon is a smart thermostat delivered by the Eneco power company in The Netherlands. It can measure energy consumption (power and gas), but also the amount of energy generated in case solar panels are connected to it. Toon also acts as a z-wave hub for supported devices like the wall plug and the smoke detector. This component uses the [toonlib library](https://github.com/costastf/toonlib) by Costas Tyfoxylos that connects to the unofficial API on [https://toonopafstand.eneco.nl](https://toonopafstand.eneco.nl).
diff --git a/source/_components/tradfri.markdown b/source/_components/tradfri.markdown
index 8c16a9a17e28..ce35f0402035 100644
--- a/source/_components/tradfri.markdown
+++ b/source/_components/tradfri.markdown
@@ -38,10 +38,10 @@ host:
required: true
type: string
allow_tradfri_groups:
- description: "Set this to `false` to stop Home Assistant from importing the groups defined on the Trådfri bridge."
+ description: "Set this to `true` to allow Home Assistant to import the groups defined on the Trådfri bridge."
required: false
type: boolean
- default: true
+ default: false
{% endconfiguration %}
diff --git a/source/_components/vacuum.neato.markdown b/source/_components/vacuum.neato.markdown
index bbdd37730b1a..49381f5952ba 100644
--- a/source/_components/vacuum.neato.markdown
+++ b/source/_components/vacuum.neato.markdown
@@ -18,7 +18,7 @@ The `neato` vacuum platform allows you to control your [Neato Botvac Connected](
The status will contain attributes on the robots last clean session.
-If you notice the robot stops responding to commands check the status attribute to see if the robot is offline. If you see "Robot Offline" check the Neato app and make sure your robot is connected and working. If it is not then follow the steps in the app to reset your robot and give it the same name as before then restart Home Assistant.
+If you notice the robot stops responding to commands check the state to see if the robot is "unavailable". If you see "unavailable" first try to restart the vacuum and wait about 5 minutes to see if it is no longer "unavailable". If you are still having issues check the Neato app and make sure your robot is connected and working. If it is not then follow the steps in the app to reset your robot and give it the same name as before then restart Home Assistant.
The Roomba's MQTT server only allows a single connection. Enabling continuous mode will force the App to connect via the cloud to your Roomba. [More info here](https://github.com/NickWaterton/Roomba980-Python#firmware-2xx-notes)
diff --git a/source/_components/velux.markdown b/source/_components/velux.markdown
index f73ddfab26bb..171b0f5c422e 100644
--- a/source/_components/velux.markdown
+++ b/source/_components/velux.markdown
@@ -13,7 +13,7 @@ ha_release: 0.49
ha_iot_class: "Local Polling"
---
-[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.
+[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.
A `velux` section must be present in the `configuration.yaml` file and contain the following options as required:
@@ -24,7 +24,13 @@ velux:
password: "velux123"
```
-Configuration variables:
-
-- **host** (*Required*): The IP address or hostname of the KLF 200 to use.
-- **password** (*Required*): The password of the KLF 200 interface.
+{% configuration %}
+host:
+ description: The IP address or hostname of the KLF 200 to use.
+ required: true
+ type: string
+password:
+ description: The password of the KLF 200 interface.
+ required: true
+ type: string
+{% endconfiguration %}
diff --git a/source/_components/verisure.markdown b/source/_components/verisure.markdown
index 799c43e6c321..49dd80958e14 100644
--- a/source/_components/verisure.markdown
+++ b/source/_components/verisure.markdown
@@ -33,17 +33,57 @@ verisure:
password: PASSWORD
```
-Configuration variables:
-
-- **username** (*Required*): The username to Verisure mypages.
-- **password** (*Required*): The password to Verisure mypages.
-- **alarm** (*Optional*): Set to 1 to show alarm, 0 to disable. Default 1.
-- **hygrometers** (*Optional*): Set to 1 to show hygrometers, 0 to disable. Default 1.
-- **smartplugs** (*Optional*): Set to 1 to show smartplugs, 0 to disable. Default 1.
-- **locks** (*Optional*): Set to 1 to show locks, 0 to disable. Default 1.
-- **thermometers** (*Optional*): Set to 1 to show thermometers, 0 to disable. Default 1.
-- **mouse** (*Optional*): Set to 1 to show mouse detectors, 0 to disable. Default 1.
-- **door_window** (*Optional*): Set to 1 to show door and window sensors, 0 to disable. Default 1.
-- **code_digits** (*Optional*): Number of digits in PIN code. Default 4.
-- **giid** (*Optional*): The GIID of your installation (If you have more then one alarm system). To find the GIID for your systems run 'python verisure.py EMAIL PASSWORD installations'
-- **scan_interval** (*Optional*): Scan interval in ```hh:mm:ss``` format. Default ```00:01:00```
+{% configuration %}
+username:
+ description: The username to Verisure mypages.
+ required: true
+ type: string
+password:
+ description: The password to Verisure mypages.
+ required: true
+ type: string
+alarm:
+ description: Set to true to show alarm, false to disable.
+ required: false
+ default: true
+ type: boolean
+hygrometers:
+ description: Set to true to show hygrometers, false to disable.
+ required: false
+ default: true
+ type: boolean
+smartplugs:
+ description: Set to true to show smartplugs, false to disable.
+ required: false
+ default: true
+ type: boolean
+locks:
+ description: Set to true to show locks, false to disable.
+ required: false
+ default: true
+ type: boolean
+thermometers:
+ description: Set to true to show thermometers, false to disable.
+ required: false
+ default: true
+ type: boolean
+mouse:
+ description: Set to true to show mouse detectors, false to disable.
+ required: false
+ default: true
+ type: boolean
+door_window:
+ description: Set to true to show mouse detectors, false to disable.
+ required: false
+ default: true
+ type: boolean
+code_digits:
+ description: Number of digits in PIN code.
+ required: false
+ default: 4
+ type: integer
+giid:
+ description: The GIID of your installation (If you have more then one alarm system). To find the GIID for your systems run 'python verisure.py EMAIL PASSWORD installations'.
+ required: false
+ type: string
+{% endconfiguration %}
diff --git a/source/_components/volvooncall.markdown b/source/_components/volvooncall.markdown
index 8160d19882fc..d4028a46e4b1 100644
--- a/source/_components/volvooncall.markdown
+++ b/source/_components/volvooncall.markdown
@@ -30,7 +30,7 @@ volvooncall:
Users registered with Volvo in North America or China will need to specify a region:
```yaml
-# North America
+# North America
volvooncall:
username: YOUR_USERNAME
password: YOUR_PASSWORD
@@ -62,13 +62,34 @@ volvooncall:
- heater
```
-Configuration variables:
-
-- **username** (*Required*): The username associated with your Volvo On Call account.
-- **password** (*Required*): The password for your given Volvo On Call account.
-- **region** (*Optional*): The region where the Volvo is registered. Needs to be set for users in North America or China.
-- **service_url** (*Optional*): The service URL to use for Volvo On Call. Normally not necessary to specify.
-- **name** (*Optional*): Make it possible to provide a name for the vehicles.
-- **resources** (*Optional*): A list of resources to display (defaults to all available).
-- **scandinavian_miles** (*Optional*): If set to yes, Scandinavian miles ("mil") are used for distances and fuel range (defaults to no).
-
+{% configuration %}
+username:
+ description: The username associated with your Volvo On Call account.
+ required: true
+ type: string
+password:
+ description: The password for your given Volvo On Call account.
+ required: true
+ type: string
+region:
+ description: The region where the Volvo is registered. Needs to be set for users in North America or China.
+ required: false
+ type: string
+service_url:
+ description: The service URL to use for Volvo On Call. Normally not necessary to specify.
+ required: false
+ type: string
+name:
+ description: Make it possible to provide a name for the vehicles.
+ required: false
+ type: string
+resources:
+ description: A list of resources to display (defaults to all available).
+ required: false
+ type: list
+scandinavian_miles:
+ description: If set to true, Scandinavian miles ("mil") are used for distances and fuel range.
+ required: false
+ defaults: false
+ type: boolean
+{% endconfiguration %}
diff --git a/source/_components/weather.markdown b/source/_components/weather.markdown
index 25fde662082c..e558c1a29bc4 100644
--- a/source/_components/weather.markdown
+++ b/source/_components/weather.markdown
@@ -17,6 +17,7 @@ Home Assistant currently supports free web services and such which require a reg
The `weather` platform only knows the below listed conditions. The reason for this is that for these conditions is an icon from [Material Design Icons](https://materialdesignicons.com/) available and mapped in the [frontend](https://github.com/home-assistant/home-assistant-polymer/blob/master/src/cards/ha-weather-card.js#L170).
+- 'clear-night'
- 'cloudy'
- 'fog'
- 'hail'
diff --git a/source/_components/weather.openweathermap.markdown b/source/_components/weather.openweathermap.markdown
index bf704c2984b0..f0d9d1f93bbc 100644
--- a/source/_components/weather.openweathermap.markdown
+++ b/source/_components/weather.openweathermap.markdown
@@ -28,14 +28,33 @@ weather:
api_key: YOUR_API_KEY
```
-Configuration variables:
-
-- **api_key** (*Required*): Your API key for http://openweathermap.org/.
-- **name** (*Optional*): Name to use in the frontend.
-- **mode** (*Optional*): Can specify `hourly` or `daily`. Select `hourly` for a three-hour forecast or `daily` for daily forecast. Defaults to `hourly`.
-- **latitude** (*Optional*): Latitude of the location to display the weather. Defaults to the latitude in your `configuration.yaml` file.
-- **longitude** (*Optional*): Longitude of the location to display the weather. Defaults to the longitude in your `configuration.yaml` file.
+{% configuration %}
+api_key:
+ required: true
+ description: Your API key for [OpenWeatherMap](http://openweathermap.org/).
+ type: string
+name:
+ required: false
+ description: Name to use in the frontend.
+ default: OpenWeatherMap
+ type: string
+mode:
+ required: false
+ description: "Can specify `hourly` or `daily`. Select `hourly` for a three-hour forecast or `daily` for daily forecast."
+ default: "`hourly`"
+ type: string
+latitude:
+ required: false
+ description: Latitude of the location to display the weather.
+ default: "The latitude in your `configuration.yaml` file."
+ type: float
+longitude:
+ required: false
+ description: Longitude of the location to display the weather.
+ default: "The longitude in your `configuration.yaml` file."
+ type: float
+{% endconfiguration %}
-This platform is an alternative to the [`openweathermap`](/components/sensor.openweathermap/) sensor.
+This platform is an alternative to the [`openweathermap`](/components/sensor.openweathermap/) sensor.
-This platform is an alternative to the [`yweather`](/components/sensor.yweather/) sensor.
+This platform is an alternative to the [`yweather`](/components/sensor.yweather/) sensor.
This platform is an alternative to the [`zamg`](/components/sensor.zamg/) sensor. The weather platform is easier to configure but less customizable.
diff --git a/source/_components/webhook.markdown b/source/_components/webhook.markdown
new file mode 100644
index 000000000000..5540a153410c
--- /dev/null
+++ b/source/_components/webhook.markdown
@@ -0,0 +1,5 @@
+---
+date: 2018-10-05 00:01:00
+---
+
+
diff --git a/source/_components/wink.markdown b/source/_components/wink.markdown
index 0d97c91d465a..c849971fc26f 100644
--- a/source/_components/wink.markdown
+++ b/source/_components/wink.markdown
@@ -141,7 +141,7 @@ The Wink hub, by default, can only be accessed via the cloud. This means it requ
- GoControl siren and strobe
- Dome siren/chime/strobe
-- Quirky Nimbus (Legacy device) These can no longer be officialy added to your Wink account
+- Quirky Nimbus (Legacy device) These can no longer be officially added to your Wink account
### {% linkable_title Service `set_siren_auto_shutoff` %}
@@ -290,7 +290,7 @@ script:
### {% linkable_title Service `set_nimbus_dial_state` %}
-You can use the service wink/set_nimbus_dial_state to update an individual dial's value/position and it's labels
+You can use the service wink/set_nimbus_dial_state to update an individual dial's value/position and its labels
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
diff --git a/source/_components/zone.markdown b/source/_components/zone.markdown
index fd6280eccfcc..1e5125b71c17 100644
--- a/source/_components/zone.markdown
+++ b/source/_components/zone.markdown
@@ -37,14 +37,34 @@ zone:
icon: mdi:account-multiple
```
-Configuration variables:
-
-- **name** (*Optional*): Friendly name of the zone.
-- **latitude** (*Required*): Latitude of the center point of the zone.
-- **longitude** (*Required*): Longitude of the center point of the zone.
-- **radius** (*Optional*): Optional radius in meters. Defaults to 100 meters.
-- **icon** (*Optional*): Optional icon to show instead of name.
-- **passive** (*Optional*): Optional boolean to only use the zone for automation and hide it from the UI and not use the zone for device tracker name. Defaults to false.
+{% configuration %}
+name:
+ description: The friendly name of the zone.
+ required: false
+ type: string
+latitude:
+ description: The latitude of the center point of the zone.
+ required: true
+ type: float
+longitude:
+ description: The longitude of the center point of the zone.
+ required: true
+ type: float
+radius:
+ description: The radius of the zone in meters.
+ required: false
+ default: 100
+ type: integer
+icon:
+ description: The icon to show instead of name.
+ required: false
+ type: string
+passive:
+ description: To only use the zone for automation and hide it from the frontend and not use the zone for device tracker name.
+ required: false
+ default: false
+ type: boolean
+{% endconfiguration %}
To find the latitude/longitude of a certain place you can use [Google Maps](https://www.google.com/maps/) or [Bing Maps](https://www.bing.com/maps). Just right click and copy the coordinates from there (Bing) or click on the "What is here?" (Google)
diff --git a/source/_components/zoneminder.markdown b/source/_components/zoneminder.markdown
index ac8297eaee86..b2bf8cc89cd0 100644
--- a/source/_components/zoneminder.markdown
+++ b/source/_components/zoneminder.markdown
@@ -26,8 +26,8 @@ Configuration variables:
- **host** (*Required*): Your ZoneMinder server's host (and optional port), not including the scheme.
- **path** (*Optional*): Path to your ZoneMinder install. Defaults to `/zm/`.
- **path_zms** (*Optional*): Path to the CGI script for streaming. This should match `PATH_ZMS` in ZM's "Paths" settings. Defaults to `/zm/cgi-bin/nph-zms`.
-- **ssl** (*Optional*): Set to `True` if your ZoneMinder installation is using SSL. Default to `False`.
-- **verify_ssl** (*Optional*): Verify the certification of the endpoint. Default to `True`.
+- **ssl** (*Optional*): Set to `true` if your ZoneMinder installation is using SSL. Default to `false`.
+- **verify_ssl** (*Optional*): Verify the certification of the endpoint. Default to `true`.
- **username** (*Optional*): Your ZoneMinder username.
- **password** (*Optional*): Your ZoneMinder password. Required if `OPT_USE_AUTH` is enabled in ZM.
@@ -39,8 +39,24 @@ zoneminder:
host: ZM_HOST
path: ZM_PATH
path_zms: ZM_PATH_ZMS
- ssl: True
- verify_ssl: True
+ ssl: true
+ verify_ssl: true
username: YOUR_USERNAME
password: YOUR_PASSWORD
```
+
+### {% linkable_title Service %}
+
+Once loaded, the `zoneminder` platform will expose a service (`set_run_state`) that can be used to change the current run state of ZoneMinder.
+
+| Service data attribute | Optional | Description |
+|:-----------------------|:---------|:----------------------------------|
+| `name` | no | Name of the new run state to set. |
+
+For example, if your ZoneMinder instance was configured with a run state called "Home", you could write an [automation](/getting-started/automation/) that changes ZoneMinder to the "Home" run state by including the following [action](/getting-started/automation-action/):
+ ```yaml
+action:
+ service: zoneminder.set_run_state
+ data:
+ name: Home
+```
diff --git a/source/_cookbook/configuration_yaml_by_bah2830.markdown b/source/_cookbook/configuration_yaml_by_bah2830.markdown
deleted file mode 100644
index 1831f4a17f98..000000000000
--- a/source/_cookbook/configuration_yaml_by_bah2830.markdown
+++ /dev/null
@@ -1,12 +0,0 @@
----
-layout: page
-title: "Configuration.yaml by bah2830"
-description: ""
-date: 2016-07-14 20:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: Example configuration.yaml
-ha_external_link: https://github.com/bah2830/Home-Assistant-Configs
----
diff --git a/source/_cookbook/configuration_yaml_by_danichispa.markdown b/source/_cookbook/configuration_yaml_by_danichispa.markdown
deleted file mode 100644
index df100486363f..000000000000
--- a/source/_cookbook/configuration_yaml_by_danichispa.markdown
+++ /dev/null
@@ -1,13 +0,0 @@
----
-layout: page
-title: "Configuration.yaml by Danichispa"
-description: ""
-date: 2016-02-20 02:19 -0800
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: Example configuration.yaml
-ha_external_link: https://github.com/danichispa/hass
----
-
diff --git a/source/_cookbook/configuration_yaml_by_greenturtwig.markdown b/source/_cookbook/configuration_yaml_by_greenturtwig.markdown
deleted file mode 100644
index a5bc7c5b1849..000000000000
--- a/source/_cookbook/configuration_yaml_by_greenturtwig.markdown
+++ /dev/null
@@ -1,13 +0,0 @@
----
-layout: page
-title: "Configuration.yaml by GreenTurtwig"
-description: ""
-date: 2016-02-13 13:51 +0700
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: Example configuration.yaml
-ha_external_link: https://github.com/GreenTurtwig/personal-home-automation/blob/master/configuration.yaml
----
-
diff --git a/source/_cookbook/configuration_yaml_by_happyleavesaoc.markdown b/source/_cookbook/configuration_yaml_by_happyleavesaoc.markdown
deleted file mode 100644
index 33fc4f050406..000000000000
--- a/source/_cookbook/configuration_yaml_by_happyleavesaoc.markdown
+++ /dev/null
@@ -1,13 +0,0 @@
----
-layout: page
-title: "Configuration.yaml by happyleavesaoc"
-description: ""
-date: 2016-02-07 11:45
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: Example configuration.yaml
-ha_external_link: https://github.com/happyleavesaoc/my-home-automation/tree/master/homeassistant
----
-
diff --git a/source/_cookbook/configuration_yaml_by_instagraeme.markdown b/source/_cookbook/configuration_yaml_by_instagraeme.markdown
deleted file mode 100644
index d6ddee0fa44e..000000000000
--- a/source/_cookbook/configuration_yaml_by_instagraeme.markdown
+++ /dev/null
@@ -1,12 +0,0 @@
----
-layout: page
-title: "Configuration.yaml by InstaGraeme"
-description: ""
-date: 2016-09-08 21:30
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: Example configuration.yaml
-ha_external_link: https://github.com/Instagraeme/Home-Assistant-Configuration
----
diff --git a/source/_cookbook/configuration_yaml_by_jjmontesl.markdown b/source/_cookbook/configuration_yaml_by_jjmontesl.markdown
deleted file mode 100644
index 742d618f912e..000000000000
--- a/source/_cookbook/configuration_yaml_by_jjmontesl.markdown
+++ /dev/null
@@ -1,12 +0,0 @@
----
-layout: page
-title: "Configuration.yaml by jjmontesl"
-description: ""
-date: 2017-02-22 23:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: Example configuration.yaml
-ha_external_link: https://github.com/jjmontesl/home-assistant-config
----
diff --git a/source/_cookbook/configuration_yaml_by_joshuagarrison27.markdown b/source/_cookbook/configuration_yaml_by_joshuagarrison27.markdown
new file mode 100644
index 000000000000..baad95ee1804
--- /dev/null
+++ b/source/_cookbook/configuration_yaml_by_joshuagarrison27.markdown
@@ -0,0 +1,12 @@
+---
+layout: page
+title: "Configuration.yaml by Joshua Garrison"
+description: ""
+date: 2018-10-10 17:05
+sidebar: true
+comments: false
+sharing: true
+footer: true
+ha_category: Example configuration.yaml
+ha_external_link: https://github.com/JoshuaGarrison27/Home-Assistant-Configuration
+---
diff --git a/source/_cookbook/configuration_yaml_by_lancehaynie.markdown b/source/_cookbook/configuration_yaml_by_lancehaynie.markdown
index 892714d14009..d4c6d0e05986 100644
--- a/source/_cookbook/configuration_yaml_by_lancehaynie.markdown
+++ b/source/_cookbook/configuration_yaml_by_lancehaynie.markdown
@@ -8,5 +8,5 @@ comments: false
sharing: true
footer: true
ha_category: Example configuration.yaml
-ha_external_link: https://github.com/Haynie-Research-and-Development/jarvis
+ha_external_link: https://git.haynienetworks.com/projects/HRDPUBLIC/repos/jarvis/browse
---
diff --git a/source/_cookbook/configuration_yaml_by_mertenats.markdown b/source/_cookbook/configuration_yaml_by_mertenats.markdown
deleted file mode 100644
index 47b1bbb38eba..000000000000
--- a/source/_cookbook/configuration_yaml_by_mertenats.markdown
+++ /dev/null
@@ -1,12 +0,0 @@
----
-layout: page
-title: "Configuration.yaml by mertenats"
-description: ""
-date: 2016-10-08 19:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: Example configuration.yaml
-ha_external_link: https://github.com/mertenats/open-home-automation/tree/master/openhome
----
diff --git a/source/_cookbook/configuration_yaml_by_oakbrad.markdown b/source/_cookbook/configuration_yaml_by_oakbrad.markdown
deleted file mode 100644
index c49913944189..000000000000
--- a/source/_cookbook/configuration_yaml_by_oakbrad.markdown
+++ /dev/null
@@ -1,13 +0,0 @@
----
-layout: page
-title: "Configuration.yaml by oakbrad"
-description: ""
-date: 2016-03-14 11:45
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: Example configuration.yaml
-ha_external_link: https://github.com/oakbrad/brad-homeassistant-config
----
-
diff --git a/source/_cookbook/configuration_yaml_by_scottocs11.markdown b/source/_cookbook/configuration_yaml_by_scottocs11.markdown
deleted file mode 100644
index a9b4637975e5..000000000000
--- a/source/_cookbook/configuration_yaml_by_scottocs11.markdown
+++ /dev/null
@@ -1,12 +0,0 @@
----
-layout: page
-title: "Configuration.yaml by Scottoc11"
-description: ""
-date: 2017-02-23 16:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: Example configuration.yaml
-ha_external_link: https://github.com/scottocs11/Home-Assistant-Config
----
\ No newline at end of file
diff --git a/source/_cookbook/configuration_yaml_by_teagan42.markdown b/source/_cookbook/configuration_yaml_by_teagan42.markdown
deleted file mode 100644
index 1440f63f1c39..000000000000
--- a/source/_cookbook/configuration_yaml_by_teagan42.markdown
+++ /dev/null
@@ -1,12 +0,0 @@
----
-layout: page
-title: "Configuration.yaml by Teagan42"
-description: ""
-date: 2016-08-24 23:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: Example configuration.yaml
-ha_external_link: https://github.com/Teagan42/HomeAssistantConfig
----
diff --git a/source/_cookbook/configuration_yaml_from_bassclarinetl2.markdown b/source/_cookbook/configuration_yaml_from_bassclarinetl2.markdown
deleted file mode 100644
index 0f418577c35e..000000000000
--- a/source/_cookbook/configuration_yaml_from_bassclarinetl2.markdown
+++ /dev/null
@@ -1,460 +0,0 @@
----
-layout: page
-title: "Configuration.yaml by bassclarinetl2"
-description: ""
-date: 2016-03-24 17:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: Example configuration.yaml
----
-
-```yaml
-homeassistant:
- # Name of the location where Home Assistant is running
- name: example.com
- # Location required to calculate the time the sun rises and sets
- latitude: 37
- longitude: -121
- # 'metric' for Metric, 'imperial' for Imperial
- unit_system: imperial
- # Pick yours from here: http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
- time_zone: America/Los_Angeles
- customize:
- switch.aeon_labs_smart_energy_switch_switch_2:
- friendly_name: Mac Switch-Meter
- switch.leviton_unknown_type1a02_id0334_switch_3:
- friendly_name: W Nightstand
- entity_picture: /local/zwvapl.jpg
- switch.hub_switch:
- friendly_name: Wink Hub Switch
- entity_picture: /local/wemoswitch.jpg
- switch.leviton_unknown_type1a02_id0334_switch_4:
- friendly_name: Christmas Tree
- entity_picture: /local/zwvapl.jpg
- switch.leviton_unknown_type1a02_id0334_switch_5:
- friendly_name: Roof Lights
- entity_picture: /local/zwvapl.jpg
-
- light.w_bedroom_ceiling_:
- friendly_name: Will's Bedroom Ceiling Lights (Wink)
- entity_picture: /local/casetta.jpg
- light.living_room_wall_:
- friendly_name: Living Room Couch Lights (Wink)
- entity_picture: /local/casetta.jpg
-
- media_player.my_shield_android_tv:
- friendly_name: Dalek (Cast)
- entity_picture: /local/shieldtv.jpg
- media_player.chromecast:
- friendly_name: Jeff chromecast
- entity_picture: /local/chromecast.jpg
- media_player.kodi:
- friendly_name: Tardis-Win7 (Kodi)
- entity_picture: /local/kodi.png
- media_player.kodi_2:
- friendly_name: Dalek (Kodi)
- media_player.roku_2_xd__12a18n045363:
- friendly_name: Parents Roku
- entity_picture: /local/roku2xd.jpg
-
- sensor.aeon_labs_smart_energy_switch_power_2:
- friendly_name: Mac Usage (W)
- sensor.aeon_labs_smart_energy_switch_previous_reading_2:
- friendly_name: Mac Usage Previous (W)
- hidden: true
- sensor.aeon_labs_smart_energy_switch_energy_2:
- friendly_name: Mac Usage (kWh)
- hidden: true
-
-#####################
-## GROUPS
-#####################
-group:
- w_bedroom:
- - switch.leviton_unknown_type1a02_id0334_switch_3
- - light.w_bedroom_ceiling_
- christmas:
- - switch.leviton_unknown_type1a02_id0334_switch_4
- - switch.leviton_unknown_type1a02_id0334_switch_5
- almanac:
- - sensor.date
- - sensor.time
- - sensor.time_utc
- - sun.sun
- tracker:
- - device_tracker.will_wnexus
-# OpenWeatherMap:
-# - sensor.weather_temperature
-# - sensor.weather_humidity
-# - sensor.weather_pressure
-# - sensor.weather_rain
-# - sensor.weather_wind_speed
-# - sensor.weather_cloud_coverage
-# - sensor.weather_forecast
- Meteobridge:
- - sensor.outdoor_temp_meteobridge
- - sensor.outdoor_humidity_meteobridge
- - sensor.outdoor_dewpoint_meteobridge
- - sensor.precip_rate_meteobridge
- - sensor.wind_direction_meteobridge
- - sensor.wind_gust_meteohub
- - sensor.wind_chill_meteobridge
- - sensor.wind_speed_meteobridge
- - sensor.indoor_dewpoint_meteobridge
- - sensor.indoor_humidity_meteobridge
- - sensor.indoor_temp_meteobridge
- - sensor.precip_change_meteobridge
- - sensor.precip_total_meteobridge
- - sensor.sea_level_pressure_meteobridge
- - sensor.barometric_pressure_meteobridge
-
-####################
-## ZONES
-####################
-zone:
- name: Home
- latitude: 37
- longitude: -121
- radius: 200
- icon: mdi:home
-
-zone 2:
- name: Barracuda_(SJ)
- latitude: 37
- longitude: -121
- radius: 100
-
-zone 3:
- name: SFC
- latitude: 37
- longitude: -122
- radius: 95
-
-####################
-## NOTIFICATIONS
-####################
-
-
-####################
-## AUTOMATION
-####################
-automation:
-#- alias: 'W_at_work'
-# trigger:
-# - platform: zone
-# entity_id: device_tracker.will_wnexus
-# zone: zone.barracuda_sj
-# event: enter
-# - platform: time
-# at: '07:15'
-# before: '09:00'
-# action:
-# service: ifttt.trigger
-# data: {"event":"hassnotification_dadsms", "value1": "Will's at Work"}
-- alias: "Update_Update"
- trigger:
- platform: state
- entity_id: updater.updater
- action:
- service: ifttt.trigger
- data: {"event":"hassnotification_willsms","value1":"HASS has an update"}
-- alias: 'Christmas Roof ON'
- trigger:
- platform: sun
- event: sunset
- offset: '-01:00:00'
- action:
- service: homeassistant.turn_on
- entity_id: switch.leviton_unknown_type1a02_id0334_switch_5
-- alias: 'Christmas Roof OFF'
- trigger:
- platform: time
- hours: 1
- minutes: 0
- seconds: 0
- action:
- service: homeassistant.turn_off
- entity_id: switch.leviton_unknown_type1a02_id0334_switch_5
-- alias: 'Christmas Tree ON'
- trigger:
- platform: time
- hours: 8
- minutes: 0
- seconds: 0
- action:
- service: homeassistant.turn_on
- entity_id: switch.leviton_unknown_type1a02_id0334_switch_4
-- alias: 'Christmas Tree (OFF)'
- trigger:
- platform: time
- hours: 23
- minutes: 0
- seconds: 0
- action:
- service: homeassistant.turn_off
- entity_id: switch.leviton_unknown_type1a02_id0334_switch_4
-#- alias: test notify
-# trigger:
-# platform: time
-# minutes: '/5' #every 5 min
-# action:
-# service: notify.pushEtta
-# data:
-# message: 5 Min Test
-
-
-#################################
-### COMPONENTS ###
-#################################
-#discovery:
-sun:
-#updater:
-history:
-#conversation:
-frontend:
-logbook:
-
-http:
- api_password: [password goes here]
- server_port: 8123
- ssl_certificate: /etc/letsencrypt/live/example.com/fullchain.pem
- ssl_key: /etc/letsencrypt/live/example.com/privkey.pem
-
-ifttt:
- key: [redacted]
-
-media_player 1:
- platform: plex
-#media_player 2:
-# platform: squeezebox
-# host: 192.168.2.80
-# port: 9000
-media_player 3:
- platform: cast
-media_player 4:
- platform: kodi
- url: http://192.168.2.129:8080/jsonrpc
- user: kodi
- password: kodi
-media_player 5:
- platform: plex
-media_player 6:
- platform: kodi
- url: http://192.168.2.165/jsonrpc
-media_player 7:
- platform: samsungtv
- host: 192.168.2.90
- name: Parents TV
-
-wink:
- access_token: [redacted]
- refresh_token: [redacted]
-
-zwave:
- usb_path: /dev/ttyUSB0
- config_path: /usr/local/share/python-openzwave/config
- polling_interval: 10000
-
-#zigbee:
-# device: /dev/ttyUSB1
-# baud: 115200
-
-mqtt:
- broker: 127.0.0.1
- port: 8883
- username: [redacted]
- password: [redacted]
-
-device_tracker 1:
- platform: owntracks
-
- track_new_devices: yes
- interval_seconds: 40
- consider_home: 120
-
-device_tracker 2:
- platform: nmap_tracker
- hosts: 192.168.2.0/24
- home_interval: 3
-
-#sensor:
-# platform: openweathermap
-# api_key: [redacted]
-# forecast: 1
-# monitored_conditions:
-# - temperature
-# - wind_speed
-# - humidity
-# - pressure
-# - clouds
-# - rain
-
-sensor 2:
- platform: time_date
- display_options:
- - 'time'
- - 'date'
- - 'time_utc'
-
-### BEGIN METEO SENSORS ###
-sensor 3:
- platform: tcp
- name: Outdoor Temp (Meteobridge)
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charset=UTF-8\n\n"
- value_template: "{% raw %}{{value.split (' ')[2]}}{% endraw %}"
- unit: C
-
-sensor 4:
- platform: tcp
- name: Outdoor Humidity (Meteobridge)
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charset=UTF-8\n\n"
- value_template: "{% raw %}{{value.split (' ')[3]}}{% endraw %}"
- unit: Percent
-
-sensor 5:
- platform: tcp
- name: Outdoor Dewpoint (Meteobridge)
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charset=UTF-8\n\n"
- value_template: "{% raw %}{{value.split (' ')[4] }}{% endraw %}"
- unit: C
-
-sensor 6:
- platform: tcp
- name: Wind Direction (Meteobridge)
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charset=UTF-8\n\n"
- value_template: "{% raw %}{{value.split (' ')[7]}}{% endraw %}"
- unit: Degrees
-
-sensor 7:
- platform: tcp
- name: Wind Gust (Meteohub)
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charset=UTF-8\n\n"
- value_template: "{% raw %}{{value.split (' ')[8]}}{% endraw %}"
- unit: m/s
-
-sensor 8:
- platform: tcp
- name: Wind Speed (Meteobridge)
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charset=UTF-8\n\n"
- value_template: "{% raw %}{{value.split (' ')[9]}}{% endraw %}"
- unit: m/s
-
-sensor 9:
- platform: tcp
- name: Wind Chill (Meteobridge)
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charset=UTF-8\n\n"
- value_template: "{% raw %}{{value.split (' ')[10]}}{% endraw %}"
- unit: C
-
-sensor 10:
- platform: tcp
- name: Precip Rate (Meteobridge)
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charset=UTF-8\n\n"
- value_template: "{% raw %}{{value.split (' ')[13]}}{% endraw %}"
- unit: mm/hr
-
-sensor 11:
- platform: tcp
- name: Precip Total (Meteobridge)
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charaset=UTF-8\n\n"
- value_template: "{% raw %}{{value.split (' ')[14]}}{% endraw %}"
- unit: mm
-
-sensor 12:
- platform: tcp
- name: Precip Change (Meteobridge)
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charaset=UTF-8\n\n"
- value_template: "{% raw %}{{value.split (' ')[15]}}{% endraw %}"
- unit: mm
-
-sensor 13:
- platform: tcp
- name: Indoor Temp (Meteobridge)
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charaset=UTF-8\n\n"
- value_template: "{% raw %}{{value.split (' ')[18]}}{% endraw %}"
- unit: C
-
-sensor 14:
- platform: tcp
- name: Indoor Humidity (Meteobridge)
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charaset=UTF-8\n\n"
- value_template: "{% raw %}{{value.split (' ')[19]}}{% endraw %}"
- unit: percent
-
-sensor 15:
- platform: tcp
- name: Indoor Dewpoint (Meteobridge)
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charaset=UTF-8\n\n"
- value_template: "{% raw %}{{value.split (' ')[20]}}{% endraw %}"
- unit: C
-
-sensor 16:
- platform: tcp
- name: Barometric Pressure (Meteobridge)
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charaset=UTF-8\n\n"
- value_template: "{% raw %}{{value.split (' ')[21]}}{% endraw %}"
- unit: mb
-
-sensor 17:
- platform: tcp
- name: Sea Level Pressure (Meteobridge)
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charaset=UTF-8\n\n"
- value_template: "{% raw %}{{value.split (' ')[22]}}{% endraw %}"
- unit: mb
-
-sensor 18:
- platform: steam_online
- api_key: [Redact]
- accounts:
- - 76561198012067051
-
-switch:
- platform: wemo
-```
diff --git a/source/_cookbook/fail2ban.markdown b/source/_cookbook/fail2ban.markdown
index d5c5275a1c75..a9f7e045612f 100644
--- a/source/_cookbook/fail2ban.markdown
+++ b/source/_cookbook/fail2ban.markdown
@@ -163,7 +163,7 @@ eg:
$ sudo fail2ban-client set ha unbanip xxx.xxx.xxx.xxx
```
-Fail2ban should now be configured and running, if an IP address is banned you will recieve an email with WHOIS details about the IP address that attempted to connect, if not you will need configure Postfix or another MTA (Mail Transport Agent).
+Fail2ban should now be configured and running, if an IP address is banned you will receive an email with WHOIS details about the IP address that attempted to connect, if not you will need configure Postfix or another MTA (Mail Transport Agent).
If you want to read more about `fail2ban`, some links are below:
diff --git a/source/_cookbook/google_maps_card.markdown b/source/_cookbook/google_maps_card.markdown
index 9055e4c67267..56b3e14f6396 100644
--- a/source/_cookbook/google_maps_card.markdown
+++ b/source/_cookbook/google_maps_card.markdown
@@ -10,7 +10,7 @@ footer: true
ha_category: User Interface
---
-Using the [generic camera platform] you can present any image on the internet as a camera. Starting release 0.27 these urls can also be based on a template. This example uses this functionality to point a generic camera at the Google Maps static image API and pass in the location of a device.
+Using the [generic camera platform] you can present any image on the internet as a camera. Starting release 0.27 these URLs can also be based on a template. This example uses this functionality to point a generic camera at the Google Maps static image API and pass in the location of a device.
As of June 2018, Google has changed the API limits for static maps. You now need to have a Google Maps API key. Instructions for registering a key can be found [here](https://github.com/googlemaps/google-maps-services-python#api-keys). Replace `YOUR_API_KEY` with the key you registered.
diff --git a/source/_cookbook/owntracks_two_mqtt_broker.markdown b/source/_cookbook/owntracks_two_mqtt_broker.markdown
index c4be879045f4..bfdee80c666b 100644
--- a/source/_cookbook/owntracks_two_mqtt_broker.markdown
+++ b/source/_cookbook/owntracks_two_mqtt_broker.markdown
@@ -25,7 +25,7 @@ Two Docker instances for MQTT
All Docker configuration files are on my NAS so the Docker containers can be destroyed without affecting my actual configuration files.
-#### Docker setup for the mosquitto internal instance. No authentication for use with the MQTT bridge.
+#### Docker setup for the Mosquitto internal instance. No authentication for use with the MQTT bridge.
```bash
$ docker run -ti -p 1883:1883 \
@@ -56,7 +56,7 @@ persistence_file mosquitto.db
try_private true
address 10.0.0.20:1884
start_type automatic
-sername test
+username test
password test
notifications true
topic owntracks/# in
diff --git a/source/_cookbook/perform_actions_based_on_input_select.markdown b/source/_cookbook/perform_actions_based_on_input_select.markdown
index 235ef58351fa..87d8e8ae02ae 100644
--- a/source/_cookbook/perform_actions_based_on_input_select.markdown
+++ b/source/_cookbook/perform_actions_based_on_input_select.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Perform actions based on input select"
-description: "Example playing media to chromecast based on input select element"
+description: "Example playing media to Chromecast based on input select element"
date: 2016-03-07 12:05
sidebar: true
comments: false
diff --git a/source/_docs/asterisk_mbox.markdown b/source/_docs/asterisk_mbox.markdown
index 45bc4071a801..488b254584a9 100644
--- a/source/_docs/asterisk_mbox.markdown
+++ b/source/_docs/asterisk_mbox.markdown
@@ -14,7 +14,7 @@ Asterisk Voicemail integration allows Home Assistant to view, listen to and dele
There are two components to the integration:
- A server that runs on the Asterisk PBX host and communicates over an open port.
-- A client which can request inormation from the server.
+- A client which can request information from the server.
Both parts are necessary for Asterisk voicemail integration.
@@ -64,7 +64,7 @@ Before beginning make sure that you have the following:
- **port** (*Optional*): The port to listen on for client requests. Defaults to 12345.
- **password** (*Required*): A password shared between client and server. Use only alpha-numeric characters and spaces
- **mbox\_path** (*Required*): The path to the storage location of mailbox files. This is typically `/var/spool/asterisk/voicemail/default/
By configuring your own instead of using the default configuration, you take full responsibility for the authentication of the system.
@@ -34,13 +34,13 @@ homeassistant:
- type: totp
```
-## {% linkable_title Available mutli-factor authentication modules %}
+## {% linkable_title Available multi-factor authentication modules %}
Below is a list of the currently available auth providers.
-### {% linkable_title Time-based One-Time Password mutli-factor authentication module %}
+### {% linkable_title Time-based One-Time Password multi-factor authentication module %}
-[Time-based One-Time Password](https://en.wikipedia.org/wiki/Time-based_One-time_Password_algorithm) is widely adopted in modern authencation system, it combines a secret key with the current timestamp using a cryptographic hash function to generate a one-time password. Whoever possessed the secret key will get same one-time password in certain time period. By verifying that password, Home Assistant knows the user have the right secrt key.
+[Time-based One-Time Password](https://en.wikipedia.org/wiki/Time-based_One-time_Password_algorithm) is widely adopted in modern authentication system, it combines a secret key with the current timestamp using a cryptographic hash function to generate a one-time password. Whoever possessed the secret key will get same one-time password in certain time period. By verifying that password, Home Assistant knows the user have the right secret key.
When trying to set up TOTP module, a QR code will show up. The user can scan it by an authenticator app, or set it up manually using the code showed in the UI. After setup, the user needs to input a six digit number generated in the authenticator app to verify the setup is good. If the verification keeps failing, you need to check whether the clock on Home Assistant is accurate.
@@ -60,16 +60,16 @@ homeassistant:
- type: totp
```
-### {% linkable_title Notify mutli-factor authentication module %}
+### {% linkable_title Notify multi-factor authentication module %}
Notify MFA module using [notify component](https://www.home-assistant.io/components/notify/) to delivery a [HMAC-based One-Time Password](https://en.wikipedia.org/wiki/HMAC-based_One-time_Password_algorithm) to user configured target.
-User need first set up the MFA module by select one of the aviliable notify service. A 6 digit one-time password will be sent by this notify service, user need to input it to verify the setup.
+User need first set up the MFA module by select one of the available notify service. A 6 digit one-time password will be sent by this notify service, user need to input it to verify the setup.
-During the login process, an 6 digit one-time password will be sent again, user need to input it to verify his/her identity. If the validation failed, a new one-time password will be sent again.
+During the login process, a 6 digit one-time password will be sent again, user need to input it to verify his/her identity. If the validation failed, a new one-time password will be sent again.
-Notify MFA module would not verify the one-time password deliveried success, so that if user cannot received the message due any reason, he/she may not be login again. Edit or remove `[your_config_dir]/.storage/auth_module.notify` can disable nofiy MFA module to resolve the issue.
+Notify MFA module would not verify the one-time password delivery success, so that if user cannot received the message due any reason, he/she may not be login again. Edit or remove `[your_config_dir]/.storage/auth_module.notify` can disable notify MFA module to resolve the issue.
Starting 0.42, it is no longer possible to listen for event `homeassistant_start`. Use the 'homeassistant' [platform](/docs/automation/trigger) instead.
diff --git a/source/_docs/configuration/group_visibility.markdown b/source/_docs/configuration/group_visibility.markdown
index c5458e4bf2b0..cab429ce404f 100644
--- a/source/_docs/configuration/group_visibility.markdown
+++ b/source/_docs/configuration/group_visibility.markdown
@@ -95,7 +95,7 @@ if __name__ == '__main__':
print(get_current_occasion(OCCASIONS))
```
-This script will output "work_morning" from 06:00-07:10 during weekdays (monday-friday), "weekday" during all other time from monday-friday and "weekend" on saturdays and sundays. Adjust according to your needs. To create the sensor, just add it like this:
+This script will output "work_morning" from 06:00-07:10 during weekdays (Monday-Friday), "weekday" during all other time from Monday-Friday and "weekend" on Saturdays and Sundays. Adjust according to your needs. To create the sensor, just add it like this:
```yaml
sensor:
diff --git a/source/_docs/configuration/packages.markdown b/source/_docs/configuration/packages.markdown
index 9bcd0e2822c8..5cb76f6b4f2b 100644
--- a/source/_docs/configuration/packages.markdown
+++ b/source/_docs/configuration/packages.markdown
@@ -89,3 +89,12 @@ homeassistant:
This uses the concept splitting the configuration and will include all files in a directory with the keys representing the filenames.
See the documentation about [splitting the configuration](/docs/configuration/splitting_configuration/) for more information about `!include_dir_named` and other include statements that might be helpful.
+
+### {% linkable_title Customizing entities with packages %}
+
+It is possible to [customize entities](docs/configuration/customizing-devices/) within packages. Just create your customization entries under:
+
+```yaml
+homeassistant:
+ customize:
+```
diff --git a/source/_docs/configuration/securing.markdown b/source/_docs/configuration/securing.markdown
index 664acbe217b7..85117013ff53 100644
--- a/source/_docs/configuration/securing.markdown
+++ b/source/_docs/configuration/securing.markdown
@@ -12,24 +12,47 @@ redirect_from: /getting-started/securing/
One major advantage of Home Assistant is that it's not dependent on cloud services. Even if you're only using Home Assistant on a local network, you should take steps to secure your instance.
-### {% linkable_title Checklist %}
+## {% linkable_title Checklist %}
-- [Choose a strong password](/docs/authentication/).
-- Secure your host. Sources could be [Red Hat Enterprise Linux 7 Security Guide](https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/pdf/Security_Guide/Red_Hat_Enterprise_Linux-7-Security_Guide-en-US.pdf), [CIS Red Hat Enterprise Linux 7 Benchmark](https://benchmarks.cisecurity.org/tools2/linux/CIS_Red_Hat_Enterprise_Linux_7_Benchmark_v1.0.0.pdf), or the [Securing Debian Manual](https://www.debian.org/doc/manuals/securing-debian-howto/index.en.html).
-- Restrict network access to your devices. Set `PermitRootLogin no` in your sshd config (usually `/etc/ssh/sshd_config`) and to use SSH keys for authentication instead of passwords.
-- Don't run Home Assistant as root – consider the Principle of Least Privilege.
-- Keep your [secrets](/topics/secrets/) safe.
+Here's the summary of what you *must* do to secure your Home Assistant system:
-If you want to allow remote access, consider these additional points:
+☐ Configure [secrets](/topics/secrets/) (but do remember to back them up)
+☐ Regularly keep the system up to date
-- Protect your communication with [TLS/SSL](/docs/ecosystem/certificates/lets_encrypt/).
-- Enable IP Filtering and configure a low [Login Attempts Threshold](/components/http/)
-- Protect your communication with [Tor](/cookbook/tor_configuration/).
-- Protect your communication with a [self-signed certificate](/cookbook/tls_self_signed_certificate/).
-- Use a [proxy](/cookbook/apache_configuration/).
-- Set up a VPN
-- Use a [SSH tunnel](/blog/2017/11/02/secure-shell-tunnel/) to connect to your frontend.
+If you only want to use components supported by [Home Assistant cloud](/cloud/) then you don't need to enable remote access. This is obviously the most secure option, but does mean that you're relying on a cloud service for that functionality.
+
+☐ For remote access to the UI, use a [VPN](http://www.pivpn.io/), [Tor](/docs/ecosystem/tor/), or an [SSH tunnel](/blog/2017/11/02/secure-shell-tunnel/)
+☐ For remote access for components, use a [TLS/SSL](/docs/ecosystem/certificates/lets_encrypt/) certificate
+
+### {% linkable_title You should %}
+
+As well as the above we advise that you consider the following to improve security:
+
+- For systems that use SSH set `PermitRootLogin no` in your sshd config (usually `/etc/ssh/sshd_config`) and to use SSH keys for authentication instead of passwords. This is particularly important if you enable remote access to your SSH services.
+- Lock down the host following good practice guidance, for example:
+ * [Securing Debian Manual](https://www.debian.org/doc/manuals/securing-debian-howto/index.en.html) (this also applies to Raspbian)
+ * [Red Hat Enterprise Linux 7 Security Guide](https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/pdf/Security_Guide/Red_Hat_Enterprise_Linux-7-Security_Guide-en-US.pdf), [CIS Red Hat Enterprise Linux 7 Benchmark](https://benchmarks.cisecurity.org/tools2/linux/CIS_Red_Hat_Enterprise_Linux_7_Benchmark_v1.0.0.pdf)
- If you've forwarded any ports to your Home Assistant system from the Internet then it *will* be found by others. Whether through services like Shodan, or direct port scanning, all systems on the Internet are routinely probed for accessible services. If you fail to set a password then it is simply a matter of time before somebody finds your system - potentially as little as a few hours.
+ If you've forwarded *any* ports to your Home Assistant system from the Internet, then it *will* be found by others. Whether through services like Shodan, or direct port scanning, all systems on the Internet are routinely probed for accessible services. If you fail to set a password then it is simply a matter of time before somebody finds your system and starts abusing it - potentially as little as a few hours.
USB Z-wave sticks may give `dmesg` warnings similar to "data interface 1, has no CM over data, has no break". This doesn't impact the function of the Z-wave stick in Hass. Just make sure the proper `/dev/cu*` is used in the Home Assistant `configuration.yaml` file.
diff --git a/source/_docs/installation/hassbian/installation.markdown b/source/_docs/installation/hassbian/installation.markdown
index bfc7d4e4d726..41af2edf384b 100644
--- a/source/_docs/installation/hassbian/installation.markdown
+++ b/source/_docs/installation/hassbian/installation.markdown
@@ -40,7 +40,7 @@ The following extras are included on the image:
### {% linkable_title Wireless Network %}
-After flashing the image to your SD Card open the partition `boot` and create a new file `wpa_supplicant.conf`. Edit the file and enter your network credentials. For more information visit [Setting up Wifi for Raspbian][wifi-setup]. During start the file will automatically be copied in the right folder and the network connection will be established. The file could look like this:
+After flashing the image to your SD Card open the partition `boot` and create a new file `wpa_supplicant.conf`. Edit the file and enter your network credentials. For more information visit [Setting up WiFi for Raspbian][wifi-setup]. During start the file will automatically be copied in the right folder and the network connection will be established. The file could look like this:
```conf
country=SE
@@ -55,7 +55,7 @@ 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 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:
+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
$ sudo rfkill list
diff --git a/source/_docs/installation/virtualenv.markdown b/source/_docs/installation/virtualenv.markdown
index 336ced4598e7..59f22869f169 100644
--- a/source/_docs/installation/virtualenv.markdown
+++ b/source/_docs/installation/virtualenv.markdown
@@ -12,7 +12,7 @@ redirect_from: /getting-started/installation-virtualenv/
If you already have Python 3.5.3 or later installed, you can easily give Home Assistant a spin.
-It's recommended when installing Python packages that you use a [virtual environment](https://docs.python.org/3.5/library/venv.html#module-venv). This will make sure that your Python installation and Home Assistant installation won't impact one another. The following steps will work on most unix like systems.
+It's recommended when installing Python packages that you use a [virtual environment](https://docs.python.org/3.5/library/venv.html#module-venv). This will make sure that your Python installation and Home Assistant installation won't impact one another. The following steps will work on most UNIX like systems.
_(If you're on a Debian based system, you will need to install Python virtual environment support using `apt-get install python3-pip python3-venv`.)_
diff --git a/source/_docs/mqtt/broker.markdown b/source/_docs/mqtt/broker.markdown
index 9da45c0aa2b1..3bd4a98369ac 100644
--- a/source/_docs/mqtt/broker.markdown
+++ b/source/_docs/mqtt/broker.markdown
@@ -59,7 +59,7 @@ mqtt:
### {% linkable_title Run your own %}
-Along with the embedded broker this is the most private option, but it requires a bit more work. There are multiple free and open-source brokers to pick from: eg. [Mosquitto](http://mosquitto.org/), [EMQ](http://emqtt.io/), or [Mosca](http://www.mosca.io/).
+Along with the embedded broker this is the most private option, but it requires a bit more work. There are multiple free and open-source brokers to pick from: e.g., [Mosquitto](http://mosquitto.org/), [EMQ](http://emqtt.io/), or [Mosca](http://www.mosca.io/).
```yaml
# Example configuration.yaml entry
@@ -98,7 +98,7 @@ protocol:
type: string
certificate:
required: false
- description: Path to the certificate file, eg. `/home/user/.homeassistant/server.crt`.
+ description: Path to the certificate file, e.g., `/home/user/.homeassistant/server.crt`.
type: string
tls_insecure:
required: false
diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown
index af0f99c2c1e7..53e1fc9383d3 100644
--- a/source/_docs/mqtt/discovery.markdown
+++ b/source/_docs/mqtt/discovery.markdown
@@ -55,6 +55,118 @@ An empty payload will cause a previously discovered device to be deleted.
The `
@@ -82,7 +82,7 @@ Battery powered devices need to be awake before you can use the Z-Wave control p
This is a dropdown where you can select all the entities of this node. Once selected you can then use:
* **Refresh Entity** to refresh just that entity's values
-* **Entity Attributes** to display the attributes of that entity (eg its friendly name, the ID of the node, etc)
+* **Entity Attributes** to display the attributes of that entity (e.g., its friendly name, the ID of the node, etc)
Here you can mark a device as requiring polling so the controller is aware of changes because the device doesn't send updates itself. Do see the information on [polling here](/docs/z-wave/devices/#polling), since excessive polling can break your Z-Wave network.
@@ -130,7 +130,7 @@ Set the new selection by pressing the **Set Protection** button.
## {% linkable_title Node user codes %}
-If your node has user codes, you can set and delete them. The format is raw hex Ascii code. Below the input you will see your actual code. For normal nodes this is as follows:
+If your node has user codes, you can set and delete them. The format is raw hex ASCII code. Below the input you will see your actual code. For normal nodes this is as follows:
```yaml
\x30 = 0
\x31 = 1
@@ -144,7 +144,7 @@ If your node has user codes, you can set and delete them. The format is raw hex
\x39 = 9
```
Some non compliant device like tag readers, have implemented to use raw hex code.
-Please refer to a hex ascii table to set your code. Example: http://www.asciitable.com/
+Please refer to a hex ASCII table to set your code. Example: http://www.asciitable.com/
Here is a small Python program than will take numbers on the command line and print the correct sequence for compliant devices:
diff --git a/source/_docs/z-wave/controllers.markdown b/source/_docs/z-wave/controllers.markdown
index 128b122649bc..8548c92f9c11 100644
--- a/source/_docs/z-wave/controllers.markdown
+++ b/source/_docs/z-wave/controllers.markdown
@@ -11,21 +11,17 @@ footer: true
## {% linkable_title Supported Z-Wave USB Sticks & Hardware Modules %}
-You need to have a [supported Z-Wave USB stick or module](https://github.com/OpenZWave/open-zwave/wiki/Controller-Compatibility-List) installed.
-
-| Device | Works on Linux | Works on Windows | Works on OSX |
-|-------------------------|----------------|------------------|--------------|
-| Aeotec Z-Stick | ✓ | | |
-| Aeotec Z-Stick Series 2 | ✓ | | |
-| Aeotec Z-Stick Series 5 | ✓ | ✓ | ✓ |
-| Pine64 Z-Wave Module | ✓ | | |
-| Razberry GPIO Module | ✓ | | |
-| Seluxit ViaSens 100 | | | |
-| Sigma Designs UZB Stick | | | |
-| Tricklestar | | | |
-| Vision USB Stick | | | |
-| ZWave.me Razberry Board | ✓ | | |
-| ZWave.me UZB1 | ✓ | | |
+You need to have a compatible Z-Wave stick or module installed. This needs to be a *static controller*, which most Z-Wave sticks and modules will be. If yours is a *bridge* device then it won't work with [OpenZWave](http://openzwave.com/), which is what provides Home Assistant's Z-Wave capabilities. The following devices have been confirmed to work:
+
+* Aeotec Z-Stick Series 5
+* Everspring USB stick - Gen 5
+* Sigma Designs UZB stick
+* Vision USB stick - Gen5
+* Zooz Z-Wave Plus S2 stick ZST10
+* ZWave.me Razberry Board
+* ZWave.me UZB1 stick
+
+We recommend that you purchase a [Z-Wave Plus](https://z-wavealliance.org/z-wave_plus_certification/) controller, to take advantage of the improvements this provides. As OpenZWave doesn't support S2 or Smart Start, there's no need to buy one just for support of these features.
If you're using Hass.io or running HASS in a Docker container, it's recommended to use a USB stick, not a module. Passing a module through Docker is more complicated than passing a USB stick through.
diff --git a/source/_docs/z-wave/device-specific.markdown b/source/_docs/z-wave/device-specific.markdown
index de2ab1b2a16c..bb8c9c805bd8 100644
--- a/source/_docs/z-wave/device-specific.markdown
+++ b/source/_docs/z-wave/device-specific.markdown
@@ -73,7 +73,7 @@ crw-rw---- 1 root dialout 204, 64 Sep 2 14:38 /dev/ttyAMA0
at this point simply add your user (homeassistant) to the dialout group:
```bash
-$ sudo usermod -a -G dialout homeassistant
+$ sudo usermod -a -G dialout homeassistant
```
Finally, reboot again to make those changes active. It's has been tested on hassbian and has been reported that this is also required on the Pi2.
diff --git a/source/_docs/z-wave/installation.markdown b/source/_docs/z-wave/installation.markdown
index a734e976e513..833275cdbb78 100644
--- a/source/_docs/z-wave/installation.markdown
+++ b/source/_docs/z-wave/installation.markdown
@@ -104,12 +104,17 @@ device_config / device_config_domain / device_config_glob:
type: integer
default: 2
invert_openclose_buttons:
- description: Inverts function of the open and close buttons for the cover domain. This will not invert the positon and state reporting.
+ description: Inverts function of the open and close buttons for the cover domain. This will not invert the position and state reporting.
required: false
type: boolean
default: False
{% endconfiguration %}
+
+As of Home Assistant 0.81, the Z-Wave `usb_path` and `network_key` options are configured through the Integrations page in Home Assistant. Specifying a `zwave:` section in configuration.yaml is no longer required unless you need to customize other settings, such as `device_config`, `polling_interval`, etc.
+
diff --git a/source/_docs/z-wave/services.markdown b/source/_docs/z-wave/services.markdown
index 17cc8270ef07..905d85f7fd00 100644
--- a/source/_docs/z-wave/services.markdown
+++ b/source/_docs/z-wave/services.markdown
@@ -17,7 +17,7 @@ The `zwave` component exposes multiple services to help maintain the network. Al
| add_node_secure | Put the Z-Wave controller in secure inclusion mode. Allows you to add a new device with secure communications to the Z-Wave network. |
| cancel_command | Cancels a running Z-Wave command. If you have started an add_node or remove_node command, and decide you are not going to do it, then this must be used to stop the inclusion/exclusion command. |
| change_association | Add or remove an association in the Z-Wave network |
-| heal_network | Tells the controller to "heal" the Z-Wave network. Basically asks the nodes to tell the controller all of their neighbors so the controller can refigure out optimal routing. |
+| heal_network | Tells the controller to "heal" the Z-Wave network. Basically asks the nodes to tell the controller all of their neighbors so the controller can re-figure out optimal routing. |
| heal_node | Tells the controller to "heal" a specific node on the network. Requires `node_id` field. You can also force return route update with `return_routes` field.
| print_config_parameter | Prints Z-Wave node's config parameter value to the (console) log. |
| print_node | Print all states of Z-Wave node. |
diff --git a/source/_lovelace/entities.markdown b/source/_lovelace/entities.markdown
index a025b721e385..5e91cb65d80b 100644
--- a/source/_lovelace/entities.markdown
+++ b/source/_lovelace/entities.markdown
@@ -74,7 +74,7 @@ name:
type: string
icon:
required: true
- description: "Icon to display (e.g. `mdi:home`)"
+ description: "Icon to display (e.g., `mdi:home`)"
type: string
action_name:
required: true
@@ -103,7 +103,7 @@ name:
type: string
icon:
required: true
- description: "Icon to display (e.g. `mdi:home`)"
+ description: "Icon to display (e.g., `mdi:home`)"
type: string
url:
required: true
diff --git a/source/_lovelace/gauge.markdown b/source/_lovelace/gauge.markdown
new file mode 100644
index 000000000000..32528d7371fd
--- /dev/null
+++ b/source/_lovelace/gauge.markdown
@@ -0,0 +1,100 @@
+---
+layout: page
+title: "Gauge Card"
+sidebar_label: Gauge
+description: "The Gauge card allows you to display sensor information visually"
+date: 2018-10-11 10:28 +00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+---
+
+Gauge card is a basic card that allows visually seeing sensor data.
+
+
+
+Screenshot of the gauge card.
+
+
+Screenshot of the gauge card with custom title and unit of measurement.
+
+
+Screenshot of the gauge card.
+
+
+Screenshot of the gauge card with custom title and unit of measurement.
+
+
+Configuring IFTTT via th integrations panel.
+
- Please remember to [secure your installation](/docs/configuration/securing/) once you've finished with the installation process.
+
+For advanced users or if you have no Raspberry Pi at hand, check our [alternative installation methods](/docs/installation/). The [FAQ](/faq/#home-assistant-vs-hassio) explains more about the differences.
+If your router doesn't support mDNS, then you'll have to use the IP address of your Pi instead of `hassio.local`. For example, `http://192.168.0.9:8123`. You should be able to find the IP address of your Pi from the admin interface of your router.
+
-When you're done, remember to set up regular backups of your configuration. These backups will protect you from hardware failure and mistakes. On Hass.io you have snapshots, but you can back up to [GitHub](/docs/ecosystem/backup/backup_github/), [DropBox](/docs/ecosystem/backup/backup_dropbox/) and many other ways. All that matters is that you set them up and test them regularly.
+When you're done, remember to set up regular backups of your configuration. These backups will protect you from hardware failure and mistakes. On Hass.io you have snapshots (which you should copy off to another system), but you can back up to [GitHub](/docs/ecosystem/backup/backup_github/), [DropBox](/docs/ecosystem/backup/backup_dropbox/) and many other ways. All that matters is that you set them up and test them regularly.
-Please remember to ensure you're using an [appropriate power supply](https://www.raspberrypi.org/help/faqs/#powerReqs) with your Pi. Mobile chargers may not be suitable since some were only designed to provide just enough power to the device it was designed for by the manufacturer. **Do not** try to power the Pi from the USB port on a TV, computer, or similar.
-
If your router doesn't support mDNS, then you'll have to use the IP address of your Pi instead of `hassio.local`. For example, `http://192.168.0.9:8123`. You should be able to find the IP address of your Pi from the admin interface of your router.
+If you are using a Raspberry Pi please remember to ensure you're using an [appropriate power supply][pi-power] with your Pi. Mobile chargers may not be suitable since some were only designed to provide just enough power to the device it was designed for by the manufacturer. **Do not** try to power the Pi from the USB port on a TV, computer, or similar.
+
@@ -116,7 +117,7 @@ views:
Now restart Home Assistant, navigate to `
(Beginner friendly)
For the end user, this means:
+ - Remove switch and binary_sensor entries with platform: rachio
+ - If you configured manual_run_mins on the switch platform, move that parameter to the rachio: component configuration.
+
+- Overhaul of Blink platform ([@fronzbot] - [#16942]) ([blink docs]) ([alarm_control_panel.blink docs]) ([binary_sensor.blink docs]) ([camera.blink docs]) ([sensor.blink docs]) (breaking change) (new-platform)
+
+ - No more notification sensor, since the Blink API no longer supports it
+ - motion can now be detected either with the blink sensor
+ `binary_sensor.blink_nameofcamera_motion_detected` or through a camera's attributes with the `motion_detected` key.
+ - `blink.snap_picture` service has been renamed to `blink.trigger_camera`
+ - Camera names now prefaced with `blink`, ie. `camera.blink_nameofcamera`
+
+- Tibber has moved from sensor configuration to component configuration ([@Danielhiversen] - [#17062]) ([notify docs]) ([tibber docs]) ([sensor.tibber docs]) (breaking change) (new-platform)
+- A manually configured Hue component will no longer run a discovery. Set up via config entry if you want to rely on discovery. ([@balloob] - [#17070]) ([hue docs]) (breaking change)
+
+## {% linkable_title Beta Fixes %}
+
+- Fix incorrect yaml in hangouts ([@balloob] - [#17169]) (beta fix)
+- Fix data used for logbook ([@balloob] - [#17172]) ([logbook docs]) (beta fix)
+- Fix device_tracker service call & cleanup ([@cdce8p] - [#17173]) ([alert docs]) ([device_sun_light_trigger docs]) ([device_tracker docs]) ([notify docs]) ([switch.flux docs]) (beta fix)
+- Bugfix switch flux - light service call ([@cdce8p] - [#17187]) ([switch.flux docs]) (beta fix)
+- Upgrade aiolifx_effects to 0.2.1 ([@amelchio] - [#17188]) ([light.lifx docs]) (beta fix)
+- Verisure standard config for scan interval ([@persandstrom] - [#17192]) ([verisure docs]) (beta fix)
+- Init sub-components using global var. ([@mbrrg] - [#17220]) ([spc docs]) ([alarm_control_panel.spc docs]) ([binary_sensor.spc docs]) (beta fix)
+- Prevent accidental device reg override ([@balloob] - [#17136]) (beta fix)
+- MyQ cover return unknown state if not available ([@schmittx] - [#17207]) ([cover.myq docs]) (beta fix)
+- Fix potential MQTT discovery race condition ([@OttoWinter] - [#17208]) ([mqtt docs]) (beta fix)
+- Fix SPC ([@balloob] - [#17236]) ([spc docs]) ([alarm_control_panel.spc docs]) ([binary_sensor.spc docs]) (beta fix)
+- Guard for bad device info ([@balloob] - [#17238]) (beta fix)
+- updated georss-client library to 0.3 ([@exxamalte] - [#17239]) ([sensor.geo_rss_events docs]) (beta fix)
+- Add a webhook automation trigger ([@balloob] - [#17246]) ([automation.webhook docs]) (beta fix) (new-platform)
+- block external IP ([@balloob] - [#17248]) ([emulated_hue docs]) (beta fix)
+- Fix ambient light state of the Philips Eyecare Lamp (Closes: #16269) ([@syssi] - [#17259]) ([light.xiaomi_miio docs]) (beta fix)
+- Add defaults, fixing #17229 ([@StevenLooman] - [#17261]) ([upnp docs]) (beta fix)
+- Remove warning on script delay ([@amelchio] - [#17264]) (beta fix)
+- Hassio auth ([@pvizeli] - [#17274]) ([hassio docs]) (beta fix) (new-platform)
+- Fix hassio discovery ([@pvizeli] - [#17275]) ([hassio docs]) (beta fix)
+- fixed 'on_startup() takes 0 positional arguments but 1 was given' ([@PaulAnnekov] - [#17295]) ([sensor.miflora docs]) (beta fix)
+- Logbook: filter by entity and period ([@Anonym-tsk] - [#17095]) ([logbook docs]) (beta fix)
+- Fix samsung bug ([@arsaboo] - [#17285]) ([media_player.samsungtv docs]) (beta fix)
+- Allow tradfri groups for new imported entries ([@MartinHjelmare] - [#17310]) ([tradfri docs]) (beta fix)
+- Fix auth for hass.io ([@pvizeli] - [#17318]) ([hassio docs]) (beta fix)
+- Hass.io auth/sso part2 ([@pvizeli] - [#17324]) ([hassio docs]) (beta fix) (new-platform)
+
+## {% linkable_title All changes %}
+
+- Add mode (daily/hourly) to darksky ([@randellhodges] - [#16719]) ([weather docs]) ([weather.darksky docs]) ([weather.openweathermap docs])
+- Extract lovelace to it's own component ([@balloob] - [#16816]) ([frontend docs]) ([lovelace docs])
+- Remove discovered MQTT alarm_control_panel device when discovery topic is cleared ([@emontnemery] - [#16825]) ([alarm_control_panel.mqtt docs])
+- Remove discovered MQTT light device when discovery topic is cleared ([@emontnemery] - [#16824]) ([light.mqtt docs])
+- Add unique_id to homematic_cloud ([@sander76] - [#16828]) ([homematicip_cloud docs])
+- Don't create entity registry in tests ([@balloob] - [#16838])
+- Add additional Netatmo public data sensors ([@GP8x] - [#16671]) ([netatmo docs]) ([sensor.netatmo_public docs]) (breaking change)
+- GitLab-CI sensor integration addition. ([@DanielWinks] - [#16561]) ([sensor.gitlab_ci docs]) (new-platform)
+- Config entry update data ([@balloob] - [#16843])
+- Fix MQTT leaving files behind ([@balloob] - [#16840])
+- change unknown to None in Netatmo public ([@Danielhiversen] - [#16845]) ([sensor.netatmo_public docs])
+- Remove discovered MQTT binary_sensor device when discovery topic is cleared ([@emontnemery] - [#16826]) ([binary_sensor.mqtt docs])
+- On removal, only unload config entry if loaded ([@balloob] - [#16844])
+- Add image support to hangouts notifications ([@quazzie] - [#16560]) ([hangouts docs])
+- Remove discovered MQTT climate device when discovery topic is cleared ([@emontnemery] - [#16856]) ([climate.mqtt docs])
+- Fix files left behind ([@balloob] - [#16855])
+- Move MQTT discovery removal tests to platform test files ([@emontnemery] - [#16861])
+- Remove discovered MQTT sensor device when discovery topic is cleared ([@emontnemery] - [#16860]) ([sensor.mqtt docs])
+- Remove discovered MQTT lock device when discovery topic is cleared ([@emontnemery] - [#16859]) ([lock.mqtt docs])
+- Remove discovered MQTT fan device when discovery topic is cleared ([@emontnemery] - [#16858]) ([fan.mqtt docs])
+- Remove discovered MQTT cover device when discovery topic is cleared ([@emontnemery] - [#16857]) ([cover.mqtt docs])
+- Add executor job ([@balloob] - [#16853]) ([lovelace docs])
+- Fail if dirty ([@balloob] - [#16839])
+- Add support for Opple light ([@jedmeng] - [#16765]) ([light.opple docs]) (new-platform)
+- Update cover tests ([@cdce8p] - [#16832]) ([cover docs]) (breaking change)
+- Add missing __init__ test files ([@cdce8p] - [#16871])
+- Tibber realtime consumption, Tibber pulse ([@Danielhiversen] - [#16870]) ([sensor.tibber docs])
+- Upgrade to bimmer_connected 0.5.3 ([@gerard33] - [#16877]) ([bmw_connected_drive docs]) ([binary_sensor.bmw_connected_drive docs])
+- aiohttp.ClientSession gets proxy information from HTTP_PROXY/HTTPS_PROXY ([@siom79] - [#16874])
+- Remove service helper (3) ([@cdce8p] - [#16879]) ([duckdns docs]) ([google_assistant docs]) ([group docs]) ([homematic docs]) ([image_processing docs]) ([input_boolean docs]) ([input_number docs]) ([input_select docs]) ([input_text docs]) (breaking change)
+- Fix fan_init test ([@cdce8p] - [#16865])
+- Use HA native OAuth2 flow for google assistant components ([@awarecan] - [#16848]) ([google_assistant docs]) (breaking change)
+- Remove service helper (2) ([@cdce8p] - [#16863]) ([alarm_control_panel docs]) ([automation docs]) ([camera docs]) ([climate docs]) ([counter docs]) ([fan docs]) (breaking change)
+- Revert incorrect check ([@balloob] - [#16883]) ([media_player.soundtouch docs])
+- Added support for private storage. ([@nickovs] - [#16878])
+- Fix example for long-lived access token WS API ([@awarecan] - [#16882]) ([auth docs])
+- Add bitwise operations as template helpers ([@blakeblackshear] - [#16833])
+- Telegram_bot polling support proxy_url and proxy_params (Fix #15746) ([@Anonym-tsk] - [#16740]) ([telegram_bot docs])
+- Update language strings ([@cgtobi] - [#16884]) ([auth docs])
+- Don't pass use_env=True ([@balloob] - [#16896])
+- Revert file mode write_json ([@balloob] - [#16897])
+- Remove service helper (4) ([@cdce8p] - [#16892]) ([lock docs]) ([media_player docs]) ([notify docs]) ([remote docs]) ([scene docs]) ([timer docs]) ([vacuum docs]) (breaking change)
+- Remove unused legacy test helper methods ([@cdce8p] - [#16893])
+- Remove unused import ([@amelchio] - [#16909])
+- Upgrade aiolifx_effects to 0.2.0 ([@amelchio] - [#16900]) ([light.lifx docs])
+- Upgrade pysonos to 0.0.3 ([@amelchio] - [#16901]) ([sonos docs]) ([media_player.sonos docs])
+- Ignore Xiaomi hub callbacks during setup ([@amelchio] - [#16910]) ([xiaomi_aqara docs])
+- Update new values coming in for dev registry ([@balloob] - [#16852])
+- MQTT Light - Do not throw if property is missing from templated MQTT message ([@emontnemery] - [#16720]) ([light.mqtt docs])
+- Add new services for set/refresh Z-Wave device values ([@blakeblackshear] - [#16638]) ([zwave docs])
+- Add (EU-based) Honeywell evohome CH/DHW controller ([@zxdavb] - [#16427]) ([evohome docs]) ([climate.evohome docs]) ([climate.honeywell docs]) (new-platform)
+- Make MQTT platforms config entries ([@OttoWinter] - [#16904]) ([mqtt docs]) ([sensor.mqtt docs])
+- Fix auth redirect ([@balloob] - [#16914]) ([frontend docs])
+- Fix MQTT Config Entry Discovery ([@OttoWinter] - [#16919]) ([mqtt docs])
+- Remove service helper (5) ([@cdce8p] - [#16917]) ([config docs]) ([device_sun_light_trigger docs]) ([light docs]) ([script docs]) ([switch docs]) ([switch.flux docs]) (breaking change)
+- Remove service helper (6) ([@cdce8p] - [#16920]) ([automation docs]) ([config docs]) ([device_tracker docs]) ([group docs]) (breaking change)
+- Rachio component modernization ([@OverloadUT] - [#16911]) ([rachio docs]) ([binary_sensor.rachio docs]) ([switch.rachio docs]) (breaking change)
+- Remove discovered mqtt_json light entity when discovery is cleared ([@OttoWinter] - [#16906]) ([light.mqtt_json docs])
+- Fix race between script delay and turn_off ([@amelchio] - [#16923])
+- Move more MQTT platforms to config entries ([@OttoWinter] - [#16918]) ([mqtt docs]) ([alarm_control_panel.mqtt docs]) ([binary_sensor.mqtt docs]) ([camera.mqtt docs]) ([climate.mqtt docs]) ([cover.mqtt docs]) ([light.mqtt docs]) ([switch.mqtt docs])
+- Add zwave.network_complete_some_dead event ([@janvanhelvoort] - [#16894]) ([zwave docs])
+- Convert fan component to config entry ([@OttoWinter] - [#16951]) ([fan docs])
+- Add unique_id to MQTT cover ([@OttoWinter] - [#16950]) ([cover.mqtt docs])
+- Add unique_id to MQTT fan ([@OttoWinter] - [#16949]) ([fan.mqtt docs])
+- Add pressure sensor device class ([@OttoWinter] - [#16965]) ([sensor docs]) ([sensor.xiaomi_aqara docs])
+- Upgrade pytest to 3.8.1 ([@scop] - [#16980])
+- Add webhook + IFTTT example ([@balloob] - [#16817]) ([ifttt docs]) ([webhook docs]) (new-platform)
+- Google Maps supports battery level and charging. ([@htotoo] - [#16969]) ([device_tracker docs])
+- Add basic support for Tradfri switches ([@ggravlingen] - [#17007]) ([tradfri docs]) ([switch.tradfri docs]) (new-platform)
+- Homematic cloud device update fix ([@sander76] - [#17001]) ([homematicip_cloud docs])
+- Async syntax 1, alarm_control_panel & automation & binary_sensor ([@cdce8p] - [#17015])
+- Async syntax 2, camera & climate & config ([@cdce8p] - [#17016])
+- Update Z-Wave service descriptions to point to proper log file ([@cgarwood] - [#17024])
+- Async syntax 8/8 ([@cdce8p] - [#17022])
+- Async syntax 7, switch & tts & vacuum ([@cdce8p] - [#17021])
+- Async syntax 6, sensor ([@cdce8p] - [#17020])
+- Async syntax 5, light & lock & remote & scene & telegram & helpers ([@cdce8p] - [#17019])
+- Async syntax 4/8 ([@cdce8p] - [#17018])
+- Async syntax 3/8 ([@cdce8p] - [#17017])
+- Fix MQTT discovery ([@OttoWinter] - [#17004]) ([mqtt docs])
+- Upgrade huawei-lte-api to 1.0.16 ([@scop] - [#16972]) ([huawei_lte docs])
+- Upgrade locationsharinglib to 3.0.3 ([@fabaff] - [#17010]) ([device_tracker docs])
+- Break up websocket component ([@balloob] - [#17003]) ([camera docs]) ([config docs]) ([media_player docs]) ([websocket_api docs])
+- :hammer: update errors ([@timmo001] - [#17029]) ([switch.rest docs])
+- Add new device attributes to fritzbox climate ([@hthiery] - [#17027]) ([fritzbox docs]) ([climate.fritzbox docs])
+- Bump Enphase_Envoy dependency for older models ([@DavidDeSloovere] - [#17032]) ([sensor.enphase_envoy docs])
+- Add Hass.io discovery to MQTT ([@balloob] - [#16962]) ([mqtt docs])
+- Update coverage to exclude not tested file ([@cdce8p] - [#17039])
+- Send headers with REST switch GET request ([@andersonshatch] - [#17036]) ([switch.rest docs])
+- Async syntax ([@cdce8p] - [#17033]) ([alert docs]) ([binary_sensor.ffmpeg_motion docs]) ([binary_sensor.ffmpeg_noise docs]) ([sensor.mqtt_room docs])
+- Break up websocket 2 ([@balloob] - [#17028])
+- Logbook context ([@balloob] - [#16937]) ([logbook docs])
+- Remove error logging when Sonos shuffle_set is not available ([@amelchio] - [#16921]) ([media_player.sonos docs])
+- Fix long update 'load_power' and 'in_use' for Xiaomi Zegbee Plug ([@Anonym-tsk] - [#16915]) ([switch.xiaomi_aqara docs])
+- Mind the unit system (fixes #16819) ([@fabaff] - [#16823]) ([weather.openweathermap docs])
+- Suppress urllib3 header parsing error ([@cgarwood] - [#17042]) ([camera.mjpeg docs])
+- Support code 7 ([@SNoof85] - [#17047]) ([vacuum.xiaomi_miio docs])
+- Update pyhomematic to 0.1.50 ([@danielperna84] - [#17048]) ([homematic docs])
+- Remove alert service helper ([@cdce8p] - [#17038]) ([alert docs]) (breaking change)
+- Add AquaLogic component ([@swilson] - [#16763]) ([aqualogic docs]) ([sensor.aqualogic docs]) ([switch.aqualogic docs]) (new-platform)
+- Update pynetgear to 0.4.2 (fix #14752) ([@MatMaul] - [#17064]) ([device_tracker docs])
+- Added working support for private storage ([@nickovs] - [#16903])
+- GeoRSS events sensor refactored ([@exxamalte] - [#16939]) ([sensor.geo_rss_events docs])
+- Remove service helper (8) ([@cdce8p] - [#17055]) ([config docs]) ([ffmpeg docs]) ([keyboard docs]) ([logger docs]) ([microsoft_face docs]) (breaking change)
+- MJPEG Camera Log Filter Fixes ([@cgarwood] - [#17050]) ([camera.mjpeg docs])
+- OpenUV: Fixed issue with missing protection window data ([@bachya] - [#17051]) ([openuv docs]) ([binary_sensor.openuv docs])
+- async_create_task ([@cdce8p] - [#17059])
+- De-syncing binary_sensor.ping ([@thomasloven] - [#17056]) ([binary_sensor.ping docs])
+- Add logging to light updates ([@balloob] - [#17069]) ([light.hue docs])
+- Catch possible errors from tradfri ([@balloob] - [#17068]) ([tradfri docs])
+- Allow no movement in vamera.onvif_ptz service ([@thomasloven] - [#17065]) ([camera.onvif docs])
+- Upgrade youtube_dl to 2018.09.26 ([@fabaff] - [#17079]) ([media_extractor docs])
+- Overhaul of Blink platform ([@fronzbot] - [#16942]) ([blink docs]) ([alarm_control_panel.blink docs]) ([binary_sensor.blink docs]) ([camera.blink docs]) ([sensor.blink docs]) (breaking change) (new-platform)
+- Bump pyenvisalink ([@Cinntax] - [#17086]) ([envisalink docs])
+- Async response all the things ([@balloob] - [#17073]) ([config docs]) ([websocket_api docs])
+- Add optional headers configuration for scrape ([@dippysan] - [#17085]) ([sensor.scrape docs])
+- Add support for Hass.io discovery feature for Add-ons ([@pvizeli] - [#17035]) ([hassio docs])
+- Keep the repeat mode when setting Sonos shuffle mode ([@amelchio] - [#17083]) ([media_player.sonos docs])
+- Smaller steps for Sonos volume up/down ([@amelchio] - [#17080]) ([media_player.sonos docs])
+- Add weather condition code to OpenWeatherMap sensor ([@dbilay] - [#17093]) ([sensor.openweathermap docs])
+- Adding myself as blink codeowner ([@fronzbot] - [#17096])
+- Change Tile icon to view-grid ([@no2chem] - [#17098]) ([device_tracker docs])
+- Fix jewish calendar sensor with language set to english ([@tsvi] - [#17104]) ([sensor.jewish_calendar docs])
+- Fix counter restore. ([@mvn23] - [#17101]) ([counter docs])
+- Support multiple accounts in Tile, use device identifiers ([@no2chem] - [#17108]) ([device_tracker.tile docs])
+- Bumps simplisafe-python to 3.1.2 ([@bachya] - [#16931]) ([alarm_control_panel.simplisafe docs])
+- Upgrade pytest to 3.8.2 ([@scop] - [#17125])
+- Fix sonos async use ([@MartinHjelmare] - [#17099]) ([media_player.sonos docs])
+- Homekit controller reconnect ([@armills] - [#17060]) ([homekit_controller docs])
+- Tibber component and notify ([@Danielhiversen] - [#17062]) ([notify docs]) ([tibber docs]) ([sensor.tibber docs]) (breaking change) (new-platform)
+- Add time created to persistent notifications. ([@jeradM] - [#17121]) ([persistent_notification docs])
+- Make it easier for auth to consume newer formats ([@balloob] - [#17127])
+- Add new component fritzbox binary_sensor ([@hthiery] - [#17057]) ([fritzbox docs]) ([binary_sensor.fritzbox docs]) (new-platform)
+- Update xiaomi lib ([@Danielhiversen] - [#17129]) ([xiaomi_aqara docs])
+- Add update service to Google Travel Sensor ([@arsaboo] - [#17092]) ([sensor.google_travel_time docs])
+- Fix upnp component l10n error ([@awarecan] - [#17132]) ([upnp docs])
+- Take timezone into consideration when calulating Zmanim. Partial fix for #16946 ([@tsvi] - [#17131]) ([sensor.jewish_calendar docs])
+- Allow config entry setup to raise not ready ([@balloob] - [#17135])
+- Webhook component - pass headers to webhook handler ([@kirichkov] - [#17091]) ([webhook docs])
+- Add timeout and fix oscillations on Samsung TV component ([@anapaulagomes] - [#17102]) ([media_player.samsungtv docs])
+- Remove discovery ([@balloob] - [#17070]) ([hue docs]) (breaking change)
+- Bugfix invalid entity_config parameter HomeKit ([@cdce8p] - [#17143]) ([homekit docs])
+- verisure configurable polling ([@persandstrom] - [#17144]) ([verisure docs])
+- YesssSMS handling more errors, upgrade to version 0.2.3 ([@flowolf] - [#17052]) ([notify docs])
+- Added OpenUV CODEOWNERS info ([@bachya] - [#17149]) ([openuv docs])
+- Fix a typo ([@gerard33] - [#17147]) ([switch.volvooncall docs])
+- Cleanly stop tradfri on shutdown ([@lwis] - [#17114]) ([auth docs]) ([tradfri docs])
+- Fix zoneminder zms_url construction ([@rohankapoorcom] - [#17150]) ([zoneminder docs])
+- Added warning to HomeKit component ([@Julius2342] - [#16807]) ([homekit docs])
+- Add faucet, shower, sprinkler, valve to HomeKit ([@cdce8p] - [#17145]) ([homekit docs]) (new-feature)
+- Fix miflora connection errors during platform setup ([@PaulAnnekov] - [#16798]) ([sensor.miflora docs])
+- Discover Danfoss/devolo RS Room Sensor thermostat ([@prophit987] - [#17153]) ([zwave docs])
+- @danielhiversen as codeowner for Tibber ([@prophit987] - [#17154])
+- Fix incorrect yaml in hangouts ([@balloob] - [#17169]) (beta fix)
+- Fix data used for logbook ([@balloob] - [#17172]) ([logbook docs]) (beta fix)
+- Fix device_tracker service call & cleanup ([@cdce8p] - [#17173]) ([alert docs]) ([device_sun_light_trigger docs]) ([device_tracker docs]) ([notify docs]) ([switch.flux docs]) (beta fix)
+- Bugfix switch flux - light service call ([@cdce8p] - [#17187]) ([switch.flux docs]) (beta fix)
+- Upgrade aiolifx_effects to 0.2.1 ([@amelchio] - [#17188]) ([light.lifx docs]) (beta fix)
+- Verisure standard config for scan interval ([@persandstrom] - [#17192]) ([verisure docs]) (beta fix)
+- Init sub-components using global var. ([@mbrrg] - [#17220]) ([spc docs]) ([alarm_control_panel.spc docs]) ([binary_sensor.spc docs]) (beta fix)
+- Prevent accidental device reg override ([@balloob] - [#17136]) (beta fix)
+- MyQ cover return unknown state if not available ([@schmittx] - [#17207]) ([cover.myq docs]) (beta fix)
+- Fix potential MQTT discovery race condition ([@OttoWinter] - [#17208]) ([mqtt docs]) (beta fix)
+- Fix SPC ([@balloob] - [#17236]) ([spc docs]) ([alarm_control_panel.spc docs]) ([binary_sensor.spc docs]) (beta fix)
+- Guard for bad device info ([@balloob] - [#17238]) (beta fix)
+- updated georss-client library to 0.3 ([@exxamalte] - [#17239]) ([sensor.geo_rss_events docs]) (beta fix)
+- Add a webhook automation trigger ([@balloob] - [#17246]) ([automation.webhook docs]) (beta fix) (new-platform)
+- block external IP ([@balloob] - [#17248]) ([emulated_hue docs]) (beta fix)
+- Fix ambient light state of the Philips Eyecare Lamp (Closes: #16269) ([@syssi] - [#17259]) ([light.xiaomi_miio docs]) (beta fix)
+- Add defaults, fixing #17229 ([@StevenLooman] - [#17261]) ([upnp docs]) (beta fix)
+- Remove warning on script delay ([@amelchio] - [#17264]) (beta fix)
+- Hassio auth ([@pvizeli] - [#17274]) ([hassio docs]) (beta fix) (new-platform)
+- Fix hassio discovery ([@pvizeli] - [#17275]) ([hassio docs]) (beta fix)
+- fixed 'on_startup() takes 0 positional arguments but 1 was given' ([@PaulAnnekov] - [#17295]) ([sensor.miflora docs]) (beta fix)
+- Logbook: filter by entity and period ([@Anonym-tsk] - [#17095]) ([logbook docs]) (beta fix)
+- Fix samsung bug ([@arsaboo] - [#17285]) ([media_player.samsungtv docs]) (beta fix)
+- Allow tradfri groups for new imported entries ([@MartinHjelmare] - [#17310]) ([tradfri docs]) (beta fix)
+- Fix auth for hass.io ([@pvizeli] - [#17318]) ([hassio docs]) (beta fix)
+- Hass.io auth/sso part2 ([@pvizeli] - [#17324]) ([hassio docs]) (beta fix) (new-platform)
+
+[#16427]: https://github.com/home-assistant/home-assistant/pull/16427
+[#16560]: https://github.com/home-assistant/home-assistant/pull/16560
+[#16561]: https://github.com/home-assistant/home-assistant/pull/16561
+[#16638]: https://github.com/home-assistant/home-assistant/pull/16638
+[#16671]: https://github.com/home-assistant/home-assistant/pull/16671
+[#16719]: https://github.com/home-assistant/home-assistant/pull/16719
+[#16720]: https://github.com/home-assistant/home-assistant/pull/16720
+[#16740]: https://github.com/home-assistant/home-assistant/pull/16740
+[#16763]: https://github.com/home-assistant/home-assistant/pull/16763
+[#16765]: https://github.com/home-assistant/home-assistant/pull/16765
+[#16798]: https://github.com/home-assistant/home-assistant/pull/16798
+[#16807]: https://github.com/home-assistant/home-assistant/pull/16807
+[#16816]: https://github.com/home-assistant/home-assistant/pull/16816
+[#16817]: https://github.com/home-assistant/home-assistant/pull/16817
+[#16823]: https://github.com/home-assistant/home-assistant/pull/16823
+[#16824]: https://github.com/home-assistant/home-assistant/pull/16824
+[#16825]: https://github.com/home-assistant/home-assistant/pull/16825
+[#16826]: https://github.com/home-assistant/home-assistant/pull/16826
+[#16828]: https://github.com/home-assistant/home-assistant/pull/16828
+[#16832]: https://github.com/home-assistant/home-assistant/pull/16832
+[#16833]: https://github.com/home-assistant/home-assistant/pull/16833
+[#16838]: https://github.com/home-assistant/home-assistant/pull/16838
+[#16839]: https://github.com/home-assistant/home-assistant/pull/16839
+[#16840]: https://github.com/home-assistant/home-assistant/pull/16840
+[#16843]: https://github.com/home-assistant/home-assistant/pull/16843
+[#16844]: https://github.com/home-assistant/home-assistant/pull/16844
+[#16845]: https://github.com/home-assistant/home-assistant/pull/16845
+[#16848]: https://github.com/home-assistant/home-assistant/pull/16848
+[#16852]: https://github.com/home-assistant/home-assistant/pull/16852
+[#16853]: https://github.com/home-assistant/home-assistant/pull/16853
+[#16855]: https://github.com/home-assistant/home-assistant/pull/16855
+[#16856]: https://github.com/home-assistant/home-assistant/pull/16856
+[#16857]: https://github.com/home-assistant/home-assistant/pull/16857
+[#16858]: https://github.com/home-assistant/home-assistant/pull/16858
+[#16859]: https://github.com/home-assistant/home-assistant/pull/16859
+[#16860]: https://github.com/home-assistant/home-assistant/pull/16860
+[#16861]: https://github.com/home-assistant/home-assistant/pull/16861
+[#16863]: https://github.com/home-assistant/home-assistant/pull/16863
+[#16865]: https://github.com/home-assistant/home-assistant/pull/16865
+[#16870]: https://github.com/home-assistant/home-assistant/pull/16870
+[#16871]: https://github.com/home-assistant/home-assistant/pull/16871
+[#16874]: https://github.com/home-assistant/home-assistant/pull/16874
+[#16877]: https://github.com/home-assistant/home-assistant/pull/16877
+[#16878]: https://github.com/home-assistant/home-assistant/pull/16878
+[#16879]: https://github.com/home-assistant/home-assistant/pull/16879
+[#16882]: https://github.com/home-assistant/home-assistant/pull/16882
+[#16883]: https://github.com/home-assistant/home-assistant/pull/16883
+[#16884]: https://github.com/home-assistant/home-assistant/pull/16884
+[#16892]: https://github.com/home-assistant/home-assistant/pull/16892
+[#16893]: https://github.com/home-assistant/home-assistant/pull/16893
+[#16894]: https://github.com/home-assistant/home-assistant/pull/16894
+[#16896]: https://github.com/home-assistant/home-assistant/pull/16896
+[#16897]: https://github.com/home-assistant/home-assistant/pull/16897
+[#16900]: https://github.com/home-assistant/home-assistant/pull/16900
+[#16901]: https://github.com/home-assistant/home-assistant/pull/16901
+[#16903]: https://github.com/home-assistant/home-assistant/pull/16903
+[#16904]: https://github.com/home-assistant/home-assistant/pull/16904
+[#16906]: https://github.com/home-assistant/home-assistant/pull/16906
+[#16909]: https://github.com/home-assistant/home-assistant/pull/16909
+[#16910]: https://github.com/home-assistant/home-assistant/pull/16910
+[#16911]: https://github.com/home-assistant/home-assistant/pull/16911
+[#16914]: https://github.com/home-assistant/home-assistant/pull/16914
+[#16915]: https://github.com/home-assistant/home-assistant/pull/16915
+[#16917]: https://github.com/home-assistant/home-assistant/pull/16917
+[#16918]: https://github.com/home-assistant/home-assistant/pull/16918
+[#16919]: https://github.com/home-assistant/home-assistant/pull/16919
+[#16920]: https://github.com/home-assistant/home-assistant/pull/16920
+[#16921]: https://github.com/home-assistant/home-assistant/pull/16921
+[#16923]: https://github.com/home-assistant/home-assistant/pull/16923
+[#16931]: https://github.com/home-assistant/home-assistant/pull/16931
+[#16937]: https://github.com/home-assistant/home-assistant/pull/16937
+[#16939]: https://github.com/home-assistant/home-assistant/pull/16939
+[#16942]: https://github.com/home-assistant/home-assistant/pull/16942
+[#16949]: https://github.com/home-assistant/home-assistant/pull/16949
+[#16950]: https://github.com/home-assistant/home-assistant/pull/16950
+[#16951]: https://github.com/home-assistant/home-assistant/pull/16951
+[#16962]: https://github.com/home-assistant/home-assistant/pull/16962
+[#16965]: https://github.com/home-assistant/home-assistant/pull/16965
+[#16969]: https://github.com/home-assistant/home-assistant/pull/16969
+[#16972]: https://github.com/home-assistant/home-assistant/pull/16972
+[#16980]: https://github.com/home-assistant/home-assistant/pull/16980
+[#17001]: https://github.com/home-assistant/home-assistant/pull/17001
+[#17003]: https://github.com/home-assistant/home-assistant/pull/17003
+[#17004]: https://github.com/home-assistant/home-assistant/pull/17004
+[#17007]: https://github.com/home-assistant/home-assistant/pull/17007
+[#17010]: https://github.com/home-assistant/home-assistant/pull/17010
+[#17015]: https://github.com/home-assistant/home-assistant/pull/17015
+[#17016]: https://github.com/home-assistant/home-assistant/pull/17016
+[#17017]: https://github.com/home-assistant/home-assistant/pull/17017
+[#17018]: https://github.com/home-assistant/home-assistant/pull/17018
+[#17019]: https://github.com/home-assistant/home-assistant/pull/17019
+[#17020]: https://github.com/home-assistant/home-assistant/pull/17020
+[#17021]: https://github.com/home-assistant/home-assistant/pull/17021
+[#17022]: https://github.com/home-assistant/home-assistant/pull/17022
+[#17024]: https://github.com/home-assistant/home-assistant/pull/17024
+[#17027]: https://github.com/home-assistant/home-assistant/pull/17027
+[#17028]: https://github.com/home-assistant/home-assistant/pull/17028
+[#17029]: https://github.com/home-assistant/home-assistant/pull/17029
+[#17032]: https://github.com/home-assistant/home-assistant/pull/17032
+[#17033]: https://github.com/home-assistant/home-assistant/pull/17033
+[#17035]: https://github.com/home-assistant/home-assistant/pull/17035
+[#17036]: https://github.com/home-assistant/home-assistant/pull/17036
+[#17038]: https://github.com/home-assistant/home-assistant/pull/17038
+[#17039]: https://github.com/home-assistant/home-assistant/pull/17039
+[#17042]: https://github.com/home-assistant/home-assistant/pull/17042
+[#17047]: https://github.com/home-assistant/home-assistant/pull/17047
+[#17048]: https://github.com/home-assistant/home-assistant/pull/17048
+[#17050]: https://github.com/home-assistant/home-assistant/pull/17050
+[#17051]: https://github.com/home-assistant/home-assistant/pull/17051
+[#17052]: https://github.com/home-assistant/home-assistant/pull/17052
+[#17055]: https://github.com/home-assistant/home-assistant/pull/17055
+[#17056]: https://github.com/home-assistant/home-assistant/pull/17056
+[#17057]: https://github.com/home-assistant/home-assistant/pull/17057
+[#17059]: https://github.com/home-assistant/home-assistant/pull/17059
+[#17060]: https://github.com/home-assistant/home-assistant/pull/17060
+[#17062]: https://github.com/home-assistant/home-assistant/pull/17062
+[#17064]: https://github.com/home-assistant/home-assistant/pull/17064
+[#17065]: https://github.com/home-assistant/home-assistant/pull/17065
+[#17068]: https://github.com/home-assistant/home-assistant/pull/17068
+[#17069]: https://github.com/home-assistant/home-assistant/pull/17069
+[#17070]: https://github.com/home-assistant/home-assistant/pull/17070
+[#17073]: https://github.com/home-assistant/home-assistant/pull/17073
+[#17079]: https://github.com/home-assistant/home-assistant/pull/17079
+[#17080]: https://github.com/home-assistant/home-assistant/pull/17080
+[#17083]: https://github.com/home-assistant/home-assistant/pull/17083
+[#17085]: https://github.com/home-assistant/home-assistant/pull/17085
+[#17086]: https://github.com/home-assistant/home-assistant/pull/17086
+[#17091]: https://github.com/home-assistant/home-assistant/pull/17091
+[#17092]: https://github.com/home-assistant/home-assistant/pull/17092
+[#17093]: https://github.com/home-assistant/home-assistant/pull/17093
+[#17095]: https://github.com/home-assistant/home-assistant/pull/17095
+[#17096]: https://github.com/home-assistant/home-assistant/pull/17096
+[#17098]: https://github.com/home-assistant/home-assistant/pull/17098
+[#17099]: https://github.com/home-assistant/home-assistant/pull/17099
+[#17101]: https://github.com/home-assistant/home-assistant/pull/17101
+[#17102]: https://github.com/home-assistant/home-assistant/pull/17102
+[#17104]: https://github.com/home-assistant/home-assistant/pull/17104
+[#17108]: https://github.com/home-assistant/home-assistant/pull/17108
+[#17114]: https://github.com/home-assistant/home-assistant/pull/17114
+[#17121]: https://github.com/home-assistant/home-assistant/pull/17121
+[#17125]: https://github.com/home-assistant/home-assistant/pull/17125
+[#17127]: https://github.com/home-assistant/home-assistant/pull/17127
+[#17129]: https://github.com/home-assistant/home-assistant/pull/17129
+[#17131]: https://github.com/home-assistant/home-assistant/pull/17131
+[#17132]: https://github.com/home-assistant/home-assistant/pull/17132
+[#17135]: https://github.com/home-assistant/home-assistant/pull/17135
+[#17136]: https://github.com/home-assistant/home-assistant/pull/17136
+[#17143]: https://github.com/home-assistant/home-assistant/pull/17143
+[#17144]: https://github.com/home-assistant/home-assistant/pull/17144
+[#17145]: https://github.com/home-assistant/home-assistant/pull/17145
+[#17147]: https://github.com/home-assistant/home-assistant/pull/17147
+[#17149]: https://github.com/home-assistant/home-assistant/pull/17149
+[#17150]: https://github.com/home-assistant/home-assistant/pull/17150
+[#17153]: https://github.com/home-assistant/home-assistant/pull/17153
+[#17154]: https://github.com/home-assistant/home-assistant/pull/17154
+[#17169]: https://github.com/home-assistant/home-assistant/pull/17169
+[#17172]: https://github.com/home-assistant/home-assistant/pull/17172
+[#17173]: https://github.com/home-assistant/home-assistant/pull/17173
+[#17187]: https://github.com/home-assistant/home-assistant/pull/17187
+[#17188]: https://github.com/home-assistant/home-assistant/pull/17188
+[#17192]: https://github.com/home-assistant/home-assistant/pull/17192
+[#17207]: https://github.com/home-assistant/home-assistant/pull/17207
+[#17208]: https://github.com/home-assistant/home-assistant/pull/17208
+[#17220]: https://github.com/home-assistant/home-assistant/pull/17220
+[#17236]: https://github.com/home-assistant/home-assistant/pull/17236
+[#17238]: https://github.com/home-assistant/home-assistant/pull/17238
+[#17239]: https://github.com/home-assistant/home-assistant/pull/17239
+[#17246]: https://github.com/home-assistant/home-assistant/pull/17246
+[#17248]: https://github.com/home-assistant/home-assistant/pull/17248
+[#17259]: https://github.com/home-assistant/home-assistant/pull/17259
+[#17261]: https://github.com/home-assistant/home-assistant/pull/17261
+[#17264]: https://github.com/home-assistant/home-assistant/pull/17264
+[#17274]: https://github.com/home-assistant/home-assistant/pull/17274
+[#17275]: https://github.com/home-assistant/home-assistant/pull/17275
+[#17285]: https://github.com/home-assistant/home-assistant/pull/17285
+[#17295]: https://github.com/home-assistant/home-assistant/pull/17295
+[#17310]: https://github.com/home-assistant/home-assistant/pull/17310
+[#17318]: https://github.com/home-assistant/home-assistant/pull/17318
+[#17324]: https://github.com/home-assistant/home-assistant/pull/17324
+[@Anonym-tsk]: https://github.com/Anonym-tsk
+[@Cinntax]: https://github.com/Cinntax
+[@DanielWinks]: https://github.com/DanielWinks
+[@Danielhiversen]: https://github.com/Danielhiversen
+[@DavidDeSloovere]: https://github.com/DavidDeSloovere
+[@GP8x]: https://github.com/GP8x
+[@Julius2342]: https://github.com/Julius2342
+[@MartinHjelmare]: https://github.com/MartinHjelmare
+[@MatMaul]: https://github.com/MatMaul
+[@OttoWinter]: https://github.com/OttoWinter
+[@OverloadUT]: https://github.com/OverloadUT
+[@PaulAnnekov]: https://github.com/PaulAnnekov
+[@SNoof85]: https://github.com/SNoof85
+[@StevenLooman]: https://github.com/StevenLooman
+[@amelchio]: https://github.com/amelchio
+[@anapaulagomes]: https://github.com/anapaulagomes
+[@andersonshatch]: https://github.com/andersonshatch
+[@armills]: https://github.com/armills
+[@arsaboo]: https://github.com/arsaboo
+[@awarecan]: https://github.com/awarecan
+[@bachya]: https://github.com/bachya
+[@balloob]: https://github.com/balloob
+[@blakeblackshear]: https://github.com/blakeblackshear
+[@cdce8p]: https://github.com/cdce8p
+[@cgarwood]: https://github.com/cgarwood
+[@cgtobi]: https://github.com/cgtobi
+[@danielperna84]: https://github.com/danielperna84
+[@dbilay]: https://github.com/dbilay
+[@dippysan]: https://github.com/dippysan
+[@emontnemery]: https://github.com/emontnemery
+[@exxamalte]: https://github.com/exxamalte
+[@fabaff]: https://github.com/fabaff
+[@flowolf]: https://github.com/flowolf
+[@fronzbot]: https://github.com/fronzbot
+[@gerard33]: https://github.com/gerard33
+[@ggravlingen]: https://github.com/ggravlingen
+[@hthiery]: https://github.com/hthiery
+[@htotoo]: https://github.com/htotoo
+[@janvanhelvoort]: https://github.com/janvanhelvoort
+[@jedmeng]: https://github.com/jedmeng
+[@jeradM]: https://github.com/jeradM
+[@kirichkov]: https://github.com/kirichkov
+[@lwis]: https://github.com/lwis
+[@mbrrg]: https://github.com/mbrrg
+[@mvn23]: https://github.com/mvn23
+[@nickovs]: https://github.com/nickovs
+[@no2chem]: https://github.com/no2chem
+[@persandstrom]: https://github.com/persandstrom
+[@prophit987]: https://github.com/prophit987
+[@pvizeli]: https://github.com/pvizeli
+[@quazzie]: https://github.com/quazzie
+[@randellhodges]: https://github.com/randellhodges
+[@rohankapoorcom]: https://github.com/rohankapoorcom
+[@sander76]: https://github.com/sander76
+[@schmittx]: https://github.com/schmittx
+[@scop]: https://github.com/scop
+[@siom79]: https://github.com/siom79
+[@swilson]: https://github.com/swilson
+[@syssi]: https://github.com/syssi
+[@thomasloven]: https://github.com/thomasloven
+[@timmo001]: https://github.com/timmo001
+[@tsvi]: https://github.com/tsvi
+[@zxdavb]: https://github.com/zxdavb
+[alarm_control_panel docs]: /components/alarm_control_panel/
+[alarm_control_panel.blink docs]: /components/alarm_control_panel.blink/
+[alarm_control_panel.mqtt docs]: /components/alarm_control_panel.mqtt/
+[alarm_control_panel.simplisafe docs]: /components/alarm_control_panel.simplisafe/
+[alarm_control_panel.spc docs]: /components/alarm_control_panel.spc/
+[alert docs]: /components/alert/
+[aqualogic docs]: /components/aqualogic/
+[auth docs]: /components/auth/
+[automation docs]: /components/automation/
+[automation.webhook docs]: /docs/automation/trigger/#webhook-trigger
+[binary_sensor.blink docs]: /components/binary_sensor.blink/
+[binary_sensor.bmw_connected_drive docs]: /components/binary_sensor.bmw_connected_drive/
+[binary_sensor.ffmpeg_motion docs]: /components/binary_sensor.ffmpeg_motion/
+[binary_sensor.ffmpeg_noise docs]: /components/binary_sensor.ffmpeg_noise/
+[binary_sensor.fritzbox docs]: /components/binary_sensor.fritzbox/
+[binary_sensor.mqtt docs]: /components/binary_sensor.mqtt/
+[binary_sensor.openuv docs]: /components/binary_sensor.openuv/
+[binary_sensor.ping docs]: /components/binary_sensor.ping/
+[binary_sensor.rachio docs]: /components/binary_sensor.rachio/
+[binary_sensor.spc docs]: /components/binary_sensor.spc/
+[blink docs]: /components/blink/
+[bmw_connected_drive docs]: /components/bmw_connected_drive/
+[camera docs]: /components/camera/
+[camera.blink docs]: /components/camera.blink/
+[camera.mjpeg docs]: /components/camera.mjpeg/
+[camera.mqtt docs]: /components/camera.mqtt/
+[camera.onvif docs]: /components/camera.onvif/
+[climate docs]: /components/climate/
+[climate.evohome docs]: /components/climate.evohome/
+[climate.fritzbox docs]: /components/climate.fritzbox/
+[climate.honeywell docs]: /components/climate.honeywell/
+[climate.mqtt docs]: /components/climate.mqtt/
+[config docs]: /components/config/
+[counter docs]: /components/counter/
+[cover docs]: /components/cover/
+[cover.mqtt docs]: /components/cover.mqtt/
+[cover.myq docs]: /components/cover.myq/
+[device_sun_light_trigger docs]: /components/device_sun_light_trigger/
+[device_tracker docs]: /components/device_tracker/
+[device_tracker.tile docs]: /components/device_tracker.tile/
+[duckdns docs]: /components/duckdns/
+[emulated_hue docs]: /components/emulated_hue/
+[envisalink docs]: /components/envisalink/
+[evohome docs]: /components/evohome/
+[fan docs]: /components/fan/
+[fan.mqtt docs]: /components/fan.mqtt/
+[ffmpeg docs]: /components/ffmpeg/
+[fritzbox docs]: /components/fritzbox/
+[frontend docs]: /components/frontend/
+[google_assistant docs]: /components/google_assistant/
+[group docs]: /components/group/
+[hangouts docs]: /components/hangouts/
+[hassio docs]: /components/hassio/
+[homekit docs]: /components/homekit/
+[homekit_controller docs]: /components/homekit_controller/
+[homematic docs]: /components/homematic/
+[homematicip_cloud docs]: /components/homematicip_cloud/
+[huawei_lte docs]: /components/huawei_lte/
+[hue docs]: /components/hue/
+[ifttt docs]: /components/ifttt/
+[image_processing docs]: /components/image_processing/
+[input_boolean docs]: /components/input_boolean/
+[input_number docs]: /components/input_number/
+[input_select docs]: /components/input_select/
+[input_text docs]: /components/input_text/
+[keyboard docs]: /components/keyboard/
+[light docs]: /components/light/
+[light.hue docs]: /components/light.hue/
+[light.lifx docs]: /components/light.lifx/
+[light.mqtt docs]: /components/light.mqtt/
+[light.mqtt_json docs]: /components/light.mqtt_json/
+[light.opple docs]: /components/light.opple/
+[light.xiaomi_miio docs]: /components/light.xiaomi_miio/
+[lock docs]: /components/lock/
+[lock.mqtt docs]: /components/lock.mqtt/
+[logbook docs]: /components/logbook/
+[logger docs]: /components/logger/
+[lovelace docs]: /components/lovelace/
+[media_extractor docs]: /components/media_extractor/
+[media_player docs]: /components/media_player/
+[media_player.samsungtv docs]: /components/media_player.samsungtv/
+[media_player.sonos docs]: /components/media_player.sonos/
+[media_player.soundtouch docs]: /components/media_player.soundtouch/
+[microsoft_face docs]: /components/microsoft_face/
+[mqtt docs]: /components/mqtt/
+[netatmo docs]: /components/netatmo/
+[notify docs]: /components/notify/
+[onboarding docs]: /components/onboarding/
+[openuv docs]: /components/openuv/
+[persistent_notification docs]: /components/persistent_notification/
+[rachio docs]: /components/rachio/
+[remote docs]: /components/remote/
+[scene docs]: /components/scene/
+[script docs]: /components/script/
+[sensor docs]: /components/sensor/
+[sensor.aqualogic docs]: /components/sensor.aqualogic/
+[sensor.blink docs]: /components/sensor.blink/
+[sensor.enphase_envoy docs]: /components/sensor.enphase_envoy/
+[sensor.geo_rss_events docs]: /components/sensor.geo_rss_events/
+[sensor.gitlab_ci docs]: /components/sensor.gitlab_ci/
+[sensor.google_travel_time docs]: /components/sensor.google_travel_time/
+[sensor.jewish_calendar docs]: /components/sensor.jewish_calendar/
+[sensor.miflora docs]: /components/sensor.miflora/
+[sensor.mqtt docs]: /components/sensor.mqtt/
+[sensor.mqtt_room docs]: /components/sensor.mqtt_room/
+[sensor.netatmo_public docs]: /components/sensor.netatmo_public/
+[sensor.openweathermap docs]: /components/sensor.openweathermap/
+[sensor.scrape docs]: /components/sensor.scrape/
+[sensor.tibber docs]: /components/sensor.tibber/
+[sensor.xiaomi_aqara docs]: /components/sensor.xiaomi_aqara/
+[sonos docs]: /components/sonos/
+[spc docs]: /components/spc/
+[switch docs]: /components/switch/
+[switch.aqualogic docs]: /components/switch.aqualogic/
+[switch.flux docs]: /components/switch.flux/
+[switch.mqtt docs]: /components/switch.mqtt/
+[switch.rachio docs]: /components/switch.rachio/
+[switch.rest docs]: /components/switch.rest/
+[switch.tradfri docs]: /components/switch.tradfri/
+[switch.volvooncall docs]: /components/switch.volvooncall/
+[switch.xiaomi_aqara docs]: /components/switch.xiaomi_aqara/
+[telegram_bot docs]: /components/telegram_bot/
+[tibber docs]: /components/tibber/
+[timer docs]: /components/timer/
+[tradfri docs]: /components/tradfri/
+[upnp docs]: /components/upnp/
+[vacuum docs]: /components/vacuum/
+[vacuum.xiaomi_miio docs]: /components/vacuum.xiaomi_miio/
+[verisure docs]: /components/verisure/
+[weather docs]: /components/weather/
+[weather.darksky docs]: /components/weather.darksky/
+[weather.openweathermap docs]: /components/weather.openweathermap/
+[webhook docs]: /components/webhook/
+[websocket_api docs]: /components/websocket_api/
+[xiaomi_aqara docs]: /components/xiaomi_aqara/
+[zoneminder docs]: /components/zoneminder/
+[zwave docs]: /components/zwave/
diff --git a/source/getting-started/index.markdown b/source/getting-started/index.markdown
index 9850f162ac0c..b92842ad5a6a 100644
--- a/source/getting-started/index.markdown
+++ b/source/getting-started/index.markdown
@@ -11,10 +11,10 @@ footer: true
The goal of this getting started guide is to install [Hass.io](/hassio/) on a Raspberry Pi. Hass.io is our own all in one solution that turns your Raspberry Pi or another device into the ultimate home automation hub.
-Follow this guide if you want to get started with Home Assistant easily, or if you have no or little Linux experience. For advanced users or if you have no Raspberry Pi at hand, check our [alternative installation methods](/docs/installation/). The [FAQ](/faq/#home-assistant-vs-hassio) explains more about the differences.
+Follow this guide if you want to get started with Home Assistant easily, or if you have no or little Linux experience.
-