diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 9938ea6ddb2..1b5db6f56d7 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -6,6 +6,6 @@ ## Checklist: - [ ] Branch: `next` is for changes and new documentation that will go public with the next [home-assistant](https://github.com/home-assistant/home-assistant) release. Fixes, changes and adjustments for the current release should be created against `current`. -- [ ] The documentation follow the [standards][standards]. +- [ ] The documentation follows the [standards][standards]. -[standards]: https://home-assistant.io/developers/documentation/standards/ +[standards]: https://developers.home-assistant.io/docs/documentation_standards.html diff --git a/README.markdown b/README.markdown index d3a630cb1ea..728fc3c4a93 100644 --- a/README.markdown +++ b/README.markdown @@ -1,6 +1,6 @@ [![Discord](https://img.shields.io/discord/330944238910963714.svg)](https://discord.gg/CxqDrfU) [![Travis branch](https://img.shields.io/travis/home-assistant/home-assistant.github.io/next.svg)](https://travis-ci.org/home-assistant/home-assistant.github.io) -[![Krihelimeter](http://www.krihelinator.xyz/badge/home-assistant/home-assistant.github.io)](http://www.krihelinator.xyz) +[![Krihelimeter](https://img.shields.io/badge/Krihelimeter-unknown-brightgreen.svg)](http://www.krihelinator.xyz) [![License: CC BY-NC-SA 4.0](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/) # Home Assistant website @@ -9,7 +9,7 @@ This is the source for the [Home-Assistant.io website](https://home-assistant.io ## Setup -Setting up to contribute to documentation and the process for submitting pull requests is [explained here](https://home-assistant.io/developers/documentation/). +Setting up to contribute to documentation and the process for submitting pull requests is explained in the [developer documentation](https://developers.home-assistant.io/docs/documentation_index.html). ## Site preview diff --git a/_config.yml b/_config.yml index 7896bba2547..ca5fd6f7ee1 100644 --- a/_config.yml +++ b/_config.yml @@ -141,17 +141,20 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 80 -current_patch_version: 0 -date_released: 2018-10-12 +current_minor_version: 81 +current_patch_version: 1 +date_released: 2018-10-28 # 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: "#" +patch_version_notes: "#release-0811---october-28" # Minor release (Example #release-0431---april-25): # Date we moved to Discourse for comments # disqus_end_date: 2018-01-26 0:00:00 # Disqus is adding gross ads, move all comments to discourse. disqus_end_date: 2010-01-26 0:00:00 + +# Support .well-known directory +include: [".well-known"] diff --git a/source/.well-known/apple-app-site-association b/source/.well-known/apple-app-site-association new file mode 100644 index 00000000000..6355e8876f0 --- /dev/null +++ b/source/.well-known/apple-app-site-association @@ -0,0 +1,13 @@ +{ + "applinks": { + "apps": [], + "details": [ + { + "appID": "UTQFCBPQRF.io.robbie.HomeAssistant", + "paths": [ + "/ios/*" + ] + } + ] + } +} diff --git a/source/_addons/configurator.markdown b/source/_addons/configurator.markdown index b5956384ba9..0b0dae29d00 100644 --- a/source/_addons/configurator.markdown +++ b/source/_addons/configurator.markdown @@ -57,27 +57,77 @@ Screenshot of the HASS Configurator. ], "dirsfirst": false, "enforce_basepath": false, - "notify_service": "persistent_notification.create", - "ignore_ssl": false + "notify_service": "persistent_notification.create" } ``` -- **username** (*Required*): Set a username to access your configuration is protected. -- **password** (*Required*): Set a password for access. -- **ssl** (*Required*): Enable or Disable SSL/TLS for the editor. -- **certfile** (*Required*): Set the path the your SSL certificate if the ssl-option is set to `true`. -- **keyfile** (*Required*): Set the path the your SSL private key if the ssl-option is set to `true`. -- **allowed_networks** (*Required*): Limit access to the configurator by adding allowed IP addresses/networks to the list. -- **banned_ips** (*Required*): List of statically banned IP addresses. -- **banlimit** (*Required*): Ban access from IPs after `banlimit` failed login attempts. The default value `0` disables this feature. Restart the add-on to clear the list of banned IP addresses. -- **ignore_pattern** (*Required*): Files and folders to ignore in the UI. -- **dirsfirst** (*Required*): List directories before files in the file browser. -- **enforce_basepath** (*Required*): If set to `true`, access is limited to files within the `/config` directory. -- **notify_service** (*Required*): Specify a custom notify-service to be used to push notifications. -- **ignore_ssl** (*Required*): Ignore SSL errors when accessing the Home Assistant API. -- **sesame** (*Optional*): Secret token to dynamically allow access from the IP the request originates from. Open your bookmark https://hassio.yourdomain.com:8123/somesecretnobodycanguess while `allowed_networks` is set to `[]` and your IP will get whitelisted. You can use the _Network status_ menu to revoke IP addresses for which access has been granted. Regular authentication is still required. -- **sesame_totp_secret** (*Optional*): Like the `sesame` option, but instead as Base32 encoded secret string must be provided. This string then can be added to a TOTP App like Google Authenticator. This way you get a 6-digit `sesame` that changes every 30 seconds. -- **loglevel** (*Optional*): You can change the logging level from the default value `info` if you want to. Valid values are: `debug`, `info`, `warning`, `error`, `critical`. +{% configuration %} +username: + description: Set a username so that access your configuration is protected. + required: true + type: string +password: + description: Set a password for access. + required: true + type: string +ssl: + description: Enable or Disable SSL/TLS for the editor. + required: true + type: boolean + default: false +certfile: + description: Set the path the your SSL certificate if the ssl-option is set to `true`. + required: true + type: string +keyfile: + description: Set the path the your SSL private key if the ssl-option is set to `true`. + required: true + type: string +allowed_networks: + description: Limit access to the configurator by adding allowed IP addresses/networks to the list. + required: true + type: string +banned_ips: + description: List of statically banned IP addresses. + required: true + type: string +banlimit: + description: Ban access from IPs after `banlimit` failed login attempts, setting the value to 0 disables this feature. Restart the add-on to clear the list of banned IP addresses. + required: true + type: integer + default: 0 +ignore_pattern: + description: Regex of files and folders to ignore in the UI. + required: true + type: string +dirsfirst: + description: List directories before files in the file browser. + required: true + type: boolean + default: false +enforce_basepath: + description: If set to `true`, access is limited to files within the `/config` directory. + required: true + type: boolean + default: false +notify_service: + description: Specify a custom notify-service to be used to push notifications. + required: true + type: string +loglevel: + description: The log level the configurator should run with. Valid values are `debug`, `info`, `warning`, `error`, `critical`. + required: false + type: string + default: info +sesame: + description: Secret token to dynamically allow access from the IP the request originates from. Open your bookmark https://hassio.yourdomain.com:8123/somesecretnobodycanguess while `allowed_networks` is set to `[]` and your IP will get whitelisted. You can use the Network status menu to revoke IP addresses for which access has been granted. Regular authentication is still required. + required: false + type: string +sesame_totp_secret: + description: Like the `sesame` option, but instead as Base32 encoded secret string must be provided. This string then can be added to a TOTP App like Google Authenticator. This way you get a 6-digit `sesame` that changes every 30 seconds. + required: false + type: string +{% endconfiguration %}

Be careful when setting up port forwarding to the configurator while embedding into Home Assistant. If you don't restrict access by requiring authentication and/or blocking based on client IP addresses, your configuration will be exposed to the internet! diff --git a/source/_addons/nginx_proxy.markdown b/source/_addons/nginx_proxy.markdown index 2b43ab72740..3e2a546cb14 100644 --- a/source/_addons/nginx_proxy.markdown +++ b/source/_addons/nginx_proxy.markdown @@ -27,13 +27,29 @@ In the `http` section of the `configuration.yaml` file remove `ssl_certificate` } ``` -Configuration variables: - -- **domain** (*Required*): Domain they will proxy run with it. -- **certfile** (*Required*): Certificate file to use in the /ssl dir. -- **keyfile** (*Required*): Private key file to use in the /ssl dir. -- **hsts** (*Optional*): Value for the [`Strict-Transport-Security`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security) HTTP header to send. If empty or `null`, the header is not sent. -- **customize** (*Optional*): If true, additional NGINX configuration files for the default server and additional servers are read from files in the /share dir specified by the `default` and `servers` variables. +{% configuration %} +domain: + description: The Domain to use for the proxy. + required: true + type: string +certfile: + description: The certificate file to use in the `/ssl` directory. + required: true + type: string +keyfile: + description: Private key file to use in the `/ssl` directory. + required: true + type: string +hsts: + description: Value for the [`Strict-Transport-Security`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security) HTTP header to send. If empty or `null`, the header is not sent. + required: false + type: string +customize: + description: If true, additional NGINX configuration files for the default server and additional servers are read from files in the `/share` directory specified by the `default` and `servers` variables. + required: false + type: boolean + default: false +{% endconfiguration %}

It is possible to deactivate port 80 if you need this for things like `emulate_hue`. Remove the host port from Network option of this add-on. diff --git a/source/_components/ads.markdown b/source/_components/ads.markdown index 74e9a4d7215..a7a3c41057c 100644 --- a/source/_components/ads.markdown +++ b/source/_components/ads.markdown @@ -15,6 +15,8 @@ ha_iot_class: "Local Push" The ADS (automation device specification) describes a device-independent and fieldbus independent interface for communication between [Beckhoff](https://www.beckhoff.com/) automation devices running [TwinCAT](http://www.beckhoff.hu/english.asp?twincat/default.htm) and other devices implementing this interface. +## {% linkable_title Configuration %} + To enable ADS, add the following lines to your `configuration.yaml` file: ```yaml @@ -25,18 +27,18 @@ ads: ``` {% configuration %} - device: - required: true - description: The AMS NetId that identifies the device. - type: string - port: - required: true - description: The port that runs the AMS server on the device, typically this would be 801 or 851. - type: integer - ip_address: - required: false - description: The IP address of the ADS device, if not set the first 4 bytes of the device id will be used. - type: string +device: + description: The AMS NetId that identifies the device. + required: true + type: string +port: + description: The port that runs the AMS server on the device, typically this would be 801 or 851. + required: true + type: integer +ip_address: + description: The IP address of the ADS device, if not set the first 4 bytes of the device id will be used. + required: false + type: string {% endconfiguration %} ## {% linkable_title Service %} diff --git a/source/_components/alarm_control_panel.alarmdotcom.markdown b/source/_components/alarm_control_panel.alarmdotcom.markdown index 8509f1bb41d..c403a727dd8 100644 --- a/source/_components/alarm_control_panel.alarmdotcom.markdown +++ b/source/_components/alarm_control_panel.alarmdotcom.markdown @@ -14,6 +14,8 @@ ha_release: 0.11 The `alarmdotcom` platform is consuming the information provided by [Alarm.com](https://www.alarm.com/). +## {% linkable_title Configuration %} + To enable this, add the following lines to your `configuration.yaml`: ```yaml @@ -41,5 +43,5 @@ name: code: description: Specifies a code to enable or disable the alarm in the frontend. required: false - type: int + type: integer {% endconfiguration %} diff --git a/source/_components/alarm_control_panel.arlo.markdown b/source/_components/alarm_control_panel.arlo.markdown index e47a6322d62..ddc28e0fdb6 100644 --- a/source/_components/alarm_control_panel.arlo.markdown +++ b/source/_components/alarm_control_panel.arlo.markdown @@ -15,6 +15,8 @@ ha_iot_class: "Cloud Polling" The `arlo` alarm control panel allows you to control your [Arlo](https://arlo.netgear.com/) base stations. You can use it to switch modes and trigger alarms from Home Assistant. +## {% linkable_title Configuration %} + To get your [Arlo](https://arlo.netgear.com/) base stations working within Home Assistant, please follow the instructions for the general [Arlo component](/components/arlo). Once you have enabled the [Arlo component](/components/arlo), add the following to your `configuration.yaml` file: diff --git a/source/_components/alarm_control_panel.blink.markdown b/source/_components/alarm_control_panel.blink.markdown index 2d987ca80bc..c0ca3b0d555 100644 --- a/source/_components/alarm_control_panel.blink.markdown +++ b/source/_components/alarm_control_panel.blink.markdown @@ -8,7 +8,7 @@ comments: false sharing: true footer: true logo: blink.png -ha_category: Alarm Control Panel +ha_category: Alarm ha_release: "0.80" --- diff --git a/source/_components/alarm_control_panel.concord232.markdown b/source/_components/alarm_control_panel.concord232.markdown index d2ce3afca7c..ae4cdd832cc 100644 --- a/source/_components/alarm_control_panel.concord232.markdown +++ b/source/_components/alarm_control_panel.concord232.markdown @@ -14,7 +14,12 @@ ha_release: 0.31 The `concord232` platform provides integration with GE, Interlogix (and other brands) alarm panels that support the RS-232 Automation Control Panel interface module (or have it built in). Supported panels include Concord 4. -To use this platform, you will need to have the external concord232 client and server installed. The server must be running on the device which is connected to the automation module's serial port. The client must be installed on the machine running Home Assistant. These may often be the same machine, but do not have to be. For additional details in setting up and testing the client and server, see +To use this platform, you will need to have the external concord232 client and server installed. +The server must be running on the device which is connected to the automation module's serial port. +The client must be installed on the machine running Home Assistant. These may often be the same machine, but do not have to be. +For additional details in setting up and testing the client and server, see . + +## {% linkable_title Configuration %} To enable this platform in Home Assistant, add the following lines to your `configuration.yaml`: @@ -28,11 +33,11 @@ alarm_control_panel: host: description: The host where the concord232 server process is running. required: false - default: localhost type: string + default: localhost port: description: The port where the Alarm panel is listening. required: false - default: 5007 type: integer + default: 5007 {% endconfiguration %} diff --git a/source/_components/alarm_control_panel.envisalink.markdown b/source/_components/alarm_control_panel.envisalink.markdown index fe58c6fb4d7..e06e56057cb 100644 --- a/source/_components/alarm_control_panel.envisalink.markdown +++ b/source/_components/alarm_control_panel.envisalink.markdown @@ -13,8 +13,6 @@ ha_release: 0.23 ha_iot_class: "Local Push" --- - The `envisalink` alarm control panel platform allows you to control your [Envisalink](http://www.eyezon.com) alarms. The requirement is that you have setup your [Envisalink hub](/components/envisalink/). - diff --git a/source/_components/alarm_control_panel.ialarm.markdown b/source/_components/alarm_control_panel.ialarm.markdown index 44895675cf4..9f4442ab3cb 100644 --- a/source/_components/alarm_control_panel.ialarm.markdown +++ b/source/_components/alarm_control_panel.ialarm.markdown @@ -16,6 +16,8 @@ The `ialarm` platform provides connectivity with the [Antifurto365](https://www. This platform supports the following services: `alarm_arm_away`, `alarm_arm_home` and `alarm_disarm`. +## {% linkable_title Configuration %} + To enable this, add the following lines to your `configuration.yaml` file: ```yaml @@ -28,22 +30,22 @@ alarm_control_panel: ``` {% configuration %} - host: - description: The IP address of the iAlarm device on your home network. - required: true - type: string - username: - description: Username used to sign into the iAlarm web client (should be admin by default). - required: true - type: string - password: - description: Password used to sign into the iAlarm web client. If it has a leading zero you need to put the password within quotes. - required: true - type: string - name: - description: Name of device in Home Assistant. - required: false - type: string +host: + description: The IP address of the iAlarm device on your home network. + required: true + type: string +username: + description: Username used to sign into the iAlarm web client (should be admin by default). + required: true + type: string +password: + description: Password used to sign into the iAlarm web client. If it has a leading zero you need to put the password within quotes. + required: true + type: string +name: + description: Name of device in Home Assistant. + required: false + type: string {% endconfiguration %} This platform has also been confirmed to work with the alarm system brands Meian and Emooluxr. diff --git a/source/_components/alarm_control_panel.ifttt.markdown b/source/_components/alarm_control_panel.ifttt.markdown index e2f1a13955a..60628d14878 100644 --- a/source/_components/alarm_control_panel.ifttt.markdown +++ b/source/_components/alarm_control_panel.ifttt.markdown @@ -20,13 +20,15 @@ This platform depends on the [IFTTT](/components/ifttt/) Home Assistant componen It is important to note that this platform fully relies on IFTTT to receive updates when the security system's state changes. Therefore, this platform shows an assumed state.

-To enable this, setup the required IFTTT applets as listed below and add the following lines to your `configuration.yaml` file: +## {% linkable_title Configuration %} + +To enable this, add the following lines to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry ifttt: key: YOUR_WEBHOOK_KEY - + alarm_control_panel: - platform: ifttt name: YOUR_ALARM_NAME @@ -37,13 +39,51 @@ alarm_control_panel: event_disarm: YOUR_DISARM_EVENT ``` +{% configuration %} +name: + description: The name of your Home Assistant alarm control panel. + required: false + type: string +code: + description: The code for the alarm control panel. + required: false + type: string +event_arm_away: + description: IFTTT webhook event to call when the state is set to armed away. + required: false + type: string + default: alarm_arm_away +event_arm_home: + description: IFTTT webhook event to call when the state is set to armed home. + required: false + type: string + default: alarm_arm_home +event_arm_night: + description: IFTTT webhook event to call when the state is set to armed night. + required: false + type: string + default: alarm_arm_night +event_disarm: + description: IFTTT webhook event to call when the state is set to disarmed. + required: false + type: string + default: alarm_disarm +optimistic: + description: Specify if the state will be updated by an ifttt_push_alarm_state call (false) or can be set immediately (true). + required: false + type: boolean + default: false +{% endconfiguration %} +

It is strongly discouraged to use this platform when you don't use encryption; otherwise, your API password will be send unprotected through the IFTTT Webhooks. It is advised to [setup encryption using Let's Encrypt](https://home-assistant.io/blog/2017/09/27/effortless-encryption-with-lets-encrypt-and-duckdns/).

-{% linkable_title Required IFTTT applets %} +### {% linkable_title Required IFTTT applets %} -This platform supports the services `alarm_disarm`, `alarm_arm_away`, `alarm_arm_home` and `alarm_arm_night`. For each of these services, an IFTTT webhook will be triggered. +Next, you will need to set up the required IFTTT applets as listed below. + +This platform supports the services `alarm_disarm`, `alarm_arm_away`, `alarm_arm_home` and `alarm_arm_night`. For each of these services, an IFTTT webhook will be triggered. For this system to operate correctly, the following IFTTT applets have to be setup. Obviously, if your alarm device does not support some states, no applets have to be provided for those. * **IF** Webhook event `YOUR_DISARM_EVENT` is called, **THEN** disarm the alarm system. @@ -54,40 +94,3 @@ For this system to operate correctly, the following IFTTT applets have to be set * **IF** the alarm system state changed to armed home, **THEN** perform a Webhook `POST` web request to url `https://HASS_URL/api/services/alarm_control_panel/ifttt_push_alarm_state?api_password=API_PASSWORD` with content type `application/json` and body `{"entity_id": "alarm_control_panel.DEVICE_NAME", "state": "armed_home"}`. * **IF** the alarm system state changed to armed away, **THEN** perform a Webhook `POST` web request to url `https://HASS_URL/api/services/alarm_control_panel/ifttt_push_alarm_state?api_password=API_PASSWORD` with content type `application/json` and body `{"entity_id": "alarm_control_panel.DEVICE_NAME", "state": "armed_away"}`. * **IF** the alarm system state changed to armed night, **THEN** perform a Webhook `POST` web request to url `https://HASS_URL/api/services/alarm_control_panel/ifttt_push_alarm_state?api_password=API_PASSWORD` with content type `application/json` and body `{"entity_id": "alarm_control_panel.DEVICE_NAME", "state": "armed_night"}`. - - -{% configuration %} - name: - description: The name of your Home Assistant alarm control panel. - required: false - type: string - code: - description: The code for the alarm control panel. - required: false - type: string - event_arm_away: - description: IFTTT webhook event to call when the state is set to armed away. - required: false - type: string - default: alarm_arm_away - event_arm_home: - description: IFTTT webhook event to call when the state is set to armed home. - required: false - type: string - default: alarm_arm_home - event_arm_night: - description: IFTTT webhook event to call when the state is set to armed night. - required: false - type: string - default: alarm_arm_night - event_disarm: - description: IFTTT webhook event to call when the state is set to disarmed. - required: false - type: string - default: alarm_disarm - optimistic: - description: Specify if the state will be updated by an ifttt_push_alarm_state call (false) or can be set immediately (true). - required: false - type: boolean - default: false -{% endconfiguration %} diff --git a/source/_components/alarm_control_panel.manual.markdown b/source/_components/alarm_control_panel.manual.markdown index 2db745df1f0..2f3c49b2cbc 100644 --- a/source/_components/alarm_control_panel.manual.markdown +++ b/source/_components/alarm_control_panel.manual.markdown @@ -13,28 +13,74 @@ ha_release: 0.7.6 ha_qa_scale: internal --- - The `manual` alarm control panel platform enables you to set manual alarms in Home Assistant. +## {% linkable_title Configuration %} + +To enable this, add the following lines to your `configuration.yaml` file: + ```yaml # Example configuration.yaml entry alarm_control_panel: - platform: manual ``` -Configuration variables: - -- **name** (*Optional*): The name of the alarm. Default is "HA Alarm". -- **code** (*Optional*): If defined, specifies a code to enable or disable the alarm in the frontend. -- **code_template** (*Optional*): If defined, returns a code to enable or disable the alarm in the frontend; an empty string disables checking the code. Inside the template, the variables **from_state** and **to_state** identify the current and desired state. Only one of **code** and **code_template** can be specified. -- **delay_time** (*Optional*): The time in seconds of the pending time before triggering the alarm. Default is 0 seconds. -- **pending_time** (*Optional*): The time in seconds of the pending time before effecting a state change. Default is 60 seconds. -- **trigger_time** (*Optional*): The time in seconds of the trigger time in which the alarm is firing. Default is 120 seconds. -- **disarm_after_trigger** (*Optional*): If true, the alarm will automatically disarm after it has been triggered instead of returning to the previous state. -- **armed_custom_bypass/armed_home/armed_away/armed_night/disarmed/triggered** (*Optional*): State specific settings - - **delay_time** (*Optional*): State specific setting for **delay_time** (all states except **triggered**) - - **pending_time** (*Optional*): State specific setting for **pending_time** (all states except **disarmed**) - - **trigger_time** (*Optional*): State specific setting for **trigger_time** (all states except **triggered**) +{% configuration %} +name: + description: The name of the alarm. + required: false + type: string + default: HA Alarm +code: + description: > + If defined, specifies a code to enable or disable the alarm in the frontend. + Only one of **code** and **code_template** can be specified. + required: exclusive + type: string +code_template: + description: > + If defined, returns a code to enable or disable the alarm in the frontend; an empty string disables checking the code. + Inside the template, the variables **from_state** and **to_state** identify the current and desired state. + Only one of **code** and **code_template** can be specified. + required: exclusive + type: string +delay_time: + description: The time in seconds of the pending time before triggering the alarm. + required: false + type: integer + default: 0 +pending_time: + description: The time in seconds of the pending time before effecting a state change. + required: false + type: integer + default: 60 +trigger_time: + description: The time in seconds of the trigger time in which the alarm is firing. + required: false + type: integer + default: 120 +disarm_after_trigger: + description: If true, the alarm will automatically disarm after it has been triggered instead of returning to the previous state. + required: false + type: boolean +armed_custom_bypass/armed_home/armed_away/armed_night/disarmed/triggered: + description: State specific settings + required: false + type: list + keys: + delay_time: + description: State specific setting for **delay_time** (all states except **triggered**) + required: false + type: integer + pending_time: + description: State specific setting for **pending_time** (all states except **disarmed**) + required: false + type: integer + trigger_time: + description: State specific setting for **trigger_time** (all states except **triggered**) + required: false + type: integer +{% endconfiguration %} ## {% linkable_title State machine %} @@ -75,12 +121,12 @@ garage door opens, but not for the "armed home" state. **trigger_time** is useful to disable the alarm when disarmed, but it can also be used for example to sound the siren for a shorter time during the night. +## {% linkable_title Examples %} + In the config example below: - the disarmed state never triggers the alarm; - - the armed_home state will leave no time to leave the building or disarm the alarm; - - while other states state will give 30 seconds to leave the building before triggering the alarm, and 20 seconds to disarm the alarm when coming back. ```yaml @@ -99,9 +145,7 @@ alarm_control_panel: delay_time: 0 ``` -## {% linkable_title Examples %} - -In this section, you find some real-life examples of how to use this panel. +In the rest of this section, you find some real-life examples on how to use this panel. ### {% linkable_title Sensors %} diff --git a/source/_components/alarm_control_panel.manual_mqtt.markdown b/source/_components/alarm_control_panel.manual_mqtt.markdown index 2e25b97ace3..751a5e77c59 100644 --- a/source/_components/alarm_control_panel.manual_mqtt.markdown +++ b/source/_components/alarm_control_panel.manual_mqtt.markdown @@ -32,6 +32,8 @@ When the state of the manual alarm changes, Home Assistant will publish one of t - 'pending' - 'triggered' +## {% linkable_title Configuration %} + To use your panel in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -42,39 +44,114 @@ alarm_control_panel: command_topic: home/alarm/set ``` -Configuration variables: - The following configuration variables from the base manual alarm platform are available: -- **name** (*Optional*): The name of the alarm. Default is "HA Alarm". -- **code** (*Optional*): If defined, specifies a code to enable or disable the alarm in the frontend. This code is not required for MQTT interactions. -- **code_template** (*Optional*): If defined, returns a code to enable or disable the alarm in the frontend; an empty string disables checking the code. Inside the template, the variables **from_state** and **to_state** identify the current and desired state. Only one of **code** and **code_template** can be specified. -- **delay_time** (*Optional*): The time in seconds of the pending time before triggering the alarm. Default is 0 seconds. -- **pending_time** (*Optional*): The time in seconds of the pending time before effecting a state change. Default is 60 seconds. -- **trigger_time** (*Optional*): The time in seconds of the trigger time in which the alarm is firing. Default is 120 seconds. -- **disarm_after_trigger** (*Optional*): If true, the alarm will automatically disarm after it has been triggered instead of returning to the previous state. -- **armed_home/armed_away/armed_night/disarmed/triggered** (*Optional*): State specific settings - - **delay_time** (*Optional*): State specific setting for **delay_time** (all states except **triggered**) - - **pending_time** (*Optional*): State specific setting for **pending_time** (all states except **disarmed**) - - **trigger_time** (*Optional*): State specific setting for **trigger_time** (all states except **triggered**) +{% configuration %} +name: + description: The name of the alarm. + required: false + type: string + default: HA Alarm +code: + description: > + If defined, specifies a code to enable or disable the alarm in the frontend. + This code is not required for MQTT interactions. + Only one of **code** and **code_template** can be specified. + required: exclusive + type: string +code_template: + description: > + If defined, returns a code to enable or disable the alarm in the frontend; an empty string disables checking the code. + Inside the template, the variables **from_state** and **to_state** identify the current and desired state. + Only one of **code** and **code_template** can be specified. + required: exclusive + type: string +delay_time: + description: The time in seconds of delay added to the triggered state's **pending_time** before triggering the alarm. + required: false + type: integer + default: 0 +pending_time: + description: The time in seconds of the pending time before effecting a state change. + required: false + type: integer + default: 60 +trigger_time: + description: The time in seconds of the trigger time in which the alarm is firing. + required: false + type: integer + default: 120 +disarm_after_trigger: + description: If true, the alarm will automatically disarm after it has been triggered instead of returning to the previous state. + required: false + type: boolean +armed_home/armed_away/armed_night/disarmed/triggered: + description: State specific settings + required: false + type: list + keys: + delay_time: + description: State specific setting for **delay_time** (all states except **triggered**) + required: false + type: integer + pending_time: + description: State specific setting for **pending_time** (all states except **disarmed**) + required: false + type: integer + trigger_time: + description: State specific setting for **trigger_time** (all states except **triggered**) + required: false + type: integer +{% endconfiguration %} See the documentation for the [manual alarm platform](/components/alarm_control_panel.manual/) for a description. -Additionally, the following MQTT configuration variables are also available: +Additionally, the following MQTT configuration variables are also available. -- **state_topic** (*Required*): The MQTT topic HA will publish state updates to. -- **command_topic** (*Required*): The MQTT topic HA will subscribe to, to receive commands from a remote device to change the alarm state. -- **qos** (*Optional*): The maximum QoS level for subscribing and publishing to MQTT messages. Default is 0. -- **payload_disarm** (*Optional*): The payload to disarm this Alarm Panel. Default is "DISARM". -- **payload_arm_home** (*Optional*): The payload to set armed-home mode on this Alarm Panel. Default is "ARM_HOME". -- **payload_arm_away** (*Optional*): The payload to set armed-away mode on this Alarm Panel. Default is "ARM_AWAY". -- **payload_arm_night** (*Optional*): The payload to set armed-night mode on this Alarm Panel. Default is "ARM_NIGHT". +{% configuration %} +state_topic: + description: The MQTT topic HA will publish state updates to. + required: true + type: string +command_topic: + description: The MQTT topic HA will subscribe to, to receive commands from a remote device to change the alarm state. + required: true + type: string +qos: + description: The maximum QoS level for subscribing and publishing to MQTT messages. + required: false + type: int + default: 0 +payload_disarm: + description: The payload to disarm this Alarm Panel. + required: false + type: string + default: DISARM +payload_arm_home: + description: The payload to set armed-home mode on this Alarm Panel. + required: false + type: string + default: ARM_HOME +payload_arm_away: + description: The payload to set armed-away mode on this Alarm Panel. + required: false + type: string + default: ARM_AWAY +payload_arm_night: + description: The payload to set armed-night mode on this Alarm Panel. + required: false + type: string + default: ARM_NIGHT +{% endconfiguration %} + +## {% linkable_title Examples %} In the configuration example below: -- The disarmed state never triggers the alarm. -- The armed_home state will leave no time to leave the building or disarm the alarm. -- While other states state will give 30 seconds to leave the building before triggering the alarm, and 20 seconds to disarm the alarm when coming back. +- The disarmed state never triggers the alarm; +- The armed_home state will leave no time to leave the building or disarm the alarm; +- While other states state will give 30 seconds to leave the building before triggering the alarm, and 20 seconds to disarm the alarm when coming back; +- Setting pending_time to 0 for triggered state allows the alarm to trigger after previous state's delay time only. If not set, the alarm will be pending for previous state's delay_time plus the default pending_time before triggering. ```yaml # Example configuration.yaml entry @@ -90,11 +167,11 @@ alarm_control_panel: armed_home: pending_time: 0 delay_time: 0 + triggered: + pending_time: 0 ``` -## {% linkable_title Examples %} - -Refer to the [Manual Alarm Control page](/components/alarm_control_panel.manual/#examples) for some real-life examples of how to use this panel. +Refer to the [Manual Alarm Control page](/components/alarm_control_panel.manual/#examples) for more real-life examples on how to use this panel. ## {% linkable_title MQTT Control %} diff --git a/source/_components/alarm_control_panel.markdown b/source/_components/alarm_control_panel.markdown index bdc1adf3987..ad8408cf92b 100644 --- a/source/_components/alarm_control_panel.markdown +++ b/source/_components/alarm_control_panel.markdown @@ -9,11 +9,9 @@ sharing: true footer: true --- - Home Assistant can give you an interface with is similar to a classic alarm system. There are several panels supported: - [Alarm.com](/components/alarm_control_panel.alarmdotcom/) - [Manual](/components/alarm_control_panel.manual/) - [MQTT](/components/alarm_control_panel.mqtt/) - [Verisure](/components/verisure/) - diff --git a/source/_components/alarm_control_panel.mqtt.markdown b/source/_components/alarm_control_panel.mqtt.markdown index cb93a1b5958..8cd5dd1bfd2 100644 --- a/source/_components/alarm_control_panel.mqtt.markdown +++ b/source/_components/alarm_control_panel.mqtt.markdown @@ -25,6 +25,8 @@ The component will accept the following states from your Alarm Panel (in lower c The component can control your Alarm Panel by publishing to the `command_topic` when a user interacts with the Home Assistant frontend. +## {% linkable_title Configuration %} + To enable this platform, add the following lines to your `configuration.yaml`: ```yaml diff --git a/source/_components/alarm_control_panel.nx584.markdown b/source/_components/alarm_control_panel.nx584.markdown index a46cbf75273..5be5413a5bf 100644 --- a/source/_components/alarm_control_panel.nx584.markdown +++ b/source/_components/alarm_control_panel.nx584.markdown @@ -14,6 +14,8 @@ ha_release: 0.13 The `nx584` platform provides integration with GE, Caddx, Interlogix (and other brands) alarm panels that support the NX584 interface module (or have it built in). Supported panels include NX4/6/8/8E. Actual integration is done through [pynx584](http://github.com/kk7ds/pynx584) which is required for this to work. +## {% linkable_title Configuration %} + To enable this, add the following lines to your `configuration.yaml`: ```yaml @@ -26,16 +28,16 @@ alarm_control_panel: host: description: The host where the nx584 server process is running. required: false - default: localhost type: string + default: localhost name: description: This parameter allows you to override the name. required: false - default: NX584 type: string + default: NX584 port: description: The port where the Alarm panel is listening. required: false - default: 5007 type: integer + default: 5007 {% endconfiguration %} diff --git a/source/_components/alarm_control_panel.satel_integra.markdown b/source/_components/alarm_control_panel.satel_integra.markdown index a5f8915d08c..7f75c0ba232 100644 --- a/source/_components/alarm_control_panel.satel_integra.markdown +++ b/source/_components/alarm_control_panel.satel_integra.markdown @@ -13,8 +13,6 @@ ha_release: 0.54 ha_iot_class: "Local Push" --- - The `satel_integra` alarm control panel platform allows you to control your [SatelIntegra](http://www.satel.pl/en/) alarms. The requirement is that you have setup your [SatelIntegra hub](/components/satel_integra/). - diff --git a/source/_components/alarm_control_panel.simplisafe.markdown b/source/_components/alarm_control_panel.simplisafe.markdown index 1dcad35d05e..9c8fdc893ec 100644 --- a/source/_components/alarm_control_panel.simplisafe.markdown +++ b/source/_components/alarm_control_panel.simplisafe.markdown @@ -12,33 +12,9 @@ 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`: - -```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 %} +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. diff --git a/source/_components/alarm_control_panel.spc.markdown b/source/_components/alarm_control_panel.spc.markdown index 5384d06def1..de7bd83b4ef 100644 --- a/source/_components/alarm_control_panel.spc.markdown +++ b/source/_components/alarm_control_panel.spc.markdown @@ -13,7 +13,6 @@ ha_release: 0.47 ha_iot_class: "Local Push" --- - The `spc` alarm control panel platform allows you to control your [Vanderbilt SPC](https://www.spcsupportinfo.com/) alarms. The requirement is that you have setup your [SPC hub](/components/spc/). diff --git a/source/_components/alarm_control_panel.totalconnect.markdown b/source/_components/alarm_control_panel.totalconnect.markdown index 203d53a5c04..40cb73d83a9 100644 --- a/source/_components/alarm_control_panel.totalconnect.markdown +++ b/source/_components/alarm_control_panel.totalconnect.markdown @@ -18,6 +18,8 @@ This platform supports the following services: `alarm_arm_away`, `alarm_arm_home If you have issues running this component, you may require `libxml2-dev` and `libxmlsec1-dev` packages. To install these on Hassbian, run the command `apt install libxml2-dev libxmlsec1-dev` with sudo. +## {% linkable_title Configuration %} + To enable this, add the following lines to your `configuration.yaml`: ```yaml @@ -28,13 +30,22 @@ alarm_control_panel: password: YOUR_PASSWORD ``` -Configuration variables: +{% configuration %} +name: + description: Name of device in Home Assistant. + required: false + type: string +username: + description: Username used to sign into the TotalConnect app/web client. + required: true + type: string +password: + description: Password used to sign into the TotalConnect app/web client. + required: true + type: string +{% endconfiguration %} -- **name** (*Optional*): Name of device in Home Assistant. -- **username** (*Required*): Username used to sign into the TotalConnect app/web client. -- **password** (*Required*): Password used to sign into the TotalConnect app/web client. - -Automation example: +## {% linkable_title Automation example %} ```yaml automation: @@ -56,5 +67,5 @@ automation: to: 'armed_away' action: service: scene.turn_on - entity_id: scene.OnArmedAway + entity_id: scene.OnArmedAway ``` diff --git a/source/_components/alarm_control_panel.verisure.markdown b/source/_components/alarm_control_panel.verisure.markdown index 669de867612..8067027004e 100644 --- a/source/_components/alarm_control_panel.verisure.markdown +++ b/source/_components/alarm_control_panel.verisure.markdown @@ -13,7 +13,6 @@ ha_release: 0.7.3 ha_iot_class: "Cloud Polling" --- - The Verisure alarm control panel platform allows you to control your [Verisure](https://www.verisure.com/) Alarms. The requirement is that you have setup your [Verisure hub](/components/verisure/). diff --git a/source/_components/alarm_control_panel.wink.markdown b/source/_components/alarm_control_panel.wink.markdown index e6fee5cdb50..b40c29927df 100644 --- a/source/_components/alarm_control_panel.wink.markdown +++ b/source/_components/alarm_control_panel.wink.markdown @@ -14,18 +14,14 @@ ha_release: 0.37 No Wink hub is required to support these devices. - The Wink alarm platform allows you to control your [Wink](http://www.wink.com/) Canary all-in-one security camera. The requirement is that you have setup [Wink](/components/wink/). - ### {% linkable_title Supported devices %} - Canary all-in-one security camera -

The above devices are confirmed to work, but others may work as well.

- diff --git a/source/_components/alarm_control_panel.yale_smart_alarm.markdown b/source/_components/alarm_control_panel.yale_smart_alarm.markdown index f2dc607b157..7b5bf71aae3 100644 --- a/source/_components/alarm_control_panel.yale_smart_alarm.markdown +++ b/source/_components/alarm_control_panel.yale_smart_alarm.markdown @@ -16,6 +16,7 @@ The `yale_smart_alarm` platform provides connectivity with the Yale Smart Alarm This platform supports the following services: `alarm_arm_away`, `alarm_arm_home`, `alarm_arm_night` (duplicate of home) and `alarm_disarm`. Currently only one alarm is supported. +## {% linkable_title Configuration %} To enable, add the following lines to your `configuration.yaml`: @@ -27,14 +28,27 @@ alarm_control_panel: password: YOUR_PASSWORD ``` -Configuration variables: +{% configuration %} +name: + description: Name of device in Home Assistant. + required: false + type: string +username: + description: Username used to sign into the Yale app/web client. + required: true + type: string +password: + description: Password used to sign into the Yale app/web client. + required: true + type: string +area_id: + description: Area ID of the device when talking to Yale's API if required. + required: false + type: int + default: 1 +{% endconfiguration %} -- **name** (*Optional*): Name of device in Home Assistant. -- **username** (*Required*): Username used to sign into the Yale app/web client. -- **password** (*Required*): Password used to sign into the Yale app/web client. -- **area_id** (*Optional*): Area ID of the device when talking to Yale's API if required ('1' by default). - -Automation example: +## {% linkable_title Automation example %} ```yaml automation: @@ -56,5 +70,5 @@ automation: to: 'armed_away' action: service: scene.turn_on - entity_id: scene.OnArmedAway + entity_id: scene.OnArmedAway ``` diff --git a/source/_components/alarmdecoder.markdown b/source/_components/alarmdecoder.markdown index ae81c2cf1f5..268f80b7fce 100644 --- a/source/_components/alarmdecoder.markdown +++ b/source/_components/alarmdecoder.markdown @@ -13,7 +13,7 @@ ha_release: 0.43 ha_iot_class: "Local Push" --- -The `alarmdecoder` component will allow Home Assistant users who own either a DSC or Honeywell alarm panel to leverage their alarm system and its sensors to provide Home Assistant with rich information about their homes. Connectivity between Home Assistant and the alarm panel is accomplished through a device produced by Nu Tech Software Solutions, known as the AlarmDecoder. The AlarmDecoder devices provide a serial, TCP/IP socket or USB interface to the alarm panel, where it emulates an alarm keypad. +The `alarmdecoder` component will allow Home Assistant users who own either a DSC or Honeywell alarm panel to leverage their alarm system and its sensors to provide Home Assistant with rich information about their homes. Connectivity between Home Assistant and the alarm panel is accomplished through a device produced by Nu Tech Software Solutions, known as the AlarmDecoder. The AlarmDecoder devices provide a serial, TCP/IP socket or USB interface to the alarm panel, where it emulates an alarm keypad. Please visit the [AlarmDecoder website](https://www.alarmdecoder.com/) for further information about the AlarmDecoder devices. @@ -34,7 +34,7 @@ alarmdecoder: type: socket host: 192.168.1.20 port: 10000 - panel_display: On + panel_display: false zones: 01: name: 'Smoke Detector' @@ -45,15 +45,66 @@ alarmdecoder: type: 'opening' ``` -Configuration variables: - -- **type** (*Required*): The type of AlarmDecoder device: socket, serial or USB -- **host** (*Optional*): The IP address of the AlarmDecoder device on your home network, if using socket type. Default: `localhost` -- **port** (*Optional*): The port of the AlarmDecoder device on your home network, if using socket type. Default: `10000` -- **path** (*Optional*): The path of the AlarmDecoder device, if using socket type. Default: `/dev/ttyUSB0` -- **baudrate** (*Optional*): The baud rate of the AlarmDecoder device, if using serial type. Default: `115200` -- **panel_display** (*Optional*): Create a sensor called sensor.alarm_display to match the Alarm Keypad display. Default: `off` -- **zones** (*Optional*): AlarmDecoder has no way to tell us which zones are actually in use, so each zone must be configured in Home Assistant. For each zone, at least a name must be given. For more information on the available zone types, take a look at the [Binary Sensor](/components/binary_sensor.alarmdecoder/) docs. *Note: If no zones are specified, Home Assistant will not load any binary_sensor components.* -- **rfid** (*Optional*): The RF serial-number associated with RF zones. Providing this field allows Home Assistant to associate raw sensor data to a given zone, allowing direct monitoring of the state, battery, and supervision status. -- **relayaddr** (*Optional*): Address of the relay expander board to associate with the zone. (ex: 12, 13, 14, or 15). Typically used in cases where a panel will not send bypassed zones such as motion during an armed home state, the Vista 20P is an example of this. Alarmdecoder can emulate a zone expander board and the panel can be programmed to push zone events to this virtual expander. This allows the bypassed zone binary sensors to be utilized. One example is using bypassed motion sensors at night for motion-based automated lights while the system is armed with the motion sensor bypassed. -- **relaychan** (*Optional*): Channel of the relay expander board to associate with the zone. (ex: 1, 2, 3, or 4) +{% configuration %} +device: + description: List of variables for the AlarmDecoder device. + required: true + type: list + keys: + type: + description: "The type of AlarmDecoder device: socket, serial or USB." + required: true + default: socket + type: string + host: + description: The IP address of the AlarmDecoder device on your home network, if using socket type. + required: false + default: localhost + type: string + port: + description: The IP address of the AlarmDecoder device on your home network, if using socket type. + required: false + default: 10000 + type: integer + path: + description: The path of the AlarmDecoder device, if using serial type. + required: false + default: "/dev/ttyUSB0" + type: string + baudrate: + description: The baud rate of the AlarmDecoder device, if using serial type. + required: false + default: 115200 + type: string +panel_display: + description: Create a sensor called sensor.alarm_display to match the Alarm Keypad display. + required: false + default: false + type: boolean +zones: + description: "AlarmDecoder has no way to tell us which zones are actually in use, so each zone must be configured in Home Assistant. For each zone, at least a name must be given. For more information on the available zone types, take a look at the [Binary Sensor](/components/binary_sensor.alarmdecoder/) docs. *Note: If no zones are specified, Home Assistant will not load any binary_sensor components.*" + required: false + type: list + keys: + name: + description: A name for the zone. + required: true + type: string + type: + description: "A type for the zone. Here you can find a list of [Device Classes](https://www.home-assistant.io/components/binary_sensor/#device-class)." + required: false + default: opening + type: string + rfid: + description: The RF serial-number associated with RF zones. Providing this field allows Home Assistant to associate raw sensor data to a given zone, allowing direct monitoring of the state, battery, and supervision status. + required: false + type: string + relayaddr: + description: "Address of the relay expander board to associate with the zone. (ex: 12, 13, 14, or 15). Typically used in cases where a panel will not send bypassed zones such as motion during an armed home state, the Vista 20P is an example of this. Alarmdecoder can emulate a zone expander board and the panel can be programmed to push zone events to this virtual expander. This allows the bypassed zone binary sensors to be utilized. One example is using bypassed motion sensors at night for motion-based automated lights while the system is armed with the motion sensor bypassed." + required: inclusive + type: integer + relaychan: + description: "Channel of the relay expander board to associate with the zone. (ex: 1, 2, 3, or 4)" + required: inclusive + type: integer +{% endconfiguration %} diff --git a/source/_components/android_ip_webcam.markdown b/source/_components/android_ip_webcam.markdown index a16ca91b979..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 @@ -27,7 +33,7 @@ android_ip_webcam: {% configuration %} host: - description: The IP Address of the phone on the network. + description: The IP address of the phone on the network. required: true type: string port: @@ -59,50 +65,50 @@ sensors: type: list keys: audio_connections: - description: Audio Connections + description: The audio connections battery_level: - description: Battery Level + description: The battery level battery_temp: - description: Battery Temperature + description: The battery temperature battery_voltage: - description: Battery Voltage + description: The battery voltage light: - description: Light Level + description: The light level motion: - description: Motion + description: Motion detection pressure: - description: Pressure + description: The current pressure proximity: - description: Proximity + description: The proximity sound: - description: Sound + description: The sound detection video_connections: - description: 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: Exposure Lock + description: Control the exposure lock ffc: - description: Front-facing Camera + description: Control the front-facing camera. focus: - description: Focus + description: Control the focus. gps_active: - description: GPS Active + description: Control the GPS. night_vision: - description: Night Vision + description: Control the night vision. overlay: - description: Overlay + description: Control the overlay. torch: - description: Torch + description: Control the torch. whitebalance_lock: - description: White Balance Lock + description: Control the white balance lock. video_recording: - description: Video Recording + description: Control the video recording. motion_sensor: - description: Activate motion sensor if auto_discovery is disabled. + description: Activate motion sensor if `auto_discovery` is disabled. required: false type: boolean {% endconfiguration %} @@ -147,4 +153,3 @@ android_ip_webcam: - torch ``` -[app]: https://play.google.com/store/apps/details?id=com.pas.webcam diff --git a/source/_components/apcupsd.markdown b/source/_components/apcupsd.markdown index c66a0f324a8..aff8ae3f4c1 100644 --- a/source/_components/apcupsd.markdown +++ b/source/_components/apcupsd.markdown @@ -35,4 +35,3 @@ port: type: integer default: 3551 {% endconfiguration %} - diff --git a/source/_components/api.markdown b/source/_components/api.markdown index 4ff36762cbf..5a8dd7585c4 100644 --- a/source/_components/api.markdown +++ b/source/_components/api.markdown @@ -23,4 +23,4 @@ It is HIGHLY recommended that you set the `api_password`, especially if you are api: ``` -For details to use the API, please refer to the [REST API](/developers/rest_api/) or the [Python REST API documentation](/developers/python_api/) in the "Developer" section. +For details to use the API, please refer to the [REST API](/developers/rest_api/) or the [Python REST API documentation](/developers/python_api/) in the "Developer" section. diff --git a/source/_components/apple_tv.markdown b/source/_components/apple_tv.markdown index c9a0e3f0606..ae960ef1620 100644 --- a/source/_components/apple_tv.markdown +++ b/source/_components/apple_tv.markdown @@ -19,6 +19,8 @@ The `apple_tv` platform allows you to control an Apple TV (3rd and 4th generatio Currently, you must have Home Sharing enabled for this to work. Support for pairing Home Assistant with your device will be supported in a later release.

+## {% linkable_title Configuration %} + To use this component, you must first install some system libraries and a compiler. For Debian or a similar system, this should be enough: ```shell diff --git a/source/_components/arduino.markdown b/source/_components/arduino.markdown index ca16dd32b75..522886639ac 100644 --- a/source/_components/arduino.markdown +++ b/source/_components/arduino.markdown @@ -14,12 +14,15 @@ ha_release: pre 0.7 ha_iot_class: "Local Polling" --- -The [Arduino](https://www.arduino.cc/) device family are microcontroller boards that are often based on the ATmega328 chip. They come with digital input/output pins (some can be used as PWM outputs), analog inputs, and a USB connection. The equipment depends on the [type](https://www.arduino.cc/en/Main/Products) of the board. The most common ones are the Arduino Uno and the Arduino Leonardo with 14 digital input/output pins and 6 analog input pins. +The [Arduino](https://www.arduino.cc/) device family are microcontroller boards that are often based on the ATmega328 chip. They come with digital input/output pins (some can be used as PWM outputs), analog inputs, and a USB connection. +The equipment depends on the [type](https://www.arduino.cc/en/Main/Products) of the board. The most common ones are the Arduino Uno and the Arduino Leonardo with 14 digital input/output pins and 6 analog input pins. -There are a lot of extensions (so-called [shields](https://www.arduino.cc/en/Main/ArduinoShields)) available. Those shields can be plugged-in into the existing connectors and stacked on top of each other. This makes it possible to expand the capabilities of the Arduino boards. +There are a lot of extensions (so-called [shields](https://www.arduino.cc/en/Main/ArduinoShields)) available. Those shields can be plugged-in into the existing connectors and stacked on top of each other. This makes it possible to expand the capabilities of the Arduino boards. The `arduino` component is designed to let you use a directly attached board to your Home Assistant host over USB. +## {% linkable_title Configuration %} + You need to have the [Firmata firmware](https://github.com/firmata/) on your board. Please upload the `StandardFirmata` sketch to your board; please refer to the [Arduino documentation](https://www.arduino.cc/en/Main/Howto) for further information. To integrate an Arduino boards with Home Assistant, add the following section to your `configuration.yaml` file: @@ -54,4 +57,3 @@ Add the user who is used to run Home Assistant to the groups to allow access to ```bash $ sudo usermod -a -G dialout,lock $USER ``` - diff --git a/source/_components/auth.markdown b/source/_components/auth.markdown index ac1d6278d4e..3a775af4a5d 100644 --- a/source/_components/auth.markdown +++ b/source/_components/auth.markdown @@ -13,4 +13,5 @@ ha_release: 0.73 ha_qa_scale: internal --- -This component creates the endpoints for the [authentication system](/docs/authentication/) that is built into Home Assistant. There are no configuration options for this component directly as it relies on the auth system in the core. +This component creates the endpoints for the [authentication system](/docs/authentication/) that is built into Home Assistant. +There are no configuration options for this component directly as it relies on the auth system in the core. diff --git a/source/_components/axis.markdown b/source/_components/axis.markdown index fc630149a00..5e6ae9b9928 100644 --- a/source/_components/axis.markdown +++ b/source/_components/axis.markdown @@ -42,27 +42,26 @@ host: username: description: The username to your Axis device. required: false - default: root type: string + default: root password: description: The password to your Axis device. required: false - default: pass type: string + default: pass trigger_time: description: Minimum time (in seconds) a sensor should keep its positive value. required: false - default: 0 type: integer + default: 0 port: description: Configure port web server of device is accessible from. required: false - default: 80 type: integer + default: 80 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. diff --git a/source/_components/bbb_gpio.markdown b/source/_components/bbb_gpio.markdown index 785aec4f2df..cb9f7a4c0dc 100644 --- a/source/_components/bbb_gpio.markdown +++ b/source/_components/bbb_gpio.markdown @@ -13,5 +13,5 @@ ha_release: 0.36 ha_iot_class: "Local Push" --- -The `bbb_gpio` component is the base for all [BeagleBone Black](https://beagleboard.org/black) related GPIO platforms in Home Assistant. There is no setup needed for the component itself, for the platforms please check their corresponding pages. - +The `bbb_gpio` component is the base for all [BeagleBone Black](https://beagleboard.org/black) related GPIO platforms in Home Assistant. +There is no setup needed for the component itself, for the platforms please check their corresponding pages. diff --git a/source/_components/binary_sensor.ads.markdown b/source/_components/binary_sensor.ads.markdown index 753858d9737..ab988a737ae 100644 --- a/source/_components/binary_sensor.ads.markdown +++ b/source/_components/binary_sensor.ads.markdown @@ -26,16 +26,16 @@ binary_sensor: ``` {% configuration %} - adsvar: - required: true - description: The name of the variable which you want to access on the ADS device. - type: string - name: - required: false - description: An identifier for the light in the frontend. - type: string - device_class: - required: false - description: The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend. - type: string +adsvar: + description: The name of the variable which you want to access on the ADS device. + required: true + type: string +name: + description: An identifier for the light in the frontend. + required: false + 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 {% endconfiguration %} diff --git a/source/_components/binary_sensor.android_ip_webcam.markdown b/source/_components/binary_sensor.android_ip_webcam.markdown index 0c5c2abbe87..7e3e0131947 100644 --- a/source/_components/binary_sensor.android_ip_webcam.markdown +++ b/source/_components/binary_sensor.android_ip_webcam.markdown @@ -13,10 +13,9 @@ ha_release: "0.40" ha_iot_class: "Local Polling" --- - The `android_ip_webcam` binary sensor platform lets you observe the motion state of [Android IP webcam](https://play.google.com/store/apps/details?id=com.pas.webcam) sensors through Home Assistant. -Devices will be configured automatically. Please refer to the [component](/components/android_ip_webcam/) configuration on how to setup. +Devices will be configured automatically. Please refer to the [Android IP webcam](/components/android_ip_webcam/) configuration on how to setup. ## {% linkable_title Examples %} diff --git a/source/_components/binary_sensor.arest.markdown b/source/_components/binary_sensor.arest.markdown index 4465d6ed938..4192b8aab9c 100644 --- a/source/_components/binary_sensor.arest.markdown +++ b/source/_components/binary_sensor.arest.markdown @@ -13,7 +13,6 @@ ha_iot_class: "Local Polling" ha_release: 0.9 --- - The `arest` binary sensor platform allows you to get all data from your devices (like Arduinos with an ethernet/wifi connection, the ESP8266, and the Raspberry Pi) running the [aREST](http://arest.io/) RESTful framework. ## {% linkable_title Configuration %} @@ -62,5 +61,5 @@ binary_sensor: ```

-This sensor is not suitable for fast state changes because there is a high possibility that the change took place between two update cycle. +This sensor is not suitable for fast state changes because there is a high possibility that the change took place between two update cycle.

diff --git a/source/_components/binary_sensor.august.markdown b/source/_components/binary_sensor.august.markdown index 4af76c345bc..04af4a51571 100644 --- a/source/_components/binary_sensor.august.markdown +++ b/source/_components/binary_sensor.august.markdown @@ -8,7 +8,7 @@ comments: false sharing: true footer: true logo: august.png -ha_category: Doorbell +ha_category: Binary Sensor ha_release: "0.64" ha_iot_class: "Cloud Polling" --- @@ -21,3 +21,6 @@ If you have August Doorbell, once you have enabled the [August component](/compo * Doorbell motion sensor * Doorbell online sensor +If you have August Smart Lock with DoorSense, once you have enabled the [August component](/components/august/), you should see the following sensors: + +* Door sensor diff --git a/source/_components/binary_sensor.aurora.markdown b/source/_components/binary_sensor.aurora.markdown index 460500c24c3..f0429886ac2 100644 --- a/source/_components/binary_sensor.aurora.markdown +++ b/source/_components/binary_sensor.aurora.markdown @@ -32,17 +32,19 @@ binary_sensor: forecast_threshold: description: Provide your own threshold number above which the sensor will trigger. required: false - default: 75 type: integer + default: 75 name: description: The name of the sensor. required: false - default: Aurora Visibility type: string + default: Aurora Visibility {% endconfiguration %} +## {% linkable_title Full example %} + ```yaml - binary_sensor: - - platform: aurora - forecast_threshold: 50 +binary_sensor: + - platform: aurora + forecast_threshold: 50 ``` diff --git a/source/_components/binary_sensor.bayesian.markdown b/source/_components/binary_sensor.bayesian.markdown index a5b1779ce58..6154fbaa1f2 100644 --- a/source/_components/binary_sensor.bayesian.markdown +++ b/source/_components/binary_sensor.bayesian.markdown @@ -14,7 +14,6 @@ ha_release: 0.53 ha_qa_scale: internal --- - The `bayesian` binary sensor platform observes the state from multiple sensors and uses [Bayes' rule](https://en.wikipedia.org/wiki/Bayes%27_theorem) to estimate the probability that an event has occurred given the state of the observed sensors. If the estimated posterior probability is above the `probability_threshold`, the sensor is `on` otherwise it is `off`. This allows for the detection of complex events that may not be readily observable, e.g., cooking, showering, in bed, the start of a morning routine, etc. It can also be used to gain greater confidence about events that _are_ directly observable, but for which the sensors can be unreliable, e.g., presence. @@ -36,20 +35,58 @@ binary_sensor: to_state: 'on' ``` -Configuration variables: - -- **prior** (*Required*): The prior probability of the event. At any point in time (ignoring all external influences) how likely is this event to occur? -- **probability_threshold** (*Optional*): The probability at which the sensor should trigger to `on`. -- **name** (*Optional*): Name of the sensor to use in the frontend. Defaults to `Bayesian Binary sensor`. -- **observations** array (*Required*): The observations which should influence the likelihood that the given event has occurred. - - **entity_id** (*Required*): Name of the entity to monitor. - - **prob_given_true** (*Required*): The probability of the observation occurring, given the event is `true`. - - **prob_given_false** (*Optional*): The probability of the observation occurring, given the event is `false` can be set as well. If `prob_given_false` is not set, it will default to `1 - prob_given_true`. - - **platform** (*Required*): The only supported observation platforms are `state` and `numeric_state`, which are modeled after their corresponding triggers for automations, requiring `below` and/or `above` instead of `to_state`. - - **to_state** (*Required*): The target state. +{% configuration %} +prior: + description: > + The prior probability of the event. At any point in time + (ignoring all external influences) how likely is this event to occur? + required: true + type: float +probability_threshold: + description: The probability at which the sensor should trigger to `on`. + required: false + type: float + default: 0.5 +name: + description: Name of the sensor to use in the frontend. + required: false + type: string + default: Bayesian Binary Sensor +observations: + description: The observations which should influence the likelihood that the given event has occurred. + required: true + type: list + keys: + entity_id: + description: Name of the entity to monitor. + required: true + type: string + prob_given_true: + description: The probability of the observation occurring, given the event is `true`. + required: true + type: float + prob_given_false: + description: The probability of the observation occurring, given the event is `false` can be set as well. + required: false + type: float + default: "`1 - prob_given_true` if `prob_given_false` is not set" + platform: + description: > + The only supported observation platforms are `state` and `numeric_state`, + which are modeled after their corresponding triggers for automations, + requiring `below` and/or `above` instead of `to_state`. + required: true + type: string + to_state: + description: The target state. + required: true + type: string +{% endconfiguration %} ## {% linkable_title Full examples %} +The following is an example for the `state` observation platform. + ```yaml # Example configuration.yaml entry binary_sensor: @@ -78,6 +115,8 @@ binary_sensor: to_state: 'below_horizon' ``` +Next up an example which targets the `numeric_state` observation platform, +as seen in the configuration it requires `below` and/or `above` instead of `to_state`. ```yaml # Example configuration.yaml entry diff --git a/source/_components/binary_sensor.bbb_gpio.markdown b/source/_components/binary_sensor.bbb_gpio.markdown index 66e4c98f4fa..069c6c9eb1d 100644 --- a/source/_components/binary_sensor.bbb_gpio.markdown +++ b/source/_components/binary_sensor.bbb_gpio.markdown @@ -48,18 +48,18 @@ pins: bouncetime: description: Debounce time for reading input pin defined in milliseconds [ms]. required: false - default: 50 type: integer + default: 50 invert_logic: description: If `true`, inverts the input logic to ACTIVE LOW required: false - default: false type: boolean + default: false 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 + type: string + default: UP {% 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.blink.markdown b/source/_components/binary_sensor.blink.markdown index e8ef5640442..f0068b9d131 100644 --- a/source/_components/binary_sensor.blink.markdown +++ b/source/_components/binary_sensor.blink.markdown @@ -14,4 +14,4 @@ ha_release: "0.40"

To get your Blink binary sensors working with Home Assistant, follow the instructions for the general [Blink component](/components/blink/). -

\ No newline at end of file +

diff --git a/source/_components/binary_sensor.bloomsky.markdown b/source/_components/binary_sensor.bloomsky.markdown index a53c62e973d..761682c6ca2 100644 --- a/source/_components/binary_sensor.bloomsky.markdown +++ b/source/_components/binary_sensor.bloomsky.markdown @@ -30,8 +30,14 @@ binary_sensor: - Rain ``` -Configuration variables: - -- **monitored_conditions** array (*Required*): The sensors that you wish to monitor on all of your devices. Select from these options: - - Night - - Rain +{% configuration %} +monitored_conditions: + description: "The sensors that you wish to monitor on all of your devices. Select from these options:" + required: true + type: list + keys: + night: + description: Night + rain: + description: Rain +{% endconfiguration %} diff --git a/source/_components/binary_sensor.bmw_connected_drive.markdown b/source/_components/binary_sensor.bmw_connected_drive.markdown index 03a78c80bb6..e93a570681f 100644 --- a/source/_components/binary_sensor.bmw_connected_drive.markdown +++ b/source/_components/binary_sensor.bmw_connected_drive.markdown @@ -12,7 +12,6 @@ ha_category: Car ha_release: 0.66 --- - The `bmw_connected_drive` binary sensor platform allows you to import data on your BMW into Home Assistant. The binary sensors will be automatically configured if `bmw_connected_drive` component is configured. diff --git a/source/_components/binary_sensor.command_line.markdown b/source/_components/binary_sensor.command_line.markdown index 0bf0512d265..8f499766a42 100644 --- a/source/_components/binary_sensor.command_line.markdown +++ b/source/_components/binary_sensor.command_line.markdown @@ -13,7 +13,6 @@ ha_release: 0.12 ha_iot_class: "Local Polling" --- - The `command_line` binary sensor platform issues specific commands to get data. ## {% linkable_title Configuration %} @@ -33,10 +32,10 @@ command: required: true type: string name: - description: Let you overwrite the name of the device. By default *name* from the device is used. + description: Let you overwrite the name of the device. required: false - default: name type: string + default: "*name* from the device" device_class: description: The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend. required: false @@ -44,13 +43,13 @@ device_class: payload_on: description: The payload that represents enabled state. required: false - default: ON type: string + default: ON payload_off: description: The payload that represents disabled state. required: false - default: OFF type: string + default: OFF value_template: description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload. required: false @@ -58,13 +57,13 @@ value_template: scan_interval: description: Defines number of seconds for polling interval. required: false - default: 60 type: integer + default: 60 command_timeout: description: Defines number of seconds for command timeout. required: false - default: 15 type: integer + default: 15 {% endconfiguration %} ## {% linkable_title Examples %} diff --git a/source/_components/binary_sensor.concord232.markdown b/source/_components/binary_sensor.concord232.markdown index f734d4afa5b..79d12a803aa 100644 --- a/source/_components/binary_sensor.concord232.markdown +++ b/source/_components/binary_sensor.concord232.markdown @@ -14,6 +14,8 @@ ha_release: 0.31 The `concord232` platform provides integration with GE, Interlogix (and other brands) alarm panels that support the RS-232 Automation Control Panel interface module (or have it built in). Supported panels include Concord 4. +## {% linkable_title Configuration %} + To enable this, add the following lines to your `configuration.yaml`: ```yaml @@ -26,11 +28,11 @@ binary_sensor: host: description: The host where the concord232 server process is running. required: false - default: localhost type: string + default: localhost port: description: The port where the Alarm panel is listening. required: false - default: 5007 type: integer + default: 5007 {% endconfiguration %} diff --git a/source/_components/binary_sensor.digital_ocean.markdown b/source/_components/binary_sensor.digital_ocean.markdown index 516abfe6e9a..d4e6c15cb62 100644 --- a/source/_components/binary_sensor.digital_ocean.markdown +++ b/source/_components/binary_sensor.digital_ocean.markdown @@ -15,7 +15,7 @@ ha_iot_class: "Local Polling" The `digital_ocean` binary sensor platform allows you to monitor your Digital Ocean droplets. -### {% linkable_title Configuration %} +## {% linkable_title Configuration %} To use your Digital Ocean droplets, you first have to set up your [Digital Ocean hub](/components/digital_ocean/) and then add the following to your `configuration.yaml` file: @@ -34,4 +34,3 @@ droplets: required: true type: list {% endconfiguration %} - diff --git a/source/_components/binary_sensor.egardia.markdown b/source/_components/binary_sensor.egardia.markdown index d418559f8e9..4d60ded1886 100644 --- a/source/_components/binary_sensor.egardia.markdown +++ b/source/_components/binary_sensor.egardia.markdown @@ -13,7 +13,7 @@ ha_category: Binary Sensor ha_iot_class: "Polling" --- -The `egardia` platform allows you to get data from your [Egardia](http://www.egardia.com)/[Woonveilig](http://www.woonveilig.nl) binary sensors from within Home Assistant. +The `egardia` platform allows you to get data from your [Egardia](http://www.egardia.com)/[Woonveilig](http://www.woonveilig.nl) binary sensors from within Home Assistant. Currently only door contacts are supported. IR sensors are not supported and will probably never be since their status cannot be read outside of the alarm control panel. Smoke sensors and others might be added but currently are not supported. You will need to set up your [Egardia hub](/components/egardia/). diff --git a/source/_components/binary_sensor.eight_sleep.markdown b/source/_components/binary_sensor.eight_sleep.markdown index 6811a640dda..4aaa5d3b81d 100644 --- a/source/_components/binary_sensor.eight_sleep.markdown +++ b/source/_components/binary_sensor.eight_sleep.markdown @@ -13,7 +13,6 @@ ha_release: "0.44" ha_iot_class: "Cloud Polling" --- - The `eight_sleep` binary sensor platform lets you observe the presence state of a [Eight Sleep](https://eightsleep.com/) cover/mattress through Home Assistant. Devices will be configured automatically. Please refer to the [`eight_sleep` component](/components/eight_sleep/) configuration on how to setup. diff --git a/source/_components/binary_sensor.enocean.markdown b/source/_components/binary_sensor.enocean.markdown index ff59c3f8e06..9414cf563b7 100644 --- a/source/_components/binary_sensor.enocean.markdown +++ b/source/_components/binary_sensor.enocean.markdown @@ -13,14 +13,16 @@ ha_release: 0.21 ha_iot_class: "Local Push" --- -This can typically be one of those batteryless wall switches. -Tested with: +This can typically be one of those batteryless wall switches. +Tested with: - Eltako FT55 which uses the EnOcean PTM 215 module - [TRIO2SYS Wall switches](http://www.trio2sys.fr/index.php/fr/produits-enocean-sans-fil-sans-pile-interoperable/emetteur-sans-fils-sans-pile-interoperable-enocean) which uses the EnOcean PTM210 DB module All switches using theses modules are expected to work. Other devices will most likely not work without changing the Home Assistant code. +## {% linkable_title Configuration %} + To use your EnOcean device, you first have to set up your [EnOcean hub](/components/enocean/) and then add the following to your `configuration.yaml` file: ```yaml @@ -38,8 +40,8 @@ id: name: description: An identifier for the switch in the frontend. required: false - default: EnOcean binary sensor type: string + default: EnOcean binary sensor device_class: description: The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend. required: false @@ -53,6 +55,8 @@ EnOcean binary sensors only generate 'button_pressed' events. The event data has - **which**: Always `0` when using the single rocket. `0` or `1` when using the dual rocket switch. - **onoff**: `0` or `1` for either side of the rocket. +## {% linkable_title Automation example %} + Sample automation to switch lights on and off: ```yaml diff --git a/source/_components/binary_sensor.envisalink.markdown b/source/_components/binary_sensor.envisalink.markdown index 52735a8dbfd..13abe44ef1b 100644 --- a/source/_components/binary_sensor.envisalink.markdown +++ b/source/_components/binary_sensor.envisalink.markdown @@ -13,8 +13,8 @@ ha_category: Binary Sensor ha_iot_class: "Local Push" --- -The `envisalink` platform allows you to get data from your [Envisalink](http://www.eyezon.com/) binary sensors from within Home Assistant. +The `envisalink` platform allows you to get data from your [Envisalink](http://www.eyezon.com/) binary sensors from within Home Assistant. Check the [type/class](/components/binary_sensor/) list for a possible visualization of your zone. - + The requirement is that you have setup your [Envisalink hub](/components/envisalink/). diff --git a/source/_components/binary_sensor.ffmpeg_motion.markdown b/source/_components/binary_sensor.ffmpeg_motion.markdown index eaf15a86a79..a342d640643 100644 --- a/source/_components/binary_sensor.ffmpeg_motion.markdown +++ b/source/_components/binary_sensor.ffmpeg_motion.markdown @@ -13,7 +13,6 @@ ha_release: 0.27 redirect_from: /components/binary_sensor.ffmpeg/ --- - The `ffmpeg` platform allows you to use any video feed with [FFmpeg](http://www.ffmpeg.org/) for motion sensors in Home Assistant.

@@ -47,28 +46,28 @@ name: initial_state: description: Start `ffmpeg` with Home Assistant. required: false - default: true type: boolean + default: true 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 + default: 10 reset: description: The time to reset the state after no new motion is detected. required: false - default: 20 type: integer + default: 20 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 + default: 0 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 + default: 0 extra_arguments: description: Extra options to pass to `ffmpeg`, e.g., video denoise filtering. required: false diff --git a/source/_components/binary_sensor.ffmpeg_noise.markdown b/source/_components/binary_sensor.ffmpeg_noise.markdown index ae2077cd298..53f45188b8d 100644 --- a/source/_components/binary_sensor.ffmpeg_noise.markdown +++ b/source/_components/binary_sensor.ffmpeg_noise.markdown @@ -12,7 +12,6 @@ ha_category: Image Processing ha_release: 0.27 --- - The `ffmpeg` platform allows you to use any video or audio feed with [FFmpeg](http://www.ffmpeg.org/) for various sensors in Home Assistant.

@@ -42,23 +41,23 @@ name: initial_state: description: Start ffmpeg with home-assistant. required: false - default: true type: boolean + default: true peak: description: The threshold of detecting noise, in dB. 0 is very loud and -100 is low. required: false - default: -30 type: integer + default: -30 duration: description: How long the noise needs to be over the peak to trigger the state. required: false - default: 1 type: integer + default: 1 reset: description: The time to reset the state after no new noise is over the peak. required: false - default: 20 type: integer + default: 20 extra_arguments: description: Extra options to pass to `ffmpeg`, like audio frequency filtering. required: false diff --git a/source/_components/binary_sensor.flic.markdown b/source/_components/binary_sensor.flic.markdown index 31eacc4d866..dd70d2eb4cd 100644 --- a/source/_components/binary_sensor.flic.markdown +++ b/source/_components/binary_sensor.flic.markdown @@ -15,7 +15,7 @@ ha_release: 0.35 The `flic` platform allows you to receive click events from [flic](https://flic.io) smart buttons. -The platform does not directly interact with the buttons, *but communicates with a flic service* that manages the buttons. The service can run on the same instance as Home Assistant or any other reachable machine. +The platform does not directly interact with the buttons, *but communicates with a flic service* that manages the buttons. The service can run on the same instance as Home Assistant or any other reachable machine. #### {% linkable_title Service setup %} diff --git a/source/_components/binary_sensor.gc100.markdown b/source/_components/binary_sensor.gc100.markdown index 80d828723bd..2551d551004 100644 --- a/source/_components/binary_sensor.gc100.markdown +++ b/source/_components/binary_sensor.gc100.markdown @@ -23,7 +23,11 @@ binary_sensor: - '3:2': Garage Obstruction ``` -Configuration variables: - -- **ports** (*Required*): A list of module-address to name mappings in the format 'x:y': name, where x is module #, y is address. - +{% configuration %} +ports: + description: > + A list of module-address to name mappings in the format `'x:y': name`, + where x is module #, y is address. + required: true + type: list +{% endconfiguration %} diff --git a/source/_components/binary_sensor.hikvision.markdown b/source/_components/binary_sensor.hikvision.markdown index b3d892b437a..1a9dd7ce26f 100644 --- a/source/_components/binary_sensor.hikvision.markdown +++ b/source/_components/binary_sensor.hikvision.markdown @@ -61,6 +61,8 @@ and has been confirmed to work with the following models: - DS-2CD2142FWD-I - DS-2CD2155FWD-IS +## {% linkable_title Configuration %} + To enable this sensor, add the following lines are required in your `configuration.yaml` file: @@ -123,6 +125,8 @@ customize: default: 5 {% endconfiguration %} +### {% linkable_title Supported types %} + Supported sensor/event types are: - Motion @@ -142,6 +146,8 @@ Supported sensor/event types are: - Face Detection - Scene Change Detection +## {% linkable_title Examples %} + Example of a configuration in your `configuration.yaml` that utilizes the customize options for a camera: diff --git a/source/_components/binary_sensor.hive.markdown b/source/_components/binary_sensor.hive.markdown index 49486d62d76..c39ea49f7c8 100644 --- a/source/_components/binary_sensor.hive.markdown +++ b/source/_components/binary_sensor.hive.markdown @@ -13,7 +13,6 @@ ha_release: 0.59 ha_iot_class: "Cloud Polling" --- - The `hive` binary sensor component integrates your Hive sensors into Home Assistant. The platform supports the following Hive products: @@ -21,9 +20,6 @@ The platform supports the following Hive products: - Hive Window or Door Sensor - Hive Motion Sensor -

Full configuration details can be found on the main [Hive component](/components/hive/) page.

- - diff --git a/source/_components/binary_sensor.homematic.markdown b/source/_components/binary_sensor.homematic.markdown index 5155aedeea1..f237976a094 100644 --- a/source/_components/binary_sensor.homematic.markdown +++ b/source/_components/binary_sensor.homematic.markdown @@ -13,7 +13,6 @@ ha_release: 0.23 ha_iot_class: "Local Push" --- - The `homematic` binary sensor platform lets you observe the state changes of binary [Homematic](http://www.homematic.com/) sensors through Home Assistant. -Devices will be configured automatically. Please refer to the [component](/components/homematic/) configuration on how to setup Homematic. \ No newline at end of file +Devices will be configured automatically. Please refer to the [component](/components/homematic/) configuration on how to setup Homematic. diff --git a/source/_components/binary_sensor.ihc.markdown b/source/_components/binary_sensor.ihc.markdown index 9340c74aa6b..b05f2e3e8e1 100644 --- a/source/_components/binary_sensor.ihc.markdown +++ b/source/_components/binary_sensor.ihc.markdown @@ -27,6 +27,8 @@ be found in the IHC project and setup as binary sensors: - Dataline gas detector - Dataline light sensor +## {% linkable_title Manual configuration %} + To manually configure IHC Binary Sensors insert this section in your configuration: diff --git a/source/_components/binary_sensor.insteon.markdown b/source/_components/binary_sensor.insteon.markdown index 67a7b6a4f85..6fb7f1bc9fe 100644 --- a/source/_components/binary_sensor.insteon.markdown +++ b/source/_components/binary_sensor.insteon.markdown @@ -13,9 +13,9 @@ ha_iot_class: "Local Push" ha_version: 0.77 --- -The `insteon` binary sensor platform lets you control your sensors through +The `insteon` binary sensor platform lets you control your sensors through an INSTEON Modem (PLM and Hub) device connected directly to your system on a USB, serial port or TCPIP connection. To add support, set up the primary [insteon] component. -[insteon]: /components/insteon/ \ No newline at end of file +[insteon]: /components/insteon/ diff --git a/source/_components/binary_sensor.iss.markdown b/source/_components/binary_sensor.iss.markdown index f9b0da08de8..4e57b55a20f 100644 --- a/source/_components/binary_sensor.iss.markdown +++ b/source/_components/binary_sensor.iss.markdown @@ -21,6 +21,8 @@ This means that ISS is 10° above the horizon of your home. You can check in the attributes of the sensor to see the timestamp for the next rise of the station, its current coordinates, and the number of people in space. +## {% linkable_title Configuration %} + To add ISS binary sensor to your installation, add the following to your `configuration.yaml` file: @@ -31,11 +33,16 @@ binary_sensor: ``` {% configuration %} +name: + description: The name for this sensor in the frontend. + required: false + type: string + default: ISS show_on_map: description: Option to show the position of the ISS on the map. required: optional + type: boolean default: false - type: string {% endconfiguration %}

diff --git a/source/_components/binary_sensor.isy994.markdown b/source/_components/binary_sensor.isy994.markdown index 2cb7345d0eb..64735b86517 100644 --- a/source/_components/binary_sensor.isy994.markdown +++ b/source/_components/binary_sensor.isy994.markdown @@ -14,5 +14,5 @@ ha_release: pre 0.7 --- The `isy994` platform allows you to get data from your [ISY994](https://www.universal-devices.com/residential/isy994i-series/) binary sensors from within Home Assistant. - + They will be automatically discovered if the `isy994` component is loaded. diff --git a/source/_components/binary_sensor.knx.markdown b/source/_components/binary_sensor.knx.markdown index 97004e94b8e..9bb13677c13 100644 --- a/source/_components/binary_sensor.knx.markdown +++ b/source/_components/binary_sensor.knx.markdown @@ -42,14 +42,16 @@ device_class: significant_bit: description: Specify which significant bit of the KNX value should be used. required: false - default: 1 type: integer + default: 1 reset_after: description: Reset back to OFF state after specified milliseconds. required: false type: integer {% endconfiguration %} +### {% linkable_title Automation actions %} + 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. ```yaml @@ -81,13 +83,13 @@ name: 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 + default: 1 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 + default: "on" action: description: Specify a list of actions analog to the [automation rules](/docs/automation/action/). required: false diff --git a/source/_components/binary_sensor.konnected.markdown b/source/_components/binary_sensor.konnected.markdown index b530f097158..6fd32d7fbe9 100644 --- a/source/_components/binary_sensor.konnected.markdown +++ b/source/_components/binary_sensor.konnected.markdown @@ -18,4 +18,3 @@ The `konnected` binary sensor allows you to monitor wired door sensors, window s See the [`konnected`](/components/konnected/) component for configuration and setup instructions. This component supports all of the built-in device classes of the generic [Binary Sensor](/components/binary_sensor/) component. - diff --git a/source/_components/binary_sensor.linode.markdown b/source/_components/binary_sensor.linode.markdown index cf6392993f5..414d4c2ae17 100644 --- a/source/_components/binary_sensor.linode.markdown +++ b/source/_components/binary_sensor.linode.markdown @@ -28,9 +28,8 @@ binary_sensor: ``` {% configuration %} - nodes: - description: List of VPSs you want to control. - required: true - type: string +nodes: + description: List of VPSs you want to control. + required: true + type: string {% endconfiguration %} - diff --git a/source/_components/binary_sensor.mqtt.markdown b/source/_components/binary_sensor.mqtt.markdown index 114c974cbbf..132c59298e0 100644 --- a/source/_components/binary_sensor.mqtt.markdown +++ b/source/_components/binary_sensor.mqtt.markdown @@ -109,12 +109,43 @@ 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 + 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, tuple + 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/binary_sensor.mychevy.markdown b/source/_components/binary_sensor.mychevy.markdown index 42ce754d87a..7ae1881a48a 100644 --- a/source/_components/binary_sensor.mychevy.markdown +++ b/source/_components/binary_sensor.mychevy.markdown @@ -18,4 +18,3 @@ The `mychevy` binary sensor platform allows you to monitor your Chevy Bolt car f The binary sensor platform will be automatically configured if the `mychevy` component is configured. For configuration instructions, see the [`mychevy` component](/components/mychevy/) documentation. - diff --git a/source/_components/binary_sensor.mystrom.markdown b/source/_components/binary_sensor.mystrom.markdown index 99927748043..21b0d76216c 100644 --- a/source/_components/binary_sensor.mystrom.markdown +++ b/source/_components/binary_sensor.mystrom.markdown @@ -13,7 +13,6 @@ ha_iot_class: "Local Polling" ha_release: 0.45 --- - The `mystrom` binary sensor platform allows you to use [myStrom Wifi Buttons](https://mystrom.ch/wifi-button/) with Home Assistant. The myStrom Wifi Buttons support three and the myStrom WiFi Button + four different push pattern: - `single`: Short push (approx. 1/2 seconds) diff --git a/source/_components/binary_sensor.nest.markdown b/source/_components/binary_sensor.nest.markdown index 6949c6d2b55..60315ecb867 100644 --- a/source/_components/binary_sensor.nest.markdown +++ b/source/_components/binary_sensor.nest.markdown @@ -13,13 +13,14 @@ ha_release: pre 0.7 ha_iot_class: "Cloud Push" --- - The `nest` binary sensor platform lets you monitor various states of your [Nest](https://nest.com) devices.

You must have the [Nest component](/components/nest/) configured to use these sensors. The binary sensors will be setup if the `nest` component is configured and the required configuration for the `nest binary sensor` is set.

+## {% linkable_title Configuration %} + To enable binary sensors and customize which sensors are setup, you can extend the [Nest component](/components/nest/) configuration in your `configuration.yaml` file with the following settings: ```yaml @@ -33,9 +34,12 @@ nest: By default all binary sensors for your available Nest devices will be monitored. Leave `monitored_conditions` blank to disable all binary sensors for the [Nest component](/components/nest/). -Configuration variables: - -- **monitored_conditions** array (*Optional*): States to monitor. +{% configuration %} +monitored_conditions: + description: States to monitor. + required: false + type: list +{% endconfiguration %} The following conditions are available by device: diff --git a/source/_components/binary_sensor.netatmo.markdown b/source/_components/binary_sensor.netatmo.markdown index 1d396f6966e..8ef50d8737f 100644 --- a/source/_components/binary_sensor.netatmo.markdown +++ b/source/_components/binary_sensor.netatmo.markdown @@ -12,12 +12,12 @@ ha_category: Binary Sensor ha_release: 0.31 --- -### {% linkable_title Basic Configuration %} - The `netatmo` binary sensor platform is consuming the information provided by a [Netatmo](https://www.netatmo.com) camera. This component allows you to get the latest event seen by the camera. +### {% linkable_title Basic Configuration %} + To enable the Netatmo binary sensor, you have to set up [netatmo](/components/netatmo/), this will use discovery to add your binary sensor. diff --git a/source/_components/binary_sensor.nx584.markdown b/source/_components/binary_sensor.nx584.markdown index 0f9c17dea93..88e77577dcc 100644 --- a/source/_components/binary_sensor.nx584.markdown +++ b/source/_components/binary_sensor.nx584.markdown @@ -17,6 +17,8 @@ The `nx584` platform provides integration with GE, Caddx, Interlogix (and other Enabling this sensor platform exposes all of your zones as binary sensors, which provides visibility through the UI as well as the ability to trigger automation actions instantly when something happens like a door opening, or a motion sensor trigger. +## {% linkable_title Configuration %} + To enable this feature, add the following lines to your `configuration.yaml`: ```yaml @@ -29,19 +31,19 @@ binary_sensor: 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 + default: localhost port: description: The port where the server process is running. required: false - default: 5007 type: integer + default: 5007 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. + 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: @@ -59,6 +61,8 @@ zone_types: description: Safety {% endconfiguration %} +## {% linkable_title Full example %} + An extended configuration entry could look like this: ```yaml diff --git a/source/_components/binary_sensor.octoprint.markdown b/source/_components/binary_sensor.octoprint.markdown index 369205ad94a..c4181593468 100644 --- a/source/_components/binary_sensor.octoprint.markdown +++ b/source/_components/binary_sensor.octoprint.markdown @@ -13,13 +13,14 @@ 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.

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

+## {% linkable_title Configuration %} + To set it up, add the following information to your `configuration.yaml` file: ```yaml @@ -30,9 +31,19 @@ binary_sensor: - 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'. +{% configuration %} +monitored_conditions: + description: States to monitor. + required: true + type: list + keys: + printing: + description: State of the printer. + printing error: + description: Error while printing. +name: + description: The name of the sensor. + required: false + type: string + default: OctoPrint +{% endconfiguration %} diff --git a/source/_components/binary_sensor.opentherm_gw.markdown b/source/_components/binary_sensor.opentherm_gw.markdown new file mode 100644 index 00000000000..decdf3b7397 --- /dev/null +++ b/source/_components/binary_sensor.opentherm_gw.markdown @@ -0,0 +1,24 @@ +--- +layout: page +title: "OpenTherm Gateway Binary Sensor" +description: "Expose internal data from the OpenTherm Gateway." +date: 2018-10-19 18:23 +sidebar: true +comments: false +sharing: true +footer: true +logo: opentherm.png +ha_category: Binary Sensor +ha_release: 0.81 +ha_iot_class: "Local Push" +--- + +The `opentherm_gw` binary sensor platform is used to expose internal data from the [OpenTherm Gateway](http://otgw.tclcode.com/) in Home Assistant. + +# {% linkable_title Configuration %} + +Configuration of this platform is achieved through the [OpenTherm Gateway Hub](/components/opentherm_gw/) configuration. + +

+The OpenTherm protocol is based on polling. The thermostat sends requests to the boiler at specific intervals. As a result, it may take some time for changes to propagate between Home Assistant and the thermostat. +

diff --git a/source/_components/binary_sensor.openuv.markdown b/source/_components/binary_sensor.openuv.markdown index 0eda9c2426d..9b93806fa72 100644 --- a/source/_components/binary_sensor.openuv.markdown +++ b/source/_components/binary_sensor.openuv.markdown @@ -16,4 +16,3 @@ ha_iot_class: "Cloud Polling" The `openuv` binary sensor platform allows you to view binary sensor data from [OpenUV](http://openuv.io). You must have the [`openuv` component](/components/openuv/) configured to use this platform. After configuring that component, binary sensors will automatically appear. - diff --git a/source/_components/binary_sensor.pilight.markdown b/source/_components/binary_sensor.pilight.markdown index 85307be3d60..b8ac54c1e97 100644 --- a/source/_components/binary_sensor.pilight.markdown +++ b/source/_components/binary_sensor.pilight.markdown @@ -67,6 +67,8 @@ reset_delay_sec: default: 30 {% endconfiguration %} +## {% linkable_title Full example %} + A full configuration example could look like this: ```yaml diff --git a/source/_components/binary_sensor.ping.markdown b/source/_components/binary_sensor.ping.markdown index 193297cbd88..0a8d1390908 100644 --- a/source/_components/binary_sensor.ping.markdown +++ b/source/_components/binary_sensor.ping.markdown @@ -13,7 +13,6 @@ ha_release: 0.43 ha_qa_scale: internal --- - The `ping` binary sensor platform allows you to using `ping` to send ICMP echo requests. This way you can check if a given host is online and determine the round trip times from your Home Assistant instance to that system. ## {% linkable_title Configuration %} @@ -26,6 +25,7 @@ binary_sensor: - platform: ping host: 192.168.0.1 ``` + {% configuration %} host: description: The IP address or hostname of the system you want to track. @@ -40,10 +40,10 @@ name: description: Let you overwrite the name of the device. required: false type: string - default: "`Ping Binary sensor`" + default: Ping Binary sensor {% endconfiguration %} -The sensor exposes the different round trip times values measured by `ping` as attributes: +The sensor exposes the different round trip times values measured by `ping` as attributes: - `round trip time mdev` - `round trip time avg` @@ -64,4 +64,3 @@ binary_sensor:

When run on Windows systems, the round trip time attributes are rounded to the nearest millisecond and the mdev value is unavailable.

- diff --git a/source/_components/binary_sensor.raincloud.markdown b/source/_components/binary_sensor.raincloud.markdown index 5b853e13126..004c750bf57 100644 --- a/source/_components/binary_sensor.raincloud.markdown +++ b/source/_components/binary_sensor.raincloud.markdown @@ -25,8 +25,15 @@ binary_sensor: - platform: raincloud ``` -Configuration variables: - -- **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. - - **is_watering**: Return if is currently watering per zone. - - **status**: Return status from the Melnor RainCloud Controller and Melnor RainCloud Faucet. +{% configuration %} +monitored_conditions: + description: Conditions to display in the frontend. The following conditions can be monitored. + required: false + type: list + default: If not specified,, all conditions below will be enabled + keys: + is_watering: + description: Return if is currently watering per zone. + status: + description: Return status from the Melnor RainCloud Controller and Melnor RainCloud Faucet. +{% endconfiguration %} diff --git a/source/_components/binary_sensor.rainmachine.markdown b/source/_components/binary_sensor.rainmachine.markdown index 60cc6d982c3..0a3072ad0b6 100644 --- a/source/_components/binary_sensor.rainmachine.markdown +++ b/source/_components/binary_sensor.rainmachine.markdown @@ -14,7 +14,7 @@ ha_release: 0.71 --- The `rainmachine` binary sensor platform allows you to view crucial sensor data -within a [RainMachine smart Wi-Fi sprinkler controller](http://www.rainmachine.com/). +within a [RainMachine smart Wi-Fi sprinkler controller](http://www.rainmachine.com/).

You must have the [RainMachine component](https://www.home-assistant.io/components/rainmachine/) diff --git a/source/_components/binary_sensor.random.markdown b/source/_components/binary_sensor.random.markdown index b398a2c9a43..1a17bc91cb4 100644 --- a/source/_components/binary_sensor.random.markdown +++ b/source/_components/binary_sensor.random.markdown @@ -31,5 +31,5 @@ name: description: Name to use in the frontend. required: false type: string + default: Random Binary Sensor {% endconfiguration %} - diff --git a/source/_components/binary_sensor.raspihats.markdown b/source/_components/binary_sensor.raspihats.markdown index be5891b19be..05d4b5cbac8 100644 --- a/source/_components/binary_sensor.raspihats.markdown +++ b/source/_components/binary_sensor.raspihats.markdown @@ -35,16 +35,44 @@ binary_sensor: name: PIR Bedroom ``` -Configuration variables: - -- **i2c_hats** (*Optional*): Array of used I2C-HATs. - - **board** (*Required*): The board name [Di16, Di6Rly6, DI16ac, DI6acDQ6rly]. - - **address** (*Required*): The board I2C address, hex value. - - **channels** (*Required*): Array of used digital input channels. - - **index** (*Required*): Digital input channel index. - - **name** (*Required*): Friendly name to use for the frontend. - - **invert_logic** (*Optional*): Inverts the input logic, default is `false`. - - **device_class** (*Optional*): See device classes in [binary_sensor component](/components/binary_sensor/), default is `None` +{% configuration %} +i2c_hats: + description: An array of used I2C-HATs. + required: false + type: list + keys: + board: + description: The board name either Di16, Di6Rly6, DI16ac or DI6acDQ6rly. + required: true + type: string + address: + description: The board I2C address as HEX value. + required: true + type: string + channels: + description: Array of used digital input channels. + required: true + type: list + keys: + index: + description: Digital input channel index. + required: true + type: integer + name: + description: Friendly name to use for the frontend. + required: true + type: string + invert_logic: + description: Inverts the input logic. + required: false + default: false + type: boolean + device_class: + description: See device classes in [binary_sensor component](/components/binary_sensor/). + required: false + default: "None" + type: string +{% endconfiguration %} ## {% linkable_title Directions for installing smbus support on Raspberry Pi %} diff --git a/source/_components/binary_sensor.rest.markdown b/source/_components/binary_sensor.rest.markdown index 7c36530f59a..dbb0cd102cc 100644 --- a/source/_components/binary_sensor.rest.markdown +++ b/source/_components/binary_sensor.rest.markdown @@ -33,6 +33,8 @@ The JSON messages can contain different values like `1`, `"1"`, } ``` +## {% linkable_title Configuration %} + To enable this sensor, add the following lines to your `configuration.yaml` file for a GET request: diff --git a/source/_components/binary_sensor.rflink.markdown b/source/_components/binary_sensor.rflink.markdown new file mode 100644 index 00000000000..9e9bee2a3c9 --- /dev/null +++ b/source/_components/binary_sensor.rflink.markdown @@ -0,0 +1,95 @@ +--- +layout: page +title: "RFLink Binary Sensor" +description: "Instructions on how to integrate RFLink binary sensors into Home Assistant." +date: 2018-10-04 +sidebar: true +comments: false +sharing: true +footer: true +logo: rflink.png +ha_category: Binary Sensor +ha_iot_class: "Local Push" +ha_release: "0.81" +--- + +The `rflink` component supports devices that use [RFLink gateway firmware](http://www.nemcon.nl/blog2/), for example, the [Nodo RFLink Gateway](https://www.nodo-shop.nl/nl/21-rflink-gateway). RFLink gateway is an Arduino firmware that allows two-way communication with a multitude of RF wireless devices using cheap hardware (Arduino + transceiver). + +First, you have to set up your [RFLink hub](/components/rflink/). + +The RFLink component does not know the difference between a `binary_sensor`, a `switch` and a `light`. Therefore all switchable devices are automatically added as `light` by default. + +RFLink binary_sensor/switch/light ID's are composed of: protocol, id, switch/channel. For example: `newkaku_0000c6c2_1`. + +Once the ID of a binary sensor is known, it can be used to configure it as a binary sensor type in Home Assistant, for example, to hide it or configure a nice name. + +Configuring a device as a binary sensor: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: rflink + devices: + pt2262_00174754_0: {} +``` + +{% configuration %} +devices: + description: A list of binary sensors. + required: false + type: map + keys: + rflink_ids: + description: RFLink ID of the device + required: true + type: map + keys: + name: + description: Name of the device, defaults to RFLink ID. + required: false + type: string + aliases: + description: Alternative RFLink ID's this device is known by. + required: false + type: list + device_class: + description: The [type or class of the sensor](/components/binary_sensor/) to set the icon in the frontend. + required: false + type: string + off_delay: + description: For sensors that only sends 'On' state updates, this variable sets a delay after which the sensor state will be updated back to 'Off'. + required: false + type: int + force_update: + description: Sends update events even if the value has not changed. Useful for sensors that only sends `On`. + required: false + type: boolean + default: false +{% endconfiguration %} + +### {% linkable_title Sensor state %} + +Initially, the state of a binary sensor is unknown. When a sensor update is received, the state is known and will be shown in the frontend. + +### {% linkable_title Device support %} + +See [device support](/components/rflink/#device-support) + +### {% linkable_title Additional configuration examples %} + +Multiple sensors with custom name and device class and set off_delay + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: rflink + devices: + pt2262_00174754_0: + name: PIR Entrance + device_class: motion + off_delay: 5 + pt2262_00174758_0: + name: PIR Living Room + device_class: motion + off_delay: 5 +``` diff --git a/source/_components/binary_sensor.rfxtrx.markdown b/source/_components/binary_sensor.rfxtrx.markdown index 186d64bfed9..99470e2be45 100644 --- a/source/_components/binary_sensor.rfxtrx.markdown +++ b/source/_components/binary_sensor.rfxtrx.markdown @@ -21,7 +21,7 @@ them may be recognized under the X10 protocol but most of them are recognized under the *Lighting4* protocol. The rfxtrx binary sensor component provides some special options for them, while other rfxtrx protocols should work too. -# Setting up your devices +## {% linkable_title Setting up your devices %} Once you have set up your [rfxtrx hub](/components/rfxtrx/), the easiest way to find your binary sensors is to add this to your `configuration.yaml`: @@ -50,11 +50,47 @@ binary_sensor: name: device_name ``` -Configuration variables: - -- **automatic_add** (*Optional*): To enable the automatic addition of new binary sensors. -- **device_class** (*Optional*): The [type or class of the sensor](/components/binary_sensor/) to set the icon in the frontend. -- **off_delay** (*Optional*): For sensors that only sends 'On' state updates, this variable sets a delay after which the sensor state will be updated back to 'Off'. +{% configuration %} +devices: + description: A list of devices. + required: false + type: list + keys: + name: + description: Override the name to use in the frontend. + required: false + type: string + device_class: + description: "The [type or class of the sensor](/components/binary_sensor/) to set the icon in the frontend." + required: false + type: device_class + fire_event: + description: Fires an event even if the state is the same as before. Can be used for automations. + required: false + type: boolean + default: false + off_delay: + description: For sensors that only sends 'On' state updates, this variable sets a delay after which the sensor state will be updated back to 'Off'. + required: false + type: integer + data_bits: + description: Defines how many bits are used for commands inside the data packets sent by the device. + required: false + type: integer + command_on: + description: Defines the data bits value that is sent by the device upon an 'On' command. + required: false + type: string + command_off: + description: Defines the data bits value that is sent by the device upon an 'Off' command. + required: false + type: string +automatic_add: + description: To enable the automatic addition of new binary sensors. + required: false + type: boolean + default: false +{% endconfiguration %}

This component and the [rfxtrx switch](/components/switch/rfxtrx/) can steal each other's devices when setting the `automatic_add` configuration parameter to `true`. @@ -95,7 +131,7 @@ binary_sensor: seconds: 5 ``` -## Options for PT-2262 devices under the Lighting4 protocol +### {% linkable_title Options for PT-2262 devices under the Lighting4 protocol %} When a data packet is transmitted by a PT-2262 device using the Lighting4 protocol, there is no way to automatically extract the device identifier and the @@ -104,9 +140,9 @@ and the fields lengths are not included in the data. One device that sends 2 different commands will be seen as 2 devices on Home Assistant. For such cases, the following options are available in order to circumvent the problem: -- **data_bits** (*Optional*): Defines how many bits are used for commands inside the data packets sent by the device. -- **command_on** (*Optional*): Defines the data bits value that is sent by the device upon an 'On' command. -- **command_off** (*Optional*): Defines the data bits value that is sent by the device upon an 'Off' command. +- **data_bits** (*Optional*) +- **command_on** (*Optional*) +- **command_off** (*Optional*) Let's try to add a new PT-2262 sensor using the "automatic_add" option and have a look at Home Assistant system log. @@ -165,7 +201,7 @@ This automatic guess should work most of the time but there is no guarantee on that. You should activate it only when you want to configure your new devices and leave it off otherwise. -## Known working devices +### {% linkable_title Known working devices %} The following devices are known to work with the rfxtrx binary sensor component. There are too many other to list. diff --git a/source/_components/binary_sensor.rpi_gpio.markdown b/source/_components/binary_sensor.rpi_gpio.markdown index 5b95daed1ca..8494c3af37c 100644 --- a/source/_components/binary_sensor.rpi_gpio.markdown +++ b/source/_components/binary_sensor.rpi_gpio.markdown @@ -28,13 +28,33 @@ binary_sensor: 12: PIR Bedroom ``` -Configuration variables: - -- **ports** array (*Required*): Array of used ports. - - **port: name** (*Required*): Port numbers (BCM mode pin numbers) and corresponding names. -- **pull_mode** (*Optional*): The internal pull to use (UP or DOWN). Default is UP. -- **bouncetime** (*Optional*): The time in milliseconds for port debouncing. Default is 50ms. -- **invert_logic** (*Optional*): If true, inverts the output logic to ACTIVE LOW. Default is false (ACTIVE HIGH). +{% configuration %} +ports: + description: List of used ports. + required: true + type: map + keys: + "port: name": + description: The port numbers (BCM mode pin numbers) and corresponding names. + required: true + type: string +bouncetime: + description: The time in milliseconds for port debouncing. + required: false + type: integer + default: 50 +invert_logic: + description: If `true`, inverts the output logic to ACTIVE LOW. + required: false + type: boolean + default: "`false` (ACTIVE HIGH)" +pull_mode: + description: > + Type of internal pull resistor to use. + Options are `UP` - pull-up resistor and `DOWN` - pull-down resistor. + required: false + type: string + default: "`UP`" +{% endconfiguration %} For more details about the GPIO layout, visit the Wikipedia [article](https://en.wikipedia.org/wiki/Raspberry_Pi#GPIO_connector) about the Raspberry Pi. - diff --git a/source/_components/binary_sensor.rpi_pfio.markdown b/source/_components/binary_sensor.rpi_pfio.markdown index 29cda1530da..7dad33505d0 100644 --- a/source/_components/binary_sensor.rpi_pfio.markdown +++ b/source/_components/binary_sensor.rpi_pfio.markdown @@ -32,11 +32,29 @@ binary_sensor: settle_time: 50 ``` -Configuration variables: - -- **ports** array (*Required*): Array of used ports. - - **num** (*Required*): Port number. - - **name** (*Required*): Port name. - - **settle_time** (*Optional*): The time in milliseconds for port debouncing. Default is 2 0ms. - - **invert_logic** (*Optional*): If true, inverts the output logic to ACTIVE LOW. Default is false (ACTIVE HIGH). - +{% configuration %} +ports: + description: List of used ports. + required: true + type: map + keys: + num: + description: The port number. + required: true + type: map + keys: + name: + description: The port name. + required: true + type: string + settle_time: + description: The time in milliseconds for port debouncing. + required: false + type: integer + default: 20 + invert_logic: + description: If `true`, inverts the output logic to ACTIVE LOW. + required: false + type: boolean + default: "`false` (ACTIVE HIGH)" +{% endconfiguration %} diff --git a/source/_components/binary_sensor.skybell.markdown b/source/_components/binary_sensor.skybell.markdown index 5ca42b98c33..4f3d63d7c35 100644 --- a/source/_components/binary_sensor.skybell.markdown +++ b/source/_components/binary_sensor.skybell.markdown @@ -30,9 +30,9 @@ binary_sensor: {% configuration %} monitored_conditions: - type: list - required: true description: Conditions to display in the frontend. The following conditions can be monitored. + required: true + type: list keys: button: description: Returns whether the doorbell button was pressed. diff --git a/source/_components/binary_sensor.spc.markdown b/source/_components/binary_sensor.spc.markdown index 624bebfff2a..86fe817f8ad 100644 --- a/source/_components/binary_sensor.spc.markdown +++ b/source/_components/binary_sensor.spc.markdown @@ -13,8 +13,8 @@ ha_category: Binary Sensor ha_iot_class: "Local Push" --- -The `spc` platform allows you to get data from your [Vanderbilt SPC](http://www.spc-intruder-detection.com/ssp-spc/) binary sensors from within Home Assistant. +The `spc` platform allows you to get data from your [Vanderbilt SPC](http://www.spc-intruder-detection.com/ssp-spc/) binary sensors from within Home Assistant. Check the [type/class](/components/binary_sensor/) list for a possible visualization of your zone. Currently motion, smoke and door sensors are supported. - + The requirement is that you have setup your [SPC hub](/components/spc/). diff --git a/source/_components/binary_sensor.tapsaff.markdown b/source/_components/binary_sensor.tapsaff.markdown index 233596e6bd1..8f7c512487e 100644 --- a/source/_components/binary_sensor.tapsaff.markdown +++ b/source/_components/binary_sensor.tapsaff.markdown @@ -14,8 +14,9 @@ ha_release: 0.47 ha_iot_class: "Local Polling" --- +The `tapsaff` binary sensor provides the 'Taps Aff' status for a given location within the UK using [Taps Aff](http://www.taps-aff.co.uk). -The `tapsaff` binary sensor provides the 'Taps Aff' status for a given location within the UK using [Taps Aff](http://www.taps-aff.co.uk). +## {% linkable_title Configuration %} To enable this sensor, add the following lines to your `configuration.yaml`: @@ -26,7 +27,14 @@ binary_sensor: location: glasgow ``` -Configuration variables: - -- **location** (*Required*): The location for the Taps Aff. It must be configured with a UK postcode or city to work. -- **name** (*Optional*): The name to use when displaying this sensor. +{% configuration %} +location: + description: The location for the Taps Aff. It must be configured with a UK postcode or city to work. + required: true + type: string +name: + description: The name to use when displaying this sensor. + required: false + type: string + default: Taps Aff +{% endconfiguration %} diff --git a/source/_components/binary_sensor.tcp.markdown b/source/_components/binary_sensor.tcp.markdown index e5651d954b6..21242113632 100644 --- a/source/_components/binary_sensor.tcp.markdown +++ b/source/_components/binary_sensor.tcp.markdown @@ -14,53 +14,57 @@ ha_release: 0.14 The TCP Binary Sensor is a type of [TCP Sensor](/components/sensor.tcp/) which is either "off" or "on". In order to use this sensor type, in addition to the configuration for the TCP Sensor, you must supply a `value_on` value to represent what is returned when the device is turned on. +## {% linkable_title Configuration %} + To enable this sensor, add the following lines to your `configuration.yaml`: ```yaml -binary_sensor: # Example configuration.yaml entry - platform: tcp - name: TCP Binary Sensor - host: IP_ADDRESS - port: PORT - payload: "r State\n" - value_on: 1 - timeout: 5 +binary_sensor: + - platform: tcp + name: TCP Binary Sensor + host: IP_ADDRESS + port: PORT + payload: "r State\n" + value_on: 1 + timeout: 5 ``` -Configuration options for the a TCP Sensor: - {% configuration %} name: - required: true - description: The name you'd like to give the sensor in Home Assistant. - type: string + description: The name you'd like to give the sensor in Home Assistant. + required: false + type: string + default: TCP Sensor host: - required: true - description: The hostname/IP address to connect to. - type: string + description: The hostname/IP address to connect to. + required: true + type: string port: - required: true - description: The port to connect to the host on. - type: integer + description: The port to connect to the host on. + required: true + type: integer payload: - required: true - description: What to send to the host in order to get the response we're interested in. - type: string + description: What to send to the host in order to get the response we're interested in. + required: true + 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 + description: The value returned when the device is "on". + required: true + type: string 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 + description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the value. + required: false + type: template + default: entire response is the value 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 + 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. + required: false + type: integer + default: 1024 +timeout: + description: How long in seconds to wait for a response from the service before giving up and disconnecting. + required: false + type: integer + default: 10 +{% endconfiguration %} diff --git a/source/_components/binary_sensor.tellduslive.markdown b/source/_components/binary_sensor.tellduslive.markdown index fc0b988bbf2..8fea7f57c3e 100644 --- a/source/_components/binary_sensor.tellduslive.markdown +++ b/source/_components/binary_sensor.tellduslive.markdown @@ -13,4 +13,3 @@ featured: false --- Integrates Telldus Live binary sensors into Home Assistant. See the [main component](/components/tellduslive/) for configuration instructions. - diff --git a/source/_components/binary_sensor.template.markdown b/source/_components/binary_sensor.template.markdown index d2365b7638c..4462349926f 100644 --- a/source/_components/binary_sensor.template.markdown +++ b/source/_components/binary_sensor.template.markdown @@ -14,10 +14,12 @@ 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`. +## {% linkable_title Configuration %} + To enable Template Binary Sensors in your installation, add the following to your `configuration.yaml` file: @@ -34,50 +36,50 @@ binary_sensor: ``` {% endraw %} -{% configuration binary_sensor.template %} - sensors: - description: List of your sensors. - required: true - type: map - keys: - sensor_name: - description: The slug of the sensor. - required: true - type: map - keys: - friendly_name: - description: Name to use in the frontend. - required: false - type: string - entity_id: - description: A list of entity IDs so the sensor only reacts to state changes of these entities. This can be used if the automatic analysis fails to find all relevant entities. - required: false - type: string, list - device_class: - description: The type/class of the sensor to set the icon in the frontend. - required: false - type: device_class - default: None - value_template: - description: Defines a template to set the state of the sensor. - required: true - type: template - icon_template: - description: Defines a template for the icon of the sensor. - required: false - type: template - entity_picture_template: - description: Defines a template for the entity picture of the sensor. - required: false - type: template - delay_on: - description: The amount of time the template state must be ***met*** before this sensor will switch to `on`. - required: false - type: time - delay_off: - description: The amount of time the template state must be ***not met*** before this sensor will switch to `off`. - required: false - type: time +{% configuration %} +sensors: + description: List of your sensors. + required: true + type: map + keys: + sensor_name: + description: The slug of the sensor. + required: true + type: map + keys: + friendly_name: + description: Name to use in the frontend. + required: false + type: string + entity_id: + description: A list of entity IDs so the sensor only reacts to state changes of these entities. This can be used if the automatic analysis fails to find all relevant entities. + required: false + type: string, list + device_class: + description: The type/class of the sensor to set the icon in the frontend. + required: false + type: device_class + default: None + value_template: + description: Defines a template to set the state of the sensor. + required: true + type: template + icon_template: + description: Defines a template for the icon of the sensor. + required: false + type: template + entity_picture_template: + description: Defines a template for the entity picture of the sensor. + required: false + type: template + delay_on: + description: The amount of time the template state must be ***met*** before this sensor will switch to `on`. + required: false + type: time + delay_off: + description: The amount of time the template state must be ***not met*** before this sensor will switch to `off`. + required: false + type: time {% endconfiguration %} ## {% linkable_title Considerations %} diff --git a/source/_components/binary_sensor.tesla.markdown b/source/_components/binary_sensor.tesla.markdown index 4561d8e4c8f..4d0587f4acd 100644 --- a/source/_components/binary_sensor.tesla.markdown +++ b/source/_components/binary_sensor.tesla.markdown @@ -14,7 +14,7 @@ ha_release: 0.53 --- The `tesla` platform allows you to get data from your [Tesla](https://www.tesla.com/) sensors from within Home Assistant. - + They will be automatically discovered if the Tesla component is loaded. For more configuration information see the [Tesla component](/components/tesla/) documentation. diff --git a/source/_components/binary_sensor.threshold.markdown b/source/_components/binary_sensor.threshold.markdown index a512fff4d2f..f3a0a39bc4e 100644 --- a/source/_components/binary_sensor.threshold.markdown +++ b/source/_components/binary_sensor.threshold.markdown @@ -14,7 +14,6 @@ ha_release: 0.34 ha_qa_scale: internal --- - The `threshold` binary sensor platform observes the state of another sensor. If the value is below (`lower`) or higher (`upper`) than the given threshold then state of the threshold sensor is changed. It support also a range if `lower` and `upper` are given. If the sensor is configured with no hysteresis and the sensor value is equal to the threshold, the sensor is turned off since it is not `lower` or `upper` with respect to the threshold. @@ -61,6 +60,5 @@ name: description: Name of the sensor to use in the frontend. required: false type: string - default: + default: Threshold {% endconfiguration %} - diff --git a/source/_components/binary_sensor.vera.markdown b/source/_components/binary_sensor.vera.markdown index d5e5d9fb14d..b0be093c688 100644 --- a/source/_components/binary_sensor.vera.markdown +++ b/source/_components/binary_sensor.vera.markdown @@ -14,5 +14,5 @@ ha_release: pre 0.7 --- The `vera` platform allows you to get data from your [Vera](http://getvera.com/) binary sensors from within Home Assistant. - + They will be automatically discovered if the vera component is loaded. diff --git a/source/_components/binary_sensor.verisure.markdown b/source/_components/binary_sensor.verisure.markdown index 1f9b9f0f4e3..370dff6e88e 100644 --- a/source/_components/binary_sensor.verisure.markdown +++ b/source/_components/binary_sensor.verisure.markdown @@ -16,4 +16,4 @@ Integrates Verisure binary sensors into Home Assistant. See the [main component] The following binary sensor types are supported: -Door & Window +- Door & Window diff --git a/source/_components/binary_sensor.vultr.markdown b/source/_components/binary_sensor.vultr.markdown index a78cb30dc37..bd71ac62b8a 100644 --- a/source/_components/binary_sensor.vultr.markdown +++ b/source/_components/binary_sensor.vultr.markdown @@ -15,6 +15,8 @@ ha_iot_class: "Cloud Polling" The `vultr` binary sensor platform allows you to monitor your [Vultr](https://www.vultr.com/) subscription to see if it is powered on or not. +## {% linkable_title Configuration %} + To use this binary sensor, you first have to set up your [Vultr hub](/components/vultr/).

@@ -42,6 +44,7 @@ name: type: string {% endconfiguration %} +## {% linkable_title Full example %} Full `configuration.yaml` (produces `binary_sensor.totally_awesome_server`): @@ -51,4 +54,3 @@ binary_sensor: name: totally_awesome_server subscription: 12345 ``` - diff --git a/source/_components/binary_sensor.wink.markdown b/source/_components/binary_sensor.wink.markdown index 1d23f5bf7c1..1633d206bc9 100644 --- a/source/_components/binary_sensor.wink.markdown +++ b/source/_components/binary_sensor.wink.markdown @@ -13,12 +13,10 @@ ha_release: 0.14 ha_iot_class: "Cloud Polling" --- - The Wink binary sensor platform allows you to get data from your [Wink](http://www.wink.com/) binary sensors. The requirement is that you have setup [Wink](/components/wink/). - ### {% linkable_title Supported Binary sensor devices %} - Smoke and CO detectors (No Wink hub required for Nest) @@ -36,4 +34,3 @@ The requirement is that you have setup [Wink](/components/wink/).

The above devices are confirmed to work, but others may work as well.

- diff --git a/source/_components/binary_sensor.wirelesstag.markdown b/source/_components/binary_sensor.wirelesstag.markdown index a98a129255b..f7b50106887 100644 --- a/source/_components/binary_sensor.wirelesstag.markdown +++ b/source/_components/binary_sensor.wirelesstag.markdown @@ -56,4 +56,3 @@ monitored_conditions: battery: description: On means tag battery is low, Off means normal. {% endconfiguration %} - diff --git a/source/_components/binary_sensor.workday.markdown b/source/_components/binary_sensor.workday.markdown index c589e08bcfd..1427b7e0ad4 100644 --- a/source/_components/binary_sensor.workday.markdown +++ b/source/_components/binary_sensor.workday.markdown @@ -45,13 +45,13 @@ name: country: description: > Country code according to - [holidays](https://pypi.python.org/pypi/holidays/0.9.4) notation. + [holidays](https://pypi.org/project/holidays/) notation. required: true type: string province: description: > Province code according to - [holidays](https://pypi.python.org/pypi/holidays/0.9.4) notation. + [holidays](https://pypi.org/project/holidays/) notation. required: false type: string workdays: @@ -82,6 +82,8 @@ If you use the sensor for Canada (`CA`) with Ontario (`ON`) as `province:` then Otherwise the value is evaluated as `true` (check the YAML documentation for further details) and the sensor will not work.

+## {% linkable_title Automation example %} + Example usage for automation: ```yaml @@ -98,3 +100,9 @@ automation: service: switch.turn_on entity_id: switch.heater ``` + +

+Please remember that [as explained here][devices] you can only have a single `automation:` entry. Add the automation to your existing automations. +

+ +[devices]: https://www.home-assistant.io/docs/configuration/devices/ diff --git a/source/_components/binary_sensor.xiaomi_aqara.markdown b/source/_components/binary_sensor.xiaomi_aqara.markdown index 190d72b2c3c..688cbf1a15d 100644 --- a/source/_components/binary_sensor.xiaomi_aqara.markdown +++ b/source/_components/binary_sensor.xiaomi_aqara.markdown @@ -13,15 +13,13 @@ ha_release: "0.50" ha_iot_class: "Local Push" --- - The `xiaomi aqara` binary sensor platform allows you to get data from your [Xiaomi](http://www.mi.com/en/) binary sensors. The requirement is that you have setup the [`xiaomi aqara` component](/components/xiaomi_aqara/). - ### {% linkable_title Type of sensors supported %} -| Name | ZigBee entity | Model no. | States | Event | Event key | Event values | +| Name | Zigbee entity | Model no. | States | Event | Event key | Event values | | ---- | ------------- | --------- | ------ | ----- | --------- | ------------ | | Motion Sensor (1st gen) | motion | RTCGQ01LM | on, off | `motion` | | | | Motion Sensor (2nd gen) | sensor_motion.aq2 | RTCGQ11LM | on, off | `motion` | | | diff --git a/source/_components/binary_sensor.zha.markdown b/source/_components/binary_sensor.zha.markdown index df5853d6700..94910f8892a 100644 --- a/source/_components/binary_sensor.zha.markdown +++ b/source/_components/binary_sensor.zha.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "ZigBee Home Automation Binary Sensor" -description: "Instructions on how to setup ZigBee Home Automation binary sensors within Home Assistant." +title: "Zigbee Home Automation Binary Sensor" +description: "Instructions on how to setup Zigbee Home Automation binary sensors within Home Assistant." date: 2017-02-22 00:00 sidebar: true comments: false @@ -12,4 +12,4 @@ ha_category: Binary Sensor ha_iot_class: "Local Polling" --- -To get your ZigBee binary sensors working with Home Assistant, follow the instructions for the general [ZigBee Home Automation component](/components/zha/). +To get your Zigbee binary sensors working with Home Assistant, follow the instructions for the general [Zigbee Home Automation component](/components/zha/). diff --git a/source/_components/binary_sensor.zigbee.markdown b/source/_components/binary_sensor.zigbee.markdown index 60f8aac30e1..df7d273e209 100644 --- a/source/_components/binary_sensor.zigbee.markdown +++ b/source/_components/binary_sensor.zigbee.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "ZigBee Binary Sensor" -description: "Instructions on how to set up ZigBee binary sensors within Home Assistant." +title: "Zigbee Binary Sensor" +description: "Instructions on how to set up Zigbee binary sensors within Home Assistant." date: 2016-01-28 12:38 sidebar: true comments: false @@ -13,7 +13,9 @@ ha_release: 0.12 ha_iot_class: "Local Polling" --- -A `zigbee` binary sensor in this context is a device connected to one of the digital input pins on a [ZigBee](http://www.zigbee.org/) module. The states reported by such a device are limited to `on` or `off`. By default, a binary sensor is considered `on` when the ZigBee device's digital input pin is held 'high' and considered `off` when it is held `low`. This behavior can be inverted by setting the `on_state` configuration variable to `low`. +A `zigbee` binary sensor in this context is a device connected to one of the digital input pins on a [Zigbee](http://www.zigbee.org/) module. The states reported by such a device are limited to `on` or `off`. By default, a binary sensor is considered `on` when the Zigbee device's digital input pin is held 'high' and considered `off` when it is held `low`. This behavior can be inverted by setting the `on_state` configuration variable to `low`. + +## {% linkable_title Configuration %} To enable a digital input pin as binary sensor in your installation, add the following lines to your `configuration.yaml`: @@ -35,7 +37,7 @@ pin: required: true type: integer address: - description: The long 64-bit address of the remote ZigBee device whose digital input pin you'd like to sample. Do not include this variable if you want to sample the local ZigBee device's pins. + description: The long 64-bit address of the remote Zigbee device whose digital input pin you'd like to sample. Do not include this variable if you want to sample the local Zigbee device's pins. required: false type: string on_state: diff --git a/source/_components/blink.markdown b/source/_components/blink.markdown index 2a26969ceab..953c77c1375 100644 --- a/source/_components/blink.markdown +++ b/source/_components/blink.markdown @@ -62,7 +62,7 @@ sensors: description: The conditions to create sensors from. required: false type: list - default: all (`battery`, `temperature`, `status`, `wifi_strength`) + default: all (`battery`, `temperature`, `wifi_strength`) {% endconfiguration %} Once Home Assistant starts, the `blink` component will create the following platforms: @@ -74,11 +74,7 @@ Once Home Assistant starts, the `blink` component will create the following plat 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. -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. -- `armed`: System and camera are armed and detecting motion. +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**. Below is an example showing every possible entry: @@ -96,7 +92,6 @@ blink: monitored_conditions: - battery - temperature - - status - wifi_strength ``` @@ -134,4 +129,4 @@ homeassistant: ### {% 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. +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 064d426cbb8..221e893d27e 100644 --- a/source/_components/bmw_connected_drive.markdown +++ b/source/_components/bmw_connected_drive.markdown @@ -23,6 +23,8 @@ This component provides the following platforms: - Lock: Control the lock of your car. - Sensors: Mileage, remaining range, remaining fuel, charging time remaining (electric cars), charging status (electric cars), remaining range electric (electric cars). + ## {% linkable_title Configuration %} + To enable this component in your installation, add the following to your `configuration.yaml` file: @@ -78,13 +80,13 @@ The vehicle can be locked and unlocked via the lock component that is created au The air condition of the vehicle can be activated with the service `bmw_connected_drive.activate_air_conditioning`. -What exactly is started here depends on the type of vehicle. It might range from just ventilation over auxiliary heating to real air conditioning. If your vehicle is equipped with auxiliary heating, only trigger this service if the vehicle is parked in a location where it is safe to use it (e.g., not in an underground parking or closed garage). +What exactly is started here depends on the type of vehicle. It might range from just ventilation over auxiliary heating to real air conditioning. If your vehicle is equipped with auxiliary heating, only trigger this service if the vehicle is parked in a location where it is safe to use it (e.g., not in an underground parking or closed garage). The vehicle is identified via the parameter `vin`. ### {% linkable_title Sound the horn %} -The service `bmw_connected_drive.sound_horn` sounds the horn of the vehicle. This option is not available in some countries (among which the UK). Use this feature responsibly, as it might annoy your neighbors. The vehicle is identified via the parameter `vin`. +The service `bmw_connected_drive.sound_horn` sounds the horn of the vehicle. This option is not available in some countries (among which the UK). Use this feature responsibly, as it might annoy your neighbors. The vehicle is identified via the parameter `vin`. ### {% linkable_title Flash the lights %} @@ -92,10 +94,10 @@ The service `bmw_connected_drive.light_flash` flashes the lights of the vehicle. ### {% linkable_title Update the state %} -The service `bmw_connected_drive.update_state` fetches the last state of the vehicles of all your accounts from the BMW server. This does *not* trigger an update from the vehicle; it gets the data from the BMW servers. So this service does *not* interact with your vehicles. +The service `bmw_connected_drive.update_state` fetches the last state of the vehicles of all your accounts from the BMW server. This does *not* trigger an update from the vehicle; it gets the data from the BMW servers. So this service does *not* interact with your vehicles. This service does not require any attributes. ## {% linkable_title Disclaimer %} -This software is not affiliated with or endorsed by BMW Group. +This software is not affiliated with or endorsed by BMW Group. diff --git a/source/_components/browser.markdown b/source/_components/browser.markdown index 7edd741593f..82741ab6fe0 100644 --- a/source/_components/browser.markdown +++ b/source/_components/browser.markdown @@ -12,9 +12,10 @@ ha_category: Utility ha_qa_scale: internal --- - The `browser` component provides a service to open URLs in the default browser on the host machine. +## {% linkable_title Configuration %} + To load this component, add the following lines to your `configuration.yaml`: ```yaml @@ -22,7 +23,7 @@ To load this component, add the following lines to your `configuration.yaml`: browser: ``` -#### {% linkable_title Service `browser/browse_url` %} +#### {% linkable_title Service `browser/browse_url` %} | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | diff --git a/source/_components/calendar.google.markdown b/source/_components/calendar.google.markdown index ffa9233da25..f47ee421ac3 100644 --- a/source/_components/calendar.google.markdown +++ b/source/_components/calendar.google.markdown @@ -177,7 +177,7 @@ Trigger as soon as an event starts: to: 'on' ``` -By using specific text in the event title, you can set conditions to initiate particular automation flows on designated events while other events will be ignored. +By using specific text in the event title, you can set conditions to initiate particular automation flows on designated events while other events will be ignored. For example, the actions following this condition will only be executed for events named 'vacation': diff --git a/source/_components/calendar.todoist.markdown b/source/_components/calendar.todoist.markdown index c416ddb50d7..36c6e844b78 100644 --- a/source/_components/calendar.todoist.markdown +++ b/source/_components/calendar.todoist.markdown @@ -13,7 +13,6 @@ ha_iot_class: "Cloud Polling" ha_release: 0.54 --- - This platform allows you to connect to your [Todoist Projects](https://todoist.com) and generate binary sensors. A different sensor will be created for each individual project, or you can specify "custom" projects which match against criteria you set (more on that below). These sensors will be `on` if you have a task due in that project or `off` if all the tasks in the project are completed or if the project doesn't have any tasks at all. All tasks get updated roughly every 15 minutes. ### {% linkable_title Prerequisites %} @@ -28,18 +27,36 @@ To integrate Todoist in Home Assistant, add the following section to your `confi # Example configuration.yaml entry calendar: - platform: todoist - token: API_token_created_from_steps_above + token: YOUR_API_TOKEN ``` -Configuration variables: - -- **token** (*Required*): The API token used to authorize Home Assistant to access your projects. -- **custom_projects** (*Optional*): Details on any "custom" binary sensor projects you want to create. - - **name** (*Required*): The name of your custom project. Only required if you specify that you want to create a custom project. - - **due_date_days** (*Optional*): Only include tasks due within this many days. If you don't have any tasks with a due date set, this returns nothing. - - **labels** (*Optional*): Only include tasks with at least one of these labels (i.e., this works as an `or` statement).. - - **include_projects** (*Optional*): Only include tasks in these projects. Tasks in all other projects will be ignored. - +{% configuration %} +token: + description: The API token used to authorize Home Assistant to access your projects. Above you have more info about it. + required: true + type: string +custom_projects: + description: Details on any "custom" binary sensor projects you want to create. + required: false + type: list + keys: + name: + description: The name of your custom project. Only required if you specify that you want to create a custom project. + required: true + type: string + due_date_days: + description: Only include tasks due within this many days. If you don't have any tasks with a due date set, this returns nothing. + required: false + type: integer + include_projects: + description: Only include tasks in these projects. Tasks in all other projects will be ignored. + required: false + type: list + labels: + description: Only include tasks with at least one of these labels (i.e., this works as an `or` statement). + required: false + type: list +{% endconfiguration %} ### {% linkable_title Custom Projects %} Creating custom projects is super-easy and quite powerful. All you need to run the basic Todoist projects is your API token, but if you wanted, you could go even deeper. Here's an example: @@ -48,7 +65,7 @@ Creating custom projects is super-easy and quite powerful. All you need to run t # Example configuration.yaml entry calendar: - platform: todoist - token: !secret todoist_token + token: YOUR_API_TOKEN custom_projects: - name: 'All Projects' - name: 'Due Today' diff --git a/source/_components/camera.amcrest.markdown b/source/_components/camera.amcrest.markdown index 73a6ca444f0..a4b5002bd7f 100644 --- a/source/_components/camera.amcrest.markdown +++ b/source/_components/camera.amcrest.markdown @@ -15,6 +15,8 @@ ha_release: 0.34 To get your [Amcrest](https://amcrest.com/) cameras working within Home Assistant, please follow the instructions for the general [Amcrest component](/components/amcrest). +## {% linkable_title Configuration %} + Once you have enabled the [Amcrest component](/components/amcrest), add the following to your `configuration.yaml` file: ```yaml diff --git a/source/_components/camera.android_ip_webcam.markdown b/source/_components/camera.android_ip_webcam.markdown index 8aa3455faa8..0084fcebdb1 100644 --- a/source/_components/camera.android_ip_webcam.markdown +++ b/source/_components/camera.android_ip_webcam.markdown @@ -13,9 +13,10 @@ ha_release: "0.40" ha_iot_class: "Local Polling" --- - The `android_ip_webcam` component adds a camera by default if you choose not to use the component but still want to see the video feed then the [`mjpeg` camera](/components/camera.mjpeg/) platform can be used. +## {% linkable_title Configuration %} + To enable only the camera in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -24,4 +25,3 @@ camera: - platform: mjpeg mjpeg_url: http://IP_ADDRESS:8080/video ``` - diff --git a/source/_components/camera.arlo.markdown b/source/_components/camera.arlo.markdown index a634e8d8d91..07b8fb3f726 100644 --- a/source/_components/camera.arlo.markdown +++ b/source/_components/camera.arlo.markdown @@ -17,6 +17,8 @@ To get your [Arlo](https://arlo.netgear.com/) cameras working within Home Assist This component is not yet able to live stream from your Arlo camera, but it will be able to playback the last video capture. +## {% linkable_title Configuration %} + Once you have enabled the [Arlo component](/components/arlo), add the following to your `configuration.yaml` file: ```yaml @@ -26,8 +28,11 @@ camera: ffmpeg_arguments: '-pred 1 -q:v 2' ``` -Configuration variables: - -- **ffmpeg_arguments**: (*Optional*): Extra options to pass to ffmpeg, e.g., image quality or video filter options. +{% configuration %} +ffmpeg_arguments: + description: Extra options to pass to ffmpeg, e.g., image quality or video filter options. + required: false + type: string +{% 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.bloomsky.markdown b/source/_components/camera.bloomsky.markdown index 6c600b20a84..aec143513a8 100644 --- a/source/_components/camera.bloomsky.markdown +++ b/source/_components/camera.bloomsky.markdown @@ -13,7 +13,6 @@ ha_release: 0.13 ha_iot_class: "Local Polling" --- - The `bloomsky` camera component allows you to view the current photo created by the camera in the [BloomSky](https://www.bloomsky.com) weather station. This can work in concert with [BloomSky sensors](/components/sensor.bloomsky). ## {% linkable_title Configuration %} diff --git a/source/_components/camera.canary.markdown b/source/_components/camera.canary.markdown index 8e5f07f461f..6d46258424b 100644 --- a/source/_components/camera.canary.markdown +++ b/source/_components/camera.canary.markdown @@ -17,6 +17,8 @@ The `canary` camera platform allows you to watch the live stream of your [Canary To add `canary` camera to your installation, follow instructions in [Canary component](/components/canary/). Once you have [Canary component](/components/canary/) setup, your [Canary](https://canary.is) camera(s) should show up automatically. +## {% linkable_title Configuration %} + You can add the following to your `configuration.yaml` file to configure `canary` camera with optional settings: ```yaml @@ -25,8 +27,8 @@ camera: ``` {% configuration %} - ffmpeg_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 +ffmpeg_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 %} diff --git a/source/_components/camera.dispatcher.markdown b/source/_components/camera.dispatcher.markdown index b0f3c63b851..05ceb99e2ca 100644 --- a/source/_components/camera.dispatcher.markdown +++ b/source/_components/camera.dispatcher.markdown @@ -19,6 +19,8 @@ This platform is meant for developers only. The `dispatcher` camera platform allows developers to create virtual camera's. +## {% linkable_title Configuration %} + You would normally not add this camera to your configuration directly but have it be discovered by one of the components that uses it. ```yaml diff --git a/source/_components/camera.doorbird.markdown b/source/_components/camera.doorbird.markdown index ce23d946725..4c0734e2695 100644 --- a/source/_components/camera.doorbird.markdown +++ b/source/_components/camera.doorbird.markdown @@ -19,6 +19,8 @@ The `doorbird` implementation allows you to view the live video and previous ima You must have the [DoorBird component](/components/doorbird/) configured to use this camera.

+## {% linkable_title Configuration %} + To enable the camera, add the following to your `configuration.yaml` file: ```yaml diff --git a/source/_components/camera.ffmpeg.markdown b/source/_components/camera.ffmpeg.markdown index e87ea211844..86f1c261f05 100644 --- a/source/_components/camera.ffmpeg.markdown +++ b/source/_components/camera.ffmpeg.markdown @@ -13,9 +13,10 @@ ha_release: 0.26 ha_iot_class: "Local Polling" --- - The `ffmpeg` platform allows you to use any video feed as a camera in Home Assistant via [FFmpeg](http://www.ffmpeg.org/). This video source must support multiple simultaneous reads, because for every concurrent Home Assistant user, a connection will be made to the source every 10 seconds. Normally this should not be a problem. +## {% linkable_title Configuration %} + To enable your FFmpeg feed in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -44,5 +45,4 @@ extra_arguments: You can control the image quality with [`extra_arguments`](https://www.ffmpeg.org/ffmpeg-codecs.html#jpeg2000) `-q:v 2-32` or with lossless option `-pred 1`. - If you are running into trouble with this sensor, please refer to the [Troubleshooting section](/components/ffmpeg/#troubleshooting). diff --git a/source/_components/camera.foscam.markdown b/source/_components/camera.foscam.markdown index 8215b0f2ffb..3a0cbb53fae 100644 --- a/source/_components/camera.foscam.markdown +++ b/source/_components/camera.foscam.markdown @@ -12,7 +12,6 @@ ha_category: Camera ha_iot_class: "Local Polling" --- - The `foscam` platform allows you to watch the live stream of your [Foscam](http://www.foscam.com/) IP camera in Home Assistant. ## {% linkable_title Configuration %} diff --git a/source/_components/camera.generic.markdown b/source/_components/camera.generic.markdown index a5c9d503d68..013a6bb8c06 100644 --- a/source/_components/camera.generic.markdown +++ b/source/_components/camera.generic.markdown @@ -8,16 +8,17 @@ comments: false sharing: true footer: true ha_category: Camera -logo: camcorder.png +logo: home-assistant.png ha_release: pre 0.7 ha_iot_class: "depends" --- - The `generic` camera platform allows you to integrate any IP camera or other URL into Home Assistant. Templates can be used to generate the URLs on the fly. Home Assistant will serve the images via its server, making it possible to view your IP cameras while outside of your network. The endpoint is `/api/camera_proxy/camera.[name]`. +## {% linkable_title Configuration %} + To enable this camera in your installation, add the following to your `configuration.yaml` file: ```yaml diff --git a/source/_components/camera.local_file.markdown b/source/_components/camera.local_file.markdown index cb870409c10..c94de28a5b7 100644 --- a/source/_components/camera.local_file.markdown +++ b/source/_components/camera.local_file.markdown @@ -17,6 +17,8 @@ The `local_file` camera platform allows you to integrate an image file from disk The `local_file` camera can for example be used with various camera platforms that save a temporary images locally. It can also be used to display a graph that you render periodically and will then be displayed in Home Assistant. +## {% linkable_title Configuration %} + To enable this camera in your installation, add the following to your `configuration.yaml` file: ```yaml diff --git a/source/_components/camera.logi_circle.markdown b/source/_components/camera.logi_circle.markdown index beed202eafa..20a742ffaef 100644 --- a/source/_components/camera.logi_circle.markdown +++ b/source/_components/camera.logi_circle.markdown @@ -35,8 +35,8 @@ camera: scan_interval: description: How frequently to query for new camera stills, value are in seconds. required: false - default: 60 type: integer + default: 60 {% endconfiguration %} ### {% linkable_title Service `camera.logi_circle_livestream_record` %} diff --git a/source/_components/camera.markdown b/source/_components/camera.markdown index 499481eb098..0231195e04c 100644 --- a/source/_components/camera.markdown +++ b/source/_components/camera.markdown @@ -9,10 +9,9 @@ sharing: true footer: true --- - The camera component allows you to use IP cameras with Home Assistant. With a little additional work you could use [USB cameras](/blog/2016/06/23/usb-webcams-and-home-assistant/) as well. -### {% linkable_title Service %} +### {% linkable_title Services %} Once loaded, the `camera` platform will expose services that can be called to perform various actions. @@ -82,4 +81,3 @@ A simple way to test if you have set up your `camera` platform correctly, is to "entity_id": "camera.living_room_camera" } ``` - diff --git a/source/_components/camera.mjpeg.markdown b/source/_components/camera.mjpeg.markdown index f87595dfc6b..48ef4767b18 100644 --- a/source/_components/camera.mjpeg.markdown +++ b/source/_components/camera.mjpeg.markdown @@ -7,7 +7,7 @@ sidebar: true comments: false sharing: true footer: true -logo: camcorder.png +logo: home-assistant.png ha_category: Camera ha_release: pre 0.7 ha_iot_class: "depends" @@ -16,6 +16,8 @@ ha_iot_class: "depends" The `mjpeg` camera platform allows you to integrate IP cameras which are capable to stream their video with MJPEG into Home Assistant. +## {% linkable_title Configuration %} + To enable this camera in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/camera.mqtt.markdown b/source/_components/camera.mqtt.markdown index c7db3ae4ac2..177e89f8924 100644 --- a/source/_components/camera.mqtt.markdown +++ b/source/_components/camera.mqtt.markdown @@ -17,6 +17,8 @@ The `mqtt` camera platform allows you to integrate the content of an image file This can be used with an application or a service capable of sending images through MQTT, for example [Zanzito](https://play.google.com/store/apps/details?id=it.barbaro.zanzito). +## {% linkable_title Configuration %} + To enable this camera in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -27,18 +29,18 @@ camera: ``` {% configuration %} - topic: - description: MQTT topic to subscribe to. - required: true - type: string - name: - description: Name of the camera. - required: false - type: string - unique_id: - description: > - An ID that uniquely identifies this camera. If two cameras have the same unique ID - Home Assistant will raise an exception. - required: false - type: string +topic: + description: MQTT topic to subscribe to. + required: true + type: string +name: + description: Name of the camera. + required: false + type: string +unique_id: + description: > + An ID that uniquely identifies this camera. If two cameras + have the same unique ID Home Assistant will raise an exception. + required: false + type: string {% endconfiguration %} diff --git a/source/_components/camera.neato.markdown b/source/_components/camera.neato.markdown index 3b959c0bc38..4027e94fd24 100644 --- a/source/_components/camera.neato.markdown +++ b/source/_components/camera.neato.markdown @@ -13,7 +13,6 @@ ha_release: 0.42 ha_iot_class: "Cloud Polling" --- - The `neato` camera platform allows you to view the latest cleaning map of your [Neato Botvac Connected](https://www.neatorobotics.com/robot-vacuum/botvac-connected-series/botvac-connected/). To add `neato` camera to your installation, follow instructions in [Neato component](/components/neato/). diff --git a/source/_components/camera.netatmo.markdown b/source/_components/camera.netatmo.markdown index eb11c1a1a49..bc38d19196a 100644 --- a/source/_components/camera.netatmo.markdown +++ b/source/_components/camera.netatmo.markdown @@ -13,10 +13,10 @@ ha_release: 0.22 ha_iot_class: "Local Polling" --- -### {% linkable_title Basic Configuration %} - The `netatmo` camera platform is consuming the information provided by a [Netatmo](https://www.netatmo.com) camera. This component allows you to view the current photo created by the Camera. +### {% linkable_title Basic configuration %} + To enable the Netatmo camera, you have to set up [netatmo](/components/netatmo/), this will use discovery to add your camera. ### {% linkable_title Advanced configuration %} diff --git a/source/_components/camera.onvif.markdown b/source/_components/camera.onvif.markdown index 6d34a37788c..3a695d30fe6 100644 --- a/source/_components/camera.onvif.markdown +++ b/source/_components/camera.onvif.markdown @@ -12,9 +12,10 @@ ha_category: Camera ha_release: 0.47 --- - The `onvif` camera platform allows you to use an ONVIF camera in Home Assistant. This requires the [`ffmpeg` component](/components/ffmpeg/) to be already configured. +## {% linkable_title Configuration %} + To enable your ONVIF camera in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -44,13 +45,13 @@ password: port: description: The port for the camera. required: false - default: 5000 type: integer + default: 5000 profile: description: Video profile that will be used to obtain the stream, more details below. required: false - default: 0 type: integer + default: 0 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 diff --git a/source/_components/camera.proxy.markdown b/source/_components/camera.proxy.markdown index e8a38d4b23f..d1c92138edf 100644 --- a/source/_components/camera.proxy.markdown +++ b/source/_components/camera.proxy.markdown @@ -11,13 +11,14 @@ ha_category: Camera ha_release: 0.65 --- - The `proxy` camera platform allows you to pass another camera's output through post-processing routines and generate a new camera with the post-processed output. The current post-processing supports resizing the image/MJPEG as well as limiting the maximum refresh rate. The current proxy capabilities are intended to reduce the camera bandwidth for slower internet connections. +## {% linkable_title Configuration %} + To enable this camera in your installation, you must first have an existing working camera configured in Home Assistant. Next, add the following to your `configuration.yaml` file: ```yaml @@ -30,47 +31,46 @@ camera: ``` {% configuration %} - entity_id: - description: The ID of another Home Assistant camera to post-process. - required: true - type: string - name: - description: This parameter allows you to override the name of your camera. - required: false - type: string - max_image_width: - description: The maximum width of single images taken from the camera (aspect ratio will be maintained). - required: false - type: integer - max_stream_width: - description: The maximum width of the MJPEG stream from the camera (aspect ratio will be maintained). - required: false - type: integer - image_quality: - description: The quality level used for resulting JPEG for snapshots. - required: false - type: integer - default: 75 - stream_quality: - description: The quality level used for resulting MJPEG streams. - required: false - type: integer - default: 75 - image_refresh_rate: - description: The minimum time in seconds between generating successive image snapshots. - required: false - type: float - force_resize: - description: Resize the image even if the resulting image would take up more bandwidth than the original. - required: false - type: boolean - cache_images: - description: Preserve the last image and re-send in the case the camera is not responding. - required: false - type: boolean +entity_id: + description: The ID of another Home Assistant camera to post-process. + required: true + type: string +name: + description: This parameter allows you to override the name of your camera. + required: false + type: string +max_image_width: + description: The maximum width of single images taken from the camera (aspect ratio will be maintained). + required: false + type: integer +max_stream_width: + description: The maximum width of the MJPEG stream from the camera (aspect ratio will be maintained). + required: false + type: integer +image_quality: + description: The quality level used for resulting JPEG for snapshots. + required: false + type: integer + default: 75 +stream_quality: + description: The quality level used for resulting MJPEG streams. + required: false + type: integer + default: 75 +image_refresh_rate: + description: The minimum time in seconds between generating successive image snapshots. + required: false + type: float +force_resize: + description: Resize the image even if the resulting image would take up more bandwidth than the original. + required: false + type: boolean +cache_images: + description: Preserve the last image and re-send in the case the camera is not responding. + required: false + type: boolean {% endconfiguration %} - ## {% linkable_title Examples %} Example of using a Camera proxy along with a Foscam camera: diff --git a/source/_components/camera.push.markdown b/source/_components/camera.push.markdown index be639978032..9794c37fbc7 100644 --- a/source/_components/camera.push.markdown +++ b/source/_components/camera.push.markdown @@ -19,7 +19,7 @@ Optionally the Push Camera can **buffer** a given number of images, creating an Images are cleared on new events, and events are separated by a soft (configurable) **timeout**. -## Integration with motionEye +## {% linkable_title Integration with motionEye %} The `push` camera can as an example be used with [motionEye](https://github.com/ccrisan/motioneye/wiki) a web frontend for the motion daemon. motionEye is usually configured to save/record files ***only*** when motion is detected. It provides a hook to run a command whenever an image is saved, which can be used together with cURL to send the motion detected images to the `push` camera, as shown in this example: @@ -57,25 +57,25 @@ camera: name: description: The name you would like to give to the camera. required: false - default: Push Camera type: string + default: Push Camera buffer: description: Number of images to buffer per event. Be conservative, large buffers will starve your system memory. required: false - default: 1 type: string + default: 1 timeout: description: Amount of time after which the event is considered to have finished. required: false - default: 5 seconds type: time + default: 5 seconds token: description: User provided token acting as access control, should be a large string (more then 8 chars). Required if you can't use HA new auth system (0.77). - required: false + required: false type: string field: description: HTTP POST field containing the image file required: false - default: image type: string + default: image {% endconfiguration %} diff --git a/source/_components/camera.ring.markdown b/source/_components/camera.ring.markdown index 98d03ff0e65..9236be6f4fb 100644 --- a/source/_components/camera.ring.markdown +++ b/source/_components/camera.ring.markdown @@ -33,8 +33,8 @@ ffmpeg_arguments: scan_interval: description: How frequently to query for new video in seconds. required: false - default: 90 type: integer + default: 90 {% 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.rpi_camera.markdown b/source/_components/camera.rpi_camera.markdown index 0cc4eaa01c0..f7148f19775 100644 --- a/source/_components/camera.rpi_camera.markdown +++ b/source/_components/camera.rpi_camera.markdown @@ -13,7 +13,6 @@ ha_iot_class: "Local Polling" ha_release: 0.17 --- - The `rpi_camera` platform allows you to integrate the Raspberry Pi camera into Home Assistant. This component uses the application [`raspistill`](https://www.raspberrypi.org/documentation/usage/camera/raspicam/raspistill.md) to store the image from camera. ## {% linkable_title Configuration %} @@ -30,49 +29,48 @@ camera: image_width: description: Set the image width. required: false - default: 640 type: integer + default: 640 name: description: Name of the camera. required: false - default: Raspberry Pi Camera type: string + default: Raspberry Pi Camera image_height: description: Set the image height. required: false - default: 480 type: integer + default: 480 image_quality: description: Set the image quality (from 0 to 100). required: false - default: 7 type: integer + default: 7 image_rotation: description: Set image rotation (0-359). required: false - default: 0 type: integer + default: 0 horizontal_flip: description: Set horizontal flip (0 to disable, 1 to enable). required: false - default: 0 type: integer + default: 0 vertical_flip: description: Set vertical flip (0 to disable, 1 to enable). required: false - default: 0 type: integer + default: 0 timelapse: description: Takes a picture every this many milliseconds (thousands of a second) - the default means one picture a second. required: false - default: 1000 type: integer + default: 1000 file_path: description: Save the picture in a custom file path. required: false - default: A temporary file is used. type: string + default: A temporary file is used. {% endconfiguration %} - -The given **file_path** must be an existing file because the camera platform setup performs a writeable check on it. Also, keep in mind that the path should be [whitelisted](/docs/configuration/basic/). +The given **file_path** must be an existing file because the camera platform setup performs a writeable check on it. Also, keep in mind that the path should be [whitelisted](/docs/configuration/basic/). diff --git a/source/_components/camera.synology.markdown b/source/_components/camera.synology.markdown index 78010327625..2e0e232a0cb 100644 --- a/source/_components/camera.synology.markdown +++ b/source/_components/camera.synology.markdown @@ -13,7 +13,6 @@ ha_release: 0.31 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 %} @@ -33,8 +32,8 @@ camera: name: description: A name for this Synology camera. required: false - default: Synology Camera type: string + default: Synology Camera url: description: The URL to your Synology, including port. required: true @@ -50,8 +49,8 @@ password: timeout: description: The timeout in seconds used when connecting to the Surveillance Station. required: false - default: 5 type: integer + default: 5 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 @@ -59,8 +58,8 @@ whitelist: verify_ssl: description: Verify SSL/TLS certificate for HTTPS request. required: false - default: true type: boolean + default: true {% endconfiguration %} ## {% linkable_title Full example %} diff --git a/source/_components/camera.usps.markdown b/source/_components/camera.usps.markdown index 5ed58ee5624..e589a349a57 100644 --- a/source/_components/camera.usps.markdown +++ b/source/_components/camera.usps.markdown @@ -13,13 +13,14 @@ ha_release: 0.52 ha_iot_class: "Cloud Polling" --- - The `usps` camera component allows you to view the mail piece images made available through USPS via the Informed Delivery service. You must "Opt-In" to [Informed Delivery](https://informeddelivery.usps.com/box/pages/intro/start.action) to see mail images. This works in concert with [USPS sensors](/components/sensor.usps).

You must have the [USPS component](/components/usps/) configured to use this camera. The camera will be setup if the `usps` component is configured and the required configuration is set.

+## {% linkable_title Configuration %} + To customize the interval that mail images are rotated in the mail camera you can edit your `configuration.yaml` file with the following settings: ```yaml # Example configuration.yaml entry diff --git a/source/_components/camera.uvc.markdown b/source/_components/camera.uvc.markdown index d83f1457e87..cd86a1214cf 100644 --- a/source/_components/camera.uvc.markdown +++ b/source/_components/camera.uvc.markdown @@ -56,4 +56,3 @@ password: type: string default: ubnt {% endconfiguration %} - diff --git a/source/_components/camera.verisure.markdown b/source/_components/camera.verisure.markdown index 35b4c25e4e7..e3980f71748 100644 --- a/source/_components/camera.verisure.markdown +++ b/source/_components/camera.verisure.markdown @@ -13,8 +13,6 @@ ha_release: 0.31 ha_iot_class: "Local Polling" --- - The `verisure` camera platform allows you to control your [Verisure](https://www.verisure.com/) cameras. The requirement is that you have setup your [Verisure hub](/components/verisure/). - diff --git a/source/_components/camera.xeoma.markdown b/source/_components/camera.xeoma.markdown index e54e24f3b37..afb89f1877d 100644 --- a/source/_components/camera.xeoma.markdown +++ b/source/_components/camera.xeoma.markdown @@ -15,6 +15,8 @@ ha_release: 0.62 The `Xeoma` camera platform allows you to view the video feeds from a [Xeoma](http://felenasoft.com/xeoma) video surveillance server. +## {% linkable_title Configuration %} + To enable Xeoma camera feeds, add the following lines to your `configuration.yaml`: ```yaml @@ -40,8 +42,8 @@ password: new_version: description: Set to false if the Xeoma server version is 17.5 or earlier. required: false - default: true type: boolean + default: true cameras: description: List of customizations for individual Xeoma cameras. required: false @@ -54,16 +56,16 @@ cameras: name: description: The name to display in the frontend for this camera. required: false - default: The `image_name` for this camera. type: string + default: The `image_name` for this camera. hide: description: Don't show this camera in Home Assistant. required: false - default: false type: boolean + default: false {% endconfiguration %} -## {% linkable_title Full examples %} +## {% linkable_title Full example %} ```yaml # Example configuration.yaml entry diff --git a/source/_components/camera.xiaomi.markdown b/source/_components/camera.xiaomi.markdown index 05e213825de..0dc5777f35a 100644 --- a/source/_components/camera.xiaomi.markdown +++ b/source/_components/camera.xiaomi.markdown @@ -76,16 +76,15 @@ password: path: description: The path to the raw MP4 files. required: false - default: /media/mmcblk0p1/record type: string + default: /media/mmcblk0p1/record username: description: The user that can access the FTP server. required: false - default: root type: string + default: root ffmpeg_arguments: - description: > - Extra options to pass to `ffmpeg` + description: Extra options to pass to `ffmpeg`. required: false type: string {% endconfiguration %} diff --git a/source/_components/camera.yi.markdown b/source/_components/camera.yi.markdown index dada5b76b48..0fce50e8b96 100644 --- a/source/_components/camera.yi.markdown +++ b/source/_components/camera.yi.markdown @@ -81,13 +81,13 @@ password: path: description: The path to the raw MP4 files. required: false - default: /media/mmcblk0p1/record type: string + default: /media/mmcblk0p1/record username: description: The user that can access the FTP server. required: false - default: root type: string + default: root ffmpeg_arguments: description: Extra options to pass to `ffmpeg` (e.g., image quality or video filter options). required: false diff --git a/source/_components/camera.zoneminder.markdown b/source/_components/camera.zoneminder.markdown index d1fc230ecc4..51a00ef3d17 100644 --- a/source/_components/camera.zoneminder.markdown +++ b/source/_components/camera.zoneminder.markdown @@ -13,13 +13,14 @@ ha_release: 0.39 ha_iot_class: "Local Polling" --- - The `zoneminder` camera platform lets you monitor the current stream of your [ZoneMinder](https://www.zoneminder.com) cameras.

You must have the [ZoneMinder component](/components/zoneminder/) configured to view the camera stream.

+## {% linkable_title Configuration %} + To set it up, add the following information to your `configuration.yaml` file: ```yaml diff --git a/source/_components/canary.markdown b/source/_components/canary.markdown index d9805b5edff..8f43c61d53b 100644 --- a/source/_components/canary.markdown +++ b/source/_components/canary.markdown @@ -29,19 +29,19 @@ canary: ``` {% configuration %} - username: - description: The username for accessing your Canary account. - required: true - type: string - password: - description: The password for accessing your Canary account. - required: true - type: string - timeout: - description: Timeout to wait for connections. - required: false - type: integer - default: 10 +username: + description: The username for accessing your Canary account. + required: true + type: string +password: + description: The password for accessing your Canary account. + required: true + type: string +timeout: + description: Timeout to wait for connections. + required: false + type: integer + default: 10 {% endconfiguration %} Once loaded, your front end will have the following components: diff --git a/source/_components/climate.dyson.markdown b/source/_components/climate.dyson.markdown new file mode 100644 index 00000000000..969c20594cf --- /dev/null +++ b/source/_components/climate.dyson.markdown @@ -0,0 +1,27 @@ +--- +layout: page +title: "Dyson Climate Control" +description: "Instructions on how to integrate your Dyson Climate device within Home Assistant." +date: 2018-05-23 22:30 +sidebar: true +comments: false +sharing: true +footer: true +logo: dyson.png +ha_category: Climate +ha_iot_class: "Cloud Polling" +ha_release: 0.81 +--- + +The `dyson` climate platform allows you to control your Dyson Pure Hot+Cool Fan thermal control. For controlling the fan functionality, see the [Dyson fan](/components/fan.dyson/) platform. + +You have first to set up the [Dyson component](/components/dyson/). + +### {% linkable_title Component services %} + +This component supports the following services (see [Climate](/components/climate/)): +* [`turn_on`](/components/climate/#service-climateturn_on) +* [`turn_off`](/components/climate/#service-climateturn_off) +* [`set_temperature`](/components/climate/#service-climateset_temperature) +* [`set_fan_mode`](/components/climate/#service-climateset_fan_mode) +* [`set_operation_mode`](/components/climate/#service-climateset_operation_mode) diff --git a/source/_components/climate.elkm1.markdown b/source/_components/climate.elkm1.markdown new file mode 100644 index 00000000000..b93f06baf87 --- /dev/null +++ b/source/_components/climate.elkm1.markdown @@ -0,0 +1,22 @@ +--- +layout: page +title: "Elk-M1 Thermostat" +description: "Instructions how to integrate Elk-M1 thermostats." +date: 2018-10-20 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: elkproducts.png +ha_release: 0.81 +ha_category: Climate +ha_iot_class: "Local Push" +--- + +The `elkm1` platform allows you to control your [Elk-M1](https://www.elkproducts.com/m1_controls.html). + +An Elk-M1 thermostat is represented as a `climate` entity. + +

+Full configuration details can be found on the main [Elk-M1 component](/components/elkm1/) page. +

diff --git a/source/_components/climate.ephember.markdown b/source/_components/climate.ephember.markdown index d2fba985e2c..ebcdb1fccbe 100644 --- a/source/_components/climate.ephember.markdown +++ b/source/_components/climate.ephember.markdown @@ -27,10 +27,16 @@ climate: A single interface can handle up to 32 connected devices. -Configuration variables: - -- **username** (*Required*): The email address you used to sign up to the EMBER app -- **password** (*Required*): The password you used to sign up to the EMBER app +{% configuration %} +username: + description: The email address you used to sign up to the EMBER app. + required: true + type: string +password: + description: The password you used to sign up to the EMBER app. + required: true + type: string +{% endconfiguration %} The supported operation modes map to the ON/OFF period selection of your timeswitch / EMBER app. These include: diff --git a/source/_components/climate.flexit.markdown b/source/_components/climate.flexit.markdown index 0281b507565..36cda1ecf58 100644 --- a/source/_components/climate.flexit.markdown +++ b/source/_components/climate.flexit.markdown @@ -26,10 +26,16 @@ climate: slave: 21 ``` -Configuration variables: - -- **slave** (*Required*): The slave ID of the modbus adapter, set using DIP-switches. -- **name** (*Optional*): Displayed name of the A/C unit +{% configuration %} +slave: + description: The slave ID of the modbus adapter, set using DIP-switches. + required: true + type: integer +name: + description: Displayed name of the A/C unit. + required: false + type: string +{% endconfiguration %}

This component requires the [Modbus](/components/modbus/) component to be set up to work diff --git a/source/_components/climate.generic_thermostat.markdown b/source/_components/climate.generic_thermostat.markdown index 89d09a5981e..ee522ae27ed 100644 --- a/source/_components/climate.generic_thermostat.markdown +++ b/source/_components/climate.generic_thermostat.markdown @@ -7,14 +7,13 @@ sidebar: true comments: false sharing: true footer: true -logo: heat-control.png +logo: home-assistant.png ha_category: Climate ha_release: pre 0.7 ha_iot_class: "Local Polling" --- - -The `generic_thermostat` climate platform is a thermostat implemented in Home Assistant. It uses a sensor and a switch connected to a heater or air conditioning under the hood. When in heater mode, if the measured temperature is cooler then the target temperature, the heater will be turned on and turned off when the required temperature is reached. When in air conditioning mode, if the measured temperature is hotter then the target temperature, the air conditioning will be turned on and turned off when required temperature is reached. One Generic Thermostat entity can only control one switch. If you need to activate two switches, one for a heater and one for an air conditioner, you will need two Generic Thermostat entities. +The `generic_thermostat` climate platform is a thermostat implemented in Home Assistant. It uses a sensor and a switch connected to a heater or air conditioning under the hood. When in heater mode, if the measured temperature is cooler then the target temperature, the heater will be turned on and turned off when the required temperature is reached. When in air conditioning mode, if the measured temperature is hotter then the target temperature, the air conditioning will be turned on and turned off when required temperature is reached. One Generic Thermostat entity can only control one switch. If you need to activate two switches, one for a heater and one for an air conditioner, you will need two Generic Thermostat entities. ```yaml # Example configuration.yaml entry @@ -25,27 +24,71 @@ climate: target_sensor: sensor.study_temperature ``` -Configuration variables: - -- **name** (*Required*): Name of thermostat -- **heater** (*Required*): `entity_id` for heater switch, must be a toggle device. Becomes air conditioning switch when `ac_mode` is set to `True` -- **target_sensor** (*Required*): `entity_id` for a temperature sensor, target_sensor.state must be temperature. -- **min_temp** (*Optional*): Set minimum set point available (default: 7) -- **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 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). -- **initial_operation_mode** (*Optional*): Set the initial operation mode. Valid values are `off` or `auto`. Value has to be double quoted. If this parameter is not set, it is preferable to set a *keep_alive* value. This is helpful to align any discrepancies between *generic_thermostat* and *heater* state. -- **away_temp** (*Optional*): Set the temperature used by "away_mode". If this is not specified, away_mode feature will not get activated. +{% configuration %} +name: + description: Name of thermostat. + required: true + default: Generic Thermostat + type: string +heater: + description: "`entity_id` for heater switch, must be a toggle device. Becomes air conditioning switch when `ac_mode` is set to `true`." + required: true + type: string +target_sensor: + description: "`entity_id` for a temperature sensor, target_sensor.state must be temperature." + required: true + type: string +min_temp: + description: Set minimum set point available. + required: false + default: 7 + type: float +max_temp: + description: Set maximum set point available. + required: false + default: 35 + type: float +target_temp: + description: 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. + required: false + type: float +ac_mode: + description: Set the switch specified in the *heater* option to be treated as a cooling device instead of a heating device. + required: false + type: boolean +min_cycle_duration: + description: 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. + required: false + type: [time, integer] +cold_tolerance: + description: 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. + required: false + default: 0.3 + type: float +hot_tolerance: + description: 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. + required: false + default: 0.3 + type: float +keep_alive: + description: 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). + required: false + type: [time, integer] +initial_operation_mode: + description: Set the initial operation mode. Valid values are `off` or `auto`. Value has to be double quoted. If this parameter is not set, it is preferable to set a *keep_alive* value. This is helpful to align any discrepancies between *generic_thermostat* and *heater* state. + required: false + type: string +away_temp: + description: Set the temperature used by "away_mode". If this is not specified, away_mode feature will not get activated. + required: false + type: float +{% endconfiguration %} A full configuration example looks like the one below. `min_cycle_duration` and `keep_alive` must contain at least one of the following entries: `days:`, `hours:`, `minutes:`, `seconds:` or `milliseconds:`. -Currently the `generic_thermostat` climate platform supports 'heat', 'cool' and 'off' operation modes. You can force your `generic_thermostat` to avoid starting by setting Operation to 'off'. +Currently the `generic_thermostat` climate platform supports 'heat', 'cool' and 'off' operation modes. You can force your `generic_thermostat` to avoid starting by setting Operation to 'off'. -Please note that changing Away Mode you will force a target temperature change as well that will get restored once the Away Mode is turned off. +Please note that changing Away Mode you will force a target temperature change as well that will get restored once the Away Mode is turned off. ```yaml # Full example configuration.yaml entry diff --git a/source/_components/climate.heatmiser.markdown b/source/_components/climate.heatmiser.markdown index b1478034e9f..d55c605019f 100644 --- a/source/_components/climate.heatmiser.markdown +++ b/source/_components/climate.heatmiser.markdown @@ -13,7 +13,6 @@ ha_release: "0.10" ha_iot_class: "Local Polling" --- - The `heatmiser` climate platform let you control [Heatmiser DT/DT-E/PRT/PRT-E](http://www.heatmisershop.co.uk/heatmiser-slimline-programmable-room-thermostat/) thermostats from Heatmiser. The module itself is currently setup to work over a RS232 -> RS485 converter, therefore it connects over IP. Further work would be required to get this setup to connect over Wifi, but the HeatmiserV3 python module being used is a full implementation of the V3 protocol. @@ -23,7 +22,7 @@ To set it up, add the following information to your `configuration.yaml` file: ```yaml climate: - platform: heatmiser - ipaddress: YOUR_IPADDRESS + ipaddress: YOUR_IP_ADDRESS port: YOUR_PORT tstats: - 1: @@ -33,10 +32,26 @@ climate: A single interface can handle up to 32 connected devices. -Configuration variables: - -- **ipaddress** (*Required*): The ip address of your interface. -- **port** (*Required*): The port that the interface is listening on. -- **tstats** (*Required*): A list of thermostats activated on the gateway. -- **id** (*Required*): The id of the thermostat as configured on the device itself -- **name** (*Required*): A friendly name for the thermostat +{% configuration %} +ipaddress: + description: The IP address of your interface. + required: true + type: string +port: + description: The port that the interface is listening on. + required: true + type: integer +tstats: + description: A list of thermostats activated on the gateway. + required: true + type: list + keys: + id: + description: The ID of the thermostat as configured on the device itself. + required: true + type: string + name: + description: A friendly name for the thermostat. + required: true + type: string +{% endconfiguration %} 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.knx.markdown b/source/_components/climate.knx.markdown index b5b59a01e36..839be524398 100644 --- a/source/_components/climate.knx.markdown +++ b/source/_components/climate.knx.markdown @@ -13,7 +13,6 @@ ha_release: 0.25 ha_iot_class: "Local Polling" --- - The `knx` climate platform is used as in interface with KNX thermostats. The `knx` component must be configured correctly, see [KNX Component](/components/knx). @@ -48,29 +47,71 @@ climate: operation_mode_comfort_address: '5/1/7' ``` -Configuration variables: +{% configuration %} +name: + description: A name for this device used within Home Assistant. + required: false + default: KNX Climate + type: string +temperature_address: + description: KNX group address for reading current room temperature from KNX bus. + required: true + type: string +target_temperature_address: + description: KNX group address for reading current target temperature from KNX bus. + required: true + type: string +setpoint_shift_address: + description: KNX address for setpoint_shift. + required: false + type: string +setpoint_shift_state_address: + description: Explicit KNX address for reading setpoint_shift. + required: false + type: string +setpoint_shift_step: + description: Defines for step size in Kelvin for each step of setpoint_shift. + required: false + default: 0.5 + type: float +setpoint_shift_min: + description: Minimum value of setpoint shift. + required: false + default: -6 + type: integer +setpoint_shift_max: + description: Maximum value of setpoint shift. + required: false + default: 6 + type: integer +operation_mode_address: + description: KNX address for operation mode (Frost protection/night/comfort). + required: false + type: string +operation_mode_state_address: + description: Explicit KNX address for reading operation mode. + required: false + type: string +controller_status_address: + description: KNX address for HVAC controller status (in accordance with KNX AN 097/07 rev 3). + required: false + type: string +controller_status_state_address: + description: Explicit KNX address for reading HVAC controller status. + required: false + type: string +operation_mode_frost_protection_address: + description: KNX address for switching on/off frost/heat protection mode. + required: false + type: string +operation_mode_night_address: + description: KNX address for switching on/off night mode. + required: false + type: string +operation_mode_comfort_address: + description: KNX address for switching on/off comfort mode. + required: false + type: string +{% endconfiguration %} -- **name** (*Optional*): A name for this device used within Home Assistant. -- **temperature_address**: KNX group address for reading current room temperature from KNX bus. -- **target_temperature_address**: KNX group address for reading current target temperature from KNX bus. - -The `knx` component sets the desired target temperature by modifying the setpoint_shift. The module provides the following configuration options: - -* **setpoint_shift_address**: (*Optional*) KNX address for setpoint_shift -* **setpoint_shift_state_address**: (*Optional*) Explicit KNX address for reading setpoint_shift. -* **setpoint_shift_step**: (*Optional*) Defines for step size in Kelvin for each step of setpoint_shift. Default is 0.5 K. -* **setpoint_shift_min**: (*Optional*) Minimum value of setpoint shift. Default is "-6". -* **setpoint_shift_max**: (*Optional*) Maximum value of setpoint shift. Default is "6". - -The operation modes may be controlled with the following directives: - -- **operation_mode_address** (*Optional*): KNX address for operation mode (Frost protection/night/comfort). -- **operation_mode_state_address** (*Optional*): Explicit KNX address for reading operation mode -- **controller_status_address** (*Optional*): KNX address for HVAC controller status (in accordance with KNX AN 097/07 rev 3) -- **controller_status_state_address** (*Optional*): Explicit KNX address for reading HVAC controller status - -- **operation_mode_frost_protection_address** (*Optional*): KNX address for switching on/off frost/heat protection mode. -- **operation_mode_night_address** (*Optional*): KNX address for switching on/off night mode. -- **operation_mode_comfort_address** (*Optional*): KNX address for switching on/off comfort mode. - -`operation_mode_frost_protection_address` / `operation_mode_night_address` / `operation_mode_comfort_address` are not necessary if `operation_mode_address` was specified. +`operation_mode_frost_protection_address` / `operation_mode_night_address` / `operation_mode_comfort_address` are not necessary if `operation_mode_address` is specified. 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.mqtt.markdown b/source/_components/climate.mqtt.markdown index 96f98766b54..66cd9a2ccdd 100644 --- a/source/_components/climate.mqtt.markdown +++ b/source/_components/climate.mqtt.markdown @@ -24,8 +24,8 @@ It uses a sensor under the hood to obtain the current temperature. climate: - platform: mqtt name: Study - current_temperature_topic: /sensors/hvac_study/current_temp - temperature_command_topic: /sensors/hvac_study/target_temp + current_temperature_topic: sensors/hvac_study/current_temp + temperature_command_topic: sensors/hvac_study/target_temp ``` {% configuration %} @@ -58,12 +58,12 @@ payload_on: description: The payload that represents enabled state. required: false type: string - default: ON + default: "ON" payload_off: description: The payload that represents disabled state. required: false type: string - default: OFF + default: "OFF" availability_topic: description: The MQTT topic subscribed to receive availability (online/offline) updates. required: false @@ -201,6 +201,11 @@ max_temp: description: Maximum set point available type: number required: false +temp_step: + description: Step size for temperature set point + type: number + required: false + default: 1 {% endconfiguration %} #### {% linkable_title Optimistic mode %} @@ -219,9 +224,9 @@ climate: - platform: mqtt name: Study modes: - - off - - on - - auto + - "off" + - "on" + - "auto" mode_command_topic: "study/ac/mode/set" mode_state_topic: "study/ac/mode/state" mode_state_template: "{{ value_json }}" @@ -241,16 +246,16 @@ climate: - platform: mqtt name: Study modes: - - off - - cool - - fan_only + - "off" + - "cool" + - "fan_only" swing_modes: - - on - - off + - "on" + - "off" fan_modes: - - high - - medium - - low + - "high" + - "medium" + - "low" power_command_topic: "study/ac/power/set" mode_command_topic: "study/ac/mode/set" temperature_command_topic: "study/ac/temperature/set" diff --git a/source/_components/climate.oem.markdown b/source/_components/climate.oem.markdown index 1f07cf6bd58..98e9933cffc 100644 --- a/source/_components/climate.oem.markdown +++ b/source/_components/climate.oem.markdown @@ -26,12 +26,32 @@ climate oem: host: 192.168.0.100 ``` -Configuration variables: - -- **host** (*Required*): The IP address or hostname of the thermostat. -- **port** (*Optional*): The port for the web interface. Defaults to 80. -- **name** (*Optional*): The name to use for the frontend. -- **username** (*Optional*): Username for the web interface if set. -- **password** (*Optional*): Password for the web interface if set. -- **away_temp** (*Optional*): Setpoint for the thermostat in away mode. Defaults to 14 C. - +{% configuration %} +host: + description: The IP address or hostname of the thermostat. + required: true + type: string +port: + description: The port for the web interface. + required: false + default: 80 + type: integer +name: + description: The name to use for the frontend. + required: false + default: Thermostat + type: string +username: + description: Username for the web interface if set. + required: inclusive + type: string +password: + description: Password for the web interface if set. + required: inclusive + type: string +away_temp: + description: Setpoint for the thermostat in away mode. + required: false + default: 14.0 + type: float +{% endconfiguration %} diff --git a/source/_components/climate.opentherm_gw.markdown b/source/_components/climate.opentherm_gw.markdown index 41444ff8ae2..1248a657816 100644 --- a/source/_components/climate.opentherm_gw.markdown +++ b/source/_components/climate.opentherm_gw.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "OpenTherm Gateway" +title: "OpenTherm Gateway Climate" description: "Control your OpenTherm Gateway from Home Assistant." date: 2018-08-29 16:23 sidebar: true @@ -18,48 +18,8 @@ The `opentherm_gw` climate platform is used to control the [OpenTherm Gateway](h # {% linkable_title Configuration %} -```yaml -# Example configuration.yaml entry -climate: - - platform: opentherm_gw - device: /dev/ttyUSB0 -``` - -{% configuration %} -device: - description: "Path to OpenTherm Gateway device as supported by [PySerial](https://pythonhosted.org/pyserial/url_handlers.html)." - required: true - type: string -name: - description: The name for the device within Home Assistant. - required: false - type: string - default: OpenTherm Gateway -precision: - description: "The desired precision for this device. Can be used to match your actual thermostat's precision. Supported values are `0.1`, `0.5` and `1.0`." - required: false - type: float - default: "`0.5` for Celsius and `1.0` for Fahrenheit." -floor_temperature: - description: Some thermostats round all temperatures down to the lower value according to their precision. Default behaviour for Home Assistant is to round temperatures to the nearest value. Set this to `true` to override Home Assistant and round to the lower value according to the configured `precision`. - required: false - type: boolean -{% endconfiguration %} +Configuration of this platform is achieved through the [OpenTherm Gateway Hub](/components/opentherm_gw/) configuration.

The OpenTherm protocol is based on polling. The thermostat sends requests to the boiler at specific intervals. As a result, it may take some time for changes to propagate between Home Assistant and the thermostat.

- -# {% linkable_title Example %} - -A full configuration example with the OpenTherm Gateway connected to a remote host running `ser2net` looks like the one below. - -```yaml -# Full example configuration.yaml entry -climate: - - platform: opentherm_gw - device: socket://otgw.example.org:2345 - name: Thermostat - precision: 0.5 - floor_temperature: true -``` diff --git a/source/_components/climate.proliphix.markdown b/source/_components/climate.proliphix.markdown index b089ef586d5..28748d520ca 100644 --- a/source/_components/climate.proliphix.markdown +++ b/source/_components/climate.proliphix.markdown @@ -30,12 +30,20 @@ climate: password: YOUR_PASSWORD ``` -Configuration variables: - -- **host** (*Required*): Address of your thermostat, eg. 192.168.1.32. -- **username** (*Required*): Username for the thermostat. -- **password** (*Required*): Password for the thermostat. +{% configuration %} +host: + description: Address of your thermostat, e.g., 192.168.1.32. + required: true + type: string +username: + description: Username for the thermostat. + required: true + type: string +password: + description: Password for the thermostat. + required: true + type: string +{% endconfiguration %} The Proliphix NT Thermostat series are Ethernet connected thermostats. They have a local HTTP interface that is based on get/set of OID values. A complete collection of the API is available in this [API documentation](https://github.com/sdague/thermostat.rb/blob/master/docs/PDP_API_R1_11.pdf). - diff --git a/source/_components/climate.radiotherm.markdown b/source/_components/climate.radiotherm.markdown index f4d08db1072..311fe0b3f42 100644 --- a/source/_components/climate.radiotherm.markdown +++ b/source/_components/climate.radiotherm.markdown @@ -30,12 +30,27 @@ climate: - platform: radiotherm ``` -Configuration variables: - -- **host** (*Optional*): List of your Radiotherm thermostats. If not provided the thermostats will be auto-detected. -- **away_temperature_heat** (*Optional*): Target heating temperature in Fahrenheit for away mode. This is separate from away mode in the app. Defaults to '60'. -- **away_temperature_cool** (*Optional*): Target cooling temperature in Fahrenheit for away mode. This is separate from away mode in the app. Defaults to '85'. -- **hold_temp** (*Optional*): Boolean to control if Home Assistant temperature adjustments hold (`True`) or are temporary (`False`). Defaults to `False`. +{% configuration %} +host: + description: List of your Radiotherm thermostats. If not provided the thermostats will be auto-detected. + required: false + type: list +away_temperature_heat: + description: Target heating temperature in Fahrenheit for away mode. This is separate from away mode in the app. + required: false + default: 60 + type: float +away_temperature_cool: + description: Target cooling temperature in Fahrenheit for away mode. This is separate from away mode in the app. + required: false + default: 85 + type: float +hold_temp: + description: Boolean to control if Home Assistant temperature adjustments hold (`true`) or are temporary (`false`). + required: false + default: false + type: boolean +{% endconfiguration %} Set `hold_temp: True` if you want temperature settings from Home Assistant to override a thermostat schedule on the thermostat itself. Otherwise Home Assistant will perform temporary temperature changes. diff --git a/source/_components/climate.sensibo.markdown b/source/_components/climate.sensibo.markdown index 85577dcdf81..f45c818e80a 100644 --- a/source/_components/climate.sensibo.markdown +++ b/source/_components/climate.sensibo.markdown @@ -21,7 +21,7 @@ To enable this platform, add the following lines to your `configuration.yaml` fi # Example configuration.yaml entry climate: - platform: sensibo - api_key: + api_key: YOUR_API_KEY ``` {% configuration %} @@ -45,7 +45,7 @@ done in the app and actions done by Home Assistant. ```yaml climate: - platform: sensibo - api_key: deadbeaf + api_key: YOUR_API_KEY id: - id1 - id2 diff --git a/source/_components/climate.wink.markdown b/source/_components/climate.wink.markdown index be8623cb08f..2520b49fa45 100644 --- a/source/_components/climate.wink.markdown +++ b/source/_components/climate.wink.markdown @@ -14,7 +14,7 @@ ha_iot_class: "Cloud Polling" --- -The Wink climate platform allows you to get data from your [Wink](http://www.wink.com/) thermostats, Air Conditioners, and Water Heaters. +The Wink climate platform allows you to get data from your [Wink](http://www.wink.com/) thermostats and air conditioners. The requirement is that you have setup [Wink](/components/wink/). @@ -28,7 +28,6 @@ The requirement is that you have setup [Wink](/components/wink/). - Honeywell (No Wink hub required) - Generic Z-Wave - Quirky Aros window AC unit -- Rheem Econet water heaters (No Wink hub required)

The above devices are confirmed to work, but others may work as well. diff --git a/source/_components/cloudflare.markdown b/source/_components/cloudflare.markdown index b2f5ad956cd..de36ccbe86f 100644 --- a/source/_components/cloudflare.markdown +++ b/source/_components/cloudflare.markdown @@ -28,9 +28,9 @@ To use the component in your installation, add the following to your `configurat ```yaml # Example configuration.yaml entry cloudflare: - email: user@example.com - api_key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41 - zone: example.com + email: YOUR_EMAIL_ADDRESS + api_key: YOUR_GLOBAL_API_KEY + zone: EXAMPLE.COM records: - bin - www diff --git a/source/_components/coinbase.markdown b/source/_components/coinbase.markdown index bbe82837d40..f45ffa69888 100644 --- a/source/_components/coinbase.markdown +++ b/source/_components/coinbase.markdown @@ -25,8 +25,8 @@ To set it up, add the following information to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry coinbase: - api_key: asdfghjklqwertyuiopzxcvbnm - api_secret: nkjnewncfghjklqwertyuiopzxcvbnm + api_key: YOUR_API_KEY + api_secret: YOUR_API_SECRET exchange_rate_currencies: - BTC - ETH 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.deconz.markdown b/source/_components/cover.deconz.markdown index 1b721a581c1..5f2e3999fc5 100644 --- a/source/_components/cover.deconz.markdown +++ b/source/_components/cover.deconz.markdown @@ -15,7 +15,7 @@ ha_iot_class: "Local Push" See the [deCONZ main component](/components/deconz/) for configuration instructions. -Covers are devices like ventilation dampers. +Covers are devices like ventilation dampers or smart window covers. Note that devices in the cover platform identify as lights, so there is a manually curated list that defines which "lights" are covers. @@ -24,3 +24,4 @@ The `entity_id` name will be `cover.device_name`, where `device_name` is defined #### {% linkable_title Verified supported covers %} - Keen vents +- Xiaomi Aqara Curtain controller diff --git a/source/_components/cover.garadget.markdown b/source/_components/cover.garadget.markdown index 0a3b5de358e..e232a615089 100644 --- a/source/_components/cover.garadget.markdown +++ b/source/_components/cover.garadget.markdown @@ -25,24 +25,42 @@ To enable Garadget Covers in your installation, add the following to your `confi cover: - platform: garadget covers: - 190028001947343412342341: - username: YOUR_USERNAME - password: YOUR_PASSWORD + 190028001947343412342341: + username: YOUR_USERNAME + password: YOUR_PASSWORD 4c003f001151353432134214: access_token: df4cc785ff818f2b01396c44142342fccdef ``` -Configuration variables: - -- **covers** array (*Required*): List of your doors. - - **device** (*Required*): This is the device id from your Garadget portal. - - Either: - - **username** (*Required*): Your Garadget account username. - - **password** (*Required*): Your Garadget account password. - - Or: - - **access_token** (*Required*): A generated `access_token` from your Garadget account. - - **name** (*Optional*): Name to use in the frontend, will use name configured in Garadget otherwise. - +{% configuration %} +covers: + description: List of your doors. + required: true + type: list + keys: + device: + description: This is the device id from your Garadget portal. + required: true + type: string + keys: + username: + description: Your Garadget account username. + required: true + type: string + password: + description: Your Garadget account password. + required: true + type: string + access_token: + description: A generated `access_token` from your Garadget account. + required: true + type: string + name: + description: me to use in the frontend, will use name configured in Garadget otherwise. + required: false + default: Garadget + type: string +{% endconfiguration %} If provided, the **access_token** will be used, otherwise the **username** and **password** will be used to automatically generate an access token at start time. diff --git a/source/_components/cover.markdown b/source/_components/cover.markdown index f276c9b398a..d954ee83f0e 100644 --- a/source/_components/cover.markdown +++ b/source/_components/cover.markdown @@ -15,12 +15,22 @@ The display style of each entity can be modified in the [customize section](/get | Attribute | Default | Description | | --------- | ------- | ----------- | -| `device_class` | | `none` Generic cover device
`damper` Ventilation damper controller
`garage` Garage door controller
`window` Window controller +| `device_class` | | see below | `assumed_state` | `false` | If set to `true`, cover buttons will always be enabled +### {% linkable_title Device Class %} + +The way these sensors are displayed in the frontend can be modified in the [customize section](/docs/configuration/customizing-devices/). The following device classes are supported for covers: + +- **None**: Generic cover. This is the default and doesn't need to be set. +- **damper**: Ventilation damper controller. +- **garage**: Garage door controller. +- **window**: Window controller. + ## {% linkable_title Services %} ### {% linkable_title Cover control services %} + Available services: `cover.open_cover`, `cover.close_cover`, `cover.stop_cover`, `cover.open_cover_tilt`, `cover.close_cover_tilt`, `cover.stop_cover_tilt` | Service data attribute | Optional | Description | diff --git a/source/_components/cover.mqtt.markdown b/source/_components/cover.mqtt.markdown index b3f15bfeccd..26bb333b6b3 100644 --- a/source/_components/cover.mqtt.markdown +++ b/source/_components/cover.mqtt.markdown @@ -159,6 +159,35 @@ unique_id: description: An ID that uniquely identifies this cover. If two covers have the same unique ID, Home Assistant will raise an exception. required: false type: string +device: + description: 'Information about the device this cover is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.' + required: false + type: map + keys: + identifiers: + description: 'A list of IDs that uniquely identify the device. For example a serial number.' + required: false + type: list, string + connections: + description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' + required: false + type: list + manufacturer: + description: 'The manufacturer of the device.' + required: false + type: string + model: + description: 'The model of the device.' + required: false + type: string + name: + description: 'The name of the device.' + required: false + type: string + sw_version: + description: 'The firmware version of the device.' + required: false + type: string {% endconfiguration %} ## {% linkable_title Examples %} diff --git a/source/_components/cover.rflink.markdown b/source/_components/cover.rflink.markdown index bc4d18538db..768d1e20455 100644 --- a/source/_components/cover.rflink.markdown +++ b/source/_components/cover.rflink.markdown @@ -25,17 +25,18 @@ You have to add the Somfy RTS manually with the supplied RFlinkLoader (Windows o Press the Learn button on the original Somfy remote enter the following code within 3 seconds. Your blinds will go up and down shortly: -```` +```text 10;RTS;02FFFF;0412;3;PAIR; -```` +``` Your blinds will go up and down again. This means your Rflink is now paired with your RTS motor. To check this enter the following code again and see if there is a record. -```` +```text 10;RTSSHOW; -```` -```` +``` + +```text RTS Record: 0 Address: FFFFFF RC: FFFF RTS Record: 1 Address: FFFFFF RC: FFFF RTS Record: 2 Address: FFFFFF RC: FFFF @@ -52,7 +53,7 @@ RTS Record: 12 Address: FFFFFF RC: FFFF RTS Record: 13 Address: FFFFFF RC: FFFF RTS Record: 14 Address: FFFFFF RC: FFFF RTS Record: 15 Address: FFFFFF RC: FFFF -```` +``` After configuring the RFLink Somfy RTS you have to add the cover to the `configuration.yaml` file like any other RFlink device. @@ -73,28 +74,59 @@ cover: name: Sovrumsgardin ``` -Configuration variables: - -- **automatic_add** (*Optional*): Automatically add new/unconfigured devices to Home Assistant if detected (default: True). -- **devices** (*Optional*): A list of devices with their name to use in the frontend. -- **device_defaults**: (*Optional*) - - **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). - -Device configuration variables: - -- **name** (*Optional*): Name for the device, defaults to Rflink ID. -- **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. - +{% configuration %} +devices: + description: A list of devices with their name to use in the frontend. + required: false + type: list + keys: + name: + description: The name for the device. Defaults to value for Rflink ID. + required: false + type: string + aliases: + description: The alternative Rflink ID's this device is known by. + required: false + type: list + fire_event: + description: Fire a `button_pressed` event if this device is turned on or off. + required: false + default: False + type: boolean + signal_repetitions: + description: The number of times every Rflink command should repeat. + required: false + type: integer + group: + description: Allow light to respond to group commands (ALLON/ALLOFF). + required: false + default: True + type: boolean + group_aliases: + description: The `aliases` which only respond to group commands. + required: false + type: list + no_group_aliases: + description: The `aliases` which do not respond to group commands. + required: false + type: list +device_defaults: + description: The default values for a device. + required: false + type: list + keys: + fire_event: + description: The default `fire_event` for Rflink cover devices. + required: false + default: False + type: boolean + signal_repetitions: + description: The default `signal_repetitions` for Rflink cover devices. + required: false + default: 1 + type: integer +{% endconfiguration %} ### {% linkable_title Device support %} -See [device support](/components/rflink/#device-support) - +See [device support](/components/rflink/#device-support). diff --git a/source/_components/cover.rfxtrx.markdown b/source/_components/cover.rfxtrx.markdown index 342677cb5ae..801d0644b6b 100644 --- a/source/_components/cover.rfxtrx.markdown +++ b/source/_components/cover.rfxtrx.markdown @@ -61,12 +61,31 @@ cover: name: Bathroom Shutter ``` -Configuration variables: - -- **devices** (*Required*): A list of devices with their name to use in the frontend. -- **automatic_add** (*Optional*): To enable the automatic addition of new covers (Siemens/LightwaveRF only). -- **signal_repetitions** (*Optional*): Because the rxftrx device 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 roller shutter to try to send each signal repeatedly. -- **fire_event** (*Optional*): Fires an event even if the state is the same as before. Can be used for automations. +{% configuration %} +devices: + description: A list of devices. + required: false + type: list + keys: + name: + description: Override the name to use in the frontend. + required: true + type: string + fire_event: + description: Fires an event even if the state is the same as before. Can be used for automations. + required: false + default: false + type: boolean +automatic_add: + description: To enable the automatic addition of new covers (Siemens/LightwaveRF only). + required: false + default: false + type: boolean +signal_repetitions: + description: Because the rxftrx device 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 roller shutter to try to send each signal repeatedly. + required: false + type: integer +{% endconfiguration %}

If a device ID consists of only numbers, please make sure to surround it with quotes. diff --git a/source/_components/cover.rpi_gpio.markdown b/source/_components/cover.rpi_gpio.markdown index 37427a321d8..2026b7bc3b6 100644 --- a/source/_components/cover.rpi_gpio.markdown +++ b/source/_components/cover.rpi_gpio.markdown @@ -35,18 +35,47 @@ cover: state_pin: 11 ``` -Configuration variables: +{% configuration %} +relay_time: + description: The time that the relay will be on for in seconds. + required: false + default: 0.2 + type: float +invert_relay: + description: Invert the relay pin output so that it is active-high (True). + required: false + default: False + type: boolean +state_pull_mode: + description: The direction the State pin is pulling. It can be UP or DOWN. + required: false + default: UP + type: string +invert_state: + description: Invert the value of the State pin so that 0 means closed. + required: false + default: False + type: boolean +covers: + description: List of your doors. + required: true + type: list + keys: + relay_pin: + description: The pin of your Raspberry Pi where the relay is connected. + required: true + type: integer + state_pin: + description: The pin of your Raspberry Pi to retrieve the state. + required: true + type: integer + name: + description: The name to use in the frontend. + required: false + type: string +{% endconfiguration %} -- **relay_time** (*Optional*): The time that the relay will be on for in seconds. Default is 0.2 seconds. -- **invert_relay** (*Optional*): Invert the relay pin output so that it is active-high. Default is False (active-low). -- **state_pull_mode** (*Optional*): The direction the State pin is pulling. It can be UP or DOWN. Default is UP. -- **invert_state** (*Optional*): Invert the value of the State pin so that 0 means closed. Default is False. -- **covers** array (*Required*): List of your doors. - - **relay_pin** (*Required*): The pin of your Raspberry Pi where the relay is connected. - - **state_pin** (*Required*): The pin of your Raspberry Pi to retrieve the state. - - **name** (*Optional*): Name to use in the frontend. - -Full example: +## {% linkable_title Full example %} ```yaml # Example configuration.yaml entry diff --git a/source/_components/cover.ryobi_gdo.markdown b/source/_components/cover.ryobi_gdo.markdown deleted file mode 100644 index eac9454463d..00000000000 --- a/source/_components/cover.ryobi_gdo.markdown +++ /dev/null @@ -1,59 +0,0 @@ ---- -layout: page -title: "Ryobi GDO Cover" -description: "Instructions on how to integrate Ryobi Garage Door Opener (RyobiGDO) within Home Assistant." -date: 2018-04-22 09:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: ryobi.png -ha_category: Cover -ha_release: 0.71 -ha_iot_class: "Cloud Polling" ---- - - -The `ryobi_gdo` cover platform lets you control [Ryobi](https://www.ryobitools.com/gdo/) garage door opener through Home Assistant. - -## {% linkable_title Setup %} - -In order to be able to use your Ryobi garage door opener, you will have to get the DEVICE_ID_OF_YOUR_COVER (one for each garage door). - -The DEVICE_ID_OF_YOUR_COVER can be retrieved using `curl`, simply use your username and password using the following example. Your `DEVICE_ID_OF_YOUR_COVER` will be `varName`: - -```bash -$ curl -H "Content-Type: application/json" -X GET \ - -d '{"username":"RYOBIGDO_USERNAME","password":"RYOBIGDO_PASSWORD"}' \ - https://tti.tiwiconnect.com/api/devices -``` - -## {% linkable_title Configuration %} - -To enable Ryobi covers in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -cover: - - platform: ryobi_gdo - username: RYOBIGDO_USERNAME - password: RYOBIGDO_PASSWORD - device_id: - - DEVICE_ID_OF_YOUR_COVER#1 - - DEVICE_ID_OF_YOUR_COVER#2 -``` - -{% configuration %} -username: - description: Your RyobiGDO account username. - required: true - type: string -password: - description: Your RyobiGDO account password. - required: true - type: string -device_id: - description: List of your doors. - required: true - type: list -{% endconfiguration %} diff --git a/source/_components/daikin.markdown b/source/_components/daikin.markdown index d4b25765958..c060f41b3f8 100644 --- a/source/_components/daikin.markdown +++ b/source/_components/daikin.markdown @@ -43,7 +43,7 @@ hosts: description: List of IP addresses or hostnames. required: false default: All discovered hosts - type: array + type: list monitored_conditions: description: List of items you want to monitor for each device. required: false diff --git a/source/_components/deconz.markdown b/source/_components/deconz.markdown index 0340ef07126..db8927e9a4e 100644 --- a/source/_components/deconz.markdown +++ b/source/_components/deconz.markdown @@ -88,7 +88,7 @@ Typical values for switches, the event codes are 4 numbers where the first and l Where for example on a Philips Hue Dimmer, 2001 would be holding the dim up button. -For the IKEA Tradfri remote, 1 is the middle button, 2 is up, 3 is down, 4 is left, and 5 is right. +For the IKEA Tradfri remote the first digit equals, 1 for the middle button, 2 for up, 3 for down, 4 for left, and 5 for right (e.g., "event: 1002" for middle button short release). ## {% linkable_title Examples %} diff --git a/source/_components/demo.markdown b/source/_components/demo.markdown index 7fc7ba7025a..1ea674c92c6 100644 --- a/source/_components/demo.markdown +++ b/source/_components/demo.markdown @@ -45,6 +45,9 @@ To integrate a demo platform in Home Assistant, add the following section to you - platform: demo ``` -Configuration variables: - -- **[component]** (*Required*): The name of the component as stated in the listing above the configuration example. +{% configuration %} +"[component]": + description: The name of the component as stated in the listing above the configuration example. + required: true + type: string +{% endconfiguration %} diff --git a/source/_components/device_sun_light_trigger.markdown b/source/_components/device_sun_light_trigger.markdown index 2be37360ace..ffb052445ea 100644 --- a/source/_components/device_sun_light_trigger.markdown +++ b/source/_components/device_sun_light_trigger.markdown @@ -27,12 +27,26 @@ To enable this component, add the following lines to your `configuration.yaml` f device_sun_light_trigger: ``` -Configuration variables: - -- **light_group** (*Optional*): Specify a specific light/group of lights that has to be turned on. -- **light_profile** (*Optional*): Specify which light profile to use when turning lights on. -- **device_group** (*Optional*): Specify which group of devices to track. -- **disable_turn_off** (*Optional*): Disable lights being turned off when everybody leaves the house. +{% configuration %} +light_group: + description: Specify a specific light/group of lights that has to be turned on. + required: false + type: string +light_profile: + description: Specify which light profile to use when turning lights on. + required: false + default: relax + type: string +device_group: + description: Specify which group of devices to track. + required: false + type: string +disable_turn_off: + description: Disable lights being turned off when everybody leaves the house. + required: false + default: false + type: boolean +{% endconfiguration %} A full configuration example could look like this: diff --git a/source/_components/device_tracker.bluetooth_le_tracker.markdown b/source/_components/device_tracker.bluetooth_le_tracker.markdown index 421a6e0708b..3cef5e1b2d2 100644 --- a/source/_components/device_tracker.bluetooth_le_tracker.markdown +++ b/source/_components/device_tracker.bluetooth_le_tracker.markdown @@ -54,11 +54,12 @@ Some BTLE devices (e.g., fitness trackers) are only visible to the devices that ## {% linkable_title Rootless Setup %} -Normally accessing the Bluetooth stack is reserved for root, but running programs that are networked as root is a bad security wise. To allow non-root access to the Bluetooth stack we can give Python 3 the missing capabilities to access the Bluetooth stack. Quite like setting the setuid bit (see [Stack Exchange](http://unix.stackexchange.com/questions/96106/bluetooth-le-scan-as-non-root) for more information). +Normally accessing the Bluetooth stack is reserved for root, but running programs that are networked as root is a bad security wise. To allow non-root access to the Bluetooth stack we can give Python 3 and hcitool the missing capabilities to access the Bluetooth stack. Quite like setting the setuid bit (see [Stack Exchange](http://unix.stackexchange.com/questions/96106/bluetooth-le-scan-as-non-root) for more information). ```bash $ sudo apt-get install libcap2-bin $ sudo setcap 'cap_net_raw,cap_net_admin+eip' `readlink -f \`which python3\`` +$ sudo setcap 'cap_net_raw+ep' `readlink -f \`which hcitool\`` ``` A restart of Home Assistant is required. diff --git a/source/_components/device_tracker.ddwrt.markdown b/source/_components/device_tracker.ddwrt.markdown index 01e1c68ce5e..d4bb1a028b6 100644 --- a/source/_components/device_tracker.ddwrt.markdown +++ b/source/_components/device_tracker.ddwrt.markdown @@ -38,6 +38,16 @@ 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. diff --git a/source/_components/device_tracker.fritz.markdown b/source/_components/device_tracker.fritz.markdown index 07d2eee540f..f478fdea748 100644 --- a/source/_components/device_tracker.fritz.markdown +++ b/source/_components/device_tracker.fritz.markdown @@ -19,7 +19,7 @@ The `fritz` platform offers presence detection by looking at connected devices t

It might be necessary to install additional packages: $ sudo apt-get install python3-lxml -If you installed Home Assistant in a virtualenv, run the following commands inside it: $ sudo apt-get install libxslt-dev libxml2-dev zlib1g-dev; pip install lxml; be patient this will take a while.

+If you installed Home Assistant in a virtualenv, run the following commands inside it: $ sudo apt-get install libxslt-dev libxml2-dev zlib1g-dev; pip3 install lxml; be patient this will take a while.

## {% linkable_title Configuration %} diff --git a/source/_components/device_tracker.gpslogger.markdown b/source/_components/device_tracker.gpslogger.markdown index 6d1b2d5446a..bf98c0b62ed 100644 --- a/source/_components/device_tracker.gpslogger.markdown +++ b/source/_components/device_tracker.gpslogger.markdown @@ -13,6 +13,18 @@ ha_release: 0.34 The `gpslogger` device tracker platform allows you to detect presence using [GPSLogger](http://code.mendhak.com/gpslogger/). GPSLogger is an open source app for [Android](https://play.google.com/store/apps/details?id=com.mendhak.gpslogger) that allows users to set up a `GET` request to update GPS coordinates. This can be configured with Home Assistant to update your location. +## {% linkable_title Auth change release 0.77 and above %} + +Since release 0.77, we now have long-lived access tokens. These are setup under your profile and configured in the GPSLogger application on your smartphone as explained below. + +```yaml +# Example configuration.yaml entry +device_tracker: + - platform: gpslogger +``` + +## {% linkable_title Before release 0.77 %} + To integrate GPSLogger in Home Assistant, add the following section to your `configuration.yaml` file: ```yaml @@ -68,10 +80,11 @@ Add the above URL after you modified it with your settings into the **URL** fiel - Use the domain that Home Assistant is available on the internet (or the public IP address if you have a static IP address). This can be a local IP address if you are using an always on VPN from your mobile device to your home network. - Only remove `PORT` if your Home Assistant instance is using port 443. Otherwise set it to the port you're using. - For Home Assistant only the above URL, as written, will work - do not add, remove, or change the order of any of the parameters. -- Make sure to include your [API password](/components/http/) if you have configured a password. Add `&api_password=YOUR_PASSWORD` to the end of the URL. +- **0.77+** If you are using Long-Lived access tokens, then add `Authorization: Bearer LLAT` to the HTTP Headers setting (replace `LLAT` with your Long Lived Access Token). +- **<0.77** Make sure to include your [API password](/components/http/) if you have configured a password. Add `&api_password=YOUR_PASSWORD` to the end of the URL. - You can change the name of your device name by replacing `&device=%SER` with `&device=DEVICE_NAME`. -If your battery drains fast then you can tune the performance of GPSLogger under **Performance** -> **Location providers** +If your battery drains fast then you can tune the performance of GPSLogger under **Performance** -> **Location providers**

diff --git a/source/_components/device_tracker.huawei_router.markdown b/source/_components/device_tracker.huawei_router.markdown index 92ee5c62d47..5fa66cdd696 100644 --- a/source/_components/device_tracker.huawei_router.markdown +++ b/source/_components/device_tracker.huawei_router.markdown @@ -12,7 +12,7 @@ ha_category: Presence Detection ha_release: 0.51 --- -The `huawei` device trakcer platform offers presence detection by looking at connected devices to a [Huawei router](http://m.huawei.com/enmobile/enterprise/products/network/access/pon-one/hw-371813.htm). +The `huawei` device tracker platform offers presence detection by looking at connected devices to a [Huawei router](http://m.huawei.com/enmobile/enterprise/products/network/access/pon-one/hw-371813.htm). Currently, this was only tested with the Huawei HG8247H and HG8247Q Smart Router (used by Vodafone Portugal). diff --git a/source/_components/device_tracker.nmap_tracker.markdown b/source/_components/device_tracker.nmap_tracker.markdown index aa268fe6fcf..27cbb88d448 100644 --- a/source/_components/device_tracker.nmap_tracker.markdown +++ b/source/_components/device_tracker.nmap_tracker.markdown @@ -46,7 +46,7 @@ home_interval: 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. + description: Hosts not to include in Nmap scanning. Scanning the host where Home Assistant is running can cause problems (websocket error and authentication failures), so excluding that host is a good idea. required: false type: list scan_options: diff --git a/source/_components/device_tracker.owntracks.markdown b/source/_components/device_tracker.owntracks.markdown index 66838f654e4..9a2e98158de 100644 --- a/source/_components/device_tracker.owntracks.markdown +++ b/source/_components/device_tracker.owntracks.markdown @@ -101,7 +101,11 @@ Home Assistant will use the enter and leave messages to set your zone location. When you exit a zone, Home Assistant will start using location updates to track you again. To make sure that Home Assistant correctly exits a zone (which it calculates based on your GPS coordinates), you may want to set your Zone radius in HA to be slightly smaller that the Owntracks region radius. -### {% linkable_title Using Owntracks regions - forcing Owntracks to update using %}iBeacons +### {% linkable_title Using Owntracks regions - forcing Owntracks to update using iBeacons %} + +

+Owntracks v2.0.0 removes support for iBecons on Android. +

When run in the usual *significant changes mode* (which is kind to your phone battery), Owntracks sometimes doesn't update your location as quickly as you'd like when you arrive at a zone. This can be annoying if you want to trigger an automation when you get home. You can improve the situation using iBeacons. diff --git a/source/_components/device_tracker.ping.markdown b/source/_components/device_tracker.ping.markdown index 84c41802c23..06305cec6d2 100644 --- a/source/_components/device_tracker.ping.markdown +++ b/source/_components/device_tracker.ping.markdown @@ -36,7 +36,7 @@ device_tracker: hosts: description: List of device names and their corresponding IP address or hostname. required: true - type: array + type: list count: description: Number of packet used for each device (avoid false detection). required: false diff --git a/source/_components/device_tracker.quantum_gateway.markdown b/source/_components/device_tracker.quantum_gateway.markdown new file mode 100644 index 00000000000..05ff8524740 --- /dev/null +++ b/source/_components/device_tracker.quantum_gateway.markdown @@ -0,0 +1,43 @@ +--- +layout: page +title: "Quantum Gateway" +description: "Instructions on how to integrate Quantum Gateways into Home Assistant." +date: 2018-09-30 01:40 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Presence Detection +logo: fios.svg +ha_release: 0.81 +--- + +The `quantum_gateway` device tracker platform offers presence detection by looking at connected devices to a Verizon Fios gateway. + +It was tested with a Verizon Fios-G1100 Quantum Gateway. + +## {% linkable_title Configuration %} + +To use a Verizon Fios Quantum Gateway in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +device_tracker: + - platform: quantum_gateway + host: 192.168.1.1 + password: YOUR_PASSWORD +``` + +{% configuration %} +host: + description: The IP address of your router, e.g., `192.168.1.1`. + required: false + type: string + default: myfiosgateway.com +password: + description: The password for the `admin` user. The default password may be printed on the gateway itself. + 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.snmp.markdown b/source/_components/device_tracker.snmp.markdown index a7fe4236902..05a5b2fb867 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.1` | +| Aruba | IAP325 on AOS 6.5.4.8 | `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` | diff --git a/source/_components/device_tracker.unifi.markdown b/source/_components/device_tracker.unifi.markdown index 2bb4372c4b3..60d6448dd5b 100644 --- a/source/_components/device_tracker.unifi.markdown +++ b/source/_components/device_tracker.unifi.markdown @@ -88,6 +88,21 @@ The Unifi controller can either be a dedicated hardware device (Unifi's cloud ke It is recommended that you run the Unifi controller in a dedicated virtual machine to avoid that situation. +### {% linkable_title Correctly specifying the Site ID %} + +For environments where there are multiple sites setup on the controller, or the default site is not being used you can use the `site_id` parameter to specify which site you would like to target. + +Please note that the value that is to be specificed here is not the name of the site as you would see it in controller interface, but a site ID value assigned from the software itself. + +To obtain this value for your configuration file, you can take it from the URL of your browser when on the controller webpage. + +For example, this is what would be seen in the URL bar when inside the dashboard page of a site: + +* https://127.0.0.1:8443/manage/s/ceb1m27d/dashboard + +And your `site_id` value would be ceb1m27d. + + ### {% linkable_title Troubleshooting and Time Synchronization %} Presence detection depends on accurate time configuration between Home Assistant and the Unifi controller. diff --git a/source/_components/device_tracker.xiaomi.markdown b/source/_components/device_tracker.xiaomi.markdown index 640f240efc2..7f9494c2af5 100644 --- a/source/_components/device_tracker.xiaomi.markdown +++ b/source/_components/device_tracker.xiaomi.markdown @@ -14,6 +14,8 @@ ha_release: 0.36 The `xiaomi` platform offers presence detection by looking at connected devices to a [Xiaomi](http://miwifi.com) router. +## {% linkable_title Setup %} + To use an Xiaomi router in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -41,3 +43,8 @@ password: {% endconfiguration %} See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. + +### {% linkable_title Compatibility test %} + +To ensure that your router is compatible, navigate to `http://YOUR_ROUTER_IP/api/misystem/devicelist`. +You should see a listing of the device currently connected to your router. diff --git a/source/_components/device_tracker.xiaomi_miio.markdown b/source/_components/device_tracker.xiaomi_miio.markdown index 54f4cf9d5de..850e2fee69d 100644 --- a/source/_components/device_tracker.xiaomi_miio.markdown +++ b/source/_components/device_tracker.xiaomi_miio.markdown @@ -17,7 +17,7 @@ The `xiaomi_miio` device tracker platform is observing your Xiaomi Mi WiFi Repea Please follow the instructions on [Retrieving the Access Token](/components/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token. -To add a Xiaomi Mi Air Quality Monitor to your installation, add the following to your `configuration.yaml` file: +To add a Xiaomi Mi WiFi Repeater device tracker to your installation, add the following to your `configuration.yaml` file: ```yaml device_tracker: diff --git a/source/_components/downloader.markdown b/source/_components/downloader.markdown index f41c2fd1168..0e77a6bb719 100644 --- a/source/_components/downloader.markdown +++ b/source/_components/downloader.markdown @@ -23,9 +23,12 @@ downloader: download_dir: downloads ``` -Configuration variables: - -- **download_dir** (*Required*): If the path is not absolute, it's assumed to be relative to the Home Assistant configuration directory (eg. `.homeassistant/downloads`). +{% configuration %} +download_dir: + description: "If the path is not absolute, it's assumed to be relative to the Home Assistant configuration directory (eg. `.homeassistant/downloads`)." + required: true + type: string +{% endconfiguration %} ### {% linkable_title Use the service %} diff --git a/source/_components/duckdns.markdown b/source/_components/duckdns.markdown index 7b67ed702e3..9548049cf6d 100644 --- a/source/_components/duckdns.markdown +++ b/source/_components/duckdns.markdown @@ -23,7 +23,7 @@ To use the component in your installation, add the following to your `configurat # Example configuration.yaml entry duckdns: domain: YOUR_SUBDOMAIN - access_token: YOUR_ACCSS_TOKEN + access_token: YOUR_ACCESS_TOKEN ``` {% configuration duckdns %} diff --git a/source/_components/dyson.markdown b/source/_components/dyson.markdown index b02d948f7ee..6bccfa636a2 100644 --- a/source/_components/dyson.markdown +++ b/source/_components/dyson.markdown @@ -13,7 +13,7 @@ ha_iot_class: "Cloud Polling" ha_release: 0.47 --- -The `dyson` component is the main component to integrate all [Dyson](https://dyson.com) related platforms: [Fans](/components/fan.dyson/) and [Robot vacuum](/components/vacuum.dyson/). +The `dyson` component is the main component to integrate all [Dyson](https://dyson.com) related platforms: [Fans](/components/fan.dyson/) and [Robot vacuum cleaners](/components/vacuum.dyson/). ## {% linkable_title Configuration %} @@ -24,7 +24,7 @@ To enable this component, add the following lines to your `configuration.yaml`: dyson: username: YOUR_DYSON_USERNAME password: YOUR_DYSON_PASSWORD - language: YOUR_DYSON_ACCOUNT_LANGUGAGE + language: YOUR_DYSON_ACCOUNT_LANGUAGE devices: - device_id: DEVICE_ID_1 # eg. Serial number: XXX-XX-XXXXXXXX device_ip: DEVICE_IP_1 diff --git a/source/_components/ecobee.markdown b/source/_components/ecobee.markdown index 217922806b2..9edb7356213 100644 --- a/source/_components/ecobee.markdown +++ b/source/_components/ecobee.markdown @@ -48,13 +48,20 @@ To set it up, add the following information to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry ecobee: - api_key: asdfghjklqwertyuiopzxcvbnm + api_key: YOUR_API_KEY ``` -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/envisalink.markdown b/source/_components/envisalink.markdown index 57deb9f53fb..15c3283d38a 100644 --- a/source/_components/envisalink.markdown +++ b/source/_components/envisalink.markdown @@ -54,20 +54,76 @@ envisalink: name: 'Home Alarm' ``` -Configuration variables: - -- **host** (*Required*): The IP address of the Envisalink device on your home network. -- **panel_type** (*Required*): `HONEYWELL` or `DSC`, depending upon which alarm system you have. -- **user_name** (*Required*): Which username to authenticate with when connecting to the device. On a Honeywell alarm panel, the username/password are the same. -- **password** (*Required*): Which password to authenticate with when connecting to the device. EVL3 only works with max. 6 characters. -- **code** (*Required*): Your alarm panel's code, for authenticating user input during arm/disarm. -- **port** (*Optional*): Which network port to connect with. Default: `4025` -- **evl_version** (*Optional*): 3 for evl3, or 4 for evl4. Default: `3` -- **keepalive_interval** (*Optional*): This is a periodic heartbeat signal (measured in seconds) sent to your Envisalink board to keep it from restarting. This is required for DSC and Honeywell systems. Defaults to `60` seconds. -- **zonedump_interval** (*Optional*): This is an interval (measured in seconds) where the evl will dump out all zone statuses. This is required for Honeywell systems, which do not properly send zone closure events. DSC boards do not technically need this. Default: `30` -- **panic_type** (*Optional*): Both DSC and Honeywell boards support a "panic" alarm. This is used when the alarm_trigger service is called in Home Assistant. This determines which type of panic alarm to raise. Default = Police. Valid values are: Police, Fire, Ambulance -- **zones** (*Optional*): Envisalink boards have no way to tell us which zones are actually in use, so each zone must be configured in Home Assistant. For each zone, at least a name must be given. For more information on the available zone types, take a look at the [Binary Sensor](/components/binary_sensor.envisalink/) docs. *Note: If no zones are specified, Home Assistant will not load any binary_sensor components.* -- **partitions** (*Optional*): Again, Envisalink boards do not tell us what is in use and what is not, so each partition must be configured with a partition name. If no partition parameter is specified, then no alarm_panel or sensor components are loaded. +{% configuration %} +host: + description: The IP address of the Envisalink device on your home network. + required: true + type: string +panel_type: + description: "`HONEYWELL` or `DSC`, depending upon which alarm system you have." + required: true + type: string +user_name: + description: Which username to authenticate with when connecting to the device. On a Honeywell alarm panel, the username/password are the same. + required: true + type: string +password: + description: Which password to authenticate with when connecting to the device. EVL3 only works with max. 6 characters. + required: true + type: string +code: + description: Your alarm panel's code, for authenticating user input during arm/disarm. + required: true + type: string +port: + description: Which network port to connect with. + required: false + default: 4025 + type: integer +evl_version: + description: 3 for evl3, or 4 for evl4. + required: false + default: 3 + type: integer +keepalive_interval: + description: This is a periodic heartbeat signal (measured in seconds) sent to your Envisalink board to keep it from restarting. This is required for DSC and Honeywell systems. + required: false + default: 60 + type: integer +zonedump_interval: + description: This is an interval (measured in seconds) where Envisalink will dump out all zone statuses. This is required for Honeywell systems, which do not properly send zone closure events. DSC boards do not technically need this. + required: false + default: 30 + type: integer +panic_type: + description: "Both DSC and Honeywell boards support a panic alarm. This is used when the alarm_trigger service is called in Home Assistant. This determines which type of panic alarm to raise. Valid values are: Police, Fire, Ambulance." + required: false + default: Police + type: string +zones: + description: "Envisalink boards have no way to tell us which zones are actually in use, so each zone must be configured in Home Assistant. For each zone, at least a name must be given. For more information on the available zone types, take a look at the [Binary Sensor](/components/binary_sensor.envisalink/) docs. *Note: If no zones are specified, Home Assistant will not load any binary_sensor components.*" + required: false + type: integer + keys: + name: + description: Zone name + required: true + type: string + type: + description: Zone type + required: false + default: opening + type: string +partitions: + description: Again, Envisalink boards do not tell us what is in use and what is not, so each partition must be configured with a partition name. If no partition parameter is specified, then no alarm_panel or sensor components are loaded. + required: false + type: integer + keys: + name: + description: Partition name + required: true + type: string +{% endconfiguration %} Supported services: diff --git a/source/_components/evohome.markdown b/source/_components/evohome.markdown index 6a69e5b7413..eaa1706bb5a 100644 --- a/source/_components/evohome.markdown +++ b/source/_components/evohome.markdown @@ -29,9 +29,9 @@ To use this component in your installation, add the following to your `configura ```yaml # Example configuration.yaml entry evohome: - - username: YOUR_USERNAME - password: YOUR_PASSWORD - location_idx: 0 + username: YOUR_USERNAME + password: YOUR_PASSWORD + location_idx: 0 ``` This is a IoT cloud-polling device, and the `scan_interval` is currently fixed at 3 minutes. Testing has indicated that this is a safe interval that - by itself - shouldn't cause you to be rate-limited by Honeywell. diff --git a/source/_components/fan.dyson.markdown b/source/_components/fan.dyson.markdown index c3480135efb..22240bbdb92 100644 --- a/source/_components/fan.dyson.markdown +++ b/source/_components/fan.dyson.markdown @@ -16,16 +16,16 @@ ha_release: 0.47 The `dyson` fan platform allows you to control your Dyson Purifier fans. -You have first to setup the [Dyson component](/components/dyson/) +You first have to setup the [Dyson component](/components/dyson/) ### {% linkable_title Supported fan devices %} - Pure Cool link (desk and tower) -- Pure Hot+cool link (but heating is not yet supported) +- Pure Hot+cool link (see [climate](/components/climate.dyson/) for thermal control) ### {% linkable_title Attributes %} -The are several attributes that can be useful for automations and templates. +There are several attributes which can be used for automations and templates. | Attribute | Description | | --------- | ----------- | diff --git a/source/_components/fan.mqtt.markdown b/source/_components/fan.mqtt.markdown index f48971fde9c..2a726f19e46 100644 --- a/source/_components/fan.mqtt.markdown +++ b/source/_components/fan.mqtt.markdown @@ -50,12 +50,12 @@ payload_on: description: The payload that represents the running state. required: false type: string - default: ON + default: "ON" payload_off: description: The payload that represents the stop state. required: false type: string - default: OFF + default: "OFF" state_value_template: description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the state." required: false @@ -146,6 +146,35 @@ unique_id: description: An ID that uniquely identifies this fan. If two fans have the same unique ID, Home Assistant will raise an exception. required: false type: string +device: + description: 'Information about the device this fan 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, tuple + 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 %}

diff --git a/source/_components/fan.zha.markdown b/source/_components/fan.zha.markdown index 536d9c78bd1..60d316e5926 100644 --- a/source/_components/fan.zha.markdown +++ b/source/_components/fan.zha.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "ZigBee Home Automation Fan" -description: "Instructions how to setup ZigBee Home Automation fans within Home Assistant." +title: "Zigbee Home Automation Fan" +description: "Instructions how to setup Zigbee Home Automation fans within Home Assistant." date: 2018-02-10 00:00 sidebar: true comments: false @@ -13,4 +13,4 @@ ha_iot_class: "Local Polling" ha_release: 0.66 --- -To get your ZigBee fans working with Home Assistant, follow the instructions for the general [ZigBee Home Automation component](/components/zha/). +To get your Zigbee fans working with Home Assistant, follow the instructions for the general [Zigbee Home Automation component](/components/zha/). diff --git a/source/_components/gc100.markdown b/source/_components/gc100.markdown index 43d74d72b7c..1899560f492 100644 --- a/source/_components/gc100.markdown +++ b/source/_components/gc100.markdown @@ -25,7 +25,14 @@ gc100: port: 4998 ``` -Configuration variables: - -- **host** (*Required*): The hostname/IP address of your GC100 device. -- **port** (*Optional*): The port on which the GC100 is listening. +{% configuration %} +host: + description: The hostname or IP address of your GC100 device. + required: true + type: string +port: + description: The port on which the GC100 is listening. + required: false + default: 4998 + type: integer +{% endconfiguration %} 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 43700fe2efd..61ffe91ede9 100644 --- a/source/_components/google_assistant.markdown +++ b/source/_components/google_assistant.markdown @@ -13,21 +13,26 @@ featured: true ha_release: 0.56 --- -

- Use [Home Assistant Cloud](/cloud/) to integrate with Google Assistant without any effort. -

- The `google_assistant` component allows you to control things via Google Assistant (on your mobile or tablet) or a Google Home device. +## {% linkable_title Automatic setup via Home Assistant Cloud %} + +With [Home Assistant Cloud](/cloud/), you can connect your Home Assistant instance in a few simple clicks to Google Assistant. With Home Assistant Cloud you don't have to deal with dynamic DNS, SSL certificates or opening ports on your router. Just log in via the user interface and a secure connection with the cloud will be established. Home Assistant Cloud requires a paid subscription after a 30-day free trial. + +## {% linkable_title Manual setup %} + The Google Assistant component requires a bit more setup than most due to the way Google requires Assistant Apps to be set up. -

-To use Google Assistant, your Home Assistant configuration has to be externally accessible with a hostname and SSL certificate. If you haven't already configured that, you should do so before continuing. +

+To use Google Assistant, your Home Assistant configuration has to be [externally accessible with a hostname and SSL certificate](/docs/configuration/remote/). If you haven't already configured that, you should do so before continuing.

## {% linkable_title Migrate to release 0.80 and above %} +

+If this is the first time setting up your Google Assistant integration, you can skip this section and continue with the [manual setup instructions](#first-time-setup) below. +

-Since release 0.80, the `Authorization Code` type of `OAuth` account linking is supported. To migrate your configuration, you need: +Since release 0.80, the `Authorization Code` type of `OAuth` account linking is supported. To migrate your existing configuration from release 0.79 or below, you need: 1. Change your `Account linking` setting in [Actions on Google console](https://console.actions.google.com/), look for the `Advanced Options` in the bottom left of the sidebar. - Change `Linking type` to `OAuth` and `Authorization Code`. @@ -48,7 +53,7 @@ Since release 0.80, the `Authorization Code` type of `OAuth` account linking is 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.

-## {% linkable_title Setup %} +## {% linkable_title First time setup %} You need to create an API Key with the [Google Cloud API Console](https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview) which allows you to update devices without unlinking and relinking an account (see [below](#troubleshooting-the-request_sync-service)). If you don't provide one, the `google_assistant.request_sync` service is not exposed. It is recommended to set up this configuration key as it also allows the usage of the following command, "Ok Google, sync my devices". Once you have set up this component, you will need to call this service (or command) each time you add a new device that you wish to control via the Google Assistant integration. @@ -97,21 +102,21 @@ Now add the following lines to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry google_assistant: - project_id: someproject-2d0b8 - api_key: [a Homegraph API Key generated for the Google Actions project] + project_id: YOUR_PROJECT_ID + api_key: YOUR_API_KEY exposed_domains: - - switch - - light - - group + - SWITCH + - LIGHT + - GROUP entity_config: switch.kitchen: - name: Custom Name for Google Assistant + name: CUSTOM_NAME_FOR_GOOGLE_ASSISTANT aliases: - - bright lights - - entry lights + - BRIGHT_LIGHTS + - ENTRY_LIGHTS light.living_room: expose: false - room: living room + room: LIVING_ROOM ``` {% configuration %} diff --git a/source/_components/group.markdown b/source/_components/group.markdown index 5e5232e86aa..81098bd5765 100644 --- a/source/_components/group.markdown +++ b/source/_components/group.markdown @@ -55,13 +55,32 @@ group: - device_tracker.mom_smith ``` -Configuration variables: - -- **view** (*Optional*): If yes then the entry will be shown as a view (tab) at the top. Groups that are set to `view: yes` cannot be used as entities in other views. -- **name** (*Optional*): Name of the group. -- **icon** (*Optional*): If the group is a view, this icon will show at the top in the frontend instead of the name. If the group is a view and both name and icon have been specified, the icon will appear at the top of the frontend and the name will be displayed as the mouse-over text. If it's not a view, then the icon shows when this group is used in another group. -- **control** (*Optional*): Set value to `hidden`. If hidden then the group switch will be hidden. -- **entities** (*Required*): array or comma delimited string, list of entities to group. +{% configuration %} +name: + description: Name of the group. + required: false + type: string +view: + description: "If yes then the entry will be shown as a view (tab) at the top. Groups that are set to `view: yes` cannot be used as entities in other views." + required: false + type: boolean +icon: + description: If the group is a view, this icon will show at the top in the frontend instead of the name. If the group is a view and both name and icon have been specified, the icon will appear at the top of the frontend and the name will be displayed as the mouse-over text. If it's not a view, then the icon shows when this group is used in another group. + required: false + type: string +control: + description: Set value to `hidden`. If hidden then the group switch will be hidden. + required: false + type: string +entities: + description: Array or comma delimited string, list of entities to group. + required: true + type: list +all: + description: Set this to `true` if the group state should only turn *on* if **all** grouped entities are *on*. + required: false + type: boolean +{% endconfiguration %}

@@ -121,7 +140,7 @@ group: ## {% linkable_title Group behavior %} -When any member of a group is `on` then the group will also be `on`. Similarly with a device tracker, when any member of the group is `home` then the group is `home`. +By default when any member of a group is `on` then the group will also be `on`. Similarly with a device tracker, when any member of the group is `home` then the group is `home`. If you set the `all` option to `true` though, this behavior is inverted and all members of the group have to be `on` for the group to turn on as well. ## {% linkable_title Customize group order %} You can also order your groups using [customize](/docs/configuration/customizing-devices/) with `order: ` if they don't show up in the order you want them in. diff --git a/source/_components/habitica.markdown b/source/_components/habitica.markdown index fbd51c31267..7da9936d680 100644 --- a/source/_components/habitica.markdown +++ b/source/_components/habitica.markdown @@ -20,8 +20,8 @@ To use the component you should use this example configuration: ```yaml # Minimum viable configuration.yaml entry habitica: - - api_user: 'REPLACE_ME_WITH_YOUR_USER_ID' - api_key: 'REPLACE_ME_WITH_YOUR_API_KEY' + - api_user: YOUR_USER_ID + api_key: YOUR_API_KEY ``` You can specify several users, providing `api_user` and `api_key` for each. diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown index 77ec79577f6..d87844743f3 100644 --- a/source/_components/homekit.markdown +++ b/source/_components/homekit.markdown @@ -12,17 +12,17 @@ ha_release: 0.64 logo: apple-homekit.png --- -The `HomeKit` component allows you to forward entities from Home Assistant to Apple `HomeKit`, so they can be controlled from Apple's `Home` app and `Siri`. Please make sure that you have read the [considerations](#considerations) listed below to save you some trouble later. +The `HomeKit` component allows you to forward entities from Home Assistant to Apple `HomeKit`, so they can be controlled from Apple's `Home` app and `Siri`. Please make sure that you have read the [considerations](#considerations) listed below to save you some trouble later. However if you do encounter issues, checkout the [troubleshooting](#troubleshooting) section. + +

+ If you want to control `HomeKit` only devices with Home Assistant, check out the [HomeKit controller](/components/homekit_controller/) component. +

It might be necessary to install an additional package: `$ sudo apt-get install libavahi-compat-libdnssd-dev`

-

- If you are upgrading Home Assistant from `0.65.x` and have used the HomeKit component, some accessories may not respond or may behave unusually. To fix these problems, you will need to remove the Home Assistant Bridge from your Home, stop Home Assistant and delete the `.homekit.state` file in your configuration folder and follow the Homekit [setup](#setup) steps again. -

- ```yaml # Example configuration.yaml entry configuring HomeKit homekit: @@ -129,9 +129,6 @@ homekit: default: '`switch`' {% endconfiguration %} -

- If you use Z-Wave, or `discovery:` you'll need to disable auto-start, see the [section below](#disable-auto-start) for details on how to do this. You'll then need to start the HomeKit component once Z-Wave is ready, or an appropriate delay to allow your entities to be discovered. -

## {% linkable_title Setup %} @@ -145,17 +142,17 @@ homekit: After Home Assistant has started, the entities specified by the filter are exposed to `HomeKit` if they are [supported](#supported-components). To add them: 1. Open the Home Assistant frontend. A new card will display the `pin code`. 1. Open the `Home` app. -2. Choose `Add Accessory`, than select `Don't Have a Code or Can't Scan?` and enter the `pin code`. -4. Confirm the you are adding an `Uncertified Accessory` by clicking on `Add Anyway`. -5. Follow the setup be clicking on `Next` and lastly `Done` in the top right hand corner. -6. The `Home Assistant` Bridge and the Accessories should now be listed in the `Home` app. +2. Click `Add Accessory`, than select `Don't Have a Code or Can't Scan?` and choose the `Home Assistant Bridge`. +4. Confirm that you are adding an `Uncertified Accessory` by clicking on `Add Anyway`. +5. Enter the `PIN` code. +6. Follow the setup be clicking on `Next` and lastly `Done` in the top right hand corner. +7. The `Home Assistant` Bridge and the Accessories should now be listed in the `Home` app. After the setup is completed you should be able to control your Home Assistant components through `Home` and `Siri`. ## {% linkable_title Considerations %} - ### {% linkable_title Accessory ID %} Currently this component uses the `entity_id` to generate a unique `accessory id (aid)` for `HomeKit`. The `aid` is used to identify a device and save all configurations made for it. This however means that if you decide to change an `entity_id` all configurations for this accessory made in the `Home` app will be lost. @@ -175,7 +172,11 @@ A common situation might be if you decide to disable parts of the configuration Depending on your individual setup, it might be necessary to disable `Auto Start` for all accessories to be available for `HomeKit`. Only those entities that are fully setup when the `HomeKit` component is started, can be added. To start `HomeKit` when `auto_start: False`, you can call the service `homekit.start`. -If you have Z-Wave entities you want exposed to HomeKit then you'll need to disable auto start and then start it after the Z-Wave mesh is ready. This is because the Z-Wave entities won't be fully set up until then. This can be automated using an automation: +If you have Z-Wave entities you want exposed to HomeKit then you'll need to disable auto start and then start it after the Z-Wave mesh is ready. This is because the Z-Wave entities won't be fully set up until then. This can be automated using an automation. + +

{% raw %} ```yaml @@ -278,38 +279,82 @@ The following components are currently supported: | sensor | CarbonDioxideSensor | All sensors that have `co2` as part of their `entity_id` or `co2` as their `device_class` | | sensor | LightSensor | All sensors that have `lm` or `lx` as their `unit_of_measurement` or `illuminance` as their `device_class` | | switch | Switch | Represented as a switch by default but can be changed by using `type` within `entity_config`. | +| water_heater | WaterHeater | All water_heater devices. | -## {% linkable_title Error reporting %} +## {% linkable_title Troubleshooting %} -If you encounter any issues or bug and want to report them on `GitHub`, please follow these steps to make it easier for others to help and get your issue solved. +### {% linkable_title Deleting the `.homekit.state` file %} + +The `.homekit.state` file can be found in the configurations directory. You might need to enable `view hidden files` to see it. + 1. **Stop** Home Assistant + 2. Delete the `.homekit.state` file + 3. **Start** Home Assistant + +### {% linkable_title Errors during pairing %} + +If you encounter any issues during pairing, make sure to + 1. **Stop** Home Assistant + 2. Delete the `.homekit.state` file + 3. Edit your configuration (see below) + 4. **Start** Home Assistant -1. Enable debugging mode: ```yaml logger: default: warning logs: - homeassistant.components.homekit: debug - pyhap: debug -``` -2. Reproduce the bug / problem you have encountered. -3. Stop Home Assistant and copy the log from the log file. That is necessary since some errors only get logged, when Home Assistant is being shutdown. -4. Follow this link: [home-assistant/issues/new](https://github.com/home-assistant/home-assistant/issues/new?labels=component: homekit) and open a new issue. -5. Fill out all fields and especially include the following information: - - The configuration entries for `homekit` and the `component` that is causing the issue. - - The log / traceback you have generated before. - - Screenshots of the failing entity in the `states` panel. + homeassistant.components.homekit: debug + pyhap: debug -## {% linkable_title Troubleshooting PIN not appearing %} - -In some instances, the PIN will not appear as a persistent status or in the log files despite deleting `.homekit.state`, enabling logging, and reboot. The log files will include the error ```Duplicate AID found when attempting to add accessory```. - -In such cases, modifying your configuration.yaml to add a filter limiting the included entities similar to the following: - -```yaml -filter: - include_domains: - - light +homekit: + filter: + include_entities: + - demo.demo ``` -Restart Home Assistant and re-attempt pairing - a persistent status should now correctly appear. +#### {% linkable_title PIN doesn't appear as persistent status %} +You might have paired the `Home Assistant Bridge` already. If not, delete the `.homekit.state` file ([guide](#deleting-the-homekitstate-file)). + +#### {% linkable_title `Home Assistant Bridge` doesn't appear in the Home App (for pairing) %} +For `Docker` users: make sure to set `network_mode: host`. Other reasons could be network related. Make sure to check your router configuration. For some it helped when the Home Assistant device was using WIFI, not LAN. Remember that the iOS device needs to be in the same local network as the Home Assistant device for paring. + +#### {% linkable_title Pairing hangs - zeroconf error %} +Paining eventually fails, you might see and an error message `NonUniqueNameException`. To resolve this, you need to replace a specific file. See the following git issues for more details: [home-assistant#14567](https://github.com/home-assistant/home-assistant/issues/14567) and [home-assistant#17181](https://github.com/home-assistant/home-assistant/issues/17181) + +#### {% linkable_title Pairing hangs - only works with debug config %} +Pairing works fine when the filter is set to only include `demo.demo`, but fails with normal config. See [specific entity doesn't work](#specific-entity-doesnt-work) + +#### {% linkable_title Duplicate AID found when attempting to add accessory %} +Two of your entities share the same `entity_id`. Either resolve this or configure the [filter](#configure-filter) to exclude them. + + +### {% linkable_title Issues during normal use %} + +#### {% linkable_title Pairing hangs - no error %} +Make sure that you don't try to add more then 100 accessories, see [device limit](#device-limit). In rare cases one of your entities doesn't work with the HomeKit component. Use the [filter](#configure-filter) to find out which one. Feel free to open a new issue in the `home-assistant` repo, so we can resolve it. + +#### {% linkable_title Some of my devices don't show up - Z-Wave / Discovery %} +See [disable auto start](#disable-auto-start) + +#### {% linkable_title My entity doesn't show up %} +Check if the domain of your entity is [supported](#supported-components). If it is, check your [filter](#configure-filter) settings. Make sure the spelling is correct, especially if you use `include_entities`. + +#### {% linkable_title HomeKit doesn't work on second Home Assistant instance %} +To use the HomeKit component with to different Home Assistant instances on the same local network, you need to set a custom name for at least one of them. [config/name](#name) + +#### {% linkable_title Specific entity doesn't work %} +Although we try our best, some entities don't work with the HomeKit component yet. The result will be that either pairing fails completely or all Home Assistant accessories will stop working. Use the filter to identify which entity is causing the issue. It's best to try pairing and step by step including more entities. If it works unpair and repeat until you find the one that is causing the issues. To help others and the developers, please open a new issue here: [home-assistant/issues/new](https://github.com/home-assistant/home-assistant/issues/new?labels=component: homekit) + +#### {% linkable_title Accessories are all listed as not responding %} +See [specific entity doesn't work](#specific-entity-doesnt-work) + +#### {% linkable_title Accessory not responding - after restart or update %} +See [device limit](#device-limit) + +#### {% linkable_title Accessory not responding - randomly %} +Unfortunately that sometimes happens at the moment. It might help to close the `Home` App and delete it from the cache. Usually the accessory should get back to responding after a few minutes at most. + +#### {% linkable_title Accessories not responding / behaving unusual - Upgrade from `0.65.x` %} +To fix this, you need to unpair the `Home Assistant Bridge`, delete the `.homekit.state` file ([guide](#deleting-the-homekitstate-file)) and pair it again. This should only be an issue if you're upgrading from `0.65.x` or below. + +[devices]: https://www.home-assistant.io/docs/configuration/devices/ diff --git a/source/_components/homematic.markdown b/source/_components/homematic.markdown index 64783bc44e2..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: @@ -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 3c3b20ca888..c80fbf4c31c 100644 --- a/source/_components/http.markdown +++ b/source/_components/http.markdown @@ -62,7 +62,7 @@ cors_allowed_origins: required: false type: string, list use_x_forwarded_for: - description: "Enable parsing of the `X-Forwarded-For` header, passing on the client's correct IP address in proxied setups. You **must** also whitelist trusted proxies using the `trusted_proxies` setting above for this to work. Non-whitelisted requests with this header will be considered IP spoofing attacks, and the header will, therefore, be ignored." + description: "Enable parsing of the `X-Forwarded-For` header, passing on the client's correct IP address in proxied setups. You **must** also whitelist trusted proxies using the `trusted_proxies` setting for this to work. Non-whitelisted requests with this header will be considered IP spoofing attacks, and the header will, therefore, be ignored." required: false type: boolean default: false diff --git a/source/_components/ifttt.markdown b/source/_components/ifttt.markdown index 511390b52a5..f2b83c028d8 100644 --- a/source/_components/ifttt.markdown +++ b/source/_components/ifttt.markdown @@ -34,7 +34,8 @@ You can then consume that information with the following automation: ```yaml automation: trigger: - event: ifttt_webhook_received + platform: event + event_type: ifttt_webhook_received event_data: action: call_service action: @@ -48,7 +49,7 @@ automation: ```yaml # Example configuration.yaml entry ifttt: - key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + key: YOUR_API_KEY ``` `key` is your API key which can be obtained by viewing the **Settings** of the [Webhooks applet](https://ifttt.com/services/maker_webhooks/settings). It's the last part of the URL (e.g., https://maker.ifttt.com/use/MYAPIKEY) you will find under **My Applets** > **Webhooks** > **Settings**. diff --git a/source/_components/image_processing.dlib_face_detect.markdown b/source/_components/image_processing.dlib_face_detect.markdown index f4275902565..368d4c78ba4 100644 --- a/source/_components/image_processing.dlib_face_detect.markdown +++ b/source/_components/image_processing.dlib_face_detect.markdown @@ -27,8 +27,18 @@ image_processing: - entity_id: camera.door ``` -Configuration variables: - -- **source** array (*Required*): List of image sources. - - **entity_id** (*Required*): A camera entity id to get picture from. - - **name** (*Optional*): This parameter allows you to override the name of your `image_processing` entity. +{% configuration %} +source: + description: List of image sources. + required: true + type: list + keys: + entity_id: + description: A camera entity id to get picture from. + required: true + type: string + name: + description: This parameter allows you to override the name of your `image_processing` entity. + required: false + type: string +{% endconfiguration %} diff --git a/source/_components/image_processing.facebox.markdown b/source/_components/image_processing.facebox.markdown index 5723f5abaa8..f2aa6353685 100644 --- a/source/_components/image_processing.facebox.markdown +++ b/source/_components/image_processing.facebox.markdown @@ -24,7 +24,7 @@ MB_KEY="INSERT-YOUR-KEY-HERE" sudo docker run --name=facebox --restart=always -p 8080:8080 -e "MB_KEY=$MB_KEY" machinebox/facebox ``` -You can run Facebox with a username and password by adding `-e "MB_BASICAUTH_USER=my_username" -e "MB_BASICAUTH_PASS=my_password"` but bare in mind that the component does not encrypt these credentials and this approach does not guarantee security on an unsecured network. +You can run Facebox with a username and password by adding `-e "MB_BASICAUTH_USER=my_username" -e "MB_BASICAUTH_PASS=my_password"` but bear in mind that the component does not encrypt these credentials and this approach does not guarantee security on an unsecured network. If you only require face detection (number of faces) you can disable face recognition by adding `-e "MB_FACEBOX_DISABLE_RECOGNITION=true"` to the `docker run` command. @@ -98,7 +98,7 @@ Use the `image_processing.detect_face` events to trigger automations, and breako ## {% linkable_title Service `facebox_teach_face` %} -The service `facebox_teach_face` can be used to teach Facebox faces. +The service `facebox_teach_face` can be used to teach Facebox faces. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | @@ -133,7 +133,7 @@ You can use an automation to receive a notification when you train a face: action: - service: notify.pushbullet data_template: - message: '{{ trigger.event.data.service_data.name }} taught + message: '{{ trigger.event.data.service_data.name }} taught with file {{ trigger.event.data.service_data.file_path }}' title: Face taught notification ``` @@ -166,6 +166,3 @@ you can create an automation to receive notifications on Facebox errors: ``` {% endraw %} -## {% linkable_title Optimising resources %} - -[Image processing components](https://www.home-assistant.io/components/image_processing/) process the image from a camera at a fixed period given by the `scan_interval`. This leads to excessive processing if the image on the camera hasn't changed, as the default `scan_interval` is 10 seconds. You can override this by adding to your config `scan_interval: 10000` (setting the interval to 10,000 seconds), and then call the `image_processing.scan` service when you actually want to perform processing. diff --git a/source/_components/image_processing.markdown b/source/_components/image_processing.markdown index 1f1507bf280..d2dfd222ce2 100644 --- a/source/_components/image_processing.markdown +++ b/source/_components/image_processing.markdown @@ -12,17 +12,15 @@ ha_release: 0.36 Image processing enables Home Assistant to process images from [cameras](/components/#camera). Only camera entities are supported as sources. -For interval control, use `scan_interval` in platform. -

If you are running Home Assistant over SSL or from within a container, you will have to setup a base URL (`base_url`) inside the [http component](/components/http/).

## {% linkable_title ALPR %} -Alpr entities attribute have a vehicle counter `vehicles` and all found plates as `plates`. +ALPR entities have a vehicle counter attribute `vehicles` and all found plates are stored in the `plates` attribute. -This event is trigger after OpenALPR found a new license plate. +The `found_plate` event is triggered after OpenALPR has found a new license plate. ```yaml # Example configuration.yaml automation entry @@ -41,9 +39,9 @@ The following event attributes will be present (platform-dependent): `entity_id` ## {% linkable_title Face %} -Face entities attribute have a face counter `total_faces` and all face data as `faces`. +Face entities have a face counter attribute `total_faces` and all face data is stored in the `faces` attribute. -This event is trigger after Microsoft Face found a faces. +The `detect_face` event is triggered after a Face entity has found a face. ```yaml # Example configuration.yaml automation entry @@ -59,3 +57,26 @@ automation: ``` The following event attributes will be present (platform-dependent): `entity_id`, `name`, `confidence`, `age`, `gender`, `motion`, `glasses` + +## {% linkable_title scan_interval and Optimising Resources %} + +Image processing components process the image from a camera at a fixed period given by the `scan_interval`. This leads to excessive processing if the image on the camera hasn't changed, as the default `scan_interval` is 10 seconds. You can override this by adding to your config `scan_interval: 10000` (setting the interval to 10,000 seconds), and then call the `image_processing.scan` service when you actually want to perform processing. + +```yaml +# Example configuration.yaml +sensor: +- platform: _AN_IMAGE_PROCESSING_PLATFORM_ + scan_interval: 10000 +... +automation: +- alias: Scan for faces when motion detected + trigger: + - platform: state + entity_id: sensor.door_motion_sensor + to: 'on' + action: + - service: image_processing.scan + data: + entity_id: image_processing.door +... +``` diff --git a/source/_components/image_processing.microsoft_face_detect.markdown b/source/_components/image_processing.microsoft_face_detect.markdown index 330ff1f0f63..70d59e403c6 100644 --- a/source/_components/image_processing.microsoft_face_detect.markdown +++ b/source/_components/image_processing.microsoft_face_detect.markdown @@ -18,11 +18,15 @@ The `microsoft_face_detect` image processing platform allows you to use the API through Home Assistant. This platform enables you do detect face on camera and fire an event with attributes. -Please refer to the [component](/components/microsoft_face/) configuration on +Please refer to the [Microsoft Face component](/components/microsoft_face/) configuration on how to setup the API key. For using the result inside an automation rule, -take a look at the [component](/components/image_processing/) page. +take a look at the [Image Processing component](/components/image_processing/) page. + +

+The free version of the Microsoft Face identify API limits the number of requests possible per month. Therefore, it is strongly recommended that you limit the `scan_interval` when setting up an instance of this entity as detailed on the main [Image Processing component](/components/image_processing/) page. +

### {% linkable_title Configuration %} diff --git a/source/_components/image_processing.microsoft_face_identify.markdown b/source/_components/image_processing.microsoft_face_identify.markdown index da3b931f1ab..aad6ae072cd 100644 --- a/source/_components/image_processing.microsoft_face_identify.markdown +++ b/source/_components/image_processing.microsoft_face_identify.markdown @@ -18,11 +18,15 @@ The `microsoft_face_identify` image processing platform lets you use API through Home Assistant. This platform allow you do identify persons on camera and fire an event with attributes. -Please refer to the [component](/components/microsoft_face/) configuration on +Please refer to the [Microsoft Face component](/components/microsoft_face/) configuration on how to setup the API key. For using the result inside an automation rule, -take a look at the [component](/components/image_processing/) page. +take a look at the [Image Processing component](/components/image_processing/) page. + +

+The free version of the Microsoft Face identify API limits the number of requests possible per month. Therefore, it is strongly recommended that you limit the `scan_interval` when setting up an instance of this entity as detailed on the main [Image Processing component](/components/image_processing/) page. +

### {% linkable_title Configuration %} diff --git a/source/_components/image_processing.openalpr_cloud.markdown b/source/_components/image_processing.openalpr_cloud.markdown index 9149f802815..6576c55db3b 100644 --- a/source/_components/image_processing.openalpr_cloud.markdown +++ b/source/_components/image_processing.openalpr_cloud.markdown @@ -26,10 +26,10 @@ take a look at the [component](/components/image_processing/) page. # Example configuration.yaml entry image_processing: - platform: openalpr_cloud - api_key: 'sk_abcxyz123456' + api_key: YOUR_API_KEY region: eu source: - - entity_id: camera.garage + - entity_id: CAMERA.GARAGE ``` {% configuration %} diff --git a/source/_components/insteon.markdown b/source/_components/insteon.markdown index d52e115b918..03e81cd3072 100644 --- a/source/_components/insteon.markdown +++ b/source/_components/insteon.markdown @@ -13,12 +13,8 @@ ha_iot_class: "Local Push" ha_version: 0.77 --- -This component adds "local push" support for INSTEON Modems allowing -linked INSTEON devices to be used within Home Assistant as binary sensors, -lights, fans, sensors and switches. Device support is provided by the -underlying [insteonplm] package. It is known to work with the [2413U] USB and -[2412S] RS242 flavors of PLM and the [2448A7] USB stick. It has also been -tested to work with the [2242] and [2245] Hubs. +This component adds "local push" support for INSTEON Modems allowing linked INSTEON devices to be used within Home Assistant as binary sensors, lights, fans, sensors and switches. Device support is provided by the +underlying [insteonplm] package. It is known to work with the [2413U] USB and [2412S] RS242 flavors of PLM and the [2448A7] USB stick. It has also been tested to work with the [2242] and [2245] Hubs. [insteonplm]: https://github.com/nugget/python-insteonplm [2413U]: https://www.insteon.com/powerlinc-modem-usb @@ -27,11 +23,9 @@ tested to work with the [2242] and [2245] Hubs. [2245]: https://www.insteon.com/insteon-hub/ [2242]: https://www.insteon.com/support-knowledgebase/2014/9/26/insteon-hub-owners-manual - ### {% linkable_title INSTEON Modem configuration %} -To set up an INSTEON Powerline Modem (PLM) device such as the [2413U], use the -following configuration: +To set up an INSTEON Powerline Modem (PLM) device such as the [2413U], use the following configuration: ```yaml # PLM configuration variables @@ -40,7 +34,7 @@ insteon: ``` To set up an INSTEON Hub model [2245], use the following configuration: - + ```yaml # Hub 2245 configuration variables insteon: @@ -81,92 +75,111 @@ insteon: x10_all_lights_on: HOUSECODE x10_all_lights_off: HOUSECODE ``` -Configuration variables: -- **port** (*Required for PLM setup*): The serial or USB port for your device, - e.g., `/dev/ttyUSB0` or `COM3` -- **host** (*Required for Hub setup*): The host name or IP address of the Hub. -- **ip_port** (*Optional for Hub setup*): The IP port number of the Hub. For - Hub model [2245] (i.e. Hub version 2) the default port is 25105. For the Hub - model [2242] (i.e. Hub version 1) the default port is 9761. Use the Insteon - app to find the port number for your specific Hub. -- **username** (*Required for Hub version 2 setup*): The username to login in - to the local Hub. This is required for Hub [2245] (i.e. Hub version 2) setup. - You can find your Hub username on the bottom of the Hub or you can use the - Insteon app. -- **password** (*Required for Hub version 2 setup*): The password to login in - to the local Hub. This is required for Hub [2245] (i.e. Hub version 2) setup. - You can find your Hub password on the bottom of the Hub or you can use the - Insteon app. -- **hub_version** (*Required for Hub version 1 setup*): The Hub version number - where model [2242] is Hub version 1 and model [2245] is Hub version 2. - (Default is 2) -- **device_override** (*Optional*): Override the default device definition - - *ADDRESS* is found on the device itself in the form 1A.2B.3C or 1a2b3c - - *CATEGORY* is found in the back of the device's User Guide in the form of - 0x00 - 0xff - - *SUBCATEGORY* is found in the back of the device's User Guide in the form - of 0x00 - 0xff - - *FIRMWARE* and *PRODUCT_KEY* are more advanced options and will typically - not be used. -- **x10_devices** (*Optional*): Define X10 devices to control or respond to - - *HOUSECODE* is the X10 housecode values a - p - - *UNITCODE* is the X10 unit code values 1 - 16 - - *PLATFORM* is the Home Assistant Platform to associate the device with. - The following platforms are supported - - binary_sensor: Used for on/off devices or keypad buttons that are read-only. - - light: Used for dimmable X10 devices - - switch: Used for On/Off X10 devices - - *STEPS* is the number of dim/bright steps the device supports. Used for - dimmable X10 devices only. Default value is 22. -- **x10_all_units_off** (*Optional*): Creates a binary_sensor that responds - to the X10 standard command for All Units Off. -- **x10_all_lights_on** (*Optional*): Creates a binary_sensor that responds - to the X10 standard command for All Lights On -- **x10_all_lights_off** (*Optional*): Creates a binary_sensor that responds - to the X10 standard command for All Lights Off + +{% configuration %} +port: + description: The serial or USB port for your device, e.g., `/dev/ttyUSB0` or `COM3`. + required: Required for PLM setup + type: string +host: + description: The host name or IP address of the Hub. + required: Required for Hub setup + type: string +ip_port: + description: The IP port number of the Hub. For Hub model [2245] (i.e. Hub version 2) the default port is 25105. For the Hub model [2242] (i.e. Hub version 1) the default port is 9761. Use the Insteon app to find the port number for your specific Hub. + required: Optional for Hub setup + type: integer +username: + description: The username to login in to the local Hub. You can find your Hub username on the bottom of the Hub or you can use the Insteon app. + required: Required for Hub version 2 setup + type: string +password: + description: The password to login in to the local Hub. You can find your Hub password on the bottom of the Hub or you can use the Insteon app. + required: Required for Hub version 2 setup + type: string +hub_version: + description: The Hub version number where model [2242] is Hub version 1 and model [2245] is Hub version 2. + required: Required for Hub version 1 setup + default: 2 + type: integer +device_override: + description: Override the default device definition. + required: false + type: list + keys: + address: + description: is found on the device itself in the form 1A.2B.3C or 1a2b3c. + required: true + type: string + cat: + description: is found in the back of the device's User Guide in the form of 0x00 - 0xff. + required: false + type: integer + subcat: + description: is found in the back of the device's User Guide in the form of 0x00 - 0xff. + required: false + type: integer + firmware: + description: are more advanced options and will typically not be used. + required: false + type: string + product_key: + description: are more advanced options and will typically not be used. + required: false + type: integer +x10_devices: + description: Define X10 devices to control or respond to. + required: false + type: list + keys: + housecode: + description: is the X10 housecode values a - p + required: true + type: string + unitcode: + description: is the X10 unit code values 1 - 16 + required: true + type: integer + platform: + description: "is the Home Assistant Platform to associate the device with. The following platforms are supported: binary_sensor: Used for on/off devices or keypad buttons that are read-only. light: Used for dimmable X10 devices. switch: Used for On/Off X10 devices." + required: true + type: string + dim_steps: + description: is the number of dim/bright steps the device supports. Used for dimmable X10 devices only. + required: false + default: 22 + type: integer +x10_all_units_off: + description: Creates a binary_sensor that responds to the X10 standard command for All Units Off. + required: false + type: string +x10_all_lights_on: + description: Creates a binary_sensor that responds to the X10 standard command for All Lights On + required: false + type: string +x10_all_lights_off: + description: Creates a binary_sensor that responds to the X10 standard command for All Lights Off + required: false + type: string +{% endconfiguration %} ### {% linkable_title Autodiscovery %} -The first time autodiscovery runs, the duration may require up to 20 seconds -per device. Subsequent startups will occur much quicker using cached device -information. If a device is not recognized during autodiscovery, you can add -the device to the **device_override** configuration. +The first time autodiscovery runs, the duration may require up to 20 seconds per device. Subsequent startups will occur much quicker using cached device information. If a device is not recognized during autodiscovery, you can add the device to the **device_override** configuration. -In order for a device to be discovered, it must be linked to the INSTEON Modem -as either a responder or a controller. +In order for a device to be discovered, it must be linked to the INSTEON Modem as either a responder or a controller. ### {% linkable_title Linking Devices to the INSTEON Modem %} -In order for any two Insteon devices to talk with one another, they must be -linked. For an overview of device linking, please read the Insteon page on -[understanding linking]. The Insteon Modem module supports All-Linking through -[Development Tools] service calls. The following services are available: +In order for any two Insteon devices to talk with one another, they must be linked. For an overview of device linking, please read the Insteon page on [understanding linking]. The Insteon Modem module supports All-Linking through [Development Tools] service calls. The following services are available: -- **insteon.add_all_link**: Puts the Insteon Modem (IM) into All-Linking -mode. The IM can be set as a controller or a responder. If the IM is a -controller, put the IM into linking mode then press the SET button on the -device. If the IM is a responder, press the SET button on the device then -put the IM into linking mode. -- **insteon.delete_all_link**: Tells the Insteon Modem (IM) to remove an -All-Link record from the All-Link Database of the IM and a device. Once the IM -is set to delete the link, press the SET button on the corresponding device -to complete the process. -- **insteon.load_all_link_database**: Load the All-Link Database for a -device. WARNING - Loading a device All-Link database may take a LONG time and -may need to be repeated to obtain all records. -- **insteon.print_all_link_database**: Print the All-Link Database for a -device. Requires that the All-Link Database is loaded first. -- **insteon.print_im_all_link_database**: Print the All-Link Database for -the INSTEON Modem (IM). +- **insteon.add_all_link**: Puts the Insteon Modem (IM) into All-Linking mode. The IM can be set as a controller or a responder. If the IM is a controller, put the IM into linking mode then press the SET button on the device. If the IM is a responder, press the SET button on the device then put the IM into linking mode. +- **insteon.delete_all_link**: Tells the Insteon Modem (IM) to remove an All-Link record from the All-Link Database of the IM and a device. Once the IM is set to delete the link, press the SET button on the corresponding device to complete the process. +- **insteon.load_all_link_database**: Load the All-Link Database for a device. WARNING - Loading a device All-Link database may take a LONG time and may need to be repeated to obtain all records. +- **insteon.print_all_link_database**: Print the All-Link Database for a device. Requires that the All-Link Database is loaded first. +- **insteon.print_im_all_link_database**: Print the All-Link Database for the INSTEON Modem (IM). -If you are looking for more advanced options, you can use the -[insteonplm_interactive] command line tool that is distributed with the -[insteonplm] Python module. Please see the documentation on the [insteonplm] -GitHub site. Alternatively, you can download [HouseLinc] which runs on any -Windows PC, or you can use [Insteon Terminal] which is open source and runs -on most platforms. SmartHome no longer supports HouseLinc, but it still -works. Insteon Terminal is a very useful tool but please read the disclaimers -carefully, they are important. +If you are looking for more advanced options, you can use the [insteonplm_interactive] command line tool that is distributed with the [insteonplm] Python module. Please see the documentation on the [insteonplm] GitHub site. Alternatively, you can download [HouseLinc] which runs on any Windows PC, or you can use [Insteon Terminal] which is open source and runs on most platforms. SmartHome no longer supports HouseLinc, but it still works. Insteon Terminal is a very useful tool but please read the disclaimers carefully, they are important. [understanding linking]: http://www.insteon.com/support-knowledgebase/2015/1/28/understanding-linking [Development Tools]: https://www.home-assistant.io/docs/tools/dev-tools/ @@ -174,36 +187,24 @@ carefully, they are important. [Insteon Terminal]: https://github.com/pfrommerd/insteon-terminal [insteonplm_interactive]: https://github.com/nugget/python-insteonplm#command-line-interface -### {% linkable_title Customization %} +### {% linkable_title Customization %} -The only configuration item that is necessary is the PLM port or Hub IP -address, username and password so that Home Assistant can connect to the -INSTEON Modem. This will expose all the supported INSTEON devices which exist -in the modem’s ALL-Link database. However, devices will only be shown by their -INSTEON hex address (e.g., “1A.2B.3C”) which can be a bit unwieldy. As you link -and unlink devices using the ‘Set’ buttons, they’ll be added and removed from -Home Assistant automatically. +The only configuration item that is necessary is the PLM port or Hub IP address, username and password so that Home Assistant can connect to the INSTEON Modem. This will expose all the supported INSTEON devices which exist in the modem’s ALL-Link database. However, devices will only be shown by their INSTEON hex address (e.g., “1A.2B.3C”) which can be a bit unwieldy. As you link and unlink devices using the ‘Set’ buttons, they’ll be added and removed from Home Assistant automatically. -You can use the normal Home Assistant [device customization] section of your -configuration to assign friendly names and special icons to your devices. This -is especially useful for setting device_class on your binary_sensor INSTEON -devices. +You can use the normal Home Assistant [device customization] section of your configuration to assign friendly names and special icons to your devices. This is especially useful for setting device_class on your binary_sensor INSTEON devices. [device customization]: /getting-started/customizing-devices/ -### {% linkable_title Device Overrides %} +### {% linkable_title Device Overrides %} -INSTEON devices are added to Home Assistant using the platform(s) that make the -most sense given the model and features of the hardware. The features of the -INSTEON devices are built into the Home Assistant platform. Changing the -platform is not recommended. There are two primary uses for the -**device_override** feature. -- Devices that do not respond during autodiscovery. This is common for battery - operated devices. -- Devices that have not been fully developed. This allows an unknown device to - be mapped to a device that operates similarly to another device. +INSTEON devices are added to Home Assistant using the platform(s) that make the most sense given the model and features of the hardware. The features of the INSTEON devices are built into the Home Assistant platform. Changing the platform is not recommended. -### {% linkable_title Example Configuration with Options%} +There are two primary uses for the **device_override** feature: + +- Devices that do not respond during autodiscovery. This is common for battery operated devices. +- Devices that have not been fully developed. This allows an unknown device to be mapped to a device that operates similarly to another device. + +### {% linkable_title Example Configuration with Options%} ```yaml # Full example of Insteon configuration with customizations and overrides @@ -221,15 +222,12 @@ insteon: device_override: - address: a1b2c3 # Hidden Door Sensor [2845-222] cat: 0x10 - subcat: 0x11 + subcat: 0x11 ``` ### {% linkable_title What NOT to do %} -Insteon Modem is a top-level component and device discovery will identify -the Home Assistant platform the device belongs in. As such, do not -declare Insteon devices in other platforms. For example, this configuration -will NOT work: +Insteon Modem is a top-level component and device discovery will identify the Home Assistant platform the device belongs in. As such, do not declare Insteon devices in other platforms. For example, this configuration will NOT work: ```yaml light: @@ -239,26 +237,18 @@ light: ### {% linkable_title Events and Mini-Remotes %} -Mini-Remote devices do not appear as Home Assistant entities. They generate -events. The following events are available: +Mini-Remote devices do not appear as Home Assistant entities, they generate events. The following events are available: - **insteon.button_on** - - **address**: (required) The Insteon device address in lower case without - 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. + - **address**: (required) The Insteon device address in lower case without 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) - - **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. + - **address**: (required) The Insteon device address in lower case without 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. -This allows the mini-remotes to be configured as triggers for automations. Here -is an example of how to use these events for automations: +This allows the mini-remotes to be configured as triggers for automations. Here is an example of how to use these events for automations: -``` +```yaml automation: # 4 or 8 button remote with button c pressed trigger: @@ -292,17 +282,10 @@ automation: ### {% linkable_title Known Issues with the INSTEON Hub %} -The INSTEON Hub has three known issues that are inherent to the design of the -Hub: +The INSTEON Hub has three known issues that are inherent to the design of the Hub: -1. If you see multiple error messages in the log file stating the Hub -connection is closed, and reconnection has failed, this generally requires -the Hub to be restarted to reconnect. +1. If you see multiple error messages in the log file stating the Hub connection is closed, and reconnection has failed, this generally requires the Hub to be restarted to reconnect. -2. You cannot use both Home Assistant and the INSTEON app. If you do, the -changes made in the app will not appear in Home Assistant. Changes made in -Home Assistant will appear in the app after a period of time, however. +2. You cannot use both Home Assistant and the INSTEON app. If you do, the changes made in the app will not appear in Home Assistant. Changes made in Home Assistant will appear in the app after a period of time, however. -3. The Hub response times can be very slow. This is due to the Hub polling -devices frequently. Since only one INSTEON message can be broadcast at a time, -messages to and from Home Assistant can be delayed. +3. The Hub response times can be very slow. This is due to the Hub polling devices frequently. Since only one INSTEON message can be broadcast at a time, messages to and from Home Assistant can be delayed. diff --git a/source/_components/insteon_local.markdown b/source/_components/insteon_local.markdown index c79b46b2e4e..25f8d157650 100644 --- a/source/_components/insteon_local.markdown +++ b/source/_components/insteon_local.markdown @@ -15,4 +15,4 @@ ha_version: 0.36 The `insteon_local` component is depreciated and has been replaced by the [insteon] component. -[insteon]: /component/insteon +[insteon]: /components/insteon diff --git a/source/_components/insteon_plm.markdown b/source/_components/insteon_plm.markdown index bed0e71ccb6..ff8d33a1527 100644 --- a/source/_components/insteon_plm.markdown +++ b/source/_components/insteon_plm.markdown @@ -15,4 +15,4 @@ ha_version: 0.39 The `insteon_plm` component is depreciated and has been replaced by the [insteon] component. -[insteon]: /component/insteon +[insteon]: /components/insteon diff --git a/source/_components/joaoapps_join.markdown b/source/_components/joaoapps_join.markdown index 61ef1c09c9c..abc7f3eedf5 100644 --- a/source/_components/joaoapps_join.markdown +++ b/source/_components/joaoapps_join.markdown @@ -28,15 +28,15 @@ To set it up, add the following information to your `configuration.yaml` file: # Example configuration.yaml entry notify: - platform: joaoapps_join - api_key: asd97823jb628a34fwsdfwefd5384345tf2d - device_id: d5asdfasdf54645h45h368761dfe5gt8a - device_ids: d5asdfasdf54645h45h368761dfe5gt8a, a4asdfasdf54645h45h368761dfe5gt3b - device_names: Pixel, iPhone - name: Phones + api_key: YOUR_API_KEY + device_id: DEVICE_ID + device_ids: DEVICE_ID_1, DEVICE_ID_2 + device_names: DEVICE_1_NAME, DEVICE_2_NAME + name: NAME joaoapps_join: - - name: android - device_id: group.android - api_key: asd97823jb628a34fwsdfwefd5384345tf2d + - name: NAME_OF_GROUP + device_id: GROUP.GROUP_NAME + api_key: YOUR_API_KEY ``` {% configuration %} 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/konnected.markdown b/source/_components/konnected.markdown index cd55944cb37..dc7104dba18 100644 --- a/source/_components/konnected.markdown +++ b/source/_components/konnected.markdown @@ -116,6 +116,25 @@ devices: repeat: description: Number of times to repeat a momentary pulse. Set to `-1` to make an infinite repeat. This is useful as an alarm or warning when used with a piezo buzzer. required: false + host: + type: string + required: false + description: Optionally specify the Konnected device's IP address or hostname to set up without discovery. + port: + type: integer + required: false + description: Optionally specify the port number for the Konnected API on the device. Note that the port is different on every device. See help.konnected.io to learn how to determine the port number. + discovery: + type: boolean + required: false + default: true + description: Enable or disable discovery for this device. When `true`, the device will respond to discovery requests on your network. When `false`, the device will not respond to discovery requests, so it's important that you set reserved IP for the device and configure the _host_ and _port_ here. + blink: + type: boolean + required: false + default: true + description: Blink the blue LED upon successful transmission of a state change. + {% endconfiguration%} #### {% linkable_title Configuration Notes %} @@ -188,6 +207,10 @@ Konnected runs on an ESP8266 board with the NodeMCU firmware. It is commonly use ### {% linkable_title Revision History %} +#### 0.80 +* Added ability to specify `host` and `port` to set up devices without relying on discovery. +* Added `discovery` and `blink` config options to enable/disable these features. + #### 0.79 * Added `inverse` configuration option for binary sensors. diff --git a/source/_components/lifx.markdown b/source/_components/lifx.markdown new file mode 100644 index 00000000000..11c478c6421 --- /dev/null +++ b/source/_components/lifx.markdown @@ -0,0 +1,132 @@ +--- +layout: page +title: "LIFX" +description: "Instructions on how to integrate LIFX into Home Assistant." +date: 2018-10-08 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: lifx.png +ha_category: Light +ha_iot_class: "Local Polling" +ha_release: 0.81 +--- + +The `lifx` component allows you to integrate your [LIFX](https://www.lifx.com) into Home Assistant. + +_Please note, the `lifx` component does not support Windows. The `lifx_legacy` light platform (supporting basic functionality) can be used instead._ + +You can configure the LIFX component by going to the integrations page inside the config panel. + +## {% linkable_title Set state %} + +The LIFX bulbs allow a change of color and brightness even when they are turned off. This way you can control the light during the day so its settings are correct when events for turning on are received, for example from motion detectors or external buttons. + +The normal `light.turn_on` call cannot be used for this because it always turns the power on. Thus, LIFX has its own service call that allows color changes without affecting the current power state. + +### {% linkable_title Service `light.lifx_set_state` %} + +Change the light to a new state. + +| Service data attribute | Description | +| ---------------------- | ----------- | +| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all. +| `transition` | Duration (in seconds) for the light to fade to the new state. +| `zones` | List of integers for the zone numbers to affect (each LIFX Z strip has 8 zones, starting at 0). +| `infrared` | Automatic infrared level (0..255) when light brightness is low (for compatible bulbs). +| `power` | Turn the light on (`True`) or off (`False`). Leave out to keep the power as it is. +| `...` | Use `color_name`, `brightness` etc. from [`light.turn_on`]({{site_root}}/components/light/#service-lightturn_on) to specify the new state. + +## {% linkable_title Light effects %} + +The LIFX platform supports several light effects. You can start these effects with default options by using the `effect` attribute of the normal [`light.turn_on`]({{site_root}}/components/light/#service-lightturn_on) service, for example like this: +```yaml +automation: + - alias: ... + trigger: + # ... + action: + - service: light.turn_on + data: + entity_id: light.office, light.kitchen + effect: lifx_effect_pulse +``` + +However, if you want to fully control a light effect, you have to use its dedicated service call, like this: +```yaml +script: + colorloop_start: + alias: 'Start colorloop' + sequence: + - service: light.lifx_effect_colorloop + data: + entity_id: group.livingroom + brightness: 255 + period: 10 + spread: 30 +          change: 35 +``` + +The available light effects and their options are listed below. + +### {% linkable_title Service `light.lifx_effect_pulse` %} + +Run a flash effect by changing to a color and then back. + +| Service data attribute | Description | +| ---------------------- | ----------- | +| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all. +| `color_name` | A color name such as `red` or `green`. +| `rgb_color` | A list containing three integers representing the RGB color you want the light to be. +| `brightness` | Integer between 0 and 255 for how bright the color should be. +| `period` | The duration of a single pulse (in seconds). +| `cycles` | The total number of pulses. +| `mode` | The way to change between colors. Valid modes: `blink` (default), `breathe`, `ping`, `strobe`, `solid`. +| `power_on` | Set this to False to skip the effect on lights that are turned off (defaults to True). + +### {% linkable_title Service `light.lifx_effect_colorloop` %} + +Run an effect with colors looping around the color wheel. All participating lights will coordinate to keep similar (but not identical) colors. + +| Service data attribute | Description | +| ---------------------- | ----------- | +| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all. +| `brightness` | Number between 0 and 255 indicating brightness of the effect. Leave this out to maintain the current brightness of each participating light. +| `period` | Duration (in seconds) between starting a new color change. +| `transition` | Duration (in seconds) where lights are actively changing color. +| `change` | Hue movement per period, in degrees on a color wheel (ranges from 0 to 359). +| `spread` | Maximum color difference between participating lights, in degrees on a color wheel (ranges from 0 to 359). +| `power_on` | Set this to False to skip the effect on lights that are turned off (defaults to True). + +### {% linkable_title Service `light.lifx_effect_stop` %} + +Run an effect that does nothing, thereby stopping any other effect that might be running. + +| Service data attribute | Description | +| ---------------------- | ----------- | +| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all. + + +## {% linkable_title Advanced configuration %} + +There are some manual configuration options available. These should only be needed if you have more than one network interface and automatic configuration does not find your LIFX devices. + +```yaml +# Example configuration.yaml entry +lifx: + light: + server: IP_ADDRESS + broadcast: IP_ADDRESS +``` + +{% configuration %} +server: + description: Your server address. Will listen on all interfaces if omitted. + required: false + type: string +broadcast: + description: The broadcast address for discovering lights. + required: false + type: string +{% endconfiguration %} diff --git a/source/_components/light.avion.markdown b/source/_components/light.avion.markdown index 68c40b1aac4..7290fcedb01 100644 --- a/source/_components/light.avion.markdown +++ b/source/_components/light.avion.markdown @@ -15,6 +15,20 @@ ha_release: 0.37 Support for the Avi-on Bluetooth dimmer switch [Avi-On](http://avi-on.com/). +## {% linkable_title Setup %} + +If you want to add your devices manually (like in the example below) then you need to get the API key. The API key can be obtained by executing the following command: + +```bash +$ curl -X POST -H "Content-Type: application/json" \ + -d '{"email": "fakename@example.com", "password": "password"}' \ + https://admin.avi-on.com/api/sessions | jq +``` + +with the email and password fields replaced with those used when registering the device via the mobile app. The pass phrase field of the output should be used as the API key in the configuration. + +## {% linkable_title Configuration %} + To enable these lights, add the following lines to your `configuration.yaml` file: ```yaml @@ -23,16 +37,31 @@ light: - platform: avion ``` -Configuration variables: +{% configuration %} +username: + description: The username used in the Avion app. If username and password are both provided, all associated switches will automatically be added to your configuration. + required: false + type: string +password: + description: The password used in the Avion app. + required: false + type: string +devices: + description: An optional list of devices with their Bluetooth addresses. + required: false + type: list + keys: + name: + description: A custom name to use in the frontend. + required: false + type: string + api_key: + description: The API Key. + required: true + type: string +{% endconfiguration %} -- **username** (*Optional*): The username used in the Avion app. If username and password are both provided, any associated switches will automatically be added to your configuration. -- **password** (*Optional*): The password used in the Avion app. -- **devices** (*Optional*): An optional list of devices with their Bluetooth address, a custom name to use in the frontend and the API key. The API key can be obtained by executing the following command: -``` -curl -X POST -H "Content-Type: application/json" -d '{"email": "fakename@example.com", "password": "password"}' https://admin.avi-on.com/api/sessions | jq -``` - -with the email and password fields replaced with those used when registering the device via the mobile app. The pass phrase field of the output should be used as the API key in the configuration. +## {% linkable_title Full example %} If username and password are not supplied, devices must be configured manually like so: @@ -43,8 +72,8 @@ light: devices: 00:21:4D:00:00:01: name: Light 1 - api_key: Gr35a/rt3RgaRenl9ag8Ba== + api_key: YOUR_API_KEY 00:21:3D:20:00:a1: name: Light 2 - api_key: Gr35a/rt3RgaRenl9ag8Ba== + api_key: YOUR_API_KEY ``` diff --git a/source/_components/light.decora.markdown b/source/_components/light.decora.markdown index b9f0063e3f5..44df220f9da 100644 --- a/source/_components/light.decora.markdown +++ b/source/_components/light.decora.markdown @@ -25,15 +25,28 @@ light: - platform: decora devices: 00:21:4D:00:00:01: - api_key: 0x12345678 + api_key: YOUR_API_KEY ``` -Configuration variables: - -- **devices** array (*Required*): A list of lights to use. - - **[mac address]** (*Required*): The bluetooth address of the switch. - - **name** (*Optional*): The custom name to use in the frontend. - - **api_key** (*Required*): The API key to access the device. +{% configuration %} +devices: + description: A list of lights to use. + required: true + type: map + keys: + mac_address: + required: true + description: The bluetooth address of the switch. + type: string + name: + description: The name to use in the frontend. + required: false + type: string + api_key: + description: The API key to access the device. + required: true + type: string +{% endconfiguration %}

If you get an error looking like this: diff --git a/source/_components/light.elkm1.markdown b/source/_components/light.elkm1.markdown new file mode 100644 index 00000000000..2dfa79a4114 --- /dev/null +++ b/source/_components/light.elkm1.markdown @@ -0,0 +1,22 @@ +--- +layout: page +title: "Elk-M1 Light" +description: "Instructions how to integrate Elk-M1 light." +date: 2018-10-07 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: elkproducts.png +ha_release: 0.81 +ha_category: Light +ha_iot_class: "Local Push" +--- + +The `elkm1` platform allows you to control your [Elk-M1](https://www.elkproducts.com/m1_controls.html). + +An Elk-M1 light (which can be X10, Insteon, UPB) is represented as a `light`. + +

+Full configuration details can be found on the main [Elk-M1 component](/components/elkm1/) page. +

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.lifx.markdown b/source/_components/light.lifx.markdown index cb6dc00f2f9..511306f4aec 100644 --- a/source/_components/light.lifx.markdown +++ b/source/_components/light.lifx.markdown @@ -13,110 +13,4 @@ ha_iot_class: "Local Polling" ha_release: 0.12 --- -The `lifx` platform allows you to integrate your [LIFX](http://www.lifx.com) into Home Assistant. - -_Please note, the `lifx` platform does not support Windows. The `lifx_legacy` platform (supporting basic functionality) can be used instead._ - -```yaml -# Example configuration.yaml entry -light: - - platform: lifx -``` -{% configuration %} -broadcast: - description: The broadcast address for discovering lights. Only needed if using more than one network interface. Omit if you are unsure. - required: false - type: string -server: - description: Your server address. Will listen on all interfaces if omitted. Omit if you are unsure. - required: false - type: string -{% endconfiguration %} - -## {% linkable_title Set state %} - -The LIFX bulbs allow a change of color and brightness even when they are turned off. This way you can control the light during the day so its settings are correct when events for turning on are received, for example from motion detectors or external buttons. - -The normal `light.turn_on` call cannot be used for this because it always turns the power on. Thus, LIFX has its own service call that allows color changes without affecting the current power state. - -### {% linkable_title Service `light.lifx_set_state` %} - -Change the light to a new state. - -| Service data attribute | Description | -| ---------------------- | ----------- | -| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all. -| `transition` | Duration (in seconds) for the light to fade to the new state. -| `zones` | List of integers for the zone numbers to affect (each LIFX Z strip has 8 zones, starting at 0). -| `infrared` | Automatic infrared level (0..255) when light brightness is low (for compatible bulbs). -| `power` | Turn the light on (`True`) or off (`False`). Leave out to keep the power as it is. -| `...` | Use `color_name`, `brightness` etc. from [`light.turn_on`]({{site_root}}/components/light/#service-lightturn_on) to specify the new state. - -## {% linkable_title Light effects %} - -The LIFX platform supports several light effects. You can start these effects with default options by using the `effect` attribute of the normal [`light.turn_on`]({{site_root}}/components/light/#service-lightturn_on) service, for example like this: -```yaml -automation: - - alias: ... - trigger: - # ... - action: - - service: light.turn_on - data: - entity_id: light.office, light.kitchen - effect: lifx_effect_pulse -``` - -However, if you want to fully control a light effect, you have to use its dedicated service call, like this: -```yaml -script: - colorloop_start: - alias: 'Start colorloop' - sequence: - - service: light.lifx_effect_colorloop - data: - entity_id: group.livingroom - brightness: 255 - period: 10 - spread: 30 -          change: 35 -``` - -The available light effects and their options are listed below. - -### {% linkable_title Service `light.lifx_effect_pulse` %} - -Run a flash effect by changing to a color and then back. - -| Service data attribute | Description | -| ---------------------- | ----------- | -| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all. -| `color_name` | A color name such as `red` or `green`. -| `rgb_color` | A list containing three integers representing the RGB color you want the light to be. -| `brightness` | Integer between 0 and 255 for how bright the color should be. -| `period` | The duration of a single pulse (in seconds). -| `cycles` | The total number of pulses. -| `mode` | The way to change between colors. Valid modes: `blink` (default), `breathe`, `ping`, `strobe`, `solid`. -| `power_on` | Set this to False to skip the effect on lights that are turned off (defaults to True). - -### {% linkable_title Service `light.lifx_effect_colorloop` %} - -Run an effect with colors looping around the color wheel. All participating lights will coordinate to keep similar (but not identical) colors. - -| Service data attribute | Description | -| ---------------------- | ----------- | -| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all. -| `brightness` | Number between 0 and 255 indicating brightness of the effect. Leave this out to maintain the current brightness of each participating light. -| `period` | Duration (in seconds) between starting a new color change. -| `transition` | Duration (in seconds) where lights are actively changing color. -| `change` | Hue movement per period, in degrees on a color wheel (ranges from 0 to 359). -| `spread` | Maximum color difference between participating lights, in degrees on a color wheel (ranges from 0 to 359). -| `power_on` | Set this to False to skip the effect on lights that are turned off (defaults to True). - -### {% linkable_title Service `light.lifx_effect_stop` %} - -Run an effect that does nothing, thereby stopping any other effect that might be running. - -| Service data attribute | Description | -| ---------------------- | ----------- | -| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all. +For installation instructions, see [the LIFX component](/components/lifx/). diff --git a/source/_components/light.limitlessled.markdown b/source/_components/light.limitlessled.markdown index 5b606c13ec4..426ea1e0569 100644 --- a/source/_components/light.limitlessled.markdown +++ b/source/_components/light.limitlessled.markdown @@ -61,7 +61,7 @@ Configuration variables: - **bridges** array (*Required*): - **host** (*Required*): IP address of the device, eg. `192.168.1.32` - **version** (*Optional*): Bridge version (default is `6`). - - **port** (*Optional*): Bridge port. Defaults to 5987. For older bridges than v6 choose `8899`. + - **port** (*Optional*): Bridge port. Defaults to `5987`. For older bridges than `v6` choose `8899`. - **groups** array (*Required*): The list of available groups. - **number** (*Required*): Group number (`1`-`4`). Corresponds to the group number on the remote. These numbers may overlap only if the type is different. - **name** (*Required*): Any name you'd like. Must be unique among all configured groups. diff --git a/source/_components/light.mqtt.markdown b/source/_components/light.mqtt.markdown index b6409f10043..10604217165 100644 --- a/source/_components/light.mqtt.markdown +++ b/source/_components/light.mqtt.markdown @@ -88,6 +88,21 @@ effect_list: description: The list of effects the light supports. required: false type: string list +hs_command_topic: + description: "The MQTT topic to publish commands to change the light's color state in HS format (Hue Saturation). + Range for Hue: 0° .. 360°, Range of Saturation: 0..100. + Note: Brightness is sent separately in the `brightness_command_topic`." + required: false + type: string +hs_state_topic: + description: "The MQTT topic subscribed to receive color state updates in HS format. + Note: Brightness is received separately in the `brightness_state_topic`." + required: false + type: string +hs_value_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the HS value." + required: false + type: string on_command_type: description: "Defines when on the payload_on is sent. Using `last` (the default) will send any style (brightness, color, etc) topics first and then a `payload_on` to the `command_topic`. Using `first` will send the `payload_on` and then any style topics. Using `brightness` will only send brightness commands instead of the `payload_on` to turn the light on." required: false @@ -200,7 +215,7 @@ payload_not_available: | RGB Color | ✔ | ✔ | ✔ | | Transitions | ✘ | ✔ | ✔ | | XY Color | ✔ | ✔ | ✘ | -| HS Color | ✘ | ✔ | ✘ | +| HS Color | ✔ | ✔ | ✘ | | White Value | ✔ | ✔ | ✔ | ## {% linkable_title Examples %} @@ -273,3 +288,4 @@ light: - A [basic example](https://github.com/mertenats/open-home-automation/tree/master/ha_mqtt_light) using a nodeMCU board (ESP8266) to control its built-in LED (on/off). - Another [example](https://github.com/mertenats/open-home-automation/tree/master/ha_mqtt_rgb_light) to control a RGB LED (on/off, brightness, and colors). +- [Integration guide](https://github.com/xoseperez/espurna/wiki/HomeAssistant) for the ESPUrna firmware (ESP8285/ESP8266). diff --git a/source/_components/light.mqtt_json.markdown b/source/_components/light.mqtt_json.markdown index 49dfbd502ef..b5b4099a276 100644 --- a/source/_components/light.mqtt_json.markdown +++ b/source/_components/light.mqtt_json.markdown @@ -256,6 +256,23 @@ Home Assistant expects the hue values to be in the range 0 to 360 and the satura } ``` +### {% linkable_title Brightness and RGBW support %} + +To enable a light with brightness, RGB support and a separate white channel (RGBW) in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +light: + - platform: mqtt_json + name: mqtt_json_light_1 + state_topic: "home/rgbw1" + command_topic: "home/rgbw1/set" + brightness: true + rgb: true + white_value: true +``` + + ### {% linkable_title Implementations %} - A full example of custom lighting using this platform and an ESP8266 microcontroller can be found [here](https://github.com/corbanmailloux/esp-mqtt-rgb-led). It supports on/off, brightness, transitions, RGB colors, and flashing. diff --git a/source/_components/light.osramlightify.markdown b/source/_components/light.osramlightify.markdown index d0479693e0c..ac80e46d08a 100644 --- a/source/_components/light.osramlightify.markdown +++ b/source/_components/light.osramlightify.markdown @@ -20,8 +20,20 @@ light: - platform: osramlightify host: 192.168.0.50 ``` -Configuration variables: -- **host** (*Required*): IP address of the Osram Lightify bridge, eg. `192.168.1.50`. -- **allow_lightify_nodes** (*Optional*): (true/false) Edit this to stop homeassistant from importing the lightify lights. -- **allow_lightify_groups** (*Optional*): (true/false) Edit this to stop homeassistant from importing the lightify groups. +{% configuration %} +host: + description: "IP address of the Osram Lightify bridge, e.g., `192.168.1.50`." + required: true + type: string +allow_lightify_nodes: + description: (true/false) Edit this to stop homeassistant from importing the lightify lights. + required: false + default: true + type: boolean +allow_lightify_groups: + description: (true/false) Edit this to stop homeassistant from importing the lightify groups. + required: false + default: true + type: boolean +{% endconfiguration %} diff --git a/source/_components/light.rflink.markdown b/source/_components/light.rflink.markdown index cc56e6de3ee..61e366392e3 100644 --- a/source/_components/light.rflink.markdown +++ b/source/_components/light.rflink.markdown @@ -37,26 +37,68 @@ light: name: Living room ``` -Configuration variables: - -- **automatic_add** (*Optional*): Automatically add new/unconfigured devices to HA if detected (default: True). -- **devices** (*Optional*): A list of devices with their name to use in the frontend. -- **device_defaults**: (*Optional*) - - **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). - -Device configuration variables: - -- **name** (*Optional*): Name for the device, defaults to Rflink ID. -- **type** (*Optional*): Override automatically detected type of the light device, can be: switchable, dimmable, hybrid or toggle. See 'Light Types' below. (default: Switchable) -- **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. +{% configuration %} +device_defaults: + description: The defaults for the devices. + required: false + type: list + keys: + fire_event: + description: Set default `fire_event` for Rflink switch devices (see below). + required: false + type: boolean + signal_repetitions: + description: Set default `signal_repetitions` for Rflink switch devices (see below). + required: false + type: integer +automatic_add: + description: Automatically add new/unconfigured devices to HA if detected. + required: false + default: true + type: boolean +devices: + description: A list of devices with their name to use in the frontend. + required: false + type: list + keys: + name: + description: Name for the device. + required: false + default: Rflink ID + type: string + type: + description: "Override automatically detected type of the light device, can be: switchable, dimmable, hybrid or toggle. See 'Light Types' below." + required: false + default: switchable + type: string + aliases: + description: (deprecated) Alternative Rflink ID's this device is known by. + required: false + type: [list, string] + group_aliases: + description: "(deprecated) `aliases` which only respond to group commands." + required: false + type: [list, string] + no_group_aliases: + description: "(deprecated) `aliases` which do not respond to group commands." + required: false + type: [list, string] + fire_event: + description: Fire a `button_pressed` event if this device is turned on or off. + required: false + default: false + type: boolean + signal_repetitions: + description: Repeat every Rflink command this number of times. + required: false + default: 1 + type: integer + group: + description: Allow light to respond to group commands (ALLON/ALLOFF). + required: false + default: true + type: boolean +{% endconfiguration %} ### {% linkable_title Light state %} @@ -104,4 +146,3 @@ Lights are added automatically when the RFLink gateway intercepts a wireless com ### {% linkable_title Device support %} See [device support](/components/rflink/#device-support) - diff --git a/source/_components/light.rfxtrx.markdown b/source/_components/light.rfxtrx.markdown index c83d9f71fc7..6795a5a2e25 100644 --- a/source/_components/light.rfxtrx.markdown +++ b/source/_components/light.rfxtrx.markdown @@ -54,12 +54,31 @@ light: name: Light_TV ``` -Configuration variables: - -- **devices** (*Required*): A list of devices with their name to use in the frontend. -- **automatic_add** (*Optional*): To enable the automatic addition of new lights. -- **signal_repetitions** (*Optional*): Because the RFXtrx device 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 to try to send each signal repeatedly. -- **fire_event** (*Optional*): Fires an event even if the state is the same as before. Can be used for automations. +{% configuration %} +devices: + description: A list of devices. + required: false + type: list + keys: + name: + description: Override the name to use in the frontend. + required: true + type: string + fire_event: + description: Fires an event even if the state is the same as before. Can be used for automations. + required: false + default: false + type: boolean +automatic_add: + description: To enable the automatic addition of new lights. + required: false + default: false + type: boolean +signal_repetitions: + description: Because the RFXtrx device 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 to try to send each signal repeatedly. + required: false + type: integer +{% endconfiguration %}

If a device ID consists of only numbers, please make sure to surround it with quotes. diff --git a/source/_components/light.tikteck.markdown b/source/_components/light.tikteck.markdown index 1cd3b2fea70..84e28673c76 100644 --- a/source/_components/light.tikteck.markdown +++ b/source/_components/light.tikteck.markdown @@ -28,9 +28,23 @@ light: password: 36478643 ``` -Configuration variables: +{% configuration %} +devices: + description: A list of devices with their bluetooth address. + required: false + type: list + keys: + name: + description: A custom name to use in the frontend. + required: false + type: string + password: + description: The bulb-specific password. + required: true + type: string +{% endconfiguration %} -- **devices**: A list of devices with their bluetooth address, a custom name to use in the frontend and the bulb-specific password. The password can be obtained from an Android device using an app like [aLogcat](https://play.google.com/store/apps/details?id=org.jtb.alogcat&hl=en) or the `adb logcat` command for phones in developer mode. Look for a line like: +The password can be obtained from an Android device using an app like [aLogcat](https://play.google.com/store/apps/details?id=org.jtb.alogcat&hl=en) or the `adb logcat` command for phones in developer mode. Look for a line like: ``` E LedoBleSDK: login =skName=======[Smart Light]=======skPw==[password] diff --git a/source/_components/light.tradfri.markdown b/source/_components/light.tradfri.markdown index 82da9e0d331..e7b44cdfd2b 100644 --- a/source/_components/light.tradfri.markdown +++ b/source/_components/light.tradfri.markdown @@ -1,7 +1,7 @@ --- layout: page title: "IKEA Trådfri lights" -description: "Access and control your ZigBee-based IKEA Trådfri (Tradfri) Lights." +description: "Access and control your Zigbee-based IKEA Trådfri (Tradfri) Lights." date: 2017-04-12 22.04 sidebar: true comments: false diff --git a/source/_components/light.x10.markdown b/source/_components/light.x10.markdown index 45df065a499..6b89fd85c29 100644 --- a/source/_components/light.x10.markdown +++ b/source/_components/light.x10.markdown @@ -30,7 +30,18 @@ light: name: Bedroom Lamp ``` -Configuration variables: - -- **id** (*Required*): Device identifier. Composed of house code and unit id. -- **name** (*Required*): A friendly name for the device. +{% configuration %} +devices: + description: A list of devices. + required: true + type: list + keys: + id: + description: Device identifier. Composed of house code and unit id. + required: true + type: string + name: + description: A friendly name for the device. + required: true + type: string +{% endconfiguration %} diff --git a/source/_components/light.xiaomi_miio.markdown b/source/_components/light.xiaomi_miio.markdown index 4597bc7f8fa..79f5a9b36c1 100644 --- a/source/_components/light.xiaomi_miio.markdown +++ b/source/_components/light.xiaomi_miio.markdown @@ -13,7 +13,7 @@ ha_iot_class: "Local Polling" ha_release: 0.53 --- -The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philips LED Ball Lamp, Xiaomi Philips Zhirui LED Bulb E14 Candle Lamp, Xiaomi Philips LED Ceiling Lamp and Xiaomi Philips Eyecare Lamp 2. +The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philips LED Ball Lamp, Xiaomi Philips Zhirui LED Bulb E14 Candle Lamp, Xiaomi Philips LED Ceiling Lamp, Xiaomi Philips Eyecare Lamp 2 and Philips Zhirui Desk Lamp. ## Features @@ -62,6 +62,17 @@ The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philip - reminder - eyecare_mode +### Philips Zhirui Desk Lamp + +* Power (on, off) +* Brightness +* Scene (1, 2, 3, 4) +* Delayed turn off (Resolution in seconds) +* Attributes + - model + - scene + - delayed_turn_off + Please follow the instructions on [Retrieving the Access Token](/components/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token to use in the `configuration.yaml` file. To add a Xiaomi Philips Light to your installation, add the following to your configuration.yaml file: @@ -91,7 +102,7 @@ name: type: string default: Xiaomi Philips Light model: - description: The model of your miio light. Valid values are `philips.light.bulb`, `philips.light.candle2`, `philips.light.sread1`, `philips.light.ceiling` and `philips.light.zyceiling`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available. + description: The model of your miio light. Valid values are `philips.light.bulb`, `philips.light.candle`, `philips.light.candle2`, `philips.light.sread1`, `philips.light.ceiling`, `philips.light.zyceiling` and `philips.light.mono1`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available. required: false type: string {% endconfiguration %} diff --git a/source/_components/light.yeelight.markdown b/source/_components/light.yeelight.markdown index c6019083e95..ac8b651e0f2 100644 --- a/source/_components/light.yeelight.markdown +++ b/source/_components/light.yeelight.markdown @@ -58,36 +58,46 @@ devices: 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. -**Also note that bulbs in music mode will not update their state to "unavailable" if they are disconnected, which can cause delays in Home Assistant**. +**Also note that bulbs in music mode will not update their state to "unavailable" if they are disconnected, which can cause delays in Home Assistant. Bulbs in music mode may also not react to commands from HASS the first time if the connection is dropped. If you experience this issue, turn the light off and back on again in the frontend and everything will return to normal.** ### {% linkable_title Initial setup %}

Before trying to control your light through Home Assistant, you have to setup your bulb using Yeelight app. ( [Android](https://play.google.com/store/apps/details?id=com.yeelight.cherry&hl=fr), [IOS](https://itunes.apple.com/us/app/yeelight/id977125608?mt=8) ). In the bulb property, you have to enable "LAN Mode" (previously called "Developer mode"). LAN mode may only be available with the latest firmware installed on your bulb. Firmware can be updated in the application after connecting the bulb. -Determine your bulb IP (using router, software, ping ...). +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` | YLXD01YL | Yeelight Ceiling Light | +| `ceiling2` | YLXD03YL | Yeelight Ceiling Light - Youth Version | +| ?, may be `ceiling3` | YLXD04YL | Yeelight Ceiling Light (Jiaoyue 450) | +| `ceiling3` | YLXD05YL | Yeelight Ceiling Light (Jiaoyue 480) | +| `ceiling4` | YLXD02YL | Yeelight Ceiling Light (Jiaoyue 650) | ## {% linkable_title Platform Services %} diff --git a/source/_components/light.yeelightsunflower.markdown b/source/_components/light.yeelightsunflower.markdown index 0583084626c..aee2c1d2852 100644 --- a/source/_components/light.yeelightsunflower.markdown +++ b/source/_components/light.yeelightsunflower.markdown @@ -28,15 +28,17 @@ light: host: 192.168.1.59 ``` -Configuration variables: - -- **host** (*Required*): IP address of your Yeelight Sunflower hub. +{% configuration %} +host: + description: IP address of your Yeelight Sunflower hub. + required: true + type: string +{% endconfiguration %}

-When the hub is loaded, your lights will appear as devices with their Zigbee IDs as part of the entity name. +When the hub is loaded, your lights will appear as devices with their Zigbee IDs as part of the entity name.

The Yeelight Sunflower hub supports SSDP discovery, but that has not been built into the platform. Let the developer know if that would be helpful to you.

- diff --git a/source/_components/light.zengge.markdown b/source/_components/light.zengge.markdown index b2f46b065d4..6c84769f479 100644 --- a/source/_components/light.zengge.markdown +++ b/source/_components/light.zengge.markdown @@ -15,16 +15,32 @@ ha_release: 0.36 The `zengge` platform allows you to integrate your [Zengge Bluetooth bulbs](http://www.zengge.com/) into Home Assistant. +## {% linkable_title Configuration %} + +To enable the lights, add the following lines to your `configuration.yaml` file: + ```yaml # Example configuration.yaml entry light: - platform: zengge devices: - C4:BE:84:51:54:8B: + "C4:BE:84:51:54:8B": name: Living Room ``` -Configuration variables: -- **devices** array (*Required*): List of your devices/bulbs. - - **MAC address** (*Required*): The MAC address of the bulb. - - **name** (*Optional*): Friendly name for the frontend. +{% configuration %} +devices: + description: The list of your devices/bulbs. + required: true + type: list + keys: + mac_address: + description: The MAC address of the bulb. + required: true + type: list + keys: + name: + description: The friendly name for the frontend. + required: false + type: string +{% endconfiguration %} diff --git a/source/_components/light.zha.markdown b/source/_components/light.zha.markdown index 904c1e59de8..0285626c619 100644 --- a/source/_components/light.zha.markdown +++ b/source/_components/light.zha.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "ZigBee Home Automation Light" -description: "Instructions on how to setup ZigBee Home Automation lights within Home Assistant." +title: "Zigbee Home Automation Light" +description: "Instructions on how to setup Zigbee Home Automation lights within Home Assistant." date: 2017-02-22 00:00 sidebar: true comments: false @@ -12,4 +12,4 @@ ha_category: Light ha_iot_class: "Local Polling" --- -To get your ZigBee lights working with Home Assistant, follow the instructions for the general [ZigBee Home Automation component](/components/zha/). +To get your Zigbee lights working with Home Assistant, follow the instructions for the general [Zigbee Home Automation component](/components/zha/). diff --git a/source/_components/light.zigbee.markdown b/source/_components/light.zigbee.markdown index d88f348cb44..9de952bd848 100644 --- a/source/_components/light.zigbee.markdown +++ b/source/_components/light.zigbee.markdown @@ -1,7 +1,7 @@ --- layout: page -title: ZigBee Light -description: "Instructions on how to set up ZigBee lights within Home Assistant." +title: Zigbee Light +description: "Instructions on how to set up Zigbee lights within Home Assistant." date: 2016-01-28 12:38 sidebar: true comments: false @@ -13,7 +13,7 @@ ha_release: 0.12 ha_iot_class: "Local Polling" --- -A ZigBee light in this context is a light connected to one of the digital output pins on a ZigBee module. It can simply be switched on and off. By default, a light is considered `on` when the ZigBee device's digital output is held `high` and considered `off` when it is held `low`. This behavior can be inverted by setting the `on_state` configuration variable to `low`. +A Zigbee light in this context is a light connected to one of the digital output pins on a Zigbee module. It can simply be switched on and off. By default, a light is considered `on` when the Zigbee device's digital output is held `high` and considered `off` when it is held `low`. This behavior can be inverted by setting the `on_state` configuration variable to `low`. To configure a digital output pin as light, add the following to your `configuration.yaml` file: @@ -34,7 +34,7 @@ pin: required: true type: integer address: - description: The long 64-bit address of the remote ZigBee device whose digital output pin you would like to switch. Do not include this variable if you want to switch the local ZigBee device's pins. + description: The long 64-bit address of the remote Zigbee device whose digital output pin you would like to switch. Do not include this variable if you want to switch the local Zigbee device's pins. required: false type: string on_state: diff --git a/source/_components/lock.lockitron.markdown b/source/_components/lock.lockitron.markdown index 6b320e71086..c97eaf7eb78 100644 --- a/source/_components/lock.lockitron.markdown +++ b/source/_components/lock.lockitron.markdown @@ -14,18 +14,29 @@ ha_release: "0.42" --- The `lockitron` platform allows you to control your [Lockitron](https://lockitron.com/) lock from within Home Assistant. -In order to get the correct `access_token` and `id`, log on to their [developer page](https://api.lockitron.com/), create a new app, and get the access_token they give you. -Then, call the retrieve all locks function on the page and get the id of your lock (make sure you get your lock's id and not the virtual lock they create for you). + +## {% linkable_title Setup %} + +In order to get the correct `access_token` and `id`, log on to their [developer page](https://api.lockitron.com/), create a new app, and get the access_token they give you. Then, call the retrieve all locks function on the page and get the id of your lock (make sure you get your lock's id and not the virtual lock they create for you). + +## {% linkable_title Configuration %} + +To enable the lock, add the following lines to your `configuration.yaml` file: ```yaml lock: - platform: lockitron - access_token: asdf - id: fdsa + access_token: YOUR_ACCESS_TOKEN + id: YOUR_ID ``` -Configuration variables: - -- **access_token** (*Required*): The usernThe security token provided by Lockitron to lock and unlock your lock. -- **id** (*Required*): The lock id given by Lockitron (should be a GUID). - +{% configuration %} +access_token: + description: The security token provided by Lockitron to lock and unlock your lock. + required: true + type: string +id: + description: The lock id given by Lockitron (should be a GUID). + required: true + type: string +{% endconfiguration %} diff --git a/source/_components/lock.template.markdown b/source/_components/lock.template.markdown new file mode 100644 index 00000000000..155ba139001 --- /dev/null +++ b/source/_components/lock.template.markdown @@ -0,0 +1,142 @@ +--- +layout: page +title: "Template Lock" +description: "Instructions on how to integrate Template Locks into Home Assistant." +date: 2018-10-09 19:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Lock +ha_release: 0.81 +ha_iot_class: "Local Push" +logo: home-assistant.png +ha_qa_scale: internal +--- + +The `template` platform creates locks that combines components. + +For example, if you have a garage door with a toggle switch that operates the motor and a sensor that allows you know whether the door is open or closed, you can combine these into a lock that knows whether the garage door is open or closed. + +This can simplify the GUI and make it easier to write automations. You can mark the components you have combined as `hidden` so they don't appear themselves. + +In optimistic mode, the lock will immediately change state after every command. Otherwise, the lock will wait for state confirmation from the template. Try to enable it, if experiencing incorrect lock operation. + +## {% linkable_title Configuration %} + +To enable Template Locks in your installation, add the following to your `configuration.yaml` file: + +{% raw %} +```yaml +# Example configuration.yaml entry +lock: + - platform: template + name: Garage door + value_template: "{{ is_state('sensor.door', 'on') }}" + lock: + service: switch.turn_on + data: + entity_id: switch.door + unlock: + service: switch.turn_off + data: + entity_id: switch.door +``` +{% endraw %} + +{% configuration %} + name: + description: Name to use in the frontend. + required: false + type: string + default: Template Lock + value_template: + description: Defines a template to set the state of the lock. + required: true + type: template + lock: + description: Defines an action to run when the lock is locked. + required: true + type: action + unlock: + description: Defines an action to run when the lock is unlocked. + required: true + type: action + optimistic: + description: Flag that defines if lock works in optimistic mode. + required: false + type: boolean + default: false +{% endconfiguration %} + +## {% linkable_title Considerations %} + +If you are using the state of a platform that takes extra time to load, the Template Lock may get an `unknown` state during startup. This results in error messages in your log file until that platform has completed loading. If you use `is_state()` function in your template, you can avoid this situation. For example, you would replace {% raw %}`{{ states.switch.source.state == 'on' }}`{% endraw %} with this equivalent that returns `true`/`false` and never gives an unknown result: {% raw %}`{{ is_state('switch.source', 'on') }}`{% endraw %} + +## {% linkable_title Examples %} + +In this section, you find some real-life examples of how to use this lock. + +### {% linkable_title Lock from Switch %} + +This example shows a lock that copies data from a switch. + +{% raw %} +```yaml +lock: + - platform: template + name: Garage Door + value_template: "{{ is_state('switch.source', 'on') }}" + lock: + service: switch.turn_on + data: + entity_id: switch.source + unlock: + service: switch.turn_off + data: + entity_id: switch.source +``` +{% endraw %} + +### {% linkable_title Optimistic Mode %} + +This example shows a lock in optimistic mode. This lock will immediately change state after command and will not wait for state update from the sensor. + +{% raw %} +```yaml +lock: + - platform: template + name: Garage Door + value_template: "{{ is_state('sensor.skylight.state', 'on') }}" + optimistic: true + lock: + service: switch.turn_on + data: + entity_id: switch.source + unlock: + service: switch.turn_off + data: + entity_id: switch.source +``` +{% endraw %} + +### {% linkable_title Sensor and Two Switches %} + +This example shows a lock that takes its state from a sensor, and uses two momentary switches to control a device. + +{% raw %} +```yaml +lock: + - platform: template + name: Garage Door + value_template: "{{ is_state('sensor.skylight.state', 'on') }}" + lock: + service: switch.turn_on + data: + entity_id: switch.skylight_open + unlock: + service: switch.turn_on + data: + entity_id: switch.skylight_close +``` +{% endraw %} diff --git a/source/_components/lutron.markdown b/source/_components/lutron.markdown index 6799e1feb55..66960face43 100644 --- a/source/_components/lutron.markdown +++ b/source/_components/lutron.markdown @@ -32,11 +32,20 @@ lutron: password: integration ``` -Configuration variables: - -- **host** (*Required*): The IP address of the Main Repeater. -- **username** (*Required*): The login name of the user. The user `lutron` always exists, but other users can be added via RadioRA 2 software. -- **password** (*Required*): The password for the user specified above. `integration` is the password for the always-present `lutron` user. +{% configuration %} +host: + description: The IP address of the Main Repeater. + required: true + type: string +username: + description: The login name of the user. The user `lutron` always exists, but other users can be added via RadioRA 2 software. + required: true + type: string +password: + description: The password for the user specified above. `integration` is the password for the always-present `lutron` user. + required: true + type: string +{% endconfiguration %}

It is recommended to assign a static IP address to your main repeater. This ensures that it won't change IP addresses, so you won't have to change the `host` if it reboots and comes up with a different IP address. diff --git a/source/_components/mailgun.markdown b/source/_components/mailgun.markdown index e1ecaefc72a..da274fe0a5b 100644 --- a/source/_components/mailgun.markdown +++ b/source/_components/mailgun.markdown @@ -23,12 +23,22 @@ To send messages, use the [Mailgun notify platform][notify]. ```yaml # Example configuration.yaml entry mailgun: - domain: mg.example.com - api_key: XXXXXXXXXXXXX + domain: EXAMPLE.COM + api_key: YOUR_API_KEY ``` -Configuration variables: - -- **domain** (*Required*): This is the domain name to be used when sending out mail. Defaults to the first custom domain you have set up. -- **api_key** (*Required*): This is the API token that has been generated in your Mailgun account. -- **sandbox** (*Deprecated*): Whether to use the sandboxed domain for outgoing mail. Since the `domain` item is required, it should be set to the sandbox domain name, so this isn't needed. Defaults to `False`. +{% configuration %} +domain: + description: This is the domain name to be used when sending out mail. Needs to be the first custom domain you have set up. + required: true + type: string +api_key: + description: This is the API token that has been generated in your Mailgun account. + required: true + type: string +sandbox: + description: "(**Deprecated**) Whether to use the sandboxed domain for outgoing mail. Since the `domain` item is required, it should be set to the sandbox domain name, so this isn't needed." + required: false + default: false + type: boolean +{% endconfiguration %} diff --git a/source/_components/matrix.markdown b/source/_components/matrix.markdown index d965ea1a9f5..5d22a661c3e 100644 --- a/source/_components/matrix.markdown +++ b/source/_components/matrix.markdown @@ -27,8 +27,6 @@ matrix: name: my_command ``` -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." diff --git a/source/_components/media_player.anthemav.markdown b/source/_components/media_player.anthemav.markdown index 8e59296db99..992edcb42e2 100644 --- a/source/_components/media_player.anthemav.markdown +++ b/source/_components/media_player.anthemav.markdown @@ -35,15 +35,25 @@ media_player: host: IP_ADDRESS ``` -Configuration variables: - -- **host** (*Required*): The host name or the IP address of the device. -- **port** (*Optional*): The port number. Defaults to 14999. -- **name** (*Optional*): The name of the device used in the frontend. +{% configuration %} +host: + description: The host name or the IP address of the device. + required: true + type: string +port: + description: The port number of the device. + required: false + default: 14999 + type: integer +name: + description: The name of the device used in the frontend. + required: false + type: string +{% endconfiguration %} ## 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.aquostv.markdown b/source/_components/media_player.aquostv.markdown index 156f50853f0..9535efee1ac 100644 --- a/source/_components/media_player.aquostv.markdown +++ b/source/_components/media_player.aquostv.markdown @@ -27,14 +27,37 @@ media_player: host: 192.168.0.10 ``` -Configuration variables: +{% configuration %} +host: + description: The IP/Hostname of the Sharp Aquos TV, eg. `192.168.0.10`. + required: true + type: string +port: + description: The port of the Sharp Aquos TV. + required: false + default: 10002 + type: int +username: + description: The username of the Sharp Aquos TV. + required: false + default: admin + type: string +password: + description: The password of the Sharp Aquos TV. + required: false + default: password + type: string +name: + description: The name you would like to give to the Sharp Aquos TV. + required: false + type: string +power_on_enabled: + description: If you want to be able to turn on your TV. + required: false + default: false + type: boolean +{% endconfiguration %} -- **host** (*Required*): The IP/Hostname of the Sharp Aquos TV, eg. `192.168.0.10`. -- **port** (*Optional*): The port of the Sharp Aquos TV. Defaults to 10002. -- **username** (*Optional*): The username of the Sharp Aquos TV. Defaults to admin. -- **password** (*Optional*): The password of the Sharp Aquos TV. Defaults to password. -- **name** (*Optional*): The name you would like to give to the Sharp Aquos TV. -- **power_on_enabled** (*Optional*): If you want to be able to turn on your TV. Defaults to False.

When you set **power_on_enabled** as True, you have to turn on your TV on the first time with the remote. diff --git a/source/_components/media_player.bluesound.markdown b/source/_components/media_player.bluesound.markdown index 69372c8c332..aadb326f42c 100644 --- a/source/_components/media_player.bluesound.markdown +++ b/source/_components/media_player.bluesound.markdown @@ -27,12 +27,26 @@ media_player: - host: 192.168.1.100 ``` -Configuration variables: - -- **hosts** (*Optional*): List with your bluesound devices - - **host** (*Required*): IP-address or hostname of the player - - **name** (*Optional*): The name of the device used in the frontend - - **port** (*Optional*): Port of communication to the device (default: 11000) +{% configuration %} +hosts: + description: List with your Bluesound devices. + required: false + type: list + keys: + host: + description: The IP address or hostname of the player. + required: true + type: string + name: + description: The name of the device used in the frontend. + required: false + type: string + port: + description: The port to communicate with the device. + required: false + default: 11000 + type: integer +{% endconfiguration %} ## Advanced configuration example @@ -49,7 +63,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 | | ---------------------- | -------- | ----------- | @@ -68,7 +82,7 @@ Remove one or more speakers from a group of speakers. If no `entity_id` is provi Sets a timer that will turn off the speaker. For each time you call this it will increase the time by one step. The steps are (in minutes): 15, 30, 45, 60, 90, 0. If you increase an ongoing timer of for example 13 minutes, it will increase it to 15. If the timer is set to 90, it will remove the time (hence the 0). - + | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | no | String or list of `entity_id`s that will have their timers set. @@ -76,7 +90,7 @@ If you increase an ongoing timer of for example 13 minutes, it will increase it ### {% linkable_title Service `bluesound_clear_sleep_timer` %} Clear the sleep timer on a speaker, if one is set. - + | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | no | String or list of `entity_id`s that will have their timers cleared. diff --git a/source/_components/media_player.braviatv.markdown b/source/_components/media_player.braviatv.markdown index cf6bd2a4172..e8bb5bf6e4d 100644 --- a/source/_components/media_player.braviatv.markdown +++ b/source/_components/media_player.braviatv.markdown @@ -15,7 +15,7 @@ ha_iot_class: "Local Polling" The `braviatv` platform allows you to control a [Sony Bravia TV](http://www.sony.com). -Almost all [Sony Bravia TV 2013 and newer](http://info.tvsideview.sony.net/en_ww/home_device.html#bravia) are supported. A more generic method for older TVs connected to a Raspberry Pi with HDMI-CEC is explained further below. +Almost all [Sony Bravia TV 2013 and newer](http://info.tvsideview.sony.net/en_ww/home_device.html#bravia) are supported. A more generic method for older TVs connected to a Raspberry Pi with HDMI-CEC is explained further below. You will need to configure your TV to allow the Home Assistant for remote usage. To do that, ensure that your TV is turned on. Open the configuration popup on Home Assistant and enter a random PIN (for example 0000). After that, the TV will show you a PIN and Home Assistant will allow you to re-enter that PIN. Enter the PIN shown on your TV and Home Assistant will be able to control your Sony Bravia TV. @@ -28,10 +28,17 @@ media_player: host: 192.168.0.10 ``` -Configuration variables: - -- **host** (*Required*): The IP of the Sony Bravia TV, eg. 192.168.0.10 -- **name** (*Optional*): The name to use on the frontend. +{% configuration %} +host: + description: The IP of the Sony Bravia TV, e.g., 192.168.0.10 + required: true + type: string +name: + description: The name to use on the frontend. + required: false + default: Sony Bravia TV + type: string +{% endconfiguration %} You are also able to configure the TV manually by placing a `bravia.conf` file in your [configuration directory](/docs/configuration/) with the following information - please update the details to match your setup: @@ -58,7 +65,7 @@ switch: value_template: {% raw %}'{{ value == "power status: on" }}{% endraw %}' ``` -Using `cec-client` is a great method to turn your TV off/on, however the trade off is if you're using Kodi, it will no longer be able to control your TV using the TV Remote. +Using `cec-client` is a great method to turn your TV off/on, however the trade off is if you're using Kodi, it will no longer be able to control your TV using the TV Remote. This is because only one process can control the CEC functionality within the Raspberry Pi at a time and running the above commands terminates the functionality inside libCEC within Kodi. Kodi must be restarted for TV remove functionality to work again. diff --git a/source/_components/media_player.channels.markdown b/source/_components/media_player.channels.markdown index 12138976e26..98d7f60b9a8 100644 --- a/source/_components/media_player.channels.markdown +++ b/source/_components/media_player.channels.markdown @@ -28,11 +28,22 @@ media_player: host: 192.168.1.50 ``` -Configuration variables: - -- **host** (*Required*): The IP of the device running Channels, e.g., 192.168.1.50 -- **port** (*Optional*): The port where Channels is accessible, defaults to 57000. -- **name** (*Optional*): The name of the Channels instance in Home Assistant, eg. Family Room Channels. Defaults to Channels. +{% configuration %} +host: + description: The IP address of the device running Channels, e.g., 192.168.1.50. + required: true + type: string +port: + description: The port where Channels is accessible. + required: false + default: 57000 + type: integer +name: + description: The name of the Channels instance in Home Assistant, e.g., Family Room Channels. + required: false + default: Channels + type: string +{% endconfiguration %} ### {% linkable_title Service `channels_seek_forward` %} diff --git a/source/_components/media_player.clementine.markdown b/source/_components/media_player.clementine.markdown index 781ac147a56..add0d5b2a80 100644 --- a/source/_components/media_player.clementine.markdown +++ b/source/_components/media_player.clementine.markdown @@ -25,12 +25,26 @@ media_player: host: 192.168.0.20 ``` -Configuration variables: - -- **host** (*Required*): The IP address of the Clementine Player (eg. 192.168.0.20). -- **port** (*Optional*): The remote control port (default is: 5500). -- **access_token** (*Optional*): The authorization code needed to connect. -- **name** (*Optional*): The name you would like to give to the Clementine player. The default is "Clementine Remote". +{% configuration %} +host: + description: The IP address of the Clementine Player e.g., 192.168.0.20. + required: true + type: string +port: + description: The remote control port. + required: false + default: 5500 + type: integer +access_token: + description: The authorization code needed to connect. + required: false + type: integer +name: + description: The name you would like to give to the Clementine player. + required: false + default: Clementine Remote + type: string +{% endconfiguration %} Remember that Clementine must be configured to accept connections through its network remote control protocol. diff --git a/source/_components/media_player.cmus.markdown b/source/_components/media_player.cmus.markdown index 1415de1e547..ce5406887b3 100644 --- a/source/_components/media_player.cmus.markdown +++ b/source/_components/media_player.cmus.markdown @@ -33,9 +33,23 @@ media_player: password: YOUR_PASSWORD ``` -Configuration variables: - -- **host** (*Optional*): Hostname or IP address of the machine running cmus. Note if a remote cmus is configured that instance must be configured to listen to remote connections, which also requires a password to be set. -- **password** (*Required if host is set*): Password for your cmus player. -- **port** (*Optional*): Port of the cmus socket, defaults to 3000. -- **name** (*Optional*): The name you'd like to give the cmus player in Home Assistant +{% configuration %} +host: + description: Hostname or IP address of the machine running cmus. Note if a remote cmus is configured that instance must be configured to listen to remote connections, which also requires a password to be set. + required: inclusive + type: string +password: + description: Password for your cmus player. + required: inclusive + type: string +port: + description: Port of the cmus socket. + required: false + default: 3000 + type: integer +name: + description: The name you'd like to give the cmus player in Home Assistant. + required: false + default: cmus + type: string +{% endconfiguration %} diff --git a/source/_components/media_player.directv.markdown b/source/_components/media_player.directv.markdown index f7f6559619e..d27b10e1101 100644 --- a/source/_components/media_player.directv.markdown +++ b/source/_components/media_player.directv.markdown @@ -22,13 +22,27 @@ To ensure that your DirecTV boxes are always found and configured, they should b media_player: - platform: directv ``` -Configuration variables: - -- **host** (*Optional*): Use only if you don't want to scan for devices. -- **port** (*Optional*): The port your receiver is using. Defaults to `8080`. -- **name** (*Optional*): Use to give a specific name to the device. -- **device** (*Optional*): Use to specify a particular receiver in a Genie setup. +{% configuration %} +host: + description: The IP address or the hostname of the device. Use only if you don't want to scan for devices. + required: false + type: string +port: + description: The port your receiver is using. + required: false + default: 8080 + type: integer +name: + description: Use to give a specific name to the device. + required: false + default: DirecTV Receiver + type: string +device: + description: Use to specify a particular receiver in a Genie setup. + required: false + type: string +{% endconfiguration %} To find valid device IDs, open `http://:8080/info/getLocations` in a web browser. For each Genie slave, you will find a variable `clientAddr` in the response, and this should be used for `device` in `configuration.yaml` diff --git a/source/_components/media_player.dunehd.markdown b/source/_components/media_player.dunehd.markdown index bbf646f0fb9..5d22f2ad8d2 100644 --- a/source/_components/media_player.dunehd.markdown +++ b/source/_components/media_player.dunehd.markdown @@ -14,7 +14,7 @@ ha_release: 0.34 --- -The `dunehd` platform allows you to control a [Dune HD media player](http://dune-hd.com/eng/products/full_hd_media_players) from Home Assistant. Support is based on the official [IP protocol](http://dune-hd.com/support/ip_control/dune_ip_control_overview.txt) published by Dune. +The `dunehd` media player platform allows you to control a [Dune HD media player](http://dune-hd.com/eng/products/full_hd_media_players) from Home Assistant. Support is based on the official [IP protocol](http://dune-hd.com/support/ip_control/dune_ip_control_overview.txt) published by Dune. Devices with firmware 110127_2105_beta or above are supported. Some functions may depend on the version of the protocol (volume / mute control is only available with version 2 onwards). @@ -26,8 +26,19 @@ media_player: - platform: dunehd host: IP_ADDRESS ``` -Configuration variables: -- **host** (*Required*): IP address or hostname of the device. Example: 192.168.1.32 -- **name** (*Optional*): Name of the device. -- **sources** (*Optional*): A name-value dictionary of sources that HA component can request to play. +{% configuration %} +host: + description: IP address or hostname of the device, e.g., 192.168.1.32. + required: true + type: string +name: + description: Name of the device. + required: false + default: DuneHD + type: string +sources: + description: A name-value dictionary of sources than can be requested to play. + required: false + type: string +{% endconfiguration %} diff --git a/source/_components/media_player.emby.markdown b/source/_components/media_player.emby.markdown index 2f12bc1d808..5e1716de191 100644 --- a/source/_components/media_player.emby.markdown +++ b/source/_components/media_player.emby.markdown @@ -22,14 +22,33 @@ To add Emby to your installation, add the following to your `configuration.yaml` # Example configuration.yaml entry media_player: - platform: emby - host: 192.168.11.5 - api_key: "emby_api_key" + host: YOUR_IP_ADDRESS + api_key: YOUR_API_KEY ``` -Configuration variables: - -- **host** (*Optional*): The host name or address of the device that is running Emby. Defaults to ```localhost```. -- **api_key** (*Required*): The api-key you would like home-assistant to use to authenticate. -- **ssl** (*Optional*): True if you want to connect with https/wss. Your SSL certificate must be valid. Default is False. -- **port** (*Optional*): The port number. Defaults to 8096 with SSL set to False and 8920 with SSL set to True. -- **auto_hide** (*Optional*): True if you want to automatically hide devices that are unavailable from the Home Assistant Interface. Defaults to False. +{% configuration %} +host: + description: The host name or IP address of the device that is running Emby. + required: false + default: localhost + type: string +api_key: + description: The API key to use to authenticate. + required: true + type: string +ssl: + description: True if you want to connect with HTTPS/WSS. Your SSL certificate must be valid. + required: false + default: false + type: boolean +port: + description: The port number of the device that is running Emby. + required: false + default: 8096 (No SSL), 8920 (SSL) + type: integer +auto_hide: + description: True if you want to automatically hide devices that are unavailable from the Home Assistant Interface. + required: false + default: false + type: boolean +{% endconfiguration %} diff --git a/source/_components/media_player.firetv.markdown b/source/_components/media_player.firetv.markdown index 0abf2b3dadc..b2abdca1113 100644 --- a/source/_components/media_player.firetv.markdown +++ b/source/_components/media_player.firetv.markdown @@ -14,7 +14,7 @@ ha_iot_class: "Local Polling" --- -The `firetv` platform allows you to control a [Amazon Fire TV/stick](http://www.amazon.com/Amazon-DV83YW-Fire-TV/dp/B00U3FPN4U). +The `firetv` platform allows you to control a [Amazon Fire TV/stick](https://www.amazon.com/b/?node=8521791011). The python-firetv Python 2.x module with its helper script that exposes an HTTP server to fetch state and perform actions is used. @@ -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.frontier_silicon.markdown b/source/_components/media_player.frontier_silicon.markdown index c7887e9c8b7..9ab51e42d40 100644 --- a/source/_components/media_player.frontier_silicon.markdown +++ b/source/_components/media_player.frontier_silicon.markdown @@ -37,11 +37,23 @@ media_player: host: IP_ADDRESS ``` -Configuration variables: - -- **host** (*Required*): The host name or the IP address of the device. Defaults to 192.168.1.11. -- **port** (*Optional*): The port number. Defaults to 80. -- **password** (*Optional*): PIN code of the Internet Radio. Defaults to 1234. +{% configuration %} +host: + description: The host name or the IP address of the device. + required: true + default: 192.168.1.11 + type: string +port: + description: The port number of the device. + required: false + default: 80 + type: integer +password: + description: PIN code of the Internet Radio. + required: false + default: 1234 + type: string +{% endconfiguration %} Some models use a separate port (2244) for API access, this can be verified by visiting http://[host]:[port]/device. @@ -80,7 +92,7 @@ is based on [tiwillam]'s fsapi project. Special thanks to both developers, this ## Notes and Limitations

-The Frontier Silicon API does not provide a multi-user environment. There is always a single user (session) controlling a device, which means that once Home Assistant connects to a device all other sessions will be invalidated. This renders the usage of [UNDOK] almost impossible, as the Home Assistant component polls the device state every 30 seconds or issues a command by creating a new session. +The Frontier Silicon API does not provide a multi-user environment. There is always a single user (session) controlling a device, which means that once Home Assistant connects to a device all other sessions will be invalidated. This renders the usage of [UNDOK] almost impossible, as the Home Assistant component polls the device state every 30 seconds or issues a command by creating a new session. *If you want to prevent Home Assistant to auto connect to your device, simply change the PIN code of the device to something else than: 1234*

@@ -94,4 +106,3 @@ The Frontier Silicon API does not provide a multi-user environment. There is alw [UNDOK]: http://www.frontier-silicon.com/undok [flammy]: https://github.com/flammy/fsapi/ [tiwillam]: https://github.com/tiwilliam/fsapi - diff --git a/source/_components/media_player.gpmdp.markdown b/source/_components/media_player.gpmdp.markdown index c65ed0dff0f..b0cbb0d58fa 100644 --- a/source/_components/media_player.gpmdp.markdown +++ b/source/_components/media_player.gpmdp.markdown @@ -28,8 +28,14 @@ media_player: host: IP_ADDRESS ``` -Configuration variables: - -- **host** (*Required*): IP address of the computer running GPMDP. -- **name** (*Optional*): Name of the player. - +{% configuration %} +host: + description: The IP address of the computer running GPMDP. + required: true + type: string +name: + description: Name of the player. + required: false + default: GPM Desktop Player + type: string +{% endconfiguration %} diff --git a/source/_components/media_player.itunes.markdown b/source/_components/media_player.itunes.markdown index 6885a333855..717307250a2 100644 --- a/source/_components/media_player.itunes.markdown +++ b/source/_components/media_player.itunes.markdown @@ -14,9 +14,11 @@ 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. +The `itunes` media player 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. + +## {% linkable_title Configuration %} To add iTunes to your installation, add the following to your `configuration.yaml` file: @@ -27,7 +29,14 @@ media_player: host: 192.168.1.50 ``` -Configuration variables: - -- **host** (*Required*): The IP of the itunes-api API, eg. 192.168.1.50 -- **port** (*Optional*): The port where itunes-api is accessible, eg. 8181. +{% configuration %} +host: + description: The IP of the itunes-api API, e.g., 192.168.1.50. + required: true + type: string +port: + description: The port where itunes-api is accessible, e.g., 8181. + required: false + default: 8181 + type: integer +{% endconfiguration %} diff --git a/source/_components/media_player.lg_netcast.markdown b/source/_components/media_player.lg_netcast.markdown index 7a60e235781..135ffac5914 100644 --- a/source/_components/media_player.lg_netcast.markdown +++ b/source/_components/media_player.lg_netcast.markdown @@ -25,11 +25,21 @@ media_player: host: 192.168.0.20 ``` -Configuration variables: - -- **host** (*Required*): The IP address of the LG Smart TV, eg. 192.168.0.20 -- **access_token** (*Optional*): The access token needed to connect. -- **name** (*Optional*): The name you would like to give to the LG Smart TV. The default is "LG TV Remote". +{% configuration %} +host: + description: The IP address of the LG Smart TV, e.g., 192.168.0.20. + required: true + type: string +access_token: + description: The access token needed to connect. + required: false + type: string +name: + description: The name you would like to give to the LG Smart TV. + required: false + default: LG TV Remote + type: string +{% endconfiguration %} To get the access token for your TV configure the `lg_netcast` platform in Home Assistant without the `access_token`. After starting Home Assistant the TV will display the access token on screen. @@ -38,4 +48,3 @@ Just add the token to your configuration and restart Home Assistant and the medi

The access token will not change until you factory reset your TV.

- diff --git a/source/_components/media_player.lg_soundbar.markdown b/source/_components/media_player.lg_soundbar.markdown new file mode 100644 index 00000000000..ff8878e0dc8 --- /dev/null +++ b/source/_components/media_player.lg_soundbar.markdown @@ -0,0 +1,26 @@ +--- +layout: page +title: "LG Soundbars" +description: "Instructions on how to integrate LG Soundbars into Home Assistant." +date: 2018-10-17 19:55:18 +sidebar: true +comments: false +sharing: true +footer: true +logo: lg.png +ha_category: Media Player +ha_iot_class: "Local Polling" +ha_release: 0.81 +--- + +The `lg_soundbar` platform allows you to control [LG Soundbars](https://www.lg.com/us/sound-bars) from Home Assistant. + +Supported devices: + +- The SK range + +Compatible devices will be automatically added if the [`discovery`](/components/discovery/) component is enabled. + +### {% linkable_title Supported operations %} + +- These devices support mute, volume control, source selection and mode selection. diff --git a/source/_components/media_player.liveboxplaytv.markdown b/source/_components/media_player.liveboxplaytv.markdown index ce474e0c9f7..368ae381777 100644 --- a/source/_components/media_player.liveboxplaytv.markdown +++ b/source/_components/media_player.liveboxplaytv.markdown @@ -16,6 +16,8 @@ ha_iot_class: "Local Polling" The `liveboxplaytv` platform allows you to control [Orange Livebox Play TV appliances](https://boutique.orange.fr/internet/decodeur-tv-livebox). +## {% linkable_title Configuration %} + To add an Orange Livebox Play TV to your installation, add the following to your `configuration.yaml` file: ```yaml @@ -25,11 +27,22 @@ media_player: host: 192.168.1.3 ``` -Configuration variables: - -- **host** (*Required*): The IP or hostname of the Orange Livebox Play TV appliance. -- **name** (*Optional*): The name to use in the frontend. Defaults to `Livebox Play TV`. -- **port** (*Optional*): The port on which the Livebox is listening on. Defaults to 8080. +{% configuration %} +host: + description: The IP address or hostname of the Orange Livebox Play TV appliance. + required: true + type: string +name: + description: The name to use in the frontend. + required: false + default: "`Livebox Play TV`" + type: string +port: + description: The port on which the Livebox is listening on. + required: false + default: 8080 + type: integer +{% endconfiguration %} ## {% linkable_title Full configuration %} diff --git a/source/_components/media_player.markdown b/source/_components/media_player.markdown index 46ead6f4af8..23c397673c4 100644 --- a/source/_components/media_player.markdown +++ b/source/_components/media_player.markdown @@ -56,7 +56,7 @@ Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`, | `entity_id` | yes | Target a specific media player. Defaults to all. | | `source` | no | Name of the source to switch to. Platform dependent. | -#### {% linkable_title Service `media_player/select_sound_mode` %} +#### {% linkable_title Service `media_player.select_sound_mode` %} Currently only supported on [Denon AVR](/components/media_player.denonavr/) and [Songpal](/components/media_player.songpal/). @@ -65,7 +65,7 @@ Currently only supported on [Denon AVR](/components/media_player.denonavr/) and | `entity_id` | no | Target a specific media player. For example `media_player.marantz`| | `sound_mode` | no | Name of the sound mode to switch to. Platform dependent.| -#### {% linkable_title Service `media_player/shuffle_set` %} +#### {% linkable_title Service `media_player.shuffle_set` %} Currently only supported on [Spotify](/components/media_player.spotify/), [MPD](/components/media_player.mpd/), [Kodi](/components/media_player.kodi/), [Squeezebox](/components/media_player.squeezebox/) and [Universal](/components/media_player.universal/). diff --git a/source/_components/media_player.mpchc.markdown b/source/_components/media_player.mpchc.markdown index 98f6846f3a1..a963faf5406 100644 --- a/source/_components/media_player.mpchc.markdown +++ b/source/_components/media_player.mpchc.markdown @@ -38,8 +38,19 @@ media_player: host: http://192.168.0.123 ``` -Configuration variables: - -- **host** (*Required*): The host name or address of the device that is running MPC-HC. -- **port** (*Optional*): The port number. Defaults to 13579. -- **name** (*Optional*): The name of the device used in the frontend. +{% configuration %} +host: + description: The host name or IP address of the device that is running MPC-HC. + required: true + type: string +port: + description: The port number of the device. + required: false + default: 13579 + type: integer +name: + description: The name of the device used in the frontend. + required: false + default: MPC-HC + type: string +{% endconfiguration %} diff --git a/source/_components/media_player.philips_js.markdown b/source/_components/media_player.philips_js.markdown index 78f87af83a6..75734debc67 100644 --- a/source/_components/media_player.philips_js.markdown +++ b/source/_components/media_player.philips_js.markdown @@ -13,7 +13,6 @@ ha_iot_class: "Local Polling" ha_release: 0.34 --- - The `philips_js` platform allows you to control Philips TVs which expose the [jointSPACE](http://jointspace.sourceforge.net/) API. Instructions on how to activate the API and if your model is supported can be found [here](http://jointspace.sourceforge.net/download.html). To add your TV to your installation, add the following to your `configuration.yaml` file: @@ -25,24 +24,38 @@ media_player: host: 192.168.1.99 ``` -Configuration variables: - -- **host** (*Required*): IP address of TV. -- **name** (*Optional*): The name you would like to give to the Philips TV. -- **turn_on_action** (*Optional*): A script that will be executed to turn on the TV (can be used with wol). -- **api_version** (*Optional*): The JointSpace API version of your Philips TV, defaults to `1`. This is an experimental option and not all the functionalities are guaranteed to work with API versions different from `1` and `5`. +{% configuration %} +host: + description: IP address of TV. + required: true + default: 127.0.0.1 (localhost). + type: string +name: + description: The name you would like to give to the Philips TV. + required: false + default: Philips TV + type: string +turn_on_action: + description: A script that will be executed to turn on the TV (can be used with wol). + required: false + type: list +api_version: + description: The JointSpace API version of your Philips TV. This is an experimental option and not all the functionalities are guaranteed to work with API versions different from `1` and `5`. + required: false + default: 1 + type: integer +{% endconfiguration %}

When using api_version: 5 changing sources switches tv channels. Additionally this allows setting the volume level.

- ```yaml # Example configuration.yaml with turn_on_action media_player: - platform: philips_js host: 192.168.1.99 - turn_on_action: + turn_on_action: service: wake_on_lan.send_magic_packet data: mac: aa:bb:cc:dd:ee:ff diff --git a/source/_components/media_player.pioneer.markdown b/source/_components/media_player.pioneer.markdown index 6bc6d1a5b00..958cee2fe55 100644 --- a/source/_components/media_player.pioneer.markdown +++ b/source/_components/media_player.pioneer.markdown @@ -25,12 +25,26 @@ media_player: host: 192.168.0.10 ``` -Configuration variables: - -- **host** (*Required*): The IP of the Pioneer device, eg. `192.168.0.10` -- **name** (*Optional*): The name you would like to give to the receiver. -- **port** (*Optional*): The port on which the Pioneer device listens, e.g., `23` (default) or `8102` -- **timeout** (*Optional*): Number of seconds (float) to wait for blocking operations like connect, write, and read. +{% configuration %} +host: + description: The IP of the Pioneer device, e.g., `192.168.0.10`. + required: true + type: string +name: + description: The name you would like to give to the receiver. + required: false + default: Pioneer AVR + type: string +port: + description: The port on which the Pioneer device listens, e.g., `23` or `8102`. + required: false + default: 23 + type: integer +timeout: + description: Number of seconds (float) to wait for blocking operations like connect, write and read. + required: false + type: float +{% endconfiguration %} Notes: diff --git a/source/_components/media_player.roku.markdown b/source/_components/media_player.roku.markdown index c7771e0f406..d301898db11 100644 --- a/source/_components/media_player.roku.markdown +++ b/source/_components/media_player.roku.markdown @@ -23,6 +23,9 @@ media_player: - platform: roku ``` -Configuration variables: - -- **host** (*Optional*): Use only if you don't want to scan for devices. +{% configuration %} +host: + description: The IP address or the hostname of the device. Use only if you don't want to scan for devices. + required: false + type: string +{% endconfiguration %} diff --git a/source/_components/media_player.samsungtv.markdown b/source/_components/media_player.samsungtv.markdown index 92139ec1d54..160b26b83b7 100644 --- a/source/_components/media_player.samsungtv.markdown +++ b/source/_components/media_player.samsungtv.markdown @@ -93,11 +93,13 @@ Currently known supported models: - UE6199UXZG (port must be set to 8001, On/Off, Forward/Backward, Volume control, but no Play button) - Q7F (port must be set to 8001, MAC must be specified for Power On) - UE40KU6400U (port must be set to 8001, and `pip3 install websocket-client` must be executed) +- NU7400 (port set to 8001 and `pip3 install websocket-client` executed) Currently tested but not working models: - J5200 - Unable to see state and unable to control - J5500 - State is always "on" and unable to control (but port 8001 *is* open) +- J6300 - State is always "on" and unable to control (but port 8001 *is* open) - JU7000 - Unable to see state and unable to control (but port 8001 *is* open) - JU7500 - Unable to see state and unable to control - JS8005 - State tracking working but unable to control (but port 8001 *is* open) diff --git a/source/_components/media_player.snapcast.markdown b/source/_components/media_player.snapcast.markdown index 94f7db9b94c..b889f5168ae 100644 --- a/source/_components/media_player.snapcast.markdown +++ b/source/_components/media_player.snapcast.markdown @@ -22,9 +22,17 @@ To add Snapcast to your installation, add the following to your `configuration.y # Example configuration.yaml entry media_player: - platform: snapcast - host: xxx.xxx.xxx.xxx + host: YOUR_IP_ADDRESS ``` -Configuration variables: - -- **host** (*Required*): The IP of the device, eg. `192.168.0.10`. +{% configuration %} +host: + description: The IP address of the device, e.g., `192.168.0.10`. + required: true + type: string +port: + description: The port number. + required: false + default: 1705 + type: integer +{% endconfiguration %} diff --git a/source/_components/media_player.soundtouch.markdown b/source/_components/media_player.soundtouch.markdown index 463914f2366..c70eba92446 100644 --- a/source/_components/media_player.soundtouch.markdown +++ b/source/_components/media_player.soundtouch.markdown @@ -43,11 +43,22 @@ media_player: name: Soundtouch kitchen ``` -Configuration variables: - -- **host** (*Required*): The host name or address of the Soundtouch device. -- **name** (*Required*): The name of the device used in the frontend. -- **port** (*Optional*): The port number. Defaults to 8090. +{% configuration %} +host: + description: The host name or address of the Soundtouch device. + required: true + type: string +name: + description: The name of the device used in the frontend. + required: true + default: Bose Soundtouch + type: string +port: + description: The port number. + required: false + default: 8090 + type: integer +{% endconfiguration %} You can switch between one of your 6 pre-configured presets using ```media_player.play_media``` diff --git a/source/_components/media_player.squeezebox.markdown b/source/_components/media_player.squeezebox.markdown index 26a617832de..147b402f5ed 100644 --- a/source/_components/media_player.squeezebox.markdown +++ b/source/_components/media_player.squeezebox.markdown @@ -25,12 +25,25 @@ media_player: host: IP_ADDRESS ``` -Configuration variables: - -- **host** (*Required*): The host name or address of the Logitech Media Server, eg. 192.168.1.21. -- **port** (*Optional*): Web interface port to Logitech Media Server. Defaults to 9000. -- **username** (*Optional*): The username, if password protection is enabled. -- **password** (*Optional*): The password, if password protection is enabled. +{% configuration %} +host: + description: The host name or address of the Logitech Media Server, eg. 192.168.1.21. + required: true + type: string +port: + description: The web interface port to Logitech Media Server. + required: false + default: 9000 + type: integer +username: + description: The username, if password protection is enabled. + required: false + type: string +password: + description: The password, if password protection is enabled. + required: false + type: string +{% endconfiguration %}

This platform now uses the web interface of the Logitech Media Server to send commands. The default port of the web interface is 9000. It is the same port that you use to access the LMS through your web browser. Originally, this platform used the telnet interface, which defaults to 9090. If you previously specified the port in your configuration file, you will likely need to update it.

diff --git a/source/_components/media_player.vizio.markdown b/source/_components/media_player.vizio.markdown index 8345c3b1e80..e826693d6c3 100644 --- a/source/_components/media_player.vizio.markdown +++ b/source/_components/media_player.vizio.markdown @@ -73,11 +73,21 @@ media_player: access_token: AUTH_TOKEN ``` -Configuration variables: - -- **host** (*Required*): IP address of your TV. -- **access_token** (*Required*): Authentication token you received in the last step of the pairing process. -- **suppress_warning** (*Optional*): Set to `true` to disable self-signed certificate warnings. +{% configuration %} +host: + description: IP address of your TV. + required: true + type: string +access_token: + description: Authentication token you received in the last step of the pairing process. + required: true + type: string +suppress_warning: + description: Set to `true` to disable self-signed certificate warnings. + required: false + default: false + type: string +{% endconfiguration %} ## Notes and limitations diff --git a/source/_components/media_player.volumio.markdown b/source/_components/media_player.volumio.markdown index 26053822e8a..71acd0a873f 100644 --- a/source/_components/media_player.volumio.markdown +++ b/source/_components/media_player.volumio.markdown @@ -26,8 +26,20 @@ media_player: port: 3000 ``` -Configuration variables: - -- **name** (*Optional*): Name of the device -- **host** (*Required*): IP address or hostname of the device -- **port** (*Required*): Port number of Volumio service +{% configuration %} +name: + description: The name of the device. + required: false + default: Volumio + type: string +host: + description: The IP address or hostname of the device. + required: true + default: localhost + type: string +port: + description: The Port number of Volumio service. + required: true + default: 3000 + type: integer +{% endconfiguration %} diff --git a/source/_components/media_player.yamaha_musiccast.markdown b/source/_components/media_player.yamaha_musiccast.markdown index 925f378816c..b95f9ff28f9 100644 --- a/source/_components/media_player.yamaha_musiccast.markdown +++ b/source/_components/media_player.yamaha_musiccast.markdown @@ -34,6 +34,7 @@ port: description: UDP source port. If multiple devices are present, specify a different port per device. required: false type: integer + default: 5005 interval_seconds: description: Polling interval in seconds. required: false diff --git a/source/_components/modbus.markdown b/source/_components/modbus.markdown index 402cef31af2..75581a49746 100644 --- a/source/_components/modbus.markdown +++ b/source/_components/modbus.markdown @@ -14,13 +14,16 @@ ha_iot_class: "Local Push" --- -[Modbus](http://www.modbus.org/) is a serial communication protocol to control PLCs (Programmable logic controller). It currently supports sensors and switches which can be controlled over serial, TCP, and UDP connections. +[Modbus](http://www.modbus.org/) is a serial communication protocol to control PLCs (Programmable logic controller). +It currently supports sensors and switches which can be controlled over serial, TCP, and UDP connections. ## {% linkable_title Configuration %} -To add modbus to your installation, add the following to your `configuration.yaml` file: +The configuration for adding modbus to your installation depends on the connection type, either a network or serial connection. -For a network connection: +### {% linkable_title Network connection %} + +For a network connection, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry for a TCP connection @@ -40,7 +43,7 @@ host: required: true type: string port: - description: The port for the communication. + description: The network port for the communication. required: true type: integer timeout: @@ -50,7 +53,9 @@ timeout: type: integer {% endconfiguration %} -For a serial connection: +### {% linkable_title Serial connection %} + +For a serial connection, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry for a serial connection @@ -66,11 +71,11 @@ modbus: {% configuration %} type: - description: Type of the connection to Modbus. + description: "Type of the connection to Modbus, needs to be `serial` for this setup." required: true type: string method: - description: Method of the connection to Modbus. + description: "Method of the connection to Modbus, either `rtu` or `ascii`." required: true type: string port: @@ -82,15 +87,15 @@ baudrate: required: true type: integer stopbits: - description: The stopbits for the serial connection. + description: "The stopbits for the serial connection, either `1` or `2`." required: true type: integer bytesize: - description: The bytesize for the serial connection. + description: "The bytesize for the serial connection; can be `5`, `6`, `7` or `8`." required: true type: integer parity: - description: The parity for the serial connection. + description: "The parity for the serial connection; can be `E`, `O` or `N`." required: true type: string timeout: diff --git a/source/_components/mysensors.markdown b/source/_components/mysensors.markdown index 43f0a85fefd..89059d2a971 100644 --- a/source/_components/mysensors.markdown +++ b/source/_components/mysensors.markdown @@ -13,11 +13,11 @@ featured: true ha_iot_class: "Local Push" --- -The [MySensors](https://www.mysensors.org) project combines Arduino boards with NRF24L01 radio boards to build sensor networks. The component will automatically add all available devices to Home Assistant, after [presentation](#presentation) is done. +The [MySensors](https://www.mysensors.org) project combines devices like Arduino, ESP8266, Raspberry Pi, NRF24L01+ and RFM69 to build affordable sensor networks. This component will automatically add all available devices to Home Assistant, after [presentation](#presentation) is done. That is, you do not need to add anything to your configuration for the devices for them to be added. Go to the **states** section of the developer tools to find the devices that have been identified. ### {% linkable_title Configuration %} -Integrate your Serial, Ethernet or MQTT Client MySensors Gateway by adding the following to your `configuration.yaml` file: +Integrate your Serial, Ethernet (LAN) or MQTT MySensors Gateway by adding the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -62,7 +62,7 @@ mysensors: type: string default: '' nodes: - description: A mapping of node ids to node settings, eg custom name. + description: A mapping of node ids to node settings, e.g. custom name. required: false type: map keys: @@ -93,7 +93,7 @@ mysensors: {% endconfiguration %}

-Not all features of MySensors 2.0 are yet supported by Home Assistant. As more features are added, they will be described here in the documentation. Go to the MySensors platform pages under "related components" to see what message types are currently supported. +Not all features of MySensors 2.0 are supported by Home Assistant yet. As more features are added, they will be described here in the documentation. Go to the MySensors platform pages under "related components" to see what message types are currently supported.

If you are using an original Arduino as a serial gateway, the port will be named `ttyACM*`. The exact number can be determined with the command shown below. @@ -102,7 +102,7 @@ If you are using an original Arduino as a serial gateway, the port will be named $ ls /dev/ttyACM* ``` -If using the MQTT gateway, you also need to have the [MQTT component](/components/mqtt/) configured in Home Assistant. See below for a minimum MQTT configuration: +If you are using the MQTT gateway, you also need to have the [MQTT component](/components/mqtt/) configured in Home Assistant. See below for a minimum MQTT configuration: ```yaml mqtt: @@ -152,8 +152,8 @@ Present a MySensors sensor or actuator, by following these steps: 3. Start Home Assistant. 4. Write and upload your MySensors sketch to the sensor. Make sure you: - Send sketch name. - - Present the sensor's S_TYPE. - - Send at least one initial value per V_TYPE. In version 2.0 of MySensors, this has to be done in the loop function. See below for an example in 2.0 of how to make sure the initial value has been received by the controller. + - Present the sensor's `S_TYPE`. + - Send at least one initial value per `V_TYPE`. In version 2.0 of MySensors, this has to be done in the loop function. See below for an example in 2.0 of how to make sure the initial value has been received by the controller. 5. Start the sensor. ```cpp @@ -254,11 +254,11 @@ logger: homeassistant.components.mysensors: debug mysensors: debug ``` -The log should inform you of messages that failed validation or if a child value is missing that is required for a certain child type. Note that the log will log all possible combinations of platforms for a child type that failed validation. It is normal to see some platforms fail validation if the child type supports multiple platforms and your sketch doesn't send all corresponding value types. Eg. the S_BARO child type supports both V_PRESSURE and V_FORECAST value types. If you only send a V_PRESSURE value, an S_BARO entity with V_PRESSURE value will be set up for the sensor platform. However, the log will inform of a sensor platform that failed validation due to missing V_FORECAST value type for the S_BARO child. Home Assistant will log failed validations of child values at warning level if one required value type for a platform has been received, but other required value types are missing. Most failed validations are logged at debug level. +The log should inform you of messages that failed validation or if a child value is missing that is required for a certain child type. Note that the log will log all possible combinations of platforms for a child type that failed validation. It is normal to see some platforms fail validation if the child type supports multiple platforms and your sketch doesn't send all corresponding value types. Eg. the `S_BARO` child type supports both `V_PRESSURE` and `V_FORECAST` value types. If you only send a `V_PRESSURE` value, an `S_BARO` entity with `V_PRESSURE` value will be set up for the sensor platform. However, the log will inform of a sensor platform that failed validation due to missing `V_FORECAST` value type for the `S_BARO` child. Home Assistant will log failed validations of child values at warning level if one required value type for a platform has been received, but other required value types are missing. Most failed validations are logged at debug level. Message validation was introduced in version 0.52 of Home Assistant. -Visit the [library api][MySensors library api] of MySensors for more information. +Visit the [library API][MySensors library api] of MySensors for more information. -[MySensors library api]: http://www.mysensors.org/download +[MySensors library API]: http://www.mysensors.org/download diff --git a/source/_components/nest.markdown b/source/_components/nest.markdown index 9a22aeba843..e935935d043 100644 --- a/source/_components/nest.markdown +++ b/source/_components/nest.markdown @@ -55,11 +55,20 @@ nest: - Primary ``` -Configuration variables: - -- **client_id** (*Required*): Your Nest developer client ID. -- **client_secret** (*Required*): Your Nest developer client secret. -- **structure** (*Optional*): The structure or structures you would like to include devices from. If not specified, this will include all structures in your Nest account. +{% configuration %} +client_id: + description: Your Nest developer client ID. + required: true + type: string +client_secret: + description: Your Nest developer client secret. + required: true + type: string +structure: + description: The structure or structures you would like to include devices from. If not specified, this will include all structures in your Nest account. + required: false + type: list +{% endconfiguration %} ### {% linkable_title Services %} diff --git a/source/_components/netatmo.markdown b/source/_components/netatmo.markdown index 8735db3992c..5bd5aa7481f 100644 --- a/source/_components/netatmo.markdown +++ b/source/_components/netatmo.markdown @@ -13,7 +13,6 @@ ha_release: "0.20" ha_iot_class: "Cloud Polling" --- - The `netatmo` component platform is the main component to integrate all Netatmo related platforms. To enable the Netatmo component, add the following lines to your `configuration.yaml`: @@ -27,8 +26,6 @@ netatmo: password: YOUR_PASSWORD ``` -Configuration variables: - {% configuration %} api_key: description: The `client id` from your Netatmo app. @@ -61,7 +58,7 @@ Click on 'Create an App' at the top of the page.

-You have to fill the form, but only two fields are required : Name and Description. It doesn't really matter what you put into those. Just write something that make sense to you. To submit your new app, click on create at the bottom of the form. +You have to fill the form, but only two fields are required: Name and Description. It doesn't really matter what you put into those. Just write something that make sense to you. To submit your new app, click on create at the bottom of the form.

@@ -72,4 +69,3 @@ That's it. You can copy and paste your new `client id` and `client secret` in yo

- 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.clicksend.markdown b/source/_components/notify.clicksend.markdown index 8d619617b42..ee70de003d1 100644 --- a/source/_components/notify.clicksend.markdown +++ b/source/_components/notify.clicksend.markdown @@ -62,7 +62,7 @@ sender: description: The name or number of the sender. required: false type: string - default: recipient + default: 'hass' {% endconfiguration %} To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_components/notify.discord.markdown b/source/_components/notify.discord.markdown index 16c82bbfc1f..01fca89820b 100644 --- a/source/_components/notify.discord.markdown +++ b/source/_components/notify.discord.markdown @@ -14,7 +14,9 @@ ha_release: 0.37 The [Discord service](https://discordapp.com/) is a platform for the notify component. This allows components to send messages to the user using Discord. -In order to get a token you need to go to the [Discord My Apps page](https://discordapp.com/developers/applications/me) and create a new application. Once the application is ready, create a [bot](https://discordapp.com/developers/docs/topics/oauth2#bots) user (**Create a Bot User**) and activate **Require OAuth2 Code Grant**. Retrieve the **Client ID** and the (hidden) **Token** of your bot for later. +In order to get a token you need to go to the [Discord My Apps page](https://discordapp.com/developers/applications/me) and create a new application. Once the application is ready, create a [bot](https://discordapp.com/developers/docs/topics/oauth2#bots) user (**Create a Bot User**). + +Retreive the **Client ID** from the information section and the (hidden) **Token** of your bot for later. When setting up the application you can use this [icon](/demo/favicon-192x192.png). @@ -23,15 +25,21 @@ To use Discord notifications, add the following to your `configuration.yaml` fil ```yaml # Example configuration.yaml entry notify: - - name: NOTIFIER_NAME - platform: discord - token: A1aB2b.C3cD4d-E5eF6f + - platform: discord + token: YOUR_DISCORD_BOT_TOKEN ``` -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`. -- **token** (*Required*): Your bot's token. +{% configuration %} +name: + description: The notifier will bind to the service `notify.NAME`. + required: false + type: string + default: notify +token: + description: Your bot's token. + required: true + type: string +{% endconfiguration %} ### {% linkable_title Setting up the bot %} 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.facebook.markdown b/source/_components/notify.facebook.markdown index 5b4e4979477..1625d2692bf 100644 --- a/source/_components/notify.facebook.markdown +++ b/source/_components/notify.facebook.markdown @@ -24,10 +24,17 @@ notify: page_access_token: FACEBOOK_PAGE_ACCESS_TOKEN ``` -Configuration variables: - -- **page_access_token** (*Required*): Access token for your Facebook page. Checkout [Facebook Messenger Platform](https://developers.facebook.com/docs/messenger-platform/guides/setup) 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 %} +page_access_token: + description: "Access token for your Facebook page. Checkout [Facebook Messenger Platform](https://developers.facebook.com/docs/messenger-platform/guides/setup) 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 %} @@ -134,4 +141,3 @@ To enable broadcast just use the keyword "BROADCAST" as your target. Only put ON target: - BROADCAST ``` - diff --git a/source/_components/notify.hangouts.markdown b/source/_components/notify.hangouts.markdown index 3f69c3f5b30..4903b487135 100644 --- a/source/_components/notify.hangouts.markdown +++ b/source/_components/notify.hangouts.markdown @@ -48,7 +48,7 @@ default_conversations: ### {% linkable_title Finding the conversation ID %} -The conversations has to be precreated, the conversation id can be obtained from the `hangouts.conversations` entity, this can be found in with the states developer tool that is shown as this icon in the side bar. Using your web browsers search tool to find the `hangouts.conversations` entity. You will find something like bellow +The conversations has to be precreated, the conversation id can be obtained from the `hangouts.conversations` entity, this can be found in with the states developer tool that is shown as this icon in the side bar. Using your web browsers search tool to find the `hangouts.conversations` entity. You will find something like below. ``` 0: { diff --git a/source/_components/notify.hipchat.markdown b/source/_components/notify.hipchat.markdown index 877bcd8cd82..b4f81a989ce 100644 --- a/source/_components/notify.hipchat.markdown +++ b/source/_components/notify.hipchat.markdown @@ -12,6 +12,12 @@ ha_category: Notifications ha_release: "0.52" --- +

+This component will be removed from Home Assistant in the future. Slack has taken over Hipchat and Stride and will therefore stop these platforms. For more information: announcement. +
+
+Hipchat will be discontinued after February 15th, 2019. This to give customers the opportunity to make a switch. +

The `hipchat` platform allows you to send notifications from Home Assistant to [HipChat](https://hipchat.com/). @@ -24,19 +30,45 @@ To enable the HipChat notification in your installation, add the following to yo notify: - name: NOTIFIER_NAME platform: hipchat - token: ABCDEFGHJKLMNOPQRSTUVXYZ + token: YOUR_TOKEN room: 1234567 ``` -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`. -- **token** (*Required*): The HipChat API token to use for sending HipChat notifications. -- **room** (*Required*): The default room to post to if no room is explicitly specified when sending the notification. -- **color** (*Optional*): Setting color will override the default color for the notification. By default not setting this will post to HipChat using the default color yellow. Valid options are 'yellow', 'green', 'red', 'purple', 'gray', 'random'. -- **notify** (*Optional*): Setting notify will override the default notify (blink application icon, chime, or otherwise call attention) setting for the notification. By default this is 'false'. Valid options are 'true' and 'false'. -- **format** (*Optional*): Setting format will override the default message format. Default is 'text'. Valid options are 'text' and 'html'. -- **host** (*Optional*): Setting the host will override the default HipChat server host. Default is 'https://api.hipchat.com/'. +{% 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 +token: + description: The HipChat API token to use for sending HipChat notifications. + required: true + type: string +room: + description: The default room to post to if no room is explicitly specified when sending the notification. + required: true + type: integer +color: + description: Setting color will override the default color for the notification. Valid options are 'yellow', 'green', 'red', 'purple', 'gray', 'random'. + required: false + default: yellow + type: string +notify: + description: Setting notify will override the default notify (blink application icon, chime, or otherwise call attention) setting for the notification. Valid options are 'true' and 'false'. + required: false + default: false + type: boolean +format: + description: Setting format will override the default message format. Valid options are 'text' and 'html'. + required: false + default: text + type: string +host: + description: Setting the host will override the default HipChat server host. + required: false + default: "https://api.hipchat.com/" + type: string +{% endconfiguration %} ### {% linkable_title HipChat service data %} @@ -50,4 +82,3 @@ The following attributes can be placed `data` for extended functionality. | `format` | yes | (str) Same usage as in configuration.yaml. Overrides any setting set in configuration.yaml. To use notifications, please see the [getting started with automation page](/getting-started/automation/). - diff --git a/source/_components/notify.homematic.markdown b/source/_components/notify.homematic.markdown new file mode 100644 index 00000000000..5ba5dd3b362 --- /dev/null +++ b/source/_components/notify.homematic.markdown @@ -0,0 +1,111 @@ +--- +layout: page +title: "Homematic Notifications" +description: "Instructions on how to notify Homematic devices." +date: 2018-10-03 11:44 +sidebar: true +comments: false +sharing: true +footer: true +logo: homematic.png +ha_category: Notifications +ha_release: 0.81 +--- + +The `homematic` notification platform enables invoking Homematic devices. + +To use this notification platform in your installation, add the following to your `configuration.yaml` file: + +## {% linkable_title Configuration %} + +```yaml +# Example configuration.yaml entry +notify: + - name: my_hm + platform: homematic + address: NEQXXXXXXX + channel: 2 + param: "SUBMIT" + value: "1,1,108000,8" +``` + +{% configuration %} +address: + description: The address of your Homematic device. The address is the serial number of the device shown in the CCU in the `devices` section in the column `serial number`. + required: true + type: string +channel: + description: The channel of your Homematic device. + required: true + type: integer +param: + description: An additional parameter for the Homematic device. + required: true + type: string +interface: + description: Set the name of the interface from the config. + required: false + type: string +value: + description: This is the value that is set on the device. Its device specific. + required: true + type: string +{% endconfiguration %} + +### {% linkable_title Usage %} + +`homematic` is a notify platform and can be controlled by calling the notify service [as described here](/components/notify/). + +Only the `data` part of the event payload is processed. This part can specify or override the value given as configuration variable: + +```json +{ + "data": { + "address": "NEQXXXXXXX", + "channel": 2, + "param": "SUBMIT", + "value": "1,1,108000,8" + } +} +``` + +It is possible to provide a template in order to compute the value: + +{% raw %} +```json +{ + "data": { + "value": "1,1,108000{% if is_state('binary_sensor.oeqxxxxxxx_state', 'on') %},1{% endif %}{% if is_state('binary_sensor.oeqxxxxxxx_state', 'on') %},2{% endif %}" + } +} +``` +{% endraw %} + +You can also specify the event payload using a group notification (instead of specifying the value for the notify itself): + +{% raw %} +```yaml +notify: + - name: my_hm + platform: homematic + address: NEQXXXXXXX + - name: group_hm + platform: group + services: + - service: my_hm + data: + data: + value: "1,1,108000{% if is_state('binary_sensor.oeqxxxxxxx_state', 'on') %},1{% endif %}{% if is_state('binary_sensor.oeqxxxxxxx_state', 'on') %},2{% endif %}" + +alert: + temperature: + name: Temperature too high + done_message: Temperature OK + entity_id: binary_sensor.temperature_too_high + can_acknowledge: True + notifiers: + - group_hm +``` +{% endraw %} + +Please note that the first `data` element belongs to the service `my_hm`, while the second one belongs to the event payload. diff --git a/source/_components/notify.html5.markdown b/source/_components/notify.html5.markdown index 41a46d12ba4..74e4a06f5c3 100644 --- a/source/_components/notify.html5.markdown +++ b/source/_components/notify.html5.markdown @@ -29,8 +29,8 @@ add the following lines to your `configuration.yaml` file: notify: - platform: html5 name: NOTIFIER_NAME - gcm_api_key: 'gcm-server-key' - gcm_sender_id: 'gcm-sender-id' + gcm_api_key: YOUR_API_KEY + gcm_sender_id: YOUR_SENDER_ID ``` {% configuration %} diff --git a/source/_components/notify.instapush.markdown b/source/_components/notify.instapush.markdown index 020f535c106..c419a5e664b 100644 --- a/source/_components/notify.instapush.markdown +++ b/source/_components/notify.instapush.markdown @@ -24,10 +24,10 @@ To add Instapush to your installation, add the following to your `configuration. notify: - name: NOTIFIER_NAME platform: instapush - api_key: ABCDEFGHJKLMNOPQRSTUVXYZ - app_secret: ABCDEFGHJKLMNOPQRSTUVXYZ - event: ABCDEFGHJKLMNOPQRSTUVXYZ - tracker: ABCDEFGHJKLMNOPQRSTUVXYZ + api_key: YOUR_API_KEY + app_secret: YOUR_APP_SECRET + event: PUSH_TO_EVENT + tracker: TRACKER_NAME ``` Configuration variables: diff --git a/source/_components/notify.llamalab_automate.markdown b/source/_components/notify.llamalab_automate.markdown index 40becc0eb52..a357ff2556a 100644 --- a/source/_components/notify.llamalab_automate.markdown +++ b/source/_components/notify.llamalab_automate.markdown @@ -24,8 +24,8 @@ To add Automate to your installation, add the following to your `configuration.y notify: - name: NOTIFIER_NAME platform: llamalab_automate - api_key: ABCDEFGHJKLMNOPQRSTUVXYZ - to: example@gmail.com + api_key: YOUR_API_KEY + to: YOUR_EMAIL_ADDRESS ``` Configuration variables: diff --git a/source/_components/notify.mailgun.markdown b/source/_components/notify.mailgun.markdown index 93695c7e458..35941fc55d4 100644 --- a/source/_components/notify.mailgun.markdown +++ b/source/_components/notify.mailgun.markdown @@ -21,22 +21,39 @@ The Mailgun notification service allows you to send emails via Mailgun's REST AP ```yaml # Example configuration.yaml entry mailgun: - domain: mg.example.com - api_key: XXXXXXXXXXXXXX + domain: EXAMPLE.COM + api_key: YOUR_API_KEY notify: - name: mailgun platform: mailgun - recipient: me@example.com + recipient: CHANGE@EXAMPLE.COM ``` -Configuration variables: - -- **domain** (*Required*): This is the domain name to be used when sending out mail. -- **sandbox** (*Deprecated*): If a sandboxed domain is used, specify it in `domain`. Defaults to `False`. -- **api_key** (*Required*): This is the API Key that has been generated in your Mailgun account. -- **recipient** (*Required*): The email address of the recipient. -- **sender** (*Optional*): The sender's email address. Defaults to `hass@DOMAIN`, where `DOMAIN` is the outgoing mail domain, as defined by the `domain` configuration entry. +{% configuration %} +domain: + description: This is the domain name to be used when sending out mail. + required: true + type: string +sandbox: + description: "(**Deprecated**) If a sandboxed domain is used, specify it in `domain`." + required: false + default: false + type: boolean +api_key: + description: This is the API Key that has been generated in your Mailgun account. + required: true + type: string +recipient: + description: The email address of the recipient. + required: true + type: string +sender: + description: The sender's email address. + required: false + default: "`hass@DOMAIN`, where `DOMAIN` is the outgoing mail domain, as defined by the `domain` configuration entry." + type: string +{% endconfiguration %} ## {% linkable_title Example automation %} diff --git a/source/_components/notify.markdown b/source/_components/notify.markdown index 63cf49b985d..fdf8980710d 100644 --- a/source/_components/notify.markdown +++ b/source/_components/notify.markdown @@ -17,8 +17,8 @@ The `notify` component makes it possible to send notifications to a wide variety # Example configuration.yaml entry notify: - platform: pushbullet - name: paulus - api_key: ABCDEFG + name: NOTIFY_NAME + api_key: YOUR_API_KEY ``` The **name** parameter is optional but needed if you want to use multiple platforms. The platform will be exposed as service `notify.`. The name will default to `notify` if not supplied. diff --git a/source/_components/notify.prowl.markdown b/source/_components/notify.prowl.markdown index 4fbe377bb63..b9fa8c0008d 100644 --- a/source/_components/notify.prowl.markdown +++ b/source/_components/notify.prowl.markdown @@ -24,7 +24,7 @@ To add Prowl notifications to your installation, add the following to your `conf notify: - name: NOTIFIER_NAME platform: prowl - api_key: ABCDEFGHJKLMNOPQRSTUVXYZ + api_key: YOUR_API_KEY ``` Configuration variables: diff --git a/source/_components/notify.pushover.markdown b/source/_components/notify.pushover.markdown index 7e7680db7e1..9fe57cc7e1c 100644 --- a/source/_components/notify.pushover.markdown +++ b/source/_components/notify.pushover.markdown @@ -26,8 +26,8 @@ To use Pushover notifications, add the following to your `configuration.yaml` fi notify: - name: NOTIFIER_NAME platform: pushover - api_key: ABCDEFGHJKLMNOPQRSTUVXYZ - user_key: ABCDEFGHJKLMNOPQRSTUVXYZ + api_key: YOUR_API_KEY + user_key: YOUR_USER_KEY ``` Configuration variables: diff --git a/source/_components/notify.pushsafer.markdown b/source/_components/notify.pushsafer.markdown index 886be8aa0ae..42e1b4514bd 100644 --- a/source/_components/notify.pushsafer.markdown +++ b/source/_components/notify.pushsafer.markdown @@ -23,7 +23,7 @@ To use Pushsafer notifications, add the following to your `configuration.yaml` f notify: - name: NOTIFIER_NAME platform: pushsafer - private_key: ABCDEFGHJKLMNOPQRSTUVXYZ + private_key: YOUR_KEY ``` **Configuration variables:** diff --git a/source/_components/notify.sendgrid.markdown b/source/_components/notify.sendgrid.markdown index 2491bac32e4..b710dd1b3f2 100644 --- a/source/_components/notify.sendgrid.markdown +++ b/source/_components/notify.sendgrid.markdown @@ -20,7 +20,7 @@ To enable notification emails via SendGrid in your installation, add the followi notify: - name: NOTIFIER_NAME platform: sendgrid - api_key: API_KEY + api_key: YOUR_API_KEY sender: SENDER_EMAIL_ADDRESS recipient: YOUR_RECIPIENT ``` diff --git a/source/_components/notify.slack.markdown b/source/_components/notify.slack.markdown index 699a57ec236..e3b5911f859 100644 --- a/source/_components/notify.slack.markdown +++ b/source/_components/notify.slack.markdown @@ -38,7 +38,7 @@ To enable the Slack notification in your installation, add the following to your notify: - name: NOTIFIER_NAME platform: slack - api_key: ABCDEFGHJKLMNOPQRSTUVXYZ + api_key: YOUR_API_KEY default_channel: '#general' ``` diff --git a/source/_components/notify.telegram.markdown b/source/_components/notify.telegram.markdown index 934965200ee..e0332e66e9c 100644 --- a/source/_components/notify.telegram.markdown +++ b/source/_components/notify.telegram.markdown @@ -15,6 +15,8 @@ ha_release: 0.7.5 The `telegram` platform uses [Telegram](https://web.telegram.org) to deliver notifications from Home Assistant to your Android device, your Windows phone, or your iOS device. +## {% linkable_title Setup %} + The requirements are: - You need a [Telegram bot](https://core.telegram.org/bots). Please follow those [instructions](https://core.telegram.org/bots#6-botfather) to create one and get the token for your bot. Keep in mind that bots are not allowed to contact users. You need to make the first contact with your user. Meaning that you need to send a message to the bot from your user. @@ -65,13 +67,19 @@ $ python3 123456789 ``` +

+If you want to add new chat IDs then you will need to disable the active configuration to actually see the result with the IDs, otherwise you may only get empty results array. +

+ +## {% linkable_title Configuration %} + To enable Telegram notifications in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry for the Telegram Bot telegram_bot: - platform: polling - api_key: ABCDEFGHJKLMNOPQRSTUVXYZ + api_key: YOUR_API_KEY allowed_chat_ids: - CHAT_ID_1 - CHAT_ID_2 diff --git a/source/_components/notify.tibber.markdown b/source/_components/notify.tibber.markdown index 48c9472d5a9..2b903e835f2 100644 --- a/source/_components/notify.tibber.markdown +++ b/source/_components/notify.tibber.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "Tibber" +title: "Tibber Notification" description: "Instructions on how to integrate Tibber within Home Assistant." date: 2015-10-04 16:34 sidebar: true @@ -14,13 +14,11 @@ ha_qa_scale: silver ha_iot_class: "Cloud Polling" --- -The requirement is that you have setup [Tibber component](/components/tibber/). +The requirement is that you have setup the [`tibber` component](/components/tibber/). +## {% linkable_title Usage %} -### {% linkable_title Usage %} - -Tibber can send a notification by calling the notify service [as described here](/components/notify/). It will send a notification to all devices registered in the Tibber account. - +Tibber can send a notification by calling the [`notify` service](/components/notify/). It will send a notification to all devices registered in the Tibber account. To use notifications, please see the [getting started with automation page](/getting-started/automation/). 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.twitter.markdown b/source/_components/notify.twitter.markdown index 6bf8867709c..533c50ff7b1 100644 --- a/source/_components/notify.twitter.markdown +++ b/source/_components/notify.twitter.markdown @@ -13,9 +13,13 @@ ha_release: 0.12 --- -The `twitter` platform uses [Twitter](https://twitter.com) to deliver notifications from Home Assistant. +The `twitter` notification platform uses [Twitter](https://twitter.com) to deliver notifications from Home Assistant. -Go to [Twitter Apps](https://apps.twitter.com/app/new) and create an application. Visit "Keys and Access Tokens" of the application to get the details ("Consumer Key", "Consumer Secret", "Access Token" and "Access Token Secret" which needs to be generated). +## {% linkable_title Setup %} + +Go to [Twitter Apps](https://apps.twitter.com/app/new) and create an application. Visit "Keys and Access Tokens" of the application to get the details (Consumer Key, Consumer Secret, Access Token and Access Token Secret which needs to be generated). + +## {% linkable_title Configuration %} To add Twitter to your installation, add the following to your `configuration.yaml` file: @@ -24,19 +28,38 @@ To add Twitter to your installation, add the following to your `configuration.ya notify: - name: NOTIFIER_NAME platform: twitter - consumer_key: ABCDEFGHJKLMNOPQRSTUVXYZ - consumer_secret: ABCDEFGHJKLMNOPQRSTUVXYZ - access_token: ABCDEFGHJKLMNOPQRSTUVXYZ - access_token_secret: ABCDEFGHJKLMNOPQRSTUVXYZ + consumer_key: YOUR_API_KEY + consumer_secret: YOUR_API_SECRET + access_token: YOUR_ACCESS_TOKEN + access_token_secret: YOUR_ACCESS_SECRET ``` -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`. -- **consumer_key** (*Required*): Your "Consumer Key" (API Key) for the application. -- **consumer_secret** (*Required*): Your "Consumer Secret" (API Secret) for the application. -- **access_token** (*Required*): Your "Access Token" for the application. -- **access_token_secret** (*Required*): Your "Access Token Secret" for the application. -- **username** (*Optional*): Twitter handle without `@` or with `@` and quoting for direct messaging. +{% 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 +consumer_key: + description: Your Consumer Key (API Key) for the application. + required: true + type: string +consumer_secret: + description: Your Consumer Secret (API Secret) for the application. + required: true + type: string +access_token: + description: Your Access Token for the application. + required: true + type: string +access_token_secret: + description: Your Access Token Secret for the application. + required: true + type: string +username: + description: "Twitter handle without `@` or with `@` and quoting for direct messaging." + required: false + type: string +{% endconfiguration %} To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_components/notify.xmpp.markdown b/source/_components/notify.xmpp.markdown index 00303b0f32c..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/notify.yessssms.markdown b/source/_components/notify.yessssms.markdown index 9f139ad18a2..f85cbc85462 100644 --- a/source/_components/notify.yessssms.markdown +++ b/source/_components/notify.yessssms.markdown @@ -36,11 +36,20 @@ notify: recipient: PHONE_NUMBER_TO_NOTIFY ``` -Configuration variables: - -- **username** (*Required*): This is your login name (usually your phone number). Veryfy that you can use your credentials on the Yesss.at website. -- **password** (*Required*): This is the password you use to login to Yesss.at. -- **recipient** (*Required*): This is the phone number you want to send the SMS notification to. +{% configuration %} +username: + description: This is your login name (usually your phone number). Veryfy that you can use your credentials on the Yesss.at website. + required: true + type: string +password: + description: This is the password you use to login to Yesss.at. + required: true + type: string +recipient: + description: This is the phone number you want to send the SMS notification to. + required: true + type: string +{% endconfiguration %}

Verify that your credentials work on [Yesss.at's website](https://yesss.at). Using the wrong credentials three times in a row will get you suspended for one hour. diff --git a/source/_components/octoprint.markdown b/source/_components/octoprint.markdown index 29e6c039ed9..992fd9700da 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 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/TLS. + 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, e.g., 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/opentherm_gw.markdown b/source/_components/opentherm_gw.markdown new file mode 100644 index 00000000000..62aa3def7f5 --- /dev/null +++ b/source/_components/opentherm_gw.markdown @@ -0,0 +1,309 @@ +--- +layout: page +title: "OpenTherm Gateway Hub" +description: "Control your OpenTherm Gateway from Home Assistant." +date: 2018-10-07 16:23 +sidebar: true +comments: false +sharing: true +footer: true +logo: opentherm.png +ha_category: Hub +ha_release: 0.81 +ha_iot_class: "Local Push" +--- + +The `opentherm_gw` component is used to control the [OpenTherm Gateway](http://otgw.tclcode.com/) from Home Assistant. +When enabled, this component will automatically add it's [`climate` entity](/components/climate.opentherm_gw) to Home Assistant. + +# {% linkable_title Configuration %} + +```yaml +# Example configuration.yaml entry +opentherm_gw: + device: /dev/ttyUSB0 +``` + +{% configuration %} +device: + description: "Path to OpenTherm Gateway device as supported by [PySerial](https://pythonhosted.org/pyserial/url_handlers.html)." + required: true + type: string +climate: + description: "Settings for the `opentherm_gw` climate entity." + required: false + type: map + keys: + name: + description: "The name for the device within Home Assistant." + required: false + type: string + default: "OpenTherm Gateway" + precision: + description: "The desired precision for this device. Can be used to match your actual thermostat's precision. Supported values are `0.1`, `0.5` and `1.0`." + required: false + type: float + default: "`0.5` for Celsius and `1.0` for Fahrenheit." + floor_temperature: + description: "Some thermostats round all temperatures down to the lower value according to their precision. Default behavior for Home Assistant is to round temperatures to the nearest value. Set this to `True` to override Home Assistant and round to the lower value according to the configured `precision`." + required: false + type: boolean + default: false +monitored_variables: + description: "A list of variables to expose as sensors." + required: false + type: list + keys: + burner_hours: + description: Boiler flame on time. + burner_starts: + description: Number of burner starts. + ch_pump_hours: + description: Central heating pump running time. + ch_pump_starts: + description: Number of central heating pump starts. + ch_water_pressure: + description: Central heating water pressure. + ch_water_temp: + description: Central heating water temperature. + ch_water_temp_2: + description: Central heating 2 water temperature. + control_setpoint: + description: Central heating water target temperature. + control_setpoint_2: + description: Central heating 2 water target temperature. + cooling_control: + description: Cooling control signal value. + dhw_burner_hours: + description: Hot water flame on time. + dhw_burner_starts: + description: Number of hot water burner starts. + dhw_flow_rate: + description: Hot water flow rate. + dhw_pump_hours: + description: Hot water pump running time. + dhw_pump_starts: + description: Number of hot water pump starts. + dhw_setpoint: + description: Hot water target temperature. + dhw_temp: + description: Hot water temperature. + dhw_temp_2: + description: Hot water 2 temperature. + exhaust_temp: + description: Boiler exhaust temperature. + master_ch2_enabled: + description: Thermostat requests central heating 2 on. + master_ch_enabled: + description: Thermostat requests central heating on. + master_cooling_enabled: + description: Thermostat requests cooling. + master_dhw_enabled: + description: Thermostat requests hot water to be heated. + master_memberid: + description: Thermostat member ID. + master_ot_version: + description: Thermostat OpenTherm protocol version. + master_otc_enabled: + description: Thermostat is using outside temperature correction. + master_product_type: + description: Thermostat product type. + master_product_version: + description: Thermostat product version. + max_ch_setpoint: + description: Boiler maximum central heating water temperature. + oem_diag: + description: OEM diagnostic information. + otgw_about: + description: OpenTherm Gateway firmware version. + otgw_build: + description: OpenTherm Gateway firmware build date and time. + otgw_clockmhz: + description: OpenTherm Gateway firmware design clock speed. + otgw_dhw_ovrd: + description: OpenTherm Gateway hot water override status. + otgw_gpio_a: + description: OpenTherm Gateway GPIO port A operating mode. + otgw_gpio_a_state: + description: OpenTherm Gateway GPIO A state. + otgw_gpio_b: + description: OpenTherm Gateway GPIO port B operating mode. + otgw_gpio_b_state: + description: OpenTherm Gateway GPIO B state. + otgw_ignore_transitions: + description: OpenTherm Gateway ignores ripples in the signal during high/low transitions. + otgw_led_a: + description: OpenTherm Gateway LED A operating mode. + otgw_led_b: + description: OpenTherm Gateway LED B operating mode. + otgw_led_c: + description: OpenTherm Gateway LED C operating mode. + otgw_led_d: + description: OpenTherm Gateway LED D operating mode. + otgw_led_e: + description: OpenTherm Gateway LED E operating mode. + otgw_led_f: + description: OpenTherm Gateway LED F operating mode. + otgw_mode: + description: OpenTherm Gateway operating mode. + otgw_ovrd_high_byte: + description: OpenTherm Gateway overrides high byte with message ID 100. + otgw_setback_temp: + description: OpenTherm Gateway setback temperature for `away mode`. + otgw_setpoint_ovrd_mode: + description: OpenTherm Gateway central heating setpoint override mode. + otgw_smart_pwr: + description: OpenTherm Gateway smart power operating mode. + otgw_thermostat_detect: + description: OpenTherm Gateway automatic thermostat detection status. + otgw_vref: + description: OpenTherm Gateway voltage reference setting. + outside_temp: + description: Outside temperature as reported in the OpenTherm protocol. + relative_mod_level: + description: Relative modulation level. + remote_rw_dhw: + description: Boiler supports writing hot water setpoint. + remote_rw_max_ch: + description: Boiler supports writing maximum central heating setpoint. + remote_transfer_dhw: + description: Boiler supports reading hot water setpoint. + remote_transfer_max_ch: + description: Boiler supports reading maximum central heating setpoint. + return_water_temp: + description: Boiler return water temperature. + room_setpoint: + description: Room target temperature. + room_setpoint_2: + description: Room 2 target temperature. + room_setpoint_ovrd: + description: Room target temperature override value. + room_temp: + description: Current room temperature. + rovrd_auto_prio: + description: Programmed room setpoint change takes priority over remote override setting. + rovrd_man_prio: + description: Manual room setpoint change takes priority over remote override setting. + slave_air_pressure_fault: + description: Boiler reports air pressure fault. + slave_ch2_active: + description: Boiler reports central heating 2 active. + slave_ch2_present: + description: Boiler has a central heating 2 circuit. + slave_ch_active: + description: Boiler reports central heating active. + slave_ch_max_setp: + description: Maximum boiler supported central heating water target temperature. + slave_ch_min_setp: + description: Minimum boiler supported central heating water target temperature. + slave_control_type: + description: Boiler control type ('off' is modulating, 'on' is on/off). + slave_cooling_active: + description: Boiler reports cooling active. + slave_cooling_supported: + description: Boiler supports cooling. + slave_dhw_active: + description: Boiler reports hot water active. + slave_dhw_config: + description: Boiler hot water mode ('off' is instantaneous or unspecified, 'on' is storage tank). + slave_dhw_max_setp: + description: Maximum boiler supported hot water target temperature. + slave_dhw_min_setp: + description: Minimum boiler supported hot water target temperature. + slave_dhw_present: + description: Boiler reports hot water present. + slave_diagnostic_indication: + description: Boiler diagnostic indication. + slave_fault_indication: + description: Boiler fault indication. + slave_flame_on: + description: Boiler reports flame on. + slave_gas_fault: + description: Boiler reports gas fault. + slave_low_water_pressure: + description: Boiler reports low water pressure. + slave_master_low_off_pump: + description: Boiler supports low-off and pump control commands (this sensor is inverted, 'on' is not supported, 'off' is supported) + slave_max_capacity: + description: Maximum boiler capacity. + slave_max_relative_modulation: + description: Maximum boiler supported relative modulation. + slave_memberid: + description: Boiler member ID. + slave_min_mod_level: + description: Minimum boiler supported modulation level. + slave_oem_fault: + description: Boiler OEM fault indication. + slave_ot_version: + description: Boiler OpenTherm protocol version. + slave_product_type: + description: Boiler product type. + slave_product_version: + description: Boiler product version. + slave_remote_reset: + description: Boiler reports 'lockout-reset' supported. + slave_service_required: + description: Boiler reports service required. + slave_water_overtemp: + description: Boiler reports water overtemperature. + solar_coll_temp: + description: Solar collector temperature. + solar_storage_temp: + description: Solar storage unit temperature. +{% endconfiguration %} + +## {% linkable_title Supported Variables %} +The list above contains all supported variables. Note that not all boilers and thermostats properly support all variables, so the fact that a variable is listed here and published by your system does not necessarily mean that you will get useful data out of it. To see which variables are published in your situation, enable debug logging for the `opentherm_gw` component and look for the status updates. + + +## {% linkable_title GPIO modes %} +Possible modes and their meaning for the GPIO pins are listed here: +{% comment %} + Bulletpoints and numbers to match the LED mode layout below. +{% endcomment %} +* 1\. No function, default for both ports on a freshly flashed chip. +* 2\. Ground - A permanently low output (0V). Could be used for a power LED. +* 3\. Vcc - A permanently high output (5V). Can be used as a short-proof power supply for some external circuitry used by the other GPIO port. +* 4\. LED E - An additional LED if you want to present more than 4 LED functions. +* 5\. LED F - An additional LED if you want to present more than 5 LED functions. +* 6\. Home - Set thermostat to setback temperature when pulled low. +* 7\. Away - Set thermostat to setback temperature when pulled high. +* 8\. DS1820 (GPIO port B only) - Data line for a DS18S20 or DS18B20 temperature sensor used to measure the outside temperature. A 4k7 resistor should be connected between GPIO port B and Vcc. + + +## {% linkable_title LED modes %} +Possible LED modes and their meaning are listed here: +* R. Receiving an Opentherm message from the thermostat or boiler. +* X. Transmitting an Opentherm message to the thermostat or boiler. +* T. Transmitting or receiving a message on the thermostat interface. +* B. Transmitting or receiving a message on the boiler interface. +* O. Remote setpoint override is active. +* F. Flame is on. +* H. Central heating is on. +* W. Hot water is on. +* C. Comfort mode (Domestic Hot Water Enable) is on. +* X. Transmission error has been detected. +* M. Boiler requires maintenance. +* P. Raised power mode active on thermostat interface. + +

+The OpenTherm protocol is based on polling. The thermostat sends requests to the boiler at specific intervals. As a result, it may take some time for changes to propagate between Home Assistant and the thermostat. +

+ +# {% linkable_title Example %} + +A full configuration example with the OpenTherm Gateway connected to a remote host running `ser2net` looks like the one below. + +```yaml +# Full example configuration.yaml entry +opentherm_gw: + device: socket://otgw.example.org:2345 + climate: + name: Thermostat + precision: 0.5 + floor_temperature: True + monitored_variables: + - room_setpoint + - room_temp + - otgw_about +``` diff --git a/source/_components/openuv.markdown b/source/_components/openuv.markdown index cc66c3df92a..9da2251ce68 100644 --- a/source/_components/openuv.markdown +++ b/source/_components/openuv.markdown @@ -20,99 +20,98 @@ The `openuv` component displays UV and Ozone data from [openuv.io](http://openuv To generate an API key, [simply log in to the OpenUV website](https://www.openuv.io/auth/google).

-The "Limited" plan (which is what new users are given by default) is limited to 500 API requests per day. In order to leave a buffer, the `openuv` component queries the API every 30 minutes by default. This value can be modifed (via the `scan_interval` key), but please note that over-running the API will require -you to upgrade to a paid plan (and may disable your access in the meantime). +The "Limited" plan (which is what new users are given by default) is limited to 500 API requests per day. In order to leave a buffer, the `openuv` component queries the API every 30 minutes by default. This value can be modifed (via the `scan_interval` key), but please note that over-running the API will require you to upgrade to a paid plan (and may disable your access in the meantime).

-## {% linkable_title Base Configuration %} +## {% linkable_title Configuration %} -To retrieve data from OpenUV, add the following to your `configuration.yaml` -file: +To retrieve data from OpenUV, add the following to your `configuration.yaml` file: ```yaml openuv: api_key: YOUR_OPENUV_API_KEY ``` -To configure additional functionality, add configuration options beneath a `binary_sensor` and/or `sensor` key within the `openuv` section of `configuration.yaml` as below: +{% configuration %} +api_key: + description: The OpenUV API key. + required: true + type: string +scan_interval: + description: the frequency (in seconds) between data updates. + required: false + type: integer + default: 1800 +binary_sensors: + description: The binary sensor-related configuration options. + required: false + type: map + keys: + monitored_conditions: + description: The conditions to create sensors from. + required: false + type: list + default: all + keys: + uv_protection_window: + description: Displays if UV protection (sunscreen, etc.) is recommended at the current date and time. +sensors: + description: The sensor-related configuration options. + required: false + type: map + keys: + monitored_conditions: + description: The conditions to create sensors from. + required: false + type: list + default: all + keys: + current_ozone_level: + description: The current ozone level in du (Dobson Units). + current_uv_index: + description: The current UV index. + current_uv_level: + description: "The level of current UV index, which is calculated based on [UV Index Levels & Colors](https://www.openuv.io/kb/uv-index-levels-colors)." + max_uv_index: + description: The maximum UV index that will be encountered that day (at solar noon). + safe_exposure_time_type_1: + description: The approximate exposure time for skin type I. + safe_exposure_time_type_2: + description: The approximate exposure time for skin type II. + safe_exposure_time_type_3: + description: The approximate exposure time for skin type III. + safe_exposure_time_type_4: + description: The approximate exposure time for skin type IV. + safe_exposure_time_type_5: + description: The approximate exposure time for skin type V. + safe_exposure_time_type_6: + description: The approximate exposure time for skin type VI. +{% endconfiguration %} + +The approximate number of minutes of a particular skin type can be exposed to the sun before burning/tanning starts is based on the [Fitzpatrick scale](https://en.wikipedia.org/wiki/Fitzpatrick_scale). + +## {% linkable_title Full example %} + +To configure additional functionality, add configuration options beneath a `binary_sensor` and/or `sensor` key within the `openuv` section of the `configuration.yaml` file as below: ```yaml openuv: api_key: YOUR_OPENUV_API_KEY binary_sensors: - # binary sensor configuration options... + - uv_protection_window sensors: - # sensor configuration options... + - current_ozone_level + - current_uv_index + - current_uv_level + - max_uv_index + - safe_exposure_time_type_1 + - safe_exposure_time_type_2 + - safe_exposure_time_type_3 + - safe_exposure_time_type_4 + - safe_exposure_time_type_5 + - safe_exposure_time_type_6 ``` -{% configuration %} -api_key: - description: your OpenUV API key - required: true - type: string -scan_interval: - description: the frequency (in seconds) between data updates - required: false - type: integer - default: 1800 -binary_sensors: - description: binary sensor-related configuration options - required: false - type: map - keys: - monitored_conditions: - description: the conditions to create sensors from - required: false - type: list - default: all (`uv_protection_window`) -sensors: - description: sensor-related configuration options - required: false - type: map - keys: - monitored_conditions: - description: the conditions to create sensors from - required: false - type: list - default: all ( `current_ozone_level`, `current_uv_index`, `current_uv_level`, `max_uv_index`, `safe_exposure_time_type_1`, `safe_exposure_time_type_2`, `safe_exposure_time_type_3`, `safe_exposure_time_type_4`, `safe_exposure_time_type_5`, `safe_exposure_time_type_6` ) -{% endconfiguration %} - -## {% linkable_title Binary Sensor Types %} - -### {% linkable_title `uv_protection_window` %} - -This sensor displays `true` if UV protection (sunscreen, etc.) is recommended at the current date and time; displays `false` otherwise. - -## {% linkable_title Sensor Types %} - -### {% linkable_title `current_ozone_level` %} - -This sensor displays the current ozone level in du (Dobson Units). - -### {% linkable_title `current_uv_index` %} - -This sensor displays the current UV index. - -### {% linkable_title `current_uv_level` %} - -This sensor displays the level of current UV index, which is calculated based on [UV Index Levels & Colors](https://www.openuv.io/kb/uv-index-levels-colors). - -### {% linkable_title `max_uv_index` %} - -This sensor displays the maximum UV index that will be encountered that day (at solar noon). - -### {% linkable_title `safe_exposure_time_type_X` %} - -These sensors display the approximate number of minutes a particular skin type can be exposed to the sun before burning/tanning starts. Each sensor depicts a skin type based on the -[Fitzpatrick scale](https://en.wikipedia.org/wiki/Fitzpatrick_scale): - -* Skin Type I -* Skin Type II -* Skin Type III -* Skin Type IV -* Skin Type V -* Skin Type VI -

-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. +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/pilight.markdown b/source/_components/pilight.markdown index 05b3ce1fbec..599aaa4eea6 100644 --- a/source/_components/pilight.markdown +++ b/source/_components/pilight.markdown @@ -15,7 +15,7 @@ ha_iot_class: "Local Push" [Pilight](https://www.pilight.org/) is a modular and open source solution to communicate with 433 MHz devices and runs on various small form factor computers. A lot of common [protocols](https://manual.pilight.org/protocols/index.html) are already available. -This pilight hub connects to the [pilight-daemon](https://manual.pilight.org/programs/daemon.html) via a socket connection to receive and send codes. Thus Home Assistant does not have to run on the computer in charge of the RF communication. +This pilight hub connects to the [pilight-daemon](https://manual.pilight.org/programs/daemon.html) via a socket connection to receive and send codes. Thus Home Assistant does not have to run on the computer in charge of the RF communication. The received and supported RF codes are put on the event bus of Home Assistant and are therefore directly usable by other components (e.g., automation). Additionally a send service is provided to send RF codes. @@ -28,12 +28,27 @@ To integrate pilight into Home Assistant, add the following section to your `con pilight: ``` -Configuration variables: - -- **host** (*Optional*): The IP address of the computer running the pilight-daemon, e.g., 192.168.1.32. -- **port** (*Optional*): The network port to connect to. The usual port is [5001](https://manual.pilight.org/development/api.html). -- **send_delay** (*Optional*): You can define a send delay as a fraction of seconds if you experience transmission problems when you try to switch multiple switches at once. This can happen when you use a [pilight USB Nano](https://github.com/pilight/pilight-usb-nano) as hardware and switches a whole group of multiple switches on or off. Tested values are between 0.3 and 0.8 seconds depending on the hardware. -- **whitelist** (*Optional*): You can define a whitelist to prevent that too many unwanted RF codes (e.g., the neighbors weather station) are put on your HA event bus. All defined subsections have to be matched. A subsection is matched if one of the items are true. +{% configuration %} +host: + description: The IP address of the computer running the pilight-daemon, e.g., 192.168.1.32. + required: false + default: 127.0.0.1 + type: string +port: + description: "The network port to connect to, see also: (https://manual.pilight.org/development/api.html)." + required: false + default: 5001 + type: integer +send_delay: + description: You can define a send delay as a fraction of seconds if you experience transmission problems when you try to switch multiple switches at once. This can happen when you use a [pilight USB Nano](https://github.com/pilight/pilight-usb-nano) as hardware and switches a whole group of multiple switches on or off. Tested values are between 0.3 and 0.8 seconds depending on the hardware. + required: false + default: 0.0 + type: float +whitelist: + description: You can define a whitelist to prevent that too many unwanted RF codes (e.g., the neighbors weather station) are put on your HA event bus. All defined subsections have to be matched. A subsection is matched if one of the items are true. + required: false + type: string +{% endconfiguration %} In this example only received RF codes using a daycom or Intertechno protocol are put on the event bus and only when the device id is 42. For more possible settings please look at the receiver section of the pilight [API](https://manual.pilight.org/development/api.html). diff --git a/source/_components/proximity.markdown b/source/_components/proximity.markdown index 5d1ed90168c..36046ef9135 100644 --- a/source/_components/proximity.markdown +++ b/source/_components/proximity.markdown @@ -43,7 +43,7 @@ proximity: ignored_zones: - twork devices: - - device_tracker.nwaring_nickmobile + - device_tracker.car1 tolerance: 50 unit_of_measurement: mi ``` @@ -63,20 +63,20 @@ To add multiple proximity components, simply use a list in your `configuration.y proximity: home: ignored_zones: - - twork - - elschool + - work + - school devices: - - device_tracker.nwaring_nickmobile - - device_tracker.eleanorsiphone - - device_tracker.tsiphone + - device_tracker.car1 + - device_tracker.iphone1 + - device_tracker.iphone2 tolerance: 50 unit_of_measurement: mi home3: devices: - - device_tracker.tsiphone + - device_tracker.iphone1 tolerance: 50 work: devices: - - device_tracker.elanorsiphone + - device_tracker.iphone2 tolerance: 10 ``` diff --git a/source/_components/rachio.markdown b/source/_components/rachio.markdown index 93b0c18b724..809d801be9d 100644 --- a/source/_components/rachio.markdown +++ b/source/_components/rachio.markdown @@ -29,13 +29,24 @@ To add this platform to your installation, add the following to your `configurat ```yaml # Example configuration.yaml entry rachio: - api_key: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + api_key: YOUR_API_KEY ``` -Configuration variables: - -- **api_key** (*Required*): The API key for the Rachio account. -- **manual_run_mins** (*Optional*): For how long, in minutes, to turn on a station when the switch is enabled. Defaults to 10 minutes. +{% configuration %} +api_key: + description: The API key for the Rachio account. + required: true + type: string +hass_url_override: + description: If your instance is unaware of its actual web location (`base_url`). + required: false + type: string +manual_run_mins: + description: For how long, in minutes, to turn on a station when the switch is enabled. + required: false + default: 10 + type: integer +{% endconfiguration %}

**Water-saving suggestion:**
diff --git a/source/_components/recorder.markdown b/source/_components/recorder.markdown index 230ac6b1bc0..afda7241aad 100644 --- a/source/_components/recorder.markdown +++ b/source/_components/recorder.markdown @@ -13,13 +13,13 @@ ha_release: pre 0.7 ha_qa_scale: internal --- -The `recorder` component is storing details in a database which then are handled by the [`history` component](/components/history/). +The `recorder` component is responsible for storing details in a database, which then are handled by the [`history` component](/components/history/). -Home Assistant uses [SQLAlchemy](http://www.sqlalchemy.org/) as Object Relational Mapper (ORM). This means that you can now use **any** SQL backend for the recorder that is supported by SQLAlchemy, like [MySQL](https://www.mysql.com/), [MariaDB](https://mariadb.org/), [PostgreSQL](https://www.postgresql.org/), or [MS SQL Server](https://www.microsoft.com/en-us/sql-server/). +Home Assistant uses [SQLAlchemy](http://www.sqlalchemy.org/), which is an Object Relational Mapper (ORM). This means that you can use **any** SQL backend for the recorder that is supported by SQLAlchemy, like [MySQL](https://www.mysql.com/), [MariaDB](https://mariadb.org/), [PostgreSQL](https://www.postgresql.org/), or [MS SQL Server](https://www.microsoft.com/en-us/sql-server/). The default database engine is [SQLite](https://www.sqlite.org/) which doesn't require any configuration. The database is stored in your Home Assistant configuration directory (`.homeassistant`) and called `home-assistant_v2.db`. -To change the defaults for `recorder` component in your installation, add the following to your `configuration.yaml` file: +To change the defaults for the `recorder` component in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -33,7 +33,7 @@ recorder: type: map keys: db_url: - description: The URL which points to your database. + description: The URL that points to your database. required: false type: URL purge_keep_days: @@ -47,7 +47,7 @@ recorder: default: 1 type: integer exclude: - description: Configure which components should be excluded + description: Configure which components should be excluded from recordings. required: false type: map keys: @@ -74,7 +74,7 @@ recorder: type: List {% endconfiguration %} -Define domains and entities to `exclude` (aka. blacklist). This is convenient when you are basically happy with the information recorded, but just want to remove some entities or domains. Usually, these are entities/domains which do not change (like `weblink`) or rarely change (`updater` or `automation`). +Defining domains and entities to `exclude` (aka. blacklist) is convenient when you are basically happy with the information recorded, but just want to remove some entities or domains. Usually, these are entities/domains that do not change (like `weblink`) or rarely change (like `updater` or `automation`). ```yaml # Example configuration.yaml entry with exclude @@ -92,7 +92,7 @@ recorder: - sensor.date ``` -Define domains and entities to record by using the `include` configuration (aka. whitelist). If you have a lot of entities in your system and your `exclude` lists possibly get very large, it might be better just to define the entities or domains to record. +define domains and entities to record by using the `include` configuration (aka. whitelist) is convenient if you have a lot of entities in your system and your `exclude` lists possibly get very large, so it might be better just to define the entities or domains to record. ```yaml # Example configuration.yaml entry with include @@ -104,7 +104,7 @@ recorder: - media_player ``` -Use the `include` list to define the domains/entities to record, and exclude some of them within the `exclude` list. This makes sense if you, for instance, include the `sensor` domain, but want to exclude some specific sensors. Instead of adding every sensor entity to the `include` `entities` list just include the `sensor` domain and exclude the sensor entities you are not interested in. +You can also use the `include` list to define the domains/entities to record, and exclude some of those within the `exclude` list. This makes sense if you, for instance, include the `sensor` domain, but want to exclude some specific sensors. Instead of adding every sensor entity to the `include` `entities` list just include the `sensor` domain and exclude the sensor entities you are not interested in. ```yaml # Example configuration.yaml entry with include and exclude @@ -120,7 +120,7 @@ recorder: - sensor.date ``` -If you only want to hide events from e.g., your history, take a look at the [`history` component](/components/history/). Same goes for the logbook. But if you have privacy concerns about certain events or neither want them in history or logbook, you should use the `exclude`/`include` options of the `recorder` component, that way they aren't even in your database. That way you can save storage and keep the database small by excluding certain often-logged events (like `sensor.last_boot`). +If you only want to hide events from your history, take a look at the [`history` component](/components/history/). The same goes for the [logbook](/components/logbook/). But if you have privacy concerns about certain events or want them in neither the history or logbook, you should use the `exclude`/`include` options of the `recorder` component. That way they aren't even in your database, you can reduce storage and keep the database small by excluding certain often-logged events (like `sensor.last_boot`). ### {% linkable_title Service `purge` %} @@ -133,7 +133,7 @@ Call the service `recorder.purge` to start a purge task which deletes events and ### {% linkable_title Restore State %} -If the `recorder` component is activated then some components support `restore_state` which will restore the state of the entity after Home Assistant is started to the state before Home Assistant was stopped. Please make sure that you do not exclude the entities for which you want the state to be restored from your recordings. An incomplete list of components that currently support `restore_state`: +If the `recorder` component is activated then some components support `restore_state`, which will restore the state of the entity after Home Assistant is started to the state before Home Assistant was stopped. Please make sure that you do not exclude the entities for which you want the state to be restored from your recordings. An incomplete list of components that currently support `restore_state`: * [`input_boolean`](/components/input_boolean/#restore-state) * [`input_number`](/components/input_number/#restore-state) @@ -144,7 +144,7 @@ If the `recorder` component is activated then some components support `restore_s ## {% linkable_title Custom database engines %} -| Database engine | `db_url` | +| Database engine | `db_url` | | :---------------|:---------------------------------------------------------| | SQLite | `sqlite:////PATH/TO/DB_NAME` | | MariaDB | `mysql://SERVER_IP/DB_NAME?charset=utf8` | @@ -163,7 +163,7 @@ If you use MariaDB 10 you need to add port 3307 (or another port depending on wh

-Unix Socket connections always bring performance advantages over TCP, if the database on the same host as the `recorder` instance (i.e. `localhost`).

+Unix Socket connections always bring performance advantages over TCP, if the database is on the same host as the `recorder` instance (i.e. `localhost`).

If you want to use Unix Sockets for PostgreSQL you need to modify the `pg_hba.conf`. See [PostgreSQL](#postgresql)

@@ -196,7 +196,7 @@ $ sudo systemctl daemon-reload ## {% linkable_title Installation notes %} -Not all Python bindings for the chosen database engine can be installed directly. This section contains additional details which should help you to get it working. +Not all Python bindings for the chosen database engine can be installed directly. This section contains additional details that should help you to get it working. ### {% linkable_title MariaDB and MySQL %} @@ -208,7 +208,7 @@ homeassistant@homeassistant:~$ source /srv/homeassistant/bin/activate (homeassistant) homeassistant@homeassistant:~$ pip3 install mysqlclient ``` -For MariaDB you may have to install a few dependencies. If you're using MariaDB version 10.2, libmariadbclient-dev was renamed to libmariadb-dev, please install the correct package based on your MariaDB version. +For MariaDB you may have to install a few dependencies. If you're using MariaDB version 10.2, `libmariadbclient-dev` was renamed to `libmariadb-dev`; please install the correct package based on your MariaDB version. On the Python side we use the `mysqlclient`: @@ -224,7 +224,7 @@ $ sudo apt-get install default-libmysqlclient-dev libssl-dev $ pip3 install mysqlclient ``` -After installing the dependencies, it is required to create the database manually. During the startup, Home Assistant will look for the database specified in the `db_url`. If the database doesn't exist, it will not automatically create it for you. +After installing the dependencies, it is required to create the database manually. During the startup, Home Assistant will look for the database specified in the `db_url`. If the database doesn't exist, it will not automatically create it for you. Once Home Assistant finds the database, with the right level of permissions, all the required tables will then be automatically created and the data will be populated accordingly. @@ -246,7 +246,7 @@ Where `DB_NAME` is the name of your database and `USER_NAME` is the name of the Reload the PostgreSQL configuration after that: ```bash $ sudo -i -u postgres psql -c "SELECT pg_reload_conf();" - pg_reload_conf + pg_reload_conf ---------------- t (1 row) diff --git a/source/_components/remember_the_milk.markdown b/source/_components/remember_the_milk.markdown index 70abbed77e4..96840dc1cba 100644 --- a/source/_components/remember_the_milk.markdown +++ b/source/_components/remember_the_milk.markdown @@ -27,8 +27,8 @@ To be able to use this component, you need a Remember The Milk account and you n remember_the_milk: - name: your_rtm_account - api_key: - shared_secret: + api_key: YOUR_API_KEY + shared_secret: YOUR_SHARED_SECRET ``` diff --git a/source/_components/rfxtrx.markdown b/source/_components/rfxtrx.markdown index 046e27ac027..2215c2f171e 100644 --- a/source/_components/rfxtrx.markdown +++ b/source/_components/rfxtrx.markdown @@ -22,11 +22,22 @@ rfxtrx: device: PATH_TO_DEVICE ``` -Configuration variables: - -- **device** (*Required*): The path to your device, e.g., `/dev/serial/by-id/usb-RFXCOM_RFXtrx433_A1Y0NJGR-if00-port0` -- **debug** (*Optional*): If you want to receive debug output. -- **dummy** (*Optional*): Then you have need a connected drive to test your settings. Can be useful for debugging and testing. +{% configuration %} +device: + description: "The path to your device, e.g., `/dev/serial/by-id/usb-RFXCOM_RFXtrx433_A1Y0NJGR-if00-port0` or `/dev/ttyUSB0`." + required: true + type: string +debug: + description: If you want to receive debug output. + required: false + default: false + type: boolean +dummy: + description: Then you have need a connected drive to test your settings. Can be useful for debugging and testing. + required: false + default: false + type: boolean +{% endconfiguration %} Supported protocols 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.deconz.markdown b/source/_components/scene.deconz.markdown index 3509f033c83..9c5038c3485 100644 --- a/source/_components/scene.deconz.markdown +++ b/source/_components/scene.deconz.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "deCONZ scenes" +title: "deCONZ Scenes" description: "Instructions on how to integrate deCONZ scenes into Home Assistant." date: 2017-11-19 20:00 sidebar: true @@ -15,4 +15,4 @@ ha_iot_class: "Local Push" See the [deCONZ main component](/components/deconz/) for configuration instructions. -The `entity_id` name will be `scene.group_scene_name`, where `group` is which group the scene belongs to and the name of the scene, both group and name are defined in deCONZ. \ No newline at end of file +The `entity_id` name will be `scene.group_scene_name`, where `group` is which group the scene belongs to and the name of the scene, both group and name are defined in deCONZ. diff --git a/source/_components/scene.elkm1.markdown b/source/_components/scene.elkm1.markdown new file mode 100644 index 00000000000..346e54be32a --- /dev/null +++ b/source/_components/scene.elkm1.markdown @@ -0,0 +1,22 @@ +--- +layout: page +title: "Elk-M1 Scene" +description: "Instructions on how to integrate Elk-M1 tasks (macros)." +date: 2018-10-07 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: elkproducts.png +ha_release: 0.81 +ha_category: Scene +ha_iot_class: "Local Push" +--- + +The `elkm1` platform allows you to control your [Elk-M1](https://www.elkproducts.com/m1_controls.html). + +Elk-M1 tasks are represented as `scene` entities. + +

+Full configuration details can be found on the main [Elk-M1 component](/components/elkm1/) page. +

diff --git a/source/_components/scene.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.airvisual.markdown b/source/_components/sensor.airvisual.markdown index a78e18c417c..9a270ac2fee 100644 --- a/source/_components/sensor.airvisual.markdown +++ b/source/_components/sensor.airvisual.markdown @@ -21,26 +21,14 @@ This platform requires an AirVisual API key, which can be obtained [here](https: The "Community" API key is limited to 10,000 calls per month. In order to leave a buffer, the `airvisual` platform queries the API every 10 minutes by default. Modification of this (via the `scan_interval` key) to a too-low value may result in your API key being deactivated.

-## {% linkable_title Configuration via Latitude/Longitude %} +## {% linkable_title Configuration %} To enable the platform and gather data via latitude/longitude, add the following lines to your `configuration.yaml` file: ```yaml sensor: - platform: airvisual - api_key: abc123 - monitored_conditions: - - us - - cn - show_on_map: false - scan_interval: 30 - # Configure by latitude/longitude: - latitude: 42.81212 - longitude: 108.12422 - # Or configure by location: - city: Los Angeles - state: California - country: USA + api_key: YOUR_AIRVISUAL_API_KEY ``` {% configuration %} @@ -87,6 +75,37 @@ country: type: string {% endconfiguration %} +## {% linkable_title Example Configurations %} + +Configuration using custom Latitude and Longitude: + +```yaml +sensor: + - platform: airvisual + api_key: YOUR_AIRVISUAL_API_KEY + monitored_conditions: + - cn + show_on_map: false + scan_interval: 30 + latitude: 42.81212 + longitude: 108.12422 +``` + +Configuration using city, state, and country: + +```yaml +sensor: + - platform: airvisual + api_key: YOUR_AIRVISUAL_API_KEY + monitored_conditions: + - us + show_on_map: false + scan_interval: 30 + city: Los Angeles + state: California + country: USA +``` + ## {% linkable_title Determining the City/State/Country %} To easily determine the proper values for a particular location, use the [AirVisual region directory](https://airvisual.com/world). Once you browse to the particular city you want, take note of the breadcrumb title, which is of the form `country > state/region > city`. Use this information to fill out `configuration.yaml`. diff --git a/source/_components/sensor.api_streams.markdown b/source/_components/sensor.api_streams.markdown index 0a5e744e645..ead045f7237 100644 --- a/source/_components/sensor.api_streams.markdown +++ b/source/_components/sensor.api_streams.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "API Stream Sensor" -description: "Instructions on how to count clients using the API stream within Home Assistant." +title: "API Streams Sensor" +description: "Instructions on how to count clients using the API streams within Home Assistant." date: 2016-11-19 10:00 sidebar: true comments: false @@ -12,9 +12,10 @@ ha_category: Utility ha_release: 0.33 ha_iot_class: "Local Push" ha_qa_scale: internal +redirect_from: /components/sensor.api_stream/ --- -The `api_streams` 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.bloomsky.markdown b/source/_components/sensor.bloomsky.markdown index d2e1ca31a50..1c3ef6acfa7 100644 --- a/source/_components/sensor.bloomsky.markdown +++ b/source/_components/sensor.bloomsky.markdown @@ -33,15 +33,24 @@ sensor: - Voltage ``` -Configuration variables: - -- **monitored_conditions** array (*Required*): The sensors that you wish to monitor on all of your devices. Select from these options: - - Humidity - - Luminance - - Pressure - - Temperature - - UVIndex - - Voltage - +{% configuration %} +monitored_conditions: + description: "The sensors that you wish to monitor on all of your devices. Select from these options:" + required: true + type: list + keys: + humidity: + description: Humidity + luminance: + description: Luminance + pressure: + description: Pressure + temperature: + description: Temperature + uvindex: + description: UVIndex + voltage: + description: Voltage +{% endconfiguration %} More conditions are available using the [BloomSky binary sensor](/components/binary_sensor.bloomsky) component. diff --git a/source/_components/sensor.bom.markdown b/source/_components/sensor.bom.markdown index c3cc033404c..b5dd07a02c8 100644 --- a/source/_components/sensor.bom.markdown +++ b/source/_components/sensor.bom.markdown @@ -116,7 +116,7 @@ monitored_conditions: swell_dir_worded: description: Swell direction. swell_height: - description: Swell hight in m. + description: Swell height in m. swell_period: description: Swell period. vis_km: diff --git a/source/_components/sensor.dublin_bus_transport.markdown b/source/_components/sensor.dublin_bus_transport.markdown index 6c32206895d..f980877ba11 100644 --- a/source/_components/sensor.dublin_bus_transport.markdown +++ b/source/_components/sensor.dublin_bus_transport.markdown @@ -13,10 +13,9 @@ ha_iot_class: "Cloud Polling" ha_release: 0.36 --- - The `dublin_bus_transport` sensor will give you the time until the next two departures from a Dublin bus stop using the RTPI information. -The [Dublin Bus](https://www.dublinbus.ie/RTPI/) website can help to determine the id of your bus stop. You can check if this is correct by going to +The [Dublin Bus](https://www.dublinbus.ie/RTPI/) website can help to determine the id of your bus stop. You can check if this is correct by going to https://data.dublinked.ie/cgi-bin/rtpi/realtimebusinformation?stopid=[Stop ID] @@ -29,10 +28,20 @@ sensor: stopid: STOP_ID ``` -Configuration variables: - -- **stopid** (*Required*): The ID of the bus stop to get the information for. -- **route** (*Optional*): Only show a single bus route at the stop. This is the same as the bus number, e.g., `83`. -- **name** (*Optional*): A friendly name for this sensor. +{% configuration %} +stopid: + description: The ID of the bus 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 + default: Next Bus + type: string +{% endconfiguration %} The public RTPI information is coming from [Dub Linked](https://data.dublinked.ie/). diff --git a/source/_components/sensor.dyson.markdown b/source/_components/sensor.dyson.markdown index 8a1cd8a1efb..c92b2f7d669 100644 --- a/source/_components/sensor.dyson.markdown +++ b/source/_components/sensor.dyson.markdown @@ -21,4 +21,4 @@ You have first to setup the [Dyson component](/components/dyson/) ### {% linkable_title Supported fan devices %} - Pure Cool link (desk and tower) -- Pure Hot+cool link (but heating is not yet supported) +- Pure Hot+cool link (see [climate](/components/climate.dyson/) for thermal control) diff --git a/source/_components/sensor.eliqonline.markdown b/source/_components/sensor.eliqonline.markdown index b87f019f0ef..81f64598802 100644 --- a/source/_components/sensor.eliqonline.markdown +++ b/source/_components/sensor.eliqonline.markdown @@ -13,7 +13,6 @@ ha_release: "0.10" ha_iot_class: "Cloud Polling" --- - Integrate your [ELIQ Online](http://eliq.io) smart meter information into Home Assistant. To get an [access token](https://my.eliq.io/user/settings/api) and the [Channel ID](https://my.eliq.io/user/settings/locations), log in to your account. To enable this sensor in your installation, add the following to your `configuration.yaml` file: @@ -26,11 +25,20 @@ sensor: channel_id: CHANNEL_ID ``` -Configuration variables: - -- **access_token** (*Required*): The Access Token for your account. -- **channel_id** (*Required*): Channel ID (as integer) of your device. -- **name** (*Optional*): The name of the sensor, eg. the city. +{% configuration %} +access_token: + description: The Access Token for your account. + required: true + type: string +channel_id: + description: Channel ID (as integer) of your device. + required: true + type: integer +name: + description: The name of the sensor, e.g., the city. + required: false + default: ELIQ Online + type: string +{% endconfiguration %} For details please check the [API documentation](https://eliq.zendesk.com/hc/en-us/articles/115002708449-API-Eliq-Online). - diff --git a/source/_components/sensor.elkm1.markdown b/source/_components/sensor.elkm1.markdown new file mode 100644 index 00000000000..97216415589 --- /dev/null +++ b/source/_components/sensor.elkm1.markdown @@ -0,0 +1,22 @@ +--- +layout: page +title: "Elk-M1 Sensor" +description: "Instructions on how to integrate Elk-M1 counters, keypads, panel, settings, and zones." +date: 2018-10-11 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: elkproducts.png +ha_release: 0.81 +ha_category: Sensor +ha_iot_class: "Local Push" +--- + +The `elkm1` platform allows you to control your [Elk-M1](https://www.elkproducts.com/m1_controls.html). + +Elk-M1 counters, keypads, panel, settings, and zones are represented as `sensor` entities. + +

+Full configuration details can be found on the main [Elk-M1 component](/components/elkm1/) page. +

diff --git a/source/_components/sensor.fido.markdown b/source/_components/sensor.fido.markdown index 4331701e3e4..00694b0d71b 100644 --- a/source/_components/sensor.fido.markdown +++ b/source/_components/sensor.fido.markdown @@ -33,28 +33,62 @@ sensor: ``` Configuration variables: - -- **username** (*Required*): You Fido username (your Fido phone number or your email). -- **password** (*Required*): Your Fido password. -- **number** (*Optional*): Your Fido phone number (it will use your username if empty). -- **monitored_variables** array (*Required*): Variables to monitor. - - **fido_dollar**: Your Fido dollar balance - - **balance**: Your account balance - - **data_used**: Current data used - - **data_limit**: Current data limit - - **data_remaining**: Current data remaining - - **text_used**: SMS sent - - **text_limit**: SMS limit - - **text_remaining**: SMS remaining - - **mms_used**: MMS sent - - **mms_limit**: MMS limit - - **mms_remaining**: MMS remaining - - **text_int_used**: International SMS sent - - **text_int_limit**: International SMS limit - - **text_int_remaining**: International SMS remaining - - **talk_used**: Talk time used - - **talk_limit**: Talk time limit - - **talt_remaining**: Talk time remaining - - **other_talk_used**: Other talk time used (It could be international calls) - - **other_talk_limit**: Other talk time limit - - **other_talt_remaining**: Other talk time remaining +{% configuration %} +username: + description: Your Fido username (your Fido phone number or your email). + required: true + type: string +password: + description: Your Fido password. + required: true + type: string +number: + description: Your Fido phone number (it will use your username if empty). + required: false + type: string +monitored_variables: + description: Variables to monitor. + required: true + type: list + keys: + fido_dollar: + description: Your Fido dollar balance + balance: + description: Your account balance + data_used: + description: Current data used + data_limit: + description: Current data limit + data_remaining: + description: Current data remaining + text_used: + description: SMS sent + text_limit: + description: SMS limit + text_remaining: + description: SMS remaining + mms_used: + description: MMS sent + mms_limit: + description: MMS limit + mms_remaining: + description: MMS remaining + text_int_used: + description: International SMS sent + text_int_limit: + description: International SMS limit + text_int_remaining: + description: International SMS remaining + talk_used: + description: Talk time used + talk_limit: + description: Talk time limit + talt_remaining: + description: Talk time remaining + other_talk_used: + description: Other talk time used (It could be international calls) + other_talk_limit: + description: Other talk time limit + other_talt_remaining: + description: Other talk time remaining +{% endconfiguration %} diff --git a/source/_components/sensor.fritzbox_netmonitor.markdown b/source/_components/sensor.fritzbox_netmonitor.markdown index 5a4c3f858a7..240ffcf6641 100644 --- a/source/_components/sensor.fritzbox_netmonitor.markdown +++ b/source/_components/sensor.fritzbox_netmonitor.markdown @@ -17,7 +17,7 @@ The `fritzbox_netmonitor` sensor monitors the network statistics exposed by [AVM

It might be necessary to install additional packages: $ sudo apt-get install libxslt-dev libxml2-dev python3-lxml -If you are working with the All-in-One installation, you may also need to execute also within your virtual environment the command pip install lxml; be patient this will take a while. +If you are working with the All-in-One installation, you may also need to execute also within your virtual environment the command pip3 install lxml; be patient this will take a while.

To use the Fritz!Box network monitor in your installation, add the following to your `configuration.yaml` file: 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.google_travel_time.markdown b/source/_components/sensor.google_travel_time.markdown index 044dd34c9ea..b9d1c5b5596 100644 --- a/source/_components/sensor.google_travel_time.markdown +++ b/source/_components/sensor.google_travel_time.markdown @@ -36,17 +36,64 @@ sensor: destination: Paris, France ``` -Configuration variables: - -- **api_key** (*Required*): Your application's API key (get one by following the instructions above). This key identifies your application for purposes of quota management. -- **origin** (*Required*): The starting point for calculating travel distance and time. You can supply one or more locations separated by the pipe character, in the form of an address, latitude/longitude coordinates, or a [Google place ID](https://developers.google.com/places/place-id). When specifying the location using a Google place ID, the ID must be prefixed with `place_id:`. -- **destination** (*Required*): One or more locations to use as the finishing point for calculating travel distance and time. The options for the destinations parameter are the same as for the origins parameter, described above. -- **name** (*Optional*): A name to display on the sensor. The default is "Google Travel Time - [Travel Mode]" where [Travel Mode] is the mode set in options for the sensor (see option "mode" below). -- **options** (*Optional*): A dictionary containing parameters to add to all requests to the Distance Matrix API. A full listing of available options can be found [here](https://developers.google.com/maps/documentation/distance-matrix/intro#RequestParameters). - - **mode** (*Optional*): The travel mode used to calculate the directions/time. Can be `driving` (*Default*), `bicycling`, `transit` or `walking`. - - **departure_time** (*Optional*): Can be `now`, a Unix timestamp, or a 24 hour time string like `08:00:00`. If you provide a time string, it will be combined with the current date to get travel time for that moment. - - **arrival_time** (*Optional*): See notes above for `departure_time`. `arrival_time` cannot be `now`, only a Unix timestamp or time string. You can not provide both `departure_time` and `arrival_time`. If you do provide both, `arrival_time` will be removed from the request. - - **units** (*Optional*): Set the unit for the sensor in metric or imperial, otherwise the default unit the same as the unit set in `unit_system:`. +{% configuration %} +api_key: + description: Your application's API key (get one by following the instructions above). This key identifies your application for purposes of quota management. + required: true + type: string +origin: + description: "The starting point for calculating travel distance and time. You can supply one or more locations separated by the pipe character, in the form of an address, latitude/longitude coordinates, or a [Google place ID](https://developers.google.com/places/place-id). When specifying the location using a Google place ID, the ID must be prefixed with `place_id:`." + required: true + type: string +destination: + description: One or more locations to use as the finishing point for calculating travel distance and time. The options for the destinations parameter are the same as for the origins parameter, described above. + required: true + type: string +name: + description: A name to display on the sensor. The default is "Google Travel Time - [Travel Mode]" where [Travel Mode] is the mode set in options for the sensor (see option "mode" below). + required: false + type: string +travel_mode: + description: "You can choose between: `driving`, `walking`, `bicycling` or `transit`." + required: false + type: string +options: + description: "A dictionary containing parameters to add to all requests to the Distance Matrix API. A full listing of available options can be found [here](https://developers.google.com/maps/documentation/distance-matrix/intro#RequestParameters)." + required: false + type: list + keys: + mode: + description: The travel mode used to calculate the directions/time. Can be `driving`, `bicycling`, `transit` or `walking`. + required: false + default: driving + type: string + language: + description: "You can choose from a lot of languages: `ar`, `bg`, `bn`, `ca`, `cs`, `da`, `de`, `el`, `en`, `es`, `eu`, `fa`, `fi`, `fr`, `gl`, `gu`, `hi`, `hr`, `hu`, `id`, `it`, `iw`, `ja`, `kn`, `ko`, `lt`, `lv`, `ml`, `mr`, `nl`, `no`, `pl`, `pt`, `pt-BR`, `pt-PT`, `ro`, `ru`, `sk`, `sl`, `sr`, `sv`, `ta`, `te`, `th`, `tl`, `tr`, `uk`, `vi`, `zh-CN` and `zh-TW`." + required: false + type: string + departure_time: + description: Can be `now`, a Unix timestamp, or a 24 hour time string like `08:00:00`. If you provide a time string, it will be combined with the current date to get travel time for that moment. + required: exclusive + type: [time, string] + arrival_time: + description: See notes above for `departure_time`. `arrival_time` cannot be `now`, only a Unix timestamp or time string. You can not provide both `departure_time` and `arrival_time`. If you do provide both, `arrival_time` will be removed from the request. + required: exclusive + type: [time, string] + avoid: + description: "Indicate what google should avoid when calculating the travel time, you can choose from: `tolls`, `highways`, `ferries`, `indoor`." + required: false + type: string + transit_model: + description: "If you opted for `transit` at `travel_mode`, you can use this variable to specify which public transport you want to use: `bus`, `subway`, `train`, `tram` or `rail`." + transit_routing_preference: + description: "for the travel time calculation for public transport you can also specify the preference for: `less_walking` or `fewer_transfers`." + required: false + type: string + units: + description: "Set the unit for the sensor in metric or imperial, otherwise the default unit the same as the unit set in `unit_system:`." + required: false + type: string +{% endconfiguration %} ## {% linkable_title Dynamic Configuration %} @@ -115,5 +162,6 @@ You can also use the `sensor.google_travel_sensor_update` service to update the - fri action: - service: sensor.google_travel_sensor_update - entity_id: sensor.morning_commute + data: + entity_id: sensor.morning_commute ``` diff --git a/source/_components/sensor.google_wifi.markdown b/source/_components/sensor.google_wifi.markdown index 303c89ed0a6..1924ec2f29f 100644 --- a/source/_components/sensor.google_wifi.markdown +++ b/source/_components/sensor.google_wifi.markdown @@ -16,7 +16,7 @@ ha_release: "0.50" The `google_wifi` sensor platform is displaying the exposed status of a [Google Wifi](https://madeby.google.com/wifi/) (or OnHub) router. -The sensor is able to report network status, up-time, current IP address, and firmware versions. +The sensor is able to report network status, up-time, current IP address and firmware versions. To enable this sensor, add the following lines to your `configuration.yaml` file: @@ -26,15 +26,32 @@ sensor: - platform: google_wifi ``` -Configuration variables: - -- **host** (*Optional*): The address to retrieve status from the router. Defaults to `testwifi.here` (other options include `onhub.here` and your router's IP such as `192.168.86.1`). -- **name** (*Optional*): Name to give the Google Wifi sensor. Defaults to `google_wifi`. -- **monitored_conditions** array (*Optional*): Defines the data to monitor as sensors. Defaults to all of the listed options below. - - **current_version**: Current firmware version of the router. - - **new_version**: Latest available firmware version. If router is up-to-date, this value defaults to `Latest`. - - **uptime**: Days since router has been turned on. - - **last_restart**: Date of last restart. Format is `YYYY-MM-DD HH:mm:SS`. - - **local_ip**: Local public IP address. - - **status**: Reports whether the router is or is not connected to the internet. - +{% configuration %} +host: + description: The address to retrieve status from the router. Valid options are `testwifi.here`, in some cases `onhub.here` or the router's IP address such as 192.168.86.1. + required: false + default: testwifi.here + type: string +name: + description: Name to give the Google Wifi sensor. + required: false + default: google_wifi + type: string +monitored_conditions: + description: Defines the data to monitor as sensors. Defaults to all of the listed options below. + required: false + type: map + keys: + current_version: + description: Current firmware version of the router. + new_version: + description: Latest available firmware version. If router is up-to-date, this value shows to `Latest`. + uptime: + description: Days since router has been turned on. + last_restart: + description: Date of last restart. Format is `YYYY-MM-DD HH:mm:SS`. + local_ip: + description: Local public IP address. + status: + description: Reports whether the router is or is not connected to the internet. +{% endconfiguration %} 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.hp_ilo.markdown b/source/_components/sensor.hp_ilo.markdown index f242584b9db..c7f8594cafb 100644 --- a/source/_components/sensor.hp_ilo.markdown +++ b/source/_components/sensor.hp_ilo.markdown @@ -39,17 +39,47 @@ sensor: sensor_type: SENSOR TYPE ``` -Configuration variables: - -- **host** (*Required*): The hostname or IP address on which the ILO can be reached. -- **port** (*Optional*): The port on which the ILO can be reached, defaults to port `443`. -- **username** (*Required*): The username used to connect to the ILO. -- **password** (*Required*): The password used to connect to the ILO. -- **monitored_variables** array (*Optional*): Sensors created from the ILO data. Defaults to an empty list (no sensors are created). - - **name** (*Required*): The sensor name. - - **sensor_type** (*Required*): The sensor type, has to be one of the specified valid sensor types. - - **unit_of_measurement** (*Optional*): The sensors' unit of measurement. - - **value_template** (*Optional*): When a Jinja2 template is specified here, the created sensor will output the template result. The ILO response can be referenced with the `ilo_data` variable. +{% configuration %} +host: + description: The hostname or IP address on which the ILO can be reached. + required: true + type: string +port: + description: The port on which the ILO can be reached. + required: false + default: 443 + type: string +username: + description: The username used to connect to the ILO. + required: true + type: string +password: + description: The password used to connect to the ILO. + required: true + type: string +monitored_variables: + description: Sensors created from the ILO data. + required: false + default: Defaults to an empty list (no sensors are created). + type: list + keys: + name: + description: The sensor name. + required: true + type: string + sensor_type: + description: The sensor type, has to be one of the valid sensor types specified below. + required: true + type: string + unit_of_measurement: + description: The sensors' unit of measurement. + required: false + type: string + value_template: + description: When a Jinja2 template is specified here, the created sensor will output the template result. The ILO response can be referenced with the `ilo_data` variable. + required: false + type: template +{% endconfiguration %} Valid sensor_types: - **server_name**: Get the name of the server this iLO is managing. diff --git a/source/_components/sensor.htu21d.markdown b/source/_components/sensor.htu21d.markdown index fbb513aef4a..687bb02df60 100644 --- a/source/_components/sensor.htu21d.markdown +++ b/source/_components/sensor.htu21d.markdown @@ -13,7 +13,6 @@ ha_release: 0.48 ha_iot_class: "Local Push" --- - The `htu21d` sensor platform allows you to read the temperature and humidity from a [HTU21D sensor](http://www.datasheetspdf.com/PDF/HTU21D/779951/1) connected via [I2c](https://en.wikipedia.org/wiki/I²C) bus (SDA, SCL pins). Tested devices: @@ -30,11 +29,18 @@ sensor: - platform: htu21d ``` -Configuration variables: - -- **name** (*Optional*): The name of the sensor -- **i2c_bus** (*Optional*): I2c bus where the sensor is. Defaults to 1, for Raspberry Pi 2 and 3. - +{% configuration %} +name: + description: The name of the sensor. + required: false + default: i2c_bus + type: string +i2c_bus: + description: I2c bus where the sensor is. + required: false + default: 1 (for Raspberry Pi 2 and 3) + type: integer +{% endconfiguration %} ## {% linkable_title Customizing the sensor data %} diff --git a/source/_components/sensor.huawei_lte.markdown b/source/_components/sensor.huawei_lte.markdown index 682d3bc0518..673ac3186f8 100644 --- a/source/_components/sensor.huawei_lte.markdown +++ b/source/_components/sensor.huawei_lte.markdown @@ -15,12 +15,15 @@ ha_release: 0.79 The `huawei_lte` sensor platform allows you to monitor Huawei LTE routers. -This requires you to have set up the [Huawei LTE component](/components/huawei_lte/). +## {% linkable_title Configuration %} + +This platform requires you to have set up the [Huawei LTE component](/components/huawei_lte/). + +The names for the item you want to monitor are dot separated paths to information returned by the router. The data set varies by router model. To see what your router provides, set logging level to debug and watch `homeassistant.components.huawei_lte` debug entries. The configuration variable description contains a few example paths just to illustrate the syntax. These may not be available on all routers or their semantics may differ, and there are quite likely many more that are not listed here. ## {% linkable_title Configuration %} -To enable the sensor, add the following lines to your -`configuration.yaml` file: +To enable the sensor, add the following lines to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -33,19 +36,40 @@ sensor: - traffic_statistics.TotalConnectTime ``` -Configuration variables: - -**monitored_conditions** array (*Optional*): Defines the data to monitor as sensors. Defaults to a few generally available data items expected to be available on most boxes. The names here are dot separated paths to information returned by the router. The data set varies by router model; to see what your router provides, set logging level to debug and watch homeassistant.components.huawei_lte debug entries. The following list contains a few example paths just to illustrate the syntax; these may not be available on all routers or their semantics may differ, and there are quite likely many more that are not listed here. - - - **device_information.SoftwareVersion**: Software version. - - **device_information.WanIPAddress**: WAN interface IP address. - - **device_information.WanIPv6Address**: WAN interface IP address. - - **device_signal.rsrq**: The signal RSRQ value. - - **device_signal.rsrp**: The signal RSRP value. - - **device_signal.rssi**: The signal RSSI value. - - **device_signal.sinr**: The signal SINR value. - - **traffic_statistics.CurrentDownloadRate**: Current download rate, bytes/sec. - - **traffic_statistics.CurrentUploadRate**: Current upload rate, bytes/sec. - - **traffic_statistics.TotalUpload**: Total bytes uploaded since last reset. - - **traffic_statistics.TotalDownload**: Total bytes downloaded since last reset. - - **traffic_statistics.TotalConnectTime**: Total time connected since last reset. +{% configuration %} +monitored_conditions: + description: Defines the data to monitor as sensors. Defaults to a few generally available data items expected to be available on most boxes. + required: false + default: Below is indicated which conditions are the default. + type: list + keys: + device_information.SoftwareVersion: + description: Software version. + device_information.WanIPAddress: + description: WAN interface IPv4 address. + default: default + device_information.WanIPv6Address: + description: WAN interface IPv6 address. + device_signal.rsrq: + description: The signal RSRQ value. + default: default + device_signal.rsrp: + description: The signal RSRP value. + default: default + device_signal.rssi: + description: The signal RSSI value. + default: default + device_signal.sinr: + description: The signal SINR value. + default: default + traffic_statistics.CurrentDownloadRate: + description: Current download rate, bytes/sec. + traffic_statistics.CurrentUploadRate: + description: Current upload rate, bytes/sec. + traffic_statistics.TotalUpload: + description: Total bytes uploaded since last reset. + traffic_statistics.TotalDownload: + description: Total bytes downloaded since last reset. + traffic_statistics.TotalConnectTime: + description: Total time connected since last reset. +{% endconfiguration %} diff --git a/source/_components/sensor.hydroquebec.markdown b/source/_components/sensor.hydroquebec.markdown index 891f74ae21c..a6fabbbb3cd 100644 --- a/source/_components/sensor.hydroquebec.markdown +++ b/source/_components/sensor.hydroquebec.markdown @@ -34,26 +34,58 @@ sensor: - period_total_days ``` -Configuration variables: - -- **username** (*Required*): Username used to log into the Hydro-Québec site. -- **password** (*Required*): Password used to log into the Hydro-Québec site. -- **contract** (required since HA 4.0) Your contract number with Hydro-Québec -- **monitored_variables** array (*Required*): Variables to monitor. - - **balance** : Current balance - - **period_total_bill** : Current period bill - - **period_length**: Current period length - - **period_total_days**: Total number of days in this period - - **period_mean_daily_bill**: Period daily average bill - - **period_mean_daily_consumption**: Period daily average consumption - - **period_total_consumption**: Total Consumption - - **period_lower_price_consumption**: Period Lower price consumption - - **period_higher_price_consumption**: Period Higher price consumption - - **period_average_temperature**: Period Average temperature - - **yesterday_total_consumption**: Yesterday total consumption - - **yesterday_lower_price_consumption**: Yesterday lower price consumption - - **yesterday_higher_price_consumption**: Yesterday higher price consumption - - **yesterday_average_temperature**: Yesterday Average temperature +{% configuration %} +username: + description: Username used to log into the Hydro-Québec site. + required: true + type: string +password: + description: Password used to log into the Hydro-Québec site. + required: true + type: string +contract: + description: Your contract number with Hydro-Québec. + required: true + type: string +name: + description: A friendly name for this sensor. + required: false + default: HydroQuebec + type: string +monitored_variables: + description: Variables to monitor. + required: true + type: list + keys: + balance: + description: Current balance + period_total_bill: + description: Current period bill + period_length: + description: Current period length + period_total_days: + description: Total number of days in this period + period_mean_daily_bill: + description: Period daily average bill + period_mean_daily_consumption: + description: Period daily average consumption + period_total_consumption: + description: Total consumption + period_lower_price_consumption: + description: Period lower price consumption + period_higher_price_consumption: + description: Period higher price consumption + period_average_temperature: + description: Period average temperature + yesterday_total_consumption: + description: Yesterday total consumption + yesterday_lower_price_consumption: + description: Yesterday lower price consumption + yesterday_higher_price_consumption: + description: Yesterday higher price consumption + yesterday_average_temperature: + description: Yesterday average temperature +{% endconfiguration %} To find your contract id, go to the [Hydro-Québec website](https://www.hydroquebec.com/portail/) and connect to your account. 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.influxdb.markdown b/source/_components/sensor.influxdb.markdown index 66680379f7d..2e054847848 100644 --- a/source/_components/sensor.influxdb.markdown +++ b/source/_components/sensor.influxdb.markdown @@ -27,24 +27,77 @@ sensor: measurement: '"°C"' ``` +{% configuration %} +host: + description: IP address of your database host, e.g. 192.168.1.10. + required: false + default: localhost + type: string +port: + description: Port to use. + required: false + default: 8086 + type: string +username: + description: The username of the database user. + required: false + type: string +password: + description: The password for the database user account. + required: false + type: string +ssl: + description: Use https instead of http to connect. + required: false + default: false + type: boolean +verify_ssl: + description: Verify SSL certificate for https request. + required: false + default: false + type: boolean +queries: + description: List of queries. + required: true + type: list + keys: + name: + description: The name of the sensor. + required: true + type: string + unit_of_measurement: + description: Defines the units of measurement of the sensor, if any. + required: false + type: string + measurement: + description: Defines the measurement name in InfluxDB (the FROM clause of the query). + required: true + type: string + where: + description: Defines the data selection clause (the where clause of the query). + required: true + type: string + value_template: + description: Defines a [template](/docs/configuration/templating/#processing incoming data) to extract a value from the payload. + required: false + type: template + database: + description: Name of the database to use. + required: false + default: home_assistant + type: string + group_function: + description: The group function to be used. + required: false + default: mean + type: string + field: + description: The field name to select. + required: true + type: string + default: value +{% endconfiguration %} -Configuration variables for the server: - -- **host** (*Optional*): IP address of your database host, eg. 192.168.1.10. Defaults to `localhost`. -- **port** (*Optional*): Port to use. Defaults to 8086. -- **username** (*Optional*): The username of the database user. -- **password** (*Optional*): The password for the database user account. -- **ssl** (*Optional*): Use `https` instead of `http` to connect. Defaults to `false`. -- **verify_ssl** (*Optional*): Verify SSL certificate for `https` request. Defaults to `false`. -- **queries** array (*Required*): List of queries - - **name** (*Required*): The name of the sensor. - - **unit_of_measurement** (*Optional*): Defines the units of measurement of the sensor, if any. - - **measurement** (*Required*): Defines the measurement name in InfluxDB (the from clause of the query). - - **where** (*Required*): Defines the data selection clause (the where clause of the query). - - **value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload. - - **database** (*Optional*): Name of the database to use. Defaults to `home_assistant`. - - **group_function** (*Optional*): The group function to be used. Defaults to `mean`. - - **field** (*Optional*): The field name to select. Defaults to value. ## {% linkable_title Examples %} diff --git a/source/_components/sensor.irish_rail_transport.markdown b/source/_components/sensor.irish_rail_transport.markdown index f107633701a..120e887a657 100644 --- a/source/_components/sensor.irish_rail_transport.markdown +++ b/source/_components/sensor.irish_rail_transport.markdown @@ -13,7 +13,6 @@ ha_iot_class: "Cloud Polling" ha_release: 0.57 --- - The `irish_rail_transport` sensor will give you the time until the next two departures (within 90 minutes) from an Irish Rail station using the RTPI information. A station name is the full station name as specified on the Irish Rail search site, for example, `Tara Street` or `Dublin Connolly`. @@ -28,13 +27,29 @@ sensor: name: "To Greystones" ``` -Configuration variables: - -- **station** (*Required*): The name of the station. -- **direction** (*Optional*): The direction of the train. Typically either `Northbound` or `Southbound`. -- **destination** (*Optional*): The name of the destination station to filter by. -- **stops_at** (*Optional*): An optional filter based on the name of a station that the train stops at. -- **name** (*Optional*): A friendly name for this sensor. +{% configuration %} +station: + description: The name of the station. + required: true + type: string +direction: + description: The direction of the train. Typically either `Northbound` or `Southbound`. + required: false + type: string +destination: + description: The name of the destination station to filter by. + required: false + type: string +stops_at: + description: An optional filter based on the name of a station that the train stops at. + required: false + type: string +name: + description: A friendly name for this sensor. + required: false + default: Next Train + type: string +{% endconfiguration %} Using the `stops_at` option will cause an extra request per train found. Therefore, if you are looking at a busy station, it is recommended that you also use at least one other filter. For example: diff --git a/source/_components/sensor.logi_circle.markdown b/source/_components/sensor.logi_circle.markdown index aa42c0218c8..80df3bc9ae4 100644 --- a/source/_components/sensor.logi_circle.markdown +++ b/source/_components/sensor.logi_circle.markdown @@ -29,15 +29,26 @@ sensor: - platform: logi_circle ``` -Configuration variables: - -- **monitored_conditions** array (*Optional*): Conditions to display in the frontend. The following conditions can be monitored. If not specified, all conditions supported by your camera will be enabled. - - **battery_level**: Return the battery level percentage from the camera. - - **last_activity_time**: Return the timestamp from the last time the Logi Circle camera detected any activity. - - **privacy_mode**: Return the privacy mode status from the camera. - - **signal_strength_category**: Return the WiFi signal level from the camera. - - **signal_strength_percentage**: Return the WiFi signal percentage from the camera. - - **speaker_volume**: Return the relative speaker volume from the camera (0-100%). - - **streaming_mode**: Return the streaming mode status from the camera. +{% configuration %} +monitored_conditions: + description: Conditions to display in the frontend. The following conditions can be monitored. If not specified, all conditions supported by your camera will be enabled. + required: false + type: list + keys: + battery_level: + description: Return the battery level percentage from the camera. + last_activity_time: + description: Return the timestamp from the last time the Logi Circle camera detected any activity. + privacy_mode: + description: Return the privacy mode status from the camera. + signal_strength_category: + description: Return the WiFi signal level from the camera. + signal_strength_percentage: + description: Return the WiFi signal percentage from the camera. + speaker_volume: + description: Return the relative speaker volume from the camera (0-100%). + streaming_mode: + description: Return the streaming mode status from the camera. +{% endconfiguration %} Currently it supports all 1st and 2nd generation cameras. Cameras without an internal battery will not expose a `battery_level` sensor. \ No newline at end of file diff --git a/source/_components/sensor.london_underground.markdown b/source/_components/sensor.london_underground.markdown index 45c7cce409b..57a1a5c1a5f 100644 --- a/source/_components/sensor.london_underground.markdown +++ b/source/_components/sensor.london_underground.markdown @@ -38,8 +38,11 @@ sensor: - Waterloo & City ``` -Configuration variables: - -- **line** (*Required*): Enter the name of at least one line. +{% configuration %} +line: + description: Enter the name of at least one line. + required: true + type: list +{% endconfiguration %} Powered by TfL Open Data [TFL](https://api.tfl.gov.uk/). diff --git a/source/_components/sensor.loopenergy.markdown b/source/_components/sensor.loopenergy.markdown index b3369c6fc52..8288ea2b430 100644 --- a/source/_components/sensor.loopenergy.markdown +++ b/source/_components/sensor.loopenergy.markdown @@ -52,14 +52,34 @@ sensor: gas_secret: 'GAS_SECRET' ``` -Configuration variables: - -- **electricity_serial** (*Required*): Serial number of your electricity sensor -- **electricity_secret** (*Required*): Secret key for your electricity sensor -- **gas_serial** (*Optional*): Serial number for your gas sensor. -- **gas_secret** (*Optional*): Secret key for your gas sensor. -- **gas_type** (*Optional*): Type of meter `imperial` or `metric`. Defaults to `metric`. -- **gas_calorific** (*Optional*): Calorific value of your gas supply (usually on your gas bill). Defaults to 39.11. +{% configuration %} +electricity_serial: + description: Serial number of your electricity sensor. + required: true + type: string +electricity_secret: + description: Secret key for your electricity sensor. + required: true + type: string +gas_serial: + description: Serial number for your gas sensor. + required: true + type: string +gas_secret: + description: Secret key for your gas sensor. + required: true + type: string +gas_type: + description: Type of meter `imperial` or `metric`. + required: false + default: metric + type: string +gas_calorific: + description: Calorific value of your gas supply (usually on your gas bill). + required: false + default: 39.11 + type: float +{% endconfiguration %} The electricity readings are updated every 10 seconds and the gas readings every 15 minutes. diff --git a/source/_components/sensor.lyft.markdown b/source/_components/sensor.lyft.markdown index c86b811e161..6241bad852f 100644 --- a/source/_components/sensor.lyft.markdown +++ b/source/_components/sensor.lyft.markdown @@ -13,10 +13,8 @@ ha_iot_class: "Cloud Polling" ha_release: 0.41 --- - The `lyft` sensor will give you time and price estimates for all available [Lyft](https://lyft.com) products at the given `start_latitude` and `start_longitude`.The `ATTRIBUTES` are used to provide extra information about products, such as vehicle capacity and fare rates. If an `end_latitude` and `end_longitude` are specified, a price estimate will also be provided. One sensor will be created for each product at the given `start` location, for pickup time. A second sensor for each product, for estimated price, will be created if a destination is specified. The sensor is powered by the official Lyft [API](https://developer.lyft.com/reference/). - You must create an application [here](https://www.lyft.com/developers/manage) to obtain a `client_id` and `client_secret`. To enable this sensor, add the following lines to your `configuration.yaml` file: @@ -27,20 +25,41 @@ sensor: - platform: lyft client_id: CLIENT_ID client_secret: CLIENT_SECRET - start_latitude: 37.8116380 + start_latitude: 37.8116380 ``` -Configuration variables: +{% configuration %} +client_id: + description: "A client id obtained from [developer.lyft.com](https://developer.lyft.com) after [creating an app](https://www.lyft.com/developers/manage)." + required: true + type: string +client_secret: + description: "A client secret obtained from [developer.lyft.com](https://developer.lyft.com) after [creating an app](https://www.lyft.com/developers/manage)." + required: true + type: string +start_latitude: + description: The starting latitude for a trip. + required: true + type: float +start_longitude: + description: The starting longitude for a trip. + required: true + type: float +end_latitude: + description: The ending latitude for a trip. While `end_latitude` is optional, providing an `end_latitude`/`end_longitude` allows price estimates as well as time. + required: false + type: float +end_longitude: + description: The ending longitude for a trip. While `end_longitude` is optional, providing an `end_latitude`/`end_longitude` allows price estimates as well as time. + required: false + type: float +product_ids: + description: A list of Lyft product IDs. + required: false + type: [list, string] +{% endconfiguration %} -- **client_id** (*Required*): A client id obtained from [developer.lyft.com](https://developer.lyft.com) after [creating an app](https://www.lyft.com/developers/manage). -- **client_secret** (*Required*) A client secret obtained from [developer.lyft.com](https://developer.lyft.com) after [creating an app](https://www.lyft.com/developers/manage). -- **start_latitude** (*Required*): The starting latitude for a trip. -- **start_longitude** (*Required*): The starting longitude for a trip. -- **end_latitude** (*Optional*): The ending latitude for a trip. While `end_latitude` is optional, providing an `end_latitude`/`end_longitude` allows price estimates as well as time. -- **end_longitude** (*Optional*): The ending longitude for a trip. While `end_longitude` is optional, providing an `end_latitude`/`end_longitude` allows price estimates as well as time. -- **product_ids** (*Optional*): A list of Lyft product IDs. - -A full configuration entry could look like the sample below: +A full configuration entry could look like the sample below: ```yaml # Example configuration.yaml entry @@ -48,7 +67,7 @@ sensor: - platform: lyft client_id: CLIENT_ID client_secret: CLIENT_SECRET - start_latitude: 37.8116380 + start_latitude: 37.8116380 start_longitude: -122.2648050 end_latitude: 37.615223 end_longitude: -122.389977 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.mfi.markdown b/source/_components/sensor.mfi.markdown index a0aeac788de..6f179909a3f 100644 --- a/source/_components/sensor.mfi.markdown +++ b/source/_components/sensor.mfi.markdown @@ -29,12 +29,32 @@ sensor: password: YOUR_PASSWORD ``` -Configuration variables: - -- **host** (*Required*): The IP address or hostname of your mFi controller. -- **port** (*Optional*): The port of your mFi controller. Defaults to 6443 for TLS, otherwise 6080. -- **username** (*Required*): The mFi admin username. -- **password** (*Required*): The mFi admin user's password. -- **ssl** (*Optional*): If `True`, use SSL/TLS to contact the mFi controller. Defaults to `True`. -- **verify_ssl** (*Optional*): Set this to `False` if your mFi controller has a self-signed certificate. Defaults to `True`. - +{% configuration %} +host: + description: The IP address or hostname of your mFi controller. + required: true + type: string +port: + description: The port of your mFi controller. + required: false + default: 6080 (6443 for TLS) + type: integer +username: + description: The mFi admin username. + required: true + type: string +password: + description: The mFi admin user's password. + required: true + type: string +ssl: + description: If `true`, use SSL/TLS to contact the mFi controller. + required: false + default: true + type: boolean +verify_ssl: + description: Set this to `false` if your mFi controller has a self-signed certificate. + required: false + default: true + type: boolean +{% endconfiguration %} diff --git a/source/_components/sensor.miflora.markdown b/source/_components/sensor.miflora.markdown index db6452c2c5e..9bf2c573072 100644 --- a/source/_components/sensor.miflora.markdown +++ b/source/_components/sensor.miflora.markdown @@ -13,7 +13,7 @@ ha_release: 0.29 ha_iot_class: "Local Polling" --- -The `miflora` sensor platform allows one to monitor plant soil and air conditions. The [Mi Flora plant sensor](https://xiaomi-mi.com/sockets-and-sensors/xiaomi-huahuacaocao-flower-care-smart-monitor/) is a small Bluetooth Low Energy device that monitors the moisture and conductivity of the soil as well as ambient light and temperature. Since only one BLE device can be polled at a time, the library implements locking to prevent polling more than one device at a time. +The `miflora` sensor platform allows one to monitor plant soil and air conditions. The [Mi Flora plant sensor](https://www.huahuacaocao.com/product) is a small Bluetooth Low Energy device that monitors the moisture and conductivity of the soil as well as ambient light and temperature. Since only one BLE device can be polled at a time, the library implements locking to prevent polling more than one device at a time. # Install Bluetooth Backend Before configuring Home Assistant you need a Bluetooth backend and the MAC address of your sensor. Depending on your operating system, you may have to configure the proper Bluetooth backend for your system: diff --git a/source/_components/sensor.min_max.markdown b/source/_components/sensor.min_max.markdown index be649657ae8..0d389c88664 100644 --- a/source/_components/sensor.min_max.markdown +++ b/source/_components/sensor.min_max.markdown @@ -14,7 +14,6 @@ ha_release: "0.31" ha_qa_scale: internal --- - The `min_max` sensor platform consumes the state from other sensors to determine the minimum, maximum, latest (last) and the mean of the collected states. The sensor will always show you the lowest/highest/latest value which was received from all monitored sensors. If you have spikes in your values, it's recommended to filter/equalize your values with a [statistics sensor](/components/sensor.statistics/) first. This sensor is an alternative to the [template sensor](/components/sensor.template/)'s `value_template:` to get the average of multiple sensors. @@ -44,10 +43,23 @@ sensor: - sensor.office_temperature ``` -Configuration variables: - -- **entity_ids** (*Required*): At least two entities to monitor. The unit of measurement of the first entry will be the one that's used. All entities must use the same unit of measurement. -- **type** (*Optional*): The type of sensor: `min`, `max`, `last` or `mean`. Defaults to `max`. -- **name** (*Optional*): Name of the sensor to use in the frontend. -- **round_digits** (*Optional*): Round mean value to specified number of digits. Defaults to 2. - +{% configuration %} +entity_ids: + description: At least two entities to monitor. The unit of measurement of the first entry will be the one that's used. All entities must use the same unit of measurement. + required: true + type: [list, string] +type: + description: "The type of sensor: `min`, `max`, `last` or `mean`." + required: false + default: max + type: string +name: + description: Name of the sensor to use in the frontend. + required: false + type: string +round_digits: + description: Round mean value to specified number of digits. + required: false + type: integer + default: 2 +{% endconfiguration %} diff --git a/source/_components/sensor.mitemp_bt.markdown b/source/_components/sensor.mitemp_bt.markdown index bf54f976824..d7bdbccaffe 100644 --- a/source/_components/sensor.mitemp_bt.markdown +++ b/source/_components/sensor.mitemp_bt.markdown @@ -19,12 +19,12 @@ The `mitemp_bt` sensor platform allows one to monitor room temperature and humid Depending on the operating system you're running, you have to configure the proper Bluetooth backend on your system: -- On [Hass.io](/hassio/installation/): mitemp_bt will work out of the box. +- On [Hass.io](/hassio/installation/): `mitemp_bt` will work out of the box as long as the host supports Bluetooth (like the Raspberry Pi does). - On a [generic Docker installation](https://www.home-assistant.io/docs/installation/docker/): Works out of the box with `--net=host` and properly configured Bluetooth on the host. - On other Linux systems: - Preferred solution: Install the `bluepy` and `btlewrap` library (via pip). When using a virtual environment, make sure to use install the library in the right one. -    - Fallback solution: Install `btlewrap` library (via pip) and `gatttool` via your package manager. Depending on the distribution, the package name might be: `bluez`, `bluetooth`, `bluez-deprecated` -- Windows and MacOS are currently not supported by the btlewrap library. + - Fallback solution: Install `btlewrap` library (via pip) and `gatttool` via your package manager. Depending on the distribution, the package name might be: `bluez`, `bluetooth` or `bluez-deprecated`. +- Windows and MacOS are currently not supported by the `btlewrap` library. ## {% linkable_title Configuration %} @@ -114,6 +114,8 @@ adapter: 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. +## {% linkable_title Full example %} + A full configuration example could look like the one below: ```yaml diff --git a/source/_components/sensor.mqtt.markdown b/source/_components/sensor.mqtt.markdown index 8b8a0fc07b6..f29e5299776 100644 --- a/source/_components/sensor.mqtt.markdown +++ b/source/_components/sensor.mqtt.markdown @@ -33,7 +33,7 @@ state_topic: required: true type: string name: - description: Name of the MQTT sensor. + description: The name of the MQTT sensor. required: false type: string default: MQTT Sensor @@ -47,7 +47,7 @@ unit_of_measurement: required: false type: string icon: - description: Icon for the sensor. + description: The icon for the sensor. required: false type: icon expire_after: @@ -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 %} @@ -99,18 +128,18 @@ In this section you find some real-life examples of how to use this sensor. ### {% linkable_title JSON attributes configuration %} -The example sensor below shows a configuration example which uses JSON in the state topic to add extra attributes. It also makes use of the availability topic. Attributes can then be extracted in [Templates](/docs/configuration/templating/#attributes). For example, to extract the `ClientName` attribute from the sensor below, use a template similar to: {% raw %}`{{ state_attr('sensor.bs_rssi', 'ClientName') }}`{% endraw %}. +The example sensor below shows a configuration example which uses JSON in the state topic to add extra attributes. It also makes use of the `availability` topic. Attributes can then be extracted in [Templates](/docs/configuration/templating/#attributes). For example, to extract the `ClientName` attribute from the sensor below, use a template similar to: {% raw %}`{{ state_attr('sensor.bs_rssi', 'ClientName') }}`{% endraw %}. {% raw %} ```yaml # Example configuration.yaml entry sensor: - platform: mqtt - name: "BS RSSI" - state_topic: "HUISHS/BunnyShed/NodeHealthJSON" + name: "RSSI" + state_topic: "home/sensor1/infojson" unit_of_measurement: 'dBm' value_template: "{{ value_json.RSSI }}" - availability_topic: "HUISHS/BunnyShed/status" + availability_topic: "home/sensor1/status" payload_available: "online" payload_not_available: "offline" json_attributes: diff --git a/source/_components/sensor.nederlandse_spoorwegen.markdown b/source/_components/sensor.nederlandse_spoorwegen.markdown index bbdee43f633..fca03b35dde 100644 --- a/source/_components/sensor.nederlandse_spoorwegen.markdown +++ b/source/_components/sensor.nederlandse_spoorwegen.markdown @@ -13,7 +13,6 @@ ha_iot_class: "Cloud Polling" ha_release: "0.57" --- - This sensor will provide you with time table information of the [Nederlandse Spoorwegen](https://www.ns.nl/) train service in the Netherlands. You must create an application [here](https://www.ns.nl/ews-aanvraagformulier/) to obtain a `password`. @@ -36,15 +35,37 @@ sensor: via: Zl ``` -Configuration variables: - -- **email** (*Required*): The email address you used to request the API password. -- **password** (*Required*): The API password provided by the Nederlandse Spoorwegen. -- **routes** array (*Required*): List of traveling routes. - - **name** (*Required*): Name of the route. - - **from** (*Required*): The start station. - - **to** (*Required*): Direction of the traveling. - - **via** (*Optional*): Optional other station you wish to visit in between. +{% configuration %} +email: + description: The email address you used to request the API password. + required: true + type: string +password: + description: The API password provided by the Nederlandse Spoorwegen. + required: true + type: string +routes: + description: List of traveling routes. + required: false + type: list + keys: + name: + description: Name of the route. + required: true + type: string + frome: + description: The start station. + required: true + type: string + to: + description: Direction of the traveling. + required: true + type: string + via: + description: Optional other station you wish to visit in between. + required: false + type: string +{% endconfiguration %} The data are coming from [Nederlandse Spoorwegen](https://www.ns.nl/). diff --git a/source/_components/sensor.nest.markdown b/source/_components/sensor.nest.markdown index 99d40e63016..801198eb46b 100644 --- a/source/_components/sensor.nest.markdown +++ b/source/_components/sensor.nest.markdown @@ -13,7 +13,6 @@ ha_release: pre 0.7 ha_iot_class: "Cloud Push" --- - The `nest` sensor platform lets you monitor sensors connected to your [Nest](https://nest.com) devices.

@@ -23,6 +22,7 @@ You must have the [Nest component](/components/nest/) configured to use these se ## {% linkable_title Configuration %} To enable sensors and customize which sensors are setup, you can extend the [Nest component](/components/nest/) configuration in your `configuration.yaml` file with the following settings: + ```yaml # Example configuration.yaml entry nest: @@ -34,9 +34,12 @@ nest: By default all sensors for your available Nest devices will be monitored. Leave `monitored_conditions` blank to disable all sensors for the [Nest component](/components/nest/). -Configuration variables: - -- **monitored_conditions** array (*Optional*): States to monitor. +{% configuration %} +monitored_conditions: + description: States to monitor. + required: false + type: list +{% endconfiguration %} The following conditions are available by device: diff --git a/source/_components/sensor.nest_weather.markdown b/source/_components/sensor.nest_weather.markdown index 971e72cb162..a8ab4c4c460 100644 --- a/source/_components/sensor.nest_weather.markdown +++ b/source/_components/sensor.nest_weather.markdown @@ -16,7 +16,6 @@ ha_iot_class: "Cloud Polling" **This platform is currently not available. It's possible that `nest_weather` will be removed in the future.**

- The `nest` weather sensor platform let you monitor current weather conditions based on the location of your [Nest](https://nest.com) thermostat.

@@ -32,12 +31,20 @@ sensor: - 'weather_temperature' ``` -Configuration variables: - -- **monitored_conditions** array (*Required*): States to monitor. - - 'weather_temperature' - - 'weather_humidity' - - 'weather_condition' - - 'wind_speed' - - 'wind_direction' - +{% configuration %} +monitored_conditions: + description: States to monitor. + required: true + type: list + keys: + weather_temperature: + description: The current temperture + weather_humidity: + description: The current humidity + weather_condition: + description: The weather conditions + wind_speed: + description: The wind speed + wind_direction: + description: The wind direction +{% endconfiguration %} diff --git a/source/_components/sensor.neurio_energy.markdown b/source/_components/sensor.neurio_energy.markdown index 03f9c22b581..ea56901adba 100644 --- a/source/_components/sensor.neurio_energy.markdown +++ b/source/_components/sensor.neurio_energy.markdown @@ -13,7 +13,6 @@ ha_iot_class: "Cloud Polling" ha_release: 0.14 --- - Integrate your [Neurio](http://neur.io/) meter information into Home Assistant. To get an API key and secret, login to your [Neurio account](https://my.neur.io/#settings/applications/register) and register an application. Note the Homepage URL and Callback URL are optional. To enable this sensor in your installation, add the following to your `configuration.yaml` file: @@ -27,12 +26,20 @@ sensor: ``` Two sensors will be created with the following names: -- **Energy Usage**: Current active power usage in Watts. Updated every 10 seconds. +- **Energy Usage**: Current active power usage in Watts. Updated every 10 seconds. - **Daily Energy Usage**: Daily power usage in kWh. Updated every 2.5 minutes. -Configuration variables: - -- **api_key** (*Required*): The API key for your account/application. -- **api_secret** (*Required*): The API secret for your account/application. -- **sensor_id** (*Optional*): The sensor ID will be auto-detected but can be set if you have more then one sensor. - +{% configuration %} +api_key: + description: The API key for your account/application. + required: true + type: string +api_secret: + description: The API secret for your account/application. + required: true + type: string +sensor_id: + description: The sensor ID will be auto-detected but can be set if you have more then one sensor. + required: false + type: string +{% 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.ohmconnect.markdown b/source/_components/sensor.ohmconnect.markdown index 7f564a76d3c..ed30d3f2664 100644 --- a/source/_components/sensor.ohmconnect.markdown +++ b/source/_components/sensor.ohmconnect.markdown @@ -13,22 +13,33 @@ ha_iot_class: "Cloud Polling" ha_release: 0.26 --- - The `ohmconnect` sensor will show you the current [OhmConnect](https://www.ohmconnect.com/) status for the given OhmConnect ID. -> OhmConnect monitors real-time conditions on the electricity grid. When dirty and unsustainable power plants turn on, our users receive a notification to save energy. By saving energy at that time, California does not have to turn on additional power plants and California's energy authorities pay you for that. +OhmConnect monitors real-time conditions on the electricity grid. When dirty and unsustainable power plants turn on, our users receive a notification to save energy. By saving energy at that time, California does not have to turn on additional power plants and California's energy authorities pay you for that. +## {% linkable_title Configuration %} -You can find your OhmConnect ID under "Open Source Projects" on the [settings page](https://login.ohmconnect.com/settings). It's the string after the last `/` in the URL, i.e. for the URL `https://login.ohmconnect.com/verify-ohm-hour/AbCd1e` your ID is `AbCd1e`. +You can find your OhmConnect ID under "Open Source Projects" on the [settings page](https://login.ohmconnect.com/settings). It's the string after the last `/` in the URL, e.g., for the URL `https://login.ohmconnect.com/verify-ohm-hour/AbCd1e` your ID is `AbCd1e`. + +## {% linkable_title Configuration %} + +To enable the OhMConnect sensor, add the following lines to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry sensor: - platform: ohmconnect - id: AbCd1e + id: YOUR_OHMCONNECT_ID ``` -Configuration variables: - -- **id** (*Required*): Your OhmConnect ID which can be found on the settings page. -- **name** (*Optional*): A name to display on the sensor. The default is "OhmConnect Status". +{% configuration %} +id: + description: Your OhmConnect ID. + required: true + type: string +name: + description: A name to display on the sensor. + required: false + default: OhmConnect Status + type: string +{% endconfiguration %} diff --git a/source/_components/sensor.openevse.markdown b/source/_components/sensor.openevse.markdown index df249bd1137..99c3769357f 100644 --- a/source/_components/sensor.openevse.markdown +++ b/source/_components/sensor.openevse.markdown @@ -29,14 +29,28 @@ sensor: - status ``` -Configuration variables: - -- **host** (*Required*): The IP address or hostname of your charger -- **monitored_variables** array (*Required*): Conditions to display on the frontend. - - **status**: The status of the charger (i.e., "Connected", "Charging", etc.) - - **charge_time**: The number of minutes the charging has been charging, or 0 if it is not charging. - - **rtc_temp**: The temperature reported by the real time clock sensor, or 0 if the sensor is not installed. - - **ir_temp**: The temperature reported by the IR remote sensor, or 0 if the sensor is not installed. - - **ambient_temp**: The temperature reported by the ambient sensor, or 0 if the sensor is not installed. - - **usage_session**: The energy usage for the current charging session. - - **usage_total**: The total energy usage for the device. +{% configuration %} +host: + description: The IP address or hostname of your charger. + required: true + type: string +monitored_variables: + description: Conditions to display on the frontend. + required: true + type: list + keys: + status: + description: The status of the charger (i.e., "Connected", "Charging", etc.). + charge_time: + description: The number of minutes the charging has been charging, or 0 if it is not charging. + rtc_temp: + description: The temperature reported by the real time clock sensor, or 0 if the sensor is not installed. + ir_temp: + description: The temperature reported by the IR remote sensor, or 0 if the sensor is not installed. + ambient_temp: + description: The temperature reported by the ambient sensor, or 0 if the sensor is not installed. + usage_session: + description: The energy usage for the current charging session. + usage_total: + description: The total energy usage for the device. +{% endconfiguration %} diff --git a/source/_components/sensor.opentherm_gw.markdown b/source/_components/sensor.opentherm_gw.markdown new file mode 100644 index 00000000000..108b7ac09ed --- /dev/null +++ b/source/_components/sensor.opentherm_gw.markdown @@ -0,0 +1,24 @@ +--- +layout: page +title: "OpenTherm Gateway Sensor" +description: "Expose internal data from the OpenTherm Gateway." +date: 2018-10-10 12:23 +sidebar: true +comments: false +sharing: true +footer: true +logo: opentherm.png +ha_category: Sensor +ha_release: 0.81 +ha_iot_class: "Local Push" +--- + +The `opentherm_gw` sensor platform is used to expose internal data from the [OpenTherm Gateway](http://otgw.tclcode.com/) in Home Assistant. + +# {% linkable_title Configuration %} + +Configuration of this platform is achieved through the [OpenTherm Gateway Hub](/components/opentherm_gw/) configuration. + +

+The OpenTherm protocol is based on polling. The thermostat sends requests to the boiler at specific intervals. As a result, it may take some time for changes to propagate between Home Assistant and the thermostat. +

diff --git a/source/_components/sensor.otp.markdown b/source/_components/sensor.otp.markdown index 2364e986398..5e753501752 100644 --- a/source/_components/sensor.otp.markdown +++ b/source/_components/sensor.otp.markdown @@ -27,10 +27,17 @@ sensor: token: SHARED_SECRET_TOKEN ``` -Configuration variables: - -- **name** (*Optional*): Name of the sensor to use in the frontend. Defaults to `OTP Sensor`. -- **token** (*Required*): The shared secret you use in your OTP generator (e.g., Google Authenticator on your phone) +{% configuration %} +name: + description: Name of the sensor to use in the frontend. + required: false + default: OTP Sensor + type: string +token: + description: The shared secret you use in your OTP generator (e.g., Google Authenticator on your phone). + required: true + type: string +{% endconfiguration %} ## Generating a token @@ -48,6 +55,7 @@ To run in a Docker container: $ docker exec -it home-assistant python -c 'import pyotp; print("Token:", pyotp.random_base32())' Token: IHEDPEBEVA2WVHB7 ``` + Copy and paste the token into your Home Assistant configuration and add it to your OTP generator. Verify that they generate the same code.

diff --git a/source/_components/sensor.pilight.markdown b/source/_components/sensor.pilight.markdown index 78e5b61abf4..13ed0303ffa 100644 --- a/source/_components/sensor.pilight.markdown +++ b/source/_components/sensor.pilight.markdown @@ -13,7 +13,6 @@ ha_release: 0.31 ha_iot_class: depends --- - This `pilight` sensor platform for 433 MHz devices uses a value in the message payload as the sensor value. Unique identifiers (e.g., _uuid_) can be set to distinguish between multiple pilight devices. To use a pilight sensor the pilight Home Assistant hub has to be set up. ## {% linkable_title Configuration %} @@ -29,18 +28,30 @@ sensor: uuid: '0000-b8-27-eb-f447d3' ``` -Configuration variables: - -- **variable** (*Required*): The variable name in the data stream that defines the sensor value. -- **payload** (*Required*): Message payload identifiers. Only if all identifiers are matched the sensor value is set. -- **name** (*Optional*): Name of the sensor. -- **unit_of_measurement** (*Optional*): Defines the units of measurement of the sensor, if any. +{% configuration %} +variable: + description: The variable name in the data stream that defines the sensor value. + required: true + type: string +payload: + description: Message payload identifiers. Only if all identifiers are matched the sensor value is set. + required: true + type: string +name: + description: Name of the sensor. + required: false + default: Pilight Sensor + type: string +unit_of_measurement: + description: Defines the units of measurement of the sensor, if any. + required: false + type: string +{% endconfiguration %} ## {% linkable_title Example: Weather station %} This section shows a real life example how to use values of a weather station. - ```yaml # Example configuration.yaml entry sensor: diff --git a/source/_components/sensor.plex.markdown b/source/_components/sensor.plex.markdown index 34781716237..30646976192 100644 --- a/source/_components/sensor.plex.markdown +++ b/source/_components/sensor.plex.markdown @@ -27,13 +27,41 @@ sensor: - platform: plex ``` -Configuration variables: - -- **host** (*Optional*): The IP address of your Plex server. Defaults to `localhost`. -- **port** (*Optional*): The port of your Plex Server. Defaults to `32400`. -- **name** (*Optional*): Name of the Plex server. Defaults to "Plex". -- **username** (*Optional*): The username for the remote Plex server. -- **password** (*Optional*): The password for your given account on the remote Plex server. -- **server** (*Optional*): The name of your remote Plex server. -- **token** (*Optional*): X-Plex-Token of your remote Plex server. -- **ssl** (*Optional*): Use HTTPS to connect to Plex server, *NOTE* host *must not* be an IP when this option is enabled. Defaults to "False" +{% configuration %} +host: + description: The IP address of your Plex server. + required: false + default: localhost + type: string +port: + description: The port of your Plex Server. + required: false + default: 32400 + type: integer +name: + description: Name of the Plex server. + required: false + default: Plex + type: string +username: + description: The username for the remote Plex server. + required: false + type: string +password: + description: The password for your given account on the remote Plex server. + required: false + type: string +server: + description: The name of your remote Plex server. + required: false + type: string +token: + description: X-Plex-Token of your remote Plex server. + required: false + type: string +ssl: + description: Use HTTPS to connect to Plex server, *NOTE* host *must not* be an IP when this option is enabled. + required: false + default: false + type: boolean +{% endconfiguration %} diff --git a/source/_components/sensor.pocketcasts.markdown b/source/_components/sensor.pocketcasts.markdown index 0a1c0d1fce8..10fcc6003e7 100644 --- a/source/_components/sensor.pocketcasts.markdown +++ b/source/_components/sensor.pocketcasts.markdown @@ -27,7 +27,13 @@ sensor: password: YOUR_PASSWORD ``` -Configuration variables: - -- **username** (*Required*): The username to access the PocketCasts service. -- **password** (*Required*): The password for the given username. +{% configuration %} +username: + description: The username to access the PocketCasts service. + required: true + type: string +password: + description: The password for the given username. + required: true + type: string +{% endconfiguration %} diff --git a/source/_components/sensor.pushbullet.markdown b/source/_components/sensor.pushbullet.markdown index bd8ee0eda5a..8d516949e9e 100644 --- a/source/_components/sensor.pushbullet.markdown +++ b/source/_components/sensor.pushbullet.markdown @@ -13,11 +13,16 @@ ha_release: 0.44 ha_iot_class: "Cloud Polling" --- -The `pushbullet` sensor platform reads messages from [Pushbullet](https://www.pushbullet.com/), a free service to send information between your phones, browsers, and friends. -This sensor platform provides sensors that show the properties of the latest received Pushbullet notification mirror. +The `pushbullet` sensor platform reads messages from [Pushbullet](https://www.pushbullet.com/), a free service to send information between your phones, browsers, and friends. This sensor platform provides sensors that show the properties of the latest received Pushbullet notification mirror. + +## {% linkable_title Setup %} Notification Mirroring allows users to see their Android device's notifications on their computer. It must be first enabled in the app and is currently only available on the Android platform. For more information, please see [this announcement](https://blog.pushbullet.com/2013/11/12/real-time-notification-mirroring-from-android-to-your-computer/) on the Pushbullet Blog. +Go to [https://www.pushbullet.com/#settings/account](https://www.pushbullet.com/#settings/account) to retrieve your API key/access token. + +## {% linkable_title Configuration %} + To enable the Pushbullet sensor in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -29,21 +34,37 @@ sensor: - body ``` -Configuration variables: +{% configuration %} +api_key: + description: Your Pushbullet API key. + required: true + type: string +monitored_conditions: + description: Properties of the push to monitor. + required: false + default: "`body` and `title`" + type: list + keys: + application_name: + description: The application sending the push. + body: + description: Body of the message. + notification_id: + description: ID of the notification. + notification_tag: + description: Tag (if the application sending supports it). + package_name: + description: Name of the sender's package. + receiver_email: + description: The email of the push's target. + sender_email: + description: The sender of the push. + source_device_iden: + description: ID of the sender's device. + title: + description: Title of the push. + type: + description: Type of push. +{% endconfiguration %} -- **api_key** (*Required*): Enter the API key for Pushbullet. Go to [https://www.pushbullet.com/#settings/account](https://www.pushbullet.com/#settings/account) to retrieve your API key/access token. - -- **monitored_conditions** array (*Optional*): Properties of the push to monitor. Defaults to `body` and `title`. - - **application_name**: The application sending the push. - - **body**: Body of the message. - - **notification_id**: ID of the notification. - - **notification_tag**: Tag (if the application sending supports it). - - **package_name**: Name of the sender's package. - - **receiver_email**: The email of the push's target. - - **sender_email**: The sender of the push. - - **source_device_iden**: ID of the sender's device. - - **title**: Title of the push. - - **type**: Type of push. - - All properties will be displayed as attributes. The properties array are just for logging the sensor readings for multiple properties. diff --git a/source/_components/sensor.pvoutput.markdown b/source/_components/sensor.pvoutput.markdown index a61f6614590..36e3f43ab6e 100644 --- a/source/_components/sensor.pvoutput.markdown +++ b/source/_components/sensor.pvoutput.markdown @@ -27,10 +27,21 @@ sensor: scan_interval: 120 ``` -Configuration variables: - -- **api_key** (*Required*): Your API key. A read-only key is fine. -- **system_id** (*Required*): The ID of your station. +{% configuration %} +api_key: + description: Your API key. A read-only key is fine. + required: true + type: string +system_id: + description: The ID of your station. + required: true + type: string +name: + description: Name of the sensor. + required: false + default: PVOutput + type: string +{% endconfiguration %}

It's recommended to set `scan_interval:` according to a value greater than 60 seconds. The service only allows 60 requests per hour but the sensor's default is 30 seconds. diff --git a/source/_components/sensor.raincloud.markdown b/source/_components/sensor.raincloud.markdown index 9435f1a7782..138eb20da16 100644 --- a/source/_components/sensor.raincloud.markdown +++ b/source/_components/sensor.raincloud.markdown @@ -25,10 +25,19 @@ sensor: - platform: raincloud ``` -Configuration variables: - -- **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. - - **battery**: Return the battery level the Melnor RainCloud faucet. - - **next_cycle**: Return the next schedulle watering cycle per zone. - - **rain_delay**: Return the number of days the automatic watering will be delayed due to raining per zone. - - **watering_time**: Return the watering remaining minutes per zone. +{% configuration %} +monitored_conditions: + description: Conditions to display in the frontend. The following conditions can be monitored. + required: false + default: If not specified, all conditions below will be enabled. + type: list + keys: + battery: + description: Return the battery level the Melnor RainCloud faucet. + next_cycle: + description: Return the next schedulle watering cycle per zone. + rain_delay: + description: Return the number of days the automatic watering will be delayed due to raining per zone. + watering_time: + description: Return the watering remaining minutes per zone. +{% endconfiguration %} 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.rflink.markdown b/source/_components/sensor.rflink.markdown index 60306416cb4..7254bbf2f27 100644 --- a/source/_components/sensor.rflink.markdown +++ b/source/_components/sensor.rflink.markdown @@ -34,17 +34,35 @@ sensor: sensor_type: temperature ``` -Configuration variables: - -- **automatic_add** (*Optional*): Automatically add new/unconfigured devices to HA if detected (default: True). -- **devices** (*Optional*): A list of devices with their name to use in the frontend. - -Device configuration variables: - -- **sensor_type** (*Required*): Override automatically detected type of sensor. For list of values see below. -- **name** (*Optional*): Name for the device, defaults to RFLink ID. -- **unit_of_measurement** (*Optional*): Override automatically detected unit of sensor. -- **aliases** (*Optional*): Alternative RFLink ID's this device is known by. +{% configuration %} +automatic_add: + description: Automatically add new/unconfigured devices to Home Assistant if detected. + required: false + default: true + type: boolean +devices: + description: A list of devices with their name to use in the frontend. + required: false + type: list + keys: + name: + description: Name for the device. + required: false + default: RFLink ID + type: string + sensor_type: + description: Override automatically detected type of sensor. For list of values see below. + required: true + type: string + unit_of_measurement: + description: Override automatically detected unit of sensor. + required: false + type: string + aliases: + description: "(deprecated) Alternative RFLink ID's this device is known by." + required: false + type: [list, string] +{% endconfiguration %} Sensor type values: @@ -92,4 +110,3 @@ Sensors are added automatically when the RFLink gateway intercepts a wireless co ### {% linkable_title Device support %} See [device support](/components/rflink/#device-support) - diff --git a/source/_components/sensor.rfxtrx.markdown b/source/_components/sensor.rfxtrx.markdown index 3378d7b03f9..6f12abc4173 100644 --- a/source/_components/sensor.rfxtrx.markdown +++ b/source/_components/sensor.rfxtrx.markdown @@ -56,7 +56,7 @@ sensor: - Temperature ``` -Only these data_type are valid : +Only these data_type are valid: - *Temperature* - *Humidity* @@ -88,12 +88,31 @@ sensor: - Temperature ``` -Configuration variables: - -- **devices** (*Optional*): A list of devices with their name to use in the frontend. -- **automatic_add** (*Optional*): To enable the automatic addition of new lights. -- **data_type** (*Optional*): Which data type the sensor should show -- **fire_event** (*Optional*): Fires an event even if the state is the same as before. Can be used for automations. +{% configuration %} +devices: + description: A list of devices. + required: false + type: list + keys: + name: + description: Override the name to use in the frontend. + required: false + type: string + fire_event: + description: Fires an event even if the state is the same as before. Can be used for automations. + required: false + default: false + type: boolean + data_type: + description: Which data type the sensor should show. + required: false + type: list +automatic_add: + description: To enable the automatic addition of new lights. + required: false + default: false + type: boolean +{% endconfiguration %}

If a device ID consists of only numbers, please make sure to surround it with quotes. diff --git a/source/_components/sensor.rmvtransport.markdown b/source/_components/sensor.rmvtransport.markdown index 6e5abe5de27..0ecb8212fd6 100644 --- a/source/_components/sensor.rmvtransport.markdown +++ b/source/_components/sensor.rmvtransport.markdown @@ -28,39 +28,52 @@ sensor: ``` {% configuration %} -name: - description: Name to use in the frontend. +timeout: + description: Specify the timeout for the API calls. required: false - default: The default is the station name. - type: string -stationId: - description: ID of the stop or station, e.g., 3000010. Visit [the RMV OpenData web site](https://opendata.rmv.de) to find a list of valid IDs. + default: 10 + type: integer +next_departure: + description: One or multiple departure sensors. required: true - type: string -destinations: - description: "One or multiple final stop names, e.g., 'Frankfurt (Main) Hauptbahnhof' or ['Frankfurt (Main) Hauptbahnhof','Frankfurt (Main) Stadion']. This can be used to only consider a particular direction of travel." - required: false - type: [string] -lines: - description: "One or more line numbers, e.g., `'S8'` or `['S8', 'RB33', '41']`" - required: false - default: The default is the station name. - type: [string, integer] -products: - description: "One or more modes of transport `['U-Bahn', 'Tram', 'Bus', 'S-Bahn', 'RB', 'RE', 'EC', 'IC', 'ICE']`." - required: false - default: Defaults to all. - type: [string] -time_offset: - description: Do not display departures leaving sooner than this number of minutes. Useful if you are a couple of minutes away from the stop. - required: false - default: The defaults is 0. - type: integer -max_journeys: - description: Specify the maximal number of journeys. - required: false - default: The default is 5. - type: integer + type: list + keys: + name: + description: Name to use in the frontend. + required: false + default: The default is the station name. + type: string + station: + description: "ID of the stop or station, e.g. `3000010`. Visit [the RMV OpenData web site](https://opendata.rmv.de) to find a list of valid IDs." + required: true + type: string + destinations: + description: "One or multiple final stop names, e.g., 'Frankfurt (Main) Hauptbahnhof' or ['Frankfurt (Main) Hauptbahnhof','Frankfurt (Main) Stadion']. This can be used to only consider a particular direction of travel." + required: false + type: [string] + direction: + description: "Name of a stop or station, e.g., 'Frankfurt (Main) Hauptbahnhof'. This can be used to only consider a particular direction of travel." + required: false + type: [string] + lines: + description: "One or more line numbers, e.g., `'S8'` or `['S8', 'RB33', '41']`" + required: false + type: [string, int] + products: + description: "One or more modes of transport `['U-Bahn', 'Tram', 'Bus', 'S-Bahn', 'RB', 'RE', 'EC', 'IC', 'ICE']`." + required: false + default: ['U-Bahn', 'Tram', 'Bus', 'S-Bahn', 'RB', 'RE', 'EC', 'IC', 'ICE'] + type: [string] + time_offset: + description: Do not display departures leaving sooner than this number of minutes. Useful if you are a couple of minutes away from the stop. + required: false + default: 0 + type: integer + max_journeys: + description: Specify the maximal number of journeys. + required: false + default: 5 + type: integer {% endconfiguration %} ## {% linkable_title Examples %} @@ -73,6 +86,8 @@ The example below shows a full configuration with three sensors that showcase th # Example configuration.yaml entry sensor: - platform: rmvtransport + scan_interval: 120 + timeout: 10 next_departure: - station: 3000010 time_offset: 5 diff --git a/source/_components/sensor.rtorrent.markdown b/source/_components/sensor.rtorrent.markdown new file mode 100644 index 00000000000..03dc91fe300 --- /dev/null +++ b/source/_components/sensor.rtorrent.markdown @@ -0,0 +1,57 @@ +--- +layout: page +title: "rtorrent Sensor" +description: "Instructions on how to integrate rtorrent sensors within Home Assistant." +date: 2018-10-14 05:40 +sidebar: true +comments: false +sharing: true +footer: true +logo: rtorrent.png +ha_category: Downloading +ha_release: 0.81 +ha_iot_class: "Local Polling" +--- + +The `rtorrent` platform allows you to monitor your downloads with [rtorrent](https://rakshasa.github.io/rtorrent/) from within Home Assistant and setup automations based on the information. + +To enable this sensor, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: rtorrent + url: 'http://:@:/RPC2' + monitored_variables: + - 'current_status' + - 'download_speed' + - 'upload_speed' +``` + +This sensor requires the rtorrent XMLRPC API exposed on an HTTP interface. +Note that for security reasons, simply using the SCGI interface (default `localhost:5000`) of rtorrent won't work. +The [official reference](https://github.com/rakshasa/rtorrent/wiki/RPC-Setup-XMLRPC) describes how to set up that HTTP interface. + +Alternatively, the [arch-rtorrentvpn](https://github.com/binhex/arch-rtorrentvpn) container can be used with `url` set to `http://admin:rutorrent@127.0.0.1:9080/RPC2`. + +{% configuration %} +url: + description: The URL to the HTTP endpoint of the rtorrent XMLRPC API. + required: true + type: string +name: + description: The name to use when displaying this rtorrent instance. + required: false + type: string +monitored_variables: + description: Conditions to be monitored. + required: true + type: list + keys: + current_status: + description: The status of your rtorrent daemon. + download_speed: + description: The current download speed. + upload_speed: + description: The current upload speed. +{% endconfiguration %} diff --git a/source/_components/sensor.scrape.markdown b/source/_components/sensor.scrape.markdown index b6da7d08d77..ccc6bebdf5f 100644 --- a/source/_components/sensor.scrape.markdown +++ b/source/_components/sensor.scrape.markdown @@ -26,17 +26,45 @@ sensor: select: ".current-version h1" ``` -Configuration variables: - -- **resource** (*Required*): The URL to the website that contains the value. -- **select** (*Required*): Defines the HTML tag to search for. Check Beautifulsoup's [CSS selectors](https://www.crummy.com/software/BeautifulSoup/bs4/doc/#css-selectors) for details. -- **attribute** (*optional*): Get value of an attribute on the selected tag. -- **name** (*Optional*): Name of the sensor. -- **unit_of_measurement** (*Optional*): Defines the units of measurement of the sensor, if any. -- **authentication** (*Optional*): Type of the HTTP authentication. Either `basic` or `digest`. -- **username** (*Optional*): The username for accessing the website. -- **password** (*Optional*): The password for accessing the website. -- **headers** (*Optional*): Headers to use for the web request +{% configuration %} +resource: + description: The URL to the website that contains the value. + required: true + type: string +select: + description: "Defines the HTML tag to search for. Check Beautifulsoup's [CSS selectors](https://www.crummy.com/software/BeautifulSoup/bs4/doc/#css-selectors) for details." + required: true + type: string +attribute: + description: Get value of an attribute on the selected tag. + required: false + type: string +name: + description: Name of the sensor. + required: false + default: Web scrape + type: string +unit_of_measurement: + description: Defines the units of measurement of the sensor, if any. + required: false + type: string +authentication: + description: Type of the HTTP authentication. Either `basic` or `digest`. + required: false + type: string +username: + description: The username for accessing the website. + required: false + type: string +password: + description: The password for accessing the website. + required: false + type: string +headers: + description: Headers to use for the web request. + required: false + type: string +{% endconfiguration %} ## {% linkable_title Examples %} diff --git a/source/_components/sensor.sma.markdown b/source/_components/sensor.sma.markdown index f3eb1665646..82915cfd8ee 100644 --- a/source/_components/sensor.sma.markdown +++ b/source/_components/sensor.sma.markdown @@ -13,7 +13,6 @@ ha_iot_class: "Local Polling" ha_release: 0.36 --- - The `sma` sensor will poll a [SMA](http://www.sma-solar.com/) [(US)](http://www.sma-america.com/) solar inverter and present the values as sensors (or attributes of sensors) in Home Assistant. ## {% linkable_title Configuration %} @@ -22,33 +21,69 @@ To enable this sensor, add the following lines to your `configuration.yaml` file ```yaml # Example configuration.yaml entry -sensor sma: +sensor: - platform: sma host: IP_ADDRESS_OF_DEVICE password: YOUR_SMA_PASSWORD sensors: current_consumption: [total_consumption] - current_power: - total_yield: + current_power: + total_yield: ``` -Configuration variables: +{% configuration %} +host: + description: The IP address of the SMA WebConnect module. + required: true + type: string +ssl: + description: Enables HTTPS if set to `true`, otherwise with `false` the platform run with HTTP. + required: false + default: false + type: boolean +password: + description: The password of the SMA WebConnect module. + required: true + type: string +group: + description: The user group, which can be either `user` or `installer`. + required: false + default: user + type: string +sensors: + description: A dictionary of sensors that will be added. The value of the dictionary can include sensor names that will be shown as attributes. + required: true + type: list + keys: + current_power: + description: Current power. + current_consumption: + description: Current consumption. + total_power: + description: Total power. + total_consumption: + description: Total consumption. +custom: + description: A dictionary of custom sensor key values and units. + required: false + type: list + keys: + key: + description: The SMA sensor key. + required: true + type: string + unit: + description: Unit. + required: true + type: string + factor: + description: Factor. + required: false + default: 1 + type: float +{% endconfiguration %} -- **host** (*Required*): The IP address of the SMA WebConnect module. -- **password** (*Required*): The password of the SMA WebConnect module. -- **group** (*Optional*): The user group, which can be either `user` (the default) or `installer`. -- **sensors** (*Required*): A dictionary of sensors that will be added. The value of the dictionary can include sensor names that will be shown as attributes. -- **custom** (*Optional*): A dictionary of custom sensor key values and units - -Sensors configuration: - -The sensors can be any one of the following: -- current_power -- current_consumption -- total_power -- total_consumption - -You can create composite sensors, where the sub-sensors will be attributes of the main sensor, e.g. +You can create composite sensors, where the sub-sensors will be attributes of the main sensor. E.g., ```yaml sensors: @@ -58,9 +93,10 @@ You can create composite sensors, where the sub-sensors will be attributes of th The SMA WebConnect module supports a wide variety of sensors, and not all these have been mapped to standard sensors. Custom sensors can be defined by using the `custom` section of the configuration. You will need: A sensor name (no spaces), the SMA sensor key and the unit Example: + ```yaml custom: - yesterday_consumption: + yesterday_consumption: key: 6400_00543A01 unit: kWh factor: 1000 diff --git a/source/_components/sensor.snmp.markdown b/source/_components/sensor.snmp.markdown index 9c78766582b..2f2b4ba5f94 100644 --- a/source/_components/sensor.snmp.markdown +++ b/source/_components/sensor.snmp.markdown @@ -28,7 +28,7 @@ sensor: {% configuration %} host: description: The IP address of your host, eg. `192.168.1.32`. - required: true + required: false type: string default: 'localhost' baseoid: @@ -37,7 +37,7 @@ baseoid: type: string port: description: The SNMP port of your host. - required: Option + required: false type: string default: '161' community: 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.spotcrime.markdown b/source/_components/sensor.spotcrime.markdown index 166a2d5877a..deab6188fab 100644 --- a/source/_components/sensor.spotcrime.markdown +++ b/source/_components/sensor.spotcrime.markdown @@ -25,9 +25,9 @@ To enable this sensor, add the following lines to your `configuration.yaml`. You ```yaml sensor: - platform: spotcrime - name: - radius: - api_key: <"your_api_key_here"> + name: NAME + radius: SEARCH_RADIUS + api_key: YOUR_API_KEY ``` {% configuration %} diff --git a/source/_components/sensor.supervisord.markdown b/source/_components/sensor.supervisord.markdown index fc978f2f2de..bc1c2880b90 100644 --- a/source/_components/sensor.supervisord.markdown +++ b/source/_components/sensor.supervisord.markdown @@ -37,7 +37,10 @@ sensor: - platform: supervisord ``` -Configuration variables: - -- **url** (*Optional*): The URL to track. Default to `http://localhost:9001/RPC2`. - +{% configuration %} +url: + description: The URL to track. + required: false + default: "http://localhost:9001/RPC2" + type: string +{% endconfiguration %} diff --git a/source/_components/sensor.sytadin.markdown b/source/_components/sensor.sytadin.markdown index 4b62e198574..0347c817919 100644 --- a/source/_components/sensor.sytadin.markdown +++ b/source/_components/sensor.sytadin.markdown @@ -25,12 +25,24 @@ sensor: - platform: sytadin ``` -Configuration variables: - -- **name** (*Optional*): Additional name for the sensors. Default to platform name. -- **monitored_conditions** array (*Optional*): Conditions to display in the frontend. Defaults to `traffic_jam`. - - **traffic_jam**: Amount of kilometers in traffic jam (km). - - **mean_velocity**: Mean velocity (km/h). - - **congestion**: Index of congestion (n/a). +{% configuration %} +name: + description: Additional name for the sensors. + required: false + default: Sytadin + type: string +monitored_conditions: + description: Conditions to display in the frontend. + required: false + default: traffic_jam + type: list + keys: + traffic_jam: + description: Amount of kilometers in traffic jam (km). + mean_velocity: + description: Mean velocity (km/h). + congestion: + description: Index of congestion (n/a). +{% endconfiguration %} The data is coming from the [Direction des routes Île-de-France (DiRIF)](http://www.sytadin.fr). diff --git a/source/_components/sensor.template.markdown b/source/_components/sensor.template.markdown index eb5a34a6acb..551b3d3b369 100644 --- a/source/_components/sensor.template.markdown +++ b/source/_components/sensor.template.markdown @@ -16,6 +16,10 @@ ha_qa_scale: internal The `template` platform supports sensors which break out `state_attributes` from other entities. +

+If you do not supply an `entity_id` in the configuration you will need to run the service `homeassistant.update_entity` to update the sensor. +

+ ## {% linkable_title Configuration %} To enable Template Sensors in your installation, add the following to your `configuration.yaml` file: @@ -51,7 +55,7 @@ sensor: required: false type: template entity_id: - description: A list of entity IDs so the sensor only reacts to state changes of these entities. This can be used if the automatic analysis fails to find all relevant entities. + description: The template engine will attempt to work out what entities should trigger an update of the sensor. If this fails to get the correct list (for example if your template loops over the contents of a group) then you can provide a list of entity IDs that will cause the sensor to update. required: false type: string, list unit_of_measurement: @@ -288,7 +292,7 @@ sensor: ### {% linkable_title Working with dates %} -The `template` sensors are not limited to use attributes from other entities but can also work with [Home Assistant's template extensions](/docs/configuration/templating/#home-assistant-template-extensions). +The `template` sensors are not limited to use attributes from other entities but can also work with [Home Assistant's template extensions](/docs/configuration/templating/#home-assistant-template-extensions). This template contains no entities that will trigger an update, so either we need to use `homeassistant.update_entity` or add an `entity_id:` line for an entity that will force an update - here we're using `sun.sun`. {% raw %} ```yaml @@ -297,7 +301,43 @@ sensor: sensors: nonsmoker: value_template: '{{ (( as_timestamp(now()) - as_timestamp(strptime("06.07.2018", "%d.%m.%Y")) ) / 86400 ) | round(2) }}' + entity_id: sun.sun friendly_name: 'Not smoking' unit_of_measurement: "Days" ``` {% endraw %} + +### {% linkable_title Template tracking %} + +This example shows how to add `entity_id` to a template to allow tracking of updates. Fixing an error caused in (81.0) + +{% raw %} +```yaml +sensor: +- platform: template + sensors: + nonsmoker: + entity_id: now.strptime + value_template: '{{ (( as_timestamp(now()) - as_timestamp(strptime("06.07.2018", "%d.%m.%Y")) ) / 86400 ) | round(2) }}' + friendly_name: 'Not smoking' + unit_of_measurement: "Days" +``` +{% endraw %} + +Note: If a template uses more than one sensor they can be listed + + +The alternative to this is to create an `Automation`using the new (81.0) service `homeassistant.update_entity` and list all entity's requiring updates and setting the interval based on time. + +{% raw %} +```yaml +automation: + - alias: 'nonsmoker_update' + trigger: + - platform: time + minutes: '/1' + action: + - service: homeassistant.update_entity + entity_id: sensor.nonsmoker +``` +{% endraw %} diff --git a/source/_components/sensor.thermoworks_smoke.markdown b/source/_components/sensor.thermoworks_smoke.markdown new file mode 100644 index 00000000000..11098e72a8c --- /dev/null +++ b/source/_components/sensor.thermoworks_smoke.markdown @@ -0,0 +1,133 @@ +--- +layout: page +title: "ThermoWorks Smoke Sensor" +description: "Pulls temperature data for a ThermoWorks Smoke Thermometer connected with Smoke Gateway." +date: 2018-08-22 17:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: thermoworks.png +ha_category: Sensor +ha_release: 0.81.0 +ha_iot_class: "Cloud Polling" +--- + +The `thermoworks_smoke` sensor platform pulls data for your [ThermoWorks Smoke Thermometer](https://www.thermoworks.com/Smoke). +This requires a [Smoke WiFi Gateway](https://www.thermoworks.com/Smoke-Gateway) with an internet connection. + +You will need to have previously registered your smoke to your account via the mobile app and provide +the email and password you used to in the configuration for this sensor in order to connect and pull your data. + +## {% linkable_title Configuration %} + +To add the sensors to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: thermoworks_smoke + email: "your email here" + password: !secret thermoworks_pass +``` + +{% configuration %} +email: + description: The email address with the device registered in the thermoworks smoke mobile app. + required: true + type: string +password: + description: The password registered in the thermoworks smoke mobile app. + required: true + type: string +monitored_conditions: + description: The sensors to add. Default is `probe1` and `probe2`. The full list is `probe1`, `probe2`, `probe1_min`, `probe1_max`, `probe2_min`, `probe2_max`. + required: false + type: list +exclude: + description: Device serial numbers to ignore. + required: false + type: list +{% endconfiguration %} + +## {% linkable_title Examples %} + +This section includes some examples of how to use this sensor. + +### {% linkable_title Only Probe 1 %} + +This will show only Probe 1 with min and max data. + +{% raw %} +```yaml +# Example configuration.yaml entry +sensor: + - platform: thermoworks_smoke + email: "your email here" + password: !secret thermoworks_pass + monitored_conditions: + - probe1 + - probe1_min + - probe1_max +``` +{% endraw %} + +### {% linkable_title Ignore a Device %} + +This will exclude a device from creating sensors. You would replace `"00:00:00:00:00:00"` with your device's serial number. + +{% raw %} +```yaml +# Example configuration.yaml entry +sensor: + - platform: thermoworks_smoke + email: "your email here" + password: !secret thermoworks_pass + exclude: + - "00:00:00:00:00:00" +``` +{% endraw %} + +### {% linkable_title Notify when Probe 1 goes above a certain temperature %} + +This will use an automation to trigger a notification when Probe 1 goes above a temperature stored in an input_number variable. +By default, your smoke is named "My Smoke" in the app. If you have changed it you will need to change the sensor name from `my_smoke_probe_1` to `your_name_probe_1`. + +{% raw %} +```yaml +# Example configuration.yaml entry +sensor: + - platform: thermoworks_smoke + email: "your email here" + password: !secret thermoworks_pass + +input_number: + smoke_probe_1_threshold: + name: Smoke Probe 1 Threshold + min: -40 + max: 500 + step: 0.5 + unit_of_measurement: '°F' + icon: mdi:thermometer + +automation: + - alias: Alert when My Smoke Probe 1 is above threshold + trigger: + platform: template + value_template: >- + {% if (states("sensor.my_smoke_probe_1") | float) > (states("input_number.smoke_probe_1_threshold") | float) %} + True + {% else %} + False + {% endif %} + action: + - service: notify.all + data: + message: > + {{- state_attr('sensor.my_smoke_probe_1','friendly_name') }} is above + {{- ' '+states("input_number.smoke_probe_1_threshold") -}} + {{- state_attr('sensor.my_smoke_probe_1','unit_of_measurement') }} at + {{- ' '+states("sensor.my_smoke_probe_1") -}} + {{- state_attr('sensor.my_smoke_probe_1','unit_of_measurement') }} +``` +{% endraw %} diff --git a/source/_components/sensor.tibber.markdown b/source/_components/sensor.tibber.markdown index 5fb39f7999b..2daf9e4a8b1 100644 --- a/source/_components/sensor.tibber.markdown +++ b/source/_components/sensor.tibber.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "Tibber" +title: "Tibber Sensor" description: "Instructions on how to integrate Tibber within Home Assistant." date: 2017-10-03 17:00 sidebar: true @@ -17,8 +17,7 @@ ha_iot_class: "Cloud Polling" The `tibber` sensor provides the current electricity price if you are a [Tibber](https://tibber.com/) customer. If you have a Tibber Pulse it will also show the electricity consumption in real time. -The requirement is that you have setup [Tibber component](/components/tibber/). - +The requirement is that you have setup the [`tibber` component](/components/tibber/). ## {% linkable_title Examples %} diff --git a/source/_components/sensor.torque.markdown b/source/_components/sensor.torque.markdown index 91d45e4d7b9..0718190858d 100644 --- a/source/_components/sensor.torque.markdown +++ b/source/_components/sensor.torque.markdown @@ -46,7 +46,14 @@ sensor: email: your_configured@email.com ``` -Configuration variables: - -- **name** (*Optional*): Vehicle name (your choice). -- **email** (*Required*): Email address configured in Torque application. +{% configuration %} +name: + description: Vehicle name (your choice). + required: false + default: vehicle + type: string +email: + description: Email address configured in Torque application. + required: true + type: string +{% endconfiguration %} diff --git a/source/_components/sensor.tradfri.markdown b/source/_components/sensor.tradfri.markdown index 91827191509..a6aebf4e5b6 100644 --- a/source/_components/sensor.tradfri.markdown +++ b/source/_components/sensor.tradfri.markdown @@ -1,7 +1,7 @@ --- layout: page title: "IKEA Trådfri Sensor" -description: "Access and control your ZigBee-based IKEA Trådfri (Tradfri) Sensors." +description: "Access and control your Zigbee-based IKEA Trådfri (Tradfri) Sensors." date: 2017-04-12 22.04 sidebar: true comments: false diff --git a/source/_components/sensor.trafikverket_weatherstation.markdown b/source/_components/sensor.trafikverket_weatherstation.markdown index 2b55ff6d2a6..7c8888b7806 100644 --- a/source/_components/sensor.trafikverket_weatherstation.markdown +++ b/source/_components/sensor.trafikverket_weatherstation.markdown @@ -29,7 +29,7 @@ To enable this sensor, add the following lines to your `configuration.yaml`. sensor: - platform: trafikverket_weatherstation name: Trafikverket Kungälv - api_key: eXXcbXXXacXXXXc39XX3aXXX4aXX46XX + api_key: YOUR_API_KEY station: Kungälv monitored_conditions: - air_temp @@ -93,7 +93,7 @@ Click [here](https://www.trafikverket.se/trafikinformation/vag/?TrafficType=pers sensor: - platform: trafikverket_weatherstation name: Trafikverket Kungälv - api_key: eXXcbXXXacXXXXc39XX3aXXX4aXX46XX + api_key: YOUR_API_KEY station: Kungälv monitored_conditions: - air_temp @@ -105,7 +105,7 @@ sensor: - wind_speed - platform: trafikverket_weatherstation name: Trafikverket Lanna - api_key: eXXcbXXXacXXXXc39XX3aXXX4aXX46XX + api_key: YOUR_API_KEY station: Lanna monitored_conditions: - air_temp @@ -113,7 +113,7 @@ sensor: - humidity - platform: trafikverket_weatherstation name: Trafikverket Nöbbele - api_key: eXXcbXXXacXXXXc39XX3aXXX4aXX46XX + api_key: YOUR_API_KEY station: Nöbbele monitored_conditions: - air_temp 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.uber.markdown b/source/_components/sensor.uber.markdown index 601de1fb879..cfec12282a1 100644 --- a/source/_components/sensor.uber.markdown +++ b/source/_components/sensor.uber.markdown @@ -16,7 +16,11 @@ ha_release: 0.16 The `uber` sensor will give you time and price estimates for all available [Uber](https://uber.com) products at the given location. The `ATTRIBUTES` are used to provide extra information about products, such as estimated trip duration, distance and vehicle capacity. By default, 2 sensors will be created for each product at the given `start` location, one for pickup time and one for current price. The sensor is powered by the official Uber [API](https://developer.uber.com/). -You must create an application [here](https://developer.uber.com/dashboard/create) to obtain a `server_token`. +## {% linkable_title Setup %} + +You must [create an application](https://developer.uber.com/dashboard/create) in the [Uber developer Dashboard](https://developer.uber.com) to obtain a `server_token`. + +## {% linkable_title Configuration %} To enable this sensor, add the following lines to your `configuration.yaml` file: @@ -24,19 +28,39 @@ To enable this sensor, add the following lines to your `configuration.yaml` file # Example configuration.yaml entry sensor: - platform: uber - server_token: 'BeAPPTDsWZSHLf7fd9OWjZkIezweRw18Q8NltY27' + server_token: YOUR_UBER_SERVER_TOKEN ``` -Configuration variables: +{% configuration %} +server_token: + description: The Server API token. + required: true + type: string +start_latitude: + description: The starting latitude for a trip. + required: false + default: to the latitude in your `configuration.yaml` file. + type: float +start_longitude: + description: The starting longitude for a trip. + required: false + default: to the longitude in your `configuration.yaml` file. + type: float +end_latitude: + description: The ending latitude for a trip. While `end_latitude` is optional, it is strongly recommended to provide an `end_latitude`/`end_longitude` when possible as you will get more accurate price and time estimates. + required: false + type: float +end_longitude: + description: The ending longitude for a trip. While `end_longitude` is optional, it is strongly recommended to provide an `end_latitude`/`end_longitude` when possible as you will get more accurate price and time estimates. + required: false + type: float +product_ids: + description: A list of Uber product UUIDs. If provided, sensors will only be created for the given product IDs. Please note that product IDs are region and some times even more specific geographies based. The easiest way to find a UUID is to click on a sensor in the Home Assistant frontend and look for "Product ID" in the attributes. + required: false + type: list +{% endconfiguration %} -- **server_token** (*Required*): A server token obtained from [developer.uber.com](https://developer.uber.com) after [creating an app](https://developer.uber.com/dashboard/create). -- **start_latitude** (*Optional*): The starting latitude for a trip. Defaults to the latitude in your `configuration.yaml` file. -- **start_longitude** (*Optional*): The starting longitude for a trip. Defaults to the longitude in your `configuration.yaml` file. -- **end_latitude** (*Optional*): The ending latitude for a trip. While `end_latitude` is optional, it is strongly recommended to provide an `end_latitude`/`end_longitude` when possible as you will get more accurate price and time estimates. -- **end_longitude** (*Optional*): The ending longitude for a trip. While `end_longitude` is optional, it is strongly recommended to provide an `end_latitude`/`end_longitude` when possible as you will get more accurate price and time estimates. -- **product_ids** (*Options*): A list of Uber product UUIDs. If provided, sensors will only be created for the given product IDs. Please note that product IDs are region and some times even more specific geographies based. The easiest way to find a UUID is to click on a sensor in the Home Assistant frontend and look for "Product ID" in the attributes. - -A full configuration entry could look like the sample below: +A full configuration entry could look like the sample below: ```yaml # Example configuration.yaml entry diff --git a/source/_components/sensor.uk_transport.markdown b/source/_components/sensor.uk_transport.markdown index 17bebc15dad..b08b42895f9 100644 --- a/source/_components/sensor.uk_transport.markdown +++ b/source/_components/sensor.uk_transport.markdown @@ -29,22 +29,41 @@ To add a single train departure sensor add the following to your `configuration. # Example configuration.yaml entry for a single sensor sensor: - platform: uk_transport - app_id: abc123 - app_key: efg456 + app_id: YOUR_APP_ID + app_key: YOUR_APP_KEY queries: - mode: train origin: MAL destination: WAT ``` -Configuration variables: - -- **app_id** (*Required*): Your application id -- **app_key** (*Required*): Your application key -- **queries** array (*Required*): At least one entry required. -- **mode** (*Required*): One of `bus` or `train`. -- **origin** (*Required*): Specify the three character long origin station code. -- **destination** (*Required*): Specify the three character long destination station code. +{% configuration %} +app_id: + description: Your application ID. + required: true + type: string +app_key: + description: Your application Key. + required: true + type: string +queries: + description: At least one entry required. + required: true + type: list + keys: + mode: + description: One of `bus` or `train`. + required: true + type: list + origin: + description: Specify the three character long origin station code. + required: true + type: string + destination: + description: Specify the three character long destination station code. + required: true + type: string +{% endconfiguration %} A large amount of information about upcoming departures is available within the attributes of the sensor. The example above creates a sensor with ID `sensor.next_train_to_wat` with the attribute `next_trains` which is a list of the next 25 departing trains. @@ -97,8 +116,8 @@ The `destination` must be a valid location in the "direction" field returned by # Example configuration.yaml entry for multiple sensors sensor: - platform: uk_transport - app_id: abc123 - app_key: efg456 + app_id: YOUR_APP_ID + app_key: YOUR_APP_KEY queries: - mode: bus origin: 340000368SHE diff --git a/source/_components/sensor.upnp.markdown b/source/_components/sensor.upnp.markdown index 027d76d9ede..c38417a1b0e 100644 --- a/source/_components/sensor.upnp.markdown +++ b/source/_components/sensor.upnp.markdown @@ -13,8 +13,6 @@ ha_release: 0.48 ha_iot_class: "Local Polling" --- - The `upnp` sensor platform allows one to get the network statistics from your router such as bytes in/out and packets in/out. To use your UPNP sensor in your installation, you need to set up the [`upnp`](/components/upnp/) component. - 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.wsdot.markdown b/source/_components/sensor.wsdot.markdown index 268fd900b4f..553eea2ba09 100644 --- a/source/_components/sensor.wsdot.markdown +++ b/source/_components/sensor.wsdot.markdown @@ -23,7 +23,7 @@ Once you have the code, create `wsdot` sensors by editing your `configuration.ya # Example configuration.yaml entry sensor: - platform: wsdot - api_key: XXXXXXXXXXXXXXXXXXXXXXX + api_key: YOUR_API_KEY travel_time: - id: 95 name: I-90 Eastbound HOV diff --git a/source/_components/sensor.wunderground.markdown b/source/_components/sensor.wunderground.markdown index b5a2d5bec98..954384eb9fe 100644 --- a/source/_components/sensor.wunderground.markdown +++ b/source/_components/sensor.wunderground.markdown @@ -27,7 +27,7 @@ To add Wunderground to your installation, add the following to your `configurati # Example configuration.yaml entry sensor: - platform: wunderground - api_key: your_api_key + api_key: YOUR_API_KEY monitored_conditions: - alerts - dewpoint_c @@ -207,7 +207,7 @@ in the `_1h_` part of the sensor name with `1` to `36`. e.g., `weather_24h` will ```yaml sensor: - platform: wunderground - api_key: your_api_key + api_key: YOUR_API_KEY monitored_conditions: - weather_1d_metric - weather_1n_metric @@ -239,7 +239,7 @@ group: ```yaml sensor: - platform: wunderground - api_key: your_api_key + api_key: YOUR_API_KEY monitored_conditions: - temp_high_record_c - temp_high_1d_c diff --git a/source/_components/sensor.yahoo_finance.markdown b/source/_components/sensor.yahoo_finance.markdown index 2d6c34297d3..2317cdc1c27 100644 --- a/source/_components/sensor.yahoo_finance.markdown +++ b/source/_components/sensor.yahoo_finance.markdown @@ -15,7 +15,7 @@ ha_release: 0.29 ---

- This sensor doesn't work anymore as [Yahoo!](https://yahoo.uservoice.com/forums/382977-finance/suggestions/32103877-yahoo-stock-quote-api-please-bring-back) decommissioned the service in early November 2017. A repleacement is the [`alpha_vantage` sensor](/components/sensor.alpha_vantage/). + This sensor doesn't work anymore as [Yahoo!](https://yahoo.uservoice.com/forums/382977-finance/suggestions/32103877-yahoo-stock-quote-api-please-bring-back) decommissioned the service in early November 2017. A replacement is the [`alpha_vantage` sensor](/components/sensor.alpha_vantage/).

The `yahoo_finance` platform uses [Yahoo Finance](https://finance.yahoo.com/) to monitor the stock market. @@ -56,4 +56,3 @@ sensor: - RHT - GOOGL ``` - diff --git a/source/_components/sensor.zestimate.markdown b/source/_components/sensor.zestimate.markdown index 1d24b3f0dfd..aa74b086daf 100644 --- a/source/_components/sensor.zestimate.markdown +++ b/source/_components/sensor.zestimate.markdown @@ -13,11 +13,13 @@ ha_release: 0.65 ha_iot_class: "Cloud Polling" --- -The `zestimate` sensor allows one to track the Zestimate value of properties using the [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm). +The `zestimate` sensor allows one to track the Zestimate® value of properties using the [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm). According to Zillow's website, a Zestimate® home valuation is Zillow's estimated market value. It is not an appraisal. Use it as a starting point to determine a home's value. The Zestimate® is provided by [Zillow](https://www.zillow.com), a website primarily for listing homes to buy/sell/rent in the United States. + +This component adds one entity per zpid specified, named `sensor.zestimate` with numbers appended if you choose to track more than one Zestimate. ## {% linkable_title Configuration %} -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. +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. If you're the owner of this property, it's recommended to claim the listing and update the property information to help the information be as accurate as possible. 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/) @@ -34,11 +36,11 @@ sensor: {% configuration %} api_key: - description: The API key to access the service. + description: The API key to access the service. Obtain yours using the [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm) required: true type: string zpid: - description: Property IDs to track in the front end. + description: Property IDs to track in the front end. Can be found in it's Zillow URL as described above. Include only the numbers, do not include the "_zpid" required: true type: list {% endconfiguration %} @@ -56,3 +58,7 @@ These attributes are available: - Address - Currency - Amount + +Example screenshot + + diff --git a/source/_components/sensor.zha.markdown b/source/_components/sensor.zha.markdown index 03c0687d278..993031476f5 100644 --- a/source/_components/sensor.zha.markdown +++ b/source/_components/sensor.zha.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "ZigBee Home Automation Sensor" -description: "Instructions on how to setup ZigBee Home Automation sensors within Home Assistant." +title: "Zigbee Home Automation Sensor" +description: "Instructions on how to setup Zigbee Home Automation sensors within Home Assistant." date: 2017-02-22 00:00 sidebar: true comments: false @@ -12,5 +12,5 @@ ha_category: Sensor ha_iot_class: "Local Polling" --- -To get your ZigBee sensors working with Home Assistant, follow the instructions for the general [ZigBee Home Automation Component](/components/zha/). +To get your Zigbee sensors working with Home Assistant, follow the instructions for the general [Zigbee Home Automation Component](/components/zha/). diff --git a/source/_components/sensor.zigbee.markdown b/source/_components/sensor.zigbee.markdown index ad1aa6a0388..4eabd0b71d2 100644 --- a/source/_components/sensor.zigbee.markdown +++ b/source/_components/sensor.zigbee.markdown @@ -1,7 +1,7 @@ --- layout: page -title: ZigBee Sensor -description: "Instructions on how to set up ZigBee sensors within Home Assistant." +title: Zigbee Sensor +description: "Instructions on how to set up Zigbee sensors within Home Assistant." date: 2016-01-28 10:08 sidebar: true comments: false @@ -13,7 +13,7 @@ ha_release: 0.12 ha_iot_class: "Local Polling" --- -There are two types of [ZigBee](http://www.zigbee.org/) sensor available to Home Assistant: +There are two types of [Zigbee](http://www.zigbee.org/) sensor available to Home Assistant: - [Analog input pin](#analog-input-pin) - [Temperature sensor](#temperature-sensor) (XBee Pro) @@ -24,7 +24,7 @@ To configure an analog input pin sensor, add the following to your `configuratio # Example configuration.yaml entry sensor: - platform: zigbee - name: My Analog ZigBee Input + name: My Analog Zigbee Input type: analog pin: 0 address: 0013A2004233D138 @@ -44,7 +44,7 @@ pin: required: false type: integer address: - description: The long 64-bit address of the remote ZigBee device whose pin you would like to sample. Do not include this variable if you want to sample the local ZigBee device's pins. + description: The long 64-bit address of the remote Zigbee device whose pin you would like to sample. Do not include this variable if you want to sample the local Zigbee device's pins. required: false type: string max_volts: @@ -58,7 +58,7 @@ max_volts: ### {% linkable_title Analog Input Pin %} -The analog input pins on an XBee (non-Pro) will read 0V to 1.2 V. This is translated by the [xbee-helper](https://github.com/flyte/xbee-helper) library into a percentage. The maximum voltage your ZigBee device will read is configurable using the `max_volts` configuration variable. +The analog input pins on an XBee (non-Pro) will read 0V to 1.2 V. This is translated by the [xbee-helper](https://github.com/flyte/xbee-helper) library into a percentage. The maximum voltage your Zigbee device will read is configurable using the `max_volts` configuration variable. To configure an analog input pin sensor, add the following to your `configuration.yaml` file: @@ -66,7 +66,7 @@ To configure an analog input pin sensor, add the following to your `configuratio ## Example configuration.yaml entry sensor: - platform: zigbee - name: My Analog ZigBee Input + name: My Analog Zigbee Input type: analog pin: 0 address: 0013A2004233D138 @@ -84,7 +84,7 @@ To configure a temperature sensor device, add the following to your `configurati # Example configuration.yaml entry sensor: - platform: zigbee - name: Living Room Temperature ZigBee + name: Living Room Temperature Zigbee type: temperature address: 0013A20050E752C5 ``` diff --git a/source/_components/sensor.zoneminder.markdown b/source/_components/sensor.zoneminder.markdown index 654c6e57e71..b1c6f6af8a4 100644 --- a/source/_components/sensor.zoneminder.markdown +++ b/source/_components/sensor.zoneminder.markdown @@ -13,7 +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. 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 846fd2e33ef..79f6f32d8dc 100644 --- a/source/_components/smappee.markdown +++ b/source/_components/smappee.markdown @@ -59,11 +59,11 @@ host_password: required: false type: string client_id: - description: Your Smappee API client_id. + description: Your Smappee API client ID. required: false type: string client_secret: - description: Your Smappee API client_secret. + description: Your Smappee API client secret. required: false type: string username: diff --git a/source/_components/smhi.markdown b/source/_components/smhi.markdown new file mode 100644 index 00000000000..e2a7d2dd440 --- /dev/null +++ b/source/_components/smhi.markdown @@ -0,0 +1,54 @@ +--- +layout: page +title: "SMHI" +description: "Instructions on how to integrate SMHI forecasts within Home Assistant." +date: 2018-09-23 20:00 +sidebar: true +comments: false +sharing: true +footer: true +featured: true +logo: smhi.png +ha_category: Hub +ha_release: 0.81 +ha_iot_class: "Cloud Polling" +--- + +The `smhi` component adds support for the [SMHI.se](https://www.smhi.se/) web service as a source for meteorological data for your location. + +## {% linkable_title Configuration %} + +The SMHI weather service is free under the Creative Commons Attribution 4.0, international license. Weather data will be pulled once every 30 minutes. + +To add SMHI weather forecast to your installation, go to the Integrations page inside the config panel and add a location by providing the longitude and latitude of your location. + +If the location is configured in Home Assistant, it will be selected as the default location. After that, you can add additional locations. + +

+You can only add locations through the integrations page, not in configuration files. +

+ +

+Only location close to Sweden can be added. See [SMHI.se area](http://opendata.smhi.se/apidocs/metfcst/geographic_area.html) for more details what locations are supported. +

+ + +{% configuration %} +latitude: + description: Manually specify latitude. + required: false + type: number + default: Provided by Home Assistant configuration +longitude: + description: Manually specify longitude. + required: false + type: number + default: Provided by Home Assistant configuration +name: + description: Name to use in the frontend. + required: false + type: string + default: Home +{% endconfiguration %} + +Details about the API are available in the [SMHI API documentation](http://opendata.smhi.se/apidocs/metfcst/index.html). diff --git a/source/_components/statsd.markdown b/source/_components/statsd.markdown index 4b0b5249b2f..dedf0772f65 100644 --- a/source/_components/statsd.markdown +++ b/source/_components/statsd.markdown @@ -21,14 +21,37 @@ To use the `statsd` component in your installation, add the following to your `c statsd: ``` -Configuration variables: - -- **host** (*Optional*): IP address of your StatsD host, eg. 192.168.1.10. Defaults to `localhost`. -- **port** (*Optional*): Port to use. Defaults to 8125. -- **prefix** (*Optional*): Prefix to use. Defaults to `hass`. -- **rate** (*Optional*): The sample rate. Defaults to 1. -- **log_attributes** (*Optional*): Log state and attribute changes. This changes the default stats path. -- **value_mapping** (*Optional*): Map non-numerical values to numerical ones. +{% configuration %} +host: + description: "IP address of your StatsD host, e.g., 192.168.1.10." + required: true + 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. + required: false + default: 1 + type: integer +log_attributes: + description: Log state and attribute changes. This changes the default stats path. + required: false + default: false + type: boolean +value_mapping: + description: Map non-numerical values to numerical ones. + required: false + type: list +{% endconfiguration %} Full example: diff --git a/source/_components/switch.anel_pwrctrl.markdown b/source/_components/switch.anel_pwrctrl.markdown index c753805477c..9b851f5dfbe 100644 --- a/source/_components/switch.anel_pwrctrl.markdown +++ b/source/_components/switch.anel_pwrctrl.markdown @@ -32,12 +32,27 @@ switch: password: PASSWORD ``` -Configuration variables: - -- **host** (*Optional*): The IP address or hostname of your PwrCtrl device. -- **port_recv** (*Required*): The port to receive data from the device. -- **port_send** (*Required*): The port to send data to the device. -- **username** (*Required*): The username for your device. -- **password** (*Required*): The password for your device. +{% configuration %} +host: + description: The IP address or hostname of your PwrCtrl device. + required: false + type: string +port_recv: + description: The port to receive data from the device. + required: true + type: integer +port_send: + description: The port to send data to the device. + required: true + type: integer +username: + description: The username for your device. + required: true + type: string +password: + description: The password for your device. + required: true + type: string +{% endconfiguration %}

If no **host** is given the platform will try to auto-discover all devices on the network, that are listening on the given **port_recv**.

diff --git a/source/_components/switch.broadlink.markdown b/source/_components/switch.broadlink.markdown index 040a06c726b..985e4d80b2d 100644 --- a/source/_components/switch.broadlink.markdown +++ b/source/_components/switch.broadlink.markdown @@ -13,7 +13,7 @@ ha_release: 0.35 ha_iot_class: "Local Polling" --- -This `Broadlink` switch platform allow to you control Broadlink [devices](http://www.ibroadlink.com/rm/). +This `Broadlink` switch platform allow to you control Broadlink [devices](http://www.ibroadlink.com/). To enable it, add the following lines to your `configuration.yaml`: @@ -25,26 +25,73 @@ switch: mac: 'MAC_ADDRESS' ``` -Configuration variables: - -- **host** (*Required*): The hostname/IP address to connect to. -- **mac** (*Required*): Device MAC address. -- **timeout** (*Optional*): Timeout in seconds for the connection to the device. -- **friendly_name** (*Optional*): The name used to display the switch in the frontend. -- **type** (*Required for some models*): Switch type. Choose one from: `rm`, `rm2`, `rm_mini`, `rm_pro_phicomm`, `rm2_home_plus`, `rm2_home_plus_gdt`, `rm2_pro_plus`, `rm2_pro_plus2`, `rm2_pro_plus_bl`, `rm_mini_shate`, `sp1`, `sp2`, `honeywell_sp2`, `sp3`, `spmini2`, `spminiplus` or `mp1`. `SC1` devices can be registered as `sp2`. -- **switches** (*Optional*): The array that contains all switches. - - **identifier** (*Required*): Name of the command switch as slug. Multiple entries are possible. - - **friendly_name** (*Optional*): The name used to display the switch in the frontend. - - **command_on** (*Required*): Base64 encoded packet from RM device to take for on. - - **command_off** (*Required*): Base64 encoded packet from RM device to take for off. -- **slots** (*Optional*): Friendly names of 4 slots of MP1 power strip. If not configured, slot name will be `switch's friendly_name + 'slot {slot_index}'`. e.g 'MP1 slot 1' - - **slot_1** (*Optional*) - - **slot_2** (*Optional*) - - **slot_3** (*Optional*) - - **slot_4** (*Optional*) - -Information about how to install on Windows can be found [here](/components/sensor.broadlink/#microsoft-windows-installation) +{% configuration %} +host: + description: The hostname/IP address to connect to. + required: true + type: string +mac: + description: Device MAC address. + required: true + type: string +timeout: + description: Timeout in seconds for the connection to the device. + required: false + type: integer +friendly_name: + description: The name used to display the switch in the frontend. + required: false + type: string +type: + description: "Switch type. Choose one from: `rm`, `rm2`, `rm_mini`, `rm_pro_phicomm`, `rm2_home_plus`, `rm2_home_plus_gdt`, `rm2_pro_plus`, `rm2_pro_plus2`, `rm2_pro_plus_bl`, `rm_mini_shate`, `sp1`, `sp2`, `honeywell_sp2`, `sp3`, `spmini2`, `spminiplus` or `mp1`. `SC1` devices can be registered as `sp2`." + required: true/false + type: string +switches: + description: The array that contains all switches. + required: false + type: array + keys: + identifier: + description: Name of the command switch as slug. Multiple entries are possible. + required: true + type: string + keys: + command_on: + description: Base64 encoded packet from RM device to take for on. + required: true + type: string + command_off: + description: Base64 encoded packet from RM device to take for off. + required: true + type: string + friendly_name: + description: The name used to display the switch in the frontend. + required: false + type: string +slots: + description: Friendly names of 4 slots of MP1 power strip. If not configured, slot name will be `switch's friendly_name + 'slot {slot_index}'`. e.g 'MP1 slot 1' + required: false + type: array + keys: + slot_1: + description: Friendly names of slot 1 + required: false + type: string + slot_2: + description: Friendly names of slot 2 + required: false + type: string + slot_3: + description: Friendly names of slot 3 + required: false + type: string + slot_4: + description: Friendly names of slot 4 + required: false + type: string +{% endconfiguration %} +Information about how to install on Windows can be found [here](/components/sensor.broadlink/#microsoft-windows-installation). ### {% linkable_title How to obtain IR/RF packets? %} diff --git a/source/_components/switch.digitalloggers.markdown b/source/_components/switch.digitalloggers.markdown index 01fc3f88190..7d28962def6 100644 --- a/source/_components/switch.digitalloggers.markdown +++ b/source/_components/switch.digitalloggers.markdown @@ -27,16 +27,37 @@ switch: host: 192.168.1.43 ``` -Configuration variables: - -- **host** (*Required*): The IP address or FQDN of your DIN III relay, eg. `192.168.1.32` or `myrelay.example.com`. -- **name** (*Optional*): The name to use when controlling this relay. Default: `DINRelay`. -- **username** (*Optional*): Credentials for controlling this relay. Default: `admin`. -- **password** (*Optional*): Credentials for controlling this relay. Default: `admin`. -- **timeout** (*Optional*): Default timeout as set by the underlying python-dlipower library is `20` seconds. Override it if you need to. Valid range is 1 to 600. -- **cycletime** (*Optional*): This is the delay enforced by the library when you send multiple commands to the same device. The default relay cycle time is `2` seconds. Override it if you need to. Valid range is 1 to 600. A delay is a recommendation of Digital Loggers: ->Many loads draw more power when they are initially switched on. Sequencing prevents circuit overloads when loads devices are attached to a single circuit. - +{% configuration %} +host: + description: The IP address or FQDN of your DIN III relay, e.g., `192.168.1.32` or `myrelay.example.com`. + required: true + type: string +name: + description: The name to use when controlling this relay. + required: false + default: DINRelay + type: string +username: + description: Username for controlling this relay. + required: false + default: admin + type: string +password: + description: Password for controlling this relay. + required: false + default: admin + type: string +timeout: + description: Override the timeout in seconds if you need to, valid range is 1 to 600. + required: false + default: 20 + type: integer +cycletime: + description: "This is the delay enforced by the library when you send multiple commands to the same device. Override it if you need to. Valid range is 1 to 600. A delay is a recommendation of Digital Loggers: Many loads draw more power when they are initially switched on. Sequencing prevents circuit overloads when loads devices are attached to a single circuit." + required: false + default: 2 + type: integer +{% endconfiguration %} Your relays will be available in the form `switch.fantasticrelaydevice_individualrelayname` diff --git a/source/_components/switch.dlink.markdown b/source/_components/switch.dlink.markdown index 18eb457fef4..9511792504e 100644 --- a/source/_components/switch.dlink.markdown +++ b/source/_components/switch.dlink.markdown @@ -34,7 +34,7 @@ switch: {% configuration %} host: - description: "The IP address of your D-Link plug, e.g., http://192.168.1.32" + description: "The IP address of your D-Link plug, e.g., 192.168.1.32." required: true type: string name: diff --git a/source/_components/switch.edimax.markdown b/source/_components/switch.edimax.markdown index 06f58328a49..7a6611d77ba 100644 --- a/source/_components/switch.edimax.markdown +++ b/source/_components/switch.edimax.markdown @@ -24,10 +24,24 @@ switch: host: 192.168.1.32 ``` -Configuration variables: - -- **host** (*Required*): The IP address of your Edimax switch, eg. `192.168.1.32`. -- **username** (*Optional*): Your username for the Edimax switch. Defaults to `admin`. -- **password** (*Optional*): Your password for the Edimax switch. Defaults to `1234`. -- **name** (*Optional*): The name to use when displaying this switch. - +{% configuration %} +host: + description: "The IP address of your Edimax switch, e.g., `192.168.1.32`." + required: true + type: string +username: + description: Your username for the Edimax switch. + required: false + default: admin + type: string +password: + description: Your password for the Edimax switch. + required: false + default: 1234 + type: string +name: + description: The name to use when displaying this switch. + required: false + default: Edimax Smart Plug + type: string +{% endconfiguration %} diff --git a/source/_components/switch.elkm1.markdown b/source/_components/switch.elkm1.markdown new file mode 100644 index 00000000000..8ef52a09af6 --- /dev/null +++ b/source/_components/switch.elkm1.markdown @@ -0,0 +1,22 @@ +--- +layout: page +title: "Elk-M1 Switch" +description: "Instructions on how to integrate Elk-M1 outputs (relays)." +date: 2018-10-07 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: elkproducts.png +ha_release: 0.81 +ha_category: Switch +ha_iot_class: "Local Push" +--- + +The `elkm1` platform allows you to control your [Elk-M1](https://www.elkproducts.com/m1_controls.html). + +Elk-M1 outputs are represented as `switch` entities. + +

+Full configuration details can be found on the main [Elk-M1 component](/components/elkm1/) page. +

diff --git a/source/_components/switch.flux.markdown b/source/_components/switch.flux.markdown index cb9668f74c2..dccaf1ba957 100644 --- a/source/_components/switch.flux.markdown +++ b/source/_components/switch.flux.markdown @@ -34,20 +34,63 @@ switch: - light.lamp ``` -Configuration variables: - -- **lights** (*Required*) array: List of light entities. -- **name** (*Optional*): The name to use when displaying this switch. -- **start_time** (*Optional*): The start time. Default to sunrise. -- **stop_time** (*Optional*): The stop time. Defaults to dusk. -- **start_colortemp** (*Optional*): The color temperature at the start. Defaults to `4000`. -- **sunset_colortemp** (*Optional*): The sun set color temperature. Defaults to `3000`. -- **stop_colortemp** (*Optional*): The color temperature at the end. Defaults to `1900`. -- **brightness** (*Optional*): The brightness of the lights. Calculated with `RGB_to_xy` by default. -- **disable_brightness_adjust** (*Optional*): If true, brightness will not be adjusted besides color temperature. Defaults to False. -- **mode** (*Optional*): Select how color temperature is passed to lights. Valid values are `xy`, `mired` and `rgb`. Defaults to `xy`. -- **transition** (*Optional*): Transition time for the light changes (high values may not be supported by all light models). Defaults to 30. -- **interval** (*Optional*): Frequency at which the lights should be updated. Defaults to 30. +{% configuration %} +lights: + description: array list of light entities. + required: true + type: list +name: + description: The name to use when displaying this switch. + required: false + default: Flux + type: string +start_time: + description: The start time. + required: false + type: time +stop_time: + description: The stop time. + required: false + type: time +start_colortemp: + description: The color temperature at the start. + required: false + default: 4000 + type: integer +sunset_colortemp: + description: The sun set color temperature. + required: false + default: 3000 + type: integer +stop_colortemp: + description: The color temperature at the end. + required: false + default: 1900 + type: integer +brightness: + description: The brightness of the lights. + required: false + type: integer +disable_brightness_adjust: + description: If true, brightness will not be adjusted besides color temperature. + required: false + type: boolean +mode: + description: Select how color temperature is passed to lights. Valid values are `xy`, `mired` and `rgb`. + required: false + default: xy + type: string +transition: + description: Transition time in seconds for the light changes (high values may not be supported by all light models). + required: false + default: 30 + type: integer +interval: + description: Frequency in seconds at which the lights should be updated. + required: false + default: 30 + type: integer +{% endconfiguration %} Full example: @@ -70,4 +113,3 @@ switch: transition: 30 interval: 60 ``` - diff --git a/source/_components/switch.gc100.markdown b/source/_components/switch.gc100.markdown index 59649d72d15..795fd596626 100644 --- a/source/_components/switch.gc100.markdown +++ b/source/_components/switch.gc100.markdown @@ -25,7 +25,9 @@ switch: - '4:2': Sprinkler ``` -Configuration variables: - -- **ports** (*Required*): A list of module-address to name mappings in the format 'x:y': name, where x is module #, y is address. - +{% configuration %} +ports: + description: "A list of module-address to name mappings in the format 'x:y': name, where x is module #, y is address." + required: true + type: list +{% endconfiguration %} diff --git a/source/_components/switch.knx.markdown b/source/_components/switch.knx.markdown index 92c04b6e4c2..47e9e720d4c 100644 --- a/source/_components/switch.knx.markdown +++ b/source/_components/switch.knx.markdown @@ -29,11 +29,21 @@ switch: address: '1/1/6' ``` -Configuration variables: - -* **address** (*Required*): KNX group address for switching the switch on/off. -* **name** (*Optional*): A name for this device used within Home Assistant. -* **state_address** (*Optional*): separate KNX group address for retrieving the switch state. +{% configuration %} +address: + description: KNX group address for switching the switch on/off. + required: true + type: string +name: + description: A name for this device used within Home Assistant. + required: false + default: KNX Switch + type: string +state_address: + description: Separate KNX group address for retrieving the switch state. + 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 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/switch.mfi.markdown b/source/_components/switch.mfi.markdown index f82e5802579..03841394858 100644 --- a/source/_components/switch.mfi.markdown +++ b/source/_components/switch.mfi.markdown @@ -28,11 +28,32 @@ switch: password: YOUR_PASSWORD ``` -Configuration variables: - -- **host** (*Required*): The IP address or hostname of your mFi controller. -- **port** (*Optional*): The port of your mFi controller. Defaults to 6443. -- **username** (*Required*): The mFi admin username. -- **password** (*Required*): The mFi admin user's password. -- **ssl** (*Optional*): If `True`, use SSL/TLS to contact the mFi controller. Defaults to `True`. -- **verify_ssl** (*Optional*): Set this to `False` if your mFi controller has a self-signed certificate. Defaults to `True`. +{% configuration %} +host: + description: The IP address or hostname of your mFi controller. + required: true + type: string +port: + description: The port of your mFi controller. + required: false + default: 6443 + type: integer +username: + description: The mFi admin username. + required: true + type: string +password: + description: The mFi admin password. + required: true + type: string +ssl: + description: If `true`, use SSL/TLS to contact the mFi controller. + required: false + default: true + type: boolean +verify_ssl: + description: Set this to `false` if your mFi controller has a self-signed certificate. + required: false + default: true + type: boolean +{% endconfiguration %} diff --git a/source/_components/switch.mqtt.markdown b/source/_components/switch.mqtt.markdown index 68ec3dfc3a0..b5f978a0adf 100644 --- a/source/_components/switch.mqtt.markdown +++ b/source/_components/switch.mqtt.markdown @@ -50,12 +50,12 @@ state_on: description: The payload that represents the on state. required: false type: string - default: ON + default: "ON" state_off: description: The payload that represents the off state. required: false type: string - default: OFF + default: "OFF" command_topic: description: The MQTT topic to publish commands to change the switch state. required: false @@ -68,12 +68,12 @@ payload_on: description: The payload that represents enabled state. required: false type: string - default: ON + default: "ON" payload_off: description: The payload that represents disabled state. required: false type: string - default: OFF + default: "OFF" payload_available: description: The payload that represents the available state. required: false @@ -103,6 +103,35 @@ value_template: description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload." required: false type: string +device: + description: 'Information about the device this switch 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 %}

diff --git a/source/_components/switch.netio.markdown b/source/_components/switch.netio.markdown index f5c4a9742f5..c50157850d0 100644 --- a/source/_components/switch.netio.markdown +++ b/source/_components/switch.netio.markdown @@ -13,7 +13,6 @@ ha_iot_class: "Local Polling" ha_release: 0.24 --- - The `netio` switch platform allows you to control your [Netio](http://www.netio-products.com/en/overview/) Netio4, Netio4 All, and Netio 230B. These are smart outlets controllable through Ethernet and/or WiFi that reports consumptions (Netio4all). To use Netio devices in your installation, add the following to your `configuration.yaml` file: @@ -31,18 +30,33 @@ switch: 4: Lamp ``` -Configuration variables: - -- **host** (*Required*): The IP address of your Netio plug, eg. `http://192.168.1.32`. -- **port** (*Optional*): The port to communicate with the switch. Defaults to `1234`. -- **username** (*Required*): The username for your plug. -- **password** (*Required*): The password for your plug. -- **outlets** (*Required*) array: List of all outlets. - - **[No.]: [Name]** (*Required*): Identification of an outlet. +{% configuration %} +host: + description: "The IP address of your Netio plug, e.g., `http://192.168.1.32`." + required: true + type: string +port: + description: The port to communicate with the switch. + required: true + default: 1234 + type: integer +username: + description: The username for your plug. + required: true + default: admin + type: string +password: + description: The password for your plug. + required: true + type: string +outlets: + description: "List of all outlets. Consisting of a number and a name [No.]: [Name]." + required: false + type: list +{% endconfiguration %} To get pushed updates from the Netio devices, one can add this Lua code in the device interface as an action triggered on "Netio" "System variables updated" with an 'Always' schedule: - ```lua -- this will send socket and consumption status updates via CGI -- to given address. Associate with 'System variables update' event @@ -64,4 +78,3 @@ local qs = table.concat(output, '&') local url = string.format('http://%s%s?%s', address, path, qs) devices.system.CustomCGI{url=url} ``` - diff --git a/source/_components/switch.orvibo.markdown b/source/_components/switch.orvibo.markdown index 656bcd4a223..fb94b023439 100644 --- a/source/_components/switch.orvibo.markdown +++ b/source/_components/switch.orvibo.markdown @@ -34,11 +34,28 @@ switch: name: "My Socket" ``` -Configuration variables: - -- **discovery** (*Optional*): Whether to discover sockets. Defaults to `true`. -- **switches** (*Optional*): - - **host** (*Required*): IP address of your socket, eg. `192.168.1.10`. - - **mac** (*Optional*): MAC address of the socket, eg "AA:BB:CC:DD:EE:FF". This is required if the socket is connected to a different subnet to the machine running Home Assistant. - - **name** (*Optional*): Your name for the socket. - +{% configuration %} +discovery: + description: Whether to discover sockets. + required: false + default: true + type: boolean +switches: + description: A list of Orvibo switches. + required: false + type: list + keys: + host: + description: "IP address of your socket, e.g., 192.168.1.10." + required: true + type: string + mac: + description: "MAC address of the socket, e.g., `AA:BB:CC:DD:EE:FF`. This is required if the socket is connected to a different subnet to the machine running Home Assistant." + required: false + type: string + name: + description: Your name for the socket. + required: false + default: Orvibo S20 Switch + type: string +{% endconfiguration %} diff --git a/source/_components/switch.pilight.markdown b/source/_components/switch.pilight.markdown index d70f748cfa5..40bdbd0a86b 100644 --- a/source/_components/switch.pilight.markdown +++ b/source/_components/switch.pilight.markdown @@ -37,14 +37,34 @@ switch: 'off': 1 ``` -Configuration variables: - -- **switches** array (*Required*): The list that contains all command switches. - - **[entry]** (*Required*): Name of the command switch. Multiple entries are possible. - - **on_code** (*Required*): The code to turn the device on. - - **off_code** (*Required*): The code to turn the device off. - - **on_code_receive** (*Optional*): If given, this command will turn the switch on if it is received by pilight. - - **off_code_receive** (*Optional*): If given, this command will turn the switch off if it is received by pilight. +{% configuration %} +switches: + description: The list that contains all command switches. + required: true + type: string + keys: + entry: + description: Name of the command switch. Multiple entries are possible. + required: true + type: list + keys: + on_code: + description: The code to turn the device on. + required: true + type: list + off_code: + description: The code to turn the device off. + required: true + type: list + on_code_receive: + description: If given, this command will turn the switch on if it is received by pilight. + required: false + type: list + off_code_receive: + description: If given, this command will turn the switch off if it is received by pilight. + required: false + type: list +{% endconfiguration %} Variables for the different codes (`on_code` and `off_code`): diff --git a/source/_components/switch.pulseaudio_loopback.markdown b/source/_components/switch.pulseaudio_loopback.markdown index 6248f9910eb..9603337f58a 100644 --- a/source/_components/switch.pulseaudio_loopback.markdown +++ b/source/_components/switch.pulseaudio_loopback.markdown @@ -13,7 +13,6 @@ ha_release: 0.16 ha_iot_class: "Local Polling" --- - The goal behind this switch is to allow a very flexible whole home audio system based upon [PulseAudio](https://www.freedesktop.org/wiki/Software/PulseAudio/). For example, for a system with a 7.1 surround sound card, and 3 instances of [MPD](https://www.musicpd.org/) running, it is possible to quickly route the output of any MPD instance to any of the 8 possible (4 stereo) channels on the sound card, by loading/unloading a loopback module. This loading/unloading functionality is provided by this component. When the switch is `on`, the loopback module is loaded. When the switch is `off`, the module is not loaded. @@ -30,17 +29,42 @@ switch: - platform: pulseaudio_loopback ``` -Configuration variables: - -- **sink_name** (*Required*): The name of the Pulseaudio sink that will receive the audio. -- **source_name** (*Required*): The name of the Pulseaudio source that will supply the audio. -- **name** (*Optional*): Name of the switch. -- **host** (*Optional*): The IP address or host name of the PulseAudio server. If not specified, 127.0.0.1 is used. -- **port** (*Optional*): The port that Pulseaudio is listening on. Defaults to 4712. -- **buffer_size** (*Optional*): How much data to load from Pulseaudio at once. Default is 1KB. -- **tcp_timeout** (*Optional*): How long to wait for a response from Pulseaudio before giving up. Default is 3 seconds. +{% configuration %} +sink_name: + description: The name of the Pulseaudio sink that will receive the audio. + required: true + type: string +source_name: + description: The name of the Pulseaudio source that will supply the audio. + required: true + type: string +name: + description: Name of the switch. + required: false + default: paloopback + type: string +host: + description: The IP address or host name of the PulseAudio server. + required: false + default: localhost + type: string +port: + description: The port that Pulseaudio is listening on. + required: false + default: 4712 + type: integer +buffer_size: + description: How much data to load from Pulseaudio at once. + required: false + default: 1024 + type: integer +tcp_timeout: + description: How long to wait for a response from Pulseaudio before giving up. + required: false + default: 3 + type: integer +{% endconfiguration %}

This component relies on raw TCP commands to PulseAudio. In order for PulseAudio to accept commands with this component, `module-cli-protocol` must be loaded on the PulseAudio server.

- diff --git a/source/_components/switch.rainbird.markdown b/source/_components/switch.rainbird.markdown index 12b2f1019d4..c29241f80a8 100644 --- a/source/_components/switch.rainbird.markdown +++ b/source/_components/switch.rainbird.markdown @@ -35,11 +35,23 @@ switch: scan_interval: 10 ``` -Configuration variables: - -- **zone** (*Required*): Station zone identifier. -- **friendly_name** (*Optional*): Just a friendly name for the station. -- **trigger_time** (*Required*): The default duration to sprinkle the zone. -- **scan_interval** (*Optional*): How fast to refresh the switch. +{% configuration %} +zone: + description: Station zone identifier. + required: true + type: string +friendly_name: + description: Just a friendly name for the station. + required: false + type: string +trigger_time: + description: The default duration to sprinkle the zone. + required: true + type: integer +scan_interval: + description: How fast to refresh the switch. + required: false + type: integer +{% endconfiguration %} Please note that due to the implementation of the API within the LNK Module, there is a concurrency issue. For example, the Rain Bird app will give connection issues (like already a connection active). diff --git a/source/_components/switch.raincloud.markdown b/source/_components/switch.raincloud.markdown index 2844b924aed..a13f100e08c 100644 --- a/source/_components/switch.raincloud.markdown +++ b/source/_components/switch.raincloud.markdown @@ -13,11 +13,11 @@ ha_release: "0.55" ha_iot_class: "Cloud Polling" --- -To get your [Melnor RainCloud](https://wifiaquatimer.com) binary sensors working within Home Assistant, please follow the instructions for the general [Raincloud component](/components/raincloud). +To get your [Melnor RainCloud](https://wifiaquatimer.com) binary sensors working within Home Assistant, please follow the instructions for the general [Raincloud component](/components/raincloud/). ## {% linkable_title Configuration %} -Once you have enabled the [Raincloud component](/components/raincloud), add the following to your `configuration.yaml` file: +Once you have enabled the [Raincloud component](/components/raincloud/), add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -25,9 +25,23 @@ switch: - platform: raincloud ``` -Configuration variables: - -- **watering_minutes** (*Optional*): Value in minutes to watering your garden via frontend. Defaults to 15. The values allowed are: 5, 10, 15, 30, 45, 60. -- **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. - - **auto_watering**: Toggle the watering scheduled per zone. - - **manual_watering**: Toggle manually the watering per zone. It will inherent the value in minutes specified on the RainCloud hub component. +{% configuration %} +watering_minutes: + description: "Value in minutes to watering your garden via frontend. The values allowed are: 5, 10, 15, 30, 45, 60." + required: false + default: 15 + type: integer +monitored_conditions: + description: Conditions to display in the frontend. If not specified, all conditions below will be enabled by default. + required: false + type: list + keys: + auto_watering: + description: Toggle the watering scheduled per zone. + required: false + type: boolean + manual_watering: + description: Toggle manually the watering per zone. It will inherent the value in minutes specified on the RainCloud hub component. + required: false + type: boolean +{% endconfiguration %} diff --git a/source/_components/switch.raspihats.markdown b/source/_components/switch.raspihats.markdown index c1f65847dc3..37f31ad59a4 100644 --- a/source/_components/switch.raspihats.markdown +++ b/source/_components/switch.raspihats.markdown @@ -36,17 +36,44 @@ switch: name: Light Office ``` -Configuration variables: - -- **i2c_hats** (*Optional*): Array of used I2C-HATs. - - **board** (*Required*): The board name. - - **address** (*Required*): The board I2C address, hex value. - - **channels** (*Required*): Array of used digital output channels. - - **index** (*Required*): Digital output channel index. - - **name** (*Required*): Friendly name to use for the frontend. - - **invert_logic** (*Optional*): Inverts the output logic, default is `False`. - - **initial_state** (*Optional*): Initial state, default is `None`, can also be `True` or `False`. `None` means no state is forced on the corresponding digital output when this switch is instantiated. - +{% configuration %} +i2c_hats: + description: An array of used I2C-HATs. + required: false + type: list + keys: + board: + description: The board name. + required: true + type: string + address: + description: The board I2C address as HEX value. + required: true + type: string + channels: + description: An array of used digital input channels. + required: true + type: list + keys: + index: + description: The digital input channel index. + required: true + type: integer + name: + description: The friendly name to use for the frontend. + required: true + type: string + invert_logic: + description: Inverts the input logic. + required: false + default: false + type: boolean + initial_state: + description: "The initial state, can be either `true` or `false`. `none` means no state is forced on the corresponding digital output when this switch is instantiated." + required: false + default: None + type: boolean +{% endconfiguration %} ## {% linkable_title Directions for installing smbus support on Raspberry Pi %} diff --git a/source/_components/switch.recswitch.markdown b/source/_components/switch.recswitch.markdown new file mode 100644 index 00000000000..e5f1ba62fc3 --- /dev/null +++ b/source/_components/switch.recswitch.markdown @@ -0,0 +1,48 @@ +--- +layout: page +title: "Ankuoo Rec Switch" +logo: ankuoo_recswitch.png +description: "Instructions on how to integrate Ankuoo Rec Switch into Home Assistant." +date: 2018-10-05 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: "ankuoo_recswitch.png" +ha_release: "0.81" +ha_category: Switch +ha_iot_class: "Local Polling" +--- + +The `recswitch` switch platform allows you to control the Ankuoo Rec Switch devices. + +Supported devices (tested): +- Ankuoo RecSwitch MS6126 +- Lumitek CSW201 NEO WiFi + +### {% linkable_title Configuration %} + +To enable this switch, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +switch: + - platform: recswitch + host: 'IP_ADDRESS' + mac: 'MAC_ADDRESS' +``` + +{% configuration %} +host: + description: IP address or hostname of the device. + required: true + type: string +mac: + description: MAC address of the device. + required: true + type: string +name: + description: Name to use in the frontend. + required: false + type: string +{% endconfiguration %} diff --git a/source/_components/switch.rflink.markdown b/source/_components/switch.rflink.markdown index ee42e8bbd74..0b8840479e2 100644 --- a/source/_components/switch.rflink.markdown +++ b/source/_components/switch.rflink.markdown @@ -39,22 +39,58 @@ switch: ``` -Configuration variables: - -- **devices** (*Optional*): A list of devices with their name to use in the frontend. -- **device_defaults**: (*Optional*) - - **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). - -Device configuration variables: - -- **name** (*Optional*): Name for the device, defaults to RFLink ID. -- **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) -- **group** (*Optional*): Allow switch 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. +{% configuration %} +device_defaults: + description: The defaults for all listed devices. + required: false + type: list + keys: + fire_event: + description: Set default `fire_event` for Rflink switch devices (see below). + required: false + type: boolean + signal_repetitions: + description: Set default `signal_repetitions` for Rflink switch devices (see below). + required: false + type: integer +devices: + description: A list of devices with their name to use in the frontend. + required: false + type: list + keys: + name: + description: Name for the device. + required: false + default: Rflink ID + type: string + aliases: + description: (deprecated) Alternative Rflink ID's this device is known by. + required: false + type: [list, string] + group_aliases: + description: "(deprecated) `aliases` which only respond to group commands." + required: false + type: [list, string] + no_group_aliases: + description: "(deprecated) `aliases` which do not respond to group commands." + required: false + type: [list, string] + fire_event: + description: Fire a `button_pressed` event if this device is turned on or off. + required: false + default: false + type: boolean + signal_repetitions: + description: Set default `signal_repetitions` for RFLink switch devices (see below). + required: false + default: 1 + type: integer + group: + description: Allow light to respond to group commands (ALLON/ALLOFF). + required: false + default: true + type: boolean +{% endconfiguration %} ### {% linkable_title Switch state %} @@ -80,4 +116,3 @@ Any on/off command from any alias ID updates the current state of the switch. Ho ### {% linkable_title Device support %} See [device support](/components/rflink/#device-support) - diff --git a/source/_components/switch.rfxtrx.markdown b/source/_components/switch.rfxtrx.markdown index b1ef272d1a0..02094e099d5 100644 --- a/source/_components/switch.rfxtrx.markdown +++ b/source/_components/switch.rfxtrx.markdown @@ -43,12 +43,31 @@ switch: name: device_name ``` -Configuration variables: - -- **devices** (*Required*): A list of devices with their name to use in the frontend. -- **automatic_add** (*Optional*): To enable the automatic addition of new switches. -- **signal_repetitions** (*Optional*): Because the RFXtrx device 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 to try to send each signal repeatedly. -- **fire_event** (*Optional*): Fires an event even if the state is the same as before, for example a doorbell switch. Can also be used for automations. +{% configuration %} +devices: + description: A list of devices. + required: false + type: list + keys: + name: + description: Override the name to use in the frontend. + required: true + type: string + fire_event: + description: Fires an event even if the state is the same as before, for example a doorbell switch. Can also be used for automations. + required: false + default: false + type: boolean +automatic_add: + description: To enable the automatic addition of new switches. + required: false + default: false + type: boolean +signal_repetitions: + description: Because the RFXtrx device 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 to try to send each signal repeatedly. + required: false + type: integer +{% endconfiguration %}

This component and the [rfxtrx binary sensor](/components/binary_sensor.rfxtrx/) can steal each other's devices when setting the `automatic_add` configuration parameter to `true`. Set `automatic_add` only when you have some devices to add to your installation, otherwise leave it to `False`. diff --git a/source/_components/switch.rpi_gpio.markdown b/source/_components/switch.rpi_gpio.markdown index f6d62a4935b..901734b1ee0 100644 --- a/source/_components/switch.rpi_gpio.markdown +++ b/source/_components/switch.rpi_gpio.markdown @@ -29,11 +29,22 @@ switch: 12: Light Desk ``` -Configuration variables: - -- **ports** array (*Required*): Array of used ports. - - **port: name** (*Required*): Port numbers and corresponding names (GPIO #). -- **invert_logic** (*Optional*): If true, inverts the output logic to ACTIVE LOW. Default is false (ACTIVE HIGH). +{% configuration %} +ports: + description: Array of used ports. + required: true + type: list + keys: + port: + description: Port numbers and corresponding names (GPIO #). + required: true + type: [integer, string] +invert_logic: + description: If true, inverts the output logic to ACTIVE LOW. + required: false + default: false + type: boolean +{% endconfiguration %} For more details about the GPIO layout, visit the Wikipedia [article](https://en.wikipedia.org/wiki/Raspberry_Pi#GPIO_connector) about the Raspberry Pi. @@ -51,5 +62,3 @@ switch: ports: 17: Speaker Relay ``` - - diff --git a/source/_components/switch.rpi_pfio.markdown b/source/_components/switch.rpi_pfio.markdown index 57f4ba2a6dc..3efa04537f4 100644 --- a/source/_components/switch.rpi_pfio.markdown +++ b/source/_components/switch.rpi_pfio.markdown @@ -31,10 +31,24 @@ switch: name: Light Desk ``` -Configuration variables: - -- **ports** array (*Required*): Array of used ports. - - **num** (*Required*): Port number. - - **name** (*Required*): Port name. - - **invert_logic** (*Optional*): If true, inverts the output logic to ACTIVE LOW. Default is false (ACTIVE HIGH). - +{% configuration %} +ports: + description: Array of used ports. + required: true + type: list + keys: + num: + description: Port number. + required: true + type: list + keys: + name: + description: Port name. + required: true + type: string + invert_logic: + description: If true, inverts the output logic to ACTIVE LOW. + required: false + default: false + type: boolean +{% endconfiguration %} diff --git a/source/_components/switch.rpi_rf.markdown b/source/_components/switch.rpi_rf.markdown index 43d2e5a30d5..0c7b52f53b1 100644 --- a/source/_components/switch.rpi_rf.markdown +++ b/source/_components/switch.rpi_rf.markdown @@ -43,13 +43,41 @@ switch: signal_repetitions: 15 ``` -Configuration variables: - -- **gpio** (*Required*): GPIO to which the data line of the TX module is connected. -- **switches:** (*Required*): The array that contains all switches. - - **[entry]** (*Required*): Name of the switch. Multiple entries are possible. - - **code_on** (*Required*): Decimal code(s) to switch the device on. To run multiple codes in a sequence, separate the individual codes with commas ','. - - **code_off** (*Required*): Decimal code(s) to switch the device off. To run multiple codes in a sequence, separate the individual codes with commas ','. - - **protocol** (*Optional*): RF Protocol (Default is `1`). - - **pulselength** (*Optional*): Pulselength (Default is the protocol default). - - **signal_repetitions** (*Optional*): Number of times to repeat transmission (default is 10, can increase to try to improve reliability). +{% configuration %} +gpio: + description: GPIO to which the data line of the TX module is connected. + required: true + type: integer +switches: + description: The array that contains all switches. + required: true + type: list + keys: + entry: + description: Name of the switch. Multiple entries are possible. + required: true + type: list + keys: + code_on: + description: Decimal code(s) to switch the device on. To run multiple codes in a sequence, separate the individual codes with commas ','. + required: true + type: list + code_off: + description: Decimal code(s) to switch the device off. To run multiple codes in a sequence, separate the individual codes with commas ','. + required: true + type: list + protocol: + description: RF Protocol. + required: false + default: 1 + type: integer + pulselength: + description: Pulselength + required: false + type: integer + signal_repetitions: + description: Number of times to repeat transmission + required: false + default: 10 + type: integer +{% endconfiguration %} diff --git a/source/_components/switch.scsgate.markdown b/source/_components/switch.scsgate.markdown index 35e1f6b7f8e..1f0cdb6cf84 100644 --- a/source/_components/switch.scsgate.markdown +++ b/source/_components/switch.scsgate.markdown @@ -26,6 +26,9 @@ switch: scs_id: XXXXX ``` -Configuration variables: - -- **devices** (*Required*): A list of devices with their name to use in the frontend. +{% configuration %} +devices: + description: A list of devices with their name to use in the frontend. + required: true + type: list +{% endconfiguration %} diff --git a/source/_components/switch.telnet.markdown b/source/_components/switch.telnet.markdown index ef1345cd5bf..7a11cff4cf1 100644 --- a/source/_components/switch.telnet.markdown +++ b/source/_components/switch.telnet.markdown @@ -12,33 +12,64 @@ ha_release: 0.54 ha_iot_class: "Local Polling" --- - The `telnet` switch platform allows you to control devices with telnet commands. To enable this switch, add the following lines to your `configuration.yaml` file: +{% raw %} ```yaml # Example configuration.yaml entry switch: platform: telnet switches: projector: - resource: "host_or_ip" + resource: THE_IP_ADDRESS port: 4002 command_on: "PWR ON" command_off: "PWR OFF" command_state: "PWR?" - value_template: '{% raw %}{{ value == "PWR=01" }}{% endraw %}' + value_template: '{{ value == "PWR=01" }}' ``` +{% endraw %} -Configuration variables: - -- **switches** (*Required*): The array that contains all switches. - - **identifier** (*Required*): Name of the switch as slug. Multiple entries are possible. - - **resource** (*Required*): Host or IP of the device. - - **port** (*Optional*): Port to connect to. Default is 23 if not defined. - - **command_on** (*Required*): Command to turn device on. - - **command_off** (*Required*): Command to turn device off. - - **command_state** (*Optional*): Command to determine the state of the switch. If not defined the switch will assume successful state changes. - - **value_template** (*Optional*): The template evaluating to `true` will indicate that the switch is on. - - **name** (*Optional*): The name used to display the switch in the frontend. +{% configuration %} +switches: + description: The array that contains all switches. + required: true + type: list + keys: + identifier: + description: Name of the switch as slug. Multiple entries are possible. + required: true + type: list + keys: + resource: + description: Host name or IP address of the device. + required: true + type: string + port: + description: Port to connect to. + required: false + default: 23 + type: integer + command_on: + description: Command to turn device on. + required: true + type: string + command_off: + description: Command to turn device off. + required: true + type: string + command_state: + description: Command to determine the state of the switch. If not defined the switch will assume successful state changes. + required: false + type: string + value_template: + description: The template evaluating to `true` will indicate that the switch is on. + required: false + type: template + name: + description: The name used to display the switch in the frontend. + required: false + type: string +{% endconfiguration %} diff --git a/source/_components/switch.tradfri.markdown b/source/_components/switch.tradfri.markdown index 411b8883ed1..95069570664 100644 --- a/source/_components/switch.tradfri.markdown +++ b/source/_components/switch.tradfri.markdown @@ -1,7 +1,7 @@ --- layout: page title: "IKEA Trådfri Switch" -description: "Access and control your ZigBee-based IKEA Trådfri (Tradfri) Switches." +description: "Access and control your Zigbee-based IKEA Trådfri (Tradfri) Switches." date: 2018-09-30 19.22 sidebar: true comments: false diff --git a/source/_components/switch.unifi.markdown b/source/_components/switch.unifi.markdown new file mode 100644 index 00000000000..40376ec6daf --- /dev/null +++ b/source/_components/switch.unifi.markdown @@ -0,0 +1,20 @@ +--- +layout: page +title: "UniFi Switches" +description: "Instructions on how to integrate POE control switches from UniFi into Home Assistant." +date: 2018-10-15 22:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: ubiquiti.png +ha_category: Switch +ha_release: "0.81" +ha_iot_class: "Local Polling" +--- + +See the [UniFi main component](/components/unifi/) for configuration instructions. + +Switches are network devices that are powered by POE switches from Ubuiqitis UniFi line of networking gear. + +Note that POE control actually configures the network port of the switch which the device is connected to. diff --git a/source/_components/switch.zha.markdown b/source/_components/switch.zha.markdown index c5c7eee2c5d..e23f6751ff3 100644 --- a/source/_components/switch.zha.markdown +++ b/source/_components/switch.zha.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "ZigBee Home Automation Switch" -description: "Instructions on how to setup ZigBee Home Automation switches within Home Assistant." +title: "Zigbee Home Automation Switch" +description: "Instructions on how to setup Zigbee Home Automation switches within Home Assistant." date: 2017-02-22 00:00 sidebar: true comments: false @@ -12,4 +12,4 @@ ha_category: Switch ha_iot_class: "Local Polling" --- -To get your ZigBee switches working with Home Assistant, follow the instructions for the general [ZigBee Home Automation component](/components/zha/). +To get your Zigbee switches working with Home Assistant, follow the instructions for the general [Zigbee Home Automation component](/components/zha/). diff --git a/source/_components/switch.zigbee.markdown b/source/_components/switch.zigbee.markdown index 15f2dd2386e..912b0e5bb30 100644 --- a/source/_components/switch.zigbee.markdown +++ b/source/_components/switch.zigbee.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "ZigBee Switch" -description: "Instructions on how to set up ZigBee switches within Home Assistant." +title: "Zigbee Switch" +description: "Instructions on how to set up Zigbee switches within Home Assistant." date: 2016-01-28 11:52 sidebar: true comments: false @@ -13,7 +13,7 @@ ha_release: 0.12 ha_iot_class: "Local Polling" --- -A ZigBee switch in this context is a device connected to one of the digital output pins on a ZigBee module. It can simply be switched on and off. By default, a switch is considered `on` when the ZigBee device's digital output is held `high` and considered `off` when it is held `low`. This behavior can be inverted by setting the `on_state` configuration variable to `low`. +A Zigbee switch in this context is a device connected to one of the digital output pins on a Zigbee module. It can simply be switched on and off. By default, a switch is considered `on` when the Zigbee device's digital output is held `high` and considered `off` when it is held `low`. This behavior can be inverted by setting the `on_state` configuration variable to `low`. To configure a digital output pin as switch, add the following to your `configuration.yaml` file: @@ -36,7 +36,7 @@ pin: required: true type: integer address: - description: The long 64-bit address of the remote ZigBee device whose digital output pin you would like to switch. Do not include this variable if you want to switch the local ZigBee device's pins. + description: The long 64-bit address of the remote Zigbee device whose digital output pin you would like to switch. Do not include this variable if you want to switch the local Zigbee device's pins. required: false type: string on_state: diff --git a/source/_components/tado.markdown b/source/_components/tado.markdown index cfb7294289c..f78c99ae627 100644 --- a/source/_components/tado.markdown +++ b/source/_components/tado.markdown @@ -15,6 +15,8 @@ ha_iot_class: "Cloud Polling" The `tado` component platform is used as an interface to the [my.tado.com](https://my.tado.com/webapp/#/account/sign-in) website. It adds climate devices for every tado zone and sensors for some additional information of the zones. +## {% linkable_title Configuration %} + To use your tado thermostats in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -26,11 +28,11 @@ tado: {% configuration %} username: - description: Username for my.tado.com. + description: Your username for my.tado.com. required: true type: string password: - description: Password for my.tado.com. + description: Your password for my.tado.com. required: true type: string {% endconfiguration %} diff --git a/source/_components/tahoma.markdown b/source/_components/tahoma.markdown index 03734815e39..323d51bee5a 100644 --- a/source/_components/tahoma.markdown +++ b/source/_components/tahoma.markdown @@ -13,9 +13,10 @@ ha_release: 0.59 ha_iot_class: "Cloud Polling" --- - The `Tahoma` component platform is used as an interface to the [tahomalink.com](https://www.tahomalink.com) website. It adds covers, scenes and a sun sensor from the Tahoma platform. +## {% linkable_title Configuration %} + To use your Tahoma devices in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -28,15 +29,15 @@ tahoma: {% configuration %} username: - description: Username for tahomalink.com + description: Your username for tahomalink.com. required: true type: string password: - description: Password for tahomalink.com + description: Your password for tahomalink.com. required: true type: string exclude: - description: Excludes devices + description: List of devices to exclude. required: false type: list {% endconfiguration %} diff --git a/source/_components/telegram_bot.broadcast.markdown b/source/_components/telegram_bot.broadcast.markdown index 4fc78da1277..4b820fac4a4 100644 --- a/source/_components/telegram_bot.broadcast.markdown +++ b/source/_components/telegram_bot.broadcast.markdown @@ -14,14 +14,15 @@ ha_release: 0.48 Telegram implementation to support **sending messages only**. Your Home Assistant instance does not have to be exposed to the Internet and there is no polling to receive messages sent to the bot. +## {% linkable_title Configuration %} + To integrate this into Home Assistant, add the following section to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry - telegram_bot: - platform: broadcast - api_key: + api_key: YOUR_API_KEY allowed_chat_ids: - 12345 - 67890 @@ -29,7 +30,7 @@ telegram_bot: {% configuration %} allowed_chat_ids: - description: A list of user in the `user_id` Telegram format enabled to interact to webhook + description: A list of users in the `user_id` Telegram format that are authorized to interact with the webhook. required: true type: list api_key: @@ -37,16 +38,16 @@ api_key: required: true type: string parse_mode: - description: "Default parser for messages if not explicit in message data: 'html' or 'markdown'." + description: Default parser for messages if not explicit in message data, either `html` or `markdown`. required: false - default: markdown type: string + default: "`markdown`" proxy_url: - description: Proxy url if working behind one (`socks5://proxy_ip:proxy_port`) + description: Proxy url if working behind one (`socks5://proxy_ip:proxy_port`). required: false type: string proxy_params: - description: Proxy configuration parameters, as dict, if working behind a proxy (`username`, `password`, etc.) + description: Proxy configuration parameters, as dict, if working behind a proxy (`username`, `password`, etc.). required: false type: string {% endconfiguration %} diff --git a/source/_components/telegram_bot.polling.markdown b/source/_components/telegram_bot.polling.markdown index fc4dbe179ec..4b9df18396a 100644 --- a/source/_components/telegram_bot.polling.markdown +++ b/source/_components/telegram_bot.polling.markdown @@ -16,14 +16,15 @@ Telegram chatbot polling implementation. One of two bot implementations supported by Telegram. Your Home Assistant does not have to be exposed to the internet. +## {% linkable_title Configuration %} + To integrate this into Home Assistant, add the following section to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry - telegram_bot: - platform: polling - api_key: + api_key: YOUR_API_KEY allowed_chat_ids: - 12345 - 67890 @@ -31,7 +32,7 @@ telegram_bot: {% configuration %} allowed_chat_ids: - description: A list of user in the `user_id` Telegram format enabled to interact to webhook + description: A list of users in the `user_id` Telegram format that are authorized to interact with the webhook. required: true type: list api_key: @@ -39,16 +40,16 @@ api_key: required: true type: string parse_mode: - description: "Default parser for messages if not explicit in message data: 'html' or 'markdown'." + description: Default parser for messages if not explicit in message data, either `html` or `markdown`. required: false - default: markdown type: string + default: "`markdown`" proxy_url: - description: Proxy url if working behind one (`socks5://proxy_ip:proxy_port`) + description: Proxy url if working behind one (`socks5://proxy_ip:proxy_port`). required: false type: string proxy_params: - description: Proxy configuration parameters, as dict, if working behind a proxy (`username`, `password`, etc.) + description: Proxy configuration parameters, as dict, if working behind a proxy (`username`, `password`, etc.). required: false type: string {% endconfiguration %} diff --git a/source/_components/telegram_bot.webhooks.markdown b/source/_components/telegram_bot.webhooks.markdown index deb0531d55d..ffe92026d6f 100644 --- a/source/_components/telegram_bot.webhooks.markdown +++ b/source/_components/telegram_bot.webhooks.markdown @@ -18,6 +18,8 @@ Using Telegrams `setWebhook` method your bot's webhook URL should be set to `htt This is one of two bot implementations supported by Telegram. Described by Telegram as the preferred implementation but requires your Home Assistant instance to be exposed to the internet. +## {% linkable_title Configuration %} + To integrate this into Home Assistant, add the following section to your `configuration.yaml` file: ```yaml @@ -27,7 +29,7 @@ http: telegram_bot: - platform: webhooks - api_key: telegram api key + api_key: YOUR_API_KEY parse_mode: html allowed_chat_ids: - 12345 @@ -43,33 +45,35 @@ api_key: description: The API token of your bot. required: true type: string -trusted_networks: - description: Telegram server access ACL as list. - required: false - default: 149.154.167.197-233 - type: string parse_mode: - description: "Default parser for messages if not explicit in message data: 'html' or 'markdown'." + description: Default parser for messages if not explicit in message data, either `html` or `markdown`. required: false default: markdown type: string proxy_url: - description: Proxy url if working behind one (`socks5://proxy_ip:proxy_port`) + description: Proxy url if working behind one (`socks5://proxy_ip:proxy_port`). required: false type: string proxy_params: - description: Proxy configuration parameters, as dict, if working behind a proxy (`username`, `password`, etc.) + description: Proxy configuration parameters, as dict, if working behind a proxy (`username`, `password`, etc.). required: false type: string url: description: Allow to overwrite the `base_url` from the [`http`](/components/http/) component for different configurations (`https://:`). required: false type: string +trusted_networks: + description: Telegram server access ACL as list. + required: false + type: string + default: 149.154.167.197-233 {% endconfiguration %} To get your `chat_id` and `api_key` follow the instructions [here](/components/notify.telegram). As well as authorizing the chat, if you have added your bot to a group you will also need to authorize any user that will be interacting with the webhook. When an unauthorized user tries to interact with the webhook Home Assistant will raise an error ("Incoming message is not allowed"), you can easily obtain the users id by looking in the "from" section of this error message. -Full configuration sample: +## {% linkable_title Full configuration example %} + +The configuration sample below shows how an entry can look like: ```yaml # Example configuration.yaml entry @@ -78,7 +82,7 @@ http: telegram_bot: - platform: webhooks - api_key: ABCDEFGHJKLMNOPQRSTUVXYZ + api_key: YOUR_API_KEY trusted_networks: - 149.154.167.197/32 - 149.154.167.198/31 diff --git a/source/_components/tellduslive.markdown b/source/_components/tellduslive.markdown index 1b441341db4..4af2502e318 100644 --- a/source/_components/tellduslive.markdown +++ b/source/_components/tellduslive.markdown @@ -21,6 +21,8 @@ If you are upgrading from 0.58 or older, you need to remove all Telldus configur Home Assistant will automatically discover the presence of a Tellstick Net or Tellstick ZNet on your local network if the [discovery]({{site_root}}/components/discovery/) component is enabled. When discovery and the key exchange with Telldus Live have been completed, you will be presented with an option to integrate with the cloud or local API for direct communication with your hardware in your LAN. Local API supports only one device at this stage. Local API is only supported with the Znet Lite products, the older hardware (such as Tellstick Net) does not support local API. +## {% linkable_title Configuration %} + To manually integrate your Telldus Live with Home Assistant, e.g., if your device is on another network or in another location, add the following section to your `configuration.yaml` file: ```yaml @@ -34,10 +36,10 @@ host: required: false type: string update_interval: - description: Interval (in seconds) for polling the Telldus Live server (or the local server). + description: Interval (in seconds) for polling the Telldus Live server (or the local server). Minimal value can't be less then 300. required: false - default: 60 type: integer + default: 60 {% 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 232fd9e1525..36bdec9e609 100644 --- a/source/_components/tellstick.markdown +++ b/source/_components/tellstick.markdown @@ -11,7 +11,6 @@ logo: telldus_tellstick.png 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 %} @@ -23,6 +22,8 @@ To get started, add the devices to your `configuration.yaml` file. tellstick: ``` +For Hass.io users there is a [TellStick add-on](/addons/tellstick/) available. + ```yaml # Example configuration.yaml entry for Hass.io with the TellStick add-on tellstick: @@ -35,6 +36,7 @@ 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 + default: 1 host: description: If you run TellStick on another server or with the Hass.io add-on. required: inclusive diff --git a/source/_components/tesla.markdown b/source/_components/tesla.markdown index c004585e369..5c09dd4f6bf 100644 --- a/source/_components/tesla.markdown +++ b/source/_components/tesla.markdown @@ -13,7 +13,6 @@ ha_release: 0.53 ha_iot_class: "Cloud Polling" --- - The `Tesla` component offers integration with the [Tesla](https://auth.tesla.com/login) cloud service and provides presence detection as well as sensors such as charger state and temperature. This component provides the following platforms: @@ -24,6 +23,8 @@ This component provides the following platforms: - Climate - HVAC control. Allow you to control (turn on/off, set target temperature) your Tesla's HVAC system. - Switch - Charger and max range switch. Allow you to start/stop charging and set max range charging. + ## {% linkable_title Configuration %} + To use Tesla in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -45,6 +46,6 @@ password: scan_interval: description: API polling interval. Minimal value can't be less then 300. required: false - default: 300 type: integer + default: 300 {% endconfiguration %} diff --git a/source/_components/thethingsnetwork.markdown b/source/_components/thethingsnetwork.markdown index 328022f6cc8..f7cc6574a3f 100644 --- a/source/_components/thethingsnetwork.markdown +++ b/source/_components/thethingsnetwork.markdown @@ -23,7 +23,7 @@ The Things network support various integrations to make the data available: | [Storage](https://www.thethingsnetwork.org/docs/applications/storage/) | [`thethingsnetwork`](/components/sensor.thethingsnetwork/) | | [HTTP](https://www.thethingsnetwork.org/docs/applications/http/) | | -### {% linkable_title Setup %} +## {% linkable_title Setup %} Visit the [The Things Network Console](https://console.thethingsnetwork.org/) website, log in with your The Things Network credentials, choose your application from **Applications**. @@ -41,6 +41,8 @@ You need an access key to be able to read the data from your application. Access keys

+## {% linkable_title Configuration %} + To enable this component, add the following lines to your `configuration.yaml`: ```yaml @@ -51,13 +53,12 @@ thethingsnetwork: ``` {% configuration %} - app_id: - description: The Application ID. - required: true - type: string - access_key: - description: The access key. - required: true - type: string +app_id: + description: The Application ID. + required: true + type: string +access_key: + description: The access key. + required: true + type: string {% endconfiguration %} - diff --git a/source/_components/thingspeak.markdown b/source/_components/thingspeak.markdown index b18969ca64e..6bcabe6fe9e 100644 --- a/source/_components/thingspeak.markdown +++ b/source/_components/thingspeak.markdown @@ -15,6 +15,8 @@ ha_release: 0.32 The `thingspeak` components makes Home Assistant communicate with the [ThingSpeak API](https://thingspeak.com/). For now, it records exactly one entity at once, which is great for testing purposes. For long-time storage you should rely on the [InfluxDB component](/components/influxdb/). +## {% linkable_title Configuration %} + You will have to create a [new channel](https://thingspeak.com/channels/new) on ThingSpeak and grab your Write API Key from the "API Keys" tab of the channel you want to use. To setup the ThingSpeak component in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/tibber.markdown b/source/_components/tibber.markdown index 4148ebbb1ab..e824ddcb5bf 100644 --- a/source/_components/tibber.markdown +++ b/source/_components/tibber.markdown @@ -14,22 +14,27 @@ ha_qa_scale: silver ha_iot_class: "Cloud Polling" --- - The `tibber` component provides a sensor with the current electricity price if you are a [Tibber](https://tibber.com/) customer. If you have a Tibber Pulse it will also show the electricity consumption in real time. It also provides a notification service. +## {% linkable_title Setup %} + +Go to [developer.tibber.com/](https://developer.tibber.com/) to get your API token. + +## {% linkable_title Configuration %} + To add Tibber to your installation, add the following to your `configuration.yaml` file: ```yaml tibber: - access_token: d1007ead2dc84a2b82f0de19451c5fb22112f7ae11d19bf2bedb224a003ff74a + access_token: YOUR_ACCESS_TOKEN ``` {% configuration %} - access_token: - description: Go to [developer.tibber.com/](https://developer.tibber.com/) to get your API token. - required: true - type: string +access_token: + description: Your Tibber API token. + required: true + type: string {% endconfiguration %} diff --git a/source/_components/timer.markdown b/source/_components/timer.markdown index dad6227958e..946e20cd8d9 100644 --- a/source/_components/timer.markdown +++ b/source/_components/timer.markdown @@ -21,6 +21,8 @@ When a timer finishes or gets canceled the corresponding events are fired. This With the current implementation timers don't persist over restarts. After a restart they will be idle again, together with their initial configuration.

+## {% linkable_title Configuration %} + To add a timer to your installation, add the following to your `configuration.yaml` file: ```yaml @@ -30,12 +32,26 @@ timer: duration: '00:01:00' ``` -Configuration variables: - -- **[alias]** (*Required*): Alias for the timer. Multiple entries are allowed. - - **name** (*Optional*): Friendly name of the timer. - - **duration** (*Optional*): Initial duration in seconds or `00:00:00` when Home Assistant starts. Defaults to 0. - - **icon** (*Optional*): Set a custom icon for the state card. +{% configuration %} +"[alias]": + description: Alias for the timer. Multiple entries are allowed. + required: true + type: map + keys: + name: + description: Friendly name of the timer. + required: false + type: string + duration: + description: Initial duration in seconds or `00:00:00` when Home Assistant starts. + required: false + type: [integer, time] + default: 0 + icon: + description: Set a custom icon for the state card. + required: false + type: icon +{% endconfiguration %} Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your timer and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`. @@ -82,7 +98,6 @@ Manually finish a running timer earlier than scheduled. If no `entity_id` is giv | ---------------------- | -------- | ----------- | | `entity_id` | yes | Name of the entity to take action, e.g., `timer.timer0`. | - ### {% linkable_title Use the service %} Select service developer tool icon **Services** from the **Developer Tools**. Choose **timer** from the list of **Domains**, select the **Service**, enter something like the sample below into the **Service Data** field, and hit **CALL SERVICE**. @@ -95,7 +110,7 @@ Select serv
 
 ## {% linkable_title Examples %}
 
-Set a timer called `test` to a duration of 30 seconds. 
+Set a timer called `test` to a duration of 30 seconds.
 
 ```yaml
 # Example configuration.yaml entry
@@ -110,8 +125,8 @@ timer:
 # Example automations.yaml entry
 - alias: Timerswitch
   id: **Integrations** -> **UniFi Controller**. + +Enter `host address`, `user name` and `password` and then continue to select which `site` you want to connect to Home Assistant. The user must have administrator privileges. + +## {% linkable_title Debugging component %} + +If you have problems with UniFi or the component you can add debug prints to the log. + +```yaml +logger: + default: info + logs: + aiounifi: debug +    homeassistant.components.unifi: debug +    homeassistant.components.switch.unifi: debug +``` diff --git a/source/_components/upcloud.markdown b/source/_components/upcloud.markdown index a54fa0e37eb..9b5807e536b 100644 --- a/source/_components/upcloud.markdown +++ b/source/_components/upcloud.markdown @@ -13,7 +13,6 @@ logo: upcloud.png ha_iot_class: Cloud Polling --- - The `upcloud` component allows you to access the information about your [UpCloud](https://www.upcloud.com/) servers from Home Assistant. ## {% linkable_title Setup %} diff --git a/source/_components/updater.markdown b/source/_components/updater.markdown index 2b6c2997a7a..873fab8fef2 100644 --- a/source/_components/updater.markdown +++ b/source/_components/updater.markdown @@ -14,7 +14,9 @@ ha_qa_scale: internal The `updater` component will check daily for new releases. It will show a badge in the frontend if a new version is found. As [Hass.io](/hassio/) has its own schedule for release it doesn't make sense to use this component on Hass.io. -The updater component will also collect basic information about the running Home Assistant instance and its environment. The information includes the current Home Assistant version, the time zone, Python version and operating system information. No identifiable information (i.e., IP address, GPS coordinates, etc.) will ever be collected. If you are concerned about your privacy, you are welcome to scrutinize the Python [source code](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/updater.py#L91). For further information about the Updater's data, please check the [detailed overview](/docs/backend/updater/). +The updater component will also collect basic information about the running Home Assistant instance and its environment. The information includes the current Home Assistant version, the time zone, Python version and operating system information. No identifiable information (i.e., IP address, GPS coordinates, etc.) will ever be collected. If you are concerned about your privacy, you are welcome to scrutinize the Python [source code](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/updater.py#L91). + +## {% linkable_title Configuration %} To integrate this into Home Assistant, add the following section to your `configuration.yaml` file: @@ -22,9 +24,22 @@ To integrate this into Home Assistant, add the following section to your `config updater: ``` -If you choose not to share any information when checking for updates, you can add `reporting: False`. +{% configuration %} +reporting: + description: Whether or not to share system information when checking for updates. + required: false + type: boolean + default: true +include_used_components: + description: Whether or not to report the components that you are using in Home Assistant. + required: false + type: boolean + default: false +{% endconfiguration %} -It is possible to report the components that you are using to the Home Assistant developers. This will help them focus on improving the popular ones. To enable this option, you have to add `include_used_components: True`. +For further information about the Updater's data, please check the [detailed overview](/docs/backend/updater/). If you choose not to share any information when checking for updates, you can set `reporting: false`. + +It is possible to report the components that you are using to the Home Assistant developers. This will help them focus on improving the popular ones. To enable this option, you have to add `include_used_components: true`. ```json "components": [ @@ -41,7 +56,7 @@ It is possible to report the components that you are using to the Home Assistant ] ``` -### {% linkable_title Notification %} +## {% linkable_title Notification %} For an added bonus, an automation component can be created to send a message with a notifier when that state of this component's entity changes. @@ -57,4 +72,3 @@ automation: data: message: 'Update for Home Assistant is available.' ``` - diff --git a/source/_components/upnp.markdown b/source/_components/upnp.markdown index b16888a93c2..a3c3cd4d366 100644 --- a/source/_components/upnp.markdown +++ b/source/_components/upnp.markdown @@ -33,20 +33,25 @@ upnp: With the default settings only the sensors are added for statistics. If you wish to have port mapping done through IGD, add the option **port_mapping** and **ports**. -{% configuration binary_sensor.template %} - ports: - description: Map of ports to map from internal to external. Pass 'hass' as internal port to use the port Home Assistant runs on. Note that you have to enable port_mapping if you wish to map ports. - required: false - type: map - default: open same port on external router as that HASS runs locally and forwards it. - port_mapping: - description: If the component should try to map ports. - required: false - type: boolean - default: false - local_ip: - description: The local IP address of the computer running Home Assistant. - required: false - type: string - default: Try to auto-detect IP of host. +{% configuration %} +port_mapping: + description: If the component should try to map ports. + required: false + type: boolean + default: false +sensors: + description: If the component should enable the UPNP sensors. + required: false + type: boolean + default: true +local_ip: + description: The local IP address of the computer running Home Assistant. + required: false + type: string + default: Try to auto-detect IP of host. +ports: + description: Map of ports to map from internal to external. Pass 'hass' as internal port to use the port Home Assistant runs on. Note that you have to enable port_mapping if you wish to map ports. + required: false + type: map + default: Open same port on external router as that HASS runs locally and forwards it. {% endconfiguration %} diff --git a/source/_components/usps.markdown b/source/_components/usps.markdown index c63a385057a..487344d202b 100644 --- a/source/_components/usps.markdown +++ b/source/_components/usps.markdown @@ -16,7 +16,7 @@ ha_iot_class: "Cloud Polling" The `usps` platform allows one to track deliveries and inbound mail from the [US Postal Service (USPS)](https://www.usps.com/). In addition to having a USPS account, you will need to complete the "Opt-In" process for packages by clicking "Get Started Now" on [this page](https://my.usps.com/mobileWeb/pages/intro/start.action). You must also "Opt-In" to [Informed Delivery](https://informeddelivery.usps.com/box/pages/intro/start.action) to see inbound mail. -## Prerequisites +## {% linkable_title Prerequisites %} This component requires that a headless-capable web browser is installed on your system - either PhantomJS or Google Chrome. Preferably use Chrome if your operating system supports it, since PhantomJS is deprecated. @@ -25,10 +25,10 @@ This component requires that a headless-capable web browser is installed on your

- Hass.io containers are based on Alpine Linux. PhanthomJS is not available for Alpine Linux. Therefore it is currently not possible to use this component on Hass.io. + Hass.io containers are based on Alpine Linux. PhanthomJS is not available for Alpine Linux. Therefore it is currently not possible to use this component on Hass.io.

-### PhantomJS +### {% linkable_title PhantomJS %} Install the latest version of [PhantomJS]( http://phantomjs.org/download.html). Ensure the executable is on your `PATH`. `phantomjs --version` should work and report the correct version. This is the default option and requires no further configuration. @@ -38,18 +38,17 @@ Install the latest version of [PhantomJS]( http://phantomjs.org/download.html). If you use the PhantomJS option, specify `driver: phantomjs` in your `usps` configuration. - -### Chrome +### {% linkable_title Chrome %} Install Chrome 59 or greater (preferably the most recent). Install the latest [Chromedriver](https://sites.google.com/a/chromium.org/chromedriver/downloads). Ensure both executables are on your `PATH`. `google-chrome --version` and `chromedriver --version` should work and report the correct version. OS-specific instructions: - [Ubuntu 16](https://gist.github.com/ziadoz/3e8ab7e944d02fe872c3454d17af31a5) (Selenium server portion *not* necessary) -- [RHEL/Centos 7](https://stackoverflow.com/a/46686621) +- [RHEL/Centos 7](https://stackoverflow.com/a/46686621) If you use the Chrome option, specify `driver: chrome` in your `usps` configuration. -## Configuration +## {% linkable_title Configuration %} To enable this component, add the following lines to your `configuration.yaml`: @@ -62,12 +61,26 @@ usps: You will see two new sensors, one for packages and one for mail and a camera to rotate through images of incoming mail for the current day. -Configuration options for the USPS component: - -- **username** (*Required*): The username to access the MyUSPS service. -- **password** (*Required*): The password for the given username. -- **driver** (*Required*): Specify if you're using `phantomjs` or `chrome`. -- **name** (*Optional*): Prefix for sensor names (defaults to "USPS") +{% configuration %} +username: + description: The username to access the MyUSPS service. + required: true + type: string +password: + description: The password for the given username. + required: true + type: string +driver: + description: Specify if you're using `phantomjs` or `chrome`. + required: false + type: string + default: phantomjs +name: + description: The prefix for sensor names. + required: false + type: string + default: usps +{% endconfiguration %}

The USPS sensor logs into the MyUSPS website to scrape package data. It does not use an API. diff --git a/source/_components/vacuum.dyson.markdown b/source/_components/vacuum.dyson.markdown index b482899130c..50a09628d7c 100644 --- a/source/_components/vacuum.dyson.markdown +++ b/source/_components/vacuum.dyson.markdown @@ -15,7 +15,9 @@ ha_release: 0.51 The `dyson` vacuum platform allows you to control your Dyson 360 Eye robot vacuum. -You have first to setup the [Dyson component](/components/dyson/) +## {% linkable_title Configuration %} + +You have to set up the [Dyson component](/components/dyson/) first. ### {% linkable_title Component services %} diff --git a/source/_components/vacuum.ecovacs.markdown b/source/_components/vacuum.ecovacs.markdown index 144bc7afcd7..85ce3230aca 100644 --- a/source/_components/vacuum.ecovacs.markdown +++ b/source/_components/vacuum.ecovacs.markdown @@ -15,7 +15,9 @@ ha_release: 0.77 The `ecovacs` vacuum platform allows you to monitor and control your Ecovacs Deebot vacuums. -You have first to setup the [Ecovacs component](/components/ecovacs/) +## {% linkable_title Configuration %} + +You have to set up the [Ecovacs component](/components/ecovacs/) first. ### {% linkable_title Component Lifespans %} diff --git a/source/_components/vacuum.markdown b/source/_components/vacuum.markdown index a72a22e7ca5..f0b3bb760b5 100644 --- a/source/_components/vacuum.markdown +++ b/source/_components/vacuum.markdown @@ -11,6 +11,8 @@ footer: true The `vacuum` component enables the ability to control home cleaning robots within Home Assistant. +## {% linkable_title Configuration %} + To use this component in your installation, add a `vacuum` platform to your `configuration.yaml` file, like the [Xiaomi](/components/vacuum.xiaomi_miio/). ```yaml diff --git a/source/_components/vacuum.mqtt.markdown b/source/_components/vacuum.mqtt.markdown index 1777c7cd890..04fb17d504e 100644 --- a/source/_components/vacuum.mqtt.markdown +++ b/source/_components/vacuum.mqtt.markdown @@ -14,6 +14,8 @@ ha_release: 0.54 The `mqtt` vacuum component allows you to control your MQTT-enabled vacuum. +## {% linkable_title Configuration %} + To add your MQTT vacuum to your installation, add the following to your `configuration.yaml` file: ```yaml @@ -229,6 +231,6 @@ MQTT payload: } ``` -### {% linkable_title Retrofitting a non-wifi Roomba with an ESP8266 %} - -- [This repo](https://github.com/johnboiles/esp-roomba-mqtt) has MQTT client firmware for retrofitting your old Roomba. +### {% linkable_title Retrofitting a non-wifi vacuums %} +- Retrofitting your old Roomba with an ESP8266. [This repo](https://github.com/johnboiles/esp-roomba-mqtt) provides MQTT client firmware. +- In you own a non-wifi Neato, you can refer to [this repo](https://github.com/jeroenterheerdt/neato-serial) that uses a Raspberry Pi to retrofit an old Neato. diff --git a/source/_components/vacuum.neato.markdown b/source/_components/vacuum.neato.markdown index bbdd37730b1..9ed678cfb61 100644 --- a/source/_components/vacuum.neato.markdown +++ b/source/_components/vacuum.neato.markdown @@ -18,9 +18,11 @@ 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.

+## {% linkable_title Configuration %} + To add `neato` vacuum to your installation, please follow instructions in [Neato component](/components/neato/). Currently supported services are: diff --git a/source/_components/vacuum.roomba.markdown b/source/_components/vacuum.roomba.markdown index 2186f1666aa..d7a242c9ce7 100644 --- a/source/_components/vacuum.roomba.markdown +++ b/source/_components/vacuum.roomba.markdown @@ -18,6 +18,8 @@ The `roomba` component allows you to control your [iRobot Roomba](http://www.iro This platform has only been tested with an iRobot Roomba 980 but should work find with any Wi-Fi enabled Roomba like the 690, 890 or the 960.

+## {% linkable_title Configuration %} + To add your Roomba vacuum to your installation, add the following to your `configuration.yaml` file: ```yaml @@ -31,7 +33,7 @@ vacuum: {% configuration %} host: - description: Hostname or IP address of the Roomba. + description: The hostname or IP address of the Roomba. required: true type: string username: @@ -45,18 +47,18 @@ password: name: description: The name of the vacuum. required: false - default: Roomba type: string + default: Roomba certificate: description: Path to your certificate store. required: false - default: /etc/ssl/certs/ca-certificates.crt type: string + default: /etc/ssl/certs/ca-certificates.crt continuous: description: Whether to operate in continuous mode. required: false - default: true type: boolean + default: true {% endconfiguration %}

diff --git a/source/_components/vacuum.xiaomi_miio.markdown b/source/_components/vacuum.xiaomi_miio.markdown index 34f5ea169a4..500e176081c 100644 --- a/source/_components/vacuum.xiaomi_miio.markdown +++ b/source/_components/vacuum.xiaomi_miio.markdown @@ -26,11 +26,11 @@ Currently supported services are: - `set_fan_speed` - remote control of your robot. +## {% linkable_title Configuration %} + Please follow [Retrieving the Access Token](/components/vacuum.xiaomi_miio/#retrieving-the-access-token) to retrieve the API token used in `configuration.yaml`. -## {% linkable_title Configuring the Platform %} - To add a vacuum to your installation, add the following to `configuration.yaml`: ```yaml @@ -41,18 +41,19 @@ vacuum: ``` {% configuration %} - host: - description: The IP of your robot. - required: true - type: string - token: - description: The API token of your robot. - required: true - type: string - name: - description: The name of your robot. - required: false - type: string +host: + description: The IP address of your robot. + required: true + type: string +token: + description: The API token of your robot. + required: true + type: string +name: + description: The name of your robot. + required: false + type: string + default: Xiaomi Vacuum cleaner {% endconfiguration %} ## {% linkable_title Platform Services %} @@ -133,8 +134,8 @@ The following table shows the units of measurement for each attribute: ## {% linkable_title Retrieving the Access Token %}

-As per [python-miio issue 185](https://github.com/rytilahti/python-miio/issues/185) the Android Mi-Home app no longer stores the token within the database (it's retrieved from Xiaomi servers from version 5.0.31+). Currently the only known fix is to uninstall, then install a downgraded version of the apk. Apkmirror is a trusted source for older versions of the app. [Mi-Home version 5.0.0](https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-0-release/) is confirmed as working for the following Android methods. - +As per [python-miio issue 185](https://github.com/rytilahti/python-miio/issues/185) the Android Mi Home app no longer stores the token within the database (it's retrieved from Xiaomi servers from version 5.0.31+). Currently the only known fix is to uninstall, then install a downgraded version of the apk. Apkmirror is a trusted source for older versions of the app. [Mi-Home version 5.0.30](https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-30-release/) is confirmed as working for the following Android methods. Using older version than 5.0.30 is not recommended as it might lack support for some newer devices like the Roborock S50. + The iPhone app still stores the token in the sqlite db as of v4.7.18 (July 17, 2018). This token (32 hexadecimal characters) is required for the Xiaomi Mi Robot Vacuum, Mi Robot 2 (Roborock) Vacuum, Xiaomi Philips Lights and Xiaomi IR Remote. The Xiaomi Gateway uses another security method and requires a `key` (16 alphanumeric chars), which can be obtained @@ -185,6 +186,7 @@ To fetch the token follow these instructions depending on your mobile phone plat 5. Click "Extract Token" 6. On the phone, you must confirm the backup. DO NOT enter any password and press the button to make the backup. 7. Once you have confirmed the backup the token extraction will begin, it should appear in the MiToolKit shortly. +8. If you don't get a token, close MiToolKit completely, delete the folder MiToolkit\apps\com.xiaomi.smarthome and relaunch MiToolKit to force recreate a new backup (sometimes the files would not be overwritten before deleting the old ones) #### {% linkable_title Linux and Android (not rooted) %} @@ -258,3 +260,10 @@ To fetch the token follow these instructions depending on your mobile phone plat 12. Copy the returned 32-digit hexadecimal string to your clipboard. 13. Open `Terminal` and execute this command: `echo '0: ' | xxd -r -p | openssl enc -d -aes-128-ecb -nopad -nosalt -K 00000000000000000000000000000000` 14. Use the resulting string as your token. + +#### {% linkable_title Bluestacks %} + +1. Configure the robot with the Mi-Home app. +2. Install [BlueStacks](https://www.bluestacks.com). +3. Set up the Mi-Home app in BlueStacks and login to synchronize devices. +4. Use [BlueStacks Tweaker](https://forum.xda-developers.com/general/general/bluestacks-tweaker-2-tool-modifing-t3622681) to access the filesystem and retrieve the token. diff --git a/source/_components/velux.markdown b/source/_components/velux.markdown index 171b0f5c422..2a6731b25e3 100644 --- a/source/_components/velux.markdown +++ b/source/_components/velux.markdown @@ -15,6 +15,8 @@ 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. +## {% linkable_title Configuration %} + A `velux` section must be present in the `configuration.yaml` file and contain the following options as required: ```yaml diff --git a/source/_components/vera.markdown b/source/_components/vera.markdown index df3f6e31c62..94de436693d 100644 --- a/source/_components/vera.markdown +++ b/source/_components/vera.markdown @@ -16,6 +16,8 @@ The [Vera](http://getvera.com) hub is a controller mainly connecting to Z-Wave d Switches, Lights (inc Dimmers), Locks, Sensors, Binary sensors, and Scenes are supported - and will be automatically added when HA connects to your Vera controller. +## {% linkable_title Configuration %} + To use Vera devices in your installation, add the following to your configuration.yaml file using the IP and port number of your Vera controller: ```yaml @@ -34,7 +36,7 @@ vera_controller_url: 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.

-### {% linkable_title Configure devices %} +### {% linkable_title Configure devices %} By default your switches will be added to Home Assistant as switches, however, if some of them are light switches, you can tell Home Assistant this using the optional `lights` parameter as shown below. @@ -51,6 +53,6 @@ vera: lights: [15, 17, 19, 21, 22, 24, 26, 43, 64, 70, 87] ``` -### {% linkable_title Using Z-Wave devices in automation %} +### {% linkable_title Using Z-Wave devices in automation %} If you want to use a Z-Wave device from the Vera controller in Home Assistant automation, you'll need the entity id. In the Home Assistant UI you'll find all entities listed under the service developer tool icon icon of the Developer Tools section. Look for entities that contain 'Vera Device Id' in their attributes, and you'll find the entity id on the left. diff --git a/source/_components/verisure.markdown b/source/_components/verisure.markdown index 49dd80958e1..5e14d2236d2 100644 --- a/source/_components/verisure.markdown +++ b/source/_components/verisure.markdown @@ -24,6 +24,8 @@ We support: * [Locks](/components/lock.verisure/) * [Door & Window](/components/binary_sensor.verisure/) + ## {% linkable_title Configuration %} + To integrate Verisure with Home Assistant, add the following section to your `configuration.yaml` file: ```yaml @@ -43,45 +45,45 @@ password: required: true type: string alarm: - description: Set to true to show alarm, false to disable. + description: Set to `true` to show alarm, `false` to disable. required: false - default: true type: boolean + default: true hygrometers: - description: Set to true to show hygrometers, false to disable. + description: Set to `true` to show hygrometers, `false` to disable. required: false - default: true type: boolean + default: true smartplugs: - description: Set to true to show smartplugs, false to disable. + description: Set to `true` to show smartplugs, `false` to disable. required: false - default: true type: boolean + default: true locks: - description: Set to true to show locks, false to disable. + description: Set to `true` to show locks, `false` to disable. required: false - default: true type: boolean + default: true thermometers: - description: Set to true to show thermometers, false to disable. + description: Set to `true` to show thermometers, `false` to disable. required: false - default: true type: boolean + default: true mouse: - description: Set to true to show mouse detectors, false to disable. + description: Set to `true` to show mouse detectors, `false` to disable. required: false - default: true type: boolean + default: true door_window: - description: Set to true to show mouse detectors, false to disable. + description: Set to `true` to show mouse detectors, `false` to disable. required: false - default: true type: boolean + default: true code_digits: description: Number of digits in PIN code. required: false - default: 4 type: integer + default: 4 giid: description: The GIID of your installation (If you have more then one alarm system). To find the GIID for your systems run 'python verisure.py EMAIL PASSWORD installations'. required: false diff --git a/source/_components/volvooncall.markdown b/source/_components/volvooncall.markdown index d4028a46e4b..3ed8aa1e092 100644 --- a/source/_components/volvooncall.markdown +++ b/source/_components/volvooncall.markdown @@ -13,7 +13,6 @@ ha_release: 0.39 ha_iot_class: "Cloud Polling" --- - The `volvooncall` component offers integration with the [Volvo On Call](http://www.volvocars.com/intl/own/connectivity/volvo-on-call) cloud service and offers presence detection as well as sensors such as odometer and fuel level. ## {% linkable_title Configuration %} @@ -90,6 +89,6 @@ resources: scandinavian_miles: description: If set to true, Scandinavian miles ("mil") are used for distances and fuel range. required: false - defaults: false type: boolean + default: false {% endconfiguration %} diff --git a/source/_components/vultr.markdown b/source/_components/vultr.markdown index 98051d2038c..f5313ff065e 100644 --- a/source/_components/vultr.markdown +++ b/source/_components/vultr.markdown @@ -14,9 +14,10 @@ logo: vultr.png ha_iot_class: "Cloud Polling" --- - The `vultr` component allows you to access information about and interact with your [Vultr](https://www.vultr.com) subscriptions (Virtual Private Servers) from Home Assistant. +## {% linkable_title Configuration %} + Obtain your API key from your [Vultr Account](https://my.vultr.com/settings/#settingsapi).

@@ -28,7 +29,7 @@ To integrate your Vultr subscriptions with Home Assistant, add the following sec ```yaml # Example configuration.yaml entry vultr: - api_key: ABCDEFG12345 + api_key: YOUR_API_KEY ``` {% configuration %} @@ -37,4 +38,3 @@ api_key: required: true type: string {% endconfiguration %} - diff --git a/source/_components/wake_on_lan.markdown b/source/_components/wake_on_lan.markdown index 87603ad2338..da7e5831afb 100644 --- a/source/_components/wake_on_lan.markdown +++ b/source/_components/wake_on_lan.markdown @@ -37,7 +37,6 @@ Send a _magic packet_ to wake up a device with 'Wake-On-LAN' capabilities. | `mac` | no | MAC address of the device to wake up. | | `broadcast_address` | yes | Optional broadcast IP where to send the magic packet. | - Sample service data: ```json @@ -45,4 +44,3 @@ Sample service data: "mac":"00:40:13:ed:f1:32" } ``` - 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/water_heater.wink.markdown b/source/_components/water_heater.wink.markdown new file mode 100644 index 00000000000..aa648d350b9 --- /dev/null +++ b/source/_components/water_heater.wink.markdown @@ -0,0 +1,28 @@ +--- +layout: page +title: "Wink Water Heater" +description: "Instructions on how to setup the Wink water heaters within Home Assistant." +date: 2016-11-01 22:36 +sidebar: true +comments: false +sharing: true +footer: true +logo: wink.png +ha_category: water heater +ha_release: 0.32 +ha_iot_class: "Cloud Polling" +--- + +The Wink water heater platform allows you to get data from your [Wink](http://www.wink.com/) Water Heaters. + +The requirement is that you have setup [Wink](/components/wink/). + + +### {% linkable_title Supported water heaters %} + +- Rheem Econet water heaters (No Wink hub required) + + +

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

diff --git a/source/_components/waterfurnace.markdown b/source/_components/waterfurnace.markdown index 15a88eb8565..bc45420f464 100644 --- a/source/_components/waterfurnace.markdown +++ b/source/_components/waterfurnace.markdown @@ -53,10 +53,8 @@ unit: type: string {% endconfiguration %} - #### {% linkable_title Limitations %} The WebSocket interface used by this module requires active polling, otherwise the server side shuts down the connection. By default, this polling is happening every 10 seconds. All sensors are updated during every polling cycle. While this is communicating with a thermostat, geothermal systems operate most efficiently when setbacks are not used, and the home is kept at a constant temperature. It remains useful to collect the data from the system to understand its performance, but a full climate interface won't be implemented. - diff --git a/source/_components/watson_iot.markdown b/source/_components/watson_iot.markdown index b5c30202d49..0014d5e24da 100644 --- a/source/_components/watson_iot.markdown +++ b/source/_components/watson_iot.markdown @@ -83,7 +83,6 @@ include: type: list {% endconfiguration %} - ## {% linkable_title Examples %} ### {% linkable_title Full configuration %} diff --git a/source/_components/weather.bom.markdown b/source/_components/weather.bom.markdown index fe26c58337a..025dcd50dd1 100644 --- a/source/_components/weather.bom.markdown +++ b/source/_components/weather.bom.markdown @@ -33,8 +33,8 @@ name: station: description: "The station ID string. See the [`sensor.bom` docs](/components/sensor.bom/) for details on how to find the ID of a station." required: optional - default: The closest station type: string + default: The closest station {% endconfiguration %}

diff --git a/source/_components/weather.buienradar.markdown b/source/_components/weather.buienradar.markdown index 8ec59346cc8..505c84bae90 100644 --- a/source/_components/weather.buienradar.markdown +++ b/source/_components/weather.buienradar.markdown @@ -41,12 +41,14 @@ longitude: required: false type: float forecast: - description: "'True' to add a temperature forecast, 'False' to suppress it." + description: "`true` to add a temperature forecast, `false` to suppress it." required: false - default: true type: boolean + default: true {% endconfiguration %} +### {% linkable_title Full configuration %} + A full configuration example: ```yaml diff --git a/source/_components/weather.ipma.markdown b/source/_components/weather.ipma.markdown index 02141227ead..68f4cf67a88 100644 --- a/source/_components/weather.ipma.markdown +++ b/source/_components/weather.ipma.markdown @@ -22,23 +22,23 @@ To add the IPMA weather platform to your installation, add the following to your ```yaml # Example configuration.yaml entry weather: - - platform: ipma + - platform: ipma ``` {% configuration %} name: description: The name you would like to give to the weather station. - required: false - default: The name of the used station + required: false type: string + default: The name of the used station latitude: description: Latitude of the location for which you want weather information. - required: false - default: Home Assistant global latitude configuration + required: false type: string + default: Home Assistant global latitude configuration longitude: description: Longitude of the location for which you want weather information. - required: false - default: Home Assistant global longitude configuration + required: false type: string + default: Home Assistant global longitude configuration {% endconfiguration %} diff --git a/source/_components/weather.markdown b/source/_components/weather.markdown index e558c1a29bc..fa199a2d666 100644 --- a/source/_components/weather.markdown +++ b/source/_components/weather.markdown @@ -9,7 +9,7 @@ sharing: true footer: true --- -The `weather` platforms are gathering meteorological information from web services and display the conditions and other details about the weather at the given location. +The `weather` platforms are gathering meteorological information from web services and display the conditions and other details about the weather at the given location. Home Assistant currently supports free web services and such which require a registration. Please check the sidebar for a full list of supported `weather` platforms. @@ -32,4 +32,3 @@ The `weather` platform only knows the below listed conditions. The reason for th - 'windy' - 'windy-variant' - 'exceptional': - diff --git a/source/_components/weather.met.markdown b/source/_components/weather.met.markdown index 1c31f4a0357..3cdd8145b8c 100644 --- a/source/_components/weather.met.markdown +++ b/source/_components/weather.met.markdown @@ -24,7 +24,6 @@ weather: - platform: met ``` - {% configuration %} latitude: description: Manually specify latitude. By default the value will be taken from the Home Assistant configuration. diff --git a/source/_components/weather.metoffice.markdown b/source/_components/weather.metoffice.markdown index df624d2a9ca..37d41463dbd 100644 --- a/source/_components/weather.metoffice.markdown +++ b/source/_components/weather.metoffice.markdown @@ -26,12 +26,27 @@ 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 + type: string + default: Met Office +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. The weather platform is easier to configure but less customizable.

- diff --git a/source/_components/weather.openweathermap.markdown b/source/_components/weather.openweathermap.markdown index f0d9d1f93bb..1d83077ef80 100644 --- a/source/_components/weather.openweathermap.markdown +++ b/source/_components/weather.openweathermap.markdown @@ -30,29 +30,29 @@ weather: {% configuration %} api_key: - required: true description: Your API key for [OpenWeatherMap](http://openweathermap.org/). + required: true type: string name: - required: false description: Name to use in the frontend. + required: false + type: string 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`" + required: false type: string + default: "`hourly`" 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 + default: "The latitude in your `configuration.yaml` file." +longitude: + description: Longitude of the location to display the weather. + required: false + type: float + default: "The longitude in your `configuration.yaml` file." {% endconfiguration %}

diff --git a/source/_components/weather.smhi.markdown b/source/_components/weather.smhi.markdown new file mode 100644 index 00000000000..4eb17355a5b --- /dev/null +++ b/source/_components/weather.smhi.markdown @@ -0,0 +1,21 @@ +--- +layout: page +title: "SMHI Weather" +description: "Instructions on how to integrate SMHI forecasts within Homeassistant." +date: 2018-09-23 20:00 +sidebar: true +comments: false +sharing: true +footer: true +featured: true +logo: smhi.png +ha_category: Weather +ha_release: 0.81 +ha_iot_class: "Cloud Polling" +--- + +The `smhi` platform uses the [SMHI.se](https://www.smhi.se/) web service as a source for meteorological data for your location. + +## {% linkable_title Configuration %} + +Please see the [component](/components/smhi/) documentation for details and configuration. \ No newline at end of file diff --git a/source/_components/weather.yweather.markdown b/source/_components/weather.yweather.markdown index 055f9daa0ec..7f9744a3938 100644 --- a/source/_components/weather.yweather.markdown +++ b/source/_components/weather.yweather.markdown @@ -12,7 +12,6 @@ ha_category: Weather ha_release: 0.47 --- - The `yweather` platform uses [Yahoo Weather](https://www.yahoo.com/news/weather/) as a source for current meteorological data. This component will show you the condition and temperatures for max. 10 days.

@@ -39,8 +38,8 @@ woeid: 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 + default: yweather {% endconfiguration %}

diff --git a/source/_components/weather.zamg.markdown b/source/_components/weather.zamg.markdown index dd62ceec3dc..486f6d7fded 100644 --- a/source/_components/weather.zamg.markdown +++ b/source/_components/weather.zamg.markdown @@ -29,23 +29,23 @@ weather: {% configuration %} station_id: - required: false description: The ID number for a supported ZAMG station. + required: false type: string name: - required: false description: A name for the weather platform. + required: false 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 + default: "Defaults to coordinates defined in your `configuration.yaml` file." +longitude: + description: "Longitude coordinate to monitor weather of (required if **latitude** is specified)." + required: false + type: float + default: "Defaults to coordinates defined in your `configuration.yaml` file." {% endconfiguration %}

diff --git a/source/_components/weblink.markdown b/source/_components/weblink.markdown index e145d62e1be..4e05396cdf1 100644 --- a/source/_components/weblink.markdown +++ b/source/_components/weblink.markdown @@ -15,6 +15,8 @@ ha_qa_scale: internal The `weblink` component allows you to display links in the Home Assistant frontend. +## {% linkable_title Configuration %} + To use this component in your installation, add something like the following to your `configuration.yaml` file: ```yaml diff --git a/source/_components/websocket_api.markdown b/source/_components/websocket_api.markdown index 4457f2feeac..ca35aeb0678 100644 --- a/source/_components/websocket_api.markdown +++ b/source/_components/websocket_api.markdown @@ -18,6 +18,8 @@ The `websocket_api` component set up a WebSocket API and allows one to interact It is HIGHLY recommended that you set the `api_password`, especially if you are planning to expose your installation to the internet.

+## {% linkable_title Configuration %} + ```yaml # Example configuration.yaml entry websocket_api: diff --git a/source/_components/wemo.markdown b/source/_components/wemo.markdown index af752d9e99a..71f734402ab 100644 --- a/source/_components/wemo.markdown +++ b/source/_components/wemo.markdown @@ -15,6 +15,8 @@ ha_release: pre 0.7 The `wemo` component is the main component to integrate various [Belkin WeMo](http://www.belkin.com/us/Products/home-automation/c/wemo-home-automation/) devices with Home Assistant. +## {% linkable_title Configuration %} + Supported devices will be automatically discovered if the discovery component is enabled. Loading the `wemo` component will scan the local network for WeMo devices, even if you are not using the discovery component ```yaml diff --git a/source/_components/wink.markdown b/source/_components/wink.markdown index ade545e1374..b26f93bf50c 100644 --- a/source/_components/wink.markdown +++ b/source/_components/wink.markdown @@ -78,8 +78,8 @@ client_secret: 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 + default: false {% endconfiguration %} Local control: diff --git a/source/_components/wirelesstag.markdown b/source/_components/wirelesstag.markdown index d4e229d4a16..bd92d2ee6ce 100644 --- a/source/_components/wirelesstag.markdown +++ b/source/_components/wirelesstag.markdown @@ -15,6 +15,8 @@ ha_release: 0.68 The `wirelesstag` implementation allows you to integrate your [wirelesstag.net](http://wirelesstag.net) sensors tags in Home Assistant. +## {% linkable_title Configuration %} + To enable tags set up with your [wirelesstag.net](http://wirelesstag.net) account, add the following to your `configuration.yaml` file: ```yaml @@ -25,14 +27,14 @@ wirelesstag: ``` {% configuration %} - username: - description: Username for your [wirelesstag.net](http://wirelesstag.net) account. - required: true - type: string - password: - description: Password for your [wirelesstag.net](http://wirelesstag.net) account. - required: true - type: string +username: + description: Username for your wirelesstag.net account. + required: true + type: string +password: + description: Password for your wirelesstag.net account. + required: true + type: string {% endconfiguration %} Finish your configuration by visiting the [WirelessTag binary sensor](/components/binary_sensor.wirelesstag/), [WirelessTag sensor](/components/sensor.wirelesstag/), or [WirelessTag switch](/components/switch.wirelesstag/) documentation. @@ -44,4 +46,4 @@ Finish your configuration by visiting the [WirelessTag binary sensor](/component

Tags Manager supports local push notifications for `http` schema only. So if your hass uses `https`, local push notifications are disabled and data is received via cloud polling. -

\ No newline at end of file +

diff --git a/source/_components/xiaomi_aqara.markdown b/source/_components/xiaomi_aqara.markdown index 5c6fa1016ba..c01577030b0 100644 --- a/source/_components/xiaomi_aqara.markdown +++ b/source/_components/xiaomi_aqara.markdown @@ -92,38 +92,38 @@ xiaomi_aqara: ``` {% configuration %} - gateways: - description: A list of gateways to set up. - required: true - type: map - keys: - mac: - description: The MAC address of your gateway. *Optional if only using one gateway.* - required: false - type: string - key: - description: The key of your gateway. *Optional if only using sensors and/or binary sensors.* - required: false - type: string - host: - description: The host/IP address of the gateway. If this parameter is used the multicast discovery of the gateway is skipped. - required: false - type: string - disable: - description: Disable the gateway. This is only useful if you don't want to integrate a specific gateway. - required: false - type: boolean - default: false - discovery_retry: - description: Number of times that Home Assistant should try to reconnect to the gateway. - required: false - type: integer - default: 3 - interface: - description: Which network interface to use. - required: false - type: string - default: any +gateways: + description: A list of gateways to set up. + required: true + type: map + keys: + mac: + description: The MAC address of your gateway. *Optional if only using one gateway.* + required: false + type: string + key: + description: The key of your gateway. *Optional if only using sensors and/or binary sensors.* + required: false + type: string + host: + description: The host/IP address of the gateway. If this parameter is used the multicast discovery of the gateway is skipped. + required: false + type: string + disable: + description: Disable the gateway. This is only useful if you don't want to integrate a specific gateway. + required: false + type: boolean + default: false +discovery_retry: + description: Number of times that Home Assistant should try to reconnect to the gateway. + required: false + type: integer + default: 3 +interface: + description: Which network interface to use. + required: false + type: string + default: any {% endconfiguration %} ### {% linkable_title Services %} @@ -274,4 +274,3 @@ That means that Home Assistant is not getting any response from your Xiaomi gate - If you are using Home Assistant in [Docker](/docs/installation/docker/), make sure to use `--net=host`. - If you receive an `{"error":"Invalid key"}` in your log while trying to control the gateway light, you should generate the key again using an Android Phone or alternatively an emulator such as [bluestacks](https://www.bluestacks.com). In some instances there is an issue with keys being generated using the iOS application. - If the required library "PyXiaomiGateway" cannot be installed you will need to install some missing system dependencies `python3-dev`, `libssl-dev`, `libffi-dev` manually (e.g., `$ sudo apt-get install python3-dev libssl-dev libffi-dev`). - diff --git a/source/_components/zabbix.markdown b/source/_components/zabbix.markdown index 1056bef232c..fe317fce810 100644 --- a/source/_components/zabbix.markdown +++ b/source/_components/zabbix.markdown @@ -34,13 +34,13 @@ host: path: description: Path to your Zabbix install. required: false - default: "`/zabbix/`" type: string + default: "`/zabbix/`" ssl: description: Set to `True` if your Zabbix installation is using SSL. required: false - default: false type: boolean + default: false username: description: Your Zabbix username. required: false diff --git a/source/_components/zeroconf.markdown b/source/_components/zeroconf.markdown index d1459fdd1b1..d2e8908adea 100644 --- a/source/_components/zeroconf.markdown +++ b/source/_components/zeroconf.markdown @@ -14,6 +14,8 @@ ha_release: 0.18 The `zeroconf` component exposes your Home Assistant to the local network using [Zeroconf](https://en.wikipedia.org/wiki/Zero-configuration_networking). Zeroconf is also sometimes known as Bonjour, Rendezvous, and Avahi. +## {% linkable_title Configuration %} + To integrate this into Home Assistant, add the following section to your `configuration.yaml` file: ```yaml @@ -21,7 +23,7 @@ To integrate this into Home Assistant, add the following section to your `config zeroconf: ``` -The registration will include meta-data about the Home Assistant instance, including a base URL that can be used to access Home Assistant, the currently running Home Assistant version, and whether an API password is needed to access the instance. The examples below show two ways to retrieve the details for testing. +The registration will include meta-data about the Home Assistant instance, including a base URL that can be used to access Home Assistant, the currently running Home Assistant version, and whether an API password is needed to access the instance. The examples below show two ways to retrieve the details for testing. ```bash $ avahi-browse -alr @@ -39,6 +41,6 @@ Browsing domain 'local' on -1.-1 ... Browsing for services of type '_home-assistant._tcp' in domain 'local' on 4.0 ... Found service 'Home' of type '_home-assistant._tcp' in domain 'local' on 4.0. Service data for service 'Home' of type '_home-assistant._tcp' in domain 'local' on 4.0: - Host Home._home-assistant._tcp.local (192.168.0.70), port 8123, TXT data: + Host Home._home-assistant._tcp.local (192.168.0.70), port 8123, TXT data: ['requires_api_password=true', 'base_url=http://192.168.0.70:8123', 'version=0.41.0'] ``` diff --git a/source/_components/zha.markdown b/source/_components/zha.markdown index 477b89178c7..2bc206d73d5 100644 --- a/source/_components/zha.markdown +++ b/source/_components/zha.markdown @@ -13,8 +13,8 @@ ha_release: 0.44 ha_iot_class: "Local Polling" --- -[ZigBee Home Automation](http://www.zigbee.org/zigbee-for-developers/applicationstandards/zigbeehomeautomation/) -integration for Home Assistant allows you to connect many off-the-shelf ZigBee devices to Home Assistant, using a compatible ZigBee radio. +[Zigbee Home Automation](http://www.zigbee.org/zigbee-for-developers/applicationstandards/zigbeehomeautomation/) +integration for Home Assistant allows you to connect many off-the-shelf Zigbee devices to Home Assistant, using a compatible Zigbee radio. There is currently support for the following device types within Home Assistant: @@ -24,12 +24,14 @@ There is currently support for the following device types within Home Assistant: - [Switch](../switch.zha) - [Fan](../fan.zha) -Known working ZigBee radios: +Known working Zigbee radios: - Nortek/GoControl Z-Wave & Zigbee USB Adapter - Model HUSBZB-1 - XBee Series 2C -- [Elelabs ZigBee USB Adapter](https://elelabs.com/products/elelabs_usb_adapter.html) -- [Elelabs ZigBee Raspberry Pi Shield](https://elelabs.com/products/elelabs_zigbee_shield.html) +- [Elelabs Zigbee USB Adapter](https://elelabs.com/products/elelabs_usb_adapter.html) +- [Elelabs Zigbee Raspberry Pi Shield](https://elelabs.com/products/elelabs_zigbee_shield.html) + +## {% linkable_title Configuration %} To configure the component, a `zha` section must be present in the `configuration.yaml`, and the path to the serial device for the radio and path to the database which will persist your network data is required. @@ -45,8 +47,8 @@ zha: radio_type: description: One of `ezsp` or `xbee`. required: false - default: ezsp type: string + default: ezsp usb_path: description: Path to the serial device for the radio. required: true @@ -54,8 +56,8 @@ usb_path: baudrate: description: Baud rate of the serial device. required: false - default: 57600 type: integer + default: 57600 database_path: description: _Full_ path to the database which will keep persistent network data. required: true diff --git a/source/_components/zigbee.markdown b/source/_components/zigbee.markdown index e2b3b2429bd..d43c7051ff1 100644 --- a/source/_components/zigbee.markdown +++ b/source/_components/zigbee.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "ZigBee" -description: "Instructions on how to integrate a ZigBee network with Home Assistant." +title: "Zigbee" +description: "Instructions on how to integrate a Zigbee network with Home Assistant." date: 2016-01-27 17:10 sidebar: true comments: false @@ -13,7 +13,7 @@ ha_release: 0.12 ha_iot_class: "Local Polling" --- -[ZigBee](http://www.zigbee.org/what-is-zigbee/) integration for Home Assistant allows you to utilize modules such as the [XBee](http://www.digi.com/lp/xbee) as wireless General Purpose Input/Output (GPIO) devices. The component requires a local ZigBee device to be connected to a serial port. Through this it will send and receive commands to and from other devices on the ZigBee mesh network. +[Zigbee](http://www.zigbee.org/what-is-zigbee/) integration for Home Assistant allows you to utilize modules such as the [XBee](http://www.digi.com/lp/xbee) as wireless General Purpose Input/Output (GPIO) devices. The component requires a local Zigbee device to be connected to a serial port. Through this it will send and receive commands to and from other devices on the Zigbee mesh network. There is currently support for the following device types within Home Assistant: @@ -22,7 +22,9 @@ There is currently support for the following device types within Home Assistant: - [Light](../light.zigbee) (digital output pins) - [Switch](../switch.zigbee) (digital output pins) -The local ZigBee device (assuming XBee) must have an up to date Router or Coordinator API firmware installed. +## {% linkable_title Configuration %} + +The local Zigbee device (assuming XBee) must have an up to date Router or Coordinator API firmware installed. A `zigbee` section must be present in the `configuration.yaml` file and contain the following options as required: @@ -33,15 +35,15 @@ zigbee: {% configuration %} device: - description: The serial port to which the local ZigBee device is connected. + description: The serial port to which the local Zigbee device is connected. required: false - default: "/dev/ttyUSB0" type: string + default: "`/dev/ttyUSB0`" baud: - description: The baud rate at which to communicate with the local ZigBee device. + description: The baud rate at which to communicate with the local Zigbee device. required: false - default: 9600 type: integer + default: 9600 {% endconfiguration %} To find the possible serial port names of your device, run: @@ -51,7 +53,7 @@ $ ls /dev/ttyUSB* ```

-The port may also appear as /dev/ttyACM* if you're communicating with the ZigBee device through an Arduino. +The port may also appear as /dev/ttyACM* if you're communicating with the Zigbee device through an Arduino.

### {% linkable_title Example %} diff --git a/source/_components/zone.markdown b/source/_components/zone.markdown index 1e5125b71c1..caeb22e761a 100644 --- a/source/_components/zone.markdown +++ b/source/_components/zone.markdown @@ -53,8 +53,8 @@ longitude: radius: description: The radius of the zone in meters. required: false - default: 100 type: integer + default: 100 icon: description: The icon to show instead of name. required: false @@ -62,8 +62,8 @@ icon: 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 + default: false {% 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 520366e14e8..614a5ce022b 100644 --- a/source/_components/zoneminder.markdown +++ b/source/_components/zoneminder.markdown @@ -16,6 +16,8 @@ ha_iot_class: "Local Polling" The ZoneMinder component sets up the integration with your [ZoneMinder](https://www.zoneminder.com) instance so that [cameras](/components/camera.zoneminder/), [sensors](/components/sensor.zoneminder/), and [switches](/components/switch.zoneminder) can use it. +## {% linkable_title Configuration %} + ```yaml # Example configuration.yaml entry zoneminder: @@ -30,23 +32,23 @@ host: path: description: Path to your ZoneMinder install. required: false - default: "`/zm/`" type: string + default: "`/zm/`" 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 + default: "`/zm/cgi-bin/nph-zms`" ssl: description: Set to `true` if your ZoneMinder installation is using SSL. required: false - default: false type: boolean + default: false verify_ssl: description: Verify the certification of the endpoint. required: false - default: true type: boolean + default: true username: description: Your ZoneMinder username. required: false @@ -70,3 +72,19 @@ zoneminder: 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/_components/zwave.markdown b/source/_components/zwave.markdown index 9dd4811b3e4..33c11eeccd3 100644 --- a/source/_components/zwave.markdown +++ b/source/_components/zwave.markdown @@ -15,6 +15,8 @@ ha_iot_class: "Local Push" The [Z-Wave](http://www.z-wave.com/) integration for Home Assistant allows you to observe and control connected Z-Wave devices. Please see the [Z-Wave getting started section](/docs/z-wave/) for in-depth documentation on how to use and setup the Z-Wave component. +## {% linkable_title Configuration %} + If you have setup the requirements, then add the following entry `configuration.yaml` file: ```yaml diff --git a/source/_cookbook/configuration_yaml_by_klaasnicolaas.markdown b/source/_cookbook/configuration_yaml_by_klaasnicolaas.markdown new file mode 100644 index 00000000000..5329cff8c32 --- /dev/null +++ b/source/_cookbook/configuration_yaml_by_klaasnicolaas.markdown @@ -0,0 +1,12 @@ +--- +layout: page +title: "Configuration.yaml by klaasnicolaas" +description: "" +date: 2018-10-19 15:40 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Example configuration.yaml +ha_external_link: https://github.com/klaasnicolaas/Smarthome-homeassistant-config +--- diff --git a/source/_docs/authentication.markdown b/source/_docs/authentication.markdown index f2e984cf30a..8d711c416af 100644 --- a/source/_docs/authentication.markdown +++ b/source/_docs/authentication.markdown @@ -40,6 +40,10 @@ As a user, you can setup multi-factor authentication with time-based one-time pa ## {% linkable_title Troubleshooting %} +### {% linkable_title Authentication failures from `127.0.0.1` %} + +If you're seeting authentication failures from `127.0.0.1` and you're using the `nmap` device tracker, you should [exclude the Home Assistant IP](/components/device_tracker.nmap_tracker/#exclude) from being scanned. + ### {% linkable_title Bearer token warnings %} Under the new authentication system you'll see the following warning logged when the [legacy API password](/docs/authentication/providers/#legacy-api-password) is supplied, but not configured in Home Assistant: diff --git a/source/_docs/backend/database.markdown b/source/_docs/backend/database.markdown index 652ef13f05f..199466b4c43 100644 --- a/source/_docs/backend/database.markdown +++ b/source/_docs/backend/database.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Database" -description: "Details about the database which Home Assistant is using." +description: "Details about the database used by Home Assistant." date: 2016-10-10 10:00 sidebar: true comments: false @@ -10,14 +10,16 @@ footer: true redirect_from: /details/database/ --- -The default database that is used for Home Assistant is [SQLite](https://www.sqlite.org/) and is stored in your [configuration directory](/getting-started/configuration/) (e.g., `/.homeassistant/home-assistant_v2.db`). You will need an installation of `sqlite3`, the command-line for SQLite database, or [DB Browser for SQLite](http://sqlitebrowser.org/), which provides an editor for executing SQL commands. +The default database used by Home Assistant is [SQLite](https://www.sqlite.org/) and is stored in your [configuration directory](/getting-started/configuration/) (e.g., `/.homeassistant/home-assistant_v2.db`). To change the database, use the [`recorder` component](/components/recorder/). + +To work with the SQLite database manually, you will need an installation of `sqlite3`, the command-line for SQLite database, or [DB Browser for SQLite](http://sqlitebrowser.org/), which provides an editor for executing SQL commands. First load your database with `sqlite3`: ```bash -$ sqlite3 home-assistant_v2.db +$ sqlite3 home-assistant_v2.db SQLite version 3.13.0 2016-05-18 10:57:30 Enter ".help" for usage hints. -sqlite> +sqlite> ``` It helps to set some options to make the output more readable: @@ -33,7 +35,7 @@ You could also start `sqlite3` and attach the database later. Not sure what data sqlite> .databases seq name file --- --------------- ---------------------------------------------------------- -0 main /home/fab/.homeassistant/home-assistant_v2.db +0 main /home/fab/.homeassistant/home-assistant_v2.db ``` ### {% linkable_title Schema %} @@ -45,40 +47,40 @@ sqlite> SELECT sql FROM sqlite_master; ------------------------------------------------------------------------------------- CREATE TABLE events ( - event_id INTEGER NOT NULL, - event_type VARCHAR(32), - event_data TEXT, - origin VARCHAR(32), - time_fired DATETIME, - created DATETIME, + event_id INTEGER NOT NULL, + event_type VARCHAR(32), + event_data TEXT, + origin VARCHAR(32), + time_fired DATETIME, + created DATETIME, PRIMARY KEY (event_id) ) CREATE INDEX ix_events_event_type ON events (event_type) CREATE TABLE recorder_runs ( - run_id INTEGER NOT NULL, - start DATETIME, - "end" DATETIME, - closed_incorrect BOOLEAN, - created DATETIME, - PRIMARY KEY (run_id), + run_id INTEGER NOT NULL, + start DATETIME, + "end" DATETIME, + closed_incorrect BOOLEAN, + created DATETIME, + PRIMARY KEY (run_id), CHECK (closed_incorrect IN (0, 1)) ) CREATE TABLE states ( - state_id INTEGER NOT NULL, - domain VARCHAR(64), - entity_id VARCHAR(64), - state VARCHAR(255), - attributes TEXT, - event_id INTEGER, - last_changed DATETIME, - last_updated DATETIME, - created DATETIME, - PRIMARY KEY (state_id), + state_id INTEGER NOT NULL, + domain VARCHAR(64), + entity_id VARCHAR(64), + state VARCHAR(255), + attributes TEXT, + event_id INTEGER, + last_changed DATETIME, + last_updated DATETIME, + created DATETIME, + PRIMARY KEY (state_id), FOREIGN KEY(event_id) REFERENCES events (event_id) ) CREATE INDEX states__significant_changes ON states (domain, last_updated, entity_id) CREATE INDEX states__state_changes ON states (last_changed, last_updated, entity_id) -CREATE TABLE sqlite_stat1(tbl,idx,stat) +CREATE TABLE sqlite_stat1(tbl,idx,stat) ``` To only show the details about the `states` table (since we are using that one in the next examples): @@ -105,7 +107,7 @@ switch.mystrom_switch 14101 sensor.internet_time 12963 sensor.solar_angle1 11397 sensor.solar_angle 10440 -group.all_switches 8018 +group.all_switches 8018 ``` ### {% linkable_title Delete %} @@ -116,7 +118,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/packages.markdown b/source/_docs/configuration/packages.markdown index 5cb76f6b4f2..0be17c08a0e 100644 --- a/source/_docs/configuration/packages.markdown +++ b/source/_docs/configuration/packages.markdown @@ -10,7 +10,7 @@ footer: true redirect_from: /topics/packages/ --- -Packages in Home Assistant provides a way to bundle different component's configuration together. We already learned about the two configuration styles (specifying platforms entries together or individually) on the [adding devices](/docs/configuration/devices/) page. Both of these configuration methods require you to create the component key in the main `configuration.yaml` file. With packages we have a way to include different components, or different configuration parts using any of the `!include` directives introduced in [splitting the configuration](/docs/configuration/splitting_configuration). +Packages in Home Assistant provide a way to bundle different component's configuration together. We already learned about the two configuration styles (specifying platforms entries together or individually) on the [adding devices](/docs/configuration/devices/) page. Both of these configuration methods require you to create the component key in the main `configuration.yaml` file. With packages we have a way to include different components, or different configuration parts using any of the `!include` directives introduced in [splitting the configuration](/docs/configuration/splitting_configuration). Packages are configured under the core `homeassistant/packages` in the configuration and take the format of a package name (no spaces, all lower case) followed by a dictionary with the package config. For example, package `pack_1` would be created as: diff --git a/source/_docs/configuration/remote.markdown b/source/_docs/configuration/remote.markdown index 00f9e276b35..f0135393685 100644 --- a/source/_docs/configuration/remote.markdown +++ b/source/_docs/configuration/remote.markdown @@ -23,6 +23,8 @@ The most common approach is to set up port forwarding (for any port) from your r A problem with making a port accessible is that some Internet Service Providers only offer dynamic IPs. This can cause you to lose access to Home Assistant while away. You can solve this by using a free Dynamic DNS service like [DuckDNS](https://www.duckdns.org/). +If you cannot access your Home Assistant installation remotely, remember to check if your ISP provides you with a dedicated IP, instead of one shared with other users via a [CG-NAT](https://en.wikipedia.org/wiki/Carrier-grade_NAT). This is becoming fairly common nowadays due to the shortage of IPv4 addresses. Some, if not most ISPs will require you to pay an extra fee to be assigned a dedicated IPv4 address. + Remember: Just putting a port up is not secure. You should definitely consider encrypting your traffic if you are accessing your Home Assistant installation remotely. For details please check the [set up encryption using Let's Encrypt](/blog/2017/09/27/effortless-encryption-with-lets-encrypt-and-duckdns/) blog post or this [detailed guide](/docs/ecosystem/certificates/lets_encrypt/) to using Let's Encrypt with Home Assistant. Protect your communication with a [self-signed certificate](/docs/ecosystem/certificates/tls_self_signed_certificate/) between your client and the Home Assistant instance. diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index 07f1194e713..7e11dae2ec0 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -107,6 +107,18 @@ If your template uses an `entity_id` that begins with a number (example: `states Rendering templates with time (`now()`) is dangerous as updates only trigger templates in sensors based on entity state changes.

+## {% linkable_title Priority of operators %} + +The default priority of operators is that the filter (`|`) has priority over everything except brackets. This means that: + +{% raw %} +```yaml +{{ states('sensor.temperature') | float / 10 | round(2) }} +``` +{% endraw %} + +Would round `10` to 2 decimal places, then divide `states('sensor.temperature')` by that. + ## {% linkable_title Home Assistant template extensions %} In templates, besides the normal [state object methods and properties](/topics/state_object/), there are also some extra things available: @@ -115,6 +127,8 @@ In templates, besides the normal [state object methods and properties](/topics/s ## {% linkable_title Examples %} +To test a template, go to the template developer tool icon template developer tools, create your template in the _Template editor_ and check the results on the right. + ### {% linkable_title States %} The next two statements result in same value if state exists. The second one will result in an error if state does not exist. @@ -133,7 +147,7 @@ Print an attribute if state is defined. Both will return the same thing but the {% raw %} ```text {% if states.device_tracker.paulus %} - {{ states.device_tracker.paulus.attributes.battery }} + {{ state_attr('device_tracker.paulus', 'battery') }} {% else %} ?? {% endif %} @@ -170,9 +184,9 @@ Print out a list of all the sensor states. Paulus is at {{ states('device_tracker.paulus') }}. {% endif %} -{{ states.sensor.temperature | float + 1 }} +{{ states('sensor.temperature') | float + 1 }} -{{ (states.sensor.temperature | float * 10) | round(2) }} +{{ (states('sensor.temperature') | float * 10) | round(2) }} {% if states('sensor.temperature') | float > 20 %} It is warm! @@ -280,7 +294,7 @@ Just use the "Square bracket notation" to get the value. {% raw %} ```yaml -'{{ value_json["values"]["temp"] }}' +'{{ value_json['values']['temp'] }}' ``` {% endraw %} diff --git a/source/_docs/ecosystem/appdaemon/api.markdown b/source/_docs/ecosystem/appdaemon/api.markdown index 4464e699717..09fcfd6781b 100755 --- a/source/_docs/ecosystem/appdaemon/api.markdown +++ b/source/_docs/ecosystem/appdaemon/api.markdown @@ -317,10 +317,10 @@ state = self.get_state("switch") state = self.get_state("light.office_1") # Return the brightness attribute for light.office_1 -state = self.get_state("light.office_1", "brightness") +state = self.get_state("light.office_1", attribute = "brightness") # Return the entire state for light.office_1 -state = self.get_state("light.office_1", "all") +state = self.get_state("light.office_1", attribute = "all") ``` ### {% linkable_title set_state() %} diff --git a/source/_docs/ecosystem/backup/backup_github.markdown b/source/_docs/ecosystem/backup/backup_github.markdown index cf526c7b502..82114cae475 100644 --- a/source/_docs/ecosystem/backup/backup_github.markdown +++ b/source/_docs/ecosystem/backup/backup_github.markdown @@ -57,10 +57,17 @@ Creating a `.gitignore` file in your repository will tell Git which files NOT to Here is an example that will ignore everything but your YAML configuration. ```bash -# Example .gitignore file for your config dir +# Example .gitignore file for your config dir. Lines with ! will not be ignored. * !*.yaml !.gitignore +*.conf +*.txt +*.log +.storage +.cloud +.google.token +ip_bans.yaml secrets.yaml known_devices.yaml ``` diff --git a/source/_docs/ecosystem/ios/location.markdown b/source/_docs/ecosystem/ios/location.markdown index 596a4b93a4b..694e26f4e7a 100644 --- a/source/_docs/ecosystem/ios/location.markdown +++ b/source/_docs/ecosystem/ios/location.markdown @@ -48,7 +48,7 @@ zone.home: minor: 43814 ``` -Restart Home Assistant and then the iOS app. It will begin then begin using iBeacons _instead of your location_ for enter and exit triggers around your zones. To add an iBeacon to `zone.home` add the above under your `customize`. +Restart Home Assistant and then the iOS app. It will then begin using iBeacons _instead of your location_ for enter and exit triggers around your zones. To add an iBeacon to `zone.home` add the above under your `customize`. [apple-energy-guide]: https://developer.apple.com/library/content/documentation/Performance/Conceptual/EnergyGuide-iOS/LocationBestPractices.html#//apple_ref/doc/uid/TP40015243-CH24-SW4 [apple-location-programming-guide]: https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html#//apple_ref/doc/uid/TP40009497-CH2-SW9 diff --git a/source/_docs/installation/docker.markdown b/source/_docs/installation/docker.markdown index 7b248911b78..e4c0a8125b3 100644 --- a/source/_docs/installation/docker.markdown +++ b/source/_docs/installation/docker.markdown @@ -185,7 +185,7 @@ $ docker-compose restart ### {% linkable_title Exposing Devices %} -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: +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/macos.markdown b/source/_docs/installation/macos.markdown index 51292c43ab2..c7b2c7c22c9 100644 --- a/source/_docs/installation/macos.markdown +++ b/source/_docs/installation/macos.markdown @@ -11,7 +11,7 @@ footer: true [macOS](http://www.apple.com/macos/) is available by default on Apple computer. If you run a different operating system, please refer to the other section of the documentation. -To run Home Assistant on macOS you need to install Python first. Download Python 3.5.3 or later from https://www.python.org/downloads/mac-osx/ and follow the instructions of the installer. +To run Home Assistant on macOS you need to install Python first. Download Python 3.5.3 or later from [https://www.python.org/downloads/mac-osx/](https://www.python.org/downloads/mac-osx/) and follow the instructions of the installer. Open a terminal and install Home Assistant. diff --git a/source/_docs/installation/updating.markdown b/source/_docs/installation/updating.markdown index a9884322b60..4bc5d375eb1 100644 --- a/source/_docs/installation/updating.markdown +++ b/source/_docs/installation/updating.markdown @@ -44,6 +44,14 @@ In the event that a Home Assistant version doesn't play well with your hardware $ pip3 install homeassistant==0.XX.X ``` +#### {% linkable_title Run the beta version %} + +If you would like to test next release before anyone else, you can install the beta version released every two weeks: + +```bash +$ pip3 install --pre --upgrade homeassistant +``` + #### {% linkable_title Run the development version %} If you want to stay on the bleeding-edge Home Assistant development branch, you can upgrade to `dev`. 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/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index af0f99c2c1e..3c6a1d9cec4 100644 --- a/source/_docs/mqtt/discovery.markdown +++ b/source/_docs/mqtt/discovery.markdown @@ -38,6 +38,10 @@ Configuration variables: - **discovery** (*Optional*): If the MQTT discovery should be enabled or not. Defaults to `False`. - **discovery_prefix** (*Optional*): The prefix for the discovery topic. Defaults to `homeassistant`. +

+The [embedded MQTT broker](/docs/mqtt/broker#embedded-broker) does not save any messages between restarts. If you use the embedded MQTT broker you have to send the MQTT discovery messages after every Home Assistant restart for the devices to show up. +

+ The discovery topic need to follow a specific format: ```text @@ -55,6 +59,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 +229,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/mqtt/testing.markdown b/source/_docs/mqtt/testing.markdown index e6c87bdbfcd..3957b8e8693 100644 --- a/source/_docs/mqtt/testing.markdown +++ b/source/_docs/mqtt/testing.markdown @@ -16,16 +16,10 @@ The `mosquitto` broker package ships commandline tools (often as `*-clients` pac $ mosquitto_pub -h 127.0.0.1 -t home-assistant/switch/1/on -m "Switch is ON" ``` -If you are using the embedded MQTT broker, the command looks a little different because you need to add the MQTT protocol version. +If you are using the embedded MQTT broker, the command looks a little different because you need to add the MQTT protocol version and your [broker credentials](/docs/mqtt/broker#embedded-broker). ```bash -$ mosquitto_pub -V mqttv311 -t "hello" -m world -``` - -or if you are using a API password: - -```bash -$ mosquitto_pub -V mqttv311 -u homeassistant -P -t "hello" -m world +$ mosquitto_pub -V mqttv311 -u homeassistant -P -t "hello" -m world ``` Another way to send MQTT messages by hand is to use the "Developer Tools" in the Frontend. Choose "Call Service" and then `mqtt/mqtt_send` under "Available Services". Enter something similar to the example below into the "Service Data" field. @@ -52,8 +46,6 @@ $ mosquitto_sub -h 127.0.0.1 -v -t "home-assistant/#" For the embedded MQTT broker the command looks like: ```bash -$ mosquitto_sub -v -V mqttv311 -t "#" +$ mosquitto_sub -v -V mqttv311 -u homeassistant -P -t "#" ``` -Add the username `homeassistant` and your API password if needed. - diff --git a/source/_docs/scripts/conditions.markdown b/source/_docs/scripts/conditions.markdown index 1cefa9c1161..ed9c4b8782a 100644 --- a/source/_docs/scripts/conditions.markdown +++ b/source/_docs/scripts/conditions.markdown @@ -107,7 +107,7 @@ Tests if an entity is a specified state. condition: condition: state entity_id: device_tracker.paulus - state: not_home + state: 'not_home' # optional: trigger only if state was this for last X time. for: hours: 1 @@ -139,23 +139,6 @@ condition: before: sunrise ``` -Here is a truth table to clarify the parameters with and without offset: - -| command | night | at sunrise | daytime | at sunset | -| ---------------------------------- | ------------ |:-----------:| ------- |:----------:| -| `after: sunset` | True | ⇒ | False | ⇒ | -| + `after_offset: "01:00:00"` | True | ⇒ | False | **+1h** | -| + `after_offset: "-01:00:00"` | True | ⇒ | False | **-1h** | -| `before: sunset` | False | ⇒ | True | ⇒ | -| + `before_offset: "01:00:00"` | False | ⇒ | True | **+1h** | -| + `before_offset: "-01:00:00"` | False | ⇒ | True | **-1h** | -| `after: sunrise` | False | ⇒ | True | ⇒ | -| + `after_offset: "01:00:00"` | False | **+1h** | True | ⇒ | -| + `after_offset: "-01:00:00"` | False | **-1h** | True | ⇒ | -| `before: sunrise` | True | ⇒ | False | ⇒ | -| + `before_offset: "01:00:00"` | True | **+1h** | False | ⇒ | -| + `before_offset: "-01:00:00"` | True | **-1h** | False | ⇒ | - ### {% linkable_title Template condition %} The template condition will test if the [given template][template] renders a value equal to true. This is achieved by having the template result in a true boolean expression or by having the template render 'true'. diff --git a/source/_docs/z-wave/installation.markdown b/source/_docs/z-wave/installation.markdown index 15693c77b63..833275cdbb7 100644 --- a/source/_docs/z-wave/installation.markdown +++ b/source/_docs/z-wave/installation.markdown @@ -110,6 +110,11 @@ device_config / device_config_domain / device_config_glob: default: False {% endconfiguration %} +

+As of Home Assistant 0.81, the Z-Wave `usb_path` and `network_key` options are configured through the Integrations page in Home Assistant. Specifying a `zwave:` section in configuration.yaml is no longer required unless you need to customize other settings, such as `device_config`, `polling_interval`, etc. +

+ + ### {% linkable_title Finding the controller path on Linux %}

diff --git a/source/_includes/custom/footer.html b/source/_includes/custom/footer.html index 1a2e590320c..ad8df9a0553 100644 --- a/source/_includes/custom/footer.html +++ b/source/_includes/custom/footer.html @@ -1,13 +1,13 @@