diff --git a/.themes/classic/source/javascripts/libs/swfobject-dynamic.js b/.themes/classic/source/javascripts/libs/swfobject-dynamic.js index b021614524f..a9442349422 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 901bd01abf4..7896bba2547 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 41ad3357a8b..9e3324252da 100644 --- a/plugins/filters.rb +++ b/plugins/filters.rb @@ -32,7 +32,7 @@ module Jekyll # 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 @@ module Jekyll # 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 3a488142bae..39d45f29a5e 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 cdb9a3becf2..a6255287853 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 898646bc7cf..85459fd51bb 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 0ac8d019945..755d039a2f7 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 aa7d509c18b..42519d3cfed 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 e8377a1b5a7..b002ff1a4a1 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 479b05c98f6..0fa91e88684 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 a98ad9050a6..a46cbf75273 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/alarm_control_panel.simplisafe.markdown b/source/_components/alarm_control_panel.simplisafe.markdown index 1dcad35d05e..4ad3f7e3057 100644 --- a/source/_components/alarm_control_panel.simplisafe.markdown +++ b/source/_components/alarm_control_panel.simplisafe.markdown @@ -12,33 +12,10 @@ ha_release: 0.24 ha_category: Alarm --- -The `simplisafe` platform enables the ability to control a [SimpliSafe](http://simplisafe.com/) control panel. +The `simplisafe` alarm control panel platform gives users the ability to +control a SimpliSafe home alarm system. -To enable this, add the following lines to your `configuration.yaml`: +You must have the [`simplisafe` component](/components/simplisafe/) configured +to use this platform. After configuring that component, any alarm control +panels defined will automatically appear. -```yaml -# Example configuration.yaml entry -alarm_control_panel: - platform: simplisafe - username: YOUR_USERNAME - password: YOUR_PASSWORD -``` - -{% configuration %} -username: - description: Username for the SimpliSafe account. - required: true - type: string -password: - description: Password for SimpliSafe account. - required: true - type: string -name: - description: The name of the alarm. Default is the SimpliSafe alarm id. - required: false - type: string -code: - description: Specifies a code to enable or disable the alarm in the frontend. - required: false - type: string -{% endconfiguration %} diff --git a/source/_components/alert.markdown b/source/_components/alert.markdown index bbb2e6b7289..033cd918873 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 b11ac13595e..bc6c493324a 100644 --- a/source/_components/android_ip_webcam.markdown +++ b/source/_components/android_ip_webcam.markdown @@ -17,7 +17,13 @@ The `android_ip_webcam` component turns an Android phone into a network camera w It's setup as an MJPEG camera and all settings as switches inside of Home Assistant. You can also expose the sensors. If you have multiple phones, you can use all options inside a list. -To set it up, download [the IP Webcam app][app], and add the following information to your `configuration.yaml` file: +## {% linkable_title Setup %} + +Download [the IP Webcam app](https://play.google.com/store/apps/details?id=com.pas.webcam) and launch the app. You will be able to the IP address of the device. + +## {% linkable_title Configuration %} + +To set it up the component, add the following information to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -25,49 +31,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: The audio connections + battery_level: + description: The battery level + battery_temp: + description: The battery temperature + battery_voltage: + description: The battery voltage + light: + description: The light level + motion: + description: Motion detection + pressure: + description: The current pressure + proximity: + description: The proximity + sound: + description: The sound detection + video_connections: + description: The 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: Control the exposure lock + ffc: + description: Control the front-facing camera. + focus: + description: Control the focus. + gps_active: + description: Control the GPS. + night_vision: + description: Control the night vision. + overlay: + description: Control the overlay. + torch: + description: Control the torch. + whitebalance_lock: + description: Control the white balance lock. + video_recording: + description: Control the 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 @@ -104,4 +153,3 @@ android_ip_webcam: - torch ``` -[app]: https://play.google.com/store/apps/details?id=com.pas.webcam diff --git a/source/_components/apple_tv.markdown b/source/_components/apple_tv.markdown index e9008af6385..c9a0e3f0606 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 9b2faadd988..fc630149a00 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 f1c165381ec..460500c24c3 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 f35f488a7ea..66e4c98f4fa 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 c206c3cb927..0bf0512d265 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 39320bb6723..f734d4afa5b 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.enocean.markdown b/source/_components/binary_sensor.enocean.markdown index fe4ea3dd681..ff59c3f8e06 100644 --- a/source/_components/binary_sensor.enocean.markdown +++ b/source/_components/binary_sensor.enocean.markdown @@ -30,11 +30,21 @@ binary_sensor: id: [0x01,0x90,0x84,0x3C] ``` -Configuration variables: - -- **id** (*Required*): The ID of the device. This is the 4 bytes long number written on the dimmer. -- **name** (*Optional*): An identifier for the switch in the frontend. -- **device_class** (*Optional*): The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend. +{% configuration %} +id: + description: The ID of the device. This is the 4 bytes long number written on the dimmer. + required: true + type: list +name: + description: An identifier for the switch in the frontend. + required: false + default: EnOcean binary sensor + type: string +device_class: + description: The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend. + required: false + type: device_class +{% endconfiguration %} EnOcean binary sensors only generate 'button_pressed' events. The event data has following four fields: diff --git a/source/_components/binary_sensor.ffmpeg_motion.markdown b/source/_components/binary_sensor.ffmpeg_motion.markdown index 0607a0127af..eaf15a86a79 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 842be8203e1..ae2077cd298 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 6f5ff097906..97004e94b8e 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 62f5765dd3e..fbc300c2984 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 42b94292226..132c59298e0 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 cce9c46eb0f..0f9c17dea93 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 369205ad94a..56d0395e8cf 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.ring.markdown b/source/_components/binary_sensor.ring.markdown index c2f48c7163c..f06297d9cec 100644 --- a/source/_components/binary_sensor.ring.markdown +++ b/source/_components/binary_sensor.ring.markdown @@ -25,10 +25,16 @@ binary_sensor: - platform: ring ``` -Configuration variables: - -- **monitored_conditions** array (*Optional*): Conditions to display in the frontend. The following conditions can be monitored. If not specified, all conditions below will be enabled. - - **ding**: Return a boolean value when the doorbell button was pressed. - - **motion**: Return a boolean value when a movement was detected by the Ring doorbell. +{% configuration %} +monitored_conditions: + description: Conditions to display in the frontend. The following conditions can be monitored. If not specified, all conditions below will be enabled. + required: false + type: list + keys: + ding: + description: Return a boolean value when the doorbell button was pressed. + motion: + description: Return a boolean value when a movement was detected by the Ring doorbell. +{% endconfiguration %} Currently it supports doorbell, external chimes and stickup cameras. diff --git a/source/_components/binary_sensor.skybell.markdown b/source/_components/binary_sensor.skybell.markdown index 25558eb1cd5..5ca42b98c33 100644 --- a/source/_components/binary_sensor.skybell.markdown +++ b/source/_components/binary_sensor.skybell.markdown @@ -28,8 +28,14 @@ binary_sensor: - motion ``` -Configuration variables: - -- **monitored_conditions** array (*Required*): Conditions to display in the frontend. The following conditions can be monitored. - - **button**: Return a boolean value when the doorbell button was pressed. - - **motion**: Return a boolean value when movement was detected by the Skybell doorbell. +{% configuration %} +monitored_conditions: + type: list + required: true + description: Conditions to display in the frontend. The following conditions can be monitored. + keys: + button: + description: Returns whether the doorbell button was pressed. + motion: + description: Returns whether movement was detected by the Skybell doorbell. +{% endconfiguration %} diff --git a/source/_components/binary_sensor.tcp.markdown b/source/_components/binary_sensor.tcp.markdown index ff5aed010c6..e5651d954b6 100644 --- a/source/_components/binary_sensor.tcp.markdown +++ b/source/_components/binary_sensor.tcp.markdown @@ -30,12 +30,37 @@ binary_sensor: Configuration options for the a TCP Sensor: -- **name** (*Required*): The name you'd like to give the sensor in Home Assistant. -- **host** (*Required*): The hostname/IP address to connect to. -- **port** (*Required*): The port to connect to the host on. -- **payload** (*Required*): What to send to the host in order to get the response we're interested in. -- **value_on** (*Required*): The value returned when the device is "on". -- **timeout** (*Optional*): How long in seconds to wait for a response from the service before giving up and disconnecting. Defaults to 10. -- **value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the value. By default it's assumed that the entire response is the value. -- **buffer_size** (*Optional*): The size of the receive buffer in bytes. Set this to a larger value if you expect to receive a response larger than the default. Defaults to 1024. - +{% configuration %} +name: + required: true + description: The name you'd like to give the sensor in Home Assistant. + type: string +host: + required: true + description: The hostname/IP address to connect to. + type: string +port: + required: true + description: The port to connect to the host on. + type: integer +payload: + required: true + description: What to send to the host in order to get the response we're interested in. + type: string +value_on: + required: true + description: The value returned when the device is "on". + type: string +timeout: + required: false + description: How long in seconds to wait for a response from the service before giving up and disconnecting. Defaults to 10. + type: integer +value_template: + required: false + description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the value. By default it's assumed that the entire response is the value. + type: string +buffer_size: + required: false + description: The size of the receive buffer in bytes. Set this to a larger value if you expect to receive a response larger than the default. Defaults to 1024. + type: integer +{% endconfiguration %} \ No newline at end of file diff --git a/source/_components/binary_sensor.template.markdown b/source/_components/binary_sensor.template.markdown index d2365b7638c..bf0b6d75594 100644 --- a/source/_components/binary_sensor.template.markdown +++ b/source/_components/binary_sensor.template.markdown @@ -14,7 +14,7 @@ logo: home-assistant.png ha_qa_scale: internal --- -The `template` platform supports sensors which breaks out the `state` and +The `template` platform supports sensors which break out the `state` and `state_attributes` from other entities. The state of a Template Binary Sensor can only be `on` or `off`. diff --git a/source/_components/binary_sensor.xiaomi_aqara.markdown b/source/_components/binary_sensor.xiaomi_aqara.markdown index e782c1e9e9a..190d72b2c3c 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/blink.markdown b/source/_components/blink.markdown index a764ec59ab7..2a26969ceab 100644 --- a/source/_components/blink.markdown +++ b/source/_components/blink.markdown @@ -13,11 +13,11 @@ ha_release: "0.40" ha_iot_class: "Cloud Polling" --- -The `blink` component lets you view camera images and motion events -from [Blink](http://blinkforhome.com) camera and security systems. +The `blink` component lets you view camera images and motion events from [Blink](http://blinkforhome.com) camera and security systems. -You will need your Blink login information (username, which is -usually your email address, and password) to use this module. +## {% linkable_title Setup %} + +You will need your Blink login information (username, which is usually your email address, and password) to use this module. ## {% linkable_title Configuration %} @@ -32,43 +32,49 @@ blink: {% configuration %} username: - description: The username for accessing your Blink account. - required: true - type: string + description: The username for accessing your Blink account. + required: true + type: string password: - description: The password for accessing your Blink account. - required: true - type: string + description: The password for accessing your Blink account. + required: true + type: string scan_interval: - description: How frequently to query for new data. Defaults to 60 seconds. - required: false - type: integer + description: How frequently to query for new data. Defaults to 60 seconds. + required: false + type: integer binary_sensors: - description: Binary sensor configuration options. - required: false - type: map - keys: - monitored_conditions: - description: The conditions to create sensors from. - required: false - type: list - default: all (`motion_enabled`, `motion_detected`) + description: Binary sensor configuration options. + required: false + type: map + keys: + monitored_conditions: + description: The conditions to create sensors from. + required: false + type: list + default: all (`motion_enabled`, `motion_detected`) sensors: - description: Sensor configuration options. - required: false - type: map - keys: - monitored_conditions: - description: The conditions to create sensors from. - required: false - type: list - default: all (`battery`, `temperature`, `status`, `wifi_strength`) + description: Sensor configuration options. + required: false + type: map + keys: + monitored_conditions: + description: The conditions to create sensors from. + required: false + type: list + default: all (`battery`, `temperature`, `status`, `wifi_strength`) {% endconfiguration %} +Once Home Assistant starts, the `blink` component will create the following platforms: + +- An `alarm_control_panel` to arm/disarm the whole blink system (note, `alarm_arm_home` is not implemented and will not actually do anything, despite it being an option in the GUI). +- A `camera` for each camera linked to your Blink sync module. +- A `sensor` per camera for every item listed in `monitored_conditions` (if no items specified in your `configuration.yaml`, all of them will be added by default). +- A `binary_sensor` for each item listed in `monitored_conditions` (if no items specified in your `configuration.yaml`, all of them will be added by default). Since the cameras are battery operated, setting the `scan_interval` must be done with care so as to not drain the battery too quickly, or hammer Blink's servers with too many API requests. The cameras can be manually updated via the `trigger_camera` service which will ignore the throttling caused by `scan_interval`. As a note, all of the camera-specific sensors are only polled when a new image is requested from the camera. This means that relying on any of these sensors to provide timely and accurate data is not recommended. -**Note:** Each camera reports two different states, one as `sensor.blink__status` and the other as `binary_sensor.blink__motion_enabled`. The `motion_enabled` property reports if the `camera` is ready to detect motion *regardless if the system is actually armed**. The `status` property is more descriptive, and can be one of the following states: +Please note that each camera reports two different states: one as `sensor.blink__status` and the other as `binary_sensor.blink__motion_enabled`. The `motion_enabled` property reports if the `camera` is ready to detect motion *regardless if the system is actually armed**. The `status` property is more descriptive, and can be one of the following states: - `disabled`: System is disabled. - `disarmed`: Camera and/or system are disarmed and not ready to detect motion. @@ -94,7 +100,6 @@ blink: - wifi_strength ``` - ## {% linkable_title Services %} ### {% linkable_title `blink.blink_update` %} @@ -111,7 +116,7 @@ Trigger a camera to take a new still image. ### {% linkable_title `blink.save_video` %} -Save the last recorded video of a camera to a local file. Note that in most cases, home-assistant will need to know that the directory is writable via the `whitelist_external_dirs` in your `configuration.yaml` file (see example below). +Save the last recorded video of a camera to a local file. Note that in most cases, Home Assistant will need to know that the directory is writable via the `whitelist_external_dirs` in your `configuration.yaml` file (see example below). | Service Data Attribute | Optional | Description | |------------------------|----------|------------------------------------------| @@ -126,3 +131,7 @@ homeassistant: - '/tmp' - '/path/to/whitelist' ``` + +### {% linkable_title Other Services %} + +In addition to the services mentioned above, there are generic `camera` and `alarm_control_panel` services available for use as well. The `camera.enable_motion_detection` and `camera.disable_motion_detection` services allow for individual cameras to be enabled and disabled, respectively, within the Blink system. The `alarm_control_panel.alarm_arm_away` and `alarm_control_panel.alarm_disarm` services allow for the whole system to be armed and disarmed, respectively. diff --git a/source/_components/bmw_connected_drive.markdown b/source/_components/bmw_connected_drive.markdown index ce7688c9d9d..064d426cbb8 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 1c074f5ed81..ffa9233da25 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 26eb74febcd..b0f3c63b851 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 481c835a153..e87ea211844 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 c9d1aabd505..8215b0f2ffb 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 99f7e03aa7e..a5c9d503d68 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 %}

diff --git a/source/_components/camera.logi_circle.markdown b/source/_components/camera.logi_circle.markdown index 1b525400700..beed202eafa 100644 --- a/source/_components/camera.logi_circle.markdown +++ b/source/_components/camera.logi_circle.markdown @@ -31,13 +31,17 @@ camera: - platform: logi_circle ``` -Configuration variables: - -- **scan_interval**: (*Optional*): How frequently to query for new camera stills. Defaults to 60 seconds. +{% configuration %} +scan_interval: + description: How frequently to query for new camera stills, value are in seconds. + required: false + default: 60 + type: integer +{% endconfiguration %} ### {% linkable_title Service `camera.logi_circle_livestream_record` %} -Initiates a recording of the camera's live stream. +Initiates a recording of the camera's live stream. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | @@ -60,10 +64,10 @@ The path part of `filename` must be an entry in the `whitelist_external_dirs` in ### {% linkable_title Service `camera.logi_circle_set_config` %} -Sets an configuration property for your camera. +Sets a configuration property for your camera. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | yes | Name(s) of entities to set the operation mode for, e.g., `camera.living_room_camera`. If blank, targets all Logi Circle cameras. | | `mode` | no | Configuration property to set. Allowed values: `BATTERY_SAVING`, `LED`, `PRIVACY_MODE` | -| `value` | no | Mode value. Allowed values: `true`, `false` | \ No newline at end of file +| `value` | no | Mode value. Allowed values: `true`, `false` | diff --git a/source/_components/camera.netatmo.markdown b/source/_components/camera.netatmo.markdown index e452d26b413..eb11c1a1a49 100644 --- a/source/_components/camera.netatmo.markdown +++ b/source/_components/camera.netatmo.markdown @@ -29,11 +29,19 @@ camera: - platform: netatmo ``` -Configuration variables: - -- **home** (*Optional*): Will display the cameras of this home only. -- **cameras** array (*Optional*): Cameras to use. Multiple entities allowed. - - **camera_name**: Name of the camera to display. +{% configuration %} +home: + description: Will display the cameras of this home only. + required: false + type: string +cameras: + description: Cameras to use. Multiple entities allowed. + required: false + type: list + keys: + camera_name: + description: Name of the camera to display. +{% endconfiguration %} If **home** and **cameras** are not provided, all cameras will be displayed. For more control over your cameras check the configuration sample below. diff --git a/source/_components/camera.onvif.markdown b/source/_components/camera.onvif.markdown index 649cad832ff..6d34a37788c 100644 --- a/source/_components/camera.onvif.markdown +++ b/source/_components/camera.onvif.markdown @@ -24,15 +24,38 @@ camera: host: 192.168.1.111 ``` -Configuration variables: - -- **host** (*Required*): An IP or hostname of the camera. -- **name** (*Optional*): Override the name of your camera. -- **username** (*Optional*): The username for the camera. -- **password** (*Optional*): The password for the camera. -- **port** (*Optional*): The port for the camera. This defaults to 5000. -- **profile** (*Optional*): Video profile that will be used to obtain the stream. This defaults to 0. More details below. -- **extra_arguments** (*Optional*): Extra options to pass to `ffmpeg`, e.g., image quality or video filter options. More details in [FFmpeg component](/components/ffmpeg). +{% configuration %} +host: + description: An IP or hostname of the camera. + required: true + type: string +name: + description: Override the name of your camera. + required: false + type: string +username: + description: The username for the camera. + required: false + type: string +password: + description: The password for the camera. + required: false + type: string +port: + description: The port for the camera. + required: false + default: 5000 + type: integer +profile: + description: Video profile that will be used to obtain the stream, more details below. + required: false + default: 0 + type: integer +extra_arguments: + description: "Extra options to pass to `ffmpeg`, e.g., image quality or video filter options. More details in [FFmpeg component](/components/ffmpeg)." + required: false + type: string +{% endconfiguration %} Most of the Onvif cameras support more than one audio/video Profile. Each profile provides different image quality. Usually, the first profile has the highest quality, and it is the profile used by default. However, you may want to use a lower quality image. One of the reasons may be that your hardware isn't able to render the highest quality image in real-time - especially when running on Raspberry Pi. Therefore you can choose which profile do you want to use by setting in config `profile` variable. diff --git a/source/_components/camera.ring.markdown b/source/_components/camera.ring.markdown index 7499d2a14a5..98d03ff0e65 100644 --- a/source/_components/camera.ring.markdown +++ b/source/_components/camera.ring.markdown @@ -25,10 +25,17 @@ camera: - platform: ring ``` -Configuration variables: - -- **ffmpeg_arguments**: (*Optional*): Extra options to pass to ffmpeg, e.g., image quality or video filter options. -- **scan_interval**: (*Optional*): How frequently to query for new video. Defaults to 90 seconds. +{% configuration %} +ffmpeg_arguments: + description: Extra options to pass to ffmpeg, e.g., image quality or video filter options. + required: false + type: string +scan_interval: + description: How frequently to query for new video in seconds. + required: false + default: 90 + type: integer +{% endconfiguration %} **Note:** To be able to playback the last capture, it is required to install the `ffmpeg` component. Make sure to follow the steps mentioned at [FFMPEG](/components/ffmpeg/) documentation. diff --git a/source/_components/camera.synology.markdown b/source/_components/camera.synology.markdown index 93a2e78ff36..78010327625 100644 --- a/source/_components/camera.synology.markdown +++ b/source/_components/camera.synology.markdown @@ -16,6 +16,8 @@ ha_iot_class: "Local Polling"   The `synology` camera platform allows you to watch the live streams of your [Synology](https://www.synology.com/) Surveillance Station based IP cameras in Home Assistant. +## {% linkable_title Configuration %} + To enable your Surveillance Station cameras in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -27,16 +29,43 @@ camera: password: YOUR_PASSWORD ``` -Configuration variables: +{% configuration %} +name: + description: A name for this Synology camera. + required: false + default: Synology Camera + type: string +url: + description: The URL to your Synology, including port. + required: true + type: string +username: + description: The username for accessing Surveillance Station. + required: true + type: string +password: + description: The password for accessing Surveillance Station. + required: true + type: string +timeout: + description: The timeout in seconds used when connecting to the Surveillance Station. + required: false + default: 5 + type: integer +whitelist: + description: A list of which cameras you want to add, the names must be the same as in Surveillance Station. If omitted all cameras are added. + required: false + type: list +verify_ssl: + description: Verify SSL/TLS certificate for HTTPS request. + required: false + default: true + type: boolean +{% endconfiguration %} -- **url** (*Required*): The URL to your synology, including port. -- **username** (*Required*): The username for accessing surveillance station. -- **password** (*Required*): The password for accessing surveillance station. -- **timeout** (*Optional*): The timeout in seconds used when connecting to the Surveillance Station. Defaults to 5. -- **whitelist** (*Optional*): A list of which cameras you want to add, the names must be the same as in Surveillance Station. If omitted all cameras are added. -- **verify_ssl** (*Optional*): True to require a valid certificate, False to disable certificate checking. Defaults to `True`. +## {% linkable_title Full example %} -A full sample configuration for the `synology` platform is shown below: +A full sample configuration for the `synology` camera platform is shown below: ```yaml # Example configuration.yaml entry @@ -50,5 +79,5 @@ camera: ```

-Most users will need to set `verify_ssl` to false unless they have installed a valid SSL certificate in place of the built in self-signed certificate. +Most users will need to set `verify_ssl` to false unless they have installed a valid SSL/TLS certificate in place of the built in self-signed certificate.

diff --git a/source/_components/camera.xiaomi.markdown b/source/_components/camera.xiaomi.markdown index 14c4f935686..05e213825de 100644 --- a/source/_components/camera.xiaomi.markdown +++ b/source/_components/camera.xiaomi.markdown @@ -36,7 +36,7 @@ Hassbian users: Don't forget to install `ffmpeg` support on your platform, other

-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/camera.yi.markdown b/source/_components/camera.yi.markdown index e366ab46e32..dada5b76b48 100644 --- a/source/_components/camera.yi.markdown +++ b/source/_components/camera.yi.markdown @@ -65,14 +65,34 @@ camera: password: my_password_123 ``` -Configuration variables: - -- **name** (*Required*): A human-friendly name for the camera. -- **host** (*Required*): The IP address or hostname of the camera. -- **password** (*Required*): The password to the FTP server on the camera (from above). -- **path** (*Optional*): The path to the raw MP4 files. Defaults to `/tmp/sd/record`. -- **username** (*Optional*): The user that can access the FTP server. Defaults to `root`. -- **ffmpeg_arguments** (*Optional*): Extra options to pass to `ffmpeg` (e.g., image quality or video filter options). +{% configuration %} +name: + description: A human-friendly name for the camera. + required: true + type: string +host: + description: The IP address or hostname of the camera. + required: true + type: string +password: + description: The password for the FTP server running on the camera. Can be any string as the current firmware doesn't allow setting FTP passwords. + required: true + type: string +path: + description: The path to the raw MP4 files. + required: false + default: /media/mmcblk0p1/record + type: string +username: + description: The user that can access the FTP server. + required: false + default: root + type: string +ffmpeg_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/climate.generic_thermostat.markdown b/source/_components/climate.generic_thermostat.markdown index 274ac0377f9..89d09a5981e 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.honeywell.markdown b/source/_components/climate.honeywell.markdown index 64270441aac..bb174d8f5c8 100644 --- a/source/_components/climate.honeywell.markdown +++ b/source/_components/climate.honeywell.markdown @@ -33,12 +33,38 @@ climate: Scan interval is expressed in seconds. Omitting scan_interval may result in too-frequent polling and cause you to rate-limited by Honeywell.

-Configuration variables: - -- **username** (*Required*): The username of an user with access. -- **password** (*Required*): The password for your given admin account. -- **region** (*Optional*): Region identifier (either 'eu' or 'us'). Defaults to 'eu' if not provided. -- **scan_interval**(*Optional*): Scan interval is expressed in seconds. Recommended value of 600 seconds. Default value is 120 seconds. Omitting scan_interval may result in too-frequent polling and cause you to rate-limited by Honeywell. -- **away_temperature** (*Optional*) (*only for eu region*): Heating setpoint when away mode is on. If omitted it defaults to 16.0 deg C. -- **away_cool_temperature** (*Optional*) (*only for us region*): Cooling setpoint when away mode is on. If omitted it defaults to 30.0 deg C. -- **away_heat_temperature** (*Optional*) (*only for us region*): Heating setpoint when away mode is on. If omitted it defaults to 16.0 deg C. +{% configuration %} +username: + description: The username of an user with access. + required: true + type: string +password: + description: The password for your given admin account. + required: true + type: string +region: + description: Region identifier (either 'eu' or 'us'). + required: false + default: eu + type: string +scan_interval: + description: Scan interval is expressed in seconds. Recommended value of 600 seconds. Omitting scan_interval may result in too-frequent polling and cause you to rate-limited by Honeywell. + required: false + default: 120 + type: integer +away_temperature: + description: "(*only for eu region*) Heating setpoint when away mode is on, in deg C." + required: false + default: 16.0 + type: float +away_cool_temperature: + description: "(*only for us region*) Cooling setpoint when away mode is on, in deg C." + required: false + default: 30.0 + type: float +away_heat_temperature: + description: "(*only for us region*) Heating setpoint when away mode is on, in deg C." + required: false + default: 16.0 + type: float +{% endconfiguration %} diff --git a/source/_components/climate.mill.markdown b/source/_components/climate.mill.markdown new file mode 100644 index 00000000000..aa13ac75be1 --- /dev/null +++ b/source/_components/climate.mill.markdown @@ -0,0 +1,39 @@ +--- +layout: page +title: "Mill heater" +description: "Instructions on how to integrate Mill heater into Home Assistant." +date: 2018-10-10 15:00 +0200 +sidebar: true +comments: false +sharing: true +footer: true +logo: mill.png +ha_category: Climate +ha_release: 0.81 +ha_iot_class: "Cloud Polling" +--- + +Integrates Mill heater into Home Assistant. + +The component requires that the heater is set as an [independent device](https://millheat.zendesk.com/hc/en-us/articles/115001123491-What-is-an-Independent-device-) in the Mill app. + + +To enable this platform, add the following lines to your `configuration.yaml` file: + +```yaml +climate: + - platform: mill + username: email@gmail.com + password: pswd +``` + +{% configuration %} +username: + description: Your registered Mill email. + required: true + type: string +password: + description: Your Mill password. + required: true + type: string +{% endconfiguration %} diff --git a/source/_components/climate.netatmo.markdown b/source/_components/climate.netatmo.markdown index a90a1f4353c..bb9e538de08 100644 --- a/source/_components/climate.netatmo.markdown +++ b/source/_components/climate.netatmo.markdown @@ -26,11 +26,19 @@ climate: - platform: netatmo ``` -Configuration variables: - -- **relay** (*Optional*): Will display the thermostats of this relay only. -- **thermostat** array (*Optional*): Thermostat to use. - - **thermostat_name**: Name of the thermostat to display. +{% configuration %} +relay: + description: Will display the thermostats of this relay only. + required: false + type: string +thermostat: + description: Thermostat to use. + required: false + type: list + keys: + thermostat_name: + description: Name of the thermostat to display. +{% endconfiguration %} If **relay** and **thermostat** are not provided, all thermostats will be displayed. diff --git a/source/_components/climate.sensibo.markdown b/source/_components/climate.sensibo.markdown index 02003d4aa6a..85577dcdf81 100644 --- a/source/_components/climate.sensibo.markdown +++ b/source/_components/climate.sensibo.markdown @@ -24,12 +24,16 @@ climate: api_key: ``` -Configuration variables: - -- **api_key** (*Required*): Your API key. -- **id** (*Optional*): A unit ID or a list of IDs. If none specified then all units accessible by the `api_key` will be used. - -To get your API key visit +{% configuration %} +api_key: + description: Your Sensibo API key (To get your API key visit ). + required: true + type: string +id: + description: A unit ID or a list of IDs. If none specified then all units accessible by the `api_key` will be used. + required: false + type: string +{% endconfiguration %}

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/comfoconnect.markdown b/source/_components/comfoconnect.markdown index 7394042b84d..6494ed5c8a6 100644 --- a/source/_components/comfoconnect.markdown +++ b/source/_components/comfoconnect.markdown @@ -28,13 +28,32 @@ comfoconnect: host: 192.168.1.213 ``` -Configuration variables: - -- **host** (*Required*): The ip or hostname of the ComfoConnect LAN C bridge. -- **name** (*Optional*): The name of this device as you want to see it in Home Assistant. -- **token** (*Optional*): The token you want to use when registering with the device. This is a random 32 char hexadecimal string. The default value is `00000000000000000000000000000001`. -- **user_agent** (*Optional*): The name you want to supply when registering with the device. The default value is `Home Assistant`. -- **pin** (*Optional*): The pin code to use when registering. This is `0000` by default. You only need to change this if you have changed the factory default pin. +{% configuration %} +host: + description: The IP or hostname of the ComfoConnect LAN C bridge. + required: true + type: string +name: + description: The name of this device as you want to see it in Home Assistant. + required: false + default: ComfoAirQ + type: string +token: + description: The token you want to use when registering with the device. This is a random 32 char hexadecimal string. + required: false + default: "`00000000000000000000000000000001`" + type: string +user_agent: + description: The name you want to supply when registering with the device. + required: false + default: "`Home Assistant`" + type: string +pin: + description: The pin code to use when registering. You only need to change this if you have changed the factory default pin. + required: false + default: "`0000`" + type: integer +{% endconfiguration %} To register the sensors, add the following to your `configuration.yaml` file: diff --git a/source/_components/cover.knx.markdown b/source/_components/cover.knx.markdown index d6d3733c1e1..4e43d315cf1 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.opengarage.markdown b/source/_components/cover.opengarage.markdown index d9327afa2a6..2675766c3fa 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/cover.rflink.markdown b/source/_components/cover.rflink.markdown index bc4d18538db..ad441726553 100644 --- a/source/_components/cover.rflink.markdown +++ b/source/_components/cover.rflink.markdown @@ -87,8 +87,6 @@ Device configuration variables: - **aliases** (*Optional*): Alternative Rflink ID's this device is known by. - **fire_event** (*Optional*): Fire a `button_pressed` event if this device is turned on or off (default: False). - **signal_repetitions** (*Optional*): Repeat every Rflink command this number of times (default: 1). -- **fire_event_** (*Optional*): Set default `fire_event` for RFLink switch devices (see below). -- **signal_repetitions** (*Optional*): Set default `signal_repetitions` for RFLink switch devices (see below). - **group** (*Optional*): Allow light to respond to group commands (ALLON/ALLOFF). (default: yes) - **group_aliases** (*Optional*): `aliases` which only respond to group commands. - **no_group_aliases** (*Optional*): `aliases` which do not respond to group commands. diff --git a/source/_components/datadog.markdown b/source/_components/datadog.markdown index 7a3ec052c74..c78a0c8bd46 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 fbf21196500..f33d631b8f3 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 e84c37954b0..5ccea64ab67 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 c109862af84..e4d8880f57e 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 83c21c615b7..421a6e0708b 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 ce8890a0ed7..22c67170fab 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 589241b8eb6..ef48b6abac6 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 826046d029f..d4bb1a028b6 100644 --- a/source/_components/device_tracker.ddwrt.markdown +++ b/source/_components/device_tracker.ddwrt.markdown @@ -25,11 +25,30 @@ 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 +ssl: + description: Whether to connect via HTTPS. + required: false + type: boolean + default: false +verify_ssl: + description: If SSL/TLS verification for HTTPS resources needs to be turned off (for self-signed certs, etc.) + required: false + type: boolean + default: true +{% 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 ed813ae1c37..07d2eee540f 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 be09d277a1b..e6f68b9efa8 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 a57ba44d4b4..6867eaae007 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 d2d9fc506be..01e8b8b96bb 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 70cc3e17a14..1204e61f77a 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 0cc22363fd9..601771a86bd 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 c95813e3478..3e74b5ed972 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 3707d5ca1cd..c436e507c84 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 da1dceee4d9..5476d7902bc 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 cf8f006de1f..bb40d07ea51 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 8bdcacc8cde..78f05695e00 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 a94ea14aeda..aa268fe6fcf 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 2f4b0f5a18e..f9f720ac730 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 a3de574f912..66838f654e4 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 `- - `. This functionality can be controlled in 2 ways: -1. The configuration variable `waypoints` can be set to `False` which will disable importing waypoints for all users. +1. The configuration variable `waypoints` can be set to `false` which will disable importing waypoints for all users. 2. The configuration variable `waypoint_whitelist` can contain a list of users who are allowed to import waypoints. diff --git a/source/_components/device_tracker.sky_hub.markdown b/source/_components/device_tracker.sky_hub.markdown index 792aece8a85..0b9c175bf93 100644 --- a/source/_components/device_tracker.sky_hub.markdown +++ b/source/_components/device_tracker.sky_hub.markdown @@ -23,9 +23,12 @@ device_tracker: - platform: sky_hub ``` -Configuration variables: - -- **host** (*Optional*): The IP address of your router. Defaults to `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.snmp.markdown b/source/_components/device_tracker.snmp.markdown index 29c2a371378..a7fe4236902 100644 --- a/source/_components/device_tracker.snmp.markdown +++ b/source/_components/device_tracker.snmp.markdown @@ -25,7 +25,7 @@ The following OID examples pull the current MAC Address table from a router. Thi |---|---|---|---| | Mikrotik | unknown RouterOS version/model | `1.3.6.1.4.1.14988.1.1.1.2.1.1` | | Mikrotik | RouterOS 6.x on RB2011 | `1.3.6.1.2.1.4.22.1.2` | -| Aruba | (untested) | `1.3.6.1.4.1.14823.2.3.3.1.2.4.1.2` | +| Aruba | (untested) | `1.3.6.1.4.1.14823.2.3.3.1.2.4.1.1` | | pfSense | 2.2.4 | `1.3.6.1.2.1.4.22.1.2` | | BiPAC | 7800DXL Firmware 2.32e | `1.3.6.1.2.1.17.7.1.2.2.1.1` | | OpenWrt | Chaos Calmer 15.05 | `1.3.6.1.2.1.4.22.1.2` | @@ -54,18 +54,33 @@ If you want to use encryption, you must enable SNMP version 3 by adding `authkey device_tracker: - platform: snmp host: 192.168.1.1 - community: username - authkey: authpass - privkey: privpass + community: USERNAME + authkey: AUTHPASS + privkey: PRIVPASS baseoid: 1.3.6.1.4.1.14988.1.1.1.2.1.1 ``` -Configuration variables: - -- **host** (*Required*): The IP address of the router, eg. 192.168.1.1. -- **community** (*Required*): The SNMP community which is set for the device. Most devices have a default community set to `public` with read-only permission (which is sufficient). -- **baseoid** (*Required*): The OID prefix where wireless client registrations can be found, usually vendor specific. It's advised to use the numerical notation. To find this base OID, check vendor documentation or check the MIB file for your device. -- **authkey** (*Inclusive*): Authentication key for SNMPv3. Variable privkey must also be set. -- **privkey** (*Inclusive*): Privacy key SNMPv3. Variable authkey must also be set. +{% configuration %} +host: + description: The IP address of the router, e.g., 192.168.1.1. + required: true + type: string +community: + description: The SNMP community which is set for the device. Most devices have a default community set to `public` with read-only permission (which is sufficient). + required: true + type: string +baseoid: + description: The OID prefix where wireless client registrations can be found, usually vendor specific. It's advised to use the numerical notation. To find this base OID, check vendor documentation or check the MIB file for your device. + required: true + type: string +authkey: + description: Authentication key for SNMPv3. Variable privkey must also be set. + required: inclusive + type: string +privkey: + description: Privacy key SNMPv3. Variable authkey must also be set. + required: inclusive + 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.swisscom.markdown b/source/_components/device_tracker.swisscom.markdown index 49c4f72ba96..890b537a4b5 100644 --- a/source/_components/device_tracker.swisscom.markdown +++ b/source/_components/device_tracker.swisscom.markdown @@ -27,8 +27,12 @@ device_tracker: - platform: swisscom ``` -Configuration variables: - -- **host** (*Optional*): The IP address of your router. Set it if you are not using `192.168.1.1`. +{% configuration %} +host: + description: The IP address of your router. + required: false + default: 192.168.1.1 + 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.tado.markdown b/source/_components/device_tracker.tado.markdown index 70f130c7e01..db808501a58 100644 --- a/source/_components/device_tracker.tado.markdown +++ b/source/_components/device_tracker.tado.markdown @@ -27,11 +27,20 @@ device_tracker: home_id: YOUR_HOME_ID ``` -Configuration variables: - -- **username** (*Required*): The username for your Tado account. -- **password** (*Required*): The password for your Tado account. -- **home_id** (*Optional*): The id of your home of which you want to track devices. If provided, the Tado device tracker will tack *all* devices known to Tado associated with this home. See below how to find it. +{% configuration %} +username: + description: The username for your Tado account. + required: true + type: string +password: + description: The password for your Tado account. + required: true + type: string +home_id: + description: The id of your home of which you want to track devices. If provided, the Tado device tracker will tack *all* devices known to Tado associated with this home. See below how to find it. + required: false + type: integer +{% endconfiguration %} After configuration, your device has to be at home at least once before showing up as *home* or *away*. Polling Tado API for presence information will happen at most once every 30 seconds. diff --git a/source/_components/device_tracker.thomson.markdown b/source/_components/device_tracker.thomson.markdown index 810d586d27b..97decda817a 100644 --- a/source/_components/device_tracker.thomson.markdown +++ b/source/_components/device_tracker.thomson.markdown @@ -27,10 +27,19 @@ 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, 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.tplink.markdown b/source/_components/device_tracker.tplink.markdown index 89b47681796..29a969f4aa7 100644 --- a/source/_components/device_tracker.tplink.markdown +++ b/source/_components/device_tracker.tplink.markdown @@ -36,11 +36,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 a user with administrative privileges, usually *admin*. The Archer D9 last firmware does not require a username. -- **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*. The Archer D9 last firmware does not require a username. + required: true + type: string +password: + description: The password for your given admin account. + required: true + type: string +{% endconfiguration %} For Archer C9 models running firmware version 150811 or later please use the encrypted password you can retrieve like this: @@ -54,6 +63,3 @@ For Archer C9 models running firmware version 150811 or later please use the enc See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. For Archer D9 model the default ip is 192.168.1.1, the username is not necessary and you can leave that field blank. - - - diff --git a/source/_components/device_tracker.ubus.markdown b/source/_components/device_tracker.ubus.markdown index d87102a0bbc..2e921769617 100644 --- a/source/_components/device_tracker.ubus.markdown +++ b/source/_components/device_tracker.ubus.markdown @@ -69,12 +69,25 @@ 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 *root*. -- **password** (*Required*): The password for your given account. -- **dhcp_software** (*Optional*): The DHCP software used in your router: `dnsmasq`, `dhcpd`, or `none`. Defaults to `dnsmasq`. +{% 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 `root`. + required: true + type: string +password: + description: The password for your given admin account. + required: true + type: string +dhcp_software: + description: "The DHCP software used in your router: `dnsmasq`, `dhcpd`, or `none`." + required: false + default: dnsmasq + 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.upc_connect.markdown b/source/_components/device_tracker.upc_connect.markdown index 1f77bc8d869..c196d366c52 100644 --- a/source/_components/device_tracker.upc_connect.markdown +++ b/source/_components/device_tracker.upc_connect.markdown @@ -23,9 +23,13 @@ device_tracker: - platform: upc_connect ``` -Configuration variables: - -- **host** (*Optional*): The IP address of your router. Set it if you are not using `192.168.0.1`. +{% configuration %} +host: + description: The IP address of your router. + required: false + default: 192.168.0.1 + type: string +{% endconfiguration %} See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. @@ -33,4 +37,3 @@ Also known to be working with the following devices: - Irish Virgin Media Super Hub 3.0 - Ziggo Connectbox NL - Unitymedia Connect Box (DE) - diff --git a/source/_components/discovery.markdown b/source/_components/discovery.markdown index 4f4ef7f5a74..ab790508017 100644 --- a/source/_components/discovery.markdown +++ b/source/_components/discovery.markdown @@ -59,8 +59,6 @@ discovery: - homekit ``` -{% linkable_title Configuration variables: %} - {% configuration discovery %} ignore: description: A list of platforms that never will be automatically configured by `discovery`. diff --git a/source/_components/dweet.markdown b/source/_components/dweet.markdown index fdfab021d8f..41a45e6d6f5 100644 --- a/source/_components/dweet.markdown +++ b/source/_components/dweet.markdown @@ -29,7 +29,7 @@ To use the `dweet` component in your installation, add the following to your `co ```yaml # Example configuration.yaml entry dweet: - name: HAExport + name: YOUR_UNIQUE_IDENTIFIER whitelist: - input_number.brightness - input_boolean.notify_home @@ -37,8 +37,14 @@ dweet: - sensor.cpu ``` -Configuration variables: - -- **name** (*Required*): Choose must choose an unique name. -- **whitelist** (*Required*): List of entity IDs you want to publish. +{% configuration %} +name: + description: A unique identifier for your Home Assistant instance. + required: true + type: string +whitelist: + description: List of entity IDs you want to publish + required: true + type: list +{% endconfiguration %} diff --git a/source/_components/dyson.markdown b/source/_components/dyson.markdown index adc8af1d33b..b02d948f7ee 100644 --- a/source/_components/dyson.markdown +++ b/source/_components/dyson.markdown @@ -32,19 +32,41 @@ dyson: device_ip: DEVICE_IP_2 ``` -Configuration variables: +{% configuration %} +username: + description: Dyson account username (email address). + required: true + type: string +password: + description: Dyson account password. + required: true + type: string +language: + description: "Dyson account language country code. Known working codes: `FR`, `NL`, `GB`, `AU`. Other codes should be supported." + required: true + type: string +devices: + description: List of devices. + required: false + type: map + keys: + device_id: + description: Device ID. The Serial Number of the device. Found in the smart phone app device settings page. + required: true + type: string + device_ip: + description: Device IP address. + required: true + type: string +{% endconfiguration %} -- **username** (*Required*): Dyson account username (email address). -- **password** (*Required*): Dyson account password. -- **language** (*Required*): Dyson account language country code. Known working codes: `FR`, `NL`, `GB`, `AU`. But others codes should work. -- **devices** (*Optional*): List of devices. - - **device_id** (*Required*): Device ID. The Serial Number of the device. Found in the mobiles applications device settings page. - - **device_ip** (*Required*): Device IP address. +The `devices` list is optional, but you'll have to provide them if discovery is not working (warnings in the logs and the devices are not available in Home Assistant web interface). -`devices` list is optional but you'll have to provide them if discovery is not working (warnings in the logs and the devices are not available in Home Assistant web interface). -*If your are using a robot vacuum (Dyson 360 Eye), discovery is not yet supported so you have to provide `devices` list.* +

+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. +

-To find devices IP address, you can use your router or `nmap`: +To find a devices IP address, you can use your router or `nmap`: ```bash $ nmap -p 1883 XXX.XXX.XXX.XXX/YY -- open diff --git a/source/_components/ecobee.markdown b/source/_components/ecobee.markdown index 217922806b2..8a73869f5b6 100644 --- a/source/_components/ecobee.markdown +++ b/source/_components/ecobee.markdown @@ -51,10 +51,17 @@ ecobee: api_key: asdfghjklqwertyuiopzxcvbnm ``` -Configuration variables: - -- **api_key** (*Required*): Your ecobee API key. This is only needed for the initial setup of the component. Once registered it can be removed. If you revoke the key in the ecobee portal you will need to update this again and remove the ecobee.conf file in the `.homeassistant` configuration path. -- **hold_temp** (*Optional*): True/False whether or not to hold changes indefinitely (True) or until the next scheduled event. Defaults to `False`. +{% configuration %} +api_key: + description: Your ecobee API key. This is only needed for the initial setup of the component. Once registered it can be removed. If you revoke the key in the ecobee portal you will need to update this again and remove the ecobee.conf file in the `.homeassistant` configuration path. + required: true + type: string +hold_temp: + description: True/False whether or not to hold changes indefinitely (True) or until the next scheduled event. + required: false + default: "`false`" + type: boolean +{% endconfiguration %}

diff --git a/source/_components/emoncms_history.markdown b/source/_components/emoncms_history.markdown index 3903a53a606..00f978f7fd6 100644 --- a/source/_components/emoncms_history.markdown +++ b/source/_components/emoncms_history.markdown @@ -21,7 +21,7 @@ To use the `emoncms_history` component in your installation, add the following t ```yaml # Example configuration.yaml entry emoncms_history: - api_key: put your emoncms WRITE api key here + api_key: YOUR_EMONCMS_WRITE_API_KEY url: https://emoncms.org inputnode: 19 whitelist: @@ -29,10 +29,26 @@ emoncms_history: - sensor.owm_wind_speed ``` -Configuration variables: - -- **api_key** (*Required*): Your emoncms write api key -- **url** (*Required*): The root URL of your Emoncms installation. (Use https://emoncms.org for the cloud based version) -- **inputnode** (*Required*): Input node that will be used inside emoncms. Please make sure you use a dedicated, not used before, node for this component! -- **whitelist** (*Required*): List of entity IDs you want to publish. -- **scan_interval** (*Optional*): Defines, in seconds, how regularly the states of the whitelisted entities are being gathered and send to emoncms. Default is 30 seconds. +{% configuration %} +api_key: + description: Your Emoncms write api key + required: true + type: string +url: + description: The root URL of your Emoncms installation. (Use https://emoncms.org for the cloud based version) + required: true + type: string +inputnode: + description: Input node that will be used inside Emoncms. Please make sure you use a dedicated, not used before, node for this component! + required: true + type: integer +whitelist: + description: List of entity IDs you want to publish. + required: true + type: list +scan_interval: + description: Defines, in seconds, how regularly the states of the whitelisted entities are being gathered and send to Emoncms. + required: false + type: integer + default: 30 +{% endconfiguration %} diff --git a/source/_components/enocean.markdown b/source/_components/enocean.markdown index 4e38d204446..e22c07ec2af 100644 --- a/source/_components/enocean.markdown +++ b/source/_components/enocean.markdown @@ -41,6 +41,9 @@ enocean: device: /dev/ttyUSB0 ``` -Configuration variables: - -- **device** (*Required*): The port where your device is connected to your Home Assistant host. +{% configuration %} +device: + description: The port where your device is connected to your Home Assistant host. + required: true + type: string +{% endconfiguration %} diff --git a/source/_components/ffmpeg.markdown b/source/_components/ffmpeg.markdown index 38034e4e06a..24f4f30de98 100644 --- a/source/_components/ffmpeg.markdown +++ b/source/_components/ffmpeg.markdown @@ -29,10 +29,18 @@ To set it up, add the following information to your `configuration.yaml` file: ffmpeg: ``` -Configuration variables: - -- **ffmpeg_bin** (*Optional*): Default `ffmpeg`. The name or path to the `ffmpeg` binary. -- **run_test** (*Optional*): Default True. Check if `input` is usable by ffmpeg. +{% configuration %} +ffmpeg_bin: + description: The name or path to the `ffmpeg` binary. + required: false + default: ffmpeg + type: string +run_test: + description: Check if `input` is usable by ffmpeg. + required: false + default: True + type: boolean +{% endconfiguration %} ### {% linkable_title Raspbian Debian Jessie Lite Installations %} To get the binary on Raspbian Debian Jessie Lite on a RPi you need to perform the following: @@ -100,4 +108,3 @@ Stream mapping: Press [q] to stop, [?] for help frame= 223 fps= 40 q=-1.0 Lsize= 16709kB time=00:00:07.40 bitrate=18497.5kbits/s dup=58 drop=0 speed=1.32x ``` - diff --git a/source/_components/geo_location.nsw_rural_fire_service_feed.markdown b/source/_components/geo_location.nsw_rural_fire_service_feed.markdown new file mode 100644 index 00000000000..4bae0d66a2a --- /dev/null +++ b/source/_components/geo_location.nsw_rural_fire_service_feed.markdown @@ -0,0 +1,88 @@ +--- +layout: page +title: "NSW Rural Fire Service Incidents" +description: "Instructions on how to integrate the NSW Rural Fire Service Incidents feed into Home Assistant." +date: 2018-09-23 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: nsw-rural-fire-service.png +ha_category: Geo Location +ha_iot_class: "Cloud Polling" +ha_release: "0.81" +--- + +The `nsw_rural_fire_service_feed` platform lets you integrate a GeoJSON feed provided by the [NSW Rural Fire Service](https://www.rfs.nsw.gov.au/fire-information/fires-near-me) with information about bush fires, grass fires, hazard reductions and more. It retrieves incidents from a feed and shows information of those incidents filtered by distance to Home Assistant's location. + +

+ +

+ +Entities are generated, updated and removed automatically with each update from the feed. Each entity defines latitude and longitude and will be shown on the map automatically. The distance in kilometers is available as the state of each entity. + +

+ +

+ +The entity's information can be used for example if a bush fire that produces smoke or embers is reported close to your home, and you want to automatically close windows, turn on a sprinkler system or simply send yourself a reminder to clean the gutters from dry leaves. + +The data is updated every 5 minutes. + +## {% linkable_title Configuration %} + +To integrate the NSW Rural Fire Service Incidents feed, add the following lines to your `configuration.yaml`. + +```yaml +# Example configuration.yaml entry +geo_location: + - platform: nsw_rural_fire_service_feed +``` + +{% configuration %} +radius: + description: The distance in kilometers around Home Assistant's coordinates in which incidents are included. + required: false + type: float + default: 20km +categories: + description: List of incident category names found in the feed. Only incidents from the feed that match any of these categories are included. Valid categories are 'Emergency Warning', 'Watch and Act', 'Advice', 'Not Applicable'. + required: false + type: list + default: None. Any incident regardless of its category will be included. +{% endconfiguration %} + +## {% linkable_title State Attributes %} + +The following state attributes are available for each entity in addition to the standard ones: + +| Attribute | Description | +|--------------------|-------------| +| latitude | Latitude of the incident. | +| longitude | Longitude of the incident. | +| external_id | The external ID used in the feed to identify the incident in the feed. | +| category | One of 'Emergency Warning', 'Watch and Act', 'Advice', 'Not Applicable'. | +| location | Location details of where the incident takes place. | +| publication_date | Date and time when this incident was last updated. | +| council_area | Council area in which this incident takes place. | +| status | One of 'Under Control', 'Being Controlled', 'Out of Control'. | +| type | Incident type, for example 'Bush Fire', 'Grass Fire' or 'Hazard Reduction'. | +| fire | `True` if this incident is a fire, `False` otherwise. | +| size | Size in hectare | +| responsible_agency | Agency responsible for this incident. | + +## {% linkable_title Advanced Configuration Example %} + +Depending on your personal circumstances with regards to bush fire risk you may want to adjust the radius and define the categories of fire warnings you are actually interested in. + +```yaml +# Example configuration.yaml entry +geo_location: + - platform: nsw_rural_fire_service_feed + entity_namespace: 'nsw_fire_service_feed' + radius: 10 + categories: + - 'Emergency Warning' + - 'Watch and Act' + - 'Advice' +``` diff --git a/source/_components/google_assistant.markdown b/source/_components/google_assistant.markdown index b4c686990fd..43700fe2efd 100644 --- a/source/_components/google_assistant.markdown +++ b/source/_components/google_assistant.markdown @@ -36,13 +36,13 @@ Since release 0.80, the `Authorization Code` type of `OAuth` account linking is - Input any string you like into `Client Secret`, Home Assistant doesn't need this field. - Change `Authorization URL` to `https://[YOUR HOME ASSISTANT URL:PORT]/auth/authorize` (replace with your actual URL). - Change `Token URL` to `https://[YOUR HOME ASSISTANT URL:PORT]/auth/token` (replace with your actual URL). - - In the `Client information` section: + - In the `Configure your client` section: - Do **NOT** check `Google to transmit clientID and secret via HTTP basic auth header`. - Click 'Save' at the top right corner, then click 'Test' to generate a new draft version of the Test App. 2. Change your `configuration.yaml` file: - - Remove `client_id`, `access_token`, `agent_uer_id` config from `google_assistant:` since they are no longer needed. + - Remove `client_id`, `access_token`, `agent_user_id` config from `google_assistant:` since they are no longer needed. 3. Restart Home Assistant, open the `Google Assistant` app on your mobile phone then go to `Settings > Home Control`, re-link `[test] your app name`. -4. A browser will be open and asking you to login to your Home Assistant instance, it will edirect back to `Google Assistant` app right afterward. +4. A browser will be open and asking you to login to your Home Assistant instance, it will redirect back to `Google Assistant` app right afterward.

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 4802e4a7586..c4b8a78e2b1 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/history_graph.markdown b/source/_components/history_graph.markdown index 5059d1ba1cb..a929385fa18 100644 --- a/source/_components/history_graph.markdown +++ b/source/_components/history_graph.markdown @@ -30,14 +30,27 @@ history_graph: ``` -### {% linkable_title Configuration variables %} - -| Attribute | Optional | Default | Description | -|---------------------------|----------|-------------------------------------------------------| -| `entities` | no | | List of entities whose history to show as a graph. | -| `name` | yes | ID | Name to display. | -| `hours_to_show` | yes | 24 | Number of hours to show. | -| `refresh` | yes | 0 | Number of seconds between graph refreshes. 0 for no refreshes. | +{% configuration %} +entities: + description: List of entities whose history to show as a graph. + required: true + type: string +name: + description: Name to display. + required: false + default: ID + type: string +hours_to_show: + description: Number of hours to show in the graph. + required: false + default: 24 + type: integer +refresh: + description: Number of seconds between graph refreshes. 0 to disable refreshing. + required: false + default: 0 + type: integer +{% endconfiguration %} ### {% linkable_title Full Example %} diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown index f25897b4298..77ec79577f6 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: @@ -190,6 +190,8 @@ automation: event_type: zwave.network_ready - platform: event event_type: zwave.network_complete + - platform: event + event_type: zwave.network_complete_some_dead action: - service: homekit.start ``` diff --git a/source/_components/homematic.markdown b/source/_components/homematic.markdown index a60d144ec27..86ff3df552e 100644 --- a/source/_components/homematic.markdown +++ b/source/_components/homematic.markdown @@ -34,28 +34,83 @@ homematic: Configuration variables (global): -- **interfaces** (*Required*): Configuration for each XML-RPC interface to integrate into Home Assistant. -- **hosts** (*Optional*): Configuration for each Hub (CCU/Homegear) to integrate into Home Assistant. -- **local_ip** (*Optional*): IP of device running Home Assistant. Override auto-detected value for exotic network setups. -- **local_port** (*Optional*): Port for connection with Home Assistant. By default it is randomly assigned. +{% configuration %} +interfaces: + description: Configuration for each XML-RPC interface to integrate into Home Assistant. + required: true + type: list +hosts: + description: Configuration for each Hub (CCU/Homegear) to integrate into Home Assistant. + required: false + type: list +local_ip: + description: IP of device running Home Assistant. Override auto-detected value for exotic network setups. + required: false + type: string +local_port: + description: Port for connection with Home Assistant. By default it is randomly assigned. + required: false + type: integer +{% endconfiguration %} Configuration variables (interface): -- **host** (*Required*): IP address or Hostname of CCU/Homegear device or Hass.io add-on. -- **port** (*Optional*): Port of CCU/Homegear XML-RPC Server. Wireless: 2001, wired: 2000, IP: 2010, thermostatgroups: 9292. -- **callback_ip** (*Optional*): Set this, if Home Assistant is reachable under a different IP from the CCU (NAT, Docker etc.). -- **callback_port** (*Optional*): Set this, if Home Assistant is reachable under a different port from the CCU (NAT, Docker etc.). -- **resolvenames** (*Optional*): [`metadata`, `json`, `xml`] Try to fetch device names. Defaults to `false` if not specified. -- **jsonport** (*Optional*): Port of CCU JSON-RPC Server. The default is 80, but it may be different when running CCU virtually via Docker. -- **username** (*Optional*): When fetching names via JSON-RPC, you need to specify a user with guest-access to the CCU. -- **password** (*Optional*): When fetching names via JSON-RPC, you need to specify the password of the user you have configured above. -- **path** (*Optional*): Set to `/groups` when using port 9292. +{% configuration %} +host: + description: IP address or Hostname of CCU/Homegear device or Hass.io add-on. + required: true + type: string +port: + description: "Port of CCU/Homegear XML-RPC Server. Wireless: 2001, wired: 2000, IP: 2010, thermostatgroups: 9292." + required: false + type: integer +callback_ip: + description: Set this, if Home Assistant is reachable under a different IP from the CCU (NAT, Docker etc.). + required: false + type: string +callback_port: + description: Set this, if Home Assistant is reachable under a different IP from the CCU (NAT, Docker etc.). + required: false + type: integer +resolvenames: + description: Try to fetch device names. Defaults to `false` if not specified. + required: false + type: string + default: false +jsonport: + description: Port of CCU JSON-RPC Server. The default is 80, but it may be different when running CCU virtually via Docker. + required: false + type: integer +username: + description: When fetching names via JSON-RPC, you need to specify a user with guest-access to the CCU. + required: false + type: string +password: + description: When fetching names via JSON-RPC, you need to specify the password of the user you have configured above. + required: false + type: string +path: + description: Set to `/groups` when using port 9292. + required: false + type: string +{% endconfiguration %} Configuration variables (host): -- **host** (*Required*): IP address of CCU/Homegear device. -- **username** (*Optional*): When fetching names via JSON-RPC, you need to specify a user with guest-access to the CCU. -- **password** (*Optional*): When fetching names via JSON-RPC, you need to specify the password of the user you have configured above. +{% configuration %} +host: + description: IP address of CCU/Homegear device. + required: true + type: string +username: + description: When fetching names via JSON-RPC, you need to specify a user with guest-access to the CCU. + required: false + type: string +password: + description: When fetching names via JSON-RPC, you need to specify the password of the user you have configured above. + required: false + type: string +{% endconfiguration %} #### Example configuration with multiple protocols and some other options set: @@ -294,7 +349,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 +364,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 @@ -320,7 +375,7 @@ When the connection to your HomeMatic CCU or Homegear is lost, Home Assistant wi string now = system.Date("%d.%m.%Y %H:%M:%S"); obj.State(now); ``` - + The HomeMatic CCU will execute all active programs which meet their conditions (none in this case) on every reboot. 3. Set up a template sensor in Home Assistant, which contains the value of the system variable: diff --git a/source/_components/http.markdown b/source/_components/http.markdown index ef9c3369fec..3c3b20ca888 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!

@@ -32,7 +27,7 @@ http: {% configuration %} api_password: - description: Protect Home Assistant with a password. + description: Protect the Home Assistant API with a password - this password can also be used to log in to the frontend. Where possible you should use a long lasting access token instead of this. required: false type: string server_host: diff --git a/source/_components/influxdb.markdown b/source/_components/influxdb.markdown index 9df07711f80..4052506b526 100644 --- a/source/_components/influxdb.markdown +++ b/source/_components/influxdb.markdown @@ -12,7 +12,7 @@ ha_category: History ha_release: 0.9 --- -The `influxdb` component makes it possible to transfer all state changes to an external [InfluxDB](https://influxdb.com/) database. For more details, [see the blog post on InfluxDB](/blog/2015/12/07/influxdb-and-grafana/). +The `influxdb` component makes it possible to transfer all state changes to an external [InfluxDB](https://influxdb.com/) database. See the [official installation documentation](https://docs.influxdata.com/influxdb/v1.6/introduction/installation/) for how to set up an InfluxDB database, or if you're using Hass.io, [there is a community add-on](https://community.home-assistant.io/t/community-hass-io-add-on-influxdb/54491) available. ## {% linkable_title Configuration %} @@ -25,28 +25,117 @@ influxdb: You will still need to create a database named `home_assistant` via InfluxDB's command line interface. For instructions on how to create a database check the [InfluxDB documentation](https://docs.influxdata.com/influxdb/latest/introduction/getting_started/#creating-a-database) relevant to the version you have installed. -Configuration variables: - -- **host** (*Optional*): IP address of your database host, e.g., 192.168.1.10. Defaults to `localhost`. -- **port** (*Optional*): Port to use. Defaults to 8086. -- **username** (*Optional*): The username of the database user. The user needs read/write privileges on the database. -- **password** (*Optional*): The password for the database user account. -- **database** (*Optional*): Name of the database to use. Defaults to `home_assistant`. The database must already exist. -- **ssl** (*Optional*): Use https instead of http to connect. Defaults to false. -- **verify_ssl** (*Optional*): Verify SSL certificate for https request. Defaults to false. -- **max_retries** (*Optional*): Allow the component to retry if there was a network error when transmitting data -- **default_measurement** (*Optional*): Measurement name to use when an entity doesn't have a unit. Defaults to entity id. -- **override_measurement** (*Optional*): Measurement name to use instead of unit or default measurement. This will store all data points in a single measurement. -- **component_config**, **component_config_domain**, **component_config_glob** (*Optional*): These attributes contains component-specific override values. See [Customizing devices and services](/getting-started/customizing-devices/) for format. - - **override_measurement** (*Optional*): Measurement name to use for this component, takes precedence over the global 'override_measurement' and component-specific 'unit_of_measurement' attribute. -- **exclude** (*Optional*): Configure which components should be excluded from recording to InfluxDB. - - **entities** (*Optional*): The list of entity ids to be excluded from recording to InfluxDB. - - **domains** (*Optional*): The list of domains to be excluded from recording to InfluxDB. -- **include** (*Optional*): Configure which components should be included in recordings to InfluxDB. If set, all other entities will not be recorded to InfluxDB. Values set by the **blacklist** option will prevail. - - **entities** (*Optional*): The list of entity ids to be included from recordings to InfluxDB. - - **domains** (*Optional*): The list of domains to be included from recordings to InfluxDB. -- **tags** (*Optional*): Tags to mark the data. -- **tags_attributes** (*Optional*): The list of attribute names which should be reported as tags and not fields to InfluxDB. For example, if set to `friendly_name`, it will be possible to group by entities' friendly names as well, in addition to their ids. +{% configuration %} +host: + type: string + description: IP address of your database host, e.g., 192.168.1.10 + required: false + default: localhost +port: + type: integer + description: Port to use + required: false + default: 8086 +username: + type: string + description: The username of the database user. The user needs read/write privileges on the database + required: false +password: + type: string + description: The password for the database user account. + required: false +database: + type: string + description: Name of the database to use. The database must already exist. + required: false + default: home_assistant +ssl: + type: boolean + description: Use https instead of http to connect. + required: false + default: false +verify_ssl: + type: boolean + description: Verify SSL certificate for https request. + required: false + default: true +max_retries: + type: integer + description: Set this to allow the component to retry if there was a network error when transmitting data. + required: false + default: 0 +default_measurement: + type: string + description: Measurement name to use when an entity doesn't have a unit. + required: false + default: uses the entity id of the entity +override_measurement: + type: string + description: Measurement name to use instead of unit or default measurement. This will store all data points in a single measurement. + required: false +exclude: + type: list + description: Configure which components should be excluded from recording to InfluxDB. + required: false + keys: + entities: + type: list + description: The list of entity ids to be excluded from recording to InfluxDB. + required: false + domains: + type: list + description: The list of domains to be excluded from recording to InfluxDB. + required: false +include: + type: list + description: Configure which components should be included in recordings to InfluxDB. If set, all other entities will not be recorded to InfluxDB. Values set by the **exclude** lists will take precedence. + required: false + keys: + entities: + type: string, list + description: The list of entity ids to be included in recording to InfluxDB. + required: false + domains: + type: string, list + description: The list of domains to be included in recording to InfluxDB. + required: false +tags: + type: string, list + description: Tags to mark the data. + default: 0 +tags_attributes: + type: string, list + description: The list of attribute names which should be reported as tags and not fields to InfluxDB. For example, if set to `friendly_name`, it will be possible to group by entities' friendly names as well, in addition to their ids. + required: false + default: 0 +component_config: + type: string + required: false + description: This attribute contains component-specific override values. See [Customizing devices and services](/getting-started/customizing-devices/) for format. + keys: + override_measurement: + type: string + description: Measurement name to use instead of unit or default measurement. This will store all data points in a single measurement. + required: false +component_config_domain: + type: string + required: false + description: This attribute contains domain-specific component override values. See [Customizing devices and services](/getting-started/customizing-devices/) for format. + keys: + override_measurement: + type: string + description: Measurement name to use instead of unit or default measurement. This will store all data points in a single measurement. + required: false +component_config_glob: + type: string + required: false + description: This attribute contains component-specific override values. See [Customizing devices and services](/getting-started/customizing-devices/) for format. + keys: + override_measurement: + type: string + description: Measurement name to use instead of unit or default measurement. This will store all data points in a single measurement. + required: false +{% endconfiguration %} ## {% linkable_title Helper scripts %} diff --git a/source/_components/insteon.markdown b/source/_components/insteon.markdown index 7cb8e635ec7..d52e115b918 100644 --- a/source/_components/insteon.markdown +++ b/source/_components/insteon.markdown @@ -61,11 +61,11 @@ insteon: hub_version: 1 ``` -Addtional configuration items are available: +Additional configuration items are available: ```yaml insteon: - + device_override: - address: ADDRESS cat: CATEGORY @@ -244,13 +244,13 @@ events. The following events are available: - **insteon.button_on** - **address**: (required) The Insteon device address in lower case without - dots (e.g. 1a2b3c) + dots (e.g., 1a2b3c) - **button**: (Optional) The button id in lower case. For a 4-button remote the values are `a` to `d`. For an 8 button remote the values are `a` to `g`. For a one-button remote this field is not used. - **insteon.button_of** - **address**: (required) The Insteon device address in lower case without - dots (e.g. 1a2b3c) + dots (e.g., 1a2b3c) - **button**: (Optional) The button id in lower case. For a 4-button remote the values are a to d. For an 8 button remote the values are `a` to `g`. For a one-button remote this field is not used. diff --git a/source/_components/intent_script.markdown b/source/_components/intent_script.markdown index 17e664d3808..bf41572753c 100644 --- a/source/_components/intent_script.markdown +++ b/source/_components/intent_script.markdown @@ -13,7 +13,7 @@ ha_release: "0.50" ha_qa_scale: internal --- -The `intent_script` component allows users to configure actions and responses to intents. Intents can be fired by any component that supports it. Examples are [Alexa](/components/alexa/) (Amazon Echo), [API.ai](/components/dialogflow/) (Google Assistant) and [Snips](/components/snips/). +The `intent_script` component allows users to configure actions and responses to intents. Intents can be fired by any component that supports it. Examples are [Alexa](/components/alexa/) (Amazon Echo), [Dialogflow](/components/dialogflow/) (Google Assistant) and [Snips](/components/snips/). ```yaml # Example configuration.yaml entry diff --git a/source/_components/juicenet.markdown b/source/_components/juicenet.markdown index a6eae2eb3cd..421b981a02e 100644 --- a/source/_components/juicenet.markdown +++ b/source/_components/juicenet.markdown @@ -24,6 +24,9 @@ juicenet: access_token: ACCESS_TOKEN ``` -Configuration variables: - -- **access_token** (*Required*): Your eMotorWerks API Token can be found in the [dashboard](https://dashboard.emotorwerks.com/Manage). +{% configuration %} +access_token: + description: "Your eMotorWerks API Token can be found in the [dashboard](https://dashboard.emotorwerks.com/Manage)." + required: true + type: string +{% endconfiguration %} diff --git a/source/_components/kira.markdown b/source/_components/kira.markdown index 0e74ad07b69..7a0f3bc3772 100644 --- a/source/_components/kira.markdown +++ b/source/_components/kira.markdown @@ -38,16 +38,45 @@ kira: port: 65432 ``` -Configuration variables: - -- **sensors** (*Optional*): Kira sensors to register - - **name** (*Optional*): Name of this sensor. - - **host** (*Optional*): Bind address for this sensor. 0.0.0.0 is default. - - **port** (*Optional*): UDP port to listen for packets on. 65432 is default. -- **remotes** (*Optional*): Remote Kira modules to register - - **name** (*Optional*): Name of this remote. - - **host** (*Required*): IP address of Kira module to send commands to. - - **port** (*Optional*): UDP port to send packets to. 65432 is default. +{% configuration %} +sensors: + description: Kira sensors to register. + required: false + type: map + keys: + name: + description: Name of this sensor. + required: false + type: string + host: + description: Bind address for this sensor. + required: false + default: 0.0.0.0 + type: string + port: + description: UDP port to listen for packets on. + required: false + default: 65432 + type: integer +remotes: + description: Remote Kira modules to register. + required: false + type: map + keys: + name: + description: Name of this remote. + required: false + type: string + host: + description: IP address of Kira module to send commands to. + required: true + type: string + port: + description: UDP port to send packets to. + required: false + default: 65432 + type: integer +{% endconfiguration %} If no sensors or remotes are specified, a sensor with default values will be added. @@ -70,13 +99,30 @@ The first time the Kira component is loaded, `kira_codes.yaml` will be created i type: nec ``` -Configuration variables: - -- **name** (*Required*): The name of this code. -- **code** (*Required*): The data for this code (see below). -- **device** (*Optional*): The device this code is associated with. Default is "unknown". -- **type** (*Optional*): The type of this code. If this field is omitted, the type will be autodetected if possible. -- **repeat** (*Optional*): The number of times to repeat this code (on transmit). Default is 1. +{% configuration %} +name: + description: The name of this code. + required: true + type: string +code: + description: The data for this code (see below). + required: true + type: string +device: + description: The device this code is associated with. + required: false + default: unknown + type: string +type: + description: The type of this code. If this field is omitted, the type will be autodetected if possible. + required: false + type: string +repeat: + description: The number of times to repeat this code (on transmit). + required: false + default: 1 + type: integer +{% endconfiguration %} Some manufacturers (e.g., Samsung) require an IR code to be sent a number of times in a row in rapid succession (usually 3). This doesn't apply to the vast majority of devices, but it can be helpful if needed. diff --git a/source/_components/knx.markdown b/source/_components/knx.markdown index 802b288f4c2..4f1b5b2c4a1 100644 --- a/source/_components/knx.markdown +++ b/source/_components/knx.markdown @@ -23,7 +23,7 @@ The component requires a local KNX/IP interface like the [Weinzierl 730](http://

There is currently support for the following device types within Home Assistant: - + - [Binary Sensor](/components/binary_sensor.knx) - [Cover](/components/cover.knx) - [Sensor](/components/sensor.knx) @@ -47,12 +47,16 @@ Optional, recommended for large KNX installations (>100 devices) and/or if you w knx: config_file: '/path/to/xknx.yaml' ``` - -- **config_file** (*Optional*): The path for XKNX configuration file. +{% configuration %} +config_file: + description: The path for XKNX configuration file. + required: false + type: string +{% endconfiguration %} If the auto detection of the KNX/IP device does not work you can specify ip/port of the tunneling device: -```yaml +```yaml knx: tunneling: host: '192.168.2.23' @@ -60,9 +64,17 @@ knx: local_ip: '192.168.2.109' ``` -- **host**: Host of the KNX/IP tunneling device. -- **port**: Port of the KNX/IP tunneling device. -- **local_ip**: IP of the local interface. +{% configuration %} +host: + description: Host of the KNX/IP tunneling device. + type: string +port: + description: Port of the KNX/IP tunneling device. + type: integer +local_ip: + description: IP of the local interface. + type: string +{% endconfiguration %} Explicit connection to a KNX/IP routing device: @@ -73,7 +85,11 @@ knx: local_ip: '192.168.2.109' ``` -- **local_ip**: The local IP address of interface (which should be used for multicasting). +{% configuration %} +local_ip: + description: The local IP address of interface (which should be used for multicasting). + type: string +{% endconfiguration %} ```yaml knx: @@ -81,9 +97,21 @@ knx: fire_event_filter: ["1/0/*", "6/2,3,4-6/*"] ``` -- **fire_event** (*Optional*): If set to True, platform will write all received KNX messages to event bus -- **fire_event_filter** (*Optional*): If `fire_event` is set `fire_event_filter` has to be specified. `fire_event_filter` defines a list of patterns for filtering KNX addresses. Only telegrams which match this pattern are sent to the HOme Assistant event bus. -- **state_updater** (*Optional*): The component will collect the current state of each configured device from the KNX bus to display it correctly within Home-Assistant. Set this option to False to prevent this behavior. +{% configuration %} +fire_event: + description: If set to True, platform will write all received KNX messages to event bus + required: inclusive + type: boolean +fire_event_filter: + description: If `fire_event` is set `fire_event_filter` has to be specified. `fire_event_filter` defines a list of patterns for filtering KNX addresses. Only telegrams which match this pattern are sent to the HOme Assistant event bus. + required: inclusive + type: [list, string] +state_updater: + description: The component will collect the current state of each configured device from the KNX bus to display it correctly within Home-Assistant. Set this option to False to prevent this behavior. + required: false + default: true + type: boolean +{% endconfiguration %} ### {% linkable_title Services %} @@ -91,12 +119,18 @@ In order to directly interact with the KNX bus, you can now use the following se ``` Domain: knx -Service: send +Service: send Service Data: {"address": "1/0/15", "payload": 0} ``` -* **address**: KNX group address -* **payload**: Payload, either an integer or an array of integers +{% configuration %} +address: + description: KNX group address + type: string +payload: + description: Payload, either an integer or an array of integers + type: [integer, list] +{% endconfiguration %} ### {% linkable_title Exposing sensor values or time to knx bus %} @@ -115,11 +149,18 @@ knx: address: '0/0/23' ``` -* **type**: Type of the exposed value. Either time or datetime or any supported type of [KNX Sensor](/components/sensor.knx/) (e.g., "temperature" or "humidity"). -* **entity_id**: Entity id of the HASS component to be exposed. Not necessary for types time and datetime. -* **address**: KNX group address. +{% configuration %} +type: + description: Type of the exposed value. Either time or datetime or any supported type of [KNX Sensor](/components/sensor.knx/) (e.g., "temperature" or "humidity"). + type: string +entity_id: + description: Entity id of the HASS component to be exposed. Not necessary for types time and datetime. + type: string +address: + description: KNX group address. + type: string +{% endconfiguration %} ### {% linkable_title Known issues %} Due to lame multicast support the routing abstraction and the gateway scanner only work with Python >=3.5. - diff --git a/source/_components/konnected.markdown b/source/_components/konnected.markdown index 1467787a493..cd55944cb37 100644 --- a/source/_components/konnected.markdown +++ b/source/_components/konnected.markdown @@ -52,7 +52,7 @@ access_token: required: true type: string api_host: - description: Override the IP address/host (and port number) of Home Assistant that the Konnected device(s) will use to communicate sensor state updates. If omitted, this is defaulted to the value of `base_url` in the `http` component. If you've set `base_url` to an external hostname, then you'll want to set this value back to your _local_ IP address and port (e.g. `http://192.168.1.101:8123`). + description: Override the IP address/host (and port number) of Home Assistant that the Konnected device(s) will use to communicate sensor state updates. If omitted, this is defaulted to the value of `base_url` in the `http` component. If you've set `base_url` to an external hostname, then you'll want to set this value back to your _local_ IP address and port (e.g., `http://192.168.1.101:8123`). required: false type: url default: value of `base_url` diff --git a/source/_components/light.enocean.markdown b/source/_components/light.enocean.markdown index 9203497d937..1933e8f4390 100644 --- a/source/_components/light.enocean.markdown +++ b/source/_components/light.enocean.markdown @@ -26,8 +26,18 @@ light: sender_id: [0xFF,0xC6,0xEA,0x04] ``` -Configuration variables: - -- **id** (*Required*): The ID of the device. This is the 4 bytes long number written on the dimmer. -- **sender_id** (*Required*): The Sender ID of the device. This is a 4 bytes long number. -- **name** (*Optional*): An identifier for the Ligh in the frontend. +{% configuration %} +id: + description: The ID of the device. This is the 4 bytes long number written on the dimmer. + required: true + type: list +sender_id: + description: The Sender ID of the device. This is a 4 bytes long number. + required: true + type: list +name: + description: An identifier for the Ligh in the frontend. + required: false + default: EnOcean Light + type: string +{% endconfiguration %} diff --git a/source/_components/light.flux_led.markdown b/source/_components/light.flux_led.markdown index d53ebb88a69..426feb16ae1 100644 --- a/source/_components/light.flux_led.markdown +++ b/source/_components/light.flux_led.markdown @@ -40,17 +40,31 @@ light: - platform: flux_led ``` -Configuration variables: - -- **automatic_add** (*Optional*): To enable the automatic addition of lights on startup. -- **devices** (*Optional*): A list of devices with their ip address - -Configuration variables within devices list: - -- **name** (*Optional*): A friendly name for the device. -- **mode** (*Optional*): The chosen brightness mode; options are 'rgbw' and 'rgb', defaults to rgbw. -- **protocol** (*Optional*): Set this to 'ledenet' if you are using a ledenet bulb. - +{% configuration %} +automatic_add: + description: To enable the automatic addition of lights on startup. + required: false + default: false + type: boolean +devices: + description: A list of devices with their ip address + required: false + type: list + keys: + name: + description: A friendly name for the device. + required: false + type: string + mode: + description: "The chosen brightness mode, options are: 'rgbw' and 'rgb'." + required: false + default: rgbw + type: string + protocol: + description: Set this to 'ledenet' if you are using a ledenet bulb. + required: false + type: string +{% endconfiguration %}

Depending on your controller or bulb type, there are two ways to configure brightness. diff --git a/source/_components/light.hyperion.markdown b/source/_components/light.hyperion.markdown index c7622a1a3fc..622fdca3720 100644 --- a/source/_components/light.hyperion.markdown +++ b/source/_components/light.hyperion.markdown @@ -61,3 +61,22 @@ light: type: list default: "['HDMI', 'Cinema brighten lights', 'Cinema dim lights', 'Knight rider', 'Blue mood blobs', 'Cold mood blobs', 'Full color mood blobs', 'Green mood blobs', 'Red mood blobs', 'Warm mood blobs', 'Police Lights Single', 'Police Lights Solid', 'Rainbow mood', 'Rainbow swirl fast', 'Rainbow swirl', 'Random', 'Running dots', 'System Shutdown', 'Snake', 'Sparks Color', 'Sparks', 'Strobe blue', 'Strobe Raspbmc', 'Strobe white', 'Color traces', 'UDP multicast listener', 'UDP listener', 'X-Mas']" {% endconfiguration %} + +## {% linkable_title Example %} + +To start Hyperion with an effect, use the following automation: + +```yaml +automation: +- id: one + alias: Turn Hyperion effect on when light goes on + trigger: + - platform: state + entity_id: light.hyperion + to: 'on' + action: + - service: light.turn_on + data: + entity_id: light.hyperion + effect: "Full color mood blobs" +``` diff --git a/source/_components/light.knx.markdown b/source/_components/light.knx.markdown index 4a229b62586..2fc2af1508c 100644 --- a/source/_components/light.knx.markdown +++ b/source/_components/light.knx.markdown @@ -9,7 +9,7 @@ sharing: true footer: true logo: knx.png ha_category: Light -ha_release: 0.44 +ha_release: 0.44 ha_iot_class: "Local Polling" --- @@ -26,21 +26,39 @@ To use your KNX light in your installation, add the following lines to your `con # Example configuration.yaml entry light: - platform: knx - name: Kitchen-Light-1 address: '1/0/9' - brightness_address: '1/0/11' ``` -Configuration variables: - -- **address** (*Required*): KNX group address for switching the light on and off. -- **name** (*Optional*): A name for this device used within Home Assistant. -- **brightness_address** (Optional): KNX group address for dimming light. -- **state_address** (*Optional*): separate KNX group address for retrieving the switch state of the light. -- **brightness_state_address** (*Optional*): separate KNX group address for retrieving the dimmed state of the light. -- **color_address** (*Optional*): separate KNX group address for setting the color of the light. -- **color_state_address** (*Optional*): separate KNX group address for retrieving the color of the light. +{% configuration %} +address: + description: KNX group address for switching the light on and off. + required: true + type: string +name: + description: A name for this device used within Home Assistant. + required: false + type: string +brightness_address: + description: KNX group address for dimming light. + required: false + type: string +state_address: + description: separate KNX group address for retrieving the switch state of the light. + required: false + type: string +brightness_state_address: + description: separate KNX group address for retrieving the dimmed state of the light. + required: false + type: string +color_address: + description: separate KNX group address for setting the color of the light. + required: false + type: string +color_state_address: + description: separate KNX group address for retrieving the color of the light. + required: false + type: string +{% endconfiguration %} Some KNX devices can change their state internally without any messages on the KNX bus, e.g., if you configure a timer on a channel. The optional `state_address` can be used to inform Home Assistant about these state changes. If a KNX message is seen on the bus addressed to the given state address, this will overwrite the state of the switch object. For switching/light actuators that are only controlled by a single group address and can't change their state internally, you don't have to configure the state address. - diff --git a/source/_components/light.markdown b/source/_components/light.markdown index b4e6102c8f6..cf7a4413e1b 100644 --- a/source/_components/light.markdown +++ b/source/_components/light.markdown @@ -19,7 +19,7 @@ The light component supports multiple entries in 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 9721e9d6c98..c175d48ffd1 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 27f5e0f0b33..adf44a2a92e 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.yeelight.markdown b/source/_components/light.yeelight.markdown index d5d5adb4e80..0aa2527d4f4 100644 --- a/source/_components/light.yeelight.markdown +++ b/source/_components/light.yeelight.markdown @@ -26,20 +26,43 @@ light: devices: 192.168.1.25: name: Living Room - transition: 1000 - use_music_mode: True #(defaults to False) - save_on_change: True #(defaults to False) - 192.168.1.13: - name: Front Door ``` -Configuration variables: - -- **ip** (*Required*): IP(s) of your Wifi bulbs -- **name** (*Optional*): A friendly name for the device. -- **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. +{% configuration %} +devices: + required: true + description: List of Yeelight devices. + type: map + keys: + ip: + description: IP address of the bulb. + required: true + type: map + keys: + name: + description: A friendly name for the device. + required: false + type: string + transition: + description: Smooth transitions over time (in ms). + required: false + type: integer + default: 350 + use_music_mode: + description: Enable music mode. + required: false + type: boolean + default: False + save_on_change: + description: Saves the bulb state in its nonvolatile memory when changed from Home Assistant. + required: false + type: boolean + default: False + model: + description: "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." + required: false + type: string +{% endconfiguration %} #### {% 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 +76,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 %} @@ -80,3 +108,37 @@ Set an operation mode. |---------------------------|----------|---------------------------------------------------------------------------------------------| | `entity_id` | yes | Only act on a specific yeelight. Else targets all. | | `mode` | no | Operation mode. Valid values are 'last', 'normal', 'rgb', 'hsv', 'color_flow', 'moonlight'. | + +## {% linkable_title Examples %} + +In this section you find some real-life examples of how to use this light. + +### {% linkable_title Full configuration %} + +This example shows how you can use the optional configuration options. + +```yaml +# Example configuration.yaml entry +light: + - platform: yeelight + devices: + 192.168.1.25: + name: Living Room + transition: 1000 + use_music_mode: True + save_on_change: True +``` + +### {% linkable_title Multiple bulbs %} + +This example shows how you can add multiple bulbs in your configuration. + +```yaml +light: + - platform: yeelight + devices: + 192.168.1.25: + name: Living Room + 192.168.1.13: + name: Front Door +``` diff --git a/source/_components/lirc.markdown b/source/_components/lirc.markdown index ad96e2316b2..7127b52caf7 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.nuki.markdown b/source/_components/lock.nuki.markdown index 6d10c73f9ad..bc5299d61ab 100644 --- a/source/_components/lock.nuki.markdown +++ b/source/_components/lock.nuki.markdown @@ -27,24 +27,21 @@ lock: token: fe2345ef ``` -Configuration variables: - -- **host** (*Required*): The IP or hostname of the Nuki bridge. -- **port** (*Optional*): The port on which the Nuki bridge is listening on. Defaults to `8080`. -- **token** (*Required*): The token that was defined when setting up the bridge. - -## {% linkable_title Full configuration %} - -Here's a full configuration example for a Nuki bridge: - -```yaml -# Example configuration.yaml entry -lock: - - platform: nuki - host: 192.168.1.120 - port: 8080 - token: fe2345ef -``` +{% configuration %} +host: + description: The IP or hostname of the Nuki bridge. + required: true + type: string +port: + description: The port on which the Nuki bridge is listening on. + required: false + default: 8080 + type: integer +token: + description: The token that was defined when setting up the bridge. + required: true + type: string +{% endconfiguration %} ## {% linkable_title Services %} diff --git a/source/_components/matrix.markdown b/source/_components/matrix.markdown index 75bd6da0e6a..d965ea1a9f5 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.anthemav.markdown b/source/_components/media_player.anthemav.markdown index 8e59296db99..9e95937eddf 100644 --- a/source/_components/media_player.anthemav.markdown +++ b/source/_components/media_player.anthemav.markdown @@ -43,7 +43,7 @@ Configuration variables: ## Notes and Limitations -- The tuner is currently unsupported as are the `media_player` play, pays, prev, and next controls. +- The tuner is currently unsupported as are the `media_player` play, pause, prev, and next controls. - Enabling this platform will set and enforce "Standby IP Control On" in your Anthem device. You almost certainly want this. If you disable it on the device, it will just get re-enabled by Home Assistant. - Only Zone 1 is currently supported. diff --git a/source/_components/media_player.bluesound.markdown b/source/_components/media_player.bluesound.markdown index 69372c8c332..fd9ac670de7 100644 --- a/source/_components/media_player.bluesound.markdown +++ b/source/_components/media_player.bluesound.markdown @@ -49,7 +49,7 @@ media_player: ### {% linkable_title Service `bluesound_join` %} -Group players together under a single master speaker. That will make a new group or join to exists group. +Group players together under a single master speaker. That will make a new group or join an existing group. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | diff --git a/source/_components/media_player.denon.markdown b/source/_components/media_player.denon.markdown index ebfe0177bae..61fc86002fe 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.firetv.markdown b/source/_components/media_player.firetv.markdown index 0abf2b3dadc..abcfd873600 100644 --- a/source/_components/media_player.firetv.markdown +++ b/source/_components/media_player.firetv.markdown @@ -56,13 +56,28 @@ media_player: - platform: firetv ``` -Configuration variables: - -- **host** (*Optional*): The host where `firetv-server` is running. Default is localhost. -- **port** (*Optional*): The port where `firetv-server` is running. Default is 5556. -- **device** (*Optional*): The device ID. Defaults to `default`. -- **name** (*Optional*): The friendly name of the device, default is 'Amazon Fire TV'. - +{% configuration %} +host: + description: "The host where `firetv-server` is running." + required: false + type: string + default: localhost +port: + description: "The port where `firetv-server` is running." + required: false + type: integer + default: 5556 +device: + description: The device ID. + required: false + type: string + default: default +name: + description: The friendly name of the device. + required: false + type: string + default: Amazon Fire TV +{% endconfiguration %}

Note that python-firetv has support for multiple Amazon Fire TV devices. If you have more than one configured, be sure to specify the device ID in `device`. Run `firetv-server -h` and/or view the source for complete capabilities. diff --git a/source/_components/media_player.itunes.markdown b/source/_components/media_player.itunes.markdown index 6885a333855..cced6a1953a 100644 --- a/source/_components/media_player.itunes.markdown +++ b/source/_components/media_player.itunes.markdown @@ -16,7 +16,7 @@ ha_iot_class: "Local Polling" The iTunes platform allows you to control [iTunes](http://apple.com/itunes/) from Home Assistant. It uses a 3rd party server that you run on your Mac called [itunes-api](https://github.com/maddox/itunes-api). Play, pause, or skip songs remotely on iTunes running on your Mac. -In addition to controlling iTunes, your available AirPlay endpoints will be added as media players as well. You can then individually address them append turn them on, turn them off, or adjust their volume. +In addition to controlling iTunes, your available AirPlay endpoints will be added as media players as well. You can then individually address them and turn them on, turn them off, or adjust their volume. To add iTunes to your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/media_player.mpd.markdown b/source/_components/media_player.mpd.markdown index 51888be2b20..da37e9c478b 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 bc45310c352..45db859c70e 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 9a80e3ad393..92139ec1d54 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 12916a2ed3c..8345c3b1e80 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 09254957645..0037537535a 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 b996e642a47..88a481b27d6 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 7d98e77102f..925f378816c 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) +{% 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 %} -A few notes: +### {% 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. +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 dcccf0ede67..402cef31af2 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 a6e021b94fa..9a22aeba843 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/netatmo.markdown b/source/_components/netatmo.markdown index 0efe4ac968c..8735db3992c 100644 --- a/source/_components/netatmo.markdown +++ b/source/_components/netatmo.markdown @@ -29,11 +29,29 @@ netatmo: Configuration variables: -- **api_key** (*Required*): The `client id` form your Netatmo app. -- **secret_key** (*Required*): The `client secret` form your Netatmo app. -- **username** (*Required*): Username for the Netatmo account. -- **password** (*Required*): Password for the Netatmo account. -- **discovery** (*Optional)*: Whether to discover Netatmo devices. Set it to False, if you want to choose which Netatmo device you want to add (default True). +{% configuration %} +api_key: + description: The `client id` from your Netatmo app. + required: true + type: string +secret_key: + description: The `client secret` from your Netatmo app. + required: true + type: integer +username: + description: Username for the Netatmo account. + required: true + type: string +password: + description: Password for the Netatmo account. + required: true + type: string +discovery: + description: Whether to discover Netatmo devices. Set it to False, if you want to choose which Netatmo device you want to add. + required: false + type: string + default: true +{% endconfiguration %} ### {% linkable_title Get API and Secret Key %} diff --git a/source/_components/notify.aws_lambda.markdown b/source/_components/notify.aws_lambda.markdown index be5a5494caa..ef3c5f1d841 100644 --- a/source/_components/notify.aws_lambda.markdown +++ b/source/_components/notify.aws_lambda.markdown @@ -14,9 +14,13 @@ ha_release: "0.20" The `aws_lambda` notification platform enables invoking [AWS Lambda](https://aws.amazon.com/lambda/) functions. -To use this notification platform in your installation, add the following to your `configuration.yaml` file: +## {% linkable_title Setup %} -### Configuration +For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) to get the needed details. Also, check the [boto3 Documentation](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file) about the profiles and the [AWS Regions and Endpoints Reference](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region) for available regions. + +## {% linkable_title Configuration %} + +To use this notification platform in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -30,9 +34,9 @@ notify: Configuration variables: -- **aws_access_key_id** (*Required if aws_secret_access_key is provided*): Your AWS Access Key ID. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`. -- **aws_secret_access_key** (*Required if aws_access_key_id is provided*): Your AWS Secret Access Key. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`. -- **profile_name** (*Optional*): A credentials profile name. For more information, please see the [boto3 documentation section about credentials](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file). +- **aws_access_key_id** (*Required if aws_secret_access_key is provided*): Your AWS Access Key ID. If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`. +- **aws_secret_access_key** (*Required if aws_access_key_id is provided*): Your AWS Secret Access Key. If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`. +- **profile_name** (*Optional*): A credentials profile name. - **region_name** (*Required*): The region identifier to connect to. The default is `us-east-1`. - **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. - **context** (*Optional*): An optional dictionary you can provide to pass custom context through to the Lambda function. The `context` dictionary (if any) is combined with the same data available at the `/api/config` HTTP API route. diff --git a/source/_components/notify.aws_sns.markdown b/source/_components/notify.aws_sns.markdown index cfa69e00843..2903fbfcaa5 100644 --- a/source/_components/notify.aws_sns.markdown +++ b/source/_components/notify.aws_sns.markdown @@ -14,6 +14,12 @@ ha_release: "0.20" The `aws_sns` notification platform enables publishing to an [AWS SNS](https://aws.amazon.com/sns/) topic or application. +## {% linkable_title Setup %} + +For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) to get the needed details. Also, check the [boto3 Documentation](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file) about the profiles and the [AWS Regions and Endpoints Reference](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region) for available regions. + +## {% linkable_title Configuration %} + To use this notification platform in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -28,9 +34,9 @@ notify: Configuration variables: -- **aws_access_key_id** (*Required if aws_secret_access_key is provided*): Your AWS Access Key ID. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`. -- **aws_secret_access_key** (*Required if aws_access_key_id is provided*): Your AWS Secret Access Key. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`. -- **profile_name** (*Optional*): A credentials profile name. For more information, please see the [boto3 documentation section about credentials](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file). +- **aws_access_key_id** (*Required if aws_secret_access_key is provided*): Your AWS Access Key ID. If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`. +- **aws_secret_access_key** (*Required if aws_access_key_id is provided*): Your AWS Secret Access Key. If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`. +- **profile_name** (*Optional*): A credentials profile name. - **region_name** (*Required*): The region identifier to connect to. The default is `us-east-1`. - **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. diff --git a/source/_components/notify.aws_sqs.markdown b/source/_components/notify.aws_sqs.markdown index a1e8a33f8bd..6aa9288f7bf 100644 --- a/source/_components/notify.aws_sqs.markdown +++ b/source/_components/notify.aws_sqs.markdown @@ -14,6 +14,12 @@ ha_release: "0.20" The `aws_sqs` notification platform enables publishing to an [AWS SQS](https://aws.amazon.com/sqs/) message queue. +## {% linkable_title Setup %} + +For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) to get the needed details. Also, check the [boto3 Documentation](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file) about the profiles and the [AWS Regions and Endpoints Reference](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region) for available regions. + +## {% linkable_title Configuration %} + To use this notification platform in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -28,9 +34,9 @@ notify: Configuration variables: -- **aws_access_key_id** (*Required if aws_secret_access_key is provided*): Your AWS Access Key ID. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`. -- **aws_secret_access_key** (*Required if aws_access_key_id is provided*): Your AWS Secret Access Key. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`. -- **profile_name** (*Optional*): A credentials profile name. For more information, please see the [boto3 documentation section about credentials](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file). +- **aws_access_key_id** (*Required if aws_secret_access_key is provided*): Your AWS Access Key ID. If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`. +- **aws_secret_access_key** (*Required if aws_access_key_id is provided*): Your AWS Secret Access Key. If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`. +- **profile_name** (*Optional*): A credentials profile name. - **region_name** (*Required*): The region identifier to connect to. The default is `us-east-1`. - **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. diff --git a/source/_components/notify.ecobee.markdown b/source/_components/notify.ecobee.markdown index 53f97f69d12..0dbdf6b8ade 100644 --- a/source/_components/notify.ecobee.markdown +++ b/source/_components/notify.ecobee.markdown @@ -23,9 +23,12 @@ notify: platform: ecobee ``` -Configuration variables: - -- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. +{% configuration %} +name: + description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`. + required: false + default: "`notify`" + type: string +{% endconfiguration %} To use notifications, please see the [getting started with automation page](/getting-started/automation/). - diff --git a/source/_components/notify.flock.markdown b/source/_components/notify.flock.markdown index d164e2151ce..f0612e929ca 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 029f6514478..41a46d12ba4 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 4e81f1e2362..72c18e724d4 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 7f3225bd73c..63cf49b985d 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 6ec1639edb2..2933ca01789 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 6060016e1c5..886be8aa0ae 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.synology_chat.markdown b/source/_components/notify.synology_chat.markdown index 5fbbae6a046..a42f3934eed 100644 --- a/source/_components/notify.synology_chat.markdown +++ b/source/_components/notify.synology_chat.markdown @@ -26,9 +26,15 @@ notify: resource: https://example.your.synology.com/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=1&token=ABCDEFG ``` -Configuration variables: - -- **name** (*Required*): Setting the parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`. -- **resource** (*Required*): The incoming webhook URL. +{% configuration %} +name: + description: "Setting the parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`." + required: true + type: string +resource: + description: The incoming webhook URL. + required: true + type: string +{% endconfiguration %} To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_components/notify.telegram.markdown b/source/_components/notify.telegram.markdown index 42acb5bd290..934965200ee 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.twilio_call.markdown b/source/_components/notify.twilio_call.markdown index 7f0fa2a989e..3733c6ef33f 100644 --- a/source/_components/notify.twilio_call.markdown +++ b/source/_components/notify.twilio_call.markdown @@ -27,10 +27,17 @@ notify: from_number: E164_PHONE_NUMBER ``` -Configuration variables: - -- **from_number** (*Required*): An [E.164](https://en.wikipedia.org/wiki/E.164) formatted phone number, like +14151234567. See [Twilio's guide to formatting phone numbers](https://www.twilio.com/help/faq/phone-numbers/how-do-i-format-phone-numbers-to-work-internationally) for more information. -- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. +{% configuration %} +from_number: + description: "An [E.164](https://en.wikipedia.org/wiki/E.164) formatted phone number, like +14151234567. See [Twilio's guide to formatting phone numbers](https://www.twilio.com/help/faq/phone-numbers/how-do-i-format-phone-numbers-to-work-internationally) for more information." + required: true + type: string +name: + description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`. + required: false + default: "`notify`" + type: string +{% endconfiguration %} ### {% linkable_title Usage %} diff --git a/source/_components/notify.twilio_sms.markdown b/source/_components/notify.twilio_sms.markdown index 7cec94cf339..162b34b34e8 100644 --- a/source/_components/notify.twilio_sms.markdown +++ b/source/_components/notify.twilio_sms.markdown @@ -26,10 +26,17 @@ notify: from_number: E164_PHONE_NUMBER ``` -Configuration variables: - -- **from_number** (*Required*): An [E.164](https://en.wikipedia.org/wiki/E.164) formatted phone number, like +14151234567. See [Twilio's guide to formatting phone numbers](https://www.twilio.com/help/faq/phone-numbers/how-do-i-format-phone-numbers-to-work-internationally) for more information. -- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. +{% configuration %} +from_number: + description: An [E.164](https://en.wikipedia.org/wiki/E.164) formatted phone number, like +14151234567. See [Twilio's guide to formatting phone numbers](https://www.twilio.com/help/faq/phone-numbers/how-do-i-format-phone-numbers-to-work-internationally) for more information. + required: true + type: string +name: + description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`. + required: false + default: "`notify`" + type: string +{% endconfiguration %} ### {% linkable_title Usage %} diff --git a/source/_components/notify.xmpp.markdown b/source/_components/notify.xmpp.markdown index 14105d9bb6d..45f452f5a88 100644 --- a/source/_components/notify.xmpp.markdown +++ b/source/_components/notify.xmpp.markdown @@ -13,7 +13,9 @@ ha_release: pre 0.7 --- -The `xmpp` platform allows you to deliver notifications from Home Assistant to a [Jabber (XMPP)](http://xmpp.org) account. +The `xmpp` notification platform allows you to deliver notifications from Home Assistant to a [Jabber (XMPP)](http://xmpp.org) account. + +## {% linkable_title Configuration %} To enable Jabber notifications in your installation, add the following to your `configuration.yaml` file: @@ -27,18 +29,47 @@ notify: recipient: YOUR_RECIPIENT ``` -Configuration variables: - -- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. -- **sender** (*Required*): The Jabber ID (JID) that will act as origin of the messages. Add your JID including the domain, eg. your_name@jabber.org. -- **password** (*Required*): The password for your given Jabber account. -- **recipient** (*Required*): The Jabber ID (JID) that will receive the messages. -- **tls** (*Optional*): Allow to disable TLS. Defaults to `true`. -- **verify** (*Optional*): Allow disabling SSL certificate validity check (e.g., self-signed certificate). Defaults to `true`. -- **room** (*Optional*): Room's name (e.g., example@conference.jabber.org). If set, send a message to chatroom instead of the sender. +{% configuration %} +name: + description: "Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`." + required: false + type: string + default: Random Sensor +sender: + description: "The Jabber ID (JID) that will act as origin of the messages. Add your JID including the domain, e.g. your_name@jabber.org." + required: true + type: string +resource: + description: "Resource part of JID, e.g., your_name@jabber.org/`HA-cabin`." + required: false + type: string + default: home-assistant +password: + description: The password for your given Jabber account. + required: true +recipient: + description: The Jabber ID (JID) that will receive the messages. + required: true +tls: + description: Force TLS. + required: false + type: boolean + default: true +verify: + description: Allow disabling SSL certificate validity check, e.g., self-signed certificate. + required: false + type: boolean + default: true +room: + description: Room's name (e.g., example@conference.jabber.org). If set, send a message to chatroom instead of the recipient. + required: false + type: string +{% endconfiguration %}

- sleekxmpp, as of version 1.3.2, does not support >TLS1. If you are running your own XMPP server (e.g. Prosody, ejabberd) make sure to allow using TLS1. + Pre Home Assistant 0.81 `sleekxmpp` was used to connect to XMPP servers. `sleekxmpp` as of version 1.3.2, does not support > TLS v1. If you are running your own XMPP server (e.g., Prosody, ejabberd) make sure to allow using TLS v1. + + Home Assistant after 0.81 uses `slixmpp`, which also supports TLS v1.1 and TLS v1.2.

All Jabber IDs (JID) must include the domain. Make sure that the password matches the account provided as sender. diff --git a/source/_components/octoprint.markdown b/source/_components/octoprint.markdown index 29e6c039ed9..f921c6eaabf 100644 --- a/source/_components/octoprint.markdown +++ b/source/_components/octoprint.markdown @@ -14,25 +14,113 @@ ha_release: 0.19 ha_iot_class: "Local Polling" --- -[OctoPrint](http://octoprint.org/) is a web interface for your 3D printer. This is the main component to integrate OctoPrint sensors, you will have to setup sensors and binary sensors separately. +[OctoPrint](http://octoprint.org/) is a web interface for your 3D printer. This is the main component to integrate OctoPrint sensors. -To get started with the OctoPrint API, please follow the directions on their [site](http://docs.octoprint.org/en/master/api/general.html). Once OctoPrint is configured you will need to add your API key and host to your `configuration.yaml`. +## {% linkable_title Base Configuration %} +To get started with the OctoPrint API, please follow the directions on their [site](http://docs.octoprint.org/en/master/api/general.html). Once OctoPrint is configured you will need to add your API key and host to your `configuration.yaml`. ```yaml octoprint: host: YOUR_OCTOPRINT_HOST api_key: YOUR_API_KEY - bed: false - number_of_tools: 1 ``` -Configuration variables: +{% configuration %} +octoprint: + type: list + required: true + keys: + host: + description: IP address or hostname of Octoprint host. + required: true + type: string + api_key: + description: The retrieved api key. + required: true + type: string + name: + description: The name for this printer, must be unique if multiple printers are defined. + required: false + type: string + default: 'OctoPrint' + port: + description: The port of the Octoprint server. + required: false + type: integer + default: 80 + ssl: + description: Enable or disable SSL + required: false + type: boolean + default: false + bed: + description: If the printer has a heated bed. + required: false + type: boolean + default: false + number_of_tools: + description: Number of temperature adjustable tools. i.e. nozzle. + required: false + type: integer + default: 1 + sensors: + description: Configuration for the sensors + required: false + type: map + keys: + monitored_conditions: + description: The sensors to activate + type: list + default: all (`Current State`, `Temperatures`, `Job Percentage`, `Time Elapsed`, `Time Remaining`) + keys: + "Current State": + description: Text of current state. + "Temperatures": + description: 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": + description: Percentage of the job. + "Time Elapsed": + description: Time elapsed on current print job, in seconds. + "Time Remaining": + description: Time remaining on current print job, in seconds. + binary_sensors: + description: Configuration for the binary sensors + required: false + type: map + keys: + monitored_conditions: + description: The sensors to activate + type: list + default: all (`Printing`, `Printing Error`) + keys: + "Printing": + description: State of the printer. + "Printing Error": + description: Error while printing. +{% endconfiguration %} -- **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. +

+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: + +```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/openuv.markdown b/source/_components/openuv.markdown index 390249c7d30..cc66c3df92a 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 ba13cf6967b..9f79b38edb3 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 42eddb45996..ea36b0278df 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 6785cdb9fc4..3d9743b3715 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: +{% 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 %} -- **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: +### {% 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/route53.markdown b/source/_components/route53.markdown new file mode 100644 index 00000000000..a00e5e708d0 --- /dev/null +++ b/source/_components/route53.markdown @@ -0,0 +1,103 @@ +--- +layout: page +title: "route53" +description: "Automatically update your AWS Route53 DNS records." +date: 2018-02-10 20:08 +sidebar: true +comments: false +sharing: true +footer: true +logo: route53.png +ha_category: Network +ha_release: "0.81" +--- + +With the `route53` component can you keep your AWS Route53 DNS records up to date. + +The component will run every hour, but can also be started manually by using the service `route53.update_records` under services. + +Please note that this platform uses the API from [ipify.org](https://www.ipify.org/) to set the public IP address. + +## {% linkable_title Setup %} + +You will need to configure your AWS Account with a suitable IAM policy and API keys for this to function. + +If you are familiar with this process, you can skip the next section and head directly to the configuration section. + +On the AWS side, you need to do the following; + +1. Create a suitable zone for a domain that you own and manage in Route53, the domain `home.yourdomain.com` is used as an example. + +2. Once created, write down the Hosted Zone ID value for the domain. This is needed for the plugin and IAM configuration. + +3. Create an IAM Policy that provides update and query access to this domain explicitly and has no other permissions to the AWS account. + +Here is an IAM Policy sample, don't forget to update your Zone ID on the Resource line. + +``` +{ + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "VisualEditor0", + "Effect": "Allow", + "Action": [ + "route53:GetHostedZone", + "route53:ChangeResourceRecordSets", + "route53:ListResourceRecordSets" + ], + "Resource": "arn:aws:route53:::hostedzone/YOURZONEIDGOESHERE" + }, + { + "Sid": "VisualEditor1", + "Effect": "Allow", + "Action": "route53:TestDNSAnswer", + "Resource": "*" + } + ] +} +``` + +4. Once this has been done, create a new user called `homeassistant` and add the IAM policy to the user, allowing it to manage this DNS resource. + +5. Under the security credentials tab for the `homeassistant` user, create a set of access keys for placement in the component definition YAML. + +## {% linkable_title Configuration %} + +To use the component in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +route53: + aws_access_key_id: ABC123 + aws_secret_access_key: DEF456 + zone: ZONEID678 + domain: home.yourdomain.com + records: + - vpn + - hassio + - home +``` + +{% configuration route53 %} +aws_access_key_id: + description: The AWS access key ID for the account that has IAM access to the domain. + required: true + type: string +aws_secret_access_key: + description: The AWS secret access key for the account that has IAM access to the domain. + required: true + type: string +zone: + description: The AWS zone ID for the domain in Route53. + required: true + type: string +domain: + description: The domain name for the domain in Route53. + required: true + type: string +records: + description: A list of records you want to update. + required: true + type: list +{% endconfiguration %} diff --git a/source/_components/scene.hunterdouglas_powerview.markdown b/source/_components/scene.hunterdouglas_powerview.markdown index 2ef810a113e..a418c8f4ddd 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 7fd18417d87..95fe53698a7 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 7b6ac7a2799..219dcb48bee 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/scene.markdown b/source/_components/scene.markdown index 48998818971..f0bb6a2b479 100644 --- a/source/_components/scene.markdown +++ b/source/_components/scene.markdown @@ -34,10 +34,16 @@ scene: source: HDMI 1 ``` -Configuration variables: - -- **name** (*Required*): Friendly name of scene. -- **entities** (*Required*): Entities to control. +{% configuration %} +name: + description: Friendly name of scene. + required: true + type: string +entities: + description: Entities to control. + required: true + type: list +{% endconfiguration %} As you can see, there are two ways to define the states of each `entity_id`: diff --git a/source/_components/sensor.api_stream.markdown b/source/_components/sensor.api_streams.markdown similarity index 86% rename from source/_components/sensor.api_stream.markdown rename to source/_components/sensor.api_streams.markdown index f3178306615..0a5e744e645 100644 --- a/source/_components/sensor.api_stream.markdown +++ b/source/_components/sensor.api_streams.markdown @@ -14,7 +14,7 @@ ha_iot_class: "Local Push" ha_qa_scale: internal --- -The `api_stream` sensor platform shows how many clients are connected to the stream API +The `api_streams` sensor platform shows how many clients are connected to the stream API ## {% linkable_title Configuration %} diff --git a/source/_components/sensor.bbox.markdown b/source/_components/sensor.bbox.markdown index a45e4bdb5ed..3f456901862 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 aa7b7103a53..814b276edce 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 7774077d9cf..c3cc033404c 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 99b0578b76b..f65dc2acdd1 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 c23e5783aaa..265b448755c 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 04f31df2ae6..9e03ee8eae0 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.deluge.markdown b/source/_components/sensor.deluge.markdown index 948849b0aad..e82d6a264e6 100644 --- a/source/_components/sensor.deluge.markdown +++ b/source/_components/sensor.deluge.markdown @@ -31,14 +31,38 @@ sensor: - 'upload_speed' ``` -Configuration variables: - -- **host** (*Required*): This is the IP address of your Deluge daemon, eg. 192.168.1.32. -- **port** (*Optional*): The port your Deluge daemon uses. Defaults to 58846. Warning, this is not the port of the WebUI. -- **name** (*Optional*): The name to use when displaying this Deluge instance. -- **username** (*Required*): Your Deluge daemon username. -- **password** (*Required*): Your Deluge daemon password. -- **monitored_variables** array (*Required*): Conditions to display in the frontend. - - **current_status**: The status of your Deluge daemon. - - **download_speed**: The current download speed. - - **upload_speed**: The current upload speed. +{% configuration %} +host: + required: true + type: string + description: This is the IP address of your Deluge daemon, e.g., 192.168.1.32. +port: + required: false + type: integer + description: The port your Deluge daemon uses. Warning, this is not the port of the WebUI. + default: 58846 +name: + required: false + type: string + default: Deluge + description: The name to use when displaying this Deluge instance. +username: + required: true + type: string + description: Your Deluge daemon username. +password: + required: true + type: string + description: Your Deluge daemon password. +monitored_variables: + required: true + type: list + description: Conditions to display in the frontend. + keys: + current_status: + description: The status of your Deluge daemon. + download_speed: + description: The current download speed. + upload_speed: + description: The current upload speed. + {% endconfiguration %} diff --git a/source/_components/sensor.dht.markdown b/source/_components/sensor.dht.markdown index 65a16633bda..7766643d8b8 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.dovado.markdown b/source/_components/sensor.dovado.markdown index bbbd0bae3c5..d862ef3fef3 100644 --- a/source/_components/sensor.dovado.markdown +++ b/source/_components/sensor.dovado.markdown @@ -13,7 +13,7 @@ ha_release: 0.32 ha_iot_class: "Local Polling" --- -The `dovado` platform let you monitor your router from [Dovado](http://www.dovado.com/) +The `dovado` platform let you monitor your router from [Dovado](http://www.dovado.com/). If the router provides SMS functionality, a service for sending SMS will also be registered in Home Assistant. To add a Dovado sensor to your installation, add the following to your `configuration.yaml` file: @@ -23,23 +23,42 @@ sensor: - platform: dovado username: YOUR_USERNAME password: YOUR_PASSWORD - host: IP_ADDRESS - port: PORT sensors: - network ``` -Configuration variables: - -- **username** (*Required*): Your username. -- **password** (*Required*): Your password. -- **host** (*Optional*): The IP address of your router, e.g., `192.168.1.1`. If no host is provided, the gateway for the same network as Home Assistant will automatically be used. -- **port** (*Optional*): The port number of your router, e.g., `999`. If no port is provided, the default API port (6435) will be used. -- **sensors** array (*Required*): Conditions to display in the frontend. - - **network**: Network state (3G, 4G, etc). - - **signal**: The signal strength (%). - - **download**: The download speed. - - **upload**: The upload speed. - - **sms**: Number of unread text messages - -If the router provides SMS functionality, a service for sending SMS will also be registered in Home Assistant. +{% configuration %} +username: + description: Your Dovado username. + required: true + type: string +password: + description: Your Dovado password. + required: true + type: string +host: + description: The IP address of your router. + required: false + type: string + default: Home Assistant's default gateway +port: + description: The port number of your router. + required: false + type: integer + default: 6435 +sensors: + description: Conditions to display in the frontend. Only accepts the values listed here. + required: true + type: list + keys: + network: + description: Creates a sensor for Network State (3G, 4G, etc.). + signal: + description: Creates a sensor for the signal strength. + download: + description: Creates a sensor for download speed. + upload: + description: Creates a sensor for download speed. + sms: + description: Creates a sensor for number of unread text messages. +{% endconfiguration %} diff --git a/source/_components/sensor.dwd_weather_warnings.markdown b/source/_components/sensor.dwd_weather_warnings.markdown index 2965c009260..84ed3ca5b52 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.enocean.markdown b/source/_components/sensor.enocean.markdown index 669c07825aa..d75ef524801 100644 --- a/source/_components/sensor.enocean.markdown +++ b/source/_components/sensor.enocean.markdown @@ -21,13 +21,19 @@ To use your EnOcean device, you first have to set up your [EnOcean hub](../enoce ```yaml # Example configuration.yaml entry sensor: - - name: Television - platform: enocean + - platform: enocean + name: Television id: [0x01,0x90,0x84,0x3C] ``` -Configuration variables: - -- **id** (*Required*): The ID of the device. This is a 4 bytes long number. -- **platform** (*Required*): Set to `enocean`. -- **name** (*Required*): An identifier for the switch +{% configuration %} +id: + description: The ID of the device. This is a 4 bytes long number. + required: true + type: list +name: + description: An identifier for the switch + required: true + default: EnOcean sensor + type: string +{% endconfiguration %} diff --git a/source/_components/sensor.geizhals.markdown b/source/_components/sensor.geizhals.markdown index 636751da35b..575c974b4de 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 9d73fe5f7b9..bd1d773b0d7 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.hddtemp.markdown b/source/_components/sensor.hddtemp.markdown index 0116bedde19..4146109d07a 100644 --- a/source/_components/sensor.hddtemp.markdown +++ b/source/_components/sensor.hddtemp.markdown @@ -30,10 +30,24 @@ sensor: - /dev/sda1 ``` -Configuration variables: - -- **name** (*Optional*): Friendly name to use for the frontend. Default to "HD Temperature". -- **host** (*Optional*): Host where `hddtemp` is running. Default to `localhost`. -- **port** (*Optional*): Port that is used by `hddtemp` . Default to `7634`. -- **disks** (*Optional*): Disk to be monitored. Example: `/dev/sda1` - +{% configuration %} +name: + description: Friendly name to use for the frontend. + required: false + default: HD Temperature + type: string +host: + description: Host where `hddtemp` is running. + required: false + default: localhost + type: string +port: + description: Port that is used by `hddtemp`. + required: false + default: 7634 + type: integer +disks: + description: "Disk to be monitored. Example: `/dev/sda1`." + required: false + type: list +{% endconfiguration %} diff --git a/source/_components/sensor.imap.markdown b/source/_components/sensor.imap.markdown index f09956e9648..27ae8f63c78 100644 --- a/source/_components/sensor.imap.markdown +++ b/source/_components/sensor.imap.markdown @@ -30,11 +30,31 @@ sensor: password: YOUR_PASSWORD ``` -Configuration variables: - -- **server** (*Required*): The IP address or hostname of the IMAP server. -- **port** (*Optional*): The port where the server is accessible. -- **name** (*Optional*): Name of the IMAP sensor. -- **username** (*Required*): Username for the IMAP server. -- **password** (*Required*): Password for the IMAP server. -- **folder** (*Optional*): The IMAP folder to watch. +{% configuration %} +server: + description: The IP address or hostname of the IMAP server. + required: true + type: string +port: + description: The port where the server is accessible. + required: false + default: 993 + type: integer +name: + description: Name of the IMAP sensor. + required: false + type: string +username: + description: Username for the IMAP server. + required: true + type: string +password: + description: Password for the IMAP server. + required: true + type: string +folder: + description: The IMAP folder to watch. + required: false + default: inbox + type: string +{% endconfiguration %} diff --git a/source/_components/sensor.imap_email_content.markdown b/source/_components/sensor.imap_email_content.markdown index e67340b7ef7..706b10b3e25 100644 --- a/source/_components/sensor.imap_email_content.markdown +++ b/source/_components/sensor.imap_email_content.markdown @@ -32,17 +32,43 @@ sensor: - example@gmail.com ``` -Configuration variables: - -- **server** (*Required*): The IP address or hostname of the IMAP server. -- **port** (*Required*): The port where the server is accessible. -- **name** (*Optional*): Name of the IMAP sensor to use in the frontend. -- **username** (*Required*): Username for the IMAP server. -- **password** (*Required*): Password for the IMAP server. -- **senders** (*Required*): A list of sender email addresses that are allowed to report state via email. Only emails received from these addresses will be processed. -- **value_template** (*Optional*): If specified this template will be used to render the state of the sensor. If a template is not supplied the message subject will be used for the sensor value. The following attributes will be supplied to the template: - - * **from**: The from address of the email - * **body**: The body of the email - * **subject**: The subject of the email - * **date**: The date and time the email was sent +{% configuration %} +server: + description: The IP address or hostname of the IMAP server. + required: true + type: string +port: + description: The port where the server is accessible. + required: false + default: 993 + type: integer +name: + description: Name of the IMAP sensor. + required: false + type: string +username: + description: Username for the IMAP server. + required: true + type: string +password: + description: Password for the IMAP server. + required: true + type: string +senders: + description: A list of sender email addresses that are allowed to report state via email. Only emails received from these addresses will be processed. + required: true + type: string +value_template: + description: If specified this template will be used to render the state of the sensor. If a template is not supplied the message subject will be used for the sensor value. The following attributes will be supplied to the template. + required: false + type: template + keys: + from: + description: The from address of the email. + body: + description: The body of the email. + subject: + description: The subject of the email. + date: + description: The date and time the email was sent. +{% endconfiguration %} diff --git a/source/_components/sensor.iperf3.markdown b/source/_components/sensor.iperf3.markdown index 068a9b879ad..44c5e7f3696 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 53002877895..49eccc7da36 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 3819a6dfdfd..d558d1c3a15 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.metoffice.markdown b/source/_components/sensor.metoffice.markdown index 38447940de0..de9f1eca3dc 100644 --- a/source/_components/sensor.metoffice.markdown +++ b/source/_components/sensor.metoffice.markdown @@ -41,27 +41,54 @@ sensor: Your location will be detected from your home `latitude` and `longitude` settings. -Configuration variables: - -- **api_key** (*Required*): Your personal API key from the [Datapoint website](https://www.metoffice.gov.uk/datapoint). -- **name** (*Optional*): Additional name for the sensors. Default to platform name. -- **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. - - **weather**: A human-readable text summary of the current conditions. - - **temperature**: The current temperature. - - **feels_like_temperature**: A numerical value representing the apparent (or "feels like") temperature. - - **wind_speed**: The wind speed. - - **wind_direction**: Where the wind is coming from. - - **wind_gust**: If there are wind gusts. - - **visibility**: The average visibility. - - **visibility_distance**: The visibility distance. - - **uv**: The UV index. - - **precipitation**: The average expected intensity of precipitation occurring. - - **humidity**: The relative humidity. +{% configuration %} +api_key: + description: "Your personal API key from the [Datapoint website](https://www.metoffice.gov.uk/datapoint)." + required: true + type: string +name: + description: Additional name for the sensors. + required: false + defaults: Met Office + type: string +latitude: + description: "Latitude coordinate to monitor weather of (required if **longitude** is specified), defaults to coordinates defined in your `configuration.yaml`." + required: inclusive + type: float +longitude: + description: "Longitude coordinate to monitor weather of (required if **latitude** is specified), defaults to coordinates defined in your `configuration.yaml`." + required: inclusive + type: float +monitored_conditions: + description: Conditions to display in the frontend. + required: true + type: list + keys: + weather: + description: A human-readable text summary of the current conditions. + temperature: + description: The current temperature. + feels_like_temperature: + description: A numerical value representing the apparent (or "feels like") temperature. + wind_speed: + description: The wind speed. + wind_direction: + description: Where the wind is coming from. + wind_gust: + description: If there are wind gusts. + visibility: + description: The average visibility. + visibility_distance: + description: The visibility distance. + uv: + description: The UV index. + precipitation: + description: The average expected intensity of precipitation occurring. + humidity: + description: The relative humidity. +{% endconfiguration %}

This sensor is an alternative to the [`metoffice`](/components/weather.metoffice/) weather platform. The weather platform is easier to configure but less customizable.

- diff --git a/source/_components/sensor.miflora.markdown b/source/_components/sensor.miflora.markdown index 0e82f9a6e32..db6452c2c5e 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 b20d72a4bf5..bf54f976824 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 d9681e8f678..3345162f9db 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 8b8a0fc07b6..0b2182a83f6 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.netatmo.markdown b/source/_components/sensor.netatmo.markdown index 856ccc0ec47..cf38ea961d9 100644 --- a/source/_components/sensor.netatmo.markdown +++ b/source/_components/sensor.netatmo.markdown @@ -39,28 +39,56 @@ sensor: - battery_vp ``` -Configuration variables: - -- **station** (*Optional*): The name of the weather station. Needed if several stations are associated with the account. -- **modules** (*Required*): Modules to use. Multiple entries allowed. Please check the next section about how to retrieve the module names. - - **module_name** array (*Required*): Name of the module. - - **temperature**: Current temperature. - - **co2**: CO2 concentration in ppm. - - **pressure**: Pressure in mbar. - - **noise**: Noise level in dB. - - **humidity**: Humidity in %. - - **rain**: Estimated rainfall for today in mm. - - **sum_rain_1**: Rainfall in the last hour in mm. - - **sum_rain_24**: Rainfall in mm from 00:00am - 23:59pm. - - **windangle**: Wind angle - - **windstrength**: Wind strength - - **gustangle**: Wind gust angle - - **guststrength**: Wind gust strength - - **min_temp**: Min temperature for today - - **max_temp**: Max temperature for today - - **rf_status**: Current radio status per module. (90=low, 60=highest) - - **wifi_status**: Wifi status per Base station - - **battery_vp**: Current battery status per module. +{% configuration %} +station: + required: false + description: The name of the weather station. Needed if several stations are associated with the account. + type: string +modules: + required: true + description: Modules to use. Multiple entries allowed. Please check the next section about how to retrieve the module names. + type: list + keys: + module_name: + type: list + required: true + description: Name of the module. + keys: + temperature: + description: Current temperature. + co2: + description: CO2 concentration in ppm. + pressure: + description: Pressure in mbar. + noise: + description: Noise level in dB. + humidity: + description: "Humidity in %." + rain: + description: Estimated rainfall for today in mm. + sum_rain_1: + description: Rainfall in the last hour in mm. + sum_rain_24: + description: "Rainfall in mm from 00:00am - 23:59pm." + windangle: + description: Wind angle + windstrength: + description: Wind strength + gustangle: + description: Wind gust angle + guststrength: + description: Wind gust strength + min_temp: + description: Min temperature for today + max_temp: + description: Max temperature for today + rf_status: + description: "Current radio status per module. (90=low, 60=highest)" + wifi_status: + description: Wifi status per Base station + battery_vp: + description: Current battery status per module. +{% endconfiguration %} ### {% linkable_title Find your modules name %} diff --git a/source/_components/sensor.nzbget.markdown b/source/_components/sensor.nzbget.markdown index cb3b45fc5a5..bd32c3a2142 100644 --- a/source/_components/sensor.nzbget.markdown +++ b/source/_components/sensor.nzbget.markdown @@ -28,22 +28,55 @@ sensor: - download_paused ``` -Configuration variables: - -- **host** (*Required*): IP address where your NZBGet installation is running. -- **port** (*Optional*): The port of your NZBGet installation. Defaults to 6789. -- **ssl** (*Optional*): Whether or not to use SSL to access NZBGet. Defaults to false. -- **name** (*Optional*): The prefix to use for your sensor. Defaults to NZBGet. -- **username** (*Optional*): The username to access your NZBGet installation. -- **password** (*Optional*): The password to access your NZBGet installation. -- **monitored_variables** array (*Required*): List of monitored details. - - **article_cache**: Number of cached articles. - - **average_download_rate**: Average download rate - - **download_paused**: Paused downloads - - **download_rate**: Current download rate - - **download_size**: The size to download - - **free_disk_space**: Free disk space at the storage location of NZBGet - - **post_paused**: Paused posts - - **remaining_size**: Remaining size to download - - **uptime**: Uptime of NZBGet - +{% configuration %} +host: + required: true + type: string + description: IP address where your NZBGet installation is running. +port: + required: false + type: integer + description: The port of your NZBGet installation. + default: 6789 +ssl: + required: false + type: boolean + description: Whether or not to use SSL to access NZBGet. + default: false +name: + required: false + type: string + description: The prefix to use for your sensor. + default: NZBGet +username: + required: false + type: string + description: The username to access your NZBGet installation. +password: + required: false + type: string + description: The password to access your NZBGet installation. +monitored_variables: + required: true + type: list + description: List of monitored details. + keys: + article_cache: + description: Number of cached articles. + average_download_rate: + description: Average download rate + download_paused: + description: Paused downloads + download_rate: + description: Current download rate + download_size: + description: The size to download + free_disk_space: + description: Free disk space at the storage location of NZBGet + post_paused: + description: Paused posts + remaining_size: + description: Remaining size to download + uptime: + description: Uptime of NZBGet +{% endconfiguration %} diff --git a/source/_components/sensor.octoprint.markdown b/source/_components/sensor.octoprint.markdown index c9f3aed618a..c2998392855 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.radarr.markdown b/source/_components/sensor.radarr.markdown index 11635a8d18d..08bb928d472 100644 --- a/source/_components/sensor.radarr.markdown +++ b/source/_components/sensor.radarr.markdown @@ -26,22 +26,61 @@ sensor: api_key: YOUR_API_KEY ``` -Configuration variables: - -- **api_key** (*Required*): Your Radarr API key, found in Settings > General in the Radarr Web UI. -- **host** (*Optional*): The host Radarr is running on. Defaults to `localhost`. -- **port** (*Optional*): The port Radarr is running on. Defaults to 7878. -- **urlbase** (*Optional*): The base URL Radarr is running under. Defaults to `/`. -- **monitored_conditions** array (*Optional*): Conditions to display on the frontend. Defaults to `movies`. - - **movies**: The number of movies in Radarr. - - **upcoming**: The number of upcoming movie releases (physical and in cinemas). - - **commands**: The number of commands being run. - - **diskspace**: The available disk space. - - **status**: The current system status information. -- **days** (*Optional*): How many days to look ahead for the upcoming sensor, 1 means today only. Defaults to 1. -- **include_paths** (*Optional*): Array of file paths to include when calculating diskspace. Leave blank to include all. -- **unit**: (*Optional*): The unit to display disk space in. Defaults to GB. -- **ssl**: boolean (*Optional*): Whether or not to use SSL for Radarr. +{% configuration %} +api_key: + required: true + type: string + description: Your Radarr API key, found in Settings > General in the Radarr Web UI. +host: + required: false + type: string + description: The host Radarr is running on. + default: "`localhost`" +port: + required: false + type: integer + description: The port Radarr is running on. + default: 7878 +urlbase: + required: false + type: string + description: The base URL Radarr is running under. Defaults to `/`. +monitored_conditions: + required: false + type: list + description: Conditions to display on the frontend. + default: "`movies`" + keys: + movies: + description: The number of movies in Radarr. + upcoming: + description: The number of upcoming movie releases (physical and in cinemas). + commands: + description: The number of commands being run. + diskspace: + description: The available disk space. + status: + description: The current system status information. +days: + required: false + type: integer + description: How many days to look ahead for the upcoming sensor, 1 means today only. + default: 1 +include_paths: + required: false + type: list + description: Array of file paths to include when calculating diskspace. Leave blank to include all. +unit: + required: false + type: string + description: The unit to display disk space in. + default: GB +ssl: + required: false + type: boolean + description: Whether or not to use SSL for Radarr. + default: false +{% endconfiguration %} ## {% linkable_title Examples %} diff --git a/source/_components/sensor.rest.markdown b/source/_components/sensor.rest.markdown index 7e756ce6a3d..bae594e5f4a 100644 --- a/source/_components/sensor.rest.markdown +++ b/source/_components/sensor.rest.markdown @@ -43,7 +43,7 @@ resource: type: string default: string method: - description: The method of the request. + description: The method of the request. Either `POST` or `GET`. required: false type: string default: GET diff --git a/source/_components/sensor.ring.markdown b/source/_components/sensor.ring.markdown index e8059abc990..648b93ce4f5 100644 --- a/source/_components/sensor.ring.markdown +++ b/source/_components/sensor.ring.markdown @@ -25,15 +25,25 @@ sensor: - platform: ring ``` -Configuration variables: - -- **monitored_conditions** array (*Optional*): Conditions to display in the frontend. The following conditions can be monitored. If not specified, all conditions below will be enabled. - - **battery**: Return the battery level from device - - **last_activity**: Return the timestamp from the last event captured (ding/motion/on demand) by the Ring doorbell camera - - **last_ding**: Return the timestamp from the last time the Ring doorbell button was pressed - - **last_motion**: Return the timestamp from the last motion event captured by the Ring doorbell camera - - **volume**: Return the volume level from the device. - - **wifi_signal_category**: Return the WiFi signal level from the device. - - **wifi_signal_strength**: Return the WiFi signal strength (dBm) from the device. +{% configuration %} +monitored_conditions: + type: list + required: false + description: Conditions to display in the frontend. The following conditions can be monitored. If not specified, all conditions below will be enabled. + battery: + description: Return the battery level from device. + last_activity: + description: Return the timestamp from the last event captured (ding/motion/on demand) by the Ring doorbell camera. + last_ding: + description: Return the timestamp from the last time the Ring doorbell button was pressed. + last_motion: + description: Return the timestamp from the last motion event captured by the Ring doorbell camera. + volume: + description: Return the volume level from the device. + wifi_signal_category: + description: Return the WiFi signal level from the device. + wifi_signal_strength: + description: Return the WiFi signal strength (dBm) from the device. +{% endconfiguration %} Currently it supports doorbell, external chimes and stickup cameras. diff --git a/source/_components/sensor.skybell.markdown b/source/_components/sensor.skybell.markdown index 023ee75738f..39699978b99 100644 --- a/source/_components/sensor.skybell.markdown +++ b/source/_components/sensor.skybell.markdown @@ -27,7 +27,12 @@ sensor: - chime_level ``` -Configuration variables: - -- **monitored_conditions** array (*Required*): Conditions to display in the frontend. The following conditions can be monitored. - - **chime_level**: Return a value between 0-3, indicating no chime, low, medium, and high respectively. +{% configuration %} +monitored_conditions: + type: list + required: true + description: Conditions to display in the frontend. The following conditions can be monitored. + keys: + chime_level: + description: Return a value between 0-3, indicating no chime, low, medium, and high respectively. +{% endconfiguration %} diff --git a/source/_components/sensor.sonarr.markdown b/source/_components/sensor.sonarr.markdown index b752a2a702d..9b70848868d 100644 --- a/source/_components/sensor.sonarr.markdown +++ b/source/_components/sensor.sonarr.markdown @@ -27,24 +27,64 @@ sensor: api_key: YOUR_API_KEY ``` -Configuration variables: - -- **api_key** (*Required*): Your Sonarr API key, found in Settings > General in the Sonarr Web UI. -- **host** (*Optional*): The host Sonarr is running on. Defaults to `localhost`. -- **port** (*Optional*): The port Sonarr is running on. Defaults to 8989. -- **monitored_conditions** array (*Optional*): Conditions to display on the frontend. Defaults to `upcoming`. - - **series**: The number of series in Sonarr. - - **upcoming**: The number of upcoming episodes. - - **wanted**: The number of episodes still 'wanted'. - - **queue**: The number of episodes in the queue. - - **commands**: The number of commands being run. - - **diskspace**: Available disk space. - -- **urlbase** (*Optional*): The base URL Sonarr is running under. Defaults to `/`. -- **days** (*Optional*): How many days to look ahead for the upcoming sensor, 1 means today only. Defaults to 1. -- **include_paths** (*Optional*): Array of file paths to include when calculating diskspace. Leave blank to include all. -- **unit**: (*Optional*): The unit to display disk space in. Defaults to GB. -- **ssl**: boolean (*Optional*): Whether or not to use SSL for Sonarr. +{% configuration %} +api_key: + required: true + type: string + description: "Your Sonarr API key, found in Settings > General in the Sonarr Web UI." +host: + required: false + type: string + description: The host Sonarr is running on. + default: "`localhost`" +port: + required: false + type: integer + description: The port Sonarr is running on. + default: 8989 +monitored_conditions: + type: list + required: false + description: Conditions to display on the frontend. + default: "`upcoming`" + keys: + series: + description: The number of series in Sonarr. + upcoming: + description: The number of upcoming episodes. + wanted: + description: The number of episodes still 'wanted'. + queue: + description: The number of episodes in the queue. + commands: + description: The number of commands being run. + diskspace: + description: Available disk space. +urlbase: + required: false + type: string + description: The base URL Sonarr is running under. + default: "`/`" +days: + required: false + type: integer + description: How many days to look ahead for the upcoming sensor, 1 means today only. + default: 1 +include_paths: + required: false + type: list + description: Array of file paths to include when calculating diskspace. Leave blank to include all. +unit: + required: false + type: string + description: The unit to display disk space in. + default: GB +ssl: + required: false + type: boolean + description: Whether or not to use SSL for Sonarr. + default: false +{% endconfiguration %} ## {% linkable_title Examples %} diff --git a/source/_components/sensor.speedtest.markdown b/source/_components/sensor.speedtest.markdown index bae1f1f576e..9c5d5e5cc5c 100644 --- a/source/_components/sensor.speedtest.markdown +++ b/source/_components/sensor.speedtest.markdown @@ -20,7 +20,7 @@ web service to measure network bandwidth performance. ## {% linkable_title Configuration %} By default, it will run every hour. The user can change the update frequency in -the configuration by defining the minute, hour, and day for a speed test to run. +the configuration by defining the minute and hour for a speed test to run. For the `server_id` check the list of [available servers](https://www.speedtest.net/speedtest-servers.php). @@ -55,10 +55,6 @@ sensor: description: Specify the speed test server to perform the test against. required: false type: integer - day: - description: Specify the day(s) of the month to schedule the speed test. Use a list for multiple entries. - required: false - type: [int, list] hour: description: Specify the hour(s) of the day to schedule the speed test. Use a list for multiple entries. required: false diff --git a/source/_components/sensor.starlingbank.markdown b/source/_components/sensor.starlingbank.markdown index e997e0da2a3..5accaf731d5 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 c1063e4d4a5..b702c2dc50a 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.synologydsm.markdown b/source/_components/sensor.synologydsm.markdown index 886a357bdaa..62fed833080 100644 --- a/source/_components/sensor.synologydsm.markdown +++ b/source/_components/sensor.synologydsm.markdown @@ -33,46 +33,103 @@ sensor: - network_up ``` -Configuration variables: - -- **host** (*Required*): The IP address of the Synology NAS to monitor. -- **port** (*Optional*): The port number on which the Synology NAS is reachable. Defaults to `5001`. -- **username** (*Required*): An user to connect to the Synology NAS (a separate account is advised, see the Separate User Configuration section below for details). -- **password** (*Required*): The password of the user to connect to the Synology NAS. -- **ssl** (*Optional*): Determine if HTTPS should be used. Defaults to `True` which by default runs on port `5001`. -- **volumes** (*Optional*): Array of volumes to monitor. Defaults to all volumes. -- **disks** (*Optional*): Array of disks to monitor. Defaults to all disks. -- **monitored_conditions** (*Required*): Defines a [template](/topics/templating/) to extract a value from the payload. - - **cpu_other_load**: Displays unspecified load in percentage. - - **cpu_user_load**: Displays user load in percentage. - - **cpu_system_load**: Displays system load in percentage. - - **cpu_total_load**: Displays combined load in percentage. - - **cpu_1min_load**: Displays maximum load in past minute. - - **cpu_5min_load**: Displays maximum load in past 5 minutes. - - **cpu_15min_load**: Displays maximum load in past 15 minutes. - - **memory_real_usage**: Displays percentage of memory used. - - **memory_size**: Displays total size of memory in MB. - - **memory_cached**: Displays total size of cache in MB. - - **memory_available_swap**: Displays total size of available swap in MB. - - **memory_available_real**: Displays total size of memory used (based on real memory) in MB. - - **memory_total_swap**: Displays total size of actual memory in MB. - - **memory_total_real**: Displays total size of real memory in MB. - - **network_up**: Displays total up speed of network interfaces (combines all interfaces). - - **network_down**: Displays total down speed of network interfaces (combines all interfaces). - - **disk_name**: Displays the name of the hard disk (creates a new entry for each disk). - - **disk_device**: Displays the path of the hard disk (creates a new entry for each disk). - - **disk_smart_status**: Displays the S.M.A.R.T status of the hard disk (creates a new entry for each disk). - - **disk_status**: Displays the status of the hard disk (creates a new entry for each disk). - - **disk_exceed_bad_sector_thr**: Displays true / false to indicate if the hard disk exceeded the maximum bad sector threshold (creates a new entry for each disk). - - **disk_below_remain_life_thr**: Displays true / false to indicate if the hard disk dropped below the remain life threshold (creates a new entry for each disk). - - **disk_temp**: Displays the temperature of the hard disk (creates a new entry for each disk, uses the unit_system to display in C or F). - - **volume_status**: Displays the status of the volume (creates a new entry for each volume). - - **volume_device_type**: Displays the volume type (RAID, etc) (creates a new entry for each volume). - - **volume_size_total**: Displays the total size of the volume in GB's (creates a new entry for each volume). - - **volume_size_used**: Displays the used space on this volume in GB's (creates a new entry for each volume). - - **volume_percentage_used**: Displays the percentage used for this volume in GB's (creates a new entry for each volume). - - **volume_disk_temp_avg**: Displays the average temperature of all disks in the volume (creates a new entry for each volume). - - **volume_disk_temp_max**: Displays the maximum temperature of all disks in the volume (creates a new entry for each volume). +{% configuration %} +host: + description: The IP address of the Synology NAS to monitor. + required: true + type: string +port: + description: The port number on which the Synology NAS is reachable. + required: false + default: 5001 + type: integer +username: + description: An user to connect to the Synology NAS (a separate account is advised, see the Separate User Configuration section below for details). + required: true + type: string +password: + description: The password of the user to connect to the Synology NAS. + required: true + type: string +ssl: + description: Determine if HTTPS should be used. + required: false + default: true + type: boolean +volumes: + description: Array of volumes to monitor. Defaults to all volumes. + required: false + type: list +disks: + description: Array of disks to monitor. Defaults to all disks. + required: false + type: list +monitored_conditions: + description: Defines a [template](/topics/templating/) to extract a value from the payload. + required: true + type: list + keys: + cpu_other_load: + description: Displays unspecified load in percentage. + cpu_user_load: + description: Displays user load in percentage. + cpu_system_load: + description: Displays system load in percentage. + cpu_total_load: + description: Displays combined load in percentage. + cpu_1min_load: + description: Displays maximum load in past minute. + cpu_5min_load: + description: Displays maximum load in past 5 minutes. + cpu_15min_load: + description: Displays maximum load in past 15 minutes. + memory_real_usage: + description: Displays percentage of memory used. + memory_size: + description: Displays total size of memory in MB. + memory_cached: + description: Displays total size of cache in MB. + memory_available_swap: + description: Displays total size of available swap in MB. + memory_available_real: + description: Displays total size of memory used (based on real memory) in MB. + memory_total_swap: + description: Displays total size of actual memory in MB. + memory_total_real: + description: Displays total size of real memory in MB. + network_up: + description: Displays total up speed of network interfaces (combines all interfaces). + network_down: + description: Displays total down speed of network interfaces (combines all interfaces). + disk_name: + description: Displays the name of the hard disk (creates a new entry for each disk). + disk_device: + description: Displays the path of the hard disk (creates a new entry for each disk). + disk_smart_status: + description: Displays the S.M.A.R.T status of the hard disk (creates a new entry for each disk). + disk_status: + description: Displays the status of the hard disk (creates a new entry for each disk). + disk_exceed_bad_sector_thr: + description: Displays true / false to indicate if the hard disk exceeded the maximum bad sector threshold (creates a new entry for each disk). + disk_below_remain_life_thr: + description: Displays true / false to indicate if the hard disk dropped below the remain life threshold (creates a new entry for each disk). + disk_temp: + description: Displays the temperature of the hard disk (creates a new entry for each disk, uses the unit_system to display in C or F). + volume_status: + description: Displays the status of the volume (creates a new entry for each volume). + volume_device_type: + description: Displays the volume type (RAID, etc) (creates a new entry for each volume). + volume_size_total: + description: Displays the total size of the volume in GB's (creates a new entry for each volume). + volume_size_used: + description: Displays the used space on this volume in GB's (creates a new entry for each volume). + volume_percentage_used: + description: Displays the percentage used for this volume in GB's (creates a new entry for each volume). + volume_disk_temp_avg: + description: Displays the average temperature of all disks in the volume (creates a new entry for each volume). + volume_disk_temp_max: + description: Displays the maximum temperature of all disks in the volume (creates a new entry for each volume). +{% endconfiguration %}

After booting Home Assistant it can take up to 15 minutes for the sensors to show up. This is due to the fact that sensors are created after Home Assistant has fully been initialized. diff --git a/source/_components/sensor.ted5000.markdown b/source/_components/sensor.ted5000.markdown index 1dd451255c7..1e498eb1ca0 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 c2942d023a0..eb5a34a6acb 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 d6635769511..2b55ff6d2a6 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 00000000000..9ddf794d069 --- /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.travisci.markdown b/source/_components/sensor.travisci.markdown index 82698ab737a..262f7359d71 100644 --- a/source/_components/sensor.travisci.markdown +++ b/source/_components/sensor.travisci.markdown @@ -15,25 +15,56 @@ ha_iot_class: "Cloud Polling" With this sensor platform, you will be able to integrate the test build results reported by [Travis-CI](https://travis-ci.org/) working within Home Assistant. +## {% linkable_title Setup %} + +Create a GitHub [access token](https://github.com/settings/tokens) with the following scopes: + +- **read:org** +- **user:email** +- **repo_deployment** +- **repo:status** +- **write:repo_hook** + +## {% linkable_title Configuration %} + To enable this platform, please add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry sensor: - platform: travisci - api_key: 123456789 + api_key: YOUR_ACCESS_TOKEN ``` -Configuration variables: - -- **api_key** (*Required*): GitHub [access token](https://github.com/settings/tokens) with the following scopes: *read:org*, *user:email*, *repo_deployment*, *repo:status*, *write:repo_hook*. -- **branch** (*Optional*): Determine which default branch should be used by the **state** condition. Defaults to *master*. -- **scan_interval** (*Optional*): How frequently to query for new data. Defaults to 30 seconds. -- **monitored_conditions** array (*Optional*): Conditions to display in the frontend. If not specified, all conditions below will be enabled by default. The following conditions can be monitored. - - **last_build_id**: Turn the last build job ID. - - **last_build_duration**: Return the time elapsed in seconds to run the last test job. - - **last_build_finished_at**: Return the timestamp of when the last test job finished. - - **last_build_started_at**: Return the timestamp of when the last test job started. - - **last_build_state**: Return the state from the latest test job/PR. The conditions can be: 'passed', 'failed' or 'started'. - - **state**: Return the build test from the branch specified at by **branch** parameter. -- **repository:** array (*Optional*): Name from the GitHub repositories to be monitored. If not specified, all GitHub repositories linked to Travis-CI will be enabled by default. +{% configuration %} +api_key: + description: The acces token for GitHub. + required: true + type: string +branch: + description: "Determine which default branch should be used by the **state** condition." + required: false + default: master + type: string +monitored_conditions: + description: Conditions to display in the frontend. If not specified, all conditions below will be enabled by default. The following conditions can be monitored. + required: false + type: list + keys: + last_build_id: + description: Turn the last build job ID. + last_build_duration: + description: Return the time elapsed in seconds to run the last test job. + last_build_finished_at: + description: Return the timestamp of when the last test job finished. + last_build_started_at: + description: Return the timestamp of when the last test job started. + last_build_state: + description: "Return the state from the latest test job/PR. The conditions can be: 'passed', 'failed' or 'started'." + state: + description: "Return the build test from the branch specified at by **branch** parameter." +repository: + description: Name from the GitHub repositories to be monitored. If not specified, all GitHub repositories linked to Travis-CI will be enabled by default. + required: false + type: list +{% endconfiguration %} diff --git a/source/_components/sensor.uptime.markdown b/source/_components/sensor.uptime.markdown index c55011e0cff..a4b3a97f585 100644 --- a/source/_components/sensor.uptime.markdown +++ b/source/_components/sensor.uptime.markdown @@ -34,7 +34,7 @@ name: type: string default: Uptime unit_of_measurement: - description: "Units for uptime measurement in either `days`, `hours`, or `minutes`." + description: "Units for uptime measurement in either `days`, `hours` or `minutes`." required: false type: string default: days diff --git a/source/_components/sensor.waqi.markdown b/source/_components/sensor.waqi.markdown index 163ce64ee68..f428d28db64 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 620e2935518..1ca0964f86b 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 5497ae70057..d4ec6b401b8 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 0ce56092b59..b5a2d5bec98 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: +{% 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 %} -- **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 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 fdd5a38b808..befc4a37d5e 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 014752a66ec..f1d25e0626b 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 ca9547e4040..1d24b3f0dfd 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 e60e2742058..b1c6f6af8a4 100644 --- a/source/_components/sensor.zoneminder.markdown +++ b/source/_components/sensor.zoneminder.markdown @@ -13,8 +13,7 @@ ha_release: 0.31 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. @@ -29,13 +28,25 @@ sensor: include_archived: false ``` -Configuration variables: - -- **include_archived** (*Optional*): Whether to include archived ZoneMinder events in event counts. Default is `false`. -- **monitored_conditions** array (*Optional*): Event count sensors to display in the frontend. Default is 'all'. - - **all**: All events. - - **month**: Events in the last month. - - **week**: Events in the last week. - - **day**: Events in the last day. - - **hour**: Events in the last hour. - +{% configuration %} +include_archived: + description: Whether to include archived ZoneMinder events in event counts. + required: false + default: false + type: boolean +monitored_conditions: + description: Event count sensors to display in the frontend. + required: false + type: list + keys: + all: + description: All events. + month: + description: Events in the last month. + week: + description: Events in the last week. + day: + description: Events in the last day. + hour: + description: Events in the last hour. +{% endconfiguration %} diff --git a/source/_components/simplisafe.markdown b/source/_components/simplisafe.markdown new file mode 100644 index 00000000000..74ecfe42e5b --- /dev/null +++ b/source/_components/simplisafe.markdown @@ -0,0 +1,41 @@ +--- +layout: page +title: "SimpliSafe" +description: "Instructions on how to integrate SimpliSafe into Home Assistant." +date: 2018-10-05 14:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: simplisafe.png +ha_release: 0.81 +ha_category: Alarm +--- + +The `simplisafe` component integrates SimpliSafe home security (V2 and V3) +systems into Home Assistant. Multiple SimpliSafe accounts can be accommodated. + +To enable this component, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +simplisafe: + accounts: + - username: user@email.com + password: password123 +``` + +{% configuration %} +username: + description: The email address of a SimpliSafe account. + required: true + type: string +password: + description: The password of a SimpliSafe account. + required: true + type: string +code: + description: A code to enable or disable the alarm in the frontend. + required: false + type: string +{% endconfiguration %} diff --git a/source/_components/smappee.markdown b/source/_components/smappee.markdown index c91c9d0f59c..846fd2e33ef 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 b4e752ebc28..9a03d1c9d36 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 0e8819fb854..1e5d707c860 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://:8088`. -- **ws_url** (*Required*): URL of the SPC Web Gateway websocket, e.g., `ws://:8088`. +{% configuration %} +api_url: + description: URL of the SPC Web Gateway command REST API, e.g., `http://:8088`. + required: true + type: string +ws_url: + description: URL of the SPC Web Gateway websocket, e.g., `ws://:8088`. + required: true + type: string +{% endconfiguration %} Supported sensors will be automatically discovered and added, however they will be hidden by default. - diff --git a/source/_components/splunk.markdown b/source/_components/splunk.markdown index 274bbbad758..06eefe86577 100644 --- a/source/_components/splunk.markdown +++ b/source/_components/splunk.markdown @@ -22,10 +22,29 @@ splunk: token: B4415DFF-683C-5C6C-3994-4F6D4A5DB03A ``` -Configuration variables: - -- **token** (*Required*): The HTTP Event Collector Token already created in your Splunk instance. -- **host** (*Optional*): IP address or host name of your Splunk host, eg. 192.168.1.10. Will default to `localhost` if not supplied. -- **port** (*Optional*): Port to use. Defaults to 8088. -- **ssl** (*Optional*): Use https instead of http to connect. Defaults to False. -- **name** (*Optional*): This parameter allows you to specify a friendly to send to Splunk as the host, instead of using the name of the HEC. Defaults to HASS +{% configuration %} +token: + description: The HTTP Event Collector Token already created in your Splunk instance. + required: true + type: string +host: + description: "IP address or host name of your Splunk host e.g., 192.168.1.10." + required: false + default: localhost + type: string +port: + description: Port to use. + required: false + default: 8080 + type: integer +ssl: + description: Use HTTPS instead of HTTP to connect. + required: false + default: false + type: boolean +name: + description: This parameter allows you to specify a friendly name to send to Splunk as the host, instead of using the name of the HEC. + required: false + default: HASS + type: string +{% endconfiguration %} diff --git a/source/_components/switch.acer_projector.markdown b/source/_components/switch.acer_projector.markdown index 7599cd6d96e..1e5bfb299c0 100644 --- a/source/_components/switch.acer_projector.markdown +++ b/source/_components/switch.acer_projector.markdown @@ -27,10 +27,21 @@ switch: filename: /dev/ttyUSB0 ``` -Configuration variables: - -- **filename** (*Required*): The pipe where the projector is connected to. -- **name** (*Optional*): The name to use when displaying this switch. -- **timeout** (*Optional*): Timeout for the connection in seconds. -- **write_timeout** (*Optional*): Write timeout in seconds. - +{% configuration %} +filename: + description: The pipe where the projector is connected to. + required: true + type: string +name: + description: The name to use when displaying this switch. + required: false + type: string +timeout: + description: Timeout for the connection in seconds. + required: false + type: integer +write_timeout: + description: Write timeout in seconds. + required: false + type: integer +{% endconfiguration %} diff --git a/source/_components/switch.bbb_gpio.markdown b/source/_components/switch.bbb_gpio.markdown index fc41a25db14..6efd8f88159 100644 --- a/source/_components/switch.bbb_gpio.markdown +++ b/source/_components/switch.bbb_gpio.markdown @@ -17,7 +17,7 @@ The `bbb_gpio` switch platform allows you to control the GPIOs of your [BeagleBo ## {% linkable_title Configuration %} -To use yourBeagleBone Black's GPIO in your installation, add the following to your `configuration.yaml` file: +To use your BeagleBone Black's GPIO in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -30,13 +30,31 @@ switch: name: LED Green ``` -Configuration variables: - -- **pins** array (*Required*): Array of used ports. - - **pin_name** (*Required*): Port numbers and corresponding names. - - **name** (*Optional*): Friendly name to use for the frontend. - - **initial** (*Optional*): Initial state of the pin. Defaults to `False`. - - **invert_logic** (*Optional*): If true, inverts the output logic to ACTIVE LOW. Default is `false` (ACTIVE HIGH). +{% 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: false + type: string + initial: + description: Initial state of the pin. + required: false + default: false + type: boolean + invert_logic: + description: If `true`, inverts the input logic to ACTIVE LOW + required: false + default: false + type: boolean +{% 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/switch.deluge.markdown b/source/_components/switch.deluge.markdown index b9673415c39..43afb1976f6 100644 --- a/source/_components/switch.deluge.markdown +++ b/source/_components/switch.deluge.markdown @@ -27,10 +27,27 @@ switch: password : PASSWORD ``` -Configuration variables: - -- **host** (*Required*): This is the IP address of your Deluge daemon, eg. 192.168.1.32. -- **username** (*Required*): Your Deluge username, if you use authentication. -- **password** (*Required*): Your Deluge password, if you use authentication. -- **port** (*Optional*): The port your Deluge daemon uses, defaults to 58846. Warning,this is not the port of the WebUI -- **name** (*Optional*): The name to use when displaying this Deluge instance. +{% configuration %} +host: + required: true + type: string + description: This is the IP address of your Deluge daemon, eg., 192.168.1.32. +username: + required: true + type: string + description: Your Deluge username, if you use authentication. +password: + required: true + type: string + description: Your Deluge password, if you use authentication. +port: + required: false + type: integer + default: 58846 + description: "The port your Deluge daemon uses. (Warning: This is not the port of the WebUI.)" +name: + required: false + type: string + default: Deluge Switch + description: The name to use when displaying this Deluge instance. +{% endconfiguration %} diff --git a/source/_components/switch.dlink.markdown b/source/_components/switch.dlink.markdown index 50da6cf4a7b..18eb457fef4 100644 --- a/source/_components/switch.dlink.markdown +++ b/source/_components/switch.dlink.markdown @@ -32,11 +32,29 @@ switch: password: YOUR_PASSWORD ``` -Configuration variables: - -- **host** (*Required*): The IP address of your D-Link plug, eg. http://192.168.1.32 -- **name** (*Optional*): The name to use when displaying this switch. -- **username** (*Required*): The username for your plug. Defaults to `admin`. -- **password** (*Required*): The password for your plug. Default password is the `PIN` included on the configuration card. -- **use_legacy_protocol** (*Optional*): Enable limited support for legacy firmware protocols (Tested with v1.24). - +{% configuration %} +host: + description: "The IP address of your D-Link plug, e.g., http://192.168.1.32" + required: true + type: string +name: + description: The name to use when displaying this switch. + required: false + default: D-link Smart Plug W215 + type: string +username: + description: The username for your plug. + required: true + default: admin + type: string +password: + description: The password for your plug. + required: true + default: The default password is the `PIN` included on the configuration card. + type: string +use_legacy_protocol: + description: Enable limited support for legacy firmware protocols (Tested with v1.24). + required: false + default: false + type: boolean +{% endconfiguration %} diff --git a/source/_components/switch.enocean.markdown b/source/_components/switch.enocean.markdown index 2676b51dbae..f891b939306 100644 --- a/source/_components/switch.enocean.markdown +++ b/source/_components/switch.enocean.markdown @@ -24,11 +24,22 @@ switch: id: [0x01,0x90,0x84,0x3C] ``` -Configuration variables: - -- **id** (*Required*): The ID of the device. This is a 4 bytes long number. -- **name** (*Optional*): An identifier for the switch. Default to `EnOcean Switch`. -- **channel** (*Optional*): The number of the channel (typically 0 or 1) for the output channel to switch. Default to `0`. +{% configuration %} +id: + description: The ID of the device. This is a 4 bytes long number. + required: true + type: list +name: + description: An identifier for the switch. + required: false + default: EnOcean Switch + type: string +channel: + description: The number of the channel (typically 0 or 1) for the output channel to switch. + required: false + default: 0 + type: integer +{% endconfiguration %} ```yaml # Example entries for a switch with 2 outputs (channels), e.g., the Nod On SIN-2-1-01 diff --git a/source/_components/switch.hikvisioncam.markdown b/source/_components/switch.hikvisioncam.markdown index 64fc873989b..820a8326072 100644 --- a/source/_components/switch.hikvisioncam.markdown +++ b/source/_components/switch.hikvisioncam.markdown @@ -28,10 +28,29 @@ switch: host: 192.168.1.32 ``` -Configuration variables: - -- **host** (*Required*): The IP address of your Hikvision camera, eg. `192.168.1.32`. -- **port** (*Optional*): The port to connect to your Hikvision camera. Defaults to `80`. -- **name** (*Optional*): This parameter allows you to override the name of your camera. -- **username** (*Optional*): The username for accessing your Hikvision camera. Defaults to `admin`. -- **password** (*Optional*): The password to access your Hikvision camera. Defaults to `12345`. +{% configuration %} +host: + description: The IP address of your Hikvision camera, e.g., `192.168.1.32`. + required: true + type: string +port: + description: The port to connect to your Hikvision camera. + required: false + default: 80 + type: integer +name: + description: This parameter allows you to override the name of your camera. + required: false + default: Hikvision Camera Motion Detection + type: string +username: + description: The username for accessing your Hikvision camera. + required: false + default: admin + type: string +password: + description: The password to access your Hikvision camera. + required: false + default: 12345 + type: string +{% endconfiguration %} diff --git a/source/_components/switch.kankun.markdown b/source/_components/switch.kankun.markdown index 919b798f9d1..264a6b98a45 100644 --- a/source/_components/switch.kankun.markdown +++ b/source/_components/switch.kankun.markdown @@ -30,14 +30,41 @@ switch: host: hostname_or_ipaddr ``` -Configuration variables: - -- **switches** (*Required*): The array that contains all Kankun switches. - - **identifier** (*Required*): Name of the Kankun switch as slug. Multiple entries are possible. - - **host** (*Required*): Hostname or IP address of the switch on the local network. - - **name** (*Optional*): Friendly name of the switch. - - **port** (*Optional*): HTTP connection port, defaults to 80. - - **path** (*Optional*): Path of CGI script, defaults to `/cgi-bin/json.cgi`. - - **username** (*Optional*): Username for basic authentication. - - **password** (*Optional*): Password for basic authentication. - +{% configuration %} +switches: + description: The array that contains all Kankun switches. + required: true + type: map + keys: + identifier: + description: Name of the Kankun switch as slug. Multiple entries are possible. + required: true + type: map + keys: + host: + description: Hostname or IP address of the switch on the local network. + required: true + type: string + name: + description: Friendly name of the switch. + required: false + type: string + port: + description: HTTP connection port. + required: false + default: 80 + type: integer + patch: + description: Path of CGI script. + required: false + default: "/cgi-bin/json.cgi" + type: string + username: + description: Username for basic authentication. + required: false + type: string + password: + description: Password for basic authentication. + required: false + type: string +{% endconfiguration %} diff --git a/source/_components/switch.mochad.markdown b/source/_components/switch.mochad.markdown index a1d7569ec17..6d9c2bba878 100644 --- a/source/_components/switch.mochad.markdown +++ b/source/_components/switch.mochad.markdown @@ -27,11 +27,19 @@ switch: - address: a5 ``` -Configuration variables: - -- **address** (*Required*): The X10 address of the switch. -- **name** (*Optional*): The name of the switch. Default is: x10_switch_dev_*address*. -- **comm_type** (*Optional*): pl (powerline) or rf (radio frequency). Default is pl. - - - +{% configuration %} +address: + description: The X10 address of the switch. + required: true + type: string +name: + description: The name of the switch. + required: false + default: x10_switch_dev_*address* + type: string +comm_type: + description: pl (powerline) or rf (radio frequency). + required: false + default: pl + type: string +{% endconfiguration %} diff --git a/source/_components/switch.modbus.markdown b/source/_components/switch.modbus.markdown index 3bf176c125d..60ce92daadd 100644 --- a/source/_components/switch.modbus.markdown +++ b/source/_components/switch.modbus.markdown @@ -40,20 +40,72 @@ switch: command_off: 0 ``` -Configuration variables: - -- **coils** (*Optional*): A list of relevant coils to read from/write to. - - **slave** (*Required*): The number of the slave (can be omitted for tcp and udp Modbus). - - **name** (*Required*): Name of the switch. - - **coil** (*Required*): Coil number. -- **registers** (*Optional*): A list of relevant registers to read from/write to. - - **slave** (*Required*): The number of the slave (can be omitted for tcp and udp Modbus). - - **name** (*Required*): Name of the switch. - - **register** (*Required*): Register number. - - **command_on** (*Required*): Value to write to turn on the switch. - - **command_off** (*Required*): Value to write to turn off the switch. - - **verify_state** (*Optional*): Define if is possible to readback the status of the switch. (default: True) - - **verify_register** (*Optional*): Register to readback. (default: same as register) - - **register_type** (*Optional*): Modbus register type: holding or input. (default: holding) - - **state_on** (*Optional*): Register value when switch is on. (default: same as command_on) - - **state_off** (*Optional*): Register value when switch is off. (default: same as command_off) +{% configuration %} +coils: + description: A list of relevant coils to read from/write to. + required: false + type: map + keys: + slave: + description: The number of the slave (can be omitted for tcp and udp Modbus). + required: true + type: integer + name: + description: Name of the switch. + required: true + type: string + coil: + description: Coil number. + required: true + type: integer +register: + description: A list of relevant registers to read from/write to. + required: false + type: map + keys: + slave: + description: The number of the slave (can be omitted for tcp and udp Modbus). + required: true + type: integer + name: + description: Name of the switch. + required: true + type: string + register: + description: Register number. + required: true + type: integer + command_on: + description: Value to write to turn on the switch. + required: true + type: integer + command_off: + description: Value to write to turn off the switch. + required: true + type: integer + verify_state: + description: Define if is possible to readback the status of the switch. + required: false + default: True + type: boolean + verify_register: + description: Register to readback. + required: false + default: same as register + type: string + register_type: + description: Modbus register types are holding or input. + required: false + default: holding + type: string + state_on: + description: Register value when switch is on. + required: false + default: same as command_on + type: integer + state_off: + description: Register value when switch is off. + required: false + default: same as command_off + type: integer +{% endconfiguration %} diff --git a/source/_components/switch.skybell.markdown b/source/_components/switch.skybell.markdown index 632f5d770c9..8bf27738c33 100644 --- a/source/_components/switch.skybell.markdown +++ b/source/_components/switch.skybell.markdown @@ -28,8 +28,14 @@ switch: - motion_sensor ``` -Configuration variables: - -- **monitored_conditions** array (*Required*): Conditions to display in the frontend. The following conditions can be monitored. - - **do_not_disturb**: Control the state of your doorbells indoor chime. - - **motion_sensor**: Control the state of your doorbells motion sensor. +{% configuration %} +monitored_conditions: + description: Conditions to display in the frontend. + required: true + type: list + keys: + do_not_disturb: + description: Control the state of your doorbells indoor chime. + motion_sensor: + description: Control the state of your doorbells motion sensor. +{% endconfiguration %} diff --git a/source/_components/switch.transmission.markdown b/source/_components/switch.transmission.markdown index 888f1470a0d..cf7db2f2f32 100644 --- a/source/_components/switch.transmission.markdown +++ b/source/_components/switch.transmission.markdown @@ -25,11 +25,27 @@ switch: host: IP_ADDRESS ``` -Configuration variables: - -- **host** (*Required*): This is the IP address of your Transmission daemon, eg. 192.168.1.32. -- **port** (*Optional*): The port your Transmission daemon uses, defaults to 9091. -- **name** (*Optional*): The name to use when displaying this Transmission instance. -- **username** (*Optional*): Your Transmission username, if you use authentication. -- **password** (*Optional*): Your Transmission password, if you use authentication. - +{% configuration %} +host: + required: true + type: string + description: This is the IP address of your Transmission daemon, e.g., 192.168.1.32. +port: + required: false + type: integer + default: 9091 + description: The port your Transmission daemon uses. +name: + required: false + type: string + default: Transmission Turtle Mode + description: The name to use when displaying this Transmission instance. +username: + required: false + type: string + description: Your Transmission username, if you use authentication. +password: + required: false + type: string + description: Your Transmission password, if you use authentication. +{% endconfiguration %} diff --git a/source/_components/switch.zoneminder.markdown b/source/_components/switch.zoneminder.markdown index dd55a07ec95..f194544715c 100644 --- a/source/_components/switch.zoneminder.markdown +++ b/source/_components/switch.zoneminder.markdown @@ -13,7 +13,6 @@ ha_release: 0.31 ha_iot_class: "Local Polling" --- - The `zoneminder` switch platform allows you to toggle the current function of all cameras attached to your [ZoneMinder](https://www.zoneminder.com) instance.

@@ -30,11 +29,16 @@ switch: command_off: Monitor ``` -Configuration variables: - -- **command_on** (*Required*): The function you want the camera to run when turned on. -- **command_off** (*Required*): The function you want the camera to run when turned off. - +{% configuration %} +command_on: + description: The function you want the camera to run when turned on. + required: true + type: string +command_off: + description: The function you want the camera to run when turned off. + required: true + type: string +{% endconfiguration %}

The default functions installed by ZoneMinder are: None, Monitor, Modect, Record, Mocord, Nodect. diff --git a/source/_components/tado.markdown b/source/_components/tado.markdown index 386db0de0d1..cfb7294289c 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 584761f2db8..1b441341db4 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/tellstick.markdown b/source/_components/tellstick.markdown index 4f9e03870dd..232fd9e1525 100644 --- a/source/_components/tellstick.markdown +++ b/source/_components/tellstick.markdown @@ -14,6 +14,8 @@ ha_category: Hub The `tellstick` component integrates [TellStick](http://www.telldus.se/products/tellstick) devices into Home Assistant. This integration allows users to add switches, lights, and sensors which are communicating with 433 MHz. There are a number of vendors (Capidi Elro, Intertechno, Nexa, Proove, Sartano, and Viking) who are selling products that work with TellStick. For more details, please check the TellStick [protocol list](http://developer.telldus.com/wiki/TellStick_conf). +## {% linkable_title Configuration %} + To get started, add the devices to your `configuration.yaml` file. ```yaml @@ -22,14 +24,23 @@ tellstick: ``` ```yaml -# Example configuration.yaml entry for hass.io with TellStick add-on +# Example configuration.yaml entry for Hass.io with the TellStick add-on tellstick: host: core-tellstick port: [50800, 50801] ``` -Configuration variables: - -- **signal_repetitions** (*Optional*): Because the tellstick sends its actions via radio and from most receivers it's impossible to know if the signal was received or not. Therefore you can configure the switch and light to try to send each signal repeatedly. -- **host** (*Optional*): If you run tellstick on another server or with a hass.io add-on. -- **port** (*Optional*): If needed with host config option. Must be port pair, for example `[50800, 50801]`. +{% configuration %} +signal_repetitions: + description: Because the TellStick sends its actions via radio and from most receivers it's impossible to know if the signal was received or not. Therefore you can configure the switch and light to try to send each signal repeatedly. + required: false + type: integer +host: + description: If you run TellStick on another server or with the Hass.io add-on. + required: inclusive + type: string +port: + description: Needed with the `host` configuration variable. Must be port pair, for example `[50800, 50801]`. + required: inclusive + type: list +{% endconfiguration %} diff --git a/source/_components/tesla.markdown b/source/_components/tesla.markdown index f912af94f82..c004585e369 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 2336a597473..b18969ca64e 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 e516db9ce87..d5201873af0 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/tts.amazon_polly.markdown b/source/_components/tts.amazon_polly.markdown index 8be1fdc0a5e..9dfa1b7e813 100644 --- a/source/_components/tts.amazon_polly.markdown +++ b/source/_components/tts.amazon_polly.markdown @@ -15,6 +15,12 @@ ha_release: 0.37 The `amazon_polly` text-to-speech platform that works with [Amazon Polly](https://aws.amazon.com/polly/) to create the spoken output. Polly is a paid service via Amazon Web Services. There is a [free tier](https://aws.amazon.com/polly/pricing/) for the first 12 months and then a charge per million characters afterwards. +## {% linkable_title Setup %} + +For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) to get the needed details. Also, check the [boto3 Documentation](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file) about the profiles and the [AWS Regions and Endpoints Reference](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region) for available regions. + +Available voices are listed in the [Amazon Documentation](http://docs.aws.amazon.com/polly/latest/dg/voicelist.html). + ## {% linkable_title Configuration %} To get started, add the following lines to your `configuration.yaml` (example for Amazon Polly): @@ -29,21 +35,22 @@ tts: {% configuration %} aws_access_key_id: - description: "Your AWS Access Key ID. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`." + description: "Your AWS Access Key ID. If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`." required: true type: string aws_secret_access_key: - description: "Your AWS Secret Access Key. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`." + description: "Your AWS Secret Access Key. If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`." required: true type: string profile_name: - description: A credentials profile name. For more information, please see the [boto3 Documentation](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file) for more information. + description: A credentials profile name. required: false type: string region_name: - description: "The region identifier to connect to. The default is `us-east-1`. See the [AWS Regions and Endpoints Reference](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region) for available regions." + description: The region identifier to connect to. required: false type: string or list + default: us-east-1 name: description: "Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`." required: false @@ -54,18 +61,19 @@ text_type: type: string default: text voice: - description: "Voice name to be used. See the [Amazon Documentation](http://docs.aws.amazon.com/polly/latest/dg/voicelist.html) for available voices." + description: Voice name to be used. required: false type: string output_format: - description: "Override the default output format, e.g., `mp3`, `ogg_vorbis` or `pcm`." + description: "Override the default output format. Either `mp3`, `ogg_vorbis` or `pcm`." required: false type: string default: mp3 sample_rate: - description: "Override the default sample rate, defaults to 22050 for MP3 and Ogg Vorbis, 16000 for pcm." + description: "Override the default sample rate." required: false type: string + default: 22050 for MP3 and Ogg Vorbis, 16000 for pcm {% endconfiguration %} diff --git a/source/_components/twilio.markdown b/source/_components/twilio.markdown index ed3752a9e25..f92ee5ab670 100644 --- a/source/_components/twilio.markdown +++ b/source/_components/twilio.markdown @@ -26,10 +26,16 @@ twilio: auth_token: AUTH_TOKEN_FROM_TWILIO ``` -Configuration variables: - -- **account_sid** (*Required*): Your Twilio Account SID which can be found in your [console](https://www.twilio.com/console). It starts with the letters `AC`. -- **auth_token** (*Required*): Your Twilio AUTH TOKEN which can be found in your [console](https://www.twilio.com/console). It should be directly under where you found the `account_sid`. +{% configuration %} +account_sid: + description: "Your Twilio Account SID which can be found in your [console](https://www.twilio.com/console). It starts with the letters `AC`." + required: true + type: string +auth_token: + description: "Your Twilio AUTH TOKEN which can be found in your [console](https://www.twilio.com/console). It should be directly under where you found the `account_sid`." + required: true + type: string +{% endconfiguration %} ### {% linkable_title Usage %} After configuring the base Twilio component, add and configure either or both of the [twilio SMS](/components/notify.twilio_sms/) and [twilio Phone](/components/notify.twilio_call) components to utilize the notification functionality. diff --git a/source/_components/vacuum.markdown b/source/_components/vacuum.markdown index 59f7699392d..a72a22e7ca5 100644 --- a/source/_components/vacuum.markdown +++ b/source/_components/vacuum.markdown @@ -29,7 +29,7 @@ Before calling one of these services, make sure your vacuum platform supports it #### {% linkable_title Service `vacuum.turn_on` %} -Start a new cleaning task. For the Xiaomi Vacuum and neato use `vacuum.start` instead. +Start a new cleaning task. For the Xiaomi Vacuum and Neato use `vacuum.start` instead. | Service data attribute | Optional | Description | |---------------------------|----------|-------------------------------------------------------| @@ -37,7 +37,7 @@ Start a new cleaning task. For the Xiaomi Vacuum and neato use `vacuum.start` in #### {% linkable_title Service `vacuum.turn_off` %} -Stop the current cleaning task and return to the dock. For the Xiaomi Vacuum and neato use `vacuum.stop` instead. +Stop the current cleaning task and return to the dock. For the Xiaomi Vacuum and Neato use `vacuum.stop` instead. | Service data attribute | Optional | Description | |---------------------------|----------|-------------------------------------------------------| diff --git a/source/_components/vacuum.neato.markdown b/source/_components/vacuum.neato.markdown index bbdd37730b1..49381f5952b 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.

To add `neato` vacuum to your installation, please follow instructions in [Neato component](/components/neato/). diff --git a/source/_components/vacuum.roomba.markdown b/source/_components/vacuum.roomba.markdown index 0a81a732fcb..2186f1666aa 100644 --- a/source/_components/vacuum.roomba.markdown +++ b/source/_components/vacuum.roomba.markdown @@ -29,14 +29,35 @@ vacuum: password: PASSWORD ``` -Configuration variables: - -- **host** (*Required*): Hostname or IP address of the Roomba. -- **username** (*Required*): The username (BLID) for your device. -- **password** (*Required*): The password for your device. -- **name** (*Optional*): The name of the vacuum. -- **certificate** (*Optional*): Path to your certificate store. Defaults to `/etc/ssl/certs/ca-certificates.crt`. -- **continuous** (*Optional*): Whether to operate in continuous mode. Defaults to `True`. +{% configuration %} +host: + description: Hostname or IP address of the Roomba. + required: true + type: string +username: + description: The username (BLID) for your device. + required: true + type: string +password: + description: The password for your device. + required: true + type: string +name: + description: The name of the vacuum. + required: false + default: Roomba + type: string +certificate: + description: Path to your certificate store. + required: false + default: /etc/ssl/certs/ca-certificates.crt + type: string +continuous: + description: Whether to operate in continuous mode. + required: false + default: true + type: boolean +{% endconfiguration %}

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 f73ddfab26b..171b0f5c422 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/vera.markdown b/source/_components/vera.markdown index 1dfa965fb40..df3f6e31c62 100644 --- a/source/_components/vera.markdown +++ b/source/_components/vera.markdown @@ -23,9 +23,12 @@ vera: vera_controller_url: http://192.168.1.161:3480/ ``` -Configuration variables: - -- **vera_controller_url** (*Required*): The URL for your Vera device. +{% configuration %} +vera_controller_url: + description: The URL for your Vera device. + required: true + type: string +{% endconfiguration %}

It is recommended to assign a static IP address to your Vera Controller. This ensures that it won't change IP addresses, so you won't have to change the `vera_controller_url` if it reboots and comes up with a different IP address. See your router's manual for details on how to set this up. If you need the MAC address of your Vera, check the label on the bottom. diff --git a/source/_components/verisure.markdown b/source/_components/verisure.markdown index 799c43e6c32..49dd80958e1 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 8160d19882f..d4028a46e4b 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/climate.econet.markdown b/source/_components/water_heater.econet.markdown similarity index 60% rename from source/_components/climate.econet.markdown rename to source/_components/water_heater.econet.markdown index 704c6ebf0ee..5ac129c4c38 100644 --- a/source/_components/climate.econet.markdown +++ b/source/_components/water_heater.econet.markdown @@ -8,20 +8,22 @@ comments: false sharing: true footer: true logo: econet.png -ha_category: Climate +ha_category: Water heater ha_release: 0.61.0 ha_iot_class: "Cloud Polling" +redirect_from: /components/climate.econet/ --- -The `econet` water heater platform is consuming the information provided by a [EcoNet enabled Rheem water heater](http://www.rheem.com/EcoNet/Home). This component allows you to set the temperature, the operation mode, and enable vaction mode. +The `econet` water heater platform is consuming the information provided by a [EcoNet enabled Rheem water heater](http://www.rheem.com/EcoNet/Home). This platform allows you to set the temperature, the operation mode, and enable vaction mode. -To enable the `econet` water heater platform add the following to your config. +## {% linkable_title Configuration %} +To enable the `econet` water heater platform, add the following information to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry -climate: +water_heater: - platform: econet username: YOUR_ECONET_EMAIL password: YOUR_ECONET_PASSWORD @@ -38,10 +40,9 @@ password: type: string {% endconfiguration %} +### {% linkable_title Service `econet.add_vacation` %} -### {% linkable_title Service `econet_add_vacation` %} - -You can use the service econet/add_vacation to create a new vacation for your EcoNet water heaters. +You can use the service `econet.add_vacation` to create a new vacation for your EcoNet water heaters. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | @@ -50,15 +51,17 @@ You can use the service econet/add_vacation to create a new vacation for your Ec | `end_date` | yes | this is a Unix timestamp for when the vaction should end.

-The Unix timestamps can be obtained from the input_datetime component. This will allow you to graphically set the start and end date. +The Unix timestamps can be obtained from the `input_datetime` component. This will allow you to graphically set the start and end date.

-### {% linkable_title Service `econet_delete_vacation` %} +### {% linkable_title Service `econet.delete_vacation` %} -You can use the service econet/delete_vacation to remove all vactions from an EcoNet water heater. +You can use the service `econet.delete_vacation` to remove all vactions from an EcoNet water heater. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | yes | The entity id of the water heater to remove the vaction from. - +

+Econet water heaters use to live under the `climate` platform prior to release 0.81. +

diff --git a/source/_components/water_heater.markdown b/source/_components/water_heater.markdown new file mode 100644 index 00000000000..56917dcc57b --- /dev/null +++ b/source/_components/water_heater.markdown @@ -0,0 +1,120 @@ +--- +layout: page +title: "Water Heater" +description: "Instructions on how to setup water heater devices within Home Assistant." +date: 2018-10-10 19:00 +sidebar: true +comments: false +sharing: true +footer: true +--- + + +The `water_heater` component is built for the controlling and monitoring of hot water heaters. + +To enable this component, pick one of the platforms, and add it to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +water_heater: + platform: demo +``` + +## {% linkable_title Services %} + +### {% linkable_title Water heater control services %} +Available services: `water_heater.set_temperature`, `water_heater.turn_away_mode_on`, `water_heater.turn_away_mode_off`, `water_heater.set_operation_mode` + +

+Not all water heater services may be available for your platform. Be sure to check the available services Home Assistant has enabled by checking service developer tool icon **Services**. +

+ +### {% linkable_title Service `water_heater.set_temperature` %} + +Set target temperature of water heater device + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of water heater devices to control. Else targets all. +| `temperature` | no | New target temperature for water heater +| `operation_mode` | yes | Operation mode to set temperature to. This defaults to current_operation mode if not set, or set incorrectly. + +#### {% linkable_title Automation example %} + +```yaml +automation: + trigger: + platform: time + at: "07:15:00" + action: + - service: water_heater.set_temperature + data: + entity_id: water_heater.demo + temperature: 24 + operation_mode: eco +``` + +### {% linkable_title Service `water_heater.set_operation_mode` %} + +Set operation mode for water heater device + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of water heater devices to control. Else targets all. +| `operation_mode` | no | New value of operation mode + +#### {% linkable_title Automation example %} + +```yaml +automation: + trigger: + platform: time + at: "07:15:00" + action: + - service: water_heater.set_operation_mode + data: + entity_id: water_heater.demo + operation_mode: eco +``` + +### {% linkable_title Service `water_heater.turn_away_mode_on` %} + +Turn away mode on for water heater device + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of water heater devices to control. Else targets all. + +#### {% linkable_title Automation example %} + +```yaml +automation: + trigger: + platform: time + at: "07:15:00" + action: + - service: water_heater.turn_away_mode_on + data: + entity_id: water_heater.demo +``` + +### {% linkable_title Service `water_heater.turn_away_mode_off` %} + +Trun away mode off for water heater device + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of water heater devices to control. Else targets all. + +#### {% linkable_title Automation example %} + +```yaml +automation: + trigger: + platform: time + at: "07:15:00" + action: + - service: water_heater.turn_away_mode_off + data: + entity_id: water_heater.demo +``` \ No newline at end of file diff --git a/source/_components/weather.buienradar.markdown b/source/_components/weather.buienradar.markdown index 0b4ef3f0db8..8ec59346cc8 100644 --- a/source/_components/weather.buienradar.markdown +++ b/source/_components/weather.buienradar.markdown @@ -27,13 +27,25 @@ weather: - platform: buienradar ``` -Configuration variables: - -- **name** (*Optional*): You can specify a name of the component, but do not have to. If you specify a name, the weather component will get an entity name of `weather.[name]`; if no name is specified, it will try to set its name to `weather.BR_[stationname]`. However at the moment in time, the entity is created, no data has been retrieved yet, so the entity will get named `weather.BR_unknown_station`. Later the station name will be known and get updated, but the entity name remains. -- **latitude** (*Optional*): Latitude to use for selection of data source location. Longitude and latitude will be taken from Home Assistant configuration but can be overridden/changed in this component to select a different location for Buienradar. -- **longitude**(*Optional*): Longitude to use for selection of data source location. Longitude and latitude will be taken from Home Assistant configuration but can be overridden/changed in this component to select a different location for Buienradar. -- **forecast** (*Optional*): 'True' to add a temperature forecast, 'False' to suppress it. - +{% configuration %} +name: + description: "You can specify a name of the component, but do not have to. If you specify a name, the weather component will get an entity name of `weather.[name]`; if no name is specified, it will try to set its name to `weather.BR_[stationname]`. However at the moment in time, the entity is created, no data has been retrieved yet, so the entity will get named `weather.BR_unknown_station`. Later the station name will be known and get updated, but the entity name remains." + required: false + type: string +latitude: + description: Latitude to use for selection of data source location. Longitude and latitude will be taken from Home Assistant configuration but can be overridden/changed in this component to select a different location for Buienradar. + required: false + type: float +longitude: + description: Longitude to use for selection of data source location. Longitude and latitude will be taken from Home Assistant configuration but can be overridden/changed in this component to select a different location for Buienradar. + required: false + type: float +forecast: + description: "'True' to add a temperature forecast, 'False' to suppress it." + required: false + default: true + type: boolean +{% endconfiguration %} A full configuration example: diff --git a/source/_components/weather.markdown b/source/_components/weather.markdown index 25fde662082..e558c1a29bc 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.metoffice.markdown b/source/_components/weather.metoffice.markdown index df624d2a9ca..1d38510de48 100644 --- a/source/_components/weather.metoffice.markdown +++ b/source/_components/weather.metoffice.markdown @@ -26,9 +26,25 @@ weather: api_key: YOUR_API_KEY ``` -Configuration variables: - -- **api_key** (*Required*): Your personal API key from the [Datapoint website](http://www.metoffice.gov.uk/datapoint). +{% configuration %} +api_key: + description: "Your personal API key from the [Datapoint website](http://www.metoffice.gov.uk/datapoint)." + required: true + type: string +name: + description: Additional name for the weather component in Home Assistant. + required: false + default: Met Office + type: string +latitude: + description: "Latitude coordinate to monitor weather of (required if **longitude** is specified), defaults to coordinates defined in your `configuration.yaml`." + required: inclusive + type: float +longitude: + description: "Longitude coordinate to monitor weather of (required if **latitude** is specified), defaults to coordinates defined in your `configuration.yaml`." + required: inclusive + type: float +{% endconfiguration %}

This platform is an alternative to the [`metoffice`](/components/sensor.metoffice/) sensor. diff --git a/source/_components/weather.openweathermap.markdown b/source/_components/weather.openweathermap.markdown index bf704c2984b..f0d9d1f93bb 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.

diff --git a/source/_components/weather.yweather.markdown b/source/_components/weather.yweather.markdown index 27bbda8214d..055f9daa0ec 100644 --- a/source/_components/weather.yweather.markdown +++ b/source/_components/weather.yweather.markdown @@ -31,15 +31,20 @@ weather: - platform: yweather ``` -Configuration variables: - -- **woeid** (*Optional*): See above. -- **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`. - +{% configuration %} +woeid: + description: Your Where On Earth ID, see above for all the info. + required: false + type: integer +name: + 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. + required: false + default: yweather + type: string +{% endconfiguration %}

-This platform is an alternative to the [`yweather`](/components/sensor.yweather/) sensor. +This platform is an alternative to the [`yweather`](/components/sensor.yweather/) sensor.

Details about the API are available in the [Yahoo! Developer Network](https://developer.yahoo.com/weather/). - diff --git a/source/_components/weather.zamg.markdown b/source/_components/weather.zamg.markdown index b3112d97ea8..dd62ceec3dc 100644 --- a/source/_components/weather.zamg.markdown +++ b/source/_components/weather.zamg.markdown @@ -27,12 +27,26 @@ weather: - platform: zamg ``` -Configuration variables: - -- **station_id** (*Optional*): The ID number for a supported ZAMG station. -- **name** (*Optional*): A name for the weather platform. -- **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. +{% configuration %} +station_id: + required: false + description: The ID number for a supported ZAMG station. + type: string +name: + required: false + description: A name for the weather platform. + 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 +{% endconfiguration %}

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 00000000000..5540a153410 --- /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 0d97c91d465..ade545e1374 100644 --- a/source/_components/wink.markdown +++ b/source/_components/wink.markdown @@ -44,11 +44,10 @@ When using the configurator make sure the initial setup is performed on the same wink: ``` -### {% linkable_title Full oauth authentication (legacy). %} +### {% linkable_title Full oauth authentication (legacy) %} This should be used for users that obtained their client_id and client_secret via email from Wink support prior to [developer.wink.com's](https://developer.wink.com) existence. - ```yaml wink: email: YOUR_WINK_EMAIL_ADDRESS @@ -57,23 +56,38 @@ wink: client_secret: YOUR_WINK_CLIENT_SECRET ``` -Configuration variables: +Please pay attention that the required entries are only needed for legacy OAuth access. -- **email** (*Required for legacy OAuth*): Your Wink login email. -- **password** (*Required for legacy OAuth*): Your Wink login password. -- **client_id** (*Required for legacy OAuth*): Your provided Wink client_id. -- **client_secret** (*Required for legacy OAuth*): Your provided Wink client_secret. -- **local_control** (*Optional*): If set to `True` state changes for lights, locks, and switches will be issued to the local hub. +{% configuration %} +email: + description: Your Wink login email address. + required: true + type: string +password: + description: Your Wink login password. + required: true + type: string +client_id: + description: Your provided Wink `client_id`. + required: true + type: string +client_secret: + description: Your provided Wink `client_secret`. + required: true + type: string +local_control: + description: If set to `true` state changes for lights, locks and switches will be issued to the local hub. + required: false + default: false + type: boolean +{% endconfiguration %} Local control: -- Wink's local control API isn't officially documented and therefore could be broken by a hub update. For these reasons `local_control` defaults to `False`. +- Wink's local control API isn't officially documented and therefore could be broken by a hub update. For these reasons `local_control` defaults to `false`. - Using local control doesn't appear to make commands any quicker, but does function in an internet/Wink outage. - - Local control is also only available for the Wink hub v1 and v2, not the Wink relay. - - Local control isn't used during start-up of Home Assistant; this means initial setup requires an active internet connection. - - Local control requests are first sent to the controlling hub. If a request fails, that request will attempt to go online.

@@ -141,7 +155,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 +304,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/zabbix.markdown b/source/_components/zabbix.markdown index bda90be47f7..1056bef232c 100644 --- a/source/_components/zabbix.markdown +++ b/source/_components/zabbix.markdown @@ -26,13 +26,30 @@ zabbix: host: 192.168.0.100 ``` -Configuration variables: - -- **host** (*Required*): Your Zabbix server. -- **path** (*Optional*): Path to your Zabbix install. Defaults to `/zabbix/`. -- **ssl** (*Optional*): Set to `True` if your Zabbix installation is using SSL. Default to `False`. -- **username** (*Optional*): Your Zabbix username. -- **password** (*Optional*): Your Zabbix password. +{% configuration %} +host: + description: Your Zabbix server. + required: true + type: string +path: + description: Path to your Zabbix install. + required: false + default: "`/zabbix/`" + type: string +ssl: + description: Set to `True` if your Zabbix installation is using SSL. + required: false + default: false + type: boolean +username: + description: Your Zabbix username. + required: false + type: string +password: + description: Your Zabbix password. + required: false + type: string +{% endconfiguration %} ### {% linkable_title Full configuration %} diff --git a/source/_components/zha.markdown b/source/_components/zha.markdown index 8e622bdde56..477b89178c7 100644 --- a/source/_components/zha.markdown +++ b/source/_components/zha.markdown @@ -41,11 +41,25 @@ zha: database_path: /home/homeassistant/.homeassistant/zigbee.db ``` -Configuration variables: - - - **radio_type** (*Optional*): One of `ezsp` (default) or `xbee` - - **usb_path** (*Required*): Path to the serial device for the radio. - - **baudrate** (*Optional*): Baud rate of the serial device. - - **database_path** (*Required*): _Full_ path to the database which will keep persistent network data. +{% configuration %} +radio_type: + description: One of `ezsp` or `xbee`. + required: false + default: ezsp + type: string +usb_path: + description: Path to the serial device for the radio. + required: true + type: string +baudrate: + description: Baud rate of the serial device. + required: false + default: 57600 + type: integer +database_path: + description: _Full_ path to the database which will keep persistent network data. + required: true + type: string +{% endconfiguration %} To add new devices to the network, call the `permit` service on the `zha` domain, and then follow the device instructions for doing a scan or factory reset. In case you want to add Philips Hue bulbs that have previously been added to another bridge, have a look at: [https://github.com/vanviegen/hue-thief/](https://github.com/vanviegen/hue-thief/) diff --git a/source/_components/zone.markdown b/source/_components/zone.markdown index fd6280eccfc..1e5125b71c1 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 ac8297eaee8..68101f805eb 100644 --- a/source/_components/zoneminder.markdown +++ b/source/_components/zoneminder.markdown @@ -22,14 +22,40 @@ zoneminder: host: ZM_HOST ``` -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`. -- **username** (*Optional*): Your ZoneMinder username. -- **password** (*Optional*): Your ZoneMinder password. Required if `OPT_USE_AUTH` is enabled in ZM. +{% configuration %} +host: + description: Your ZoneMinder server's host (and optional port), not including the scheme. + required: true + type: string +path: + description: Path to your ZoneMinder install. + required: false + default: "`/zm/`" + type: string +path_zms: + description: Path to the CGI script for streaming. This should match `PATH_ZMS` in ZM's "Paths" settings. + required: false + default: "`/zm/cgi-bin/nph-zms`" + type: string +ssl: + description: Set to `true` if your ZoneMinder installation is using SSL. + required: false + default: false + type: boolean +verify_ssl: + description: Verify the certification of the endpoint. + required: false + default: true + type: boolean +username: + description: Your ZoneMinder username. + required: false + type: string +password: + description: Your ZoneMinder password. Required if `OPT_USE_AUTH` is enabled in ZM. + required: false + type: string +{% endconfiguration %} ### {% linkable_title Full configuration %} @@ -39,8 +65,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 1831f4a17f9..00000000000 --- 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 df100486363..00000000000 --- 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 a5bc7c5b184..00000000000 --- 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 33fc4f05040..00000000000 --- 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 d6ddee0fa44..00000000000 --- 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 742d618f912..00000000000 --- 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 00000000000..baad95ee180 --- /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 892714d1400..d4c6d0e0598 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 47b1bbb38eb..00000000000 --- 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 c4991394418..00000000000 --- 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 a9b4637975e..00000000000 --- 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 1440f63f1c3..00000000000 --- 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 0f418577c35..00000000000 --- 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 d5c5275a1c7..a9f7e045612 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 9055e4c6726..56b3e14f639 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 c4be879045f..bfdee80c666 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 235ef58351f..87d8e8ae02a 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 45bc4071a80..488b254584a 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//` - - **cache\_file** (*Required*): A fully-qualified path to a file thht can be written by the server containing transcriptions of voicemails. Example: `/var/spool/asterisk/transcription.cache` + - **cache\_file** (*Required*): A fully-qualified path to a file that can be written by the server containing transcriptions of voicemails. Example: `/var/spool/asterisk/transcription.cache` - **google\_key** (*Required*): Your 40 characters Google API key. - **cdr** (*Optional*): Where to find CDR data. Supports various SQL databases as well as a file log. Configuring the CDR will enable the `asterisk_cdr` platfom. diff --git a/source/_docs/authentication/multi-factor-auth.markdown b/source/_docs/authentication/multi-factor-auth.markdown index 37abf070cd6..3f09b878487 100644 --- a/source/_docs/authentication/multi-factor-auth.markdown +++ b/source/_docs/authentication/multi-factor-auth.markdown @@ -16,11 +16,11 @@ This is an advanced feature. If misconfigured, you will not be able to access Ho Besides the authentication providers, it's also possible to configure multi-factor authentication modules. These authentication modules will require the user to solve a second challenge besides just logging in. The idea is that you ask the user for something they know, their username/password, and something they have, like a time-based authentication token from their phone. -The multi-factor authentication module can be used mixed-matched with authentication providers. After the normal authentication provider validation, the login flow will ask the user for additional challenge(s) if there are multi-factor authentication modules enabled for this user. If more than one mutli-factor authentication module is enabled, the user can select one of them during the login. +The multi-factor authentication module can be used mixed-matched with authentication providers. After the normal authentication provider validation, the login flow will ask the user for additional challenge(s) if there are multi-factor authentication modules enabled for this user. If more than one multi-factor authentication module is enabled, the user can select one of them during the login. The multi-factor authentication module has to be enabled for the user before it can be used in the login process. The user can go to the profile page enable it by himself. -## {% linkable_title Configuring mutli-factor authentication modules %} +## {% linkable_title Configuring multi-factor authentication modules %}

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.

Example of configuration diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index 734799268b6..4bbf7e6d859 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -10,7 +10,7 @@ footer: true redirect_from: /getting-started/automation-trigger/ --- -Triggers are what starts the processing of an automation rule. It is possible to specify multiple triggers for the same rule. Once a trigger starts, Home Assistant will validate the conditions, if any, and call the action. +Triggers are what starts the processing of an automation rule. It is possible to specify multiple triggers for the same rule - when _any_ of the triggers becomes true then the automation will start. Once a trigger starts, Home Assistant will validate the conditions, if any, and call the action. ### {% linkable_title Event trigger %} diff --git a/source/_docs/backend/database.markdown b/source/_docs/backend/database.markdown index 652ef13f05f..7b265ba00c7 100644 --- a/source/_docs/backend/database.markdown +++ b/source/_docs/backend/database.markdown @@ -116,7 +116,7 @@ If you don't want to keep certain entities, you can delete them permanently: sqlite> DELETE FROM states WHERE entity_id="sensor.cpu"; ``` -The `VACUUM` command cleans the your database. +The `VACUUM` command cleans your database. ```bash sqlite> VACUUM; diff --git a/source/_docs/configuration/customizing-devices.markdown b/source/_docs/configuration/customizing-devices.markdown index 8de3aa169e0..cb059e9ebd9 100644 --- a/source/_docs/configuration/customizing-devices.markdown +++ b/source/_docs/configuration/customizing-devices.markdown @@ -67,15 +67,17 @@ assumed_state: type: boolean default: True device_class: - description: Sets the class of the device, changing the device state and icon that is displayed on the UI (see below). + 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: boolean -initial_state: - description: Sets the initial state for automations, `on` or `off`. + type: device_class + default: None +unit_of_measurement: + description: Defines the units of measurement, 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 -unit_of_measurement: - description: Defines the units of measurement, if any. + default: None +initial_state: + description: Sets the initial state for automations, `on` or `off`. required: false type: string {% endconfiguration %} diff --git a/source/_docs/configuration/devices.markdown b/source/_docs/configuration/devices.markdown index 43706169c3a..6aedad89483 100644 --- a/source/_docs/configuration/devices.markdown +++ b/source/_docs/configuration/devices.markdown @@ -33,9 +33,12 @@ sensor: name: "MQTT Sensor 2" - platform: rest resource: http://IP_ADDRESS/ENDPOINT + name: "Weather" switch: - platform: vera + - platform: tplink + host: IP_ADDRESS ``` ## {% linkable_title Style 2: List each device separately %} @@ -43,18 +46,27 @@ switch: You need to append numbers or strings to differentiate the entries, as in the example below. The appended number or string must be unique. ```yaml -media_player livingroom: - platform: mpd - server: IP_ADDRESS +sensor bedroom: + platform: mqtt + state_topic: "home/bedroom/temperature" + name: "MQTT Sensor 1" -media_player kitchen: - platform: plex +sensor kitchen: + platform: mqtt + state_topic: "home/kitchen/temperature" + name: "MQTT Sensor 2" -camera 1: - platform: generic +sensor weather: + platform: rest + resource: http://IP_ADDRESS/ENDPOINT + name: "Weather" -camera 2: - platform: mjpeg +switch 1: + platform: vera + +switch 2: + platform: tplink + host: IP_ADDRESS ``` ## {% linkable_title Grouping devices %} @@ -74,4 +86,3 @@ group: ``` For more details please check the [Group](/components/group/) page. - diff --git a/source/_docs/configuration/events.markdown b/source/_docs/configuration/events.markdown index ff0bcd35140..86494fc7b28 100644 --- a/source/_docs/configuration/events.markdown +++ b/source/_docs/configuration/events.markdown @@ -15,7 +15,7 @@ The core of Home Assistant is the event bus. The event bus allows any component Home Assistant contains a few built-in events that are used to coordinate between various components. ### {% linkable_title Event `homeassistant_start` %} -Event `homeassistant_start` is fired when all components from the configuration have been intitialized. This is the event that will start the timer firing off `time_changed` events. +Event `homeassistant_start` is fired when all components from the configuration have been initialized. This is the event that will start the timer firing off `time_changed` events.

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 c5458e4bf2b..cab429ce404 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 9bcd0e2822c..5cb76f6b4f2 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/secrets.markdown b/source/_docs/configuration/secrets.markdown index 0f1728cc013..438896ed5c5 100644 --- a/source/_docs/configuration/secrets.markdown +++ b/source/_docs/configuration/secrets.markdown @@ -10,7 +10,7 @@ footer: true redirect_from: /topics/secrets/ --- -The `configuration.yaml` file is a plain-text file, thus it is readable by anyone who has access to the file. The file contains passwords and API tokens which need to be redacted if you want to share your configuration. By using `!secret` you can remove any private information from you configuration files. This separation can also help you to keep easier track of your passwords and API keys. As they are all stored at one place and no longer spread across the `configuration.yaml` file or even multiple yaml files if you [split up your configuration](/docs/configuration/splitting_configuration/). +The `configuration.yaml` file is a plain-text file, thus it is readable by anyone who has access to the file. The file contains passwords and API tokens which need to be redacted if you want to share your configuration. By using `!secret` you can remove any private information from your configuration files. This separation can also help you to keep easier track of your passwords and API keys, as they are all stored at one place and no longer spread across the `configuration.yaml` file or even multiple yaml files if you [split up your configuration](/docs/configuration/splitting_configuration/). ### {% linkable_title Using secrets.yaml %} @@ -42,9 +42,9 @@ When you start splitting your configuration into multiple files, you might end u - A `secrets.yaml` located in the same folder as the YAML file referencing the secret, - next, parent folders will be searched for a `secrets.yaml` file with the secret, stopping at the folder with the main `configuration.yaml`, -- lastly, `keyring` will be queried for the secret (more info below) +- lastly, `keyring` will be queried for the secret (more info below). -To see where secrets are being loaded from you can either add an option to your `secrets.yaml` file or use the `check_config` script. +To see where secrets are being loaded from, you can either add an option to your `secrets.yaml` file or use the `check_config` script. *Option 1*: Print where secrets are retrieved from to the Home Assistant log by adding the following to `secrets.yaml`: @@ -53,7 +53,7 @@ logger: debug ``` This will not print the actual secret's value to the log. -*Option 2*: View where secrets are retrieved from and the contents of all `secrets.yaml` files used, you can use the [`check_config` script](/docs/tools/check_config/) from the command line: +*Option 2*: To view where secrets are retrieved from and the contents of all `secrets.yaml` files used, you can use the [`check_config` script](/docs/tools/check_config/) from the command line: ```bash $ hass --script check_config --secrets diff --git a/source/_docs/configuration/securing.markdown b/source/_docs/configuration/securing.markdown index 664acbe217b..85117013ff5 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.

+ +### {% linkable_title Remote access for just the UI %} + +If you only want remote access for access to the web UI then we advise that you follow the **All installs** section, then set up one of: + +- A VPN such as [PiVPN](http://www.pivpn.io/) or [ZeroTier](https://www.zerotier.com/), which will give you access to your whole home network +- [Tor](/docs/ecosystem/tor/), which also avoids the need for port forwarding +- An [SSH tunnel](/blog/2017/11/02/secure-shell-tunnel/) to connect to your frontend + +### {% linkable_title Remote access for components %} + +For remote access for a component, for example, a device tracker, you have to enable access to the API by: + +1. Following the steps in **All installs**, then +2. Forwarding a port and protect your communication with one of: + * A [TLS/SSL](/docs/ecosystem/certificates/lets_encrypt/) certificate (you can use one from Let's Encrypt, or any commercial SSL certificate vendor) + * A [self-signed certificate](/cookbook/tls_self_signed_certificate/) - be warned though, some services will refuse to work with self-signed certificates +3. Optionally use a proxy like [NGINX](/docs/ecosystem/nginx/), [Apache](/cookbook/apache_configuration/), or another. These allow you to provide finer-grained access. You could use this to limit access to specific parts of the API (for example, only `/api/owntracks/`) +4. Enable IP Filtering and configure a low [Login Attempts Threshold](/components/http/) +5. If you use a proxy then install [fail2ban](https://www.fail2ban.org/wiki/index.php/Main_Page) to [monitor your proxy logs](https://www.home-assistant.io/cookbook/fail2ban/) (or Home Assistant logs) for failed authentication diff --git a/source/_docs/configuration/splitting_configuration.markdown b/source/_docs/configuration/splitting_configuration.markdown index ec0d021ea53..47e53037928 100644 --- a/source/_docs/configuration/splitting_configuration.markdown +++ b/source/_docs/configuration/splitting_configuration.markdown @@ -89,7 +89,7 @@ switch: !include switches.yaml device_tracker: !include device_tracker.yaml ``` -Note that there can only be one `!include:` for each component so chaining them isn't going to work. If that sounds like greek, don't worry about it. +Note that there can only be one `!include:` for each component so chaining them isn't going to work. If that sounds like Greek, don't worry about it. Alright, so we've got the single components and the include statements in the base file, what goes in those extra files? diff --git a/source/_docs/configuration/yaml.markdown b/source/_docs/configuration/yaml.markdown index 68503dab96a..c4546d40ebb 100644 --- a/source/_docs/configuration/yaml.markdown +++ b/source/_docs/configuration/yaml.markdown @@ -26,7 +26,7 @@ notify: - A **component** provides the core logic for some functionality (like `notify` provides sending notifications). - A **platform** makes the connection to a specific software or hardware platform (like `pushbullet` works with the service from pushbullet.com). -The basics of YAML syntax are block collections and mappings containing key-value pairs. Each item in a collection starts with a `-` while mappings have the format `key: value`. If you specify duplicate keys, the last value for a key is used. This is somewhat similar to a Hashtable or more specifically a dictionary in Python. These can be nested as well. +The basics of YAML syntax are block collections and mappings containing key-value pairs. Each item in a collection starts with a `-` while mappings have the format `key: value`. If you specify duplicate keys, the last value for a key is used. This is somewhat similar to a Hash table or more specifically a dictionary in Python. These can be nested as well. Note that indentation is an important part of specifying relationships using YAML. Things that are indented are nested "inside" things that are one level higher. So in the above example, `platform: pushbullet` is a property of (nested inside) the `notify` component. diff --git a/source/_docs/ecosystem/appdaemon/api.markdown b/source/_docs/ecosystem/appdaemon/api.markdown index be4a60c0245..4464e699717 100755 --- a/source/_docs/ecosystem/appdaemon/api.markdown +++ b/source/_docs/ecosystem/appdaemon/api.markdown @@ -502,7 +502,7 @@ If duration is supplied as a parameter, the callback will not fire unless the st ``` -(Scheduler callbacks are documented in detail laer in this document) +(Scheduler callbacks are documented in detail later in this document) ##### {% linkable_title \*\*kwargs %} @@ -937,14 +937,14 @@ The handle returned when the scheduler call was made. time, interval, kwargs = self.info_timer(handle) ``` -### {% linkable_title Scheduler Ransomization %} +### {% linkable_title Scheduler Randomization %} All of the scheduler calls above support 2 additional optional arguments, `random_start` and `random_end`. Using these arguments it is possible to randomize the firing of callbacks to the degree desired by setting the appropriate number of seconds with the parameters. - `random_start` - start of range of the random time - `random_end` - end of range of the random time -`random_start` must always be numerically lower than `random_end`, they can be negative to denote a random offset before and event, or positive to denote a random offset after an event. The event would be an absolute or relative time or sunrise/sunset depending on which scheduler call you use and these values affect the base time by the spcified amount. If not specified, they will default to `0`. +`random_start` must always be numerically lower than `random_end`, they can be negative to denote a random offset before and event, or positive to denote a random offset after an event. The event would be an absolute or relative time or sunrise/sunset depending on which scheduler call you use and these values affect the base time by the specified amount. If not specified, they will default to `0`. For example: @@ -1164,7 +1164,7 @@ self.call_service("notify/notify", title = "Hello", message = "Hello World") ``` ### {% linkable_title turn_on() %} -This is a convenience function for the `homassistant.turn_on` function. It is able to turn on pretty much anything in Home Assistant that can be turned on or run: +This is a convenience function for the `homeassistant.turn_on` function. It is able to turn on pretty much anything in Home Assistant that can be turned on or run: - Lights - Switches @@ -1197,13 +1197,13 @@ A comma separated list of key value pairs to allow specification of parameters o ```python self.turn_on("switch.patio_lights") -self.turn_on("scene.bedrrom_on") +self.turn_on("scene.bedroom_on") self.turn_on("light.office_1", color_name = "green") ``` ### {% linkable_title turn_off() %} -This is a convenience function for the `homassistant.turn_off` function. Like `homeassistant.turn_on`, it is able to turn off pretty much anything in Home Assistant that can be turned off. +This is a convenience function for the `homeassistant.turn_off` function. Like `homeassistant.turn_on`, it is able to turn off pretty much anything in Home Assistant that can be turned off. #### {% linkable_title Synopsis %} @@ -1230,7 +1230,7 @@ self.turn_off("light.office_1") ### {% linkable_title toggle() %} -This is a convenience function for the `homassistant.toggle` function. It is able to flip the state of pretty much anything in Home Assistant that can be turned on or off. +This is a convenience function for the `homeassistant.toggle` function. It is able to flip the state of pretty much anything in Home Assistant that can be turned on or off. #### {% linkable_title Synopsis %} @@ -1850,7 +1850,7 @@ if self.now_is_between("sunset - 00:45:00", "sunrise + 00:45:00"): ### {% linkable_title friendly_name() %} -`frindly_name()` will return the Friendly Name of an entity if it has one. +`friendly_name()` will return the Friendly Name of an entity if it has one. #### {% linkable_title Synopsis %} @@ -2096,7 +2096,7 @@ $ appdaemon -e "2016-06-06 10:10:00" ... ``` -The `-e` flag is most useful when used in conjuntion with the -s flag and optionally the `-t` flag. For example, to run from just before sunset, for an hour, as fast as possible: +The `-e` flag is most useful when used in conjunction with the -s flag and optionally the `-t` flag. For example, to run from just before sunset, for an hour, as fast as possible: ```bash $ appdaemon -s "2016-06-06 19:16:00" -s "2016-06-06 20:16:00" -t 0 diff --git a/source/_docs/ecosystem/appdaemon/running.markdown b/source/_docs/ecosystem/appdaemon/running.markdown index d4006526d6f..feda9c4ee8a 100755 --- a/source/_docs/ecosystem/appdaemon/running.markdown +++ b/source/_docs/ecosystem/appdaemon/running.markdown @@ -26,7 +26,7 @@ In the example above you would use: $ docker run -d -v /Users/foo/ha-config:/conf --name appdaemon appdaemon:latest ``` -Where you place the `conf` and `conf/apps` directory is up to you - it can be in downloaded repostory, or anywhere else on the host, as long as you use the correct mapping in the `docker run` command. +Where you place the `conf` and `conf/apps` directory is up to you - it can be in downloaded repository, or anywhere else on the host, as long as you use the correct mapping in the `docker run` command. You can inspect the logs as follows: diff --git a/source/_docs/ecosystem/appdaemon/tutorial.markdown b/source/_docs/ecosystem/appdaemon/tutorial.markdown index 28f325dfa08..14c01f397cb 100755 --- a/source/_docs/ecosystem/appdaemon/tutorial.markdown +++ b/source/_docs/ecosystem/appdaemon/tutorial.markdown @@ -12,7 +12,7 @@ redirect_from: /ecosystem/appdaemon/tutorial/ ## {% linkable_title Another Take on Automation %} -If you haven't yet read Paulus' excellent Blog entry on [Perfect Home Automation](/blog/2016/01/19/perfect-home-automation/) I would encourage you to take a look. As a veteran of several Home Automation systems with varying degrees success, it was this article more than anything else that convinced me that Home Assistant had the right philosophy behind it and was on the right track. One of the most important points made is that being able to control your lights from your phone, 9 times out of 10 is harder than using a lightswitch - where Home Automation really comes into its own is when you start removing the need to use a phone or the switch - the "Automation" in Home Automation. A surprisingly large number of systems out there miss this essential point and have limited abilities to automate anything which is why a robust and open system such as Home Assistant is such an important part of the equation in bring this all together in the vast and chaotic ecosystem that is the "Internet of Things". +If you haven't yet read Paulus' excellent Blog entry on [Perfect Home Automation](/blog/2016/01/19/perfect-home-automation/) I would encourage you to take a look. As a veteran of several Home Automation systems with varying degrees success, it was this article more than anything else that convinced me that Home Assistant had the right philosophy behind it and was on the right track. One of the most important points made is that being able to control your lights from your phone, 9 times out of 10 is harder than using a light switch - where Home Automation really comes into its own is when you start removing the need to use a phone or the switch - the "Automation" in Home Automation. A surprisingly large number of systems out there miss this essential point and have limited abilities to automate anything which is why a robust and open system such as Home Assistant is such an important part of the equation in bring this all together in the vast and chaotic ecosystem that is the "Internet of Things". So given the importance of Automation, what should Automation allow us to do? I am a pragmatist at heart so I judge individual systems by the ease of accomplishing a few basic but representative tasks: @@ -82,7 +82,7 @@ This is also fairly easy to achieve with Home Assistant automations, but we are ### Motion Light -Our next example is to turn on a light when motion is detected and it is dark, and turn it off after a period of time. This time, the `initialize()` function registers a callback on a state change (of the motion sensor) rather than a specific time. We tell AppDaemon that we are only interested in state changesd where the motion detector comes on by adding an additional parameter to the callback registration - `new = "on"`. When the motion is detected, the callack function `motion()` is called, and we check whether or not the sun has set using a built-in convenience function: `sun_down()`. Next, we turn the light on with `turn_on()`, then set a timer using `run_in()` to turn the light off after 60 seconds, which is another call to the scheduler to execute in a set time from now, which results in `AppDaemon` calling `light_off()` 60 seconds later using the `turn_off()` call to actually turn the light off. This is still pretty simple in code terms: +Our next example is to turn on a light when motion is detected and it is dark, and turn it off after a period of time. This time, the `initialize()` function registers a callback on a state change (of the motion sensor) rather than a specific time. We tell AppDaemon that we are only interested in state changesd where the motion detector comes on by adding an additional parameter to the callback registration - `new = "on"`. When the motion is detected, the callback function `motion()` is called, and we check whether or not the sun has set using a built-in convenience function: `sun_down()`. Next, we turn the light on with `turn_on()`, then set a timer using `run_in()` to turn the light off after 60 seconds, which is another call to the scheduler to execute in a set time from now, which results in `AppDaemon` calling `light_off()` 60 seconds later using the `turn_off()` call to actually turn the light off. This is still pretty simple in code terms: ```python import appdaemon.appapi as appapi @@ -132,9 +132,9 @@ class MotionLights(appapi.AppDaemon): Of course if I wanted to make this App or its predecessor reusable I would have provide parameters for the sensor, the light to activate on motion, the warning light and even the number of flashes and delay between flashes. -In addition, Apps can write to `AppDaemon`'s logfiles, and there is a system of constraints that allows yout to control when and under what circumstances Apps and callbacks are active to keep the logic clean and simple. +In addition, Apps can write to `AppDaemon`'s logfiles, and there is a system of constraints that allows you to control when and under what circumstances Apps and callbacks are active to keep the logic clean and simple. -I have spent the last few weeks moving all of my (fairly complex) automations over to `APPDaemon` and so far it is working very reliably. +I have spent the last few weeks moving all of my (fairly complex) automations over to `AppDaemon` and so far it is working very reliably. Some people will maybe look at all of this and say "what use is this, I can already do all of this", and that is fine, as I said this is an alternative not a replacement, but I am hopeful that for some users this will seem a more natural, powerful and nimble way of building potentially very complex automations. diff --git a/source/_docs/ecosystem/appdaemon/updating.markdown b/source/_docs/ecosystem/appdaemon/updating.markdown index 132b4dc5d2e..af29d8b578c 100644 --- a/source/_docs/ecosystem/appdaemon/updating.markdown +++ b/source/_docs/ecosystem/appdaemon/updating.markdown @@ -16,4 +16,4 @@ To update AppDaemon after I have released new code, just run the following comma $ sudo pip3 install --upgrade appdaemon ``` -If you are using docker, rerun the steps to grab the latestdocker image. +If you are using docker, rerun the steps to grab the latest docker image. diff --git a/source/_docs/ecosystem/backup/backup_github.markdown b/source/_docs/ecosystem/backup/backup_github.markdown index d43a111f89b..cf526c7b502 100644 --- a/source/_docs/ecosystem/backup/backup_github.markdown +++ b/source/_docs/ecosystem/backup/backup_github.markdown @@ -35,7 +35,7 @@ Some best practices to consider before putting your configuration on GitHub: ### {% linkable_title Step 1: Installing and Initializing Git %} -In order to put your configuration on GitHub, you must install the Git package on your Home Assistant server (instructions below will work on Raspberry Pi, Ubunutu or any Debian-based system) *Note: this isn't required in Hass.io, it's included as default so proceed to step 2*: +In order to put your configuration on GitHub, you must install the Git package on your Home Assistant server (instructions below will work on Raspberry Pi, Ubuntu or any Debian-based system) *Note: this isn't required in Hass.io, it's included as default so proceed to step 2*: ```bash $ sudo apt-get update @@ -140,7 +140,7 @@ Every time you run this script, you will be prompted for a comment to describe t [Travis CI](https://travis-ci.org) is a continuous integration testing system that runs every time the code in your repository is updated and allows you to validate that your code works on a fresh install. - [Authorize Travis CI](https://travis-ci.org/auth) to have access to your GitHub repositories. -- Create the build script that travis will run to test your repository. +- Create the build script that Travis will run to test your repository. - Create a dummy `secrets.yaml` for Travis. Example .travis.yml diff --git a/source/_docs/ecosystem/certificates/lets_encrypt.markdown b/source/_docs/ecosystem/certificates/lets_encrypt.markdown index 0b62214a923..bcbecfaccce 100644 --- a/source/_docs/ecosystem/certificates/lets_encrypt.markdown +++ b/source/_docs/ecosystem/certificates/lets_encrypt.markdown @@ -27,7 +27,7 @@ This guide was added by mf_social on 16/03/2017 and was valid at the time of wri * You have a basic understanding of the phrases I have used so far. * You are not currently running anything on port 80 on your network (you'd know if you were). * If you are not using Home Assistant on a Debian/Raspian/Hassbian system you will be able to convert any of the terminology I use in to the correct syntax for your system. - * You understand that this is a 'guide' covering the general application of these things to the general masses and there are things outside of the scope of it, and it does not cover every eventuality (although I have made some notes where people may stumble). Also, I have used some turns of phrase to make it easier to understand for the novice reader which people of advanced knowledge may say is innacurate. My goal here is to get you through this guide with a satisfactory outcome and have a decent understanding of what you are doing and why, not to teach you advanced internet communication protocols. + * You understand that this is a 'guide' covering the general application of these things to the general masses and there are things outside of the scope of it, and it does not cover every eventuality (although I have made some notes where people may stumble). Also, I have used some turns of phrase to make it easier to understand for the novice reader which people of advanced knowledge may say is inaccurate. My goal here is to get you through this guide with a satisfactory outcome and have a decent understanding of what you are doing and why, not to teach you advanced internet communication protocols. * Each step presumes you have fully completed the previous step successfully, so if you did an earlier step following a different guide, please ensure that you have not missed anything out that may affect the step you have jumped to, and ensure that you adapt any commands to take in to account different file placements from other guides. Steps we will take: @@ -113,7 +113,7 @@ static routers=192.168.0.1 <---- Your router's IP address static domain_name_servers=192.168.0.1 <---- Your router's IP address ``` -It is important to note that the first three bytes of your static IP address and your router's IP address should be the same, eg: +It is important to note that the first three bytes of your static IP address and your router's IP address should be the same, e.g.: ```text Router: 192.168.0.1 @@ -179,9 +179,9 @@ http://203.0.113.12:8123 Can you see your Home Assistant instance? If not, your router may not support 'loopback' - try the next step anyway and if that works, and this one still doesn't, just remember that you cannot use loopback, so will have to use internal addresses when you're on your home network. More on this later on if it's relevant to you. -Just to verify this isn't some kind of witchcraft that is actually using your internal network, pick up your phone, disconnect it from your wifi so that you are on your mobile data and not connected to the home network, put the same URL in the browser on your phone. +Just to verify this isn't some kind of witchcraft that is actually using your internal network, pick up your phone, disconnect it from your WiFi so that you are on your mobile data and not connected to the home network, put the same URL in the browser on your phone. -Can you see it now, from a device that is definitely not connected to your local network? Excellent! You now have a remotely accesible Home Assistant instance. +Can you see it now, from a device that is definitely not connected to your local network? Excellent! You now have a remotely accessible Home Assistant instance. But what if your external IP changes? Plus, remembering all those numbers is pretty hard, isn't it? Read on to get yourself set up with a word-based URL at DuckDNS that will track any changes to your IP address so you don't have to stress anymore. @@ -222,7 +222,7 @@ What now happens behind the scenes is this: Did it work? Super! -You now have a remotely accesible Home Assistant instance that has a text-based URL and will not drop out if your service provider changes your IP. But, it is only as secure as the password you set, which can be snooped during your session by a malicious hacker with relative ease. So we need to set up some encryption with TLS/SSL, read on to find out how. +You now have a remotely accessible Home Assistant instance that has a text-based URL and will not drop out if your service provider changes your IP. But, it is only as secure as the password you set, which can be snooped during your session by a malicious hacker with relative ease. So we need to set up some encryption with TLS/SSL, read on to find out how. ### {% linkable_title 4 - Obtain a TLS/SSL certificate from Let's Encrypt %} diff --git a/source/_docs/ecosystem/certificates/tls_domain_certificate.markdown b/source/_docs/ecosystem/certificates/tls_domain_certificate.markdown index 91198ddd4f7..d6cec084712 100644 --- a/source/_docs/ecosystem/certificates/tls_domain_certificate.markdown +++ b/source/_docs/ecosystem/certificates/tls_domain_certificate.markdown @@ -12,7 +12,7 @@ redirect_from: /cookbook/tls_domain_certificate/ If your Home Assistant instance is only accessible from your local network you can still protect the communication between your browsers and the frontend with SSL/TLS. You can use [Self-sign certificate](/cookbook/tls_self_signed_certificate/) but your browser will present a warning and some https-only features might not work. -### {% linkable_title Prerequirement for this guide %} +### {% linkable_title Requirement for this guide %} * Your Home Assistant instance is not exposed to the internet. If it is - use [this guide]({{site_root}}/blog/2015/12/13/setup-encryption-using-lets-encrypt/) * You control a public domain name. The domain doesn't have to point to a site. A domain controlled by a *trusted* friend will do. (A friend you trust not to MITM you) @@ -45,7 +45,7 @@ Once this is deployed, Press Enter to Continue ``` -* Deploy the value to TXT field using your domain registar. +* Deploy the value to TXT field using your domain registrar. * Go to a site that queries domain record. For example [this one](https://mxtoolbox.com/TXTLookup.aspx) and look if it sees your brand new TXT field (Don't forget to enter the full domain: `_acme-challenge.mydomain.com`) * Press Enter at certbot prompt. diff --git a/source/_docs/ecosystem/certificates/tls_self_signed_certificate.markdown b/source/_docs/ecosystem/certificates/tls_self_signed_certificate.markdown index 2aab9deb6d9..c4f7c536741 100644 --- a/source/_docs/ecosystem/certificates/tls_self_signed_certificate.markdown +++ b/source/_docs/ecosystem/certificates/tls_self_signed_certificate.markdown @@ -20,7 +20,7 @@ Change to your Home Assistant [configuration directory](/getting-started/configu The certificate **must** be `.pem` extension. -If you are going to use this certificate with the iOS app, you need to ensure you complete **all** fields during the cetificate creation process, then: +If you are going to use this certificate with the iOS app, you need to ensure you complete **all** fields during the certificate creation process, then: * Send **only** the `certificate.pem` file to the iOS device, using airdrop or other transfer method. * Open the `.pem` file on the iOS device, follow the prompts to trust and install it. @@ -38,7 +38,6 @@ Update the `http:` entry in your `configuration.yaml` file and let it point to y ```yaml http: - api_password: YOUR_SECRET_PASSWORD ssl_certificate: /home/your_user/.homeassistant/certificate.pem ssl_key: /home/your_user/.homeassistant/privkey.pem ``` diff --git a/source/_docs/ecosystem/scenegen.markdown b/source/_docs/ecosystem/scenegen.markdown index 37d2534b086..0463a834242 100644 --- a/source/_docs/ecosystem/scenegen.markdown +++ b/source/_docs/ecosystem/scenegen.markdown @@ -10,7 +10,7 @@ footer: true redirect_from: /ecosystem/scenegen/ --- -Scenegen is a scene generation tool for [Home Assistant](/) home automation software. It creates scenes by example, by reading the current states of devices and outputting a corresponding scene. Scenegen is written in python using Home Assistant's RESTFul API so can be run from anywhere. It currently supports lights and switches only. +Scenegen is a scene generation tool for [Home Assistant](/) home automation software. It creates scenes by example, by reading the current states of devices and outputting a corresponding scene. Scenegen is written in python using Home Assistant's RESTful API so can be run from anywhere. It currently supports lights and switches only. ## {% linkable_title Installation %} @@ -86,7 +86,7 @@ entities: brightness: 28 ``` -This output can be cut and pasted into your configuration.yaml file as required (ensuring correct indentatation of course). +This output can be cut and pasted into your configuration.yaml file as required (ensuring correct indentation of course). Scenegen supports all documented effects for lights including transitions and flash effects, however generally it is easier to run scenegen to get the basic setup and add any effects manually later. diff --git a/source/_docs/frontend/browsers.markdown b/source/_docs/frontend/browsers.markdown index 0003e531ec2..520f77135c4 100644 --- a/source/_docs/frontend/browsers.markdown +++ b/source/_docs/frontend/browsers.markdown @@ -10,7 +10,7 @@ footer: true redirect_from: /getting-started/browsers/ --- -Home Assistant requires a web browser to show the frontend and supports all major modern browsers. We don't test the web interface against all available browsers but this page tracks different browsers on various operating systems and should help you to pick a browser which works. The "Release" column contains the release number which were tested. This doen't mean that older or newer releases not work. +Home Assistant requires a web browser to show the frontend and supports all major modern browsers. We don't test the web interface against all available browsers but this page tracks different browsers on various operating systems and should help you to pick a browser which works. The "Release" column contains the release number which were tested. This doesn't mean that older or newer releases not work. If a browser is listed as working but you are still having problems, it is possible that some add-on or extension may be the problem. Some add-ons or extension are known to cause issue with the frontend, but it's not possible to test them all. If you are having issues with the frontend displaying correctly, you should disable all your add-ons or extensions and enable them one at a time. diff --git a/source/_docs/installation.markdown b/source/_docs/installation.markdown index e5e8cb6026a..0d1af7257e1 100644 --- a/source/_docs/installation.markdown +++ b/source/_docs/installation.markdown @@ -20,6 +20,8 @@ Home Assistant provides multiple ways to be installed. A requirement is that you Please remember to [secure your installation](/docs/configuration/securing/) once you've finished with the installation process.

+## {% linkable_title Recommended options %} +
+ +## {% linkable_title Alternative installs %} + +The following installs are only recommended for experienced users of those platforms. + +
-
Raspbian
+
Raspbian (but applies to any Debian based Linux)
- +
- +
-
ArchLinux
+
On top of an existing Python 3.5.3+ installation
@@ -57,6 +66,12 @@ Home Assistant provides multiple ways to be installed. A requirement is that you
armbian
+ +
+ +
+
ArchLinux
+
@@ -87,12 +102,6 @@ Home Assistant provides multiple ways to be installed. A requirement is that you
Synology
- -
- -
-
Docker
-
+## {% linkable_title After installation %} + Once Home Assistant is installed, execute the following code in a console/terminal to check if the setup was successful: ```bash $ hass ``` -The first start may take a minute or two because the needed packages will be downloaded and installed. The web interface will be served on [http://localhost:8123](http://localhost:8123). +The first start may take up to 20 minutes because the needed packages will be downloaded and installed. The web interface will be served on [http://localhost:8123](http://localhost:8123). For more details about `hass`, please refer to the [tools section](/docs/tools/hass/). If you're running a Linux-based platform, we suggest you follow the [VirtualEnv instructions](/docs/installation/virtualenv/) to avoid using `root`. You may need to install additional libraries depending on the platforms/components you want to use. - diff --git a/source/_docs/installation/docker.markdown b/source/_docs/installation/docker.markdown index 05cf090ec00..7b248911b78 100644 --- a/source/_docs/installation/docker.markdown +++ b/source/_docs/installation/docker.markdown @@ -53,7 +53,7 @@ As Synology within DSM now supports Docker (with a neat UI), you can simply inst The steps would be: * Install "Docker" package on your Synology NAS * Launch Docker-app and move to "Registry"-section -* Find "homeassistant/home-assistant" within registry and click on "Download". Choose the "latest" tag, this will make verison updates easier later on. +* Find "homeassistant/home-assistant" within registry and click on "Download". Choose the "latest" tag, this will make version updates easier later on. * Wait for some time until your NAS has pulled the image * Move to the "Image"-section of the Docker-app * Click on "Launch" @@ -185,7 +185,7 @@ $ docker-compose restart ### {% linkable_title Exposing Devices %} -In order to use Z-Wave, ZigBbee or other components that require access to devices, you need to map the appropriate device into the container. Ensure the user that is running the container has the correct privileges to access the `/dev/tty*` file, then add the device mapping to your docker command: +In order to use Z-Wave, ZigBee or other components that require access to devices, you need to map the appropriate device into the container. Ensure the user that is running the container has the correct privileges to access the `/dev/tty*` file, then add the device mapping to your docker command: ```bash $ docker run -d --name="home-assistant" -v /path/to/your/config:/config \ diff --git a/source/_docs/installation/freenas.markdown b/source/_docs/installation/freenas.markdown index 6679275764c..654f3e084db 100644 --- a/source/_docs/installation/freenas.markdown +++ b/source/_docs/installation/freenas.markdown @@ -46,7 +46,7 @@ Make `/etc/rc.local` executable so it runs on startup # chmod 755 /etc/rc.local ``` -Finally restart the jail from the Freenas GUI. +Finally restart the jail from the FreeNAS GUI.

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 bfc7d4e4d72..41af2edf384 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/vagrant.markdown b/source/_docs/installation/vagrant.markdown index 66b48d09cb1..c48a9606b3f 100644 --- a/source/_docs/installation/vagrant.markdown +++ b/source/_docs/installation/vagrant.markdown @@ -10,7 +10,7 @@ footer: true redirect_from: /getting-started/installation-vagrant/ --- -A `Vagrantfile` is available into `virtualization/vagrant` folder for quickly spinning up a Linux virtual machine running Home Assistant. This can be beneficial for those who want to experiment with Home Assistant and/or developers willing to easily test local changes and run test suite against them. In the same `virtualization/vagrant` folder there's also a `provision.sh` shell script which provides an easy way to interact with the Home Assistant instance running within the Vagrant VM. +A `Vagrantfile` is available into `virtualization/vagrant` folder for quickly spinning up a Linux virtual machine running Home Assistant. This can be beneficial for those who want to experiment with Home Assistant and/or developers willing to easily test local changes and run test suite against them. In the same `virtualization/vagrant` folder there's also a `provision.sh` shell script which provides an easy way to interact with the Home Assistant instance running within the Vagrant VM. For Windows, use the batch script `provision.bat`.

Vagrant is intended for testing/development only. It is NOT recommended for permanent installations. @@ -20,6 +20,8 @@ Vagrant is intended for testing/development only. It is NOT recommended for perm You must have [Vagrant](https://www.vagrantup.com/downloads.html) and [Virtualbox](https://www.virtualbox.org/wiki/Downloads) installed on your workstation. Vagrant and Virtualbox support all the main platforms, including Windows, MacOS and Linux. +Limited support is available for Hyper-V on Windows, see below. + ## {% linkable_title Get Home Assistant source code %} Download the Home Assistant source code by either downloading the .zip file from [GitHub releases page](https://github.com/home-assistant/home-assistant/releases) or by using [Git](https://git-scm.com/) @@ -98,3 +100,15 @@ To completely remove the VM **and** setup a fresh new environment: ```bash $ ./provision.sh recreate ``` + +## {% linkable_title Windows %} + +On Windows, Vagrant is launched through an elevated `PowerShell`. Use the batch script `provision.bat` instead of the shell script `provision.sh`. + +## {% linkable_title Hyper-V %} + +It is possible to use Hyper-V instead of Virtualbox on Windows, with some limitations. + +Samba is used for the virtual machine to access files, for which the Windows credentials are needed when the machine is created. +As Hyper-V does not allow for port forwarding, NAT is used by default for the network. Through creating an external network switch in Hyper-V it is possible to access the machine on the network. +The IP address is visible on creation, and through the Hyper-V manager. diff --git a/source/_docs/installation/virtualenv.markdown b/source/_docs/installation/virtualenv.markdown index 336ced4598e..59f22869f16 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 9da45c0aa2b..8923f93f3ff 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 @@ -117,7 +117,7 @@ If you get this error `AttributeError: module 'ssl' has no attribute 'PROTOCOL_T

-If you are running a Mosquitto instance on the same server as Home Assistant then you must ensure that the Mosquitto service starts before Home Assistant. For a Linux instance running Systemd (Raspberry Pi, Debian, Ubuntu and others) then you should edit the file /etc/systemd/system/home-assistant@homeassistant.service as root (e.g., sudo nano /etc/systemd/system/home-assistant@homeassistant.service) and add the mosquitto service: +If you are running a Mosquitto instance on the same server as Home Assistant then you must ensure that the Mosquitto service starts before Home Assistant. For a Linux instance running Systemd (Raspberry Pi, Debian, Ubuntu and others) then you should edit the file `/etc/systemd/system/home-assistant@homeassistant.service` as `root` (e.g., `sudo nano /etc/systemd/system/home-assistant@homeassistant.service`) and add the Mosquitto service: ``` [Unit] Description=Home Assistant diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index af0f99c2c1e..53e1fc9383d 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 `` level can be used by clients to only subscribe to their own (command) topics by using one wildcard topic like `/+//+/set`. +A base topic `~` may be defined in the payload to conserve memory when the same topic base is used multiple times. +In the value of configuration variables ending with `_topic`, `~` will be replaced with the base topic, if the `~` occurs at the beginning or end of the value. + +Configuration variable names in the discovery payload may be abbreviated to conserve memory when sending a discovery message from memory constrained devices. + +Supported abbreviations: +``` + 'aux_cmd_t': 'aux_command_topic', + 'aux_stat_tpl': 'aux_state_template', + 'aux_stat_t': 'aux_state_topic', + 'avty_t': 'availability_topic', + 'away_mode_cmd_t': 'away_mode_command_topic', + 'away_mode_stat_tpl': 'away_mode_state_template', + 'away_mode_stat_t': 'away_mode_state_topic', + 'bri_cmd_t': 'brightness_command_topic', + 'bri_scl': 'brightness_scale', + 'bri_stat_t': 'brightness_state_topic', + 'bri_val_tpl': 'brightness_value_template', + 'clr_temp_cmd_t': 'color_temp_command_topic', + 'clr_temp_stat_t': 'color_temp_state_topic', + 'clr_temp_val_tpl': 'color_temp_value_template', + 'cmd_t': 'command_topic', + 'curr_temp_t': 'current_temperature_topic', + 'dev_cla': 'device_class', + 'fx_cmd_t': 'effect_command_topic', + 'fx_list': 'effect_list', + 'fx_stat_t': 'effect_state_topic', + 'fx_val_tpl': 'effect_value_template', + 'exp_aft': 'expire_after', + 'fan_mode_cmd_t': 'fan_mode_command_topic', + 'fan_mode_stat_tpl': 'fan_mode_state_template', + 'fan_mode_stat_t': 'fan_mode_state_topic', + 'frc_upd': 'force_update', + 'hold_cmd_t': 'hold_command_topic', + 'hold_stat_tpl': 'hold_state_template', + 'hold_stat_t': 'hold_state_topic', + 'ic': 'icon', + 'init': 'initial', + 'json_attr': 'json_attributes', + 'max_temp': 'max_temp', + 'min_temp': 'min_temp', + 'mode_cmd_t': 'mode_command_topic', + 'mode_stat_tpl': 'mode_state_template', + 'mode_stat_t': 'mode_state_topic', + 'name': 'name', + 'on_cmd_type': 'on_command_type', + 'opt': 'optimistic', + 'osc_cmd_t': 'oscillation_command_topic', + 'osc_stat_t': 'oscillation_state_topic', + 'osc_val_tpl': 'oscillation_value_template', + 'pl_arm_away': 'payload_arm_away', + 'pl_arm_home': 'payload_arm_home', + 'pl_avail': 'payload_available', + 'pl_cls': 'payload_close', + 'pl_disarm': 'payload_disarm', + 'pl_hi_spd': 'payload_high_speed', + 'pl_lock': 'payload_lock', + 'pl_lo_spd': 'payload_low_speed', + 'pl_med_spd': 'payload_medium_speed', + 'pl_not_avail': 'payload_not_available', + 'pl_off': 'payload_off', + 'pl_on': 'payload_on', + 'pl_open': 'payload_open', + 'pl_osc_off': 'payload_oscillation_off', + 'pl_osc_on': 'payload_oscillation_on', + 'pl_stop': 'payload_stop', + 'pl_unlk': 'payload_unlock', + 'pow_cmd_t': 'power_command_topic', + 'ret': 'retain', + 'rgb_cmd_tpl': 'rgb_command_template', + 'rgb_cmd_t': 'rgb_command_topic', + 'rgb_stat_t': 'rgb_state_topic', + 'rgb_val_tpl': 'rgb_value_template', + 'send_if_off': 'send_if_off', + 'set_pos_tpl': 'set_position_template', + 'set_pos_t': 'set_position_topic', + 'spd_cmd_t': 'speed_command_topic', + 'spd_stat_t': 'speed_state_topic', + 'spd_val_tpl': 'speed_value_template', + 'spds': 'speeds', + 'stat_clsd': 'state_closed', + 'stat_off': 'state_off', + 'stat_on': 'state_on', + 'stat_open': 'state_open', + 'stat_t': 'state_topic', + 'stat_val_tpl': 'state_value_template', + 'swing_mode_cmd_t': 'swing_mode_command_topic', + 'swing_mode_stat_tpl': 'swing_mode_state_template', + 'swing_mode_stat_t': 'swing_mode_state_topic', + 'temp_cmd_t': 'temperature_command_topic', + 'temp_stat_tpl': 'temperature_state_template', + 'temp_stat_t': 'temperature_state_topic', + 'tilt_clsd_val': 'tilt_closed_value', + 'tilt_cmd_t': 'tilt_command_topic', + 'tilt_inv_stat': 'tilt_invert_state', + 'tilt_max': 'tilt_max', + 'tilt_min': 'tilt_min', + 'tilt_opnd_val': 'tilt_opened_value', + 'tilt_status_opt': 'tilt_status_optimistic', + 'tilt_status_t': 'tilt_status_topic', + 't': 'topic', + 'uniq_id': 'unique_id', + 'unit_of_meas': 'unit_of_measurement', + 'val_tpl': 'value_template', + 'whit_val_cmd_t': 'white_value_command_topic', + 'whit_val_stat_t': 'white_value_state_topic', + 'whit_val_tpl': 'white_value_template', + 'xy_cmd_t': 'xy_command_topic', + 'xy_stat_t': 'xy_state_topic', + 'xy_val_tpl': 'xy_value_template', +``` + ### {% linkable_title Support by third-party tools %} The following firmware for ESP8266, ESP32 and Sonoff unit has built-in support for MQTT discovery: @@ -113,4 +225,9 @@ Setting up a sensor with multiple measurement values requires multiple consecuti - Configuration payload no2: `{"device_class": "sensor", "name": "Humidity", "state_topic": "homeassistant/sensor/sensorBedroom/state", "unit_of_measurement": "%", "value_template": "{% raw %}{{ value_json.humidity}}{% endraw %}" }` - Common state payload: `{ "temperature": 23.20, "humidity": 43.70 }` +Setting up a switch using topic prefix and abbreviated configuration variable names to reduce payload length. +- Configuration topic: `homeassistant/switch/irrigation/config` +- Command topic: `homeassistant/switch/irrigation/set` +- State topic: `homeassistant/switch/irrigation/state` +- Payload: `{"~": "homeassistant/switch/irrigation", "name": "garden", "cmd_t": "~/set", , "stat_t": "~/state"}` diff --git a/source/_docs/z-wave/adding.markdown b/source/_docs/z-wave/adding.markdown index fdb5a411a20..e40a86276e6 100644 --- a/source/_docs/z-wave/adding.markdown +++ b/source/_docs/z-wave/adding.markdown @@ -24,7 +24,7 @@ Don't use this for [secure devices](/docs/z-wave/adding/#adding-secure-devices), Don't use the OpenZWave control panel (OZWCP), **or the physical button on a controller**, to add or remove devices. Many devices will only send the information about their capabilities at the time you include them. If you use the OpenZWave control panel, or the button on a device, then Home Assistant won't have that information. Using the physical button on a controller will also result in a non-security inclusion being performed, which may limit the features the device supports.

-When you add a device, it may initially appear without a specific entity ID (eg `zwave.__`) and without other identifying information. Running a *Heal* should help speed this process up, and you'll need to run a *Heal* anyway so that all the devices in your Z-Wave network learn about the new device. You *might* need to restart Home Assistant (not reboot the system) to have the entity ID fully visible. +When you add a device, it may initially appear without a specific entity ID (e.g., `zwave.__`) and without other identifying information. Running a *Heal* should help speed this process up, and you'll need to run a *Heal* anyway so that all the devices in your Z-Wave network learn about the new device. You *might* need to restart Home Assistant (not reboot the system) to have the entity ID fully visible. ## {% linkable_title Network Key %} diff --git a/source/_docs/z-wave/control-panel.markdown b/source/_docs/z-wave/control-panel.markdown index 2556722cb8d..018857fb5bc 100644 --- a/source/_docs/z-wave/control-panel.markdown +++ b/source/_docs/z-wave/control-panel.markdown @@ -70,7 +70,7 @@ Here is where you [include and exclude](/docs/z-wave/adding/) Z-Wave devices fro * **retries** How many retries have been made to send messages to this node * **sentCnt** How many messages have been sent to the node * **sentFailed** How many messages that were sent weren't acknowledged -* **sentTS** The date and time the last message was sent to the ndoe +* **sentTS** The date and time the last message was sent to the node * **wake_up_interval** *Battery powered devices only* - the wakeup interval of the device, in seconds

@@ -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 128b122649b..8548c92f9c1 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. +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: -| 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 | ✓ | | | +* 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 de2ab1b2a16..bb8c9c805bd 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/entities.markdown b/source/_docs/z-wave/entities.markdown index 2826e777bfb..50da0e4d028 100644 --- a/source/_docs/z-wave/entities.markdown +++ b/source/_docs/z-wave/entities.markdown @@ -161,7 +161,7 @@ binary_sensor: YOUR_SENSOR: friendly_name: "Friendly name here" device_class: door - value_template: "{{ is_state('sensor.YOUR_ORIGINAL_SENSOR_access_control', 22) }}" + value_template: "{{ is_state('sensor.YOUR_ORIGINAL_SENSOR_access_control', '22') }}" ``` {% endraw %} @@ -177,7 +177,7 @@ binary_sensor: - **254**: Deep sleep - **255**: Case open -If your device has a `burglar` entity, but not a `binary_sensor` equivalent, you can use a [template binary sensor](/components/binary_sensor.template/) to create one (here we've defined it as a motion sensor, but you can use [any relevant device class](/components/binary_sensor/#device-class: +If your device has a `burglar` entity, but not a `binary_sensor` equivalent, you can use a [template binary sensor](/components/binary_sensor.template/) to create one (here we've defined it as a motion sensor, but you can use [any relevant device class](/components/binary_sensor/#device-class): {% raw %} ```yaml @@ -187,7 +187,7 @@ binary_sensor: YOUR_SENSOR: friendly_name: "Friendly name here" device_class: motion - value_template: "{{ is_state('sensor.YOUR_SENSOR_burglar', 8) }}" + value_template: "{{ is_state('sensor.YOUR_SENSOR_burglar', '8') }}" ``` {% endraw %} diff --git a/source/_docs/z-wave/installation.markdown b/source/_docs/z-wave/installation.markdown index 444634feb8e..833275cdbb7 100644 --- a/source/_docs/z-wave/installation.markdown +++ b/source/_docs/z-wave/installation.markdown @@ -104,7 +104,7 @@ 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 diff --git a/source/_docs/z-wave/services.markdown b/source/_docs/z-wave/services.markdown index 17cc8270ef0..905d85f7fd0 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 a025b721e38..6bc9a5271e5 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,11 +103,11 @@ 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 - description: "Website URL." + description: "Website URL (or internal URL e.g. `/hassio/dashboard` or `/panel_custom_name`)" type: string {% endconfiguration %} diff --git a/source/_lovelace/gauge.markdown b/source/_lovelace/gauge.markdown new file mode 100644 index 00000000000..a9e5d80e0f0 --- /dev/null +++ b/source/_lovelace/gauge.markdown @@ -0,0 +1,99 @@ +--- +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. +

+ +```yaml +- type: gauge + entity: sensor.cpu_usuage +``` + +{% configuration %} +type: + required: true + description: gauge + type: string +entity: + required: true + description: "Entity id to show" + type: string +title: + required: false + description: Title of Gauge Data + type: string +unit_of_measurement: + required: false + description: Unit of Measurement given to data + type: string + default: "Unit Of Measurement given by entity" +min: + required: false + description: Minimum value for graph + type: integer + default: 0 +max: + required: false + description: Maximum value for graph + type: integer + default: 100 +severity: + required: false + description: Allows setting of colors for different numbers + type: map + keys: + green: + required: true + description: Value from which to start green color + type: integer + yellow: + required: true + description: Value from which to start yellow color + type: integer + red: + required: true + description: Value from which to start red color + type: integer +{% endconfiguration %} + +## {% linkable_title Examples %} + +Title and Unit of Measurement Example: + +```yaml +- type: gauge + title: CPU Usuage + unit_of_measurement: '%' + entity: sensor.cpu_usuage +``` + +

+Screenshot of the gauge card with custom title and unit of measurement +Screenshot of the gauge card with custom title and unit of measurement. +

+ +Define the severity map: + +```yaml +- type: gauge + title: With Severity + unit_of_measurement: '%' + entity: sensor.cpu_usuage + severity: + green: 0 + yellow: 45 + red: 85 +``` diff --git a/source/_lovelace/glance.markdown b/source/_lovelace/glance.markdown index 50263b5a2bf..9dda1cd3eac 100644 --- a/source/_lovelace/glance.markdown +++ b/source/_lovelace/glance.markdown @@ -75,7 +75,7 @@ tap_action: default: more-info service: required: false - description: "For `call-service`, e.g. `media_player.media_play_pause`" + description: "For `call-service`, e.g., `media_player.media_play_pause`" type: string service_data: required: false diff --git a/source/_lovelace/picture-elements.markdown b/source/_lovelace/picture-elements.markdown index e9da937b142..8dd83c9c005 100644 --- a/source/_lovelace/picture-elements.markdown +++ b/source/_lovelace/picture-elements.markdown @@ -76,11 +76,11 @@ tap_action: default: more-info navigation_path: required: false - description: Url path to navigate to (e.g. `/lovelace/1`) + description: Url path to navigate to (e.g., `/lovelace/1`) type: string service: required: false - description: "Service to call (e.g. `light.turn_on`)" + description: "Service to call (e.g., `light.turn_on`)" type: string service_data: required: false @@ -119,11 +119,11 @@ tap_action: default: more-info navigation_path: required: false - description: Url path to navigate to (e.g. `/lovelace/1`) + description: Url path to navigate to (e.g., `/lovelace/1`) type: string service: required: false - description: "Service to call (e.g. `light.turn_on`)" + description: "Service to call (e.g., `light.turn_on`)" type: string service_data: required: false @@ -171,7 +171,7 @@ type: type: string icon: required: true - description: Icon to display (e.g. `mdi:home`) + description: Icon to display (e.g., `mdi:home`) type: string title: required: false @@ -188,11 +188,11 @@ tap_action: default: more-info navigation_path: required: false - description: Url path to navigate to (e.g. `/lovelace/1`) + description: Url path to navigate to (e.g., `/lovelace/1`) type: string service: required: false - description: "Service to call (e.g. `light.turn_on`)" + description: "Service to call (e.g., `light.turn_on`)" type: string service_data: required: false @@ -223,11 +223,11 @@ tap_action: default: more-info navigation_path: required: false - description: Url path to navigate to (e.g. `/lovelace/1`) + description: Url path to navigate to (e.g., `/lovelace/1`) type: string service: required: false - description: "Service to call (e.g. `light.turn_on`)" + description: "Service to call (e.g., `light.turn_on`)" type: string service_data: required: false @@ -265,7 +265,7 @@ style: {% configuration %} type: required: true - description: 'Card name with `custom:` prefix (e.g. `custom:my-custom-card`)' + description: 'Card name with `custom:` prefix (e.g., `custom:my-custom-card`)' type: string style: required: true diff --git a/source/_posts/2015-08-31-version-7-revamped-ui-and-improved-distribution.markdown b/source/_posts/2015-08-31-version-7-revamped-ui-and-improved-distribution.markdown index 37178a2d669..131273eb98c 100644 --- a/source/_posts/2015-08-31-version-7-revamped-ui-and-improved-distribution.markdown +++ b/source/_posts/2015-08-31-version-7-revamped-ui-and-improved-distribution.markdown @@ -90,7 +90,7 @@ device_tracker: password: YOUR_ADMIN_PASSWORD ``` -__DHT temperature and humidty sensors__ +__DHT temperature and humidity sensors__ [@MakeMeASandwich](https://github.com/makemeasandwich) has contributed support for DHT temperature and humidity sensors. It allows you to get the current temperature and humidity from a DHT11, DHT22, or AM2302 device. ```yaml diff --git a/source/_posts/2018-10-12-release-80.markdown b/source/_posts/2018-10-12-release-80.markdown new file mode 100644 index 00000000000..36537324d3e --- /dev/null +++ b/source/_posts/2018-10-12-release-80.markdown @@ -0,0 +1,668 @@ +--- +layout: post +title: "0.80: Lovelace updates, webhooks, TRÅDFRI switches" +description: "Hacktoberfest is in full swing and we got a whole boat of new features." +date: 2018-10-12 00:01:00 +date_formatted: "October 12, 2018" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2018-10-release-80/lovelace-glance-sensor.png +--- + +October 12, 2018. 12 days into Hacktoberfest and it's been busier than ever on the repositories. On the main repo, 43 open, 104 closed. How the documentation team is still alive, I don't know: 26 open, 234 closed. If you've opened a contribution that is pending a response, that's probably because we're busy elsewhere or are taking some well deserved rest. + +Alright, new release, we got some cool stuff! Let's start with our [Lovelace UI](/lovelace). We have integrated into Lovelace UI some of the custom cards that our amazing community have built, making them easily accessible to all users. The cards are [Gauge][ll-gauge] and [Sensor][ll-sensor]: + +[ll-gauge]: /lovelace/gauge/ +[ll-sensor]: /lovelace/sensor/ + +Screenshot of new Gauge and Sensor cards + +Next up is a new way to get data into Home Assistant: webhooks. With the introduction of auth and with the introduction of long-lived access tokens, we realized that it's still annoying to have to give full HA access to an app just to get a piece of information in Home Assistant. So with webhooks we can generate unique URLs that are inprobable to guess, and data delivered to the webhook will only go to the designated automation or component. This feature is available for component developers to integrate, or for users via the new automation [webhook trigger](/docs/automation/trigger/#webhook-trigger). + +

+Screenshot of configuring IFTTT +Configuring IFTTT via th integrations panel. +

+ +On the devices side, we got basic support for the new IKEA TRÅDFRI switches, Honeywell evohome controllers (EU-based) and if you want to control your pool, you can now do that with the new AquaLogic integration. + +## {% linkable_title New Platforms %} + +- GitLab-CI sensor integration addition. ([@DanielWinks] - [#16561]) ([sensor.gitlab_ci docs]) (new-platform) +- Add support for Opple light ([@jedmeng] - [#16765]) ([light.opple docs]) (new-platform) +- Add (EU-based) Honeywell evohome CH/DHW controller ([@zxdavb] - [#16427]) ([evohome docs]) ([climate.evohome docs]) ([climate.honeywell docs]) (new-platform) +- Add webhook + IFTTT example ([@balloob] - [#16817]) ([ifttt docs]) ([webhook docs]) (new-platform) +- Add basic support for Tradfri switches ([@ggravlingen] - [#17007]) ([tradfri docs]) ([switch.tradfri docs]) (new-platform) +- Add AquaLogic component ([@swilson] - [#16763]) ([aqualogic docs]) ([sensor.aqualogic docs]) ([switch.aqualogic docs]) (new-platform) +- 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) +- Tibber component and notify ([@Danielhiversen] - [#17062]) ([notify docs]) ([tibber docs]) ([sensor.tibber docs]) (breaking change) (new-platform) +- Add new component fritzbox binary_sensor ([@hthiery] - [#17057]) ([fritzbox docs]) ([binary_sensor.fritzbox docs]) (new-platform) +- Add a webhook automation trigger ([@balloob] - [#17246]) ([automation.webhook docs]) (beta fix) (new-platform) + +## {% linkable_title New Features %} + +- Add faucet, shower, sprinkler, valve to HomeKit ([@cdce8p] - [#17145]) ([homekit docs]) (new-feature) + +## {% linkable_title If you need help... %} + +...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. + +## {% linkable_title Reporting Issues %} + +Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template. + + + +## {% linkable_title Breaking Changes %} + +- Add additional Netatmo public data sensors ([@GP8x] - [#16671]) ([netatmo docs]) ([sensor.netatmo_public docs]) (breaking change) +- Developers only: we have removed all service helpers (like turn_on method in light coponent), as they werent used. ([@cdce8p] - [#16832], [#16879], [#16863], [#16892], [#16920], [#17038], [#17055], [#16917]) +- Google Assistant: configuration has been simplified and relies on HA native OAuth2 flow ([@awarecan] - [#16848]) ([google_assistant docs]) (breaking change) +- Rachio component has been modernized. The Rachio component no longer requires you to specify switch and binary_sensor platforms. These platforms will be initialized automatically by the Rachio component. ([@OverloadUT] - [#16911]) ([rachio docs]) ([binary_sensor.rachio docs]) ([switch.rachio docs]) (breaking change)

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 9850f162ac0..b92842ad5a6 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. -

- 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.

### {% linkable_title Suggested hardware%} @@ -44,13 +44,19 @@ We will need a few things to get started with installing Home Assistant. For bes 1. Insert the SD card into your Raspberry Pi 3. If you are going to use an Ethernet cable, connect that too. 1. Connect your Raspberry Pi to the power supply, so it turns on. 1. The Raspberry Pi will now boot up, connect to the Internet and download the latest version of Home Assistant, which will take about 20 minutes. -1. Home Assistant will be available at [http://hassio.local:8123][local]. Shortly after the download has started, a simple preparation status page will be available at this URL. Point your browser there. The page refreshes automatically, and Home Assistant will be shown when the download is complete. +1. Home Assistant will be available at [http://hassio.local:8123][local]. Shortly after the download has started, a simple preparation status page will be available at this URL. Point your browser there. The page refreshes automatically, and Home Assistant will be shown when the download is complete (this typically takes around 20 minutes). +1. Please remember to [secure your installation][secure] once you've finished with the installation process. [local]: http://hassio.local:8123 [the examples]: https://github.com/home-assistant/hassos/blob/dev/Documentation/network.md +[secure]: /docs/configuration/securing/

-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. +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 (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.

### [Next step: Configuring Home Assistant »](/getting-started/configuration/) diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown index a337fc900f3..c06fac4ef3d 100644 --- a/source/hassio/installation.markdown +++ b/source/hassio/installation.markdown @@ -9,38 +9,53 @@ sharing: true footer: true --- -Hass.io images are available for: +The following will take you through the steps required to install Hass.io. -- Download the appropriate image for your device: - - [Raspberry Pi Zero][pi1] - - [Raspberry Pi Zero W][pi0-w] - - [Raspberry Pi 1 Model B][pi1] - - [Raspberry Pi 2 Model B][pi2] - - [Raspberry Pi 3 Model B and B+ 32bit][pi3-32] (recommended) - - [Raspberry Pi 3 Model B and B+ 64bit][pi3-64] - - [Tinkerboard (Beta)][tinker] - - [Odroid-C2 (Beta)][odroid-c2] -- As [Virtual Appliance]: - - [VMDK][vmdk] +1. Download the appropriate install option: -

-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. -

+ - As an image for your device: + + - [Raspberry Pi Zero][pi1] + - [Raspberry Pi Zero W][pi0-w] + - [Raspberry Pi 1 Model B][pi1] + - [Raspberry Pi 2 Model B][pi2] + - [Raspberry Pi 3 Model B and B+ 32bit][pi3-32] + - [Raspberry Pi 3 Model B and B+ 64bit][pi3-64] (beta) + - [Tinkerboard (Beta)][tinker] + - [Odroid-C2 (Beta)][odroid-c2] + + - As a virtual appliance: + + - [OVA][Virtual Appliance] + - [VMDK][vmdk] + +2. Install Hass.io: -- Flash the downloaded image to an SD card using [Etcher][etcher]. We recommend at least a 32 GB SD card to avoid running out of space. + - Flash the downloaded image to an SD card using [Etcher][etcher]. We recommend at least a 32 GB SD card to avoid running out of space. + - Load the appliance image into your virtual machine software. -- Optional - Setup the WiFi or static IP: On a USB stick, create the `network/my-network` file and follow the [HassOS howto][hassos-network]. -- Insert the SD card (and optional USB stick) into the Raspberry Pi and turn it on. On first boot, it downloads the latest version of Home Assistant which takes ~20 minutes (slower/faster depending on the platform). +3. Optional - set up the WiFi or static IP: On a USB stick, create the `network/my-network` file and follow the [HassOS howto][hassos-network]. - +4. For image based installs insert the SD card (and optional USB stick) into the device. -- You will be able to reach your installation at [http://hassio.local:8123][local]. -- Enable either the [Samba add-on][samba] or the [SSH add-on][ssh] to manage your configuration in `/config/` (From the UI choose **Hass.io** which is located in the sidebar). +5. Turn on your device or virtual appliance. On first boot, it downloads the latest version of Home Assistant which takes around 20 minutes (slower/faster depending on the platform and your Internet connection). + + + +6. You will be able to reach your installation at [http://hassio.local:8123][local] (if your router supports mDNS, otherwise see below). + +7. Enable either the [Samba add-on][samba] or the [SSH add-on][ssh] to manage your configuration in `/config/` (From the UI choose **Hass.io** which is located in the sidebar).

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. +

+ +Now you can [configure][configure] your install. + ### {% linkable_title Migrating from a non-Hass.io install %} If you copy over your existing Home Assistant configuration, make sure to enable the Hass.io panel by adding either `discovery:` or `hassio:` to your configuration. @@ -72,7 +87,7 @@ $ curl -sL https://raw.githubusercontent.com/home-assistant/hassio-build/master/ When you use this installation method, the core SSH add-on may not function correctly. If that happens, use the community SSH add-on. Some of the documentation might not work for your installation either.

-A detailed guide about running Hass.io as a virtual machine is available in the [blog](/blog/2017/11/29/hassio-virtual-machine/). +A detailed guide about running Hass.io as a virtual machine is available in the [blog][hassio-vm]. [etcher]: https://etcher.io/ [Virtual Appliance]: https://github.com/home-assistant/hassos/blob/dev/Documentation/boards/ova.md @@ -89,3 +104,6 @@ A detailed guide about running Hass.io as a virtual machine is available in the [local]: http://hassio.local:8123 [samba]: /addons/samba/ [ssh]: /addons/ssh/ +[pi-power]: https://www.raspberrypi.org/help/faqs/#powerReqs +[hassio-vm]: /blog/2017/11/29/hassio-virtual-machine/ +[configure]: /getting-started/configuration/ diff --git a/source/help/reporting_issues.markdown b/source/help/reporting_issues.markdown index d2290788c55..2bc89b048ca 100644 --- a/source/help/reporting_issues.markdown +++ b/source/help/reporting_issues.markdown @@ -31,7 +31,7 @@ If possible, provide the latest release of which you know that the component or ### {% linkable_title Operating environment (Hass.io/Docker/Windows/etc.) %} -There are many different ways to run Home Assistant. In this section please mention which you are using, e.g. manual installation, [Hass.io](/hassio/), Hasbian or as container (Docker). It can help if you mention which operating system you are using because not all are supported on the same level. +There are many different ways to run Home Assistant. In this section please mention which you are using, e.g., manual installation, [Hass.io](/hassio/), Hasbian or as container (Docker). It can help if you mention which operating system you are using because not all are supported on the same level. ### {% linkable_title Component/platform %} diff --git a/source/images/blog/2018-10-release-80/config-ifttt.png b/source/images/blog/2018-10-release-80/config-ifttt.png new file mode 100644 index 00000000000..198091207f8 Binary files /dev/null and b/source/images/blog/2018-10-release-80/config-ifttt.png differ diff --git a/source/images/blog/2018-10-release-80/lovelace-glance-sensor.png b/source/images/blog/2018-10-release-80/lovelace-glance-sensor.png new file mode 100644 index 00000000000..c172071b5b4 Binary files /dev/null and b/source/images/blog/2018-10-release-80/lovelace-glance-sensor.png differ diff --git a/source/images/screenshots/nsw-rural-fire-service-feed-entities.png b/source/images/screenshots/nsw-rural-fire-service-feed-entities.png new file mode 100644 index 00000000000..463f5e5922f Binary files /dev/null and b/source/images/screenshots/nsw-rural-fire-service-feed-entities.png differ diff --git a/source/images/screenshots/nsw-rural-fire-service-feed-map.png b/source/images/screenshots/nsw-rural-fire-service-feed-map.png new file mode 100644 index 00000000000..0b72035c5c4 Binary files /dev/null and b/source/images/screenshots/nsw-rural-fire-service-feed-map.png differ diff --git a/source/images/supported_brands/mill.png b/source/images/supported_brands/mill.png new file mode 100644 index 00000000000..7b8187af5ac Binary files /dev/null and b/source/images/supported_brands/mill.png differ diff --git a/source/images/supported_brands/nsw-rural-fire-service.png b/source/images/supported_brands/nsw-rural-fire-service.png new file mode 100644 index 00000000000..7192774bb7c Binary files /dev/null and b/source/images/supported_brands/nsw-rural-fire-service.png differ diff --git a/source/images/supported_brands/route53.png b/source/images/supported_brands/route53.png new file mode 100644 index 00000000000..07f3e8018db Binary files /dev/null and b/source/images/supported_brands/route53.png differ diff --git a/source/images/supported_brands/transport_nsw.png b/source/images/supported_brands/transport_nsw.png new file mode 100644 index 00000000000..186ea62def0 Binary files /dev/null and b/source/images/supported_brands/transport_nsw.png differ diff --git a/source/ios/beta.markdown b/source/ios/beta.markdown index da0a5e1f3d7..100994d7f51 100644 --- a/source/ios/beta.markdown +++ b/source/ios/beta.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Join Home Assistant iOS beta" -description: "Invititation to join the Home Assistant iOS beta." +description: "Invitation to join the Home Assistant iOS beta." release_date: 2016-10-24 15:00:00 -0700 sidebar: true comments: false diff --git a/source/javascripts/libs/swfobject-dynamic.js b/source/javascripts/libs/swfobject-dynamic.js index b021614524f..a9442349422 100644 --- a/source/javascripts/libs/swfobject-dynamic.js +++ b/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/source/lovelace/changelog.markdown b/source/lovelace/changelog.markdown index 39bc13598b8..f1ecc65e22d 100644 --- a/source/lovelace/changelog.markdown +++ b/source/lovelace/changelog.markdown @@ -8,6 +8,10 @@ comments: false sharing: true footer: true --- +## {% linkable_title Changes in 0.80.0 %} +- 📣 New card type: `sensor` ❤️ +- 📣 New card type: `gauge` ❤️ + ## {% linkable_title Changes in 0.77.0 %} - 📣 New notification drawer ❤️ diff --git a/source/lovelace/index.markdown b/source/lovelace/index.markdown index 848cfeef188..5bb15411593 100644 --- a/source/lovelace/index.markdown +++ b/source/lovelace/index.markdown @@ -7,6 +7,7 @@ sidebar: true comments: false sharing: true footer: true +redirect_from: /components/lovelace/ ---

@@ -116,7 +117,7 @@ views: Now restart Home Assistant, navigate to `/lovelace`. When you make changes to `ui-lovelace.yaml`, you don't have to restart Home Assistant or refresh the page. Just hit the refresh button at the top of the UI. ## {% linkable_title Setting Lovelace as the Default UI %} -Once you are ready to start using Lovelace UI as your main user interface, click on info, the "i" icon under 'Developer Tools" in the Home Assistant side-bar. Next, locate >>Set Lovelace as default page on this device<< under the Home Assistant version information and click it. +Once you are ready to start using Lovelace UI as your main user interface, click on info, the "i" icon under 'Developer Tools" in the Home Assistant side-bar. Next, locate >>Set Lovelace as default page on this device<< under the Home Assistant version information and click it. Note that this is a per-device setting and will need to be changed on each device you access the UI from. @@ -136,7 +137,7 @@ This is probably because your version of Firefox doesn't have custom components ### {% linkable_title Custom cards don't load on my iOS device? %} -Home Assistant comes with two versions of the frontend. A compatability mode for older devices and a modern mode. The custom cards need to target one mode and usually choose the modern mode. Before Home Assistant 0.76, we had an issue in the automation and script editor that prevented modern iOS and Mac devices running Safari from using the modern mode. +Home Assistant comes with two versions of the frontend. A compatibility mode for older devices and a modern mode. The custom cards need to target one mode and usually choose the modern mode. Before Home Assistant 0.76, we had an issue in the automation and script editor that prevented modern iOS and Mac devices running Safari from using the modern mode. If you can, resolve this issue by upgrading to Home Assistant 0.76 or later. If you are on an older version and don't mind that the automation and script editor don't work on iOS devices, you can force the new version via the configuration: diff --git a/source/lovelace/views.markdown b/source/lovelace/views.markdown index e25c77b39a4..725f43894f1 100644 --- a/source/lovelace/views.markdown +++ b/source/lovelace/views.markdown @@ -82,7 +82,7 @@ Picture card config: ## {% linkable_title Icons %} -If you define an icon the title will be used as a tooltip. +If you define an icon the title will be used as a tool-tip. ### {% linkable_title Example %}