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 @@ [](https://discord.gg/CxqDrfU) [](https://travis-ci.org/home-assistant/home-assistant.github.io) -[](http://www.krihelinator.xyz) +[](http://www.krihelinator.xyz) [](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
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_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:
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.
$ 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. + +
+
+
+
+
- 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://
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*
The access token will not change until you factory reset your TV.
When using api_version: 5 changing sources switches tv channels. Additionally this allows setting the volume level.
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.
-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.
+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.
+
+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.
+
- 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.
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.
+
+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.
+
-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).
-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.
**Water-saving suggestion:**
-Unix Socket connections always bring performance advantages over TCP, if the database on the same host as the `recorder` instance (i.e. `localhost`).
@@ -72,4 +69,3 @@ That's it. You can copy and paste your new `client id` and `client secret` in yo
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"
---
+
+
+Hipchat will be discontinued after February 15th, 2019. This to give customers the opportunity to make a switch.
+
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
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:+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.
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://
+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.
+
- 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/).
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.
+ 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**.
+Full configuration details can be found on the main [Elk-M1 component](/components/elkm1/) page.
+
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.
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:
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.
- 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:
@@ -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 **Services**.
+
+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](/componentTags 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., `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 `+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 @@
Home Assistant will track the state of all the devices in your home, so you don't have to.
diff --git a/source/_includes/custom/header.html b/source/_includes/custom/header.html index d0b387b1c1c..ce1ac699782 100644 --- a/source/_includes/custom/header.html +++ b/source/_includes/custom/header.html @@ -1,6 +1,6 @@ diff --git a/source/_lovelace/alarm-panel.markdown b/source/_lovelace/alarm-panel.markdown new file mode 100644 index 00000000000..7f94e3abf9a --- /dev/null +++ b/source/_lovelace/alarm-panel.markdown @@ -0,0 +1,81 @@ +--- +layout: page +title: "Alarm Panel Card" +sidebar_label: Alarm Panel +description: "The Alarm Panel allows you to Arm and Disarm your Alarm Control Panel Components" +date: 2018-10-15 10:28 +00:00 +sidebar: true +comments: false +sharing: true +footer: true +--- + +The Alarm Panel allows you to Arm and Disarm your Alarm Control Panel Components. + +
+
+Screenshot of the Alarm Panel card.
+
+
+Screenshot of the Alarm Panel card.
+
+
+Screenshot of the Entity Button card.
+
+
+Screenshot of the Entity Button card with Title and Script Service.
+
@@ -91,7 +91,7 @@ Define the severity map: - type: gauge title: With Severity unit_of_measurement: '%' - entity: sensor.cpu_usuage + entity: sensor.cpu_usage severity: green: 0 yellow: 45 diff --git a/source/_lovelace/glance.markdown b/source/_lovelace/glance.markdown index 9dda1cd3eac..32611e47f59 100644 --- a/source/_lovelace/glance.markdown +++ b/source/_lovelace/glance.markdown @@ -40,15 +40,14 @@ show_state: description: Show entity state-text. type: boolean default: "true" -column_width: +theme: required: false - description: "Column width as CSS length like `100px` or `calc(100% / 7)`. This controls how many entities appear in a row - at the default 20% you have 5 entities in a row. Use `calc(100% / 7)` for 7 entities in a row, and so on." + description: "Set to any theme within `themes.yaml`" type: string - default: 20% -theming: +columns: required: false - description: "Set to `primary` to style the card with the background and text color of the header bar." - type: string + description: Number of columns to show. If not specified the number will be set automatically. + type: integer {% endconfiguration %} ## {% linkable_title Options For Entities %} diff --git a/source/_lovelace/picture-elements.markdown b/source/_lovelace/picture-elements.markdown index 8dd83c9c005..54b60b92285 100644 --- a/source/_lovelace/picture-elements.markdown +++ b/source/_lovelace/picture-elements.markdown @@ -2,7 +2,7 @@ layout: page title: "Picture Elements Card" sidebar_label: Picture Elements -description: "Picture elements card is one of the most versatile type of cards" +description: "Picture elements card is one of the most versatile types of cards" date: 2018-07-01 10:28 +00:00 sidebar: true comments: false @@ -10,9 +10,9 @@ sharing: true footer: true --- -Picture elements card is one of the most versatile type of cards. +Picture elements card is one of the most versatile types of cards. -The cards allows you to position icons or text and even services! On an image based on coordinates. Imagine floor plan, imagine [picture-glance](/lovelace/picture-glance/) with no restrictions! +The cards allow you to position icons or text and even services! On an image based on coordinates. Imagine floor plan, imagine [picture-glance](/lovelace/picture-glance/) with no restrictions!
@@ -74,6 +74,11 @@ tap_action:
description: more-info, toggle, navigate, call-service
type: string
default: more-info
+hold_action:
+ required: false
+ description: Action to perform when clicked-and-held (e.g., `more-info`, `toggle`, `navigate`, `call-service`).
+ type: string
+ default: none
navigation_path:
required: false
description: Url path to navigate to (e.g., `/lovelace/1`)
@@ -86,6 +91,11 @@ service_data:
required: false
description: The service data to use.
type: object
+hold_time:
+ required: false
+ description: Time in ms for click-and-hold to register.
+ type: integer
+ default: 500
style:
required: true
description: Position and style the element using CSS.
@@ -117,6 +127,11 @@ tap_action:
description: more-info, toggle, navigate, call-service
type: string
default: more-info
+hold_action:
+ required: false
+ description: Action to perform when clicked-and-held (e.g., `more-info`, `toggle`, `navigate`, `call-service`).
+ type: string
+ default: none
navigation_path:
required: false
description: Url path to navigate to (e.g., `/lovelace/1`)
@@ -129,6 +144,11 @@ service_data:
required: false
description: The service data to use.
type: object
+hold_time:
+ required: false
+ description: Time in ms for click-and-hold to register.
+ type: integer
+ default: 500
style:
required: true
description: Position and style the element using CSS.
@@ -186,6 +206,11 @@ tap_action:
description: more-info, toggle, navigate, call-service
type: string
default: more-info
+hold_action:
+ required: false
+ description: Action to perform when clicked-and-held (e.g., `more-info`, `toggle`, `navigate`, `call-service`).
+ type: string
+ default: none
navigation_path:
required: false
description: Url path to navigate to (e.g., `/lovelace/1`)
@@ -198,6 +223,11 @@ service_data:
required: false
description: The service data to use.
type: object
+hold_time:
+ required: false
+ description: Time in ms for click-and-hold to register.
+ type: integer
+ default: 500
style:
required: true
description: Position and style the element using CSS.
@@ -221,6 +251,11 @@ tap_action:
description: none, more-info, toggle, navigate, call-service
type: string
default: more-info
+hold_action:
+ required: false
+ description: Action to perform when clicked-and-held (e.g., `more-info`, `toggle`, `navigate`, `call-service`).
+ type: string
+ default: none
navigation_path:
required: false
description: Url path to navigate to (e.g., `/lovelace/1`)
@@ -233,6 +268,11 @@ service_data:
required: false
description: The service data to use.
type: object
+hold_time:
+ required: false
+ description: Time in ms for click-and-hold to register.
+ type: integer
+ default: 500
image:
required: false
description: The image to display.
@@ -311,6 +351,20 @@ state_filter:
"off": brightness(50%) hue-rotate(45deg)
```
+## {% linkable_title How to use click-and-hold %}
+
+If the option `hold_action` is specified, that action will be performed when the entity is clicked and held for a certain time (default 0.5 seconds).
+Please note that the `tap_action` and `hold_action` share variables for `navigation_path`, `service` and `service_data`. It is therefore not possible to, e.g., call two different services when clicked and when held.
+
+```yaml
+tap_action: toggle
+hold_action: call-service
+service: light.turn_on
+service_data:
+ entity_id: light.bed_light
+ brightness_pct: 100
+```
+
## {% linkable_title Example %}
```yaml
diff --git a/source/_lovelace/thermostat.markdown b/source/_lovelace/thermostat.markdown
new file mode 100644
index 00000000000..3ae760f8d4c
--- /dev/null
+++ b/source/_lovelace/thermostat.markdown
@@ -0,0 +1,36 @@
+---
+layout: page
+title: "Thermostat Card"
+sidebar_label: Thermostat
+description: "The thermostat card allows you to control a climate entity."
+date: 2018-10-25 10:28 +00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+---
+
+The thermostat card gives control of your climate entity.
+
+
+
+ Screenshot of the thermostat card.
+
- The non-interoperability between the newly launched IKEA smart lighting products and the Philips Hue bridge has been analyzed. One of the issues found is that the IKEA bulbs report their ProfileID as corresponding to the ZigBee Home Automation (ZHA) profile rather than the ZigBee Light Link (ZLL) profile. As the IKEA bulbs do not behave fully compliant with the ZLL standard, they are rejected by the Hue bridge. IKEA is aware of this and informed us their intent is to have the IKEA smart lighting bulbs to work with the Philips Hue bridge. + The non-interoperability between the newly launched IKEA smart lighting products and the Philips Hue bridge has been analyzed. One of the issues found is that the IKEA bulbs report their ProfileID as corresponding to the Zigbee Home Automation (ZHA) profile rather than the Zigbee Light Link (ZLL) profile. As the IKEA bulbs do not behave fully compliant with the ZLL standard, they are rejected by the Hue bridge. IKEA is aware of this and informed us their intent is to have the IKEA smart lighting bulbs to work with the Philips Hue bridge.## {% linkable_title Affordable %} diff --git a/source/_posts/2017-05-06-zigbee-opencv-dlib.markdown b/source/_posts/2017-05-06-zigbee-opencv-dlib.markdown index 4e87ac92fd4..c39ab07ef8b 100644 --- a/source/_posts/2017-05-06-zigbee-opencv-dlib.markdown +++ b/source/_posts/2017-05-06-zigbee-opencv-dlib.markdown @@ -1,6 +1,6 @@ --- layout: post -title: "Home Assistant 0.44: ZigBee, OpenCV and DLib" +title: "Home Assistant 0.44: Zigbee, OpenCV and DLib" description: "Speak natively with Zigbee network, detect faces with OpenCV: 0.44 is here." date: 2017-05-06 01:04:05 +0000 date_formatted: "May 6, 2017" @@ -13,7 +13,7 @@ og_image: /images/blog/2017-05-0.44/components.png
+
+ Screenshot of the thermostat card.
+
-If you're not using Chrome, please be sure to [read the FAQ](/lovelace/#faq) below. +If you're not using Firefox 63+ or Chrome, please be sure to [read the FAQ](/lovelace/#faq) below.
## {% linkable_title How it works %} @@ -133,7 +133,7 @@ This is the very very early version aimed at gathering feedback. Discussion and ### {% linkable_title I am running Firefox but, custom cards like gauge-card look bad or don't load at all. How do I fix this? %} -This is probably because your version of Firefox doesn't have custom components supported or enabled. Please set to `true` in your `about:config` the following settings: `dom.webcomponents.customelements.enabled` and `dom.webcomponents.shadowdom.enabled` +This is probably because your version of Firefox doesn't have custom components supported or enabled. Please upgrade to version 63 or higher, otherwise set `dom.webcomponents.customelements.enabled` and `dom.webcomponents.shadowdom.enabled` to `true` in `about:config`. ### {% linkable_title Custom cards don't load on my iOS device? %} diff --git a/source/lovelace/tips.markdown b/source/lovelace/tips.markdown index f4cf41ec3c2..2c8ef8cdfe8 100644 --- a/source/lovelace/tips.markdown +++ b/source/lovelace/tips.markdown @@ -36,9 +36,9 @@ you with the ability to split your Lovelace configuration into multiple files. The [Lovelace Jinja2 Script][lovelace-jinja] by [@skalavala] is a simple Jinja2 script that you run in the template editor to generate lovelace configuration based on the entities that are already setup.- Split configuration is currently possible directly in Lovelace, but it - is expected to be removed in the near future due to fact that Home Assistant - will be writing directly to the `ui-lovelace.yaml` file. + Split configuration is no longer possible directly in Lovelace, + due to fact that Home Assistant writes directly to the `ui-lovelace.yaml` file. + Use one of the above generators if you would like to contintue to have such functionality.
## {% linkable_title Tips and Tricks %}