diff --git a/.themes/classic/sass/partials/_sidebar.scss b/.themes/classic/sass/partials/_sidebar.scss index cd8c1ca26321..fa15d759709d 100644 --- a/.themes/classic/sass/partials/_sidebar.scss +++ b/.themes/classic/sass/partials/_sidebar.scss @@ -1,4 +1,3 @@ @import "sidebar/base"; -@import "sidebar/googleplus"; @import "sidebar/pinboard"; @import "sidebar/delicious"; diff --git a/.themes/classic/sass/partials/sidebar/_googleplus.scss b/.themes/classic/sass/partials/sidebar/_googleplus.scss deleted file mode 100644 index c2a693ee7f23..000000000000 --- a/.themes/classic/sass/partials/sidebar/_googleplus.scss +++ /dev/null @@ -1,26 +0,0 @@ -.googleplus { - h1 { - -moz-box-shadow: none !important; - -webkit-box-shadow: none !important; - -o-box-shadow: none !important; - box-shadow: none !important; - border-bottom: 0px none !important; - } - a { - text-decoration: none; - white-space: normal !important; - line-height: 32px; - - img { - float: left; - margin-right: 0.5em; - border: 0 none; - } - } -} - -.googleplus-hidden { - position: absolute; - top: -1000em; - left: -1000em; -} diff --git a/.themes/classic/source/_includes/asides/googleplus.html b/.themes/classic/source/_includes/asides/googleplus.html deleted file mode 100644 index 00a0aa856cd9..000000000000 --- a/.themes/classic/source/_includes/asides/googleplus.html +++ /dev/null @@ -1,11 +0,0 @@ -{% if site.googleplus_user %} -
-

- - - Google+ - -

-
-{% endif %} - diff --git a/Gemfile.lock b/Gemfile.lock index de5c2add1eb9..48440eeee356 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -53,9 +53,9 @@ GEM ruby_dep (~> 1.2) mercenary (0.3.6) method_source (0.8.2) - mini_portile2 (2.3.0) - nokogiri (1.8.2) - mini_portile2 (~> 2.3.0) + mini_portile2 (2.4.0) + nokogiri (1.10.1) + mini_portile2 (~> 2.4.0) octopress (3.0.11) jekyll (>= 2.0) mercenary (~> 0.3.2) diff --git a/_config.yml b/_config.yml index 2d2b284fab8f..5c9641209ca1 100644 --- a/_config.yml +++ b/_config.yml @@ -32,8 +32,12 @@ destination: public/ plugins_dir: plugins code_dir: downloads/code category_dir: blog/categories + markdown: kramdown +highlighter: rouge timezone: UTC +liquid: + error_mode: strict kramdown: input: GFM @@ -44,8 +48,6 @@ kramdown: smart_quotes: lsquo,rsquo,ldquo,rdquo parse_block_html: true -highlighter: rouge - plugins: - jekyll-redirect-from - jekyll-time-to-read @@ -97,11 +99,6 @@ twitter_tweet_button: true google_plus_one: true google_plus_one_size: standard -# Google Plus Profile -# Hidden: No visible button, just add author information to search results -googleplus_user: +PaulusSchoutsen -googleplus_hidden: true - # Pinboard pinboard_user: pinboard_count: 3 @@ -141,9 +138,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 84 -current_patch_version: 3 -date_released: 2018-12-17 +current_minor_version: 88 +current_patch_version: 2 +date_released: 2019-02-27 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/plugins/configuration.rb b/plugins/configuration.rb index 92f681e199e6..993e4ba4e6df 100644 --- a/plugins/configuration.rb +++ b/plugins/configuration.rb @@ -2,7 +2,7 @@ module Jekyll class ConfigurationBlock < Liquid::Block TYPE_LINKS = { 'action' => '/docs/scripts/', - 'device_class' => '/components/%{component}/#device-class', + 'device_class' => '/docs/configuration/customizing-devices/#device-class', 'template' => '/docs/configuration/templating/', 'icon' => '/docs/configuration/customizing-devices/#icon', } diff --git a/sass/custom/_paulus.scss b/sass/custom/_paulus.scss index 142841d06aac..af314eff8b9c 100644 --- a/sass/custom/_paulus.scss +++ b/sass/custom/_paulus.scss @@ -411,6 +411,8 @@ p.note { .brand-logo-container { text-align: center; height: 87px; + margin-top: 50px; + margin-bottom: 25px; img { max-height: 67px; @@ -458,7 +460,7 @@ a code { color: $primary-color; } -twitterwidget { +twitter-widget { margin-left: auto; margin-right: auto; } diff --git a/sass/partials/_sidebar.scss b/sass/partials/_sidebar.scss index cd8c1ca26321..fa15d759709d 100644 --- a/sass/partials/_sidebar.scss +++ b/sass/partials/_sidebar.scss @@ -1,4 +1,3 @@ @import "sidebar/base"; -@import "sidebar/googleplus"; @import "sidebar/pinboard"; @import "sidebar/delicious"; diff --git a/sass/partials/sidebar/_googleplus.scss b/sass/partials/sidebar/_googleplus.scss deleted file mode 100644 index c2a693ee7f23..000000000000 --- a/sass/partials/sidebar/_googleplus.scss +++ /dev/null @@ -1,26 +0,0 @@ -.googleplus { - h1 { - -moz-box-shadow: none !important; - -webkit-box-shadow: none !important; - -o-box-shadow: none !important; - box-shadow: none !important; - border-bottom: 0px none !important; - } - a { - text-decoration: none; - white-space: normal !important; - line-height: 32px; - - img { - float: left; - margin-right: 0.5em; - border: 0 none; - } - } -} - -.googleplus-hidden { - position: absolute; - top: -1000em; - left: -1000em; -} diff --git a/source/_addons/check_config.markdown b/source/_addons/check_config.markdown index a11232b5ea38..9ae856d22a3f 100644 --- a/source/_addons/check_config.markdown +++ b/source/_addons/check_config.markdown @@ -11,6 +11,16 @@ footer: true You can use this add-on to check whether your configuration files are valid against the new version of Home Assistant before you actually update your Home Assistant installation. This add-on will help you avoid errors due to breaking changes, resulting in a smooth update. +### {% linkable_title How to use this add-on %} + +1. Just start the add-on. +2. Wait (On a Raspberry Pi it can take several minutes). +3. If you see the following output then you are good to go to update Home Assistant: `[Info] Configuration check finished - no error found! :)`. + +If you get errors, then you should look for **Breaking Changes** against the version you specified for this add-on and change your configuration accordingly. + +### {% linkable_title Add-on configuration %} + ```json { "version": "latest" diff --git a/source/_addons/duckdns.markdown b/source/_addons/duckdns.markdown index 4626bd7617ef..d17268809969 100644 --- a/source/_addons/duckdns.markdown +++ b/source/_addons/duckdns.markdown @@ -55,7 +55,7 @@ Use the following configuration in Home Assistant to use the generated certifica ```yaml http: - base_url: my-domain.duckdns.org:8123 + base_url: https://my-domain.duckdns.org:8123 ssl_certificate: /ssl/fullchain.pem ssl_key: /ssl/privkey.pem ``` diff --git a/source/_addons/git_pull.markdown b/source/_addons/git_pull.markdown index 3ae5e0f29272..fb7579a3900a 100644 --- a/source/_addons/git_pull.markdown +++ b/source/_addons/git_pull.markdown @@ -13,12 +13,17 @@ Load and update configuration files for Home Assistant from a [Git](https://git- ```json { - "repository": "https://example.com/my_configs.git", - "auto_restart": false, "git_branch": "master", "git_command": "pull", "git_remote": "origin", "git_prune": "false", + "repository": "https://example.com/my_configs.git", + "auto_restart": false, + "restart_ignore": [ + "ui-lovelace.yaml", + ".gitignore", + "exampledirectory/" + ], "repeat": { "active": false, "interval": 300 @@ -38,22 +43,22 @@ Load and update configuration files for Home Assistant from a [Git](https://git- } ``` -- **repository** (*Required*): Git URL to your repository (make sure to use double quotes). You have to add `.git` to your GitHub repository URL (see example configuration). The contents of the repository is assumed to be the root of Home Assistant `config/` folder. The configuration cannot be in a subdirectory, i.e., `configuration.yaml`, `groups.yaml`, etc. must be in the root of the repository. - **git_branch** (*Required*): Branch name of the Git repo. If left empty, the currently checked out branch will be updated. Leave this as 'master' if you are unsure. -- **git_remote** (*Required*): Name of the tracked repository. Leave this as `origin` if you are unsure. -- **git_prune** (*Required*): If set to true, the add-on will cleanup branches that are deleted on the remote repository, but still have cached entries on the local machine. Leave this as `false` if you are unsure. -- **git_command** (*Required*): Must be either `pull` or `reset`. Leave this as `pull` if you are unsure. - - * **pull**: Incorporates changes from a remote repository into the current branch. Will preserve any local changes to tracked files. - * **reset**: Will execute `git reset --hard` and overwrite any local changes to tracked files and update from the remote repository. - +- **git_command** (*Required*): `pull`/`reset`: Command to run. Leave this as `pull` if you are unsure. +* **pull**: Incorporates changes from a remote repository into the current branch. Will preserve any local changes to tracked files. +* **reset**: Will execute `git reset --hard` and overwrite any local changes to tracked files and update from the remote repository. Use with caution.

- Using the `reset` option will overwrite changes to tracked files. Tracked files are those visible in the Github repository or those given by the output on this command: `git ls-tree -r master --name-only`. + Using the `reset` option will overwrite changes to tracked files. Tracked files are those visible in the git repository or those given by the output on this command: `git ls-tree -r master --name-only`.

- -- **auto_restart** (*Optional*): Restart Home Assistant when the configuration has changed (and is valid). -- **repeat/active** (*Optional*): Pull periodic for Git updates. -- **repeat/interval** (*Optional*): Pull all x seconds and look for changes. +- **git_remote** (*Required*): Name of the tracked repository. Leave this as `origin` if you are unsure. +- **git_prune** (*Required*): `true`/`false`: If set to true, the add-on will clean-up branches that are deleted on the remote repository, but still have cached entries on the local machine. Leave this as `false` if you are unsure. + +- **repository** (*Required*): Git URL to your repository (make sure to use double quotes). You have to add `.git` to your repository URL (see example configuration). +- **auto_restart** (*Required*): `true`/`false`: Restart Home Assistant when the configuration has changed (and is valid). +- **restart_ignore** (*Optional*): When `auto_restart` is enabled, changes to these files will not make HA restart. Full directories to ignore can be specified. +- **repeat**: Poll the repository for updates periodically automatically. +* **active** (*Required*): `true`/`false`: Enable/disable automatic polling. +* **interval** (*Required*): The interval in seconds to poll the repo for if automatic polling is enabled. - **deployment_user** (*Optional*): Username to use when authenticating to a repository with a username and password. - **deployment_password** (*Optional*): Password to use when authenticating to a repository. Ignored if `deployment_user` is not set. - **deployment_key** (*Optional*): A private SSH key that will be used for communication during Git operations. This key is mandatory for ssh-accessed repositories, which are the ones with the following pattern: `@:`. @@ -63,7 +68,7 @@ Load and update configuration files for Home Assistant from a [Git](https://git- * **ecdsa** * **ed25519** * **rsa** - + The protocol is typically known by the suffix of the private key --e.g., a key file named `id_rsa` will be a private key using `rsa` protocol.

diff --git a/source/_addons/homematic.markdown b/source/_addons/homematic.markdown index 03ef67f1b1f4..b3b23f25d3cd 100644 --- a/source/_addons/homematic.markdown +++ b/source/_addons/homematic.markdown @@ -118,7 +118,7 @@ homematic: port: 2000 hmip: host: core-homematic - port: 2001 + port: 2010 ``` ## {% linkable_title Raspberry Pi3 %} diff --git a/source/_addons/lets_encrypt.markdown b/source/_addons/lets_encrypt.markdown index c50d52fb2734..fb00c62ecac3 100644 --- a/source/_addons/lets_encrypt.markdown +++ b/source/_addons/lets_encrypt.markdown @@ -79,4 +79,26 @@ Use this in your `automations.yaml` to attempt certificate renewal each day at m addon: core_letsencrypt ``` +If you are using the [Nginx Proxy add-on] you will need need to stop this during the renewal process. This can be achieved by stopping the add-on whilst restarting the Let's Encrypt add-on. This can be achieved the following configuration: + +```yaml +- id: letsencrypt-renewal + alias: 'LetsEncrypt renewal' + trigger: + - platform: time + at: '00:00:00' + action: + - service: hassio.addon_stop + data: + addon: core_nginx_proxy + - service: hassio.addon_restart + data: + addon: core_letsencrypt + - delay: '00:01:30' + - service: hassio.addon_start + data: + addon: core_nginx_proxy +``` + [DuckDNS add-on]: /addons/duckdns/ +[Nginx Proxy add-on]: /addons/nginx_proxy/ diff --git a/source/_addons/mosquitto.markdown b/source/_addons/mosquitto.markdown index 2f8a4d15fe4f..86d5c2316a3e 100644 --- a/source/_addons/mosquitto.markdown +++ b/source/_addons/mosquitto.markdown @@ -55,6 +55,24 @@ This add-on is attached to the Home Assistant user system, so mqtt clients can m To use the Mosquitto as [broker](/docs/mqtt/broker/#run-your-own), go to the integration page and install the configuration with one click. If you have old MQTT settings available, remove this old integration and restart Home Assistant to see the new one. +#### {% linkable_title Using Mosquitto with Hass.io %} + +1. Install the [Mosquitto add-on](/addons/mosquitto/) with the default configuration via 'Hass.io > ADD-ON STORE'. (Don't forget to start the add-on & verify that 'Start on boot' is enabled.) + +2. Create a new user for MQTT via the `Configuration > Users (manage users)`. (Note: This name cannot be "homeassistant" or "addon") + +3. Once back on-line, return to `Configuration > Integrations` and select configure next to `MQTT`. + +``` + Broker: YOUR_HASSIO_IP_ADDRESS + Port: 1883 + Username: MQTT_USERNAME + Password: MQTT_PASSWORD +``` + +Note: .yaml modifications are not required. +See [testing your setup](/docs/mqtt/testing/) to verify the steps above. + ### {% linkable_title Disable listening on insecure (1883) ports %} Remove the ports from the add-on page network card (set them as blank) to disable them. diff --git a/source/_addons/nginx_proxy.markdown b/source/_addons/nginx_proxy.markdown index 471ec08c5f86..4bf6c3ad9afa 100644 --- a/source/_addons/nginx_proxy.markdown +++ b/source/_addons/nginx_proxy.markdown @@ -11,7 +11,7 @@ footer: true Sets up an SSL proxy with NGINX and redirect port 80 to 443. Make sure you have generated a certificate before you start this add-on. -In the `http` section of the `configuration.yaml` file remove `ssl_certificate` and `ssl_key` and don't enter the port in the `base_url` to avoid an HTTP 502 error. +In the `http` section of the `configuration.yaml` file remove `ssl_certificate`, `ssl_key` and `server_port` and don't enter the port in the `base_url` to avoid an HTTP 502 error. ```json { diff --git a/source/_addons/samba.markdown b/source/_addons/samba.markdown index f28ac32f2154..8d0b57c92070 100644 --- a/source/_addons/samba.markdown +++ b/source/_addons/samba.markdown @@ -13,7 +13,7 @@ featured: true This add-on allows you to set up a [Samba](https://samba.org/) server to access Hass.io folders using Windows network shares.

-Be careful when setting up port forwarding for remote access. If you don't restrict access by setting a username and strong password, your configuration could be exposed to the entire internet! +Be careful when setting up port forwarding for remote access. If you don't restrict access by setting a username and strong password, your configuration could be exposed to the entire Internet!

```json @@ -37,7 +37,7 @@ workgroup: default: "`WORKGROUP`" type: string username: - description: Username for logging in if guest login is not used. + description: Username for logging in. required: true type: string password: diff --git a/source/_addons/tellstick.markdown b/source/_addons/tellstick.markdown index eb6075fdbde3..5c9f9aebe741 100644 --- a/source/_addons/tellstick.markdown +++ b/source/_addons/tellstick.markdown @@ -92,6 +92,8 @@ code: type: string {% endconfiguration %} +For more information about the configuration including protocols, see the [telldus documentation](https://developer.telldus.com/wiki/TellStick_conf). + ## {% linkable_title Service calls %} If you wish to teach a self-learning device in your TellStick configuration: diff --git a/source/_components/abode.markdown b/source/_components/abode.markdown index 637899268404..0f08154bfa72 100644 --- a/source/_components/abode.markdown +++ b/source/_components/abode.markdown @@ -8,28 +8,43 @@ comments: false sharing: true footer: true logo: abode.jpg -ha_category: Hub +ha_category: + - Hub + - Alarm + - Binary Sensor + - Camera + - Cover + - Light + - Lock + - Sensor + - Switch ha_release: 0.52 ha_iot_class: "Cloud Push" +redirect_from: + - /components/alarm_control_panel.abode/ + - /components/binary_sensor.abode/ + - /components/camera.abode/ + - /components/cover.abode/ + - /components/lock.abode/ + - /components/light.abode/ + - /components/switch.abode/ + - /components/sensor.abode/ --- -The `abode` component will allow users to integrate their Abode Home Security -systems into Home Assistant and use its alarm system and sensors to automate -their homes. +The `abode` component will allow users to integrate their Abode Home Security systems into Home Assistant and use its alarm system and sensors to automate their homes. -Please visit the [Abode website](https://goabode.com/) for further information -about Abode Security. +Please visit the [Abode website](https://goabode.com/) for further information about Abode Security. There is currently support for the following device types within Home Assistant: -- [Alarm Control Panel](/components/alarm_control_panel.abode/): Reports on the current alarm status and can be used to arm and disarm the system. -- [Binary Sensor](/components/binary_sensor.abode/): Reports on `Quick Actions`, `Door Contacts`, `Connectivity` sensors (remotes, keypads, and status indicators), `Moisture` sensors, and `Motion` or `Occupancy` sensors. -- [Camera](/components/camera.abode/): Reports on `Camera` devices and will download and show the latest captured still image. -- [Cover](/components/cover.abode/): Reports on `Secure Barriers` and can be used to open and close the cover. -- [Lock](/components/cover.abode/): Reports on `Door Locks` and can be used to lock and unlock the door. -- [Light](/components/light.abode/): Reports on `Dimmer` lights and can be used to dim or turn the light on and off. -- [Switch](/components/switch.abode/): Reports on `Power Switch` devices and can be used to turn the power switch on and off. Also reports on `Automations` set up in the Abode system and allows you to activate or deactivate them. -- [Sensor](/components/sensor.abode/): Reports on `Temperature`, `Humidity`, and `Light` sensors. +- **Alarm Control Panel**: Reports on the current alarm status and can be used to arm and disarm the system. +- [**Binary Sensor**](/components/abode/#binary-sensor): Reports on `Quick Actions`, `Door Contacts`, `Connectivity` sensors (remotes, keypads, and status indicators), `Moisture` sensors, and `Motion` or `Occupancy` sensors. +- **Camera**: Reports on `Camera` devices and will download and show the latest captured still image. +- **Cover**: Reports on `Secure Barriers` and can be used to open and close the cover. +- **Lock**: Reports on `Door Locks` and can be used to lock and unlock the door. +- [**Light**](/components/abode/#light): Reports on `Dimmer` lights and can be used to dim or turn the light on and off. +- [**Switch**](/components/abode/#switch): Reports on `Power Switch` devices and can be used to turn the power switch on and off. Also reports on `Automations` set up in the Abode system and allows you to activate or deactivate them. +- **Sensor**: Reports on `Temperature`, `Humidity`, and `Light` sensors. ## {% linkable_title Configuration %} @@ -141,3 +156,19 @@ Trigger a quick action automation on your Abode system. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | No | String or list of strings that point at `entity_id`s of binary_sensors that represent your Abode quick actions. + +### {% linkable_title Binary Sensor %} + +This component will add `Door Contacts`, `Connectivity` sensors (remotes, keypads, and status indicators), `Moisture` sensors, and `Motion` or `Occupancy` sensors. + +This component will also list all Abode `Quick Actions` that are set up. You can trigger these quick actions by passing the `entity_id` of your quick action binary sensor to the [trigger_quick_action service](/components/abode/#trigger_quick_action). + +### {% linkable_title Light %} + +This component will automatically add `Lights` configured in your Abode account. You can reclassify `Switches` to show up within Home Assistant as lights by listing the Abode device ID in your [configuration](/components/abode/#configuration). + +### {% linkable_title Switch %} + +This component will automatically add `Power Switches` configured in your Abode account. You can reclassify switches to show up within Home Assistant as `Lights` by listing the Abode device ID in your [configuration](/components/abode/#configuration). + +This component will also list all Abode `Automations` that are set up within the Abode system, allowing you to activate and deactivate the automations. \ No newline at end of file diff --git a/source/_components/ads.markdown b/source/_components/ads.markdown index a7a3c41057cb..599086ef75a0 100644 --- a/source/_components/ads.markdown +++ b/source/_components/ads.markdown @@ -8,13 +8,30 @@ comments: false sharing: true footer: true logo: beckhoff.png -ha_category: Hub +ha_category: + - Hub + - Binary Sensor + - Light + - Sensor + - Switch ha_release: "0.60" ha_iot_class: "Local Push" +redirect_from: + - /components/binary_sensor.ads/ + - /components/light.ads/ + - /components/sensor.ads/ + - /components/switch.ads/ --- 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. +There is currently support for the following device types within Home Assistant: + +- [Binary Sensor](#binary-sensor) +- [Light](#light) +- [Sensor](#sensor) +- [Switch](#switch) + ## {% linkable_title Configuration %} To enable ADS, add the following lines to your `configuration.yaml` file: @@ -23,7 +40,7 @@ To enable ADS, add the following lines to your `configuration.yaml` file: # Example configuration.yaml entry ads: device: '127.0.0.1.1.1' - port: 48898 + port: 801 ``` {% configuration %} @@ -58,3 +75,126 @@ Service parameters: - **adsvar**: Name of the variable on the ADS device. To access global variables on *TwinCAT2* use a prepending dot `.myvariable`, for TwinCAT3 use `GBL.myvariable`. - **adstype**: Specify the type of the variable. Use one of the following: `int`, `byte`, `uint`, `bool` - **value**: The value that will be written in the variable. + +## {% linkable_title Binary Sensor %} + +The `ads` binary sensor platform can be used to monitor a boolean value on your ADS device. + +To use your ADS device, you first have to set up your [ADS hub](/components/ads/) and then add the following to your `configuration.yaml` +file: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: ads + adsvar: .boolean1 +``` + +{% configuration %} +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 %} + +## {% linkable_title Light %} + +The `ads` light platform allows you to control your connecte ADS lights. + +To use your ADS device, you first have to set up your [ADS hub](/components/ads/) and then add the following to your `configuration.yaml` +file: + +```yaml +# Example configuration.yaml entry +light: + - platform: ads + adsvar: GVL.enable_light + adsvar_brightness: GVL.brightness +``` + +{% configuration %} +adsvar: + required: true + description: The name of the boolean variable that switches the light on + type: string +adsvar_brightness: + required: false + description: The name of the variable that controls the brightness, use an unsigned integer on the PLC side + type: integer +name: + required: false + description: An identifier for the Light in the frontend + type: string +{% endconfiguration %} + +## {% linkable_title Sensor %} + +The `ads` sensor platform allows reading the value of a numeric variable on your ADS device. The variable can be of type *INT*, *UINT*, *BYTE*, *DINT* or *UDINT*. + +To use your ADS device, you first have to set up your [ADS hub](/components/ads/) and then add the following to your `configuration.yaml` +file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: ads + adsvar: GVL.temperature + unit_of_measurement: '°C' + adstype: integer +``` + +{% configuration %} +adsvar: + required: true + description: The name of the variable which you want to access. + type: string +adstype: + required: false + description: The datatype of the ADS variable, possible values are int, uint, byte, dint, udint. + default: int + type: string +name: + required: false + description: An identifier for the sensor. + type: string +factor: + required: false + description: A factor that divides the stored value before displaying in Home Assistant. + default: 1 + type: integer +{% endconfiguration %} + +The *factor* can be used to implement fixed decimals. E.g., set *factor* to 100 if you want to display a fixed decimal value with two decimals. A variable value of `123` will be displayed as `1.23`. + +## {% linkable_title Switch %} + +The `ads` switch platform accesses a boolean variable on the connected ADS device. The variable is identified by its name. + +To use your ADS device, you first have to set up your [ADS hub](/components/ads/) and then add the following to your `configuration.yaml` +file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: ads + adsvar: .global_bool +``` + +{% 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 switch in the frontend. + type: string +{% endconfiguration %} diff --git a/source/_components/air_pollutants.markdown b/source/_components/air_quality.markdown similarity index 71% rename from source/_components/air_pollutants.markdown rename to source/_components/air_quality.markdown index 1713a3c7cf7c..26d62f2f489a 100644 --- a/source/_components/air_pollutants.markdown +++ b/source/_components/air_quality.markdown @@ -1,15 +1,16 @@ --- layout: page -title: "Air Pollutants" -description: "Instructions on how to air pollutants sensors with Home Assistant" +title: "Air Quality" +description: "Instructions on how to add air quality sensors with Home Assistant" date: 2018-11-25 08:00 sidebar: true comments: false sharing: true footer: true +redirect_from: /components/air_pollutants/ --- -The `air_pollutants` gather information about the air quality and pollution details. +The `air_quality` gather information about the air quality and pollution details. The platforms cover the following levels (if they are available): diff --git a/source/_components/air_quality.nilu.markdown b/source/_components/air_quality.nilu.markdown new file mode 100644 index 000000000000..458429601a4b --- /dev/null +++ b/source/_components/air_quality.nilu.markdown @@ -0,0 +1,164 @@ +--- +layout: page +title: "Norwegian Institute for Air Research" +description: "Instructions on how to integrate air pollution data from NILU within Home Assistant." +date: 2018-12-30 18:45 +sidebar: true +comments: false +sharing: true +footer: true +logo: nilu_logo.png +ha_category: Health +ha_iot_class: "Cloud Polling" +ha_release: 0.87 +--- + +The `nilu` air quality platform shows measurements of current air quality from NILU (Norsk Institutt for luftforskning/Norwegian Institute for Air Research) sensor stations within Norway. Makes data from the open API at [luftkvalitet.info](http://luftkvalitet.info/) and [nilu.no](https://nilu.no/) available in Home Assistant. + +## {% linkable_title Configuration %} + +To enable this platform, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +air_quality: + - platform: nilu +``` + +{% configuration %} + latitude: + description: Manually specify latitude. By default, the value will be taken from the Home Assistant configuration. + required: false + type: number + default: Provided by Home Assistant configuration. + longitude: + description: Manually specify longitude. By default, the value will be taken from the Home Assistant configuration. + required: false + type: number + default: Provided by Home Assistant configuration. + name: + description: Name of the sensor to use in the frontend. + required: false + default: NILU + type: string + area: + description: Name of an area to get sensor stations from. See available areas below. + required: exclusive + type: string + stations: + description: Name of a specific station to get measurements from. + required: exclusive + type: string + show_on_map: + description: Option to show the position of the sensor station on the map. + required: false + default: false + type: boolean +{% endconfiguration %} + +## {% linkable_title Health risk index explainations %} + +Under the attributes from a NILU station, there will be a `nilu pollution index`. This indicates how polluted the air is in the area around the sensor station. Following is a longer explanation of what the indexes mean. + +### {% linkable_title Low %} + +Low or no health risk linked to measured air pollution. Outdoor activites are recommended. + +### {% linkable_title Moderate %} + +Health effects may occur in some asthmatics and people with other respiratory diseases, as well as serious cardiovascular diseases. Outdoor activity can be recommended for the vast majority, but some should consider their activity in areas with high traffic or high emissions. + +### {% linkable_title High %} + +Health effects may occur in asthmatics and people with other respiratory diseases, as well as serious cardiovascular disease. Children with respiratory distress (asthma, bronchitis) and adults with severe cardiac or respiratory distress should reduce outdoor activity and not stay in the most polluted areas. + +### {% linkable_title Extremely high %} + +Sensitive groups in the population can have health effects. Respiratory irritation and discomfort may occur in healthy subjects. People with heart or respiratory distress should reduce outdoor activity and not stay in the most polluted areas. + +Source: [Explainations in Norwegian](http://www.luftkvalitet.info/home/Varslingsklasser.aspx) + +## {% linkable_title Available areas %} + +The `area` configuration is restricted to the areas NILU has defined. Here is the list of available areas: + +- `Bergen` +- `Birkenes` +- `Bodø` +- `Brumunddal` +- `Bærum` +- `Drammen` +- `Elverum` +- `Fredrikstad` +- `Gjøvik` +- `Grenland` +- `Halden` +- `Hamar` +- `Harstad` +- `Hurdal` +- `Karasjok` +- `Kristiansand` +- `Kårvatn` +- `Lillehammer` +- `Lillesand` +- `Lillestrøm` +- `Lørenskog` +- `Mo i Rana` +- `Moss` +- `Narvik` +- `Oslo` +- `Prestebakke` +- `Sandve` +- `Sarpsborg` +- `Stavanger` +- `Sør-Varanger` +- `Tromsø` +- `Trondheim` +- `Tustervatn` +- `Zeppelinfjellet` +- `Ålesund` + +## {% linkable_title Configuration examples %} + +Example of adding health risk monitoring from sensor stations around the Home Assistant location. + +```yaml +# Example configuration.yaml entry +# Adds all sensor stations within 20km. +air_quality: + - platform: nilu +``` + +Example where the sensors are also added to the map. + +```yaml +# Example configuration.yaml entry +# Adds all sensor stations within 20km. +# Additionally adds the sensors to the map. +air_quality: + - platform: nilu + show_on_map: True +``` + +Example of a specific station. + +```yaml +# Example configuration.yaml entry +# Monitors stations 'Alnabru' +air_quality: + - platform: nilu + stations: + - Alnabru +``` + +Example of getting stations from a specified area, giving the sensors a custom name. + +```yaml +# Example configuration.yaml entry +# Stations from specific area, 'Bergen' +# Custom name for the sensors. +air_quality: + - platform: nilu + area: Bergen + name: Forurensing Bergen +``` diff --git a/source/_components/air_pollutants.opensensemap.markdown b/source/_components/air_quality.opensensemap.markdown similarity index 83% rename from source/_components/air_pollutants.opensensemap.markdown rename to source/_components/air_quality.opensensemap.markdown index 7c79058e35ec..72c73883f055 100644 --- a/source/_components/air_pollutants.opensensemap.markdown +++ b/source/_components/air_quality.opensensemap.markdown @@ -11,9 +11,10 @@ logo: opensensemap.png ha_category: Health ha_release: 0.85 ha_iot_class: "Cloud Polling" +redirect_from: /components/air_pollutants.opensensemap/ --- -The `opensensemap` air pollutants platform will query the open data API of [openSenseMap.org](https://opensensemap.org/) to monitor air quality sensor station. +The `opensensemap` air quality platform will query the open data API of [openSenseMap.org](https://opensensemap.org/) to monitor air quality sensor station. ## {% linkable_title Setup %} @@ -25,7 +26,7 @@ To enable this platform, add the following lines to your `configuration.yaml` fi ```yaml # Example configuration.yaml entry -air_pollutants: +air_quality: - platform: opensensemap station_id: STATION_ID ``` diff --git a/source/_components/alarm_control_panel.abode.markdown b/source/_components/alarm_control_panel.abode.markdown deleted file mode 100644 index 588eb46f4075..000000000000 --- a/source/_components/alarm_control_panel.abode.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Abode Alarm Control Panel" -description: "Instructions on how to setup the Abode Alarm control panel within Home Assistant." -date: 2017-08-26 0:28 -sidebar: true -comments: false -sharing: true -footer: true -logo: abode.jpg -ha_category: Alarm -ha_release: 0.52 -ha_iot_class: "Cloud Push" ---- - -The `abode` security control panel platform allows you to control your [Abode](https://goabode.com/) alarms. - -The requirement is that you have setup your [Abode hub](/components/abode/). diff --git a/source/_components/alarm_control_panel.alarmdecoder.markdown b/source/_components/alarm_control_panel.alarmdecoder.markdown deleted file mode 100644 index 98810aaa2a1c..000000000000 --- a/source/_components/alarm_control_panel.alarmdecoder.markdown +++ /dev/null @@ -1,76 +0,0 @@ ---- -layout: page -title: "AlarmDecoder Alarm Control Panel" -description: "Instructions on how to setup the AlarmDecoder Alarm control panel within Home Assistant." -date: 2017-04-02 13:28 -sidebar: true -comments: false -sharing: true -footer: true -logo: alarmdecoder.png -ha_category: Alarm -ha_release: 0.43 -ha_iot_class: "Local Push" ---- - -The `alarmdecoder` alarm control panel platform allows you to control your [AlarmDecoder](https://www.alarmdecoder.com) alarms. - -The requirement is that you have setup your [AlarmDecoder hub](/components/alarmdecoder/). - -### {% linkable_title Services %} - -The Alarm Decoder component gives you access to several services for you to control your alarm with. - -- `alarm_arm_away`: Arms the alarm in away mode; all faults will trigger the alarm. -- `alarm_arm_home`: Arms the alarm in stay mode; faults to the doors or windows will trigger the alarm. -- `alarm_arm_night`: Arms the alarm in instant mode; all faults will trigger the alarm. Additionally, the entry delay is turned off on the doors. -- `alarm_disarm`: Disarms the alarm from any state. Also clears a `check_zone` flag after an alarm was triggered. -- `alarmdecoder_alarm_toggle_chime`: Toggles the alarm's chime state. - -

-`alarm_arm_custom_bypass` and `alarm_trigger`, while available in the services list in Home Assistant, are not currently implemented in the Alarm Decoder platform. -

- -### {% linkable_title Attributes %} - -There are several attributes available on the alarm panel to give you more information about your alarm. - -- `ac_power`: Set to `true` if your system has AC power supplying it. -- `backlight_on`: Set to `true` if your keypad's backlight is on. -- `battery_low`: Set to `true` if your system's back-up battery is low. -- `check_zone`: Set to `true` if your system was recently triggered. When `check_zone` is `true`, it must be cleared by entering your code + 1 before attempting to rearm your alarm. -- `chime`: Set to `true` if your system's chime is activated. When activated, your system will beep anytime a door or window is faulted while the alarm is disarmed. -- `entry_delay_off`: Set to `true` if your system is in "Instant" mode, meaning the alarm will sound on any faults. -- `programming_mode`: Set to `true` if your system is in programming mode. -- `ready`: Set to `true` if your system is ready to be armed. Any faults, including motions sensors, will make this value `false`. -- `zone_bypassed`: Set to `true` if your system is currently bypassing a zone. - -### {% linkable_title Examples %} - -Using a combination of the available services and attributes, you can create switch templates. - -#### {% linkable_title Chime Status and Control %} - -{% raw %} -```yaml -- platform: template - switches: - alarm_chime: - friendly_name: Chime - value_template: "{{ is_state_attr('alarm_control_panel.alarm_panel', 'chime', true) }}" - turn_on: - service: alarm_control_panel.alarmdecoder_alarm_toggle_chime - data: - code: !secret alarm_code - turn_off: - service: alarm_control_panel.alarmdecoder_alarm_toggle_chime - data: - code: !secret alarm_code - icon_template: >- - {% if is_state_attr('alarm_control_panel.alarm_panel', 'chime', true) %} - mdi:bell-ring - {% else %} - mdi:bell-off - {% endif %} -``` -{% endraw %} diff --git a/source/_components/alarm_control_panel.arlo.markdown b/source/_components/alarm_control_panel.arlo.markdown deleted file mode 100644 index ddc28e0fdb66..000000000000 --- a/source/_components/alarm_control_panel.arlo.markdown +++ /dev/null @@ -1,78 +0,0 @@ ---- -layout: page -title: "Arlo Control Panel" -description: "Instructions on how to setup the Netgear Arlo Base Stations as a control panel within Home Assistant." -date: 2017-10-05 17:45 -sidebar: true -comments: false -sharing: true -footer: true -logo: arlo.png -ha_category: Alarm -ha_release: 0.56 -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: - -```yaml -# Example configuration.yaml entry -alarm_control_panel: - - platform: arlo -``` - -{% configuration %} -home_mode_name: - description: "Arlo base station does not have a built-in home mode. You can map one of your custom modes to Home Assistant's home mode by setting the name of the custom mode in this configuration variable. The name of the custom mode should match exactly as you set it up in the Arlo app." - required: false - type: string -away_mode_name: - description: "Arlo base station does not have a built-in away mode. You can map one of your custom modes to Home Assistant's away mode by setting the name of the custom mode in this configuration variable. The name of the custom mode should match eactly as you set it up in the Arlo app." - required: false - type: string - default: "`Armed` mode in Arlo" -{% endconfiguration %} - -## {% linkable_title Examples %} - -These examples are based on an Arlo base station named `my_arlo_base_station`. Replace this with the name of your base station's `entity_id`. - -Arming the Arlo Base Station when leaving. - -```yaml -- id: arm_arlo_when_leaving - alias: Arm Arlo cameras when leaving - trigger: - platform: state - entity_id: group.family - from: home - to: not_home - action: - service: alarm_control_panel.alarm_arm_away - entity_id: alarm_control_panel.my_arlo_base_station -``` - -Setting Arlo to a custom mode (mapped to `home_mode_name` in `configuration.yaml`) when arriving. - -```yaml -- id: disarm_arlo_when_arriving - alias: Set Arlo cameras to Home mode when arriving - trigger: - platform: state - entity_id: group.family - from: not_home - to: home - action: - service: alarm_control_panel.alarm_arm_home - entity_id: alarm_control_panel.my_arlo_base_station -``` - -You can also completely disarm the Arlo base station by calling the `alarm_control_panel.alarm_disarm` service, and trigger the alarm by calling the `alarm_control_panel.alarm_trigger` service. - -More examples and configuration options can be found on the [Manual Alarm Control page](/components/alarm_control_panel.manual/#examples). diff --git a/source/_components/alarm_control_panel.blink.markdown b/source/_components/alarm_control_panel.blink.markdown deleted file mode 100644 index c0ca3b0d5559..000000000000 --- a/source/_components/alarm_control_panel.blink.markdown +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: page -title: "Blink Alarm Control Panel" -description: "Instructions for how to setup Blink alarm control panel within Home Assistant." -date: 2018-10-01 22:13 -sidebar: true -comments: false -sharing: true -footer: true -logo: blink.png -ha_category: Alarm -ha_release: "0.80" ---- - -

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

diff --git a/source/_components/alarm_control_panel.canary.markdown b/source/_components/alarm_control_panel.canary.markdown deleted file mode 100644 index 59125f8746ab..000000000000 --- a/source/_components/alarm_control_panel.canary.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Canary Alarm Control Panel" -description: "Instructions on how to integrate your Canary devices into Home Assistant." -date: 2017-12-07 22:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: canary.png -ha_category: Alarm -ha_release: "0.60" -ha_iot_class: "Cloud Polling" ---- - -The `canary` alarm control panel platform allows you to integrate your [Canary](https://canary.is) alarm system in Home Assistant. - -To add `canary` alarm control panel to your installation, follow instructions in [Canary component](/components/canary/). diff --git a/source/_components/alarm_control_panel.egardia.markdown b/source/_components/alarm_control_panel.egardia.markdown deleted file mode 100644 index bef700af1646..000000000000 --- a/source/_components/alarm_control_panel.egardia.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "Egardia / Woonveilig Alarm Control Panel" -description: "Instructions on how to integrate Egardia / Woonveilig into Home Assistant." -date: 2016-07-02 22:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: egardia.png -ha_release: 0.51 -ha_category: Alarm ---- - -The `egardia` platform allows you to integrate your [Egardia](http://www.egardia.com)/[Woonveilig](http://www.woonveilig.nl) alarm control panel in Home Assistant. -You will need to set up your [Egardia hub](/components/egardia/). diff --git a/source/_components/alarm_control_panel.elkm1.markdown b/source/_components/alarm_control_panel.elkm1.markdown deleted file mode 100644 index 89a57e26fe49..000000000000 --- a/source/_components/alarm_control_panel.elkm1.markdown +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: page -title: "Elk-M1 Alarm Control Panel" -description: "Instructions how to integrate Elk M1 alarm control panel." -date: 2018-10-07 00:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: elkproducts.png -ha_release: 0.81 -ha_category: Alarm -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 area (also known as partition) is represented as an `alarm_control_panel`. - -

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

diff --git a/source/_components/alarm_control_panel.envisalink.markdown b/source/_components/alarm_control_panel.envisalink.markdown deleted file mode 100644 index e06e56057cbe..000000000000 --- a/source/_components/alarm_control_panel.envisalink.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Envisalink Alarm" -description: "Instructions on how to setup the Envisalink Alarm control panel within Home Assistant." -date: 2016-07-01 08:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: eyezon.png -ha_category: Alarm -ha_release: 0.23 -ha_iot_class: "Local Push" ---- - -The `envisalink` alarm control panel platform allows you to control your [Envisalink](http://www.eyezon.com) alarms. - -The requirement is that you have setup your [Envisalink hub](/components/envisalink/). diff --git a/source/_components/alarm_control_panel.homematicip_cloud.markdown b/source/_components/alarm_control_panel.homematicip_cloud.markdown deleted file mode 100644 index c4e06783b8e8..000000000000 --- a/source/_components/alarm_control_panel.homematicip_cloud.markdown +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: page -title: "HomematicIP Cloud Alarm Control Panel" -description: "Instructions on how to integrate HomematicIP alarm control panel into Home Assistant." -date: 2018-05-18 22:40 -sidebar: true -comments: false -sharing: true -footer: true -logo: homematicip_cloud.png -ha_category: Sensor -ha_release: 0.73 -ha_iot_class: "Cloud Push" ---- - -The `homematicip_cloud` alarm_control_panel platform allows you to control your [HomematicIP](https://www.homematic-ip.com) `Security Zones` through Home Assistant. - -This component will automatically add `Security Zones` configured in your HomematicIP cloud. - -Please refer to the -[component](/components/homematicip_cloud/) configuration on how to setup HomematicIP Cloud. diff --git a/source/_components/alarm_control_panel.lupusec.markdown b/source/_components/alarm_control_panel.lupusec.markdown deleted file mode 100644 index 432a7da93aee..000000000000 --- a/source/_components/alarm_control_panel.lupusec.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Lupusec Alarm Control Panel" -description: "Instructions on how to setup the Lupusec Alarm control panel within Home Assistant." -date: 2018-10-03 16:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: lupusec.jpg -ha_category: Alarm -ha_release: 0.83 -ha_iot_class: "Local Polling" ---- - -The `LUPUS-Electronics` security control panel platform allows you to control your [Lupusec](https://www.lupus-electronics.de) devices. - -The requirement is that you have setup your [Lupusec component](/components/lupusec/). The alarm control panel is automatically added to your hass UI. \ No newline at end of file diff --git a/source/_components/alarm_control_panel.manual.markdown b/source/_components/alarm_control_panel.manual.markdown index 2f3c49b2cbcc..d6dba8707853 100644 --- a/source/_components/alarm_control_panel.manual.markdown +++ b/source/_components/alarm_control_panel.manual.markdown @@ -205,3 +205,65 @@ automation: - service: alarm_control_panel.alarm_disarm entity_id: alarm_control_panel.house_alarm ``` + +Sending a Notification when the Alarm is Armed (Away/Home), Disarmed and in Pending Status + +{% raw %} +```yaml +- alias: 'Send notification when alarm is Disarmed' + initial_state: 'on' + trigger: + - platform: state + entity_id: alarm_control_panel.home_alarm + to: 'disarmed' + action: + - service: notify.notify + data: + message: "ALARM! The alarm is Disarmed at {{ states('sensor.date__time') }}" +``` +{% endraw %} + +{% raw %} +```yaml +- alias: 'Send notification when alarm is in pending status' + initial_state: 'on' + trigger: + - platform: state + entity_id: alarm_control_panel.home_alarm + to: 'pending' + action: + - service: notify.notify + data: + message: "ALARM! The alarm is in pending status at {{ states('sensor.date__time') }}" +``` +{% endraw %} + +{% raw %} +```yaml +- alias: 'Send notification when alarm is Armed in Away mode' + initial_state: 'on' + trigger: + - platform: state + entity_id: alarm_control_panel.home_alarm + to: 'armed_away' + action: + - service: notify.notify + data: + message: "ALARM! The alarm is armed in Away mode {{ states('sensor.date__time') }}" +``` +{% endraw %} + +{% raw %} +```yaml +- alias: 'Send notification when alarm is Armed in Home mode' + initial_state: 'on' + trigger: + - platform: state + entity_id: alarm_control_panel.home_alarm + to: 'armed_home' + action: + - service: notify.notify + data: + message: "ALARM! The alarm is armed in Home mode {{ states('sensor.date__time') }}" +``` +{% endraw %} diff --git a/source/_components/alarm_control_panel.manual_mqtt.markdown b/source/_components/alarm_control_panel.manual_mqtt.markdown index 751a5e77c595..ca6b592aa677 100644 --- a/source/_components/alarm_control_panel.manual_mqtt.markdown +++ b/source/_components/alarm_control_panel.manual_mqtt.markdown @@ -12,7 +12,7 @@ ha_category: Alarm ha_release: "0.50" --- -This platform extends the [manual alarm](/components/alarm_control_panel.manual/) by adding support for MQTT control of the alarm by a remote device. It can be used to create external keypads which simply change the state of the manual alarm in Home Assistant. +The `mqtt` platform extends the [manual alarm](/components/alarm_control_panel.manual/) by adding support for MQTT control of the alarm by a remote device. It can be used to create external keypads which simply change the state of the manual alarm in Home Assistant. It's essentially the opposite of the [MQTT Alarm Panel](/components/alarm_control_panel.mqtt/) which allows Home Assistant to observe an existing, fully-featured alarm where all of the alarm logic is embedded in that physical device. @@ -91,15 +91,15 @@ armed_home/armed_away/armed_night/disarmed/triggered: type: list keys: delay_time: - description: State specific setting for **delay_time** (all states except **triggered**) + 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**) + 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**) + description: State specific setting for **trigger_time** (all states except **triggered**). required: false type: integer {% endconfiguration %} @@ -110,11 +110,11 @@ Additionally, the following MQTT configuration variables are also available. {% configuration %} state_topic: - description: The MQTT topic HA will publish state updates to. + description: The MQTT topic Home Assistant 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. + description: The MQTT topic Home Assistant will subscribe to, to receive commands from a remote device to change the alarm state. required: true type: string qos: @@ -148,9 +148,9 @@ payload_arm_night: 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 diff --git a/source/_components/alarm_control_panel.mqtt.markdown b/source/_components/alarm_control_panel.mqtt.markdown index 8cd5dd1bfd20..083a8eafb500 100644 --- a/source/_components/alarm_control_panel.mqtt.markdown +++ b/source/_components/alarm_control_panel.mqtt.markdown @@ -17,11 +17,12 @@ The `mqtt` alarm panel platform enables the possibility to control MQTT capable The component will accept the following states from your Alarm Panel (in lower case): -- 'disarmed' -- 'armed_home' -- 'armed_away' -- 'pending' -- 'triggered' +- `disarmed` +- `armed_home` +- `armed_away` +- 'armed_night' +- `pending` +- `triggered` The component can control your Alarm Panel by publishing to the `command_topic` when a user interacts with the Home Assistant frontend. @@ -43,6 +44,10 @@ name: required: false type: string default: MQTT Alarm +unique_id: + description: An ID that uniquely identifies this alarm panel. If two alarm panels have the same unique ID, Home Assistant will raise an exception. + required: false + type: string state_topic: description: The MQTT topic subscribed to receive state updates. required: true @@ -71,10 +76,20 @@ payload_arm_away: required: false type: string default: ARM_AWAY +payload_arm_night: + description: The payload to set armed-night mode on your Alarm Panel. + required: false + type: string + default: ARM_NIGHT code: description: If defined, specifies a code to enable or disable the alarm in the frontend. required: false type: string +code_arm_required: + description: If true the code is required to arm the alarm + required: false + type: boolean + default: true availability_topic: description: The MQTT topic subscribed to receive availability (online/offline) updates. required: false @@ -89,4 +104,37 @@ payload_not_available: required: false type: string default: offline +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation. + required: false + type: string +device: + description: 'Information about the device this alarm panel is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.' + required: false + type: map + keys: + identifiers: + description: 'A list of IDs that uniquely identify the device. For example a serial number.' + required: false + type: list, string + connections: + description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' + required: false + type: list + manufacturer: + description: 'The manufacturer of the device.' + required: false + type: string + model: + description: 'The model of the device.' + required: false + type: string + name: + description: 'The name of the device.' + required: false + type: string + sw_version: + description: 'The firmware version of the device.' + required: false + type: string {% endconfiguration %} diff --git a/source/_components/alarm_control_panel.satel_integra.markdown b/source/_components/alarm_control_panel.satel_integra.markdown deleted file mode 100644 index 7f75c0ba232f..000000000000 --- a/source/_components/alarm_control_panel.satel_integra.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Satel Integra Alarm Control Panel" -description: "Instructions on how to setup the Satel Integra control panel within Home Assistant." -date: 2017-09-07 13:28 -sidebar: true -comments: false -sharing: true -footer: true -logo: satel.jpg -ha_category: Alarm -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.verisure.markdown b/source/_components/alarm_control_panel.verisure.markdown deleted file mode 100644 index 8067027004ef..000000000000 --- a/source/_components/alarm_control_panel.verisure.markdown +++ /dev/null @@ -1,35 +0,0 @@ ---- -layout: page -title: "Verisure Alarm" -description: "Instructions on how to setup the Verisure Alarm control panel within Home Assistant." -date: 2016-02-15 22:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: verisure.png -ha_category: Alarm -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/). - -The `changed_by` attribute enables one to be able to take different actions depending on who armed/disarmed the alarm in [automation](/getting-started/automation/). - -```yaml -automation: - - alias: Alarm status changed - trigger: - - platform: state - entity_id: alarm_control_panel.alarm_1 - action: - - service: notify.notify - data_template: - message: > - {% raw %}Alarm changed from {{ trigger.from_state.state }} - to {{ trigger.to_state.state }} - by {{ trigger.to_state.attributes.changed_by }}{% endraw %} -``` diff --git a/source/_components/alarm_control_panel.wink.markdown b/source/_components/alarm_control_panel.wink.markdown deleted file mode 100644 index b40c29927df2..000000000000 --- a/source/_components/alarm_control_panel.wink.markdown +++ /dev/null @@ -1,27 +0,0 @@ ---- -layout: page -title: "Wink Alarm" -description: "Instructions on how to setup the Wink alarms within Home Assistant." -date: 2017-01-14 12:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: wink.png -ha_category: Alarm -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 7b5bf71aae39..760ddc30ef16 100644 --- a/source/_components/alarm_control_panel.yale_smart_alarm.markdown +++ b/source/_components/alarm_control_panel.yale_smart_alarm.markdown @@ -7,6 +7,7 @@ sidebar: true comments: false sharing: true footer: true +logo: yale.png ha_category: Alarm ha_release: 0.78 --- diff --git a/source/_components/alarmdecoder.markdown b/source/_components/alarmdecoder.markdown index 01d9bfb80532..05f43d52b05d 100644 --- a/source/_components/alarmdecoder.markdown +++ b/source/_components/alarmdecoder.markdown @@ -8,9 +8,16 @@ comments: false sharing: true footer: true logo: alarmdecoder.png -ha_category: Hub +ha_category: + - Alarm + - Binary Sensor + - Sensor ha_release: 0.43 ha_iot_class: "Local Push" +redirect_from: + - /components/alarm_control_panel.alarmdecoder/ + - /components/binary_sensor.alarmdecoder/ + - /components/sensor.alarmdecoder/ --- 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. @@ -19,12 +26,14 @@ Please visit the [AlarmDecoder website](https://www.alarmdecoder.com/) for furth There is currently support for the following device types within Home Assistant: -- [Binary Sensor](/components/binary_sensor.alarmdecoder/): Reports on zone status -- [Sensor](/components/sensor.alarmdecoder/): Emulates a keypad display -- [Alarm Control Panel](/components/alarm_control_panel.alarmdecoder/): Reports on alarm status, and can be used to arm/disarm the system +- Binary Sensor: Reports on zone status +- Sensor: Emulates a keypad display +- [Alarm Control Panel](#alarm-control-panel): Reports on alarm status, and can be used to arm/disarm the system This is a fully event-based component. Any event sent by the AlarmDecoder device will be immediately reflected within Home Assistant. +## {% linkable_title Configuration %} + An `alarmdecoder` section must be present in the `configuration.yaml` file and contain the following options as required: ```yaml @@ -91,7 +100,7 @@ zones: 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)." + description: "A type for the zone. Here you can find a list of [Device Classes](/components/binary_sensor/#device-class)." required: false default: opening type: string @@ -112,3 +121,61 @@ zones: required: inclusive type: integer {% endconfiguration %} + +## {% linkable_title Alarm Control Panel %} + +There are several attributes available on the alarm panel to give you more information about your alarm. + +- `ac_power`: Set to `true` if your system has AC power supplying it. +- `backlight_on`: Set to `true` if your keypad's backlight is on. +- `battery_low`: Set to `true` if your system's back-up battery is low. +- `check_zone`: Set to `true` if your system was recently triggered. When `check_zone` is `true`, it must be cleared by entering your code + 1 before attempting to rearm your alarm. +- `chime`: Set to `true` if your system's chime is activated. When activated, your system will beep anytime a door or window is faulted while the alarm is disarmed. +- `entry_delay_off`: Set to `true` if your system is in "Instant" mode, meaning the alarm will sound on any faults. +- `programming_mode`: Set to `true` if your system is in programming mode. +- `ready`: Set to `true` if your system is ready to be armed. Any faults, including motions sensors, will make this value `false`. +- `zone_bypassed`: Set to `true` if your system is currently bypassing a zone. + +## {% linkable_title Services %} + +The Alarm Decoder component gives you access to several services for you to control your alarm with. + +- `alarm_arm_away`: Arms the alarm in away mode; all faults will trigger the alarm. +- `alarm_arm_home`: Arms the alarm in stay mode; faults to the doors or windows will trigger the alarm. +- `alarm_arm_night`: Arms the alarm in instant mode; all faults will trigger the alarm. Additionally, the entry delay is turned off on the doors. +- `alarm_disarm`: Disarms the alarm from any state. Also clears a `check_zone` flag after an alarm was triggered. +- `alarmdecoder_alarm_toggle_chime`: Toggles the alarm's chime state. + +

+`alarm_arm_custom_bypass` and `alarm_trigger`, while available in the services list in Home Assistant, are not currently implemented in the Alarm Decoder platform. +

+ +### {% linkable_title Examples %} + +Using a combination of the available services and attributes, you can create switch templates. + +### {% linkable_title Chime Status and Control %} + +{% raw %} +```yaml +- platform: template + switches: + alarm_chime: + friendly_name: Chime + value_template: "{{ is_state_attr('alarm_control_panel.alarm_panel', 'chime', true) }}" + turn_on: + service: alarm_control_panel.alarmdecoder_alarm_toggle_chime + data: + code: !secret alarm_code + turn_off: + service: alarm_control_panel.alarmdecoder_alarm_toggle_chime + data: + code: !secret alarm_code + icon_template: >- + {% if is_state_attr('alarm_control_panel.alarm_panel', 'chime', true) %} + mdi:bell-ring + {% else %} + mdi:bell-off + {% endif %} +``` +{% endraw %} diff --git a/source/_components/alert.markdown b/source/_components/alert.markdown index a2e2ac89b3a9..4eccd76a0443 100644 --- a/source/_components/alert.markdown +++ b/source/_components/alert.markdown @@ -58,6 +58,12 @@ entity_id: description: The ID of the entity to watch. required: true type: string +title: + description: > + A title to be used for the notification if the notifier supports it + with [template][template] support. + required: false + type: template state: description: The problem condition for the entity. required: false @@ -98,6 +104,10 @@ notifiers: description: "List of `notification` components to use for alerts." required: true type: list +data: + description: "Dictionary of extra parameters to send to the notifier." + required: false + type: list {% endconfiguration %} In this example, the garage door status (`input_boolean.garage_door`) is watched @@ -245,8 +255,8 @@ alert: - 30 - 60 - 120 - can_acknowledge: True - skip_first: True + can_acknowledge: true + skip_first: true notifiers: - ryans_phone ``` @@ -254,4 +264,31 @@ alert: The resulting title of the alert could be `Garage has been open for 30 min`. +### {% linkable_title Additional parameters for notifiers %} + +Some notifiers support more parameters (e.g., to set text color or action + buttons). These can be supplied via the `data` parameter: + +```yaml +# Example configuration.yaml entry +alert: + garage_door: + name: Garage is open + entity_id: input_boolean.garage_door + state: 'on' # Optional, 'on' is the default value + repeat: + - 15 + - 30 + - 60 + can_acknowledge: True # Optional, default is True + skip_first: True # Optional, false is the default + data: + inline_keyboard: + - 'Close garage:/close_garage, Acknowledge:/garage_acknowledge' + notifiers: + - frank_telegram +``` +This particular example relies on the `inline_keyboard` functionality of +Telegram, where the user is presented with buttons to execute certain actions. + [template]: /docs/configuration/templating/ diff --git a/source/_components/alexa.markdown b/source/_components/alexa.markdown index e75b372e96cb..9cabf5dccca1 100644 --- a/source/_components/alexa.markdown +++ b/source/_components/alexa.markdown @@ -54,16 +54,16 @@ Additionally, note that at the time of this writing, your Alexa skill endpoint * To get started with Alexa skills: - - Log in to [Amazon developer console][amazon-dev-console] - - Click the Alexa button at the top of the console - - Click the yellow "Add a new skill" button in the top right - - Skill Type: Custom Interaction Model (default) - - Name: Home Assistant - - Invocation name: home assistant (or be creative, up to you) - - Version: 1.0 - - Endpoint: - - https - - `https://YOUR_HOST/api/alexa?api_password=YOUR_API_PASSWORD` +- Log in to [Amazon developer console][amazon-dev-console] +- Click the Alexa button at the top of the console +- Click the yellow "Add a new skill" button in the top right + - Skill Type: Custom Interaction Model (default) + - Name: Home Assistant + - Invocation name: home assistant (or be creative, up to you) + - Version: 1.0 + - Endpoint: + - https + - `https://YOUR_HOST/api/alexa?api_password=YOUR_API_PASSWORD` You can use this [specially sized Home Assistant logo][large-icon] as the large icon and [this one][small-icon] as the small one. @@ -103,14 +103,14 @@ WhereAreWeIntent where we are This means that we can now ask Alexa things like: - - Alexa, ask Home Assistant where Paul is - - Alexa, ask Home Assistant where we are +- Alexa, ask Home Assistant where Paul is +- Alexa, ask Home Assistant where we are ## {% linkable_title Configuring Home Assistant %} When activated, the Alexa component will have Home Assistant's native intent support handle the incoming intents. If you want to run actions based on intents, use the [`intent_script`](/components/intent_script) component. -To enable Alexa add the following entry to your `configuration.yaml` file: +To enable Alexa, add the following entry to your `configuration.yaml` file: ```yaml alexa: @@ -222,15 +222,16 @@ intent_script: Now say `Alexa ask Home Assistant to run ` and Alexa will run that script for you. ### {% linkable_title Support for Launch Requests %} + There may be times when you want to respond to a launch request initiated from a command such as "Alexa, Red Alert!". To start, you need to get the skill id: - - Log into [Amazon developer console][amazon-dev-console] - - Click the Alexa button at the top of the console - - Click the Alexa Skills Kit Get Started button - - Locate the skill for which you would like Launch Request support - - Click the "View Skill ID" link and copy the ID +- Log into [Amazon developer console][amazon-dev-console] +- Click the Alexa button at the top of the console +- Click the Alexa Skills Kit Get Started button + - Locate the skill for which you would like Launch Request support + - Click the "View Skill ID" link and copy the ID The configuration is the same as an intent with the exception being you will use your skill ID instead of the intent name. ```yaml @@ -273,13 +274,13 @@ First create a file called `alexa_confirm.yaml` with something like the followin Then, wherever you would put some simple text for a response like `OK`, replace it with a reference to the file so that: -``` +```yaml text: OK ``` becomes: -``` +```yaml text: !include alexa_confirm.yaml ``` @@ -334,10 +335,9 @@ Please refer to the [Amazon documentation][flash-briefing-api-docs] for more inf - All other settings are up to you - Hit "Next" - Test - - Having passed all validations to reach this screen, you can now click on "< Back to All Skills" as your flash briefing is now available as in "Development" service. + - Having passed all validations to reach this screen, you can now click on "< Back to All Skills" as your flash briefing is now available as in "Development" service. - To invoke your flash briefing, open the Alexa app on your phone or go to the [Alexa Settings Site][alexa-settings-site], open the "Skills" configuration section, select "Your Skills", scroll to the bottom, tap on the Flash Briefing Skill you just created, enable it, then manage Flash Briefing and adjust ordering as necessary. Finally ask your Echo for your "news","flash briefing", or "briefing". - ## {% linkable_title Smart Home %} While the Skills API described above allows for arbitrary intents, all @@ -358,6 +358,9 @@ the integration work easier. Example configuration: ```yaml alexa: smart_home: + endpoint: https://api.amazonalexa.com/v3/events + client_id: !secret alexa_client_id + client_secret: !secret alexa_client_secret filter: include_entities: - light.kitchen @@ -373,13 +376,17 @@ alexa: switch.stairs: display_categories: LIGHT ``` - This exposes an HTTP POST endpoint at `http://your_hass_ip/api/alexa/smart_home` which accepts and returns messages conforming to the [Smart Home v3 payload](https://developer.amazon.com/docs/smarthome/smart-home-skill-api-message-reference.html). You must then create an Amazon developer account with an Alexa skill and Lambda function to integrate this endpoint. See [Haaska](https://github.com/mike-grant/haaska) for an example. +The `endpoint`, `client_id` and `client_secret` are optional, and are only required if you want to enable Alexa's proactive mode. Please note the following if you want to enable proactive mode: + +- There are different endpoint urls, depending on the region of your skill. Please check the available endpoints at +- The `client_id` and `client_secret` are not the ones used by the skill that have been set up using "Login with Amazon" (in the Alexa Developer Console: Build > Account Linking), but rather from the "Alexa Skill Messaging" (in the Alexa Developer Console: Build > Permissions > Alexa Skill Messaging). To get them, you need to enable the "Send Alexa Events" permission. +- If the "Send Alexa Events" permission was not enabled previously, you need to unlink and relink the skill using the Alexa App, or else Home Assistant will show the following error: "Token invalid and no refresh token available." [amazon-dev-console]: https://developer.amazon.com [flash-briefing-api]: https://developer.amazon.com/alexa-skills-kit/flash-briefing diff --git a/source/_components/ambient_station.markdown b/source/_components/ambient_station.markdown new file mode 100644 index 000000000000..5dc01ea15b24 --- /dev/null +++ b/source/_components/ambient_station.markdown @@ -0,0 +1,231 @@ +--- +layout: page +title: "Ambient Weather Station Sensor" +description: "How to integrate Ambient Weather station within Home Assistant." +date: 2018-11-15 08:00 +sidebar: true +comments: false +logo: ambient_weather.png +ha_category: Weather +ha_release: "0.85" +ha_iot_class: "Cloud Push" +redirect_from: + - /components/sensor.ambient_station/ +--- + +The `Ambient Weather Station` component retrieves local weather information +via personal weather stations from [Ambient Weather](https://ambientweather.net). + +## {% linkable_title Setup %} + +Using this component requires both an Application Key and an API Key. To +generate both, simply utilize the profile section of +[your Ambient Weather dashboard](https:/dashboard.ambientweather.net). + +## {% linkable_title Configuration %} + +To add your Ambient Weather PWS to your Home Assistant installation, add the +following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +ambient_station: + api_key: YOUR_API_KEY + app_key: YOUR_APPLICATION_KEY +``` + +{% configuration %} +api_key: + description: The API key to access the service. + required: true + type: string +app_key: + description: The Application key to access the service. + required: true + type: string +monitored_conditions: + description: Weather conditions to track. + required: optional + type: list + keys: + 24hourrainin: + description: 24h rain accumulation + baromabsin: + description: Absolute atmospheric pressure + baromrelin: + description: Relative atmospheric pressure + battout: + description: Weather station battery health + batt1: + description: Sensor 1 battery health + batt2: + description: Sensor 2 battery health + batt3: + description: Sensor 3 battery health + batt4: + description: Sensor 4 battery health + batt5: + description: Sensor 5 battery health + batt6: + description: Sensor 6 battery health + batt7: + description: Sensor 7 battery health + batt8: + description: Sensor 8 battery health + batt9: + description: Sensor 9 battery health + batt10: + description: Sensor 10 battery health + co2: + description: CO2 level + dailyrainin: + description: Daily rain accumulation + dewPoint: + description: Dewpoint temperature + eventrainin: + description: Event Rain accumulation + feelsLike: + description: Feels Like temperature + hourlyrainin: + description: Hourly rain accumulation + humidity: + description: Outdoor humidity + humidity1: + description: Sensor 1 humidity + humidity2: + description: Sensor 2 humidity + humidity3: + description: Sensor 3 humidity + humidity4: + description: Sensor 4 humidity + humidity5: + description: Sensor 5 humidity + humidity6: + description: Sensor 6 humidity + humidity7: + description: Sensor 7 humidity + humidity8: + description: Sensor 8 humidity + humidity9: + description: Sensor 9 humidity + humidity10: + description: Sensor 10 humidity + humidityin: + description: Indoor humidity + lastRain: + description: Datetime of last rain event + maxdailygust: + description: Max daily wind gust + monthlyrainin: + description: Monthly rain accumulation + relay1: + description: Sensor 1 relay status + relay2: + description: Sensor 2 relay status + relay3: + description: Sensor 3 relay status + relay4: + description: Sensor 4 relay status + relay5: + description: Sensor 5 relay status + relay6: + description: Sensor 6 relay status + relay7: + description: Sensor 7 relay status + relay8: + description: Sensor 8 relay status + relay9: + description: Sensor 9 relay status + relay10: + description: Sensor 10 relay status + soilhum1: + description: Sensor 1 soil humidity + soilhum2: + description: Sensor 2 soil humidity + soilhum3: + description: Sensor 3 soil humidity + soilhum4: + description: Sensor 4 soil humidity + soilhum5: + description: Sensor 5 soil humidity + soilhum6: + description: Sensor 6 soil humidity + soilhum7: + description: Sensor 7 soil humidity + soilhum8: + description: Sensor 8 soil humidity + soilhum9: + description: Sensor 9 soil humidity + soilhum10: + description: Sensor 10 soil humidity + soiltemp1f: + description: Sensor 1 soil temperature + soiltemp2f: + description: Sensor 2 soil temperature + soiltemp3f: + description: Sensor 3 soil temperature + soiltemp4f: + description: Sensor 4 soil temperature + soiltemp5f: + description: Sensor 5 soil temperature + soiltemp6f: + description: Sensor 6 soil temperature + soiltemp7f: + description: Sensor 7 soil temperature + soiltemp8f: + description: Sensor 8 soil temperature + soiltemp9f: + description: Sensor 9 soil temperature + soiltemp10f: + description: Sensor 10 soil temperature + solarradiation: + description: Solar radiation + temp1f: + description: Sensor 1 temperature + temp2f: + description: Sensor 2 temperature + temp3f: + description: Sensor 3 temperature + temp4f: + description: Sensor 4 temperature + temp5f: + description: Sensor 5 temperature + temp6f: + description: Sensor 6 temperature + temp7f: + description: Sensor 7 temperature + temp8f: + description: Sensor 8 temperature + temp9f: + description: Sensor 9 temperature + temp10f: + description: Sensor 10 temperature + tempf: + description: Outdoor temperature + tempinf: + description: Indoor temperature + totalrainin: + description: Lifetime rain accumulation (since last reset) + uv: + description: UV index + weeklyrainin: + description: Weekly rain accumulation + winddir: + description: Wind direction + winddir_avg10m: + description: Wind direction, 10m moving average + winddir_avg2m: + description: Wind direction, 2m moving average + windgustdir: + description: Wind gust direction + windgustmph: + description: Wind gust + windspdmph_avg10m: + description: Wind speed, 10m moving average + windspdmph_avg2m: + description: Wind speed, 2m moving average + windspeedmph: + description: Windspeed + yearlyrainin: + description: Yearly rain accumulation +{% endconfiguration %} diff --git a/source/_components/amcrest.markdown b/source/_components/amcrest.markdown index baa4081a9869..5457697fbf4a 100644 --- a/source/_components/amcrest.markdown +++ b/source/_components/amcrest.markdown @@ -8,39 +8,38 @@ comments: false sharing: true footer: true logo: amcrest.png -ha_category: Hub +ha_category: + - Hub + - Camera + - Sensor + - Switch ha_iot_class: "Local Polling" ha_release: 0.49 +redirect_from: + - /components/camera.amcrest/ + - /components/sensor.amcrest/ + - /components/switch.amcrest/ --- -The `amcrest` camera platform allows you to integrate your -[Amcrest](https://amcrest.com/) IP camera in Home Assistant. +The `amcrest` camera platform allows you to integrate your [Amcrest](https://amcrest.com/) IP camera in Home Assistant. + +There is currently support for the following device types within Home Assistant: + +- [Camera](#camera) +- [Sensor](#sensor) +- [Switch](#switch) ## {% linkable_title Configuration %} -To enable your camera in your installation, -add the following to your `configuration.yaml` file: +To enable your camera in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry amcrest: - - host: IP_ADDRESS_CAMERA_1 + - host: IP_ADDRESS_CAMERA username: YOUR_USERNAME password: YOUR_PASSWORD - sensors: - - motion_detector - - sdcard - switches: - - motion_detection - - motion_recording - - host: IP_ADDRESS_CAMERA_2 - username: YOUR_USERNAME - password: YOUR_PASSWORD - resolution: low - stream_source: snapshot - sensors: - - ptz_preset ``` {% configuration %} @@ -147,10 +146,65 @@ Newer Amcrest firmware may not work, then **rtsp** is recommended instead. make sure to follow the steps mentioned at [FFMPEG](/components/ffmpeg/) documentation to install the `ffmpeg`. -Finish its configuration by visiting the -[Amcrest sensor page](/components/sensor.amcrest/) or -[Amcrest camera page](/components/camera.amcrest/). - To check if your Amcrest camera is supported/tested, visit the [supportability matrix](https://github.com/tchellomello/python-amcrest#supportability-matrix) link from the `python-amcrest` project. + +## {% linkable_title Advanced Configuration %} + +You can also use this more advanced configuration example: + +```yaml +# Example configuration.yaml entry +amcrest: + - host: IP_ADDRESS_CAMERA_1 + username: YOUR_USERNAME + password: YOUR_PASSWORD + sensors: + - motion_detector + - sdcard + switches: + - motion_detection + - motion_recording + + # Add second camera + - host: IP_ADDRESS_CAMERA_2 + username: YOUR_USERNAME + password: YOUR_PASSWORD + resolution: low + stream_source: snapshot + sensors: + - ptz_preset +``` + +## {% linkable_title Camera %} + +Once you have enabled the [Amcrest component](/components/amcrest), you can add cameras to your Home Assistant configuration. add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +camera: + - platform: amcrest +``` + +To check if your Amcrest camera is supported/tested, visit the [supportability matrix](https://github.com/tchellomello/python-amcrest#supportability-matrix) link from the `python-amcrest` project. + +## {% linkable_title Sensor %} + +Once you have enabled the [Amcrest component](/components/amcrest), you can add sensors to your Home Assistant configuration. Add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: amcrest +``` + +## {% linkable_title Switch %} + +The `amcrest` switch platform lets you control settings of [Amcrest IP Camera](#camera) through Home Assistant. + +Switches will be configured automatically. Please refer to the [component](/components/amcrest/) configuration on how to setup. + +

+In previous versions, switch devices in setups with multiple cameras, would not have specific entity ID causing them to change randomly after each Home Assistant restart. The current version adds the name of the camera at the end of the switch entity ID, making it more specific and consistent and causes the name option to be required in a multi-camera system. This behavior matches the sensor behavior of the Amcrest component. Because of this, older automations may require updates to the entity ID. +

\ No newline at end of file diff --git a/source/_components/android_ip_webcam.markdown b/source/_components/android_ip_webcam.markdown index bc6c493324a9..dcead93b80d2 100644 --- a/source/_components/android_ip_webcam.markdown +++ b/source/_components/android_ip_webcam.markdown @@ -8,22 +8,39 @@ comments: false sharing: true footer: true logo: android_ip_webcam.png -ha_category: Hub +ha_category: + - Hub + - Binary Sensor + - Camera + - Sensor + - Switch ha_release: "0.40" ha_iot_class: "Local Polling" +redirect_from: + - /components/binary_sensor.android_ip_webcam/ + - /components/camera.android_ip_webcam/ + - /components/sensor.android_ip_webcam/ + - /components/switch.android_ip_webcam/ --- -The `android_ip_webcam` component turns an Android phone into a network camera with multiple viewing options. +The `android_ip_webcam` component turns any Android phone or tablet into a network camera with multiple viewing options. 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. +There is currently support for the following device types within Home Assistant: + +- Binary Sensor +- Camera +- Sensor +- Switch + ## {% 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. +Download [the IP Webcam app](https://play.google.com/store/apps/details?id=com.pas.webcam) and launch the app. When you press 'Start Server', it will start streaming video from your phone and the IP address of the device will be shown on screen. ## {% linkable_title Configuration %} -To set it up the component, add the following information to your `configuration.yaml` file: +To set up the component, add the following information to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -153,3 +170,44 @@ android_ip_webcam: - torch ``` +## {% linkable_title Binary Sensor %} + +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. + +## {% linkable_title Examples %} + +You can also setup the binary motion sensor with the following script: + +{% raw %} + +```yaml +binary_sensor: + - platform: rest + name: Kitchen Motion + sensor_class: motion + resource: http://IP:8080/sensors.json?sense=motion_active + value_template: '{{ value_json.motion_active.data[0][1][0] | round(0) }}' +``` + +{% endraw %} + +## {% linkable_title Camera %} + +The `android_ip_webcam` component adds a camera by default if you choose not to use the component but still want to see the video feed then the [`mjpeg` camera](/components/camera.mjpeg/) platform can be used. + +## {% linkable_title Configuration %} + +To enable only the camera in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +camera: + - platform: mjpeg + mjpeg_url: http://IP_ADDRESS:8080/video +``` + +## {% linkable_title Sensor %} + +The `android_ip_webcam` sensor platform lets you observe states of [Android IP webcam](https://play.google.com/store/apps/details?id=com.pas.webcam) sensors through Home Assistant. Devices will be configured automatically. + +You can setup your own sensors by examining the JSON file from the webcam server: http://IP:8080/sensors.json \ No newline at end of file diff --git a/source/_components/apcupsd.markdown b/source/_components/apcupsd.markdown index aba2d754d22f..789b81c6a6c0 100644 --- a/source/_components/apcupsd.markdown +++ b/source/_components/apcupsd.markdown @@ -8,12 +8,24 @@ comments: false sharing: true footer: true logo: apcupsd.png -ha_category: System Monitor +ha_category: + - System Monitor + - Binary Sensor + - Sensor ha_release: 0.13 +ha_iot_class: "Local Polling" +redirect_from: + - /components/binary_sensor.apcupsd/ + - /components/sensor.apcupsd/ --- [APCUPSd](http://www.apcupsd.org/) status information can be integrated into Home Assistant when the Network Information Server (NIS) [is configured](http://www.apcupsd.org/manual/manual.html#nis-server-client-configuration-using-the-net-driver) is enabled on the APC device. +There is currently support for the following device types within Home Assistant: + +- [Binary Sensor](#binary-sensor) +- [Sensor](#sensor) + ## {% linkable_title Configuration %} To enable this sensor, add the following lines to your `configuration.yaml`: @@ -39,3 +51,89 @@ port:

If you get `ConnectionRefusedError: Connection refused` errors in the Home assistant logs, ensure the [APCUPSd](http://www.apcupsd.org/) configuration directives used by its Network Information Server is set to permit connections from all addresses [NISIP 0.0.0.0](http://www.apcupsd.org/manual/manual.html#configuration-directives-used-by-the-network-information-server), else non-local addesses will not connect. This includes Hass.io running in Docker, even when hosted on the same machine or a virtual machine.

+ +## {% linkable_title Binary sensor %} + +In addition to the [APCUPSd Sensor](#sensor) devices, you may also create a device which is simply "on" when the UPS status is online and "off" at all other times. + +### {% linkable_title Configuration %} + +To enable this sensor, you first have to set up apcupsd component (above), and add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: apcupsd +``` + +{% configuration %} +name: + description: Name to use in the frontend. + required: false + type: string + default: UPS Online Status +{% endconfiguration %} + +## {% linkable_title Sensor %} + + The `apcupsd` sensor platform allows you to monitor a UPS (battery backup) by using data from the [apcaccess](http://linux.die.net/man/8/apcaccess) command. + +### {% linkable_title Configuration %} + +To use this sensor platform, you first have to set up apcupsd component (above), and add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: apcupsd + resources: + - bcharge + - linev +``` + +{% configuration %} +resources: + description: Contains all entries to display. + required: true + type: list +{% endconfiguration %} + +### {% linkable_title Example %} + +Given the following output from `apcaccess`: + +```yaml +APC : 001,051,1149 +DATE : 2016-02-09 17:13:31 +0000 +HOSTNAME : localhost +VERSION : 3.14.12 (29 March 2014) redhat +UPSNAME : netrack +CABLE : Custom Cable Smart +DRIVER : APC Smart UPS (any) +UPSMODE : Stand Alone +STARTTIME: 2016-02-09 16:06:47 +0000 +MODEL : SMART-UPS 1400 +STATUS : TRIM ONLINE +LINEV : 247.0 Volts +LOADPCT : 13.0 Percent +BCHARGE : 100.0 Percent +TIMELEFT : 104.0 Minutes +MBATTCHG : 5 Percent +MINTIMEL : 3 Minutes +MAXTIME : 0 Seconds +MAXLINEV : 249.6 Volts +MINLINEV : 244.4 Volts +OUTPUTV : 218.4 Volts +[...] +``` + +Use the (case insensitive) values from the left hand column: + +```yaml +sensor: + - platform: apcupsd + resources: + - linev + - loadpct + - timeleft +``` diff --git a/source/_components/apple_tv.markdown b/source/_components/apple_tv.markdown index ae960ef16200..94c89c1d28c6 100644 --- a/source/_components/apple_tv.markdown +++ b/source/_components/apple_tv.markdown @@ -8,13 +8,24 @@ comments: false sharing: true footer: true logo: apple.png -ha_category: Multimedia +ha_category: + - Multimedia + - Media Player + - Remote ha_iot_class: "Local Push" ha_release: 0.49 +redirect_from: + - /components/media_player.apple_tv/ + - /components/remote.apple_tv/ --- The `apple_tv` platform allows you to control an Apple TV (3rd and 4th generation). See the [remote platform](/components/remote.apple_tv/) if you want to send remote control buttons, e.g., arrow keys. +There is currently support for the following device types within Home Assistant: + +- Media Player +- [Remote](#remote) +

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.

@@ -160,3 +171,30 @@ To play media on an Apple TV with device authentication enabled (e.g., ATV4 with ### {% linkable_title Service `apple_tv_scan` %} Scans the local network for Apple TVs. All found devices are presented as a persistent notification. + +## {% linkable_title Remote %} + +The `apple_tv` remote platform allows you to send remote control buttons to an Apple TV. It is automatically setup when an Apple TV is configured. + +At the moment, the following buttons are supported: + +- up +- down +- left +- right +- menu +- top_menu +- select + +A typical service call for press several buttons looks like this. + +```yaml +service: remote.send_command +data: + entity_id: remote.apple_tv + command: + - left + - left + - menu + - select +``` \ No newline at end of file diff --git a/source/_components/aqualogic.markdown b/source/_components/aqualogic.markdown index 537dc74974be..f8a578fbcc4a 100644 --- a/source/_components/aqualogic.markdown +++ b/source/_components/aqualogic.markdown @@ -8,13 +8,24 @@ comments: false sharing: true footer: true logo: hayward.png -ha_category: Hub +ha_category: + - Hub + - Sensor + - Switch ha_release: "0.80" ha_iot_class: "Local Push" +redirect_from: + - /components/sensor.aqualogic/ + - /components/switch.aqualogic/ --- The AquaLogic component provides connectivity to a Hayward/Goldline AquaLogic/ProLogic pool controller. Note that an RS-485 to Ethernet adapter connected to the pool controller is required. +There is currently support for the following device types within Home Assistant: + +- [Sensor](#sensor) +- [Switch](#switch) + ## {% linkable_title Configuration %} To add the AquaLogic component to your installation, add the following to your `configuration.yaml` file: @@ -22,13 +33,13 @@ To add the AquaLogic component to your installation, add the following to your ` ```yaml # Example configuration.yaml entry aqualogic: - host: 192.168.1.1 - port: 23 + host: IP_ADDRESS + port: PORT ``` {% configuration %} host: - description: The domain name or IP address of the RS-485 to Ethernet adapter connected to the pool controller, eg. 192.168.1.1. + description: The domain name or IP address of the RS-485 to Ethernet adapter connected to the pool controller, e.g., 192.168.1.1. required: true type: string port: @@ -36,3 +47,84 @@ port: required: true type: int {% endconfiguration %} + +## {% linkable_title Sensor %} + +Once you have enabled the AquaLogic component, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: aqualogic + monitored_conditions: + - pool_temp +``` + +{% configuration %} +monitored_conditions: + description: List of items you want to monitor. + required: false + default: all + type: list + keys: + air_temp: + description: The air temperature. + pool_temp: + description: The pool temperature. + spa_temp: + description: The spa temperature. + pool_chlorinator: + description: The pool chlorinator setting. + spa_chlorinator: + description: The spa chlorinator setting. + salt_level: + description: The current salt level. + pump_speed: + description: The current pump speed (Hayward VS pumps only). + pump_power: + description: The current pump power usage (Hayward VS pumps only). + status: + description: The current system status. +{% endconfiguration %} + +## {% linkable_title Switch %} + +Once you have enabled the AquaLogic component, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: aqualogic + monitored_conditions: + - lights + - filter +``` + +{% configuration %} +monitored_conditions: + description: List of items you want to monitor/control. + required: false + default: all + type: list + keys: + filter: + description: Controls the filter pump. + filter_low_speed: + description: Controls low speed mode on the filter pump (multi-speed pumps only). + lights: + description: Controls the Lights relay. + aux_1: + description: Controls the Aux 1 relay. + aux_2: + description: Controls the Aux 2 relay. + aux_3: + description: Controls the Aux 3 relay. + aux_4: + description: Controls the Aux 4 relay. + aux_5: + description: Controls the Aux 5 relay. + aux_6: + description: Controls the Aux 6 relay. + aux_7: + description: Controls the Aux 7 relay. +{% endconfiguration %} \ No newline at end of file diff --git a/source/_components/arlo.markdown b/source/_components/arlo.markdown index ab5839c3022d..f77d13a3f99c 100644 --- a/source/_components/arlo.markdown +++ b/source/_components/arlo.markdown @@ -8,13 +8,27 @@ comments: false sharing: true footer: true logo: arlo.png -ha_category: Hub +ha_category: + - Hub + - Alarm + - Camera + - Sensor ha_release: 0.46 ha_iot_class: "Cloud Polling" +redirect_from: + - /components/alarm_control_panel.arlo/ + - /components/camera.arlo/ + - /components/sensor.arlo/ --- The `arlo` implementation allows you to integrate your [Arlo](https://arlo.netgear.com/) devices in Home Assistant. +There is currently support for the following device types within Home Assistant: + +- [Alarm](#alarm) +- [Camera](#camera) +- [Sensor](#sensor) + ## {% linkable_title Configuration %} To enable device linked in your [Arlo](https://arlo.netgear.com/) account, add the following to your `configuration.yaml` file: @@ -58,3 +72,155 @@ The Arlo component also provides a camera service to enable/disable the motion d service: camera.enable_motion_detection entity_id: camera.arlo_frontdoor ``` + +## {% linkable_title Alarm %} + +### {% linkable_title Configuration %} + +Once you have enabled the [Arlo component](/components/arlo), add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +alarm_control_panel: + - platform: arlo +``` + +{% configuration %} +home_mode_name: + description: "Arlo base station does not have a built-in home mode. You can map one of your custom modes to Home Assistant's home mode by setting the name of the custom mode in this configuration variable. The name of the custom mode should match exactly as you set it up in the Arlo app." + required: false + type: string +away_mode_name: + description: "Arlo base station does not have a built-in away mode. You can map one of your custom modes to Home Assistant's away mode by setting the name of the custom mode in this configuration variable. The name of the custom mode should match eactly as you set it up in the Arlo app." + required: false + type: string + default: "`Armed` mode in Arlo" +night_mode_name: + description: "Arlo base station does not have a built-in night mode. You can map one of your custom modes to Home Assistant's night mode by setting the name of the custom mode in this configuration variable. The name of the custom mode should match eactly as you set it up in the Arlo app." + required: false + type: string + default: "`Armed` mode in Arlo" +{% endconfiguration %} + +### {% linkable_title Examples %} + +These examples are based on an Arlo base station named `my_arlo_base_station`. Replace this with the name of your base station's `entity_id`. + +Arming the Arlo Base Station when leaving. + +```yaml +- id: arm_arlo_when_leaving + alias: Arm Arlo cameras when leaving + trigger: + platform: state + entity_id: group.family + from: home + to: not_home + action: + service: alarm_control_panel.alarm_arm_away + entity_id: alarm_control_panel.my_arlo_base_station +``` + +Setting Arlo to a custom mode (mapped to `home_mode_name` in `configuration.yaml`) when arriving. + +```yaml +- id: disarm_arlo_when_arriving + alias: Set Arlo cameras to Home mode when arriving + trigger: + platform: state + entity_id: group.family + from: not_home + to: home + action: + service: alarm_control_panel.alarm_arm_home + entity_id: alarm_control_panel.my_arlo_base_station +``` + +You can also completely disarm the Arlo base station by calling the `alarm_control_panel.alarm_disarm` service, and trigger the alarm by calling the `alarm_control_panel.alarm_trigger` service. + +More examples and configuration options can be found on the [Manual Alarm Control page](/components/alarm_control_panel.manual/#examples). + +## {% linkable_title Camera %} + +This component is not yet able to live stream from your Arlo camera, but it will be able to playback the last video capture. + +### {% linkable_title Configuration %} + +Once you have enabled the [Arlo component](/components/arlo), add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +camera: + - platform: arlo + ffmpeg_arguments: '-pred 1 -q:v 2' +``` + +{% configuration %} +ffmpeg_arguments: + description: Extra options to pass to ffmpeg, e.g., image quality or video filter options. + required: false + type: string +{% endconfiguration %} + +**Note:** To be able to playback the last capture, it is required to install the `ffmpeg` component. Make sure to follow the steps mentioned at [FFMPEG](/components/ffmpeg/) documentation. + +## {% linkable_title Sensor %} + +To get your [Arlo](https://arlo.netgear.com/) sensors working within Home Assistant, please follow the instructions for the general [Arlo component](/components/arlo). + +This platform does not support Arlo Q. + +### {% linkable_title Configuration %} + +Once you have enabled the [Arlo component](/components/arlo), add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: arlo + monitored_conditions: + - captured_today + - last_capture + - total_cameras + - battery_level + - signal_strength +``` + +Additionally, for Arlo Baby cameras that have additional sensors, you can add them to the `monitored_conditions` collection: + +```yaml +# Additional sensors available for Arlo Baby cameras +sensor: + - platform: arlo + monitored_conditions: + # ... + - temperature + - humidity + - air_quality +``` + +{% configuration %} +monitored_conditions: + description: Conditions to display in the frontend. The following conditions can be monitored. + required: false + type: list + keys: + captured_today: + description: Return the number of videos captured on the current day. + last_capture: + description: Return the timestamp from the last video captured by your Arlo camera. + total_cameras: + description: Return the number of recognized and active cameras linked on your Arlo account. + battery_level: + description: Return the battery level of your Arlo camera. + signal_strength: + description: Return the wireless signal strength of your Arlo camera. + temperature: + description: Return the ambient temperature detected by your Arlo Baby camera. + humidity: + description: Return the ambient relative humidity detected by your Arlo Baby camera. + air_quality: + description: Return the ambient air quality (a reading of volatile organic compounds (VOCs) in parts per million) detected by your Arlo Baby camera. +{% endconfiguration %} + +If no **monitored_conditions** are specified, all of above will be enabled by default. diff --git a/source/_components/asuswrt.markdown b/source/_components/asuswrt.markdown index 486ec51086a4..12cb33901292 100644 --- a/source/_components/asuswrt.markdown +++ b/source/_components/asuswrt.markdown @@ -8,13 +8,24 @@ comments: false sharing: true footer: true logo: asus.png -ha_category: Hub +ha_category: + - Hub + - Presence Detection + - Sensor ha_release: 0.83 ha_iot_class: "Local Polling" +redirect_from: + - /components/device_tracker.asuswrt/ + - /components/sensor.asuswrt/ --- The `asuswrt` component is the main component to connect to a [ASUSWRT](http://event.asus.com/2013/nw/ASUSWRT/) based router. +There is currently support for the following device types within Home Assistant: + +- **Presence Detection** - The asuswrt platform offers presence detection by looking at connected devices to a ASUSWRT based router. +- **Sensor** - The asuswrt sensor platform allows you to get upload and download data from your ASUSWRT within Home Assistant. + ## {% linkable_title Configuration %} To use an ASUSWRT router in your installation, add the following to your `configuration.yaml` file: @@ -28,7 +39,7 @@ asuswrt: {% configuration %} host: - description: "The IP address of your router, eg. `192.168.1.1`." + description: "The IP address of your router, e.g., `192.168.1.1`." required: true type: string username: @@ -63,8 +74,79 @@ require_ip: required: false type: boolean default: true +sensors: + description: List of enabled sensors + required: false + type: list + keys: + "upload": + description: TX upload sensor + "download": + description: RX download sensor + "download_speed": + description: download mbit/s sensor + "upload_speed": + description: upload mbit/s sensor {% endconfiguration %}

-You need to [enable telnet](https://www.asus.com/support/faq/1005449/) on your router if you choose to use `protocol: telnet`. -

\ No newline at end of file +You need to [enable telnet](https://www.asus.com/support/faq/1005449/) on your router if you choose to use `protocol: telnet`. +

+ +### {% linkable_title Example Sensor Configuration %} + +To enable ASUSWRT sensors as part of your installation, reference the following example configuration: + +```yaml +# Example configuration.yaml entry +asuswrt: + host: YOUR_ROUTER_IP + username: YOUR_ADMIN_USERNAME + ssh_key: /config/id_rsa + sensors: + - upload + - download + - upload_speed + - download_speed +``` + +The example above, creates the following sensors: + +- sensor.asuswrt_download (unit_of_measurement: Gigabyte - *Daily accumulation*) +- sensor.asuswrt_download_speed (unit_of_measurement: Mbit/s) +- sensor.asuswrt_upload (unit_of_measurement: Gigabyte - *Daily accumulation*) +- sensor.asuswrt_upload_speed (unit_of_measurement: Mbit/s) + + +## {% linkable_title Padavan custom firmware (The rt-n56u project) %} + +The [rt-n56u project](https://bitbucket.org/padavan/rt-n56u) does not store `dnsmasq.leases` which is used to track devices at `/var/lib/misc/` as `asuswrt` do. However this component can still be used for the rt-n56u project by linking `dnsmasq.leases` during the boot process of the router. + +Follow these steps to setup the link. + +1. SSH or Telnet into the router. (default ssh admin@my.router) +2. Run the following command to find the file: + +```bash +$ find / -name "dnsmasq.leases" +``` +3. Copy or remember the full path of, example: `/tmp/dnsmasq.leases` +4. Create the folder if it does not exist: + +```bash +$ mkdir -p /var/lib/misc +``` +5. Add the linking process to the routers started script (one line): + +```bash +$ echo "/bin/ln -s /tmp/dnsmasq.leases /var/lib/misc/dnsmasq.leases" >> /etc/storage/started_script.sh +``` + +6. Reboot the router or link the file: + +```bash +$ /bin/ln -s /tmp/dnsmasq.leases /var/lib/misc/dnsmasq.leases +``` + +The started script is also accessible and editable in the Router's web interface. `Advanced Settings -> Customization -> Scripts -> Custom User Script -> Run After Router Started` + diff --git a/source/_components/august.markdown b/source/_components/august.markdown index 2eb0216834bb..d4e0c63c966f 100644 --- a/source/_components/august.markdown +++ b/source/_components/august.markdown @@ -8,12 +8,27 @@ comments: false sharing: true footer: true logo: august.png -ha_category: Doorbell +ha_category: + - Doorbell + - Binary Sensor + - Camera + - Lock ha_release: "0.64" ha_iot_class: "Cloud Polling" +redirect_from: + - /components/binary_sensor.august/ + - /components/camera.august/ + - /components/lock.august/ --- -The `august` component allows you to integrate your [August](http://august.com) devices in Home Assistant. Currently this component supports August Lock and Doorbell. +The `august` component allows you to integrate your [August](http://august.com) devices in Home Assistant. + +There is currently support for the following device types within Home Assistant: + +- Doorbell +- Binary Sensor +- Camera +- Lock

August Lock 2nd Gen will need either August Connect or Doorbell to connect to Home Assistant. @@ -54,3 +69,19 @@ timeout: {% endconfiguration %} Once Home Assistant is started, a configurator will pop up asking you to enter verification code that is sent to your phone number or email. + +### {% linkable_title Binary Sensor %} + +If you have August Doorbell, once you have enabled the August component, you should see following sensors: + +- Doorbell ding sensor +- Doorbell motion sensor +- Doorbell online sensor + +If you have August Smart Lock with DoorSense, once you have enabled the August component, you should see the following sensors: + +- Door sensor + +### {% linkable_title Camera %} + +The `august` camera platform allows you to view the latest camera image (triggered by motion) by your [August](http://august.com) device in Home Assistant. \ No newline at end of file diff --git a/source/_components/axis.markdown b/source/_components/axis.markdown index 5e6ae9b99285..3ba52eba2dc1 100644 --- a/source/_components/axis.markdown +++ b/source/_components/axis.markdown @@ -8,9 +8,14 @@ comments: false sharing: true footer: true logo: axis.png -ha_category: Camera +ha_category: + - Camera + - Binary Sensor ha_release: "0.45" ha_iot_class: "Local Polling" +redirect_from: + - /components/binary_sensor.axis/ + - /components/camera.axis/ --- [Axis Communications](https://www.axis.com/) devices are surveillance cameras and other security-related network connected hardware. Sensor API works with firmware 5.50 and newer. @@ -114,9 +119,11 @@ Any specific levels for triggers needs to be configured on the device.

## {% linkable_title Device services %} + Available services: `vapix_call`. -#### {% linkable_title Service `axis/vapix_call` %} +### {% linkable_title Service `axis/vapix_call` %} + Send a command using [Vapix](https://www.axis.com/support/developer-support/vapix). For details please read the API specifications. | Service data attribute | Optional | Description | @@ -131,3 +138,16 @@ Response to call can be subscribed to on event `vapix_call_response` ## {% linkable_title Troubleshooting discovery %} If a `169.x.x.x` address is discovered. On your camera, go to **System Options** -> **Advanced** -> **Plain Config**. Change the drop-down box to `network` and click `Select Group`. If `Network Interface I0 ZeroConf` contains the `169.x.x.x` IP address, unchecked the box next to `Enabled` for this section and click `Save`. + +## {% linkable_title Binary Sensor %} + +The `Axis` platform allows you to get data from your [Axis](https://www.axis.com/) devices from within Home Assistant. + +The following sensor types are supported: + +- Motion detection +- Passive IR motion detection +- Sound detection +- Day/night mode +- Tampering detection +- Input port diff --git a/source/_components/bbb_gpio.markdown b/source/_components/bbb_gpio.markdown index cb9f7a4c0dc2..285f6bcdb7c6 100644 --- a/source/_components/bbb_gpio.markdown +++ b/source/_components/bbb_gpio.markdown @@ -8,10 +8,117 @@ comments: false sharing: true footer: true logo: beaglebone-black.png -ha_category: DIY +ha_category: + - DIY + - Binary Sensor + - Switch ha_release: 0.36 ha_iot_class: "Local Push" +redirect_from: + - /components/binary_sensor.bbb_gpio/ + - /components/switch.bbb_gpio/ --- 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. +There is no setup needed for the component itself. + +## {% linkable_title Binary Sensor %} + +The `bbb_gpio` binary sensor platform allows you to read sensor values of the GPIOs of your [BeagleBone Black](https://beagleboard.org/black). + +## {% linkable_title Configuration %} + +To use your BeagleBone Black's GPIO in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: bbb_gpio + pins: + P8_12: + name: Door + GPIO0_26: + name: Window +``` + +{% configuration %} +pins: + description: List of used pins. + required: true + type: map + keys: + pin_name: + description: Port numbers and corresponding names. + required: true + type: map + keys: + name: + description: Friendly name to use for the frontend. + required: true + type: string + bouncetime: + description: Debounce time for reading input pin defined in milliseconds [ms]. + required: false + type: integer + default: 50 + invert_logic: + description: If `true`, inverts the input logic to ACTIVE LOW + required: 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 + type: string + default: UP +{% endconfiguration %} + +For more details about the GPIO layout, visit the [article](http://elinux.org/Beagleboard:BeagleBoneBlack) about the BeagleBone Black. + +## {% linkable_title Switch %} + +The `bbb_gpio` switch platform allows you to control the GPIOs of your [BeagleBone Black](https://beagleboard.org/black). + +## {% linkable_title Configuration %} + +To use your BeagleBone Black's GPIO in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: bbb_gpio + pins: + GPIO0_7: + name: LED Red + P9_12: + name: LED Green +``` + +{% configuration %} +pins: + description: List of used pins. + required: true + type: map + keys: + pin_name: + description: Port numbers and corresponding names. + required: true + type: map + keys: + name: + description: Friendly name to use for the frontend. + required: false + type: string + initial: + description: Initial state of the pin. + required: false + default: false + type: boolean + invert_logic: + description: If `true`, inverts the input logic to ACTIVE LOW + required: false + default: false + type: boolean +{% endconfiguration %} + +For more details about the GPIO layout, visit the [article](http://elinux.org/Beagleboard:BeagleBoneBlack) about the BeagleBone Black. \ No newline at end of file diff --git a/source/_components/binary_sensor.abode.markdown b/source/_components/binary_sensor.abode.markdown deleted file mode 100644 index def5cabb1924..000000000000 --- a/source/_components/binary_sensor.abode.markdown +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: page -title: "Abode Binary Sensor" -description: "Instructions on how to integrate Abode binary sensors into Home Assistant." -date: 2017-08-26 0:28 -sidebar: true -comments: false -sharing: true -footer: true -logo: abode.jpg -ha_release: 0.52 -ha_category: Binary Sensor -ha_iot_class: "Cloud Push" ---- - -The `abode` security control panel platform allows you to control your [Abode](https://goabode.com/) alarms. - -This component will add `Door Contacts`, `Connectivity` sensors (remotes, keypads, and status indicators), `Moisture` sensors, and `Motion` or `Occupancy` sensors. - -This component will also list all Abode `Quick Actions` that are set up. You can trigger these quick actions by passing the `entity_id` of your quick action binary sensor to the [trigger_quick_action service](/components/abode/#trigger_quick_action). - -The requirement is that you have setup your [Abode hub](/components/abode/). diff --git a/source/_components/binary_sensor.ads.markdown b/source/_components/binary_sensor.ads.markdown deleted file mode 100644 index ab988a737aec..000000000000 --- a/source/_components/binary_sensor.ads.markdown +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: page -title: "ADS Binary Sensor" -description: "Instructions on how to set up ADS binary sensors within Home Assistant." -date: 2017-10-25 10:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: beckhoff.png -ha_category: Binary Sensor -ha_release: "0.60" -ha_iot_class: "Local Push" ---- - -The `ads` binary sensor platform can be used to monitor a boolean value on your ADS device. - -To use your ADS device, you first have to set up your [ADS hub](/components/ads/) and then add the following to your `configuration.yaml` -file: - -```yaml -# Example configuration.yaml entry -binary_sensor: - - platform: ads - adsvar: .boolean1 -``` - -{% configuration %} -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.alarmdecoder.markdown b/source/_components/binary_sensor.alarmdecoder.markdown deleted file mode 100644 index 92cfa7fa4e10..000000000000 --- a/source/_components/binary_sensor.alarmdecoder.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "AlarmDecoder Binary Sensor" -description: "Instructions on how to integrate AlarmDecoder binary sensors into Home Assistant." -date: 2017-04-02 13:28 -sidebar: true -comments: false -sharing: true -footer: true -logo: alarmdecoder.png -ha_release: 0.43 -ha_category: Binary Sensor -ha_iot_class: "Local Push" ---- - -The `alarmdecoder` alarm control panel platform allows you to control your [AlarmDecoder](https://www.alarmdecoder.com) alarms. - -Check the [type/class](/components/binary_sensor/) list for a possible visualization of your zone. - -The requirement is that you have setup your [AlarmDecoder hub](/components/alarmdecoder/). diff --git a/source/_components/binary_sensor.android_ip_webcam.markdown b/source/_components/binary_sensor.android_ip_webcam.markdown deleted file mode 100644 index 7e3e0131947a..000000000000 --- a/source/_components/binary_sensor.android_ip_webcam.markdown +++ /dev/null @@ -1,33 +0,0 @@ ---- -layout: page -title: "Android IP Webcam Binary Sensor" -description: "Instructions on how to integrate binary motion sensors for Android IP webcam within Home Assistant." -date: 2017-03-10 00:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: android_ip_webcam.png -ha_category: Binary Sensor -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 [Android IP webcam](/components/android_ip_webcam/) configuration on how to setup. - -## {% linkable_title Examples %} - -You can also setup the binary motion sensor with the following script: - -{% raw %} -```yaml -binary_sensor: - - platform: rest - name: Kitchen Motion - sensor_class: motion - resource: http://IP:8080/sensors.json?sense=motion_active - value_template: '{{ value_json.motion_active.data[0][1][0] | round(0) }}' -``` -{% endraw %} diff --git a/source/_components/binary_sensor.apcupsd.markdown b/source/_components/binary_sensor.apcupsd.markdown deleted file mode 100644 index 30a124785a20..000000000000 --- a/source/_components/binary_sensor.apcupsd.markdown +++ /dev/null @@ -1,34 +0,0 @@ ---- -layout: page -title: APCUPSd Binary Sensor -description: "Instructions on how to set up an APCUPSd binary sensor within Home Assistant." -date: 2016-02-10 18:47 -sidebar: true -comments: false -sharing: true -footer: true -logo: apcupsd.png -ha_category: System Monitor -ha_release: 0.13 -ha_iot_class: "Local Polling" ---- - -In addition to the [APCUPSd Sensor](/components/sensor.apcupsd/) devices, you may also create a device which is simply "on" when the UPS status is online and "off" at all other times. - -## {% linkable_title Configuration %} - -To enable this sensor, you first have to set up [apcupsd](/components/apcupsd/), and add the following lines to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -binary_sensor: - - platform: apcupsd -``` - -{% configuration %} -name: - description: Name to use in the frontend. - required: false - type: string - default: UPS Online Status -{% endconfiguration %} diff --git a/source/_components/binary_sensor.august.markdown b/source/_components/binary_sensor.august.markdown deleted file mode 100644 index 04af4a51571f..000000000000 --- a/source/_components/binary_sensor.august.markdown +++ /dev/null @@ -1,26 +0,0 @@ ---- -layout: page -title: "August Binary Sensor" -description: "Instructions on how to integrate your August devices into Home Assistant." -date: 2018-02-17 22:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: august.png -ha_category: Binary Sensor -ha_release: "0.64" -ha_iot_class: "Cloud Polling" ---- - -To get your [August](http://august.com) doorbell binary sensors working within Home Assistant, please follow the instructions for the general [August component](/components/august/). - -If you have August Doorbell, once you have enabled the [August component](/components/august/), you should see following sensors: - -* Doorbell ding sensor -* 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.axis.markdown b/source/_components/binary_sensor.axis.markdown deleted file mode 100644 index 499739b05897..000000000000 --- a/source/_components/binary_sensor.axis.markdown +++ /dev/null @@ -1,27 +0,0 @@ ---- -layout: page -title: "Axis Binary Sensor" -description: "Instructions on how to integrate Axis binary sensors into Home Assistant." -date: 2017-04-01 19:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: axis.png -ha_category: Binary Sensor -ha_iot_class: "Local Push" -ha_release: "0.45" ---- - -The `Axis` platform allows you to get data from your [Axis](https://www.axis.com/) devices from within Home Assistant. - -See the [Axis main component](/components/axis/) for configuration instructions. - -The following sensor types are supported: - -- Motion detection -- Passive IR motion detection -- Sound detection -- Day/night mode -- Tampering detection -- Input port diff --git a/source/_components/binary_sensor.bayesian.markdown b/source/_components/binary_sensor.bayesian.markdown index 6154fbaa1f2c..81424f7d666a 100644 --- a/source/_components/binary_sensor.bayesian.markdown +++ b/source/_components/binary_sensor.bayesian.markdown @@ -57,10 +57,21 @@ observations: required: true type: list keys: + platform: + description: > + The supported platforms are `state`, `numeric_state`, and `template`. + They are modeled after their corresponding triggers for automations, + requiring `to_state` (for `state`), `below` and/or `above` (for `numeric_state`) and `value_template` (for `template`). + required: true + type: string entity_id: description: Name of the entity to monitor. - required: true + required: true (for `state` and `numeric_state`) type: string + value_template: + description: Defines the template to be used. + required: true (for `template`) + type: template prob_given_true: description: The probability of the observation occurring, given the event is `true`. required: true @@ -70,17 +81,10 @@ observations: required: false type: float default: "`1 - prob_given_true` if `prob_given_false` is not set" - platform: - description: > - The only supported observation platforms are `state` and `numeric_state`, - which are modeled after their corresponding triggers for automations, - requiring `below` and/or `above` instead of `to_state`. - required: true - type: string to_state: description: The target state. - required: true - type: string + required: true (for `state`) + type: string {% endconfiguration %} ## {% linkable_title Full examples %} @@ -95,23 +99,23 @@ binary_sensor: prior: 0.25 probability_threshold: 0.95 observations: - - entity_id: 'sensor.living_room_motion' + - platform: 'state' + entity_id: 'sensor.living_room_motion' prob_given_true: 0.4 prob_given_false: 0.2 - platform: 'state' to_state: 'off' - - entity_id: 'sensor.basement_motion' + - platform: 'state' + entity_id: 'sensor.basement_motion' prob_given_true: 0.5 prob_given_false: 0.4 - platform: 'state' to_state: 'off' - - entity_id: 'sensor.bedroom_motion' + - platform: 'state' + entity_id: 'sensor.bedroom_motion' prob_given_true: 0.5 - platform: 'state' to_state: 'on' - - entity_id: 'sun.sun' + - platform: 'state' + entity_id: 'sun.sun' prob_given_true: 0.7 - platform: 'state' to_state: 'below_horizon' ``` @@ -126,8 +130,27 @@ binary_sensor: prior: 0.2 probability_threshold: 0.9 observations: - - entity_id: 'sensor.outside_air_temperature_fahrenheit' + - platform: 'numeric_state' + entity_id: 'sensor.outside_air_temperature_fahrenheit' prob_given_true: 0.95 - platform: 'numeric_state' below: 50 ``` + +Finally, here's an example for `template` observation platform, +as seen in the configuration it requires `value_template` and does not use `entity_id`. + +{% raw %} +```yaml +# Example configuration.yaml entry +binary_sensor: + name: 'Paulus Home' + platform: 'bayesian' + prior: 0.5 + probability_threshold: 0.9 + observations: + - platform: template + value_template: > + {{is_state('device_tracker.paulus','not_home') and ((as_timestamp(now()) - as_timestamp(states.device_tracker.paulus.last_changed)) > 300)}} + prob_given_true: 0.95 +``` +{% endraw %} diff --git a/source/_components/binary_sensor.bbb_gpio.markdown b/source/_components/binary_sensor.bbb_gpio.markdown deleted file mode 100644 index 069c6c9eb1db..000000000000 --- a/source/_components/binary_sensor.bbb_gpio.markdown +++ /dev/null @@ -1,65 +0,0 @@ ---- -layout: page -title: "BeagleBone Black GPIO Binary Sensor" -description: "Instructions on how to integrate the GPIO sensor capability of a BeagleBone Black into Home Assistant." -date: 2017-01-14 10:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: beaglebone-black.png -ha_category: DIY -ha_release: 0.37 -ha_iot_class: "Local Push" ---- - -The `bbb_gpio` binary sensor platform allows you to read sensor values of the GPIOs of your [BeagleBone Black](https://beagleboard.org/black). - -## {% linkable_title Configuration %} - -To use your BeagleBone Black's GPIO in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -binary_sensor: - - platform: bbb_gpio - pins: - P8_12: - name: Door - GPIO0_26: - name: Window -``` - -{% configuration %} -pins: - description: List of used pins. - required: true - type: map - keys: - pin_name: - description: Port numbers and corresponding names. - required: true - type: map - keys: - name: - description: Friendly name to use for the frontend. - required: true - type: string - bouncetime: - description: Debounce time for reading input pin defined in milliseconds [ms]. - required: false - type: integer - default: 50 - invert_logic: - description: If `true`, inverts the input logic to ACTIVE LOW - required: 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 - 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 deleted file mode 100644 index f0068b9d1311..000000000000 --- a/source/_components/binary_sensor.blink.markdown +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: page -title: "Blink Binary Sensor" -description: "Instructions for how to setup Blink binary sensors within Home Assistant." -date: 2017-03-05 22:13 -sidebar: true -comments: false -sharing: true -footer: true -logo: blink.png -ha_category: Binary Sensor -ha_release: "0.40" ---- - -

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

diff --git a/source/_components/binary_sensor.bloomsky.markdown b/source/_components/binary_sensor.bloomsky.markdown deleted file mode 100644 index 761682c6ca21..000000000000 --- a/source/_components/binary_sensor.bloomsky.markdown +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: page -title: "BloomSky Binary Sensor" -description: "Instructions on how to set up BloomSky binary sensors within Home Assistant." -date: 2016-02-22 07:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: bloomsky.png -ha_category: Environment -ha_release: 0.14 -ha_iot_class: "Cloud Polling" ---- - -The `bloomsky` binary sensor platform allows you to get data from your BloomSky device. - -To get your BloomSky binary sensors working with Home Assistant, follow the instructions for the [BloomSky component](/components/bloomsky/) first. - -## {% linkable_title Configuration %} - -To use your BloomSky binary sensor in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -binary_sensor: - - platform: bloomsky - monitored_conditions: - - 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 deleted file mode 100644 index e93a570681f1..000000000000 --- a/source/_components/binary_sensor.bmw_connected_drive.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "BMW Connected Drive Binary Sensor" -description: "Instructions on how to setup your BMW Connected Drive account with Home Assistant." -date: 2018-02-22 23:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: bmw.png -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. - -For more configuration information see the [`bmw_connected_drive` component](/components/bmw_connected_drive/) documentation. diff --git a/source/_components/binary_sensor.command_line.markdown b/source/_components/binary_sensor.command_line.markdown index 8f499766a425..da5435b7d9f1 100644 --- a/source/_components/binary_sensor.command_line.markdown +++ b/source/_components/binary_sensor.command_line.markdown @@ -23,9 +23,11 @@ To use your Command binary sensor in your installation, add the following to you # Example configuration.yaml entry binary_sensor: - platform: command_line - command: cat /proc/sys/net/ipv4/ip_forward + command: 'cat /proc/sys/net/ipv4/ip_forward' ``` - +

+It's highly recommended to enclose the command in single quotes `'` as it ensures all characters can be used in the command and reduces the risk of unintentional escaping. To include a single quote in a command enclosed in single quotes, double it: `''`. +

{% configuration %} command: description: The action to take to get the value. @@ -78,7 +80,7 @@ Check the state of an [SickRage](https://github.com/sickragetv/sickrage) instanc # Example configuration.yaml entry binary_sensor: - platform: command_line - command: netstat -na | find "33322" | find /c "LISTENING" > nul && (echo "Running") || (echo "Not running") + command: 'netstat -na | find "33322" | find /c "LISTENING" > nul && (echo "Running") || (echo "Not running")' name: 'sickragerunning' device_class: moving payload_on: "Running" @@ -105,7 +107,7 @@ An alternative solution could look like this: binary_sensor: - platform: command_line name: Printer - command: ping -W 1 -c 1 192.168.1.10 > /dev/null 2>&1 && echo success || echo fail + command: 'ping -W 1 -c 1 192.168.1.10 > /dev/null 2>&1 && echo success || echo fail' device_class: connectivity payload_on: "success" payload_off: "fail" @@ -134,5 +136,3 @@ binary_sensor: payload_on: 'active' payload_off: 'inactive' ``` - -Note: Use single quotes! diff --git a/source/_components/binary_sensor.deconz.markdown b/source/_components/binary_sensor.deconz.markdown deleted file mode 100644 index 609eff3157a8..000000000000 --- a/source/_components/binary_sensor.deconz.markdown +++ /dev/null @@ -1,35 +0,0 @@ ---- -layout: page -title: "deCONZ Binary Sensor" -description: "Instructions on how to integrate Zigbee binary sensors from deCONZ into Home Assistant." -date: 2017-11-12 16:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: deconz.jpeg -ha_category: Binary Sensor -ha_release: "0.61" -ha_iot_class: "Local Push" ---- - -See the [deCONZ main component](/components/deconz/) for configuration instructions. - -The following sensor types are supported: - - * Fire/Smoke detection - * Open/Close detection - * Presence detection - * Water leakage detection - -The `entity_id` name will be `binary_sensor.device_name`, where `device_name` is defined in deCONZ. - -#### {% linkable_title Verified supported binary sensors %} - -- Open/Close Detection - - Xiaomi Smart Home Security Door & Window Contact Sensor -- Presence Detection - - IKEA Trådfri Motion Sensor - - Philips Hue Motion Sensor - - Xiaomi Motion Sensor - - Xiaomi Smart Home Aqara Human Body Sensor diff --git a/source/_components/binary_sensor.digital_ocean.markdown b/source/_components/binary_sensor.digital_ocean.markdown deleted file mode 100644 index d4e6c15cb621..000000000000 --- a/source/_components/binary_sensor.digital_ocean.markdown +++ /dev/null @@ -1,36 +0,0 @@ ---- -layout: page -title: "Digital Ocean Binary Sensor" -description: "Instructions on how to set up Digital Ocean binary sensors within Home Assistant." -date: 2016-09-24 08:00 -sidebar: true -comments: false -sharing: true -footer: true -ha_category: System Monitor -logo: digital_ocean.png -ha_release: "0.30" -ha_iot_class: "Local Polling" ---- - -The `digital_ocean` binary sensor platform allows you to monitor your Digital Ocean droplets. - -## {% 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: - -```yaml -# Example configuration.yaml entry -binary_sensor: - - platform: digital_ocean - droplets: - - 'fedora-512mb-nyc3-01' - - 'coreos-512mb-nyc3-01' -``` - -{% configuration %} -droplets: - description: List of droplets you want to monitor. - required: true - type: list -{% endconfiguration %} diff --git a/source/_components/binary_sensor.ecobee.markdown b/source/_components/binary_sensor.ecobee.markdown deleted file mode 100644 index 103c818d4952..000000000000 --- a/source/_components/binary_sensor.ecobee.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "Ecobee Binary Sensor" -description: "Instructions on how to setup the Ecobee sensors within Home Assistant." -date: 2015-11-30 18:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: ecobee.png -ha_category: Environment -ha_release: 0.9 -ha_iot_class: "Local Push" ---- - -To get your Ecobee binary sensors working with Home Assistant, follow the instructions for the general [Ecobee component](/components/ecobee/). diff --git a/source/_components/binary_sensor.egardia.markdown b/source/_components/binary_sensor.egardia.markdown deleted file mode 100644 index 4d60ded1886f..000000000000 --- a/source/_components/binary_sensor.egardia.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Egardia Binary Sensor" -description: "Instructions on how to integrate Egardia / Woonveilig binary sensors into Home Assistant." -date: 2018-03-02 09:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: egardia.png -ha_release: 0.65 -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. -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 deleted file mode 100644 index 4aaa5d3b81d2..000000000000 --- a/source/_components/binary_sensor.eight_sleep.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Eight Sleep Binary Sensor" -description: "Instructions on how to integrate binary motion sensors for Eight Sleep within Home Assistant." -date: 2017-04-24 00:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: eight_sleep.png -ha_category: Health -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 deleted file mode 100644 index 9414cf563b7e..000000000000 --- a/source/_components/binary_sensor.enocean.markdown +++ /dev/null @@ -1,76 +0,0 @@ ---- -layout: page -title: "EnOcean Binary Sensor" -description: "Instructions on how to set up EnOcean binary sensors within Home Assistant." -date: 2016-05-25 23:49 -sidebar: true -comments: false -sharing: true -footer: true -logo: enocean.png -ha_category: Binary Sensor -ha_release: 0.21 -ha_iot_class: "Local Push" ---- - -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 -# Example configuration.yaml entry -binary_sensor: - - platform: enocean - id: [0x01,0x90,0x84,0x3C] -``` - -{% configuration %} -id: - description: The ID of the device. This is the 4 bytes long number written on the dimmer. - required: true - type: list -name: - description: An identifier for the switch in the frontend. - required: false - 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 - type: device_class -{% endconfiguration %} - -EnOcean binary sensors only generate 'button_pressed' events. The event data has following four fields: - - - **id**: The ID of the device (see configuration). - - **pushed**: `1` for a button press, `0` for a button release. - - **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 -# Example automation to turn lights on/off on button release -automation: - - alias: hall light switches - trigger: - platform: event - event_type: button_pressed - event_data: - id: [0xYY, 0xYY, 0xYY, 0xYY] - pushed: 0 - action: - service_template: "{% raw %}{% if trigger.event.data.onoff %} light.turn_on {% else %} light.turn_off {%endif %}{% endraw %}" - data_template: - entity_id: "{% raw %}{% if trigger.event.data.which == 1 %} light.hall_left {% else %} light.hall_right {%endif %}{% endraw %}" -``` diff --git a/source/_components/binary_sensor.envisalink.markdown b/source/_components/binary_sensor.envisalink.markdown deleted file mode 100644 index 13abe44ef1b9..000000000000 --- a/source/_components/binary_sensor.envisalink.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Envisalink Binary Sensor" -description: "Instructions on how to integrate Envisalink binary sensors into Home Assistant." -date: 2016-07-01 08:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: eyezon.png -ha_release: 0.23 -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. - -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.fibaro.markdown b/source/_components/binary_sensor.fibaro.markdown deleted file mode 100644 index 56c0e7086e25..000000000000 --- a/source/_components/binary_sensor.fibaro.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Fibaro Binary Sensor" -description: "Instructions on how to integrate Fibaro binary sensors into Home Assistant." -date: 2018-11-14 23:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: fibaro.png -ha_category: Binary Sensor -ha_iot_class: "Local Push" -ha_release: 0.83 ---- - -The `fibaro` platform allows you to get data from your [Fibaro](http://fibaro.com/) binary sensors connected to your Fibaro HCL or HC2 from within Home Assistant. - -They will be automatically discovered if the `fibaro` component is loaded. diff --git a/source/_components/binary_sensor.flic.markdown b/source/_components/binary_sensor.flic.markdown index dd70d2eb4cdb..ef22b9b5e8ed 100644 --- a/source/_components/binary_sensor.flic.markdown +++ b/source/_components/binary_sensor.flic.markdown @@ -19,7 +19,7 @@ The platform does not directly interact with the buttons, *but communicates with #### {% linkable_title Service setup %} -If you are using Hass.io, you can run the service locally by [installing](https://www.home-assistant.io/hassio/installing_third_party_addons/) the flicd add-on from [pschmitt's repository](https://github.com/pschmitt/hassio-addons). On a Hass.io installation that's not yet based on HassOS, you also need to install the [bluetooth add-on](/addons/bluetooth_bcm43xx/). +If you are using Hass.io, you can run the service locally by [installing](/hassio/installing_third_party_addons/) the flicd add-on from [pschmitt's repository](https://github.com/pschmitt/hassio-addons). On a Hass.io installation that's not yet based on HassOS, you also need to install the [bluetooth add-on](/addons/bluetooth_bcm43xx/). For instructions on how to install the service manually, visit the GitHub repository of the service for [Linux](https://github.com/50ButtonsEach/fliclib-linux-hci), [OS X](https://github.com/50ButtonsEach/flic-service-osx) or [Windows](https://github.com/50ButtonsEach/fliclib-windows). diff --git a/source/_components/binary_sensor.fritzbox.markdown b/source/_components/binary_sensor.fritzbox.markdown deleted file mode 100644 index 774e0597b455..000000000000 --- a/source/_components/binary_sensor.fritzbox.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "Fritzbox Binary Sensor" -description: "Instructions on how to integrate an AVM Fritzbox alarm sensor." -date: 2018-10-01 23:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: avm.png -ha_category: Binary Sensor -ha_release: "0.80" -ha_iot_class: "Local Polling" ---- - -To get AVM fritzbox binary sensor follow the instructions for the [Fritzbox component](/components/fritzbox/). diff --git a/source/_components/binary_sensor.hive.markdown b/source/_components/binary_sensor.hive.markdown deleted file mode 100644 index c39ea49f7c8e..000000000000 --- a/source/_components/binary_sensor.hive.markdown +++ /dev/null @@ -1,25 +0,0 @@ ---- -layout: page -title: "Hive Binary Sensor" -description: "Instructions on how to integrate Hive Sensors with Home Assistant." -date: 2017-09-24 21:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: hive.png -ha_category: Binary Sensor -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: - -- 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 deleted file mode 100644 index f237976a0947..000000000000 --- a/source/_components/binary_sensor.homematic.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Homematic Binary Sensor" -description: "Instructions on how to integrate binary Homematic sensors within Home Assistant." -date: 2016-06-28 08:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: homematic.png -ha_category: Binary Sensor -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. diff --git a/source/_components/binary_sensor.homematicip_cloud.markdown b/source/_components/binary_sensor.homematicip_cloud.markdown deleted file mode 100644 index 7e9336cf1f9b..000000000000 --- a/source/_components/binary_sensor.homematicip_cloud.markdown +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: page -title: "HomematicIP Cloud Binary Sensor" -description: "Instructions on how to integrate HomematicIP binary sensors within Home Assistant." -date: 2018-04-02 13:40 -sidebar: true -comments: false -sharing: true -footer: true -logo: homematicip_cloud.png -ha_category: Binary Sensor -ha_release: 0.70 -ha_iot_class: "Cloud Push" ---- - -The `homematicip_cloud` binary_switch platform allows you to control -[HomematicIP](http://www.homematic-ip.com) binary sensors through Home Assistant. - -Devices will be configured automatically. Please refer to the -[component](/components/homematicip_cloud/) configuration on how to setup -HomematicIP Cloud. diff --git a/source/_components/binary_sensor.ihc.markdown b/source/_components/binary_sensor.ihc.markdown index b822dcfb1a1b..215b0d1bd641 100644 --- a/source/_components/binary_sensor.ihc.markdown +++ b/source/_components/binary_sensor.ihc.markdown @@ -29,7 +29,7 @@ be found in the IHC project and setup as binary sensors: ## {% linkable_title Manual configuration %} -To manually configure IHC Binary Sensors insert the "binary_sensors" section in your IHC configuration: +To manually configure IHC Binary Sensors insert the "binary_sensor" section in your IHC configuration: ```yaml # Example configuration.yaml entry @@ -38,7 +38,7 @@ ihc: username: YOUR_USERNAME password: YOUR_PASSWORD info: true - binary_sensors: + binary_sensor: - id: 12345 name: switch_front_door inverting: false @@ -48,7 +48,7 @@ ihc: ``` {% configuration %} -binary_sensors: +binary_sensor: description: List of binary sensors to setup manually. required: false type: map diff --git a/source/_components/binary_sensor.insteon.markdown b/source/_components/binary_sensor.insteon.markdown deleted file mode 100644 index 6fb7f1bc9fe2..000000000000 --- a/source/_components/binary_sensor.insteon.markdown +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: page -title: "Insteon Binary Sensor" -description: "Instructions on how to setup the Insteon binary sensors locally within Home Assistant." -date: 2018-08-20 16:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: insteon.png -ha_category: Binary Sensor -ha_iot_class: "Local Push" -ha_version: 0.77 ---- - -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/ diff --git a/source/_components/binary_sensor.isy994.markdown b/source/_components/binary_sensor.isy994.markdown deleted file mode 100644 index 64735b865171..000000000000 --- a/source/_components/binary_sensor.isy994.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "ISY994 Binary Sensor" -description: "Instructions on how to integrate ISY994 binary sensors into Home Assistant." -date: 2016-09-03 23:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: universal_devices.png -ha_category: Binary Sensor -ha_iot_class: "Local Push" -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.konnected.markdown b/source/_components/binary_sensor.konnected.markdown deleted file mode 100644 index 6fd32d7fbe94..000000000000 --- a/source/_components/binary_sensor.konnected.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Konnected Binary Sensor" -description: "Connect wired open/close sensors to Home Assistant with Konnected and a NodeMCU ESP8266" -date: 2018-04-03 12:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: konnected.png -ha_category: Binary Sensor -ha_release: "0.70" -ha_iot_class: "Local Push" ---- - -The `konnected` binary sensor allows you to monitor wired door sensors, window sensors, motion sensors, smoke detectors, CO detectors, glass-break sensors, water leak sensors or any other simple wired open/close circuit attached to a NodeMCU ESP8266 WiFi module running the [open source Konnected software](https://github.com/konnected-io/konnected-security). - -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 deleted file mode 100644 index 414d4c2ae171..000000000000 --- a/source/_components/binary_sensor.linode.markdown +++ /dev/null @@ -1,35 +0,0 @@ ---- -layout: page -title: "Linode Binary Sensor" -description: "Instructions on how to set up Linode binary sensors within Home Assistant." -date: 2017-10-20 08:00 -sidebar: true -comments: false -sharing: true -footer: true -ha_category: System Monitor -logo: linode.png -ha_release: 0.57 -ha_iot_class: "Cloud Polling" ---- - -The `linode` binary sensor platform allows you to monitor your Linode nodes. - -## {% linkable_title Configuration %} - -Add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -binary_sensor: - - platform: linode - nodes: - - 'myvpsname' -``` - -{% configuration %} -nodes: - description: List of VPSs you want to control. - required: true - type: string -{% endconfiguration %} diff --git a/source/_components/binary_sensor.lupusec.markdown b/source/_components/binary_sensor.lupusec.markdown deleted file mode 100644 index 4367bde3b0d9..000000000000 --- a/source/_components/binary_sensor.lupusec.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Lupusec Binary Sensor" -description: "Instructions on how to integrate Lupusec binary sensors into Home Assistant." -date: 2018-10-03 16:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: lupusec.jpg -ha_category: Binary Sensor -ha_release: 0.83 -ha_iot_class: "Local Polling" ---- - -The `LUPUS-Electronics` security control panel platform allows you to control your [Lupusec](https://www.lupus-electronics.de) devices. - -This component will add `door contacts` and `window contacts` to your home-assistant setup - -For the sensors to work you have to setup your [Lupusec component](/components/lupusec/). \ No newline at end of file diff --git a/source/_components/binary_sensor.maxcube.markdown b/source/_components/binary_sensor.maxcube.markdown deleted file mode 100644 index ac6e5299ba9d..000000000000 --- a/source/_components/binary_sensor.maxcube.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "eQ-3 MAX! Cube binary sensors" -description: "Instructions on how to integrate eQ-3 MAX! components with Home Assistant via eQ-3 MAX! Cube." -date: 2017-02-04 22:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: maxcube.png -ha_category: Climate -ha_release: "0.40" -ha_iot_class: "Local Polling" ---- - -See instructions at the [main component](/components/maxcube/). diff --git a/source/_components/binary_sensor.mercedesme.markdown b/source/_components/binary_sensor.mercedesme.markdown deleted file mode 100644 index a51f2e85d081..000000000000 --- a/source/_components/binary_sensor.mercedesme.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Mercedes me Binary Sensor" -description: "Instructions on how to integrate Mercedes me binary sensors into Home Assistant." -date: 2018-01-27 17:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: mercedesme.png -ha_category: Car -ha_iot_class: "Cloud polling" -ha_release: 0.63 ---- - -The `mercedesme` platform allows you to get data from your [Mercedes me connected car](https://www.mercedes-benz.com/en/mercedes-me/) sensors like windows, doors, lock, tire warnings from within Home Assistant. - -They will be automatically discovered if the Mercedes me component is loaded. - -For more configuration information see the [Mercedes me component](/components/mercedesme/) documentation. diff --git a/source/_components/binary_sensor.modbus.markdown b/source/_components/binary_sensor.modbus.markdown index fbc300c29842..e57f19b75816 100644 --- a/source/_components/binary_sensor.modbus.markdown +++ b/source/_components/binary_sensor.modbus.markdown @@ -25,9 +25,11 @@ binary_sensor: - platform: modbus coils: - name: Sensor1 + hub: hub1 slave: 1 coil: 100 - name: Sensor2 + hub: hub1 slave: 1 coil: 110 ``` @@ -42,6 +44,11 @@ coils: description: Name of the sensor. required: true type: string + hub: + description: The name of the hub. + required: false + default: default + type: string slave: description: The number of the slave (Optional for TCP and UDP Modbus). required: true @@ -64,9 +71,11 @@ binary_sensor: scan_interval: 10 coils: - name: Sensor1 + hub: hub1 slave: 1 coil: 100 - name: Sensor2 + hub: hub1 slave: 1 coil: 110 ``` diff --git a/source/_components/binary_sensor.mqtt.markdown b/source/_components/binary_sensor.mqtt.markdown index cc42186d29c0..392f2af5af22 100644 --- a/source/_components/binary_sensor.mqtt.markdown +++ b/source/_components/binary_sensor.mqtt.markdown @@ -13,28 +13,15 @@ ha_release: 0.9 ha_iot_class: "depends" --- -The `mqtt` binary sensor platform uses an MQTT message payload -to set the binary sensor to one of two states: `on` or `off`. - -The binary sensor state will be updated only after a new message is published on -`state_topic` matching `payload_on` or `payload_off`. -If these messages are published with the `retain` flag set, -the binary sensor will receive an instant state update after subscription and -Home Assistant will display the correct state on startup. +The `mqtt` binary sensor platform uses an MQTT message payload to set the binary sensor to one of two states: `on` or `off`. + +The binary sensor state will be updated only after a new message is published on `state_topic` matching `payload_on` or `payload_off`. If these messages are published with the `retain` flag set, +the binary sensor will receive an instant state update after subscription and Home Assistant will display the correct state on startup. Otherwise, the initial state displayed in Home Assistant will be `unknown`. ## {% linkable_title Configuration %} -The `mqtt` binary sensor platform optionally supports an `availability_topic` to -receive online and offline messages (birth and LWT messages) from the MQTT -device. During normal operation, if the MQTT cover device goes offline -(i.e., publishes `payload_not_available` to `availability_topic`), Home -Assistant will display the binary sensor as `unavailable`. If these messages are -published with the `retain` flag set, the binary sensor will receive an instant -update after subscription and Home Assistant will display the correct -availability state of the binary sensor when Home Assistant starts up. -If the `retain` flag is not set, Home Assistant will display the binary sensor -as `unavailable` when Home Assistant starts up. If no `availability_topic` +The `mqtt` binary sensor platform optionally supports an `availability_topic` to receive online and offline messages (birth and LWT messages) from the MQTT device. During normal operation, if the MQTT sensor device goes offline (i.e., publishes `payload_not_available` to `availability_topic`), Home Assistant will display the binary sensor as `unavailable`. If these messages are published with the `retain` flag set, the binary sensor will receive an instant update after subscription and Home Assistant will display the correct availability state of the binary sensor when Home Assistant starts up. If the `retain` flag is not set, Home Assistant will display the binary sensor as `unavailable` when Home Assistant starts up. If no `availability_topic` is defined, Home Assistant will consider the MQTT device to be available. To use an MQTT binary sensor in your installation, @@ -48,15 +35,15 @@ binary_sensor: ``` {% configuration %} +state_topic: + description: The MQTT topic subscribed to receive sensor values. + required: true + type: string name: description: The name of the binary sensor. required: false type: string default: MQTT Binary Sensor -state_topic: - description: The MQTT topic subscribed to receive sensor values. - required: true - type: string payload_on: description: The payload that represents the on state. required: false @@ -68,11 +55,7 @@ payload_off: type: string default: "OFF" availability_topic: - description: > - The MQTT topic subscribed to receive birth and LWT messages from the MQTT - device. If `availability_topic` is not defined, the binary sensor availability - state will always be `available`. If `availability_topic` is defined, - the binary sensor availability state will be `unavailable` by default. + description: "The MQTT topic subscribed to receive birth and LWT messages from the MQTT device. If `availability_topic` is not defined, the binary sensor availability state will always be `available`. If `availability_topic` is defined, the binary sensor availability state will be `unavailable` by default." required: false type: string payload_available: @@ -86,8 +69,8 @@ payload_not_available: type: string default: offline json_attributes_topic: - description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. - reqired: false + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation. + required: false type: string qos: description: The maximum QoS level to be used when receiving messages. @@ -95,59 +78,53 @@ qos: type: integer default: 0 unique_id: - description: > - An ID that uniquely identifies this sensor. If two sensors have - the same unique ID, Home Assistant will raise an exception. + description: An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception. required: false type: string device_class: - description: > - The [type/class](/components/binary_sensor/) of - the sensor to set the icon in the frontend. + description: The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend. required: false type: string value_template: - description: > - Defines a [template](/docs/configuration/templating/#processing-incoming-data) - to extract a value from the payload. + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload. Available variables: `entity_id`." required: false type: string force_update: 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’. + 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.' + 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.' + 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"]]`.' + 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.' + description: The manufacturer of the device. required: false type: string model: - description: 'The model of the device.' + description: The model of the device. required: false type: string name: - description: 'The name of the device.' + description: The name of the device. required: false type: string sw_version: - description: 'The firmware version of the device.' + description: The firmware version of the device. required: false type: string {% endconfiguration %} @@ -158,8 +135,8 @@ In this section, you will find some real-life examples of how to use this sensor ### {% linkable_title Full configuration %} -To test, you can use the command line tool `mosquitto_pub` shipped with -`mosquitto` or the `mosquitto-clients` package to send MQTT messages. +To test, you can use the command line tool `mosquitto_pub` shipped with `mosquitto` or the `mosquitto-clients` package to send MQTT messages. + To set the state of the binary sensor manually: ```bash @@ -186,20 +163,24 @@ binary_sensor: ``` {% endraw %} +### {% linkable_title Toggle the binary sensor each time a message is received on state_topic %} +{% raw %} +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: mqtt + state_topic: "lab_button/cmnd/POWER" + value_template: "{%if is_state(entity_id,\"on\")-%}OFF{%-else-%}ON{%-endif%}" +``` +{% endraw %} + ### {% linkable_title Get the state of a device with ESPEasy %} -Assuming that you have flashed your ESP8266 unit with -[ESPEasy](https://github.com/letscontrolit/ESPEasy). -Under "Config" is a name ("Unit Name:") set for your device -(here it's "bathroom"). A configuration for a "Controller" for MQTT with the -protocol "OpenHAB MQTT" is present and the entries ("Controller Subscribe:" and -"Controller Publish:") are adjusted to match your needs. -In this example, the topics are prefixed with "home". Also, add a "Switch Input" -in the "Devices" tap with the name "switch" and "button" as value. +Assuming that you have flashed your ESP8266 unit with [ESPEasy](https://github.com/letscontrolit/ESPEasy). Under "Config" is a name ("Unit Name:") set for your device (here it's "bathroom"). A configuration for a "Controller" for MQTT with the protocol "OpenHAB MQTT" is present and the entries ("Controller Subscribe:" and "Controller Publish:") are adjusted to match your needs. In this example, the topics are prefixed with "home". Also, add a "Switch Input" in the "Devices" tap with the name "switch" and "button" as value. As soon as the unit is online, you will get the state of the attached button. -```bash +``` home/bathroom/status Connected ... home/bathroom/switch/button 1 @@ -207,7 +188,6 @@ home/bathroom/switch/button 1 The configuration will look like the example below: -{% raw %} ```yaml # Example configuration.yaml entry binary_sensor: @@ -217,4 +197,3 @@ binary_sensor: payload_on: "1" payload_off: "0" ``` -{% endraw %} diff --git a/source/_components/binary_sensor.mychevy.markdown b/source/_components/binary_sensor.mychevy.markdown deleted file mode 100644 index 7ae1881a48ad..000000000000 --- a/source/_components/binary_sensor.mychevy.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "MyChevy Binary Sensor" -description: "Instructions on how to integrate Chevy Bolt binary sensors car into Home Assistant." -date: 2017-08-28 17:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: chevy.png -ha_category: Car -ha_release: 0.62 -ha_iot_class: "Cloud Polling" ---- - -The `mychevy` binary sensor platform allows you to monitor your Chevy Bolt car from within Home Assistant. - -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.mysensors.markdown b/source/_components/binary_sensor.mysensors.markdown index 814f79d9b6cb..21e6df82d21f 100644 --- a/source/_components/binary_sensor.mysensors.markdown +++ b/source/_components/binary_sensor.mysensors.markdown @@ -8,7 +8,9 @@ comments: false sharing: true footer: true logo: mysensors.png -ha_category: DIY +ha_category: + - DIY + - Binary Sensor ha_release: 0.14 ha_iot_class: "Local Push" --- diff --git a/source/_components/binary_sensor.nest.markdown b/source/_components/binary_sensor.nest.markdown deleted file mode 100644 index 60315ecb867c..000000000000 --- a/source/_components/binary_sensor.nest.markdown +++ /dev/null @@ -1,60 +0,0 @@ ---- -layout: page -title: "Nest Binary Sensor" -description: "Instructions on how to integrate Nest binary sensors within Home Assistant." -date: 2016-01-26 08:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: nest.png -ha_category: Binary Sensor -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 -# Example configuration.yaml entry -nest: - binary_sensors: - monitored_conditions: - - 'fan' - - 'target' -``` - -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 %} -monitored_conditions: - description: States to monitor. - required: false - type: list -{% endconfiguration %} - -The following conditions are available by device: - -- Nest Home: - - away -- Nest Thermostat: - - online - - fan - - is\_using\_emergency\_heat - - is\_locked - - has\_leaf -- Nest Protect: - - online -- Nest Camera: - - online - - motion\_detected - - person\_detected - - sound\_detected diff --git a/source/_components/binary_sensor.octoprint.markdown b/source/_components/binary_sensor.octoprint.markdown deleted file mode 100644 index c41815934680..000000000000 --- a/source/_components/binary_sensor.octoprint.markdown +++ /dev/null @@ -1,49 +0,0 @@ ---- -layout: page -title: "OctoPrint Binary Sensor" -description: "Instructions on how to integrate OctoPrint binary sensors within Home Assistant." -date: 2016-05-05 08:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: octoprint.png -ha_category: Binary Sensor -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 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 -binary_sensor: - - platform: octoprint - monitored_conditions: - - Printing - - Printing Error -``` - -{% 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 deleted file mode 100644 index decdf3b7397b..000000000000 --- a/source/_components/binary_sensor.opentherm_gw.markdown +++ /dev/null @@ -1,24 +0,0 @@ ---- -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 deleted file mode 100644 index 9b93806fa723..000000000000 --- a/source/_components/binary_sensor.openuv.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "OpenUV Binary Sensor" -description: "Instructions on how to integrate OpenUV binary sensors within Home Assistant." -date: 2018-07-31 22:01 -sidebar: true -comments: false -sharing: true -footer: true -logo: openuv.jpg -ha_category: Health -ha_release: 0.76 -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 7a5655570b99..b539a5b27784 100644 --- a/source/_components/binary_sensor.pilight.markdown +++ b/source/_components/binary_sensor.pilight.markdown @@ -80,6 +80,6 @@ binary_sensor: payload: unitcode: 371399 payload_on: 'closed' - disarm_after_trigger: True + disarm_after_trigger: true reset_delay_sec: 30 ``` diff --git a/source/_components/binary_sensor.point.markdown b/source/_components/binary_sensor.point.markdown deleted file mode 100644 index dadf24d5aa8a..000000000000 --- a/source/_components/binary_sensor.point.markdown +++ /dev/null @@ -1,35 +0,0 @@ ---- -layout: page -title: "Minut Point Binary Sensor" -description: "Access your Minut Point Events as binary sensors." -date: 2018-11-19 -sidebar: true -comments: false -sharing: true -footer: true -logo: minut.svg -ha_category: Binary Sensor -ha_release: "0.83" -ha_iot_class: "Cloud Push" -ha_qa_scale: silver ---- - -Each Point exposes the following binary sensors: - -- **battery**: `On` means low, `Off` means normal -- **button_press**: `On` means the button was pressed, `Off` means normal -- **cold**: `On` means cold, `Off` means normal -- **connectivity**: `On` means connected, `Off` means disconnected -- **dry**: `On` means too dry, `Off` means normal -- **heat**: `On` means hot, `Off` means normal -- **light**: `On` means light detected, `Off` means no light -- **moisture**: `On` means moisture detected (wet), `Off` means no moisture (dry) -- **motion**: `On` means motion detected, `Off` means no motion (clear) -- **sound**: `On` means sound detected, `Off` means no sound (clear) -- **tamper**: `On` means the point was removed or attached - -For installation instructions, see [the Point component](/components/point/). - -

-The events sent from the Point is also sent as a webhook back to Home Assistant with `event_type` as `point_webhook_received`, please consider the documentation for the [IFTT](https://www.home-assistant.io/components/ifttt/) component on how to write automations for webhooks. -

diff --git a/source/_components/binary_sensor.qwikswitch.markdown b/source/_components/binary_sensor.qwikswitch.markdown deleted file mode 100644 index e3fd446a3ba4..000000000000 --- a/source/_components/binary_sensor.qwikswitch.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "QwikSwitch Binary Sensor" -description: "Instructions on how to integrate Qwikswitch dimmers and relays as sensors into Home Assistant." -date: 2016-05-04 00:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: qwikswitch.png -ha_category: Sensor -ha_iot_class: "Local Push" -ha_release: "0.68" ---- - -The `qwikswitch` binary_sensor platform allows you to use your [QwikSwitch](http://www.qwikswitch.co.za/) sensors within Home Assistant. - -The platform is configured through the [QwikSwitch component](/components/qwikswitch/). diff --git a/source/_components/binary_sensor.rachio.markdown b/source/_components/binary_sensor.rachio.markdown deleted file mode 100644 index e91a1c9fd373..000000000000 --- a/source/_components/binary_sensor.rachio.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Rachio Binary Sensor" -description: "Instructions on how to use Rachio binary sensors with Home Assistant." -date: 2018-06-23 16:15 -sidebar: true -comments: false -sharing: true -footer: true -logo: rachio.png -ha_category: Irrigation -ha_iot_class: "Cloud Push" -ha_release: 0.73 ---- - -The `rachio` binary sensor platform allows you to view the status of your [Rachio irrigation system](http://rachio.com/). - -Once configured, a binary sensor will be added that shows whether or not each controller in the account provided is online and reachable by Rachio's servers. - -They will be automatically added if the [Rachio component](/components/rachio/) component is loaded. diff --git a/source/_components/binary_sensor.rainmachine.markdown b/source/_components/binary_sensor.rainmachine.markdown deleted file mode 100644 index 0a3072ad0b69..000000000000 --- a/source/_components/binary_sensor.rainmachine.markdown +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: page -title: "RainMachine Binary Sensor" -description: "Instructions on how to use RainMachine binary sensors with Home Assistant." -date: 2018-05-06 21:26 -sidebar: true -comments: false -sharing: true -footer: true -logo: rainmachine.png -ha_category: Irrigation -ha_iot_class: "Cloud Polling" -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/). - -

-You must have the [RainMachine component](https://www.home-assistant.io/components/rainmachine/) -configured to use this platform. After configuring that component, binary -sensors automatically appear. -

diff --git a/source/_components/binary_sensor.raspihats.markdown b/source/_components/binary_sensor.raspihats.markdown deleted file mode 100644 index 05d4b5cbac88..000000000000 --- a/source/_components/binary_sensor.raspihats.markdown +++ /dev/null @@ -1,120 +0,0 @@ ---- -layout: page -title: "Raspihats Binary Sensor" -description: "Instructions on how to integrate Raspihats add-on boards for Raspberry Pi into Home Assistant as a binary_sensor." -date: 2017-05-01 04:09 -sidebar: true -comments: false -sharing: true -footer: true -logo: raspihats.png -ha_category: DIY -ha_release: 0.44 -ha_iot_class: "Local Push" ---- - -The `raspihats` binary sensor platform allows you to read sensor values ​​using the digital inputs of the [raspihats](http://www.raspihats.com/) boards. - -## {% linkable_title Configuration %} - -To use your `raspihats` boards in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -binary_sensor: - - platform: raspihats - i2c_hats: - - board: DI6acDQ6rly - address: 0x60 - channels: - - index: 0 - name: PIR Office - invert_logic: true - device_class: motion - - index: 1 - name: PIR Bedroom -``` - -{% 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 %} - -Enable I2c interface with the Raspberry Pi configuration utility: - -```bash -# pi user environment: Enable i2c interface -$ sudo raspi-config -``` - -Select `Interfacing options->I2C` choose `` and hit `Enter`, then go to `Finish`. - -Install dependencies for use the `smbus-cffi` module and enable your _homeassistant_ user to join the _i2c_ group: - -```bash -# pi user environment: Install i2c dependencies and utilities -$ sudo apt-get install build-essential libi2c-dev i2c-tools python-dev libffi-dev - -# pi user environment: Add homeassistant user to the i2c group -$ sudo usermod -a -G i2c homeassistant -``` - -### {% linkable_title Check the i2c address of the sensor %} - -After installing `i2c-tools`, a new utility is available to scan the addresses of the connected sensors, so you can see the sensor address: - -```bash -$ /usr/sbin/i2cdetect -y 1 -``` - -It will output a table like this: - -```text - 0 1 2 3 4 5 6 7 8 9 a b c d e f -00: -- -- -- -- -- -- -- -- -- -- -- -- -- -10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -20: -- -- -- 23 -- -- -- -- -- -- -- -- -- -- -- -- -30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -40: 40 -- -- -- -- -- UU -- -- -- -- -- -- -- -- -- -50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -70: -- -- -- -- -- -- -- 77 -``` - -For more details about the `raspihats` add-on boards for Raspberry Pi, visit [raspihats.com](http://www.raspihats.com/). diff --git a/source/_components/binary_sensor.rest.markdown b/source/_components/binary_sensor.rest.markdown index dbb0cd102cc6..96a6db48a934 100644 --- a/source/_components/binary_sensor.rest.markdown +++ b/source/_components/binary_sensor.rest.markdown @@ -92,6 +92,11 @@ verify_ssl: required: false type: boolean default: true +timeout: + description: Defines max time to wait data from the endpoint. + required: false + type: positive integer + default: 10 authentication: description: "Type of the HTTP authentication. `basic` or `digest`." required: false diff --git a/source/_components/binary_sensor.rflink.markdown b/source/_components/binary_sensor.rflink.markdown index 9e9bee2a3c91..b40c2a4a0933 100644 --- a/source/_components/binary_sensor.rflink.markdown +++ b/source/_components/binary_sensor.rflink.markdown @@ -13,7 +13,7 @@ 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). +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/). @@ -37,7 +37,7 @@ binary_sensor: devices: description: A list of binary sensors. required: false - type: map + type: list keys: rflink_ids: description: RFLink ID of the device @@ -45,15 +45,16 @@ devices: type: map keys: name: - description: Name of the device, defaults to RFLink ID. + description: Name for the device. required: false + default: RFLink ID 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. + description: The [type or class of the sensor](/components/binary_sensor/#device-class) to set the icon in the frontend. required: false type: string off_delay: diff --git a/source/_components/binary_sensor.ring.markdown b/source/_components/binary_sensor.ring.markdown deleted file mode 100644 index f06297d9cec4..000000000000 --- a/source/_components/binary_sensor.ring.markdown +++ /dev/null @@ -1,40 +0,0 @@ ---- -layout: page -title: "Ring Binary Sensor" -description: "Instructions on how to integrate your Ring.com devices within Home Assistant." -date: 2017-04-01 10:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: ring.png -ha_category: Doorbell -ha_release: 0.42 -ha_iot_class: "Cloud Polling" ---- - -To get your [Ring.com](https://ring.com/) binary sensors working within Home Assistant, please follow the instructions for the general [Ring component](/components/ring). - -## {% linkable_title Configuration %} - -Once you have enabled the [Ring component](/components/ring), add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -binary_sensor: - - platform: ring -``` - -{% configuration %} -monitored_conditions: - description: Conditions to display in the frontend. The following conditions can be monitored. If not specified, all conditions below will be enabled. - required: false - type: list - keys: - ding: - description: Return a boolean value when the doorbell button was pressed. - motion: - description: Return a boolean value when a movement was detected by the Ring doorbell. -{% endconfiguration %} - -Currently it supports doorbell, external chimes and stickup cameras. diff --git a/source/_components/binary_sensor.rpi_gpio.markdown b/source/_components/binary_sensor.rpi_gpio.markdown deleted file mode 100644 index 8494c3af37c1..000000000000 --- a/source/_components/binary_sensor.rpi_gpio.markdown +++ /dev/null @@ -1,60 +0,0 @@ ---- -layout: page -title: "Raspberry Pi GPIO Binary Sensor" -description: "Instructions on how to integrate the GPIO sensor capability of a Raspberry Pi into Home Assistant." -date: 2015-08-30 19:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: raspberry-pi.png -ha_category: DIY -ha_release: pre 0.7 -ha_iot_class: "Local Push" ---- - -The `rpi_gpio` binary sensor platform allows you to read sensor values of the GPIOs of your [Raspberry Pi](https://www.raspberrypi.org/). - -## {% linkable_title Configuration %} - -To use your Raspberry Pi's GPIO in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -binary_sensor: - - platform: rpi_gpio - ports: - 11: PIR Office - 12: PIR Bedroom -``` - -{% 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.satel_integra.markdown b/source/_components/binary_sensor.satel_integra.markdown deleted file mode 100644 index 5d879e49664a..000000000000 --- a/source/_components/binary_sensor.satel_integra.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Satel Integra Binary Sensor" -description: "Instructions on how to integrate Satel Integra binary sensors into Home Assistant." -date: 2017-09-07 13:28 -sidebar: true -comments: false -sharing: true -footer: true -logo: satel.jpg -ha_category: Binary Sensor -ha_release: 0.54 -ha_iot_class: "Local Push" ---- - -The `satel_integra` binary sensor allows you to monitor your [SatelIntegra](http://www.satel.pl/en/) alarm zones (inputs). - -Check the [type/class](/components/binary_sensor/) list for a possible visualization of your zone. - -The requirement is that you have setup your [SatelIntegra hub](/components/satel_integra/). diff --git a/source/_components/binary_sensor.sense.markdown b/source/_components/binary_sensor.sense.markdown deleted file mode 100644 index f6639056748c..000000000000 --- a/source/_components/binary_sensor.sense.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Sense binary sensors" -description: "Instructions on how to integrate Sense binary sensors into Home Assistant." -date: 2018-11-14 23:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: sense.png -ha_category: Energy -ha_iot_class: "Cloud Polling" -ha_release: 0.82 ---- - -The `Sense` platform allows you to get data from your [Sense](http://Sense.com/). - -They will be automatically discovered if the `sense` component is loaded. diff --git a/source/_components/binary_sensor.skybell.markdown b/source/_components/binary_sensor.skybell.markdown deleted file mode 100644 index 4f3d63d7c35b..000000000000 --- a/source/_components/binary_sensor.skybell.markdown +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: page -title: "Skybell Binary Sensor" -description: "Instructions on how to integrate your Skybell HD devices within Home Assistant." -date: 2017-10-03 16:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: skybell.png -ha_category: Doorbell -ha_release: 0.56 -ha_iot_class: "Cloud Polling" ---- - -To get your [Skybell.com](https://skybell.com/) binary sensors working within Home Assistant, please follow the instructions for the general [Skybell component](/components/skybell). - -## {% linkable_title Configuration %} - -Once you have enabled the [Skybell component](/components/skybell), add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -binary_sensor: - - platform: skybell - monitored_conditions: - - button - - motion -``` - -{% configuration %} -monitored_conditions: - 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. - motion: - description: Returns whether movement was detected by the Skybell doorbell. -{% endconfiguration %} diff --git a/source/_components/binary_sensor.sleepiq.markdown b/source/_components/binary_sensor.sleepiq.markdown deleted file mode 100644 index 3f355cc27802..000000000000 --- a/source/_components/binary_sensor.sleepiq.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "SleepIQ Binary Sensor" -description: "Instructions for how to integrate SleepIQ sensors within Home Assistant." -date: 2016-08-28 8:56 -sidebar: true -comments: false -sharing: true -footer: true -logo: sleepiq.png -ha_category: Health -ha_release: 0.29 -ha_iot_class: "Local Polling" ---- - -To get your SleepIQ binary sensors working with Home Assistant, follow the instructions for the general [SleepIQ component](/components/sleepiq/). diff --git a/source/_components/binary_sensor.tahoma.markdown b/source/_components/binary_sensor.tahoma.markdown deleted file mode 100644 index 1ba160f706d6..000000000000 --- a/source/_components/binary_sensor.tahoma.markdown +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: page -title: "Tahoma Binary Sensor" -description: "Instructions on how to integrate Tahoma binary sensors into Home Assistant." -date: 2018-06-14 21:57 -sidebar: true -comments: false -sharing: true -footer: true -logo: tahoma.png -ha_category: Binary Sensor -ha_release: 0.73 ---- - -The `tahoma` binary sensor platform lets you see binary sensors added to your Tahoma Box in Home Assistant. For example smoke detectors. - -Binary sensors will be added automatically. Please refer to the [component](/components/tahoma/) configuration on how to setup Tahoma. diff --git a/source/_components/binary_sensor.tellduslive.markdown b/source/_components/binary_sensor.tellduslive.markdown deleted file mode 100644 index 8fea7f57c3e6..000000000000 --- a/source/_components/binary_sensor.tellduslive.markdown +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: page -title: "Telldus Binary Sensor" -description: "Instructions on how to integrate Telldus Live binary sensors into Home Assistant." -date: 2017-10-24 10:09 -sidebar: true -comments: false -sharing: true -footer: true -logo: telldus.png -ha_category: Binary Sensor -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 a69deb7940ae..5fe812ac1e4a 100644 --- a/source/_components/binary_sensor.template.markdown +++ b/source/_components/binary_sensor.template.markdown @@ -115,7 +115,7 @@ determine if the furnace is running by checking that it is over some threshold: {% raw %} ```yaml -sensor: +binary_sensor: - platform: template sensors: furnace_on: diff --git a/source/_components/binary_sensor.tesla.markdown b/source/_components/binary_sensor.tesla.markdown deleted file mode 100644 index 4d0587f4acdb..000000000000 --- a/source/_components/binary_sensor.tesla.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Tesla Binary Sensor" -description: "Instructions on how to integrate Tesla binary sensors into Home Assistant." -date: 2017-08-30 12:29 -sidebar: true -comments: false -sharing: true -footer: true -logo: tesla.png -ha_category: Car -ha_iot_class: "Cloud polling" -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.tod.markdown b/source/_components/binary_sensor.tod.markdown new file mode 100644 index 000000000000..4971fbf80156 --- /dev/null +++ b/source/_components/binary_sensor.tod.markdown @@ -0,0 +1,76 @@ +--- +layout: page +title: "Times of the Day Binary Sensor" +description: "Instructions on how to integrate Times of the Day binary sensors within Home Assistant." +date: 2019-01-14 23:35 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Binary Sensor +ha_release: 0.89 +ha_iot_class: "Local Push" +logo: home-assistant.png +ha_qa_scale: internal +--- + +The `tod` platform supports binary sensors which get their values by checking if the current time is within defined time ranges. + +The time ranges can be provided as absolute local time or using the `sunrise` or `sunset` keyword calculated based on the sun position for location. The location must be provided in the configuration. + +In addition for sun position based ranges, the negative or positive offset can be configured. + +## {% linkable_title Configuration %} + +Here is an example of adding a sensor to the `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: tod + name: Early Morning + after: sunrise + after_offset: '-02:00' + before: '07:00' +``` + +{% configuration %} +name: + description: Name of the sensor. + required: true + type: string +before: + description: The absolute local time value or sun event for beginning of the time range. + required: true + type: string or time +before_offset: + description: The time offset of the beginning time range. + required: false + type: time +after: + description: The absolute local time value or sun event for ending of the time range. + required: true + type: string or time +after_offset: + description: The time offset of the beginning time range. + type: time + required: false +{% endconfiguration %} + +## {% linkable_title Considerations %} + +The primary purpose of this sensor is to use a simple time range definition instead of creating a complex template with references to `sun.sun` component attributes. + +The sensor state is ON when this condition `after` + `after_offset` <= `current time` < `before` + `before_offset`. + +If `after` time is later than `before` then the next day is considered, i.e.: + +```yaml +binary_sensor: + - platform: tod + name: Night + after: sunset + before: sunrise +``` + +In the above example, the next day `sunrise` is calculated as a time range end. diff --git a/source/_components/binary_sensor.upcloud.markdown b/source/_components/binary_sensor.upcloud.markdown deleted file mode 100644 index 2723cefa5bf0..000000000000 --- a/source/_components/binary_sensor.upcloud.markdown +++ /dev/null @@ -1,36 +0,0 @@ ---- -layout: page -title: UpCloud Binary Sensor -description: Instructions on how to set up UpCloud binary sensors within Home Assistant. -date: 2018-01-28 20:00 -sidebar: true -comments: false -sharing: true -footer: true -ha_category: System Monitor -logo: upcloud.png -ha_release: 0.65 -ha_iot_class: Cloud Polling ---- - -The `upcloud` binary sensor platform allows you to monitor your UpCloud servers. - -## {% linkable_title Configuration %} - -To use your UpCloud servers, you first have to set up your [UpCloud hub](/components/upcloud/) and then add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -binary_sensor: - - platform: upcloud - servers: - - 002167b7-4cb1-44b7-869f-e0900ddeeae1 - - 00886296-6137-4074-afe3-068e16d89d00 -``` - -{% configuration %} -servers: - description: List of servers you want to monitor. - required: true - type: list -{% endconfiguration %} diff --git a/source/_components/binary_sensor.velbus.markdown b/source/_components/binary_sensor.velbus.markdown deleted file mode 100644 index bdbba5f70752..000000000000 --- a/source/_components/binary_sensor.velbus.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Velbus sensors" -description: "Access and control your Velbus sensors." -date: 2017-06-17 16.58 -sidebar: true -comments: false -sharing: true -footer: true -logo: velbus.png -ha_category: Binary Sensor -ha_iot_class: "Local Push" -ha_release: "0.50" ---- - -The `velbus` binary_sensor allows you to control [Velbus](http://www.velbus.eu) connected input devices. - -For hub configuration, see [the Velbus component](/components/velbus/). diff --git a/source/_components/binary_sensor.vera.markdown b/source/_components/binary_sensor.vera.markdown deleted file mode 100644 index b0be093c688d..000000000000 --- a/source/_components/binary_sensor.vera.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Vera Binary Sensor" -description: "Instructions on how to integrate Vera binary sensors into Home Assistant." -date: 2016-03-26 23:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: vera.png -ha_category: Binary Sensor -ha_iot_class: "Local Push" -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 deleted file mode 100644 index 370dff6e88e3..000000000000 --- a/source/_components/binary_sensor.verisure.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Verisure Binary Sensor" -description: "Instructions on how to integrate Verisure binary sensors into Home Assistant." -date: 2016-02-23 21:31 +0100 -sidebar: true -comments: false -sharing: true -footer: true -logo: verisure.png -ha_category: Binary Sensor -ha_iot_class: "Cloud Polling" ---- - -Integrates Verisure binary sensors into Home Assistant. See the [main component](/components/verisure/) for configuration instructions. - -The following binary sensor types are supported: - -- Door & Window diff --git a/source/_components/binary_sensor.vultr.markdown b/source/_components/binary_sensor.vultr.markdown deleted file mode 100644 index bd71ac62b8af..000000000000 --- a/source/_components/binary_sensor.vultr.markdown +++ /dev/null @@ -1,56 +0,0 @@ ---- -layout: page -title: "Vultr Binary Sensor" -description: "Instructions on how to set up Vultr binary sensors within Home Assistant." -date: 2017-10-17 21:00 -sidebar: true -comments: false -sharing: true -footer: true -ha_category: System Monitor -logo: vultr.png -ha_release: "0.58" -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/). - -

-The following examples assume a subscription that has an ID of `123456` and a label of `Web Server` -

- -Minimal `configuration.yaml` (produces `binary_sensor.vultr_web_server`): - -```yaml -# Example configuration.yaml entry -binary_sensor: - - platform: vultr - subscription: 123456 -``` - -{% configuration %} -subscription: - description: The subscription you want to monitor, this can be found in the URL when viewing a server. - required: true - type: string -name: - description: The name you want to give this binary sensor. - required: false - default: "Vultr {subscription label}" - type: string -{% endconfiguration %} - -## {% linkable_title Full example %} - -Full `configuration.yaml` (produces `binary_sensor.totally_awesome_server`): - -```yaml -binary_sensor: - - platform: vultr - name: totally_awesome_server - subscription: 12345 -``` diff --git a/source/_components/binary_sensor.w800rf32.markdown b/source/_components/binary_sensor.w800rf32.markdown deleted file mode 100644 index b4cdfae41764..000000000000 --- a/source/_components/binary_sensor.w800rf32.markdown +++ /dev/null @@ -1,69 +0,0 @@ ---- -layout: page -title: "W800rf32 Binary Sensor" -description: "Instructions on how to integrate W800rf32 binary sensors into Home Assistant." -date: 2018-10-16 12:45 -sidebar: true -comments: false -sharing: true -footer: true -logo: w800rf32.png -ha_category: Binary Sensor -ha_release: 0.83 -ha_iot_class: "Local Push" ---- - -The `w800rf32` platform supports X10 RF binary sensors such as Palm Pad -remotes, key chain remotes, Hawkeye motion detectors, and many, many other X10 RF devices. -Some that have specifically been used with this are the KR19A keychain, MS16A motion detector -and the RSS18 four button wall mount keypad. - -# Setting up your devices - -Once you have set up your [w800rf32 hub](/components/w800rf32/), add the -binary sensors to your `configuration.yaml`: - -```yaml -# Example configuration.yaml entry -binary_sensor: - - platform: w800rf32 - devices: - a1: - name: motion_hall - a2: - name: motion_kitchen -``` - -{% configuration %} -devices: - description: A list of devices. - required: true - type: map - 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 - 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 -{% endconfiguration %} - - -Binary sensors have only two states - "on" and "off". Many door or window -opening sensors will send a signal each time the door/window is open or closed. -However, depending on their hardware or on their purpose, -some sensors are only able to signal their "on" state: - -- Most motion sensors send a signal each time they detect motion. They stay "on" for a few seconds and go back to sleep, ready to signal other motion events. Usually, they do not send a signal when they go back to sleep. - -For those devices, use the *off_delay* parameter. -It defines a delay after which a device will go back to an "Off" state. -That "Off" state will be fired internally by Home Assistant, just as if -the device fired it by itself. If a motion sensor can only send signals -once every 5 seconds, sets the *off_delay* parameter to *seconds: 5*. diff --git a/source/_components/binary_sensor.wemo.markdown b/source/_components/binary_sensor.wemo.markdown deleted file mode 100644 index 48fd97bc8423..000000000000 --- a/source/_components/binary_sensor.wemo.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Belkin WeMo Binary Sensor" -description: "Instructions on how to integrate Belkin WeMo binary sensors into Home Assistant." -date: 2016-02-20 00:45 -sidebar: true -comments: false -sharing: true -footer: true -logo: belkin_wemo.png -ha_category: Binary Sensor -ha_iot_class: "Local Push" -ha_release: 0.14 ---- - -The `wemo` platform allows you to integrate your Belkin WeMo Binary Sensor from within Home Assistant. - -They will be automatically discovered if the discovery component is enabled. - -For more configuration information see the [WeMo component](/components/wemo/) documentation. diff --git a/source/_components/binary_sensor.wink.markdown b/source/_components/binary_sensor.wink.markdown deleted file mode 100644 index 1633d206bc9c..000000000000 --- a/source/_components/binary_sensor.wink.markdown +++ /dev/null @@ -1,36 +0,0 @@ ---- -layout: page -title: "Wink Binary Sensor" -description: "Instructions on how to setup the Wink binary sensors within Home Assistant." -date: 2015-01-20 22:36 -sidebar: true -comments: false -sharing: true -footer: true -logo: wink.png -ha_category: Binary Sensor -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) -- Window/Door sensors -- Motion sensors -- Ring Door bells (No hub required) -- Liquid presence sensors -- Z-wave lock key codes -- Lutron connected bulb remote buttons -- Wink Relay buttons and presence detection -- Wink spotter loudness and vibration (No Wink hub required) -- Wink hub devices connection status. This includes any paired hubs like Hue, Wink v1, Wink v2, Wink Relay... -- Dropcam sensors - -

-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 deleted file mode 100644 index f7b501068878..000000000000 --- a/source/_components/binary_sensor.wirelesstag.markdown +++ /dev/null @@ -1,58 +0,0 @@ ---- -layout: page -title: "WirelessTag Binary Sensor" -description: "Instructions on how to integrate Wireless Tags sensors within Home Assistant." -date: 2018-03-26 21:49 -comments: false -sidebar: true -sharing: true -footer: true -logo: wirelesstag.png -ha_category: Binary Sensor -ha_iot_class: "Local Push and Cloud Polling" -ha_release: 0.68 ---- - -To get your [wirelesstag.net](http://wirelesstag.net) binary sensors working within Home Assistant, please follow the instructions for the general [WirelessTag component](/components/wirelesstag). - -## {% 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 -# Example configuration.yaml entry -binary_sensor: - - platform: wirelesstag - monitored_conditions: - - presence - - door - - battery -``` - -{% configuration %} -monitored_conditions: - description: The conditions types to monitor. - required: true - type: list - keys: - presence: - description: On means in range, Off means out of range. - motion: - description: On when a movement was detected, Off when clear. - door: - description: On when a door is open, Off when the door is closed. - cold: - description: On means temperature become too cold, Off means normal. - heat: - description: On means hot, Off means normal. - dry: - description: On means too dry (humidity), Off means normal. - wet: - description: On means too wet (humidity), Off means normal. - light: - description: On means light detected, Off means no light. - moisture: - description: On means moisture detected (wet), Off means no moisture (dry). - 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 1427b7e0ad4c..75cd8c6e2719 100644 --- a/source/_components/binary_sensor.workday.markdown +++ b/source/_components/binary_sensor.workday.markdown @@ -14,19 +14,16 @@ ha_release: 0.41 ha_qa_scale: internal --- -The `workday` binary sensor indicates, whether the current day is a workday or -not. It allows specifying, which days of the week counts as workdays and also -uses the python module [holidays](https://pypi.python.org/pypi/holidays) -to incorporate information about region-specific public holidays. +The `workday` binary sensor indicates, whether the current day is a workday or not. It allows specifying, which days of the week counts as workdays and also +uses the python module [holidays](https://pypi.python.org/pypi/holidays) to incorporate information about region-specific public holidays. -## {% linkable_title Configuration %} +## {% linkable_title Setup %} + +Check the [country list](https://github.com/dr-prodigy/python-holidays#available-countries) for available province. -Check the -[country list](https://github.com/dr-prodigy/python-holidays#available-countries) -for available province. +## {% linkable_title Configuration %} -To enable the `workday` sensor in your installation, -add the following to your `configuration.yaml` file: +To enable the `workday` sensor in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -44,14 +41,11 @@ name: default: Workday Sensor country: description: > - Country code according to - [holidays](https://pypi.org/project/holidays/) notation. + Country code according to [holidays](https://pypi.org/project/holidays/) notation. required: true type: string province: - description: > - Province code according to - [holidays](https://pypi.org/project/holidays/) notation. + description: Province code according to [holidays](https://pypi.org/project/holidays/) notation. required: false type: string workdays: @@ -65,7 +59,7 @@ excludes: type: list default: "[sat, sun, holiday]" days_offset: - description: Set days offset. + description: Set days offset (e.g., -1 for yesterday, 1 for tomorrow). required: false type: integer default: 0 @@ -102,7 +96,6 @@ automation: ```

-Please remember that [as explained here][devices] you can only have a single `automation:` entry. Add the automation to your existing automations. +Please remember that [as explained here](/docs/configuration/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 a8c6737df4ce..048611866dba 100644 --- a/source/_components/binary_sensor.xiaomi_aqara.markdown +++ b/source/_components/binary_sensor.xiaomi_aqara.markdown @@ -33,6 +33,7 @@ The requirement is that you have setup the [`xiaomi aqara` component](/component | Aqara Wireless Switch (Single) | 86sw1 | WXKG03LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single` | | Aqara Wireless Switch (Double) | 86sw2 | WXKG02LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `both` | | Aqara Wireless Switch (Single) (2nd gen) | remote.b186acn01 | WXKG03LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `double`, `long` | +| Aqara Wireless Switch (Double) (2nd gen) | remote.b286acn01 | WXKG02LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `double`, `long`, `both`, `double_both`, `long_both` | | Cube | cube | MFKZQ01LM | off (always) | `xiaomi_aqara.cube_action` | `action_type`, `action_value` (rotate) | `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swing`, `alert`, `free_fall`, `rotate` (degrees at action_value) | | Vibration Sensor | vibration | DJT11LM | off (always) | `xiaomi_aqara.movement` | `movement_type` | `vibrate`, `tilt`, `free_fall` | diff --git a/source/_components/binary_sensor.zha.markdown b/source/_components/binary_sensor.zha.markdown deleted file mode 100644 index 94910f8892a8..000000000000 --- a/source/_components/binary_sensor.zha.markdown +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: page -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 -sharing: true -footer: true -logo: zigbee.png -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/). diff --git a/source/_components/blink.markdown b/source/_components/blink.markdown index 953c77c1375f..6275343f057b 100644 --- a/source/_components/blink.markdown +++ b/source/_components/blink.markdown @@ -8,9 +8,19 @@ comments: false sharing: true footer: true logo: blink.png -ha_category: Hub +ha_category: + - Hub + - Alarm + - Binary Sensor + - Camera + - Sensor ha_release: "0.40" ha_iot_class: "Cloud Polling" +redirect_form: + - /components/alarm_control_panel.blink/ + - /components/binary_sensor.blink/ + - /components/camera.blink/ + - /components/sensor.blink/ --- The `blink` component lets you view camera images and motion events from [Blink](http://blinkforhome.com) camera and security systems. @@ -40,7 +50,7 @@ password: required: true type: string scan_interval: - description: How frequently to query for new data. Defaults to 60 seconds. + description: How frequently to query for new data. Defaults to 300 seconds (5 minutes). required: false type: integer binary_sensors: @@ -83,7 +93,7 @@ Below is an example showing every possible entry: blink: username: YOUR_USERNAME password: YOUR_PASSWORD - scan_interval: 60 + scan_interval: 300 binary_sensors: monitored_conditions: - motion_enabled @@ -97,6 +107,8 @@ blink: ## {% linkable_title Services %} +Any sequential calls to services relating to blink should have a minimum of a 5 second delay in between them to prevent the calls fro being throttled and ignored. + ### {% linkable_title `blink.blink_update` %} Force a refresh of the Blink system. diff --git a/source/_components/bloomsky.markdown b/source/_components/bloomsky.markdown index 1139ee7a9ad4..e1746bd89dce 100644 --- a/source/_components/bloomsky.markdown +++ b/source/_components/bloomsky.markdown @@ -8,12 +8,24 @@ comments: false sharing: true footer: true logo: bloomsky.png -ha_category: Environment +ha_category: + - Environment + - Binary Sensor + - Camera + - Sensor ha_release: 0.14 ha_iot_class: "Cloud Polling" +redirect_from: + - /components/binary_sensor.bloomsky/ --- -The `bloomsky` component allows you to access your [BloomSky](https://www.bloomsky.com/) weather station's [sensors](/components/sensor.bloomsky), [binary sensors](/components/binary_sensor.bloomsky), and [camera](/components/camera.bloomsky) from Home Assistant. +The `bloomsky` component allows you to access your [BloomSky](https://www.bloomsky.com/) weather station's. + +There is currently support for the following device types within Home Assistant: + +- [Binary Sensor](#binary-sensor) +- [Camera](#camera) +- [Sensor](#sensor) ## {% linkable_title Setup %} @@ -35,3 +47,91 @@ api_key: required: true type: string {% endconfiguration %} + +## {% linkable_title Binary Sensor %} + +The `bloomsky` binary sensor platform allows you to get data from your BloomSky device. + +To get your BloomSky binary sensors working with Home Assistant, follow the instructions above first. + +### {% linkable_title Configuration %} + +To use your BloomSky binary sensor in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: bloomsky + monitored_conditions: + - 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 %} + +## {% linkable_title Camera %} + +The `bloomsky` camera component allows you to view the current photo created by the camera in the [BloomSky](https://www.bloomsky.com) weather station. This can work in concert with [BloomSky sensors](#sensor). + +### {% linkable_title Configuration %} + +To enable this camera in your installation, set up the BloomSky component with your API key and add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +camera: + - platform: bloomsky +``` + +## {% linkable_title Sensor %} + +The `bloomsky` sensor component allows you to view the measurements made by sensors in the [BloomSky](https://www.bloomsky.com) weather station. This can work in concert with the [BloomSky camera](#camera). + +### {% linkable_title Configuration %} + +To enable these sensors in your installation, set up the BloomSky component with your API key add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + platform: bloomsky + monitored_conditions: + - Temperature + - Humidity + - Pressure + - UVIndex + - Luminance + - 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](#binary-sensor) component. \ No newline at end of file diff --git a/source/_components/bmw_connected_drive.markdown b/source/_components/bmw_connected_drive.markdown index e448407a08f9..b3d8f82384b2 100644 --- a/source/_components/bmw_connected_drive.markdown +++ b/source/_components/bmw_connected_drive.markdown @@ -8,21 +8,33 @@ comments: false sharing: true footer: true logo: bmw.png -ha_category: Car +ha_category: + - Car + - Binary Sensor + - Presence Detection + - Lock + - Sensor ha_release: 0.64 +redirect_from: + - /components/binary_sensor.bmw_connected_drive/ + - /components/device_tracker.bmw_connected_drive/ + - /components/lock.bmw_connected_drive/ + - /components/sensor.bmw_connected_drive/ --- The `bmw_connected_drive` component lets you retrieve data of your BMW vehicle from the BMW Connected Drive portal. You need to have a working BMW Connected Drive account, and a Connected Drive enabled vehicle for this to work. +The `bmw_connected_drive` component also works with (recent) Mini vehicles. You need to have a working Mini Connected account, and a Mini Connected enabled vehicle for this to work. + For compatibility with your BMW vehicle check the [bimmer_connected page](https://github.com/m1n3rva/bimmer_connected) on github. This component provides the following platforms: - - Binary Sensors: Doors, windows, condition based services, check control messages, parking lights, door lock state, charging status (electric cars) and connections status (electric cars). - - Device tracker: The location of your car. - - Lock: Control the lock of your car. - - Sensors: Mileage, remaining range, remaining fuel, charging time remaining (electric cars), charging status (electric cars), remaining range electric (electric cars). - - Services: Turn on air condition, sound the horn, flash the lights and update the state. More details can be found [here](https://www.home-assistant.io/components/bmw_connected_drive/#services). +- Binary Sensors: Doors, windows, condition based services, check control messages, parking lights, door lock state, charging status (electric cars) and connections status (electric cars). +- Device tracker: The location of your car. +- Lock: Control the lock of your car. +- Sensors: Mileage, remaining range, remaining fuel, charging time remaining (electric cars), charging status (electric cars), remaining range electric (electric cars). +- Services: Turn on air condition, sound the horn, flash the lights and update the state. More details can be found [here](/components/bmw_connected_drive/#services). ## {% linkable_title Configuration %} diff --git a/source/_components/calendar.caldav.markdown b/source/_components/calendar.caldav.markdown index 8f27342be6c3..01fe75d358d0 100644 --- a/source/_components/calendar.caldav.markdown +++ b/source/_components/calendar.caldav.markdown @@ -180,7 +180,7 @@ calendar: alias: worktime wakeup trigger: platform: time - at: 06:40:00 + at: '06:40:00' action: - service: media_player.media_play entity_id: media_player.bedroom diff --git a/source/_components/calendar.google.markdown b/source/_components/calendar.google.markdown index f47ee421ac3d..888f52f18516 100644 --- a/source/_components/calendar.google.markdown +++ b/source/_components/calendar.google.markdown @@ -28,13 +28,15 @@ Generate a Client ID and Client Secret on 1. Follow the wizard using the following information. 1. When it gets to the point of asking _Which API are you using?_ just click cancel. 1. Under APIs & Services > Credentials, click on the tab 'OAuth consent screen'. -1. Set 'Product name shown to users' to anything you want. We suggest Home-Assistant. +1. Set 'Product name shown to users' to anything you want. We suggest "Home-Assistant". 1. Save this page. You don't have to fill out anything else there. 1. Click 'Create credentials' -> OAuth client ID. 1. Set the Application type to 'Other' and give this credential set a name then click Create. 1. Save the client ID and secret as you will need to put these in your `configuration.yaml` file. 1. Click on "Library", search for "Google Calendar API" and enable it. +If you are adding more Google API scopes later to the OAuth than just "Google Calendar API" then you need to delete your token file. You will lose your refresh token due to the re-authenticating to add more API access. It's recommended to use different authorizations for different pieces of Google. + ## {% linkable_title Configuration %} To integrate Google Calendar in Home Assistant, @@ -129,7 +131,8 @@ entities: offset: description: > A set of characters that precede a number in the event title - for designating a pre-trigger state change on the sensor. + for designating a pre-trigger state change on the sensor. + This should be in the format of HH:MM or MM. required: false type: string default: "!!" diff --git a/source/_components/camera.abode.markdown b/source/_components/camera.abode.markdown deleted file mode 100644 index 2aa3da2313c5..000000000000 --- a/source/_components/camera.abode.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Abode Camera" -description: "Instructions on how to integrate Abode cameras into Home Assistant." -date: 2017-08-26 13:28 -sidebar: true -comments: false -sharing: true -footer: true -logo: abode.jpg -ha_release: 0.54 -ha_category: Camera -ha_iot_class: "Cloud Push" ---- - -The `abode` security control panel platform allows you to control your [Abode](https://goabode.com/) alarms. - -This component will automatically add `Cameras` configured in your Abode account. You can request a new still image capture by passing the `entity_id` of your cameras to the [capture_image service](/components/abode/#capture_image). - -The requirement is that you have setup your [Abode hub](/components/abode/). diff --git a/source/_components/camera.amcrest.markdown b/source/_components/camera.amcrest.markdown deleted file mode 100644 index a4b5002bd7f7..000000000000 --- a/source/_components/camera.amcrest.markdown +++ /dev/null @@ -1,28 +0,0 @@ ---- -layout: page -title: "Amcrest IP Camera" -description: "Instructions on how to integrate Amcrest IP cameras within Home Assistant." -date: 2016-11-24 10:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: amcrest.png -ha_category: Camera -ha_iot_class: "Local Polling" -ha_release: 0.34 ---- - -To get your [Amcrest](https://amcrest.com/) cameras working within Home Assistant, please follow the instructions for the general [Amcrest component](/components/amcrest). - -## {% linkable_title Configuration %} - -Once you have enabled the [Amcrest component](/components/amcrest), add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -camera: - - platform: amcrest -``` - -To check if your Amcrest camera is supported/tested, visit the [supportability matrix](https://github.com/tchellomello/python-amcrest#supportability-matrix) link from the `python-amcrest` project. diff --git a/source/_components/camera.android_ip_webcam.markdown b/source/_components/camera.android_ip_webcam.markdown deleted file mode 100644 index 0084fcebdb17..000000000000 --- a/source/_components/camera.android_ip_webcam.markdown +++ /dev/null @@ -1,27 +0,0 @@ ---- -layout: page -title: "Android IP Webcam Camera" -description: "Instructions on how to integrate Android IP Webcam cameras within Home Assistant." -date: 2015-07-11 0:36 -sidebar: true -comments: false -sharing: true -footer: true -ha_category: Camera -logo: android_ip_webcam.png -ha_release: "0.40" -ha_iot_class: "Local Polling" ---- - -The `android_ip_webcam` component adds a camera by default if you choose not to use the component but still want to see the video feed then the [`mjpeg` camera](/components/camera.mjpeg/) platform can be used. - -## {% linkable_title Configuration %} - -To enable only the camera in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -camera: - - platform: mjpeg - mjpeg_url: http://IP_ADDRESS:8080/video -``` diff --git a/source/_components/camera.arlo.markdown b/source/_components/camera.arlo.markdown deleted file mode 100644 index 07b8fb3f726d..000000000000 --- a/source/_components/camera.arlo.markdown +++ /dev/null @@ -1,38 +0,0 @@ ---- -layout: page -title: "Arlo Camera" -description: "Instructions on how to integrate your Netgear Arlo cameras within Home Assistant." -date: 2016-05-30 10:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: arlo.png -ha_category: Camera -ha_release: 0.46 -ha_iot_class: "Cloud Polling" ---- - -To get your [Arlo](https://arlo.netgear.com/) cameras working within Home Assistant, please follow the instructions for the general [Arlo component](/components/arlo). - -This component is not yet able to live stream from your Arlo camera, but it will be able to playback the last video capture. - -## {% linkable_title Configuration %} - -Once you have enabled the [Arlo component](/components/arlo), add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -camera: - - platform: arlo - ffmpeg_arguments: '-pred 1 -q:v 2' -``` - -{% configuration %} -ffmpeg_arguments: - description: Extra options to pass to ffmpeg, e.g., image quality or video filter options. - required: false - type: string -{% endconfiguration %} - -**Note:** To be able to playback the last capture, it is required to install the `ffmpeg` component. Make sure to follow the steps mentioned at [FFMPEG](/components/ffmpeg/) documentation. diff --git a/source/_components/camera.august.markdown b/source/_components/camera.august.markdown deleted file mode 100644 index 660a9504c5eb..000000000000 --- a/source/_components/camera.august.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "August Camera" -description: "Instructions on how to integrate your August devices into Home Assistant." -date: 2018-02-17 22:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: august.png -ha_category: Camera -ha_release: "0.64" -ha_iot_class: "Cloud Polling" ---- - -The `august` camera platform allows you to view the latest camera image (triggered by motion) by your [August](http://august.com) device in Home Assistant. - -To add `august` camera to your installation, follow instructions in [August component](/components/august/). diff --git a/source/_components/camera.axis.markdown b/source/_components/camera.axis.markdown deleted file mode 100644 index ec725b06ec7a..000000000000 --- a/source/_components/camera.axis.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Axis Camera" -description: "Instructions on how to setup Axis cameras within Home Assistant." -date: 2017-05-01 19:09 -sidebar: true -comments: false -sharing: true -footer: true -logo: axis.png -ha_category: Camera -ha_release: "0.45" -ha_iot_class: "Local Polling" ---- - -The `Axis` camera platform allows you to stream video from your [Axis](https://www.axis.com/) cameras. - -The requirement is that you have setup your [Axis camera](/components/axis/). diff --git a/source/_components/camera.blink.markdown b/source/_components/camera.blink.markdown deleted file mode 100644 index 64a6eeb6f3ba..000000000000 --- a/source/_components/camera.blink.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Blink Camera" -description: "Instructions for how to setup Blink cameras within Home Assistant." -date: 2017-03-05 22:13 -sidebar: true -comments: false -sharing: true -footer: true -logo: blink.png -ha_category: Camera -ha_release: "0.40" -ha_iot_class: "Cloud Polling" ---- - -

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

diff --git a/source/_components/camera.bloomsky.markdown b/source/_components/camera.bloomsky.markdown deleted file mode 100644 index aec143513a8c..000000000000 --- a/source/_components/camera.bloomsky.markdown +++ /dev/null @@ -1,26 +0,0 @@ ---- -layout: page -title: "BloomSky Camera" -description: "Instructions on how to integrate the BloomSky camera within Home Assistant." -date: 2016-02-03 20:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: bloomsky.png -ha_category: Camera -ha_release: 0.13 -ha_iot_class: "Local Polling" ---- - -The `bloomsky` camera component allows you to view the current photo created by the camera in the [BloomSky](https://www.bloomsky.com) weather station. This can work in concert with [BloomSky sensors](/components/sensor.bloomsky). - -## {% linkable_title Configuration %} - -To enable this camera in your installation, set up the [BloomSky component](/components/bloomsky) with your API key and add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -camera: - - platform: bloomsky -``` diff --git a/source/_components/camera.canary.markdown b/source/_components/camera.canary.markdown deleted file mode 100644 index 6d46258424b0..000000000000 --- a/source/_components/camera.canary.markdown +++ /dev/null @@ -1,34 +0,0 @@ ---- -layout: page -title: "Canary Camera" -description: "Instructions on how to integrate your Canary devices into Home Assistant." -date: 2017-12-07 22:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: canary.png -ha_category: Camera -ha_release: "0.60" -ha_iot_class: "Cloud Polling" ---- - -The `canary` camera platform allows you to watch the live stream of your [Canary](https://canary.is) camera in Home Assistant. This requires the [`ffmpeg` component](/components/ffmpeg/) to be already configured. - -To add `canary` camera to your installation, follow instructions in [Canary component](/components/canary/). Once you have [Canary component](/components/canary/) setup, your [Canary](https://canary.is) camera(s) should show up automatically. - -## {% linkable_title Configuration %} - -You can add the following to your `configuration.yaml` file to configure `canary` camera with optional settings: - -```yaml -camera: - - platform: canary -``` - -{% configuration %} -ffmpeg_arguments: - description: Extra options to pass to `ffmpeg`, e.g., image quality or video filter options. More details in [FFmpeg component](/components/ffmpeg). - required: false - type: string -{% endconfiguration %} diff --git a/source/_components/camera.doorbird.markdown b/source/_components/camera.doorbird.markdown deleted file mode 100644 index 86e7c3c5f01c..000000000000 --- a/source/_components/camera.doorbird.markdown +++ /dev/null @@ -1,30 +0,0 @@ ---- -layout: page -title: "DoorBird Camera" -description: "Instructions on how to integrate DoorBird video doorbell images into Home Assistant." -date: 2017-08-06 11:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: doorbird.png -ha_category: Camera -ha_release: "0.54" -ha_iot_class: "Local Polling" ---- - -The `doorbird` implementation allows you to view the live video, the last doorbell ring image, and the last motion sensor image from your [DoorBird](http://www.doorbird.com/) device in Home Assistant. - -

- You must have the [DoorBird component](/components/doorbird/) configured to use this camera. -

- -## {% linkable_title Configuration %} - -To enable the camera, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -camera: - - platform: doorbird -``` diff --git a/source/_components/camera.ffmpeg.markdown b/source/_components/camera.ffmpeg.markdown index 7bf659ce1190..09f2cffc814c 100644 --- a/source/_components/camera.ffmpeg.markdown +++ b/source/_components/camera.ffmpeg.markdown @@ -17,7 +17,7 @@ The `ffmpeg` platform allows you to use any video feed as a camera in Home Assis ## {% linkable_title Configuration %} -To enable your FFmpeg feed in your installation you must first configure the [ffmpeg component](https://www.home-assistant.io/components/ffmpeg/), then add the following to your `configuration.yaml` file: +To enable your FFmpeg feed in your installation you must first configure the [ffmpeg component](/components/ffmpeg/), then add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry diff --git a/source/_components/camera.generic.markdown b/source/_components/camera.generic.markdown index 013a6bb8c063..cbcbe27a6d22 100644 --- a/source/_components/camera.generic.markdown +++ b/source/_components/camera.generic.markdown @@ -30,7 +30,7 @@ camera: {% configuration %} still_image_url: - description: "The URL your camera serves the image on, eg. http://192.168.1.21:2112/. Can be a [template](/topics/templating/)." + description: "The URL your camera serves the image on, e.g., http://192.168.1.21:2112/. Can be a [template](/topics/templating/)." required: true type: string name: @@ -51,21 +51,21 @@ authentication: default: basic type: string limit_refetch_to_url_change: - description: True/false value. Limits re-fetching of the remote image to when the URL changes. Only relevant if using a template to fetch the remote image. + description: Limits re-fetching of the remote image to when the URL changes. Only relevant if using a template to fetch the remote image. required: false default: false type: boolean content_type: - description: Set the content type for the IP camera if it is not a jpg file. Use `image/svg+xml` to add a dynamic svg file. + description: Set the content type for the IP camera if it is not a jpg file. Use `image/svg+xml` to add a dynamic SVG file. required: false default: image/jpeg type: string framerate: - description: The number of frames-per-second (FPS) of the stream. Can cause heavy traffic on the network and/or heavy load on the camera. + description: The number of frames-per-second (FPS) of the stream. Can cause heavy traffic on the network and/or heavy load on the camera. required: false type: integer verify_ssl: - description: Enable or disable SSL certificate verification. + description: Enable or disable SSL certificate verification. Set to false to use an http-only camera, or you have a self-signed SSL certificate and haven't installed the CA certificate to enable verification. required: false default: true type: boolean @@ -80,7 +80,7 @@ verify_ssl: ## {% linkable_title Examples %} -In this section you find some real-life examples of how to use this camera platform. +In this section, you find some real-life examples of how to use this camera platform. ### {% linkable_title Weather graph from yr.no %} @@ -106,7 +106,7 @@ camera: ### {% linkable_title Sharing a camera feed from one Home Assistant instance to another %} -If you are running more than one Home Assistant instance (let's call them the 'host' and 'receiver' instances) you may wish to display the camera feed from the host instance on the receiver instance. You can use the [REST API](/developers/rest_api/#get-apicamera_proxycameraltentity_id) to access the camera feed on the host (IP address 127.0.0.5) and display it on the receiver instance by configuring the receiver with the the following: +If you are running more than one Home Assistant instance (let's call them the 'host' and 'receiver' instances) you may wish to display the camera feed from the host instance on the receiver instance. You can use the [REST API](/developers/rest_api/#get-apicamera_proxycameraltentity_id) to access the camera feed on the host (IP address 127.0.0.5) and display it on the receiver instance by configuring the receiver with the following: ```yaml camera: @@ -114,3 +114,14 @@ camera: name: Host instance camera feed still_image_url: https://127.0.0.5:8123/api/camera_proxy/camera.live_view ``` +### {% linkable_title Image from HTTP only camera %} + +To access a camera which is only available via HTTP, you must turn off SSL verification. + +```yaml +camera: + - platform: generic + name: Some Image + still_image_url: http://example.org/your_image.png + verify_ssl: false +``` diff --git a/source/_components/camera.mjpeg.markdown b/source/_components/camera.mjpeg.markdown index 80ee03826ac9..912b180998d7 100644 --- a/source/_components/camera.mjpeg.markdown +++ b/source/_components/camera.mjpeg.markdown @@ -30,7 +30,7 @@ camera: {% configuration %} mjpeg_url: - description: The URL your camera serves the video on, eg. http://192.168.1.21:2112/ + description: The URL your camera serves the video on, e.g., http://192.168.1.21:2112/ required: true type: string still_image_url: @@ -72,3 +72,15 @@ camera: still_image_url: http://IP/image.jpg mjpeg_url: http://IP/video/mjpg.cgi ``` + +Example of integrating Blue Iris Cameras from a Blue Iris server. + +```yaml +camera: + - platform: mjpeg + name: Livingroom Camera + mjpeg_url: http://IP:PORT/mjpg/CAMERASHORTNAME/video.mjpeg + username: BLUE_IRIS_USERNAME + password: BLUE_IRIS_PASSWORD + authentication: basic +``` diff --git a/source/_components/camera.mqtt.markdown b/source/_components/camera.mqtt.markdown index 177e89f89245..1f79e16cc7c9 100644 --- a/source/_components/camera.mqtt.markdown +++ b/source/_components/camera.mqtt.markdown @@ -30,17 +30,15 @@ camera: {% configuration %} topic: - description: MQTT topic to subscribe to. + description: The MQTT topic to subscribe to. required: true type: string name: - description: Name of the camera. + description: The name of the camera. required: false type: string unique_id: - description: > - An ID that uniquely identifies this camera. If two cameras - have the same unique ID Home Assistant will raise an exception. + description: An ID that uniquely identifies this camera. If two cameras have the same unique ID Home Assistant will raise an exception. required: false type: string {% endconfiguration %} diff --git a/source/_components/camera.neato.markdown b/source/_components/camera.neato.markdown deleted file mode 100644 index 4027e94fd249..000000000000 --- a/source/_components/camera.neato.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Neato Camera" -description: "Instructions on how to setup the Neato cleaning maps within Home Assistant." -date: 2017-04-05 13:10 -sidebar: true -comments: false -sharing: true -footer: true -logo: neato.png -ha_category: Camera -ha_release: 0.42 -ha_iot_class: "Cloud Polling" ---- - -The `neato` camera platform allows you to view the latest cleaning map of your [Neato Botvac Connected](https://www.neatorobotics.com/robot-vacuum/botvac-connected-series/botvac-connected/). - -To add `neato` camera to your installation, follow instructions in [Neato component](/components/neato/). diff --git a/source/_components/camera.nest.markdown b/source/_components/camera.nest.markdown deleted file mode 100644 index 9a9cd737f4cd..000000000000 --- a/source/_components/camera.nest.markdown +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: page -title: "Nest Camera" -description: "Instructions on how to integrate Nest cameras into Home Assistant." -date: 2016-12-03 08:10 -sidebar: true -comments: false -sharing: true -footer: true -logo: nest.png -ha_category: Camera -ha_release: 0.34 -ha_iot_class: "Cloud Poll" ---- - -The `nest` platform allows you to watch still frames from a video stream (not live stream) of your [Nest](https://nest.com/camera/meet-nest-cam/) camera in Home Assistant. - -

-You must have the [Nest component](/components/nest/) configured to use this camera. The `nest` camera will automatically be setup when you do. -

- -Nest Camera supports the `camera.turn_on` and `camera.turn_off` services since the 0.75 release. diff --git a/source/_components/camera.onvif.markdown b/source/_components/camera.onvif.markdown index 4d00a1ef72df..5211427ce2a8 100644 --- a/source/_components/camera.onvif.markdown +++ b/source/_components/camera.onvif.markdown @@ -34,16 +34,19 @@ name: description: Override the name of your camera. required: false type: string + default: ONVIF Camera username: description: The username for the camera. required: false type: string + default: admin password: description: The password for the camera. required: false type: string + default: 888888 port: - description: The port for the camera. + description: The (HTTP) port for the camera. required: false type: integer default: 5000 @@ -56,6 +59,7 @@ extra_arguments: description: "Extra options to pass to `ffmpeg`, e.g., image quality or video filter options. More details in [`ffmpeg` component](/components/ffmpeg)." required: false type: string + default: -q:v 2 {% endconfiguration %} Most of the ONVIF cameras support more than one audio/video profile. Each profile provides different image quality. Usually, the first profile has the highest quality and it is the profile used by default. However, you may want to use a lower quality image. One of the reasons may be that your hardware isn't able to render the highest quality image in real-time, especially when running on Raspberry Pi. Therefore you can choose which profile do you want to use by setting in config `profile` variable. diff --git a/source/_components/camera.push.markdown b/source/_components/camera.push.markdown index d6053682dbbd..e422ab4c5ee0 100644 --- a/source/_components/camera.push.markdown +++ b/source/_components/camera.push.markdown @@ -25,7 +25,8 @@ The `push` camera can as an example be used with [motionEye](https://github.com/ In motionEye, under **File Storage -> Run A Command** type in: ```bash -curl -X POST -F "image=@%f" http://my.hass.server.com:8123/api/webhook/my_custom_webhook_id +curl -X POST -F "image=@%f" http://my.hass.server.com:8123/api/webhoo\k/my_custom_webhook_id +# inserting a backslash in the middle of "webhook" stops Motion to move the command to a webhook ``` Optionally configure motionEye to save only motion triggered images by going into **Still Images -> Capture Mode** and setting **Motion Triggered**. Tune your preferences under **Motion Detection**. diff --git a/source/_components/camera.ring.markdown b/source/_components/camera.ring.markdown deleted file mode 100644 index 9236be6f4fb5..000000000000 --- a/source/_components/camera.ring.markdown +++ /dev/null @@ -1,85 +0,0 @@ ---- -layout: page -title: "Ring Camera" -description: "Instructions on how to integrate your Ring.com devices within Home Assistant." -date: 2017-10-20 10:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: ring.png -ha_category: Camera -ha_release: 0.57 -ha_iot_class: "Cloud Polling" ---- - -To get your [Ring.com](https://ring.com/) cameras working within Home Assistant, please follow the instructions for the general [Ring component](/components/ring). Please note that downloading and playing Ring video will require a Ring Protect plan. - -## {% linkable_title Configuration %} - -Once you have enabled the [Ring component](/components/ring), add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -camera: - - platform: ring -``` - -{% configuration %} -ffmpeg_arguments: - description: Extra options to pass to ffmpeg, e.g., image quality or video filter options. - required: false - type: string -scan_interval: - description: How frequently to query for new video in seconds. - required: false - type: integer - default: 90 -{% endconfiguration %} - -**Note:** To be able to playback the last capture, it is required to install the `ffmpeg` component. Make sure to follow the steps mentioned at [FFMPEG](/components/ffmpeg/) documentation. - -Currently it supports doorbell and stickup cameras. - -## {% linkable_title Saving the videos captured by your Ring Door Bell %} - -You can save locally the latest video captured by your Ring Door Bell using the [downloader](/components/downloader) along with either an [automation](/components/automation) or [python_script](/components/python_script). First, enable the [downloader](/components/downloader) component in your configuration by adding the following to your `configuration.yaml`. - -```yaml -downloader: - download_dir: downloads -``` -Then you can use the following `action` in your automation (this will save the video file under `/downloads/ring_/`): - -```yaml -action: - - service: downloader.download_file - data_template: - url: "{{ states.camera.front_door.attributes.video_url }}" - subdir: "{{states.camera.front_door.attributes.friendly_name}}" - filename: "{{states.camera.front_door.attributes.friendly_name}}" -``` - -If you want to use `python_script`, enable it your `configuration.yaml` file first: -```yaml -python_script: -``` -You can then use the following `python_script` to save the video file: - -```python -# obtain ring doorbell camera object -# replace the camera.front_door by your camera entity -ring_cam = hass.states.get('camera.front_door') - -subdir_name = 'ring_{}'.format(ring_cam.attributes.get('friendly_name')) - -# get video URL -data = { - 'url': ring_cam.attributes.get('video_url'), - 'subdir': subdir_name, - 'filename': ring_cam.attributes.get('friendly_name') -} - -# call downloader component to save the video -hass.services.call('downloader', 'download_file', data) -``` diff --git a/source/_components/camera.skybell.markdown b/source/_components/camera.skybell.markdown deleted file mode 100644 index 4bbc2db934d6..000000000000 --- a/source/_components/camera.skybell.markdown +++ /dev/null @@ -1,68 +0,0 @@ ---- -layout: page -title: "Skybell Camera" -description: "Instructions on how to integrate your Skybell HD devices within Home Assistant." -date: 2017-10-03 16:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: skybell.png -ha_category: Camera -ha_release: 0.56 -ha_iot_class: "Cloud Polling" ---- - -To get your [Skybell.com](https://www.skybell.com/) cameras working within Home Assistant, please follow the instructions for the general [Skybell component](/components/skybell). - -## {% linkable_title Configuration %} - -Once you have enabled the [Skybell component](/components/skybell), add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -camera: - - platform: skybell -``` - -{% configuration %} -monitored_conditions: - description: The camera images to display. Default is `avatar`. The full list is `avatar`, `activity`. - required: false - type: list -avatar_name: - description: Name to append to the device name for the avatar image. Default is empty string. - required: false - type: string -activity_name: - description: Name to append to the device name for the last activity image. Default is empty string. - required: false - type: string -{% endconfiguration %} - -## {% linkable_title Camera Types %} - -There are two available camera types "Avatar", which is the default, displays the Skybell avatar image. -It is periodically updated with a fresh image. The other type is "Activity", which displays a snapshot from -the latest event (motion, bell, or on demand) captured by the camera. You may show either camera, or both, by -specifying its name under monitored_condtions. It's recommended, but not required, to set either avatar_name or activity_name -if you are showing both cameras so you can tell them apart. The name will be appended to the skybell device name. - - -```yaml -# Example configuration.yaml with both images -camera: - - platform: skybell - monitored_conditions: - - avatar - - activity - activity_name: "Last Activity" -``` - -```yaml -# Example configuration.yaml with just last activity image -camera: - - platform: skybell - monitored_conditions: - - activity -``` \ No newline at end of file diff --git a/source/_components/camera.synology.markdown b/source/_components/camera.synology.markdown index 2e0e232a0cb6..12f8f212f454 100644 --- a/source/_components/camera.synology.markdown +++ b/source/_components/camera.synology.markdown @@ -15,6 +15,10 @@ ha_iot_class: "Local Polling" The `synology` camera platform allows you to watch the live streams of your [Synology](https://www.synology.com/) Surveillance Station based IP cameras in Home Assistant. +

+Synology has disabled the livestreaming API and the component is currently broken if you are using Surveillance Station version 8.2.3-5828. +

+ ## {% linkable_title Configuration %} To enable your Surveillance Station cameras in your installation, add the following to your `configuration.yaml` file: @@ -74,7 +78,7 @@ camera: username: YOUR_USERNAME password: YOUR_PASSWORD timeout: 15 - verify_ssl: False + verify_ssl: false ```

diff --git a/source/_components/camera.usps.markdown b/source/_components/camera.usps.markdown deleted file mode 100644 index e589a349a579..000000000000 --- a/source/_components/camera.usps.markdown +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: page -title: USPS Camera -description: "Instructions on how to set up USPS camera within Home Assistant." -date: 2017-07-28 20:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: usps.png -ha_category: Camera -ha_release: 0.52 -ha_iot_class: "Cloud Polling" ---- - -The `usps` camera component allows you to view the mail piece images made available through USPS via the Informed Delivery service. You must "Opt-In" to [Informed Delivery](https://informeddelivery.usps.com/box/pages/intro/start.action) to see mail images. This works in concert with [USPS sensors](/components/sensor.usps). - -

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

- -## {% linkable_title Configuration %} - -To customize the interval that mail images are rotated in the mail camera you can edit your `configuration.yaml` file with the following settings: -```yaml -# Example configuration.yaml entry -camera: - - platform: usps - scan_interval: 5 -``` - -To enable this camera in your installation, set up the [USPS component](/components/usps) with your username and password. diff --git a/source/_components/camera.uvc.markdown b/source/_components/camera.uvc.markdown index ae1d9c9a1ec0..63d773f0915c 100644 --- a/source/_components/camera.uvc.markdown +++ b/source/_components/camera.uvc.markdown @@ -34,7 +34,6 @@ camera: - platform: uvc nvr: IP_ADDRESS key: API_KEY - ssl: USE_SSL ``` {% configuration %} @@ -62,3 +61,8 @@ ssl: type: boolean default: false {% endconfiguration %} + +

+When using an API_KEY to access cameras controlled by Ubiquiti's NVR Software, the associated user account MUST have at least Administrator privileges within the NVR Software in order for new cameras to be added into Home Assistant. Once the entities have been created in Home Assistant, privileges for the user account can be lowered. +

+ diff --git a/source/_components/camera.verisure.markdown b/source/_components/camera.verisure.markdown deleted file mode 100644 index e3980f717487..000000000000 --- a/source/_components/camera.verisure.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Verisure Camera" -description: "Instructions on how to setup the Verisure cameras within Home Assistant." -date: 2016-10-22 09:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: verisure.png -ha_category: Camera -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.zoneminder.markdown b/source/_components/camera.zoneminder.markdown deleted file mode 100644 index 51a00ef3d17b..000000000000 --- a/source/_components/camera.zoneminder.markdown +++ /dev/null @@ -1,30 +0,0 @@ ---- -layout: page -title: "ZoneMinder Camera" -description: "View ZoneMinder camera streams within Home Assistant." -date: 2017-02-19 18:11 -sidebar: true -comments: false -sharing: true -footer: true -logo: zoneminder.png -ha_category: Camera -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 -# Example configuration.yaml entry -camera: - - platform: zoneminder -``` diff --git a/source/_components/canary.markdown b/source/_components/canary.markdown index 8f43c61d53b9..833302fe223f 100644 --- a/source/_components/canary.markdown +++ b/source/_components/canary.markdown @@ -8,13 +8,26 @@ comments: false sharing: true footer: true logo: canary.png -ha_category: Hub +ha_category: + - Alarm + - Camera + - Sensor ha_release: "0.60" ha_iot_class: "Cloud Polling" +redirect_from: + - /components/alarm_control_panel.canary/ + - /components/camera.canary/ + - /components/sensor.canary/ --- The `canary` component allows you to integrate your [Canary](https://canary.is) devices in Home Assistant. +There is currently support for the following device types within Home Assistant: + +- Alarm +- [Camera](#camera) +- [Sensor](#sensor) + ## {% linkable_title Configuration %} You will need your Canary login information (username, usually your email address, and password) to use this module. @@ -46,8 +59,42 @@ timeout: Once loaded, your front end will have the following components: -* A camera image triggered by motion for each camera. -* An alarm control panel for each location. -* A sensor per camera that reports temperature. -* A sensor per camera that reports humidity. -* A sensor per camera that reports air quality. +- A camera image triggered by motion for each camera. +- An alarm control panel for each location. +- A sensor per camera that reports temperature. +- A sensor per camera that reports humidity. +- A sensor per camera that reports air quality. + +## {% linkable_title Camera %} + +The `canary` camera platform allows you to watch the live stream of your [Canary](https://canary.is) camera in Home Assistant. This requires the [`ffmpeg` component](/components/ffmpeg/) to be already configured. + +Once you have [Canary component](/components/canary/) setup, your [Canary](https://canary.is) camera(s) should show up automatically. + +## {% linkable_title Configuration %} + +You can add the following to your `configuration.yaml` file to configure `canary` camera with optional settings: + +```yaml +camera: + - platform: canary +``` + +{% configuration %} +ffmpeg_arguments: + description: Extra options to pass to `ffmpeg`, e.g., image quality or video filter options. More details in [FFmpeg component](/components/ffmpeg). + required: false + type: string +{% endconfiguration %} + +## {% linkable_title Sensor %} + +The `canary` sensor platform allows you to integrate the sensors of your [Canary](https://canary.is) devices in Home Assistant. + +To add `canary` sensors to your installation, follow instructions above. + +Once loaded, you will see following sensors: + +- A sensor per camera that reports temperature. +- A sensor per camera that reports humidity. +- A sensor per camera that reports air quality. \ No newline at end of file diff --git a/source/_components/climate.coolmaster.markdown b/source/_components/climate.coolmaster.markdown new file mode 100644 index 000000000000..ab68254c373d --- /dev/null +++ b/source/_components/climate.coolmaster.markdown @@ -0,0 +1,56 @@ +--- +layout: page +title: "CoolMasterNet Climate" +description: "Instructions on how to integrate CoolMasterNet within Home Assistant." +date: 2019-02-05 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: coolautomation.png +ha_category: Climate +ha_release: 0.88 +ha_iot_class: "Local Polling" +--- + + +The `coolmaster` climate platform lets you control HVAC through [CoolMasterNet](https://coolautomation.com/products/coolmasternet/). To set it up, add the following information to your `configuration.yaml` file: + +```yaml +climate: + - platform: coolmaster + host: YOUR_COOLMASTER_HOST + port: YOUR_COOLMASTER_PORT + supported_modes: + - heat + - cool + - dry +``` + +{% configuration %} +host: + description: The host address of your CoolMasterNet instance (IP or host name). + required: true + type: string +port: + description: The port number of your CoolMasterNet instance. + required: false + type: integer + default: 10102 +supported_modes: + description: The operation modes supported by your HVAC. + required: false + type: list + default: All modes + keys: + heat: + description: Heat mode. + cool: + description: Cool mode. + auto: + description: Auto mode. + dry: + description: Dry mode. + fan_only: + description: Fan only mode. +{% endconfiguration %} diff --git a/source/_components/climate.daikin.markdown b/source/_components/climate.daikin.markdown deleted file mode 100644 index 904b3e5fa13f..000000000000 --- a/source/_components/climate.daikin.markdown +++ /dev/null @@ -1,47 +0,0 @@ ---- -layout: page -title: "Daikin AC" -description: "Instructions on how to integrate Daikin AC(s) with Home Assistant." -date: 2017-12-03 05:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: daikin.png -ha_category: Climate -ha_release: 0.59 -ha_iot_class: "Local Polling" ---- - - -The `daikin` climate platform integrates Daikin air conditioning systems into Home Assistant, enabling control of setting the following parameters: - -- **mode** (cool, heat, dry, fan only or auto) -- **fan speed** (on supported models) -- **target temperature** -- **swing mode** (on supported models) - -Current temperature is displayed. - -## {% linkable_title Configuration %} - -To enable the platform, add the following lines to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -climate: - - platform: daikin - host: 10.0.0.1 -``` - -{% configuration %} -host: - description: IP or hostname of the device. - required: true - type: string -name: - description: If the device has a name previously set by the user than that name will be used. - required: false - type: string -{% endconfiguration %} - diff --git a/source/_components/climate.dyson.markdown b/source/_components/climate.dyson.markdown deleted file mode 100644 index 969c20594cf4..000000000000 --- a/source/_components/climate.dyson.markdown +++ /dev/null @@ -1,27 +0,0 @@ ---- -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.ecobee.markdown b/source/_components/climate.ecobee.markdown deleted file mode 100644 index 99ff2b9b8921..000000000000 --- a/source/_components/climate.ecobee.markdown +++ /dev/null @@ -1,291 +0,0 @@ ---- -layout: page -title: "Ecobee Thermostat" -description: "Instructions on how to setup the Ecobee thermostats within Home Assistant." -date: 2016-08-26 18:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: ecobee.png -ha_category: Climate -ha_release: 0.9 -ha_iot_class: "Cloud Push" ---- - -

-To get your Ecobee thermostats working with Home Assistant, follow the instructions for the general [Ecobee component](/components/ecobee/). -

- -## {% linkable_title Concepts %} - -The Ecobee Thermostat supports the following key concepts. - -The _target temperature_ is the temperature that the device attempts -to achieve. The target temperature is either determined by the -currently active climate or it may be overridden by a hold. When the -thermostat is not in auto mode, there is a single target -temperature. When the thermostat is in auto operation mode, there is a -pair of target temperatures: the lower target temperature determines -the lowest desired temperature, while the higher target temperature -determines the highest desired temperature (the thermostat will switch -between heating and cooling to keep the temperature within these -limits). - -A _climate_ is a predefined or user-defined set of states that the -thermostat aims to achieve. The ecobee thermostat provides three predefined -climates: Home, Away, and Sleep. The user can define additional climates. - -A _hold_ is an override of the target temperature defined in the -currently active climate. The temperature targeted in the hold mode may be -explicitly set (temperature hold), it may be derived from a reference -climate (home, away, sleep, etc.), or it may be derived from a vacation -defined by the thermostat. All holds are temporary. Temperature and -climate holds expire when the thermostat transitions to the next climate -defined in its program. A vacation hold starts at the beginning of the -defined vacation period, and expires when the vacation period ends. - -When in _away mode_, the target temperature is permanently overridden by -the target temperature defined for the away climate. The away mode is a -simple way to emulate a vacation mode. - -The _operation mode_ of the device is the currently active operational -modes that the Ecobee thermostat provides: heat, auxHeatOnly, cool, -auto, and off. - - -## {% linkable_title Attributes %} - -The following attributes are provided by the Ecobee Thermostat: -`name`, `temperature_unit`, `current_temperature`, `target_temperature`, -`target_temperature_low`, `target_temperature_high`, `desired_fan_mode`, -`fan`, `current_hold_mode`, `current_operation`, `operation_list`, -`operation_mode`, `mode`, `fan_min_on_time`, `device_state_attributes`, -`is_away_mode_on`, `vacation`, `climate_list`, `aux_heat`. -The attributes `min_temp` and `max_temp` are meaningless constant values. - - -### {% linkable_title Attribute `name` %} - -Returns the name of the Ecobee Thermostat. - -| Attribute type | Description | -| ---------------| ----------- | -| String | Name of the Ecobee Thermostat - -### {% linkable_title Attribute `temperature_unit` %} - -Returns the unit of measurement used for temperature by the thermostat. - -| Attribute type | Description | -| ---------------| ----------- | -| String | Name of the temperature unit - -### {% linkable_title Attribute `current_temperature` %} - -Returns the current temperature measured by the thermostat. - -| Attribute type | Description | -| ---------------| ----------- | -| Integer | Currently measured temperature - -### {% linkable_title Attribute `target_temperature` %} - -Returns the target temperature of the thermostat, when the thermostat is -not in auto operation mode. - -| Attribute type | Description | -| ---------------| ----------- | -| Integer | Target temperature - -### {% linkable_title Attribute `target_temperature_low` %} - -Returns the desired heating temperature set in the thermostat when in -auto operation mode. - -| Attribute type | Description | -| ---------------| ----------- | -| Integer | Target temperature - -### {% linkable_title Attribute `target_temperature_high` %} - -Returns the desired cooling temperature set in the thermostat when in -auto operation mode. - -| Attribute type | Description | -| ---------------| ----------- | -| Integer | Target temperature - -### {% linkable_title Attribute `desired_fan_mode` %} - -Returns the desired fan mode of the current operation. - -| Attribute type | Description | -| ---------------| ----------- | -| String | 'on', 'off' - -### {% linkable_title Attribute `fan` %} - -Returns the current fan state. - -| Attribute type | Description | -| ---------------| ----------- | -| String | 'on', 'off' - -### {% linkable_title Attribute `current_hold_mode` %} - -Returns the current temperature hold, if any. - -| Attribute type | Description | -| ---------------| ----------- | -| String | 'temp', 'vacation', 'home', 'away', etc., None - -### {% linkable_title Attribute `current_operation` %} - -Returns the current operation of the thermostat. - -| Attribute type | Description | -| ---------------| ----------- | -| String | 'auto', 'cool', 'heat', 'off' - -### {% linkable_title Attribute `operation_list` %} - -Returns the list of available operation modes. - -| Attribute type | Description | -| ---------------| ----------- | -| List of String | Available operation modes - -### {% linkable_title Attribute `operation_mode` %} - -Returns the current operation mode of the thermostat. - -| Attribute type | Description | -| ---------------| ----------- | -| String | Currently active operation mode - -### {% linkable_title Attribute `mode` %} - -Returns the climate currently active on the thermostat. The mode -is returned as the user-visible name (rather than the internally used name). - -### {% linkable_title Attribute `fan_min_on_time` %} - -Returns the current fan minimum on time. - -| Attribute type | Description | -| ---------------| ----------- | -| Integer | Current fan minimum on time in minutes - -### {% linkable_title Attribute `is_away_mode_on` %} - -Returns whether the thermostat is in away mode (see the corresponding -service for more detail). - -### {% linkable_title Attribute `actual humidity` %} - -Returns the humidity as measured by the thermostat. - -| Attribute type | Description | -| ---------------| ----------- | -| Integer | Current humidity - -### {% linkable_title Attribute `vacation` %} - -Returns the currently active vacation or `None`. - -| Attribute type | Description | -| ---------------| ----------- | -| String | Name of currently active vacation | - -### {% linkable_title Attribute `climate_list` %} - -Returns the list of climates defined in the thermostat. - -### {% linkable_title Attribute `aux_heat` %} - -Returns the current auxiliary heat state. - -| Attribute type | Description | -| ---------------| ----------- | -| String | 'on', 'off' - -## {% linkable_title Services %} - -The following services are provided by the Ecobee Thermostat: -`set_away_mode`, `set_hold_mode`, `set_temperature`, `set_operation_mode`, -`fan_min_on_time`, `resume_program`. -The services `set_aux_heat`, `set_humidity`, `set_fan_mode`, and -`set_swing_mode` offered by the [Climate component](/components/climate/) -are not implemented for this thermostat. - - - -### {% linkable_title Service `set_away_mode` %} - -Turns the away mode on or off for the thermostat. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. -| `away_mode` | no | 'on' or 'off' - - -### {% linkable_title Service `set_hold_mode` %} - -Puts the thermostat into the given hold mode. For 'home', 'away', 'sleep', -and any other hold based on a reference climate, the -target temperature is taken from the reference climate. -For 'temp', the current temperature is taken as the target temperature. -When None is provided as parameter, the hold_mode is turned off. -It is not possible to set a vacation hold; such hold has to be -defined on the thermostat directly. However, a vacation hold can be -canceled. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. -| `hold_mode` | no | `temp`, `home`, `away`, `sleep`, `None`, `smart1`, `smart2`, etc. - -NOTE: If you create custom hold modes (also known as "Comfort Settings") on your ecobee.com dashboard, their hold_modes are `smart1`, `smart2`, `smart3`, etc. The number for each custom mode should match the mode's icon on your ecobee.com dashboard. Also note that the mode numbers/icons in the ecobee mobile app *may not match* the numbers/icons from the ecobee.com web dashboard. The ones on the website are the ones you shoud use to determine the correct `smartX` hold_mode IDs. - -### {% linkable_title Service `set_temperature` %} - -Puts the thermostat into a temporary hold at the given temperature. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. -| `target_temp_low` | no | Desired heating target temperature (when in auto mode) -| `target_temp_high` | no | Desired cooling target temperature (when in auto mode) -| `temperature` | no | Desired target temperature (when not in auto mode) - -Only the target temperatures relevant for the current operation mode need to -be provided. - -### {% linkable_title Service `set_operation_mode` %} - -Sets the current operation mode of the thermostat. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. -| `operation_mode` | no | 'auto', 'auxHeatOnly', 'cool', 'heat', 'off' - -### {% linkable_title Service `fan_min_on_time` %} - -Sets the fan minimum on time. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. -| `fan_min_on_time` | no | Desired fan minimum on time - -### {% linkable_title Service `resume_program` %} - -Resumes the currently active schedule. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. -| `resume_all` | no | true or false diff --git a/source/_components/climate.elkm1.markdown b/source/_components/climate.elkm1.markdown deleted file mode 100644 index b93f06baf877..000000000000 --- a/source/_components/climate.elkm1.markdown +++ /dev/null @@ -1,22 +0,0 @@ ---- -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.evohome.markdown b/source/_components/climate.evohome.markdown index c00c004f6e8f..68b42151b676 100644 --- a/source/_components/climate.evohome.markdown +++ b/source/_components/climate.evohome.markdown @@ -29,7 +29,7 @@ A device's actual operating mode can be tracked via its `device_state_attributes 'zoneId': '999999', 'temperatureStatus': { 'temperature': 21.5, - 'isAvailable': True + 'isAvailable': true }, 'activeFaults': [], 'setpointStatus': { diff --git a/source/_components/climate.flexit.markdown b/source/_components/climate.flexit.markdown index 36cda1ecf588..4ef2ab70609e 100644 --- a/source/_components/climate.flexit.markdown +++ b/source/_components/climate.flexit.markdown @@ -35,6 +35,11 @@ name: description: Displayed name of the A/C unit. required: false type: string +hub: + description: The name of the hub where this slave is located. + required: false + default: default + type: string {% endconfiguration %}

@@ -61,4 +66,4 @@ climate: - platform: flexit name: Main A/C slave: 21 -``` \ No newline at end of file +``` diff --git a/source/_components/climate.fritzbox.markdown b/source/_components/climate.fritzbox.markdown deleted file mode 100644 index 81b0533ed935..000000000000 --- a/source/_components/climate.fritzbox.markdown +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: page -title: "Fritzbox Thermostat" -description: "Instructions on how to integrate the AVM Fritzbox thermostat." -date: 2017-11-12 17:10 -sidebar: true -comments: false -sharing: true -footer: true -logo: avm.png -ha_category: Climate -ha_release: 0.68 -ha_iot_class: "Local Polling" ---- - -

-To get AVM fritzbox thermostat follow the instructions for the general [Fritzbox](/components/fritzbox/). -

- -### {% linkable_title Attributes %} - -The are several attributes that can be useful for automations and templates. - -| Attribute | Description | -| --------- | ----------- | -| `device_locked` | The state of the key lock at the device. -| `locked` | The state of the lock for configuring the device via the app or the Fritzbox web interface. -| `low_battery` | The low battery state indication. -| `battery_level` | The battery level (only available since Fritz!OS 7). -| `holiday_mode` | The state of the holiday mode (only available since Fritz!OS 7). -| `summer_mode` | The state of the summer mode (only available since Fritz!OS 7). -| `window_open` | The state of the window open detection (only available since Fritz!OS 7). diff --git a/source/_components/climate.generic_thermostat.markdown b/source/_components/climate.generic_thermostat.markdown index 53fdaac2f014..15207b935524 100644 --- a/source/_components/climate.generic_thermostat.markdown +++ b/source/_components/climate.generic_thermostat.markdown @@ -104,7 +104,7 @@ climate: target_sensor: sensor.study_temperature min_temp: 15 max_temp: 21 - ac_mode: False + ac_mode: false target_temp: 17 cold_tolerance: 0.3 hot_tolerance: 0 diff --git a/source/_components/climate.hive.markdown b/source/_components/climate.hive.markdown deleted file mode 100644 index 12f468855332..000000000000 --- a/source/_components/climate.hive.markdown +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: page -title: "Hive Thermostat" -description: "Instructions on how to integrate Hive thermostat(s) with Home Assistant." -date: 2017-09-24 21:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: hive.png -ha_category: Climate -ha_release: 0.59 -ha_iot_class: "Cloud Polling" ---- - - -The `hive` climate platform integrates your Hive thermostat and hot water into Home Assistant, enabling control of setting the **mode** and setting the **target temperature**. - -A short boost for Hive Heating or Hive Hot water can be set by using the **Aux Heat** function, this will turn on the boost feature for Hive Heating or Hive Hot water for 30 minutes at 0.5 degrees higher than the current temperature. - -The platform supports the following Hive products: - -- Hive Active Heating -- Hive Multizone -- Hot water control - - -

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

- - diff --git a/source/_components/climate.homekit_controller.markdown b/source/_components/climate.homekit_controller.markdown deleted file mode 100644 index 8e0414cf5518..000000000000 --- a/source/_components/climate.homekit_controller.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "HomeKit Climate" -description: "Instructions how to setup HomeKit thermostats within Home Assistant." -date: 2018-06-19 20:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: apple-homekit.png -ha_category: Climate -ha_iot_class: "Local Polling" -ha_release: 0.73 ---- - -To get your HomeKit thermostats and air conditioners working with Home Assistant, follow the instructions for the general [HomeKit controller component](/components/homekit_controller/). diff --git a/source/_components/climate.homematic.markdown b/source/_components/climate.homematic.markdown deleted file mode 100644 index 86e38fdb4979..000000000000 --- a/source/_components/climate.homematic.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Homematic Thermostats" -description: "Instructions on how to integrate Homematic thermostats within Home Assistant." -date: 2016-06-28 08:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: homematic.png -ha_category: Climate -ha_release: 0.23 -ha_iot_class: "Local Push" ---- - - -The `homematic` climate platform lets you control [Homematic](http://www.homematic.com/) thermostats through Home Assistant. - -Devices will be configured automatically. Please refer to the [component](/components/homematic/) configuration on how to setup Homematic. diff --git a/source/_components/climate.homematicip_cloud.markdown b/source/_components/climate.homematicip_cloud.markdown deleted file mode 100644 index 77acd4a426bc..000000000000 --- a/source/_components/climate.homematicip_cloud.markdown +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: page -title: "HomematicIP Cloud Climate" -description: "Instructions on how to integrate HomematicIP climate within Home Assistant." -date: 2018-05-18 22:40 -sidebar: true -comments: false -sharing: true -footer: true -logo: homematicip_cloud.png -ha_category: Sensor -ha_release: 0.71 -ha_iot_class: "Cloud Push" ---- - -The `homematicip_cloud` climate platform allows you to control -[HomematicIP](https://www.homematic-ip.com) climate through Home Assistant. - -Devices will be configured automatically. Please refer to the -[component](/components/homematicip_cloud/) configuration on how to setup -HomematicIP Cloud. diff --git a/source/_components/climate.honeywell.markdown b/source/_components/climate.honeywell.markdown index a517334566a5..844bfceed27a 100644 --- a/source/_components/climate.honeywell.markdown +++ b/source/_components/climate.honeywell.markdown @@ -16,13 +16,7 @@ ha_iot_class: "Cloud Polling" The `honeywell` climate platform let you control Honeywell Connected thermostats from Home Assistant. -

-This platform is actually a hybrid combination of two distinct climate systems based upon either [somecomfort](https://github.com/kk7ds/somecomfort) (for US-based systems), or [evohome-client](https://github.com/watchforstock/evohome-client) (for international/EU systems) - see the `region` parameter, below. Before you proceed, please be clear which client library is appropriate to your system. -

- -Although both regions remain supported here, the `evohome-client`-based systems have a new [component](/components/evohome/) available that may suit your needs better. - -To set up this climate platform, add the following information to your `configuration.yaml` file: +To set it up, add the following information to your `configuration.yaml` file: ```yaml climate: diff --git a/source/_components/climate.knx.markdown b/source/_components/climate.knx.markdown index 839be5243982..d121ed48283e 100644 --- a/source/_components/climate.knx.markdown +++ b/source/_components/climate.knx.markdown @@ -47,6 +47,20 @@ climate: operation_mode_comfort_address: '5/1/7' ``` +`operation_mode_frost_protection_address` / `operation_mode_night_address` / `operation_mode_comfort_address` are not necessary if `operation_mode_address` is specified. + +If your device doesn't support setpoint_shift calculations (i.e. if you don't provide a `setpoint_shift_address` value) please set the `min_temp` and `max_temp` +attributes of the climate device to avoid issues with increasing the temperature in the frontend. + +The following values are valid for the `operation_modes` attribute: + +- Comfort (maps internally to STATE_HEAT within Home Assistant) +- Standby (maps internally to STATE_ECO within Home Assistant) +- Night (maps internally to STATE_IDLE within Home Assistant) +- Frost Protection (maps internally to STATE_MANUAL within Home Assistant) +- Fan only (maps internally to STATE_FAN_ONLY within Home Assistant) +- Dehumidification (maps internally to STATE_DRY within Home Assistant) + {% configuration %} name: description: A name for this device used within Home Assistant. @@ -100,6 +114,14 @@ controller_status_state_address: description: Explicit KNX address for reading HVAC controller status. required: false type: string +controller_mode_address: + description: KNX address for handling controller modes. + required: false + type: string +controller_mode_state_address: + description: Explicit KNX address for reading HVAC Control Mode. + required: false + type: string operation_mode_frost_protection_address: description: KNX address for switching on/off frost/heat protection mode. required: false @@ -112,6 +134,24 @@ operation_mode_comfort_address: description: KNX address for switching on/off comfort mode. required: false type: string +operation_modes: + description: Overrides the supported operation modes. + required: false + type: array +on_off_address: + description: KNX address for switching the climate device on/off. + required: false + type: string +on_off_state_address: + description: KNX address for gathering the current state (on/off) of the climate device. + required: false + type: string +min_temp: + description: Override the minimum temperature. + required: false + type: float +max_temp: + description: Override the maximum temperature. + required: false + type: float {% endconfiguration %} - -`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.maxcube.markdown b/source/_components/climate.maxcube.markdown deleted file mode 100644 index 0b918cf10336..000000000000 --- a/source/_components/climate.maxcube.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "eQ-3 MAX! Cube thermostat" -description: "Instructions on how to integrate eQ-3 MAX! components with Home Assistant via eQ-3 MAX! Cube." -date: 2017-02-04 22:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: maxcube.png -ha_category: Climate -ha_release: "0.40" -ha_iot_class: "Local Polling" ---- - -See instructions at the [main component](/components/maxcube/). diff --git a/source/_components/climate.melissa.markdown b/source/_components/climate.melissa.markdown deleted file mode 100644 index 1c9daadd671c..000000000000 --- a/source/_components/climate.melissa.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Melissa Climate" -description: "Instructions on how to integrate Melissa climate system (HVAC) into Home Assistant." -date: 2018-01-08 20:21 -sidebar: true -comments: false -sharing: true -footer: true -logo: mclimate.png -ha_category: Climate -ha_iot_class: "Cloud Polling" -ha_release: 0.63 ---- - -The `melissa` climate platform allows you to control your [Melissa Climate](http://seemelissa.com/) from within Home Assistant. - -The climate platform will be automatically configured if Melissa component is configured. - -For more configuration information see the [Melissa component](/components/melissa/) documentation. diff --git a/source/_components/climate.modbus.markdown b/source/_components/climate.modbus.markdown index 77d62c2cf866..6aa4b250ad6a 100644 --- a/source/_components/climate.modbus.markdown +++ b/source/_components/climate.modbus.markdown @@ -25,6 +25,7 @@ To use your Modbus thermostat in your installation, add the following to your `c climate: - platform: modbus name: Watlow F4T + hub: hub1 slave: 1 target_temp_register: 2782 current_temp_register: 27586 @@ -35,6 +36,11 @@ name: description: Name of the device required: true type: string +hub: + description: The name of the hub. + required: false + default: default + type: string slave: description: The number of the slave (Optional for tcp and upd Modbus, use 1). required: true diff --git a/source/_components/climate.mqtt.markdown b/source/_components/climate.mqtt.markdown index 66cd9a2ccdd7..7e0cf3a0de5f 100644 --- a/source/_components/climate.mqtt.markdown +++ b/source/_components/climate.mqtt.markdown @@ -19,13 +19,14 @@ The platform currently works in optimistic mode, which means it does not obtain It uses a sensor under the hood to obtain the current temperature. +## {% linkable_title Configuration %} + +To enable this climate platform in your installation, first add the following to your `configuration.yaml` file: + ```yaml # Example configuration.yaml entry climate: - platform: mqtt - name: Study - current_temperature_topic: sensors/hvac_study/current_temp - temperature_command_topic: sensors/hvac_study/target_temp ``` {% configuration %} @@ -34,6 +35,10 @@ name: required: false type: string default: MQTT HVAC +unique_id: + description: An ID that uniquely identifies this HVAC device. If two HVAC devices have the same unique ID, Home Assistant will raise an exception. + required: false + type: string qos: description: The maximum QoS level to be used when receiving and publishing messages. required: false @@ -194,18 +199,51 @@ aux_state_template: required: false type: template min_temp: - description: Minimum set point available + description: Minimum set point available. type: number required: false max_temp: - description: Maximum set point available + description: Maximum set point available. type: number required: false temp_step: - description: Step size for temperature set point + description: Step size for temperature set point. type: number required: false default: 1 +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation. + required: false + type: string +device: + description: 'Information about the device this HVAC device 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 Optimistic mode %} diff --git a/source/_components/climate.mysensors.markdown b/source/_components/climate.mysensors.markdown index f7cc81bec3ee..56d2e0714f40 100644 --- a/source/_components/climate.mysensors.markdown +++ b/source/_components/climate.mysensors.markdown @@ -8,7 +8,9 @@ comments: false sharing: true footer: true logo: mysensors.png -ha_category: DIY +ha_category: + - DIY + - Climate ha_release: 0.29 ha_iot_class: "Local Push" --- diff --git a/source/_components/climate.nest.markdown b/source/_components/climate.nest.markdown deleted file mode 100644 index 4881390d88ea..000000000000 --- a/source/_components/climate.nest.markdown +++ /dev/null @@ -1,25 +0,0 @@ ---- -layout: page -title: "Nest Thermostat" -description: "Instructions on how to integrate Nest thermostats within Home Assistant." -date: 2015-03-23 19:59 -sidebar: true -comments: false -sharing: true -footer: true -logo: nest.png -ha_category: Climate -ha_iot_class: "Cloud Push" ---- - - -The `nest` climate platform lets you control a thermostat from [Nest](https://nest.com). - -

-You must have the [Nest component](/components/nest/) configured to use these sensors. The `nest` climate component will automatically be setup when you do. -

- -

- -

- diff --git a/source/_components/climate.nuheat.markdown b/source/_components/climate.nuheat.markdown deleted file mode 100644 index 46a8e84c5add..000000000000 --- a/source/_components/climate.nuheat.markdown +++ /dev/null @@ -1,139 +0,0 @@ ---- -layout: page -title: "NuHeat Thermostat" -description: "Instructions on how to integrate your NuHeat Signature thermostats within Home Assistant." -date: 2017-11-11 18:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: nuheat.png -ha_category: Climate -ha_release: 0.61 -ha_iot_class: "Cloud Polling" ---- - -

-To get your [NuHeat Signature](http://www.nuheat.com/products/thermostats/signature-thermostat) thermostats working within Home Assistant, please follow the instructions for the general [NuHeat component](/components/nuheat) -

- -## {% linkable_title Concepts %} - -The NuHeat Thermostat supports the following key concepts. - -The `target temperature` is the temperature that the device attempts to achieve. The target temperature is either determined by the schedule programmed into the thermostat (`auto mode`) or may be overridden. When the target temperature is set by Home Assistant, the thermostat will hold this temperature until the schedule is resumed. - - -## {% linkable_title Attributes %} - -The following attributes are provided by the NuHeat thermostat: `name`, `temperature_unit`, `current_temperature`, `target_temperature`, `current_hold_mode`, `current_operation`, `operation_list`, `min_temp` and `max_temp`. - - -### {% linkable_title Attribute `name` %} - -Returns the name of the NuHeat Thermostat. - -| Attribute type | Description | -| ---------------| ----------- | -| String | Name of the thermostat - -### {% linkable_title Attribute `temperature_unit` %} - -Returns the unit of measurement used for temperature by the thermostat. - -| Attribute type | Description | -| ---------------| ----------- | -| String | Name of the temperature unit - -### {% linkable_title Attribute `current_temperature` %} - -Returns the current temperature measured by the thermostat. - -| Attribute type | Description | -| ---------------| ----------- | -| Integer | Currently measured temperature - -### {% linkable_title Attribute `target_temperature` %} - -Returns the target temperature of the thermostat, when the thermostat is -not in auto operation mode. - -| Attribute type | Description | -| ---------------| ----------- | -| Integer | Target temperature - -### {% linkable_title Attribute `current_hold_mode` %} - -Returns the current temperature hold, if any. - -| Attribute type | Description | -| ---------------| ----------- | -| String | 'temperature', 'temporary_temperature', 'auto', etc. - -### {% linkable_title Attribute `current_operation` %} - -Returns the current operation of the thermostat. - -| Attribute type | Description | -| ---------------| ----------- | -| String | 'heat', 'idle' - -### {% linkable_title Attribute `operation_list` %} - -Returns the list of available operation modes. - -| Attribute type | Description | -| ---------------| ----------- | -| List of String | Available operation modes - -### {% linkable_title Attribute `min_temp` %} - -Returns the minimum supported temperature by the thermostat - -| Attribute type | Description | -| ---------------| ----------- | -| Integer | Minimum supported temperature - -### {% linkable_title Attribute `max_temp` %} - -Returns the maximum supported temperature by the thermostat - -| Attribute type | Description | -| ---------------| ----------- | -| Integer | Maximum supported temperature - - -## {% linkable_title Services %} - -The following services are provided by the NuHeat Thermostat: `set_temperature`, `set_hold_mode`, `nuheat_resume_program`. - -The services `fan_min_on_time`, `set_aux_heat`, `set_away_mode`, `set_humidity`, `set_fan_mode`, `set_operation_mode` and `set_swing_mode` offered by the [Climate component](/components/climate/) are not implemented for this thermostat. - -### {% linkable_title Service `set_temperature` %} - -Puts the thermostat into an indefinite hold at the given temperature. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. -| `temperature` | no | Desired target temperature (when not in auto mode) - -Only the target temperatures relevant for the current operation mode need to -be provided. - -### {% linkable_title Service `set_hold_mode` %} - -Sets the thermostat's hold mode. The NuHeat thermostat supports "auto" (to run the thermostat's programmed schedule), "temperature" (to indefinitely hold the thermostat's current target temperature), or "temporary_temperature" (to hold the thermostat's current target temperature until the thermostat's next scheduled event). - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. -| `hold_mode` | no | New value of hold mode. - -### {% linkable_title Service `nuheat_resume_program` %} - -Resumes the currently active schedule. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. diff --git a/source/_components/climate.opentherm_gw.markdown b/source/_components/climate.opentherm_gw.markdown deleted file mode 100644 index 1248a6578160..000000000000 --- a/source/_components/climate.opentherm_gw.markdown +++ /dev/null @@ -1,25 +0,0 @@ ---- -layout: page -title: "OpenTherm Gateway Climate" -description: "Control your OpenTherm Gateway from Home Assistant." -date: 2018-08-29 16:23 -sidebar: true -comments: false -sharing: true -footer: true -logo: opentherm.png -ha_category: Climate -ha_release: 0.78 -ha_iot_class: "Local Push" ---- - - -The `opentherm_gw` climate platform is used to control the [OpenTherm Gateway](http://otgw.tclcode.com/) from 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/climate.radiotherm.markdown b/source/_components/climate.radiotherm.markdown index 8dcdd7249316..d7ffe2141cae 100644 --- a/source/_components/climate.radiotherm.markdown +++ b/source/_components/climate.radiotherm.markdown @@ -62,7 +62,7 @@ hold_temp: 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. +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. The away mode functions similarly to the away mode feature of the website and apps, but cannot detect if you set away mode outside of Home Assistant. diff --git a/source/_components/climate.spider.markdown b/source/_components/climate.spider.markdown deleted file mode 100644 index a25d49d7f94a..000000000000 --- a/source/_components/climate.spider.markdown +++ /dev/null @@ -1,28 +0,0 @@ ---- -layout: page -title: "Spider Thermostat" -description: "Instructions on how to integrate Spider thermostats within Home Assistant." -date: 2018-07-17 22:01 -sidebar: true -comments: false -sharing: true -footer: true -logo: spider.png -ha_category: Climate -ha_iot_class: "Cloud Polling" -ha_release: 0.75 ---- - -The `spider` climate platform allows you to control your temperature settings as well as if you want to cool or heat. - -

-Full configuration details can be found on the main [Spider component](/components/spider/) page. -

- -

-Although this component lets you change the operation mode to heating or cooling, it doesn't necessarily mean your boiler can. Spider is not aware of your current situation. -

- -

-This component is not affiliated with Itho Daalderop Spider and retrieves data from the endpoints of the mobile application. Use at your own risk. -

\ No newline at end of file diff --git a/source/_components/climate.tado.markdown b/source/_components/climate.tado.markdown deleted file mode 100644 index c49a8ef4bdcf..000000000000 --- a/source/_components/climate.tado.markdown +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: page -title: "Tado Thermostat" -description: "Instructions on how to integrate Tado thermostats with Home Assistant." -date: 2017-03-20 12:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: tado.png -ha_category: Climate -ha_release: 0.41 -ha_iot_class: "Cloud Polling" ---- - - -The `tado` climate platform is interact with your climate devices. - - -The requirement is that you have set up the [tado](/components/tado/) component. - diff --git a/source/_components/climate.tesla.markdown b/source/_components/climate.tesla.markdown deleted file mode 100644 index 282f7615702b..000000000000 --- a/source/_components/climate.tesla.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Tesla HVAC" -description: "Instructions on how to integrate Tesla climate system (HVAC) into Home Assistant." -date: 2017-08-30 12:20 -sidebar: true -comments: false -sharing: true -footer: true -logo: tesla.png -ha_category: Car -ha_iot_class: "Cloud push" -ha_release: 0.53 ---- - -The `tesla` climate platform allows you to control your [Tesla](https://www.tesla.com/) climate from within Home Assistant. - -The climate platform will be automatically configured if Tesla component is configured. - -For more configuration information see the [Tesla component](/components/tesla/) documentation. diff --git a/source/_components/climate.toon.markdown b/source/_components/climate.toon.markdown deleted file mode 100644 index 61e4258847d3..000000000000 --- a/source/_components/climate.toon.markdown +++ /dev/null @@ -1,27 +0,0 @@ ---- -layout: page -title: "Toon Thermostat" -description: "Instructions on how to integrate Toon thermostats within Home Assistant." -date: 2017-10-22 12:00 -sidebar: true -comments: false -sharing: true -footer: true -ha_category: Climate -ha_release: 0.56 -logo: toon.png -ha_iot_class: "Cloud Polling" ---- - -The `toon` climate platform allows you to interact with your Toon thermostat. For compatibility reasons, the states in Home Assistant are different from the states displayed on your Toon device and are mapped as follows: - - -| Home Assistant | Toon | -|:---------------|:--------| -| Performance | Comfort | -| Heat | Thuis | -| Eco | Weg | -| Cool | Slapen | - - -Please refer to the [hub component](/components/toon/) for setup instructions. diff --git a/source/_components/climate.tuya.markdown b/source/_components/climate.tuya.markdown deleted file mode 100644 index 4d89a4783b1f..000000000000 --- a/source/_components/climate.tuya.markdown +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: page -title: "Tuya Climate" -description: "Instructions on how to setup the Tuya climate devices within Home Assistant." -date: 2018-07-16 09:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: tuya.png -ha_category: Climate -ha_release: 0.75 -ha_iot_class: "Cloud Polling" ---- - -The `tuya` climate platform allows you to control your [Tuya Smart](https://www.tuya.com) climate devices. - -The platform supports the air conditioner and heater. - -

-Full configuration details can be found on the main [Tuya component](/components/tuya/) page. -

diff --git a/source/_components/climate.velbus.markdown b/source/_components/climate.velbus.markdown deleted file mode 100644 index 5a95e769a940..000000000000 --- a/source/_components/climate.velbus.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Velbus Climate" -description: "Instructions how to integrate Velbus thermostat into Home Assistant." -date: 2018-08-22 06:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: velbus.png -ha_category: Climate -ha_iot_class: "Local Push" -ha_release: 0.83 ---- - -The `velbus` climate devices allow you to control [Velbus](http://www.velbus.eu) connected thermostats. - -For hub configuration, see [the Velbus component](/components/velbus/). diff --git a/source/_components/climate.venstar.markdown b/source/_components/climate.venstar.markdown index 7667b7354341..7337e19f62ea 100644 --- a/source/_components/climate.venstar.markdown +++ b/source/_components/climate.venstar.markdown @@ -61,7 +61,7 @@ ssl: description: Whether to use SSL or not when communicating. required: false type: boolean - default: False + default: false timeout: description: Number of seconds for API timeout. required: false @@ -81,9 +81,9 @@ humidifier: climate: - platform: venstar host: IP_OR_HOSTNAME_OF_THERMOSTAT - ssl: True/False + ssl: true username: OPTIONAL_AUTH_USER_HERE password: OPTIONAL_AUTH_PASS_HERE timeout: 5 - humidifier: False + humidifier: false ``` diff --git a/source/_components/climate.vera.markdown b/source/_components/climate.vera.markdown deleted file mode 100644 index c46b8fdff9b1..000000000000 --- a/source/_components/climate.vera.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Vera Thermostat" -description: "Instructions on how to integrate Vera thermostats into Home Assistant." -date: 2016-09-19 21:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: vera.png -ha_category: Climate -ha_iot_class: "Local Push" -ha_release: 0.13 ---- - -The `vera` climate platform allows you to control your [Vera](http://getvera.com/) thermostats from within Home Assistant. - -They will be automatically discovered if the vera component is loaded. - -For more configuration information see the [Vera component](/components/vera/) documentation. diff --git a/source/_components/climate.wink.markdown b/source/_components/climate.wink.markdown deleted file mode 100644 index 2520b49fa45c..000000000000 --- a/source/_components/climate.wink.markdown +++ /dev/null @@ -1,35 +0,0 @@ ---- -layout: page -title: "Wink Climate" -description: "Instructions on how to setup the Wink climate devices within Home Assistant." -date: 2016-11-01 22:36 -sidebar: true -comments: false -sharing: true -footer: true -logo: wink.png -ha_category: Climate -ha_release: 0.32 -ha_iot_class: "Cloud Polling" ---- - - -The Wink climate platform allows you to get data from your [Wink](http://www.wink.com/) thermostats and air conditioners. - -The requirement is that you have setup [Wink](/components/wink/). - - -### {% linkable_title Supported climate devices %} - -- Nest (No Wink hub required) -- Ecobee (No Wink hub required) -- Sensi (No Wink hub required) -- Carrier (Unconfirmed) -- Honeywell (No Wink hub required) -- Generic Z-Wave -- Quirky Aros window AC unit - -

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

- diff --git a/source/_components/climate.zwave.markdown b/source/_components/climate.zwave.markdown index e1b20babc6b7..d0cd7289f9b8 100644 --- a/source/_components/climate.zwave.markdown +++ b/source/_components/climate.zwave.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Z-Wave Climate" -description: "Instructions on how to setup the Z-Wave thermostat or HVAC within Home Assistant." +description: "Instructions on how to set up the Z-Wave thermostat or HVAC within Home Assistant." date: 2016-04-03 9:52 sidebar: true comments: false @@ -13,13 +13,12 @@ ha_release: 0.17 ha_iot_class: "Local Push" --- - To get your Z-Wave thermostat or HVAC unit working with Home Assistant, follow the instructions for the general [Z-Wave component](/getting-started/z-wave/).

-Thermostats with support for fan modes or different operating modes, will be handled like a HVAC device and will also be detected as one. +Thermostats with support for fan modes or different operating modes, will be handled like a HVAC device and will also be detected as one. -If the thermostat support different operating modes, you will get one thermostat entity for each mode. These can be hidden with settings using the customize setting in the `configuration.yaml` file. +If the thermostat supports different operating modes, you will get one thermostat entity for each mode. These can be hidden with settings using the customize setting in the `configuration.yaml` file.

To enable the climate component for your Z-Wave network, add the following to your `configuration.yaml` file. @@ -31,10 +30,10 @@ climate: Once enabled, any Z-Wave climate devices will be available to Home Assistant. Multiple entities may be created. The following entities are created for a Remotec ZXT-120. -- **climate.remotec_zxt120_heating_1_id** Allows you to control the connected device. See below for examples. -- **sensor.remotec_zxt120_temperature_38** A sensor which returns the current temperature set on the attached device. +- `climate.remotec_zxt120_heating_1_id`: Allows you to control the connected device. See below for examples. +- `sensor.remotec_zxt120_temperature_38`: A sensor which returns the current temperature set on the attached device. -### {% linkable_title Automating Z-Wave Climate Devices %} +## {% linkable_title Automating Z-Wave Climate Devices %} The following examples will instruct a Remotec ZXT-120 to turn the attached device mode to Heating, and set the temperature at 24 degrees after 8pm. Add it to `automation.yaml`. @@ -55,7 +54,7 @@ automation: temperature: 24 ``` -Generally in Home Assistant you can use the `homeassistant/turn_off` service to turn devices off. For the Remotec ZXT-120, you must instead make a service call like the following. +Generally, in Home Assistant, you can use the `homeassistant/turn_off` service to turn devices off. For the Remotec ZXT-120, you must instead make a service call like the following. ```yaml automation: @@ -72,9 +71,9 @@ automation: **Note:** In the example above, the word `Off` is encased in single quotes to be valid YAML. -### {% linkable_title Test if it works %} +## {% linkable_title Test if it works %} -A simple way to test if your Z-Wave climate device is working is to use service developer tool icon **Services** from the **Developer Tools**. Choose the applicable Climate service from the list of **Available services:** and enter something like the sample below into the **Service Data** field and then press **CALL SERVICE**. +A simple way to test if your Z-Wave climate device is working is to use service developer tool icon **Services** from the **Developer Tools**. Choose the applicable Climate service from the list of **Available services:** and enter something like the sample below into the **Service Data** field and then press **CALL SERVICE**. ```json { @@ -82,4 +81,3 @@ A simple way to test if your Z-Wave climate device is working is to use -If a device ID consists of only numbers, please make sure to surround it with quotes. +If a device ID consists of only numbers, please make sure to surround it with quotes. This is a known limitation in YAML, because the device ID will be interpreted as a number otherwise.

diff --git a/source/_components/cover.rpi_gpio.markdown b/source/_components/cover.rpi_gpio.markdown deleted file mode 100644 index 2026b7bc3b6c..000000000000 --- a/source/_components/cover.rpi_gpio.markdown +++ /dev/null @@ -1,99 +0,0 @@ ---- -layout: page -title: "Raspberry Pi GPIO Cover" -description: "Instructions on how to setup the Raspberry Pi GPIO covers within Home Assistant." -date: 2016-08-24 14:28 -sidebar: true -comments: false -sharing: true -footer: true -logo: raspberry-pi.png -ha_category: DIY -ha_release: 0.23 -ha_iot_class: "Local Push" ---- - -The `rpi_gpio` cover platform allows you to use a Raspberry Pi to control your cover such as Garage doors. - -It uses two pins on the Raspberry Pi. - -- The `state_pin` will detect if the cover is closed, and -- the `relay_pin` will trigger the cover to open or close. - -Although you do not need Andrews Hilliday's software controller when you run Home Assistant, he has written clear instructions on how to hook your garage door and sensors up to your Raspberry Pi, which can be found [here](https://github.com/andrewshilliday/garage-door-controller#hardware-setup). - -## {% linkable_title Configuration %} - -To enable Raspberry Pi Covers in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -cover: - - platform: rpi_gpio - covers: - - relay_pin: 10 - state_pin: 11 -``` - -{% 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 %} - -## {% linkable_title Full example %} - -```yaml -# Example configuration.yaml entry -cover: - - platform: rpi_gpio - relay_time: 0.2 - invert_relay: False - state_pull_mode: 'UP' - invert_state: True - covers: - - relay_pin: 10 - state_pin: 11 - - relay_pin: 12 - state_pin: 13 - name: 'Right door' -``` - -## {% linkable_title Remote Raspberry Pi Cover %} - -If you don't have Home Assistant running on your Raspberry Pi and you want to use it as a remote cover instead, there is a project called [GarageQTPi](https://github.com/Jerrkawz/GarageQTPi) that will work remotely with the [MQTT Cover Component](/components/cover.mqtt/). Follow the Github instructions to install and configure GarageQTPi and once configured follow the Home Assistant instructions to configure the MQTT Cover. - diff --git a/source/_components/cover.scsgate.markdown b/source/_components/cover.scsgate.markdown deleted file mode 100644 index fa5ab21969d6..000000000000 --- a/source/_components/cover.scsgate.markdown +++ /dev/null @@ -1,52 +0,0 @@ ---- -layout: page -title: "SCSGate Cover" -description: "Instructions on how to integrate SCSGate motorized devices into Home Assistant." -date: 2016-06-28 17:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: bus_scs.png -ha_category: Cover -ha_iot_class: "Local Polling" ---- - -The SCSGate devices can control motorized covers connected to the BTicino MyHome system. - -To enable SCSGate covers in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -cover: - - platform: scsgate - devices: - living_room: - name: Living Room - scs_id: XXXXX -``` - -{% configuration %} -devices: - description: A list of devices. - required: true - type: list - keys: - slug: - description: Slug of the device. - required: true - type: list - keys: - name: - description: Name to use in the frontend. - required: true - type: string - scs_id: - description: The ID of your SCSGate device. - required: true - type: string -{% endconfiguration %} - -

-**Known limitation:** It is not possible to know the current state of the cover. -

diff --git a/source/_components/cover.tahoma.markdown b/source/_components/cover.tahoma.markdown deleted file mode 100644 index a67537ca1127..000000000000 --- a/source/_components/cover.tahoma.markdown +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: page -title: "Tahoma Cover" -description: "Instructions on how to integrate Tahoma covers into Home Assistant." -date: 2017-07-18 12:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: tahoma.png -ha_category: Cover -ha_release: 0.59 ---- - -The `tahoma` cover platform lets you control covers added to your Tahoma Box in Home Assistant. - -Covers will be added automatically. Please refer to the [component](/components/tahoma/) configuration on how to setup Tahoma. diff --git a/source/_components/cover.tellduslive.markdown b/source/_components/cover.tellduslive.markdown deleted file mode 100644 index a988bb1761b7..000000000000 --- a/source/_components/cover.tellduslive.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "Telldus Live Cover" -description: "Instructions on how to integrate Telldus Live Covers into Home Assistant." -date: 2016-01-17 15:49 -sidebar: true -comments: false -sharing: true -footer: true -logo: telldus.png -ha_category: Cover -featured: false ---- - -Integrates Telldus Live Covers into Home Assistant. See the [main component](/components/tellduslive/) for configuration instructions. - diff --git a/source/_components/cover.tellstick.markdown b/source/_components/cover.tellstick.markdown deleted file mode 100644 index 1d2660cda583..000000000000 --- a/source/_components/cover.tellstick.markdown +++ /dev/null @@ -1,25 +0,0 @@ ---- -layout: page -title: "TellStick Cover" -description: "Instructions on how to integrate TellStick covers into Home Assistant." -date: 2017-11-29 16:23 -sidebar: true -comments: false -sharing: true -footer: true -logo: telldus_tellstick.png -ha_category: Cover -ha_iot_class: "Assumed State" -ha_release: "0.60" ---- - - -This `tellstick` cover platform allows you to control your [TellStick](http://www.telldus.se/products/tellstick) covers. - -To use your TellStick device, you first have to set up your [Tellstick hub](/components/tellstick/) and then add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -cover: - - platform: tellstick -``` diff --git a/source/_components/cover.tuya.markdown b/source/_components/cover.tuya.markdown deleted file mode 100644 index 82040f93ecc1..000000000000 --- a/source/_components/cover.tuya.markdown +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: page -title: "Tuya Cover" -description: "Instructions on how to setup the Tuya cover within Home Assistant." -date: 2018-07-20 09:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: tuya.png -ha_category: Cover -ha_iot_class: "Cloud Polling" -ha_release: 0.75 ---- - - -The `tuya` cover platform allows you to control your [Tuya Smart](https://www.tuya.com) curtains. - -The platform supports curtains. - -

-Full configuration details can be found on the main [Tuya component](/components/tuya/) page. -

\ No newline at end of file diff --git a/source/_components/cover.vera.markdown b/source/_components/cover.vera.markdown deleted file mode 100644 index a982c83a41d5..000000000000 --- a/source/_components/cover.vera.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Vera Cover" -description: "Instructions on how to integrate Vera covers into Home Assistant." -date: 2016-09-19 21:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: vera.png -ha_category: Cover -ha_iot_class: "Local Push" -ha_release: 0.13 ---- - -The `vera` cover platform allows you to control your [Vera](http://getvera.com/) covers from within Home Assistant. - -They will be automatically discovered if the Vera component is loaded. - -For more configuration information see the [Vera component](/components/vera/) documentation. diff --git a/source/_components/cover.wink.markdown b/source/_components/cover.wink.markdown deleted file mode 100644 index 8c8263418707..000000000000 --- a/source/_components/cover.wink.markdown +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: page -title: "Wink Cover" -description: "Instructions on how to setup the Wink garage doors within Home Assistant." -date: 2016-06-28 17:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: wink.png -ha_category: Cover -ha_release: 0.13 -ha_iot_class: "Cloud Polling" ---- - -Wink Cover garage door functionality varies on the product. Home Assistant can open, close, and view state of GoControl/Linear openers. For Chamberlain MyQ-enabled openers, Home Assistant is limited to show current state (open or closed) only using this Wink cover. This restriction was imposed by Chamberlain for third party control. Wink suggests that MyQ customers should contact Chamberlain directly to inquire about expanding permissions. - -The [MyQ Cover](/components/cover.myq/) does provide full functionality for opening and closing Chamberlain MyQ-enabled garage doors. If installed along with the Wink Component, a duplicate garage door entity may exist. In that case, the semi-functional Wink garage door entity can be hidden via customize.yaml. - -The requirement is that you have setup [Wink](/components/wink/). - -### {% linkable_title Supported cover devices %} - -- Bali window treatments -- Lutron shades -- Pella motorized blinds and shades -- GoControl garage door opener -- Chamberlain MyQ (Limited functionality) (No Wink hub required) - -

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

diff --git a/source/_components/daikin.markdown b/source/_components/daikin.markdown index c060f41b3f8c..6945eb5c9901 100644 --- a/source/_components/daikin.markdown +++ b/source/_components/daikin.markdown @@ -8,19 +8,28 @@ comments: false sharing: true footer: true logo: daikin.png -ha_category: Climate +ha_category: + - Climate + - Sensor ha_release: 0.59 ha_iot_class: "Local Polling" +redirect_from: + - /components/climate.daikin/ + - /components/sensor.daikin/ --- - The `daikin` component integrates Daikin air conditioning systems into Home Assistant. +There is currently support for the following device types within Home Assistant: + +- [Climate](#climate) +- [Sensor](#sensor) + ## {% linkable_title Supported hardware %} -**Only** the european versions of Daikin ACs (models BRP069A41, 42, 43, 45). +**Only** the European versions of Daikin AC (models BRP069A41, 42, 43, 45). -The model BRP069A42 does not support setting of fan speed or fan swing mode. +Some models do not support setting of fan speed or fan swing mode. Please note that some AC devices may report outside temperature only when they are turned on. @@ -33,9 +42,6 @@ To automatically add all your Daikin devices (ACs and associated sensors) into y daikin: hosts: - 192.168.4.161 - monitored_conditions: - - inside_temperature - - outside_temperature ``` {% configuration %} @@ -44,15 +50,22 @@ hosts: required: false default: All discovered hosts type: list -monitored_conditions: - description: List of items you want to monitor for each device. - required: false - default: All conditions - type: list - keys: - inside_temperature: - description: The current temperature measured inside the house. - outside_temperature: - description: The current temperature measured outside the house. {% endconfiguration %} +## {% linkable_title Climate %} + +The `daikin` climate platform integrates Daikin air conditioning systems into Home Assistant, enabling control of setting the following parameters: + +- **mode** (cool, heat, dry, fan only or auto) +- **fan speed** (on supported models) +- **target temperature** +- **swing mode** (on supported models) + +Current temperature is displayed. + +## {% linkable_title Sensor %} + +The `daikin` sensor platform integrates Daikin air conditioning systems into Home Assistant, enabling displaying the following parameters: + +- Inside temperature +- Outside temperature \ No newline at end of file diff --git a/source/_components/danfoss_air.markdown b/source/_components/danfoss_air.markdown new file mode 100644 index 000000000000..2e45788d1d33 --- /dev/null +++ b/source/_components/danfoss_air.markdown @@ -0,0 +1,59 @@ +--- +layout: page +title: "Danfoss Air" +description: "How to integrate Danfoss Air HRV in Home Assistant." +date: 2019-01-14 20:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: + - Climate + - Binary Sensor + - Sensor +ha_release: "0.87" +logo: danfoss_air.png +ha_iot_class: "Local Polling" +redirect_from: + - /components/binary_sensor.danfoss_air/ + - /components/sensor.danfoss_air/ +--- + +The `danfoss_air` component allows you to access information from your Danfoss Air HRV unit. + +*Note*: Danfoss Air CCM only accepts one TCP connection at a time. Due to this the component +will not work while you have the HRV PC-Tool open. + +There is currently support for the following device types within Home Assistant: + +- [Binary Sensor](#binary-sensor) +- [Sensor](#sensor) + +```yaml +# Example configuration.yaml entry +danfoss_air: + host: IP_ADDRESS_OF_CCM +``` + +{% configuration %} +host: + description: Danfoss Air CCM IP. + required: true + type: string +{% endconfiguration %} + +## {% linkable_title Binary sensor %} + +The following binary sensor is supported. + +- **Bypass active:** Indicator if heat recovery is currrently bypassed. + +## {% linkable_title Sensor %} + +The following sensors are supported. + +- **Outdoor temperature:** Outdoor air temperature. +- **Supply temperature:** Air temperature of the air supplied to the house. +- **Extract temperature:** Air temperature of the air extracted from the house. +- **Exhaust temperature:** Exhausted air temperature. +- **Remaining filter lifetime:** Reamining filter lifetime measured in percent. diff --git a/source/_components/deconz.markdown b/source/_components/deconz.markdown index e665590ff741..4fcd99d14570 100644 --- a/source/_components/deconz.markdown +++ b/source/_components/deconz.markdown @@ -8,17 +8,43 @@ comments: false sharing: true footer: true logo: deconz.jpeg -ha_category: Hub +ha_category: + - Hub + - Binary Sensor + - Cover + - Light + - Scene + - Sensor + - Switch ha_release: "0.61" ha_iot_class: "Local Push" ha_qa_scale: platinum +ha_config_flow: true +redirect_from: + - /components/binary_sensor.deconz/ + - /components/climate.deconz/ + - /components/cover.deconz/ + - /components/light.deconz/ + - /components/scene.deconz/ + - /components/sensor.deconz/ + - /components/switch.deconz/ --- [deCONZ](https://www.dresden-elektronik.de/funktechnik/products/software/pc/deconz/) by [Dresden Elektronik](https://www.dresden-elektronik.de) is a software that communicates with Conbee/Raspbee Zigbee gateways and exposes Zigbee devices that are connected to the gateway. [deCONZ REST API](http://dresden-elektronik.github.io/deconz-rest-doc/). -### {% linkable_title Recommended way of running deCONZ %} +There is currently support for the following device types within Home Assistant: + +- [Binary Sensor](#binary-sensor) +- [Climate](#climate) +- [Cover](#cover) +- [Light](#light) +- [Scene](#scene) +- [Sensor](#sensor) +- [Switch](#switch) + +## {% linkable_title Recommended way of running deCONZ %} Use [community container](https://hub.docker.com/r/marthoc/deconz/) by Marthoc for your deCONZ needs. It works both as a standalone container as well as with HASS.io. @@ -50,7 +76,7 @@ logger: Available services: `configure` and `deconz.refresh_devices`. -#### {% linkable_title Service `deconz.configure` %} +### {% linkable_title Service `deconz.configure` %} Set attribute of device in deCONZ using [Rest API](http://dresden-elektronik.github.io/deconz-rest-doc/rest/). @@ -97,9 +123,10 @@ For the IKEA Tradfri remote the first digit equals, 1 for the middle button, 2 f ### {% linkable_title YAML %} -#### {% linkable_title Step up and step down input number with wireless dimmer %} +#### {% linkable_title Step up and step down input number with wireless dimmer %} {% raw %} + ```yaml automation: - alias: 'Toggle lamp from dimmer' @@ -146,15 +173,18 @@ automation: {% set bri = states.light.lamp.attributes.brightness | int %} {{ [bri-30, 0] | max }} ``` + {% endraw %} ### {% linkable_title Appdaemon %} #### {% linkable_title Appdaemon event helper %} + Helper app that creates a sensor `sensor.deconz_event` with a state that represents the id from the last event and an attribute to show the event data. Put this in `apps.yaml`: {% raw %} + ```yaml deconz_helper: module: deconz_helper @@ -162,6 +192,7 @@ deconz_helper: ``` Put this in `deconz_helper.py`: + ```python import appdaemon.plugins.hass.hassapi as hass import datetime @@ -179,6 +210,7 @@ class DeconzHelper(hass.Hass): self.log("Deconz event received from {}. Event was: {}".format(event_id, event_data)) self.set_state("sensor.deconz_event", state = event_id, attributes = {"event_data": event_data, "event_received": str(event_received)}) ``` + {% endraw %} Note: the event will not be visible before one event gets sent. @@ -186,6 +218,7 @@ Note: the event will not be visible before one event gets sent. #### {% linkable_title Appdaemon remote template %} {% raw %} + ```yaml remote_control: module: remote_control @@ -215,6 +248,7 @@ class RemoteControl(hass.Hass): elif data['event'] == 4002: self.log('Button off') ``` + {% endraw %} #### {% linkable_title Appdaemon remote template %} @@ -222,6 +256,7 @@ class RemoteControl(hass.Hass): Community app from [Teachingbirds](https://community.home-assistant.io/u/teachingbirds/summary). This app uses an Ikea Tradfri remote to control Sonos speakers with play/pause, volume up and down, next and previous track. {% raw %} + ```yaml sonos_remote_control: module: sonos_remote @@ -230,9 +265,11 @@ sonos_remote_control: id: sonos_remote sonos: media_player.sonos ``` + {% endraw %} {% raw %} + ```python import appdaemon.plugins.hass.hassapi as hass @@ -259,10 +296,151 @@ class SonosRemote(hass.Hass): elif data['event'] == 4002: self.log('Button previous') - self.call_service("media_player/media_previous_track", entity_id = self.sonos) + self.call_service("media_player/media_previous_track", entity_id = self.sonos) elif data['event'] == 5002: self.log('Button next') self.call_service("media_player/media_next_track", entity_id = self.sonos) ``` + {% endraw %} + +## {% linkable_title Binary Sensor %} + +The following sensor types are supported: + +- Fire/Smoke detection +- Open/Close detection +- Presence detection +- Water leakage detection + +The `entity_id` name will be `binary_sensor.device_name`, where `device_name` is defined in deCONZ. + +### {% linkable_title Verified supported binary sensors %} + +- Open/Close Detection + - Xiaomi Smart Home Security Door & Window Contact Sensor +- Presence Detection + - IKEA Trådfri Motion Sensor + - Philips Hue Motion Sensor + - Xiaomi Motion Sensor + - Xiaomi Smart Home Aqara Human Body Sensor + +## {% linkable_title Climate %} + +See the [deCONZ main component](/components/deconz/) for configuration instructions. + +Climate currently represent thermostats. + +Note that devices in the climate platform identify as sensors, so there is a manually curated list that defines which "sensors" are climate devices. + +The `entity_id` name will be `climate.device_name`, where `device_name` is defined in deCONZ. + +#### {% linkable_title Verified supported climate devices %} + +- Bitron Thermostat 902010/32 +- Eurotronic SPZB0001 + +## {% linkable_title Cover %} + +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. + +The `entity_id` name will be `cover.device_name`, where `device_name` is defined in deCONZ. + +### {% linkable_title Verified supported covers %} + +- Keen vents +- Xiaomi Aqara Curtain controller + +## {% linkable_title Light %} + +The `entity_id` names will be `light.device_name`, where `device_name` is defined in deCONZ. Light groups created in deCONZ will be created in Home Assistant as lights named `light.group_name_in_deconz`, allowing the user to control groups of lights with only a single API call to deCONZ. + +### {% linkable_title Verified supported lights %} + +- IKEA Trådfri bulb E14 WS opal 400lm +- IKEA Trådfri Bulb E27 WS Opal 980lm +- IKEA Trådfri Bulb E27 WS Opal 1000lm +- IKEA Trådfri Bulb GU10 W 400lm +- OSRAM Flex RGBW +- OSRAM Gardenpole RGBW +- Philips Hue White A19 +- Philips Hue White Ambiance A19 +- Philips Hue Hue White ambiance Milliskin (recessed spotlight) LTW013 +- Busch Jaeger ZigBee Light Link univ. relai (6711 U) with ZigBee Light Link control element 6735-84 + +## {% linkable_title Scene %} + +The `entity_id` name will be `scene.group_scene_name`, where `group` is which group the scene belongs to and the name of the scene, both group and name are defined in deCONZ. + +## {% linkable_title Sensor %} + +The following sensor types are supported: + +- Humidity sensor +- Light level sensor +- Pressure sensor +- Switches +- Temperature sensor + +The `entity_id` name will be `sensor.device_name`, where `device_name` is defined in deCONZ. Switches aren't exposed as ordinary entities, see the [deCONZ main component](/components/deconz/) for more details. + +### {% linkable_title Verified to be supported sensors %} + +- Humidity Sensor + - Xiaomi Aqara Humidity/Temperature Sensor + - Xiaomi MiJia Smart Temperature & Humidity Sensor +- Light Level Sensor +- Pressure Sensor +- Switches + - IKEA Trådfri Wireless Dimmer + - Philips Hue Motion Sensor + - IKEA Trådfri Remote + - Philips Hue Dimmer Switch + - Xiaomi Cube + - Xiaomi Aqara Smart Light Switch + - Xiaomi Aqara Smart Wireless Switch + - Xiaomi Smart Home Wireless Switch +- Temperature Sensor + - Xiaomi Temperature/Humidity Sensor + +### {% linkable_title deCONZ Daylight Sensor %} + +The deCONZ Daylight sensor is a special sensor built into the deCONZ software since version 2.05.12. It is represented in Home Assistant as a sensor called sensor.daylight. The sensor's state value is a string corresponding to the phase of daylight (descriptions below taken from https://github.com/mourner/suncalc, on which the deCONZ implementation is based): + +| Sensor State | Description | +|--------------|-------------| +| sunrise_start | sunrise (top edge of the sun appears on the horizon) | +| sunrise_end | sunrise ends (bottom edge of the sun touches the horizon) | +| golden_hour_1 | morning golden hour (soft light, the best time for photography) | +| solar_noon | solar noon (sun is in the highest position) | +| golden_hour_2 | evening golden hour | +| sunset_start | sunset starts (bottom edge of the sun touches the horizon) | +| sunset_end | sunset (sun disappears below the horizon, evening civil twilight starts) | +| dusk | dusk (evening nautical twilight starts) | +| nautical_dusk | nautical dusk (evening astronomical twilight starts) | +| night_start | night starts (dark enough for astronomical observations) | +| nadir | nadir (darkest moment of the night, the sun is in the lowest position) | +| night_end | night ends (morning astronomical twilight starts) | +| nautical_dawn | nautical dawn (morning nautical twilight starts) | +| dawn | dawn (morning nautical twilight ends, morning civil twilight starts) | + +The sensor also has an attribute called "daylight" that has the value `true` when the sensor's state is `golden_hour_1`, `solar_noon`, or `golden_hour_2`, and `false` otherwise. + +These states can be used in automations as a trigger (e.g., trigger when a certain phase of daylight starts or ends) or condition (e.g., trigger only if in a certain phase of daylight). + +## {% linkable_title Switch %} + +Switches are devices like power plugs and sirens. + +Note that devices in the switch platform identify as lights, so there is a manually curated list that defines which "lights" are switches. + +The `entity_id` name will be `switch.device_name`, where `device_name` is defined in deCONZ. + +### {% linkable_title Verified supported switches %} + +- Innr SP120 +- Osram Outdoor plug +- Heiman siren diff --git a/source/_components/default_config.markdown b/source/_components/default_config.markdown new file mode 100644 index 000000000000..852d8803c6e8 --- /dev/null +++ b/source/_components/default_config.markdown @@ -0,0 +1,16 @@ +--- +layout: page +title: "Default Config" +description: "The default config component will initate a default configuration for Home Assistant." +date: 2019-02-15 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: Other +ha_release: 0.88 +featured: false +--- + +This component is a meta-component and configures a default set of components for Home Assistant to load. The components that will be loaded can be found [here](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/default_config/__init__.py). diff --git a/source/_components/demo.markdown b/source/_components/demo.markdown index 8b0ac25e3c58..1107426877f6 100644 --- a/source/_components/demo.markdown +++ b/source/_components/demo.markdown @@ -17,14 +17,14 @@ The `demo` platform allows you to use components which are providing a demo of t Available demo platforms: -- [Air Pollutants]((/components/air_pollutants/) (`air_pollutants`) +- [Air Quality](/components/air_quality/) (`air_quality`) - [Alarm control panel](/components/alarm_control_panel/) (`alarm_control_panel`) - [Binary sensor](/components/binary_sensor/) (`binary_sensor`) - [Camera](/components/camera/) (`camera`) - [Climate](/components/climate/) (`climate`) - [Cover](/components/cover/) (`cover`) - [Fan](/components/fan/) (`fan`) -- [Geo Location](/components/geo_location/) (`geo_location`) +- [Geolocation](/components/geo_location/) (`geo_location`) - [Image Processing](/components/image_processing/) (`image_processing`) - [Light](/components/light/) (`light`) - [Lock](/components/lock/) (`lock`) diff --git a/source/_components/device_tracker.actiontec.markdown b/source/_components/device_tracker.actiontec.markdown index f33d631b8f39..524cc707a5dd 100644 --- a/source/_components/device_tracker.actiontec.markdown +++ b/source/_components/device_tracker.actiontec.markdown @@ -35,7 +35,7 @@ device_tracker: {% configuration %} host: - description: The IP address of your router, eg. `192.168.1.1`. + description: The IP address of your router, e.g., `192.168.1.1`. required: true type: string username: @@ -49,4 +49,3 @@ password: {% 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.asuswrt.markdown b/source/_components/device_tracker.asuswrt.markdown deleted file mode 100644 index a24982b7a6aa..000000000000 --- a/source/_components/device_tracker.asuswrt.markdown +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: page -title: "Asuswrt Device Tracker" -description: "Instructions on how to integrate Asuswrt device tracker into Home Assistant." -date: 2015-08-06 19:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: asus.png -ha_category: Presence Detection -ha_release: pre 0.7 ---- - - -The `asuswrt` platform offers presence detection by looking at connected devices to a [ASUSWRT](http://event.asus.com/2013/nw/ASUSWRT/) based router. - -The platform will be automatically configured if Asuswrt component is configured. - -For more configuration information see the [Asuswrt component](/components/asuswrt/) documentation. - -See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. \ No newline at end of file diff --git a/source/_components/device_tracker.bluetooth_tracker.markdown b/source/_components/device_tracker.bluetooth_tracker.markdown index fd79f3c3f04d..4811c61729b5 100644 --- a/source/_components/device_tracker.bluetooth_tracker.markdown +++ b/source/_components/device_tracker.bluetooth_tracker.markdown @@ -25,10 +25,15 @@ device_tracker: {% configuration %} request_rssi: - description: Performs a request for the "Received signal strength indication" (RSSI) of each tracked device + description: Performs a request for the "Received signal strength indication" (RSSI) of each tracked device. required: false type: boolean - default: False + default: false +device_id: + description: The ID of the bluetooth adapter to be used by the tracker, e.g., use `0` for `hci0`, `1` for `hci1`, and so on. + required: false + type: integer + default: "`-1` (The first available bluetooth adapter)" {% endconfiguration %} In some cases it can be that your device is not discovered. In that case let your phone scan for Bluetooth devices while you restart Home Assistant. Just hit `Scan` on your phone all the time until Home Assistant is fully restarted and the device should appear in `known_devices.yaml`. diff --git a/source/_components/device_tracker.bmw_connected_drive.markdown b/source/_components/device_tracker.bmw_connected_drive.markdown deleted file mode 100644 index 53da0530db19..000000000000 --- a/source/_components/device_tracker.bmw_connected_drive.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "BMW Connected Drive Device Tracker" -description: "Instructions on how to setup your BMW Connected Drive account with Home Assistant." -date: 2018-01-10 23:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: bmw.png -ha_category: Car -ha_release: 0.64 ---- - - -The `bmw_connected_drive` device tracker platform allows you to import data on your BMW into Home Assistant. - -The device tracker platform will be automatically configured if the `bmw_connected_drive` component is configured. - -For more configuration information see the [`bmw_connected_drive` component](/components/bmw_connected_drive/) documentation. diff --git a/source/_components/device_tracker.ee_brightbox.markdown b/source/_components/device_tracker.ee_brightbox.markdown new file mode 100644 index 000000000000..8a0ef3b31fa7 --- /dev/null +++ b/source/_components/device_tracker.ee_brightbox.markdown @@ -0,0 +1,51 @@ +--- +layout: page +title: "EE Bright Box" +description: "Instructions on how to integrate EE Bright Box router into Home Assistant." +date: 2018-12-27 16:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: ee.png +ha_category: Presence Detection +ha_release: 0.87 +ha_iot_class: "Local Polling" +--- + +This platform offers presence detection by looking at connected devices to a [EE Bright Box 2](https://ee.co.uk/help/phones-and-device/home-broadband/bright-box-2-wireless-router/bright-box-2-wireless-router) router. + +## {% linkable_title Configuration %} + +To use a EE Bright Box router in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +device_tracker: + - platform: ee_brightbox + password: router-admin-password +``` + +{% configuration %} +host: + description: The IP address of your router + default: 192.168.1.1 + required: false + type: string +username: + description: Found at the back of the router in 'Router login details' section + default: admin + required: false + type: string +password: + description: Found at the back of the router in 'Router login details' section + required: true + type: string +version: + description: Currently only version 2 of the router is supported + default: 2 + required: false + type: string +{% endconfiguration %} + +See the [device tracker component page](/components/device_tracker/) for instructions on how to configure the people to be tracked. diff --git a/source/_components/device_tracker.fritz.markdown b/source/_components/device_tracker.fritz.markdown index f478fdea7484..4bb281c39fbd 100644 --- a/source/_components/device_tracker.fritz.markdown +++ b/source/_components/device_tracker.fritz.markdown @@ -18,8 +18,8 @@ The `fritz` platform offers presence detection by looking at connected devices t ## {% linkable_title Setup %}

-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; pip3 install lxml; be patient this will take a while.

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

## {% linkable_title Configuration %} @@ -47,7 +47,7 @@ password: {% endconfiguration %}

-It seems that it is not necessary to use it in current generation Fritz!Box routers because the necessary data can be retrieved anonymously. +It seems that it is not necessary to use the password in current generation Fritz!Box routers because the necessary data can be retrieved anonymously.

See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. diff --git a/source/_components/device_tracker.google_maps.markdown b/source/_components/device_tracker.google_maps.markdown index 6289ba263323..d2a6a6431218 100644 --- a/source/_components/device_tracker.google_maps.markdown +++ b/source/_components/device_tracker.google_maps.markdown @@ -19,7 +19,7 @@ The `google_maps` platform allows you to detect presence using the unofficial AP You first need to create an additional Google account and share your location with that account. This platform will use that account to fetch the location of your device(s). You have to setup sharing through the Google Maps app on your mobile phone. You can find more information [here](https://support.google.com/accounts?p=location_sharing). -This platform will create a file named `.google_maps_location_sharing.cookies` where it caches your login session. +This platform will create a file named `.google_maps_location_sharing.cookies` extended with the slugified username where it caches your login session.

Since this platform is using an unofficial API with the help of [locationsharinglib](https://github.com/costastf/locationsharinglib), Google seems to block access to your data the first time you've logged in with this platform. diff --git a/source/_components/device_tracker.googlehome.markdown b/source/_components/device_tracker.googlehome.markdown deleted file mode 100644 index 34a821bbd36f..000000000000 --- a/source/_components/device_tracker.googlehome.markdown +++ /dev/null @@ -1,48 +0,0 @@ ---- -layout: page -title: "Google Home Bluetooth tracker" -description: "Instructions on how to use Google Home to track devices in Home Assistant." -date: 2018-11-04 00:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: google_home.png -ha_release: 0.83 -ha_category: Presence Detection -ha_iot_class: "Local Polling" ---- - -The `googlehome` platform allows you to detect presence using an [unofficial Google Home API][googlehomeapi]. - -## {% linkable_title Configuration %} - -To integrate Google Home Bluetooth tracker in Home Assistant, add the following section to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -device_tracker: - - platform: googlehome - host: IP_ADDRESS -``` - -{% configuration %} -host: - description: The IP address of the Google Home unit. - required: true - type: string -rssi_threshold: - description: The threshold for the RSSI signal of the device. - required: false - default: -70 - type: integer -{% endconfiguration %} - -## {% linkable_title Usage %} - -Devices will appear in the format `devicetracker._`. Note that dots are removed from the IP and BT MAC addresses. - -After running this component for a little while, you will likely see many devices appear. It's advisable to set the configuration to not discover new devices once the device you want to track have appeared (see [device tracker configuration][devicetrackerconfig] for details). - -[googlehomeapi]: https://rithvikvibhu.github.io/GHLocalApi/ -[devicetrackerconfig]: https://www.home-assistant.io/components/device_tracker/#configuring-a-device_tracker-platform diff --git a/source/_components/device_tracker.gpslogger.markdown b/source/_components/device_tracker.gpslogger.markdown index 10889993651c..01dc20046d5c 100644 --- a/source/_components/device_tracker.gpslogger.markdown +++ b/source/_components/device_tracker.gpslogger.markdown @@ -1,91 +1,19 @@ --- layout: page -title: "GPSLogger" +title: "GPSLogger Device Tracker" description: "Instructions on how to use GPSLogger to track devices in Home Assistant." date: 2016-11-25 15:00 sidebar: true comments: false sharing: true footer: true +logo: gpslogger.png ha_category: Presence Detection 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. +The `gpslogger` device tracker platform allows you to detect presence using [GPSLogger](http://code.mendhak.com/gpslogger/). -## {% 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 -# Example configuration.yaml entry -device_tracker: - - platform: gpslogger - password: !secret gpslogger_password -``` -{% configuration %} -password: - description: Separate password for GPS Logger endpoint. If provided using regular API password to contact endpoint will result in 401 response. - required: false - type: string -{% endconfiguration %} - -## {% linkable_title Setup on your smartphone %} - -Install [GPSLogger for Android](https://play.google.com/store/apps/details?id=com.mendhak.gpslogger) on your device. - -After the launch, go to **General Options**. Enable **Start on bootup** and **Start on app launch**. - -

- - GPSLogger Settings -

- -Go to **Logging details** and disable **Log to GPX**, **Log to KML** and **Log to NMEA**. Enable **Log to custom URL**. - -

- - Logging Details +

+You must have the [GPSLogger component](/components/gpslogger/) configured to use this device tracker.

- -Right after enabling, the app will take you to the **Log to custom URL** settings. - -

- - Log to custom URL details -

- -The relevant endpoint is: `/api/gpslogger` - -```text -https://YOUR.DNS.HOSTNAME:PORT/api/gpslogger?latitude=%LAT&longitude=%LON&device=%SER&accuracy=%ACC&battery=%BATT&speed=%SPD&direction=%DIR&altitude=%ALT&provider=%PROV&activity=%ACT -``` - -Add the above URL after you modified it with your settings into the **URL** field. Remove the line breaks as they are only there to make the URL readable here. - -- It's HIGHLY recommended to use SSL/TLS. -- 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. -- **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** - -

- - Performance -

- -A request can be forced from the app to test if everything is working fine. A successful request will update the `known_devices.yaml` file with the device's serial number. diff --git a/source/_components/device_tracker.markdown b/source/_components/device_tracker.markdown index d3483e297c2a..ee06fbd6bbad 100644 --- a/source/_components/device_tracker.markdown +++ b/source/_components/device_tracker.markdown @@ -44,7 +44,7 @@ The following optional parameters can be used with any platform: | `new_device_defaults`| | Default values for new discovered devices. Available options `track_new_devices` (default: `true`), `hide_if_away` (default: `false`) |

- Note that setting `track_new_devices:false` will still result in new devices being recorded in `known_devices.yaml`, but they won't be tracked (`track: no`). + Note that setting `track_new_devices: false` will still result in new devices being recorded in `known_devices.yaml`, but they won't be tracked (`track: false`).

The extended example from above would look like the following sample: @@ -74,8 +74,8 @@ devicename: name: Friendly Name mac: EA:AA:55:E7:C6:94 picture: https://www.home-assistant.io/images/favicon-192x192.png - track: yes - hide_if_away: no + track: true + hide_if_away: false ```

@@ -86,7 +86,7 @@ devicename: |----------------|-------------------------------|---------------------------------------------------------------------------------------------------------| | `name` | Host name or "Unnamed Device" | The friendly name of the device. | | `mac` | None | The MAC address of the device. Add this if you are using a network device tracker like Nmap or SNMP. | -| `picture` | None | A picture that you can use to easily identify the person or device. You can also save the image file in a folder "www" in the same location (can be obtained from developer tools) where you have your configuration.yaml file and just use `picture: /local/favicon-192x192.png`. | +| `picture` | None | A picture that you can use to easily identify the person or device. You can also save the image file in a folder "www" in the same location (can be obtained from developer tools) where you have your configuration.yaml file and just use `picture: /local/favicon-192x192.png`. The path 'local' is mapped to the 'www' folder you create. | | `icon` | mdi:account | An icon for this device (use as an alternative to `picture`). | | `gravatar` | None | An email address for the device's owner. If provided, it will override `picture`. | | `track` | [uses platform setting] | If `yes`/`on`/`true` then the device will be tracked. Otherwise its location and state will not update. | @@ -105,8 +105,8 @@ USERNAME_DEVICE_ID: mac: EA:AA:55:E7:C6:94 picture: https://www.home-assistant.io/images/favicon-192x192.png gravatar: test@example.com - track: yes - hide_if_away: no + track: true + hide_if_away: false ``` If you want to track whether either your GPS based tracker or your local network tracker, identify you as being at home, use [a group](/components/group/) instead. diff --git a/source/_components/device_tracker.mercedesme.markdown b/source/_components/device_tracker.mercedesme.markdown deleted file mode 100644 index c436e507c84c..000000000000 --- a/source/_components/device_tracker.mercedesme.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Mercedes me Device Tracker" -description: "Instructions on for how to integrate Mercedes me into Home Assistant." -date: 2018-01-27 10:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: mercedesme.png -ha_category: Car -ha_release: 0.63 ---- - -The `mercedesme` platform allows you to get data about the location of your [Mercedes me connected car](https://www.mercedes-benz.com/en/mercedes-me/) car within Home Assistant. - -The device tracker platform will be automatically configured if Mercedes me component is configured. - -For more configuration information see the [Mercedes me component](/components/mercedesme/) documentation. diff --git a/source/_components/device_tracker.mikrotik.markdown b/source/_components/device_tracker.mikrotik.markdown index 8e839945c878..dcad31664afa 100644 --- a/source/_components/device_tracker.mikrotik.markdown +++ b/source/_components/device_tracker.mikrotik.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "Mikrotik" -description: "Instructions on how to integrate Mikrotik/Routerboard based routers into Home Assistant." +title: "MikroTik" +description: "Instructions on how to integrate MikroTik/RouterOS based devices into Home Assistant." date: 2017-04-28 16:03 sidebar: true comments: false @@ -12,10 +12,11 @@ ha_category: Presence Detection ha_release: 0.44 --- +The `mikrotik` platform offers presence detection by looking at connected devices to a [MikroTik RouterOS](http://mikrotik.com) based router. -The `mikrotik` platform offers presence detection by looking at connected devices to a [Mikrotik Routerboard](http://routerboard.com) based router. +## {% linkable_title Configuring `mikrotik` device tracker %} -You need to enable the RouterOS API to use this platform. +You have to enable accessing the RouterOS API on your router to use this platform. Terminal: @@ -26,41 +27,42 @@ set api disabled=no port=8728 Web Frontend: -Go to **IP** -> **Services** -> **API** and enable it. +Go to **IP** -> **Services** -> **api** and enable it. Make sure that port 8728 or the port you choose is accessible from your network. -To use a Mikrotik router in your installation, add the following to your `configuration.yaml` file: + +To use a MikroTik router in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry device_tracker: - platform: mikrotik host: IP_ADDRESS - username: ADMIN_USERNAME - password: ADMIN_PASSWORD + username: ROUTEROS_USERNAME + password: ROUTEROS_PASSWORD ``` {% configuration %} host: - description: The IP address of your router. + description: The IP address of your MikroTik device. required: true type: string username: - description: The username of an user with administrative privileges. + description: The username of a user on the MikroTik device. required: true type: string password: - description: The password for your given admin account. + description: The password of the given user account on the MikroTik device. required: true type: string port: - description: Mikrotik API port. + description: RouterOS API port. required: false - default: 8728 (or 8729 if ssl is true) + default: 8728 (or 8729 if SSL is enabled) type: integer ssl: - description: Use api_ssl service instead of api. + description: Use SSL to connect to the API. required: false default: false type: boolean @@ -70,7 +72,9 @@ method: type: string {% endconfiguration %} -To use api_ssl service further configuration is required at RouterOS side. You have to upload or generate a certificate for api\-ssl service. Here is an example for a self signed certificate: +## {% linkable_title Use a certificate %} + +To use SSL to connect to the API (via `api-ssl` instead of `api` service) further configuration is required at RouterOS side. You have to upload or generate a certificate and configure `api-ssl` service to use it. Here is an example of a self-signed certificate: ```bash /certificate add common-name="Self signed demo certificate for API" days-valid=3650 name="Self signed demo certificate for API" key-usage=digital-signature,key-encipherment,tls-server,key-cert-sign,crl-sign @@ -78,9 +82,36 @@ To use api_ssl service further configuration is required at RouterOS side. You h /ip service set api-ssl certificate="Self signed demo certificate for API" /ip service enable api-ssl ``` -If everything is working you can disable the pure api service: + +Then add `ssl: true` to `mikrotik` device tracker entry in your `configuration.yaml` file. + +If everything is working fine you can disable the pure `api` service in RouterOS: ```bash /ip service disable api ``` -See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. + +## {% linkable_title The user privileges in RouterOS %} + +To use this device tracker you need restricted privileges only. To enhance the security of your MikroTik device create a "read only" user who is able to connect to API only: + +```bash +/user group add name=homeassistant policy=read,api,!local,!telnet,!ssh,!ftp,!reboot,!write,!policy,!test,!winbox,!password,!web,!sniff,!sensitive on,!dude,!tikapp +/user add group=homeassistant name=homeassistant +/user set password="YOUR_PASSWORD" homeassistant +``` + +## {% linkable_title Using the additional configuration to the `mikrotik` device tracker entry in your `configuration.yaml` file: %} + +```yaml +device_tracker: + - platform: mikrotik + host: 192.168.88.1 + username: homeassistant + password: YOUR_PASSWORD + ssl: true + port: 8729 + method: capsman +``` + +See the [device tracker component page](/components/device_tracker/) for instructions on how to configure the people to be tracked. diff --git a/source/_components/device_tracker.mqtt.markdown b/source/_components/device_tracker.mqtt.markdown index bb40d07ea515..ca3415eafdd7 100644 --- a/source/_components/device_tracker.mqtt.markdown +++ b/source/_components/device_tracker.mqtt.markdown @@ -15,6 +15,8 @@ ha_iot_class: depends The `mqtt` device tracker platform allows you to detect presence by monitoring an MQTT topic for new locations. To use this platform, you specify a unique topic for each device. +## {% linkable_title Configuration %} + To use this device tracker in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -37,6 +39,8 @@ qos: type: integer {% endconfiguration %} +## {% linkable_title Usage %} + Example JSON you can publish to the topic (e.g., via mqtt.publish service): ```json diff --git a/source/_components/device_tracker.mqtt_json.markdown b/source/_components/device_tracker.mqtt_json.markdown index cc0e4783ec39..3ebee3872743 100644 --- a/source/_components/device_tracker.mqtt_json.markdown +++ b/source/_components/device_tracker.mqtt_json.markdown @@ -15,6 +15,8 @@ ha_release: 0.44 The `mqtt_json` device tracker platform allows you to detect presence by monitoring an MQTT topic for new locations. To use this platform, you specify a unique topic for each device. +## {% linkable_title Configuration %} + To use this device tracker in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -37,6 +39,8 @@ qos: type: string {% endconfiguration %} +## {% linkable_title Usage %} + This platform receives JSON formatted payloads containing GPS information, for example: ```json diff --git a/source/_components/device_tracker.mysensors.markdown b/source/_components/device_tracker.mysensors.markdown index 0a886e1a2c6d..ac3cb137eeb9 100644 --- a/source/_components/device_tracker.mysensors.markdown +++ b/source/_components/device_tracker.mysensors.markdown @@ -8,7 +8,9 @@ comments: false sharing: true footer: true logo: mysensors.png -ha_category: DIY +ha_category: + - DIY + - Presence Detection ha_release: "0.38" ha_iot_class: "Local Push" --- diff --git a/source/_components/device_tracker.snmp.markdown b/source/_components/device_tracker.snmp.markdown index 05a5b2fb867a..45afbc2585f0 100644 --- a/source/_components/device_tracker.snmp.markdown +++ b/source/_components/device_tracker.snmp.markdown @@ -23,23 +23,25 @@ The following OID examples pull the current MAC Address table from a router. Thi | Brand | Device/Firmware | OID | |---|---|---|---| -| 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` | +| Aerohive | AP230 | `1.3.6.1.4.1.26928.1.1.1.2.1.2.1.1` | +| Apple | Airport Express (2nd gen.) 7.6.9 | `1.3.6.1.2.1.3.1.1.2` or `1.3.6.1.2.1.4.22.1.2`| | 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` | +| DD-WRT | unknown version/model | `1.3.6.1.2.1.4.22.1.2` | +| 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` | | OpenWrt | Chaos Calmer 15.05 | `1.3.6.1.2.1.4.22.1.2` | +| OPNSense | 19.1 | `1.3.6.1.2.1.4.22.1.2` | +| pfSense | 2.2.4 | `1.3.6.1.2.1.4.22.1.2` | +| Ruckus | ZoneDirector 9.13.3 | `1.3.6.1.4.1.25053.1.2.2.1.1.3.1.1.1.6` | | TP-Link | Archer VR2600v | `1.3.6.1.2.1.3.1.1.2.19.1` | | TP-Link | Archer VR600 | `1.3.6.1.2.1.3.1.1.2` | -| EdgeRouter | Lite v1.9.0 | `1.3.6.1.2.1.4.22.1.2` | -| Ruckus | ZoneDirector 9.13.3 | `1.3.6.1.4.1.25053.1.2.2.1.1.3.1.1.1.6` | -| DD-WRT | unknown RouterOS version/model | `1.3.6.1.2.1.4.22.1.2` | -| Apple Airport Express (2nd gen.) | 7.6.9 | `1.3.6.1.2.1.3.1.1.2` or `1.3.6.1.2.1.4.22.1.2`| +| Ubiquiti | Edgerouter Lite v1.9.0 | `1.3.6.1.2.1.4.22.1.2` | -To use the SNMP version 1 platform in your installation, add the following to your `configuration.yaml` file: +To use the SNMP version 1 or 2c platform in your installation, add the following to your `configuration.yaml` file: ```yaml -# Example configuration.yaml entry for SNMP version 1 +# Example configuration.yaml entry for SNMP version 1 or 2c device_tracker: - platform: snmp host: 192.168.1.1 diff --git a/source/_components/device_tracker.synology_srm.markdown b/source/_components/device_tracker.synology_srm.markdown new file mode 100644 index 000000000000..1f79413a183e --- /dev/null +++ b/source/_components/device_tracker.synology_srm.markdown @@ -0,0 +1,67 @@ +--- +layout: page +title: "Synology SRM" +description: "Instructions on how to integrate Synology SRM routers into Home Assistant." +date: 2019-01-22 13:43 +sidebar: true +comments: false +sharing: true +footer: true +logo: synology.png +ha_category: Presence Detection +ha_release: 0.87 +--- + +This platform allows you to detect presence by looking at connected devices to a [Synology SRM](https://www.synology.com/en-us/srm) router. + +## {% linkable_title Configuration %} + +To use this device tracker in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +device_tracker: + - platform: synology_srm + host: 192.168.1.254 + password: YOUR_ADMIN_PASSWORD +``` + +{% configuration %} +host: + description: The Synology SRM router host or IP address, e.g., `192.168.1.1` or `router.mydomain.local` + required: true + type: string +port: + description: The port to connect to the Synology SRM router. + required: false + default: 8001 + type: int +username: + description: The username of a user with administrative privileges. + required: false + default: admin + type: string +password: + description: The password for your given admin account. + required: true + type: string +ssl: + description: Use HTTPS instead of HTTP to connect. + required: false + default: true + type: boolean +verify_ssl: + description: Enable or disable SSL certificate verification. + required: false + default: false + type: boolean +{% endconfiguration %} + +It's not possible to create another account in SRM with admin permissions. You'll need to use your admin account (or the one you renamed at creation) for this connection. + +List of models known to be supported: + +- RT1900ac +- RT2600ac + +See the [device tracker component page](/components/device_tracker/) for instructions on how to configure the people to be tracked. diff --git a/source/_components/device_tracker.tado.markdown b/source/_components/device_tracker.tado.markdown deleted file mode 100644 index 06e7df3c4725..000000000000 --- a/source/_components/device_tracker.tado.markdown +++ /dev/null @@ -1,69 +0,0 @@ ---- -layout: page -title: "Tado Device Tracker" -description: "Instructions on how to integrate Tado device tracker into Home Assistant." -date: 2017-01-17 12:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: tado.png -ha_category: Presence Detection -ha_release: 0.37 ---- - -The `tado` device tracker is using the [Tado Smart Thermostat](https://www.tado.com/) and its support for person presence detection based on smartphone location by geofencing. - -This tracker uses the Tado API to determine if a mobile device is at home. It tracks all devices in your home that Tado knows about. - -To use the Tado platform in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry for Tado -device_tracker: - - platform: tado - username: YOUR_USERNAME - password: YOUR_PASSWORD - home_id: YOUR_HOME_ID -``` - -{% configuration %} -username: - description: The username for your Tado account. - required: true - type: string -password: - description: The password for your Tado account. - required: true - type: string -home_id: - description: The id of your home of which you want to track devices. If provided, the Tado device tracker will tack *all* devices known to Tado associated with this home. See below how to find it. - required: false - type: integer -{% endconfiguration %} - -After configuration, your device has to be at home at least once before showing up as *home* or *away*. -Polling Tado API for presence information will happen at most once every 30 seconds. - -See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. Beware that the Tado (v2) API does not provide GPS location of devices, only a bearing, therefore Home Assistant only uses `home`/`not-home` status. - -### {% linkable_title Finding your `home_id` %} -Find your `home_id` by browsing to `https://my.tado.com/api/v2/me?username=YOUR_USERNAME&password=YOUR_PASSWORD`. There you'll see something like the following: - -```json -{ - "name": "Mark", - "email": "your@email.tld", - "username": "your@email.tld", - "homes": [ - { - "id": 12345, - "name": "Home Sweet Home" - } - ], - "locale": "en_US", - "mobileDevices": [] -} -``` - -In this example `12345` is the `home_id` you'll need to configure. diff --git a/source/_components/device_tracker.tesla.markdown b/source/_components/device_tracker.tesla.markdown deleted file mode 100644 index e9cb8b34c04a..000000000000 --- a/source/_components/device_tracker.tesla.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Tesla Device Tracker" -description: "Instructions on for how to integrate Tesla into Home Assistant." -date: 2017-08-02 12:20 -sidebar: true -comments: false -sharing: true -footer: true -logo: tesla.png -ha_category: Car -ha_release: 0.53 ---- - -The `tesla` platform allows you to get data about the location of your [Tesla](https://www.tesla.com/) car within Home Assistant. - -The device tracker platform will be automatically configured if Tesla component is configured. - -For more configuration information see the [Tesla component](/components/tesla/) documentation. diff --git a/source/_components/device_tracker.tomato.markdown b/source/_components/device_tracker.tomato.markdown index bb394f8c56b5..2fd6c26ad597 100644 --- a/source/_components/device_tracker.tomato.markdown +++ b/source/_components/device_tracker.tomato.markdown @@ -49,7 +49,7 @@ ssl: type: boolean default: false verify_ssl: - description: "If SSL verification for https resources needs to be turned off (for self-signed certs, etc.) this can take on boolean values `False` or `True` or you can pass a location on the device where a certificate can be used for verification e.g., `/mnt/NAS/router_cert.pem`." + description: "If SSL verification for https resources needs to be turned off (for self-signed certs, etc.) this can take on boolean values `false` or `true` or you can pass a location on the device where a certificate can be used for verification e.g., `/mnt/NAS/router_cert.pem`." required: false type: [string, boolean] default: true diff --git a/source/_components/device_tracker.traccar.markdown b/source/_components/device_tracker.traccar.markdown index 688d02d036e5..17da63ecc645 100644 --- a/source/_components/device_tracker.traccar.markdown +++ b/source/_components/device_tracker.traccar.markdown @@ -60,4 +60,17 @@ verify_ssl: required: false type: boolean default: true -{% endconfiguration %} \ No newline at end of file +monitored_conditions: + description: Additional traccar computed attributes or device-related attributes to include in the scan. + required: false + type: list +{% endconfiguration %} + +The parameter `monitored_conditions` allows you to track non standard attributes from the traccar platform and use them in your Home Assistant. For example if you need to monitor the state of the non standard attribute `alarm` and a custom computed attribute `mycomputedattribute` just fill the configuration with: + +```yaml +device_tracker: + - platform: traccar + ... + monitored_conditions: ['alarm', 'mycomputedattribute'] +``` diff --git a/source/_components/device_tracker.ubee.markdown b/source/_components/device_tracker.ubee.markdown new file mode 100644 index 000000000000..fd6e74526fb2 --- /dev/null +++ b/source/_components/device_tracker.ubee.markdown @@ -0,0 +1,44 @@ +--- +layout: page +title: "Ubee Router" +description: "Instructions on how to integrate Ubee routers into Home Assistant." +date: 2018-12-26 18:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: ubee.png +ha_category: Presence Detection +ha_release: 0.89 +--- + +This platform offers presence detection by looking at connected devices to a [Ubee Router](http://www.ubeeinteractive.com/products). + +To use a Ubee router in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +device_tracker: + - platform: ubee + host: ROUTER_IP_ADDRESS + username: YOUR_ADMIN_USERNAME + password: YOUR_ADMIN_PASSWORD +``` + +{% configuration %} +host: + description: The IP address of your router, e.g., `192.168.1.1`. + required: true + type: string +username: + description: The username of a user with administrative privileges, usually `admin`. + required: true + type: string +password: + description: The password for your given admin account. + required: true + type: string +{% endconfiguration %} + +By default, Home Assistant pulls information about connected devices from Ubee router every 5 seconds. +See the [device tracker component page](/components/device_tracker/) for instructions on how to configure the people to be tracked. diff --git a/source/_components/device_tracker.ubus.markdown b/source/_components/device_tracker.ubus.markdown index 2e9217696171..23fa853e6d84 100644 --- a/source/_components/device_tracker.ubus.markdown +++ b/source/_components/device_tracker.ubus.markdown @@ -83,7 +83,7 @@ password: required: true type: string dhcp_software: - description: "The DHCP software used in your router: `dnsmasq`, `dhcpd`, or `none`." + description: "The DHCP software used in your router: `dnsmasq`, `odhcpd`, or `none`." required: false default: dnsmasq type: string diff --git a/source/_components/device_tracker.unifi.markdown b/source/_components/device_tracker.unifi.markdown deleted file mode 100644 index 60d6448dd5be..000000000000 --- a/source/_components/device_tracker.unifi.markdown +++ /dev/null @@ -1,164 +0,0 @@ ---- -layout: page -title: "Ubiquiti Unifi WAP" -description: "Instructions on how to use a Unifi WAP controller as a device tracker module." -date: 2016-02-19 20:59 -sidebar: true -comments: false -sharing: true -footer: true -logo: ubiquiti.png -ha_category: Presence Detection -ha_iot_class: "Local Polling" -ha_release: 0.14 ---- - -This platform allows you to detect presence by looking at devices connected to a [Ubiquiti](http://ubnt.com/) [Unifi](https://www.ubnt.com/enterprise/#unifi) controller. - -To use this device tracker in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -device_tracker: - - platform: unifi - host: unifi - username: username - password: password - ssid_filter: - - 'HomeSSID' - - 'IoTSSID' -``` - -{% configuration %} -username: - description: A user on the controller - type: string - required: true -password: - description: The password for the account - type: string - required: true -host: - description: The hostname or IP address of your controller - default: localhost - type: string - required: false -port: - description: The port of your controller's web interface - default: 8443 - type: integer - required: false -site_id: - description: For multisite installations, you can specify `site_id` to specify which is used - type: string - required: false - default: default -verify_ssl: - description: Whether to do strict validation on SSL certificates of the Unifi controller. This can be true/false or the path to a locally trusted certificate to use for verification (i.e. "/path/to/custom_cert.pm") - type: boolean or filename - required: false - default: true -detection_time: - description: How long since the last seen time before the device is marked away, specified in seconds. - type: integer - required: false - default: 300 -ssid_filter: - description: Filter the SSIDs that tracking will occur on. - type: list of strings - required: false - default: None -monitored_conditions: - description: A list of extra attributes to pull from the Unifi controller. - type: list - required: false - default: None - -{% endconfiguration %} - -See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. - -### {% linkable_title Configuring Users %} - -The Unifi controller allows you to create multiple users on it besides the main administrator. It is recommended that you create a limited user that has `read-only` permissions for the Unifi device tracker. - -### {% linkable_title Conflicts with MQTT %} - -The Unifi controller can either be a dedicated hardware device (Unifi's cloud key), or as software any Linux system. If you run the Unifi controller on the same operating system as Home Assistant there may be conflicts in ports if you have the MQTT component as well. - -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. - -If Home Assistant and the Unifi controller are running on separate machines or VMs ensure that all clocks are synchronized. Failing to have synchronized clocks will lead to Home Assistant failing to mark a device as home. - -[Related Issue](https://github.com/home-assistant/home-assistant/issues/10507) - -### {% linkable_title Monitored Conditions %} - -The Unifi controller returns a number of additional attributes that can be used for tracking devices, including signal strength, rx/tx rates, and which AP it is connected to. The list of possible options may vary depending on your Unifi controller version and if a device is wired or wireless. - -Unifi Controller version 5.6.29 has the following options: - - _id - - _is_guest_by_uap - - _last_seen_by_uap - - _uptime_by_uap - - ap_mac - - assoc_time - - authorized - - bssid - - bytes-r - - ccq - - channel - - essid - - first_seen - - hostname - - idletime - - ip - - is_11r - - is_guest - - is_wired - - last_seen - - latest_assoc_time - - mac - - name - - noise - - noted - - oui - - powersave_enabled - - qos_policy_applied - - radio - - radio_proto - - rssi - - rx_bytes - - rx_bytes-r - - rx_packets - - rx_rate - - signal - - site_id - - tx_bytes - - tx_bytes-r - - tx_packets - - tx_power - - tx_rate - - uptime - - user_id - - usergroup_id - - vlan diff --git a/source/_components/device_tracker.upc_connect.markdown b/source/_components/device_tracker.upc_connect.markdown index c196d366c520..27f5b941abc2 100644 --- a/source/_components/device_tracker.upc_connect.markdown +++ b/source/_components/device_tracker.upc_connect.markdown @@ -13,7 +13,7 @@ ha_release: 0.36 --- -The `upc_connect` platform offers presence detection by looking at connected devices to a [Connect Box](https://www.upc.ch/de/internet/connectbox/) from [Liberty Global](http://www.libertyglobal.com/) (also known as UPC Cablecom in Switzerland) which is a Internet provider in Switzerland and Austria. +The `upc_connect` platform offers presence detection by looking at connected devices to a [Connect Box](https://www.upc.ch/en/internet/learn-about-internet/) from [Liberty Global](https://www.libertyglobal.com) (also known as UPC Cablecom in Switzerland) which is an Internet provider in Switzerland, Austria and the Netherlands (under Ziggo). To use a Connect Box in your installation, add the following to your `configuration.yaml` file: @@ -35,5 +35,6 @@ See the [device tracker component page](/components/device_tracker/) for instruc Also known to be working with the following devices: - Irish Virgin Media Super Hub 3.0 - - Ziggo Connectbox NL - Unitymedia Connect Box (DE) + - Ziggo Connectbox (NL) + diff --git a/source/_components/dialogflow.markdown b/source/_components/dialogflow.markdown index e7f00e1a74f7..e81b69d76020 100644 --- a/source/_components/dialogflow.markdown +++ b/source/_components/dialogflow.markdown @@ -16,7 +16,7 @@ redirect_from: /components/apiai/ The `dialogflow` component is designed to be used with the [webhook](https://dialogflow.com/docs/fulfillment#webhook) integration of [Dialogflow](https://dialogflow.com/). When a conversation ends with a user, Dialogflow sends an action and parameters to the webhook. -To be able to receive messages from DialogFlow, your Home Assistant instance needs to be accessible from the web ([Hass.io instructions](/addons/duckdns/)) and you need to have the `base_url` configured for the HTTP component ([docs](https://www.home-assistant.io/components/http/#base_url)). Dialogflow will return fallback answers if your server does not answer or takes too long (more than 5 seconds). +To be able to receive messages from DialogFlow, your Home Assistant instance needs to be accessible from the web ([Hass.io instructions](/addons/duckdns/)) and you need to have the `base_url` configured for the HTTP component ([docs](/components/http/#base_url)). Dialogflow will return fallback answers if your server does not answer or takes too long (more than 5 seconds). Dialogflow could be [integrated](https://dialogflow.com/docs/integrations/) with many popular messaging, virtual assistant and IoT platforms. @@ -49,7 +49,7 @@ To get the webhook URL, go to the integrations page in the configuration screen - Click "Save" - Create a new intent - Below "User says" write one phrase that you, the user, will tell Dialogflow, e.g., `What is the temperature at home?` -- In "Action" set some key (this will be the bind with Home Assistant configuration), eg.: GetTemperature +- In "Action" set some key (this will be the bind with Home Assistant configuration), e.g.,: GetTemperature - In "Response" set "Cannot connect to Home Assistant or it is taking to long" (fall back response) - At the end of the page, click on "Fulfillment" and check "Use webhook" - Click "Save" @@ -114,4 +114,3 @@ intent_script: entity_id: "switch.light_{{ Room | replace(' ', '_') }}" ``` {% endraw %} - diff --git a/source/_components/digital_ocean.markdown b/source/_components/digital_ocean.markdown index c0dc3175c292..8826e9296048 100644 --- a/source/_components/digital_ocean.markdown +++ b/source/_components/digital_ocean.markdown @@ -7,15 +7,25 @@ sidebar: true comments: false sharing: true footer: true -ha_category: System Monitor +ha_category: + - System Monitor + - Binary Sensor + - Switch ha_release: "0.30" logo: digital_ocean.png ha_iot_class: "Local Polling" +redirect_from: + - /components/binary_sensor.digital_ocean/ + - /components/switch.digital_ocean/ --- - The `digital_ocean` component allows you to access the information about your [Digital Ocean](https://www.digitalocean.com/) droplets from Home Assistant. +There is currently support for the following device types within Home Assistant: + +- [Binary Sensor](/components/digital_ocean/#binary-sensor) +- [Switch](/components/digital_ocean/#switch) + ## {% linkable_title Setup %} Obtain your API key from your [Digital Ocean dashboard](https://cloud.digitalocean.com/settings/api/tokens). @@ -37,3 +47,50 @@ access_token: type: string {% endconfiguration %} +## {% linkable_title Binary Sensor %} + +The `digital_ocean` binary sensor platform allows you to monitor your Digital Ocean droplets. + +### {% 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: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: digital_ocean + droplets: + - 'fedora-512mb-nyc3-01' + - 'coreos-512mb-nyc3-01' +``` + +{% configuration %} +droplets: + description: List of droplets you want to monitor. + required: true + type: list +{% endconfiguration %} + +## {% linkable_title Switch %} + +The `digital_ocean` switch platform allows you to control (start/stop) your Digital Ocean droplets. + +### {% 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: + +```yaml +# Example configuration.yaml entry +switch: + - platform: digital_ocean + droplets: + - 'fedora-512mb-nyc3-01' + - 'coreos-512mb-nyc3-01' +``` + +{% configuration %} +droplets: + description: List of droplets you want to control. + required: true + type: list +{% endconfiguration %} diff --git a/source/_components/discovery.markdown b/source/_components/discovery.markdown index ab7905080174..4f9900020b40 100644 --- a/source/_components/discovery.markdown +++ b/source/_components/discovery.markdown @@ -82,9 +82,11 @@ Valid values for ignore are: * `frontier_silicon`: Frontier Silicon internet radios * `google_cast`: Google Cast * `harmony`: Logitech Harmony Hub + * `igd`: Internet Gateway Device * `ikea_tradfri`: IKEA Trådfri (Tradfri) * `logitech_mediaserver`: Logitech media server (Squeezebox) * `netgear_router`: Netgear routers + * `octoprint`: Octoprint * `openhome`: Linn / Openhome * `panasonic_viera`: Panasonic Viera * `philips_hue`: Philips Hue diff --git a/source/_components/doorbird.markdown b/source/_components/doorbird.markdown index db6cbd8444bb..422847221115 100644 --- a/source/_components/doorbird.markdown +++ b/source/_components/doorbird.markdown @@ -8,13 +8,24 @@ comments: false sharing: true footer: true logo: doorbird.png -ha_category: Doorbell +ha_category: + - Doorbell + - Camera + - Switch ha_release: "0.54" ha_iot_class: "Local Push" +redirect_from: + - /components/camera.doorbird/ + - /components/switch.doorbird/ --- The `doorbird` implementation allows you to integrate your [DoorBird](http://www.doorbird.com/) device in Home Assistant. +There is currently support for the following device types within Home Assistant: + +- [Camera](#camera) - View live and historical event based images. +- [Switch](#switch) - Enable control of relays and camera night vision. + ## {% linkable_title Setup %} The user, which you are going to use with Home Assistant, needs the "API-Operator" permission enabled. @@ -35,11 +46,11 @@ doorbird: {% configuration %} token: - description: Token to be used to authenticate Doorbird calls to Home Assistant. + description: Token to be used to authenticate Doorbird calls to Home Assistant. This can be obtained from your "Digital Passport" document provided with your Doorbird. required: true type: string devices: - description: List of doorbird devices. + description: List of Doorbird devices. required: true type: list keys: @@ -48,7 +59,7 @@ devices: required: true type: string username: - description: The username of a non-administrator user account on the device. This user needs the "API-Operator" permission enabled on doorbird. + description: The username of a non-administrator user account on the device. This user needs the "API-Operator" permission enabled on Doorbird. It is recommended to set up a new account on your Doorbird for use with Home Assistant. This can be added via the Doorbird App by choosing Administration -> (User) Add. When the new account is created, you will need to enable the permission "API-Operator" in the "permissions" option. required: true type: string password: @@ -69,20 +80,16 @@ devices: type: string keys: doorbell: - description: Monitor doorbell events + description: Monitor doorbell events. motion: description: Monitor motion events (Motion monitoring must be enabled on the doorstation via DoorBird app). -{% endconfiguration %} - -The configuration above is also used by the following platforms: - -- [Camera](/components/camera.doorbird): View live and historical event based images. -- [Switch](/components/switch.doorbird): Enable control of relays and camera night vision. + relay: + description: Monitor relay events. This event is fired even if a relay is not physically connected to the door station. Can be used to lock/unlock any smart lock present in Home Assistant via the Doorbird app. +{% endconfiguration %} ## {% linkable_title Full example %} - ```yaml doorbird: token: YOUR_DOORBIRD_TOKEN @@ -99,11 +106,12 @@ doorbird: monitored_conditions: - doorbell - motion + - relay ``` -## {% linkable_title Motion and Doorbell Events %} +## {% linkable_title Events %} -Home Assistant will fire an event any time a `monitored_condition` happens on a doorstation. Event names are created using the format `doorbird_{station}_{event}` (Examples: `doorbird_side_entry_button`, `doorbird_side_entry_motion`). You can verify the assigned event names in the Home Assistant log file. +Home Assistant will fire an event any time a `monitored_condition` happens on a doorstation. Event names are created using the format `doorbird_{station}_{event}` (Examples: `doorbird_side_entry_button`, `doorbird_side_entry_motion`). You can verify the assigned event names in the Available Events list on the Events developer view.

Home Assistant will register the monitored conditions with the device as schedule entries that correspond to favorites on startup. If you remove monitored conditions from your configuration, Home Assistant will attempt to remove these items from the device. However, in some cases, such as if the IP address of the machine running Home Assistant changes or if the device is renamed in your configuration, this will not work correctly and some data will be left in device storage. @@ -114,7 +122,16 @@ Please note that clearing device registrations will prevent the device from send

#### {% linkable_title Event Data %} -Each event includes live image and live video URLs for the Doorbird device that triggered the event. These URLs can be found on the event data and can be useful in automation actions. For example, you could use `html5_viewer_url` on a notification to be linked directly to the live view of the device that triggered the automation. + +Each event includes live image and video URLs for the Doorbird device that triggered the event. These URLs can be found on the event data and can be useful in automation actions. For example, you could use `html5_viewer_url` on a notification to be linked directly to the live view of the device that triggered the automation. + +The following keys are available on `event_data`: + +- `timestamp` +- `live_video_url` +- `live_image_url` +- `rtsp_live_video_url` +- `html5_viewer_url`

The URLs on the event will be based on the configuration used to connect to your Doorbird device. Ability to connect from outside your network will depend on your configuration. @@ -131,3 +148,29 @@ The URLs on the event will be based on the configuration used to connect to your service: light.turn_on entity_id: light.side_entry_porch ``` + +## {% linkable_title Camera %} + +The `doorbird` implementation allows you to view the live video, the last doorbell ring image, and the last motion sensor image from your [DoorBird](http://www.doorbird.com/) device in Home Assistant. + +### {% linkable_title Configuration %} + +To enable the camera, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +camera: + - platform: doorbird +``` + +## {% linkable_title Switch %} + +The `doorbird` switch platform allows you to power connected relays and trigger the IR array in your [DoorBird](http://www.doorbird.com/) video doorbell device. + +To enable this switch, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: doorbird +``` \ No newline at end of file diff --git a/source/_components/dovado.markdown b/source/_components/dovado.markdown new file mode 100644 index 000000000000..d0f9705bd6bf --- /dev/null +++ b/source/_components/dovado.markdown @@ -0,0 +1,119 @@ +--- +layout: page +title: "Dovado" +description: "How to integrate Dovado within Home Assistant." +date: 2019-01-26 15:45 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: + - System Monitor + - Notifications + - Sensor +logo: dovado.png +ha_release: 0.87 +ha_iot_class: "Local Polling" +redirect_from: + - /components/notify.dovado/ + - /components/sensor.dovado/ +--- + +The `dovado` component manages communication with the [Dovado](http://www.dovado.com/) router. + +There is currently support for the following device types within Home Assistant: + +- [Notifications](/components/dovado/#notifications) +- [Sensor](/components/dovado/#sensor) + +To add a Dovado component to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +dovado: + username: YOUR_USERNAME + password: YOUR_PASSWORD +``` + +{% configuration %} +username: + description: Your Dovado username. + required: true + type: string +password: + description: Your Dovado password. + required: true + type: string +host: + description: The IP address of your router. + required: false + type: string + default: Home Assistant's default gateway +port: + description: The port number of your router. + required: false + type: integer + default: 6435 +{% endconfiguration %} + +## {% linkable_title Notifications %} + +The `dovado` notify platform allows you to send SMS from your [Dovado](http://www.dovado.com/) router, if it supports it. + +To add the Dovado notify platform to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +notify: + - platform: dovado +``` + +### {% linkable_title Usage %} + +This is a notify platform and thus can be controlled by calling the notify service [as described here](/components/notify/). It will send an SMS notification to a single phone number in the notification **target**. + +```yaml +# Example automation notification entry +automation: + - alias: The sun has set + trigger: + platform: sun + event: sunset + action: + service: notify.dovado + data: + message: 'The sun has set' + target: '+14151234567' +``` + +## {% linkable_title Sensor %} + +The `dovado` sensor platform let you monitor your [Dovado](http://www.dovado.com/) router. + +To add a Dovado sensor to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: dovado + sensors: + - network +``` + +{% configuration %} +sensors: + description: Conditions to display in the frontend. Only accepts the values listed here. + required: true + type: list + keys: + network: + description: Creates a sensor for Network State (3G, 4G, etc.). + signal: + description: Creates a sensor for the signal strength. + download: + description: Creates a sensor for download speed. + upload: + description: Creates a sensor for download speed. + sms: + description: Creates a sensor for number of unread text messages. +{% endconfiguration %} \ No newline at end of file diff --git a/source/_components/dyson.markdown b/source/_components/dyson.markdown index 6bccfa636a2a..94f8e9168013 100644 --- a/source/_components/dyson.markdown +++ b/source/_components/dyson.markdown @@ -8,12 +8,29 @@ comments: false sharing: true footer: true logo: dyson.png -ha_category: Hub +ha_category: + - Hub + - Climate + - Fan + - Sensor + - Vacuum ha_iot_class: "Cloud Polling" ha_release: 0.47 +redirect_from: + - /components/vacuum.dyson/ + - /components/climate.dyson/ + - /components/fan.dyson/ + - /components/sensor.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/). +The `dyson` component is the main component to integrate all [Dyson](https://dyson.com) related platforms. + +There is currently support for the following device types within Home Assistant: + +- Climate +- Fan +- Sensor +- Vacuum ## {% linkable_title Configuration %} @@ -26,7 +43,7 @@ dyson: password: YOUR_DYSON_PASSWORD language: YOUR_DYSON_ACCOUNT_LANGUAGE devices: - - device_id: DEVICE_ID_1 # eg. Serial number: XXX-XX-XXXXXXXX + - device_id: DEVICE_ID_1 # e.g., Serial number: XXX-XX-XXXXXXXX device_ip: DEVICE_IP_1 - device_id: DEVICE_ID_2 device_ip: DEVICE_IP_2 @@ -82,3 +99,61 @@ For example: ```bash $ nmap -p 1883 192.168.0.0/24 -- open ``` + +## {% linkable_title Vacuum %} + +The `dyson` vacuum platform allows you to control your Dyson 360 Eye robot vacuum. + +### {% linkable_title Component services %} + +This component support the following services (see [Vacuum Cleaner Robots](/components/vacuum/)): + +- [`turn_on`](/components/vacuum/#service-vacuumturn_on) +- [`turn_off`](/components/vacuum/#service-vacuumturn_off) +- [`start_pause`](/components/vacuum/#service-vacuumstart_pause) +- [`stop`](/components/vacuum/#service-vacuumstop) +- [`return_to_home`](/components/vacuum/#service-vacuumreturn_to_home) +- [`set_fan_speed`](/components/vacuum/#service-vacuumset_fanspeed). Fan speed values: + - `Quiet` + - `Max` + +## {% linkable_title Climate %} + +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 part on this page. + +### {% 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) + +## {% linkable_title Fan %} + +The `dyson` fan platform allows you to control your Dyson Purifier fans. + +### {% linkable_title Supported fan devices %} + +- Pure Cool link (desk and tower) +- Pure Hot+cool link (see climate part) for thermal control + +### {% linkable_title Attributes %} + +There are several attributes which can be used for automations and templates. + +| Attribute | Description | +| --------- | ----------- | +| `is_night_mode` | A boolean that indicates if the night mode of the fan device is on. +| `is_auto_mode` | A boolean that indicates if the auto mode of the fan device is on. + +## {% linkable_title Sensor %} + +The `dyson` sensor platform allows you to control your Dyson Purifier's filter life time. + +### {% linkable_title Supported fan devices %} + +- Pure Cool link (desk and tower) +- Pure Hot+cool link (see climate part) for thermal control \ No newline at end of file diff --git a/source/_components/ebusd.markdown b/source/_components/ebusd.markdown new file mode 100644 index 000000000000..4ed01d16e2e0 --- /dev/null +++ b/source/_components/ebusd.markdown @@ -0,0 +1,120 @@ +--- +layout: page +title: "ebusd" +description: "The ebusd component allows the integration between eBUS heating system and Home Assistant." +date: 2018-12-27 15:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Sensor +ha_iot_class: "Local Polling" +ha_release: "0.88" +redirect_from: + - /components/sensor.ebusd/ +--- + +Integration between [ebusd](https://github.com/john30/ebusd/) daemon for communication with eBUS heating systems, and Home Assistant using sensor component. + +## {% linkable_title Configuration %} + +Enable the sensor by adding the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +ebusd: + host: 127.0.0.1 + circuit: '700' +``` + +{% configuration %} +host: + description: This is the IP address of your ebus daemon, e.g., `127.0.0.1`. + required: true + type: string +circuit: + description: The heating circuit name to monitor, e.g., 700. + required: true + type: string +port: + description: The port your ebus daemon uses. + type: integer + required: false + default: 8888 +name: + description: The name to use when displaying this ebusd instance. + type: string + required: false + default: ebusd +monitored_conditions: + description: List of condition to monitor. + type: list + required: false + keys: + ActualFlowTemperatureDesired: + description: Heating circuit flow temperature desired. + MaxFlowTemperatureDesired: + description: Heating circuit maximum flow temperature. + MinFlowTemperatureDesired: + description: Heating circuit minimum flow temperature. + PumpStatus: + description: Heating circuit pump status. + HCSummerTemperatureLimit: + description: Heating circuit summer temperature limit. + HolidayTemperature: + description: Heating circuit holiday temperature. + HWTemperature: + description: Hot water circuit actual temperature. + HWTemperatureDesired: + description: Hot water circuit desired temperature. + HWTimerMonday: + description: Hot water circuit monday timer. + HWTimerTuesday: + description: Hot water circuit tuesday timer. + HWTimerWednesday: + description: Hot water circuit wednesday timer. + HWTimerThursday: + description: Hot water circuit thursday timer. + HWTimerFriday: + description: Hot water circuit friday timer. + HWTimerSaturday: + description: Hot water circuit saturday timer. + HWTimerSunday: + description: Hot water circuit sunday timer. + WaterPressure: + description: Water pressure (bar). + Zone1RoomZoneMapping: + description: Room controller assignment zone 1. + Zone1NightTemperature: + description: Heating circuit night temperature desired on zone 1. + Zone1DayTemperature: + description: Heating circuit day temperature desired on zone 1. + Zone1HolidayTemperature: + description: Heating circuit holiday temperature desired on zone 1. + Zone1RoomTemperature: + description: Actual room temperature on zone 1. + Zone1ActualRoomTemperatureDesired: + description: Actual room temperature desired on zone 1. + Zone1TimerMonday: + description: Heating circuit monday timer on zone 1. + Zone1TimerTuesday: + description: Heating circuit tuesday timer on zone 1. + Zone1TimerWednesday: + description: Heating circuit wednesday timer on zone 1. + Zone1TimerThursday: + description: Heating circuit thursday timer on zone 1. + Zone1TimerFriday: + description: Heating circuit friday timer on zone 1. + Zone1TimerSaturday: + description: Heating circuit saturday timer on zone 1. + Zone1TimerSunday: + description: Heating circuit sunday timer on zone 1. + Zone1OperativeMode: + description: Heating circuit operative mode (on/off/day/night). + ContinuosHeating: + description: Continuos heating. + PowerEnergyConsumptionLastMonth: + description: Power energy consumption from last month. + PowerEnergyConsumptionThisMonth: + description: Power energy consumption from the actual month. +{% endconfiguration %} diff --git a/source/_components/ecoal_boiler.markdown b/source/_components/ecoal_boiler.markdown new file mode 100644 index 000000000000..4eeb3a5f4b6b --- /dev/null +++ b/source/_components/ecoal_boiler.markdown @@ -0,0 +1,78 @@ +--- +layout: page +title: "eCoal water boiler controller" +description: "Instructions on how to integrate eSterownik.pl eCoal.pl controller into Home Assistant." +date: 2018-11-29 10:00 +sidebar: true +comments: false +sharing: true +footer: true +# logo: raspberry-pi.png +ha_category: Water heater +ha_release: 0.87 +ha_iot_class: "Local Polling" +redirect_from: + - /components/sensor.ecoal_boiler/ + - /components/switch.ecoal_boiler/ +--- + +The `ecoal_boiler` component is the base for pumps and sensors managed by [esterownik.pl eCoal boiler controller](https://esterownik.pl/nasze-produkty/ecoal). + +## {% linkable_title Configuration %} + +To use your eCoal pumps or sensors in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +ecoal_boiler: + host: YOUR_IP_ADDRESS + username: YOUR_USERNAME + password: YOUR_PASSWORD + switches: + monitored_conditions: + - central_heating_pump + - central_heating_pump2 + sensors: + monitored_conditions: + - outdoor_temp + - indoor_temp +``` + +{% configuration %} +host: + description: The IP address or the hostname of eCoal controller. + required: true + type: string +username: + description: Login used to connect to controller. + required: false + default: admin + type: string +password: + description: Password for username. + required: false + default: admin + type: string +switches: + description: switch-related configuration options + required: false + type: map + keys: + monitored_conditions: + description: controller available source of switches + required: false + type: list + default: all (`central_heating_pump`, `central_heating_pump2`, `domestic_hot_water_pump`) +sensors: + description: sensor-related configuration options + required: false + type: map + keys: + monitored_conditions: + description: controller available source of sensors + required: false + type: list + default: all (`outdoor_temp`, `indoor_temp`, `indoor2_temp`, `domestic_hot_water_temp`, `target_domestic_hot_water_temp`, + `feedwater_in_temp`, `feedwater_out_temp`, `target_feedwater_temp`, + `fuel_feeder_temp`, `exhaust_temp`) +{% endconfiguration %} diff --git a/source/_components/ecobee.markdown b/source/_components/ecobee.markdown index 9edb73562136..7be04ae82467 100644 --- a/source/_components/ecobee.markdown +++ b/source/_components/ecobee.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "ecobee" +title: "Ecobee" description: "Instructions for how to integrate Ecobee thermostats and sensors within Home Assistant." date: 2015-11-30 17:54 sidebar: true @@ -8,14 +8,27 @@ comments: false sharing: true footer: true logo: ecobee.png -ha_category: Hub +ha_category: + - Sensor + - Binary Sensor + - Notifications + - Climate + - Weather featured: true ha_release: 0.9 ha_iot_class: "Cloud Push" +redirect_from: + - /components/sensor.ecobee/ + - /components/binary_sensor.ecobee/ + - /components/notify.ecobee/ + - /components/climate.ecobee/ + - /components/weather.ecobee/ --- The `ecobee` component lets you control a thermostats and view sensor data from [ecobee](https://ecobee.com) thermostats. +## {% linkable_title Configuration %} + You will need to obtain an API key from ecobee's [developer site](https://www.ecobee.com/developers/) to use this component. To get the key, first you need to register your thermostat which should be done as part of the ecobee installation. Once you have done that perform the following steps. 1. Click on the **Become a developer** link on the [developer site](https://www.ecobee.com/developers/). @@ -24,7 +37,7 @@ You will need to obtain an API key from ecobee's [developer site](https://www.ec 4. Fill in the fields. 5. Click **save**. -Now login to the regular consumer portal, and in the hamburger menu there will be a new option **Developer**. Now we can create the Application to hook up to Home Assistant. +Now login to the regular consumer portal, and in the hamburger menu there will be a new option **Developer**. Now we can create the Application to hook up to Home Assistant. 1. Select the Developer option. 2. Select **Create New**. @@ -33,11 +46,11 @@ Now login to the regular consumer portal, and in the hamburger menu there will b 5. You don't need an Application Icon or Detailed Description. 6. Click **Create**. -Now under the Name and Summary Section you will have an API key. Copy this key and use it in you configuration section below. Click the **X** to close the Developer section. +Now under the Name and Summary Section you will have an API key. Copy this key and use it in you configuration section below. Click the **X** to close the Developer section. -The first time you run Home Assistant with this component it will give you a PIN code that you need to authorize in the [ecobee consumer portal](https://www.ecobee.com/consumerportal/index.html). You can do this by clicking **Add Application** in the **My Apps** section in the sidebar. +The first time you run Home Assistant with this component it will give you a PIN code that you need to authorize in the [ecobee consumer portal](https://www.ecobee.com/consumerportal/index.html). You can do this by clicking **Add Application** in the **My Apps** section in the sidebar. -The PIN can be found from the Home Assistant portal on the Ecobee card or from the **configurator.ecobee** entity in states in the portal. +The PIN can be found from the Home Assistant portal on the Ecobee card or from the **configurator.ecobee** entity in states in the portal. - If you do not have an ecobee card, you may be using groups with `default_view` that don't show the card. To get around this you can temporarily comment out the `default_view` section or add the `configurator.ecobee` component to your `default_view` and restart Home Assistant. @@ -48,7 +61,7 @@ To set it up, add the following information to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry ecobee: - api_key: YOUR_API_KEY + api_key: YOUR_API_KEY ``` {% configuration %} @@ -57,9 +70,9 @@ api_key: required: true type: string hold_temp: - description: True/False whether or not to hold changes indefinitely (True) or until the next scheduled event. + description: Whether or not to hold changes indefinitely (`true`) or until the next scheduled event. required: false - default: "`false`" + default: false type: boolean {% endconfiguration %} @@ -69,3 +82,296 @@ hold_temp:

If for whatever reason you delete and re-create your ecobee app at ecobee.com such that your developer API key changes, you will need to delete your `/conf/ecobee.conf file`. You will also need to update the `api_key:` in the `configuration.yaml` or `secrets.yaml` file. + +## {% linkable_title Notifications %} + +To get your Ecobee notifications working with Home Assistant, you must first have the main Ecobee component loaded and running. Once you have that configured, you can setup this component to send messages to your Ecobee device. + +To use this notification platform in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +notify: + - name: NOTIFIER_NAME + platform: ecobee +``` + +{% configuration %} +name: + description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`. + required: false + default: "`notify`" + type: string +{% endconfiguration %} + +To use notifications, please see the [getting started with automation page](/getting-started/automation/). + +## {% linkable_title Thermostat %} + +### {% linkable_title Concepts %} + +The Ecobee Thermostat supports the following key concepts. + +The _target temperature_ is the temperature that the device attempts +to achieve. The target temperature is either determined by the +currently active climate or it may be overridden by a hold. When the +thermostat is not in auto mode, there is a single target +temperature. When the thermostat is in auto operation mode, there is a +pair of target temperatures: the lower target temperature determines +the lowest desired temperature, while the higher target temperature +determines the highest desired temperature (the thermostat will switch +between heating and cooling to keep the temperature within these +limits). + +A _climate_ is a predefined or user-defined set of states that the +thermostat aims to achieve. The ecobee thermostat provides three predefined +climates: Home, Away, and Sleep. The user can define additional climates. + +A _hold_ is an override of the target temperature defined in the +currently active climate. The temperature targeted in the hold mode may be +explicitly set (temperature hold), it may be derived from a reference +climate (home, away, sleep, etc.), or it may be derived from a vacation +defined by the thermostat. All holds are temporary. Temperature and +climate holds expire when the thermostat transitions to the next climate +defined in its program. A vacation hold starts at the beginning of the +defined vacation period, and expires when the vacation period ends. + +When in _away mode_, the target temperature is permanently overridden by +the target temperature defined for the away climate. The away mode is a +simple way to emulate a vacation mode. + +The _operation mode_ of the device is the currently active operational +modes that the Ecobee thermostat provides: heat, auxHeatOnly, cool, +auto, and off. + +## {% linkable_title Attributes %} + +The following attributes are provided by the Ecobee Thermostat: +`name`, `temperature_unit`, `current_temperature`, `target_temperature`, +`target_temperature_low`, `target_temperature_high`, `desired_fan_mode`, +`fan`, `current_hold_mode`, `current_operation`, `operation_list`, +`operation_mode`, `mode`, `fan_min_on_time`, `device_state_attributes`, +`is_away_mode_on`, `vacation`, `climate_list`, `aux_heat`. +The attributes `min_temp` and `max_temp` are meaningless constant values. + +### {% linkable_title Attribute `name` %} + +Returns the name of the Ecobee Thermostat. + +| Attribute type | Description | +| ---------------| ----------- | +| String | Name of the Ecobee Thermostat + +### {% linkable_title Attribute `temperature_unit` %} + +Returns the unit of measurement used for temperature by the thermostat. + +| Attribute type | Description | +| ---------------| ----------- | +| String | Name of the temperature unit + +### {% linkable_title Attribute `current_temperature` %} + +Returns the current temperature measured by the thermostat. + +| Attribute type | Description | +| ---------------| ----------- | +| Integer | Currently measured temperature + +### {% linkable_title Attribute `target_temperature` %} + +Returns the target temperature of the thermostat, when the thermostat is +not in auto operation mode. + +| Attribute type | Description | +| ---------------| ----------- | +| Integer | Target temperature + +### {% linkable_title Attribute `target_temperature_low` %} + +Returns the desired heating temperature set in the thermostat when in +auto operation mode. + +| Attribute type | Description | +| ---------------| ----------- | +| Integer | Target temperature + +### {% linkable_title Attribute `target_temperature_high` %} + +Returns the desired cooling temperature set in the thermostat when in +auto operation mode. + +| Attribute type | Description | +| ---------------| ----------- | +| Integer | Target temperature + +### {% linkable_title Attribute `desired_fan_mode` %} + +Returns the desired fan mode of the current operation. + +| Attribute type | Description | +| ---------------| ----------- | +| String | 'on', 'off' + +### {% linkable_title Attribute `fan` %} + +Returns the current fan state. + +| Attribute type | Description | +| ---------------| ----------- | +| String | 'on', 'off' + +### {% linkable_title Attribute `current_hold_mode` %} + +Returns the current temperature hold, if any. + +| Attribute type | Description | +| ---------------| ----------- | +| String | 'temp', 'vacation', 'home', 'away', etc., None + +### {% linkable_title Attribute `current_operation` %} + +Returns the current operation of the thermostat. + +| Attribute type | Description | +| ---------------| ----------- | +| String | 'auto', 'cool', 'heat', 'off' + +### {% linkable_title Attribute `operation_list` %} + +Returns the list of available operation modes. + +| Attribute type | Description | +| ---------------| ----------- | +| List of String | Available operation modes + +### {% linkable_title Attribute `operation_mode` %} + +Returns the current operation mode of the thermostat. + +| Attribute type | Description | +| ---------------| ----------- | +| String | Currently active operation mode + +### {% linkable_title Attribute `mode` %} + +Returns the climate currently active on the thermostat. The mode +is returned as the user-visible name (rather than the internally used name). + +### {% linkable_title Attribute `fan_min_on_time` %} + +Returns the current fan minimum on time. + +| Attribute type | Description | +| ---------------| ----------- | +| Integer | Current fan minimum on time in minutes + +### {% linkable_title Attribute `is_away_mode_on` %} + +Returns whether the thermostat is in away mode (see the corresponding +service for more detail). + +### {% linkable_title Attribute `actual humidity` %} + +Returns the humidity as measured by the thermostat. + +| Attribute type | Description | +| ---------------| ----------- | +| Integer | Current humidity + +### {% linkable_title Attribute `vacation` %} + +Returns the currently active vacation or `None`. + +| Attribute type | Description | +| ---------------| ----------- | +| String | Name of currently active vacation | + +### {% linkable_title Attribute `climate_list` %} + +Returns the list of climates defined in the thermostat. + +### {% linkable_title Attribute `aux_heat` %} + +Returns the current auxiliary heat state. + +| Attribute type | Description | +| ---------------| ----------- | +| String | 'on', 'off' + +## {% linkable_title Services %} + +The following services are provided by the Ecobee Thermostat: +`set_away_mode`, `set_hold_mode`, `set_temperature`, `set_operation_mode`, +`fan_min_on_time`, `resume_program`. +The services `set_aux_heat`, `set_humidity`, `set_fan_mode`, and +`set_swing_mode` offered by the [Climate component](/components/climate/) +are not implemented for this thermostat. + +### {% linkable_title Service `set_away_mode` %} + +Turns the away mode on or off for the thermostat. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. +| `away_mode` | no | 'on' or 'off' + +### {% linkable_title Service `set_hold_mode` %} + +Puts the thermostat into the given hold mode. For 'home', 'away', 'sleep', +and any other hold based on a reference climate, the +target temperature is taken from the reference climate. +For 'temp', the current temperature is taken as the target temperature. +When None is provided as parameter, the hold_mode is turned off. +It is not possible to set a vacation hold; such hold has to be +defined on the thermostat directly. However, a vacation hold can be +canceled. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. +| `hold_mode` | no | `temp`, `home`, `away`, `sleep`, `None`, `smart1`, `smart2`, etc. + +NOTE: If you create custom hold modes (also known as "Comfort Settings") on your ecobee.com dashboard, their hold_modes are `smart1`, `smart2`, `smart3`, etc. The number for each custom mode should match the mode's icon on your ecobee.com dashboard. Also note that the mode numbers/icons in the ecobee mobile app *may not match* the numbers/icons from the ecobee.com web dashboard. The ones on the website are the ones you shoud use to determine the correct `smartX` hold_mode IDs. + +### {% linkable_title Service `set_temperature` %} + +Puts the thermostat into a temporary hold at the given temperature. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. +| `target_temp_low` | no | Desired heating target temperature (when in auto mode) +| `target_temp_high` | no | Desired cooling target temperature (when in auto mode) +| `temperature` | no | Desired target temperature (when not in auto mode) + +Only the target temperatures relevant for the current operation mode need to +be provided. + +### {% linkable_title Service `set_operation_mode` %} + +Sets the current operation mode of the thermostat. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. +| `operation_mode` | no | 'auto', 'auxHeatOnly', 'cool', 'heat', 'off' + +### {% linkable_title Service `fan_min_on_time` %} + +Sets the fan minimum on time. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. +| `fan_min_on_time` | no | Desired fan minimum on time + +### {% linkable_title Service `resume_program` %} + +Resumes the currently active schedule. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. +| `resume_all` | no | true or false diff --git a/source/_components/edp_redy.markdown b/source/_components/edp_redy.markdown index ed1bbdef7fed..a32006cc74e7 100644 --- a/source/_components/edp_redy.markdown +++ b/source/_components/edp_redy.markdown @@ -8,9 +8,15 @@ comments: false sharing: true footer: true logo: edp_redy.png -ha_category: Hub +ha_category: + - Hub + - Sensor + - Switch ha_release: "0.79" ha_iot_class: "Cloud Polling" +redirect_from: + - /components/sensor.edp_redy/ + - /components/switch.edp_redy/ --- [EDP re:dy](https://www.edp.pt/particulares/servicos/redy/) is a Home Automation platform from Portuguese energy provider EDP, that allows control of appliances and other devices, as well as monitoring power consumption. This component allows integrating EDP re:dy into Home Assistant. diff --git a/source/_components/egardia.markdown b/source/_components/egardia.markdown index b8f0b75396ad..6ddc126b24ab 100644 --- a/source/_components/egardia.markdown +++ b/source/_components/egardia.markdown @@ -7,9 +7,16 @@ sidebar: true comments: false sharing: true footer: true -ha_category: Hub -ha_release: 0.65 logo: egardia.png +ha_category: + - Hub + - Alarm + - Binary Sensor +ha_release: 0.65 +ha_iot_class: "Polling" +redirect_from: + - /components/alarm_control_panel.egardia/ + - /components/binary_sensor.egardia/ --- The `egardia` platform enables the ability to control an [Egardia](http://egardia.com/)/[Woonveilig](http://woonveilig.nl) control panel. These alarm panels are known under different brand names across the world, including Woonveilig in the Netherlands. This was tested on the WL-1716, GATE-01, GATE-02 and GATE-03 versions of the Egardia/Woonveilig platform. Not only will you integrate your alarm control panel, supported sensors (door contacts at this moment) will be added automatically (hidden by default). @@ -19,6 +26,7 @@ You will need to know the IP of your alarm panel on your local network. Test if ## {% linkable_title Basic configuration %} To enable the integration with your alarm panel, add the following lines to your `configuration.yaml` file: + ```yaml # Example configuration.yaml entry egardia: @@ -100,22 +108,25 @@ There seem to be multiple versions of software running on GATE-02 devices; we ha 2. Once logged in, go to *System Settings*, *Report* and change the Server Address for your primary server to the IP or hostname of your Home Assistant machine. You can leave the port number set to 52010 or change it to anything you like. **Make sure to change the settings of the primary server otherwise the messages will not come through. Note that this will limit (or fully stop) the number of alarm messages you will get through Egardia's / Woonveilig services.** Maybe, that is just what you want. Make sure to save your settings by selecting 'OK'. 3. The Egardia component relies on capturing the status codes that your alarm emits when something happens (status change or trigger). These codes will be unique for every situation - i.e. the code emitted by the alarm when a sensor is triggered is unique to that sensor. Also, if you have multiple users or remotes, each remote has unique codes that are emitted by the alarm when status is changed using that remote or by that user. For the Egardia component to work correctly you will need to capture the codes. To do this, on your Home Assistant machine run `$ sudo python3 egardiaserver.py`. Refer to the [python-egardia repository](https://github.com/jeroenterheerdt/python-egardia) for detailed documentation on parameters. This will receive status codes from your alarm control panel and display them. Record the codes shown as well as the status they relate to (see step 4 below). Make sure to change the status of your alarm to all states (disarm, arm, home) by all means possible (all users, remotes, web login, app) as well as trigger the alarm in all ways possible to get 100% coverage of all the codes the alarm system generates. You will need to run this script once and stop it once you have captured all the possible codes. Also, if you ever add users, remotes or sensors to your alarm system, make sure to re-run the script to capture the extra codes so you can update your configuration (see step 4 below). **For comfort, before triggering the alarm it might be good to disable the siren temporarily (can be done in Panel Settings).** 4. Once you have the codes, update your `configuration.yaml`: - ```yaml - # Example configuration.yaml entry - egardia: - host: YOUR_HOST - username: YOUR_USERNAME - password: YOUR_PASSWORD - report_server_enabled: True - report_server_port: PORT_OF_EGARDIASERVER (optional, defaults to 52010) - report_server_codes: - arm: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX - disarm: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX - armhome: XXXXXXXXXXXXXXXX - triggered: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX - ignore: XXXXXXXXXXXXXXXX - ``` - + ```yaml + # Example configuration.yaml entry + egardia: + host: YOUR_HOST + username: YOUR_USERNAME + password: YOUR_PASSWORD + report_server_enabled: true + report_server_port: PORT_OF_EGARDIASERVER (optional, defaults to 52010) + report_server_codes: + arm: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX + disarm: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX + armhome: XXXXXXXXXXXXXXXX + triggered: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX + ignore: XXXXXXXXXXXXXXXX + ``` Note that for all code groups (*arm*,*disarm*, etc) multiple codes can be entered since each sensor triggers with a different code and each user of the system has its own arm and disarm codes. Also note that your system will do regular system checks which will be reported as well. Since Home Assistant provides no way of handling them properly, you can enter those codes as *ignore* (again, multiple codes can be used here). The egardia component will ignore these codes and continue returning the old status if it receives any of the codes that are listed as ignore. This is useful for example when you have armed your alarm at night: normally a system check will occur at least once during the night and if that code is not specified anywhere Home Assistant will set the status of the alarm to its default, which is unarmed. This is in fact wrong. Listing the code as ignore changes this behavior and Home Assistant will continue to show the status the alarm is in (disarm, arm, home, triggered) even when system checks occur. - 5. Test your setup and enjoy. The component will update if the alarm status changes, including triggers. You can use this to build your own automations and send notifications as you wish. *Note*: previous versions required a separate egardiaserver to be set up. This is no longer necessary and corresponding system services can be removed (using systemctl). + +## {% linkable_title Binary Sensor %} + +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. \ No newline at end of file diff --git a/source/_components/eight_sleep.markdown b/source/_components/eight_sleep.markdown index 74df0d234ebd..1103bc328a63 100644 --- a/source/_components/eight_sleep.markdown +++ b/source/_components/eight_sleep.markdown @@ -8,13 +8,24 @@ comments: false sharing: true footer: true logo: eight_sleep.png -ha_category: Health +ha_category: + - Health + - Binary Sensor + - Sensor ha_release: "0.44" ha_iot_class: "Cloud Polling" +redirect_from: + - /components/binary_sensor.eight_sleep/ + - /components/sensor.eight_sleep/ --- The `eight_sleep` component allows Home Assistant to fetch data from your [Eight Sleep](https://eightsleep.com/) smart cover or mattress. +There is currently support for the following device types within Home Assistant: + +- Binary Sensor - lets observe the presence state of a [Eight Sleep](https://eightsleep.com/) cover/mattress through Home Assistant. +- Sensor - This includes bed state and results of the current and previous sleep sessions. + ## {% linkable_title Configuration %} It's setup utilizing 'Sensor' platform to convey the current state of your bed and results of your sleep sessions and a 'Binary Sensor' platform to indicate your presence in the bed. A service is also provided to set the heating level and duration of the bed. @@ -43,7 +54,7 @@ password: description: Defines if you'd like to fetch data for both sides of the bed. required: false type: string - default: False + default: false {% endconfiguration %} ### {% linkable_title Supported features %} @@ -82,4 +93,4 @@ script: entity_id: "sensor.eight_left_bed_state" target: 35 duration: 3600 -``` +``` diff --git a/source/_components/elkm1.markdown b/source/_components/elkm1.markdown index 7e6bdb540ed1..3593bce7fbca 100644 --- a/source/_components/elkm1.markdown +++ b/source/_components/elkm1.markdown @@ -9,14 +9,37 @@ sharing: true footer: true logo: elkproducts.png ha_release: 0.81 -ha_category: Hub +ha_category: + - Hub + - Alarm + - Climate + - Light + - Scene + - Sensor + - Switch ha_iot_class: "Local Push" +redirect_from: + - /components/alarm_control_panel.elkm1/ + - /components/climate.elkm1/ + - /components/light.elkm1/ + - /components/scene.elkm1/ + - /components/sensor.elkm1/ + - /components/switch.elkm1/ --- The Elk-M1 is a home security and automation controller that is capable of alarm control panel functions and automation. The Elk-M1 controller is manufactured by [Elk Products](https://www.elkproducts.com). +There is currently support for the following device types within Home Assistant: + +- **Alarm** - An Elk-M1 area (also known as partition) is represented as an `alarm_control_panel`. +- **Climate** - An Elk-M1 thermostat is represented as a `climate` entity. +- **Light** - An Elk-M1 light (which can be X10, Insteon, UPB) is represented as a `light`. +- **Scene** - Elk-M1 tasks are represented as `scene` entities. +- **Sensor** - Elk-M1 counters, keypads, panel, settings, and zones are represented as `sensor` entities. +- **Switch** - Elk-M1 outputs are represented as `switch` entities. + ## {% linkable_title Configuration %} To integrate Elk-M1 controller with Home Assistant, add the following @@ -30,7 +53,7 @@ elkm1: {% configuration %} host: - description: Connection string to Elk of the form `://
[:port]`. `` is `elk` for non-secure connection, `elks` for secure connection, and `serial` for serial port connection. `
` is IP address or domain or for `serial` the serial port that the Elk is connected to. Optional `` is the port to connect to on the Elk, defaulting to 2101 for `elk` and 2601 for `elks`. + description: Connection string to Elk of the form `://
[:port]`. `` is `elk` for non-secure connection, `elks` for secure connection, and `serial` for serial port connection. `
` is IP address or domain or for `serial` the serial port that the Elk is connected to. Optional `` is the port to connect to on the Elk, defaulting to 2101 for `elk` and 2601 for `elks`. For `serial` method, _address_ is the path to the tty _/dev/ttyS1_ for example and `[:baud]` is the baud rate to connect with. required: true type: string username: @@ -238,6 +261,7 @@ zone: {% endconfiguration %} Example configuration of the above: + ```yaml elkm1: host: elks://IP_ADDRESS @@ -251,3 +275,19 @@ elkm1: include: [a1-d16, 192] exclude: [b12-d5] ``` + +Example for a serial port instance on /dev/ttyS1 at 9600 baud: + +```yaml +elkm1: + host: serial://dev/ttyS1:9600 + username: USERNAME + password: PASSWORD + area: + exclude: [5-8] + zone: + exclude: [11-16, 19-192, 199-208] + plc: + include: [a1-d16, 192] + exclude: [b12-d5] +``` diff --git a/source/_components/emulated_roku.markdown b/source/_components/emulated_roku.markdown new file mode 100644 index 000000000000..78685959573b --- /dev/null +++ b/source/_components/emulated_roku.markdown @@ -0,0 +1,125 @@ +--- +layout: page +title: "Emulated Roku" +description: "Instructions on how to set up Emulated Roku within Home Assistant." +date: 2019-01-10 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: Hub +ha_release: 0.86.0 +ha_iot_class: "Local Push" +--- + +This component integrates an emulated Roku API into Home Assistant, +so remotes such as Harmony and Android apps can connect to it through WiFi as if it were a Roku player. +Home Assistant will see key presses and app launches as Events, which you can use as triggers for automations. +Multiple Roku servers may be started if you run out of buttons by specifying multiple server entries. + +

+Windows is not supported because Home Assistant uses `ProactorEventLoop` which does not support UDP sockets. +

+ +

+This component opens an unauthenticated API on the host, allowing anything on the local network to access +your Home Assistant instance through the automations you create with emulated Roku as the trigger. +Using a proxy with whitelisted IP addresses is recommended. (set `advertise_ip` to the proxy's ip or DNS name) +

+ +## {% linkable_title Configuration %} + +The component is configurable through the frontend. (**Configuration** -> **Integrations** -> **Emulated Roku**) + +If you wish to configure advanced options, you can add the following entry in `configuration.yaml`. + +```yaml +# Example configuration.yaml entry +emulated_roku: + servers: + - name: Home Assistant + listen_port: 8060 +``` + +{% configuration %} +name: + description: Name of the Roku that will be displayed as the serial number in Harmony. + required: true + type: string +listen_port: + description: The port the Roku API will run on. This can be any free port on your system. + required: true + type: integer +host_ip: + description: The IP address that your Home Assistant installation is running on. If you do not specify this option, the component will attempt to determine the IP address on its own. + required: false + type: string +advertise_ip: + description: If you need to override the IP address or DNS name used for UPnP discovery. (For example, using network isolation in Docker or using a proxy) + required: false + type: string +advertise_port: + description: If you need to override the advertised UPnP port. + required: false + type: integer +upnp_bind_multicast: + description: Whether or not to bind the UPnP (SSDP) listener to the multicast address (239.255.255.250) or instead to the (unicast) host_ip address specified above (or automatically determined). The default is true, which will work in most situations. In special circumstances, like running in a FreeBSD or FreeNAS jail, you may need to disable this. + required: false + type: boolean + default: true +{% endconfiguration %} + +After starting up, you can check if the emulated Roku is reachable at the specified ports on your Home Assistant instance (eg.: `http://192.168.1.101:8060/`). + +## {% linkable_title Events %} + +### {% linkable_title Event `roku_command` %} + +All Roku commands are sent as `roku_command` events. + +Field | Description +----- | ----------- +`source_name` | Name of the emulated Roku instance that sent the event. Only required when using multiple instances to filter event sources. +`type` | The type of the event that was called on the API. +`key` | the code of the pressed key when the command `type` is `keypress`, `keyup` or `keydown`. +`app_id` | the id of the app that was launched when command `type` is `launch`. + +The available keys are listed here: +[Roku key codes](https://sdkdocs.roku.com/display/sdkdoc/External+Control+API#ExternalControlAPI-KeypressKeyValues) + +## {% linkable_title Automations %} + +The following is an example implementation of an automation: +```yaml +# Example automation +- id: amp_volume_up + alias: Increase amplifier volume + trigger: + - platform: event + event_type: roku_command + event_data: + source_name: Home Assistant + type: keypress + key: Fwd + action: + - service: media_player.volume_up + entity_id: media_player.amplifier +``` + +## {% linkable_title Troubleshooting %} + +If you change your advertised IP or ports, you will have to re-add the emulated Roku in your app. +When using Harmony, the app should auto-discover any changes via UPnP discovery (if `name` is unchanged) once it detects that the device is unreachable. +Alternatively, you can trigger the 'Fix' page by pressing a button on the unreachable device's remote in the app and wait ~10 seconds, then click 'Fix it'. + +Known limitations: +* Some Android remotes send key up/down events instead of key presses. +* Functionality other than key presses and app launches are not implemented yet. +* App ids are limited between 1-10. (The emulated API reports 10 dummy apps) +* Harmony uses UPnP discovery (UPnP is not needed after pairing), which might not work in Docker. You can: + * Change Docker to host networking temporarily, then revert after pairing. + * Run the `advertise.py` helper script from the emulated_roku library directly somewhere else and point it to the emulated Roku API. +* Harmony cannot launch apps as it uses IR instead of the WiFi API and will not display the custom dummy app list. +* Home control buttons cannot be assigned to emulated Roku on the Harmony Hub Companion remote as they are limited to Hue (and possibly other APIs) within Harmony. +* Harmony will not set the name of the added emulated Roku device to the specified `name`. diff --git a/source/_components/enocean.markdown b/source/_components/enocean.markdown index e22c07ec2afc..5e49cd1d6fcb 100644 --- a/source/_components/enocean.markdown +++ b/source/_components/enocean.markdown @@ -8,9 +8,19 @@ comments: false sharing: true footer: true logo: enocean.png -ha_category: Hub +ha_category: + - Hub + - Binary Sensor + - Sensor + - Light + - Switch ha_release: 0.21 ha_iot_class: "Local Push" +redirect_from: + - /components/binary_sensor.enocean/ + - /components/sensor.enocean/ + - /components/light.enocean/ + - /components/switch.enocean/ --- The [EnOcean](https://en.wikipedia.org/wiki/EnOcean) standard is supported by many different vendors. There are switches and sensors of many different kinds, and typically they employ energy harvesting to get power such that no batteries are necessary. @@ -19,10 +29,10 @@ The `enocean` component adds support for some of these devices. You will need a There is currently support for the following device types within Home Assistant: -- [Binary Sensor](/components/binary_sensor.enocean/) (wall switches) -- [Sensor](/components/sensor.enocean/) (power meters) -- [Light](/components/light.enocean/) (dimmers) -- [Switch](/components/switch.enocean/) +- Binary Sensor (wall switches) +- Sensor (power meters) +- Light (dimmers) +- Switch However, only a few devices have been confirmed to work. These are: @@ -47,3 +57,168 @@ device: required: true type: string {% endconfiguration %} + +## {% linkable_title Binary Sensor %} + +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 +# Example configuration.yaml entry +binary_sensor: + - platform: enocean + id: [0x01,0x90,0x84,0x3C] +``` + +{% configuration %} +id: + description: The ID of the device. This is the 4 bytes long number written on the dimmer. + required: true + type: list +name: + description: An identifier for the switch in the frontend. + required: false + 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 + type: device_class +{% endconfiguration %} + +EnOcean binary sensors only generate 'button_pressed' events. The event data has following four fields: + +- **id**: The ID of the device (see configuration). +- **pushed**: `1` for a button press, `0` for a button release. +- **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 +# Example automation to turn lights on/off on button release +automation: + - alias: hall light switches + trigger: + platform: event + event_type: button_pressed + event_data: + id: [0xYY, 0xYY, 0xYY, 0xYY] + pushed: 0 + action: + service_template: "{% raw %}{% if trigger.event.data.onoff %} light.turn_on {% else %} light.turn_off {%endif %}{% endraw %}" + data_template: + entity_id: "{% raw %}{% if trigger.event.data.which == 1 %} light.hall_left {% else %} light.hall_right {%endif %}{% endraw %}" +``` + +## {% linkable_title Light %} + +An EnOcean light can take many forms. Currently only one type has been tested: Eltako FUD61 dimmer. + +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 +# Example configuration.yaml entry +light: + - platform: enocean + id: [0x01,0x90,0x84,0x3C] + sender_id: [0xFF,0xC6,0xEA,0x04] +``` + +{% configuration %} +id: + description: The ID of the device. This is the 4 bytes long number written on the dimmer. + required: true + type: list +sender_id: + description: The Sender ID of the device. This is a 4 bytes long number. + required: true + type: list +name: + description: An identifier for the Ligh in the frontend. + required: false + default: EnOcean Light + type: string +{% endconfiguration %} + +## {% linkable_title Sensor %} + +The `enocean` sensor platform currently only allows reading out the power measured in a Permundo PSC234 switch. + +To use your EnOcean device, you first have to set up your [EnOcean hub](../enocean) and then add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: enocean + name: Television + id: [0x01,0x90,0x84,0x3C] +``` + +{% configuration %} +id: + description: The ID of the device. This is a 4 bytes long number. + required: true + type: list +name: + description: An identifier for the switch + required: true + default: EnOcean sensor + type: string +{% endconfiguration %} + +## {% linkable_title Switch %} + +An EnOcean switch can take many forms. Currently, only a few types have been tested: Permundo PSC234 and Nod On SIN-2-1-01. + +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 +# Example configuration.yaml entry +switch: + - platform: enocean + id: [0x01,0x90,0x84,0x3C] +``` + +{% configuration %} +id: + description: The ID of the device. This is a 4 bytes long number. + required: true + type: list +name: + description: An identifier for the switch. + required: false + default: EnOcean Switch + type: string +channel: + description: The number of the channel (typically 0 or 1) for the output channel to switch. + required: false + default: 0 + type: integer +{% endconfiguration %} + +```yaml +# Example entries for a switch with 2 outputs (channels), e.g., the Nod On SIN-2-1-01 +switch nodon01_0: + - platform: enocean + id: [0x05,0x04,0x03,0x02] + name: enocean_nodon01_0 + channel: 0 + +switch nodon01_1: + - platform: enocean + id: [0x05,0x04,0x03,0x02] + name: enocean_nodon01_1 + channel: 1 +``` diff --git a/source/_components/envisalink.markdown b/source/_components/envisalink.markdown index 15c3283d38a1..3396d2ba5fad 100644 --- a/source/_components/envisalink.markdown +++ b/source/_components/envisalink.markdown @@ -8,9 +8,16 @@ comments: false sharing: true footer: true logo: eyezon.png -ha_category: Alarm +ha_category: + - Alarm + - Binary Sensor + - Sensor ha_release: 0.23 ha_iot_class: "Local Push" +redirect_from: + - /components/alarm_control_panel.envisalink/ + - /components/binary_sensor.envisalink/ + - /components/sensor.envisalink/ --- The `envisalink` 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 Eyez On, known as the Envisalink. The Envisalink evl3 and evl4 boards provide a TCP/IP interface to the alarm panel, where it emulates an alarm keypad. This board also exposes a raw TCP/IP based API, upon which this component is built. Currently, the Envisalink version 4 is the latest model. This component supports both the evl3 and the evl4. @@ -19,9 +26,9 @@ Please visit the [eyezon website](http://www.eyezon.com/) for further informatio There is currently support for the following device types within Home Assistant: -- [Binary Sensor](/components/binary_sensor.envisalink/): Reports on zone status -- [Sensor](/components/sensor.envisalink/): Emulates an alpha-numeric keypad attached to the alarm panel -- [Alarm Control Panel](/components/alarm_control_panel.envisalink/): Reports on partition status, and can be used to arm/disarm the system +- Binary Sensor: Reports on zone status (Check the [type/class](/components/binary_sensor/) list for a possible visualization of your zone.) +- Sensor: Emulates an alpha-numeric keypad attached to the alarm panel +- Alarm Control Panel: Reports on partition status, and can be used to arm/disarm the system This is a fully event-based component. Any event sent by the Envisalink device will be immediately reflected within Home Assistant. @@ -41,6 +48,7 @@ envisalink: evl_version: 3 keepalive_interval: 60 zonedump_interval: 30 + timeout: 10 panic_type: Police zones: 11: @@ -72,8 +80,8 @@ password: required: true type: string code: - description: Your alarm panel's code, for authenticating user input during arm/disarm. - required: true + description: Your alarm panel's code, for authenticating user input during arm/disarm. If you do not provide this value, the component will prompt the user to enter the code at runtime. + required: false type: string port: description: Which network port to connect with. @@ -95,6 +103,11 @@ zonedump_interval: required: false default: 30 type: integer +timeout: + description: A network connectivity timeout when communicating with the envisalink. If connection is not obtained by this time (in seconds) the component will stop trying to connect. + required: false + default: 10 + 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 @@ -134,3 +147,4 @@ The following services are supported by Envisalink and can be used to script or - **alarm_arm_away**: Arms the alarm in standard away mode. - **alarm_trigger**: Trigger an alarm on the Envisalink connected alarm system. For example, a newer zwave/zigbee sensor can now be integrated into a legacy alarm system using a Home Assistant automation. - **envisalink_alarm_keypress**: Sends a string of up to 6 characters to the alarm. *DSC alarms only* +- **invoke_custom_function**: Invokes a custom PGM function. *DSC alarms only* diff --git a/source/_components/esphome.markdown b/source/_components/esphome.markdown index 78da07867168..ae995bccbf16 100644 --- a/source/_components/esphome.markdown +++ b/source/_components/esphome.markdown @@ -11,9 +11,15 @@ logo: esphome.png ha_category: DIY ha_release: 0.85 ha_iot_class: "Local Push" +redirect_from: + - /components/binary_sensor.esphome/ + - /components/cover.esphome/ + - /components/fan.esphome/ + - /components/light.esphome/ + - /components/switch.esphome/ --- -This component allows you to connect your [ESPHome](https://esphomelib.com/esphomeyaml/index.html) devices directly into Home Assistant with the [native ESPHome API](https://esphomelib.com/esphomeyaml/components/api.html). +This component allows you to connect your [ESPHome](https://esphome.io) devices directly into Home Assistant with the [native ESPHome API](https://esphome.io/components/api.html). ## {% linkable_title Setup the component via the integrations screen %} diff --git a/source/_components/eufy.markdown b/source/_components/eufy.markdown index 1780b3e4b5e4..7a7b7268df67 100644 --- a/source/_components/eufy.markdown +++ b/source/_components/eufy.markdown @@ -8,19 +8,31 @@ comments: false sharing: true footer: true logo: eufy.png -ha_category: Hub +ha_category: + - Hub + - Light + - Switch ha_release: 0.68 +ha_iot_class: "Local Polling" +redirect_from: + - /components/light.eufy/ + - /components/switch.eufy/ --- The `eufy` component is the main component to integrate various [eufy](https://www.eufylife.com/) devices with Home Assistant. +There is currently support for the following device types within Home Assistant: + +- Light +- Switch + Supported devices will be discovered after the `eufy` component is configured: ```yaml # Example configuration.yaml entry eufy: - username: testuser@domain - password: p4ssw0rd + username: EMAIL_ADDRESS + password: PASSWORD ``` where username and password are the ones configured in the EufyHome app. Alternately, Eufy devices that are not discoverable can be statically configured. @@ -54,4 +66,3 @@ $ curl -H token:TOKEN -H category:Home \ ``` replacing TOKEN with the `access_token` from the previous command. This will provide the local_code for each device. - diff --git a/source/_components/fan.comfoconnect.markdown b/source/_components/fan.comfoconnect.markdown deleted file mode 100644 index f1ac6f944f34..000000000000 --- a/source/_components/fan.comfoconnect.markdown +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: page -title: "Zehnder ComfoAir Q Ventilation fans" -description: "Instructions on how to integrate Zehnder ComfoAir Q350/450/600 fans into Home Assistant." -date: 2017-06-28 18:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: zehnder.png -ha_category: Fan -ha_release: "0.48" ---- - -Please see the [main component] for information how to set it up. - -[main component]: /components/comfoconnect/ diff --git a/source/_components/fan.dyson.markdown b/source/_components/fan.dyson.markdown deleted file mode 100644 index 22240bbdb92f..000000000000 --- a/source/_components/fan.dyson.markdown +++ /dev/null @@ -1,33 +0,0 @@ ---- -layout: page -title: "Dyson Purifier Fan" -description: "Instructions on how to setup the Dyson Purifier fans within Home Assistant." -date: 2017-05-27 10:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: dyson.png -ha_category: Fan -ha_iot_class: "Cloud Polling" -ha_release: 0.47 ---- - - -The `dyson` fan platform allows you to control your Dyson Purifier fans. - -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 (see [climate](/components/climate.dyson/) for thermal control) - -### {% linkable_title Attributes %} - -There are several attributes which can be used for automations and templates. - -| Attribute | Description | -| --------- | ----------- | -| `is_night_mode` | A boolean that indicates if the night mode of the fan device is on. -| `is_auto_mode` | A boolean that indicates if the auto mode of the fan device is on. diff --git a/source/_components/fan.insteon.markdown b/source/_components/fan.insteon.markdown deleted file mode 100644 index 0e17deda50e8..000000000000 --- a/source/_components/fan.insteon.markdown +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: page -title: "Insteon Fan" -description: "Instructions on how to setup the Insteon fan locally within Home Assistant." -date: 2018-08-20 16:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: insteon.png -ha_category: Fan -ha_iot_class: "Local Push" -ha_version: 0.77 ---- - -The `insteon` fan platform lets you control your [FanLinc] 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/ -[FanLinc]: https://www.smarthome.com/fanlinc-insteon-2475f-ceiling-fan-and-light-controller-fixture-module-dual-band.html - - diff --git a/source/_components/fan.isy994.markdown b/source/_components/fan.isy994.markdown deleted file mode 100644 index 4c47e76fc404..000000000000 --- a/source/_components/fan.isy994.markdown +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: page -title: "ISY994 Fan" -description: "Instructions on how to integrate ISY994 fans into Home Assistant." -date: 2016-09-03 23:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: universal_devices.png -ha_category: Fan -ha_iot_class: "Local Push" ---- - -The `isy994` platform allows you to get data from your [ISY994](https://www.universal-devices.com/residential/isy994i-series/) fan from within Home Assistant. - -They will be automatically discovered if the `isy994` component is loaded. diff --git a/source/_components/fan.mqtt.markdown b/source/_components/fan.mqtt.markdown index 2a726f19e46a..0fa472b74fbe 100644 --- a/source/_components/fan.mqtt.markdown +++ b/source/_components/fan.mqtt.markdown @@ -33,15 +33,15 @@ fan: ``` {% configuration %} +command_topic: + description: The MQTT topic to publish commands to change the fan state. + required: true + type: string name: description: The name of the fan. required: false type: string default: MQTT Fan -command_topic: - description: The MQTT topic to publish commands to change the fan state. - required: true - type: string state_topic: description: The MQTT topic subscribed to receive state updates. required: false @@ -125,7 +125,7 @@ speed_value_template: required: false type: string speeds: - description: "List of speeds this fan is capable of running at. Valid entries are `off`, `low`, `medium`, and `high`." + description: "List of speeds this fan is capable of running at. Valid entries are `off`, `low`, `medium` and `high`." required: false type: string list availability_topic: @@ -142,17 +142,21 @@ payload_not_available: required: false type: string default: offline +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation. + required: false + type: string 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.' + 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.' + description: A list of IDs that uniquely identify the device. For example a serial number. required: false type: list, string connections: @@ -160,19 +164,19 @@ device: required: false type: list, tuple manufacturer: - description: 'The manufacturer of the device.' + description: The manufacturer of the device. required: false type: string model: - description: 'The model of the device.' + description: The model of the device. required: false type: string name: - description: 'The name of the device.' + description: The name of the device. required: false type: string sw_version: - description: 'The firmware version of the device.' + description: The firmware version of the device. required: false type: string {% endconfiguration %} diff --git a/source/_components/fan.template.markdown b/source/_components/fan.template.markdown index 189cad7ad799..a9f2420ec07a 100644 --- a/source/_components/fan.template.markdown +++ b/source/_components/fan.template.markdown @@ -75,7 +75,7 @@ fan: required: false type: template oscillating_template: - description: "Defines a template to get the osc state of the fan. Valid value: True/False" + description: "Defines a template to get the osc state of the fan. Valid value: true/false" required: false type: template direction_template: diff --git a/source/_components/fan.tuya.markdown b/source/_components/fan.tuya.markdown deleted file mode 100644 index 273a6f00729c..000000000000 --- a/source/_components/fan.tuya.markdown +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: page -title: "Tuya Fan" -description: "Instructions on how to setup the Tuya fan within Home Assistant." -date: 2018-07-17 09:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: tuya.png -ha_category: Fan -ha_iot_class: "Cloud Polling" -ha_release: 0.75 ---- - - -The `tuya` fan platform allows you to control your [Tuya Smart](https://www.tuya.com) fan. - -The platform supports most kinds of Tuya fans. - -

-Full configuration details can be found on the main [Tuya component](/components/tuya/) page. -

\ No newline at end of file diff --git a/source/_components/fan.wemo.markdown b/source/_components/fan.wemo.markdown deleted file mode 100644 index 1a4dfe2ad699..000000000000 --- a/source/_components/fan.wemo.markdown +++ /dev/null @@ -1,46 +0,0 @@ ---- -layout: page -title: "Belkin WeMo (Holmes) Smart Humidifier" -description: "Instructions how to integrate Belkin WeMo humidifiers into Home Assistant." -date: 2018-10-29 19:58 -sidebar: true -comments: false -sharing: true -footer: true -logo: belkin_wemo.png -ha_category: Fan -ha_iot_class: "Local Polling" -ha_release: 0.82 ---- - - -The `wemo` platform allows you to control your [Belkin WeMo](http://www.belkin.com/us/p/P-F7C027/) humidifiers from within Home Assistant. This includes support for the [Holmes Smart Humidifier](https://www.holmesproducts.com/wemo-humidifier.html). - -They will be automatically discovered if the discovery component is enabled. - -For more configuration information, see the [WeMo component](/components/wemo/) documentation. - -### {% linkable_title Attributes %} - -There are several attributes which can be used for automations and templates. - -| Attribute | Description | -| --------- | ----------- | -| `current_humidity` | An integer that indicates the current relative humidity percentage of the room, as determined by the device's onboard humidity sensor. -| `target_humidity` | An integer that indicates the desired relative humidity percentage (this is constrained to the humidity settings of the device, which are 45, 50, 55, 60, and 100). -| `fan_mode` | String that indicates the current fan speed setting, as reported by the WeMo humidifier. -| `water level` | String that indicates whether the water level is Good, Low, or Empty. -| `filter_life` | The used life of the filter (as a percentage). -| `filter_expired` | A boolean that indicates whether the filter has expired and needs to be replaced. - -### {% linkable_title Services %} - -There are several services which can be used for automations and control of the humidifier. - -| Service | Description | -| --------- | ----------- | -| `set_speed` | Calling this service sets the fan speed (entity_id and speed are required parameters, and speed must be one of the following: off, low, medium, or high). When selecting low for the speed, this will map to the WeMo humidifier speed of minimum. When selecting high for the speed, this will map to the WeMo humidifier speed of maximum. The WeMo humidifier speeds of low and high are unused due to constraints on which fan speeds Home Assistant supports. -| `wemo_set_humidity` | Calling this service will set the desired relative humidity setting on the device (entity_id is an optional list of entities to set humidity on (omitting this list will set humidity on all WeMo Humidifiers), and target_humidity is a required float value between 0 and 100 (this value will be rounded down and mapped to one of the valid desired humidity settings of 45, 50, 55, 60, or 100 that are supported by the WeMo humidifier)). -| `turn_on` | Calling this service will turn the humidifier on and set the speed to the last used speed (defaults to medium, entity_id is required). -| `turn_off` | Calling this service will turn the humidifier off (entity_id is required). -| `toggle` | Calling this service will toggle the humidifier between on and off states. diff --git a/source/_components/fan.wink.markdown b/source/_components/fan.wink.markdown deleted file mode 100644 index 129db4b46936..000000000000 --- a/source/_components/fan.wink.markdown +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: page -title: "Wink Fan" -description: "Instructions on how to setup the Wink fans within Home Assistant." -date: 2017-01-14 12:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: wink.png -ha_category: Fan -ha_release: 0.36 -ha_iot_class: "Cloud Polling" ---- - - -The Wink fan platform allows you to control your [Wink](http://www.wink.com/) fans. - -The requirement is that you have setup [Wink](/components/wink/). - - -### {% linkable_title Supported fan devices %} - -- Home Decorator Wink-enabled Gardinier ceiling fan -- Hampton Bay ceiling fan module - - -

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

- - diff --git a/source/_components/fan.xiaomi_miio.markdown b/source/_components/fan.xiaomi_miio.markdown index 56b29b2e085f..b5f98b37ae4b 100644 --- a/source/_components/fan.xiaomi_miio.markdown +++ b/source/_components/fan.xiaomi_miio.markdown @@ -13,7 +13,29 @@ ha_iot_class: "Local Polling" ha_release: 0.57 --- -The `xiaomi_miio` fan platform allows you to control the Xiaomi Air Purifier and Xiaomi Air Humidifier. +The `xiaomi_miio` fan platform allows you to control the Xiaomi Air Purifier, Air Humidifier and Air Fresh. + +Supported devices: + +| Name | Model | Model no. | +| ------------------- | ---------------------- | --------- | +Air Purifier | zhimi.airpurifier.v1 | | +Air Purifier 2 | zhimi.airpurifier.v2 | FJY4006CN | +Air Purifier V3 | zhimi.airpurifier.v3 | | +Air Purifier V5 | zhimi.airpurifier.v5 | | +Air Purifier Pro | zhimi.airpurifier.v6 | | +Air Purifier Pro V7 | zhimi.airpurifier.v7 | | +Air Purifier 2 (mini) | zhimi.airpurifier.m1 | | +Air Purifier (mini) | zhimi.airpurifier.m2 | | +Air Purifier MA1 | zhimi.airpurifier.ma1 | | +Air Purifier 2S | zhimi.airpurifier.ma2 | | +Air Purifier 2S | zhimi.airpurifier.mc1 | | +Air Purifier Super | zhimi.airpurifier.sa1 | | +Air Purifier Super 2 | zhimi.airpurifier.sa2 | | +Air Humidifier | zhimi.humidifier.v1 | | +Air Humidifier CA1 | zhimi.humidifier.ca1 | | +Air Fresh VA2 | zhimi.airfresh.va2 | | + ## Features @@ -87,6 +109,68 @@ The `xiaomi_miio` fan platform allows you to control the Xiaomi Air Purifier and - motor2_speed - volume +### Air Purifier Pro V7 (zhimi.airpurifier.v7) + +- Power (on, off) +- Operation modes (auto, silent, favorite) +- Child lock (on, off) +- LED (on, off) +- Favorite Level (0...16) +- Attributes + - model + - temperature + - humidity + - aqi + - mode + - filter_hours_used + - filter_life_remaining + - favorite_level + - child_lock + - led + - motor_speed + - average_aqi + - learn_mode + - extra_features + - turbo_mode_supported + - button_pressed + - filter_rfid_product_id + - filter_rfid_tag + - filter_type + - illuminance + - motor2_speed + - volume + +### Air Purifier 2S (zhimi.airpurifier.mc1) + +- Power (on, off) +- Operation modes (auto, silent, favorite) +- Buzzer (on, off) +- Child lock (on, off) +- LED (on, off) +- Favorite Level (0...16) +- Attributes + - model + - temperature + - humidity + - aqi + - mode + - filter_hours_used + - filter_life_remaining + - favorite_level + - child_lock + - led + - motor_speed + - average_aqi + - learn_mode + - extra_features + - turbo_mode_supported + - button_pressed + - filter_rfid_product_id + - filter_rfid_tag + - filter_type + - illuminance + - buzzer + ### Air Purifier V3 (zhimi.airpurifier.v3) - Power (on, off) @@ -167,6 +251,31 @@ The `xiaomi_miio` fan platform allows you to control the Xiaomi Air Purifier and - depth - dry +### Air Fresh VA2 + +* Power (on, off) +* Operation modes (auto, silent, interval, low, middle, strong) +* Buzzer (on, off) +* Child lock (on, off) +* LED (on, off), LED brightness (bright, dim, off) +* Attributes + - model + - aqi + - average_aqi + - temperature + - humidity + - co2 + - mode + - led + - led_brightness + - buzzer + - child_lock + - filter_life_remaining + - filter_hours_used + - use_time + - motor_speed + - extra_features + 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 Air Purifier to your installation, add the following to your `configuration.yaml` file: @@ -194,7 +303,7 @@ name: type: string default: Xiaomi Air Purifier model: - description: The model of your miio fan. Valid values are `zhimi.airpurifier.v6`, `zhimi.airpurifier.v3`, `zhimi.humidifier.v1` and `zhimi.humidifier.ca1`. 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 fan. See the table above for valid values (f.e. `zhimi.airpurifier.v2`). 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 %} @@ -226,7 +335,7 @@ Turn the buzzer off. |---------------------------|----------|---------------------------------------------------------| | `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | -### {% linkable_title Service `fan.xiaomi_miio_set_led_on` %} (Air Purifier only) +### {% linkable_title Service `fan.xiaomi_miio_set_led_on` %} (Air Purifiers only) Turn the led on. @@ -234,7 +343,7 @@ Turn the led on. |---------------------------|----------|---------------------------------------------------------| | `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | -### {% linkable_title Service `fan.xiaomi_miio_set_led_off` %} (Air Purifier only) +### {% linkable_title Service `fan.xiaomi_miio_set_led_off` %} (Air Purifiers only) Turn the led off. @@ -258,7 +367,7 @@ Turn the child lock off. |---------------------------|----------|---------------------------------------------------------| | `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | -### {% linkable_title Service `fan.xiaomi_miio_set_led_brightness` %} (Air Purifier Pro excluded) +### {% linkable_title Service `fan.xiaomi_miio_set_led_brightness` %} (Air Purifier 2S and Air Purifier Pro excluded) Set the led brightness. Supported values are 0 (Bright), 1 (Dim), 2 (Off). @@ -267,7 +376,7 @@ Set the led brightness. Supported values are 0 (Bright), 1 (Dim), 2 (Off). | `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | | `brightness` | no | Brightness, between 0 and 2. | -### {% linkable_title Service `fan.xiaomi_miio_set_favorite_level` %} (Air Purifier only) +### {% linkable_title Service `fan.xiaomi_miio_set_favorite_level` %} (Air Purifiers only) Set the favorite level of the operation mode "favorite". @@ -276,7 +385,7 @@ Set the favorite level of the operation mode "favorite". | `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | | `level` | no | Level, between 0 and 16. | -### {% linkable_title Service `fan.xiaomi_miio_set_auto_detect_on` %} (Air Purifier Pro only) +### {% linkable_title Service `fan.xiaomi_miio_set_auto_detect_on` %} (Air Purifier 2S and Air Purifier Pro only) Turn the auto detect on. @@ -284,7 +393,7 @@ Turn the auto detect on. |---------------------------|----------|---------------------------------------------------------| | `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | -### {% linkable_title Service `fan.xiaomi_miio_set_auto_detect_off` %} (Air Purifier Pro only) +### {% linkable_title Service `fan.xiaomi_miio_set_auto_detect_off` %} (Air Purifier 2S and Air Purifier Pro only) Turn the auto detect off. diff --git a/source/_components/fan.zha.markdown b/source/_components/fan.zha.markdown deleted file mode 100644 index 60d316e5926b..000000000000 --- a/source/_components/fan.zha.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -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 -sharing: true -footer: true -logo: zigbee.png -ha_category: Fan -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/). diff --git a/source/_components/fastdotcom.markdown b/source/_components/fastdotcom.markdown new file mode 100644 index 000000000000..6a9f1c32aa79 --- /dev/null +++ b/source/_components/fastdotcom.markdown @@ -0,0 +1,86 @@ +--- +layout: page +title: "Fast.com" +description: "How to integrate Fast.com within Home Assistant." +date: 2019-02-01 21:30 +sidebar: true +comments: false +sharing: true +footer: true +logo: fastdotcom.png +ha_category: + - System Monitor + - Sensor +featured: false +ha_release: 0.88 +ha_iot_class: "Cloud Polling" +redirect_from: + - /components/sensor.fastdotcom/ +--- + +The `fastdotcom` component uses the [Fast.com](https://fast.com/) web service to measure network bandwidth performance. + +

+Currently fast.com only supports measuring download bandwidth. If you want to measure bandwidth metrics other then download such as ping and upload, utilize the [speedtest](/components/sensor.speedtest) component. +

+ +Enabling this component will automatically create the Fast.com Sensor. + +By default, a speed test will be run every hour. The user can change the update frequency in the configuration by defining the `scan_interval` for a speed test to run. + +## {% linkable_title Configuration %} + +To add Fast.com to your installation, add the following to your `configuration.yaml` file: + +Once per hour, on the hour (default): + +```yaml +fastdotcom: +``` + +Every half hour of every day: + +```yaml +fastdotcom: + scan_interval: + minutes: 30 +``` + +{% configuration %} +scan_interval: + description: "Minimum time interval between updates. Supported formats: `scan_interval: 'HH:MM:SS'`, `scan_interval: 'HH:MM'` and Time period dictionary (see example below)." + required: false + default: 60 minutes + type: time +manual: + description: Turn manual mode on or off. Manual mode will disable scheduled speedtests. + required: false + default: false + type: boolean +{% endconfiguration %} + +#### {% linkable_title Time period dictionary example %} + +```yaml +scan_interval: + # At least one of these must be specified: + days: 0 + hours: 0 + minutes: 3 + seconds: 30 + milliseconds: 0 +``` + +### {% linkable_title Service %} + +Once loaded, the `fastdotcom` component will expose a service (`fastdotcom.speedtest`) that can be called to run a Fast.com speed test on demand. This service takes no parameters. This can be useful if you have enabled manual mode. + +```yaml +action: + service: fastdotcom.speedtest +``` + +## {% linkable_title Notes %} + +- When running on Raspberry Pi, the maximum speed is limited by its 100 Mbit/s LAN adapter. +- The sensor will return the maximum measured speed during a 15-second test. diff --git a/source/_components/fibaro.markdown b/source/_components/fibaro.markdown index a1b12854d7a7..74cc296aa042 100644 --- a/source/_components/fibaro.markdown +++ b/source/_components/fibaro.markdown @@ -2,35 +2,69 @@ layout: page title: "Fibaro" description: "Instructions on how to setup Fibaro Z-Wave hubs (HCL and HC2) and configure devices within Home Assistant." -date: 2018-11-14 20:04 +date: 2019-01-10 20:04 sidebar: true comments: false sharing: true footer: true logo: fibaro.png -ha_category: Hub -ha_release: 0.83 +ha_category: + - Hub + - Binary Sensor + - Cover + - Light + - Sensor + - Scene + - Switch +ha_release: "0.83" ha_iot_class: "Local Push" redirect_from: - /components/scene.fibaro/ + - /components/binary_sensor.fibaro/ + - /components/cover.fibaro/ + - /components/light.fibaro/ + - /components/sensor.fibaro/ + - /components/switch.fibaro/ --- The [Fibaro](http://fibaro.com) hub is a controller mainly connecting to Z-Wave devices. -Binary sensors, Covers, Lights (including Dimmers), Sensors, Scenes and Switches are supported - and will be automatically added when HA connects to your Fibaro controller. +There is currently support for the following device types within Home Assistant: + +- Binary Sensor +- Cover +- Light +- Sensor +- Scene +- Switch + +They will be automatically added when the `fibaro` hub is connected to Home Assistant. ## {% linkable_title Configuration %} -To use Fibaro devices in your installation, add the following to your configuration.yaml file using the IP and port number of your Fibaro controller: +To use Fibaro devices in your installation, add the following to your `configuration.yaml` file using the IP and port number of your Fibaro controller: ```yaml fibaro: - url: http://192.168.1.161/api/ - username: your_username - password: your_password + gateways: + - url: http://192.168.1.161/api/ + username: your_username + password: your_password + device_config: + light_device_name_123: + color: false + white_value: false + reset_color: true + binary_device_name_123: + device_class: "garage_door" + icon: mdi:open ``` {% configuration %} +gateways: + description: List of gateway configurations. + requires: true + type: list url: description: The URL for your Fibaro HomeCenter device. required: true @@ -44,13 +78,19 @@ password: required: true type: string plugins: - description: Whether to import plugin-generated devices from Fibaro HomeCenter, such as Netatmo and Sonos devices, etc. Default is false. + description: Whether to import plugin-generated devices from Fibaro HomeCenter, such as Netatmo and Sonos devices, etc. required: false type: bool + default: false +device_config: + description: Lists device specific parameter or behaviour overrides. + required: false + type: list + default: None {% endconfiguration %}

- It is recommended to assign a static IP address to your Fibaro Controller. This ensures that it won't change IP addresses, so you won't have to change the 'url' if the controller reboots and comes up with a different IP address. See your router's manual for details on how to set this up. If you need the MAC address of your Fibaro, check the label on the bottom. + It is recommended to assign a static IP address to your Fibaro controller. This ensures that it won't change its IP address, so you won't have to change the `url` if the controller reboots and comes up with a different IP address. See your router's manual for details on how to set this up. If you need the MAC address of your Fibaro, check the label on the bottom.

### {% linkable_title Using Z-Wave devices in automation %} diff --git a/source/_components/device_tracker.freebox.markdown b/source/_components/freebox.markdown similarity index 53% rename from source/_components/device_tracker.freebox.markdown rename to source/_components/freebox.markdown index fa2a2dd6181e..b8e3b8f1dd66 100644 --- a/source/_components/device_tracker.freebox.markdown +++ b/source/_components/freebox.markdown @@ -2,32 +2,40 @@ layout: page title: "Freebox" description: "Instructions on how to integrate Freebox routers into Home Assistant." -date: 2018-05-16 23:00 +date: 2018-11-15 20:00 sidebar: true comments: false sharing: true footer: true logo: freebox.svg -ha_category: Presence Detection -ha_release: "0.70" +ha_category: + - Network + - Presence Detection + - Sensor +ha_release: "0.85" ha_iot_class: "Local Polling" +redirect_from: + - /components/device_tracker.freebox/ + - /components/sensor.freebox/ --- +The `freebox` component allows you to observe and control [Freebox router](http://www.free.fr/). -The `freebox` platform offers presence detection by keeping track of the -devices connected to a [Freebox](http://www.free.fr/) router. +There is currently support for the following device types within Home Assistant: + +* [Sensor](#sensor) with traffic metrics +* [Device tracker](#presence-detection) for connected devices -### {% linkable_title Configuration %} +## {% linkable_title Configuration %} If you have enabled the [discovery component](/components/discovery/), your Freebox should be detected automatically. Otherwise, you can set it up manually in your `configuration.yaml` file: ```yaml -device_tracker: - - platform: freebox - host: foobar.fbox.fr - port: 1234 +freebox: + host: foobar.fbxos.fr + port: 1234 ``` {% configuration %} @@ -47,10 +55,27 @@ returned json should contain an api_domain (`host`) and a https_port (`port`). ### {% linkable_title Initial setup %} +

+You must have set a password for your Freebox router web administration page. Enable the option "Permettre les nouvelles demandes d'associations" and check that the option "Accès à distance sécurisé à Freebox OS" is active in "Gestion des ports" > "Connexions entrantes". +

+ The first time Home Assistant will connect to your Freebox, you will need to -authorize it by pressing the right button on the facade of the Freebox when +authorize it by pressing the right arrow on the facade of the Freebox when prompted to do so. +### {% linkable_title Supported routers %} + +Only the routers with Freebox OS are supported: + +* Freebox V7 also known as Freebox Delta +* Freebox V6 also known as Freebox Revolution +* Freebox mini 4k + +## {% linkable_title Presence Detection %} + +This platform offers presence detection by keeping track of the +devices connected to a [Freebox](http://www.free.fr/) router. + ### {% linkable_title Notes %} Note that the Freebox waits for some time before marking a device as @@ -62,6 +87,7 @@ On the contrary, the Freebox immediately reports devices newly connected, so they should appear as "home" almost instantly, as soon as Home Assistant refreshes the devices states. -See the [device tracker component page](/components/device_tracker/) for -instructions how to configure the devices to be tracked. +## {% linkable_title Sensor %} +This platform offers you sensors to monitor a Freebox router. The monitored conditions are +instant upload and download rates in KB/s. diff --git a/source/_components/freedns.markdown b/source/_components/freedns.markdown index 0f128208110c..73c2160c7a93 100644 --- a/source/_components/freedns.markdown +++ b/source/_components/freedns.markdown @@ -44,7 +44,7 @@ freedns: description: The full update URL. This is exclusive to `access_token`. required: false type: string - update_interval: + scan_interval: description: How often to call the update service. required: false type: time period diff --git a/source/_components/fritzbox.markdown b/source/_components/fritzbox.markdown index a5ca0a5f68bf..3b0ffb95d5bb 100644 --- a/source/_components/fritzbox.markdown +++ b/source/_components/fritzbox.markdown @@ -8,20 +8,35 @@ comments: false sharing: true footer: true logo: avm.png -ha_category: Hub +ha_category: + - Binary Sensor + - Climate + - Sensor + - Switch ha_release: 0.68 ha_iot_class: "Local Polling" +redirect_from: + - /components/binary_sensor.fritzbox/ + - /components/switch.fritzbox/ + - /components/climate.fritzbox/ + - /components/sensor.fritzbox/ --- The [AVM](https://en.avm.de) Fritzbox component for Home Assistant allows you to integrate the switch and climate devices. +There is currently support for the following device types within Home Assistant: + +- Binary Sensor +- Climate +- [Sensor](#sensor) +- Switch + #### {% linkable_title Tested Devices %} - [FRITZ!Box 6490 Cable](https://en.avm.de/products/fritzbox/fritzbox-6490-cable/) - [FRITZ!Box 7590](https://en.avm.de/products/fritzbox/fritzbox-7590/) - [FRITZ!DECT 200](https://en.avm.de/products/fritzdect/fritzdect-200/) -- [Eurotronic Comet DECT](https://www.eurotronic.org/en/products/comet-dect.html) - +- [Eurotronic Comet DECT](https://eurotronic.org/produkte/elektronische-heizkoerperthermostate/sparmatic-comet/) ## {% linkable_title Setup %} @@ -43,7 +58,7 @@ devices: host: description: The hostname or IP address of the Fritzbox. required: true - type: optional + type: string username: description: The username for Smart Home access. required: true @@ -53,3 +68,40 @@ devices: required: true type: string {% endconfiguration %} + +## {% linkable_title Switch & Thermostat %} + +To get AVM Fritzbox switch and thermostat follow the instructions above. + +### {% linkable_title Attributes %} + +The are several attributes that can be useful for automations and templates. + +| Attribute | Description | +| --------- | ----------- | +| `device_locked` | The state of the key lock at the device. +| `locked` | The state of the lock for configuring the device via the app or the Fritzbox web interface. +| `low_battery` | The low battery state indication. +| `battery_level` | The battery level (only available since Fritz!OS 7). +| `holiday_mode` | The state of the holiday mode (only available since Fritz!OS 7). +| `summer_mode` | The state of the summer mode (only available since Fritz!OS 7). +| `window_open` | The state of the window open detection (only available since Fritz!OS 7). +| `temperature_unit` | The unit of the temperature sensor (only available if the device support temperature sensor). +| `temperature` | The current temperature sensor reading (only available if the device supports temperature sensor). +| `total_consumption` | The total power consumption since the beginning of operation (only available if the device supports power meter function). +| `total_consumption_unit` | The unit of the total_consumption (only available if the device supports power meter function). + +## {% linkable_title Sensor %} + +To get AVM Fritzbox temperature sensor (e.g. FRITZ!DECT Repeater 100) follow the instructions for the [Fritzbox component](#setup). + +### {% linkable_title Attributes %} + +The are several attributes that can be useful for automations and templates. + +| Attribute | Description | +| --------- | ----------- | +| `device_locked` | The state of the key lock at the device. +| `locked` | The state of the lock for configuring the device via the app or the Fritzbox web interface. +| `temperature_unit` | The unit of the temperature sensor. +| `temperature` | The current temperature sensor reading. \ No newline at end of file diff --git a/source/_components/frontend.markdown b/source/_components/frontend.markdown index 099414981722..5c8944c7a748 100644 --- a/source/_components/frontend.markdown +++ b/source/_components/frontend.markdown @@ -68,7 +68,7 @@ frontend: primary-color: blue ``` -The example above defined two themes named `happy` and `sad`. For each theme you can set values for CSS variables. For a partial list of variables used by the main frontend see [ha-style.js](https://github.com/home-assistant/home-assistant-polymer/blob/master/src/resources/ha-style.js). +The example above defined two themes named `happy` and `sad`. For each theme you can set values for CSS variables. For a partial list of variables used by the main frontend see [ha-style.ts](https://github.com/home-assistant/home-assistant-polymer/blob/master/src/resources/ha-style.ts). Check our [community forums](https://community.home-assistant.io/c/projects/themes) to find themes to use. @@ -77,7 +77,7 @@ Check our [community forums](https://community.home-assistant.io/c/projects/them There are 2 themes-related services: - `frontend.reload_themes`: reloads theme configuration from your `configuration.yaml` file. - - `frontend.set_theme(name)`: sets backend-preferred theme name. + - `frontend.set_theme(name)`: sets backend-preferred theme name. Example in automation: @@ -96,15 +96,15 @@ automation: name: happy ``` -To enable "night mode": +To enable "night mode": ```yaml automation: - alias: 'Set dark theme for the night' - initial_state: True + initial_state: true trigger: - platform: time - at: '21:00' + at: '21:00:00' action: - service: frontend.set_theme data: diff --git a/source/_components/geo_location.geo_json_events.markdown b/source/_components/geo_location.geo_json_events.markdown index 2144a0c6bcd1..f17703b0f991 100644 --- a/source/_components/geo_location.geo_json_events.markdown +++ b/source/_components/geo_location.geo_json_events.markdown @@ -8,7 +8,7 @@ comments: false sharing: true footer: true logo: geo_location.png -ha_category: Geo Location +ha_category: Geolocation ha_iot_class: "Cloud Polling" ha_release: "0.79" --- @@ -39,8 +39,8 @@ url: radius: description: The distance in kilometers around the Home Assistant's coordinates in which events are considered. required: false - type: string - default: 20km + type: float + default: 20.0 latitude: description: Latitude of the coordinates around which events are considered. required: false @@ -53,6 +53,17 @@ longitude: default: Longitude defined in your `configuration.yaml` {% endconfiguration %} +## {% linkable_title State Attributes %} + +The following state attributes are available for each entity in addition to the standard ones: + +| Attribute | Description | +|-------------|-------------| +| latitude | Latitude of the event. | +| longitude | Longitude of the event. | +| source | `geo_json_events` to be used in conjunction with `geo_location` automation trigger. | +| external_id | The external ID used in the feed to identify the event in the feed. | + ## {% linkable_title Advanced Configuration Example %} When integrating several GeoJSON feeds, it may be useful to distinguish the entities of different feeds. The easiest way to do that is by defining an [`entity_namespace`](/docs/configuration/platform_options/#entity-namespace/) for each platform which will prefix each entity ID with the defined value. diff --git a/source/_components/geo_location.markdown b/source/_components/geo_location.markdown index 6540d5d20008..a7cfd900c8a0 100644 --- a/source/_components/geo_location.markdown +++ b/source/_components/geo_location.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "Geo Location" -description: "Instructions on how to integrate geo location aware platforms into Home Assistant." +title: "Geolocation" +description: "Instructions on how to integrate geolocation aware platforms into Home Assistant." date: 2018-08-27 08:00 sidebar: true comments: false @@ -11,13 +11,13 @@ logo: geo_location.png ha_release: "0.78" --- -Geo Location aware entities are typically related to events in the real world in the vicinity of Home Assistant's location, like for example weather events, bush fires or earthquakes. +Geolocation aware entities are typically related to events in the real world in the vicinity of Home Assistant's location, like for example weather events, bush fires or earthquakes. -Entities can have associated geo location coordinates (latitude and longitude) so that they are displayed on the map. The distance from the entity's coordinates to Home Assistant's location can be used for filtering. +Entities can have associated geolocation coordinates (latitude and longitude) so that they are displayed on the map. The distance from the entity's coordinates to Home Assistant's location can be used for filtering. -## {% linkable_title Geo Location trigger %} +## {% linkable_title Geolocation trigger %} -The [Geo Location trigger](/docs/automation/trigger/#geo-location-trigger) can be used in automations triggered by Geo Location entities appearing in or disappearing from zones. The following value must be used as `source` of the trigger depending on which platform is managing the entities: +The [Geolocation trigger](/docs/automation/trigger/#geolocation-trigger) can be used in automations triggered by Geolocation entities appearing in or disappearing from zones. The following value must be used as `source` of the trigger depending on which platform is managing the entities: | Platform | Source | |---------------------------------------------------|-------------------------------| @@ -27,7 +27,7 @@ The [Geo Location trigger](/docs/automation/trigger/#geo-location-trigger) can b Conditions can be used to further filter entities, for example by inspecting their state attributes. -## {% linkable_title Geo Location notification example %} +## {% linkable_title Geolocation notification example %} The following example automation creates a notification on the screen when a fire classified as 'Bush Fire' is reported within a predefined bush fire alert zone: diff --git a/source/_components/geo_location.nsw_rural_fire_service_feed.markdown b/source/_components/geo_location.nsw_rural_fire_service_feed.markdown index 5879a583c043..6212e4873eea 100644 --- a/source/_components/geo_location.nsw_rural_fire_service_feed.markdown +++ b/source/_components/geo_location.nsw_rural_fire_service_feed.markdown @@ -8,7 +8,7 @@ comments: false sharing: true footer: true logo: nsw-rural-fire-service.png -ha_category: Geo Location +ha_category: Geolocation ha_iot_class: "Cloud Polling" ha_release: "0.81" --- @@ -44,7 +44,7 @@ radius: description: The distance in kilometers around Home Assistant's coordinates in which incidents are included. required: false type: float - default: 20km + default: 20.0 categories: description: List of incident category names found in the feed. Only incidents from the feed that match any of these categories are included. Valid categories are 'Emergency Warning', 'Watch and Act', 'Advice', 'Not Applicable'. required: false @@ -70,6 +70,7 @@ The following state attributes are available for each entity in addition to the |--------------------|-------------| | latitude | Latitude of the incident. | | longitude | Longitude of the incident. | +| source | `nsw_rural_fire_service_feed` to be used in conjunction with `geo_location` automation trigger. | | external_id | The external ID used in the feed to identify the incident in the feed. | | category | One of 'Emergency Warning', 'Watch and Act', 'Advice', 'Not Applicable'. | | location | Location details of where the incident takes place. | diff --git a/source/_components/geo_location.usgs_earthquakes_feed.markdown b/source/_components/geo_location.usgs_earthquakes_feed.markdown index 398ad19649c6..e853fbc66990 100644 --- a/source/_components/geo_location.usgs_earthquakes_feed.markdown +++ b/source/_components/geo_location.usgs_earthquakes_feed.markdown @@ -8,7 +8,7 @@ comments: false sharing: true footer: true logo: us-geological-survey.png -ha_category: Geo Location +ha_category: Geolocation ha_iot_class: "Cloud Polling" ha_release: 0.84 --- @@ -52,7 +52,7 @@ radius: description: The distance in kilometers around Home Assistant's coordinates in which seismic events are included. required: false type: float - default: 50km + default: 50.0 latitude: description: Latitude of the coordinates around which events are considered. required: false @@ -107,3 +107,17 @@ The following state attributes are available for each entity in addition to the | updated | Date and time when this event was most recently updated. | | status | Indicates whether the event has been reviewed by a human: "automatic", "reviewed", "deleted" | | type | Type of seismic event: "earthquake" or "quarry". | + + +## {% linkable_title Full Configuration %} + +```yaml +# Example configuration.yaml entry +geo_location: + - platform: usgs_earthquakes_feed + feed_type: 'past_month_all_earthquakes' + radius: 50 + minimum_magnitude: 0.0 + latitude: 35.899722 + longitude: -120.432778 +``` diff --git a/source/_components/geofency.md b/source/_components/geofency.md index bff78c983275..5f4a904e42dc 100644 --- a/source/_components/geofency.md +++ b/source/_components/geofency.md @@ -17,12 +17,9 @@ This component sets up integration with [Geofency](http://www.geofency.com/). Ge Enabling this component will automatically enable the [Geofency Device Tracker](/components/device_tracker.geofency/). -To integrate Geofency in Home Assistant, add the following section to your `configuration.yaml` file: +To configure Geofency, you must set it up via the integrations panel in the configuration screen. You must then configure the iOS app (via the Webhook feature) to send a POST request to your Home Assistant server at the webhook URL provided by the integration during setup. Use the default POST format. Make sure to enable the 'Update Geo-Position' functionality for mobile beacons. -```yaml -# Example configuration.yaml entry -geofency: -``` +When using mobile beacons (optional) an entry in `configuration.yaml` is still needed as this can't be added via the integrations panel. {% configuration %} mobile_beacons: @@ -31,7 +28,7 @@ mobile_beacons: type: list {% endconfiguration %} -A full sample configuration for the `geofency` component is shown below: +A sample configuration for the `geofency` component when using mobile beacons is shown below: ```yaml # Example configuration.yaml entry @@ -40,5 +37,3 @@ geofency: - car - keys ``` - -To configure Geofency, you must configure (via the Webhook feature) to send a POST request to your Home Assistant server at `http:///api/geofency`. Use the default POST format, and make sure to include the API password if you have configured a password in Home Assistant (add `?api_password=` to the end of the URL). Make sure to enable the 'Update Geo-Position' functionality for mobile beacons. diff --git a/source/_components/google_assistant.markdown b/source/_components/google_assistant.markdown index dc61e9904f17..b6165599f755 100644 --- a/source/_components/google_assistant.markdown +++ b/source/_components/google_assistant.markdown @@ -53,6 +53,8 @@ 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. + +If you're still having trouble, make sure that you're not connected to the same network Home Assistant is running on, e.g., use 4G/LTE instead.

## {% linkable_title First time setup %} @@ -62,7 +64,7 @@ You need to create an API Key with the [Google Cloud API Console](https://consol 1. Create a new project in the [Actions on Google console](https://console.actions.google.com/). 1. Add/Import a project and give it a name. 2. Click on the `Home Control` card, select the `Smart home` recommendation. - 3. Create an Action, under the build section. Add your Home Assistant URL: `https://[YOUR HOME ASSISTANT URL:PORT]/api/google_assistant`, replace the `[YOUR HOME ASSISTANT URL:PORT]` with the domain / IP address and the port under which your Home Assistant is reachable. + 3. Click `Build your Action`, select `Add Action(s)`, and click `Add your first action`. Add your Home Assistant URL: `https://[YOUR HOME ASSISTANT URL:PORT]/api/google_assistant`, replace the `[YOUR HOME ASSISTANT URL:PORT]` with the domain / IP address and the port under which your Home Assistant is reachable. 4. Click `Done`. Then click on `Overview`, which will lead you back to the app details screen. 2. `Account linking` is required for your app to interact with Home Assistant. Set this up under the `Quick Setup` section. 1. Leave it at the default `No, I only want to allow account creation on my website` and select Next. @@ -71,7 +73,7 @@ You need to create an API Key with the [Google Cloud API Console](https://consol 4. Client Secret: Anything you like, Home Assistant doesn't need this field. 5. Authorization URL (replace with your actual URL): `https://[YOUR HOME ASSISTANT URL:PORT]/auth/authorize`. 6. Token URL (replace with your actual URL): `https://[YOUR HOME ASSISTANT URL:PORT]/auth/token`. - 7. Configure your client. Add scopes for `email` and `name`. + 7. Configure your client: Type `email` and click `Add scope`, then type `name` and click `Add scope` again. 8. Do **NOT** check `Google to transmit clientID and secret via HTTP basic auth header`. 9. Testing instructions: Enter anything. It doesn't matter since you won't submit this app. @@ -130,7 +132,7 @@ allow_unlock: description: "When True, allows Google Assistant to unlock locks." required: false type: boolean - default: False + default: false api_key: description: Your Homegraph API key (for the `google_assistant.request_sync` service) required: false @@ -138,7 +140,7 @@ api_key: expose_by_default: description: "Expose devices in all supported domains by default. If set to false, you need to either expose domains or add the expose configuration option to each entity in `entity_config` and set it to true." required: false - default: True + default: true type: boolean exposed_domains: description: List of entity domains to expose to Google Assistant. @@ -177,7 +179,7 @@ entity_config: Currently, the following domains are available to be used with Google Assistant, listed with their default types: - group (on/off) -- input boolean (on/off) +- input_boolean (on/off) - scene (on) - script (on) - switch (on/off) @@ -186,7 +188,7 @@ Currently, the following domains are available to be used with Google Assistant, - lock (lock/unlock (to allow assistant to unlock, set the `allow_unlock` key in configuration)) - cover (on/off/set position (via set brightness)) - media_player (on/off/set volume (via set brightness)/source (via set input source)) -- climate (temperature setting) +- climate (temperature setting, operation_mode) - vacuum (dock/start/stop/pause) ### {% linkable_title Media Player Sources %} @@ -196,8 +198,22 @@ There is currently a limitation with this feature that requires a hard-coded set https://developers.google.com/actions/reference/smarthome/traits/modes #### Example Command: + "Hey Google, change input source to TV on Living Room Receiver" +### {% linkable_title Climate Operation Modes %} + +There is not an exact 1-1 match between Home Assistant and Google Assistant for the available operation modes. +Here are the modes that are currently available: + +- off +- heat +- cool +- heatcool (auto) +- fan-only +- dry +- eco + ### {% linkable_title Troubleshooting the request_sync service %} The request_sync service requires that the initial sync from Google includes the agent_user_id. If not, the service will log an error that reads something like "Request contains an invalid argument". If this happens, then [unlink the account](https://support.google.com/googlehome/answer/7506443) from Home Control and relink. diff --git a/source/_components/google_pubsub.markdown b/source/_components/google_pubsub.markdown new file mode 100644 index 000000000000..c7738613a315 --- /dev/null +++ b/source/_components/google_pubsub.markdown @@ -0,0 +1,86 @@ +--- +layout: page +title: "Google Pub/Sub" +description: "Setup for Google Pub/Sub integration" +date: 2019-01-12 13:30 +sidebar: true +comments: false +sharing: true +footer: true +logo: google-pubsub.png +ha_category: History +ha_release: 0.88 +--- + +The `google_pubsub` component allows you to hook into the Home Assistant event bus and send events to [Google Cloud Pub/Sub](https://cloud.google.com/pubsub/docs/overview). The current [free tier](https://cloud.google.com/free/) of GCP should allow you to sync about 1 event every 2 seconds on average (2 million invocations per month). + +## {% linkable_title First time setup %} + +This assumes you already have a Google Cloud project. If you don't, please create one in the [Google Cloud Console](https://console.cloud.google.com/projectcreate) + +You need to create a Service Account key in the [Google Cloud API Console](https://console.cloud.google.com/apis/credentials/serviceaccountkey) +- Choose a new "New Service Account", give it a name and leave the key type as JSON +- Select the role: Pub/Sub Publisher + +This will download the Service Account JSON key to your machine. Do NOT share this with anyone. Place this file in your Home Assistant config folder. + +Next, create a Google Pub/Sub topic in the [Google Cloud API Console](https://console.cloud.google.com/cloudpubsub/topicList). The topic name will become something like `projects/project-198373/topics/topic-name`. Note the last part only (the name you chose): `topic-name`. + + +## {% linkable_title Configuration %} + +Add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +google_pubsub: + project_id: YOUR_PROJECT_ID + topic_name: YOUR_TOPIC_NAME + credentials_json: CREDENTIALS_FILENAME +``` + +{% configuration %} +project_id: + description: Project ID from the Google console (looks like `words-2ab12`). + required: true + type: string +topic_name: + description: The Pub/Sub topic name. + required: true + type: string +credentials_json: + description: The filename of the Google Service Account JSON file. + required: true + type: string +filter: + description: Filter domains and entities for Google Cloud Pub/Sub. + required: false + type: map + default: Includes all entities from all domains + keys: + include_domains: + description: List of domains to include (e.g., `light`). + required: false + type: list + exclude_domains: + description: List of domains to exclude (e.g., `light`). + required: false + type: list + include_entities: + description: List of entities to include (e.g., `light.attic`). + required: false + type: list + exclude_entities: + description: List of entities to include (e.g., `light.attic`). + required: false + type: list +{% endconfiguration %} + +

+ Not filtering domains or entities will send every event to Google PubSub, thus hitting the free tier limit very fast. Be sure to fill in this configuration parameter or have a paid subscription for Google Cloud. +

+ +### {% linkable_title Saving the data using a Google Cloud Function %} + +To save your data automatically to BigQuery, follow the [instructions here](https://github.com/timvancann/home-assistant-pubsub-cloud-function). The current [free tier](https://cloud.google.com/free/) of GCP should allow to store up to 10GB of data. + diff --git a/source/_components/googlehome.markdown b/source/_components/googlehome.markdown new file mode 100644 index 000000000000..c0644592aed4 --- /dev/null +++ b/source/_components/googlehome.markdown @@ -0,0 +1,82 @@ +--- +layout: page +title: "Google Home" +description: "Instructions on how to connect to your Google Home device." +date: 2018-11-04 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: google_home.png +ha_release: 0.88 +ha_category: + - Hub + - Presence Detection + - Sensor +ha_iot_class: "Local Polling" +redirect_from: + - /components/device_tracker.googlehome/ +--- + +The `googlehome` component allows you to connect to your Google Home device using an [unofficial Google Home API][googlehomeapi]. + +This component will provide: +- [device_tracker](/components/device_tracker/) platform to track nearby bluetooth devices; +- [sensor](/components/sensor/) platform to track the alarms and the timers. + +## {% linkable_title Configuration %} + +To integrate the `googlehome` component in Home Assistant, add the following section to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +googlehome: + devices: + - host: IP_ADDRESS +``` + +{% configuration %} +devices: + description: A list of Google Home devices. + required: true + type: list + keys: + host: + description: The IP address of the Google Home device. + required: true + type: string + rssi_threshold: + description: The threshold for the RSSI signal of the device. + required: false + default: -70 + type: integer + device_types: + description: Device types that will be tracked [see device types](#device_types), by default all types are tracked. + required: false + type: list + track_alarms: + description: Setting to tell the component to track the alarms of the device. + required: false + type: boolean + default: false + track_devices: + description: Setting to tell the component to track nearby devices. + required: false + type: boolean + default: true +{% endconfiguration %} + +## {% linkable_title Device types %} + +Device type | Description +-- | -- +1 | Classic - BR/EDR devices +2 | Low Energy - LE-only +3 | Dual Mode - BR/EDR/LE + +## {% linkable_title Notes %} + +Devices will appear in the format `device_tracker._`. Note that dots are removed from the IP and BT MAC addresses. + +[googlehomeapi]: https://rithvikvibhu.github.io/GHLocalApi/ +[devicetrackerconfig]: /components/device_tracker/#configuring-a-device_tracker-platform diff --git a/source/_components/gpslogger.md b/source/_components/gpslogger.md new file mode 100644 index 000000000000..b02344facc58 --- /dev/null +++ b/source/_components/gpslogger.md @@ -0,0 +1,77 @@ +--- +layout: page +title: "GPSLogger" +description: "Instructions on how to use GPSLogger to track devices in Home Assistant." +date: 2016-11-25 15:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: gpslogger.png +ha_category: Presence Detection +ha_release: 0.86 +ha_iot_class: "Cloud Push" +--- + +This component sets up integration with [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 `POST` request to update GPS coordinates. This can be configured with Home Assistant to update your location. + +Enabling this component will automatically enable the [GPSLogger Device Tracker](/components/device_tracker.gpslogger/). + +## {% linkable_title Configuration %} + +To configure GPSLogger, you must set it up via the integrations panel in the configuration screen. This will give you the webhook URL to use during mobile device configuration (below). + +## {% linkable_title Setup on your smartphone %} + +Install [GPSLogger for Android](https://play.google.com/store/apps/details?id=com.mendhak.gpslogger) on your device. + +After the launch, go to **General Options**. Enable **Start on bootup** and **Start on app launch**. + +

+ + GPSLogger Settings +

+ +Go to **Logging details** and disable **Log to GPX**, **Log to KML** and **Log to NMEA**. Enable **Log to custom URL**. + +

+ + Logging Details +

+ +Right after enabling, the app will take you to the **Log to custom URL** settings. + +

+ + Log to custom URL details +

+ +The relevant endpoint starts with: `/api/webhook/` and ends with a unique sequence of characters. This is provided by the integrations panel in the configuration screen (configured above). + +```text +https://YOUR.DNS.HOSTNAME:PORT/api/webhook/WEBHOOK_ID +``` + +- Add the above URL (updating YOUR.DNS.HOSTNAME:PORT to your details) into the **URL** field. +- It's HIGHLY recommended to use SSL/TLS. +- 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. +- Add the following to **HTTP Body** +```text +latitude=%LAT&longitude=%LON&device=%SER&accuracy=%ACC&battery=%BATT&speed=%SPD&direction=%DIR&altitude=%ALT&provider=%PROV&activity=%ACT +``` +- You can change the `device_id` of your phone by replacing `&device=%SER` with `&device=SOME_DEVICE_ID`, otherwise your phone's serial number will be used. +- Check that the **HTTP Headers** setting contains +```text +Content-Type: application/x-www-form-urlencoded +``` +- Make sure that **HTTP Method** is changed to `POST` + +If your battery drains too fast then you can tune the performance of GPSLogger under **Performance** -> **Location providers** + +

+ + Performance +

+ +A request can be forced from the app to test if everything is working fine. A successful request will update the `known_devices.yaml` file with the device's serial number. diff --git a/source/_components/graphite.markdown b/source/_components/graphite.markdown index c4b8a78e2b1c..a5ac12376b8a 100644 --- a/source/_components/graphite.markdown +++ b/source/_components/graphite.markdown @@ -23,7 +23,7 @@ graphite: {% configuration %} host: - description: IP address of your graphite host, e.g., http://192.168.1.10. + description: IP address of your graphite host, e.g., 192.168.1.10. required: false type: string default: localhost diff --git a/source/_components/greeneye_monitor.markdown b/source/_components/greeneye_monitor.markdown index 596751358d51..721e41c28673 100644 --- a/source/_components/greeneye_monitor.markdown +++ b/source/_components/greeneye_monitor.markdown @@ -8,9 +8,13 @@ comments: false sharing: true footer: true logo: brultech.png -ha_category: Hub +ha_category: + - Hub + - Sensor ha_release: 0.82 ha_iot_class: "Local Push" +redirect_from: + - /components/sensor.greeneye_monitor/ --- The [GreenEye Monitor (GEM)](http://www.brultech.com/greeneye/) integration for Home Assistant allows you to create sensors for the various data channels of the GEM. Each current transformer (CT) channel, pulse counter, and temperature sensor appears in Home Assistant as a sensor, and can be used in automations. @@ -22,7 +26,7 @@ Configure your GEM(s) to produce binary-format packets (for example, "Bin32 NET" greeneye_monitor: port: 8000 monitors: - - serial_number: YOUR_SERIAL_NUMBER + - serial_number: "YOUR_SERIAL_NUMBER" channels: - number: 1 name: total_power @@ -53,9 +57,9 @@ monitors: type: list keys: serial_number: - description: The last five digits (omitting leading zeroes) of your GEM serial number. + description: Your 8-digit GEM serial number, as it appears in the UI. required: true - type: integer + type: string channels: description: The list of channels that should appear in Home Assistant for this monitor. Data from other channels will be ignored. required: false @@ -123,4 +127,3 @@ monitors: type: string default: s {% endconfiguration %} - diff --git a/source/_components/group.markdown b/source/_components/group.markdown index 30d3bb014850..e52617c002b4 100644 --- a/source/_components/group.markdown +++ b/source/_components/group.markdown @@ -61,7 +61,7 @@ name: 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." + description: "If yes then the entry will be shown as a view (tab) at the top. Groups that are set to `view: true` cannot be used as entities in other views." required: false type: boolean icon: diff --git a/source/_components/habitica.markdown b/source/_components/habitica.markdown index 7da9936d680f..87d439511860 100644 --- a/source/_components/habitica.markdown +++ b/source/_components/habitica.markdown @@ -8,13 +8,23 @@ comments: false sharing: true footer: true logo: habitica.png -ha_category: Hub +ha_category: + - Hub + - Sensor ha_version: 0.78 ha_iot_class: "Cloud Polling" +redirect_from: + - /components/sensor.habitica/ --- This component allows you to monitor and manage your Habitica profile. This component exposes the [Habitica's API](https://habitica.com/apidoc/) as a Home Assistant service. It supports multiple users and allows you to automate checking out your habits and daily tasks or casting magics using Home Assistant. -This component enables usage of [`sensor.habitica` platform.](/components/sensor.habitica/) + +There is currently support for the following device types within Home Assistant: + +- Sensor - Allows you to view and monitor your player data from [Habitica](https://habitica.com/) in Home Assistant. + +The sensors will automatically appear, after setup the Habitica component. + To use the component you should use this example configuration: ```yaml @@ -79,15 +89,17 @@ For example, let's say that there is a configured `habitica` platform for user ` Let's create a new task (a todo) for this user via Home Assistant. There is an [API call](https://habitica.com/apidoc/#api-Task-CreateUserTasks) for this purpose. To create a new task one should hit `https://habitica.com/api/v3/tasks/user` endpoint with `POST` request with a json object with task properties. So let's call the API on `habitica.api_call`. + * The `name` key becomes `xxxNotAValidNickxxx`. * The `path` key is trickier. - * Remove 'https://habitica.com/api/v3/' at the beginning of the endpoint URL. - * Split the remaining on slashes (/) and **append the lowercase method** at the end. - * You should get `["tasks", "user", "post"]`. To get a better idea of the API you are recommended to try all of the API calls in IPython console [using this package](https://github.com/ASMfreaK/habitipy/blob/master/README.md). + * Remove 'https://habitica.com/api/v3/' at the beginning of the endpoint URL. + * Split the remaining on slashes (/) and **append the lowercase method** at the end. + * You should get `["tasks", "user", "post"]`. To get a better idea of the API you are recommended to try all of the API calls in IPython console [using this package](https://github.com/ASMfreaK/habitipy/blob/master/README.md). * The `args` key is more or less described in the [docs](https://habitica.com/apidoc/). Combining all together: call `habitica.api_call` with data + ``` { "name": "xxxNotAValidNickxxx", @@ -101,6 +113,7 @@ This call will create a new todo on `xxxNotAValidNickxxx`'s account with text `U ![example task created](/images/screenshots/habitica_new_task.png) Also an event `habitica_api_call_success` will be fired with the following data: + ``` { "name": "xxxNotAValidNickxxx", diff --git a/source/_components/remote.harmony.markdown b/source/_components/harmony.markdown similarity index 78% rename from source/_components/remote.harmony.markdown rename to source/_components/harmony.markdown index 3d9743b3715a..0545e2b028b7 100644 --- a/source/_components/remote.harmony.markdown +++ b/source/_components/harmony.markdown @@ -11,6 +11,8 @@ logo: logitech.png ha_category: Remote ha_iot_class: "Local Push" ha_release: "0.34" +redirect_from: + - /components/remote.harmony/ --- The `harmony` remote platform allows you to control the state of your [Harmony Hub Device](http://www.logitech.com/en-us/product/harmony-hub). @@ -75,6 +77,8 @@ Upon startup one file will be written to your Home Assistant configuration direc - List of all programmed device names and ID numbers - List of all available commands per programmed device +This file will be overwritten whenever the Harmony HUB has a new configuration, there is no need to restart HASS. + ### {% linkable_title Service `remote.turn_off` %} Turn off all devices that were switched on from the start of the current activity. @@ -97,8 +101,14 @@ Start an activity. Will start the default `activity` from configuration.yaml if In the file 'harmony_REMOTENAME.conf' you can find the available activities, for example: ```text -Activities - 22054907 - Watch TV +{ + "Activities": { + "-1": "PowerOff", + "20995306": "Watch TV", + "20995307": "Play Games", + "20995308": "Listen Music" + } +} ``` Using the activity name 'Watch TV', you can call a service via automation to switch this activity on: @@ -118,11 +128,38 @@ Send a single command or a set of commands to one device, device ID and availabl | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | yes | Only act on a specific remote, else target all. -| `device` | no | Device ID to send the command to. +| `device` | no | Device ID or Device Name to send the command to. | `command` | no | A single command or a list of commands to send. | `num_repeats` | yes | The number of times to repeat the command(s). | `delay_secs` | yes | The number of seconds between sending each command. +In the file 'harmony_REMOTENAME.conf' you can find the available devices and commands, for example: + +```text +{ + "Devices": { + "TV": { + "commands": [ + "PowerOff", + "PowerOn" + ], + "id": "327297814" + }, + "Receiver": { + "commands": [ + "PowerOff", + "PowerOn", + "VolumeUp", + "VolumeDown", + "Mute" + ], + "id": "428297615" + } + } +} +``` + + A typical service call for sending several button presses looks like this: ```yaml @@ -130,16 +167,44 @@ service: remote.send_command data: entity_id: remote.tv_room command: - - home - - 1 - - 2 - device: 4576546 + - PowerOn + - Mute + device: Receiver + delay_secs: 0.6 +``` +OR +```yaml +service: remote.send_command +data: + entity_id: remote.tv_room + command: + - PowerOn + - Mute + device: 428297615 delay_secs: 0.6 ``` +### {% linkable_title Service `remote.harmony_change_channel` %} + +Sends the change channel command to the Harmony HUB + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | no | Only act on a specific remote, else target all. +| `channel` | no | Channel number to change to + +A typical service call for changing the channel would be:: + +```yaml +service: remote.change_channel +data: + entity_id: remote.tv_room + channel: 200 +``` + ### {% linkable_title Service `remote.harmony_sync` %} -Synchronize the Harmony device with the Harmony web service if any changes are made from the web portal or app. +Force synchronization between the Harmony device and the Harmony cloud. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | diff --git a/source/_components/hdmi_cec.markdown b/source/_components/hdmi_cec.markdown index 1ebe1831e674..ca1dd4c1f42b 100644 --- a/source/_components/hdmi_cec.markdown +++ b/source/_components/hdmi_cec.markdown @@ -26,7 +26,7 @@ The computer running Home Assistant must support CEC, and of course be connected ### {% linkable_title libcec %} -[libcec](https://github.com/Pulse-Eight/libcec) must be installed for this component to work. Follow the installation instructions for your environment, provided at the link. `libcec` installs Python 3 bindings by default as a system Python module. If you are running Home Assistant in a [Python virtual environment](/getting-started/installation-virtualenv/), make sure it can access the system module, by either symlinking it or using the `--system-site-packages` flag. +[libcec](https://github.com/Pulse-Eight/libcec) must be installed for this component to work. Follow the installation instructions for your environment, provided at the link. `libcec` installs Python 3 bindings by default as a system Python module. If you are running Home Assistant in a [Python virtual environment](/docs/installation/virtualenv/), make sure it can access the system module, by either symlinking it or using the `--system-site-packages` flag.

If you are using [Hass.io](/hassio/) then just move forward to the configuration as all requirements are already fulfilled. @@ -37,17 +37,17 @@ If you are using [Hass.io](/hassio/) then just move forward to the configuration Create a symlink to the `cec` installation including the _cec.so file. Keep in mind different installation methods will result in different locations of cec. ```bash -$ ln -s /path/to/your/installation/of/cec /path/to/your/venv/lib/python*/site-packages +$ ln -s /path/to/your/installation/of/cec.py /path/to/your/venv/lib/python*/site-packages $ ln -s /path/to/your/installation/of/_cec.so /path/to/your/venv/lib/python*/site-packages ``` ##### {% linkable_title Symlinking examples: %} -For the default virtual environment of a [HASSbian Image for Raspberry Pi](/getting-started/installation-raspberry-pi-image/) the command would be as follows. +For the default virtual environment of a [HASSbian Image for Raspberry Pi](/docs/installation/raspberry-pi/) the command would be as follows. ```bash -$ ln -s /usr/local/lib/python*/dist-packages/cec /srv/homeassistant/lib/python*/site-packages +$ ln -s /usr/local/lib/python*/dist-packages/cec.py /srv/homeassistant/lib/python*/site-packages $ ln -s /usr/local/lib/python*/dist-packages/_cec.so /srv/homeassistant/lib/python*/site-packages ``` diff --git a/source/_components/history.markdown b/source/_components/history.markdown index f372a33e4a87..c28297537348 100644 --- a/source/_components/history.markdown +++ b/source/_components/history.markdown @@ -134,7 +134,7 @@ you can set the flag `use_include_order` to true. ```yaml # Example configuration.yaml entry using specified entity display order history: - use_include_order: True + use_include_order: true include: entities: - sun.sun diff --git a/source/_components/history_graph.markdown b/source/_components/history_graph.markdown index a929385fa18b..42a8fe790465 100644 --- a/source/_components/history_graph.markdown +++ b/source/_components/history_graph.markdown @@ -71,7 +71,6 @@ history_graph: - sensor.inside_temperature hours_to_show: 120 # refresh: 0 - ``` - +For sensors to automatically be combined into one graph they need to have exactly the same unit of measurement. This is important if you have, e.g., a unit-less temperature `state_topic` MQTT sensor and you want to combine this with a weather sensor. `unit_of_measurement:` of the MQTT sensor then needs to be set to `°C`. diff --git a/source/_components/hive.markdown b/source/_components/hive.markdown index 4815bcf79423..1c6b2183c3c4 100644 --- a/source/_components/hive.markdown +++ b/source/_components/hive.markdown @@ -8,17 +8,34 @@ comments: false sharing: true footer: true logo: hive.png -ha_category: Hub +ha_category: + - Hub + - Binary Sensor + - Climate + - Light + - Sensor + - Switch ha_release: 0.59 ha_iot_class: "Cloud Polling" +redirect_from: + - /components/binary_sensor.hive/ + - /components/climate.hive/ + - /components/light.hive/ + - /components/sensor.hive/ + - /components/switch.hive/ --- - The `hive` component is the main component to set up and integrate all supported Hive devices. Once configured with the minimum required details it will detect and add all your Hive devices into Home Assistant, including support for multizone heating. This component uses the unofficial API used in the official Hive website [https://my.hivehome.com](https://my.hivehome.com), and you will need to use the same Username and Password you use on the Hive website to configure this Hive component in Home Assistant. +There is currently support for the following device types within Home Assistant: +- [Binary Sensor](#binary-sensor) +- [Climate](#climate) +- [Light](#light) +- [Sensor](#sensor) +- [Switch](#switch) To add your Hive devices into your Home Assistant installation, add the following to your `configuration.yaml` file: @@ -45,13 +62,50 @@ scan_interval: default: 2 {% endconfiguration %} +## {% linkable_title Binary Sensor %} + +The `hive` binary sensor component integrates your Hive sensors into Home Assistant. + +The platform supports the following Hive products: + +- Hive Window or Door Sensor +- Hive Motion Sensor + +## {% linkable_title Climate %} + +The `hive` climate platform integrates your Hive thermostat and hot water into Home Assistant, enabling control of setting the **mode** and setting the **target temperature**. + +A short boost for Hive Heating or Hive Hot water can be set by using the **Aux Heat** function, this will turn on the boost feature for Hive Heating or Hive Hot water for 30 minutes at 0.5 degrees higher than the current temperature. + +The platform supports the following Hive products: + +- Hive Active Heating +- Hive Multizone +- Hot water control + +## {% linkable_title Light %} -The Hive Home Assistant platform currently supports the following Hive devices: +The `hive` light platform integrates your Hive lights into Home Assistant, enabling control of various settings, depending on the model light. + +The platform supports the following Hive products: -- Hive Active Heating (including hot water and Hive Multizone) - Hive Active Light Dimmable - Hive Active Light Cool to Warm White - Hive Active Light Color Changing + +## {% linkable_title Sensor %} + +The `hive` sensor component exposes Hive data as a sensor. + +The platform exposes the following sensors: + +- Hive Hub Online Status +- Hive Outside Temperature + +## {% linkable_title Switch %} + +The `hive` switch platform integrates your Hive plugs into Home Assistant, enabling control of your devices. + +The platform supports the following Hive products: + - Hive Active Plug -- Hive Window or Door Sensor -- Hive Motion Sensor diff --git a/source/_components/hlk_sw16.markdown b/source/_components/hlk_sw16.markdown index 112cd59704ef..ce84b64f9a40 100644 --- a/source/_components/hlk_sw16.markdown +++ b/source/_components/hlk_sw16.markdown @@ -8,9 +8,13 @@ comments: false sharing: true footer: true logo: hlktech.jpg -ha_category: DIY +ha_category: + - DIY + - Switch ha_release: 0.84 ha_iot_class: "Local Push" +redirect_from: + - /components/switch.hlk_sw16/ --- The [HLK-SW16](http://www.hlktech.net/product_detail.php?ProId=48) by [Hi-Link](http://www.hlktech.net/) is a simple networkable 16 port relay device. diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown index 25faf84b3ff8..20c76a29dd92 100644 --- a/source/_components/homekit.markdown +++ b/source/_components/homekit.markdown @@ -124,7 +124,7 @@ homekit: type: list keys: feature: - description: Name of the feature to add to the entity representation. Valid features are `on_off`, `play_pause`, `play_stop` and `toogle_mute`. The media_player entity must support the feature to be valid. + description: Name of the feature to add to the entity representation. Valid features are `on_off`, `play_pause`, `play_stop` and `toggle_mute`. The media_player entity must support the feature to be valid. required: true type: string type: @@ -146,7 +146,7 @@ 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 Assistant frontend. A new card will display the `pin code`. Note: If pin code is not displayed, check "Notifications" (the bell icon) in the upper-right of the Home Assistant UI. 1. Open the `Home` app. 2. Click `Add Accessory`, then 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`. @@ -180,7 +180,7 @@ A common situation might be if you decide to disable parts of the configuration ## {% linkable_title Disable Auto Start %} -Depending on your setup, it might be necessary to disable `Auto Start` for all accessories to be available for `HomeKit`. Only those entities that are fully set up when the `HomeKit` component is started, can be added. To start `HomeKit` when `auto_start: False`, you can call the service `homekit.start`. +Depending on your setup, it might be necessary to disable `Auto Start` for all accessories to be available for `HomeKit`. Only those entities that are fully set up 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 to be 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. @@ -192,7 +192,7 @@ Please remember that you can only have a single `automation` entry. Add the auto ```yaml # Example for Z-Wave homekit: - auto_start: False + auto_start: false automation: - alias: 'Start HomeKit' @@ -214,7 +214,7 @@ For a general delay where your component doesn't generate an event, you can also ```yaml # Example using a delay after the start of Home Assistant homekit: - auto_start: False + auto_start: false automation: - alias: 'Start HomeKit' @@ -227,6 +227,35 @@ automation: ``` {% endraw %} +In some cases it might be desirable to check that all entities are available before starting `HomeKit`. This can be accomplished by adding and additional `binary_sensor` as follows: + +{% raw %} +```yaml +# Example checking specific entities to be available before start +homekit: + auto_start: False + +automation: + - alias: 'Start HomeKit' + trigger: + - platform: homeassistant + event: start + action: + - wait_template: >- + {% if not states.light.kitchen_lights %} + false + {% elif not states.sensor.outside_temperature %} + false + # Repeat for every entity + {% else %} + true + {% endif %} + timeout: 00:15 # Waits 15 minutes + continue_on_timeout: false + - service: homekit.start +``` +{% endraw %} + ## {% linkable_title Configure Filter %} By default, no entity will be excluded. To limit which entities are being exposed to `HomeKit`, you can use the `filter` parameter. Keep in mind only [supported components](#supported-components) can be added. @@ -269,7 +298,7 @@ To use `safe_mode`, add the option to your `homekit` config: ```yaml homekit: - safe_mode: True + safe_mode: true ``` Restart your Home Assistant instance. If you don't see a `pincode`, follow the [guide](#deleting-the-homekitstate-file) here. Now you should be able to pair normally. @@ -294,6 +323,7 @@ The following components are currently supported: | cover | WindowCovering | All covers that support `open_cover`, `stop_cover` and `close_cover` through value mapping. (`open` -> `>70`; `close` -> `<30`; `stop` -> every value in between) | | device_tracker | Sensor | Support for `occupancy` device class. | | fan | Fan | Support for `on / off`, `direction` and `oscillating`. | +| fan | Fan | All fans that support `speed` and `speed_list` through value mapping: `speed_list` is assumed to contain values in ascending order. The numeric ranges of HomeKit map to a corresponding entry of `speed_list`. The first entry of `speed_list` should be equivalent to `off` to match HomeKit's concept of fan speeds. (Example: `speed_list` = [`off`, `low`, `high`]; `off` -> `<= 33`; `low` -> between `33` and `66`; `high` -> `> 66`) | | light | Light | Support for `on / off`, `brightness` and `rgb_color`. | | lock | DoorLock | Support for `lock / unlock`. | | media_player | MediaPlayer | Represented as a series of switches which control `on / off`, `play / pause`, `play / stop`, or `mute` depending on `supported_features` of entity and the `mode` list specified in `entity_config`. | @@ -369,7 +399,8 @@ Pairing works fine when the filter is set to only include `demo.demo`, but fails #### {% linkable_title Pairing hangs - no error %} -Make sure that you don't try to add more than 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. +1. Make sure that you don't try to add more than 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. +2. Check logs, and search for `Starting accessory Home Assistant Bridge on address`. Make sure Home Assistant Bridge hook ups to a correct interface. If it did not, explicitly set `homekit.ip_address` configuration variable. #### {% linkable_title Duplicate AID found when attempting to add accessory %} diff --git a/source/_components/homekit_controller.markdown b/source/_components/homekit_controller.markdown index daa9e79b71e6..60a661376790 100644 --- a/source/_components/homekit_controller.markdown +++ b/source/_components/homekit_controller.markdown @@ -8,23 +8,40 @@ comments: false sharing: true footer: true logo: apple-homekit.png -ha_category: Hub +ha_category: + - Hub + - Alarm + - Climate + - Cover + - Light + - Lock + - Switch + - Binary Sensor + - Sensor ha_release: 0.68 ha_iot_class: "Local Polling" +redirect_from: + - /components/alarm_control_panel.homekit_controller/ + - /components/climate.homekit_controller/ + - /components/cover.homekit_controller/ + - /components/light.homekit_controller/ + - /components/lock.homekit_controller/ + - /components/switch.homekit_controller/ + - /components/sensor.homekit_controller/ --- [HomeKit](https://developer.apple.com/homekit/) controller integration for Home Assistant allows you to connect HomeKit accessories to Home Assistant. This component should not be confused with the [HomeKit](/components/homekit/) component, which allows you to control Home Assistant devices via HomeKit. -

- You may need additional packages to support the HomeKit Python module: - `$ sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev` -

- There is currently support for the following device types within Home Assistant: -- [Climate](/components/climate.homekit_controller/) -- [Light](/components/light.homekit_controller/) -- [Switch](/components/switch.homekit_controller/) +- Alarm Control Panel (HomeKit security system) +- Climate (HomeKit thermostats and air conditioners) +- Cover (HomeKit garage door openers, windows, or window coverings) +- Light (HomeKit lights) +- Lock (HomeKit lock) +- Switch (HomeKit switches) +- Binary Sensor (HomeKit motion sensors) +- Sensor (HomeKit humidity, temperature, and light level sensors) The component will be automatically configured if the [`discovery:`](/components/discovery/) component is enabled and an enable entry added for HomeKit: diff --git a/source/_components/homematic.markdown b/source/_components/homematic.markdown index dede62718a43..cc57415ac40d 100644 --- a/source/_components/homematic.markdown +++ b/source/_components/homematic.markdown @@ -8,15 +8,45 @@ comments: false sharing: true footer: true logo: homematic.png -ha_category: Hub +ha_category: + - Hub + - Binary Sensor + - Climate + - Cover + - Light + - Lock + - Notifications + - Sensor + - Switch ha_iot_class: "Local Push" +ha_release: 0.23 featured: false +redirect_from: + - /components/binary_sensor.homematic/ + - /components/climate.homematic/ + - /components/cover.homematic/ + - /components/light.homematic/ + - /components/lock.homematic/ + - /components/notify.homematic/ + - /components/sensor.homematic/ + - /components/switch.homematic/ --- The [Homematic](http://www.homematic.com/) component provides bi-directional communication with your CCU/Homegear. It uses a XML-RPC connection to set values on devices and subscribes to receive events the devices and the CCU emit. If you are using Homegear with paired [Intertechno](http://intertechno.at/) devices, uni-directional communication is possible as well. -Device support is available for most of the wired and wireless devices, as well as a lot of IP devices. If you have a setup with mixed protocols, you have to configure additional [interfaces](https://www.home-assistant.io/components/homematic#interfaces) with the appropriate ports. The default is using port 2001, which are wireless devices. Wired devices usually are available through port 2000 and IP devices through port 2010. The virtual thermostatgroups the CCU provides use port 9292 **and** require you to set the `path` setting to `/groups`. When using SSL on a CCU3, by default the same ports as usual with a prepended 4 are available. So 2001 becomes 42001, 2010 becomes 42010 etc.. +There is currently support for the following device types within Home Assistant: + +- Binary Sensor +- Climate +- Cover +- Light +- Lock +- Notifications +- Sensor +- Switch + +Device support is available for most of the wired and wireless devices, as well as a lot of IP devices. If you have a setup with mixed protocols, you have to configure additional [interfaces](/components/homematic#interfaces) with the appropriate ports. The default is using port 2001, which are wireless devices. Wired devices usually are available through port 2000 and IP devices through port 2010. The virtual thermostatgroups the CCU provides use port 9292 **and** require you to set the `path` setting to `/groups`. When using SSL on a CCU3, by default the same ports as usual with a prepended 4 are available. So 2001 becomes 42001, 2010 becomes 42010 etc.. If you want to see if a specific device you have is supported, head over to the [pyhomematic](https://github.com/danielperna84/pyhomematic/tree/master/pyhomematic/devicetypes) repository and browse through the source code. A dictionary with the device identifiers (e.g., HM-Sec-SC-2) can be found within the relevant modules near the bottom. If your device is not supported, feel free to contribute. @@ -92,7 +122,7 @@ jsonport: required: false type: integer username: - description: When fetching names via JSON-RPC, you need to specify a user with guest-access to the CCU. + description: When fetching names via JSON-RPC, you need to specify a user with guest-access to the CCU. Admin-access is required if you work with variables on the CCU. required: false type: string password: @@ -161,7 +191,7 @@ homematic: We use three approaches to fetch the names of devices. Each assumes you have properly named your devices in your existing Homematic setup. As a general advice: Use ASCII for your devices names. Home Assistant won't include non-ASCII characters in entity-names. 1. `json`: The CCU allows to fetch details of the paired devices via JSON-RPC. For this to work you need to add valid credentials to your component-configuration. Guest-access is sufficient to query for device names. -2. `xml`: If you use a CCU, there is an add-on called the "XML-API". With it installed, you are able to fetch all kinds of information from you CCU using XML-RPC. We can leverage this and fetch the names of devices set within the CCU. We don't support authentication with this method. +2. `xml`: If you use a CCU, there is an add-on called the "XML-API". With it installed, you are able to fetch all kinds of information from you CCU using XML-RPC. We can leverage this and fetch the names of devices set within the CCU. We don't support authentication with this method. The `json` method should be preferred over `xml`. Support for the XML-API is only available for downwards compatibility and may be disabled in a future release. 3. `metadata`: Homegear provides device-names through the metadata devices internally have. When using an HM-CFG-LAN interface, you typically use a configuration software ("HomeMatic-Komponenten konfigurieren" is the name of the shortcut on your desktop by default) to pair and configure your devices. If you have paired devices, you'll see them listed in a table. The leftmost column (Name) is prefilled with default names. You can click such a name and enter whatever you like. Resolving names can take some time. So when you start Home Assistant you won't see you devices at first. For a setup with 20+ devices it can take up to a minute until all devices show up in the UI. @@ -188,7 +218,7 @@ sensor: ### {% linkable_title Variables %} -It is possible to read and set values of system variables you have setup on the CCU/Homegear. The supported types for setting values are float- and bool-variables. +It is possible to read and set values of system variables you have setup on the CCU/Homegear. The supported types for setting values are float- and bool-variables. With the CCU a user with Admin-access is required. The states of the variables are available through the attributes of your hub entity (e.g., `homematic.ccu2`). Use templates (as mentioned above) to make your variables available to automations or as entities. The values of variables are polled from the CCU/Homegear in an interval of 30 seconds. Setting the value of a variable happens instantly and is directly pushed. @@ -236,15 +266,17 @@ It may happen that "your_nice_name" is not resolved correctly; the according mes #### {% linkable_title `homematic.keypress` events for HomeMatic IP devices %} -To get the `homematic.keypress` event for some HomeMatic IP devices like WRC2 / WRC6 (wall switch) or SPDR (passage sensor) you have to temporary create an empty program for each channel in the CCU: +To get the `homematic.keypress` event for some HomeMatic IP devices like WRC2 / WRC6 (wall switch) or SPDR (passage sensor) or the KRC4 (key ring remote control) you have to temporary create an empty program for each channel in the CCU: 1. In the menu of your CCU's admin panel go to `Programs and connections` > `Programs & CCU connection` 2. Go to `New` in the footer menu 3. Click the plus icon below `Condition: If...` and press the button `Device selection` 4. Select one of the device's channels you need (1-2 / 1-6 for WRC2 / WRC6 and 2-3 for SPDR) -5. Save the program with the `OK` button -6. When your channel is working now, you can edit it to select the other channels one by one -7. At the end, you can delete this program from the CCU +5. Select short or long key press +6. Save the program with the `OK` button +7. Trigger the program by pressing the button as configured in step 5. Your device might indicate success via a green LED or similar. When you select the device in `Status and control` > `Devices` on the CCU, the `Last Modified` field should no longer be empty +8. When your channel is working now, you can edit it to select the other channels one by one +9. At the end, you can delete this program from the CCU ### {% linkable_title Services %} @@ -374,11 +406,11 @@ When the connection to your HomeMatic CCU or Homegear is lost, Home Assistant wi service: homematic.reconnect ``` -- If you have a CCU you can also create a system variable on the CCU, which stores its last reboot time. Since Home Assistant can still refresh system variables from the CCU (even after a reboot), this is a pretty reliable way to detect situations where you need to call *homematic.reconnect*. This is how this can be done: +- If you have a CCU you can also create a system variable on the CCU, which stores its last reboot time. Since Home Assistant can still refresh system variables from the CCU (even after a reboot) this is another option to call *homematic.reconnect*. Even though this option might look preferrable to many since it does not rely on a sensor, **it is less fail-safe** than checking for updates of a sensor. Since the variable on the CCU is only changed on boot, any problem that causes the connection between Home Assistant and the CCU to break but will not result in a reboot will not be detected (eg. in case of networking issues). This is how this can be done: 1. Create a string variable **V_Last_Reboot** on the CCU - 2. Creata a new programm on the CCU **without any conditions**, which executes the following *HM-Script* with a delay of 30 seconds: + 2. Creata a new programm on the CCU **without any conditions**, which executes the following *HM-Script* with a delay of 30 seconds. The Script needs to be implemented within the section `Activity: Then`. ```javascript var obj = dom.GetObject("V_Last_Reboot"); @@ -410,3 +442,103 @@ When the connection to your HomeMatic CCU or Homegear is lost, Home Assistant wi action: service: homematic.reconnect ``` + +## {% linkable_title Notifications %} + +The `homematic` notification platform enables invoking Homematic devices. + +To use this notification platform in your installation, add the following to your `configuration.yaml` file: + +## {% linkable_title Configuration %} + +```yaml +# Example configuration.yaml entry +notify: + - name: my_hm + platform: homematic + address: NEQXXXXXXX + channel: 2 + param: "SUBMIT" + value: "1,1,108000,8" +``` + +{% configuration %} +address: + description: The address of your Homematic device. The address is the serial number of the device shown in the CCU in the `devices` section in the column `serial number`. + required: true + type: string +channel: + description: The channel of your Homematic device. + required: true + type: integer +param: + description: An additional parameter for the Homematic device. + required: true + type: string +interface: + description: Set the name of the interface from the config. + required: false + type: string +value: + description: This is the value that is set on the device. Its device specific. + required: true + type: string +{% endconfiguration %} + +### {% linkable_title Usage %} + +`homematic` is a notify platform and can be controlled by calling the notify service [as described here](/components/notify/). + +Only the `data` part of the event payload is processed. This part can specify or override the value given as configuration variable: + +```json +{ + "data": { + "address": "NEQXXXXXXX", + "channel": 2, + "param": "SUBMIT", + "value": "1,1,108000,8" + } +} +``` + +It is possible to provide a template in order to compute the value: + +{% raw %} +```json +{ + "data": { + "value": "1,1,108000{% if is_state('binary_sensor.oeqxxxxxxx_state', 'on') %},1{% endif %}{% if is_state('binary_sensor.oeqxxxxxxx_state', 'on') %},2{% endif %}" + } +} +``` +{% endraw %} + +You can also specify the event payload using a group notification (instead of specifying the value for the notify itself): + +{% raw %} +```yaml +notify: + - name: my_hm + platform: homematic + address: NEQXXXXXXX + - name: group_hm + platform: group + services: + - service: my_hm + data: + data: + value: "1,1,108000{% if is_state('binary_sensor.oeqxxxxxxx_state', 'on') %},1{% endif %}{% if is_state('binary_sensor.oeqxxxxxxx_state', 'on') %},2{% endif %}" + +alert: + temperature: + name: Temperature too high + done_message: Temperature OK + entity_id: binary_sensor.temperature_too_high + can_acknowledge: true + notifiers: + - group_hm +``` +{% endraw %} + +Please note that the first `data` element belongs to the service `my_hm`, while the second one belongs to the event payload. diff --git a/source/_components/homematicip_cloud.markdown b/source/_components/homematicip_cloud.markdown index 42ee4b27e2ad..c2706495025f 100644 --- a/source/_components/homematicip_cloud.markdown +++ b/source/_components/homematicip_cloud.markdown @@ -8,30 +8,57 @@ comments: false sharing: true footer: true logo: homematicip_cloud.png -ha_category: Hub +ha_category: + - Hub + - Alarm + - Binary Sensor + - Climate + - Cover + - Light + - Sensor + - Switch ha_iot_class: "Cloud Push" ha_release: 0.66 featured: false +redirect_from: + - /components/alarm_control_panel.homematicip_cloud/ + - /components/binary_sensor.homematicip_cloud/ + - /components/climate.homematicip_cloud/ + - /components/cover.homematicip_cloud/ + - /components/light.homematicip_cloud/ + - /components/sensor.homematicip_cloud/ + - /components/switch.homematicip_cloud/ --- The [HomematicIP](http://www.homematic-ip.com) component platform is used as an interface to the cloud server. Since there is no official documentation about this API, everything was done via reverse engineering. The [homematicip-rest-api](https://github.com/coreGreenberet/homematicip-rest-api) is used for communicating. Use at your own risk. +There is currently support for the following device types within Home Assistant: + +* Alarm +* Binary Sensor +* Climate +* Cover +* Light +* Sensor +* Switch + ## {% linkable_title Setup the component via the frontend %} Menu: *Configuration* -> *Integrations* - + Fill the form: + * Your **access point ID** (SGTIN) * Optional a **name** to identify your access point, this will be used to prefix your device names. - + The authentification token will be generated and stored internally. ## {% linkable_title Setup the component using the configuration files %} - + Generate the authentication token: - + `generate_auth_token.py` - + Add the information to your `configuration.yaml` file: ```yaml @@ -60,32 +87,40 @@ authtoken: ## {% linkable_title Implemented and tested devices %} -- homematicip_cloud.alarm_control_panel - - Security zones (*HmIP-SecurityZone*) - -- homematicip_cloud.binary_sensor - - Window and door contact (*HmIP-SWDO*) - - Rotary Handle Sensor (*HmIP-SRH*) - - Smoke sensor and alarm (*HmIP-SWSD*) - - Motion detectors (*HmIP-SMI*) - - Motion detectors and push button (*HmIP-SMI55*) - - Water detector (*HmIP-SWD*) - -- homematicip_cloud.climate - - Radiator thermostat (*HmIP-eTRV,-2*) - - Climate group (*HmIP-HeatingGroup*) - -- homematicip_cloud.light - - Switch actuator and meter for brand switches (*HmIP-BSM*) - - Dimming actuator for brand switches (*HmIP-BDT*) - -- homematicip_cloud.sensor - - Accesspoint duty-cycle (*HmIP-HAP*) - - Wall-mounted thermostat (*HmIP-WTH*) - - Temperature and humidity sensor (*HmIP-STH*) - - Temperature and humidity Sensor with display (*HmIP-STHD*) - - Outdoor temperature and humidity sensor (*HmIP-STHO*) - - Illuminance sensor (*HmIP-SMI, 55*) - -- homematicip_cloud.switch - - Pluggable Switch and Meter (*HmIP-PSM*) +* homematicip_cloud.alarm_control_panel + * Security zones (*HmIP-SecurityZone*) + +* homematicip_cloud.binary_sensor + * Window and door contact (*HmIP-SWDO, -I*) + * Rotary Handle Sensor (*HmIP-SRH*) + * Smoke sensor and alarm (*HmIP-SWSD*) + * Motion detectors (*HmIP-SMI*) + * Water detector (*HmIP-SWD*) + +* homematicip_cloud.climate + * Radiator thermostat (*HmIP-eTRV,-2*) - should also work with (*HmIP-eTRV-2-UK, -B, -B1, -C*) + * Climate group (*HmIP-HeatingGroup*) + +* homematicip_cloud.light + * Switch actuator and meter for brand switches (*HmIP-BSM*) + * Dimming actuator for brand switches (*HmIP-BDT*) + * Dimming actuator flush-mount (*HmIP-FDT*) + * Switch Actuator and Meter – flush-mount (*HmIP-FSM*) + +* homematicip_cloud.sensor + * Accesspoint duty-cycle (*HmIP-HAP, -B1*) + * Wall-mounted thermostat (*HmIP-WTH, -2*) + * Temperature and humidity sensor (*HmIP-STH*) + * Temperature and humidity Sensor with display (*HmIP-STHD*) + * Outdoor temperature and humidity sensor (*HmIP-STHO, -A*) + * Illuminance sensor (*HmIP-SMI*) + +* homematicip_cloud.switch + * Pluggable Switch (*HmIP-PS*) + * Pluggable Switch and Meter (*HmIP-PSM*) - should also work with (*HmIP-PSM-CH, -IT, -UK, -PE*) + +* homematicip_cloud.shutter + * Blind actuator for brand switches (*HmIP-BBL*) + * Shutter actuator brand-mount (*HmIP-BROLL*) + * Shutter actuator flush-mount (*HmIP-FROLL*) + diff --git a/source/_components/homeworks.markdown b/source/_components/homeworks.markdown new file mode 100644 index 000000000000..7f0e2f3172e0 --- /dev/null +++ b/source/_components/homeworks.markdown @@ -0,0 +1,91 @@ +--- +layout: page +title: "Homeworks Hub" +description: "How to use Lutron Homeworks Series 4 & 8 with Home Assistant." +date: 2018-10-05 23:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: lutron.png +ha_category: + - Hub + - Light +featured: false +ha_release: 0.85 +ha_iot_class: "Local Push" +redirect_from: + - /components/binary_sensor.homeworks/ + - /components/light.homeworks/ +--- + +[Lutron](http://www.lutron.com/) is an American lighting control company. The Lutron Homeworks Series 4 & 8 systems are relatively old (~2003), and use RS-232 connections to communicate with home automation systems. The `homeworks` component in Home Assistant is responsible for communicating with the main controller for these systems. Communication is through an ethernet to serial converter (NPort, for example). + +Only a subset of the Homeworks system is supported - lights and keypads. + +Lutron has created many systems over the years, each with their own unique interfacing protocol. There are three Homeworks systems - QS, Series 4 & 8, and original. This platform is only for Series 4 & 8. There is another component [lutron](/components/lutron/) which handles Lutron RadioRA 2 systems. + +Homeworks keypad buttons are momentary switches. The button is pressed and released, meaning that there is no "state". Buttons generate `homeworks_button_press` and `homeworks_button_release` events. These events contain the "id", "name", and "button" of the button that was pressed. "id" is derived from "name", and "button" is the number of the button on the keypad (starting at 1). + +## {% linkable_title Configuration %} + +The protocol for automatically extracting device information from the controller isn't documented, so the `homeworks` component must be configured manually. To use Lutron Homeworks devices in your installation, add the following to your `configuration.yaml` file: + +``` yaml +# Example configuration.yaml entry +homeworks: + host: IP_ADDRESS + port: 4001 + dimmers: + - addr: "[02:08:01:01]" + name: "Foyer Sconces" + - addr: "[02:08:01:02]" + name: "Foyer Downlights" + rate: 2 + + keypads: + - addr: "[02:08:02:01]" + name: "Foyer Keypad" +``` + +{% configuration %} +host: + description: The IP address of the ethernet to serial adapter. It is assumed that the adaptor has been preconfigured. + required: true + type: string +port: + description: The port of the ethernet to serial adapter. + required: true + type: port +dimmers: + description: List of dimmers. + required: false + type: list + keys: + addr: + description: The unique address of the dimmer on the controller. The quotes, brackets, and number formatting must be of the form `"[##:##:##:##]"`. + required: true + type: string + name: + description: The name of the sensor will be the title of the button +`"_"` + the name of the keypad/ + required: true + type: string + rate: + description: The amount of time (in seconds) for the light to transition to a new brightness level. + required: false + type: float + default: 1 +keypads: + description: List of keypads. + required: false + type: list + keys: + addr: + description: The unique address of the keypad on the controller. The quotes, brackets, and number formatting must be of the form `"[##:##:##:##]"`. + required: true + type: string + name: + description: The name of the keypad. + required: true + type: string +{% endconfiguration %} diff --git a/source/_components/http.markdown b/source/_components/http.markdown index a10425e3cfee..2b452b4cb0ce 100644 --- a/source/_components/http.markdown +++ b/source/_components/http.markdown @@ -27,7 +27,7 @@ http: {% configuration %} api_password: - description: Protect the Home Assistant API with a password - this password can also be used to log in to the frontend. Where possible you should use a long lasting access token instead of this. + description: Protect the Home Assistant API with a password - this password can also be used to log in to the frontend. Where your client or other software supports it, you should use [long lasting access token](/docs/authentication/#your-account-profile) instead, as [shown in the REST API](https://developers.home-assistant.io/docs/en/external_api_rest.html) and [websocket API](https://developers.home-assistant.io/docs/en/external_api_websocket.html) documentation. required: false type: string server_host: @@ -41,7 +41,7 @@ server_port: type: integer default: 8123 base_url: - description: "The URL that Home Assistant is available on the internet. For example: `https://hass-example.duckdns.org:8123`. The iOS app finds local installations, if you have an outside URL use this so that you can auto-fill when discovered in the app." + description: "The URL that Home Assistant is available on the internet. For example: `https://hass-example.duckdns.org:8123`. The iOS app finds local installations, if you have an outside URL use this so that you can auto-fill when discovered in the app. Note that setting may contain protocol, hostname and port; using a path is not currently supported." required: false type: string default: Your local IP address @@ -137,7 +137,7 @@ terminology used around Home Assistant. Home Assistant's ## {% linkable_title HTTP sensors %} To use those kind of [sensors](/components/sensor.http/) or -[binary sensors](components/binary_sensor.http/) in your installation no +[binary sensors](/components/binary_sensor.http/) in your installation no configuration in Home Assistant is needed. All configuration is done on the devices themselves. This means that you must be able to edit the target URL or endpoint and the payload. diff --git a/source/_components/hue.markdown b/source/_components/hue.markdown index d9832903b1f7..7b7849bd4238 100644 --- a/source/_components/hue.markdown +++ b/source/_components/hue.markdown @@ -8,16 +8,24 @@ comments: false sharing: true footer: true logo: philips_hue.png -ha_category: Hub +ha_category: + - Hub + - Light ha_iot_class: "Local Polling" ha_qa_scale: platinum featured: true ha_release: "0.60" ha_qa_scale: platinum +redirect_from: + - /components/light.hue/ --- Philips Hue support is integrated into Home Assistant as a Hub that can drive the light platform. The preferred way to setup the Philips Hue platform is by enabling the [discovery component](/components/discovery/). +There is currently support for the following device types within Home Assistant: + +- Light + Once discovered, if you have a custom default view, locate `configurator.philips_hue` in the entities list ( < > ) and add it to a group in `configuration.yaml`. Restart Home Assistant so that the configurator is visible in the Home Assistant dashboard. Once Home Assistant is restarted, locate and click on `configurator.philips_hue` to bring up the initiation dialog. This will prompt you to press the Hue button to register the Hue hub in Home Assistant. Once complete, the configurator entity isn't needed anymore and can be removed from any visible group in `configuration.yaml`. When you configure the Hue bridge from Home Assistant, it writes a token to a file in your Home Assistant [configuration directory](/docs/configuration/). That token authenticates the communication with the Hue bridge. This token uses the Address of the Hue Bridge. If the IP address for the Hue Bridge changes, you will need to register the Hue Bridge with Home Assistant again. To avoid this you may set up DHCP registration for your Hue Bridge, so that it always has the same IP address. @@ -35,7 +43,7 @@ hue: {% configuration %} host: - description: The IP address of the device, eg. 192.168.1.10. Required if not using the `discovery` component to discover Hue bridges. + description: The IP address of the device, e.g., 192.168.1.10. Required if not using the `discovery` component to discover Hue bridges. required: true type: string allow_unreachable: @@ -47,7 +55,7 @@ filename: required: false type: string allow_hue_groups: - description: Enable this to stop Home Assistant from importing the groups defined on the Hue bridge. + description: Disable this to stop Home Assistant from importing the groups defined on the Hue bridge. required: false type: boolean {% endconfiguration %} @@ -108,7 +116,7 @@ To create a `LightGroup` named `Ceiling lights` that contains the lights 1, 2 an $ curl -XPOST -d '{"name": "Ceiling lights", "lights": ["1", "2", "3"]}' http:///api//groups ``` -The `` is the string that is used to register Home Assistant on the bridge, you can find it in the `phue.conf` file in your configuration path. `` is the IP address or hostname of your Hue bridge. +The `` is the string that is used to register Home Assistant on the bridge, you can find it in the `core.config_entries` file in your configuration\.storage path. `` is the IP address or hostname of your Hue bridge. You can find out the ids of your lights by executing the following command: @@ -124,7 +132,6 @@ Home Assistant will automatically detect your new `LightGroup` and add it to the More information can be found on the [Philips Hue API documentation](https://www.developers.meethue.com/documentation/groups-api#22_create_group) website. - ### {% linkable_title Using Hue Scenes in Home Assistant %} The Hue platform has its own concept of scenes for setting the colors of a group of lights at once. Hue Scenes are very cheap, get created by all kinds of apps (as it is the only way to have 2 or more lights change at the same time), and are rarely deleted. A typical Hue hub might have hundreds of scenes stored in them, many that you've never used, almost all very poorly named. diff --git a/source/_components/idteck_prox.markdown b/source/_components/idteck_prox.markdown new file mode 100644 index 000000000000..36c8c2541f66 --- /dev/null +++ b/source/_components/idteck_prox.markdown @@ -0,0 +1,47 @@ +--- +layout: page +title: "IDTECK Prox Card Reader" +description: "How to use IDTECK proximity card readers." +date: 2018-11-14 13:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: idteck.jpg +ha_category: Other +featured: false +ha_release: 0.85 +ha_iot_class: "Local Push" +--- + +[IDTECK](http://www.idteck.com) makes ID systems used to control access and identify users. This component works with [Proximity Readers](http://www.idteck.com/en/products/proximity-reader-__-card-%26-tag-__125khz) (RFID card readers). The device is connected to Home Assistant through a serial to ethernet converter (NPort). + +An `idteck_prox_keycard` event is fired whenever a card or key sequence has been entered. The event contains 'card' - the card/key sequence, and the 'name' of the card reader. Checking 'card' against known card numbers can be used as the basis of an entry control system, or as part of a check-in/check-out system. + +## {% linkable_title Configuration %} + +``` yaml +# Example configuration.yaml entry +idteck_prox: + - host: host1.domain.com + port: 4001 + name: "Lower Door" + - host: host2.domain.com + port: 4001 + name: "Upper Door" +``` + +{% configuration %} +host: + description: The hostname or IP address of the ethernet to serial adapter that is connected to the proximity reader. It is assumed that the adapter has been preconfigured. + required: true + type: string +port: + description: The port of the ethernet to serial adapter + required: true + type: port +name: + description: The name of the prox card reader + required: true + type: string +{% endconfiguration %} diff --git a/source/_components/ifttt.markdown b/source/_components/ifttt.markdown index 32f848d63b8b..2c127fe08a10 100644 --- a/source/_components/ifttt.markdown +++ b/source/_components/ifttt.markdown @@ -17,10 +17,14 @@ ha_iot_class: "Cloud Push" ## {% linkable_title Sending events from IFTTT to Home Assistant %} -To be able to receive events from IFTTT, your Home Assistant instance needs to be accessible from the web ([Hass.io instructions](/addons/duckdns/)) and you need to have the `base_url` configured for the HTTP component ([docs](https://www.home-assistant.io/components/http/#base_url)). +To be able to receive events from IFTTT, your Home Assistant instance needs to be accessible from the web ([Hass.io instructions](/addons/duckdns/)) and you need to have the `base_url` configured for the HTTP component ([docs](/components/http/#base_url)). + +### {% linkable_title Setting up the integration %} To set it up, go to the integrations page in the configuration screen and find IFTTT. Click on configure. Follow the instructions on the screen to configure IFTTT. +### {% linkable_title Using the incoming data %} + Events coming in from IFTTT will be available as events in Home Assistant and are fired as `ifttt_webhook_received`. The data specified in IFTTT will be available as the event data. You can use this event to trigger automations. For example, set the body of the IFTTT webhook to: diff --git a/source/_components/image_processing.facebox.markdown b/source/_components/image_processing.facebox.markdown index f2aa63536852..d8253cc04085 100644 --- a/source/_components/image_processing.facebox.markdown +++ b/source/_components/image_processing.facebox.markdown @@ -77,7 +77,7 @@ source: ## {% linkable_title Automations %} -Use the `image_processing.detect_face` events to trigger automations, and breakout the `trigger.event.data` using a [data_template](https://www.home-assistant.io/docs/automation/templating/). The following example automation sends a notification when Ringo Star is recognized: +Use the `image_processing.detect_face` events to trigger automations, and breakout the `trigger.event.data` using a [data_template](/docs/automation/templating/). The following example automation sends a notification when Ringo Star is recognized: {% raw %} ```yaml @@ -139,7 +139,7 @@ You can use an automation to receive a notification when you train a face: ``` {% endraw %} -Any errors on teaching will be reported in the logs. If you enable [system_log](https://www.home-assistant.io/components/system_log/) events: +Any errors on teaching will be reported in the logs. If you enable [system_log](/components/system_log/) events: ```yaml system_log: diff --git a/source/_components/image_processing.qrcode.markdown b/source/_components/image_processing.qrcode.markdown new file mode 100644 index 000000000000..6bb56d462eda --- /dev/null +++ b/source/_components/image_processing.qrcode.markdown @@ -0,0 +1,46 @@ +--- +layout: page +title: "QR Code Recognition" +description: "Instructions on how to integrate QR Code Recognition into Home Assistant." +date: 2019-01-18 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: Image Processing +featured: false +ha_release: 0.87 +--- + +The `qrcode` image processing platform enables QR code recognition from cameras. + +To get this running, please install `zbar-tools` (Ubuntu 18.04) + +## {% linkable_title Configuration %} + +To enable this, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +image_processing: + - platform: qrcode + source: + - entity_id: camera.door +``` + +{% 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.tensorflow.markdown b/source/_components/image_processing.tensorflow.markdown index 1ecd0591fff1..96821aa6b78b 100644 --- a/source/_components/image_processing.tensorflow.markdown +++ b/source/_components/image_processing.tensorflow.markdown @@ -160,4 +160,4 @@ image_processing: ## {% 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. +[Image processing components](/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/input_datetime.markdown b/source/_components/input_datetime.markdown index ae403e127592..5a3d8aa005ee 100644 --- a/source/_components/input_datetime.markdown +++ b/source/_components/input_datetime.markdown @@ -114,9 +114,11 @@ automation: {% endraw %} To dynamically set the `input_datetime` you can call -`input_datetime.set_datetime`. The following example can be used in an -automation rule: +`input_datetime.set_datetime`. The values for `date` and `time` must be in a certain format for the call to be successful. +You can use either `strftime("%Y-%m-%d")`/`strftime("%H:%M:%S")` or `timestamp_custom("%Y-%m-%d", true)`/`timestamp_custom("%H:%M:%S", true)` filter respectively. +The following example can be used in an automation rule: +{% raw %} ```yaml # Example configuration.yaml entry # Sets input_datetime to '05:30' when an input_boolean is turned on. @@ -126,8 +128,24 @@ automation: entity_id: input_boolean.example to: 'on' action: - service: input_datetime.set_datetime + - service: input_datetime.set_datetime entity_id: input_datetime.bedroom_alarm_clock_time data: time: '05:30:00' + - service: input_datetime.set_datetime + entity_id: input_datetime.another_time + data_template: + time: '{{ now().strftime("%H:%M:%S") }}' + - service: input_datetime.set_datetime + entity_id: input_datetime.another_date + data_template: + date: '{{ now().strftime("%Y-%m-%d") }}' + - service: input_datetime.set_datetime + data_template: + entity_id: input_datetime.date_and_time + date: > + {{ now().timestamp() | timestamp_custom("%Y-%m-%d", true) }} + time: > + {{ now().timestamp() | timestamp_custom("%H:%M:%S", true) }} ``` +{% endraw %} diff --git a/source/_components/input_select.markdown b/source/_components/input_select.markdown index 826ddb9f7c70..92a27d6c851b 100644 --- a/source/_components/input_select.markdown +++ b/source/_components/input_select.markdown @@ -23,8 +23,8 @@ input_select: who_cooks: name: Who cooks today options: - - Paulus - - Anne Therese + - Paulus + - Anne Therese initial: Anne Therese icon: mdi:panda living_room_preset: diff --git a/source/_components/input_text.markdown b/source/_components/input_text.markdown index cfa3ec4cdf7e..4907e82659ad 100644 --- a/source/_components/input_text.markdown +++ b/source/_components/input_text.markdown @@ -70,6 +70,50 @@ input_text: default: text {% endconfiguration %} +### {% linkable_title Services %} + +This components provide three services to modify the state of the `input_text`. + +| Service | Data | Description | +| ------- | ---- | ----------- | +| `set_value` | `value`
`entity_id(s)` | Set the value for specific `input_text` entities. + ### {% linkable_title Restore State %} This component will automatically restore the state it had prior to Home Assistant stopping as long as your entity does **not** have a set value for `initial`. To disable this feature, set a valid value for `initial`. + +## {% linkable_title Automation Examples %} + +Here's an example using `input_text` in an action in an automation. + +{% raw %} +```yaml +# Example configuration.yaml entry using 'input_text' in an action in an automation +input_select: + scene_bedroom: + name: Scene + options: + - Select + - Concentrate + - Energize + - Reading + - Relax + - 'OFF' + initial: 'Select' +input_text: + bedroom: + name: Brightness + +automation: + - alias: Bedroom Light - Custom + trigger: + platform: state + entity_id: input_select.scene_bedroom + action: + - service: input_text.set_value + # Again, note the use of 'data_template:' rather than the normal 'data:' if you weren't using an input variable. + data_template: + entity_id: input_text.bedroom + value: "{{ states('input_select.scene_bedroom') }}" +``` +{% endraw %} diff --git a/source/_components/insteon.markdown b/source/_components/insteon.markdown index 0eee1e404339..49b511479ba1 100644 --- a/source/_components/insteon.markdown +++ b/source/_components/insteon.markdown @@ -8,13 +8,37 @@ comments: false sharing: true footer: true logo: insteon.png -ha_category: Hub +ha_category: + - Hub + - Binary Sensor + - Cover + - Fan + - Light + - Sensor + - Switch ha_iot_class: "Local Push" ha_version: 0.77 +redirect_from: + - /components/binary_sensor.insteon/ + - /components/cover.insteon/ + - /components/fan.insteon/ + - /components/light.insteon/ + - /components/sensor.insteon/ + - /components/switch.insteon/ --- -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. + +There is currently support for the following device types within Home Assistant: + +- Binary Sensor +- Cover +- Fan +- Light +- Sensor +- Switch + +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 @@ -181,7 +205,7 @@ In order for any two Insteon devices to talk with one another, they must be link 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/ +[Development Tools]: /docs/tools/dev-tools/ [HouseLinc]: https://www.smarthome.com/houselinc.html [Insteon Terminal]: https://github.com/pfrommerd/insteon-terminal [insteonplm_interactive]: https://github.com/nugget/python-insteonplm#command-line-interface @@ -287,4 +311,4 @@ The INSTEON Hub has three known issues that are inherent to the design of the Hu 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. \ No newline at end of file diff --git a/source/_components/insteon_local.markdown b/source/_components/insteon_local.markdown deleted file mode 100644 index 25f8d1576502..000000000000 --- a/source/_components/insteon_local.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Insteon (local)" -description: "Instructions on how to setup the Insteon Hub locally within Home Assistant." -date: 2016-12-18 08:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: insteon.png -ha_category: Hub -ha_iot_class: "Local Polling" -ha_version: 0.36 ---- - -The `insteon_local` component is depreciated and has been replaced by the [insteon] component. - -[insteon]: /components/insteon diff --git a/source/_components/insteon_plm.markdown b/source/_components/insteon_plm.markdown deleted file mode 100644 index ff8d33a1527a..000000000000 --- a/source/_components/insteon_plm.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Insteon PLM" -description: "Instructions on how to setup an Insteon USB PLM locally within Home Assistant." -date: 2017-02-19 16:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: insteon.png -ha_category: Hub -ha_iot_class: "Local Push" -ha_version: 0.39 ---- - -The `insteon_plm` component is depreciated and has been replaced by the [insteon] component. - -[insteon]: /components/insteon diff --git a/source/_components/intent_script.markdown b/source/_components/intent_script.markdown index bf41572753c6..f31d44d64c65 100644 --- a/source/_components/intent_script.markdown +++ b/source/_components/intent_script.markdown @@ -26,12 +26,54 @@ intent_script: data_template: message: Hello from an intent! ``` -Configuration variables: Inside an intent we can define these variables: -- **intent** (*Required*): Name of the intent. Multiple entries are possible. - - **speech** (*Optional*): Text or template to return. - - **action** (*Optional*): [Script syntax](/docs/scripts/). - - **async_action** (*Optional*): Set to True to have Home Assistant not wait for the script to finish before returning the intent response. - +{% configuration %} +intent: + description: Name of the intent. Multiple entries are possible. + required: true + type: map + keys: + action: + description: Defines an action to run to intents. + required: false + type: action + async_action: + description: Set to True to have Home Assistant not wait for the script to finish before returning the intent response. + required: false + default: false + type: boolean + card: + description: Card to display. + required: false + type: map + keys: + type: + description: Type of card to display. + required: false + default: simple + type: string + title: + description: Title of the card to display. + required: true + type: template + content: + description: Contents of the card to display. + required: true + type: template + speech: + description: Text or template to return. + required: false + type: map + keys: + type: + description: Type of speech. + required: false + default: plain + type: string + text: + description: Text to speech. + required: true + type: template +{% endconfiguration %} diff --git a/source/_components/iota.markdown b/source/_components/iota.markdown index 4a367e2e38c9..15bfacf142b3 100644 --- a/source/_components/iota.markdown +++ b/source/_components/iota.markdown @@ -8,16 +8,18 @@ comments: false sharing: true footer: true logo: iota.png -ha_category: Finance +ha_category: + - Finance + - Sensor ha_release: 0.62 ha_iot_class: "Cloud Polling" +redirect_from: + - /components/sensor.iota/ --- -[IOTA](http://iota.org/) is a new blockless distributed ledger which is -scalable, lightweight and makes it possible to transfer value without any fees. +[IOTA](http://iota.org/) is a new blockless distributed ledger which is scalable, lightweight and makes it possible to transfer value without any fees. -The `iota` component displays various details -(e.g., the balance, node attributes) of IOTA wallets. +The `iota` component displays various details (e.g., the balance, node attributes) of IOTA wallets. ```yaml # configuration.yaml example @@ -62,3 +64,12 @@ iota: - name: Exchange Wallet seed: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ``` + +## {% linkable_title Sensor %} + +The sensors are automatically created if the IOTA component is present. + +Available sensors: + +- Wallet balance +- Node information diff --git a/source/_components/sensor.iperf3.markdown b/source/_components/iperf3.markdown similarity index 63% rename from source/_components/sensor.iperf3.markdown rename to source/_components/iperf3.markdown index 44c5e7f36965..4b0e7f858830 100644 --- a/source/_components/sensor.iperf3.markdown +++ b/source/_components/iperf3.markdown @@ -8,17 +8,23 @@ comments: false sharing: true footer: true logo: iperf3.png -ha_category: System Monitor +ha_category: + - System Monitor + - Sensor featured: false ha_release: 0.71 ha_iot_class: "Local Polling" +redirect_from: + - /components/sensor.iperf3/ --- The `iperf3` sensor component allows you to measure network bandwidth performance against a private or public Iperf3 server. -## {% linkable_title Configuration %} +Enabling this component will automatically create the Iperf3 Sensors for the monitored conditions (below). + +By default, it will run every hour. The user can change the update frequency in the config by defining the `scan_interval` for a iperf3 test to run. -By default, it will run every hour. The user can change the update frequency in the config by defining the minute, hour, and day for a iperf3 test to run. +## {% linkable_title Configuration %} To add the `iperf3` sensor to your installation, add the following to your `configuration.yaml` file: @@ -28,26 +34,48 @@ Once per hour, on the hour (default): # Example configuration.yaml entry sensor: - platform: iperf3 - host: iperf.he.net - monitored_conditions: - - download - - upload + hosts: + - host: iperf.he.net ``` {% configuration %} monitored_conditions: description: Sensors to display in the frontend. - required: true + required: false type: list keys: download: description: Download speed (Mbit/s) upload: description: Upload speed (Mbit/s) + hosts: + description: A list of Iperf3 servers to perform the test against. + required: true + type: list + scan_interval: + description: "Minimum time interval between updates. Supported formats: `scan_interval: 'HH:MM:SS'`, `scan_interval: 'HH:MM'` and Time period dictionary (see example below)." + required: false + default: 60 minutes + type: time + manual: + description: > + `true` or `false` to turn manual mode on or off. Manual mode will disable scheduled tests. + required: false + type: boolean + default: false +{% endconfiguration %} + +Configuration variables (host): +{% configuration %} host: - description: Specify the Iperf3 test to perform the test against. + description: Server name/ip address running Iperf3 to test against. required: true type: string + port: + description: Port that Iperf3 is running on. + required: false + default: 5201 + type: integer duration: description: Specify the test duration in seconds. Default is 10 and the valid range is from 5 to 10. required: false @@ -62,13 +90,20 @@ sensor: required: false default: tcp type: string - scan_interval: - description: Specify the frequency in seconds which the test will be perfomed. Default value is 1 hour. - required: false - default: 3600 - type: integer {% endconfiguration %} +#### {% linkable_title Time period dictionary example %} + +```yaml +scan_interval: + # At least one of these must be specified: + days: 0 + hours: 0 + minutes: 3 + seconds: 30 + milliseconds: 0 +``` + You can find a list of public Iperf3 servers [here](https://iperf.fr/iperf-servers.php). You can also start your own Iperf3 server using the [mlabbe/iperf3's](https://hub.docker.com/r/mlabbe/iperf3/) docker image or just refer to your `iperf3` command's man page. The frequency when the test will be automatically triggered can be adjusted by setting the value `scan_interval` in seconds. @@ -77,10 +112,12 @@ Parallel streams can help in some situations. As TCP attempts to be fair and con You can use the service `sensor.iperf3_update` to trigger a manual speed test for all sensors. Iperf3 has its own service call that allow to perform a speed test on a particular entity. -### {% linkable_title Service `sensor.iperf3_update` %} +### {% linkable_title Service %} + +Once loaded, the `iperf3` component will expose a service (`iperf3.speedtest`) that can be called to run a speed test on demand. This can be useful if you have enabled manual mode. | Service data attribute | Description | -| `entity_id` | String that point at `entity_id`s of the Iperf3 sensor. Else targets all. +| `host` | String that point at a configured `host` from configuration.yaml. Otherwise, tests will be run against all configured hosts. ## {% linkable_title Notes %} diff --git a/source/_components/weather.ipma.markdown b/source/_components/ipma.markdown similarity index 96% rename from source/_components/weather.ipma.markdown rename to source/_components/ipma.markdown index 68f4cf67a88c..943650cf320c 100644 --- a/source/_components/weather.ipma.markdown +++ b/source/_components/ipma.markdown @@ -11,6 +11,8 @@ logo: ipma.png ha_category: Weather ha_release: 0.72 ha_iot_class: "Cloud Polling" +redirect_from: + - /components/weather.ipma/ --- The `ipma` weather platform uses the [Instituto Português do Mar e Atmosfera](http://www.ipma.pt) as a source for current and forecast meteorological data. diff --git a/source/_components/isy994.markdown b/source/_components/isy994.markdown index 23452d0b6b7d..6ea7d8de01d9 100644 --- a/source/_components/isy994.markdown +++ b/source/_components/isy994.markdown @@ -8,14 +8,40 @@ comments: false sharing: true footer: true logo: universal_devices.png -ha_category: Hub +ha_category: + - Hub + - Binary Sensor + - Cover + - Fan + - Light + - Lock + - Sensor + - Switch ha_release: 0.28 ha_iot_class: "Local Push" +redirect_from: + - /components/binary_sensor.isy994/ + - /components/cover.isy994/ + - /components/fan.isy994/ + - /components/light.isy994/ + - /components/lock.isy994/ + - /components/sensor.isy994/ + - /components/switch.isy994/ --- The ISY994 is a home automation controller that is capable of controlling Insteon and X10 devices. Some models of the ISY994 can even control Z-Wave devices. The ISY994 controller is manufactured by [Universal Devices](https://www.universal-devices.com/residential/isy994i-series/). +There is currently support for the following device types within Home Assistant: + +- Binary Sensor +- Cover +- Light +- Fan +- Lock +- Sensor +- Switch + ### {% linkable_title Basic Configuration %} Home Assistant is capable of communicating with any binary sensor, cover, fan, light, lock, sensor and switch that is configured on the controller. Using the programs on the controller, custom binary sensors, cover, fan, lock, and switches can also be created. @@ -32,7 +58,7 @@ isy994: {% configuration %} host: - description: The host entry should be in full URL format, eg. http://192.168.10.100:80 + description: The host entry should be in full URL format, e.g., http://192.168.10.100:80 required: true type: string username: @@ -49,7 +75,7 @@ sensor_string: type: string default: sensor ignore_string: - description: Any devices that contain this string in their name (or folder path) will be ignored by Home Assistant. They will not become entities at all. + description: Any devices that contain this string in their name (or folder path) will be ignored by Home Assistant. They will not become entities at all. required: false type: string default: {IGNORE ME} diff --git a/source/_components/joaoapps_join.markdown b/source/_components/joaoapps_join.markdown index abc7f3eedf51..f2f7d3f3abd7 100644 --- a/source/_components/joaoapps_join.markdown +++ b/source/_components/joaoapps_join.markdown @@ -8,8 +8,12 @@ comments: false sharing: true footer: true logo: joaoapps_join.png -ha_category: Hub +ha_category: + - Hub + - Notifications ha_release: "0.24" +redirect_from: + - /components/notify.joaoapps_join/ --- The `joaoapps_join` component exposes services from diff --git a/source/_components/juicenet.markdown b/source/_components/juicenet.markdown index 421b981a02ee..b2dd405fcdbf 100644 --- a/source/_components/juicenet.markdown +++ b/source/_components/juicenet.markdown @@ -8,8 +8,12 @@ comments: false sharing: true footer: true logo: juicenet.png -ha_category: Energy +ha_category: + - Energy + - Sensor ha_release: 0.47 +redirect_from: + - /components/sensor.juicenet/ --- The `juicenet` sensor platform pulls data from a [JuiceNet](https://emotorwerks.com/products/juicenet/) charging station equipped with a wifi connection. It will access and make available all of the devices attached to your account. @@ -30,3 +34,19 @@ access_token: required: true type: string {% endconfiguration %} + +## {% linkable_title Sensor %} + +The `juicenet` sensor platform allows you to get data from your [JuiceNet](https://emotorwerks.com/products/juicenet/) sensors. + +### {% linkable_title Added sensors %} + +These sensors will be added for each juicenet device in your account: + +- Status +- Temperature (inside the device) +- Voltage +- Amps +- Watts +- Charge time of session +- Energy added this session \ No newline at end of file diff --git a/source/_components/keyboard.markdown b/source/_components/keyboard.markdown index d1324ae76ae2..b3bf0d474f1f 100644 --- a/source/_components/keyboard.markdown +++ b/source/_components/keyboard.markdown @@ -35,7 +35,7 @@ You may need to install platform-specific [dependencies for PyUserInput](https:/ pip3 install [package name] ``` -#### {% linkable_title Windows %} +### {% linkable_title Windows %} x64 Windows users may have trouble installing pywin through pip. Using an [executable installer](http://sourceforge.net/projects/pywin32/files/pywin32/) should work around this issue. diff --git a/source/_components/kira.markdown b/source/_components/kira.markdown index 7a0f3bc3772a..3be677669b4f 100644 --- a/source/_components/kira.markdown +++ b/source/_components/kira.markdown @@ -8,12 +8,23 @@ comments: false sharing: true footer: true logo: keene.png -ha_category: Hub +ha_category: + - Hub + - Remote + - Sensor ha_release: 0.45 +redirect_from: + - /components/sensor.kira/ + - /components/remote.kira/ --- The `kira` component is the main component to integrate Keene Electronics IR over IP [Kira](https://www.keene.co.uk/keene-ir-anywhere-single-worldwide.html) modules with Home Assistant. +There is currently support for the following device types within Home Assistant: + +- Remote +- Sensor + ### {% linkable_title Example Configuration %} ```yaml diff --git a/source/_components/knx.markdown b/source/_components/knx.markdown index 4f1b5b2c4a1f..9b5f00382553 100644 --- a/source/_components/knx.markdown +++ b/source/_components/knx.markdown @@ -93,7 +93,7 @@ local_ip: ```yaml knx: - fire_event: True + fire_event: true fire_event_filter: ["1/0/*", "6/2,3,4-6/*"] ``` diff --git a/source/_components/konnected.markdown b/source/_components/konnected.markdown index dc7104dba180..d6b35102fd38 100644 --- a/source/_components/konnected.markdown +++ b/source/_components/konnected.markdown @@ -8,8 +8,14 @@ comments: false sharing: true footer: true logo: konnected.png -ha_category: Alarm +ha_category: + - Alarm + - Binary Sensor + - Switch ha_release: "0.70" +redirect_from: + - /components/binary_sensor.konnected/ + - /components/switch.konnected/ --- The `konnected` component lets you connect wired sensors and switches to a NodeMCU ESP8226 based device running the [open source Konnected software](https://github.com/konnected-io/konnected-security). Reuse the wired sensors and siren from an old or pre-wired alarm system installation and integrate them directly into Home Assistant. @@ -18,10 +24,10 @@ Visit the [Konnected.io website](https://konnected.io) for more information abou The component currently supports the following device types in Home Assistant: -- [Binary Sensor](/components/binary_sensor.konnected/): Wired door and window sensors, motion detectors, glass-break detectors, leak sensors, smoke & CO detectors or any open/close switch. -- [Switch](/components/switch.konnected/): Actuate a siren, strobe, buzzer or relay module. +- Binary Sensor: Wired door and window sensors, motion detectors, glass-break detectors, leak sensors, smoke & CO detectors or any open/close switch. +- Switch: Actuate a siren, strobe, buzzer or relay module. -This component requires the [`discovery`](https://www.home-assistant.io/components/discovery) component to be enabled. +This component requires the [`discovery`](/components/discovery) component to be enabled. ### {% linkable_title Configuration %} @@ -134,7 +140,7 @@ devices: required: false default: true description: Blink the blue LED upon successful transmission of a state change. - + {% endconfiguration%} #### {% linkable_title Configuration Notes %} @@ -208,19 +214,34 @@ 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. + +- 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. + +- Added `inverse` configuration option for binary sensors. #### 0.77 -* Added support for momentary and beep/blink switches. [[#15973](https://github.com/home-assistant/home-assistant/pull/15973)] -* Decouple entity initialization from discovery, enabling devices to recover faster after a Home Assistant reboot. [[#16146](https://github.com/home-assistant/home-assistant/pull/16146)] -* **Breaking change:** Device `id` in `configuration.yaml` must now be the full 12-character device MAC address. Previously, omitting the first 6 characters was allowed. + +- Added support for momentary and beep/blink switches. [[#15973](https://github.com/home-assistant/home-assistant/pull/15973)] +- Decouple entity initialization from discovery, enabling devices to recover faster after a Home Assistant reboot. [[#16146](https://github.com/home-assistant/home-assistant/pull/16146)] +- **Breaking change:** Device `id` in `configuration.yaml` must now be the full 12-character device MAC address. Previously, omitting the first 6 characters was allowed. #### 0.72 -* Adds `api_host` configuration option [[#14896](https://github.com/home-assistant/home-assistant/pull/14896)] + +- Adds `api_host` configuration option [[#14896](https://github.com/home-assistant/home-assistant/pull/14896)] #### 0.70 -* Initial release + +- Initial release + +### {% linkable_title Binary Sensor %} + +The `konnected` binary sensor allows you to monitor wired door sensors, window sensors, motion sensors, smoke detectors, CO detectors, glass-break sensors, water leak sensors or any other simple wired open/close circuit attached to a NodeMCU ESP8266 WiFi module running the [open source Konnected software](https://github.com/konnected-io/konnected-security). + +This component supports all of the built-in device classes of the generic [Binary Sensor](/components/binary_sensor/) component. + +### {% linkable_title Switch %} + +The `konnected` switch platform allows you to actuate an alarm system siren, strobe light, buzzer or any other wired device using a [Konnected Alarm Panel board](https://konnected.io) or relay module and a NodeMCU ESP8266 WiFi module running the [open source Konnected software](https://github.com/konnected-io/konnected-security). \ No newline at end of file diff --git a/source/_components/lcn.markdown b/source/_components/lcn.markdown new file mode 100644 index 000000000000..1e788904e121 --- /dev/null +++ b/source/_components/lcn.markdown @@ -0,0 +1,239 @@ +--- +layout: page +title: "LCN" +description: "Instructions on how to integrate LCN components with Home Assistant." +date: 2018-11-01 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: lcn.png +ha_category: + - Hub + - Cover + - Light + - Switch +ha_release: 0.85 +ha_iot_class: "Local Push" +redirect_from: + - /components/light.lcn/ + - /components/switch.lcn/ +--- + +The `lcn` integration for Home Assistant allows you to connect to [LCN](http://www.lcn.eu) hardware devices. + +The component requires one unused license of the coupling software LCN-PCHK (version >2.8) and a LCN hardware coupler. Alternatively a LCN-PKE coupler can be used which offers two PCHK licenses. +With this setup sending and receiving commands to and from LCN modules is possible. + +There is currently support for the following device types within Home Assistant: + +- [Cover](#cover) +- [Light](#light) +- [Switch](#switch) + +## {% linkable_title Configuration %} + +To use your LCN system in your installation, add the following lines to your `configuration.yaml` file. +You have to specify at least one ip/port with login credentials for a PCHK host. +Consider to store your credentials in a [secrets.yaml](/docs/configuration/secrets). + +```yaml +lcn: + connections: + - name: myhome + host: 192.168.2.41 + port: 4114 + username: lcn + password: lcn + + covers: + - name: Living room cover + address: myhome.s0.m7 + motor: motor1 + + lights: + - name: Bedroom light + address: myhome.s0.m7 + output: output1 + dimmable: true + transition: 5 + + switches: + - name: Sprinkler switch + address: myhome.s0.m7 + output: relay1 +``` + +{% configuration %} +connections: + description: List of your connections + required: true + type: map + keys: + host: + description: IP address of the LCN-PCHK host. + required: true + type: string + port: + description: Port of the LCN-PCHK host. + required: true + type: integer + username: + description: Login username for the LCN-PCHK host. + required: true + type: string + password: + description: Login password for the LCN-PCHK host. + required: true + type: string + name: + description: Optional connection identifier. If omited, the connections will be named consecutively as _pchk_, _pchk1_, _pchk2_, ... + required: false + default: pchk + type: string + sk_num_tries: + description: Segment coupler scans. Increase this number if you have at least one segment coupler in your system. + required: false + default: 0 + type: integer + dim_mode: + description: "Dimming mode for connected modules. The operation mode is programmed into the LCN modules by the LCN-PRO software and depends on their firmware. If you experience unexpected dimming behavior, the connection is probably in the wrong operation mode. Possible values: _steps50_, _steps200_" + required: false + default: steps50 + type: string + +covers: + description: List of your covers. + required: false + type: map + keys: + name: + description: Name of the cover. + required: true + type: string + address: + description: "[Address](/components/lcn#lcn-addresses) of the module/group." + required: true + type: string + motor: + description: "Motor port ([MOTOR_PORT](/components/lcn#ports))." + required: true + type: string + +lights: + description: List of your lights. + required: true + type: map + keys: + name: + description: Name of the light. + required: true + type: string + address: + description: "[Address](/components/lcn#lcn-addresses) of the module/group." + required: true + type: string + output: + description: "Light source ([OUTPUT_PORT](/components/lcn#ports), [RELAY_PORT](/components/lcn#ports))." + required: true + type: string + dimmable: + description: Enable the dimming feature for this light. + required: false + type: bool + default: false + transition: + description: Transition (ramp) time in seconds. + required: false + type: int + default: 0 + +switches: + description: List of your switches. + required: false + type: map + keys: + name: + description: "Name of the switch." + required: true + type: string + address: + description: "[Address](/components/lcn#lcn-addresses) of the module/group." + required: true + type: string + output: + description: "Switch source ([OUTPUT_PORT](/components/lcn#ports), [RELAY_PORT](/components/lcn#ports))." + required: true + type: string +{% endconfiguration %} + +## {% linkable_title LCN Addresses %} + +LCN hardware devices connected to the LCN bus are called _modules_. LCN modules are addressed by their numeric id in the range (5..254). + +Modules can be arranged in _segments_. Segments can be addressed by their numeric id (5..128) or 0 (= no segment exist) or 3 (= target all segments). + +LCN Modules within the _same_ segment can be grouped by their group id (5..254) or 3 (= target all groups.) + +The LCN component allow the connection to more than one hardware coupler. In this case it has to be specified which hardware coupler should be used for addressing the specified module. + +Whenever the address of a module or a group has to be specified, it can be addressed using one of the following syntaxes: + +Example for modules: + +``` +connid.s000.m007 +connid.s0.m7 +s0.m7 +0.7 +``` + +Example for groups: + +``` +connid.s000.g007 +connid.s0.g7 +s0.g7 +0.g7 +``` + +Leading zeroes in the segment id or module/group id can be omitted. If the `connection_id` is omitted, the first connection defined in the [configuration](#configuration) will be used. + +## {% linkable_title LCN Constants %} + +The platforms and service calls use several predefined constants as parameters. + +### {% linkable_title Ports %} + +| Constant | Values | +| -------- | ------ | +| OUTPUT_PORT | `output1`, `output2`, `output3`, `output4` | +| RELAY_PORT | `relay1`, `relay2`, `relay3`, `relay4`, `relay5`, `relay6`, `relay7`, `relay8` | +| MOTOR_PORT | `motor1`, `motor2`, `motor3`, `motor4` | + +The [MOTOR_PORT](/components/lcn#ports) values specify which hardware relay configuration will be used: + +| Motor | Relay on/off | Relay up/down | +| :------: | :----------: | :-----------: | +| `motor1` | `relay1` | `relay2` | +| `motor2` | `relay3` | `relay4` | +| `motor3` | `relay5` | `relay6` | +| `motor4` | `relay7` | `relay8` | + +## {% linkable_title Cover %} + +The `lcn` cover platform allows the control of [LCN](http://www.lcn.eu) relays which have been configured as motor controllers. + +## {% linkable_title Light %} + +The `lcn` light platform allows the control of the following [LCN](http://www.lcn.eu) ports: + +- (Dimmable) output ports +- Relays + +## {% linkable_title Switch %} + +The `lcn` switch platform allows the control of the following [LCN](http://www.lcn.eu) ports: + +- Output ports +- Relays diff --git a/source/_components/lifx.markdown b/source/_components/lifx.markdown index a4110d86fde9..44c60ee7f2dc 100644 --- a/source/_components/lifx.markdown +++ b/source/_components/lifx.markdown @@ -11,6 +11,7 @@ logo: lifx.png ha_category: Light ha_iot_class: "Local Polling" ha_release: 0.81 +redirect_from: /components/light.lifx/ --- The `lifx` component allows you to integrate your [LIFX](https://www.lifx.com) into Home Assistant. @@ -82,7 +83,7 @@ Run a flash effect by changing to a color and then back. | `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 - direct transition to new color for 'period' time with original color between cycles), `breathe` (color fade transition to new color and back to original), `ping` (short pulse of new color), `strobe` (ligth turns off between color changes), `solid`(light does not return to original color beween cycles). +| `mode` | The way to change between colors. Valid modes: `blink` (default - direct transition to new color for 'period' time with original color between cycles), `breathe` (color fade transition to new color and back to original), `ping` (short pulse of new color), `strobe` (light turns off between color changes), `solid`(light does not return to original color between cycles). | `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` %} @@ -110,14 +111,15 @@ Run an effect that does nothing, thereby stopping any other effect that might be ## {% 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. +There are some manual configuration options available. These are only needed with unusual network setups where automatic configuration does not find your LIFX devices. ```yaml # Example configuration.yaml entry lifx: light: - server: IP_ADDRESS - broadcast: IP_ADDRESS + - server: IP_ADDRESS + port: 56700 + broadcast: IP_ADDRESS ``` {% configuration %} @@ -125,8 +127,12 @@ server: description: Your server address. Will listen on all interfaces if omitted. required: false type: string +port: + description: The UDP port for discovery. Will listen on a random port if omitted. + required: false + type: port broadcast: - description: The broadcast address for discovering lights. + description: The broadcast address for discovering lights. Can also set this to the IP address of a bulb to skip discovery. required: false type: string {% endconfiguration %} diff --git a/source/_components/light.abode.markdown b/source/_components/light.abode.markdown deleted file mode 100644 index f362107791d8..000000000000 --- a/source/_components/light.abode.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Abode Light" -description: "Instructions on how to integrate Abode lights into Home Assistant." -date: 2017-08-26 13:28 -sidebar: true -comments: false -sharing: true -footer: true -logo: abode.jpg -ha_release: 0.54 -ha_category: Light -ha_iot_class: "Cloud Push" ---- - -The `abode` security control panel platform allows you to control your [Abode](https://goabode.com/) alarms. - -This component will automatically add `Lights` configured in your Abode account. You can reclassify `Switches` to show up within Home Assistant as lights by listing the Abode device ID in your [configuration](/components/abode/#configuration). - -The requirement is that you have setup your [Abode hub](/components/abode/). diff --git a/source/_components/light.ads.markdown b/source/_components/light.ads.markdown deleted file mode 100644 index aaedc1c12f44..000000000000 --- a/source/_components/light.ads.markdown +++ /dev/null @@ -1,42 +0,0 @@ ---- -layout: page -title: "ADS Light" -description: Instructions on how to set up ADS lights within Home Assistant -date: 2017-10-25 10:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: beckhoff.png -ha_category: Light -ha_release: "0.60" -ha_iot_class: "Local Push" ---- - -The `ads` light platform allows you to control your connecte ADS lights. - -To use your ADS device, you first have to set up your [ADS hub](/components/ads/) and then add the following to your `configuration.yaml` -file: - -```yaml -# Example configuration.yaml entry -light: - - platform: ads - adsvar: GVL.enable_light - adsvar_brightness: GVL.brightness -``` - -{% configuration %} - adsvar: - required: true - description: The name of the boolean variable that switches the light on - type: string - adsvar_brightness: - required: false - description: The name of the variable that controls the brightness, use an unsigned integer on the PLC side - type: integer - name: - required: false - description: An identifier for the Light in the frontend - type: string -{% endconfiguration %} diff --git a/source/_components/light.deconz.markdown b/source/_components/light.deconz.markdown deleted file mode 100644 index f8949b0432ba..000000000000 --- a/source/_components/light.deconz.markdown +++ /dev/null @@ -1,31 +0,0 @@ ---- -layout: page -title: "deCONZ Lights" -description: "Instructions on how to integrate Zigbee lights from deCONZ into Home Assistant." -date: 2017-11-12 16:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: deconz.jpeg -ha_category: Light -ha_release: "0.61" -ha_iot_class: "Local Push" ---- - -See the [deCONZ main component](/components/deconz/) for configuration instructions. - -The `entity_id` names will be `light.device_name`, where `device_name` is defined in deCONZ. Light groups created in deCONZ will be created in Home Assistant as lights named `light.group_name_in_deconz`, allowing the user to control groups of lights with only a single API call to deCONZ. - -#### {% linkable_title Verified supported lights %} - -- IKEA Trådfri bulb E14 WS opal 400lm -- IKEA Trådfri Bulb E27 WS Opal 980lm -- IKEA Trådfri Bulb E27 WS Opal 1000lm -- IKEA Trådfri Bulb GU10 W 400lm -- OSRAM Flex RGBW -- OSRAM Gardenpole RGBW -- Philips Hue White A19 -- Philips Hue White Ambiance A19 -- Philips Hue Hue White ambiance Milliskin (recessed spotlight) LTW013 -- Busch Jaeger ZigBee Light Link univ. relai (6711 U) with ZigBee Light Link control element 6735-84 diff --git a/source/_components/light.elkm1.markdown b/source/_components/light.elkm1.markdown deleted file mode 100644 index 2dfa79a4114c..000000000000 --- a/source/_components/light.elkm1.markdown +++ /dev/null @@ -1,22 +0,0 @@ ---- -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.enocean.markdown b/source/_components/light.enocean.markdown deleted file mode 100644 index 1933e8f43909..000000000000 --- a/source/_components/light.enocean.markdown +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: page -title: "EnOcean Light" -description: "Instructions on how to set up EnOcean lights within Home Assistant." -date: 2016-05-25 23:49 -sidebar: true -comments: false -sharing: true -footer: true -logo: enocean.png -ha_category: Light -ha_release: 0.21 -ha_iot_class: "Local Push" ---- - -An EnOcean light can take many forms. Currently only one type has been tested: Eltako FUD61 dimmer. - - -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 -# Example configuration.yaml entry -light: - - platform: enocean - id: [0x01,0x90,0x84,0x3C] - sender_id: [0xFF,0xC6,0xEA,0x04] -``` - -{% configuration %} -id: - description: The ID of the device. This is the 4 bytes long number written on the dimmer. - required: true - type: list -sender_id: - description: The Sender ID of the device. This is a 4 bytes long number. - required: true - type: list -name: - description: An identifier for the Ligh in the frontend. - required: false - default: EnOcean Light - type: string -{% endconfiguration %} diff --git a/source/_components/light.eufy.markdown b/source/_components/light.eufy.markdown deleted file mode 100644 index d8596c00487c..000000000000 --- a/source/_components/light.eufy.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Eufy Lights" -description: "Instructions on how to integrate Eufy LED lights into Home Assistant." -date: 2018-04-09 19:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: eufy.png -ha_category: Light -ha_iot_class: "Local Polling" -ha_release: 0.68 ---- - -The `eufy` platform allows you to control your [Eufy](http://www.eufylife.com) lights from within Home Assistant. - -They will be automatically discovered if the [Eufy](/components/eufy/) component is enabled. - diff --git a/source/_components/light.everlights.markdown b/source/_components/light.everlights.markdown new file mode 100644 index 000000000000..df6dca6034a8 --- /dev/null +++ b/source/_components/light.everlights.markdown @@ -0,0 +1,44 @@ +--- +layout: page +title: "EverLights Light" +description: "Instructions on how to set up EverLights within Home Assistant." +date: 2018-12-29 +sidebar: true +comments: false +sharing: true +footer: true +logo: everlights.png +ha_category: Light +ha_iot_class: "Local Polling" +ha_release: 0.87 +--- + +[EverLights](https://myeverlights.com/) are permanent Christmas lights installed on a home's gutters or flashing. This integration can change all LEDs in a zone to a single color or activate a pattern that was previously saved to the control box. + +### {% linkable_title Configuration Details %} + +To enable EverLights, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +light: + - platform: everlights + hosts: + - 192.168.1.123 + - 192.168.1.124 +``` + +{% configuration %} +hosts: + description: EverLights control box IP addresses. + required: true + type: list +{% endconfiguration %} + +### {% linkable_title Effects %} + +EverLights patterns saved to the control box can be activated using the effect parameter to the `light.turn_on` service. If an effect is specified, then the color and brightness are ignored. + +### Limitations + +The EverLights control box status indicates if a zone is active but does not indicate the current color or pattern. The color and effect in the state attributes are based on the last execution of `light.turn_on`. If the control box scheduler or another app makes a change, then the state attributes are not updated. diff --git a/source/_components/light.fibaro.markdown b/source/_components/light.fibaro.markdown deleted file mode 100644 index 0932c0f1edcc..000000000000 --- a/source/_components/light.fibaro.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Fibaro Lights" -description: "Instructions on how to integrate Fibaro lights into Home Assistant." -date: 2018-11-14 23:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: fibaro.png -ha_category: Light -ha_iot_class: "Local Push" -ha_release: 0.83 ---- - -The `fibaro` platform allows you to get data from your [Fibaro](http://fibaro.com/) lights connected to your Fibaro HCL or HC2 from within Home Assistant. - -They will be automatically discovered if the `fibaro` component is loaded. diff --git a/source/_components/light.flux_led.markdown b/source/_components/light.flux_led.markdown index 426feb16ae11..ff4dfd92c8fd 100644 --- a/source/_components/light.flux_led.markdown +++ b/source/_components/light.flux_led.markdown @@ -47,7 +47,7 @@ automatic_add: default: false type: boolean devices: - description: A list of devices with their ip address + description: A list of devices with their ip address. required: false type: list keys: @@ -56,18 +56,37 @@ devices: required: false type: string mode: - description: "The chosen brightness mode, options are: 'rgbw' and 'rgb'." + description: "The chosen brightness mode, options are: `rgbw`, `rgb` and `w`." required: false default: rgbw type: string protocol: - description: Set this to 'ledenet' if you are using a ledenet bulb. + description: Set this to `ledenet` if you are using a ledenet bulb. required: false type: string + custom_effect: + description: A definition of the custom effect. + required: false + type: map + keys: + colors: + description: A list of 1 to 16 colors, used in the effect loop (see example below). Defined as three comma-separated integers between 0 and 255 that represent the color in RGB. There is no way to set brightness, but you can define lower RGB values to simulate lower brightness. E.g., if you want 50% red, define it as `[127,0,0]` instead of `[255,0,0]`. + required: true + type: list + speed_pct: + description: A speed in percents (100 being the fastest), at which controller will transition between the colors. + required: false + type: integer + default: 50 + transition: + description: "A type of transition, which will be used to transition between the colors. Supported values are: `gradual`, `jump` and `strobe`." + required: false + type: string + default: gradual {% endconfiguration %}

-Depending on your controller or bulb type, there are two ways to configure brightness. +Depending on your controller or bulb type, there are two ways to configure brightness. The component defaults to rgbw. If your device has a separate white channel, you do not need to specify anything else; changing the white value will adjust the brightness of white channel keeping rgb color constant. However, if your device does not have a separate white channel, you will need to set the mode to rgb. In this mode, the device will keep the same color, and adjust the rgb values to dim or brighten the color.

@@ -80,7 +99,7 @@ Will automatically search and add all lights on start up: # Example configuration.yaml entry light: - platform: flux_led - automatic_add: True + automatic_add: true ``` Will add two lights with given name and create an automation rule to randomly set color each 45 seconds: @@ -98,7 +117,7 @@ light: automation: alias: random_flux_living_room_lamp trigger: - platform: time + platform: time_pattern seconds: '/45' action: service: light.turn_on @@ -144,16 +163,36 @@ light: ### {% linkable_title Effects %} -The FLUX_LED light offers a number of effects which are not included in other lighting packages. These can be selected from the front-end, or sent in the effect field of the light TURN_ON command. - -| Effect Name | Description | -|------------------------------------------------------------------------------------------------|--------------------------------------------------------------------| -| colorloop | Smoothly transitions through the rainbow | -| colorjump | Jumps through seven different rainbow colors. | -| colorstrobe | Strobes each rainbow color in a loop. | -| random | Chooses a random color by selecting random values for R, G, and B | -| red_fade, green_fade, blue_fade, yellow_fade, cyan_fade, purple_fade, white_fade | Fades between the color as indicated in the effect name and black. | -| rg_cross_fade | Fades between red and green. | -| rb_cross_fade | Fades between red and blue. | -| gb_cross_fade | Fades between green and blue | -| red_strobe, green_strobe, blue_strobe, yellow_strobe, cyan_strobe, purple_strobe, white_strobe | Strobes the color indicated by the effect name. | +The Flux Led light offers a number of effects which are not included in other lighting packages. These can be selected from the front-end, or sent in the effect field of the `light.turn_on` command. + +| Effect Name | Description | +|--------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------| +| `colorloop` | Smoothly transitions through the rainbow. | +| `colorjump` | Jumps through seven different rainbow colors. | +| `colorstrobe` | Strobes each rainbow color in a loop. | +| `red_fade`, `green_fade`, `blue_fade`, `yellow_fade`, `cyan_fade`, `purple_fade`, `white_fade` | Fades between the color as indicated in the effect name and black. | +| `rg_cross_fade` | Fades between red and green. | +| `rb_cross_fade` | Fades between red and blue. | +| `gb_cross_fade` | Fades between green and blue. | +| `red_strobe`, `green_strobe`, `blue_strobe`, `yellow_strobe`, `cyan_strobe`, `purple_strobe`, `white_strobe` | Strobes the color indicated by the effect name. | +| `random` | Chooses a random color by selecting random values for R, G, and B. | +| `custom` | Custom effect (if defined, see below). | + +Users can define their own custom effect. It consists of three parameters: a list of 1 to 16 colors, speed and type of transition. The controller will transition between the colors in a loop, with sepcified transition and speed. Here is an example of a custom effect that will quickly flash red, yellow, green, cyan, blue, magenta in a loop: + +```yaml +light: + - platform: flux_led + devices: + 192.168.1.10: + custom_effect: + speed_pct: 100 + transition: 'strobe' + colors: + - [255,0,0] + - [255,255,0] + - [0,255,0] + - [0,255,255] + - [0,0,255] + - [255,0,255] +``` diff --git a/source/_components/light.hive.markdown b/source/_components/light.hive.markdown deleted file mode 100644 index 44221f63711d..000000000000 --- a/source/_components/light.hive.markdown +++ /dev/null @@ -1,30 +0,0 @@ ---- -layout: page -title: "Hive Light" -description: "Instructions on how to integrate Hive lights with Home Assistant." -date: 2017-09-24 21:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: hive.png -ha_category: Light -ha_release: 0.59 -ha_iot_class: "Cloud Polling" ---- - - -The `hive` light platform integrates your Hive lights into Home Assistant, enabling control of various settings, depending on the model light. - -The platform supports the following Hive products: - -- Hive Active Light Dimmable -- Hive Active Light Cool to Warm White -- Hive Active Light Color Changing - - -

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

- - diff --git a/source/_components/light.homekit_controller.markdown b/source/_components/light.homekit_controller.markdown deleted file mode 100644 index f3f7243a10fb..000000000000 --- a/source/_components/light.homekit_controller.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "HomeKit Light" -description: "Instructions how to setup HomeKit lights within Home Assistant." -date: 2017-03-19 21:08 -sidebar: true -comments: false -sharing: true -footer: true -logo: apple-homekit.png -ha_category: Light -ha_iot_class: "Local Polling" -ha_release: 0.68 ---- - -To get your HomeKit lights working with Home Assistant, follow the instructions for the general [HomeKit controller component](/components/homekit_controller/). diff --git a/source/_components/light.homematic.markdown b/source/_components/light.homematic.markdown deleted file mode 100644 index 86249ce98e0c..000000000000 --- a/source/_components/light.homematic.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Homematic Light" -description: "Instructions on how to integrate Homematic lights within Home Assistant." -date: 2016-06-28 08:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: homematic.png -ha_category: Light -ha_release: 0.23 -ha_iot_class: "Local Push" ---- - - -The `homematic` light platform lets you control [Homematic](http://www.homematic.com/) lights 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 diff --git a/source/_components/light.homematicip_cloud.markdown b/source/_components/light.homematicip_cloud.markdown deleted file mode 100644 index 6ea102daa8dc..000000000000 --- a/source/_components/light.homematicip_cloud.markdown +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: page -title: "HomematicIP Cloud Light" -description: "Instructions on how to integrate HomematicIP light switches within Home Assistant." -date: 2018-04-02 13:40 -sidebar: true -comments: false -sharing: true -footer: true -logo: homematicip_cloud.png -ha_category: Switch -ha_release: 0.70 -ha_iot_class: "Cloud Push" ---- - -The `homematicip_cloud` light platform allows you to control -[HomematicIP](http://www.homematic-ip.com) light switches through Home Assistant. - -Devices will be configured automatically. Please refer to the -[component](/components/homematicip_cloud/) configuration on how to setup -HomematicIP Cloud. diff --git a/source/_components/light.hue.markdown b/source/_components/light.hue.markdown deleted file mode 100644 index 59e8b8e970ee..000000000000 --- a/source/_components/light.hue.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Philips Hue Light" -description: "Instructions on how to integrate Philips Hue lights into Home Assistant." -date: 2015-03-23 20:09 -sidebar: true -comments: false -sharing: true -footer: true -logo: philips_hue.png -ha_category: Light -ha_iot_class: "Local Polling" -ha_release: pre 0.7 ---- - -The Philips Hue light platform allows you to control your Philips Hue lights. - -This component will automatically add `Lights` configured on your Hue bridges. - -The requirement is that you have setup your [Philips Hue bridge](/components/hue/). diff --git a/source/_components/light.ihc.markdown b/source/_components/light.ihc.markdown index 9d2d724b86ea..3b4ae606129f 100644 --- a/source/_components/light.ihc.markdown +++ b/source/_components/light.ihc.markdown @@ -27,7 +27,7 @@ project and setup as light devices: - Wireless mobile dimmer - Dataline lamp outlet -To manually configure IHC lights insert the "lights" section in +To manually configure IHC lights insert the "light" section in your IHC configuration: ```yaml @@ -36,14 +36,14 @@ ihc: username: YOUR_USERNAME2 password: YOUR_PASSWORD2 info: true - lights: + light: - id: 12345 name: tablelight - id: 23432 ``` {% configuration %} -lights: +light: description: List of lights to setup manually required: false type: map @@ -57,6 +57,14 @@ lights: description: The IHC resource id. required: true type: integer + on_id: + description: Optional IHC resource id that will be pulsed to turn ON this light. + required: false + type: integer + off_id: + description: Optional IHC resource id that will be pulsed to turn OFF this light. + required: false + type: integer name: description: The name of the component required: false diff --git a/source/_components/light.insteon.markdown b/source/_components/light.insteon.markdown deleted file mode 100644 index a6db155d5e4d..000000000000 --- a/source/_components/light.insteon.markdown +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: page -title: "Insteon Light" -description: "Instructions on how to setup Insteon lights locally within Home Assistant." -date: 2018-08-20 16:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: insteon.png -ha_category: Light -ha_iot_class: "Local Push" -ha_version: 0.77 ---- - -The `insteon` light platform lets you control your lights 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 diff --git a/source/_components/light.isy994.markdown b/source/_components/light.isy994.markdown deleted file mode 100644 index 6c03413c8b04..000000000000 --- a/source/_components/light.isy994.markdown +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: page -title: "ISY994 Light" -description: "Instructions on how to integrate ISY994 lights into Home Assistant." -date: 2016-09-03 23:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: universal_devices.png -ha_category: Light -ha_iot_class: "Local Push" ---- - -The `isy994` platform allows you to get data from your [ISY994](https://www.universal-devices.com/residential/isy994i-series/) light from within Home Assistant. - -They will be automatically discovered if the `isy994` component is loaded. diff --git a/source/_components/light.knx.markdown b/source/_components/light.knx.markdown index 2fc2af1508c2..b2c833b750a8 100644 --- a/source/_components/light.knx.markdown +++ b/source/_components/light.knx.markdown @@ -13,10 +13,14 @@ ha_release: 0.44 ha_iot_class: "Local Polling" --- +The `knx light` component is used as an interface to control knx actuators for lighting applications such as: -The `knx` light component is used as in interface to switching/light actuators. +- switching actuators +- dimming actuators +- LED controllers +- DALI gateways -The `knx` component must be configured correctly, see [KNX Component](/components/knx). +The `knx` component must be configured correctly to use this component, see [KNX Component](/components/knx). ## {% linkable_title Configuration %} @@ -31,34 +35,107 @@ light: {% configuration %} address: - description: KNX group address for switching the light on and off. + description: KNX group address for switching the light on and off. *DPT 1.001* required: true type: string +state_address: + description: KNX group address for retrieving the switch state of the light. *DPT 1.001* + required: false + type: string name: description: A name for this device used within Home Assistant. required: false type: string brightness_address: - description: KNX group address for dimming light. - required: false - type: string -state_address: - description: separate KNX group address for retrieving the switch state of the light. + description: KNX group address for setting the brightness of the light in percent (absolute dimming). *DPT 5.001* required: false type: string brightness_state_address: - description: separate KNX group address for retrieving the dimmed state of the light. + description: KNX group address for retrieving the brightness of the light in percent. *DPT 5.001* required: false type: string color_address: - description: separate KNX group address for setting the color of the light. + description: KNX group address for setting the RGB color of the light. *DPT 232.600* required: false type: string color_state_address: - description: separate KNX group address for retrieving the color of the light. + description: KNX group address for retrieving the RGB color of the light. *DPT 232.600* + required: false + type: string +color_temperature_address: + description: KNX group address for setting the color temperature of the light. *DPT 5.001 or 7.600 based on color_temperature_mode* + required: false + type: string +color_temperature_state_address: + description: KNX group address for retrieving the color temperature of the light. *DPT 5.001 or 7.600 based on color_temperature_mode* required: false type: string +color_temperature_mode: + description: Color temperature group address data type. + keys: + absolute: + description: color temperature in Kelvin. *color_temperature_address -> DPT 7.600* + relative: + description: color temperature in percent cold white (0% warmest; 100% coldest). *color_temperature_address -> DPT 5.001* + required: false + type: string + default: absolute +min_kelvin: + description: Warmest possible color temperature in Kelvin. (Used in combination with *color_temperature_address*) + required: false + type: integer + default: 2700 +max_kelvin: + description: Coldest possible color temperature in Kelvin. (Used in combination with *color_temperature_address*) + required: false + type: integer + default: 6000 {% endconfiguration %} -Some KNX devices can change their state internally without any messages on the KNX bus, e.g., if you configure a timer on a channel. The optional `state_address` can be used to inform Home Assistant about these state changes. If a KNX message is seen on the bus addressed to the given state address, this will overwrite the state of the switch object. -For switching/light actuators that are only controlled by a single group address and can't change their state internally, you don't have to configure the state address. +Many KNX devices can change their state internally without a message to the switch address on the KNX bus, e.g., if you configure a scene or a timer on a channel. The optional `state_address` can be used to inform Home Assistant about these state changes. If a KNX message is seen on the bus addressed to the given `state_address` (in most cases from the light actuator), it will overwrite the state of the switch object. + +For switching/light actuators that are only controlled by a single group address and don't have dedicated state communication objects you can set `state_address` to the same value as `address`. + +*Note on tunable white:* Home-Assistant uses Mireds as the unit for color temperature, whereas KNX typically uses Kelvin. The Kelvin/Mireds relationship is reciprocal, not linear, therefore the color temperature pickers (sliders) in Home-Assistant may not align with ones of KNX visualizations. This is the expected behavior. + +## {% linkable_title Extended configuration example %} + +```yaml +light: + # dimmable light + - platform: knx + name: Bedroom-Light-1 + address: '1/0/9' + state_address: '1/1/9' + brightness_address: '1/2/9' + brightness_state_address: '1/3/9' + # + # RGB light + - platform: knx + name: Bathroom-Light-1 + address: '1/0/9' + state_address: '1/1/9' + brightness_address: '1/2/9' + brightness_state_address: '1/3/9' + color_address: '1/4/9' + color_state_address: '1/5/9' + # + # tunable white light + - platform: knx + name: Office-Light-1 + address: '1/0/21' + state_address: '1/1/21' + brightness_address: '1/2/21' + brightness_state_address: '1/3/21' + color_temperature_address: '1/4/21' + color_temperature_state_address: '1/5/21' + color_temperature_mode: absolute + min_kelvin: 2550 + max_kelvin: 6200 + # + # actuator without dedicated state communication object + - platform: knx + name: Cellar-Light-1 + address: '1/0/5' + state_address: '1/0/5' +``` diff --git a/source/_components/light.lifx.markdown b/source/_components/light.lifx.markdown deleted file mode 100644 index 511306f4aecd..000000000000 --- a/source/_components/light.lifx.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "LIFX" -description: "Instructions on how to integrate LIFX into Home Assistant." -date: 2016-01-27 08:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: lifx.png -ha_category: Light -ha_iot_class: "Local Polling" -ha_release: 0.12 ---- - -For installation instructions, see [the LIFX component](/components/lifx/). diff --git a/source/_components/light.lightwave.markdown b/source/_components/light.lightwave.markdown deleted file mode 100644 index 234a04d82735..000000000000 --- a/source/_components/light.lightwave.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Lightwave Light" -description: "Instructions on how to integrate Lightwave lights with Home Assistant." -date: 2018-12-05 18:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: lightwave.png -ha_category: Light -ha_release: 0.84 -ha_iot_class: "Assumed State" ---- -The `lightwave` light platform integrates your Lightwave lights into Home Assistant. -

-Configuration details for the Lightwave platform can be found on the main [Lightwave component](/components/lightwave/) page. -

\ No newline at end of file diff --git a/source/_components/light.litejet.markdown b/source/_components/light.litejet.markdown deleted file mode 100644 index fedc9fa2bec5..000000000000 --- a/source/_components/light.litejet.markdown +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: page -title: "LiteJet Light" -description: "Instructions on how to setup the LiteJet lights within Home Assistant." -date: 2016-10-26 13:00 -sidebar: true -comments: false -sharing: true -footer: true -ha_category: Light -ha_release: 0.32 -ha_iot_class: "Local Polling" ---- - -To get your LiteJet lights working with Home Assistant, follow the instructions for the general [LiteJet component](/components/litejet/). diff --git a/source/_components/light.lutron.markdown b/source/_components/light.lutron.markdown deleted file mode 100644 index 9e380e8d7ce1..000000000000 --- a/source/_components/light.lutron.markdown +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: page -title: "Lutron Light" -description: "Instructions on how to setup the Lutron lights within Home Assistant." -date: 2017-04-30 09:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: lutron.png -ha_category: Light -ha_iot_class: "Local Polling" ---- - -To get your Lutron lights working with Home Assistant, follow the instructions for the general [Lutron component](/components/lutron/). diff --git a/source/_components/light.lutron_caseta.markdown b/source/_components/light.lutron_caseta.markdown deleted file mode 100644 index 4c61accdc60d..000000000000 --- a/source/_components/light.lutron_caseta.markdown +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: page -title: "Lutron Caseta Light" -description: "Instructions on how to setup the Lutron Caseta lights within Home Assistant." -date: 2017-04-30 09:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: lutron.png -ha_category: Light -ha_iot_class: "Local Polling" ---- - -To get Lutron Caseta lights working with Home Assistant, follow the instructions for the general [Lutron Caseta component](/components/lutron_caseta/). - -After setup, dimmable lights including wall and plug-in dimmers will appear in Home Assistant using an `entity_id` based on the name used in the Lutron mobile app. For example, a light called 'Bedroom Lamp' will appear in Home Assistant as `light.bedroom_lamp`. - -For non-dimmable lights or switched loads, see [Lutron Caseta Switch](/components/switch.lutron_caseta/). - -For more information on working with lights in Home Assistant, see the [Lights component](/components/light/). - -Available services: `light.turn_on`, `light.turn_off` and `light.toggle`. The `light.turn_on` service supports attributes `brightness` and `brightness_pct`. \ No newline at end of file diff --git a/source/_components/light.mochad.markdown b/source/_components/light.mochad.markdown deleted file mode 100644 index c175d48ffd15..000000000000 --- a/source/_components/light.mochad.markdown +++ /dev/null @@ -1,49 +0,0 @@ ---- -layout: page -title: "Mochad Light" -description: "Instructions on how to integrate X10 Mochad lights into Home Assistant." -date: 2017-07-14 11:29 -sidebar: true -comments: false -sharing: true -footer: true -ha_category: Light -ha_release: 0.51 ---- - -The `mochad` light platform lets you control an X10 enabled dimmer/light device. - - - -To enable this sensor, you first have to set up the [mochad component](/components/mochad/) and then add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -light: - - platform: mochad - devices: - - address: a1 - - address: a5 -``` - -{% configuration %} -address: - description: The X10 address of the light. - required: true - type: string -name: - description: The name of the light. - required: false - default: x10_light_dev_address - type: string -comm_type: - description: pl (powerline) or rf (radio frequency). - required: false - default: pl - type: string -brightness_levels: - description: The number of brightness levels the X10 light device supports. This can either be 32, 64, or 256 (note that the max value sent to the device will be n-1 because it starts at 0). - required: false - default: 32 - type: integer -{% endconfiguration %} diff --git a/source/_components/light.mqtt.markdown b/source/_components/light.mqtt.markdown index 459c4cb70ebf..26104f2eed86 100644 --- a/source/_components/light.mqtt.markdown +++ b/source/_components/light.mqtt.markdown @@ -82,6 +82,10 @@ brightness_value_template: description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the brightness value." required: false type: string +color_temp_command_template: + description: "Defines a [template](/docs/configuration/templating/) to compose message which will be sent to `color_temp_command_topic`. Available variables: `value`." + required: false + type: string color_temp_command_topic: description: The MQTT topic to publish commands to change the light’s color temperature state. The color temperature command slider has a range of 153 to 500 mireds (micro reciprocal degrees). required: false @@ -91,7 +95,7 @@ color_temp_state_topic: required: false type: string color_temp_value_template: - description: "Defines a [template](/topics/templating/) to extract the color temperature value." + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the color temperature value." required: false type: string effect_command_topic: @@ -155,7 +159,7 @@ retain: type: boolean default: false rgb_command_template: - description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to compose message which will be sent to `rgb_command_topic`. Available variables: `red`, `green` and `blue`." + description: "Defines a [template](/docs/configuration/templating/) to compose message which will be sent to `rgb_command_topic`. Available variables: `red`, `green` and `blue`." required: false type: string rgb_command_topic: @@ -182,6 +186,11 @@ white_value_command_topic: description: "The MQTT topic to publish commands to change the light's white value." required: false type: string +white_value_scale: + description: "Defines the maximum white value (i.e. 100%) of the MQTT device." + required: false + type: integer + default: 255 white_value_state_topic: description: The MQTT topic subscribed to receive white value updates. required: false @@ -216,6 +225,39 @@ payload_not_available: required: false type: string default: offline +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation. + required: false + type: string +device: + description: 'Information about the device this light 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 %}

@@ -441,6 +483,39 @@ payload_not_available: required: false type: string default: offline +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation. + required: false + type: string +device: + description: 'Information about the device this light 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 %}

@@ -521,7 +596,7 @@ light: name: mqtt_json_hs_light state_topic: "home/light" command_topic: "home/light/set" - hs: True + hs: true ``` Home Assistant expects the hue values to be in the range 0 to 360 and the saturation values to be scaled from 0 to 100. For example, the following is a blue color shade: @@ -564,7 +639,7 @@ light: - [MQTT JSON Light](https://github.com/mertenats/Open-Home-Automation/tree/master/ha_mqtt_rgbw_light_with_discovery) is another implementation for ESP8266 including [MQTT discovery](/docs/mqtt/discovery/). -- [esphomelib](https://github.com/OttoWinter/esphomelib) is a library for ESP8266 and ESP32 boards that has many of Home Assistant's MQTT features (like [discovery](/docs/mqtt/discovery/)) pre-implemented and provides high-level abstractions for components such as lights or sensors. +- [ESPHome](https://esphome.io) implements the JSON schema for MQTT based installs and supports [MQTT discovery](/docs/mqtt/discovery/). - [AiLight](https://github.com/stelgenhof/AiLight) is a custom firmware for the Ai-Thinker (and equivalent) RGBW WiFi light bulbs that has an ESP8266 onboard and controlled by the MY9291 LED driver. It implements the [MQTT JSON light](/components/light.mqtt_json/) platform and supports ON/OFF, RGBW colours, brightness, colour temperature, flashing and transitions. Also it includes [MQTT Auto Discovery](/docs/mqtt/discovery/)) and the MQTT Last Will and Testament is enabled as well. @@ -599,6 +674,10 @@ name: required: false type: string default: MQTT Template Light +unique_id: + description: An ID that uniquely identifies this light. If two lights have the same unique ID, Home Assistant will raise an exception. + required: false + type: string effect_list: description: List of possible effects. required: false @@ -675,6 +754,39 @@ payload_not_available: required: false type: string default: offline +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation. + required: false + type: string +device: + description: 'Information about the device this light 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 %}

@@ -712,7 +824,7 @@ For a JSON payload with the format `{"state": "on", "brightness": 255, "color": ```yaml # Example configuration.yaml entry light: - - platform: mqtt_template + - platform: mqtt schema: template effect_list: - rainbow diff --git a/source/_components/light.mysensors.markdown b/source/_components/light.mysensors.markdown index 4e62f705bcd1..d08a0a7f6f77 100644 --- a/source/_components/light.mysensors.markdown +++ b/source/_components/light.mysensors.markdown @@ -8,7 +8,9 @@ comments: false sharing: true footer: true logo: mysensors.png -ha_category: DIY +ha_category: + - DIY + - Light ha_release: 0.13 ha_iot_class: "Local Push" --- diff --git a/source/_components/light.nanoleaf_aurora.markdown b/source/_components/light.nanoleaf_aurora.markdown index 9127387e298b..dc0805ffeb04 100644 --- a/source/_components/light.nanoleaf_aurora.markdown +++ b/source/_components/light.nanoleaf_aurora.markdown @@ -18,7 +18,7 @@ ha_release: 0.67 The `nanoleaf_aurora` platform allows you to control [Nanoleaf Aurora Light Panels](https://nanoleaf.me) from Home Assistant. -The preferred way to set up this platform is by enabling the [discovery component](https://www.home-assistant.io/components/discovery/). Make sure to press and hold the *ON* button for 5 seconds (the LED will start flashing) on your Nanoleaf Aurora Panel while Home Assistant is starting. +The preferred way to set up this platform is by enabling the [discovery component](/components/discovery/). Make sure to press and hold the *ON* button for 5 seconds (the LED will start flashing) on your Nanoleaf Aurora Panel while Home Assistant is starting. To configure the Aurora lights manually, add the following lines to your `configuration.yaml` file: diff --git a/source/_components/light.opple.markdown b/source/_components/light.opple.markdown index 6af52c83db18..dd4572db2cd2 100644 --- a/source/_components/light.opple.markdown +++ b/source/_components/light.opple.markdown @@ -35,8 +35,7 @@ name: type: string default: opple light host: - description: "The IP address of your Opple light, eg. `192.168.0.21`." + description: "The IP address of your Opple light, e.g., `192.168.0.21`." required: true type: string {% endconfiguration %} - diff --git a/source/_components/light.qwikswitch.markdown b/source/_components/light.qwikswitch.markdown deleted file mode 100644 index 13f61413f645..000000000000 --- a/source/_components/light.qwikswitch.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "QwikSwitch Light" -description: "Instructions on how to integrate Qwikswitch dimmers and relays as lights into Home Assistant." -date: 2016-05-04 00:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: qwikswitch.png -ha_category: Light -ha_iot_class: "Local Push" -ha_release: "0.20" ---- - - -The `qwikswitch` light platform allows you to control your [QwikSwitch](http://www.qwikswitch.co.za/) relays and dimmers as lights from within Home Assistant. - -The platform is configured through the [QwikSwitch component](/components/qwikswitch/). diff --git a/source/_components/light.rflink.markdown b/source/_components/light.rflink.markdown index 61e366392e35..c181c93800f9 100644 --- a/source/_components/light.rflink.markdown +++ b/source/_components/light.rflink.markdown @@ -13,91 +13,109 @@ ha_release: 0.38 ha_iot_class: "Assumed state" --- -The `rflink` component support 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). +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/). +First, you have to set up your [RFLink hub](/components/rflink/). -After configuring the RFLink hub lights will be automatically discovered and added. +After configuring the RFLink hub, lights will be automatically discovered and added. -RFLink switch/light ID's are composed of: protocol, id, switch. For example: `newkaku_0000c6c2_1`. +RFLink binary_sensor/switch/light ID's are composed of: protocol, id, switch/channel. For example: `newkaku_0000c6c2_1`. -Once the ID of a light is known it can be used to configure the light in HA, for example to add it to a different group, hide it or configure a nice name. +Once the ID of a light is known, it can be used to configure the light in HA, for example to add it to a different group, hide it or configure a nice name. -Configuring a device as light with a nice name: +Configuring devices as a light: ```yaml # Example configuration.yaml entry light: - platform: rflink - device_defaults: - fire_event: true - signal_repetitions: 2 devices: - newkaku_0000c6c2_1: - name: Living room + NewKaku_02a48800_0: {} + newkaku_0000c6c2_1: {} + Ansluta_ce30_0: {} + Maclean_0d82_01: {} ``` {% configuration %} device_defaults: description: The defaults for the devices. required: false - type: list + type: map keys: fire_event: - description: Set default `fire_event` for Rflink switch devices (see below). + description: Set default `fire_event` for RFLink switch devices (see below). required: false + default: False type: boolean signal_repetitions: - description: Set default `signal_repetitions` for Rflink switch devices (see below). + description: Set default `signal_repetitions` for RFLink switch devices (see below). required: false + default: 1 type: integer automatic_add: - description: Automatically add new/unconfigured devices to HA if detected. + 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. + description: A list of lights. 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 + rflink_ids: + description: RFLink ID of the device + required: true + type: map + 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](/components/light.rflink/#light-types) below." + required: false + default: switchable + type: string + aliases: + description: Alternative RFLink ID's this device is known by. + required: false + type: [list, string] + group_aliases: + description: "`aliases` which only respond to group commands." + required: false + type: [list, string] + no_group_aliases: + description: "`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 + aliasses: + description: (**deprecated**) Alternative RFLink ID's this device is known by. + required: false + type: [list, string] + group_aliasses: + description: "(**deprecated**) `aliases` which only respond to group commands." + required: false + type: [list, string] + no_group_aliasses: + description: "(**deprecated**) `aliases` which do not respond to group commands." + required: false + type: [list, string] {% endconfiguration %} ### {% linkable_title Light state %} @@ -112,14 +130,9 @@ light: - platform: rflink devices: newkaku_0000c6c2_1: - name: Living room aliases: - newkaku_000000001_2 - kaku_000001_a - Ansluta_ce30_0: - name: Kitchen Under Counter Lights - Maclean_0d82_01: - name: Bedroom Lamp ``` Any on/off command from any alias ID updates the current state of the light. However when sending a command through the frontend only the primary ID is used. @@ -146,3 +159,30 @@ Lights are added automatically when the RFLink gateway intercepts a wireless com ### {% linkable_title Device support %} See [device support](/components/rflink/#device-support) + +### {% linkable_title Additional configuration examples %} + +Multiple lights with `signal_repetitions` and custom names + +```yaml +# Example configuration.yaml entry +light: + - platform: rflink + device_defaults: + fire_event: true + signal_repetitions: 2 + automatic_add: true + devices: + NewKaku_02a48800_0: + name: Kitchen + type: hybrid + newkaku_0000c6c2_1: + name: Living room + aliases: + - newkaku_000000001_2 + - kaku_000001_a + Ansluta_ce30_0: + name: Kitchen Under Counter Lights + Maclean_0d82_01: + name: Bedroom Lamp +``` \ No newline at end of file diff --git a/source/_components/light.rfxtrx.markdown b/source/_components/light.rfxtrx.markdown index 6795a5a2e254..553ba93be339 100644 --- a/source/_components/light.rfxtrx.markdown +++ b/source/_components/light.rfxtrx.markdown @@ -22,7 +22,7 @@ The easiest way to find your lights is to add this to your `configuration.yaml`: ```yaml light: - platform: rfxtrx - automatic_add: True + automatic_add: true ``` Launch your Home Assistant and go the website. Push your remote and your device should be added: diff --git a/source/_components/light.scsgate.markdown b/source/_components/light.scsgate.markdown deleted file mode 100644 index 7a5030ffc40a..000000000000 --- a/source/_components/light.scsgate.markdown +++ /dev/null @@ -1,35 +0,0 @@ ---- -layout: page -title: "SCSGate Light" -description: "Instructions on how to integrate SCSGate lights into Home Assistant." -date: 2016-01-31 19:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: bus_scs.png -ha_category: Light -ha_release: 0.13 -ha_iot_class: "Local Polling" ---- - -The SCSGate device can control lights of the BTicino MyHome system. - -To enable SCSGate lights in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -light: - - platform: scsgate - devices: - living_room: - name: Living Room - scs_id: XXXXX -``` - -{% 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/light.sisyphus.markdown b/source/_components/light.sisyphus.markdown deleted file mode 100644 index 4c9e0146a99b..000000000000 --- a/source/_components/light.sisyphus.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Sisyphus Light" -description: "Instructions on how to integrate the light in your Sisyphus Kinetic Art Table into Home Assistant." -date: 2018-05-06 22:26 -sidebar: true -comments: false -sharing: true -footer: true -logo: sisyphus.png -ha_category: Light -ha_iot_class: "Local Push" -ha_release: 0.75 ---- - -The [Sisyphus](https://sisyphus-industries.com/) integration for Home Assistant allows you to observe and control your Sisyphus Kinetic Art Table. - -Lights will be automatically added for each of your Sisyphus tables if the Sisyphus component is configured. - -For more configuration information see the [Sisyphus component](/components/sisyphus/) documentation. diff --git a/source/_components/light.skybell.markdown b/source/_components/light.skybell.markdown deleted file mode 100644 index 889dbaf4caa6..000000000000 --- a/source/_components/light.skybell.markdown +++ /dev/null @@ -1,26 +0,0 @@ ---- -layout: page -title: "Skybell Light" -description: "Instructions on how to integrate your Skybell HD devices within Home Assistant." -date: 2017-10-03 16:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: skybell.png -ha_category: Light -ha_release: 0.56 -ha_iot_class: "Cloud Polling" ---- - -To get your [Skybell.com](https://skybell.com/) LED light working within Home Assistant, please follow the instructions for the general [Skybell component](/components/skybell). - -## {% linkable_title Configuration %} - -Once you have enabled the [Skybell component](/components/skybell), add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -light: - - platform: skybell -``` diff --git a/source/_components/light.tellduslive.markdown b/source/_components/light.tellduslive.markdown deleted file mode 100644 index 5a923d1566a8..000000000000 --- a/source/_components/light.tellduslive.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "Telldus Live Light" -description: "Instructions on how to integrate Telldus Live Lights into Home Assistant." -date: 2016-01-17 15:49 -sidebar: true -comments: false -sharing: true -footer: true -logo: telldus.png -ha_category: Light -featured: false ---- - -Integrates Telldus Live Lights into Home Assistant. See the [main component](/components/tellduslive/) for configuration instructions. - diff --git a/source/_components/light.tellstick.markdown b/source/_components/light.tellstick.markdown deleted file mode 100644 index 9c66e121ec6d..000000000000 --- a/source/_components/light.tellstick.markdown +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: page -title: "TellStick Light" -description: "Instructions on how to integrate TellStick lights into Home Assistant." -date: 2015-08-06 19:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: telldus_tellstick.png -ha_category: Light -ha_iot_class: "Assumed State" ---- - - -This `tellstick` light platform allows you to control your [TellStick](http://www.telldus.se/products/tellstick) dimmers. - -To use your TellStick device, you first have to set up your [Tellstick hub](/components/tellstick/) and then add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -light: - platform: tellstick -``` diff --git a/source/_components/light.tplink.markdown b/source/_components/light.tplink.markdown index c17d111832c6..95deb5f127a6 100644 --- a/source/_components/light.tplink.markdown +++ b/source/_components/light.tplink.markdown @@ -21,6 +21,10 @@ Supported units: - LB110 - LB120 - LB130 +- LB230 +- KL110 +- KL120 +- KL130 To use your TP-Link light in your installation, add the following to your `configuration.yaml` file: @@ -38,7 +42,7 @@ name: type: string default: TP-Link Light host: - description: "The IP address of your TP-Link bulb, eg. `192.168.1.32`." + description: "The IP address of your TP-Link bulb, e.g., `192.168.1.32`." required: true type: string {% endconfiguration %} diff --git a/source/_components/light.tradfri.markdown b/source/_components/light.tradfri.markdown deleted file mode 100644 index e7b44cdfd2b1..000000000000 --- a/source/_components/light.tradfri.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "IKEA Trådfri lights" -description: "Access and control your Zigbee-based IKEA Trådfri (Tradfri) Lights." -date: 2017-04-12 22.04 -sidebar: true -comments: false -sharing: true -footer: true -logo: ikea.svg -ha_category: Light -ha_iot_class: "Local Polling" -ha_release: 0.43 ---- - -For installation instructions, see [the Trådfri component](/components/tradfri/). diff --git a/source/_components/light.tuya.markdown b/source/_components/light.tuya.markdown deleted file mode 100644 index ec3d418e5e51..000000000000 --- a/source/_components/light.tuya.markdown +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: page -title: "Tuya Light" -description: "Instructions on how to setup the Tuya lights within Home Assistant." -date: 2018-07-16 09:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: tuya.png -ha_category: Light -ha_iot_class: "Cloud Polling" -ha_release: 0.74 ---- - - -The `tuya` light platform allows you to control your [Tuya Smart](https://www.tuya.com) lights. - -The platform supports most kinds of Tuya light. - -

-Full configuration details can be found on the main [Tuya component](/components/tuya/) page. -

\ No newline at end of file diff --git a/source/_components/light.vera.markdown b/source/_components/light.vera.markdown deleted file mode 100644 index dba42ffcaf09..000000000000 --- a/source/_components/light.vera.markdown +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: page -title: "Vera Light" -description: "Instructions on how to integrate Vera lights into Home Assistant." -date: 2015-10-20 21:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: vera.png -ha_category: Light -ha_iot_class: "Local Push" -ha_release: pre 0.7 ---- - -The `vera` platform allows you to control your [Vera](http://getvera.com/) lights from within Home Assistant. - -They will be automatically discovered if the vera component is loaded. - -For more configuration information see the [Vera component](/components/vera/) documentation. - diff --git a/source/_components/light.wemo.markdown b/source/_components/light.wemo.markdown deleted file mode 100644 index 1ae147ef864e..000000000000 --- a/source/_components/light.wemo.markdown +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: page -title: "Belkin WeMo Lights" -description: "Instructions on how to integrate Belkin WeMo LED lights and WeMo Dimmer Switch into Home Assistant." -date: 2016-02-20 00:45 -sidebar: true -comments: false -sharing: true -footer: true -logo: belkin_wemo.png -ha_category: Light -ha_iot_class: "Local Polling" -ha_release: 0.14 ---- - - -The `wemo` platform allows you to control your Belkin WeMo [LED lights](http://www.belkin.com/us/p/P-F5Z0489/) and [Smart Dimmer Switch](http://www.belkin.com/us/F7C059-Belkin/p/P-F7C059/) from within Home Assistant. - -They will be automatically discovered if the discovery component is enabled. - -For more configuration information see the [WeMo component](/components/wemo/) documentation. - diff --git a/source/_components/light.wink.markdown b/source/_components/light.wink.markdown deleted file mode 100644 index e537c116018d..000000000000 --- a/source/_components/light.wink.markdown +++ /dev/null @@ -1,34 +0,0 @@ ---- -layout: page -title: "Wink Light" -description: "Instructions on how to setup the Wink lights within Home Assistant." -date: 2015-01-20 22:36 -sidebar: true -comments: false -sharing: true -footer: true -logo: wink.png -ha_category: Light -ha_iot_class: "Cloud Polling" -ha_release: pre 0.7 ---- - - -The `wink` light platform allows you to use your [Wink](http://www.wink.com/) lights. - -The requirement is that you have setup [Wink](/components/wink/). - - -### {% linkable_title Supported light devices %} - -- Z-wave switches with dimming -- Hue -- Lightify -- GE link -- Wink light groups (User created groups of lights) - -

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

- - diff --git a/source/_components/light.yeelight.markdown b/source/_components/light.yeelight.markdown index 609bd18e1c30..198c2b7038cf 100644 --- a/source/_components/light.yeelight.markdown +++ b/source/_components/light.yeelight.markdown @@ -13,14 +13,28 @@ ha_release: 0.32 ha_iot_class: "Local Polling" --- -The `yeelight` light platform allows you to control your Yeelight Wifi bulbs with Home Assistant. +The `yeelight` light platform allows you to control your Yeelight Wifi bulbs with Home Assistant. There are two possible methods for configuration of the Yeelight: Manual or Automatic. -### {% linkable_title Example configuration %} +### {% linkable_title Example configuration (Automatic) %} +After the lights are connected to the WiFi network and have been detected in Home Assistant, the discovered names will be shown in the `Light` section of the `Overview` view. Add the following lines to your `customize.yaml` file: + +```yaml +# Example customize.yaml entry +light.yeelight_rgb_XXXXXXXXXXXX: + friendly_name: Living Room +light.yeelight_color2_XXXXXXXXXXXX: + friendly_name: Downstairs Toilet +``` + +### {% linkable_title Example configuration (Manual) %} To enable those lights, add the following lines to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry +discovery: + ignore: + - yeelight light: - platform: yeelight devices: @@ -52,16 +66,40 @@ devices: description: Enable music mode. required: false type: boolean - default: False + default: false save_on_change: description: Saves the bulb state in its nonvolatile memory when changed from Home Assistant. required: false type: boolean - default: False + 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." + description: "Yeelight model. Possible values are `mono1`, `color1`, `color2`, `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 +custom_effects: + description: List of custom effects to add. Check examples below. + required: false + type: array + keys: + name: + description: Name of effect. + required: true + type: string + flow_params: + description: Flow params for effect. + required: true + type: map + keys: + count: + description: The number of times to run this flow (0 to run forever). + required: false + type: integer + default: 0 + transitions: + description: List of transitions, for that effect, check [example](#custom-effects). + required: true + type: array + {% endconfiguration %} #### {% linkable_title Music mode %} @@ -108,9 +146,21 @@ Set an operation mode. | Service data attribute | Optional | Description | |---------------------------|----------|---------------------------------------------------------------------------------------------| -| `entity_id` | yes | Only act on a specific yeelight. Else targets all. | +| `entity_id` | no | Only act on a specific lights. | | `mode` | no | Operation mode. Valid values are 'last', 'normal', 'rgb', 'hsv', 'color_flow', 'moonlight'. | + +### {% linkable_title Service `light.yeelight_start_flow` %} + +Start flow with specified transitions + +| Service data attribute | Optional | Description | +|---------------------------|----------|---------------------------------------------------------------------------------------------| +| `entity_id` | no | Only act on a specific lights. | +| `count` | yes | The number of times to run this flow (0 to run forever). | +| `action` | yes | The action to take after the flow stops. Can be 'recover', 'stay', 'off'. Default 'recover' | +| `transitions` | no | Array of transitions. See [examples below](#custom-effects). | + ## {% linkable_title Examples %} In this section you find some real-life examples of how to use this light. @@ -127,8 +177,8 @@ light: 192.168.1.25: name: Living Room transition: 1000 - use_music_mode: True - save_on_change: True + use_music_mode: true + save_on_change: true ``` ### {% linkable_title Multiple bulbs %} @@ -144,3 +194,34 @@ light: 192.168.1.13: name: Front Door ``` + +### {% linkable_title Custom effects %} + +This example shows how you can add your custom effects in your configuration. To turn on the effect you can use [light.turn_on](/components/light/#service-lightturn_on) service. + +Possible transitions are `RGBTransition`, `HSVTransition`, `TemperatureTransition`, `SleepTransition`. + +Where the array values are as per the following: + - RGBTransition: [red, green, blue, duration, brightness] with red / green / blue being an integer between 0 and 255, duration being in milliseconds (minimum of 50) and final brightness to transition to 0-100 (%) + - HSVTransition: [hue, saturation, duration, brightness] with hue being an integer between 0 and 359, saturation 0 -100, duration in milliseconds (minimum 50) and final brightness 0-100 (%) + - TemperatureTransition: [temp, duration, brightness] with temp being the final color temperature between 1700 and 6500, duration in milliseconds (minimum 50) and final brightness to transition to 0-100 (%) + - SleepTransition: [duration] with duration being in integer for effect time in milliseconds (minimum 50) + +More info about transitions and their expected parameters can be found in [python-yeelight documentation](https://yeelight.readthedocs.io/en/stable/flow.html). + + +```yaml +light: + - platform: yeelight + devices: + 192.168.1.25: + name: Living Room + custom_effects: + - name: 'Fire Flicker' + flow_params: + count: 0 + transitions: + - TemperatureTransition: [1900, 1000, 80] + - TemperatureTransition: [1900, 2000, 60] + - SleepTransition: [1000] +``` diff --git a/source/_components/light.zha.markdown b/source/_components/light.zha.markdown deleted file mode 100644 index 0285626c6190..000000000000 --- a/source/_components/light.zha.markdown +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: page -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 -sharing: true -footer: true -logo: zigbee.png -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/). diff --git a/source/_components/lightwave.markdown b/source/_components/lightwave.markdown index 84c10c35a41d..72b38afdaf47 100644 --- a/source/_components/lightwave.markdown +++ b/source/_components/lightwave.markdown @@ -8,13 +8,22 @@ comments: false sharing: true footer: true logo: lightwave.png -ha_category: Hub +ha_category: + - Hub + - Light + - Switch ha_release: 0.84 ha_iot_class: "Assumed State" +redirect_from: + - /components/light.lightwave/ + - /components/switch.lightwave/ --- -The `lightwave` component links Home Assistant with your Lightwave WiFi link for controlling Lightwave lights and switches. + +The `lightwave` component links Home Assistant with your Lightwave WiFi link for controlling Lightwave lights and switches. + This component uses the official API published by Lightwave on their website [https://api.lightwaverf.com/](https://api.lightwaverf.com/). To add your Lightwave devices into your Home Assistant installation, add the following to your `configuration.yaml` file: + ```yaml # Example configuration.yaml entry lightwave: @@ -45,5 +54,6 @@ Each `switch` or `light` requires an `id` and a `name`. The `id` takes the form The first use of a light or switch will try to register with your Lightwave WiFi Link hub. If the hub has not been registered a message on your hub will be displayed asking you to pair the device. You have 12 seconds to push the button on your hub to accept this. Once done, you should be able to control your lights and switches via Home Assistant. This only needs to be done if the hub has not been registered. The Lightwave Home Assistant component currently supports the following Lightwave devices: + - Lightwave lights - Lightwave switches \ No newline at end of file diff --git a/source/_components/linode.markdown b/source/_components/linode.markdown index ccd090b47e8d..4dbd4f70136a 100644 --- a/source/_components/linode.markdown +++ b/source/_components/linode.markdown @@ -7,23 +7,34 @@ sidebar: true comments: false sharing: true footer: true -ha_category: System Monitor +ha_category: + - System Monitor + - Binary Sensor + - Switch logo: linode.png ha_release: 0.57 ha_iot_class: "Cloud Polling" +redirect_from: + - /components/binary_sensor.linode/ + - /components/switch.linode/ --- The `linode` component allows you to access the information about your [Linode](https://linode.com) systems from Home Assistant. +There is currently support for the following device types within Home Assistant: + +- [Binary Sensor](#binary-sensor) +- [Switch](#switch) + ## {% linkable_title Setup %} Obtain your oAuth2 Access Token from Linode account. -* -* Log in -* Select API Tokens -* Create a Personal Access Token, -* Assigned scope (Please choose the least possible access required.) +- +- Log in +- Select API Tokens +- Create a Personal Access Token, +- Assigned scope (Please choose the least possible access required.) ## {% linkable_title Configuration %} @@ -41,3 +52,45 @@ linode: required: true type: string {% endconfiguration %} + +## {% linkable_title Binary Sensor %} + +The `linode` binary sensor platform allows you to monitor your Linode nodes. + +Add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: linode + nodes: + - 'myvpsname' +``` + +{% configuration %} +nodes: + description: List of VPSs you want to control. + required: true + type: string +{% endconfiguration %} + +## {% linkable_title Switch %} + +The `linode` switch platform allows you to turn your Linode nodes on and off. + +Add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: linode + nodes: + - 'myvpsname' +``` + +{% configuration linode %} + nodes: + description: List of VPSs you want to control. + required: true + type: string +{% endconfiguration %} diff --git a/source/_components/litejet.markdown b/source/_components/litejet.markdown index ae6b94a24a9a..0aec4126924e 100644 --- a/source/_components/litejet.markdown +++ b/source/_components/litejet.markdown @@ -7,9 +7,16 @@ sidebar: true comments: false sharing: true footer: true -ha_category: Hub +ha_category: + - Light + - Scene + - Switch ha_iot_class: "Local Push" ha_release: 0.32 +redirect_from: + - /components/light.litejet/ + - /components/scene.litejet/ + - /components/switch.litejet/ --- LiteJet is a centralized lighting system that predates most home automation technology. All lights and wall switches are wired to a central panel. This central panel has a serial port interface that allows a computer to control the system via LiteJet's third party protocol. diff --git a/source/_components/device_tracker.locative.markdown b/source/_components/locative.md similarity index 57% rename from source/_components/device_tracker.locative.markdown rename to source/_components/locative.md index 0d7b04f075ee..7ab8b47b20ea 100644 --- a/source/_components/device_tracker.locative.markdown +++ b/source/_components/locative.md @@ -9,28 +9,24 @@ sharing: true footer: true logo: locative.png ha_category: Presence Detection +ha_release: 0.86 +ha_iot_class: "Cloud Push" +redirect_from: + - /components/device_tracker.locative/ ---

-Locative is no longer under active development. See https://blog.locative.io/bye-everyone-df01871fe949 +Locative is no longer under active development. Read more here

This platform allows you to detect presence using [Locative](https://my.locative.io/). Locative is an open source app for [iOS](https://github.com/LocativeHQ/ios-app) and [Android](https://github.com/LocativeHQ/Locative-Android) that allows users to set up a `GET` or `POST` request when a geofence is entered or exited. This can be configured with Home Assistant to update your location. -To integrate Locative in Home Assistant, add the following section to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -device_tracker: - - platform: locative -``` - Install on your smartphone: - [Android](https://play.google.com/store/apps/details?id=io.locative.app) - [iOS](https://itunes.apple.com/us/app/geofancy/id725198453) -To configure Locative, you must set up the app to send a `GET` request to your Home Assistant server at `http:///api/locative`. Make sure to include the API password if you have configured a password in Home Assistant (add `?api_password=` to the end of the URL). When you enter or exit a geofence, Locative will send a `GET` request to that URL, updating Home Assistant. You are not able to specify a device name in Locative. Instead, you will need to look in your known_devices.yaml file for a new device that Locative will have created on it's first `GET`. If you had been or are using Owntracks as well, you will need to update the device name used in the Owntracks setup with the name that Locative generated. +To configure Locative, you must set it up via the integrations panel in the configuration screen. You must set up the app to send a POST request to your Home Assistant server at the webhook URL provided by the integration during setup. When you enter or exit a geofence, Locative will send the appropriate request to that URL, updating Home Assistant. You are not able to specify a device name in Locative. Instead, you will need to look in your known_devices.yaml file for a new device that Locative will have created on it's first `GET`. If you had been or are using Owntracks as well, you will need to update the device name used in the Owntracks setup with the name that Locative generated.

@@ -38,4 +34,4 @@ To configure Locative, you must set up the app to send a `GET` request to your H When you enter a geofence, your location name in Home Assistant will be set to the name of the geofence in Locative. When you exit a geofence, your location name in Home Assistant will be set to "not home". -To use Locative in combination with another device tracker, such as [Nmap](/components/device_tracker.nmap_tracker/) or [Netgear](/components/device_tracker.netgear/), fill in the `mac` field to the Locative entry in `known_devices.yaml` with the MAC address of the device you want to track. The state of the device will be determined by the source that reported last. +To use Locative in combination with another device tracker, such as [Nmap](/components/device_tracker.nmap_tracker/) or [Netgear](/components/device_tracker.netgear/), fill in the `mac` field to the Locative entry in `known_devices.yaml` with the MAC address of the device you want to track. The state of the device will be determined by the source that reported last. \ No newline at end of file diff --git a/source/_components/lock.abode.markdown b/source/_components/lock.abode.markdown deleted file mode 100644 index 9dcc3cff907f..000000000000 --- a/source/_components/lock.abode.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Abode Lock" -description: "Instructions on how to integrate Abode locks into Home Assistant." -date: 2017-08-26 13:28 -sidebar: true -comments: false -sharing: true -footer: true -logo: abode.jpg -ha_release: 0.52 -ha_category: Lock -ha_iot_class: "Cloud Push" ---- - -The `abode` security control panel platform allows you to control your [Abode](https://goabode.com/) alarms. - -This component will automatically add `Door Locks` configured in your Abode account. - -The requirement is that you have setup your [Abode hub](/components/abode/). diff --git a/source/_components/lock.august.markdown b/source/_components/lock.august.markdown deleted file mode 100644 index eda4f37d06eb..000000000000 --- a/source/_components/lock.august.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "August Lock" -description: "Instructions on how to integrate your August devices into Home Assistant." -date: 2018-02-17 22:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: august.png -ha_category: Lock -ha_release: "0.64" -ha_iot_class: "Cloud Polling" ---- - -The `august` lock platform allows you to control your [August](http://august.com) lock from within Home Assistant. - -To add `august` lock to your installation, follow instructions in [August component](/components/august/). diff --git a/source/_components/lock.bmw_connected_drive.markdown b/source/_components/lock.bmw_connected_drive.markdown deleted file mode 100644 index 262b2ffb4731..000000000000 --- a/source/_components/lock.bmw_connected_drive.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "BMW Connected Drive Lock" -description: "Instructions on how to setup your BMW Connected Drive account with Home Assistant." -date: 2018-02-22 23:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: bmw.png -ha_category: Car -ha_release: 0.66 ---- - - -The `bmw_connected_drive` lock platform allows you to import data on your BMW into Home Assistant. - -The lock will be automatically configured if `bmw_connected_drive` component is configured. - -For more configuration information see the [`bmw_connected_drive` component](/components/bmw_connected_drive/) documentation. diff --git a/source/_components/lock.homematic.markdown b/source/_components/lock.homematic.markdown deleted file mode 100644 index d536312e2ea2..000000000000 --- a/source/_components/lock.homematic.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Homematic Lock (KeyMatic)" -description: "Instructions how to integrate Homematic locks (KeyMatic) within Home Assistant." -date: 2018-01-28 03:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: homematic.png -ha_category: Lock -ha_release: 0.66 -ha_iot_class: "Local Push" ---- - -The `homematic` lock platform lets you observe and control the state of the HomeMatic [Homematic](http://www.homematic.com/) KeyMatic lock through Home Assistant. - -Devices will be configured automatically. Please refer to the [component](/components/homematic/) configuration on how to setup Homematic. diff --git a/source/_components/lock.isy994.markdown b/source/_components/lock.isy994.markdown deleted file mode 100644 index b019662a68cd..000000000000 --- a/source/_components/lock.isy994.markdown +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: page -title: "ISY994 Lock" -description: "Instructions on how to integrate ISY994 locks into Home Assistant." -date: 2016-09-03 23:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: universal_devices.png -ha_category: Lock -ha_iot_class: "Local Push" ---- - -The `isy994` platform allows you to get data from your [ISY994](https://www.universal-devices.com/residential/isy994i-series/) lock from within Home Assistant. - -They will be automatically discovered if the `isy994` component is loaded. diff --git a/source/_components/lock.mqtt.markdown b/source/_components/lock.mqtt.markdown index 7009e9224e9d..812675886dc0 100644 --- a/source/_components/lock.mqtt.markdown +++ b/source/_components/lock.mqtt.markdown @@ -15,6 +15,8 @@ ha_iot_class: depends The `mqtt` lock platform lets you control your MQTT enabled locks. +## {% linkable_title Configuration %} + In an ideal scenario, the MQTT device will have a `state_topic` to publish state changes. If these messages are published with a `RETAIN` flag, the MQTT lock will receive an instant state update after subscription and will start with correct state. Otherwise, the initial state of the lock will be `false` / unlocked. When a `state_topic` is not available, the lock will work in optimistic mode. In this mode, the lock will immediately change state after every command. Otherwise, the lock will wait for state confirmation from the device (message from `state_topic`). @@ -31,11 +33,6 @@ lock: ``` {% configuration %} -name: - description: The name of the lock. - required: false - type: string - default: MQTT Lock command_topic: description: The MQTT topic to publish commands to change the lock state. required: true @@ -44,6 +41,11 @@ state_topic: description: The MQTT topic subscribed to receive state updates. required: false type: string +name: + description: The name of the lock. + required: false + type: string + default: MQTT Lock payload_lock: description: The payload that represents enabled/locked state. required: false @@ -87,6 +89,43 @@ payload_not_available: required: false type: string default: offline +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation. + required: false + type: string +unique_id: + description: An ID that uniquely identifies this lock. If two locks have the same unique ID, Home Assistant will raise an exception. + required: false + type: string +device: + description: 'Information about the device this lock is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.' + required: false + type: map + keys: + identifiers: + description: 'A list of IDs that uniquely identify the device. For example a serial number.' + required: false + type: list, string + connections: + description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' + required: false + type: list + manufacturer: + description: 'The manufacturer of the device.' + required: false + type: string + model: + description: 'The model of the device.' + required: false + type: string + name: + description: 'The name of the device.' + required: false + type: string + sw_version: + description: 'The firmware version of the device.' + required: false + type: string {% endconfiguration %}

diff --git a/source/_components/lock.tesla.markdown b/source/_components/lock.tesla.markdown deleted file mode 100644 index bc050bf8b4a0..000000000000 --- a/source/_components/lock.tesla.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Tesla Lock" -description: "Instructions on how to integrate Tesla door lock into Home Assistant." -date: 2017-08-30 12:20 -sidebar: true -comments: false -sharing: true -footer: true -logo: tesla.png -ha_category: Car -ha_iot_class: "Cloud Push" -ha_release: 0.53 ---- - -The `tesla` platform allows you to control your [Tesla](https://www.tesla.com/) door lock from within Home Assistant. - -The lock platform will be automatically configured if `tesla` component is configured. - -For more configuration information see the [Tesla component](/components/tesla/) documentation. diff --git a/source/_components/lock.vera.markdown b/source/_components/lock.vera.markdown deleted file mode 100644 index a3050389878d..000000000000 --- a/source/_components/lock.vera.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Vera Lock" -description: "Instructions on how to integrate Vera locks into Home Assistant." -date: 2016-06-29 15:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: vera.png -ha_category: Lock -ha_iot_class: "Local Push" -ha_release: pre 0.7 ---- - -The `vera` platform allows you to control your [Vera](http://getvera.com/) locks from within Home Assistant. - -They will be automatically discovered if the vera component is loaded. - -For more configuration information see the [Vera component](/components/vera/) documentation. diff --git a/source/_components/lock.verisure.markdown b/source/_components/lock.verisure.markdown deleted file mode 100644 index e3c2d31e8505..000000000000 --- a/source/_components/lock.verisure.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Verisure Lock" -description: "Instructions on how to setup the Verisure locks within Home Assistant." -date: 2016-02-12 06:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: verisure.png -ha_category: Lock -ha_release: 0.13 -ha_iot_class: "Cloud Polling" ---- - - -The Verisure lock platform allows you to control your [Verisure](https://www.verisure.com/) locks. - -The requirement is that you have setup your [Verisure hub](/components/verisure/). - diff --git a/source/_components/lock.wink.markdown b/source/_components/lock.wink.markdown deleted file mode 100644 index 38b37fe9ea0b..000000000000 --- a/source/_components/lock.wink.markdown +++ /dev/null @@ -1,147 +0,0 @@ ---- -layout: page -title: "Wink Lock" -description: "Instructions on how to setup the Wink locks within Home Assistant." -date: 2015-11-20 12:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: wink.png -ha_category: Lock -ha_release: 0.9 -ha_iot_class: "Cloud Polling" ---- - -The Wink lock platform allows you to control your [Wink](http://www.wink.com/) locks. - -The requirement is that you have setup [Wink](/components/wink/). - -### {% linkable_title Supported lock devices %} - -- Kwikset -- Schlage -- August (No Wink hub required) (August Connect required) -- Generic Z-wave - -

-The following services have only been confirmed on Schlage locks. -

- -### {% linkable_title Service `wink_set_lock_alarm_mode` %} - -You can use the service wink/wink_set_lock_alarm_mode to set the alarm mode of your lock. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `mode` | no | String one of tamper, activity, or forced_entry -| `entity_id` | yes | String or list of strings that point at `entity_id`s of locks. - -Example: - -```yaml -script: - set_locks_to_tamper: - sequence: - - service: wink.wink_set_lock_alarm_mode - data: - mode: "tamper" -``` - -### {% linkable_title Service `wink_set_lock_alarm_sensitivity` %} - -You can use the service wink/wink_set_lock_alarm_sensitivity to set the alarm sensitivity of your lock. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `sensitivity` | no | String one of low, medium_low, medium, medium_high, high. -| `entity_id` | yes | String or list of strings that point at `entity_id`s of locks. - -Example: - -```yaml -script: - set_locks_to_high_sensitivity: - sequence: - - service: wink.wink_set_lock_alarm_sensitivity - data: - sensitivity: "high" -``` - -### {% linkable_title Service `wink_set_lock_alarm_state` %} - -You can use the service wink/wink_set_lock_alarm_state to set the alarm state of your lock. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `enabled` | no | Boolean enabled or disabled, true or false -| `entity_id` | yes | String or list of strings that point at `entity_id`s of locks. - -Example: - -```yaml -script: - disable_all_locks_alarm: - sequence: - - service: wink.wink_set_lock_alarm_state - data: - enabled: false -``` - -### {% linkable_title Service `wink_set_lock_beeper_state` %} - -You can use the service wink/wink_set_lock_beeper_state to set the beeper state of your lock. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `enabled` | no | Boolean enabled or disabled, true or false -| `entity_id` | yes | String or list of strings that point at `entity_id`s of locks. - -Example: - -```yaml -script: - disable_all_locks_beepers: - sequence: - - service: wink.wink_set_lock_beeper_state - data: - enabled: false -``` - -### {% linkable_title Service `wink_set_lock_vacation_mode` %} - -You can use the service wink/wink_set_lock_vacation_mode to set the vacation mode of your lock. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `enabled` | no | Boolean enabled or disabled, true or false -| `entity_id` | yes | String or list of strings that point at `entity_id`s of locks. - -Example: - -```yaml -script: - enabled_vacation_mode_on_all_locks: - sequence: - - service: wink.wink_set_lock_vacation_mode - data: - enabled: false -``` - -### {% linkable_title Service `wink_add_new_lock_key_code` %} - -You can use the service wink/wink_add_new_lock_key_code to add a new user code to your Wink lock. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | no | String or list of strings that point at `entity_id`s of locks. -| `name` | no | the name of the new key code -| `code` | no | The new code. Must match length of existing codes. - -

-Calling service wink/pull_newly_added_wink_devices will add the new key code to Home Assistant. The device will also show up on the next restart of Home Assistant. -

- -

-If supported by your lock, a binary sensor will be created for each user key code you have defined. These key codes will turn on when the code is entered and automatically turn off after a few seconds. -

diff --git a/source/_components/luftdaten.markdown b/source/_components/luftdaten.markdown index 276c10c501e3..fe800393d687 100644 --- a/source/_components/luftdaten.markdown +++ b/source/_components/luftdaten.markdown @@ -8,10 +8,14 @@ comments: false sharing: true footer: true logo: luftdaten.png -ha_category: Health +ha_category: + - Health + - Sensor ha_release: 0.82 ha_iot_class: "Cloud Polling" ha_qa_scale: gold +redirect_from: + - /components/sensor.luftdaten/ --- The `luftdaten` component will query the open data API of [luftdaten.info](http://luftdaten.info) to monitor air quality and other weather data from a specific (self build) sensor station. @@ -21,15 +25,14 @@ The `luftdaten` component will query the open data API of [luftdaten.info](http: - To get the ID of a particle sensor you need to select it on the [Feinstaub map](http://deutschland.maps.luftdaten.info/) and find it in the sidebar (Column "Sensor ID"). - To get the ID of a temperature/humidity sensor you need to find it on the map hosted on [Madavi](https://www.madavi.de/sensor/feinstaub-map-dht/). - ## {% linkable_title COnfiguration via the frontend %} Menu: **Configuration** -> **Integrations** Configure the integration: -* Enter the **Sensor ID** -* Choose if you want to show the sensor's location on the map. +- Enter the **Sensor ID** +- Choose if you want to show the sensor's location on the map. ## {% linkable_title Manual Configuration %} @@ -45,11 +48,6 @@ sensor_id: description: The ID of the sensor. required: true type: string -name: - description: Name of the sensor to use in the frontend. - required: false - default: Luftdaten Sensor - type: string show_on_map: description: Option to show the position of the sensor on the map. required: optional @@ -95,7 +93,7 @@ $ curl https://api.luftdaten.info/v1/sensor/[sensorid]/ ## {% linkable_title Full example %} This example would use the sensor with the ID 155, show it on the `map` and would monitor `temperature` and `humidity`. - + ```yaml # Example configuration.yaml entry luftdaten: @@ -106,3 +104,9 @@ luftdaten: - temperature - humidity ``` + +## {% linkable_title Sensor %} + +The `luftdaten` sensor platform will query the open data API of [luftdaten.info](http://luftdaten.info) to monitor air quality and other weather data from a specific (self build) sensor station. + +You must have the `luftdaten` component (from above) configured to use this platform. After configuring that component, sensors will automatically appear. diff --git a/source/_components/lupusec.markdown b/source/_components/lupusec.markdown index d26b74319ea9..8577f2bffe60 100644 --- a/source/_components/lupusec.markdown +++ b/source/_components/lupusec.markdown @@ -7,19 +7,33 @@ sidebar: true comments: false sharing: true footer: true -logo: lupusec.jpg -ha_category: Hub +logo: lupusec.png +ha_category: + - Hub + - Alarm + - Binary Sensor + - Switch ha_release: 0.83 ha_iot_class: "Local Polling" +redirect_from: + - /components/alarm_control_panel.lupusec/ + - /components/binary_sensor.lupusec/ + - /components/switch.lupusec/ --- -The `Lupusec` component allows the user to integrate their Lupusec alarm control panel and ultimately all connected sensors and other devices. For more information about the LUPUS-Electronics security system please visit their [website](https://www.lupus-electronics.de). +The `lupusec` component allows the user to integrate their Lupusec alarm control panel and ultimately all connected sensors and other devices. For more information about the LUPUS-Electronics security system please visit their [website](https://www.lupus-electronics.de). -The following devices are supported by the underlying `lupupy` python library and integrated into hass. +Supported units: -- [Alarm Control Panel](/components/alarm_control_panel.lupusec/): Displays the alarm status and controls arming, disarming and home modus. -- [Binary Sensor](/components/binary_sensor.lupusec/): Displays the status of binary sensors. Currently only Door and window sensors are supported. -- [Switch](/components/switch.lupusec/): Turn off and on your Lupus power switches. +- Lupusec XT1 + +The following devices are supported by the underlying `lupupy` Python library and integrated into Home Assistant. + +- **Alarm Control Panel**: Displays the alarm status and controls arming, disarming and home modus. +- **Binary Sensor**: Displays the status of binary sensors. Currently only Door and window sensors are supported. +- **Switch**: Turn off and on your Lupus power switches. + +## {% linkable_title Configuration %} To use Lupusec devices in your installation, add the following `lupusec` section to your `configuration.yaml` file: @@ -28,7 +42,7 @@ To use Lupusec devices in your installation, add the following `lupusec` section lupusec: username: YOUR_USERNAME password: YOUR_PASSWORD - ip_address: 192.168.178.35 + ip_address: YOUR_IP_ADDRESS ``` {% configuration %} @@ -41,11 +55,11 @@ password: required: true type: string ip_address: - description: The IP-address of your Lupusec alarm panel. + description: The IP address of your Lupusec alarm panel. required: true type: string name: description: Name for your Lupusec panel. required: false type: string -{% endconfiguration %} \ No newline at end of file +{% endconfiguration %} diff --git a/source/_components/lutron.markdown b/source/_components/lutron.markdown index 66960face436..c8e8be661134 100644 --- a/source/_components/lutron.markdown +++ b/source/_components/lutron.markdown @@ -8,15 +8,25 @@ comments: false sharing: true footer: true logo: lutron.png -ha_category: Hub -featured: False +ha_category: + - Hub + - Cover + - Light + - Scene + - Switch +featured: false ha_release: 0.37 ha_iot_class: "Local Polling" +redirect_from: + - /components/cover.lutron/ + - /components/light.lutron/ + - /components/scene.lutron/ + - /components/switch.lutron/ --- [Lutron](http://www.lutron.com/) is an American lighting control company. They have several lines of home automation devices that manage light switches/dimmers, occupancy sensors, HVAC controls, etc. The `lutron` component in Home Assistant is responsible for communicating with the main hub for these systems. -Presently, there's only support for communicating with the [RadioRA 2](http://www.lutron.com/en-US/Products/Pages/WholeHomeSystems/RadioRA2/Overview.aspx) Main Repeater and only handle light switches and dimmers. +Presently, there's only support for communicating with the [RadioRA 2](http://www.lutron.com/en-US/Products/Pages/WholeHomeSystems/RadioRA2/Overview.aspx) Main Repeater and only handle light switches, dimmers, and seeTouch keypad scenes. ## {% linkable_title Configuration %} @@ -50,3 +60,23 @@ password:

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.

+ +## {% linkable_title Keypad buttons %} + +Individual buttons on keypads are not represented as entities. Instead, they fire events called `lutron_event` whose payloads include `id` and `action` attributes. + +The `id` attribute includes the name of the keypad and the name of the button, normalized the same way entity names are. For example, if the keypad is called "Kitchen Keypad" and the button is called "Dinner" the event's `id` will be `kitchen_keypad_dinner`. + +The `action` attribute varies depending on the button type. + +For raise/lower buttons (dimmer buttons, shade controls, etc.) there will be two values, `pressed` and `released`, fired when the button is pressed and when it's released, respectively. + +For single-action buttons (scene selection, etc.), `action` will be `single`, and there will only be one event fired. This is a limitation of the Lutron controller which doesn't give Home Assistant any way of knowing when a single-action button is released. + +## {% linkable_title Scene %} + +This component uses keypad programming to identify scenes. Currently, it only works with SeeTouch keypads. +The Lutron scene platform allows you to control scenes programmed into your SeeTouch keypads. + +After setup, scenes will appear in Home Assistant using the area, keypad and button name. + diff --git a/source/_components/lutron_caseta.markdown b/source/_components/lutron_caseta.markdown index 4a42d97b16fc..2889bc32526a 100644 --- a/source/_components/lutron_caseta.markdown +++ b/source/_components/lutron_caseta.markdown @@ -8,10 +8,20 @@ comments: false sharing: true footer: true logo: lutron.png -ha_category: Hub -featured: False +ha_category: + - Hub + - Cover + - Light + - Scene + - Switch +featured: false ha_release: 0.41 ha_iot_class: "Local Polling" +redirect_from: + - /components/cover.lutron_caseta/ + - /components/light.lutron_caseta/ + - /components/scene.lutron_caseta/ + - /components/switch.lutron_caseta/ --- [Lutron](http://www.lutron.com/) is an American lighting control company. They have several lines of home automation devices that manage light switches, dimmers, occupancy sensors, HVAC controls, etc. The `lutron_caseta` component in Home Assistant is responsible for communicating with the Lutron Caseta Smart Bridge for the [Caseta](http://www.casetawireless.com) product line of dimmers, switches and shades. @@ -20,10 +30,10 @@ This component only supports the [Caseta](http://www.casetawireless.com) line of The currently supported Caseta devices are: -- Wall and plug-in dimmers as Home Assistant [lights](/components/light.lutron_caseta/) -- Wall switches as Home Assistant [switches](/components/switch.lutron_caseta/) -- Scenes as Home Assistant [scenes](/components/scene.lutron_caseta/) -- Lutron shades as Home Assistant [covers](/components/cover.lutron_caseta/) +- Wall and plug-in dimmers as Home Assistant +- Wall switches as Home Assistant +- Scenes as Home Assistant +- Lutron shades as Home Assistant When configured, the `lutron_caseta` component will automatically discover the currently supported devices as setup in the Lutron Smart Bridge. The name assigned in the Lutron mobile app will be used to form the `entity_id` used in Home Assistant. e.g., a dimmer called 'Lamp' in a room called 'Bedroom' becomes `light.bedroom_lamp` in Home Assistant. @@ -64,3 +74,43 @@ It is recommended to assign a static IP address to your Lutron Smart Bridge. Thi
Use a DHCP reservation on your router to reserve the address or in the PRO model of the Smart Bridge, set the IP address under Network Settings in the Advanced / Integration menu in the mobile app.

+ +To get Lutron Caseta roller, honeycomb shades, lights, scene and switch working with Home Assistant. First follow the instructions for the general Lutron Caseta component above. + +## {% linkable_title Cover %} + +After setup, shades will appear in Home Assistant using an `entity_id` based on the name used in the Lutron mobile app. For example, a shade called 'Living Room Window' will appear in Home Assistant as `cover.living_room_window`. + +For more information on working with shades in Home Assistant, see the [Covers component](/components/cover/). + +Available services: `cover.open_cover`, `cover.close_cover` and `cover.set_cover_position`. Cover `position` ranges from `0` for fully closed to `100` for fully open. + +## {% linkable_title Light %} + +After setup, dimmable lights including wall and plug-in dimmers will appear in Home Assistant using an `entity_id` based on the name used in the Lutron mobile app. For example, a light called 'Bedroom Lamp' will appear in Home Assistant as `light.bedroom_lamp`. + +For non-dimmable lights or switched loads, see the switch section on this page. + +For more information on working with lights in Home Assistant, see the [Lights component](/components/light/). + +Available services: `light.turn_on`, `light.turn_off` and `light.toggle`. The `light.turn_on` service supports attributes `brightness` and `brightness_pct`. + +## {% linkable_title Scene %} + +The Lutron Caseta scene platform allows you to control your Smart Bridge Scenes that are created in the Lutron mobile app. + +After setup, scenes will appear in Home Assistant using an `entity_id` based on the name used in the Lutron mobile app. For example, a scene called 'Entertain' will appear in Home Assistant as `scene.entertain`. + +For more information on working with scenes in Home Assistant, see the [Scenes component](/components/scene/). + +Available services: `scene.turn_on`. + +## {% linkable_title Switch %} + +After setup, switches will appear in Home Assistant using an `entity_id` based on the name used in the Lutron mobile app. For example, a light switch called 'Master Bathroom Vanity' will appear in Home Assistant as `switch.master_bathroom_vanity`. + +For dimmable lights including wall and plug-in dimmers, see the light section on this page. + +For more information on working with switches in Home Assistant, see the [Switches component](/components/switch/). + +Available services: `switch.turn_on` and `switch.turn_off`. \ No newline at end of file diff --git a/source/_components/mailgun.markdown b/source/_components/mailgun.markdown index a0d3fb2dceaf..db3085cc1fce 100644 --- a/source/_components/mailgun.markdown +++ b/source/_components/mailgun.markdown @@ -12,7 +12,7 @@ ha_category: Notifications ha_release: 0.38 --- -To be able to receive webhooks from Mailgun, your Home Assistant instance needs to be accessible from the web ([Hass.io instructions](/addons/duckdns/)) and you need to have the `base_url` configured for the HTTP component ([docs](https://www.home-assistant.io/components/http/#base_url)). +To be able to receive webhooks from Mailgun, your Home Assistant instance needs to be accessible from the web ([Hass.io instructions](/addons/duckdns/)) and you need to have the `base_url` configured for the HTTP component ([docs](/components/http/#base_url)). To set it up, go to the integrations page in the configuration screen and find Mailgun. Click on configure. Follow the instructions on the screen to configure Mailgun. diff --git a/source/_components/maxcube.markdown b/source/_components/maxcube.markdown index 223d962f68f4..a95d1ce13bc6 100644 --- a/source/_components/maxcube.markdown +++ b/source/_components/maxcube.markdown @@ -8,18 +8,30 @@ comments: false sharing: true footer: true logo: maxcube.png -ha_category: Climate +ha_category: + - Climate + - Binary Sensor ha_release: "0.40" ha_iot_class: "Local Polling" +redirect_from: + - /components/binary_sensor.maxcube/ + - /components/climate.maxcube/ --- [eQ-3 MAX!](http://www.eq-3.com/products/max.html) integration for Home Assistant allows you to connect eQ-3 MAX! components via the eQ-3 MAX! Cube. The components connects to the eQ-3 MAX! Cube via TCP and automatically makes all supported components available in Home Assistant. The name for each device is created by concatenating the MAX! room and device names. +There is currently support for the following device types within Home Assistant: + +- Binary Sensor +- Climate + Limitations: + - Configuring weekly schedules is not possible. - Implementation is based on the reverse engineered [MAX! protocol](https://github.com/Bouni/max-cube-protocol). Supported Devices: + - MAX! Radiator Thermostat (tested) - MAX! Radiator Thermostat+ - MAX! Window Sensor (tested) diff --git a/source/_components/media_player.apple_tv.markdown b/source/_components/media_player.apple_tv.markdown deleted file mode 100644 index 7b1630776021..000000000000 --- a/source/_components/media_player.apple_tv.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "Apple TV Media Player" -description: "Instructions on how to integrate Apple TV devices into Home Assistant." -date: 2017-02-08 07:11 -sidebar: true -comments: false -sharing: true -footer: true -logo: apple.png -ha_category: Media Player -ha_iot_class: "Local Push" -ha_release: 0.38 ---- - -To setup the `apple_tv` media player platform, please follow the instructions on the [Apple TV Component page](/components/apple_tv/). diff --git a/source/_components/media_player.aquostv.markdown b/source/_components/media_player.aquostv.markdown index 9535efee1ac7..be6a68167c96 100644 --- a/source/_components/media_player.aquostv.markdown +++ b/source/_components/media_player.aquostv.markdown @@ -29,7 +29,7 @@ media_player: {% configuration %} host: - description: The IP/Hostname of the Sharp Aquos TV, eg. `192.168.0.10`. + description: The IP/Hostname of the Sharp Aquos TV, e.g., `192.168.0.10`. required: true type: string port: @@ -72,6 +72,7 @@ Currently known supported models: - LC-46LE830U - LC-52LE830U - LC-60LE830U +- LC-60LE635 (no volume control) - LC-52LE925UN - LC-60LE925UN - LC-60LE857U diff --git a/source/_components/media_player.denonavr.markdown b/source/_components/media_player.denonavr.markdown index 14aedd8ee0fb..fe38b28f20ea 100644 --- a/source/_components/media_player.denonavr.markdown +++ b/source/_components/media_player.denonavr.markdown @@ -18,13 +18,16 @@ The `denonavr` platform allows you to control a [Denon Network Receivers](http:/ Supported devices: - Denon AVR-X1300W +- Denon AVR-X1500H - Denon AVR-X2000 - Denon AVR-X2100W - Denon AVR-X4100W +- Denon AVR-X4300H - Denon AVR-1912 - Denon AVR-2312CI - Denon AVR-3311CI - Denon AVR-4810 +- Marantz M-CR510 - Marantz M-CR603 - Marantz M-RC610 - Marantz SR5008 @@ -46,7 +49,7 @@ media_player: - platform: denonavr host: IP_ADDRESS name: NAME - show_all_sources: True / False + show_all_sources: true timeout: POSITIVE INTEGER zones: - zone: Zone2 / Zone3 diff --git a/source/_components/media_player.emby.markdown b/source/_components/media_player.emby.markdown index 5e1716de1919..bb10654c6805 100644 --- a/source/_components/media_player.emby.markdown +++ b/source/_components/media_player.emby.markdown @@ -37,7 +37,7 @@ api_key: required: true type: string ssl: - description: True if you want to connect with HTTPS/WSS. Your SSL certificate must be valid. + description: Connect with HTTPS/WSS. Your SSL certificate must be valid. required: false default: false type: boolean @@ -47,7 +47,7 @@ port: default: 8096 (No SSL), 8920 (SSL) type: integer auto_hide: - description: True if you want to automatically hide devices that are unavailable from the Home Assistant Interface. + description: Automatically hide devices that are unavailable from the Home Assistant Interface. required: false default: false type: boolean diff --git a/source/_components/media_player.firetv.markdown b/source/_components/media_player.firetv.markdown index 69b77283d2f2..3078d45b9bd1 100644 --- a/source/_components/media_player.firetv.markdown +++ b/source/_components/media_player.firetv.markdown @@ -42,12 +42,11 @@ media_player: host: 192.168.0.222 adbkey: "/config/android/adbkey" - # a device for which getting the current app (source) and the running apps (sources) cause issues + # use an ADB server for sending ADB commands instead of the Python ADB implementation - platform: firetv name: Fire TV 3 host: 192.168.0.123 - get_source: false - get_sources: false + adb_server_ip: 127.0.0.1 ``` {% configuration %} @@ -69,11 +68,15 @@ adbkey: description: The path to your `adbkey` file. Note that the file `adbkey.pub` must be in the same directory. required: false type: string -get_source: - description: Whether or not to retrieve the current app as the source. +adb_server_ip: + description: The IP address of the ADB server. required: false - default: true - type: boolean + type: string +adb_server_port: + description: The port for the ADB server. + required: false + default: 5037 + type: port get_sources: description: Whether or not to retrieve the running apps as the list of sources. required: false @@ -81,6 +84,13 @@ get_sources: type: boolean {% endconfiguration %} +## {% linkable_title ADB Setup %} + +This component works by sending ADB commands to your Fire TV device. There are two ways to accomplish this: + +1. Using the `adb` Python package. If your device requires ADB authentication, you will need to follow the instructions in the "ADB Authentication (for Fire TV devices with recent software)" section below. Once you have an authenticated key, this approach does not require any additional setup or addons. However, users with newer devices may find that the ADB connection is unstable. If setting the `get_sources` configuration option to `false` does not help, they should use the next option. +2. Using an ADB server. For Hass.io users, you can install the [Android Debug Bridge](https://github.com/hassio-addons/addon-adb/blob/v0.1.0/README.md) addon. With this approach, Home Assistant will send the ADB commands to the server, which will then send them to the Fire TV device and report back to Home Assistant. To use this option, add the `adb_server_ip` option to your configuration. If you are running the server on the same machine as Home Assistant, you can use `127.0.0.1` for this value. + ### {% linkable_title ADB Authentication (for Fire TV devices with recent software) %} If you get a "Device authentication required, no keys available" error when trying to set up Fire TV, then you'll need to create an adbkey and add its path to your configuration. Follow the instructions on this page to connect to your Fire TV from your computer: [Connecting to Fire TV Through adb](https://developer.amazon.com/zh/docs/fire-tv/connecting-adb-to-device.html). diff --git a/source/_components/media_player.nad.markdown b/source/_components/media_player.nad.markdown index 25152678fa7d..2804632301f3 100644 --- a/source/_components/media_player.nad.markdown +++ b/source/_components/media_player.nad.markdown @@ -13,23 +13,44 @@ ha_release: 0.36 ha_iot_class: "Local Polling" --- -The `nad` platform allows you to control a [NAD receiver](http://nadelectronics.com) through RS232 from Home Assistant. +The `nad` platform allows you to control a [NAD receiver](http://nadelectronics.com) through RS232, TCP and Telnet from Home Assistant. To add an NAD receiver to your installation, add the following to your `configuration.yaml` file: ```yaml -# Example configuration.yaml entry +# Example configuration.yaml entry for RS232 configuration media_player: - platform: nad serial_port: /dev/ttyUSB0 ``` +```yaml +# Example configuration.yaml entry for TCP configuration +media_player: + - platform: nad + type: TCP + host: IP_ADDRESS +``` {% configuration %} +type: + description: Type of communication. Valid types are `RS232`, `Telnet` or `TCP` + required: false + default: RS232 + type: string serial_port: - description: The serial port. - required: true - default: "/dev/ttyUSB0" + description: The serial port. (for `RS232` type only) + required: false + default: /dev/ttyUSB0 + type: string +host: + description: The IP address of your amplifier. (for `TCP` and `Telnet` types) + required: false type: string +port: + description: The port number of the device. (for `Telnet` type only) + required: false + default: 53 + type: integer name: description: Name of the device. required: false @@ -46,9 +67,14 @@ max_volume: default: -20 type: integer sources: - description: A list of mappings from source to source name. Valid sources are `1 to 10`. + description: A list of mappings from source to source name. Valid sources are `1 to 10`. (for `RS232` and `Telnet` types) required: false type: [list, string] +volume_step: + description: The amount in dB you want to increase the volume with when pressing volume up/down. (for `TCP` type only) + required: false + default: 4 + type: integer {% endconfiguration %} The min_volume and max_volume are there to protect you against misclicks on the slider so you will not blow up your speakers when you go from -92dB to +20dB. You can still force it to go higher or lower than the values set with the plus and minus buttons. diff --git a/source/_components/media_player.nadtcp.markdown b/source/_components/media_player.nadtcp.markdown deleted file mode 100644 index 046ba9132160..000000000000 --- a/source/_components/media_player.nadtcp.markdown +++ /dev/null @@ -1,54 +0,0 @@ ---- -layout: page -title: "NAD tcp" -description: "Instructions on how to integrate the NAD D 7050 or C338 digital amplifiers into Home Assistant." -date: 2017-06-07 20:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: nad.png -ha_category: Media Player -ha_release: 0.47 -ha_iot_class: "Local Polling" ---- - -The `nadtcp` platform allows you to control the D7050 and C338 from Home Assistant via WiFi. Note that it has only been tested with the D 7050. - -To add a NAD amplifier to your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -media_player: - - platform: nadtcp - host: 192.168.0.112 -``` - -{% configuration %} -host: - description: The IP address of your amplifier. - required: true - type: string -name: - description: Name of the device. - required: false - default: NAD amplifier - type: string -min_volume: - description: Minimum volume in dB to use with the slider. - required: false - default: -60 - type: integer -max_volume: - description: Maximum volume in dB to use with the slider. - required: false - default: -10 - type: integer -volume_step: - description: The amount in dB you want to increase the volume with when pressing volume up/down. - required: false - default: 4 - type: integer -{% endconfiguration %} - -The maximum volume level of the D 7050 amplifier is +10 db, minimum is -90. diff --git a/source/_components/media_player.panasonic_viera.markdown b/source/_components/media_player.panasonic_viera.markdown index 4da75316fb54..ac1a157c4526 100644 --- a/source/_components/media_player.panasonic_viera.markdown +++ b/source/_components/media_player.panasonic_viera.markdown @@ -30,6 +30,7 @@ Currently known supported models: - TX-P50GT30Y - TX-P50GT60E - TH-32ES500 +- TX-42AS650 If your model is not on the list then give it a test, if everything works correctly then add it to the list on [GitHub](https://github.com/home-assistant/home-assistant.github.io/blob/next/source/_components/media_player.panasonic_viera.markdown). diff --git a/source/_components/media_player.pandora.markdown b/source/_components/media_player.pandora.markdown index 76c040612525..f84bfd41f144 100644 --- a/source/_components/media_player.pandora.markdown +++ b/source/_components/media_player.pandora.markdown @@ -24,7 +24,7 @@ This media player uses the [Pianobar command-line Pandora client](https://github The version of pianobar that comes with Jessie has a bug, so you have to build a more recent version. The latest version depends on a recent version of libraries associated with ffmpeg, so you should make sure you go through the backport process documented in [The FFmpeg component](/components/ffmpeg/) before doing this. Install the following basic dependencies: ```bash -$ sudo apt-get install git libao-dev libgcrypt11-dev libfaad-dev libmad0-dev libjson0-dev make pkg-config libcurl4-openssl-dev +$ sudo apt-get install git libao-dev libgcrypt11-dev libfaad-dev libmad0-dev libjson-c-dev make pkg-config libcurl4-openssl-dev ``` And now install the backported ffmpeg-related libraries (note that if you're using an older version of ffmpeg for other things on this machine, you may encounter issues after doings this): diff --git a/source/_components/media_player.plex.markdown b/source/_components/media_player.plex.markdown index 0ddc81a88f13..ef76c47304d8 100644 --- a/source/_components/media_player.plex.markdown +++ b/source/_components/media_player.plex.markdown @@ -15,7 +15,7 @@ ha_iot_class: "Local Polling" --- -The `plex` platform allows you to connect a [Plex Media Server](https://plex.tv) to Home Assistant. It will allow you to control media playback and see the current playing item. +The `plex` platform allows you to connect to a [Plex Media Server](https://plex.tv). Once connected, [Plex Clients](https://www.plex.tv/apps-devices/) playing media from the connected Plex Media Server will show up as [Media Players](/components/media_player/) in Home Assistant. It will allow you to control media playback and see the current playing item. ## {% linkable_title Setup %} diff --git a/source/_components/media_player.ps4.markdown b/source/_components/media_player.ps4.markdown new file mode 100644 index 000000000000..4b35521c5476 --- /dev/null +++ b/source/_components/media_player.ps4.markdown @@ -0,0 +1,117 @@ +--- +layout: page +title: "Sony PlayStation 4" +description: "Instructions on how to integrate a Sony PlayStation 4 into Home Assistant." +date: 2019-02-12 01:08 +sidebar: true +comments: false +sharing: true +footer: true +logo: ps4.png +ha_category: Media Player +ha_release: 0.89 +ha_iot_class: "Local Polling" +--- + +The `ps4` component allows you to control a +[Sony PlayStation 4 console](https://www.playstation.com/en-us/explore/ps4/). + +- This component supports controlling a single PlayStation 4 for your instance. Additional consoles may be supported in a future release. + +## {% linkable_title Requirements %} + +- Android or iOS device +- PS4 Second Screen App for [Android](https://play.google.com/store/apps/details?id=com.playstation.mobile2ndscreen&hl=en_US) or [iOS](https://itunes.apple.com/us/app/ps4-second-screen/id1201372796?mt=8) installed on device. + +## {% linkable_title Set up %} + +1. Download the Second Screen App and make sure that you can find and control your PlayStation 4 normally. + +

+ Read the section "Granting Port Access" below before continuing. +

+ +2. Navigate to `Configuration -> Integrations` and select `Configure` for `PlayStation 4`. + +3. Follow instructions displayed to generate user credentials. You will know this step is completed when a form with fields appears. + +4. Pair Home Assistant to your PlayStation 4 by filling in the fields. +- **Note:** To find your correct region refer to the section [Regions](#regions) + +## {% linkable_title Granting Port Access %} + +The PlayStation 4 component requires the use of privileged ports to work correctly, specifically UDP port 987 and TCP port 997. Depending on your OS of your Home Assistant instance you may need to allow usage of privileged ports manually. +Home Assistant installed on a Debian-type OS for example, such as *Debian*, *Hassbian*, *Rassbian*, and *Armbian* may require configuration. + +

+ Do not run your Home Assistant instance itself as root or with root/sudo privileges to accomplish this. This would create a security risk for your host system. +

+ +There are varying methods to perform this, dependent on your OS that is running Home Assistant. Specifically, your *Python Interpreter* which runs your Home Assistant instance needs access to the mentioned ports. + +

+ If your Home Assistant device is running Hass.io on HassOS, it does not require additional configuration. +

+ +- Example for Debian: +`sudo setcap 'cap_net_bind_service=+ep' /usr/bin/python3.5` +Replace "/usr/bin/python3.5" with your path to Python that is running Home Assistant. + +### {% linkable_title Docker %} + +When running Home Assistant using Docker, make sure that the Home Assistant container is discoverable by the PS4. This can be achieved by ensuring that the Home Assistant container uses the `host` network driver (by passing `--net=host` to the container when creating, or adding `network_mode: "host"` to your compose file when using `docker-compose`). + +## {% linkable_title Configuration %} + +

+ The PlayStation 4 component does not use entries from `configuration.yaml`. You must configure this component by using `Integrations` +

+ +## {% linkable_title Regions %} + +Some titles will have different SKUs in the PlayStation Store database depending on your region. You must select your specific region in the setup in order to retrieve the cover art for such titles correctly. If you do not know your [region](https://www.gamerbraves.com/ps4-games-region-codes-explained/), reference the table below: + +| Region ID | Locales | +| ----------- | ---------------------------------------------- | +| R1 | Bermuda, Canada, United States | +| | and U.S. territories | +| R2 | The Middle East, Western Europe, | +| | Central Europe, Egypt, | +| | French overseas territories, Greenland, | +| | Japan, Lesotho, South Africa and Swaziland | +| R3 | Southeast Asia, Hong Kong, Macau, | +| | South Korea and Taiwan | +| R4 | Australasia, Central America, | +| | the Caribbean, Mexico, Oceania, South America | +| R5 | The rest of Africa, Former Soviet Union, | +| | the Indian subcontinent, Mongolia, North Korea | + +

+ Region 6: Mainland China, is not supported as there is no English database available. +

+ +## {% linkable_title Services %} + +### {% linkable_title Service `send_command` %} + +Emulate button press on PlayStation 4. This emulates the commands available for the PS4 Second Screen App. This is not to be confused with DualShock 4 controller buttons. + +| Service data attribute | Optional | Example | Description | +| ---------------------- | -------- | ---------------------------- | ------------------------------------- | +| `entity_id` | No | `media_player.playstation_4` | The entity id for your PlayStation 4. | +| `command` | No | `ps` | The command you want to send. | + +#### {% linkable_title Available Commands %} + +Full list of supported commands. + +| Command | Button Emulated | +| -------- | ---------------- | +| `ps` | PS (PlayStation) | +| `option` | Option | +| `enter` | Enter | +| `back` | Back | +| `up` | Swipe Up | +| `down` | Swipe Down | +| `left` | Swipe Left | +| `right` | Swipe Right | diff --git a/source/_components/media_player.roku.markdown b/source/_components/media_player.roku.markdown deleted file mode 100644 index d301898db112..000000000000 --- a/source/_components/media_player.roku.markdown +++ /dev/null @@ -1,31 +0,0 @@ ---- -layout: page -title: "Roku" -description: "Instructions on how to integrate Roku into Home Assistant." -date: 2016-05-16 20:0+0000 -sidebar: true -comments: false -sharing: true -footer: true -logo: roku.png -ha_category: Media Player -ha_release: "0.20" -ha_iot_class: "Local Polling" ---- - -The [Roku](http://www.roku.com/) media players will be automatically discovered if you enable the [discovery component](/components/discovery/). - -The `roku` media player platform can also be forced to load by adding the following lines to your `configuration.yaml`: - -```yaml -# Example configuration.yaml entry -media_player: - - platform: roku -``` - -{% configuration %} -host: - description: The IP address or the hostname of the device. Use only if you don't want to scan for devices. - required: false - type: string -{% endconfiguration %} diff --git a/source/_components/media_player.samsungtv.markdown b/source/_components/media_player.samsungtv.markdown index 48d9cba191f7..4d4e9d878dfc 100644 --- a/source/_components/media_player.samsungtv.markdown +++ b/source/_components/media_player.samsungtv.markdown @@ -31,7 +31,7 @@ media_player: {% configuration %} host: - description: "The IP of the Samsung Smart TV, eg. `192.168.0.10`." + description: "The IP of the Samsung Smart TV, e.g., `192.168.0.10`." required: true type: string port: @@ -49,7 +49,7 @@ timeout: type: time default: 0 (no timeout) mac: - description: "The MAC address of the Samsung Smart TV, eg. `00:11:22:33:44:55:66`. Required for power on support via wake on lan." + description: "The MAC address of the Samsung Smart TV, e.g., `00:11:22:33:44:55:66`. Required for power on support via wake on lan." required: false type: string {% endconfiguration %} @@ -89,23 +89,26 @@ Currently known supported models: - KU7000 (port must be set to 8001) - M5620 (port must be set to 8001, and `pip3 install websocket-client` must be executed) - MU6170UXZG (port must be set to 8001, and `pip3 install websocket-client` must be executed) +- NU7090 (port must be set to 8801, On/Off, MAC must be specified for Power On) - NU7400 (port set to 8001 and `pip3 install websocket-client` executed) - NU8000 - Q7F (port must be set to 8001, MAC must be specified for Power On) - U6000 (port must be set to 8001) - U6300 (port must be set to 8001, and `pip3 install websocket-client` must be executed) -- D7000 - UE6199UXZG (port must be set to 8001, On/Off, Forward/Backward, Volume control, but no Play button) - UE65KS8005 (port must be set to 8001, On/Off, Forward/Backward, Volume are OK, but no Play button) +- UE49KU6470 (port must be set to 8001, On/Off, Forward/Backward, Volume are OK, but no Play button) Currently tested but not working models: - J5200 - Unable to see state and unable to control - J5500 - State is always "on" and unable to control (but port 8001 *is* open) +- J6200 - State is always "on" and unable to control (but port 8001 *is* open) - J6300 - State is always "on" and unable to control (but port 8001 *is* open) - JS8005 - State tracking working but unable to control (but port 8001 *is* open) - JS9000 - State is always "on" and unable to control (but port 8001 *is* open) - JS9500 - State is always "on" and unable to control (but port 8001 *is* open) +- JU6800 - Unable to see state and unable to control - JU7000 - Unable to see state and unable to control (but port 8001 *is* open) - JU7500 - Unable to see state and unable to control - MU6300 - Port set to 8001, `pip3 install websocket-client` must be executed, turning on works, status not working reliably, turning off is not permanent (it comes back on) diff --git a/source/_components/media_player.sisyphus.markdown b/source/_components/media_player.sisyphus.markdown deleted file mode 100644 index ef0637ea32a8..000000000000 --- a/source/_components/media_player.sisyphus.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Sisyphus Media Player" -description: "Instructions on how to integrate media playing on your Sisyphus Kinetic Art Table into Home Assistant." -date: 2018-05-06 22:26 -sidebar: true -comments: false -sharing: true -footer: true -logo: sisyphus.png -ha_category: Media Player -ha_iot_class: "Local Push" -ha_release: 0.75 ---- - -The [Sisyphus](https://sisyphus-industries.com/) integration for Home Assistant allows you to observe and control your Sisyphus Kinetic Art Table. - -Media players will be automatically added for each of your Sisyphus tables if the Sisyphus component is configured. - -For more configuration information see the [Sisyphus component](/components/sisyphus/) documentation. diff --git a/source/_components/media_player.songpal.markdown b/source/_components/media_player.songpal.markdown index 0fd9a73f72cf..1dbfc0dd8a97 100644 --- a/source/_components/media_player.songpal.markdown +++ b/source/_components/media_player.songpal.markdown @@ -9,7 +9,7 @@ sharing: true footer: true logo: sony.png ha_category: Media Player -ha_iot_class: "Local Polling" +ha_iot_class: "Local Push" ha_release: 0.65 --- diff --git a/source/_components/media_player.spotify.markdown b/source/_components/media_player.spotify.markdown index 3ba710b06d8b..4a97efa22a70 100644 --- a/source/_components/media_player.spotify.markdown +++ b/source/_components/media_player.spotify.markdown @@ -80,6 +80,11 @@ aliases: description: "Dictionary of device ids to be aliased, handy for devices that Spotify cannot properly determine the device name of. New devices will be logged to the `info` channel for ease of aliasing." required: false type: map +name: + description: The name of the device used in the frontend. + required: false + type: string + default: Spotify {% endconfiguration %} ## {% linkable_title Setup %} diff --git a/source/_components/media_player.squeezebox.markdown b/source/_components/media_player.squeezebox.markdown index 147b402f5ed1..e119e97b42c3 100644 --- a/source/_components/media_player.squeezebox.markdown +++ b/source/_components/media_player.squeezebox.markdown @@ -27,7 +27,7 @@ media_player: {% configuration %} host: - description: The host name or address of the Logitech Media Server, eg. 192.168.1.21. + description: The host name or address of the Logitech Media Server, e.g., 192.168.1.21. required: true type: string port: diff --git a/source/_components/media_player.webostv.markdown b/source/_components/media_player.webostv.markdown index ba5646c91a3f..ed629734aacf 100644 --- a/source/_components/media_player.webostv.markdown +++ b/source/_components/media_player.webostv.markdown @@ -128,7 +128,7 @@ media_player: turn_on_action: service: wake_on_lan.send_magic_packet data: - mac: "B4-E6-2A-1E-11-0F" + mac: "B4:E6:2A:1E:11:0F" ``` Any other [actions](/docs/automation/action/) to power on the device can be diff --git a/source/_components/melissa.markdown b/source/_components/melissa.markdown index fdd9f30d316b..5a8145da2863 100644 --- a/source/_components/melissa.markdown +++ b/source/_components/melissa.markdown @@ -8,14 +8,24 @@ comments: false sharing: true footer: true logo: mclimate.png -ha_category: Hub +ha_category: + - Hub + - Climate featured: false ha_release: 0.63 ha_iot_class: "Cloud Polling" +redirect_from: + - /components/climate.melissa/ --- The `melissa` component is the main component to connect to a [Melissa Climate](http://seemelissa.com/) A/C control. +There is currently support for the following device types within Home Assistant: + +- Climate + +The climate platform will be automatically configured if Melissa component is configured. + ## {% linkable_title Configuration %} To set the Melissa component up, add the following information to your `configuration.yaml` file: diff --git a/source/_components/mercedesme.markdown b/source/_components/mercedesme.markdown index c533bc7f2bb5..b323f75e9aa3 100644 --- a/source/_components/mercedesme.markdown +++ b/source/_components/mercedesme.markdown @@ -8,19 +8,28 @@ comments: false sharing: true footer: true logo: mercedesme.png -ha_category: Car +ha_category: + - Car + - Binary Sensor + - Presence Detection + - Sensor ha_release: 0.63 ha_iot_class: "Cloud Polling" +redirect_from: + - /components/binary_sensor.mercedesme/ + - /components/device_tracker.mercedesme/ + - /components/sensor.mercedesme/ --- - The `mercedesme` component offers integration with the [Mercedes me](https://www.mercedes-benz.com/de/mercedes-me/) cloud service and provides presence detection as well as sensors such as doors, tires, windows, and service interval. This component provides the following platforms: - - Binary Sensors: Windows, tires, doors and lock. - - Sensors:Fuel status, service interval, remaining km, etc. - - Device tracker: To track location of your car. +- Binary Sensors: Windows, tires, doors and lock. +- Sensors:Fuel status, service interval, remaining km, etc. +- Device tracker: To track location of your car. + +Platforms will be automatically configured if Mercedes me component is configured.

The component was removed. The vendor disabled the API endpoint and a new API is not available currently. diff --git a/source/_components/meteo_france.markdown b/source/_components/meteo_france.markdown new file mode 100644 index 000000000000..06fb6f606c21 --- /dev/null +++ b/source/_components/meteo_france.markdown @@ -0,0 +1,129 @@ +--- +layout: page +title: "Météo-France" +description: "Instructions on how to integrate Météo-France within Home Assistant." +date: 2018-10-18 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: meteo-france.png +ha_category: Hub +ha_release: 0.89 +ha_iot_class: "Cloud Polling" +ha_category: + - Sensor + - Weather +ha_iot_class: "Local Push" +redirect_from: + - /components/sensor.meteo_france/ + - /components/weather.meteo_france/ +--- + +The `meteo_france` component uses the [Météo-France](http://www.meteofrance.com/) web service as a source for meteorological data for your location. The location is based on the `city` configured in your `configuration.yaml` file. + +There is currently support for the following device types within Home Assistant: + +- Sensor +- Weather + +It displays the current weather along with a 4 days forecast and can create sensors based on the `monitored_conditions` set in your `configuration.yaml` file. + +## {% linkable_title Configuration %} + +To add Météo-France to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +meteo_france: + - city: '76000' +``` + +{% configuration %} + city: + description: Name of the city ([see below](#about-city-configuration)). + required: true + type: string + monitored_conditions: + description: The conditions types to monitor. + required: true + type: list + keys: + temperature: + description: The current temperature. + weather: + description: A human-readable text summary of the current conditions. + wind_speed: + description: The wind speed. + uv: + description: The current UV index. + next_rain: + description: Time to the next rain if happening for the next hour ([see note below](#about-next_rain-condition-sensor)). + freeze_chance: + description: Probability of temperature below 0°C for the day. + rain_chance: + description: Probability of rain for the day. + snow_chance: + description: Probability of snow for the day. + thunder_chance: + description: Probability of thunderstorm for the day. +{% endconfiguration %} + +### {% linkable_title About `city` configuration %} + +This component use the Météo-France search API to get the first city from the results returned. + +It works well with french postal code, city name, etc. In case your expected result doesn't come first, you can set a more specified query like `, `. + +It also works with international city, with mixed results. You may have to find the correct city query. +For example `Montreal, Canada` will return a city in Ardèche, France, whereas `Montreal, america` works + +[http://www.meteofrance.com/mf3-rpc-portlet/rest/lieu/facet/previsions/search/montreal,amerique](http://www.meteofrance.com/mf3-rpc-portlet/rest/lieu/facet/previsions/search/montreal,amerique) + +```yaml +# Example configuration.yaml entry for Montreal, Canada +meteo_france: + - city: 'montreal,amerique' +``` + +### {% linkable_title About `next_rain` condition sensor %} + +

+ The 1 hour rain forecast is supported for more than 75 % of metropolitan France.
+ You can check if your city is covered on the [Météo-France website](http://www.meteofrance.com/previsions-meteo-france/previsions-pluie). +

+ +The `next_rain` sensor value is the time to next rain, from 0 to 55 minutes. +If no rain is forecasted for the next hour, value will be "No rain". + +Attributes also give the forecast for the next hour in 5 minutes intervals. +Possible value for each intervals attributes are: + +- 1 No rain +- 2 Light rain +- 3 Moderate rain +- 4 Heavy rain + +### {% linkable_title Complete example %} + +This is an example for 3 cities forecast with different monitored conditions: + +```yaml +# Complete example configuration.yaml entry +meteo_france: + - city: 'Rouen' + monitored_conditions: + - rain_chance + - freeze_chance + - thunder_chance + - snow_chance + - weather + - next_rain + - wind_speed + - temperature + - uv + - city: 'Oslo, norvege' + monitored_conditions: + - temperature + - city: '51100' +``` diff --git a/source/_components/mochad.markdown b/source/_components/mochad.markdown index 6df5d067876e..a4873a903cf2 100644 --- a/source/_components/mochad.markdown +++ b/source/_components/mochad.markdown @@ -7,12 +7,23 @@ sidebar: true comments: false sharing: true footer: true -ha_category: Hub +ha_category: + - Hub + - Light + - Switch ha_release: 0.32 +redirect_from: + - /components/light.mochad/ + - /components/switch.mochad/ --- The `mochad` component is the main component to integrate all X10 platforms being controlled by [mochad](https://sourceforge.net/projects/mochad/). Besides this component you will have to setup your X10 devices separately. +There is currently support for the following device types within Home Assistant: + +- [Light](#light) +- [Switch](#switch) + ## {% linkable_title Configuration %} To integrate your Mochad units with Home Assistant, add the following section to your `configuration.yaml` file: @@ -45,3 +56,72 @@ mochad: host: localhost port: 1099 ``` + +## {% linkable_title Light %} + +The `mochad` light platform lets you control an X10 enabled dimmer/light device. + +To enable this sensor, you first have to set up the [mochad component](#configuration) and then add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +light: + - platform: mochad + devices: + - address: a1 + - address: a5 +``` + +{% configuration %} +address: + description: The X10 address of the light. + required: true + type: string +name: + description: The name of the light. + required: false + default: x10_light_dev_address + type: string +comm_type: + description: pl (powerline) or rf (radio frequency). + required: false + default: pl + type: string +brightness_levels: + description: The number of brightness levels the X10 light device supports. This can either be 32, 64, or 256 (note that the max value sent to the device will be n-1 because it starts at 0). + required: false + default: 32 + type: integer +{% endconfiguration %} + +## {% linkable_title Switch %} + +The `mochad` switch platform lets you control an X10 enabled switch device. + +To enable this sensor, you first have to set up the [mochad component](#configuration) and then add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: mochad + devices: + - address: a1 + - address: a5 +``` + +{% configuration %} +address: + description: The X10 address of the switch. + required: true + type: string +name: + description: The name of the switch. + required: false + default: x10_switch_dev_*address* + type: string +comm_type: + description: pl (powerline) or rf (radio frequency). + required: false + default: pl + type: string +{% endconfiguration %} \ No newline at end of file diff --git a/source/_components/modbus.markdown b/source/_components/modbus.markdown index e08cd84e03a8..fe3ffbbcd79d 100644 --- a/source/_components/modbus.markdown +++ b/source/_components/modbus.markdown @@ -28,6 +28,7 @@ For a network connection, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry for a TCP connection modbus: + name: hub1 type: tcp host: IP_ADDRESS port: 2020 @@ -46,6 +47,11 @@ port: description: The network port for the communication. required: true type: integer +name: + description: Name for this hub. Must be unique, so it is required when setting up multiple instances. + required: false + default: default + type: string timeout: description: Timeout for slave response in seconds. required: false @@ -60,6 +66,7 @@ For a serial connection, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry for a serial connection modbus: + name: hub1 type: serial method: rtu port: /dev/ttyUSB0 @@ -98,6 +105,11 @@ parity: description: "The parity for the serial connection; can be `E`, `O` or `N`." required: true type: string +name: + description: Name for this hub. Must be unique, so it is required when setting up multiple instances. + required: false + default: default + type: string timeout: description: Timeout for slave response in seconds. required: false @@ -105,17 +117,36 @@ timeout: type: integer {% endconfiguration %} +### {% linkable_title Multiple connections %} + +Multiple connections are possible, add something like the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry for multiple TCP connections +modbus: + - type: tcp + host: IP_ADDRESS_1 + port: 2020 + hub: hub1 + + - type: tcp + host: IP_ADDRESS_2 + port: 501 + hub: hub2 +``` + ### {% linkable_title Services %} | Service | Description | | ------- | ----------- | -| write_register | Write register. Requires `unit`, `address` and `value` fields. `value` can be either single value or an array | +| write_register | Write register. Requires `hub`, `unit`, `address` and `value` fields. `value` can be either single value or an array | #### {% linkable_title Service Data Attributes %} | Attribute | Description | | --------- | ----------- | +| hub | Hub name (defaults to 'default' when omitted) | | unit | Slave address (set to 255 you talk to Modbus via TCP) | | address | Address of the Register (e.g., 138) | | value | An array of 16-bit values. Might need reverse ordering. E.g., to set 0x0004 you might need to set `[4,0]` | diff --git a/source/_components/mqtt_statestream.markdown b/source/_components/mqtt_statestream.markdown index ddf00e0806eb..d1bcb8c642fc 100644 --- a/source/_components/mqtt_statestream.markdown +++ b/source/_components/mqtt_statestream.markdown @@ -70,7 +70,7 @@ include: type: list {% endconfiguration %} -## Operation +## {% linkable_title Operation %} When any Home Assistant entity changes, this component will publish that change to MQTT. @@ -83,9 +83,9 @@ If that entity also has an attribute called `brightness`, the component will als All states and attributes are passed through JSON serialization before publishing. **Please note** that this causes strings to be quoted (e.g., the string 'on' will be published as '"on"'). You can access the JSON deserialized values (as well as unquoted strings) at many places by using `value_json` instead of `value`. -The last_updated and last_changed values for the entity will be published to `homeassistant/light/master_bedroom_dimmer/last_updated` and `homeassistant/light/master_bedroom_dimmer/last_changed`, respectively. The timestamps are in ISO 8601 format - for example, `2017-10-01T23:20:30.920969+00:00`. +The last_updated and last_changed values for the entity will be published to `homeassistant/light/master_bedroom_dimmer/last_updated` and `homeassistant/light/master_bedroom_dimmer/last_changed`, respectively. The timestamps are in ISO 8601 format - for example, `2017-10-01T23:20:30.920969+00:00`. -## Include/exclude +## {% linkable_title Include/exclude %} The **exclude** and **include** configuration variables can be used to filter the items that are published to MQTT. diff --git a/source/_components/mychevy.markdown b/source/_components/mychevy.markdown index ad266d73287a..6be1ce7dbc58 100644 --- a/source/_components/mychevy.markdown +++ b/source/_components/mychevy.markdown @@ -11,14 +11,17 @@ logo: chevy.png ha_category: Car ha_release: 0.62 ha_iot_class: "Cloud Polling" +redirect_from: + - /components/binary_sensor.mychevy/ + - /components/sensor.mychevy/ --- -The `mychevy` component communicates with the [my.chevrolet](https://my.chevrolet.com) website using the javascript API that the website uses (as of Dec 2018). The mychevy website has been known to be both unstable (interfaces changing somewhat willy nilly) and have substantial outages. So be forwarned in using this component. +The `mychevy` component communicates with the [my.chevrolet](https://my.chevrolet.com) website using the javascript API that the website uses (as of Dec 2018). The MyChevy website has been known to be both unstable (interfaces changing somewhat willy nilly) and has substantial outages. So be forwarned in using this component. This component provides the following platforms: - - Binary sensors: if the car is plugged in - - Sensors: Battery Level, Charge Mode, EST Range, Total Distance Traveled +- Binary sensors: if the car is plugged in +- Sensors: Battery Level, Charge Mode, EST Range, Total Distance Traveled ## {% linkable_title Configuration %} @@ -40,16 +43,19 @@ password: description: The password for your given my.chevrolet account. required: true type: string +country: + description: Which country's servers to contact. Supports 'us' or 'ca'. + required: false + default: us + type: string {% endconfiguration %} - ### {% linkable_title Limitations %} The architecture of the GM automotive networking imposes some limitations on the functionality of the component. -The OnStar network link is very slow, and takes 1 - 3 minutes to get information back from the car. As such the mychevy component only polls every 30 minutes to not overwhelms that connection. - -The OnStar network (or more specifically the gateway used by the my.chevrolet website) appears to suffer more than most networks when the car is a) in a garage, and b) it's cold outside (like < 15 degrees F). One of the provided sensors is a status sensor which indicates if we got connectivity with the car on the last polling cycle or not. +The OnStar network link is very slow, and takes 1 - 3 minutes to get information back from the car. As such the `mychevy` component only polls every 30 minutes to not overwhelms that connection. -The "API" for this is written through using some existing API calls from the Javascript web user interfae. As such, it only currently is known to work if you have a Chevy Bolt EV or a Chevy Volt, and only 1 Chevy car connected to OnStar. Patches for extended support should go to the [https://github.com/sdague/mychevy](https://github.com/sdague/mychevy) project first, then Home Assistant can be extended. +The OnStar network (or more specifically the gateway used by the my.chevrolet website) appears to suffer more than most networks when the car is a) in a garage, and b) it's cold outside (like < 15 degrees F). One of the provided sensors is a status sensor which indicates if we got connectivity with the car on the last polling cycle or not. +The "API" for this is written through using some existing API calls from the Javascript web user interface. As such, it only currently is known to work if you have a Chevy Bolt EV or a Chevy Volt, and only 1 Chevy car connected to OnStar. Patches for extended support should go to the [https://github.com/sdague/mychevy](https://github.com/sdague/mychevy) project first, then Home Assistant can be extended. diff --git a/source/_components/mysensors.markdown b/source/_components/mysensors.markdown index 89059d2a971f..832ad97b9d2a 100644 --- a/source/_components/mysensors.markdown +++ b/source/_components/mysensors.markdown @@ -254,7 +254,7 @@ logger: homeassistant.components.mysensors: debug mysensors: debug ``` -The log should inform you of messages that failed validation or if a child value is missing that is required for a certain child type. Note that the log will log all possible combinations of platforms for a child type that failed validation. It is normal to see some platforms fail validation if the child type supports multiple platforms and your sketch doesn't send all corresponding value types. Eg. the `S_BARO` child type supports both `V_PRESSURE` and `V_FORECAST` value types. If you only send a `V_PRESSURE` value, an `S_BARO` entity with `V_PRESSURE` value will be set up for the sensor platform. However, the log will inform of a sensor platform that failed validation due to missing `V_FORECAST` value type for the `S_BARO` child. Home Assistant will log failed validations of child values at warning level if one required value type for a platform has been received, but other required value types are missing. Most failed validations are logged at debug level. +The log should inform you of messages that failed validation or if a child value is missing that is required for a certain child type. Note that the log will log all possible combinations of platforms for a child type that failed validation. It is normal to see some platforms fail validation if the child type supports multiple platforms and your sketch doesn't send all corresponding value types. e.g., the `S_BARO` child type supports both `V_PRESSURE` and `V_FORECAST` value types. If you only send a `V_PRESSURE` value, an `S_BARO` entity with `V_PRESSURE` value will be set up for the sensor platform. However, the log will inform of a sensor platform that failed validation due to missing `V_FORECAST` value type for the `S_BARO` child. Home Assistant will log failed validations of child values at warning level if one required value type for a platform has been received, but other required value types are missing. Most failed validations are logged at debug level. Message validation was introduced in version 0.52 of Home Assistant. diff --git a/source/_components/mythicbeastsdns.markdown b/source/_components/mythicbeastsdns.markdown new file mode 100644 index 000000000000..bb96e9040978 --- /dev/null +++ b/source/_components/mythicbeastsdns.markdown @@ -0,0 +1,43 @@ +--- +layout: page +title: "Mythic Beasts DNS" +description: "Keep your mythic beasts DNS updated" +date: 2018-11-09 14:57 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Network +ha_release: 0.85 +ha_iot_class: "Cloud Push" +logo: mythic_beasts.png +--- + +With the `mythicbeastsdns` component you can automatically update your dynamic DNS entry at [Mythic Beasts](https://www.mythic-beasts.com/). + +## {% linkable_title Configuration %} + +To use the component in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +mythicbeastsdns: + host: YOUR_HOST + domain: YOUR_DOMAIN + password: YOUR_API_KEY +``` + +{% configuration %} + host: + description: The first part, or subdomain that you want to be dynamic. + required: true + type: string + domain: + description: Your domain, e.g., `example.com`. + required: true + type: string + password: + description: The password for your domain. You can set this by clicking "DNS API" on the domain page. + required: true + type: string +{% endconfiguration %} diff --git a/source/_components/neato.markdown b/source/_components/neato.markdown index 43aca42701f3..63b20cbde64f 100644 --- a/source/_components/neato.markdown +++ b/source/_components/neato.markdown @@ -8,8 +8,15 @@ comments: false sharing: true footer: true logo: neato.png -ha_category: Hub +ha_category: + - Camera + - Switch + - Vacuum ha_release: 0.33 +redirect_from: + - /components/camera.neato/ + - /components/switch.neato/ + - /components/vacuum.neato/ --- The `neato` component allows you to control your [Neato Botvac Connected Robots](https://www.neatorobotics.com/robot-vacuum/botvac-connected-series/). @@ -35,5 +42,59 @@ password: {% endconfiguration %}

-After the update to firmware 4.0 (which adds cleaning maps) there is also support for displaying the maps of the Botvac D3 Connected and Botvac D5 Connected robots. More information on how to update can be found [here](https://support.neatorobotics.com/hc/en-us/articles/115004320694-Software-Update-4-0-for-Neato-Botvac-Connected-D3-D5-). +After the update to firmware 4.0 (which adds cleaning maps) there is also support for displaying the maps of the Botvac D3 Connected and Botvac D5 Connected robots. More information on how to update can be found [here](https://support.neatorobotics.com/hc/en-us/articles/115004320694-Software-Update-4-0-for-Neato-Botvac-Connected-D3-D5-).

+ +## {% linkable_title Vacuum %} + +The `neato` vacuum platform allows you to control your [Neato Botvac Connected](https://www.neatorobotics.com/robot-vacuum/botvac-connected-series/). +The status will contain attributes on the robots last clean session. + +

+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 Services %} + +Currently supported services are: + +- `start` +- `pause` +- `stop` +- `return_to_base` +- `locate` +- `spot_clean` + +And a specific Platform Service: + +- `vacuum.neato_custom_cleaning` + +### {% linkable_title Platform Services %} + +#### {% linkable_title Service `vacuum.neato_custom_cleaning` %} + +Starts a custom cleaning of your house. You can set the various options like in the mobile application (mode, map usage, navigation mode, zone). + +

+Not all Botvac models support all the attributes. Only the Neato Botvac D7 supports the `zone` attribute. +Some information about the capabilities might be found on the [Neato Developer Portal](https://developers.neatorobotics.com/api/robot-remote-protocol/housecleaning). +

+ +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `entity_id` | no | Only act on a specific robot | +| `mode` | yes | Set the cleaning mode: 1 for eco and 2 for turbo. Defaults to turbo if not set. | +| `navigation` | yes | Set the navigation mode: 1 for normal, 2 for extra care, 3 for deep. Defaults to normal if not set. | +| `category` | yes | Whether to use a persistent map or not for cleaning (i.e. No go lines): 2 for no map, 4 for map. Default to using map if not set (and fallback to no map if no map is found). | +| `zone` | yes | Only supported on the Botvac D7. Name of the zone to clean. Defaults to no zone i.e. complete house cleanup. | + + +## {% linkable_title Camera %} + +The `neato` camera platform allows you to view the latest cleaning map of your [Neato Botvac Connected](https://www.neatorobotics.com/robot-vacuum/botvac-connected-series/botvac-connected/). + +## {% linkable_title Switch %} + +The `neato` switch platform allows you to enable or disable the schedule of your [Neato Botvac Connected](https://www.neatorobotics.com/robot-vacuum/botvac-connected-series/botvac-connected/). + +To add `neato` switch, camera and vacuum to your installation, follow instructions above. diff --git a/source/_components/ness_alarm.markdown b/source/_components/ness_alarm.markdown new file mode 100644 index 000000000000..74d7d727aa14 --- /dev/null +++ b/source/_components/ness_alarm.markdown @@ -0,0 +1,100 @@ +--- +layout: page +title: "Ness Alarm" +description: "Instructions on how to integrate a Ness D8x/D16x alarm system with Home Assistant." +date: 2018-11-25 18:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: ness.png +ha_category: + - Alarm + - Binary Sensor +ha_release: 0.85 +ha_iot_class: "Local Push" +redirect_from: + - /components/alarm_control_panel.ness_alarm/ + - /components/binary_sensor.ness_alarm/ +--- + +The `ness_alarm` component will allow Home Assistant users who own a Ness D8x/D16x alarm system to leverage their alarm system and its sensors to provide Home Assistant with information about their homes. Connectivity between Home Assistant and the alarm is accomplished through a IP232 module that must be connected to the alarm. + +There is currently support for the following device types within Home Assistant: + +- Binary Sensor: Reports on zone statuses +- Alarm Control Panel: Reports on alarm status, and can be used to arm/disarm the system + +The module communicates via the [Ness D8x/D16x ASCII protocol](http://www.nesscorporation.com/Software/Ness_D8-D16_ASCII_protocol.pdf). + +## {% linkable_title Configuration %} + +A `ness_alarm` section must be present in the `configuration.yaml` file and contain the following options as required: + +```yaml +# Example configuration.yaml entry +ness_alarm: + host: alarm.local + port: 2401 + zones: + - name: Garage + id: 1 + - name: Storeroom + id: 2 + - name: Kitchen + id: 3 + - name: Front Entrance + id: 4 + - name: Front Door + id: 5 + type: door +``` + +{% configuration %} +host: + description: The hostname of the IP232 module on your home network. + required: true + type: string +port: + description: The port on which the IP232 module listens for clients. + required: true + type: integer +zones: + description: List of zones to add + required: false + type: list + keys: + zone_id: + description: ID of the zone on the alarm system (i.e Zone 1 -> Zone 16). + required: true + type: integer + name: + description: Name of the zone. + required: true + type: string + type: + description: The zone type. Can be any [binary_sensor device class](/components/binary_sensor/#device-class). + required: false + default: motion + type: string +{% endconfiguration %} + +## {% linkable_title Services %} + +### {% linkable_title Service `aux` %} + +Trigger an aux output. This requires PCB version 7.8 or higher. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `output_id` | No | The aux output you wish to change. A number from 1-4. +| `state` | Yes | The On/Off State, represented as true/false. Default is true. If P14xE 8E is enabled then a value of true will pulse output x for the time specified in P14(x+4)E. + +### {% linkable_title Service `panic` %} + +Trigger a panic + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `code` | No | The user code to use to trigger the panic. + diff --git a/source/_components/nest.markdown b/source/_components/nest.markdown index 60a2a1e0824a..86a86ba48739 100644 --- a/source/_components/nest.markdown +++ b/source/_components/nest.markdown @@ -8,31 +8,48 @@ comments: false sharing: true footer: true logo: nest.png -ha_category: Hub +ha_category: + - Hub + - Binary Sensor + - Camera + - Climate + - Sensor featured: true ha_iot_class: "Cloud Push" +redirect_from: + - /components/binary_sensor.nest/ + - /components/camera.nest/ + - /components/climate.nest/ + - /components/sensor.nest/ --- The Nest component is the main component to integrate all [Nest](https://nest.com/) related platforms. To connect Nest, you will have to [sign up for a developer account](https://developers.nest.com/products) and get a `client_id` and `client_secret`. +There is currently support for the following device types within Home Assistant: + +- [Binary Sensor](#binary-sensor) +- [Camera](#camera) +- [Climate](#climate) +- [Sensor](#sensor) + ### {% linkable_title Setting up developer account %} 1. Visit [Nest Developers](https://developers.nest.com/), and sign in. Create an account if you don't have one already. 2. Fill in account details: - - The "Company Information" can be anything. We recommend using your name. + * The "Company Information" can be anything. We recommend using your name. 3. Submit changes 4. Click "[Products](https://developers.nest.com/products)" at top of page. 5. Click "[Create New Product](https://developers.nest.com/products/new)" 6. Fill in details: - - Product name must be unique. We recommend [email] - Home Assistant. - - The description, users, URLs can all be anything you want. - - Leave the "Redirect URI" Field blank + * Product name must be unique. We recommend [email] - Home Assistant. + * The description, users, URLs can all be anything you want. + * Leave the "Redirect URI" Field blank 7. For permissions check every box and if it's an option select the read/write option. Note: there are important permissions under the "Other Permissions" category. If you are only adding a thermostat, do not just select the permissions under "Thermostat". You still need to check the boxes under "Other Permissions" in order to give you access to features like away mode, ETA, structure read/write, and postal code. - - The description requires a specific format to be accepted. - - Use "[Home Assistant] [Edit] [For Home Automation]" as the description as it is not super important. + * The description requires a specific format to be accepted. + * Use "[Home Assistant] [Edit] [For Home Automation]" as the description as it is not super important. 8. Click "Create Product" 9. Once the new product page opens the "Product ID" and "Product Secret" are located on the right side. These will be used as `client_id` and `client_secret` below. -10. Once Home Assistant is started, a configurator will pop up asking you to log into your Nest account and copy a PIN code into Home Assistant. +10. Add the Nest component to your `configuration.yaml` and restart Home Assistant. Then, go to `Configuration > Integrations` and select `CONFIGURE` next to `Nest`. Click the link in the configurator pop up to log into your Nest account and complete the OAuth. Copy the resulting PIN code into the pop up. Connecting to the Nest Developer API requires outbound port 9553 on your firewall. The configuration will fail if this is not accessible. @@ -177,3 +194,149 @@ script: ### {% linkable_title Troubleshooting %} - If you're getting [rickrolled](https://www.youtube.com/watch?v=dQw4w9WgXcQ) instead of being able to see your Nest cameras, you may not have set up your developer account's permissions correctly. Go back through and make sure you've selected read/write under every category that it's an option. + +## {% linkable_title Platforms %} + +

+You must have the [Nest component](/components/nest/) configured to use the platforms below. +

+ +## {% linkable_title Binary Sensor %} + +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 +# Example configuration.yaml entry +nest: + binary_sensors: + monitored_conditions: + - 'fan' + - 'target' +``` + +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 %} +monitored_conditions: + description: States to monitor. + required: false + type: list +{% endconfiguration %} + +The following conditions are available by device: + +- Nest Home: + - away +- Nest Thermostat: + - online + - fan + - is\_using\_emergency\_heat + - is\_locked + - has\_leaf +- Nest Protect: + - online +- Nest Camera: + - online + - motion\_detected + - person\_detected + - sound\_detected + +## {% linkable_title Camera %} + +The `nest` platform allows you to watch still frames from a video stream (not live stream) of your [Nest](https://nest.com/camera/meet-nest-cam/) camera in Home Assistant. + +

+The `nest` camera will automatically be setup when you do. +

+ +Nest Camera supports the `camera.turn_on` and `camera.turn_off` services since the 0.75 release. + +## {% linkable_title Climate %} + +The `nest` climate platform lets you control a thermostat from [Nest](https://nest.com). + +

+Please note due to limitations with the European Nest Thermostat E, integration with Home Assistant for that thermostat is not possible. +

+ +

+ +

+ +## {% linkable_title Sensor %} + +The `nest` sensor platform lets you monitor sensors connected to your [Nest](https://nest.com) devices. + +

+The sensors will be setup if the `nest` component is configured and the required configuration for the `nest sensor` is set. +

+ +## {% 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: + sensors: + monitored_conditions: + - 'temperature' + - 'target' +``` + +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 %} +monitored_conditions: + description: States to monitor. + required: false + type: list +{% endconfiguration %} + +The following conditions are available by device: + +- Nest Home: + - eta: Estimated time of arrival. + - security\_state: `ok` or `deter`. [Security State](#security-state). Only available when Nest Camera exists. +- Nest Thermostat: + - humidity + - operation\_mode + - temperature + - target + - hvac\_state: The currently active state of the HVAC system, `heat`, `cool` or `off` (previously `heating`, `cooling` or `off`). +- Nest Protect: + - co\_status: `Ok`, `Warning` or `Emergency` + - smoke\_status: `Ok`, `Warning` or `Emergency` + - battery\_health: `Ok` or `Replace` + - color\_status: `gray`, `green`, `yellow` or `red`. Indicates device status by color in the Nest app UI. It is an aggregate condition for battery+smoke+CO states, and reflects the actual color indicators displayed in the Nest app. +- Nest Camera: none + +## {% linkable_title Security State %} + +

+This feature is not designed to transfer your Home Assistant to a security system, neither Home Assistant nor Nest be liable to You for damages, +or consequential damages of any character arising as a result of use this feature. + +This feature does not depend on the [Nest Secure alarm system](https://nest.com/alarm-system/overview/) and is not a reflection of the status of that system, +nor does it react to state changes in that system. +

+ +

+This feature uses a new [Nest Security API](https://developers.nest.com/documentation/cloud/security-guide). +You may need to change your ["Product"](https://developers.nest.com/products) permission setting to include `Security State Read`. +After this permission change, you may need to re-authorize your client. +

+ +If a Nest Cam detects the presence of a person (see `person_detected` in [binary_sensor.nest](#binary-sensor) while the structure is in `away` mode (see `away` in [binary_sensor.nest](#binary-sensor), the structure enters `deter` mode. + +A `deter` state is re-evaluated after several minutes and relaxed to `ok` if no further `person_detected` events have occurred. + +The `security_state` automatically switches to `ok` when the structure state is `home`. \ No newline at end of file diff --git a/source/_components/netatmo.markdown b/source/_components/netatmo.markdown index 5bd5aa7481fc..8f856e9b6913 100644 --- a/source/_components/netatmo.markdown +++ b/source/_components/netatmo.markdown @@ -46,8 +46,13 @@ password: discovery: description: Whether to discover Netatmo devices. Set it to False, if you want to choose which Netatmo device you want to add. required: false - type: string + type: boolean default: true +webhooks: + description: Enable webhooks for instant events of the Welcome and Presence cameras. + required: false + type: boolean + default: false {% endconfiguration %} ### {% linkable_title Get API and Secret Key %} @@ -69,3 +74,58 @@ That's it. You can copy and paste your new `client id` and `client secret` in yo

+ +### {% linkable_title Webhooks %} + +The Welcome and Presence cameras can send instant events to Home Assistant by using webhooks. There are different types of events, each with slightly different data attached. To enable the webhooks add `webhooks: true` to your configuration. It is also required to have your camera enabled in Home Assistant. You can do this either by manually setting up the [platform](https://www.home-assistant.io/components/camera.netatmo/) or by enabeling [discovery](https://www.home-assistant.io/components/netatmo/#discovery). + +To be able to receive events from Netatmo, your Home Assistant instance needs to be accessible from the web ([Hass.io instructions](https://www.home-assistant.io/addons/duckdns/)) and you need to have the base_url configured for the HTTP component ([docs](https://www.home-assistant.io/components/http/#base_url)). + +Events coming in from Netatmo will be available as events in Home Assistant and are fired as netatmo_*, along with their data. You can use this event to trigger automations. + +#### {% linkable_title Events %} + +The following events are available: + +- netatmo_person (Welcome) +- netatmo_movement (Welcome & Presence) +- netatmo_human (Presence) +- netatmo_animal (Presence) +- netatmo_vehicle (Presence) +- netatmo_other (Welcome & Presence) + +All events (except `netatmo_other`) contain the following attributes: + +| Attribute | Description | +| --------- | ----------- | +| event_type | Type of event. E.G. `movement`. +| home_name | Name of the home the camera belongs to. +| camera_id | MAC address of the camera. +| message | Message describing what has been seen by the camera. + +The Presence camera additionally has these attributes: + +| Attribute | Description | +| --------- | ----------- | +| snapshot_url | URL to a picture of the full frame of the event. +| vignette_url | URL to a picture cropped down to the area of interest. + +The Welcome camera additionally has these attributes for `netatmo_person` events: + +| Attribute | Description | +| --------- | ----------- | +| id | ID of the person that has been seen. +| name | Name of the person that has been seen. +| is_known | Boolean value if the person is known. +| face_url | URL to a picture of the person. + +The `netatmo_other` event passes all the webhook data through for all webhook events that don't match any of the above. Set the [level of logging](https://www.home-assistant.io/components/logger/) for the `netatmo` component to `debug` to view the data in the Home Assistant logs. + +### {% linkable_title Services (only for webhooks) %} + +There are two services to manually add and drop the webhooks. This might be useful if your webhook has been banned and you want to readd the webhook without restarting Home Assistant. + +| Service | Description | +| ------- | ----------- | +| addwebhook | Subscribe to webhooks. By default the automatically generated URL will be used. But you can pass `{"url": "https://yourdomain.com/yourwebhook/"}` as service data to the service call if you want to use a manually created [webhook trigger](https://www.home-assistant.io/docs/automation/trigger/#webhook-trigger). In this case you have to manually process the data that is sent by Netatmo. +| dropwebhook | Unsubscribe existing webhooks. \ No newline at end of file diff --git a/source/_components/netgear_lte.markdown b/source/_components/netgear_lte.markdown index 3c407ce06863..92aaa747e547 100644 --- a/source/_components/netgear_lte.markdown +++ b/source/_components/netgear_lte.markdown @@ -9,12 +9,23 @@ sharing: true footer: true logo: netgear.png ha_release: 0.72 -ha_category: Network +ha_category: + - Network + - Notifications + - Sensor ha_iot_class: "Local Polling" +redirect_from: + - /components/notify.netgear_lte/ + - /components/sensor.netgear_lte/ --- The Netgear LTE integration for Home Assistant allows you to observe and control [Netgear LTE modems](https://www.netgear.com/home/products/mobile-broadband/lte-modems/default.aspx), currently only tested with LB2120. +There is currently support for the following device types within Home Assistant: + +- [Notifications](#notifications) +- [Sensor](#sensor) + The integration provides: * a notify service that will send an SMS @@ -34,11 +45,70 @@ netgear_lte: {% configuration %} host: - description: The IP address of the modem web interface. - required: true - type: string + description: The IP address of the modem web interface. + required: true + type: string password: - description: The password used for the modem web interface. - required: true - type: string + description: The password used for the modem web interface. + required: true + type: string +{% endconfiguration %} + +## {% linkable_title Notifications %} + +The `netgear_lte` platform allows you to use a Netgear LTE modem for notifications from Home Assistant. The message will be sent as an SMS text message. + +```yaml +# Example configuration.yaml entry +notify: + - platform: netgear_lte + name: sms + target: "+15105550123" +``` + +{% configuration %} +target: + description: The phone number of a default recipient or a list with multiple recipients. + required: true + type: string, list +name: + description: Setting the optional parameter `name` allows multiple notifiers to be created. + required: false + default: notify + type: string +host: + description: The modem to use. Not needed if you only have one. + required: false + type: string +{% endconfiguration %} + +## {% linkable_title Sensor %} + +The `netgear_lte` sensor platform allows you to monitor your Netgear LTE modem. + +To enable the sensor, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: netgear_lte + sensors: + - sms + - usage +``` + +{% configuration %} +sensors: + description: Sensor types to create. + required: true + type: list + keys: + sms: + description: Number of unread SMS messages in the modem inbox. + usage: + description: Amount of data transferred. +host: + description: The modem to use. Not needed if you only have one. + required: false + type: string {% endconfiguration %} diff --git a/source/_components/nissan_leaf.markdown b/source/_components/nissan_leaf.markdown new file mode 100644 index 000000000000..5a1c4ce801a5 --- /dev/null +++ b/source/_components/nissan_leaf.markdown @@ -0,0 +1,126 @@ +--- +layout: page +title: "Nissan Leaf" +description: "Instructions for how to integrate Nissan Leaf(s) into Home Assistant." +date: 2019-01-05 07:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: nissan.png +ha_category: Car +ha_release: 0.89 +ha_iot_class: "Cloud Polling" +--- + +The `nissan_leaf` component offers integration with the [NissanConnect EV](http://youplus.nissan.co.uk/GB/en/YouPlus/ConnectedServices.html) cloud service. NissanConnect EV was previously known as Nissan Carwings. It offers: + +* sensors for the battery status and range +* a switch to start and stop the climate control +* a switch to start the car charging (cannot be stopped remotely - API limitation) +* a device tracker to locate the car (only on later Leaf models) + +## {% linkable_title Configuration %} + +To use Nissan Leaf in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +nissan_leaf: + username: "YOUR_USERNAME" + password: "YOUR_PASSWORD" + region: "YOUR_REGION" +``` +{% configuration %} +username: + description: The username associated with your NissanConnect EV account. Enclose in quotes. + required: true + type: string +password: + description: The password for your given NissanConnect EV account. Enclose in quotes. + required: true + type: string +region: + description: The region where the NissanConnect EV account is registered. Should be one of the following, NE (for Europe), NNA (USA), NCI (Canada), NMA (Australia), NML (Japan). + required: true + type: string +nissan_connect: + description: If your car has the updated head unit (NissanConnect rather than Carwings) then the location can be aquired and exposed via a device tracker. If you have a pre-2014 24 kWh Leaf then you will have Carwings and this should be set to false. + required: false + type: boolean +scan_interval: + description: The interval between updates if the climate control is off and the car is not charging. Set in any time unit (e.g. minutes, hours, days!). + required: false + default: 1 hour + type: time +update_interval_charging: + description: The interval in minutes between updates if charging. + required: false + default: 15 + type: time +update_interval_climate: + description: The interval in minutes between updates if climate control on. + required: false + default: 5 + type: time +{% endconfiguration %} + +## {% linkable_title Full configuration sample %} + +A more advanced example for setting the update interval: + +```yaml +# Example configuration.yaml entry +nissan_leaf: + username: "YOUR_USERNAME" + password: "YOUR_PASSWORD" + region: "YOUR_REGION" + nissan_connect: true + scan_interval: + hours: 1 + update_interval_charging: + minutes: 15 + update_interval_climate: + minutes: 5 + force_miles: true +``` + +## {% linkable_title Updating on-demand using Automation %} + +You can also use the `nissan_leaf.update` service to request an on-demand update. To update almost exclusively via the service set the `update_interval` to a high value in the component configuration. The service requires you to provide the vehicle identification number (VIN) as a parameter. You can see the VIN on the attributes of all the entities created by this component, except the device_tracker. + +```yaml +- id: update_when_driver_not_home + alias: 'Update when driver not home' + initial_state: on + trigger: + - platform: time_pattern + minutes: '/30' + condition: + - condition: state + entity_id: device_tracker.drivername # replace + state: 'not_home' + action: + - service: nissan_leaf.update + data: + vin: '1HGBH41JXMN109186' # replace +``` + +## {% linkable_title Hints %} + +* The update interval has a minimum of two minutes. +* Requesting updates uses a small amount of power from the 12 V battery. The 12 V battery charges from the main traction battery when the car is not plugged in. If the car is left plugged in for a long time, or if the main traction battery is very low then the 12 V battery may gradually discharge. A low update interval may cause the 12 V battery to become flat. When the 12 V battery is flat the car will not start. _Do not set the update interval too low. Use at your own risk._ +* This component communicates with the Nissan Servers which then communicate with the car. The communication between the car and the Nissan Servers is very slow, and takes up to five minutes to get information from the car, therefore the default polling interval is set to one hour to not overwhelm the connection. +* Responses from the Nissan servers are received separately for the battery/range, climate control and location. The `updated_on` attribute will show the last time the data was retrieved from the server. There are separate attributes for when the `next_update` is scheduled, and if an `update_inprogress`. The `nissan_leaf.update` service will reset the `next_update` attribute. + +Please report bugs using the following logger configuration. + +```yaml +logger: + default: critical + logs: + homeassistant.components.nissan_leaf: debug + homeassistant.components.device_tracker.nissan_leaf: debug + homeassistant.components.sensor.nissan_leaf: debug + homeassistant.components.switch.nissan_leaf: debug +``` diff --git a/source/_components/norway_air.markdown b/source/_components/norway_air.markdown new file mode 100644 index 000000000000..69ffa681ee0c --- /dev/null +++ b/source/_components/norway_air.markdown @@ -0,0 +1,46 @@ +--- +layout: page +title: "Norway Air Quality" +description: "Display the current status of Norway air quality." +date: 2019-02-02 18:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: metno.png +ha_category: Health +ha_iot_class: "Cloud Polling" +ha_release: 0.88 +--- + +The `norway_air` component [queries](https://luftkvalitet.miljostatus.no/) the Norway air quality [data feed](https://api.met.no/weatherapi/airqualityforecast/0.1/documentation) provided by the Norwegian Meteorological Institute. + +To add air quality sensor to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +air_quality: + - platform: norway_air +``` + +{% configuration %} +name: + description: Additional name for the sensor. + required: false + type: string + default: Air quality +forecast: + description: If you want to get forecast data instead of the current data, set this to the number of hours that you want to look into the future. + required: false + type: integer +latitude: + description: Manually specify latitude. + required: false + type: number + default: Provided by Home Assistant configuration +longitude: + description: Manually specify longitude. + required: false + type: number + default: Provided by Home Assistant configuration +{% endconfiguration %} diff --git a/source/_components/notify.apns.markdown b/source/_components/notify.apns.markdown index 0396724efeca..74a2f1b231a4 100644 --- a/source/_components/notify.apns.markdown +++ b/source/_components/notify.apns.markdown @@ -7,6 +7,7 @@ sidebar: true comments: false sharing: true footer: true +logo: apple.png ha_category: Notifications ha_release: 0.31 --- diff --git a/source/_components/notify.discord.markdown b/source/_components/notify.discord.markdown index 01fca89820bd..6f296ea538ea 100644 --- a/source/_components/notify.discord.markdown +++ b/source/_components/notify.discord.markdown @@ -18,7 +18,7 @@ In order to get a token you need to go to the [Discord My Apps page](https://dis Retreive the **Client ID** from the information section and the (hidden) **Token** of your bot for later. -When setting up the application you can use this [icon](/demo/favicon-192x192.png). +When setting up the application you can use this [icon](/images/favicon-192x192-full.png). To use Discord notifications, add the following to your `configuration.yaml` file: @@ -79,7 +79,7 @@ This channel ID has to be used as the target when calling the notification servi "0987654321" ], "data": { - "images": [ + "images": [ "/tmp/garage_cam.jpg" ] } diff --git a/source/_components/notify.ecobee.markdown b/source/_components/notify.ecobee.markdown deleted file mode 100644 index 0dbdf6b8ade2..000000000000 --- a/source/_components/notify.ecobee.markdown +++ /dev/null @@ -1,34 +0,0 @@ ---- -layout: page -title: "Ecobee Notify" -description: "Instructions on how to setup the Ecobee notification component within Home Assistant." -date: 2016-05-12 09:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: ecobee.png -ha_category: Notifications -ha_release: "0.20" ---- - -To get your Ecobee notifications working with Home Assistant, you must first have the main [Ecobee component](/components/ecobee/) loaded and running. Once you have that configured, you can setup this component to send messages to your Ecobee device. - -To use this notification platform in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -notify: - - name: NOTIFIER_NAME - platform: ecobee -``` - -{% configuration %} -name: - description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`. - required: false - default: "`notify`" - type: string -{% endconfiguration %} - -To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_components/notify.file.markdown b/source/_components/notify.file.markdown index 7b978d331fce..1fed47e1714b 100644 --- a/source/_components/notify.file.markdown +++ b/source/_components/notify.file.markdown @@ -35,7 +35,7 @@ filename: required: true type: string timestamp: - description: Setting `timestamp` to `True` adds a timestamp to every entry. + description: Setting `timestamp` to `true` adds a timestamp to every entry. required: false default: false type: boolean diff --git a/source/_components/notify.free_mobile.markdown b/source/_components/notify.free_mobile.markdown index f204fe054c02..8851f8a060f4 100644 --- a/source/_components/notify.free_mobile.markdown +++ b/source/_components/notify.free_mobile.markdown @@ -36,13 +36,14 @@ notify: username: YOUR_ACCOUNT_ID access_token: TOKEN ``` + {% configuration %} -username: +username: description: This is the id given by FreeMobile to access to your online account. - required: true - type: string -access_token: - description: You can get this token by activating the SMS API in your online account. - required: true - type: string + required: true + type: string +access_token: + description: You can get this token by activating the SMS API in your online account. + required: true + type: string {% endconfiguration %} diff --git a/source/_components/notify.group.markdown b/source/_components/notify.group.markdown index 30464666bf63..b4eb9b5e3a46 100644 --- a/source/_components/notify.group.markdown +++ b/source/_components/notify.group.markdown @@ -15,12 +15,12 @@ ha_qa_scale: internal The `group` notification platform allows you to combine multiple `notify` platforms into a single service. -To use this notification platform in your installation, add the following to your `configuration.yaml` file: +## {% linkable_title Configuration %} ```yaml # Example configuration.yaml entry notify: - - name: NOTIFIER_NAME + - name: NAME_OF_NOTIFIER_GROUP platform: group services: - service: html5 @@ -48,3 +48,16 @@ services: required: false type: string {% endconfiguration %} + +## {% linkable_title Example %} + +An example on how to use it in an automation: + +{% raw %} +```yaml +action: + service: notify.NAME_OF_NOTIFIER_GROUP + data: + message: "The sun is {% if is_state('sun.sun', 'above_horizon') %}up{% else %}down{% endif %}!" +``` +{% endraw %} diff --git a/source/_components/notify.homematic.markdown b/source/_components/notify.homematic.markdown deleted file mode 100644 index 5ba5dd3b362a..000000000000 --- a/source/_components/notify.homematic.markdown +++ /dev/null @@ -1,111 +0,0 @@ ---- -layout: page -title: "Homematic Notifications" -description: "Instructions on how to notify Homematic devices." -date: 2018-10-03 11:44 -sidebar: true -comments: false -sharing: true -footer: true -logo: homematic.png -ha_category: Notifications -ha_release: 0.81 ---- - -The `homematic` notification platform enables invoking Homematic devices. - -To use this notification platform in your installation, add the following to your `configuration.yaml` file: - -## {% linkable_title Configuration %} - -```yaml -# Example configuration.yaml entry -notify: - - name: my_hm - platform: homematic - address: NEQXXXXXXX - channel: 2 - param: "SUBMIT" - value: "1,1,108000,8" -``` - -{% configuration %} -address: - description: The address of your Homematic device. The address is the serial number of the device shown in the CCU in the `devices` section in the column `serial number`. - required: true - type: string -channel: - description: The channel of your Homematic device. - required: true - type: integer -param: - description: An additional parameter for the Homematic device. - required: true - type: string -interface: - description: Set the name of the interface from the config. - required: false - type: string -value: - description: This is the value that is set on the device. Its device specific. - required: true - type: string -{% endconfiguration %} - -### {% linkable_title Usage %} - -`homematic` is a notify platform and can be controlled by calling the notify service [as described here](/components/notify/). - -Only the `data` part of the event payload is processed. This part can specify or override the value given as configuration variable: - -```json -{ - "data": { - "address": "NEQXXXXXXX", - "channel": 2, - "param": "SUBMIT", - "value": "1,1,108000,8" - } -} -``` - -It is possible to provide a template in order to compute the value: - -{% raw %} -```json -{ - "data": { - "value": "1,1,108000{% if is_state('binary_sensor.oeqxxxxxxx_state', 'on') %},1{% endif %}{% if is_state('binary_sensor.oeqxxxxxxx_state', 'on') %},2{% endif %}" - } -} -``` -{% endraw %} - -You can also specify the event payload using a group notification (instead of specifying the value for the notify itself): - -{% raw %} -```yaml -notify: - - name: my_hm - platform: homematic - address: NEQXXXXXXX - - name: group_hm - platform: group - services: - - service: my_hm - data: - data: - value: "1,1,108000{% if is_state('binary_sensor.oeqxxxxxxx_state', 'on') %},1{% endif %}{% if is_state('binary_sensor.oeqxxxxxxx_state', 'on') %},2{% endif %}" - -alert: - temperature: - name: Temperature too high - done_message: Temperature OK - entity_id: binary_sensor.temperature_too_high - can_acknowledge: True - notifiers: - - group_hm -``` -{% endraw %} - -Please note that the first `data` element belongs to the service `my_hm`, while the second one belongs to the event payload. diff --git a/source/_components/notify.html5.markdown b/source/_components/notify.html5.markdown index 524b92ac9db3..0f6527b075be 100644 --- a/source/_components/notify.html5.markdown +++ b/source/_components/notify.html5.markdown @@ -22,6 +22,18 @@ HTML5 push notifications **do not** work on iOS. To enable this platform, add the following lines to your `configuration.yaml` file: +```yaml +# Example configuration.yaml entry +notify: + - platform: html5 + name: NOTIFIER_NAME + vapid_pub_key: YOUR_PUBLIC_KEY + vapid_prv_key: YOUR_PRIVATE_KEY + vapid_email: YOUR_EMAIL +``` + +Or + ```yaml # Example configuration.yaml entry notify: @@ -54,7 +66,9 @@ gcm_sender_id: 3. Go to [https://console.cloud.google.com/apis/credentials/domainverification](https://console.cloud.google.com/apis/credentials/domainverification) and verify your domain via Google Webmaster Central / Search Console - [instructions](#verify-your-domain). 4. With the domain verified, go to [https://console.firebase.google.com](https://console.firebase.google.com), select import Google project and select the project you created. 5. Then, click the cogwheel on top left and select "Project settings". -6. Select 'Cloud Messaging' tab, listed beneath Project Credentials will be your 152 character 'Server Key' and 12 digit ID 'Sender ID' you need for configuring this component. +6. Select 'Cloud Messaging' tab. +7. If using VAPID: Generate a new key pair under the Web configuration listing at the bottom of the page. To view the private key click the three dots to the right and 'Show private key'. +8. If using GCM: Listed beneath Project Credentials will be your 152 character 'Server Key' and 12 digit ID 'Sender ID' you need for configuring this component. Notice: GCM is deprecated and will stop working in April 2019, see https://developers.google.com/cloud-messaging/faq #### {% linkable_title Verify your domain %} @@ -85,9 +99,11 @@ Assuming you have already added the platform to your configuration: 1. Open Home Assistant in Chrome or Firefox. 2. Load profile page by clicking on the badge next to the Home Assistant title in the sidebar. Assuming you have met all the [requirements](#requirements) above then you should see a new slider for Push Notifications. If the slider is greyed out, ensure you are viewing Home Assistant via its external HTTPS address. If the slider is not visible, ensure you are not in the user configuration (Sidebar, Configuration, Users, View User). 3. Slide it to the on position. -4. Within a few seconds you should be prompted to allow notifications from Home Assistant. -5. Assuming you accept, that's all there is to it! -6. (Optional, but highly recommended!) Open the `html5_push_registrations.conf` file in your configuration directory. You will see a new entry for the browser you just added. Rename it from `unnamed device` to a name of your choice, which will make it easier to identify later. _Do not change anything else in this file!_ You need to restart Home Assistant after making any changes to the file. +4. Name the device you're using in the alert that appears. +5. Within a few seconds you should be prompted to allow notifications from Home Assistant. +6. Assuming you accept, that's all there is to it! + +**Note:** If you aren't prompted for a device name when enabling notifications, open the `html5_push_registrations.conf` file in your configuration directory. You will see a new entry for the browser you just added. Rename it from `unnamed device` to a name of your choice, which will make it easier to identify later. _Do not change anything else in this file!_ You need to restart Home Assistant after making any changes to the file. ### {% linkable_title Testing %} @@ -196,6 +212,22 @@ data: If no URL or actions are provided, interacting with a notification will open your Home Assistant in the browser. You can use relative URLs to refer to Home Assistant, i.e. `/map` would turn into `https://192.168.1.2:8123/map`. +### {% linkable_title Dismiss %} + +You can dismiss notifications by using service notify.html5_dismiss like so: + +```json +{ + "target": ["my phone"], + "data": { + "tag": "notification_tag" + } +} +``` + +If no target is provided, it dismisses for all. +If no tag is provided, it dismisses all notifications. + ### {% linkable_title Automating notification events %} During the lifespan of a single push notification, Home Assistant will emit a few different events to the event bus which you can use to write automations against. diff --git a/source/_components/notify.huawei_lte.markdown b/source/_components/notify.huawei_lte.markdown new file mode 100644 index 000000000000..1baf01ca9a7a --- /dev/null +++ b/source/_components/notify.huawei_lte.markdown @@ -0,0 +1,46 @@ +--- +layout: page +title: "Huawei LTE Notify" +description: "Instructions on how to add Huawei LTE notifications to Home Assistant." +date: 2018-12-23 17:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: huawei.svg +ha_category: Notifications +ha_release: 0.88 +--- + +The `huawei_lte` platform allows you to use a Huawei LTE router for +notifications from Home Assistant. The messages will be sent as SMS +text messages. + +This requires you to have set up the +[Huawei LTE component](/components/huawei_lte/). + +```yaml +# Example configuration.yaml entry +notify: + - platform: huawei_lte + recipient: "+15105550123" +``` + +{% configuration %} +recipient: + description: The phone number of a default recipient or a list with multiple recipients. + required: true + type: string, list +name: + description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`. + required: false + default: notify + type: string +url: + description: The router to use. Not needed if you only have one. + required: false + type: url +{% endconfiguration %} + +To use notifications, please see the +[getting started with automation page](/getting-started/automation/). diff --git a/source/_components/notify.joaoapps_join.markdown b/source/_components/notify.joaoapps_join.markdown deleted file mode 100644 index e5b6c76e90a1..000000000000 --- a/source/_components/notify.joaoapps_join.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "Join Notify" -description: "Instructions on how to setup the Join notification platform within Home Assistant." -date: 2016-07-12 09:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: joaoapps_join.png -ha_category: Notifications -ha_release: "0.24" ---- - -See the [Joaoapps Join component page](/components/joaoapps_join/) for -information how to get the join notify platform running. diff --git a/source/_components/notify.lametric.markdown b/source/_components/notify.lametric.markdown index f68d978dba3c..680b258278d5 100644 --- a/source/_components/notify.lametric.markdown +++ b/source/_components/notify.lametric.markdown @@ -45,7 +45,7 @@ cycles: default: 1 priority: description: Defines the priority of the notification. - required: False + required: false type: string default: warning {% endconfiguration %} diff --git a/source/_components/notify.markdown b/source/_components/notify.markdown index fdf8980710d8..b152139954b3 100644 --- a/source/_components/notify.markdown +++ b/source/_components/notify.markdown @@ -11,6 +11,8 @@ footer: true The `notify` component makes it possible to send notifications to a wide variety of platforms. Please check the sidebar for a full list of platforms that are supported. +If you want to send notifications to the Home Assistant Web Interface you may use the [Persistent Notification Component](/components/persistent_notification/). + ## {% linkable_title Configuration %} ```yaml diff --git a/source/_components/notify.mqtt.markdown b/source/_components/notify.mqtt.markdown index a1a33ef7e435..04a40d2a1109 100644 --- a/source/_components/notify.mqtt.markdown +++ b/source/_components/notify.mqtt.markdown @@ -38,10 +38,11 @@ The same will work for automations. Using the [REST API](https://developers.home-assistant.io/docs/en/external_api_rest.html) to send a message to a given topic. ```bash -$ curl -X POST -H "x-ha-access: YOUR_PASSWORD" \ - -H "Content-Type: application/json" \ - -d '{"payload": "Test message from HA", "topic": "home/notification"}' \ - http://IP_ADDRESS:8123/api/services/mqtt/publish +$ curl -X POST \ + -H "Authorization: Bearer ABCDEFGH" \ + -H "Content-Type: application/json" \ + -d '{"payload": "Test message from HA", "topic": "home/notification"}' \ + http://IP_ADDRESS:8123/api/services/mqtt/publish ``` ### {% linkable_title Automations %} diff --git a/source/_components/notify.mysensors.markdown b/source/_components/notify.mysensors.markdown index 085f9b87cfc4..8a3ff799d394 100644 --- a/source/_components/notify.mysensors.markdown +++ b/source/_components/notify.mysensors.markdown @@ -8,7 +8,9 @@ comments: false sharing: true footer: true logo: mysensors.png -ha_category: DIY +ha_category: + - DIY + - Notifications ha_release: 0.36 ha_iot_class: "Local Push" --- diff --git a/source/_components/notify.netgear_lte.markdown b/source/_components/notify.netgear_lte.markdown deleted file mode 100644 index e2dc124f9186..000000000000 --- a/source/_components/notify.netgear_lte.markdown +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: page -title: "Netgear LTE Notify" -description: "Instructions on how to add Netgear LTE notifications to Home Assistant." -date: 2018-06-06 23:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: netgear.png -ha_category: Notifications -ha_release: 0.72 ---- - -The `netgear_lte` platform allows you to use a Netgear LTE modem for notifications from Home Assistant. The message will be sent as an SMS text message. - -This requires you to have set up the [Netgear LTE component](/components/netgear_lte/). - -```yaml -# Example configuration.yaml entry -notify: - - platform: netgear_lte - name: sms - target: "+15105550123" -``` - -{% configuration %} -target: - description: The phone number of a default recipient or a list with multiple recipients. - required: true - type: string, list -name: - description: Setting the optional parameter `name` allows multiple notifiers to be created. - required: false - default: notify - type: string -host: - description: The modem to use. Not needed if you only have one. - required: false - type: string -{% endconfiguration %} diff --git a/source/_components/notify.smtp.markdown b/source/_components/notify.smtp.markdown index 7e10071eccf8..c41695aabda5 100644 --- a/source/_components/notify.smtp.markdown +++ b/source/_components/notify.smtp.markdown @@ -73,7 +73,7 @@ sender_name: required: false type: string debug: - description: Enables Debug, eg. True or False. + description: Enables Debug, e.g., True or False. required: false type: boolean default: false diff --git a/source/_components/notify.tibber.markdown b/source/_components/notify.tibber.markdown deleted file mode 100644 index 2b903e835f2d..000000000000 --- a/source/_components/notify.tibber.markdown +++ /dev/null @@ -1,33 +0,0 @@ ---- -layout: page -title: "Tibber Notification" -description: "Instructions on how to integrate Tibber within Home Assistant." -date: 2015-10-04 16:34 -sidebar: true -comments: false -sharing: true -footer: true -logo: tibber.png -ha_category: Notifications -ha_release: 0.80 -ha_qa_scale: silver -ha_iot_class: "Cloud Polling" ---- - -The requirement is that you have setup the [`tibber` component](/components/tibber/). - -## {% linkable_title Usage %} - -Tibber can send a notification by calling the [`notify` service](/components/notify/). It will send a notification to all devices registered in the Tibber account. - -To use notifications, please see the [getting started with automation page](/getting-started/automation/). - -### {% linkable_title Send message %} - -```yaml -action: - service: notify.tibber - data: - title: Your title - message: This is a message for you! -``` diff --git a/source/_components/notify.tplink_lte.markdown b/source/_components/notify.tplink_lte.markdown deleted file mode 100644 index 727014eb34a7..000000000000 --- a/source/_components/notify.tplink_lte.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "TP-Link LTE Notify" -description: "Instructions on how to add TP-Link LTE notifications to Home Assistant." -date: 2018-10-03 21:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: tp-link.png -ha_category: Notifications -ha_release: "0.83" -ha_iot_class: "Local Polling" ---- - -The `tplink_lte` platform allows you to use a TP-Link LTE router for notifications from Home Assistant. The message will be sent as an SMS text message. - -See the [TP-Link LTE component](/components/tplink_lte/) for configuration and setup instructions. diff --git a/source/_components/notify.twilio_sms.markdown b/source/_components/notify.twilio_sms.markdown index 162b34b34e83..651beaf6e772 100644 --- a/source/_components/notify.twilio_sms.markdown +++ b/source/_components/notify.twilio_sms.markdown @@ -23,12 +23,12 @@ To use this notification platform in your installation, add the following to you notify: - name: NOTIFIER_NAME platform: twilio_sms - from_number: E164_PHONE_NUMBER + from_number: E164_PHONE_NUMBER or SENDER_ID ``` {% configuration %} from_number: - description: An [E.164](https://en.wikipedia.org/wiki/E.164) formatted phone number, like +14151234567. See [Twilio's guide to formatting phone numbers](https://www.twilio.com/help/faq/phone-numbers/how-do-i-format-phone-numbers-to-work-internationally) for more information. + description: An [E.164](https://en.wikipedia.org/wiki/E.164) formatted phone number, like +14151234567. See [Twilio's guide to formatting phone numbers](https://www.twilio.com/help/faq/phone-numbers/how-do-i-format-phone-numbers-to-work-internationally) for more information. Alternatively, a sender ID can be used instead of a phone number. The sender ID must be formatted according to Twilio's guidelines. See [Twilio's guide to sender ID](https://support.twilio.com/hc/en-us/articles/223181348-Getting-started-with-Alphanumeric-Sender-ID) for more information. required: true type: string name: diff --git a/source/_components/nuheat.markdown b/source/_components/nuheat.markdown index b3654ebbae3a..4d7edc73d19b 100644 --- a/source/_components/nuheat.markdown +++ b/source/_components/nuheat.markdown @@ -8,12 +8,19 @@ comments: false sharing: true footer: true logo: nuheat.png -ha_category: Hub +ha_category: + - Climate ha_release: 0.61 ha_iot_class: "Cloud Polling" +redirect_from: + - /components/climate.nuheat/ --- -The `nuheat` component lets you control connected floor heating thermostats from [NuHeat](http://www.nuheat.com/). +The `nuheat` component lets control your connected [NuHeat Signature]([NuHeat Signature](http://www.nuheat.com/products/thermostats/signature-thermostat)) floor heating thermostats from [NuHeat](http://www.nuheat.com/). + +There is currently support for the following device types within Home Assistant: + +- Climate First, you will need to obtain your thermostat's numeric serial number or ID by logging into [MyNuHeat.com](https://mynuheat.com/) and selecting your thermostat(s). @@ -49,3 +56,124 @@ devices: required: true type: [string, int] {% endconfiguration %} + +## {% linkable_title Concepts %} + +The NuHeat Thermostat supports the following key concepts. + +The `target temperature` is the temperature that the device attempts to achieve. The target temperature is either determined by the schedule programmed into the thermostat (`auto mode`) or may be overridden. When the target temperature is set by Home Assistant, the thermostat will hold this temperature until the schedule is resumed. + + +## {% linkable_title Attributes %} + +The following attributes are provided by the NuHeat thermostat: `name`, `temperature_unit`, `current_temperature`, `target_temperature`, `current_hold_mode`, `current_operation`, `operation_list`, `min_temp` and `max_temp`. + + +### {% linkable_title Attribute `name` %} + +Returns the name of the NuHeat Thermostat. + +| Attribute type | Description | +| ---------------| ----------- | +| String | Name of the thermostat + +### {% linkable_title Attribute `temperature_unit` %} + +Returns the unit of measurement used for temperature by the thermostat. + +| Attribute type | Description | +| ---------------| ----------- | +| String | Name of the temperature unit + +### {% linkable_title Attribute `current_temperature` %} + +Returns the current temperature measured by the thermostat. + +| Attribute type | Description | +| ---------------| ----------- | +| Integer | Currently measured temperature + +### {% linkable_title Attribute `target_temperature` %} + +Returns the target temperature of the thermostat, when the thermostat is +not in auto operation mode. + +| Attribute type | Description | +| ---------------| ----------- | +| Integer | Target temperature + +### {% linkable_title Attribute `current_hold_mode` %} + +Returns the current temperature hold, if any. + +| Attribute type | Description | +| ---------------| ----------- | +| String | 'temperature', 'temporary_temperature', 'auto', etc. + +### {% linkable_title Attribute `current_operation` %} + +Returns the current operation of the thermostat. + +| Attribute type | Description | +| ---------------| ----------- | +| String | 'heat', 'idle' + +### {% linkable_title Attribute `operation_list` %} + +Returns the list of available operation modes. + +| Attribute type | Description | +| ---------------| ----------- | +| List of String | Available operation modes + +### {% linkable_title Attribute `min_temp` %} + +Returns the minimum supported temperature by the thermostat + +| Attribute type | Description | +| ---------------| ----------- | +| Integer | Minimum supported temperature + +### {% linkable_title Attribute `max_temp` %} + +Returns the maximum supported temperature by the thermostat + +| Attribute type | Description | +| ---------------| ----------- | +| Integer | Maximum supported temperature + + +## {% linkable_title Services %} + +The following services are provided by the NuHeat Thermostat: `set_temperature`, `set_hold_mode`, `nuheat_resume_program`. + +The services `fan_min_on_time`, `set_aux_heat`, `set_away_mode`, `set_humidity`, `set_fan_mode`, `set_operation_mode` and `set_swing_mode` offered by the [Climate component](/components/climate/) are not implemented for this thermostat. + +### {% linkable_title Service `set_temperature` %} + +Puts the thermostat into an indefinite hold at the given temperature. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. +| `temperature` | no | Desired target temperature (when not in auto mode) + +Only the target temperatures relevant for the current operation mode need to +be provided. + +### {% linkable_title Service `set_hold_mode` %} + +Sets the thermostat's hold mode. The NuHeat thermostat supports "auto" (to run the thermostat's programmed schedule), "temperature" (to indefinitely hold the thermostat's current target temperature), or "temporary_temperature" (to hold the thermostat's current target temperature until the thermostat's next scheduled event). + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. +| `hold_mode` | no | New value of hold mode. + +### {% linkable_title Service `nuheat_resume_program` %} + +Resumes the currently active schedule. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. diff --git a/source/_components/octoprint.markdown b/source/_components/octoprint.markdown index 992fd9700da1..5a9de6605b96 100644 --- a/source/_components/octoprint.markdown +++ b/source/_components/octoprint.markdown @@ -8,14 +8,29 @@ comments: false sharing: true footer: true logo: octoprint.png -ha_category: Hub +ha_category: + - Hub + - Binary Sensor + - Sensor featured: false ha_release: 0.19 ha_iot_class: "Local Polling" +redirect_from: + - /components/binary_sensor.octoprint/ + - /components/sensor.octoprint/ --- [OctoPrint](http://octoprint.org/) is a web interface for your 3D printer. This is the main component to integrate OctoPrint sensors. +There is currently support for the following device types within Home Assistant: + +- [Binary Sensor](#binary-sensor) +- [Sensor](#sensor) + +

+You must have the OctoPrint component configured (below) to use the sensor and binary sensor. After configuring that component, the sensors and binary sensors automatically appear. +

+ ## {% 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`. @@ -49,6 +64,11 @@ octoprint: required: false type: integer default: 80 + path: + description: The URL path of the Octoprint instance. + required: false + type: string + default: / ssl: description: Enable or disable SSL/TLS. required: false @@ -63,7 +83,7 @@ octoprint: description: Number of temperature adjustable tools, e.g., nozzle. required: false type: integer - default: 1 + default: 0 sensors: description: Configuration for the sensors. required: false @@ -77,7 +97,7 @@ octoprint: "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. + description: Temperatures of all available tools, e.g., `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": @@ -131,3 +151,38 @@ camera: still_image_url: http://YOUR_OCTOPRINT_HOST_IP/webcam/?action=snapshot mjpeg_url: http://YOUR_OCTOPRINT_HOST_IP/webcam/?action=stream ``` + +## {% linkable_title Binary Sensor %} + +The `octoprint` binary sensor platform let you monitor if your 3D printer is printing or if there was a printing error. + +To set it up, add the following information to your `configuration.yaml` file: + +```yaml +binary_sensor: + - platform: octoprint + monitored_conditions: + - Printing + - Printing Error +``` + +{% 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 %} + +## {% linkable_title Sensor %} + +The `octoprint` sensor platform let you monitor various states of your 3D printer and its print jobs. diff --git a/source/_components/opentherm_gw.markdown b/source/_components/opentherm_gw.markdown index debdfaec6cbc..be8ff5d7d2e4 100644 --- a/source/_components/opentherm_gw.markdown +++ b/source/_components/opentherm_gw.markdown @@ -8,14 +8,33 @@ comments: false sharing: true footer: true logo: opentherm.png -ha_category: Hub +ha_category: + - Hub + - Binary Sensor + - Climate + - Sensor ha_release: 0.81 ha_iot_class: "Local Push" +redirect_from: + - /components/binary_sensor.opentherm_gw/ + - /components/climate.opentherm_gw/ + - /components/sensor.opentherm_gw/ --- The `opentherm_gw` component is used to control the [OpenTherm Gateway](http://otgw.tclcode.com/) from Home Assistant. + +There is currently support for the following device types within Home Assistant: + +- Binary Sensor +- Climate +- Sensor + When enabled, this component will automatically add its [`climate` entity](/components/climate.opentherm_gw) to Home Assistant. +

+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 Configuration %} ```yaml @@ -45,7 +64,7 @@ climate: type: float default: "`0.5` for Celsius and `1.0` for Fahrenheit." floor_temperature: - description: "Some thermostats round all temperatures down to the lower value according to their precision. Default behavior for Home Assistant is to round temperatures to the nearest value. Set this to `True` to override Home Assistant and round to the lower value according to the configured `precision`." + description: "Some thermostats round all temperatures down to the lower value according to their precision. Default behavior for Home Assistant is to round temperatures to the nearest value. Set this to `true` to override Home Assistant and round to the lower value according to the configured `precision`." required: false type: boolean default: false @@ -253,6 +272,7 @@ monitored_variables: {% endconfiguration %} ## {% linkable_title Supported Variables %} + The list above contains all supported variables. Note that not all boilers and thermostats properly support all variables, so the fact that a variable is listed here and published by your system does not necessarily mean that you will get useful data out of it. To see which variables are published in your situation, enable debug logging for the `opentherm_gw` component and look for the status updates. # {% linkable_title Services %} @@ -346,12 +366,13 @@ The value you provide here will be used with the GPIO `home` (5) and `away` (6) | ---------------------- | -------- | ----------- | | `temperature` | no | The setback temperature. Accepted values are `0.0` through `30.0`. - ## {% linkable_title GPIO modes %} + Possible modes and their meaning for the GPIO pins are listed here: {% comment %} Bulletpoints and numbers to match the LED mode layout below. {% endcomment %} + * 1\. No function, default for both ports on a freshly flashed chip. * 2\. Ground - A permanently low output (0V). Could be used for a power LED. * 3\. Vcc - A permanently high output (5V). Can be used as a short-proof power supply for some external circuitry used by the other GPIO port. @@ -361,9 +382,10 @@ Possible modes and their meaning for the GPIO pins are listed here: * 7\. Away - Set thermostat to setback temperature when pulled high. * 8\. DS1820 (GPIO port B only) - Data line for a DS18S20 or DS18B20 temperature sensor used to measure the outside temperature. A 4k7 resistor should be connected between GPIO port B and Vcc. - ## {% linkable_title LED modes %} + Possible LED modes and their meaning are listed here: + * R. Receiving an Opentherm message from the thermostat or boiler. * X. Transmitting an Opentherm message to the thermostat or boiler. * T. Transmitting or receiving a message on the thermostat interface. @@ -392,7 +414,7 @@ opentherm_gw: climate: name: Thermostat precision: 0.5 - floor_temperature: True + floor_temperature: true monitored_variables: - room_setpoint - room_temp diff --git a/source/_components/openuv.markdown b/source/_components/openuv.markdown index 4366222a34b2..442315a407f5 100644 --- a/source/_components/openuv.markdown +++ b/source/_components/openuv.markdown @@ -8,24 +8,54 @@ comments: false sharing: true footer: true logo: openuv.jpg -ha_category: Health +ha_category: + - Health + - Binary Sensor + - Sensor ha_release: 0.76 ha_iot_class: "Cloud Polling" +ha_config_flow: true +redirect_from: + - /components/binary_sensor.openuv/ + - /components/sensor.openuv/ --- The `openuv` component displays UV and Ozone data from [openuv.io](http://openuv.io). ## {% linkable_title Generating an API Key %} -To generate an API key, [simply log in to the OpenUV website](https://www.openuv.io/auth/google). +To generate an API key, +[simply log in to the OpenUV website](https://www.openuv.io/auth/google).

-The "Limited" plan (which is what new users are given by default) is limited to 500 API requests per day. In order to leave a buffer, the `openuv` component queries the API every 30 minutes by default. This value can be modifed (via the `scan_interval` key), but please note that over-running the API will require you to upgrade to a paid plan (and may disable your access in the meantime). +Beginning February 1, 2019, the "Limited" plan (which is what new users are +given by default) is limited to 50 API requests per day. Because different +API plans and locations will have different requirements, the `openuv` +component does not automatically query the API for new data after it initially +loads. To request new data, the `update_data` service may be used. +

+ +

+Each use of the `update_data` service will consume 1 or 2 API calls, depending +on which monitored conditions are configured. + +If the OpenUV component is configured through the Home Assistant UI (via the +`Configuration >> Integrations` panel), each service call will consume 2 API +calls from the daily quota. + +If the OpenUV component is configured via `configuration.yaml`, service calls +will consume 2 API calls if `monitored_conditions` contains both +`uv_protection_window` and any other condition; any other scenarios will only +consume 1 API call. + +Ensure that you understand these specifications when calling the `update_data` +service.

## {% linkable_title Configuration %} -To retrieve data from OpenUV, add the following to your `configuration.yaml` file: +To retrieve data from OpenUV, add the following to your `configuration.yaml` +file: ```yaml openuv: @@ -37,11 +67,6 @@ api_key: description: The OpenUV API key. required: true type: string -scan_interval: - description: the frequency (in seconds) between data updates. - required: false - type: integer - default: 1800 binary_sensors: description: The binary sensor-related configuration options. required: false @@ -88,11 +113,15 @@ sensors: description: The approximate exposure time for skin type VI. {% endconfiguration %} -The approximate number of minutes of a particular skin type can be exposed to the sun before burning/tanning starts is based on the [Fitzpatrick scale](https://en.wikipedia.org/wiki/Fitzpatrick_scale). +The approximate number of minutes of a particular skin type can be exposed to +the sun before burning/tanning starts is based on the +[Fitzpatrick scale](https://en.wikipedia.org/wiki/Fitzpatrick_scale). -## {% linkable_title Full example %} +## {% linkable_title Full Configuration Example %} -To configure additional functionality, add configuration options beneath a `binary_sensor` and/or `sensor` key within the `openuv` section of the `configuration.yaml` file as below: +To configure additional functionality, add configuration options beneath a +`binary_sensor` and/or `sensor` key within the `openuv` section of the +`configuration.yaml` file as below: ```yaml openuv: @@ -115,5 +144,49 @@ openuv: ```

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

+ +## {% linkable_title Services %} + +### {% linkable_title `openuv.update_data` %} + +Perform an on-demand update of OpenUV data. + +## {% linkable_title Examples of Updating Data %} + +One method to retrieve data every 30 minutes and still leave plenty of API key +usage is to only retrieve data during the daytime: + +```yaml +automation: + - alias: Update OpenUV every 30 minutes during the daytime + trigger: + platform: time_pattern + minutes: '/30' + condition: + condition: and + conditions: + - condition: sun + after: sunrise + - condition: sun + before: sunset + action: + service: openuv.update_data +``` + +Another method (useful when monitoring locations other than the HASS latitude +and longitude, in locations where there is a large amount of sunlight per day, +etc.) might be to simply query the API less often: + +```yaml +automation: + - alias: Update OpenUV every hour (24 of 50 calls per day) + trigger: + platform: time_pattern + minutes: '/60' + action: + service: openuv.update_data +``` diff --git a/source/_components/owlet.markdown b/source/_components/owlet.markdown new file mode 100644 index 000000000000..b2f4dd3d4f83 --- /dev/null +++ b/source/_components/owlet.markdown @@ -0,0 +1,61 @@ +--- +layout: page +title: "Owlet" +description: "Instructions on how to integrate Owlet baby monitor into Home Assistant." +date: 2019-01-19 +sidebar: true +comments: false +sharing: true +footer: true +logo: owlet.svg +ha_category: + - Health + - Binary Sensor + - Sensor +ha_release: "0.89" +ha_iot_class: "Cloud Polling" +--- + +[Owlet Care](https://owletcare.com/) baby monitors check your baby's oxygen level and heart rate while sleeping. + +Configuring this component will enable tracking of heart rate, oxygen level, motion and base station connection status. Battery status is available as an attribute on oxygen and heart rate sensors. + +This component enables the following platforms automatically: + +#### {% linkable_title Binary Sensors %} + +- Base Station Status +- Motion + +#### {% linkable_title Sensors %} + +- Heart rate +- Oxygen level + +### {% linkable_title Configuration %} + +```yaml +# Example configuration.yaml entry +owlet: + username: OWLET_USER + password: OWLET_PASSWORD +``` + +{% configuration %} +username: + description: Your Owlet account user ID. + required: true + type: string +password: + description: Your Owlet account password. + required: true + type: string +name: + description: Custom name for your Owlet device. + required: false + type: string +{% endconfiguration %} + +

+The intended purpose of this component is to enable data logging and automations such as battery status updates and charging reminders. This component should not replace the Owlet app nor should it be used for life-critical notifications. +

diff --git a/source/_components/owntracks.markdown b/source/_components/owntracks.markdown index bd4cc4cae546..7d792c7f2bfc 100644 --- a/source/_components/owntracks.markdown +++ b/source/_components/owntracks.markdown @@ -20,6 +20,22 @@ OwnTracks is a free and open source application for iOS and Android that allow y By default the integration will listen for incoming messages from OwnTracks via HTTP. It will also listen for MQTT messages if Home Assistant is configured to use MQTT. +
+ +
+ +### {% linkable_title Configuring the component %} + +1. Open the Home Assistant frontend +1. Open Settings -> integrations +1. If you see an Owntracks component under 'Configured', delete it. + - Click on it. + - Click on the trashcan icon in the upper right corner. +1. Now, look for Owntracks in 'Setup new integration' and click on CONFIGURE. +1. The login credentials and configuration for owntracks will be presented to you. + in a popup window. You will need these in the configuration for the app as mentioned below. +1. Save these credentials somewhere, as there is no way to get it back at a later point in time if it is lost, besides repeating step 1-5 + ### {% linkable_title Configuring the app - Android %} [Install the OwnTracks application for Android.](https://play.google.com/store/apps/details?id=org.owntracks.android) @@ -27,10 +43,14 @@ By default the integration will listen for incoming messages from OwnTracks via In the OwnTracks app, open sidebar and click on preferences, then on connection. Change the following settings: - Mode: Private HTTP - - Host: `` + - Host: `` - Identification: - - Username: `` - - Device ID: `` + - Username: + - Password: Can be left blank. + - Device ID: ` + - Tracker ID: Two character tracker ID. (can be left blank) + +Your tracker device will be known in home assistant as _. If you entered a Tracker ID the tid attribute will be set to that ID. ### {% linkable_title Configuring the app - iOS %} @@ -160,6 +180,6 @@ USERNAME_DEVICE_ID: mac: EA:AA:55:E7:C6:94 picture: https://www.home-assistant.io/images/favicon-192x192.png gravatar: test@example.com - track: yes - hide_if_away: no + track: true + hide_if_away: false ``` diff --git a/source/_components/person.markdown b/source/_components/person.markdown new file mode 100644 index 000000000000..ca118e5c1b74 --- /dev/null +++ b/source/_components/person.markdown @@ -0,0 +1,80 @@ +--- +layout: page +title: "Person" +description: "Instructions on how to setup people tracking within Home Assistant." +date: 2019-02-05 22:36 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: Presence Detection +ha_qa_scale: internal +ha_release: 0.88 +--- + +The person component allows to connect device tracker entities to one or more person entities. The state updates of a connected device trackers will set the state of the person. When multiple device tracers used, the state of berson will be determined next way: + +1. If there are sources presenting status 'home', than latest of this sources will be taken. +2. If there are sources of type 'gps', than latest of this sources will be taken. +3. Otherwise will be taken latest source with status 'not_home'. + +You can manage persons via the UI from the person page inside the configuration panel or via `YAML`. + +## {% linkable_title Configuring the `person` component via the Home Assistant configuration panel %} + +If you prefer to use the configuration panel to configure the `person` component simply add one line to your `configuration.yaml` file and restart Home Assistant. + +```yaml +person: +``` + +## {% linkable_title Configuring the `person` component via YAML %} + +If you prefer YAML, you can also configure your persons via `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +person: + - name: Ada + id: ada6789 + device_trackers: + - device_tracker.ada +``` + +{% configuration %} + id: + description: A unique id of the person. + required: true + type: string + name: + description: The name of the person. + required: true + type: string + user_id: + description: The user id of the Home Assistant user account for the person. + required: false + type: string + device_trackers: + description: A list of device tracker entity ids to track. These will represent the state of the person. + required: false + type: list, string +{% endconfiguration %} + + +An extended example would look like the following sample: + +```yaml +# Example configuration.yaml entry +person: + - name: Ada + id: ada6789 + device_trackers: + - device_tracker.ada + - name: Stacey + id: stacey12345 + user_id: 12345678912345678912345678912345 + device_trackers: + - device_tracker.stacey + - device_tracker.beacon +``` diff --git a/source/_components/plant.markdown b/source/_components/plant.markdown index 9c21905676ae..83aeab9f7f57 100644 --- a/source/_components/plant.markdown +++ b/source/_components/plant.markdown @@ -63,7 +63,7 @@ entity_id: description: Light exposure of the plant. Measured in Lux. Can have a min and max value set optionally. required: false type: string - mind_moisture: + min_moisture: description: Minimum moisture level before triggering a problem. required: false default: 20 diff --git a/source/_components/plum_lightpad.markdown b/source/_components/plum_lightpad.markdown new file mode 100644 index 000000000000..04f0865ef907 --- /dev/null +++ b/source/_components/plum_lightpad.markdown @@ -0,0 +1,49 @@ +--- +layout: page +title: "Plum Lightpad" +description: "Instructions on setting up Plum Lightpads within Home Assistant." +date: 2018-10-15 17:58 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Switch +ha_iot_class: "Local Push" +featured: false +logo: plum.png +ha_release: 0.85 +redirect_from: + - /components/binary_sensor.plum_lightpad/ + - /components/light.plum_lightpad/ + - /components/sensor.plum_lightpad/ +--- + +Configurable/Dimmable WiFi Lightswitch +- Cloud registered, Local API communication (both RESTful and TCP pushed events) +- Motion Sensor +- Energy Meter +- RGB Glow Ring +- Wifi & Bluetooth connectivity +- Phone Apps for iOS & Android + +## {% linkable_title Configuration %} + +To enable Plum Lightpad support, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +plum_lightpad: + username: YOUR_CLOUD_USERNAME + password: YOUR_CLOUD_PASSWORD +``` + +{% configuration %} +username: + required: true + description: Your Plum Cloud username. + type: string +password: + required: true + description: Your Plum Cloud password. + type: string +{% endconfiguration %} diff --git a/source/_components/point.markdown b/source/_components/point.markdown index 8186890c902b..4cd792a0f1bd 100644 --- a/source/_components/point.markdown +++ b/source/_components/point.markdown @@ -8,16 +8,30 @@ comments: false sharing: true footer: true logo: minut.svg -ha_category: Hub -featured: true +ha_category: + - Hub + - Alarm + - Binary Sensor + - Sensor +featured: false ha_release: "0.83" +ha_config_flow: true ha_iot_class: "Cloud Polling" -ha_qa_scale: silver +ha_qa_scale: gold +redirect_from: + - /components/binary_sensor.point/ + - /components/sensor.point/ --- -The Point component is the main component to integrate the [Minut Point](https://minut.se/). To connect Point, you will have to [sign up for a developer account](https://minut.com/community/developers/) and get a `client_id` and `client_secret` using the `callback url` as `base_url` + `/api/minut` eg. `http://localhost:8123/api/minut`. The `client_id` and `client_secret` should be used as below. +The Point hub enables integration with the [Minut Point](https://minut.com/). To connect with Point, you will have to [sign up for a developer account](https://minut.com/community/developers/) and get a `client_id` and `client_secret` with the `callback url` configured as your Home Assistant `base_url` + `/api/minut`, e.g. `http://localhost:8123/api/minut`. The `client_id` and `client_secret` should be used as below. -Once Home Assistant is started, a configurator will pop up asking you to Authenticate your Point account via a link when you follow the link and have clicked on **Accept** you will be redirected to the `callback url` and the Point integration will be automatically configured and you can go back to the original dialog and press **Submit**. +Once Home Assistant is started, a configurator will pop up asking you to Authenticate your Point account via a link. When you follow the link and click on **Accept** you will be redirected to the `callback url` and the Point integration will be automatically configured and you can go back to the original dialog and press **Submit**. + +There is currently support for the following device types within Home Assistant: + +- [Alarm](#alarm) +- [Binary Sensor](#binary-sensor) +- [Sensor](#sensor) ### {% linkable_title Configuration %} @@ -39,7 +53,95 @@ client_secret: type: string {% endconfiguration %} +# {% linkable_title Device types %} + +The integration supports the following device types within Home Assistant: + - [Alarm](#alarm) + - [Binary Sensor](#binary-sensor) + - [Sensor](#sensor) +

-The Point is just active occasionally so the sensors are only updated every hour or so. -The events sent from the Point is sent as a webhook back to Home Assistant with `event_type` as `point_webhook_received`, please consider the documentation for the [IFTT](https://www.home-assistant.io/components/ifttt/) component on how to write automations for webhooks. +The Point is just active occasionally so the [Sensors](#sensor) are only updated every hour or so. The [Binary Sensors](#binary-sensor) are however updated via [Cloud Push](https://www.home-assistant.io/blog/2016/02/12/classifying-the-internet-of-things/#cloud-pushing-new-state), making the changes close to instant. +

+ +## {% linkable_title Alarm %} + +Each home configured in the Point mobile application will show up as a separate alarm control panel. The panels allow **arming** and **disarming** of the Point home alarm system. + +

+The Point only supports a Arm/Disarm action, so there is no difference between `Arm Home` and `Arm Away`. +

+ +## {% linkable_title Binary Sensor %} + +Each Point exposes the following binary sensors: + +- **battery**: `On` means low, `Off` means normal +- **button_press**: `On` means the button was pressed, `Off` means normal +- **cold**: `On` means cold, `Off` means normal +- **connectivity**: `On` means connected, `Off` means disconnected +- **dry**: `On` means too dry, `Off` means normal +- **heat**: `On` means hot, `Off` means normal +- **light**: `On` means light detected, `Off` means no light +- **moisture**: `On` means moisture detected (wet), `Off` means no moisture (dry) +- **motion**: `On` means motion detected, `Off` means no motion (clear) +- **sound**: `On` means sound detected, `Off` means no sound (clear) +- **tamper**: `On` means the point was removed or attached, `Off` means normal + +

+The binary sensors **battery**, **button_press** and **tamper** are switched `On` for a breif moment and are then switched back to `Off`.

+ +### {% linkable_title Automation example %} + +The following example show how to implement an automation for the **button_press** binary sensor. + +{% raw %} +```yaml +# Example configuration.yaml Automation entry +automation: + alias: Point button press + trigger: + - platform: state + entity_id: binary_sensor.point_button_press # Change this accordingly + to: 'on' + action: + - service: persistent_notification.create + data: + title: Point button press + message: Point button was pressed. +``` +{% endraw %} + +### {% linkable_title Webhook events %} + +The events shown as [binary sensors](#binary-sensor) are sent to Home Assistant as webhooks with the `event_type` set to `point_webhook_received`. Below is an example of how to use such a webhook do note the `trigger.event.data.event.device_id` which translates to the id of the Point device that sent the event. + +{% raw %} +```yaml +# Example configuration.yaml Automation entry +automation: + alias: Point button press (webhook) + trigger: + - platform: event + event_type: point_webhook_received + event_data: {} + condition: + condition: template + value_template: "{{ trigger.event.data.event.type == 'short_button_press' }}" + action: + - service: persistent_notification.create + data_template: + title: Point button press (webhook) + message: "Button press on Point {{ trigger.event.data.event.device_id }}" +``` +{% endraw %} + +## {% linkable_title Sensor %} + +Each Point exposes the following sensors: + +- **temperature**: Temperature in °C. +- **humidity**: Percentage of humidity in the air. +- **pressure**: Pressure in hPa. +- **sound_level**: Sound level in dBA diff --git a/source/_components/proximity.markdown b/source/_components/proximity.markdown index b499efbd6e5b..1c2cc0563cce 100644 --- a/source/_components/proximity.markdown +++ b/source/_components/proximity.markdown @@ -33,6 +33,11 @@ The Proximity entity which is created has the following values: - 'unknown' - 'stationary' - `dist_to_zone`: Distance from the monitored zone (in km) +- `unit_of_measurement`: Measurement of distance. Values are: + - 'km' + - 'm' + - 'mi' + - 'ft' To enable this component in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/qwikswitch.markdown b/source/_components/qwikswitch.markdown index b176681d03e1..fc79c19274e2 100644 --- a/source/_components/qwikswitch.markdown +++ b/source/_components/qwikswitch.markdown @@ -8,13 +8,30 @@ comments: false sharing: true footer: true logo: qwikswitch.png -ha_category: Hub +ha_category: + - Hub + - Binary Sensor + - Light + - Sensor + - Switch featured: false ha_release: "0.20" +redirect_from: + - /components/binary_sensor.qwikswitch/ + - /components/light.qwikswitch/ + - /components/sensor.qwikswitch/ + - /components/switch.qwikswitch/ --- The `qwikswitch` component is the main component to integrate various [QwikSwitch](http://www.qwikswitch.co.za/) devices with Home Assistant. The integration requires the QSUSB Modem device and connects to the QS Mobile application. +There is currently support for the following device types within Home Assistant: + +- Binary Sensor +- Light +- Sensor +- Switch + The `qwikswitch` component discovers all devices from QS Mobile. Currently, Relays and LED dimmers are discovered in Home Assistant. Relay devices are [lights](/components/light.qwikswitch/) by default, and can be configured as [switches](/components/switch.qwikswitch/). {% linkable_title Configuration %} @@ -26,7 +43,7 @@ qwikswitch: ``` {% configuration %} -url: +url: description: The URL including the port of your QwikSwitch hub. required: true type: string @@ -45,14 +62,14 @@ switches: required: false type: list sensors: - description: A dictionary of sensors. + description: A dictionary of sensors. required: false type: list keys: name: description: The sensor name from which the entity_id will be derived. required: true - id: + id: description: A QS_Id required: true type: string @@ -64,7 +81,7 @@ sensors: - qwikcord (Channel 1 = CTavg, Channel 2 = CTsum) required: true type: string - channel: + channel: description: The channel of interest. Refer to type above. required: false default: 1 @@ -75,7 +92,7 @@ sensors: default: false type: string class: - description: The [class](https://www.home-assistant.io/components/binary_sensor) or binary_sensor. Only applicable to binary_sensors. + description: The [class](components/binary_sensor) or binary_sensor. Only applicable to binary_sensors. required: false default: door type: string @@ -98,6 +115,7 @@ automation: The full packet from the QSUSB API will be passed as `data` By default events will be fired if the value in the command (cmd) field of the listen packet equals: + - `TOGGLE` - Normal QwikSwitch Transmitter button - `SCENE EXE` - QwikSwitch Scene Transmitter buttons - `LEVEL` - QwikSwitch OFF Transmitter buttons @@ -108,7 +126,7 @@ On some QS Mobile servers button events are only generated for switches added to ### {% linkable_title Qwikswitch Sensors %} -The sensor configuration is a list of sensors. Depending on the type of sensor, it will be a sensor or binary_sensor. +The sensor configuration is a list of sensors. Depending on the type of sensor, it will be a sensor or binary_sensor. Example sensor configuration: @@ -128,3 +146,9 @@ qwikswitch: channel: 2 type: imod ``` + +### {% linkable_title Switch %} + +The `qwikswitch` platform allows you to control your [QwikSwitch](http://www.qwikswitch.co.za/) relays as switches from within Home Assistant. + +If the device name in the QS Mobile application ends with `Switch` it will be created as a switch, otherwise as a light. \ No newline at end of file diff --git a/source/_components/rachio.markdown b/source/_components/rachio.markdown index 809d801be9d5..55b7cfc1239c 100644 --- a/source/_components/rachio.markdown +++ b/source/_components/rachio.markdown @@ -8,19 +8,32 @@ comments: false sharing: true footer: true logo: rachio.png -ha_category: Irrigation +ha_category: + - Irrigation + - Binary Sensor + - Switch ha_iot_class: "Cloud Push" ha_release: 0.73 +redirect_from: + - /components/binary_sensor.rachio/ + - /components/switch.rachio/ --- The `rachio` platform allows you to control your [Rachio irrigation system](http://rachio.com/). +There is currently support for the following device types within Home Assistant: + +- **Binary Sensor** - Allows you to view the status of your [Rachio irrigation system](http://rachio.com/). +- [**Switch**](#switch) + +They will be automatically added if the Rachio component component is loaded. + ## {% linkable_title Getting your Rachio API Key %} 1. Log in at [https://app.rach.io/](https://app.rach.io/). -1. Click the "Account Settings" menu item at the bottom of the left sidebar -1. Click "Get API Key" -1. Copy the API key from the dialog that opens. +2. Click the "Account Settings" menu item at the bottom of the left sidebar +3. Click "Get API Key" +4. Copy the API key from the dialog that opens. ## {% linkable_title Configuration %} @@ -53,8 +66,6 @@ manual_run_mins: Set `manual_run_mins` to a high maximum failsafe value when using scripts to control zones. If something goes wrong with your script, Home Assistant, or you hit the Rachio API rate limit of 1700 calls per day, the controller will still turn off the zone after this amount of time.

-Once configured, [Rachio Binary Sensor](/components/binary_sensor.rachio/) and [Rachio Switch](/components/switch.rachio/) platforms will be automatically loaded. - ### {% linkable_title iFrame %} If you would like to see and control more detailed zone information, create an [iFrame](/components/panel_iframe/) that renders the Rachio web app. @@ -66,3 +77,40 @@ panel_iframe: url: "https://app.rach.io" icon: mdi:water-pump ``` + +## {% linkable_title Switch %} + +The `rachio` switch platform allows you to toggle zones connected to your [Rachio irrigation system](http://rachio.com/) on and off. + +Once configured, a switch will be added for every zone that is enabled on every controller in the account provided, as well as a switch to toggle each controller's standby mode. + +## {% linkable_title Examples %} + +In this section, you find some real-life examples of how to use this switch. + +### {% linkable_title `groups.yaml` example %} + +```yaml +irrigation: + name: Irrigation + icon: mdi:water-pump + view: true + entities: + - group.zones_front + - group.zones_back + - switch.side_yard + +zones_front: + name: Front Yard + view: false + entities: + - switch.front_bushes + - switch.front_yard + +zones_back: + name: Back Yard + view: false + entities: + - switch.back_garden + - switch.back_porch +``` \ No newline at end of file diff --git a/source/_components/rainmachine.markdown b/source/_components/rainmachine.markdown index 8745c5236824..f01419dcec63 100644 --- a/source/_components/rainmachine.markdown +++ b/source/_components/rainmachine.markdown @@ -8,18 +8,30 @@ comments: false sharing: true footer: true logo: rainmachine.png -ha_category: Irrigation +ha_category: + - Irrigation + - Binary Sensor + - Sensor + - Switch ha_release: 0.69 ha_iot_class: "Local Polling" +redirect_from: + - /components/binary_sensor.rainmachine/ + - /components/sensor.rainmachine/ + - /components/switch.rainmachine/ --- -The `rainmachine` component is the main component to integrate all platforms -related to [RainMachine smart Wi-Fi sprinkler controllers](http://www.rainmachine.com/). +The `rainmachine` component is the main component to integrate all platforms related to [RainMachine smart Wi-Fi sprinkler controllers](http://www.rainmachine.com/). + +There is currently support for the following device types within Home Assistant: + +- Binary Sensor +- Sensor +- [Switch](#switch) ## {% linkable_title Base Configuration %} -To connect to your RainMachine device, add the following to your -`configuration.yaml` file: +To connect to your RainMachine device, add the following to your `configuration.yaml` file: ```yaml rainmachine: @@ -28,9 +40,7 @@ rainmachine: password: YOUR_PASSWORD ``` -To configure additional functionality, add configuration options beneath -a `binary_sensor`, `sensor`, and/or `switches` key within the `rainmachine` -sections of `configuration.yaml` as below: +To configure additional functionality, add configuration options beneath a `binary_sensor`, `sensor`, and/or `switches` key within the `rainmachine` sections of `configuration.yaml` as below: ```yaml rainmachine: @@ -140,3 +150,15 @@ Stop a RainMachine zone. |---------------------------|----------|----------------------| | `zone_id` | no | The zone to stop | +## {% linkable_title Switch %} + +The `rainmachine` switch platform allows you to control programs and zones within a [RainMachine smart Wi-Fi sprinkler controller](http://www.rainmachine.com/). + +### {% linkable_title Controlling Your Device %} + +After Home Assistant loads, new switches will be added for every enabled program and zone. These work as expected: + +- Program On/Off: starts/stops a program +- Zone On/Off: starts/stops a zone (using the `zone_run_time` parameter to determine how long to run for) + +Programs and zones are linked. While a program is running, you will see both the program and zone switches turned on; turning either one off will turn the other one off (just like in the web app). \ No newline at end of file diff --git a/source/_components/raspihats.markdown b/source/_components/raspihats.markdown index fbe53d3d90fe..08b9a5564204 100644 --- a/source/_components/raspihats.markdown +++ b/source/_components/raspihats.markdown @@ -8,9 +8,231 @@ comments: false sharing: true footer: true logo: raspihats.png -ha_category: DIY +ha_category: + - DIY + - Binary Sensor + - Switch ha_release: 0.45 ha_iot_class: "Local Push" +redirect_from: + - /components/binary_sensor.raspihats/ + - /components/switch.raspihats/ --- -The `raspihats` component is the base for all related Raspihats platforms in Home Assistant. There is no setup needed for the component itself, for the platforms please check their corresponding pages. +The `raspihats` component is the base for all related Raspihats platforms in Home Assistant. There is no setup needed for the component itself. + +## {% linkable_title Binary Sensor %} + +The `raspihats` binary sensor platform allows you to read sensor values ​​using the digital inputs of the [raspihats](http://www.raspihats.com/) boards. + +## {% linkable_title Configuration %} + +To use your `raspihats` boards in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: raspihats + i2c_hats: + - board: DI6acDQ6rly + address: 0x60 + channels: + - index: 0 + name: PIR Office + invert_logic: true + device_class: motion + - index: 1 + name: PIR Bedroom +``` + +{% 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 %} + +Enable I2c interface with the Raspberry Pi configuration utility: + +```bash +# pi user environment: Enable i2c interface +$ sudo raspi-config +``` + +Select `Interfacing options->I2C` choose `` and hit `Enter`, then go to `Finish`. + +Install dependencies for use the `smbus-cffi` module and enable your _homeassistant_ user to join the _i2c_ group: + +```bash +# pi user environment: Install i2c dependencies and utilities +$ sudo apt-get install build-essential libi2c-dev i2c-tools python-dev libffi-dev + +# pi user environment: Add homeassistant user to the i2c group +$ sudo usermod -a -G i2c homeassistant +``` + +### {% linkable_title Check the i2c address of the sensor %} + +After installing `i2c-tools`, a new utility is available to scan the addresses of the connected sensors, so you can see the sensor address: + +```bash +$ /usr/sbin/i2cdetect -y 1 +``` + +It will output a table like this: + +```text + 0 1 2 3 4 5 6 7 8 9 a b c d e f +00: -- -- -- -- -- -- -- -- -- -- -- -- -- +10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +20: -- -- -- 23 -- -- -- -- -- -- -- -- -- -- -- -- +30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +40: 40 -- -- -- -- -- UU -- -- -- -- -- -- -- -- -- +50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +70: -- -- -- -- -- -- -- 77 +``` + +For more details about the `raspihats` add-on boards for Raspberry Pi, visit [raspihats.com](http://www.raspihats.com/). + +## {% linkable_title Switch %} + +The `raspihats` switch platform allows you to control the digital outputs of your [Raspihats](http://www.raspihats.com/) boards. + +## {% linkable_title Configuration %} + +To use your Raspihats boards in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: raspihats + i2c_hats: + - board: DI6acDQ6rly + address: 0x60 + channels: + - index: 0 + name: Fan Office + invert_logic: true + initial_state: true + - index: 1 + name: Light Office +``` + +{% configuration %} +i2c_hats: + description: An array of used I2C-HATs. + required: false + type: list + keys: + board: + description: The board name. + required: true + type: string + address: + description: The board I2C address as HEX value. + required: true + type: string + channels: + description: An array of used digital input channels. + required: true + type: list + keys: + index: + description: The digital input channel index. + required: true + type: integer + name: + description: The friendly name to use for the frontend. + required: true + type: string + invert_logic: + description: Inverts the input logic. + required: false + default: false + type: boolean + initial_state: + description: "The initial state, can be either `true` or `false`. `none` means no state is forced on the corresponding digital output when this switch is instantiated." + required: false + default: None + type: boolean +{% endconfiguration %} + +## {% linkable_title Directions for installing smbus support on Raspberry Pi %} + +Enable I2c interface with the Raspberry Pi configuration utility: + +```bash +# pi user environment: Enable i2c interface +$ sudo raspi-config +``` + +Select `Interfacing options->I2C` choose `` and hit `Enter`, then go to `Finish`. + +Install dependencies for use the `smbus-cffi` module and enable your _homeassistant_ user to join the _i2c_ group: + +```bash +# pi user environment: Install i2c dependencies and utilities +$ sudo apt-get install build-essential libi2c-dev i2c-tools python-dev libffi-dev + +# pi user environment: Add homeassistant user to the i2c group +$ sudo usermod -a -G i2c homeassistant +``` + +## {% linkable_title Check the i2c address of the sensor %} + +After installing `i2c-tools`, a new utility is available to scan the addresses of the connected sensors, so you can see the sensor address: + +```bash +/usr/sbin/i2cdetect -y 1 +``` + +It will output a table like this: + +```text + 0 1 2 3 4 5 6 7 8 9 a b c d e f +00: -- -- -- -- -- -- -- -- -- -- -- -- -- +10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +20: -- -- -- 23 -- -- -- -- -- -- -- -- -- -- -- -- +30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +40: 40 -- -- -- -- -- UU -- -- -- -- -- -- -- -- -- +50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +70: -- -- -- -- -- -- -- 77 +``` + +For more details about the Raspihats add-on boards for Raspberry Pi, visit [raspihats.com](http://www.raspihats.com/). \ No newline at end of file diff --git a/source/_components/recorder.markdown b/source/_components/recorder.markdown index 9d888eacd325..72d308c00bd2 100644 --- a/source/_components/recorder.markdown +++ b/source/_components/recorder.markdown @@ -142,15 +142,15 @@ Purging does not necessarily remove all entries before a given date. For example | SQLite | `sqlite:////PATH/TO/DB_NAME` | | MariaDB | `mysql+pymysql://SERVER_IP/DB_NAME?charset=utf8` | | MariaDB         | `mysql+pymysql://user:password@SERVER_IP/DB_NAME?charset=utf8` | -| MySQL | `mysql+pymysql://SERVER_IP/DB_NAME?charset=utf8` | -| MySQL | `mysql+pymysql://user:password@SERVER_IP/DB_NAME?charset=utf8` | +| MySQL | `mysql://SERVER_IP/DB_NAME?charset=utf8` | +| MySQL | `mysql://user:password@SERVER_IP/DB_NAME?charset=utf8` | | PostgreSQL | `postgresql://SERVER_IP/DB_NAME` | | PostgreSQL | `postgresql://user:password@SERVER_IP/DB_NAME` | | PostgreSQL (Socket) | `postgresql://@/DB_NAME` | | MS SQL Server | `mssql+pymssql://user:password@SERVER_IP/DB_NAME?charset=utf8` |

-If you use MariaDB 10 you need to add port 3307 (or another port depending on which port is used by, for example: your hosting provider.) to the SERVER_IP, e.g., `mysql://user:password@SERVER_IP:3307/DB_NAME?charset=utf8`. +Some installations of MariaDB/MySQL may require an ALTERNATE_PORT (3rd-party hosting providers or parallel installations) to be added to the SERVER_IP, e.g., `mysql://user:password@SERVER_IP:ALTERNATE_PORT/DB_NAME?charset=utf8`.

diff --git a/source/_components/remote.apple_tv.markdown b/source/_components/remote.apple_tv.markdown deleted file mode 100644 index 7fe3bc7f9af3..000000000000 --- a/source/_components/remote.apple_tv.markdown +++ /dev/null @@ -1,40 +0,0 @@ ---- -layout: page -title: "Apple TV Remote" -description: "Instructions on how to integrate Apple TV remote into Home Assistant." -date: 2017-06-26 20:50 -sidebar: true -comments: false -sharing: true -footer: true -logo: apple.png -ha_category: Remote -ha_iot_class: "Local Push" -ha_release: 0.49 ---- - - -The `apple_tv` remote platform allows you to send remote control buttons to an Apple TV. It is automatically setup when an Apple TV is configured, please see [Apple TV Component](/components/apple_tv/) for configuration details. - -At the moment, the following buttons are supported: - -- up -- down -- left -- right -- menu -- top_menu -- select - -A typical service call for press several buttons looks like this. - -```yaml -service: remote.send_command -data: - entity_id: remote.apple_tv - command: - - left - - left - - menu - - select -``` diff --git a/source/_components/remote.itach.markdown b/source/_components/remote.itach.markdown index fcdbc308265f..35fcf4e200dc 100644 --- a/source/_components/remote.itach.markdown +++ b/source/_components/remote.itach.markdown @@ -23,7 +23,6 @@ To use your iTach remote in your installation, you will need to know the IR comm # Example configuration.yaml entry remote: - platform: itach - name: Living Room host: itach023fdc devices: - name: TV @@ -36,10 +35,6 @@ remote: ``` {% configuration %} -name: - description: The iTach's name to display in the front end. - required: false - type: string host: description: The iTach's IP address. required: true diff --git a/source/_components/remote.kira.markdown b/source/_components/remote.kira.markdown deleted file mode 100644 index 376d29837ae6..000000000000 --- a/source/_components/remote.kira.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Kira Remote" -description: "Instructions on how to integrate Kira modules into Home Assistant." -date: 2017-05-07 17:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: keene.png -ha_category: Remote -ha_iot_class: "Assumed State" -ha_release: 0.45 ---- - -The `kira` platform allows you to send IR commands via [Kira](https://www.keene.co.uk/keene-ir-anywhere-single-worldwide.html) modules from within Home Assistant. - -For configuration information see the [Kira component](/components/kira/) documentation. diff --git a/source/_components/remote.xiaomi_miio.markdown b/source/_components/remote.xiaomi_miio.markdown index 4d018dd37528..af8fde86c802 100644 --- a/source/_components/remote.xiaomi_miio.markdown +++ b/source/_components/remote.xiaomi_miio.markdown @@ -54,7 +54,7 @@ hidden: description: Hide the entity from UI. There is currently no reason to show the entity in UI as turning it off or on does nothing. required: false type: boolean - default: True + default: true commands: required: false type: map diff --git a/source/_components/rest_command.markdown b/source/_components/rest_command.markdown index 6cb1213d5a6a..dd2c1619e7d5 100644 --- a/source/_components/rest_command.markdown +++ b/source/_components/rest_command.markdown @@ -30,7 +30,7 @@ rest_command: {% configuration %} service_name: description: The name used to expose the service. E.g., in the above example, it would be 'rest_command.service_name'. - required: true + required: true type: map keys: url: @@ -59,7 +59,7 @@ service_name: required: false type: string timeout: - description: Timeout for requests in seconds. + description: Timeout for requests in seconds. required: false type: string defaut: 10 @@ -67,6 +67,11 @@ service_name: description: Content type for the request. required: false type: string + verify_ssl: + description: Verify the SSL certificate of the endpoint. + required: false + type: boolean + default: true {% endconfiguration %} ## {% linkable_title Examples %} @@ -80,11 +85,12 @@ rest_command: my_request: url: https://slack.com/api/users.profile.set method: POST - headers: + headers: authorization: !secret rest_headers_secret accept: 'application/json, text/html' payload: '{"profile":{"status_text": "{{ status }}","status_emoji": "{{ emoji }}"}}' content_type: 'application/json; charset=utf-8' + verify_ssl: true ``` {% endraw %} diff --git a/source/_components/rflink.markdown b/source/_components/rflink.markdown index ac0451e65236..7be075317022 100644 --- a/source/_components/rflink.markdown +++ b/source/_components/rflink.markdown @@ -68,7 +68,7 @@ reconnect_interval: # Example configuration.yaml entry rflink: port: /dev/serial/by-id/usb-id01234 - wait_for_ack: False + wait_for_ack: false ignore_devices: - newkaku_000001_01 - digitech_* @@ -131,7 +131,7 @@ For example: # Example configuration.yaml entry rflink: port: /dev/serial/by-id/usb-id01234 - wait_for_ack: False + wait_for_ack: false ignore_devices: - newkaku_000001_01 - digitech_* diff --git a/source/_components/ring.markdown b/source/_components/ring.markdown index e600e3e140ad..cf3142803b4c 100644 --- a/source/_components/ring.markdown +++ b/source/_components/ring.markdown @@ -8,12 +8,27 @@ comments: false sharing: true footer: true logo: ring.png -ha_category: Doorbell +ha_category: + - Doorbell + - Binary Sensor + - Camera + - Sensor ha_release: 0.42 +ha_iot_class: "Cloud Polling" +redirect_from: + - /components/binary_sensor.ring/ + - /components/camera.ring/ + - /components/sensor.ring/ --- The `ring` implementation allows you to integrate your [Ring.com](https://ring.com/) devices in Home Assistant. +There is currently support for the following device types within Home Assistant: + +- [Binary Sensor](#binary-sensor) +- [Camera](#camera) - downloading and playing Ring video will require a Ring Protect plan. +- [Sensor](#sensor) + Currently only doorbells are supported by this sensor. ## {% linkable_title Configuration %} @@ -38,4 +53,136 @@ password: type: string {% endconfiguration %} -Finish its configuration by visiting the [Ring binary sensor](/components/binary_sensor.ring/) or [Ring sensor](/components/sensor.ring/) documentation. +## {% linkable_title Binary Sensor %} + +Once you have enabled the [Ring component](/components/ring), you can start using a binary sensor. Add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: ring +``` + +{% configuration %} +monitored_conditions: + description: Conditions to display in the frontend. The following conditions can be monitored. If not specified, all conditions below will be enabled. + required: false + type: list + keys: + ding: + description: Return a boolean value when the doorbell button was pressed. + motion: + description: Return a boolean value when a movement was detected by the Ring doorbell. +{% endconfiguration %} + +Currently it supports doorbell, external chimes and stickup cameras. + +## {% linkable_title Camera %} + +

+Please note that downloading and playing Ring video will require a Ring Protect plan. +

+ +Once you have enabled the [Ring component](/components/ring), you can start using the camera platform. Add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +camera: + - platform: ring +``` + +{% configuration %} +ffmpeg_arguments: + description: Extra options to pass to ffmpeg, e.g., image quality or video filter options. + required: false + type: string +scan_interval: + description: How frequently to query for new video in seconds. + required: false + type: integer + default: 90 +{% endconfiguration %} + +**Note:** To be able to playback the last capture, it is required to install the `ffmpeg` component. Make sure to follow the steps mentioned at [FFMPEG](/components/ffmpeg/) documentation. + +Currently it supports doorbell and stickup cameras. + +## {% linkable_title Saving the videos captured by your Ring Door Bell %} + +You can save locally the latest video captured by your Ring Door Bell using the [downloader](/components/downloader) along with either an [automation](/components/automation) or [python_script](/components/python_script). First, enable the [downloader](/components/downloader) component in your configuration by adding the following to your `configuration.yaml`. + +```yaml +downloader: + download_dir: downloads +``` + +Then you can use the following `action` in your automation (this will save the video file under `/downloads/ring_/`): + +```yaml +action: + - service: downloader.download_file + data_template: + url: "{{ states.camera.front_door.attributes.video_url }}" + subdir: "{{states.camera.front_door.attributes.friendly_name}}" + filename: "{{states.camera.front_door.attributes.friendly_name}}" +``` + +If you want to use `python_script`, enable it your `configuration.yaml` file first: + +```yaml +python_script: +``` + +You can then use the following `python_script` to save the video file: + +```python +# obtain ring doorbell camera object +# replace the camera.front_door by your camera entity +ring_cam = hass.states.get('camera.front_door') + +subdir_name = 'ring_{}'.format(ring_cam.attributes.get('friendly_name')) + +# get video URL +data = { + 'url': ring_cam.attributes.get('video_url'), + 'subdir': subdir_name, + 'filename': ring_cam.attributes.get('friendly_name') +} + +# call downloader component to save the video +hass.services.call('downloader', 'download_file', data) +``` + +## {% linkable_title Sensor %} + +Once you have enabled the [Ring component](/components/ring), you can start using the sensor platform. Add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: ring +``` + +{% configuration %} +monitored_conditions: + type: list + required: false + description: Conditions to display in the frontend. The following conditions can be monitored. If not specified, all conditions below will be enabled. + keys: + battery: + description: Return the battery level from device. + last_activity: + description: Return the timestamp from the last event captured (ding/motion/on demand) by the Ring doorbell camera. + last_ding: + description: Return the timestamp from the last time the Ring doorbell button was pressed. + last_motion: + description: Return the timestamp from the last motion event captured by the Ring doorbell camera. + volume: + description: Return the volume level from the device. + wifi_signal_category: + description: Return the WiFi signal level from the device. + wifi_signal_strength: + description: Return the WiFi signal strength (dBm) from the device. +{% endconfiguration %} + +Currently it supports doorbell, external chimes and stickup cameras. diff --git a/source/_components/roku.markdown b/source/_components/roku.markdown new file mode 100644 index 000000000000..906111b3b4dc --- /dev/null +++ b/source/_components/roku.markdown @@ -0,0 +1,96 @@ +--- +layout: page +title: "Roku" +description: "Instructions how to integrate Roku devices into Home Assistant." +date: 2018-10-17 20:47 +sidebar: true +comments: false +sharing: true +footer: true +logo: roku.png +ha_category: + - Hub + - Media Player + - Remote +ha_iot_class: "Local Polling" +ha_release: 0.86 +redirect_from: + - /components/remote.roku/ + - /components/media_player.roku/ +--- + +The [Roku](http://www.roku.com/) component allows integration of Roku, which will be automatically discovered if you enable the [discovery component](/components/discovery/). + +There is currently support for the following device types within Home Assistant: + +- Media Player +- Remote + +The `roku` component can also be forced to load by adding the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +roku: + - host: IP_ADDRESS +``` + +{% configuration %} +host: + description: Set the IP address of the Roku device. Use only if you don't want to autodiscover devices. + required: false + type: string +{% endconfiguration %} + +## {% linkable_title Services %} + +### {% linkable_title Service `roku_scan` %} + +Scans the local network for Rokus. All found devices are presented as a persistent notification. + +## {% linkable_title Remote %} + +The `roku` remote platform allows you to send remote control buttons to a Roku device. It is automatically set up when a Roku is configured. + +At the moment, the following buttons are supported: + +- back +- backspace +- channel_down +- channel_up +- down +- enter +- find_remote +- forward +- home +- info +- input_av1 +- input_hdmi1 +- input_hdmi2 +- input_hdmi3 +- input_hdmi4 +- input_tuner +- left +- literal +- play +- power +- replay +- reverse +- right +- search +- select +- up +- volume_down +- volume_mute +- volume_up + +A typical service call for pressing several buttons looks like this. + +```yaml +service: remote.send_command +data: + entity_id: remote.roku + command: + - left + - left + - select +``` \ No newline at end of file diff --git a/source/_components/rpi_gpio.markdown b/source/_components/rpi_gpio.markdown index 31a1befde2e4..e282d94a1666 100644 --- a/source/_components/rpi_gpio.markdown +++ b/source/_components/rpi_gpio.markdown @@ -8,10 +8,202 @@ comments: false sharing: true footer: true logo: raspberry-pi.png -ha_category: DIY +ha_category: + - DIY + - Binary Sensor + - Cover + - Switch ha_release: pre 0.7 ha_iot_class: "Local Push" +redirect_from: + - /components/binary_sensor.rpi_gpio/ + - /components/cover.rpi_gpio/ + - /components/switch.rpi_gpio/ --- The `rpi_gpio` component is the base for all related GPIO platforms in Home Assistant. There is no setup needed for the component itself, for the platforms please check their corresponding pages. +## {% linkable_title Binary Sensor %} + +The `rpi_gpio` binary sensor platform allows you to read sensor values of the GPIOs of your [Raspberry Pi](https://www.raspberrypi.org/). + +## {% linkable_title Configuration %} + +To use your Raspberry Pi's GPIO in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: rpi_gpio + ports: + 11: PIR Office + 12: PIR Bedroom +``` + +{% 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. + +## {% linkable_title Cover %} + +The `rpi_gpio` cover platform allows you to use a Raspberry Pi to control your cover such as Garage doors. + +It uses two pins on the Raspberry Pi. + +- The `state_pin` will detect if the cover is closed, and +- the `relay_pin` will trigger the cover to open or close. + +Although you do not need Andrews Hilliday's software controller when you run Home Assistant, he has written clear instructions on how to hook your garage door and sensors up to your Raspberry Pi, which can be found [here](https://github.com/andrewshilliday/garage-door-controller#hardware-setup). + +## {% linkable_title Configuration %} + +To enable Raspberry Pi Covers in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +cover: + - platform: rpi_gpio + covers: + - relay_pin: 10 + state_pin: 11 +``` + +{% 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 %} + +## {% linkable_title Full example %} + +```yaml +# Example configuration.yaml entry +cover: + - platform: rpi_gpio + relay_time: 0.2 + invert_relay: false + state_pull_mode: 'UP' + invert_state: true + covers: + - relay_pin: 10 + state_pin: 11 + - relay_pin: 12 + state_pin: 13 + name: 'Right door' +``` + +## {% linkable_title Remote Raspberry Pi Cover %} + +If you don't have Home Assistant running on your Raspberry Pi and you want to use it as a remote cover instead, there is a project called [GarageQTPi](https://github.com/Jerrkawz/GarageQTPi) that will work remotely with the [MQTT Cover Component](/components/cover.mqtt/). Follow the Github instructions to install and configure GarageQTPi and once configured follow the Home Assistant instructions to configure the MQTT Cover. + +## {% linkable_title Switch %} + +The `rpi_gpio` switch platform allows you to control the GPIOs of your [Raspberry Pi](https://www.raspberrypi.org/). + +## {% linkable_title Configuration %} + +To use your Raspberry Pi's GPIO in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: rpi_gpio + ports: + 11: Fan Office + 12: Light Desk +``` + +{% 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. + +

+Note that a pin managed by HASS is expected to be exclusive to HASS. +

+ +A common question is what does Port refer to, this number is the actual GPIO #, not the pin #. +For example, if you have a relay connected to pin 11 its GPIO # is 17. + +```yaml +# Example configuration.yaml entry +switch: + - platform: rpi_gpio + ports: + 17: Speaker Relay +``` diff --git a/source/_components/rss_feed_template.markdown b/source/_components/rss_feed_template.markdown index 8272e1064761..4c8612ae2e10 100644 --- a/source/_components/rss_feed_template.markdown +++ b/source/_components/rss_feed_template.markdown @@ -23,7 +23,7 @@ rss_feed_template: # Accessible on /api/rss_template/garden # Example: https://localhost:8123/api/rss_template/garden garden: - requires_api_password: False + requires_api_password: false title: "Garden {% raw %}{{ as_timestamp(now())|timestamp_custom('%H:%M', True) }}{% endraw %}" items: - title: "Outside temperature" diff --git a/source/_components/sabnzbd.markdown b/source/_components/sabnzbd.markdown index 16e665b60021..2638b927826c 100644 --- a/source/_components/sabnzbd.markdown +++ b/source/_components/sabnzbd.markdown @@ -8,13 +8,16 @@ comments: false sharing: true footer: true logo: sabnzbd.png -ha_category: Downloading +ha_category: + - Downloading + - Sensor ha_release: 0.70 ha_iot_class: "Local Polling" +redirect_from: + - /components/sensor.sabnzbd/ --- -The `sabnzbd` component will allow you to monitor and control your downloads with [SABnzbd](https://sabnzbd.org) from -within Home Assistant and setup automations based on the information. +The `sabnzbd` component will allow you to monitor and control your downloads with [SABnzbd](https://sabnzbd.org) from within Home Assistant and setup automations based on the information. If SABnzbd is discovered on your network, you can enter your API Key in the Configurator. Press "CONFIGURE" to do it. @@ -24,7 +27,6 @@ If SABnzbd is discovered on your network, you can enter your API Key in the Conf This will create services for interacting with SABnzbd in scripts and automations, but no sensors will be created. - To configure SABnzbd, add the following to your `configuration.yaml` file: ```yaml @@ -66,18 +68,18 @@ ssl: Available sensors are: - * `current_status`: The current status of SABnzbd (Idle, Paused, etc.) - * `speed`: The current download speed - * `queue_size`: The total size of the download queue - * `queue_remaining`: The remaining size of the download queue - * `disk_size`: The total disk size at SABnzbd's download location - * `disk_free`: The available disk space at SABnzbd's download location - * `queue_count`: The number of items in the download queue - * `day_size`: GB downloaded today - * `week_size`: GB downloaded this week - * `month_size`: GB downloaded this month - * `total_size`: Total GB downloaded - +- `current_status`: The current status of SABnzbd (Idle, Paused, etc.) +- `speed`: The current download speed +- `queue_size`: The total size of the download queue +- `queue_remaining`: The remaining size of the download queue +- `disk_size`: The total disk size at SABnzbd's download location +- `disk_free`: The available disk space at SABnzbd's download location +- `queue_count`: The number of items in the download queue +- `day_size`: GB downloaded today +- `week_size`: GB downloaded this week +- `month_size`: GB downloaded this month +- `total_size`: Total GB downloaded + ## {% linkable_title Full examples %} ```yaml @@ -101,12 +103,14 @@ sabnzbd: - month_size - total_size ``` + This will attempt to access your SABnzbd instance at https://192.168.1.32:9090 and will create sensors named `sensor.sab_status`, `sensor.sab_speed`, etc. ## {% linkable_title Services %} ### {% linkable_title Media control services %} + Available services: `pause`, `resume`, `set_speed`. #### {% linkable_title Service `sabnzbd/set_speed` %} @@ -114,4 +118,3 @@ Available services: `pause`, `resume`, `set_speed`. | Service data attribute | Optional | Description | |------------------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `speed` | yes | Sets the download speed limit. If specified as a number with no units, will be interpreted as a percent. If units are provided (e.g., 500K) will be interpreted absolutely. Defaults to 100 | - diff --git a/source/_components/satel_integra.markdown b/source/_components/satel_integra.markdown index 6f555e7670c6..392c09928183 100644 --- a/source/_components/satel_integra.markdown +++ b/source/_components/satel_integra.markdown @@ -8,17 +8,23 @@ comments: false sharing: true footer: true logo: satel.jpg -ha_category: Hub +ha_category: + - Hub + - Alarm + - Binary Sensor ha_release: 0.54 ha_iot_class: "Local Push" +redirect_from: + - /components/alarm_control_panel.satel_integra/ + - /components/binary_sensor.satel_integra/ --- The `satel_integra` component will allow Home Assistant users who own a Satel Integra alarm panel to leverage their alarm system and its sensors to provide Home Assistant with information about their homes. Connectivity between Home Assistant and the alarm is accomplished through a ETHM extension module that must be installed in the alarm. Compatible with ETHM-1 Plus module with firmware version > 2.00 (version 2.04 confirmed). There is currently support for the following device types within Home Assistant: -- [Binary Sensor](/components/binary_sensor.satel_integra/): Reports on zone or output statuses -- [Alarm Control Panel](/components/alarm_control_panel.satel_integra/): Reports on alarm status, and can be used to arm/disarm the system +- Binary Sensor: Reports on zone or output statuses +- Alarm Control Panel: Reports on alarm status, and can be used to arm/disarm the system The module communicates via Satel's open TCP protocol published on their website. It subscribes for new events coming from alarm system and reacts to them immediately. @@ -26,11 +32,11 @@ The module communicates via Satel's open TCP protocol published on their website Please note that **ETHM-1 module is currently not supported**: it does not provide functionality used by this extension. At the moment only ETHM-1 Plus module is supported. That might change in the future, but no promisses are given. -The library currently doesn't support encrypted connection to your alarm, so you need **to turn off encryption for integration protocol**. In Polish: "koduj integracje" must be unchecked. You will find this setting in your DloadX program. +The library currently doesn't support encrypted connection to your alarm, so you need **to turn off encryption for integration protocol**. In Polish: "koduj integracje" must be unchecked. You will find this setting in your DloadX program. A list of all zone and output IDs can be acquired by running DloadX program and connecting to your alarm. -For more information on the available zone visualisation types, take a look at the [Binary Sensor](/components/binary_sensor.alarmdecoder/) documentation. Note: If no zones or outputs are specified, Home Assistant will not load any binary_sensor components." +For the Binary Sensor check the [type/class](/components/binary_sensor/) list for a possible visualization of your zones. Note: If no zones or outputs are specified, Home Assistant will not load any binary_sensor components." ## {% linkable_title Configuration %} @@ -93,10 +99,8 @@ outputs: type: string {% endconfiguration %} - ## {% linkable_title Full examples %} - ```yaml # Example configuration.yaml entry satel_integra: @@ -146,4 +150,3 @@ For example: data: entity_id: input_boolean.movement_detected ``` - diff --git a/source/_components/scene.deconz.markdown b/source/_components/scene.deconz.markdown deleted file mode 100644 index 9c5038c34852..000000000000 --- a/source/_components/scene.deconz.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "deCONZ Scenes" -description: "Instructions on how to integrate deCONZ scenes into Home Assistant." -date: 2017-11-19 20:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: deconz.jpeg -ha_category: Scene -ha_release: "0.61" -ha_iot_class: "Local Push" ---- - -See the [deCONZ main component](/components/deconz/) for configuration instructions. - -The `entity_id` name will be `scene.group_scene_name`, where `group` is which group the scene belongs to and the name of the scene, both group and name are defined in deCONZ. diff --git a/source/_components/scene.elkm1.markdown b/source/_components/scene.elkm1.markdown deleted file mode 100644 index 346e54be32a5..000000000000 --- a/source/_components/scene.elkm1.markdown +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: page -title: "Elk-M1 Scene" -description: "Instructions on how to integrate Elk-M1 tasks (macros)." -date: 2018-10-07 00:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: elkproducts.png -ha_release: 0.81 -ha_category: Scene -ha_iot_class: "Local Push" ---- - -The `elkm1` platform allows you to control your [Elk-M1](https://www.elkproducts.com/m1_controls.html). - -Elk-M1 tasks are represented as `scene` entities. - -

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

diff --git a/source/_components/scene.hunterdouglas_powerview.markdown b/source/_components/scene.hunterdouglas_powerview.markdown index a418c8f4ddd2..84674b2a10c6 100644 --- a/source/_components/scene.hunterdouglas_powerview.markdown +++ b/source/_components/scene.hunterdouglas_powerview.markdown @@ -25,7 +25,7 @@ scene: {% configuration %} address: - description: IP address of the PowerView Hub, eg. 192.168.1.10. + description: IP address of the PowerView Hub, e.g., 192.168.1.10. required: true type: string {% endconfiguration %} diff --git a/source/_components/scene.litejet.markdown b/source/_components/scene.litejet.markdown deleted file mode 100644 index 511c1cb6fa26..000000000000 --- a/source/_components/scene.litejet.markdown +++ /dev/null @@ -1,14 +0,0 @@ ---- -layout: page -title: "LiteJet Scenes" -description: "Instructions on how to setup LiteJet scenes within Home Assistant." -date: 2016-10-26 16:00 -sidebar: true -comments: false -sharing: true -footer: true -ha_category: Scene -ha_release: 0.32 ---- - -To get your LiteJet scenes working with Home Assistant, follow the instructions for the general [LiteJet component](/components/litejet/). diff --git a/source/_components/scene.lutron_caseta.markdown b/source/_components/scene.lutron_caseta.markdown deleted file mode 100644 index 7e07ed485e69..000000000000 --- a/source/_components/scene.lutron_caseta.markdown +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: page -title: "Lutron Caseta Scene" -description: "Instructions on how to setup Lutron Caseta Scenes within Home Assistant." -date: 2017-07-28 16:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: lutron.png -ha_category: Scene -ha_release: 0.49.2 -ha_iot_class: "Cloud Polling" ---- - -To get Lutron Caseta Scenes working with Home Assistant, follow the instructions for the general [Lutron Caseta component](/components/lutron_caseta/). - -The Lutron Caseta scene platform allows you to control your Smart Bridge Scenes that are created in the Lutron mobile app. - -After setup, scenes will appear in Home Assistant using an `entity_id` based on the name used in the Lutron mobile app. For example, a scene called 'Entertain' will appear in Home Assistant as `scene.entertain`. - -For more information on working with scenes in Home Assistant, see the [Scenes component](/components/scene/). - -Available services: `scene.turn_on`. diff --git a/source/_components/scene.markdown b/source/_components/scene.markdown index 78618af77519..508639982223 100644 --- a/source/_components/scene.markdown +++ b/source/_components/scene.markdown @@ -69,5 +69,5 @@ automation: ```

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

diff --git a/source/_components/scene.tahoma.markdown b/source/_components/scene.tahoma.markdown deleted file mode 100644 index b5cd1c429406..000000000000 --- a/source/_components/scene.tahoma.markdown +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: page -title: "Tahoma Scene" -description: "Instructions on how to integrate Tahoma scenes into Home Assistant." -date: 2018-02-18 12:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: tahoma.png -ha_category: Scene -ha_release: 0.64 ---- - -The `tahoma` scene platform lets you trigger scenes added to your Tahoma Box in Home Assistant. - -Scenes will be added automatically. Please refer to the [component](/components/tahoma/) configuration on how to setup Tahoma. diff --git a/source/_components/scene.tuya.markdown b/source/_components/scene.tuya.markdown deleted file mode 100644 index 70babb97885f..000000000000 --- a/source/_components/scene.tuya.markdown +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: page -title: "Tuya Scene" -description: "Instructions on how to setup the Tuya scene within Home Assistant." -date: 2018-07-20 09:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: tuya.png -ha_category: Scene -ha_release: 0.75 ---- - - -The `tuya` scene platform allows you to activate your [Tuya Smart](https://www.tuya.com) scenes. - -The platform supports scenes. - -The device state in frontend panel will not change immediately after you activate a scene. - -

-Full configuration details can be found on the main [Tuya component](/components/tuya/) page. -

\ No newline at end of file diff --git a/source/_components/scene.velux.markdown b/source/_components/scene.velux.markdown deleted file mode 100644 index e94928d889ac..000000000000 --- a/source/_components/scene.velux.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Velux Scene" -description: "Instructions on how to integrate Velux Scene with Home Assistant." -date: 2017-07-09 12:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: velux.png -ha_category: Scene -ha_release: 0.49 -ha_iot_class: "Local Polling" ---- - - -The `velux` scene platform allows you to control your [VELUX](http://www.velux.com/) windows. - -The requirement is that you have setup the [VELUX](/components/velux/) component. diff --git a/source/_components/scene.vera.markdown b/source/_components/scene.vera.markdown deleted file mode 100644 index 8cef7235eca3..000000000000 --- a/source/_components/scene.vera.markdown +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: page -title: "Vera Scene" -description: "Instructions on how to integrate Vera Scenes into Home Assistant." -date: 2017-11-20 20:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: vera.png -ha_category: Scene -ha_iot_class: "Local Push" -ha_release: "0.60" ---- - -The `vera` platform allows you to control your [Vera](http://getvera.com/) scenes from within Home Assistant. - -They will be automatically discovered if the `vera` component is loaded. - -For more configuration information see the [Vera component](/components/vera/) documentation. - diff --git a/source/_components/scene.wink.markdown b/source/_components/scene.wink.markdown deleted file mode 100644 index cf8e79cf4cc6..000000000000 --- a/source/_components/scene.wink.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Wink Scene" -description: "Instructions on how to setup the Wink scenes(shortcuts) within Home Assistant." -date: 2017-04-01 16:45 -sidebar: true -comments: false -sharing: true -footer: true -logo: wink.png -ha_category: Scene -ha_release: 0.41 -ha_iot_class: "Cloud Polling" ---- - - -The Wink scene platform allows you to control your [Wink](http://www.wink.com/) shortcuts. - -The requirement is that you have setup [Wink](/components/wink/). diff --git a/source/_components/script.markdown b/source/_components/script.markdown index 83dbb31c4f00..2df6e920d93f 100644 --- a/source/_components/script.markdown +++ b/source/_components/script.markdown @@ -27,8 +27,7 @@ script:          message: Current temperature is {% raw %}{{ states.sensor.temperature.state }}{% endraw %} ```

-Script names (e.g., `message_temperature` in the example above) are not allowed to contain dash (minus) characters, i.e. `-`. -The preferred way to separate words for better readability is to use underscore (`_`) characters. +Script names (e.g., `message_temperature` in the example above) are not allowed to contain capital letters, or dash (minus) characters, i.e. `-`. The preferred way to separate words for better readability is to use underscore (`_`) characters.

```yaml diff --git a/source/_components/scsgate.markdown b/source/_components/scsgate.markdown index 29cabe50ed09..e82fe3520248 100644 --- a/source/_components/scsgate.markdown +++ b/source/_components/scsgate.markdown @@ -8,13 +8,27 @@ comments: false sharing: true footer: true logo: bus_scs.png -ha_category: Hub +ha_category: + - Hub + - Cover + - Light + - Switch ha_release: 0.13 ha_iot_class: "Local Polling" +redirect_from: + - /components/cover.scsgate/ + - /components/light.scsgate/ + - /components/switch.scsgate/ --- The SCSGate component support the [SCSGate](https://translate.google.com/translate?hl=en&sl=it&tl=en&u=http%3A%2F%2Fguidopic.altervista.org%2Feibscsgt%2Finterface.html) device. This a home-brew device allows to interact with the MyHome system from BTicino/Legrande. +There is currently support for the following device types within Home Assistant: + +- [Cover](/components/scsgate/#cover) +- [Light](/components/scsgate/#light) +- [Switch](/components/scsgate/#switch) + To enable SCSGate in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -37,3 +51,89 @@ The SCSGate component relies on the [scsgate](https://github.com/flavio/scsgate) This module provides also a command line tool called `scs-monitor`. This program can be used to find the IDs of your lights, switches and roller shutters and produce the YAML snippet to insert into your `configuration.yaml` file. For more information checkout [this](http://scsgate.readthedocs.org/en/latest/?badge=latest#creation-of-a-home-assistant-configuration-file) section of `scsgate`'s documentation. + +### {% linkable_title Cover %} + +The SCSGate devices can control motorized covers connected to the BTicino MyHome system. + +To enable SCSGate covers in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +cover: + - platform: scsgate + devices: + living_room: + name: Living Room + scs_id: XXXXX +``` + +{% configuration %} +devices: + description: A list of devices. + required: true + type: list + keys: + slug: + description: Slug of the device. + required: true + type: list + keys: + name: + description: Name to use in the frontend. + required: true + type: string + scs_id: + description: The ID of your SCSGate device. + required: true + type: string +{% endconfiguration %} + +

+**Known limitation:** It is not possible to know the current state of the cover. +

+ +### {% linkable_title Light %} + +The SCSGate device can control lights of the BTicino MyHome system. + +To enable SCSGate lights in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +light: + - platform: scsgate + devices: + living_room: + name: Living Room + scs_id: XXXXX +``` + +{% configuration %} +devices: + description: A list of devices with their name to use in the frontend. + required: true + type: list +{% endconfiguration %} + +### {% linkable_title Switch %} + +The SCSGate device can control switches of the BTicino MyHome system. + +To enable SCSGate switches in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: scsgate + devices: + living_room: + scs_id: XXXXX +``` + +{% configuration %} +devices: + description: A list of devices with their name to use in the frontend. + required: true + type: list +{% endconfiguration %} \ No newline at end of file diff --git a/source/_components/sense.markdown b/source/_components/sense.markdown index 63611b0b7be0..c0eddd380a2a 100644 --- a/source/_components/sense.markdown +++ b/source/_components/sense.markdown @@ -8,13 +8,23 @@ comments: false sharing: true footer: true logo: sense.png -ha_category: Energy +ha_category: + - Energy + - Binary Sensor + - Sensor ha_iot_class: "Cloud Polling" ha_release: 0.82 -redirect_from: /components/sensor.sense/ +redirect_from: + - /components/sensor.sense/ + - /components/binary_sensor.sense/ --- -Integrate your [Sense](https://sense.com) meter information into Home Assistant. +Integrate your [Sense](https://sense.com) meter information into Home Assistant. + +There is currently support for the following device types within Home Assistant: + +- Binary Sensor +- Sensor ## {% linkable_title Configuration %} @@ -27,24 +37,24 @@ sense: password: CLIENT_SECRET ``` -Sensors are added for both usage and production with the following names: - -- **Active Usage/Production**: Current active power usage/production in Watts. Updated every 60 seconds. -- **Daily/Weekly/Monthly Usage/Production**: Daily/Weekly/Monthly power usage/production in kWh. Updated every 5 minutes. - -Binary sensors are created for each of the devices detected by your Sense monitor to show their power state. - {% configuration %} email: description: The email associated with your Sense account/application. required: true - type: string + type: string password: description: The password for your Sense account/application. required: true type: string timeout: - description: Seconds for timeout of API requests + description: Seconds for timeout of API requests. required: false - type: positive_int + type: integer {% endconfiguration %} + +Sensors are added for both usage and production with the following names: + +- **Active Usage/Production**: Current active power usage/production in Watts. Updated every 60 seconds. +- **Daily/Weekly/Monthly Usage/Production**: Daily/Weekly/Monthly power usage/production in kWh. Updated every 5 minutes. + +Binary sensors are created for each of the devices detected by your Sense monitor to show their power state. diff --git a/source/_components/sensor.abode.markdown b/source/_components/sensor.abode.markdown deleted file mode 100644 index f2076b85f95f..000000000000 --- a/source/_components/sensor.abode.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Abode Sensor" -description: "Instructions on how to integrate Abode sensors into Home Assistant." -date: 2017-10-05 14:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: abode.jpg -ha_release: 0.56 -ha_category: Sensor -ha_iot_class: "Cloud Push" ---- - -The `abode` sensor platform allows you to monitor your [Abode](https://goabode.com/) sensors. - -This platform supports Abode `Temperature`, `Humidity`, and `Light` sensors. - -The requirement is that you have setup your [Abode hub](/components/abode/). diff --git a/source/_components/sensor.ads.markdown b/source/_components/sensor.ads.markdown deleted file mode 100644 index 6b7f3edce917..000000000000 --- a/source/_components/sensor.ads.markdown +++ /dev/null @@ -1,51 +0,0 @@ ---- -layout: page -title: "ADS Sensor" -description: "Instructions on how to integrate ADS numeric values into Home Assistant." -date: 2017-10-25 10:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: beckhoff.png -ha_category: Sensor -ha_release: "0.60" -ha_iot_class: "Local Push" ---- - -The `ads` sensor platform allows reading the value of a numeric variable on your ADS device. The variable can be of type *INT*, *UINT* or *BYTE*. - -To use your ADS device, you first have to set up your [ADS hub](/components/ads/) and then add the following to your `configuration.yaml` -file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: ads - adsvar: GVL.temperature - unit_of_measurement: '°C' - adstype: integer -``` - -{% configuration %} - adsvar: - required: true - description: The name of the variable which you want to access. - type: string - adstype: - required: false - description: The datatype of the ADS variable, possible values are int, uint, byte. - default: int - type: string - name: - required: false - description: An identifier for the sensor. - type: string - factor: - required: false - description: A factor that divides the stored value before displaying in Home Assistant. - default: 1 - type: integer -{% endconfiguration %} - -The *factor* can be used to implement fixed decimals. E.g., set *factor* to 100 if you want to display a fixed decimal value with two decimals. A variable value of `123` will be displayed as `1.23`. diff --git a/source/_components/sensor.aftership.markdown b/source/_components/sensor.aftership.markdown new file mode 100644 index 000000000000..e3362bedcc81 --- /dev/null +++ b/source/_components/sensor.aftership.markdown @@ -0,0 +1,52 @@ +--- +layout: page +title: AfterShip Sensor +description: "Instructions on how to set up AfterShip sensors within Home Assistant." +date: 2018-11-24 01:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: aftership.png +ha_category: Postal Service +ha_release: 0.85 +ha_iot_class: "Cloud Polling" +--- + +The `aftership` platform allows one to track deliveries by [AfterShip](https://www.aftership.com), a service that supports 490+ couriers worldwide. It is free to use up to 100 tracked packages per month, after that there is a fee. + +The sensor value shows the number of packages that are not in `Delivered` state. As attributes are the number of packages per status. + +## {% linkable_title Setup %} + +To use this sensor, you need an [AfterShip Account](https://accounts.aftership.com/register) and set up an API Key. To set up an API Key go to [AfterShip API](https://secure.aftership.com/#/settings/api) page, and copy existing key or generate a new one. + +

+AfterShip recently started requiring having a credit card on file even if you are only using the free plan. That does not change the functionality of the platform, just something to be aware of. +

+ +## {% linkable_title Configuration %} + +To enable this sensor, add the following lines to your `configuration.yaml`: + +```yaml +sensor: + - platform: aftership + api_key: AFTERSHIP_APIKEY +``` + +{% configuration %} +name: + description: The sensor name to use in the frontend. + required: false + default: "aftership" + type: string +api_key: + description: The API key for AfterShip. + required: true + type: string +{% endconfiguration %} + +

+This component retrieves data from AfterShip public REST API, but the component is not affiliated with AfterShip. +

diff --git a/source/_components/sensor.airvisual.markdown b/source/_components/sensor.airvisual.markdown index 9a270ac2fee8..bd1ce9912ab4 100644 --- a/source/_components/sensor.airvisual.markdown +++ b/source/_components/sensor.airvisual.markdown @@ -17,8 +17,10 @@ The `airvisual` sensor platform queries the [AirVisual](https://airvisual.com/) This platform requires an AirVisual API key, which can be obtained [here](https://airvisual.com/api). Note that the platform was designed using the "Community" package; the "Startup" and "Enterprise" package keys should continue to function, but actual results may vary (or not work at all). +The Community API key is valid for 12 months after which it will expire. You must then go back to the Airvisual website, delete your old key, create a new one following the same steps and update your configuration with the new key. +

-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. +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 (600 seconds) 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 %} @@ -47,7 +49,7 @@ show_on_map: type: boolean default: true scan_interval: - description: "The rate at which AirVisual should be polled for new data." + description: "The rate in seconds at which AirVisual should be polled for new data." required: optional type: integer default: 600 @@ -86,7 +88,7 @@ sensor: monitored_conditions: - cn show_on_map: false - scan_interval: 30 + scan_interval: 300 latitude: 42.81212 longitude: 108.12422 ``` @@ -100,7 +102,7 @@ sensor: monitored_conditions: - us show_on_map: false - scan_interval: 30 + scan_interval: 300 city: Los Angeles state: California country: USA diff --git a/source/_components/sensor.alarmdecoder.markdown b/source/_components/sensor.alarmdecoder.markdown deleted file mode 100644 index 770e94f1b72c..000000000000 --- a/source/_components/sensor.alarmdecoder.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "AlarmDecoder Sensor" -description: "Instructions on how to integrate AlarmDecoder sensors into Home Assistant." -date: 2017-04-02 13:28 -sidebar: true -comments: false -sharing: true -footer: true -logo: alarmdecoder.png -ha_release: 0.43 -ha_category: Sensor -ha_iot_class: "Local Push" ---- - -The `alarmdecoder` alarm control panel platform allows you to control your [AlarmDecoder](https://www.alarmdecoder.com) alarms. - -The requirement is that you have setup your [AlarmDecoder hub](/components/alarmdecoder/). diff --git a/source/_components/sensor.amcrest.markdown b/source/_components/sensor.amcrest.markdown deleted file mode 100644 index 127021a1e205..000000000000 --- a/source/_components/sensor.amcrest.markdown +++ /dev/null @@ -1,25 +0,0 @@ ---- -layout: page -title: "Amcrest IP Camera" -description: "Instructions on how to integrate Amcrest IP cameras sensors within Home Assistant." -date: 2017-01-13 10:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: amcrest.png -ha_category: Sensor -ha_release: 0.37 -ha_iot_class: "Local Polling" ---- - -To get your [Amcrest](https://amcrest.com/) cameras working within Home Assistant, please follow the instructions for the general [Amcrest component](/components/amcrest). - -Once you have enabled the [Amcrest component](/components/amcrest), add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: amcrest -``` -To check if your Amcrest camera is supported/tested, visit the [supportability matrix](https://github.com/tchellomello/python-amcrest#supportability-matrix) link from the `python-amcrest` project. diff --git a/source/_components/sensor.android_ip_webcam.markdown b/source/_components/sensor.android_ip_webcam.markdown deleted file mode 100644 index 35d4eefb7aa0..000000000000 --- a/source/_components/sensor.android_ip_webcam.markdown +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: page -title: "Android IP Webcam Sensor" -description: "Instructions on how to integrate sensors for Android IP webcam within Home Assistant." -date: 2017-03-10 00:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: android_ip_webcam.png -ha_category: Sensor -ha_release: "0.40" -ha_iot_class: "Local Polling" ---- - - -The `android_ip_webcam` sensor platform lets you observe states 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. - -You can setup your own sensors by examining the JSON file from the webcam server: http://IP:8080/sensors.json diff --git a/source/_components/sensor.apcupsd.markdown b/source/_components/sensor.apcupsd.markdown deleted file mode 100644 index 74e2c9735bff..000000000000 --- a/source/_components/sensor.apcupsd.markdown +++ /dev/null @@ -1,76 +0,0 @@ ---- -layout: page -title: "APCUPSd Sensor" -description: "Instructions on how to set up APCUPSd sensors within Home Assistant." -date: 2016-02-10 18:28 -sidebar: true -comments: false -sharing: true -footer: true -logo: apcupsd.png -ha_release: 0.13 -ha_category: System Monitor -ha_iot_class: "Local Polling" ---- - -The `apcupsd` sensor platform allows you to monitor a UPS (battery backup) by using data from the [apcaccess](http://linux.die.net/man/8/apcaccess) command. - -## {% linkable_title Configuration %} - -To use this sensor platform, you first have to set up [apcupsd](/components/apcupsd/), and add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: apcupsd - resources: - - bcharge - - linev -``` - -{% configuration %} -resources: - description: Contains all entries to display. - required: true - type: list -{% endconfiguration %} - -### {% linkable_title Example %} - -Given the following output from `apcaccess`: - -```yaml -APC : 001,051,1149 -DATE : 2016-02-09 17:13:31 +0000 -HOSTNAME : localhost -VERSION : 3.14.12 (29 March 2014) redhat -UPSNAME : netrack -CABLE : Custom Cable Smart -DRIVER : APC Smart UPS (any) -UPSMODE : Stand Alone -STARTTIME: 2016-02-09 16:06:47 +0000 -MODEL : SMART-UPS 1400 -STATUS : TRIM ONLINE -LINEV : 247.0 Volts -LOADPCT : 13.0 Percent -BCHARGE : 100.0 Percent -TIMELEFT : 104.0 Minutes -MBATTCHG : 5 Percent -MINTIMEL : 3 Minutes -MAXTIME : 0 Seconds -MAXLINEV : 249.6 Volts -MINLINEV : 244.4 Volts -OUTPUTV : 218.4 Volts -[...] -``` - -Use the (case insensitive) values from the left hand column: - -```yaml -sensor: - - platform: apcupsd - resources: - - linev - - loadpct - - timeleft -``` diff --git a/source/_components/sensor.aqualogic.markdown b/source/_components/sensor.aqualogic.markdown deleted file mode 100644 index 5c4c7208f0fc..000000000000 --- a/source/_components/sensor.aqualogic.markdown +++ /dev/null @@ -1,55 +0,0 @@ ---- -layout: page -title: "AquaLogic Sensor" -description: "Instructions on how to integrate your AquaLogic devices within Home Assistant." -date: 2018-09-17 9:16 -sidebar: true -comments: false -sharing: true -footer: true -logo: hayward.png -ha_category: Sensor -ha_release: "0.80" -ha_iot_class: "Local Push" ---- - -To get your AquaLogic sensors working within Home Assistant, please follow the instructions for the general [AquaLogic component](/components/aqualogic). - -## {% linkable_title Configuration %} - -Once you have enabled the [AquaLogic component](/components/aqualogic), add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: aqualogic - monitored_conditions: - - pool_temp -``` - -{% configuration %} -monitored_conditions: - description: List of items you want to monitor. - required: false - default: all - type: list - keys: - air_temp: - description: The air temperature. - pool_temp: - description: The pool temperature. - spa_temp: - description: The spa temperature. - pool_chlorinator: - description: The pool chlorinator setting. - spa_chlorinator: - description: The spa chlorinator setting. - salt_level: - description: The current salt level. - pump_speed: - description: The current pump speed (Hayward VS pumps only). - pump_power: - description: The current pump power usage (Hayward VS pumps only). - status: - description: The current system status. -{% endconfiguration %} diff --git a/source/_components/sensor.arlo.markdown b/source/_components/sensor.arlo.markdown deleted file mode 100644 index 0d93831713e7..000000000000 --- a/source/_components/sensor.arlo.markdown +++ /dev/null @@ -1,73 +0,0 @@ ---- -layout: page -title: "Arlo Sensor" -description: "Instructions on how to integrate your Netgear Arlo cameras within Home Assistant." -date: 2017-05-30 10:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: arlo.png -ha_category: Sensor -ha_release: "0.46" -ha_iot_class: "Cloud Polling" ---- - -To get your [Arlo](https://arlo.netgear.com/) sensors working within Home Assistant, please follow the instructions for the general [Arlo component](/components/arlo). - -This platform does not support Arlo Q. - -## {% linkable_title Configuration %} - -Once you have enabled the [Arlo component](/components/arlo), add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: arlo - monitored_conditions: - - captured_today - - last_capture - - total_cameras - - battery_level - - signal_strength -``` - -Additionally, for Arlo Baby cameras that have additional sensors, you can add them to the `monitored_conditions` collection: - -```yaml -# Additional sensors available for Arlo Baby cameras -sensor: - - platform: arlo - monitored_conditions: - # ... - - temperature - - humidity - - air_quality -``` - -{% configuration %} -monitored_conditions: - description: Conditions to display in the frontend. The following conditions can be monitored. - required: false - type: list - keys: - captured_today: - description: Return the number of videos captured on the current day. - last_capture: - description: Return the timestamp from the last video captured by your Arlo camera. - total_cameras: - description: Return the number of recognized and active cameras linked on your Arlo account. - battery_level: - description: Return the battery level of your Arlo camera. - signal_strength: - description: Return the wireless signal strength of your Arlo camera. - temperature: - description: Return the ambient temperature detected by your Arlo Baby camera. - humidity: - description: Return the ambient relative humidity detected by your Arlo Baby camera. - air_quality: - description: Return the ambient air quality (a reading of volatile organic compounds (VOCs) in parts per million) detected by your Arlo Baby camera. -{% endconfiguration %} - -If no **monitored_conditions** are specified, all of above will be enabled by default. diff --git a/source/_components/sensor.asuswrt.markdown b/source/_components/sensor.asuswrt.markdown deleted file mode 100644 index 8c091b166e27..000000000000 --- a/source/_components/sensor.asuswrt.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Asuswrt Sensor" -description: "Instructions on how to integrate Asuswrt sensors into Home Assistant." -date: 2017-08-30 12:21 -sidebar: true -comments: false -sharing: true -footer: true -logo: asus.png -ha_category: System Monitor -ha_iot_class: "Local Polling" -ha_release: 0.83 ---- - -The `asuswrt` platform allows you to get data from your [ASUSWRT](http://event.asus.com/2013/nw/ASUSWRT/) sensors from within Home Assistant. - -The sensor platform will be automatically configured if Asuswrt component is configured. - -For more configuration information see the [Asuswrt component](/components/asuswrt/) documentation. diff --git a/source/_components/sensor.bitcoin.markdown b/source/_components/sensor.bitcoin.markdown index 4465554c50c5..dadf5ed96ad8 100644 --- a/source/_components/sensor.bitcoin.markdown +++ b/source/_components/sensor.bitcoin.markdown @@ -29,7 +29,7 @@ sensor: {% configuration %} currency: - description: The currency to exchange to, eg. CHF, USD, EUR, etc. + description: The currency to exchange to, e.g., CHF, USD, EUR, etc. required: false type: string default: USD diff --git a/source/_components/sensor.blink.markdown b/source/_components/sensor.blink.markdown deleted file mode 100644 index 1443578137b1..000000000000 --- a/source/_components/sensor.blink.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Blink Sensor" -description: "Instructions for how to setup Blink sensors within Home Assistant." -date: 2017-03-05 22:13 -sidebar: true -comments: false -sharing: true -footer: true -logo: blink.png -ha_category: Sensor -ha_release: "0.40" -ha_iot_class: "Cloud Polling" ---- - -

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

diff --git a/source/_components/sensor.bloomsky.markdown b/source/_components/sensor.bloomsky.markdown deleted file mode 100644 index 1c3ef6acfa7a..000000000000 --- a/source/_components/sensor.bloomsky.markdown +++ /dev/null @@ -1,56 +0,0 @@ ---- -layout: page -title: "BloomSky Sensor" -description: "Instructions on how to integrate the BloomSky sensors within Home Assistant." -date: 2016-02-03 20:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: bloomsky.png -ha_category: Sensor -ha_release: 0.14 -ha_iot_class: "Cloud Polling" ---- - - -The `bloomsky` sensor component allows you to view the measurements made by sensors in the [BloomSky](https://www.bloomsky.com) weather station. This can work in concert with the [BloomSky camera](/components/camera.bloomsky). - -## {% linkable_title Configuration %} - -To enable these sensors in your installation, set up the [BloomSky component](/components/bloomsky) with your API key add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - platform: bloomsky - monitored_conditions: - - Temperature - - Humidity - - Pressure - - UVIndex - - Luminance - - 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.bme680.markdown b/source/_components/sensor.bme680.markdown index 814b276edce2..7ae238d268e8 100644 --- a/source/_components/sensor.bme680.markdown +++ b/source/_components/sensor.bme680.markdown @@ -13,7 +13,6 @@ ha_release: 0.62 ha_iot_class: "Local Push" --- - The `bme680` sensor platform allows you to read temperature, humidity, pressure and gas resistance values of a [Bosch BME680 Environmental sensor](https://cdn-shop.adafruit.com/product-files/3660/BME680.pdf) connected via an [I2C](https://en.wikipedia.org/wiki/I²C) bus (SDA, SCL pins). It allows you to use all the operation modes of the sensor described in its datasheet. In addition, it includes a basic air quality calculation that uses gas resistance and humidity measurements to calculate a percentage based air quality measurement. Tested devices: @@ -111,6 +110,11 @@ aq_humidity_bias: required: false default: 25 type: integer +temp_offset: + description: "The temperature for the sensor will always be too high as it pulls heat from the components around it. Consider adding a negative offset to ensure the sensor returns an accurate temperature. Note: This value is in celsius." + required: false + default: 0 + type: float {% endconfiguration %} ## {% linkable_title Full Examples %} @@ -139,6 +143,7 @@ sensor: aq_burn_in_time: 300 aq_humidity_baseline: 40 aq_humidity_bias: 25 + temp_offset: -5.5 ``` ## {% linkable_title Customizing the sensor data %} @@ -154,12 +159,16 @@ customize: sensor.bme680_sensor_humidity: icon: mdi:water friendly_name: Humidity + device_class: humidity + unit_of_measurement: "%" sensor.bme680_sensor_pressure: icon: mdi:gauge friendly_name: Pressure sensor.bme680_sensor_air_quality: icon: mdi:blur friendly_name: Air Quality + device_class: pm25 + unit_of_measurement: "%" ``` To create a group, add the following to your `group` section. @@ -176,6 +185,10 @@ group: - sensor.bme680_sensor_air_quality ``` +## {% linkable_title Directions for enabling I2C interface on Hass.io %} + +Follow the instructions here to [enable I2C on Hass.io.](/hassio/enable_i2c/). + ## {% linkable_title Directions for installing SMBus support on Raspberry Pi %} Enable I2C interface with the Raspberry Pi configuration utility: diff --git a/source/_components/sensor.bmw_connected_drive.markdown b/source/_components/sensor.bmw_connected_drive.markdown deleted file mode 100644 index 9100fb4b71b5..000000000000 --- a/source/_components/sensor.bmw_connected_drive.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "BMW Connected Drive Sensor" -description: "Instructions on how to setup your BMW Connected Drive account with Home Assistant." -date: 2018-01-10 23:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: bmw.png -ha_category: Car -ha_release: 0.64 ---- - - -The `bmw_connected_drive` sensor platform allows you to import data on your BMW into Home Assistant. - -The sensors will be automatically configured if the `bmw_connected_drive` component is configured. - -For more configuration information see the [`bmw_connected_drive` component](/components/bmw_connected_drive/) documentation. diff --git a/source/_components/sensor.broadlink.markdown b/source/_components/sensor.broadlink.markdown index 4688cf2aa03a..2b8e534ef30f 100644 --- a/source/_components/sensor.broadlink.markdown +++ b/source/_components/sensor.broadlink.markdown @@ -33,7 +33,7 @@ Configuration options: - **host** (*Required*): The hostname/IP address to connect to. - **mac** (*Required*): Device mac address. - **name** (*Optional*): Default BL. Sensor name -- **update_interval** (*Optional*): Time in seconds to fetch data from sensors. Default 300. +- **scan_interval** (*Optional*): Time in seconds to fetch data from sensors. Default 300. - **timeout** (*Optional*): Timeout in seconds for the connection to the device. - **monitored_conditions** array (*Required*): States to monitor. - 'temperature' @@ -49,7 +49,7 @@ Obtain sensor data from an A1: ```yaml sensor: - platform: broadlink - update_interval: 60 + scan_interval: 60 host: IP_ADDRESS mac: 'MAC_ADDRESS' monitored_conditions: @@ -65,7 +65,7 @@ Obtain temperature data from an RM2: ```yaml sensor: - platform: broadlink - update_interval: 60 + scan_interval: 60 host: IP_ADDRESS mac: 'MAC_ADDRESS' monitored_conditions: diff --git a/source/_components/sensor.canary.markdown b/source/_components/sensor.canary.markdown deleted file mode 100644 index 79239f075bc6..000000000000 --- a/source/_components/sensor.canary.markdown +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: page -title: "Canary Sensor" -description: "Instructions on how to integrate your Canary devices into Home Assistant." -date: 2017-12-07 22:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: canary.png -ha_category: Environment -ha_release: "0.60" -ha_iot_class: "Cloud Polling" ---- - -The `canary` sensor platform allows you to integrate the sensors of your [Canary](https://canary.is) devices in Home Assistant. - -To add `canary` sensors to your installation, follow instructions in [Canary component](/components/canary/). - -Once loaded, you will see following sensors: - -* A sensor per camera that reports temperature. -* A sensor per camera that reports humidity. -* A sensor per camera that reports air quality. diff --git a/source/_components/sensor.co2signal.markdown b/source/_components/sensor.co2signal.markdown new file mode 100644 index 000000000000..c8d268db87c7 --- /dev/null +++ b/source/_components/sensor.co2signal.markdown @@ -0,0 +1,102 @@ +--- +layout: page +title: "CO2Signal" +description: "Instructions on how to use CO2Signal data within Home Assistant" +date: 2019-01-01 21:47 +sidebar: true +comments: false +sharing: true +footer: true +logo: co2signal.png +ha_category: Environment +ha_release: 0.87 +ha_iot_class: "Cloud Polling" +--- + +The `co2signal` sensor platform queries the [CO2Signal](https://www.co2signal.com/) API for the CO2 intensity of a specific region. Data can be collected via latitude/longitude or by country code. This API uses the same data as https://www.electricitymap.org/. Not all countries/regions in the world are supported so please consult this website to check local availability. + +This platform requires a CO2Signal API key, which can be obtained [here](https://www.co2signal.com/). Note that this API key is for personal use only and other options exist when the data is used commercially. + +At the moment, the free CO2Signal API only supports the average carbon intensity of a country and not the marginal carbon intensity. + +

+The "free" API key is limited to a limited number of calls. Too many requests can result in data loss. +

+ +## {% linkable_title Configuration %} + +To set up this platform, get your [API key](https://www.co2signal.com/) and add the following lines to your `configuration.yaml` file: + +```yaml +sensor: + - platform: co2signal + token: YOUR_CO2SIGNAL_API_KEY +``` + +By default, the sensor will use your Home Assistant longitude and latitude. More detailed configurations to overwrite this can be found below. + +{% configuration %} +token: + description: Your CO2Signal API key. + required: true + type: string +latitude: + description: The latitude of the location to monitor. + required: false + type: string + default: "The latitude defined under the `homeassistant` key in `configuration.yaml`." +longitude: + description: The longitude of the location to monitor. + required: false + type: string + default: "The longitude defined under the `homeassistant` key in `configuration.yaml`." +country_code: + description: The country code or region code. + required: false + type: string +{% endconfiguration %} + +To enable the platform and gather data via a specific latitude/longitude, add the following lines to your `configuration.yaml` file: + +```yaml +sensor: + - platform: co2signal + token: YOUR_CO2SIGNAL_API_KEY + latitude: YOUR_LATITUDE + longitude: YOUR_LONGITUDE +``` + +A similar result can be achieved by using the country code. In that case, use the following lines in your `configuration.yaml` file: + +```yaml +sensor: + - platform: co2signal + token: YOUR_CO2SIGNAL_API_KEY + country_code: YOUR_COUNTRY_CODE +``` + +## {% linkable_title Example Configurations %} + +Configuration using custom latitude and longitude: + +```yaml +sensor: + - platform: co2signal + token: YOUR_CO2SIGNAL_API_KEY + latitude: 55.4 + longitude: 5.5 +``` + +Configuration using a country code: + +```yaml +sensor: + - platform: co2signal + token: YOUR_CO2SIGNAL_API_KEY + country_code: BE +``` + +## {% linkable_title Sensor Types %} + +When configured, the platform will create one sensor for each configured location. + diff --git a/source/_components/sensor.coinbase.markdown b/source/_components/sensor.coinbase.markdown deleted file mode 100644 index 537b10f99730..000000000000 --- a/source/_components/sensor.coinbase.markdown +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: page -title: "Coinbase Sensor" -description: "Instructions on how to setup Coinbase sensors within Home Assistant." -date: 2017-12-08 18:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: coinbase.png -ha_category: Finance -ha_release: 0.61 ---- - -To get your coinbase sensors working with Home Assistant, follow the instructions for the general [Coinbase component](/components/coinbase/). diff --git a/source/_components/sensor.comfoconnect.markdown b/source/_components/sensor.comfoconnect.markdown deleted file mode 100644 index 0d9400f5ce19..000000000000 --- a/source/_components/sensor.comfoconnect.markdown +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: page -title: "Zehnder ComfoAir Q Ventilation sensors" -description: "Instructions on how to integrate Zehnder ComfoAir Q350/450/600 sensors into Home Assistant." -date: 2017-06-28 18:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: zehnder.png -ha_category: Sensor -ha_release: "0.48" ---- - -Please see the [main component] for information how to set it up. - -[main component]: /components/comfoconnect/ diff --git a/source/_components/sensor.crimereports.markdown b/source/_components/sensor.crimereports.markdown index 8637e53c9769..d447005c33bb 100644 --- a/source/_components/sensor.crimereports.markdown +++ b/source/_components/sensor.crimereports.markdown @@ -22,8 +22,8 @@ To enable this sensor, add the following lines to your `configuration.yaml`. You ```yaml sensor: - platform: crimereports - name: - radius: + name: NAME_FOR_SENSOR + radius: RADIUS ``` {% configuration %} diff --git a/source/_components/sensor.daikin.markdown b/source/_components/sensor.daikin.markdown deleted file mode 100644 index 5d9ba9595927..000000000000 --- a/source/_components/sensor.daikin.markdown +++ /dev/null @@ -1,52 +0,0 @@ ---- -layout: page -title: "Daikin AC Sensor" -description: "Instructions on how to integrate Daikin AC(s) with Home Assistant." -date: 2017-12-03 05:00 -sidebar: True -comments: false -sharing: true -footer: true -logo: daikin.png -ha_category: Environment -ha_release: 0.59 -ha_iot_class: "Local Polling" ---- - - -The `daikin` sensor platform integrates Daikin air conditioning systems into Home Assistant, enabling displaying the following parameters: - -- Inside temperature -- Outside temperature - -## {% linkable_title Configuration %} - -To enable the platform manually, add the following lines to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: daikin - host: 10.0.0.1 - monitored_conditions: - - inside_temperature - - outside_temperature -``` - -{% configuration %} -host: - description: IP or hostname of the device. - required: true - type: string -monitored_conditions: - description: List of items you want to monitor for each device. - required: false - default: All conditions - type: list - keys: - inside_temperature: - description: The current temperature measured inside the house. - outside_temperature: - description: The current temperature measured outside the house. -{% endconfiguration %} - diff --git a/source/_components/sensor.darksky.markdown b/source/_components/sensor.darksky.markdown index d8f096d62a0a..71f7d10f668b 100644 --- a/source/_components/sensor.darksky.markdown +++ b/source/_components/sensor.darksky.markdown @@ -143,8 +143,8 @@ units: required: false default: "`si` or `us`, based on the temperature preference in Home Assistant." type: string -update_interval: - description: "Minimum time interval between updates. Supported formats: `update_interval: 'HH:MM:SS'`, `update_interval: 'HH:MM'` and Time period dictionary (see example below)." +scan_interval: + description: "Minimum time interval between updates. Supported formats: `scan_interval: 'HH:MM:SS'`, `scan_interval: 'HH:MM'` and Time period dictionary (see example below)." required: false default: 2 minutes type: time @@ -153,7 +153,7 @@ update_interval: #### {% linkable_title Time period dictionary example %} ```yaml -update_interval: +scan_interval: # At least one of these must be specified: days: 0 hours: 0 @@ -183,6 +183,7 @@ All language options are described in this table that you can use for the dark s |Estonian|`et`| |Finnish|`fi`| |French|`fr`| +|Hebrew|`he`| |Croatian|`hr`| |Hungarian|`hu`| |Indonesian|`id`| @@ -190,7 +191,9 @@ All language options are described in this table that you can use for the dark s |Italian|`it`| |Japanese|`ja`| |Georgian|`ka`| +|Korean|`ko`| |Cornish|`kw`| +|Latvian|`lv`| |Norwegian Bokmål|`nb`| |Dutch|`nl`| |Polish|`pl`| diff --git a/source/_components/sensor.deconz.markdown b/source/_components/sensor.deconz.markdown deleted file mode 100644 index 7dd29e19035e..000000000000 --- a/source/_components/sensor.deconz.markdown +++ /dev/null @@ -1,70 +0,0 @@ ---- -layout: page -title: deCONZ Sensor -description: "Instructions on how to integrate Zigbee sensors from deCONZ into Home Assistant." -date: 2017-11-12 16:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: deconz.jpeg -ha_category: Sensor -ha_release: "0.61" -ha_iot_class: "Local Push" ---- - -See the [deCONZ main component](/components/deconz/) for configuration instructions. - -The following sensor types are supported: - - * Humidity sensor - * Light level sensor - * Pressure sensor - * Switches - * Temperature sensor - -The `entity_id` name will be `sensor.device_name`, where `device_name` is defined in deCONZ. Switches aren't exposed as ordinary entities, see the [deCONZ main component](/components/deconz/) for more details. - -#### {% linkable_title Verified to be supported sensors %} - -- Humidity Sensor - - Xiaomi Aqara Humidity/Temperature Sensor - - Xiaomi MiJia Smart Temperature & Humidity Sensor -- Light Level Sensor -- Pressure Sensor -- Switches - - IKEA Trådfri Wireless Dimmer - - Philips Hue Motion Sensor - - IKEA Trådfri Remote - - Philips Hue Dimmer Switch - - Xiaomi Cube - - Xiaomi Aqara Smart Light Switch - - Xiaomi Aqara Smart Wireless Switch - - Xiaomi Smart Home Wireless Switch -- Temperature Sensor - - Xiaomi Temperature/Humidity Sensor - -#### {% linkable_title deCONZ Daylight Sensor %} - -The deCONZ Daylight sensor is a special sensor built into the deCONZ software since version 2.05.12. It is represented in Home Assistant as a sensor called sensor.daylight. The sensor's state value is a string corresponding to the phase of daylight (descriptions below taken from https://github.com/mourner/suncalc, on which the deCONZ implementation is based): - -| Sensor State | Description | -|--------------|-------------| -| sunrise_start | sunrise (top edge of the sun appears on the horizon) | -| sunrise_end | sunrise ends (bottom edge of the sun touches the horizon) | -| golden_hour_1 | morning golden hour (soft light, the best time for photography) | -| solar_noon | solar noon (sun is in the highest position) | -| golden_hour_2 | evening golden hour | -| sunset_start | sunset starts (bottom edge of the sun touches the horizon) | -| sunset_end | sunset (sun disappears below the horizon, evening civil twilight starts) | -| dusk | dusk (evening nautical twilight starts) | -| nautical_dusk | nautical dusk (evening astronomical twilight starts) | -| night_start | night starts (dark enough for astronomical observations) | -| nadir | nadir (darkest moment of the night, the sun is in the lowest position) | -| night_end | night ends (morning astronomical twilight starts) | -| nautical_dawn | nautical dawn (morning nautical twilight starts) | -| dawn | dawn (morning nautical twilight ends, morning civil twilight starts) | - -The sensor also has an attribute called "daylight" that has the value `true` when the sensor's state is `golden_hour_1`, `solar_noon`, or `golden_hour_2`, and `false` otherwise. - -These states can be used in automations as a trigger (e.g., trigger when a certain phase of daylight starts or ends) or condition (e.g., trigger only if in a certain phase of daylight). diff --git a/source/_components/sensor.deutsche_bahn.markdown b/source/_components/sensor.deutsche_bahn.markdown index 6586e49452ab..fdba0b5e7117 100644 --- a/source/_components/sensor.deutsche_bahn.markdown +++ b/source/_components/sensor.deutsche_bahn.markdown @@ -14,7 +14,7 @@ ha_release: 0.14 --- -The `deutsche_bahn` sensor will give you the departure time of the next train for the given connection. In case of a delay, the delay is also shown. Additional details are used to inform about eg. the type of the train, price, and if it is on time. +The `deutsche_bahn` sensor will give you the departure time of the next train for the given connection. In case of a delay, the delay is also shown. Additional details are used to inform about, e.g., the type of the train, price, and if it is on time. To enable this sensor, add the following lines to your `configuration.yaml` file: @@ -41,7 +41,7 @@ only_direct: default: false {% endconfiguration %} -This sensor stores a lot of attributes which can be accessed by other sensors eg. a [template sensor](/components/sensor.template/). +This sensor stores a lot of attributes which can be accessed by other sensors, e.g., a [template sensor](/components/sensor.template/). ```yaml # Example configuration.yaml entry diff --git a/source/_components/sensor.discogs.markdown b/source/_components/sensor.discogs.markdown index ec600a21b448..9fa6012fe734 100644 --- a/source/_components/sensor.discogs.markdown +++ b/source/_components/sensor.discogs.markdown @@ -32,6 +32,8 @@ sensor: token: YOUR_TOKEN ``` +The monitored conditions can create a sensor which displays the amount of records currently in your collection and/or wantlist, and an option to pick a random record from your collection. + {% configuration %} token: description: The Discogs API token to use as identification to get your collection. @@ -41,4 +43,15 @@ name: description: Name to use in the frontend. required: false type: string +monitored_conditions: + description: A list of sensor to include. + required: false + type: list + keys: + collection: + description: Shows the amount of records in the user's collection. + wantlist: + description: Shows the amount of records in the user's wantlist. + random_record: + description: Proposes a random record from the collection to play. {% endconfiguration %} diff --git a/source/_components/sensor.dovado.markdown b/source/_components/sensor.dovado.markdown deleted file mode 100644 index d862ef3fef32..000000000000 --- a/source/_components/sensor.dovado.markdown +++ /dev/null @@ -1,64 +0,0 @@ ---- -layout: page -title: "Dovado" -description: "How to integrate Dovado sensors within Home Assistant." -date: 2016-11-05 08:00 -sidebar: true -comments: false -sharing: true -footer: true -ha_category: System Monitor -logo: dovado.png -ha_release: 0.32 -ha_iot_class: "Local Polling" ---- - -The `dovado` platform let you monitor your router from [Dovado](http://www.dovado.com/). If the router provides SMS functionality, a service for sending SMS will also be registered in Home Assistant. - -To add a Dovado sensor to your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: dovado - username: YOUR_USERNAME - password: YOUR_PASSWORD - sensors: - - network -``` - -{% configuration %} -username: - description: Your Dovado username. - required: true - type: string -password: - description: Your Dovado password. - required: true - type: string -host: - description: The IP address of your router. - required: false - type: string - default: Home Assistant's default gateway -port: - description: The port number of your router. - required: false - type: integer - default: 6435 -sensors: - description: Conditions to display in the frontend. Only accepts the values listed here. - required: true - type: list - keys: - network: - description: Creates a sensor for Network State (3G, 4G, etc.). - signal: - description: Creates a sensor for the signal strength. - download: - description: Creates a sensor for download speed. - upload: - description: Creates a sensor for download speed. - sms: - description: Creates a sensor for number of unread text messages. -{% endconfiguration %} diff --git a/source/_components/sensor.dsmr.markdown b/source/_components/sensor.dsmr.markdown index a4df6c3f1876..cc943d821b29 100644 --- a/source/_components/sensor.dsmr.markdown +++ b/source/_components/sensor.dsmr.markdown @@ -17,7 +17,7 @@ A sensor platform for Dutch Smart Meters which comply to DSMR (Dutch Smart Meter - Currently support DSMR V2.2, V3, V4 and V5 through the [dsmr_parser](https://github.com/ndokter/dsmr_parser) module by Nigel Dokter. - For official information about DSMR refer to: [DSMR Document](https://www.netbeheernederland.nl/dossiers/slimme-meter-15) -- For official information about the P1 port refer to: https://www.wijhebbenzon.nl/media/kunena/attachments/3055/DSMRv5.0FinalP1.pdf +- For official information about the P1 port refer to: - For unofficial hardware connection examples refer to: [Domoticx](http://domoticx.com/p1-poort-slimme-meter-hardware/)

@@ -37,13 +37,13 @@ This component is known to work for: USB serial converters: - Cheap (Banggood/ebay) Generic PL2303 -- https://sites.google.com/site/nta8130p1smartmeter/webshop -- https://www.sossolutions.nl/slimme-meter-kabel -- https://tweakers.net/gallery/269738/aanbod/ +- +- +- Serial to network proxies: -- ser2net - http://ser2net.sourceforge.net/ +- ser2net - ```yaml # Example configuration.yaml entry @@ -64,6 +64,11 @@ sensor: description: "Version of DSMR used by meter. Choices: 2.2, 4, 5. Defaults to 2.2." required: false type: string + precision: + description: Defines the precision of the calculated values, through the argument of round(). + required: false + type: integer + default: 3 {% endconfiguration %} Full configuration examples can be found below: @@ -119,16 +124,22 @@ or [HASSbian](/getting-started/installation-raspberry-pi-image/) users have to give dialout permission to the user `homeassistant`: -``` +```bash $ sudo usermod -a -G dialout homeassistant ``` and after that you need to reboot! -``` +```bash $ sudo reboot ``` +Docker users have to allow Docker access to the device by adding `--device /dev/ttyUSB21:/dev/ttyUSB21` to the run command: + +```hass +$ docker run --device /dev/ttyUSB0:/dev/ttyUSB0 -d --name="home-assistant" -v /home/USERNAME/hass:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/home-assistant +``` + ### {% linkable_title Technical overview %} DSMR is a standard to which Dutch smartmeters must comply. It specifies that the smartmeter must send out a 'telegram' every 10 seconds (every second for DSMR 5.0 devices) over a serial port. @@ -138,4 +149,3 @@ The contents of this telegram differ between version but they generally consist This module sets up an asynchronous reading loop using the `dsmr_parser` module which waits for a complete telegram, parser it and puts it on an async queue as a dictionary of `obis`/object mapping. The numeric value and unit of each value can be read from the objects attributes. Because the `obis` are know for each DSMR version the Entities for this component are create during bootstrap. Another loop (DSMR class) is setup which reads the telegram queue, stores/caches the latest telegram and notifies the Entities that the telegram has been updated. - diff --git a/source/_components/sensor.dwd_weather_warnings.markdown b/source/_components/sensor.dwd_weather_warnings.markdown index 99822cafe286..2b24add44e36 100644 --- a/source/_components/sensor.dwd_weather_warnings.markdown +++ b/source/_components/sensor.dwd_weather_warnings.markdown @@ -18,6 +18,8 @@ The `dwd_weather_warnings` sensor platform uses the [Deutsche Wetter Dienst (DWD - A name is optional but if multiple regions are used a name will be required. - The sensor checks for new data every 15 minutes. +## {% linkable_title Configuration %} + To add the DWD WarnApp sensor to your installation, add the following to your `configuration.yaml` file: ```yaml @@ -55,11 +57,11 @@ name: | ------------ | -------------------------------------- | | `last_updated` | Information last update from DWD service. | | `region_name` | Requested region name. This should be the same as the region name in the configuration. | -| `region_state` | State (Bundesland) in abriviated form the requested region is located, eg. "HE" for "Hessen". | +| `region_state` | State (Bundesland) in abriviated form the requested region is located, e.g., "HE" for "Hessen". | | `region_id` | Region ID assigned by DWD. | | `warning_count` | *(int)* Number of issued warnings. There can be more than one warning issued at once. | -| `warning__level` | *(int)* Issued warning level between 0 and 4.
0 == Keine Warnungen,
1 == Wetterwarnungen,
2 == Warnungen vor markantem Wetter,
3 == Unwetterwarnungen,
4 == Warnungen vor extremem Unwetter | -| `warning__type` | *(int)* Issued warning type.
0 == ?,
1 == ?,
2 == ?,
3 == ?,
4 == ?,
5 == Frost,
6 == Glätte | +| `warning__level` | *(int)* Issued warning level between 0 and 4.
0: Keine Warnungen
1: Wetterwarnungen
2: Warnungen vor markantem Wetter
3: Unwetterwarnungen
4: Warnungen vor extremem Unwetter | +| `warning__type` | *(int)* Issued warning type.
0: Gewitter
1: Windböen, Sturmböen
2: ?
3: Schneefall
4: Nebel
5: Frost
6: Glätte, Glatteis
Please be aware that the type numbers represent more like a category than an exact number-to-string match. For example Type `6` can mean `GLÄTTE` or `GLATTEIS` or similar. | | `warning__name` | This name correlates with the warning type and indicates it in short as a string. | | `warning__headline` | Official headline the weather warning. | | `warning__start` | Starting time and date of the issued warning. | diff --git a/source/_components/sensor.dyson.markdown b/source/_components/sensor.dyson.markdown deleted file mode 100644 index c92b2f7d6690..000000000000 --- a/source/_components/sensor.dyson.markdown +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: page -title: "Dyson Purifier Sensor" -description: "Instructions on how to setup the Dyson Purifier fans within Home Assistant." -date: 2017-05-27 10:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: dyson.png -ha_category: Environment -ha_iot_class: "Cloud Polling" -ha_release: 0.47 ---- - - -The `dyson` sensor platform allows you to control your Dyson Purifier's filter life time. - -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 (see [climate](/components/climate.dyson/) for thermal control) diff --git a/source/_components/sensor.ecobee.markdown b/source/_components/sensor.ecobee.markdown deleted file mode 100644 index e05a714d371a..000000000000 --- a/source/_components/sensor.ecobee.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "Ecobee Sensor" -description: "Instructions on how to setup the Ecobee sensors within Home Assistant." -date: 2015-11-30 18:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: ecobee.png -ha_category: Environment -ha_release: 0.9 -ha_iot_class: "Local Push" ---- - -To get your Ecobee sensors working with Home Assistant, follow the instructions for the general [Ecobee component](/components/ecobee/). diff --git a/source/_components/sensor.edp_redy.markdown b/source/_components/sensor.edp_redy.markdown deleted file mode 100644 index 4071a509467f..000000000000 --- a/source/_components/sensor.edp_redy.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "EDP re:dy Sensor" -description: "Instructions on how to integrate the EDP re:dy sensors into Home Assistant." -date: 2018-09-04 16:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: edp_redy.png -ha_category: Sensor -ha_release: "0.79" -ha_iot_class: "Cloud Polling" ---- - -See the [EDP re:dy main component](/components/edp_redy/) for configuration instructions. - -This sensor platform will provide a sensor per each EDP re:dy device that reports power consumption (SmartMeter, plug, meter). \ No newline at end of file diff --git a/source/_components/sensor.eight_sleep.markdown b/source/_components/sensor.eight_sleep.markdown deleted file mode 100644 index 23e4ce46ed2b..000000000000 --- a/source/_components/sensor.eight_sleep.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Eight Sleep Sensor" -description: "Instructions on how to integrate sensors for Eight Sleep within Home Assistant." -date: 2017-04-24 00:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: eight_sleep.png -ha_category: Health -ha_release: "0.44" -ha_iot_class: "Cloud Polling" ---- - - -The `eight_sleep` sensor platform lets you observe states of [Eight Sleep](https://eightsleep.com/) sensors through Home Assistant. This includes bed state and results of the current and previous sleep sessions. - -Devices will be configured automatically. Please refer to the [component](/components/eight_sleep/) configuration on how to setup. diff --git a/source/_components/sensor.elkm1.markdown b/source/_components/sensor.elkm1.markdown deleted file mode 100644 index 972164155891..000000000000 --- a/source/_components/sensor.elkm1.markdown +++ /dev/null @@ -1,22 +0,0 @@ ---- -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.enocean.markdown b/source/_components/sensor.enocean.markdown deleted file mode 100644 index d75ef5248016..000000000000 --- a/source/_components/sensor.enocean.markdown +++ /dev/null @@ -1,39 +0,0 @@ ---- -layout: page -title: "EnOcean Sensor" -description: "Instructions on how to integrate TellStick sensors into Home Assistant." -date: 2016-05-26 01:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: enocean.png -ha_category: Sensor -ha_release: 0.21 -ha_iot_class: "Local Push" ---- - - -The `enocean` sensor platform currently only allows reading out the power measured in a Permundo PSC234 switch. - -To use your EnOcean device, you first have to set up your [EnOcean hub](../enocean) and then add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: enocean - name: Television - id: [0x01,0x90,0x84,0x3C] -``` - -{% configuration %} -id: - description: The ID of the device. This is a 4 bytes long number. - required: true - type: list -name: - description: An identifier for the switch - required: true - default: EnOcean sensor - type: string -{% endconfiguration %} diff --git a/source/_components/sensor.entur_public_transport.markdown b/source/_components/sensor.entur_public_transport.markdown index b42557d29d3a..1e9477fc7736 100644 --- a/source/_components/sensor.entur_public_transport.markdown +++ b/source/_components/sensor.entur_public_transport.markdown @@ -19,6 +19,9 @@ For each stop place given in the configuration, a sensor will be mounted for tha Real-time data is fetched from [Entur](https://www.entur.org). Entur is a service which collects and delivers information about all public transport available in Norway under an [open source license](https://data.norge.no/nlod/no). +

Note that the underlying API is rate limited and to avoid getting your instance blocked from entur the sensor is only fetching new information once a minute. It's recommended to only define one platform in the configuration at one time to not hit the rate limiting. +

+ ## {% linkable_title Configuration %} ```yaml @@ -50,10 +53,16 @@ show_on_map: required: false type: boolean default: false +line_whitelist: + description: List of lines that should be whitelisted in the resulting sensors, and will only show when the defined lines are expected to leave the platform or station. All lines that you want on any of the sensors should be included in the list. + required: false + type: list {% endconfiguration %} ## {% linkable_title Example usage %} +Example of multiple stop places, with expanded sensors for each platform under the station, and with the platforms added to the map. + ```yaml # Example configuration.yaml entry sensor: @@ -70,6 +79,22 @@ sensor: - 'NSR:Quay:48550' # Fiskepiren bus stop platform 1 ``` +Example with whitelisting of one line on each stop place. + +```yaml +# Example configuration.yaml entry +sensor: + - platform: entur_public_transport + stop_ids: + - 'NSR:Quay:7333' + - 'NSR:Quay:48550' + - 'NSR:StopPlace:596' + line_whitelist: + - 'RUT:Line:1' + - 'KOL:Line:1000_236' + - 'NSB:Line:59' +``` + ## {% linkable_title Obtaining a stop id %} [Entur's travel planer](https://en-tur.no) has a map of all stops used in Norway. Use the map to find the stops you're interested in. When you have found one of your stops, click on it. @@ -79,3 +104,21 @@ Now the web browser should contain an URL with the id in it. Such as this: `https://en-tur.no/nearby-stop-place-detail?id=NSR:StopPlace:32376` The stop id is the content after `id=` parameter in the url. Copy paste this into the configuration. + +## {% linkable_title FAQ - Troubleshooting %} + +**Q:** I have multiple stop ids and have added whitelisting of a line. Now some of the stop places are showing `unknown`. + +**A:** A whitelisting of lines takes affect on all of the stops. So you have to whitelist all lines you are interested in on all stop places. + +--- + +**Q:** I have added whitelisting of lines, and everything has worked as fine before, but now it has stopped updating all of a sudden. + +**A:** Some transport companies, such as Kolumbus in Rogaland, have running numbers on the end of their line ids. These gets periodically updated and will make the whitelisting invalid. The new line ids needs to be added again. Most of the time it iterates by one. + +--- + +**Q:** Where do I find a line id to add to the whitelisting? + +**A:** The sensor will show the line id, and is the recommended way to find it, while we wait for 'Nasjonalt Stoppestedregister' to become public. It is also possible to see the line ids by using the developer tool in the browser while looking at the trafic in [Entur's travel planer](https://en-tur.no). \ No newline at end of file diff --git a/source/_components/sensor.envisalink.markdown b/source/_components/sensor.envisalink.markdown deleted file mode 100644 index 94235f48b847..000000000000 --- a/source/_components/sensor.envisalink.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Envisalink Sensor" -description: "Instructions on how to integrate Envisalink sensors into Home Assistant." -date: 2016-07-01 10:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: eyezon.png -ha_release: 0.23 -ha_category: Sensor -ha_iot_class: "Local Push" ---- - -The `envisalink` platform allows you to get data from your [Envisalink](http://www.eyezon.com/) sensors from within Home Assistant. - -The requirement is that you have setup your [Envisalink hub](/components/envisalink/). - diff --git a/source/_components/sensor.fail2ban.markdown b/source/_components/sensor.fail2ban.markdown index 20f46f6f15ca..fd0f239026d6 100644 --- a/source/_components/sensor.fail2ban.markdown +++ b/source/_components/sensor.fail2ban.markdown @@ -164,7 +164,7 @@ Once that's added to the nginx configuration, we need to modify the Home Assista ```yaml http: - use_x_forwarded_for: True + use_x_forwarded_for: true ``` At this point, once the Let's Encrypt and Home Assistant dockers are restarted, Home Assistant should be correctly logging the originating IP of any failed login attempt. Once that's done and verified, we can move onto the final step. diff --git a/source/_components/sensor.fastdotcom.markdown b/source/_components/sensor.fastdotcom.markdown deleted file mode 100644 index ff945ef847f3..000000000000 --- a/source/_components/sensor.fastdotcom.markdown +++ /dev/null @@ -1,72 +0,0 @@ ---- -layout: page -title: "Fast.com" -description: "How to integrate Fast.com within Home Assistant." -date: 2016-08-10 17:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: fastdotcom.png -ha_category: System Monitor -featured: false -ha_release: 0.26 -ha_iot_class: "Cloud Polling" ---- - -The `fastdotcom` sensor component uses the [Fast.com](https://fast.com/) web service to measure network bandwidth performance. - -

-Currently fast.com only supports measuring download bandwidth. If you want to measure bandwidth metrics other then download such as ping and upload, utilize the [speedtest](/components/sensor.speedtest) component. -

- -By default, it will run every hour. The user can change the update frequency in the configuration by defining the minute and hour for a speedtest to run. - -## {% linkable_title Configuration %} - -To add a Fast.com sensor to your installation, add the following to your `configuration.yaml` file: - -Once per hour, on the hour (default): - -```yaml -sensor: - - platform: fastdotcom -``` - -Every half hour of every day: - -```yaml -sensor: - - platform: fastdotcom - minute: - - 0 - - 30 -``` - -{% configuration %} -second: - description: Specify the second(s) of the hour to schedule the speedtest. Use a list for multiple entries. - required: false - default: 0 - type: list -minute: - description: Specify the minute(s) of the hour to schedule the speedtest. Use a list for multiple entries. - required: false - default: 0 - type: list -hour: - description: Specify the hour(s) of the day to schedule the speedtest. Use a list for multiple entries. - required: false - type: list -manual: - description: True or False to turn manual mode on or off. Manual mode will disable scheduled speedtests. - required: false - default: false - type: boolean -{% endconfiguration %} - -There is also a service named `sensor.update_fastdotcom` that you can use to run a fast.com speedtest on demand. You can turn on manual mode to disable the scheduled speedtests. - -## {% linkable_title Notes %} - -- When running on Raspberry Pi, just note that the maximum speed is limited by its 100 Mbit/s LAN adapter. diff --git a/source/_components/sensor.fedex.markdown b/source/_components/sensor.fedex.markdown index 00e8a6c1b62c..d19e870756f6 100644 --- a/source/_components/sensor.fedex.markdown +++ b/source/_components/sensor.fedex.markdown @@ -32,11 +32,11 @@ Configuration options for the FedEx Sensor: - **username** (*Required*): The username to access the FedEx Delivery Manager service. - **password** (*Required*): The password for the given username. - **name** (*Optional*): Name the sensor. -- **update_inverval** (*Optional*): Minimum time interval between updates. Default is 1 hour. Supported formats: - - `update_interval: 'HH:MM:SS'` - - `update_interval: 'HH:MM'` +- **scan_inverval** (*Optional*): Minimum time interval between updates. Default is 1 hour. Supported formats: + - `scan_interval: 'HH:MM:SS'` + - `scan_interval: 'HH:MM'` - Time period dictionary, e.g.: -
update_interval:
+    
scan_interval:
         # At least one of these must be specified:
         days: 0
         hours: 0
diff --git a/source/_components/sensor.fibaro.markdown b/source/_components/sensor.fibaro.markdown
deleted file mode 100644
index 382173d1d6cb..000000000000
--- a/source/_components/sensor.fibaro.markdown
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: page
-title: "Fibaro sensors"
-description: "Instructions on how to integrate Fibaro sensors into Home Assistant."
-date: 2018-11-14 23:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: fibaro.png
-ha_category: Light
-ha_iot_class: "Local Push"
-ha_release: 0.83
----
-
-The `fibaro` platform allows you to get data from your [Fibaro](http://fibaro.com/) sensors connected to your Fibaro HCL or HC2 from within Home Assistant.
-
-They will be automatically discovered if the `fibaro` component is loaded.
diff --git a/source/_components/sensor.filter.markdown b/source/_components/sensor.filter.markdown
index 98f13fb6733c..e916082f7825 100644
--- a/source/_components/sensor.filter.markdown
+++ b/source/_components/sensor.filter.markdown
@@ -70,7 +70,7 @@ filters:
   type: list
   keys:
     filter:
-      description: Algorithm to be used to filter data. Available filters are  `lowpass`, `outlier`, `range`, `throttle` and `time_simple_moving_average`.
+      description: Algorithm to be used to filter data. Available filters are  `lowpass`, `outlier`, `range`, `throttle`, `time_throttle` and `time_simple_moving_average`.
       required: true
       type: string
     window_size:
@@ -149,6 +149,14 @@ To adjust the rate you need to set the window_size. To throttle a sensor down to
 
 This filter is relevant when you have a sensor which produces states at a very high-rate, which you might want to throttle down for storing or visualization purposes. 
 
+### {% linkable_title Time Throttle %}
+
+The Time Throttle filter (`time_throttle`) will only update the state of the sensor for the first state in the window. This means the filter will skip all other values.
+
+To adjust the rate you need to set the window_size. To throttle a sensor down to 1 value per minute, the `window_size` should be set to 00:01.
+
+This filter is relevant when you have a sensor which produces states at a very high inconstant rate, which you might want to throttle down to some constant rate for storing or visualization purposes. 
+
 ### {% linkable_title Time Simple Moving Average %}
 
 The Time SMA filter (`time_simple_moving_average`) is based on the paper [Algorithms for Unevenly Spaced Time Series: Moving Averages and Other Rolling Operators](http://www.eckner.com/papers/Algorithms%20for%20Unevenly%20Spaced%20Time%20Series.pdf) by Andreas Eckner. 
diff --git a/source/_components/sensor.github.markdown b/source/_components/sensor.github.markdown
new file mode 100644
index 000000000000..2d4ddba2e0be
--- /dev/null
+++ b/source/_components/sensor.github.markdown
@@ -0,0 +1,57 @@
+---
+layout: page
+title: "GitHub Sensor"
+description: "How to integrate the GitHub sensor into Home Assistant."
+date: 2018-12-24 18:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: github.png
+ha_category: Sensor
+ha_release: 0.88
+ha_iot_class: "Cloud Polling"
+---
+
+The GitHub sensor integrates data from [GitHub](https://github.com/) to monitor your favorite repositories.
+
+## {% linkable_title Setup %}
+
+To set up this sensor you will need a [personal access token](https://github.com/settings/tokens). You will need to check the `repo` scope for the sensor to function.
+
+## {% linkable_title Configuration %}
+
+To enable this platform, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+sensor:
+  - platform: github
+    access_token: !secret github_access_token
+    repositories:
+      - path: 'home-assistant/home-assistant'
+```
+
+{% configuration %}
+access_token:
+  description: Your GitHub Access Token
+  required: true
+  type: string
+url:
+  description: If you are using a GitHub Enterprise server, add it's URL here. For example, `https://mygithubserver.com`
+  required: false
+  type: string
+repositories:
+  description: A list of repository paths and optionally a name
+  required: true
+  type: list
+  keys:
+    path:
+      description: Path to the repository. For Home Assistant this will be `home-assistant/home-assistant`
+      required: true
+      type: string
+    name:
+      description: Name of the sensor. Gives the sensor a custom name in Home Assistant. Defaults to the repository name from GitHub if not specified.
+      required: false
+      type: string
+{% endconfiguration %}
diff --git a/source/_components/sensor.gitlab_ci.markdown b/source/_components/sensor.gitlab_ci.markdown
index 33d08fa1bb6e..82f3c16887db 100644
--- a/source/_components/sensor.gitlab_ci.markdown
+++ b/source/_components/sensor.gitlab_ci.markdown
@@ -13,12 +13,13 @@ ha_release: 0.80
 ha_iot_class: "Cloud Polling"
 ---
 
-The GitLab_CI sensor integrates results reported by CI/CD Pipeline Jobs in [GitLab](https://gitlab.com/).
+The `gitlab_ci` sensor platform integrates results reported by CI/CD Pipeline Jobs in [GitLab](https://gitlab.com/).
 
 ## {% linkable_title Setup %}
 
-You will need a GitLab repository ID. On the "Details" page for your GitLab repo, just below the project name is "Project ID:"
-Alternatively, you can use "{GitLab_Username}/{GitLab_RepositoryName}", ex: "MyCoolUsername/MyCoolRepository"
+You will need a GitLab repository ID. On the **Details** page for your GitLab repo, just below the project name is **Project ID:**.
+
+Alternatively, you can use `GitLab_Username/GitLab_RepositoryName`, e.g., `MyCoolUsername/MyCoolRepository`.
 
 A GitLab token with at least the API permission scope is needed, which can be created on the [GitLab Personal Access Tokens](https://gitlab.com/profile/personal_access_tokens) page of your GitLab User Settings.
 
@@ -30,25 +31,27 @@ To enable this platform, please add the following to your `configuration.yaml` f
 # Example configuration.yaml entry
 sensor:
   - platform: gitlab_ci
-    gitlab_id: '1234567'
-    token: 'aaaaaaaaaaAAAAAAAAAA'
+    gitlab_id: YOUR_GITLAB_ID
+    token: YOUR_GITLAB_TOKEN
 ```
 
 {% configuration %}
 gitlab_id:
-  description: GitLab repository ID or "username/repository"
+  description: The GitLab repository identifier.
   required: true
   type: string
 token:
-  description: GitLab API Token
+  description: The GitLab API token.
   required: true
   type: string
 name:
-  description: Sensor name as it appears in Home Assistant. Defaults to 'GitLab CI Status'.
+  description: Sensor name as it appears in Home Assistant.
   required: false
   type: string
+  default: GitLab CI Status
 url:
-  description: GitLab repository URL. Defaults to 'https://gitlab.com'. Used for self-hosted repositories.
+  description: The GitLab repository URL. Used for self-hosted repositories.
   required: false
   type: string
+  default: https://gitlab.com
 {% endconfiguration %}
diff --git a/source/_components/sensor.glances.markdown b/source/_components/sensor.glances.markdown
index 32759b1912a7..a8a10feddea1 100644
--- a/source/_components/sensor.glances.markdown
+++ b/source/_components/sensor.glances.markdown
@@ -35,6 +35,8 @@ $ curl -X GET http://IP_ADDRESS:61208/api/2/mem/free
 {"free": 203943936}
 ```
 
+If this doesn't work, try changing the `2` for `3`, if you have installed the latest verison of Glances.
+
 For details about auto-starting `glances`, please refer to [Start Glances through Systemd](https://github.com/nicolargo/glances/wiki/Start-Glances-through-Systemd).
 
 ## {% linkable_title Configuration %}
@@ -123,6 +125,8 @@ resources:
       description: The number of threads.
     process_sleeping:
       description: The number of sleeping processes.
+    cpu_use_percent:
+      description: The used CPU in percent.
     cpu_temp:
       description: The CPU temperature (may not be available on all platforms).
     docker_active:
diff --git a/source/_components/sensor.google_travel_time.markdown b/source/_components/sensor.google_travel_time.markdown
index b9d1c5b55964..4439d4ebe711 100644
--- a/source/_components/sensor.google_travel_time.markdown
+++ b/source/_components/sensor.google_travel_time.markdown
@@ -54,7 +54,7 @@ name:
   required: false
   type: string
 travel_mode:
-  description: "You can choose between: `driving`, `walking`, `bicycling` or `transit`."
+  description: "You can choose between: `driving`, `walking`, `bicycling` or `transit`. This method is now deprecated, use `mode` under `options`."
   required: false
   type: string
 options:
@@ -83,7 +83,7 @@ options:
       description: "Indicate what google should avoid when calculating the travel time, you can choose from: `tolls`, `highways`, `ferries`, `indoor`."
       required: false
       type: string
-    transit_model:
+    transit_mode:
       description: "If you opted for `transit` at `travel_mode`, you can use this variable to specify which public transport you want to use: `bus`, `subway`, `train`, `tram` or `rail`."
     transit_routing_preference:
       description: "for the travel time calculation for public transport you can also specify the preference for: `less_walking` or `fewer_transfers`."
@@ -139,16 +139,15 @@ sensor:
 
 ## {% linkable_title Updating sensors on-demand using Automation %}
 
-You can also use the `sensor.google_travel_sensor_update` service to update the sensor on-demand. For example, if you want to update `sensor.morning_commute` every 2 minutes on weekday mornings, you can use the following automation:
+You can also use the `homeassistant.update` service to update the sensor on-demand. For example, if you want to update `sensor.morning_commute` every 2 minutes on weekday mornings, you can use the following automation:
 
 ```yaml
 - id: update_morning_commute_sensor
   alias: "Commute - Update morning commute sensor"
   initial_state: 'on'
   trigger:
-    - platform: time
+    - platform: time_pattern
       minutes: '/2'
-      seconds: 00
   condition:
     - condition: time
       after: '08:00:00'
@@ -161,7 +160,7 @@ You can also use the `sensor.google_travel_sensor_update` service to update the
         - thu
         - fri
   action:
-    - service: sensor.google_travel_sensor_update
+    - service: homeassistant.update
       data:
         entity_id: sensor.morning_commute
 ```
diff --git a/source/_components/sensor.greeneye_monitor.markdown b/source/_components/sensor.greeneye_monitor.markdown
deleted file mode 100644
index ed0de5f72687..000000000000
--- a/source/_components/sensor.greeneye_monitor.markdown
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: page
-title: "GreenEye Monitor Sensors"
-description: "Instructions on how to integrate the various sensors on your Greeneye Monitor into Home Assistant."
-date: 2018-09-02 14:13
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: brultech.png
-ha_category: Sensor
-ha_iot_class: "Local Push"
-ha_release: 0.82
----
-
-The [GreenEye Monitor (GEM)](http://www.brultech.com/greeneye/) integration for Home Assistant allows you to create sensors for the various data channels of the GEM.
-
-Add sensors via the configuration for the hub [GreenEye Monitor component](/components/greeneye_monitor/).
diff --git a/source/_components/sensor.gtfs.markdown b/source/_components/sensor.gtfs.markdown
index 08a8d4258ea7..b2b426fd48a4 100644
--- a/source/_components/sensor.gtfs.markdown
+++ b/source/_components/sensor.gtfs.markdown
@@ -21,9 +21,7 @@ Here are some examples:
 
 - [Bay Area Rapid Transit (BART)](http://www.bart.gov/schedules/developers/gtfs) - The light rail system for the San Francisco Bay Area.
 - [Metropolitan Transit Authority of New York City (MTA)](http://web.mta.info/developers/) - Provides separate data feeds for subway, bus, LIRR and Metro-North of the greater New York City metropolitan region.
-- [GBRail.info](http://www.gbrail.info/) - Provides data feeds for most if not all rail companies in Britain.
-- [Official Timetable Switzerland](http://www.fahrplanfelder.ch/en/timetable-data.html) - The official timetable data for Switzerland.
-- [Public Transport Victoria (Australia)](https://www.data.vic.gov.au/data/dataset/ptv-timetable-and-geographic-information-2015-gtfs) - Official PTV GTFS dataset.
+- [Official Timetable Switzerland](https://opentransportdata.swiss/en/dataset/timetable-2019-gtfs) - The official timetable data for Switzerland in 2019.
 
 You need to download a GTFS ZIP file and put it into a folder named `gtfs` in your configuration directory. For ease of use, it is suggested that you rename the file to just the agency/data source name (i.e. `bart.zip` instead of `google_transit_20160328_v1.zip`). You can also unzip and place a folder in the `gtfs` folder.
 
diff --git a/source/_components/sensor.habitica.markdown b/source/_components/sensor.habitica.markdown
deleted file mode 100644
index 4e94148bb9f9..000000000000
--- a/source/_components/sensor.habitica.markdown
+++ /dev/null
@@ -1,21 +0,0 @@
----
-layout: page
-title: "Habitica Sensor"
-description: "Instructions on enabling Habitica support for your Home Assistant"
-date: 2018-08-09 00:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: habitica.png
-ha_category: Sensor
-ha_iot_class: "Cloud Polling"
-ha_version: 0.78
----
-
-The `habitica` sensor platform allows you to view and monitor your player data from [Habitica](https://habitica.com/) in Home Assistant.
-
-

-You must have the [`habitica` component](/components/habitica/) -configured to use this platform. After configuring that component, sensors specified there will automatically appear. -

diff --git a/source/_components/sensor.hive.markdown b/source/_components/sensor.hive.markdown deleted file mode 100644 index 0d4d087516f8..000000000000 --- a/source/_components/sensor.hive.markdown +++ /dev/null @@ -1,28 +0,0 @@ ---- -layout: page -title: "Hive Sensor" -description: "Instructions on how to integrate Hive Sensors with Home Assistant." -date: 2017-09-24 21:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: hive.png -ha_category: Sensor -ha_release: 0.59 -ha_iot_class: "Cloud Polling" ---- - - -The `hive` sensor component exposes Hive data as a sensor. - -The platform exposes the following sensors: - -- Hive Hub Online Status -- Hive Outside Temperature - -

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

- - diff --git a/source/_components/sensor.homematic.markdown b/source/_components/sensor.homematic.markdown deleted file mode 100644 index 005011cea610..000000000000 --- a/source/_components/sensor.homematic.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Homematic Sensor" -description: "Instructions on how to integrate Homematic sensors within Home Assistant." -date: 2016-06-28 08:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: homematic.png -ha_category: Sensor -ha_release: 0.23 -ha_iot_class: "Local Push" ---- - - -The `homematic` sensor platform lets you observe the state of [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 diff --git a/source/_components/sensor.homematicip_cloud.markdown b/source/_components/sensor.homematicip_cloud.markdown deleted file mode 100644 index 0f91b4aa20dd..000000000000 --- a/source/_components/sensor.homematicip_cloud.markdown +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: page -title: "HomematicIP Cloud Sensor" -description: "Instructions on how to integrate HomematicIP sensors within Home Assistant." -date: 2018-04-02 13:40 -sidebar: true -comments: false -sharing: true -footer: true -logo: homematicip_cloud.png -ha_category: Sensor -ha_release: 0.66 -ha_iot_class: "Cloud Push" ---- - -The `homematicip_cloud` sensor platform allows you to control -[HomematicIP](http://www.homematicip.de) sensors through Home Assistant. - -Devices will be configured automatically. Please refer to the -[component](/components/homematicip_cloud/) configuration on how to setup -HomematicIP Cloud. diff --git a/source/_components/sensor.ihc.markdown b/source/_components/sensor.ihc.markdown index 9127ac13b35b..e5fe8027ee06 100644 --- a/source/_components/sensor.ihc.markdown +++ b/source/_components/sensor.ihc.markdown @@ -23,7 +23,7 @@ project and setup as sensors: - Dataline Humidity - Will insert 1 humidity and 2 temperature sensors (calculated dewpoint) - Dataline Lux - will insert 1 light and 1 temperature sensor -To manually configure IHC sensors insert the "sensors" +To manually configure IHC sensors insert the "sensor" section in your IHC configuration: ```yaml @@ -32,7 +32,7 @@ ihc: username: YOUR_USERNAME2 password: YOUR_PASSWORD2 info: true - sensors: + sensor: - id: 12345 name: Temperatur_living_room unit_of_measurement: '°C' @@ -43,7 +43,7 @@ ihc: ``` {% configuration %} -sensors: +sensor: description: List of sensors to setup manually. required: false type: map diff --git a/source/_components/sensor.iliad_italy.markdown b/source/_components/sensor.iliad_italy.markdown new file mode 100644 index 000000000000..7c3c658e8e7e --- /dev/null +++ b/source/_components/sensor.iliad_italy.markdown @@ -0,0 +1,41 @@ +--- +layout: page +title: "Iliad Italy" +description: "Instructions on how to integrate Iliad Italy's data inside Home Assistant" +date: 2018-12-29 00:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Sensor +logo: iliad.png +ha_iot_class: "Cloud Polling" +ha_release: 0.87 +--- + +The `iliad_italy` sensor will give you the data from [Iliad Italy's](https://www.iliad.it/) website inside Home Assistant. + +## {% linkable_title Configuration %} + +To enable this sensor, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: iliad_italy + username: USERNAME + password: PASSWORD +``` + +{% configuration %} +username: + description: The username you use to check Iliad.it. + required: true + type: string +password: + description: The password you use to check Iliad.it. + required: true + type: string +{% endconfiguration %} + +The data is coming from the [iliad.it](https://www.iliad.it/) website. diff --git a/source/_components/sensor.imap.markdown b/source/_components/sensor.imap.markdown index 27ae8f63c78f..57fe0ec41b92 100644 --- a/source/_components/sensor.imap.markdown +++ b/source/_components/sensor.imap.markdown @@ -24,8 +24,7 @@ To enable this sensor, add the following lines to your `configuration.yaml` file # Example configuration.yaml entry sensor: - platform: imap - server: imap.gmail.com - port: 993 + server: YOUR_IMAP_SERVER username: YOUR_USERNAME password: YOUR_PASSWORD ``` @@ -57,4 +56,30 @@ folder: required: false default: inbox type: string +search: + description: The IMAP search to perform on the watched folder. + required: false + default: UnSeen UnDeleted + type: string {% endconfiguration %} + +### {% linkable_title Configuring IMAP Searches %} + +By default, this component will count unread emails. By configuring the search string, you can count other results, for example: + +* `ALL` to count all emails in a folder +* `FROM`, `TO`, `SUBJECT` to find emails in a folder (see [IMAP RFC for all standard options](https://tools.ietf.org/html/rfc3501#section-6.4.4)) +* [Gmail's IMAP extensions](https://developers.google.com/gmail/imap/imap-extensions) allow raw Gmail searches, like `X-GM-RAW "in: inbox older_than:7d"` to show emails older than one week in your inbox. Note that raw Gmail searches will ignore your folder configuration and search all emails in your account! + +#### {% linkable_title Full configuration sample with search %} + +```yaml +# Example configuration.yaml entry +sensor: + - platform: imap + server: imap.gmail.com + port: 993 + username: YOUR_USERNAME + password: YOUR_PASSWORD + search: FROM , SUBJECT +``` diff --git a/source/_components/sensor.imap_email_content.markdown b/source/_components/sensor.imap_email_content.markdown index 706b10b3e250..6b198bb06ad9 100644 --- a/source/_components/sensor.imap_email_content.markdown +++ b/source/_components/sensor.imap_email_content.markdown @@ -9,11 +9,10 @@ sharing: true footer: true logo: smtp.png ha_category: Mailbox -ha_iot_class: "Local Polling" +ha_iot_class: "Cloud Push" ha_release: 0.25 --- - The `imap_email_content` sensor platform will read emails from an IMAP email server and report them as a state change within Home Assistant. This is useful if you have a device that only reports its state via email. ## {% linkable_title Configuration %} @@ -28,6 +27,7 @@ sensor: port: 993 username: USERNAME password: PASSWORD + folder: senders: - example@gmail.com ``` @@ -54,6 +54,11 @@ password: description: Password for the IMAP server. required: true type: string +folder: + description: Folder to get mails from. + required: false + default: INBOX + type: string senders: description: A list of sender email addresses that are allowed to report state via email. Only emails received from these addresses will be processed. required: true @@ -72,3 +77,29 @@ value_template: date: description: The date and time the email was sent. {% endconfiguration %} + +## {% linkable_title Example %} + +The following example shows the usage of the IMAP email content sensor to scan the subject of an email for text, in this case, an email from the APC SmartConnect service which tells whether the UPS is running on battery or not. + +{% raw %} +```yaml +sensor: + - platform: imap_email_content + server: imap.gmail.com + name: house_electricity + port: 993 + username: MY_EMAIL_USERNAME + password: MY_EMAIL_PASSWORD + senders: + - no-reply@smartconnect.apc.com + value_template: >- + {% if 'UPS On Battery' in subject %} + power_out + {% elif 'Power Restored' in subject %} + power_on + {% endif %} +``` +{% endraw %} + +The same template structure can scan the date, body, or sender for matching text before setting the state of the sensor. diff --git a/source/_components/sensor.insteon.markdown b/source/_components/sensor.insteon.markdown deleted file mode 100644 index ab5116050e3b..000000000000 --- a/source/_components/sensor.insteon.markdown +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: page -title: "Insteon Sensor" -description: "Instructions on how to setup the Insteon sensors locally within Home Assistant." -date: 2018-08-20 16:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: insteon.png -ha_category: Sensor -ha_iot_class: "Local Push" -ha_version: 0.77 ---- - -The `insteon` 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 diff --git a/source/_components/sensor.integration.markdown b/source/_components/sensor.integration.markdown new file mode 100644 index 000000000000..30c18300146a --- /dev/null +++ b/source/_components/sensor.integration.markdown @@ -0,0 +1,84 @@ +--- +layout: page +title: "Integration Sensor" +description: "Instructions on how to integrate Integration Sensor into Home Assistant." +date: 2019-01-02 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: + - Utility + - Energy +ha_release: 0.87 +ha_iot_class: "Local Push" +logo: integral.png +ha_qa_scale: internal +--- + +The `integration` platform provides the [Riemann sum](https://en.wikipedia.org/wiki/Riemann_sum) of the values provided by a source sensor. The Riemann sum is an approximation of an **integral** by a finite sum. In this implementation, the default is the Trapezoidal method, but Left and Right methods can optionally be used. + +## {% linkable_title Configuration %} + +To enable Integration Sensor in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: integration + source: sensor.current_power +``` + +{% configuration %} +source: + description: The entity ID of the sensor providing numeric readings + required: true + type: string +name: + description: Name to use in the frontend. + required: false + default: source entity ID meter + type: string +round: + description: Round the calculated integration value to at most N decimal places. + required: false + default: 3 + type: integer +unit_prefix: + description: Metric unit to prefix the integration result. Available units are k, M, G, T. + required: false + default: None + type: unit +unit_time: + description: SI unit of time to integrate over. Available units are s, min, h, d. + required: false + default: h + type: unit +unit: + description: Unit of Measurement to be used for the integration. + required: false + type: string +method: + description: Riemann sum method to be used. Available methods are trapezoidal, left, right. + required: false + default: trapezoidal +{% endconfiguration %} + +If 'unit' is set then 'unit_prefix' and 'unit_time' are ignored. + +## {% linkable_title Energy %} + +An `integration` sensor is quite useful in energy billing scenarios since energy is generally billed in kWh and many sensors provide power in W (Watts). + +If you have a sensor that provides you with power readings in Watts (uses W as `unit_of_measurement`), then you can use the `integration` sensor to track how much energy is being spent. Take the next configuration as an example: + +```yaml +sensor: + - platform: integration + source: sensor.current_power + name: energy_spent + unit_prefix: k + round: 2 +``` + +This configuration will provide you with `sensor.energy_spent` who will have your energy in kWh. diff --git a/source/_components/sensor.iota.markdown b/source/_components/sensor.iota.markdown deleted file mode 100644 index 365796a68d66..000000000000 --- a/source/_components/sensor.iota.markdown +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: page -title: "IOTA sensor" -description: "Instructions on how to integrate IOTA wallets sensors with Home Assistant." -date: 2017-12-31 13:29 -sidebar: true -comments: false -sharing: true -footer: true -logo: iota.png -ha_category: Finance -ha_release: 0.62 -ha_iot_class: "Cloud Polling" ---- - -The sensors are automatically created if the [IOTA hub](/components/iota/) is -present. - -Available sensors: - -- Wallet balance -- Node information diff --git a/source/_components/sensor.isy994.markdown b/source/_components/sensor.isy994.markdown deleted file mode 100644 index 0be49fb0e153..000000000000 --- a/source/_components/sensor.isy994.markdown +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: page -title: "ISY994 Sensor" -description: "Instructions on how to integrate ISY994 sensors into Home Assistant." -date: 2016-09-03 23:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: universal_devices.png -ha_category: Sensor -ha_iot_class: "Local Push" ---- - -The `isy994` platform allows you to get data from your [ISY994](https://www.universal-devices.com/residential/isy994i-series/) sensor from within Home Assistant. - -They will be automatically discovered if the `isy994` component is loaded. diff --git a/source/_components/sensor.jewish_calendar.markdown b/source/_components/sensor.jewish_calendar.markdown index 2d0e6c2be496..6aa67ab53460 100644 --- a/source/_components/sensor.jewish_calendar.markdown +++ b/source/_components/sensor.jewish_calendar.markdown @@ -28,7 +28,7 @@ sensor: language: required: false default: english - description: Whether to represent the sensors in Hebrew (א' תשרי תשע"ט) or English characters (1 Tishri 5779). + description: Whether to represent the sensors in Hebrew (א' תשרי תשע"ט) or English characters (1 Tishrei 5779). Valid options are 'english' and 'hebrew'. type: string latitude: required: false @@ -43,8 +43,18 @@ longitude: diaspora: required: false description: Consider the location as diaspora or not for calculation of the weekly portion and holidays. - default: False + default: false type: string +candle_lighting_minutes_before_sunset: + required: false + description: Number of minutes before sunset to report as candle lighting time. + default: 18 + type: integer +havdalah_minutes_after_sunset: + required: false + description: Number of minutes after sunset to report as havdalah time. If this is set to 0, uses the time that the sun is 8.5 degrees below the horizon (same as the 'three_stars' sensor). If non-zero, this value is added as an offset to the time of sunset to report havdalah. + default: 0 + type: integer sensors: required: false default: date @@ -68,17 +78,28 @@ sensors: description: Time of the Plag Hamincha. first_stars: description: Time at which the first stars are visible (Tset Hakochavim - צאת הכוכבים). + upcoming_shabbat_candle_lighting: + description: The time of candle lighting for either the current Shabbat (if it is currently Shabbat) or the immediately upcoming Shabbat. + upcoming_shabbat_havdalah: + description: The time of havdalah for either the current Shabbat (if it is currently Shabbat) or the immediately upcoming Shabbat. If it is currently a three-day holiday, this value *could* be None (i.e. if holiday is Sat./Sun./Mon. and it's Saturday, there will be no shabbat_havdalah value. See comments in hdate library for details.) + upcoming_candle_lighting: + description: The time of candle lighting for either the current Shabbat OR Yom Tov, or the immediately upcoming Shabbat OR Yom Tov. If, for example, today is Sunday, and Rosh Hashana is Monday night through Wednesday night, this reports the candle lighting for Rosh Hashana on Monday night. This avoids a situation of triggering pre-candle-lighting automations while it is currently Yom Tov. To always get the Shabbat times, use the upcoming_shabbat_candle_lighting sensor. + upcoming_havdalah: + description: The time of havdalah for either the current Shabbat OR Yom Tov, or the immediately upcoming Shabbat OR Yom Tov. If, for example, today is Sunday, and Rosh Hashana is Monday night through Wednesday night, this reports the havdalah for Rosh Hashana on Wednesday night. To always get the Shabbat times, use the upcoming_shabbat_havdalah sensor. + issur_melacha_in_effect: + description: A boolean sensor indicating if melacha is currently not permitted. The value is true when it is currently Shabbat or Yom Tov and false otherwise. + {% endconfiguration %} ### {% linkable_title Holyness levels %} 1. Mido'rayta - by Torah ordination (Rosh Hashana, Yom Kippur, Pesach, Shavuot, Sukkot) -2. Erev Yom Kippur +2. Erev Yom Tov 3. Hol Hamo'ed 4. Hanukka and Purim 5. Fast days -6. Yom Yerushalayim and Yom Haatsmaut -7. Lag ba'omer and Tu bishvat +6. Modern holidays, e.g. Yom Yerushalayim and Yom Haatsmaut +7. Minor holidays, e.g. Lag ba'omer and Tu bishvat 8. Memorial days: yom hazikaron and yom hashoah 9. Days mentioned by the Israeli parliament: Rabin memorial day, Ze'ev Zhabotinsky day, etc. @@ -90,6 +111,7 @@ sensor: - platform: jewish_calendar language: english diaspora: true + havdalah_minutes_after_sunset: 50 sensors: - date - weekly_portion @@ -100,4 +122,6 @@ sensor: - mga_end_shma - plag_mincha - first_stars + - upcoming_candle_lighting + - upcoming_havdalah ``` diff --git a/source/_components/sensor.juicenet.markdown b/source/_components/sensor.juicenet.markdown deleted file mode 100644 index df9929c658e5..000000000000 --- a/source/_components/sensor.juicenet.markdown +++ /dev/null @@ -1,30 +0,0 @@ ---- -layout: page -title: "Juicenet Sensor" -description: "Instructions on how to setup WiFi-equipped Juicenet charging stations with Home Assistant." -date: 2015-01-20 22:36 -sidebar: true -comments: false -sharing: true -footer: true -logo: juicenet.png -ha_category: Energy -ha_release: 0.47 ---- - - -The `juicenet` sensor platform allows you to get data from your [JuiceNet](https://emotorwerks.com/products/juicenet/) sensors. - -The requirement is that you have setup [Juicenet](/components/juicenet/). - -### {% linkable_title Added sensors %} - -These sensors will be added for each juicenet device in your account: - -- Status -- Temperature (inside the device) -- Voltage -- Amps -- Watts -- Charge time of session -- Energy added this session diff --git a/source/_components/sensor.kira.markdown b/source/_components/sensor.kira.markdown deleted file mode 100644 index 1306cf161b05..000000000000 --- a/source/_components/sensor.kira.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Kira Sensor" -description: "Instructions on how to integrate Kira modules into Home Assistant." -date: 2017-05-07 17:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: keene.png -ha_category: Sensor -ha_iot_class: "Local Push" -ha_release: 0.45 ---- - -The `kira` platform allows you to respond to your [Kira](https://www.keene.co.uk/keene-ir-anywhere-single-worldwide.html) modules from within Home Assistant. This enables Home Assistant to respond to infrared inputs from a standard remote control. - -For configuration information see the [Kira component](/components/kira/) documentation. diff --git a/source/_components/sensor.kwb.markdown b/source/_components/sensor.kwb.markdown index e8d5493674cc..5ed109dff6a6 100644 --- a/source/_components/sensor.kwb.markdown +++ b/source/_components/sensor.kwb.markdown @@ -27,7 +27,7 @@ Direct connection via serial port: name: kwb device: "/dev/ttyUSB0" type: serial - raw: False + raw: false ``` Telnet terminal server with a serial-ethernet converter: @@ -39,7 +39,7 @@ Telnet terminal server with a serial-ethernet converter: host: port: 23 type: tcp - raw: False + raw: false ``` Take a good look at which configuration variables are for `TCP` use or for `serial` use. diff --git a/source/_components/sensor.luftdaten.markdown b/source/_components/sensor.luftdaten.markdown deleted file mode 100644 index 86e59b5e006c..000000000000 --- a/source/_components/sensor.luftdaten.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Luftdaten Sensor" -description: "Instructions on how to setup Luftdaten sensor in Home Assistant." -date: 2017-11-01 00:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: luftdaten.png -ha_category: Health -ha_release: 0.57 -ha_iot_class: "Cloud Polling" -ha_qa_scale: gold ---- - -The `luftdaten` sensor platform will query the open data API of [luftdaten.info](http://luftdaten.info) to monitor air quality and other weather data from a specific (self build) sensor station. - -You must have the [`luftdaten` component](/components/luftdaten/) configured to use this platform. After configuring that component, sensors will automatically appear. diff --git a/source/_components/sensor.lyft.markdown b/source/_components/sensor.lyft.markdown index 6241bad852f9..49a40eac20bf 100644 --- a/source/_components/sensor.lyft.markdown +++ b/source/_components/sensor.lyft.markdown @@ -25,7 +25,6 @@ sensor: - platform: lyft client_id: CLIENT_ID client_secret: CLIENT_SECRET - start_latitude: 37.8116380 ``` {% configuration %} @@ -39,12 +38,14 @@ client_secret: type: string start_latitude: description: The starting latitude for a trip. - required: true + required: false type: float + default: "The latitude defined under the `homeassistant` key in `configuration.yaml`." start_longitude: description: The starting longitude for a trip. - required: true + required: false type: float + default: "The longitude defined under the `homeassistant` key in `configuration.yaml`." end_latitude: description: The ending latitude for a trip. While `end_latitude` is optional, providing an `end_latitude`/`end_longitude` allows price estimates as well as time. required: false diff --git a/source/_components/sensor.magicseaweed.markdown b/source/_components/sensor.magicseaweed.markdown index 4160439956e1..abb277f7070e 100644 --- a/source/_components/sensor.magicseaweed.markdown +++ b/source/_components/sensor.magicseaweed.markdown @@ -44,7 +44,7 @@ name: required: false default: MSW. type: string -hour: +hours: description: List of hours you would like to receive data for. required: false default: Defaults to current forecast. diff --git a/source/_components/sensor.markdown b/source/_components/sensor.markdown index a3cc20199879..791be58a7345 100644 --- a/source/_components/sensor.markdown +++ b/source/_components/sensor.markdown @@ -23,6 +23,7 @@ The way these sensors are displayed in the frontend can be modified in the [cust - **illuminance**: The current light level in lx or lm. - **temperature**: Temperature in °C or °F. - **pressure**: Pressure in hPa or mbar. +- **timestamp**: Datetime object or timestamp string.

diff --git a/source/_components/sensor.mercedesme.markdown b/source/_components/sensor.mercedesme.markdown deleted file mode 100644 index 205955639dcf..000000000000 --- a/source/_components/sensor.mercedesme.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Mercedes me Sensor" -description: "Instructions on how to integrate Mercedes me sensors into Home Assistant." -date: 2018-01-27 17:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: mercedesme.png -ha_category: Car -ha_iot_class: "Cloud Push" -ha_release: 0.63 ---- - -The `mercedesme` sensor platform allows you to get data from your [Mercedes me connected car](https://www.mercedes-benz.com/en/mercedes-me/) sensors from within Home Assistant. - -The sensor platform will be automatically configured if Mercedes me component is configured. - -For more configuration information see the [Mercedes me component](/components/mercedesme/) documentation. diff --git a/source/_components/sensor.meteo_france.markdown b/source/_components/sensor.meteo_france.markdown deleted file mode 100644 index 23a139e2dcad..000000000000 --- a/source/_components/sensor.meteo_france.markdown +++ /dev/null @@ -1,85 +0,0 @@ ---- -layout: page -title: "Météo-France Sensor" -description: "Show 1hr rain forecast from Météo-France." -date: 2018-10-18 08:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: meteo-france.png -ha_category: Sensor -ha_release: 0.82 -ha_iot_class: "Cloud Polling" ---- - -The `meteo_france` platform uses the [Météo-France](http://www.meteofrance.com/) web service as a source for meteorological data for your location. The location is based on the `postal_code` configured in your `configuration.yaml` file. - -## {% linkable_title Configuration %} - -To add Météo-France to your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: meteo_france - postal_code: '76000' - monitored_conditions: - - temperature - - weather - - wind_speed - - uv - - next_rain - - freeze_chance - - rain_chance - - snow_chance - - thunder_chance -``` - -{% configuration %} - postal_code: - description: Postal code of the city. - required: true - type: string - monitored_conditions: - description: The conditions types to monitor. - required: true - type: list - keys: - temperature: - description: The current temperature. - weather: - description: A human-readable text summary of the current conditions. - wind_speed: - description: The wind speed. - uv: - description: The current UV index. - next_rain: - description: Time to the next rain if happening for the next hour. (see note below) - freeze_chance: - description: Probability of temperature below 0°C for the day. - rain_chance: - description: Probability of rain for the day. - snow_chance: - description: Probability of snow for the day. - thunder_chance: - description: Probability of thunderstorm for the day. -{% endconfiguration %} - - -### {% linkable_title About `next_rain` condition sensor %} - -

- The 1 hour rain forecast is supported for more than 75% of metropolitan France.
- You can check if your city is covered on the [Météo-France website](http://www.meteofrance.com/previsions-meteo-france/previsions-pluie) -

- -The `next_rain` sensor value is the time to next rain, from 0 to 55min. -If no rain is forecasted for the next hour, value will be "No rain". - -Attributes also give the forecast for the next hour in 5min intervals. -Possible value for each intervals attributes are : -- 1 No rain -- 2 Light rain -- 3 Moderate rain -- 4 Heavy rain diff --git a/source/_components/sensor.miflora.markdown b/source/_components/sensor.miflora.markdown index f406300f80fc..c20f0155d58b 100644 --- a/source/_components/sensor.miflora.markdown +++ b/source/_components/sensor.miflora.markdown @@ -24,7 +24,7 @@ Before configuring Home Assistant you need a Bluetooth backend and the MAC addre - On [Hass.io](/hassio/installation/): Miflora will work out of the box. - On a [generic Docker installation](/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` library (via pip). When using a virtual environment, make sure to use install the library in the right one. + - Preferred solution: Install the `bluepy` library (via pip). When using a virtual environment, make sure to install the library in the right one.  - Fallback solution: Install `gatttool` via your package manager. Depending on the distribution, the package name might be: `bluez`, `bluetooth`, `bluez-deprecated` - On Windows and MacOS there is currently no support for the [miflora library](https://github.com/open-homeautomation/miflora/). diff --git a/source/_components/sensor.mitemp_bt.markdown b/source/_components/sensor.mitemp_bt.markdown index d7bdbccaffe8..5cf0f59fb123 100644 --- a/source/_components/sensor.mitemp_bt.markdown +++ b/source/_components/sensor.mitemp_bt.markdown @@ -20,7 +20,7 @@ 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 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 a [generic Docker installation](/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` or `bluez-deprecated`. diff --git a/source/_components/sensor.modbus.markdown b/source/_components/sensor.modbus.markdown index 3345162f9db4..cc4cd5897858 100644 --- a/source/_components/sensor.modbus.markdown +++ b/source/_components/sensor.modbus.markdown @@ -26,15 +26,18 @@ sensor: platform: modbus registers: - name: Sensor1 + hub: hub1 unit_of_measurement: °C slave: 1 register: 100 - name: Sensor2 + hub: hub1 unit_of_measurement: mg slave: 1 register: 110 count: 2 - name: Sensor3 + hub: hub1 unit_of_measurement: °C slave: 1 register: 120 @@ -55,6 +58,11 @@ registers: description: Name of the sensor. required: true type: string + hub: + description: The name of the hub. + required: false + default: default + type: string slave: description: The number of the slave (Optional for tcp and upd Modbus). required: true @@ -78,7 +86,7 @@ registers: reverse_order: description: Reverse the order of registers when count >1. required: false - default: False + default: false type: boolean scale: description: Scale factor (output = scale * value + offset). @@ -118,6 +126,7 @@ sensor: scan_interval: 10 registers: - name: Room_1 + hub: hub1 slave: 10 register: 0 register_type: holding diff --git a/source/_components/sensor.mopar.markdown b/source/_components/sensor.mopar.markdown index ab620c56d9ec..fc3396ab434e 100644 --- a/source/_components/sensor.mopar.markdown +++ b/source/_components/sensor.mopar.markdown @@ -56,7 +56,7 @@ pin: Call the `sensor.mopar_remote_command` service to perform a remote command on your vehicle. - **vehicle_index** (*Required*): `vehicle_index` attribute found on sensor. -- **command** (*Required*): One of `lock/unlock/engineon/engineoff/horn`. +- **command** (*Required*): One of `LOCK/UNLOCK/START/STOP/HORN_LIGHT`. Example data: diff --git a/source/_components/sensor.mqtt.markdown b/source/_components/sensor.mqtt.markdown index 4b87fc0521a1..f065d0dd55db 100644 --- a/source/_components/sensor.mqtt.markdown +++ b/source/_components/sensor.mqtt.markdown @@ -63,7 +63,7 @@ force_update: description: Sends update events even if the value hasn't changed. Useful if you want to have meaningful value graphs in history. reqired: false type: boolean - default: False + default: false availability_topic: description: The MQTT topic subscribed to receive availability (online/offline) updates. required: false @@ -96,12 +96,12 @@ device_class: 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.' + 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.' + description: A list of IDs that uniquely identify the device. For example a serial number. required: false type: list, string connections: @@ -109,19 +109,19 @@ device: required: false type: list manufacturer: - description: 'The manufacturer of the device.' + description: The manufacturer of the device. required: false type: string model: - description: 'The model of the device.' + description: The model of the device. required: false type: string name: - description: 'The name of the device.' + description: The name of the device. required: false type: string sw_version: - description: 'The firmware version of the device.' + description: The firmware version of the device. required: false type: string {% endconfiguration %} @@ -132,7 +132,7 @@ In this section you find some real-life examples of how to use this sensor. ### {% linkable_title JSON attributes topic configuration %} -The example sensor below shows a configuration example which uses a JSON dict: `{"ClientName": , "IP": , "MAC": , "RSSI": , "HostName": , "ConnectedSSID": }` in a separate 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 a JSON dict: `{"ClientName": , "IP": , "MAC": , "RSSI": , "HostName": , "ConnectedSSID": }` in a separate topic `home/sensor1/attributes` to add extra attributes. It also makes use of the `availability` topic. Extra attributes will be displayed in the frontend and can also 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 @@ -146,13 +146,7 @@ sensor: availability_topic: "home/sensor1/status" payload_available: "online" payload_not_available: "offline" - json_attributes: - - ClientName - - IP - - MAC - - RSSI - - HostName - - ConnectedSSID + json_attributes_topic: "home/sensor1/attributes" ``` {% endraw %} diff --git a/source/_components/sensor.mqtt_room.markdown b/source/_components/sensor.mqtt_room.markdown index e0c19fcfce3d..caaba3e668b1 100644 --- a/source/_components/sensor.mqtt_room.markdown +++ b/source/_components/sensor.mqtt_room.markdown @@ -22,12 +22,8 @@ To use this device tracker in your installation, add the following to your `conf ```yaml # Example configuration.yaml entry sensor: - platform: mqtt_room - device_id: 123testid - name: 'Cool device' - state_topic: 'room_presence' - timeout: 5 - away_timeout: 60 + - platform: mqtt_room + device_id: 123testid ``` {% configuration %} @@ -57,6 +53,8 @@ away_timeout: type: integer {% endconfiguration %} +## {% linkable_title Usage %} + Example JSON that should be published to the room topics: ```json @@ -69,8 +67,7 @@ Example JSON that should be published to the room topics: ### {% linkable_title Setting up clients %} -This component works with any software that is sending data in the given format. -Each client should post the discovered devices in its own subtopic of the configured topic. +This component works with any software that is sending data in the given format. Each client should post the discovered devices in its own subtopic of the configured topic. Instead of developing your own application, you can also use any of these already existing clients: - [**room-assistant**](https://github.com/mKeRix/room-assistant): looks for Bluetooth LE beacons, based on Node.js diff --git a/source/_components/sensor.mychevy.markdown b/source/_components/sensor.mychevy.markdown deleted file mode 100644 index 33747f5aab17..000000000000 --- a/source/_components/sensor.mychevy.markdown +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: page -title: "MyChevy Sensor" -description: "Instructions on how to integrate Chevy Bolt sensors car into Home Assistant." -date: 2017-08-28 17:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: chevy.png -ha_category: Car -ha_release: 0.62 -ha_iot_class: "Cloud Polling" ---- - - -The `mychevy` sensor platform allows you to monitor your Chevy Bolt car from within Home Assistant. - -The 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/sensor.mysensors.markdown b/source/_components/sensor.mysensors.markdown index ae77bb096eb1..a96d428af103 100644 --- a/source/_components/sensor.mysensors.markdown +++ b/source/_components/sensor.mysensors.markdown @@ -8,7 +8,9 @@ comments: false sharing: true footer: true logo: mysensors.png -ha_category: DIY +ha_category: + - DIY + - Sensor featured: false ha_iot_class: "Local Push" --- diff --git a/source/_components/sensor.nest.markdown b/source/_components/sensor.nest.markdown deleted file mode 100644 index 801198eb46bb..000000000000 --- a/source/_components/sensor.nest.markdown +++ /dev/null @@ -1,82 +0,0 @@ ---- -layout: page -title: "Nest Sensor" -description: "Instructions on how to integrate Nest sensors within Home Assistant." -date: 2016-01-13 19:59 -sidebar: true -comments: false -sharing: true -footer: true -logo: nest.png -ha_category: Sensor -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. - -

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

- -## {% 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: - sensors: - monitored_conditions: - - 'temperature' - - 'target' -``` - -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 %} -monitored_conditions: - description: States to monitor. - required: false - type: list -{% endconfiguration %} - -The following conditions are available by device: - -- Nest Home: - - eta: Estimated time of arrival. - - security\_state: `ok` or `deter`. [Security State](#security-state). Only available when Nest Camera exists. -- Nest Thermostat: - - humidity - - operation\_mode - - temperature - - target - - hvac\_state: The currently active state of the HVAC system, `heating`, `cooling`, or `off`. -- Nest Protect: - - co\_status: `Ok`, `Warning`, or `Emergency` - - smoke\_status: `Ok`, `Warning`, or `Emergency` - - battery\_health: `Ok` or `Replace` - - color\_status: `gray`, `green`, `yellow`, or `red`. Indicates device status by color in the Nest app UI. It is an aggregate condition for battery+smoke+CO states, and reflects the actual color indicators displayed in the Nest app. -- Nest Camera: none - -## {% linkable_title Security State %} - -

-This feature is not designed to transfer your Home Assistant to a security system, neither Home Assistant nor Nest be liable to You for damages, -or consequential damages of any character arising as a result of use this feature. - -This feature does not depend on the [Nest Secure alarm system](https://nest.com/alarm-system/overview/) and is not a reflection of the status of that system, -nor does it react to state changes in that system. -

- -

-This feature uses a new [Nest Security API](https://developers.nest.com/documentation/cloud/security-guide). -You may need to change your ["Product"](https://developers.nest.com/products) permission setting to include `Security State Read`. -After this permission change, you may need to re-authorize your client. -

- -If a Nest Cam detects the presence of a person (see `person_detected` in [binary_sensor.nest](/components/binary_sensor.nest/)) while the structure is in `away` mode (see `away` in [binary_sensor.nest](/components/binary_sensor.nest/)), the structure enters `deter` mode. - -A `deter` state is re-evaluated after several minutes and relaxed to `ok` if no further `person_detected` events have occurred. - -The `security_state` automatically switches to `ok` when the structure state is `home`. diff --git a/source/_components/sensor.netatmo.markdown b/source/_components/sensor.netatmo.markdown index cb13ea766ccc..7e0c9827ac88 100644 --- a/source/_components/sensor.netatmo.markdown +++ b/source/_components/sensor.netatmo.markdown @@ -65,6 +65,8 @@ modules: description: Noise level in dB. humidity: description: "Humidity in %." + health_idx: + description: "Air health as one of the values Healthy, Fine, Fair, Poor, Unhealthy." rain: description: Estimated rainfall for today in mm. sum_rain_1: diff --git a/source/_components/sensor.netgear_lte.markdown b/source/_components/sensor.netgear_lte.markdown deleted file mode 100644 index b0031f161cf5..000000000000 --- a/source/_components/sensor.netgear_lte.markdown +++ /dev/null @@ -1,47 +0,0 @@ ---- -layout: page -title: "Netgear LTE Sensor" -description: "Instructions on how to integrate Netgear LTE sensors into Home Assistant." -date: 2018-06-06 23:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: netgear.png -ha_release: 0.72 -ha_category: Network -ha_iot_class: "Local Polling" ---- - -The `netgear_lte` sensor platform allows you to monitor your Netgear LTE modem. - -This requires you to have set up the [Netgear LTE component](/components/netgear_lte/). - -## {% linkable_title Configuration %} - -To enable the sensor, add the following lines to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: netgear_lte - sensors: - - sms - - usage -``` - -{% configuration %} -sensors: - description: Sensor types to create. - required: true - type: list - keys: - sms: - description: Number of unread SMS messages in the modem inbox. - usage: - description: Amount of data transferred. -host: - description: The modem to use. Not needed if you only have one. - required: false - type: string -{% endconfiguration %} diff --git a/source/_components/sensor.nmbs.markdown b/source/_components/sensor.nmbs.markdown index 664588f99c87..343950447684 100644 --- a/source/_components/sensor.nmbs.markdown +++ b/source/_components/sensor.nmbs.markdown @@ -26,6 +26,7 @@ sensor: station_from: "STATION_1" station_to: "STATION_2" station_live: "STATION_1" + exclude_vias: true ``` The stations can only be provided by their standard names and not ids. The list of stations can be checked on the NMBS/SCNB website but for most accurate results check them on the [iRail API page](https://api.irail.be/stations/) which this component uses internally. @@ -43,9 +44,19 @@ station_live: description: Setting this will create another sensor to monitor the liveboard in a station. required: false type: string +exclude_vias: + description: Setting this will not show connections for which you have to transfer to another station. + required: false + type: boolean + default: false name: description: Name to use in the frontend. required: false type: string default: "`NMBS`, `NMBS Live` for the liveboard sensor when set." +show_on_map: + description: Show the station on the map. + required: false + type: boolean + default: false {% endconfiguration %} diff --git a/source/_components/sensor.nsw_fuel_station.markdown b/source/_components/sensor.nsw_fuel_station.markdown index 9a560f322c3e..620e3a4082fb 100644 --- a/source/_components/sensor.nsw_fuel_station.markdown +++ b/source/_components/sensor.nsw_fuel_station.markdown @@ -7,6 +7,7 @@ sidebar: true comments: false sharing: true footer: true +logo: fuelcheck.png ha_category: Car ha_release: 0.72 ha_iot_class: "Cloud Polling" @@ -21,7 +22,7 @@ To get the station ID for any NSW fuel station you will need to: - Visit the [Fuel Check App](https://www.fuelcheck.nsw.gov.au/app). - Open the developer console of your browser (for Chrome, click View -> Developer -> Developer Tools). Click the "Network" tab in the developer console. - In the Fuel Check App, search for your postcode or click "Fuel Near Me". -- In the developer console, you should see a request to `/FuelCheckApp/v1/fuel/prices/bylocation`. Open this request and preview the response. Find the station you wish to add, and copy down the `ServiceStationID` field. +- In the developer console, you should see a request to `/FuelCheckApp/v1/fuel/prices/bylocation`. Open this request and preview the response. Find the station you wish to add, and copy down the `ServiceStationID` field. ## {% linkable_title Configuration %} diff --git a/source/_components/sensor.octoprint.markdown b/source/_components/sensor.octoprint.markdown deleted file mode 100644 index c29983928555..000000000000 --- a/source/_components/sensor.octoprint.markdown +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: page -title: "OctoPrint Sensor" -description: "Instructions on how to integrate OctoPrint sensors within Home Assistant." -date: 2016-05-05 08:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: octoprint.png -ha_category: Sensor -ha_release: 0.19 -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. After configuring that component, sensors automatically appear. -

diff --git a/source/_components/sensor.openhardwaremonitor.markdown b/source/_components/sensor.openhardwaremonitor.markdown index 3968a2f08663..6710793515f1 100644 --- a/source/_components/sensor.openhardwaremonitor.markdown +++ b/source/_components/sensor.openhardwaremonitor.markdown @@ -16,6 +16,30 @@ ha_iot_class: "Local Polling" The `openhardwaremonitor` platform uses your [Open Hardware Monitor](http://openhardwaremonitor.org/) installation as a source for sensors that will display system information. +## {% linkable_title Setup %} + +OpenHardwareMonitor must be running on the host, with "Remote web server" active. You also need to open inbound port (TCP 8085) on the host.. + +To open port (on Windows): + +1. Navigate to Control Panel, System and Security and Windows Firewall. +2. Select **Advanced settings** and highlight **Inbound Rules** in the left pane. +3. Right click Inbound Rules and select New Rule. +4. Add the port you need to open and click Next. +5. Add the protocol (TCP) and the port number (8085) into the next window and click Next. +6. Select Allow the connection in the next window and hit Next. +7. Select the network type as you see fit and click Next. +8. Name the rule and click Finish. + +To open port with `firewalld` (Linux): + +```bash +$ sudo firewall-cmd --permanent --add-port=8085/tcp +$ sudo firewall-cmd --reload +``` + +## {% linkable_title Configuration %} + To add Open Hardware Monitor to your installation, add the following to your `configuration.yaml` file: ```yaml @@ -36,7 +60,3 @@ sensor: type: integer {% endconfiguration %} -

-OpenHardwareMonitor must be running on the host, with "Remote web server" active. -You also need to open an inbound port for (TCP 8085) in the advanced firewall settings. -

diff --git a/source/_components/sensor.opentherm_gw.markdown b/source/_components/sensor.opentherm_gw.markdown deleted file mode 100644 index 108b7ac09ed9..000000000000 --- a/source/_components/sensor.opentherm_gw.markdown +++ /dev/null @@ -1,24 +0,0 @@ ---- -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.openuv.markdown b/source/_components/sensor.openuv.markdown deleted file mode 100644 index 61240520043c..000000000000 --- a/source/_components/sensor.openuv.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "OpenUV Sensor" -description: "Instructions on how to integrate OpenUV sensors within Home Assistant." -date: 2018-07-31 22:01 -sidebar: true -comments: false -sharing: true -footer: true -logo: openuv.jpg -ha_category: Health -ha_release: 0.76 -ha_iot_class: "Cloud Polling" ---- - -The `openuv` sensor platform allows you to view sensor data from [OpenUV](http://openuv.io). - -You must have the [`openuv` component](/components/openuv/) configured to use this platform. After configuring that component, sensors will automatically appear. - diff --git a/source/_components/sensor.openweathermap.markdown b/source/_components/sensor.openweathermap.markdown index fd95c768fc1e..199aeed13d0f 100644 --- a/source/_components/sensor.openweathermap.markdown +++ b/source/_components/sensor.openweathermap.markdown @@ -45,7 +45,7 @@ sensor: default: false type: string language: - description: The language in which you want text results to be returned. It's a two-characters string, eg. `en`, `es`, `ru`, `it`, etc. + description: The language in which you want text results to be returned. It's a two-characters string, e.g., `en`, `es`, `ru`, `it`, etc. required: false default: en type: string diff --git a/source/_components/sensor.point.markdown b/source/_components/sensor.point.markdown deleted file mode 100644 index ad491d427c6a..000000000000 --- a/source/_components/sensor.point.markdown +++ /dev/null @@ -1,29 +0,0 @@ ---- -layout: page -title: "Minut Point Sensor" -description: "Access your Minut Point Sensors." -date: 2018-11-19 -sidebar: true -comments: false -sharing: true -footer: true -logo: minut.svg -ha_category: Sensor -ha_release: "0.83" -ha_iot_class: "Cloud Polling" -ha_qa_scale: silver ---- - -Each Point exposes the following sensors: - -- **temperature**: Temperature in °C. -- **humidity**: Percentage of humidity in the air. -- **pressure**: Pressure in hPa. -- **sound_level**: Sound level in dBa. - - -For installation instructions, see [the Point component](/components/point/). - -

-The Point is just active occasionally so the sensors are only updated every hour or so. -

diff --git a/source/_components/sensor.postnl.markdown b/source/_components/sensor.postnl.markdown index 0510b0dd14be..fdbd5ec8f1ff 100644 --- a/source/_components/sensor.postnl.markdown +++ b/source/_components/sensor.postnl.markdown @@ -15,7 +15,7 @@ ha_iot_class: "Cloud Polling" The `postnl` platform allows one to track deliveries by [PostNL](https://www.postnl.nl) (Dutch Postal Services). To use this sensor, you need a [PostNL Account](https://jouw.postnl.nl). It is possible to add multiple accounts to your Home Assistant configuration. -The sensor value shows the number of packages to be delivered. Each of the packages is available as an attribute. +The sensor value shows the number of packages to be delivered. The packages are available in the shipments attribute. ## {% linkable_title Configuration %} diff --git a/source/_components/sensor.qwikswitch.markdown b/source/_components/sensor.qwikswitch.markdown deleted file mode 100644 index afc4fc6cb4c5..000000000000 --- a/source/_components/sensor.qwikswitch.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "QwikSwitch Sensor" -description: "Instructions on how to integrate Qwikswitch dimmers and relays as sensors into Home Assistant." -date: 2016-05-04 00:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: qwikswitch.png -ha_category: Sensor -ha_iot_class: "Local Push" -ha_release: "0.67" ---- - -The `qwikswitch` sensor platform allows you to use your [QwikSwitch](http://www.qwikswitch.co.za/) sensors in Home Assistant. - -The platform is configured through the [QwikSwitch component](/components/qwikswitch/). diff --git a/source/_components/sensor.rainmachine.markdown b/source/_components/sensor.rainmachine.markdown deleted file mode 100644 index 4db41b38eaf3..000000000000 --- a/source/_components/sensor.rainmachine.markdown +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: page -title: "RainMachine Sensor" -description: "Instructions on how to use RainMachine sensors with Home Assistant." -date: 2018-05-06 21:26 -sidebar: true -comments: false -sharing: true -footer: true -logo: rainmachine.png -ha_category: Irrigation -ha_iot_class: "Cloud Polling" -ha_release: 0.71 ---- - -The `rainmachine` sensor platform allows you to view crucial sensor data 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/) -configured to use this platform. After configuring that component, sensors -automatically appear. -

diff --git a/source/_components/sensor.recollect_waste.markdown b/source/_components/sensor.recollect_waste.markdown new file mode 100644 index 000000000000..d9fc685b5b6f --- /dev/null +++ b/source/_components/sensor.recollect_waste.markdown @@ -0,0 +1,59 @@ +--- +layout: page +title: Recollect Waste Sensor +description: "Instructions on how to set up Recollect Waste sensor within Home Assistant." +date: 2019-01-14 13:30 +sidebar: true +comments: false +sharing: true +footer: true +logo: recollect-waste.png +ha_category: Sensor +ha_release: 0.87 +ha_iot_class: "Cloud Polling" +--- + +The `Recollect Waste` platform allows you to track the next scheduled waste pickup and what type of waste from [Recollect](https://recollect.net/solutions/waste/). To use this sensor your city's waste company must be Recollect and you will need to find your place_id and service_id. + +1. In Chrome open developer tools and go to the network tab. +2. Go to your city's Recollect collection calendar. +3. Search for and select your address in the UI. +4. Watch for a request that looks like + + https://api.recollect.net/api/places/**(place_id)**/services/**(service_id)**/events?nomerge ... + +5. Use the place_id and service_id when configuring the sensor. + +## {% linkable_title Configuration %} + +To enable this sensor, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: recollect_waste + place_id: YOUR_PLACE_ID + service_id: YOUR_SERVICE_ID +``` + +{% configuration %} +place_id: + description: The place_id used for your neighbourhood. + required: true + type: string +service_id: + description: The service_id used for your city. + required: true + type: string +name: + description: Name the sensor. + required: false + type: string + default: recollect_waste +{% endconfiguration %} + +The default frequency for pulling data from Recollect Waste is once a day (86400 seconds). + +

+The Recollect Waste sensor uses the Recollect API URL to obtain data not an official API from Recollect. Use at your own risk. +

diff --git a/source/_components/sensor.reddit.markdown b/source/_components/sensor.reddit.markdown new file mode 100644 index 000000000000..33abd9c9b030 --- /dev/null +++ b/source/_components/sensor.reddit.markdown @@ -0,0 +1,59 @@ +--- +layout: page +title: "Reddit Sensor" +description: "How to integrate the Reddit sensor into Home Assistant." +date: 2018-02-21 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: reddit.png +ha_category: Sensor +ha_release: 0.89 +ha_iot_class: "Cloud Polling" +--- + +The Reddit sensor integrates data from [Reddit](https://reddit.com/) to monitor your favorite subreddits. + +## {% linkable_title Setup %} + +To set up this sensor, you will need to generate a `client_id` and `client_secret` for the user account you will use to connect. Follow the first steps in [this wiki](https://github.com/reddit-archive/reddit/wiki/OAuth2-Quick-Start-Example). + +## {% linkable_title Configuration %} + +To enable this platform, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +- platform: reddit + username: !secret reddit_username + password: !secret reddit_password + client_id: !secret reddit_client_id + client_secret: !secret reddit_client_secret + subreddits: + - news + - worldnews +``` + +{% configuration %} +username: + description: Your Reddit account username. + required: true + type: string +password: + description: Your Reddit account password. + required: true + type: string +client_id: + description: Your Reddit account client_id generated from the wiki above. + required: true + type: string +client_secret: + description: Your Reddit account client_secret generated from the wiki above. + required: true + type: string +subreddits: + description: List of subreddits you want to get data on. + required: true + type: list +{% endconfiguration %} diff --git a/source/_components/sensor.rejseplanen.markdown b/source/_components/sensor.rejseplanen.markdown new file mode 100644 index 000000000000..0252a207769b --- /dev/null +++ b/source/_components/sensor.rejseplanen.markdown @@ -0,0 +1,106 @@ +--- +layout: page +title: "Rejseplanen Public Transport" +description: "Instructions on how to integrate timetable data for Danish Rejseplanen within Home Assistant." +date: 2019-01-09 08:52 +sidebar: true +comments: false +sharing: true +footer: true +logo: rejseplanen.png +ha_category: Transport +ha_iot_class: "Cloud Polling" +ha_release: 0.88 +--- + +The `rejseplanen` sensor will provide you with travel details for Danish public transport, using timetable data from [Rejseplanen](https://www.rejseplanen.dk/). + +## {% linkable_title Configuration %} + +Add a sensor to your `configuration.yaml` file as shown in the example: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: rejseplanen + stop_id: 'YOUR_STOP_ID' +``` + +The `stop_id` can be obtained by looking up the name of the stop at this link: + + +(Replace "STOP_NAME" with city or location you want id for) +find the stop and copy the `id` field with the trailing zeros. + +The sensor can filter the timetables by one or more routes, directions and types. The known types are listed in the table below. + +| Departure type | Description | +|--------------|-------------| +| BUS | Normal bus | +| EXB | Express bus | +| M | Metro | +| S | S-train | +| REG | Regional train | + +{% configuration %} +stop_id: + description: The id of the public transport stop. + required: true + type: string +route: + description: List of route names. + required: false + type: string|list +direction: + description: List of directions to filter by. + required: false + type: string|list +departure_type: + description: List of departure types to filter by. + required: false + type: string|list +{% endconfiguration %} + +## {% linkable_title Direction %} + +If you use the direction filter it's important to put correct destination, or else the sensor will not work at all. +The direction has to be the destination(s) for the transport type(s) for the departure stop destination, and NOT the stop where you want to get off. Check and make a search, and use the destinations from there in your configuration. Make sure you use the exact name as the destination(s) + +A working example on how to use this sensor with direction: + +```yaml +# Example configuration.yaml entry with the correct use of direction. +sensor: + - platform: rejseplanen + stop_id: '008600615' + direction: + - 'CPH Lufthavn' + - 'Helsingør St.' +``` + +A NOT WORKING example use this sensor with direction: + +```yaml +# Example configuration.yaml entry with the correct use of direction. +sensor: + - platform: rejseplanen + stop_id: '008600615' + direction: + - 'København H' +``` +It fails because the destination from the departure is NOT København H, but 'CPH Lufthavn', 'Helsingør St.' and others. + +## {% linkable_title Examples %} + +A more extensive example on how to use this sensor: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: rejseplanen + stop_id: '000045740' + route: 'Bus 350S' + direction: + - 'Herlev St.' + - 'Ballerup St.' +``` diff --git a/source/_components/sensor.rest.markdown b/source/_components/sensor.rest.markdown index bae594e5f4a1..3c595a6de3e0 100644 --- a/source/_components/sensor.rest.markdown +++ b/source/_components/sensor.rest.markdown @@ -52,6 +52,12 @@ name: required: false type: string default: REST Sensor +device_class: + description: > + The [type/class](/components/sensor/) of + the sensor to set the icon in the frontend. + required: false + type: string value_template: description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the value." required: false @@ -61,10 +67,15 @@ payload: required: false type: string verify_ssl: - description: Verify the certification of the endpoint. + description: Verify the SSL certificate of the endpoint. required: false type: boolean default: True +timeout: + description: Defines max time to wait data from the endpoint. + required: false + type: positive integer + default: 10 unit_of_measurement: description: Defines the units of measurement of the sensor, if any. required: false @@ -93,7 +104,7 @@ force_update: description: Sends update events even if the value hasn't changed. Useful if you want to have meaningful value graphs in history. reqired: false type: boolean - default: False + default: false {% endconfiguration %}

@@ -167,7 +178,7 @@ sensor: Content-Type: application/json ``` -The headers will contain all relevant details. This will also give you the ability to access endpoints that are protected by tokens. +The headers will contain all relevant details. This will also give you the ability to access endpoints that are protected by tokens. ```bash Content-Length: 1024 @@ -228,7 +239,7 @@ This sample fetches a weather report from [OpenWeatherMap](http://openweathermap sensor: - platform: rest name: OWM_report - json_attributes: + json_attributes: - main - weather value_template: '{{ value_json["weather"][0]["description"].title() }}' diff --git a/source/_components/sensor.rflink.markdown b/source/_components/sensor.rflink.markdown index 7254bbf2f27e..d1741c17afde 100644 --- a/source/_components/sensor.rflink.markdown +++ b/source/_components/sensor.rflink.markdown @@ -13,25 +13,24 @@ ha_release: 0.38 ha_iot_class: "Local Polling" --- -The `rflink` component support 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). +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/). +First, you have to set up your [RFLink hub](/components/rflink/). -After configuring the RFLink hub sensors will be automatically discovered and added. +After configuring the RFLink hub, sensors will be automatically discovered and added. -RFLink sensor ID's are composed of: protocol, id and type (optional). For example: `alectov1_0334_temp`. Some sensors emit multiple types of data. Each will be created as its own +RFLink sensor ID's are composed of: protocol, id and type (optional). For example: `alectov1_0334_temp`. Some sensors emit multiple types of data. Each will be created as its own. -Once the ID of a sensor is known it can be used to configure the sensor in HA, for example to add it to a different group, hide it or configure a nice name. +Once the ID of a sensor is known, it can be used to configure the sensor in Home Assistant, for example to add it to a different group, hide it or configure a nice name. -Assigning name to a sensor: +Configuring a device as a sensor: ```yaml # Example configuration.yaml entry sensor: - platform: rflink devices: - alectov1_0334_temp: - sensor_type: temperature + alectov1_0334_temp: {} ``` {% configuration %} @@ -41,29 +40,40 @@ automatic_add: default: true type: boolean devices: - description: A list of devices with their name to use in the frontend. + description: A list of sensors. 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. + rflink_ids: + description: RFLink ID of the device 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] + type: map + 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](components/sensor.rflink/#sensors-types) see below. + required: true + type: string + unit_of_measurement: + description: Override automatically detected unit of sensor. + required: false + type: string + aliases: + description: "Alternative RFLink ID's this device is known by." + required: false + type: [list, string] + aliasses: + description: "(**deprecated**) Alternative RFLink ID's this device is known by." + required: false + type: [list, string] {% endconfiguration %} +### {% linkable_title Sensors types%} + Sensor type values: - average_windspeed @@ -110,3 +120,32 @@ Sensors are added automatically when the RFLink gateway intercepts a wireless co ### {% linkable_title Device support %} See [device support](/components/rflink/#device-support) + +### {% linkable_title Additional configuration examples %} + +Multiple sensors with `automatic_add` disabled and `aliases` + +```yaml +# Example configuration.yaml entry +sensor: + - platform: rflink + automatic_add: false + devices: + oregontemp_0d93_temp: + sensor_type: temperature + oregontemp_0d93_bat: + sensor_type: battery + tunex_c001_temp: + sensor_type: temperature + aliases: + - xiron_4001_temp + tunex_c001_hum: + sensor_type: humidity + aliases: + - xiron_4001_hum + tunex_c001_bat: + sensor_type: battery + aliases: + - xiron_4001_bat +``` + diff --git a/source/_components/sensor.rfxtrx.markdown b/source/_components/sensor.rfxtrx.markdown index 6f12abc4173c..2fbb9dbaf244 100644 --- a/source/_components/sensor.rfxtrx.markdown +++ b/source/_components/sensor.rfxtrx.markdown @@ -21,7 +21,7 @@ The easiest way to find your sensors is to add this to your `configuration.yaml` # Example configuration.yaml entry sensor: platform: rfxtrx - automatic_add: True + automatic_add: true ``` Then when the sensor emits a signal it will be automatically added: @@ -76,11 +76,11 @@ Example configuration: # Example configuration.yaml entry sensor: platform: rfxtrx - automatic_add: True + automatic_add: true devices: 0a52080705020095220269: name: Lving - fire_event: True + fire_event: true 0a520802060100ff0e0269: name: Bath data_type: diff --git a/source/_components/sensor.ring.markdown b/source/_components/sensor.ring.markdown deleted file mode 100644 index 648b93ce4f5f..000000000000 --- a/source/_components/sensor.ring.markdown +++ /dev/null @@ -1,49 +0,0 @@ ---- -layout: page -title: "Ring Sensor" -description: "Instructions on how to integrate your Ring.com devices within Home Assistant." -date: 2017-04-01 10:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: ring.png -ha_category: Doorbell -ha_release: "0.40" -ha_iot_class: "Cloud Polling" ---- - -To get your [Ring.com](https://ring.com/) binary sensors working within Home Assistant, please follow the instructions for the general [Ring component](/components/ring). - -## {% linkable_title Configuration %} - -Once you have enabled the [Ring component](/components/ring), add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: ring -``` - -{% configuration %} -monitored_conditions: - type: list - required: false - description: Conditions to display in the frontend. The following conditions can be monitored. If not specified, all conditions below will be enabled. - battery: - description: Return the battery level from device. - last_activity: - description: Return the timestamp from the last event captured (ding/motion/on demand) by the Ring doorbell camera. - last_ding: - description: Return the timestamp from the last time the Ring doorbell button was pressed. - last_motion: - description: Return the timestamp from the last motion event captured by the Ring doorbell camera. - volume: - description: Return the volume level from the device. - wifi_signal_category: - description: Return the WiFi signal level from the device. - wifi_signal_strength: - description: Return the WiFi signal strength (dBm) from the device. -{% endconfiguration %} - -Currently it supports doorbell, external chimes and stickup cameras. diff --git a/source/_components/sensor.rova.markdown b/source/_components/sensor.rova.markdown new file mode 100644 index 000000000000..9894a97afe81 --- /dev/null +++ b/source/_components/sensor.rova.markdown @@ -0,0 +1,110 @@ +--- +layout: page +title: "ROVA Sensor" +description: "Instructions on how to integrate ROVA sensor within Home Assistant." +date: 2018-12-08 18:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: rova.jpg +ha_category: Sensor +ha_release: 0.87 +ha_iot_class: "Cloud Polling" +--- + +[ROVA](https://rova.nl) is a waste collection company that operates in the center and east of the Netherlands. The `rova` platform uses an unofficial [ROVA](https://rova.nl) API to allow you to get your waste collection schedule and integrate this in your Home Assistant installation. + +## {% linkable_title Configuration %} + +To use the ROVA sensor in your installation, add the following to your configuration.yaml file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: rova + zip_code: ZIP_CODE + house_number: HOUSE_NUMBER +``` + +{% configuration %} +zip_code: + description: Your zip code. + required: true + type: string +house_number: + description: Your house number. + required: true + type: string +house_number_suffix: + description: A suffix for your house number. + required: false + type: string +name: + description: Let you overwrite the name of the device in the frontend. + required: false + default: Rova + type: string +monitored_conditions: + description: ROVA information to be monitored. The following collection dates can be monitored. + required: false + type: list + keys: + bio: + description: Upcoming collection date of your biodegradable waste + paper: + description: Upcoming collection date of your paper waste + plastic: + description: upcoming collection date of your plastic waste + residual: + description: Upcoming collection date of your general waste +{% endconfiguration %} + +If no **monitored_conditions** are specified, only **bio** will be enabled. + +### {% linkable_title Full configuration sample %} + +A full configuration entry would look like the sample below. + +```yaml +# Example configuration.yaml entry +sensor: + - platform: rova + zip_code: ZIP_CODE + house_number: HOUSE_NUMBER + house_number_suffix: HOUSE_NUMBER_SUFFIX + name: Rova + monitored_conditions: + - bio + - paper + - plastic + - residual +``` + +To have your Home Assistant installation remind you of upcoming waste collections, combine the `rova` platform with some [Automations](/docs/automation/) and a [notification platform](/components/notify/). + +{% raw %} +```yaml +# Example configuration.yaml entry for Rova waste collection reminder +automation: + - id: rova-garbage-bio-reminder + alias: 'Send Rova Bio waste collection reminder' + hide_entity: true + trigger: + - platform: time + at: '19:00:00' + condition: + - condition: template + value_template: "{% if (as_timestamp(states.sensor.rova_garbage_gft.state) - as_timestamp(now())) < 43200 %}true{% endif %}" + - condition: template + value_template: "{% if (as_timestamp(states.sensor.rova_garbage_gft.state) - as_timestamp(now())) > 0 %}true{% endif %}" + action: + - service: NOTIFICATION_SERVICE + data: + message: 'Reminder: put out biowaste bin' +``` +{% endraw %} + +

+This component is not affiliated with Rova and retrieves data from the endpoints of their website. Use at your own risk. +

diff --git a/source/_components/sensor.ruter.markdown b/source/_components/sensor.ruter.markdown index dc25d3189b0d..a67bb96fa02e 100644 --- a/source/_components/sensor.ruter.markdown +++ b/source/_components/sensor.ruter.markdown @@ -13,6 +13,11 @@ ha_iot_class: "Cloud Polling" ha_release: 0.83 --- +

+The API used for this sensor is shutting down soon, you should consider starting to use the [`entur_public_transport`](/components/sensor.entur_public_transport/) sensor before that happen. +To read the deprecation warning visit [ruter.no/labs](https://ruter.no/labs/), +

+ The `ruter` sensor will provide you departure information for the larger Oslo area in Norway from the [Ruter][ruter] public transportation service. This platform is using the [Ruter reisapi API][ruter-api] to gather the information. diff --git a/source/_components/sensor.sabnzbd.markdown b/source/_components/sensor.sabnzbd.markdown deleted file mode 100644 index 627379399ec5..000000000000 --- a/source/_components/sensor.sabnzbd.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "SABnzbd Sensor" -description: "Instructions on how to integrate SABnzbd with Home Assistant." -date: 2015-03-23 19:59 -sidebar: true -comments: false -sharing: true -footer: true -logo: sabnzbd.png -ha_category: Downloading -ha_release: pre 0.7 -ha_iot_class: "Local Polling" ---- - - -The `sabnzbd` sensor platform will allow you to monitor your downloads with [SABnzbd](http://sabnzbd.org) from within Home Assistant. - -To add SABnzbd sensors, please follow the instructions for the [SABnzbd component](/components/sabnzbd). diff --git a/source/_components/sensor.scrape.markdown b/source/_components/sensor.scrape.markdown index ccc6bebdf5fa..bb20562e14a4 100644 --- a/source/_components/sensor.scrape.markdown +++ b/source/_components/sensor.scrape.markdown @@ -13,7 +13,6 @@ ha_release: 0.31 ha_iot_class: "Cloud Polling" --- - The `scrape` sensor platform is scraping information from websites. The sensor loads a HTML page and gives you the option to search and split out a value. As this is not a full-blown web scraper like [scrapy](https://scrapy.org/), it will most likely only work with simple web pages and it can be time-consuming to get the right section. To enable this sensor, add the following lines to your `configuration.yaml` file: @@ -39,6 +38,11 @@ attribute: description: Get value of an attribute on the selected tag. required: false type: string +index: + description: Defines which of the elements returned by the CSS selector to use. + required: false + default: 0 + type: integer name: description: Name of the sensor. required: false @@ -68,7 +72,7 @@ headers: ## {% linkable_title Examples %} -In this section you find some real-life examples of how to use this sensor. There is also a [Jupyter notebook](http://nbviewer.jupyter.org/github/home-assistant/home-assistant-notebooks/blob/master/web-scraping.ipynb) available for this example to give you a bit more insight. +In this section you find some real-life examples of how to use this sensor. There is also a [Jupyter notebook](https://nbviewer.jupyter.org/github/home-assistant/home-assistant-notebooks/blob/master/other/web-scraping.ipynb) available for this example to give you a bit more insight. ### {% linkable_title Home Assistant %} diff --git a/source/_components/sensor.season.markdown b/source/_components/sensor.season.markdown index e12c1c401f2a..e6000b37eb89 100644 --- a/source/_components/sensor.season.markdown +++ b/source/_components/sensor.season.markdown @@ -18,13 +18,13 @@ The `season` sensor will display the current astronomical or meteorological seas For information on the difference between astronomical and meteorological seasons please see the link below: - - [https://www.ncei.noaa.gov/news/meteorological-versus-astronomical-seasons](https://www.ncei.noaa.gov/news/meteorological-versus-astronomical-seasons) +- [https://www.ncei.noaa.gov/news/meteorological-versus-astronomical-seasons](https://www.ncei.noaa.gov/news/meteorological-versus-astronomical-seasons) All information about how the seasons work was taken from Wikipedia: - - [https://en.wikipedia.org/wiki/Season#Astronomical](https://en.wikipedia.org/wiki/Season#Astronomical) - - [https://en.wikipedia.org/wiki/Equinox](https://en.wikipedia.org/wiki/Equinox) - - [https://en.wikipedia.org/wiki/Solstice](https://en.wikipedia.org/wiki/Solstice) +- [https://en.wikipedia.org/wiki/Season#Astronomical](https://en.wikipedia.org/wiki/Season#Astronomical) +- [https://en.wikipedia.org/wiki/Equinox](https://en.wikipedia.org/wiki/Equinox) +- [https://en.wikipedia.org/wiki/Solstice](https://en.wikipedia.org/wiki/Solstice) ## {% linkable_title Configuration %} @@ -44,4 +44,3 @@ type: type: string default: astronomical {% endconfiguration %} - diff --git a/source/_components/sensor.sense.markdown b/source/_components/sensor.sense.markdown deleted file mode 100644 index f66a91a8639b..000000000000 --- a/source/_components/sensor.sense.markdown +++ /dev/null @@ -1,58 +0,0 @@ ---- -layout: page -title: Sense -description: "Instructions on how to integrate Sense within Home Assistant." -date: 2018-01-11 13:50 -sidebar: true -comments: false -sharing: true -footer: true -logo: sense.png -ha_category: Energy -ha_iot_class: "Cloud Polling" -ha_release: 0.65 ---- - -Integrate your [Sense](https://sense.com) electricity meter information into Home Assistant. - -## {% linkable_title Configuration %} - -To enable this integration in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sense: - email: CLIENT_ID - password: CLIENT_SECRET -``` - -In addition to binary sensors for individual devices, two types of sensors will be created with the following names: - -- **Active Usage/Production**: Current active power usage/production in Watts. Updated every 1 minute. -- **Daily/Weekly/Monthly/Yearly Usage/Production**: Daily power usage/production in kWh. Updated every 5 minutes. - -{% configuration %} -email: - description: The email associated with your Sense account/application. - required: true - type: string -password: - description: The password for your Sense account/application. - required: true - type: string -timeout: - description: Timeout for the connection in seconds. - required: false - default: 5 - type: integer -{% endconfiguration %} - -Full example: - -```yaml -# Example configuration.yaml entry -sense: - email: CLIENT_ID - password: CLIENT_SECRET - timeout: 5 -``` diff --git a/source/_components/sensor.sensehat.markdown b/source/_components/sensor.sensehat.markdown index 608f749db351..f2440de1c710 100644 --- a/source/_components/sensor.sensehat.markdown +++ b/source/_components/sensor.sensehat.markdown @@ -53,7 +53,7 @@ is_hat_attached: type: boolean {% endconfiguration %} -#### {% linkable_title Customizing the Sense HAT data %} +## {% linkable_title Customizing the Sense HAT data %} **Format the sensor values** Add the following to your `sensor`: @@ -124,11 +124,11 @@ group: - group.sense_hat ``` -### {% linkable_title Directions for installing on Raspberry Pi All-In-One installer and HASSbian: %} +## {% linkable_title Directions for installing on Raspberry Pi All-In-One installer and HASSbian: %} Here are the steps to make the _SenseHAT_ sensor work _successfully_ with the virtual environment versions. -#### {% linkable_title Install SenseHAT package to _homeassistant_venv_ %} +### {% linkable_title Install SenseHAT package to _homeassistant_venv_ %} ```bash # switch to the homeassistant_venv environment @@ -140,13 +140,13 @@ pip3 install sense-hat # be patient, this will take a long while ``` -#### {% linkable_title Return to `pi` %} +### {% linkable_title Return to `pi` %} Type `exit` to quit out of the _homeassistant_venv_ back to your `pi` environment. As all of the following steps should be under the `pi` user environment. -#### {% linkable_title Install _RTIMU_ %} +### {% linkable_title Install _RTIMU_ %} ```bash # pi user environment: Install RTIMU @@ -166,7 +166,7 @@ sudo reboot Unfortunately enabling the SenseHAT Sensor component for a Virtual Environment install of Home Assistant fails with errors. _(The Raspberry Pi All-In-One installer and HASSbian both run Home Assistant in an virtual environment)._ -These issues have been discussed in the repository issue (#5093)[https://github.com/home-assistant/home-assistant/issues/5093) +These issues have been discussed in the repository issue [#5093](https://github.com/home-assistant/home-assistant/issues/5093) This fix has been tested with a clean install of: diff --git a/source/_components/sensor.serial.markdown b/source/_components/sensor.serial.markdown index 4954fb15fc67..5386914e1daa 100644 --- a/source/_components/sensor.serial.markdown +++ b/source/_components/sensor.serial.markdown @@ -15,12 +15,14 @@ ha_iot_class: "Local Polling" The `serial` sensor platform is using the data provided by a device connected to the serial port of the system where Home Assistant is running. With [`ser2net`](http://ser2net.sourceforge.net/) and [`socat`](http://www.dest-unreach.org/socat/) would it also work for sensors connected to a remote system. -To check what kind of data is arriving at your serial port, use a command-line tool like `minicom` or `picocom` on Linux, on a macOS you can use `screen` or on Windows `putty`. +To check what kind of data is arriving at your serial port, use a command-line tool like `minicom` or `picocom` on Linux, on a macOS you can use `screen` or on Windows `putty`. ```bash -$ sudo minicom -D /dev/ttyACM0 +sudo minicom -D /dev/ttyACM0 ``` +## {% linkable_title Configuration %} + To setup a serial sensor to your installation, add the following to your `configuration.yaml` file: ```yaml @@ -47,10 +49,9 @@ baudrate: value_template: description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the serial line." required: false - type: template + type: template {% endconfiguration %} - ## {% linkable_title `value_template` for Template sensor %} ### {% linkable_title TMP36 %} @@ -67,7 +68,7 @@ value_template: For controllers of the Arduino family a possible sketch to read the temperature and the humidity could look like the sample below. -``` +```c #include void setup() { diff --git a/source/_components/sensor.serial_pm.markdown b/source/_components/sensor.serial_pm.markdown index 5d579cc9a9b9..0d93a15cd0b1 100644 --- a/source/_components/sensor.serial_pm.markdown +++ b/source/_components/sensor.serial_pm.markdown @@ -65,4 +65,3 @@ sensor: name: Nova brand: novafitness,sds011 ``` - diff --git a/source/_components/sensor.shodan.markdown b/source/_components/sensor.shodan.markdown index 6a98ad304229..4634d7cba7f9 100644 --- a/source/_components/sensor.shodan.markdown +++ b/source/_components/sensor.shodan.markdown @@ -13,7 +13,6 @@ logo: shodan.png ha_release: 0.51 --- - The `shodan` sensor platform is displaying the total of result of a [Shodan](https://www.shodan.io/) query. @@ -45,4 +44,3 @@ sensor: required: false type: string {% endconfiguration %} - diff --git a/source/_components/sensor.sht31.markdown b/source/_components/sensor.sht31.markdown index f1a46c17810f..07d17e1305c0 100644 --- a/source/_components/sensor.sht31.markdown +++ b/source/_components/sensor.sht31.markdown @@ -47,7 +47,7 @@ sensor: default: All conditions type: list keys: - temperature: + temperature: description: The current temperature of the SHT31. humidity: description: The current humidity of the SHT31. diff --git a/source/_components/sensor.sigfox.markdown b/source/_components/sensor.sigfox.markdown index 4e34dcb41f71..8491f48ae3a5 100644 --- a/source/_components/sensor.sigfox.markdown +++ b/source/_components/sensor.sigfox.markdown @@ -51,4 +51,3 @@ name: default: "sigfox" type: string {% endconfiguration %} - diff --git a/source/_components/sensor.skybeacon.markdown b/source/_components/sensor.skybeacon.markdown index 01d34fe65ba2..d0bcc5522b12 100644 --- a/source/_components/sensor.skybeacon.markdown +++ b/source/_components/sensor.skybeacon.markdown @@ -48,4 +48,3 @@ monitored_conditions: humidity: description: Humidity at the sensor's location. {% endconfiguration %} - diff --git a/source/_components/sensor.skybell.markdown b/source/_components/sensor.skybell.markdown deleted file mode 100644 index 39699978b995..000000000000 --- a/source/_components/sensor.skybell.markdown +++ /dev/null @@ -1,38 +0,0 @@ ---- -layout: page -title: "Skybell Sensor" -description: "Instructions on how to integrate your Skybell HD devices within Home Assistant." -date: 2017-10-03 16:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: skybell.png -ha_category: Doorbell -ha_release: 0.56 -ha_iot_class: "Cloud Polling" ---- - -To get your [Skybell.com](https://skybell.com/) sensors working within Home Assistant, please follow the instructions for the general [Skybell component](/components/skybell). - -## {% linkable_title Configuration %} - -Once you have enabled the [Skybell component](/components/skybell), add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: skybell - monitored_conditions: - - chime_level -``` - -{% configuration %} -monitored_conditions: - type: list - required: true - description: Conditions to display in the frontend. The following conditions can be monitored. - keys: - chime_level: - description: Return a value between 0-3, indicating no chime, low, medium, and high respectively. -{% endconfiguration %} diff --git a/source/_components/sensor.sleepiq.markdown b/source/_components/sensor.sleepiq.markdown deleted file mode 100644 index 616c54e56ba1..000000000000 --- a/source/_components/sensor.sleepiq.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "SleepIQ Sensor" -description: "Instructions for how to integrate SleepIQ sensors within Home Assistant." -date: 2016-08-28 8:56 -sidebar: true -comments: false -sharing: true -footer: true -logo: sleepiq.png -ha_category: Health -ha_release: 0.29 -ha_iot_class: "Local Polling" ---- - -To get your SleepIQ sensors working with Home Assistant, follow the instructions for the general [SleepIQ component](/components/sleepiq/). diff --git a/source/_components/sensor.sma.markdown b/source/_components/sensor.sma.markdown index 6365675c6e40..588377c1a875 100644 --- a/source/_components/sensor.sma.markdown +++ b/source/_components/sensor.sma.markdown @@ -29,7 +29,7 @@ sensor: password: YOUR_SMA_PASSWORD sensors: current_consumption: [total_consumption] - current_power: + pv_power: total_yield: ``` @@ -59,29 +59,47 @@ group: type: string sensors: description: A dictionary of sensors that will be added. The value of the dictionary can include a list of sensor names that will be used as attributes. - required: true + required: false + default: All sensors type: map keys: - current_power: - description: Current power (W). - current_consumption: - description: Power that you are currently drawing, depending on your installation it can be a combination of the inverter and the grid (W). + pv_power: + description: Current power generated by the inverter (W). + pv_gen_meter: + description: Total kWh generated to date (kWh) total_yield: description: Total power yield from solar installation (kWh). + daily_yield: + description: The yield for today (Wh) + + current_consumption: + description: Power that you are currently drawing, depending on your installation it can be a combination of the inverter and the grid (W). total_consumption: description: Total power consumption (kWh). - grid_voltage: - description: The grid voltage (V) - pv_power: - description: PV Power (W) - daily_yield: - description: daily_yield (Wh) - power_supplied: + + grid_power_supplied: description: Power supplied (W) - power_absorbed: + grid_power_absorbed: description: Power absorbed (W) + grid_total_yield: + description: Total power fom the grid (kWh) + grid_total_absorbed: + description: Total power supplied to the grid + + grid_power: + description: Power supplied by the grid (W) + frequency: + description: Grid frequency (W) + voltage_l1: + description: Voltage for phase 1 (V) + voltage_l2: + description: Voltage for phase 2 (V) + voltage_l2: + description: Voltage for phase 3 (V) + status: - description: Status of the solar plant. + description: Status of the solar plant. + your-custom-sensor: description: Any sensor name defined in the `custom:` section custom: @@ -123,4 +141,4 @@ Example: factor: 1000 ``` -Over time more sensors will be added as standard sensors to the [pysma library](https://github.com/kellerza/pysma/blob/master/pysma/__init__.py#L59). Feel free to submit additional sensors on that repository. +Over time more sensors will be added as standard sensors to the [pysma library](https://github.com/kellerza/pysma/blob/master/pysma/__init__.py#L100). Feel free to submit additional sensors on that repository. diff --git a/source/_components/sensor.smappee.markdown b/source/_components/sensor.smappee.markdown deleted file mode 100644 index 8a1e1c56e251..000000000000 --- a/source/_components/sensor.smappee.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Smappee Sensor" -description: "Instructions on how to integrate Smappee energy monitor into Home Assistant." -date: 2018-02-26 08:37 -sidebar: true -comments: false -sharing: true -footer: true -logo: smappee.png -ha_release: "0.64" -ha_category: Energy ---- - -[Smappee](https://www.smappee.com/) controller for energy monitoring and Comport plug switches. - -Energy monitor measurements will be automatically added when you connect to the Smappee controller. - -For more configuration information see the [Smappee component](/components/smappee/) documentation. diff --git a/source/_components/sensor.snmp.markdown b/source/_components/sensor.snmp.markdown index 2f2b4ba5f948..7cf6868a93f9 100644 --- a/source/_components/sensor.snmp.markdown +++ b/source/_components/sensor.snmp.markdown @@ -27,7 +27,7 @@ sensor: {% configuration %} host: - description: The IP address of your host, eg. `192.168.1.32`. + description: The IP address of your host, e.g., `192.168.1.32`. required: false type: string default: 'localhost' diff --git a/source/_components/sensor.sochain.markdown b/source/_components/sensor.sochain.markdown index 26ff8d5fd1b0..246a920ed227 100644 --- a/source/_components/sensor.sochain.markdown +++ b/source/_components/sensor.sochain.markdown @@ -13,7 +13,6 @@ ha_release: 0.61 ha_iot_class: "Cloud Polling" --- - The `SoChain` sensor platform displays supported cryptocurrency wallet balances from [SoChain](https://chain.so). To add the SoChain sensor to your installation, specify a network and address to watch in the `configuration.yaml` file: diff --git a/source/_components/sensor.socialblade.markdown b/source/_components/sensor.socialblade.markdown index 143feb80e9dd..521e2f713759 100644 --- a/source/_components/sensor.socialblade.markdown +++ b/source/_components/sensor.socialblade.markdown @@ -13,11 +13,11 @@ ha_release: 0.69 ha_iot_class: "Cloud Polling" --- -The `socialblade` sensor platform allows you get updates on a Youtube channel using your social blade channel ID. The sensor gets the subscribers and total views count from [Social Blade Website]( https://socialblade.com/). +The `socialblade` sensor platform allows you get updates on a Youtube channel using your social blade channel ID. The sensor gets the subscribers and total views count from [Social Blade Website](https://socialblade.com). ## {% linkable_title Setup %} -To get the channel ID you can go to [Social Blade Website]( https://socialblade.com/) and search for Youtube channel by username, then select the channel and grab the ID from the URL. The channel ID will be the last part of the URL: https://socialblade.com/youtube/channel/{channel_id} +To get the channel ID you can go to [Social Blade Website](https://socialblade.com) and search for Youtube channel by username, then select the channel and grab the ID from the URL. The channel ID will be the last part of the URL: `https://socialblade.com/youtube/channel/{channel_id}` ## {% linkable_title Configuration %} @@ -32,9 +32,9 @@ sensor: {% configuration %} channel_id: - description: Channel id number optained from the URL when you access Social Blade web client. + description: Channel id number optained from the URL when you access Social Blade web client. required: true type: string {% endconfiguration %} -All the data will be fetch from [Social Blade]( https://socialblade.com/). +All the data will be fetch from [Social Blade]( https://socialblade.com/). diff --git a/source/_components/sensor.solaredge.markdown b/source/_components/sensor.solaredge.markdown index eb06e02f896f..4959807488b2 100644 --- a/source/_components/sensor.solaredge.markdown +++ b/source/_components/sensor.solaredge.markdown @@ -16,7 +16,7 @@ ha_iot_class: "Cloud Polling" The `solaredge` platform uses the [SolarEdge Monitoring API](https://www.solaredge.com/sites/default/files/se_monitoring_api.pdf) to allow you to get details from your SolarEdge solar power setup and integrate these in your Home Assistant installation.

-The SolarEdge Monitoring API has a daily rate limit of 300 requests. In order to stay under this limit, and alow for some additional requests, the `solaredge` platform will update the site overview every 5 minutes. +The SolarEdge Monitoring API has a daily rate limit of 300 requests. In order to stay under this limit, and alow for some additional requests, the `solaredge` platform will update the site overview every 10 minutes.

## {% linkable_title Configuration %} @@ -32,7 +32,7 @@ sensor: site_id: SITE_ID monitored_conditions: - current_power - - last_day_data + - energy_today ``` {% endraw %} @@ -56,13 +56,13 @@ monitored_conditions: type: list default: current_power keys: - life_time_data: + lifetime_energy: description: Lifetime energy generated at your SolarEdge Site in Wh - last_year_data: + energy_this_year: description: Energy generated this year at your SolarEdge Site in Wh - last_month_data: + energy_this_month: description: Energy generated this month at your SolarEdge Site in Wh - last_day_data: + energy_today: description: Energy generated today at your SolarEdge Site in Wh current_power: description: Current generated power in W @@ -84,10 +84,10 @@ sensor: name: SolarEdge monitored_conditions: - current_power - - last_day_data - - last_month_data - - last_year_data - - life_time_data + - energy_today + - energy_this_month + - energy_this_year + - lifetime_energy ``` {% endraw %} @@ -99,7 +99,7 @@ In case you would like to convert the values for example to kWh instead of the d sensors: platform: template sensors: - solaredge_last_year_data_template: - value_template: '{{(states.sensor.solaredge_last_year_data.state | float / 1000) | round(2)}}' + solaredge_energy_this_year_template: + value_template: '{{(states.sensor.solaredge_energy_this_year.state | float / 1000) | round(2)}}' ``` {% endraw %} diff --git a/source/_components/sensor.sonarr.markdown b/source/_components/sensor.sonarr.markdown index 9b70848868d0..8f02530b1923 100644 --- a/source/_components/sensor.sonarr.markdown +++ b/source/_components/sensor.sonarr.markdown @@ -13,7 +13,6 @@ ha_release: 0.34 ha_iot_class: "Local Polling" --- - This `sonarr` sensor platform pulls data from a given [Sonarr](https://sonarr.tv/) instance. ## {% linkable_title Configuration %} diff --git a/source/_components/sensor.sql.markdown b/source/_components/sensor.sql.markdown index 612df43f726d..684dcf772518 100644 --- a/source/_components/sensor.sql.markdown +++ b/source/_components/sensor.sql.markdown @@ -68,7 +68,7 @@ queries: ## {% linkable_title Examples %} -In this section you find some real-life examples of how to use this sensor. +In this section, you find some real-life examples of how to use this sensor. ### {% linkable_title Current state of an entity %} @@ -81,7 +81,7 @@ sensor: unit_of_measurement: '°C' ``` -The query will look like this: +The query will look like this: ```sql SELECT * FROM states WHERE entity_id = 'sensor.temperature_in' ORDER BY state_id DESC LIMIT 1; @@ -99,7 +99,6 @@ sensor: ``` {% endraw %} - Note that the SQL sensor state corresponds to the last row of the SQL result set. ### {% linkable_title Previous state of an entity %} @@ -107,7 +106,7 @@ Note that the SQL sensor state corresponds to the last row of the SQL result set This example only works with *binary_sensors*: ```sql -SELECT * FROM states WHERE entity_id='binary_sensor.xyz789' GROUP BY state ORDER BY last_changed DESC LIMIT 1; +SELECT * FROM states WHERE entity_id = 'binary_sensor.xyz789' GROUP BY state ORDER BY last_changed DESC LIMIT 1; ``` ### {% linkable_title Database size %} @@ -116,13 +115,14 @@ SELECT * FROM states WHERE entity_id='binary_sensor.xyz789' GROUP BY state ORDER {% raw %} ```yaml -- platform: sql +sensor: + - platform: sql db_url: postgresql://user:password@host/dbname queries: - name: DB size query: "SELECT (pg_database_size('dsmrreader')/1024/1024) as db_size;" column: "db_size" - unit_of_measurement: MB + unit_of_measurement: MB ``` {% endraw %} @@ -131,12 +131,12 @@ SELECT * FROM states WHERE entity_id='binary_sensor.xyz789' GROUP BY state ORDER {% raw %} ```yaml sensor: -- platform: sql - db_url: mysql://user:password@localhost/hass - queries: - - name: DB size - query: 'SELECT table_schema "database", Round(Sum(data_length + index_length) / 1024, 1) "value" FROM information_schema.tables WHERE table_schema="hass" GROUP BY table_schema;' - column: 'value' - unit_of_measurement: kB + - platform: sql + db_url: mysql://user:password@localhost/hass + queries: + - name: DB size + query: 'SELECT table_schema "database", Round(Sum(data_length + index_length) / 1024, 1) "value" FROM information_schema.tables WHERE table_schema="hass" GROUP BY table_schema;' + column: 'value' + unit_of_measurement: kB ``` {% endraw %} diff --git a/source/_components/sensor.starlingbank.markdown b/source/_components/sensor.starlingbank.markdown index 5accaf731d54..852fbbb8203d 100644 --- a/source/_components/sensor.starlingbank.markdown +++ b/source/_components/sensor.starlingbank.markdown @@ -27,11 +27,12 @@ You can find more information about Starling Bank at [their website](https://www Once you have your own Starling bank account you will need to sign up for a Starling developer account [here](https://developer.starlingbank.com/signup). You won't need to do any development but you will need to get a "Personal Access Token" that will allow the integration to access your account balance.

- You control what access is granted using this token. This integration only needs very basic access (see below). + You control what access is granted using this token. This integration only needs very basic access (see below).

-Once you've signed up: -1. Head to the [Personal Access Section](https://developer.starlingbank.com/personal/token) of your developer account. +Once you've signed up: + +1. Head to the [Personal Access Section](https://developer.starlingbank.com/personal/token) of your developer account. 2. Click "Create Token". 3. Give your token a name e.g., "Home Assistant". 4. Tick the permissions "account:read" and "balance:read". The others you can leave un-ticked. diff --git a/source/_components/sensor.startca.markdown b/source/_components/sensor.startca.markdown index 5d36a629eecf..c91b0a5b709e 100644 --- a/source/_components/sensor.startca.markdown +++ b/source/_components/sensor.startca.markdown @@ -83,4 +83,3 @@ monitored_conditions: used_remaining: description: Remaining bandwidth calucated from used and supplied total bandwidth (gigabytes). {% endconfiguration %} - diff --git a/source/_components/sensor.statistics.markdown b/source/_components/sensor.statistics.markdown index ad60be7beb05..75a1d8cd8f97 100644 --- a/source/_components/sensor.statistics.markdown +++ b/source/_components/sensor.statistics.markdown @@ -14,11 +14,10 @@ ha_release: "0.30" ha_qa_scale: internal --- - The `statistics` sensor platform consumes the state from other sensors. It exports the `mean` value as state and the following values as attributes: `count`, `mean`, `median`, `stdev`, `variance`, `total`, `min`, `max`, `min_age`, `max_age`, `change`, `average_change` and `change_rate`. If it's a binary sensor then only state changes are counted. If you are running the [recorder](/components/recorder/) component, on startup the data is read from the database. So after a restart of the platform, you will immediately have data available. If you're using the [history](/components/history/) component, this will automatically also start the `recorder` component on startup. -If you are *not* running the `recorder` component, it can take time till the sensor starts to work because a couple of attributes need more than one value to do the calculation. +If you are *not* running the `recorder` component, it can take time till the sensor starts to work because a couple of attributes need more than one value to do the calculation. ## {% linkable_title Configuration %} diff --git a/source/_components/sensor.steam_online.markdown b/source/_components/sensor.steam_online.markdown index b42e343aeea3..7914ab338268 100644 --- a/source/_components/sensor.steam_online.markdown +++ b/source/_components/sensor.steam_online.markdown @@ -13,7 +13,6 @@ ha_iot_class: "Cloud Polling" ha_release: 0.14 --- - The `steam` sensor platform will allow you to track the online status of public [Steam](https://steamcommunity.com) accounts. ## {% linkable_title Setup %} diff --git a/source/_components/sensor.supervisord.markdown b/source/_components/sensor.supervisord.markdown index bc1c2880b905..2e0464e04842 100644 --- a/source/_components/sensor.supervisord.markdown +++ b/source/_components/sensor.supervisord.markdown @@ -28,7 +28,6 @@ After a restart of `supervisord` you should be able to access the web interface.

- To use this sensor in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -41,6 +40,6 @@ sensor: url: description: The URL to track. required: false - default: "http://localhost:9001/RPC2" + default: "`http://localhost:9001/RPC2`" type: string {% endconfiguration %} diff --git a/source/_components/sensor.swiss_public_transport.markdown b/source/_components/sensor.swiss_public_transport.markdown index b702c2dc50a6..f58ab765f2bb 100644 --- a/source/_components/sensor.swiss_public_transport.markdown +++ b/source/_components/sensor.swiss_public_transport.markdown @@ -13,7 +13,6 @@ ha_iot_class: "Cloud Polling" ha_release: pre 0.7 --- - The `swiss_public_transport` sensor will give you the next three departure times from a given location to another one in Switzerland. The [Swiss public transport API](http://transport.opendata.ch/) only allows 1000 requests per 24 hours. @@ -40,10 +39,10 @@ to: required: true type: string name: - description: The name of the sensor. + description: The name of the sensor. required: false type: string default: Next Departure -{% endconfiguration %} +{% endconfiguration %} The public timetables are coming from [Swiss public transport](http://transport.opendata.ch). diff --git a/source/_components/sensor.synologydsm.markdown b/source/_components/sensor.synologydsm.markdown index 62fed8330803..ee39a0c854d6 100644 --- a/source/_components/sensor.synologydsm.markdown +++ b/source/_components/sensor.synologydsm.markdown @@ -13,7 +13,6 @@ ha_release: 0.32 ha_iot_class: "Local Polling" --- - The `synologydsm` sensor platform allows getting various statistics from your [Synology NAS](https://www.synology.com). ## {% linkable_title Configuration %} @@ -139,6 +138,10 @@ After booting Home Assistant it can take up to 15 minutes for the sensors to sho This sensor will wake up your Synology NAS if it's in hibernation mode.

+

+ If you set `ssl:` to `False`, you *have* to also explicitly set `port:` to **5000**. +

+ ## {% linkable_title Separate User Configuration %} Due to the nature of the Synology DSM API it is required to grant the user admin rights. This is related to the fact that utilization information is stored in the core module. diff --git a/source/_components/sensor.systemmonitor.markdown b/source/_components/sensor.systemmonitor.markdown index 48e8f8858801..8c28c1525792 100644 --- a/source/_components/sensor.systemmonitor.markdown +++ b/source/_components/sensor.systemmonitor.markdown @@ -49,9 +49,9 @@ file. | Type (`type:`) | Argument (`arg:`) | | :------------------ |:--------------------------| -| disk_use_percent | Path, eg. `/` | -| disk_use | Path, eg. `/` | -| disk_free | Path, eg. `/` | +| disk_use_percent | Path, e.g., `/` | +| disk_use | Path, e.g., `/` | +| disk_free | Path, e.g., `/` | | memory_use_percent | | | memory_use | | | memory_free | | @@ -61,12 +61,12 @@ file. | load_1m | | | load_5m | | | load_15m | | -| network_in | Interface, eg. `eth0` | -| network_out | Interface, eg. `eth0` | -| packets_in | Interface, eg. `eth0` | -| packets_out | Interface, eg. `eth0` | -| ipv4_address | Interface, eg. `eth0` | -| ipv6_address | Interface, eg. `eth0` | +| network_in | Interface, e.g., `eth0` | +| network_out | Interface, e.g., `eth0` | +| packets_in | Interface, e.g., `eth0` | +| packets_out | Interface, e.g., `eth0` | +| ipv4_address | Interface, e.g., `eth0` | +| ipv6_address | Interface, e.g., `eth0` | | processor_use | | | process | Binary, e.g., `octave-cli` | | last_boot | | @@ -77,7 +77,7 @@ To retrieve all available network interfaces on a Linux System, execute the `ifconfig` command. ```bash -$ ifconfig -a | sed 's/[ \t].*//;/^$/d' +ifconfig -a | sed 's/[ \t].*//;/^$/d' ``` ## {% linkable_title Windows specific %} diff --git a/source/_components/sensor.tado.markdown b/source/_components/sensor.tado.markdown deleted file mode 100644 index 669042f8bc41..000000000000 --- a/source/_components/sensor.tado.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Tado Sensor" -description: "Instructions on how to integrate Tado thermostats with Home Assistant." -date: 2017-03-20 12:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: tado.png -ha_category: Sensor -ha_release: 0.41 -ha_iot_class: "Cloud Polling" ---- - -The `tado` sensor platform allow you to monitor your tado climate devices. - - -The requirement is that you have set up the [tado](/components/tado/) component. - diff --git a/source/_components/sensor.tahoma.markdown b/source/_components/sensor.tahoma.markdown deleted file mode 100644 index d5dbf0530e73..000000000000 --- a/source/_components/sensor.tahoma.markdown +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: page -title: "Tahoma Sensor" -description: "Instructions on how to integrate Tahoma sensors into Home Assistant." -date: 2017-07-18 12:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: tahoma.png -ha_category: Sensor -ha_release: 0.59 ---- - -The `tahoma` sensor platform lets you see sensors added to your Tahoma Box in Home Assistant. - -Sensors will be added automatically. Please refer to the [component](/components/tahoma/) configuration on how to setup Tahoma. diff --git a/source/_components/sensor.tank_utility.markdown b/source/_components/sensor.tank_utility.markdown index 6446f5e89491..a77dbc4f3a30 100644 --- a/source/_components/sensor.tank_utility.markdown +++ b/source/_components/sensor.tank_utility.markdown @@ -55,4 +55,3 @@ unit_of_measurement: required: true type: map {% endconfiguration %} - diff --git a/source/_components/sensor.tautulli.markdown b/source/_components/sensor.tautulli.markdown index 5b2fc9349eb3..696c3d9362c5 100644 --- a/source/_components/sensor.tautulli.markdown +++ b/source/_components/sensor.tautulli.markdown @@ -13,7 +13,7 @@ ha_release: 0.82 ha_iot_class: "Local Polling" --- -The `Tautulli` sensor platform will monitor activity on a given [Tautulli Server][tautulli]. It will create a sensor that shows the number of currently active streams as the state. If you click the sensor for more details it will show you more statistics, the following stats are available by default: +The `tautulli` sensor platform will monitor activity on a given [Tautulli Server][tautulli]. It will create a sensor that shows the number of currently active streams as the state. If you click the sensor for more details it will show you more statistics, the following stats are available by default: - LAN bandwidth - Number of direct plays @@ -28,7 +28,11 @@ The `Tautulli` sensor platform will monitor activity on a given [Tautulli Server More user statistics can be added with the `monitored_conditions` configuration option, this will add one attribute per user in addition to the users current `activity`. -To find your `api_key` open the Tautulli web interface and navigate to `Settings` and then to `Web interface`, the `api_key` will be at the bottom of that page. +## {% linkable_title Setup %} + +To find your `api_key` open the Tautulli web interface and navigate to `Settings` and then to `Web interface`, the `api_key` will be at the bottom of that page. + +## {% linkable_title Configuration %} If you want to enable this sensor, add the following lines to your `configuration.yaml`: diff --git a/source/_components/sensor.tcp.markdown b/source/_components/sensor.tcp.markdown index f3638d48bd8c..526c6d85e1fc 100644 --- a/source/_components/sensor.tcp.markdown +++ b/source/_components/sensor.tcp.markdown @@ -15,6 +15,8 @@ ha_iot_class: "Local Polling" The TCP component allows the integration of some services for which a specific Home Assistant component does not exist. If the service communicates over a TCP socket with a simple request/reply mechanism then the chances are that this component will allow integration with it. +## {% linkable_title Configuration %} + To enable this sensor, add the following lines to your `configuration.yaml`: ```yaml @@ -67,7 +69,7 @@ sensor: ### {% linkable_title hddtemp %} -The tool `hddtemp` collects the temperature of your hard disks. +The tool `hddtemp` collects the temperature of your hard disks. ```bash $ hddtemp diff --git a/source/_components/sensor.ted5000.markdown b/source/_components/sensor.ted5000.markdown index 1e498eb1ca00..23e82fc9e3f1 100644 --- a/source/_components/sensor.ted5000.markdown +++ b/source/_components/sensor.ted5000.markdown @@ -24,7 +24,6 @@ sensor: host: 192.168.1.100 ``` - {% configuration %} host: description: The IP address of your ted gateway. @@ -48,4 +47,3 @@ For each plugged MTU, using an index starting at 1, the platform creates 2 senso sensor._mtu_power sensor._mtu_voltage ``` - diff --git a/source/_components/sensor.teksavvy.markdown b/source/_components/sensor.teksavvy.markdown index c55d05f3f398..0cf50bdf67a0 100644 --- a/source/_components/sensor.teksavvy.markdown +++ b/source/_components/sensor.teksavvy.markdown @@ -75,4 +75,3 @@ monitored_conditions: onpeak_remaining: description: Remaining bandwidth (gigabytes). {% endconfiguration %} - diff --git a/source/_components/sensor.tellduslive.markdown b/source/_components/sensor.tellduslive.markdown deleted file mode 100644 index 4e136af47607..000000000000 --- a/source/_components/sensor.tellduslive.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "Telldus Live sensor" -description: "Instructions on how to integrate Telldus Live sensors into Home Assistant." -date: 2016-01-17 15:49 -sidebar: true -comments: false -sharing: true -footer: true -logo: telldus.png -ha_category: Sensor -ha_iot_class: "Local Polling" ---- - -Integrates Telldus Live sensors into Home Assistant. See the [main component](/components/tellduslive/) for configuration instructions. - diff --git a/source/_components/sensor.tellstick.markdown b/source/_components/sensor.tellstick.markdown deleted file mode 100644 index f25207d60bd1..000000000000 --- a/source/_components/sensor.tellstick.markdown +++ /dev/null @@ -1,62 +0,0 @@ ---- -layout: page -title: "TellStick Sensor" -description: "Instructions on how to integrate TellStick sensors into Home Assistant." -date: 2015-08-06 19:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: telldus_tellstick.png -ha_category: Sensor -ha_iot_class: "Local Polling" ---- - -The `tellstick` sensor platform allows you to get current meteorological data from a [TellStick](http://www.telldus.se/products/tellstick) device. - -To use your TellStick device, you first have to set up your [Tellstick hub](/components/tellstick/) and then add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: tellstick -``` - -{% configuration %} -sensor: - description: "Entry for a sensor with the ID and its name, e.g., ID: Name." - required: false - type: string -only_named: - description: Only show the named sensors. Set to `True` to hide sensors. - required: false - default: false - type: boolean -temperature_scale: - description: The scale of the temperature value. - required: false - default: °C - type: string -datatype_mask: - description: Mask to determine which sensor values to show based on. Please check the [TellCore tellcore.constants documentation](https://tellcore-py.readthedocs.org/en/v1.1.2/constants.html#module-tellcore.constants) for details. - required: false - default: 127 - type: integer -{% endconfiguration %} - -## {% linkable_title Examples %} - -In this section you find some real-life examples of how to use this sensor. - -### {% linkable_title Full configuration %} - -```yaml -# Example configuration.yaml entry -sensor: - - platform: tellstick - 135: Outside - 21: Inside - only_named: True - temperature_scale: "°C" - datatype_mask: 1 -``` diff --git a/source/_components/sensor.template.markdown b/source/_components/sensor.template.markdown index 3420986a0373..238407e63f1d 100644 --- a/source/_components/sensor.template.markdown +++ b/source/_components/sensor.template.markdown @@ -55,7 +55,7 @@ sensor: required: false type: string, list unit_of_measurement: - description: "Defines the units of measurement of the sensor, if any. This will also influence the graphical presentation in the history visualisation as continuous value. Sensors with missing `unit_of_measurement` are showing as discrete values." + description: "Defines the units of measurement of the sensor, if any. This will also influence the graphical presentation in the history visualization as a continuous value. Sensors with missing `unit_of_measurement` are showing as discrete values." required: false type: string default: None @@ -80,18 +80,19 @@ sensor: ## {% linkable_title Considerations %} -### Startup +### {% linkable_title Startup %} If you are using the state of a platform that takes extra time to load, the Template Sensor may get an `unknown` state during startup. To avoid this (and the resulting error messages in your log file), you can use `is_state()` function in your template. 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 %} -### Entity IDs +### {% linkable_title Entity IDs %} -The template engine will attempt to work out what entities should trigger an update of the sensor. This can fail, for example if your template loops over the contents of a group. In this case you can use `entity_id` to provide a list of entity IDs that will cause the sensor to update or you can run the service `homeassistant.update_entity` to update the sensor at will. +The template engine will attempt to work out what entities should trigger an update of the sensor. This can fail, for example, if your template loops over the contents of a group. In this case, you can use `entity_id` to provide a list of entity IDs that will cause the sensor to update or you can run the service `homeassistant.update_entity` to update the sensor at will. ## {% linkable_title Examples %} -In this section you find some real-life examples of how to use this sensor. +In this section, you find some real-life examples of how to use this sensor. ### {% linkable_title Sun Angle %} @@ -111,7 +112,7 @@ sensor: ### {% linkable_title Renaming Sensor Output %} -If you don't like the wording of a sensor output then the Template Sensor can help too. Let's rename the output of the [Sun component](/components/sun/) as +If you don't like the wording of a sensor output, then the Template Sensor can help too. Let's rename the output of the [Sun component](/components/sun/) as a simple example: {% raw %} @@ -156,7 +157,7 @@ sensor: ### {% linkable_title Change The Unit of Measurement %} -With a Template Sensor it's easy to convert given values into others if the unit of measurement doesn't fit your needs. +With a Template Sensor, it's easy to convert given values into others if the unit of measurement doesn't fit your needs. {% raw %} ```yaml @@ -267,7 +268,7 @@ sensor: ``` {% endraw %} -Useful entities to choose might be `sensor.date` which update once per day, or `sensor.time` which updates once per minute. +Useful entities to choose might be `sensor.date` which update once per day or `sensor.time` which updates once per minute. An alternative to this is to create an interval-based automation that calls the service `homeassistant.update_entity` for the entities requiring updates. This modified example updates every 5 minutes: @@ -285,9 +286,8 @@ sensor: automation: - alias: 'nonsmoker_update' trigger: - - platform: time + - platform: time_pattern minutes: '/5' - seconds: 0 action: - service: homeassistant.update_entity entity_id: sensor.nonsmoker diff --git a/source/_components/sensor.tesla.markdown b/source/_components/sensor.tesla.markdown deleted file mode 100644 index 1b9dfcca1559..000000000000 --- a/source/_components/sensor.tesla.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Tesla Sensor" -description: "Instructions on how to integrate Tesla sensors into Home Assistant." -date: 2017-08-30 12:21 -sidebar: true -comments: false -sharing: true -footer: true -logo: tesla.png -ha_category: Car -ha_iot_class: "Cloud Push" -ha_release: 0.53 ---- - -The `tesla` platform allows you to get data from your [Tesla](https://www.tesla.com/) sensors from within Home Assistant. - -The sensor platform will be automatically configured if `tesla` component is configured. - -For more configuration information see the [Tesla component](/components/tesla/) documentation. diff --git a/source/_components/sensor.thermoworks_smoke.markdown b/source/_components/sensor.thermoworks_smoke.markdown index 11098e72a8c5..c50ddfb8c39f 100644 --- a/source/_components/sensor.thermoworks_smoke.markdown +++ b/source/_components/sensor.thermoworks_smoke.markdown @@ -16,7 +16,7 @@ ha_iot_class: "Cloud Polling" The `thermoworks_smoke` sensor platform pulls data for your [ThermoWorks Smoke Thermometer](https://www.thermoworks.com/Smoke). This requires a [Smoke WiFi Gateway](https://www.thermoworks.com/Smoke-Gateway) with an internet connection. -You will need to have previously registered your smoke to your account via the mobile app and provide +You will need to have previously registered your smoke to your account via the mobile app and provide the email and password you used to in the configuration for this sensor in order to connect and pull your data. ## {% linkable_title Configuration %} @@ -109,7 +109,7 @@ input_number: step: 0.5 unit_of_measurement: '°F' icon: mdi:thermometer - + automation: - alias: Alert when My Smoke Probe 1 is above threshold trigger: diff --git a/source/_components/sensor.thethingsnetwork.markdown b/source/_components/sensor.thethingsnetwork.markdown index faeb8b7e6500..b5a27540f1e5 100644 --- a/source/_components/sensor.thethingsnetwork.markdown +++ b/source/_components/sensor.thethingsnetwork.markdown @@ -42,7 +42,7 @@ Click **Add integration** to finish the process. Add a The Things Network Data Storage integration

-When done, the status of the integration should be **Running**. You could check the output after clicking on **go to platform** in an interactive web interface. +When done, the status of the integration should be **Running**. You could check the output after clicking on **go to platform** in an interactive web interface.

@@ -80,4 +80,3 @@ sensor: required: true type: list {% endconfiguration %} - diff --git a/source/_components/sensor.tibber.markdown b/source/_components/sensor.tibber.markdown deleted file mode 100644 index 2daf9e4a8b1b..000000000000 --- a/source/_components/sensor.tibber.markdown +++ /dev/null @@ -1,48 +0,0 @@ ---- -layout: page -title: "Tibber Sensor" -description: "Instructions on how to integrate Tibber within Home Assistant." -date: 2017-10-03 17:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: tibber.png -ha_category: Energy -ha_release: 0.55 -ha_qa_scale: silver -ha_iot_class: "Cloud Polling" ---- - -The `tibber` sensor provides the current electricity price if you are a [Tibber](https://tibber.com/) customer. -If you have a Tibber Pulse it will also show the electricity consumption in real time. - -The requirement is that you have setup the [`tibber` component](/components/tibber/). - -## {% linkable_title Examples %} - -In this section, you will find some real-life examples of how to use this sensor. - -### {% linkable_title Electricity price %} - -The electricity price can be used to make automations. The sensor has a `max_price` and `min_price` attribute, with max and min price for the current day. Here is an example to get a notification when the price is above 90% of the maximum price for the day: - -{% raw %} -```yaml -- alias: "Electricity price" - trigger: - platform: time - # Matches every hour at 1 minutes past whole - minutes: 1 - seconds: 00 - condition: - condition: template - value_template: '{{ float(states.sensor.electricity_price_hamretunet_10.state) > 0.9 * float(states.sensor.electricity_price_hamretunet_10.attributes.max_price) }}' - action: - - service: notify.pushbullet - data: - title: "Electricity price" - target: "device/daniel_telefon_cat" - message: "The electricity price is now {{ states.sensor.electricity_price_hamretunet_10.state }}" -``` -{% endraw %} diff --git a/source/_components/sensor.time_date.markdown b/source/_components/sensor.time_date.markdown index 4a922a7e4081..2f7d8d949810 100644 --- a/source/_components/sensor.time_date.markdown +++ b/source/_components/sensor.time_date.markdown @@ -14,7 +14,6 @@ ha_release: pre 0.7 ha_qa_scale: internal --- - The time and date (`time_date`) sensor platform simple displays the time in various formats, the date, or both. To enable this sensor in your installation, add the following to your `configuration.yaml` file: @@ -37,4 +36,3 @@ sensor:

- diff --git a/source/_components/sensor.toon.markdown b/source/_components/sensor.toon.markdown deleted file mode 100644 index 7a82ab95e9a2..000000000000 --- a/source/_components/sensor.toon.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Toon Sensor" -description: "Instructions on how to integrate Toon climate devices within Home Assistant." -date: 2017-10-22 12:00 -sidebar: true -comments: false -sharing: true -footer: true -ha_category: Sensor -ha_release: 0.56 -logo: toon.png -ha_iot_class: "Cloud Polling" ---- - -The `toon` sensor platform allows you to observe the power flow in your house through your Toon. If available, gas flow, solar output, smart plug status and connected smoke detector data can also be accessed in Toon. - -The requirement is that you have setup the [`toon`](/components/toon/) component. diff --git a/source/_components/sensor.tradfri.markdown b/source/_components/sensor.tradfri.markdown deleted file mode 100644 index a6aebf4e5b66..000000000000 --- a/source/_components/sensor.tradfri.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "IKEA Trådfri Sensor" -description: "Access and control your Zigbee-based IKEA Trådfri (Tradfri) Sensors." -date: 2017-04-12 22.04 -sidebar: true -comments: false -sharing: true -footer: true -logo: ikea.svg -ha_category: Sensor -ha_iot_class: "Local Polling" -ha_release: 0.67 ---- - -For installation instructions, see [the Trådfri component](/components/tradfri/). diff --git a/source/_components/sensor.trafikverket_weatherstation.markdown b/source/_components/sensor.trafikverket_weatherstation.markdown index 7c8888b7806e..e0cf88bf5350 100644 --- a/source/_components/sensor.trafikverket_weatherstation.markdown +++ b/source/_components/sensor.trafikverket_weatherstation.markdown @@ -13,15 +13,15 @@ ha_release: 0.66.0 ha_iot_class: "Cloud Polling" --- -Showing weather information provided by [Trafikverket](https://www.trafikverket.se/) weather stations in Sweden. - +Showing weather information provided by [Trafikverket](https://www.trafikverket.se/) weather stations in Sweden. Potential use cases: -- Get weather data in general. -- You live near a weather station and want to know the current weather conditions at home. -- Setup automations for your car heating system. If the road is frozen along the way to work, you might want the car heating system to start earlier. -##### {% linkable_title Configuration %} +- Get weather data in general. +- You live near a weather station and want to know the current weather conditions at home. +- Setup automations for your car heating system. If the road is frozen along the way to work, you might want the car heating system to start earlier. + +## {% linkable_title Configuration %} To enable this sensor, add the following lines to your `configuration.yaml`. @@ -54,7 +54,7 @@ station: description: Name of the weather station from Trafikverket. required: true type: string -monitored_conditions: +monitored_conditions: description: Specify what measurement data to retrieve from the weather station. required: true type: map @@ -72,14 +72,14 @@ monitored_conditions: wind_direction_text: description: Rough wind direction in twelve variants (Swedish text). wind_speed: - description: Average wind speed during the last 10 minutes. + description: Average wind speed during the last 10 minutes. {% endconfiguration %} -##### {% linkable_title Obtaining API key %} +## {% linkable_title Obtaining API key %} Please click [here](https://api.trafikinfo.trafikverket.se/) and register to obtain the API key. -##### {% linkable_title Weather stations %} +## {% linkable_title Weather stations %} Click [here](https://www.trafikverket.se/trafikinformation/vag/?TrafficType=personalTraffic&map=1/606442.17/6886316.22/&Layers=RoadWeather%2b) to get a map of valid weather stations. Once a station is found, copy the name according to the below picture and paste it in your `configuration.yaml` file as the `station` variable. @@ -87,7 +87,7 @@ Click [here](https://www.trafikverket.se/trafikinformation/vag/?TrafficType=pers

-##### {% linkable_title Examples %} +## {% linkable_title Examples %} ```yaml sensor: diff --git a/source/_components/sensor.transmission.markdown b/source/_components/sensor.transmission.markdown deleted file mode 100644 index a1700cd591c8..000000000000 --- a/source/_components/sensor.transmission.markdown +++ /dev/null @@ -1,91 +0,0 @@ ---- -layout: page -title: "Transmission Sensor" -description: "Instructions on how to integrate Transmission sensors within Home Assistant." -date: 2015-04-25 9:06 -sidebar: true -comments: false -sharing: true -footer: true -logo: transmission.png -ha_category: Downloading -ha_release: pre 0.7 -ha_iot_class: "Local Polling" ---- - - -The `transmission` platform allows you to monitor your downloads with [Transmission](http://www.transmissionbt.com/) from within Home Assistant and setup automation based on the information. - -## {% linkable_title Setup %} - -To use the monitoring, your transmission client needs to allow remote access. If you are running the graphical transmission client (transmission-gtk) go to **Edit** -> **Preferences** and choose the tab **Remote**. Check **Allow remote access**, enter your username and your password, and uncheck the network restriction as needed. - -

- -

- -If everything is setup correctly, the details will show up in the frontend. - -

- -

- -## {% linkable_title Configuration %} - -To enable this sensor, add the following lines to your `configuration.yaml`: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: transmission - host: IP_ADDRESS - monitored_variables: - - 'current_status' - - 'download_speed' - - 'upload_speed' - - 'active_torrents' - - 'paused_torrents' - - 'total_torrents' -``` - -{% configuration %} -host: - description: This is the IP address of your Transmission daemon, e.g., 192.168.1.32. - required: true - type: string -port: - description: The port your Transmission daemon uses. - required: false - type: integer - default: 9091 -name: - description: The name to use when displaying this Transmission instance in the frontend. - required: false - type: string -username: - description: Your Transmission username, if you use authentication. - required: false - type: string -password: - description: Your Transmission password, if you use authentication. - required: false - type: string -monitored_variables: - description: Conditions to display in the frontend. - required: false - type: map - keys: - current_status: - description: The status of your Transmission daemon. - download_speed: - description: The current download speed. - upload_speed: - description: The current upload speed. - active_torrents: - description: The current number of active torrents. - paused_torrents: - description: The current number of paused torrents. - total_torrents: - description: The total number of torrents present in the client. -{% endconfiguration %} - diff --git a/source/_components/sensor.transport_nsw.markdown b/source/_components/sensor.transport_nsw.markdown index 8296ffdedea7..fc72f408cdc7 100644 --- a/source/_components/sensor.transport_nsw.markdown +++ b/source/_components/sensor.transport_nsw.markdown @@ -13,7 +13,6 @@ ha_iot_class: "Cloud Polling" ha_release: 0.81 --- - The `transport_nsw` sensor will give you the time until the next departure from a Transport NSW stop for bus, train, light rail or ferry. ## {% linkable_title Setup %} @@ -63,7 +62,7 @@ The public information is provided from [Transport NSW](https://opendata.transpo ## {% linkable_title Examples %} -More example configurations for bus or ferry. +More example configurations for bus or ferry. ```yaml # Example bus route configuration.yaml entry diff --git a/source/_components/sensor.twitch.markdown b/source/_components/sensor.twitch.markdown index 660488a7675a..7d692ebbac19 100644 --- a/source/_components/sensor.twitch.markdown +++ b/source/_components/sensor.twitch.markdown @@ -13,7 +13,6 @@ ha_release: "0.10" ha_iot_class: "Cloud Polling" --- - The `twitch` platform will allow you to monitor [Twitch](http://www.twitch.tv/) channel status from within Home Assistant and setup automation based on the information. ## {% linkable_title Setup %} @@ -35,7 +34,7 @@ sensor: ``` {% configuration %} -clientid: +client_id: description: Your Twitch client ID. required: true type: string @@ -47,4 +46,3 @@ channels: channel_id: description: Name of the channel. {% endconfiguration %} - diff --git a/source/_components/sensor.uber.markdown b/source/_components/sensor.uber.markdown index cfec12282a13..3f151040a928 100644 --- a/source/_components/sensor.uber.markdown +++ b/source/_components/sensor.uber.markdown @@ -13,7 +13,6 @@ ha_iot_class: "Cloud Polling" ha_release: 0.16 --- - The `uber` sensor will give you time and price estimates for all available [Uber](https://uber.com) products at the given location. The `ATTRIBUTES` are used to provide extra information about products, such as estimated trip duration, distance and vehicle capacity. By default, 2 sensors will be created for each product at the given `start` location, one for pickup time and one for current price. The sensor is powered by the official Uber [API](https://developer.uber.com/). ## {% linkable_title Setup %} diff --git a/source/_components/sensor.uk_transport.markdown b/source/_components/sensor.uk_transport.markdown index b08b42895f98..ce0d0e813b06 100644 --- a/source/_components/sensor.uk_transport.markdown +++ b/source/_components/sensor.uk_transport.markdown @@ -147,4 +147,8 @@ And the template sensor for viewing the next bus attributes. value_template: {% raw %}'{{states.sensor.next_bus_to_wantage.attributes.next_buses[0].estimated}}'{% endraw %} ``` +## {% linkable_title Managing API requests %} + +If you wish to manage the rate of API requests (e.g., to disable requests when you aren't interested in travel, so that you can request updates more frequently when you do travel) set a really long `scan_interval` in the config options, and use the service `homeassistant.update_entity` to request the update of an entity, rather than waiting for the next scheduled update. + Powered by [transportAPI](http://www.transportapi.com/) diff --git a/source/_components/sensor.ups.markdown b/source/_components/sensor.ups.markdown index 0c78dac20675..2b57a0e2663f 100644 --- a/source/_components/sensor.ups.markdown +++ b/source/_components/sensor.ups.markdown @@ -32,11 +32,11 @@ Configuration options for the UPS Sensor: - **username** (*Required*): The username to access the UPS My Choice service. - **password** (*Required*): The password for the given username. - **name** (*Optional*): Name the sensor. -- **update_inverval** (*Optional*): Minimum time interval between updates. Default is 1 hour. Supported formats: - - `update_interval: 'HH:MM:SS'` - - `update_interval: 'HH:MM'` +- **scan_inverval** (*Optional*): Minimum time interval between updates. Default is 1 hour. Supported formats: + - `scan_interval: 'HH:MM:SS'` + - `scan_interval: 'HH:MM'` - Time period dictionary, e.g.: -
update_interval:
+    
scan_interval:
         # At least one of these must be specified:
         days: 0
         hours: 0
diff --git a/source/_components/sensor.uptime.markdown b/source/_components/sensor.uptime.markdown
index a4b3a97f585a..665cfe9bc43b 100644
--- a/source/_components/sensor.uptime.markdown
+++ b/source/_components/sensor.uptime.markdown
@@ -14,7 +14,6 @@ ha_release: 0.56
 ha_qa_scale: internal
 ---
 
-
 The `uptime` sensor platform displays the time since the last Home Assistant restart.
 
 ## {% linkable_title Configuration %}
diff --git a/source/_components/sensor.usps.markdown b/source/_components/sensor.usps.markdown
deleted file mode 100644
index 89d7029a0a8b..000000000000
--- a/source/_components/sensor.usps.markdown
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: page
-title: USPS Sensor
-description: "Instructions on how to set up USPS sensors within Home Assistant."
-date: 2017-01-06 08:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: usps.png
-ha_category: Postal Service
-ha_release: 0.36
-ha_iot_class: "Cloud Polling"
----
-
-The `usps` sensor component allows you to view statistics on incoming mail and packages made available through USPS via the Informed Delivery service.  You must "Opt-In" to [Informed Delivery](https://informeddelivery.usps.com/box/pages/intro/start.action) to see mail images. This works in concert with [USPS camera](/components/camera.usps).
-
-To enable this sensor in your installation, set up the [USPS component](/components/usps) with your username and password.
diff --git a/source/_components/sensor.velbus.markdown b/source/_components/sensor.velbus.markdown
deleted file mode 100644
index 56233e50c8a0..000000000000
--- a/source/_components/sensor.velbus.markdown
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: page
-title: "Velbus Sensor"
-description: "Instructions how to integrate Velbus sensors into Home Assistant."
-date: 2018-08-22 06:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: velbus.png
-ha_category: Sensor
-ha_iot_class: "Local Push"
-ha_release: 0.78
----
-
-The `velbus` sensor allows you to control [Velbus](http://www.velbus.eu) connected sensors.
-
-For hub configuration, see [the Velbus component](/components/velbus/).
diff --git a/source/_components/sensor.vera.markdown b/source/_components/sensor.vera.markdown
deleted file mode 100644
index 0fbdf0ff316b..000000000000
--- a/source/_components/sensor.vera.markdown
+++ /dev/null
@@ -1,24 +0,0 @@
----
-layout: page
-title: "Vera Sensor"
-description: "Instructions on how to integrate Vera sensors into Home Assistant."
-date: 2015-10-20 21:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: vera.png
-ha_category: Sensor
-ha_iot_class: "Local Push"
-ha_release: pre 0.7
----
-
-The `vera` platform allows you to get data from your [Vera](http://getvera.com/) sensors from within Home Assistant.
-  
-They will be automatically discovered if the vera component is loaded.
-
-Please note that some vera sensors (such as _motion_ and _flood_  sensors) are _armable_ which means that vera will send alerts (email messages to txts) when they are _armed_ and change state.
-
-Home Assistant will display the state of these sensors regardless of the _armed_ state.
-
-To allow you to change the _armed state_ - Home Assistant will create a switch as well as a sensor for each _Armable_ sensor. You can hide these switches using customization if you wish.
diff --git a/source/_components/sensor.verisure.markdown b/source/_components/sensor.verisure.markdown
deleted file mode 100644
index 8ee60938a929..000000000000
--- a/source/_components/sensor.verisure.markdown
+++ /dev/null
@@ -1,22 +0,0 @@
----
-layout: page
-title: "Verisure Sensor"
-description: "Instructions on how to integrate Verisure sensors into Home Assistant."
-date: 2016-02-23 21:31 +0100
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: verisure.png
-ha_category: Sensor
-ha_iot_class: "Cloud Polling"
----
-
-Integrates Verisure sensors into Home Assistant. See the [main component](/components/verisure/) for configuration instructions.
-
-The following sensor types are supported:
-
- * Thermometers
- * Hygrometers
- * Mouse detectors
- 
diff --git a/source/_components/sensor.version.markdown b/source/_components/sensor.version.markdown
index 10ce29b4ac3a..edc8c29b572e 100644
--- a/source/_components/sensor.version.markdown
+++ b/source/_components/sensor.version.markdown
@@ -60,7 +60,7 @@ result through various platforms.
 Remember that you can easily get the installed version on the command line.
 
 ```bash
-$ hass --version
+hass --version
 ```
 
 Or go to the service developer tool icon **Info** section of the **Developer Tools**.
diff --git a/source/_components/sensor.viaggiatreno.markdown b/source/_components/sensor.viaggiatreno.markdown
index e313e903b129..a8c4c8c16786 100644
--- a/source/_components/sensor.viaggiatreno.markdown
+++ b/source/_components/sensor.viaggiatreno.markdown
@@ -15,10 +15,10 @@ ha_release: 0.58
 
 The `viaggiatreno` sensor will give you information about configured train ids and stations using the public [ViaggiaTreno](http://viaggiatreno.it) API.
 
-To activate the sensor you need at least two parameters: the `train_id` and the `station_id`. 
+To activate the sensor you need at least two parameters: the `train_id` and the `station_id`.
 
 The first is available just looking at the [ViaggiaTreno](http://viaggiatreno.it/) timetable, the latter can be obtained using the dedicated API endpoint:
-`http://www.viaggiatreno.it/viaggiatrenonew/resteasy/viaggiatreno/autocompletaStazione/` 
+`http://www.viaggiatreno.it/viaggiatrenonew/resteasy/viaggiatreno/autocompletaStazione/`
 (e.g., `http://www.viaggiatreno.it/viaggiatrenonew/resteasy/viaggiatreno/autocompletaStazione/ROMA` will list all station names (with ids) that starts with *ROMA*).
 
 

diff --git a/source/_components/sensor.volkszaehler.markdown b/source/_components/sensor.volkszaehler.markdown index 0d9d7c6f89d9..06bae90dc2ca 100644 --- a/source/_components/sensor.volkszaehler.markdown +++ b/source/_components/sensor.volkszaehler.markdown @@ -76,4 +76,3 @@ sensor: - min - max ``` - diff --git a/source/_components/sensor.vultr.markdown b/source/_components/sensor.vultr.markdown deleted file mode 100644 index 5aa03c739310..000000000000 --- a/source/_components/sensor.vultr.markdown +++ /dev/null @@ -1,76 +0,0 @@ ---- -layout: page -title: "Vultr Sensor" -description: "Instructions on how to integrate Vultr sensor within Home Assistant." -date: 2017-10-17 21:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: vultr.png -ha_release: "0.58" -ha_category: System Monitor -ha_iot_class: "Cloud Polling" ---- - - -The `vultr` sensor platform will allow you to view current bandwidth usage and pending charges against your [Vultr](https://www.vultr.com/) subscription. - -To use this sensor, you must set up your [Vultr hub](/components/vultr/). - -

-The following examples assume a subscription that has an ID of `123456` and a label of `Web Server` -

- -Minimal `configuration.yaml` (produces `sensor.vultr_web_server_current_bandwidth_used` and `sensor.vultr_web_server_pending_charges`): - -```yaml -sensor: - - platform: vultr - subscription: 123456 -``` - -{% configuration %} -subscription: - description: The Vultr subscription to monitor, this can be found in the URL when viewing a subscription. - required: true - type: string -name: - description: The name to give this sensor. - required: false - default: "Vultr {Vultr subscription label} {monitored condition name}" - type: string -monitored_conditions: - description: List of items you want to monitor for each subscription. - required: false - detault: All conditions - type: list - keys: - current_bandwidth_used: - description: The current (invoice period) bandwidth usage in Gigabytes (GB). - temperature: - pending_charges: The current (invoice period) charges that have built up for this subscription. Value is in US Dollars (US$). -{% endconfiguration %} - -Full `configuration.yaml` using `{}` to format condition name (produces `sensor.server_current_bandwidth_used` and `sensor.server_pending_charges`): - -```yaml -sensor: - - platform: vultr - name: Server {} - subscription: 123456 - monitored_conditions: - - current_bandwidth_used - - pending_charges -``` - -Custom `configuration.yaml` with only one condition monitored (produces `sensor.web_server_bandwidth`): -```yaml -sensor: - - platform: vultr - name: Web Server Bandwidth - subscription: 123456 - monitored_conditions: - - current_bandwidth_used -``` - diff --git a/source/_components/sensor.waterfurnace.markdown b/source/_components/sensor.waterfurnace.markdown deleted file mode 100644 index 12545ff5a619..000000000000 --- a/source/_components/sensor.waterfurnace.markdown +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: page -title: "WaterFurnace Sensors" -description: "Instructions on how to integrate WaterFurnace Geothermal System sensors into Home Assistant." -date: 2018-01-19 17:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: waterfurnace.png -ha_category: Sensor -ha_release: 0.62 -ha_iot_class: "Cloud Polling" ---- - -Integrates WaterFurnace sensors into Home Assistant. See the [main component](/components/waterfurnace/) for configuration instructions. - diff --git a/source/_components/sensor.waze_travel_time.markdown b/source/_components/sensor.waze_travel_time.markdown index b288b7b868c0..ba24f4da73ee 100644 --- a/source/_components/sensor.waze_travel_time.markdown +++ b/source/_components/sensor.waze_travel_time.markdown @@ -32,15 +32,15 @@ sensor: {% configuration %} origin: - description: Enter the starting address or the GPS coordinates of the location (GPS coordinates has to be separated by a comma). You can also enter the entity id of a sensor, device_tracker or zone, which provides this information in its state. + description: Enter the starting address or the GPS coordinates of the location (GPS coordinates has to be separated by a comma). You can also enter the entity id of a sensor, device_tracker, person, or zone, which provides this information in its state. required: true type: string destination: - description: Enter the destination address or the GPS coordinates of the location (GPS coordinates has to be separated by a comma). You can also enter the entity id of a sensor, device_tracker or zone, which provides this information in its state. + description: Enter the destination address or the GPS coordinates of the location (GPS coordinates has to be separated by a comma). You can also enter the entity id of a sensor, device_tracker, person, or zone, which provides this information in its state. required: true type: string region: - description: Choose one of the available regions from 'EU', 'US', 'NA' (equivalent to 'US') or 'IL'. + description: Choose one of the available regions from 'AU', 'EU', 'US', 'NA' (equivalent to 'US') or 'IL'. required: true type: string name: @@ -62,10 +62,9 @@ realtime: type: boolean {% endconfiguration %} - ## {% linkable_title Example using dynamic destination %} -Using the flexible option to set a sensor value to the `destination`, you can setup a single Waze component that will calculate travel time to multiple optional locations on demand. +Using the flexible option to set a sensor value to the `destination`, you can setup a single Waze component that will calculate travel time to multiple optional locations on demand. In the following example, the `Input Select` is converted into an address which is used to modify the destination for Waze route calculation from `device_tracker.myphone` location (It takes a few minutes for the value to update due to the interval set to fetch Waze data). @@ -78,7 +77,7 @@ input_select: - Home - Work - Parents - + sensor: - platform: template sensors: @@ -93,7 +92,7 @@ sensor: {%- else -%} Unknown {%- endif %} - + - platform: waze_travel_time name: "Me to destination" origin: device_tracker.myphone diff --git a/source/_components/sensor.whois.markdown b/source/_components/sensor.whois.markdown index 95e351dd9e7e..596f12e802c3 100644 --- a/source/_components/sensor.whois.markdown +++ b/source/_components/sensor.whois.markdown @@ -13,7 +13,6 @@ ha_release: "0.57" ha_iot_class: "Cloud Polling" --- - The `whois` sensor platform allows you to perform daily WHOIS lookups against your owned domains. This provides you with information such as `expiration_date`, `name_servers` and `registrar` details. ## {% linkable_title Configuration %} @@ -38,4 +37,3 @@ sensor: default: Whois type: string {% endconfiguration %} - diff --git a/source/_components/sensor.wink.markdown b/source/_components/sensor.wink.markdown deleted file mode 100644 index 7300fd8d65cb..000000000000 --- a/source/_components/sensor.wink.markdown +++ /dev/null @@ -1,35 +0,0 @@ ---- -layout: page -title: "Wink Sensor" -description: "Instructions on how to setup the Wink sensors within Home Assistant." -date: 2015-01-20 22:36 -sidebar: true -comments: false -sharing: true -footer: true -logo: wink.png -ha_category: Sensor -ha_iot_class: "Cloud Polling" -ha_release: pre 0.7 ---- - - -The Wink sensor platform allows you to get data from your [Wink](http://www.wink.com/) sensors. - -The requirement is that you have setup [Wink](/components/wink/). - - -### Supported sensor devices - -- Wink Relay temperature, proximity, and humidity -- Wink Spotter temperature, humidity, and brightness (No Wink hub required) -- Wink Porkfolio balance (No Wink hub required) -- Wink eggminder (No Wink hub required) -- Nest protect Smoke and CO severity (No confirmation that this is actually reported) (No Wink hub required) -- Motion sensor temperature -- Quirky refuel propane tank monitor (No Wink hub required) - -

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

- diff --git a/source/_components/sensor.wirelesstag.markdown b/source/_components/sensor.wirelesstag.markdown deleted file mode 100644 index 33961e0cf184..000000000000 --- a/source/_components/sensor.wirelesstag.markdown +++ /dev/null @@ -1,46 +0,0 @@ ---- -layout: page -title: "WirelessTag Sensor" -description: "Instructions on how to integrate your Wireless Tags sensors within Home Assistant." -date: 2018-03-26 21:50 -comments: false -sidebar: true -sharing: true -footer: true -logo: wirelesstag.png -ha_category: Sensor -ha_iot_class: "Local Push and Cloud Polling" -ha_release: 0.68 ---- - -To get your [wirelesstag.net](http://wirelesstag.net) sensors working within Home Assistant, please follow the instructions for the general [WirelessTag component](/components/wirelesstag). - -## {% 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 -# Example configuration.yaml entry -sensor: - - platform: wirelesstag - monitored_conditions: - - temperature - - humidity -``` - -{% configuration %} -monitored_conditions: - description: The metrics types to monitor. - required: true - type: list - keys: - temperature: - description: Value is in Celsius or Fahrenheit (according to your settings at Tag Manager). - humidity: - description: "Humidity level in %." - moisture: - description: "Water level/soil moisture in % (applicable for Water Tag only)." - light: - description: Brightness in lux (if supported by tag). -{% endconfiguration %} - diff --git a/source/_components/sensor.worldclock.markdown b/source/_components/sensor.worldclock.markdown index 1ca0964f86b9..d8236a2809ba 100644 --- a/source/_components/sensor.worldclock.markdown +++ b/source/_components/sensor.worldclock.markdown @@ -14,8 +14,9 @@ ha_release: pre 0.7 ha_qa_scale: internal --- +The `worldclock` sensor platform simply displays the current time in a different time zone. -The `worldclock` sensor platform simply displays the current time in a different time zone +## {% linkable_title Configuration %} To enable this sensor in your installation, add the following to your `configuration.yaml` file: @@ -32,7 +33,7 @@ time_zone: required: true type: string name: - description: The name of the sensor, eg. the city. + description: The name of the sensor, e.g., the city. required: false type: string default: Worldclock Sensor diff --git a/source/_components/sensor.worldtidesinfo.markdown b/source/_components/sensor.worldtidesinfo.markdown index 9dcde7eafbc1..9392c401e9f0 100644 --- a/source/_components/sensor.worldtidesinfo.markdown +++ b/source/_components/sensor.worldtidesinfo.markdown @@ -12,7 +12,7 @@ ha_category: Environment ha_release: 0.52 --- -The `worldtidesinfo` sensor platform uses details from [World Tides](https://www.worldtides.info/) to provide information about the prediction for the tides for any location in the world. +The `worldtidesinfo` sensor platform uses details from [World Tides](https://www.worldtides.info/) to provide information about the prediction for the tides for any location in the world. ## {% linkable_title Setup %} @@ -50,4 +50,3 @@ longitude: type: float default: "The longitude in your `configuration.yaml` file." {% endconfiguration %} - diff --git a/source/_components/sensor.wunderground.markdown b/source/_components/sensor.wunderground.markdown index 954384eb9fed..ad6595b491cf 100644 --- a/source/_components/sensor.wunderground.markdown +++ b/source/_components/sensor.wunderground.markdown @@ -16,11 +16,13 @@ ha_iot_class: "Cloud Polling" The `wunderground` platform uses [Weather Underground](http://www.wunderground.com) as a source for current weather information.

-Obtain a WUnderground API key [here](https://www.wunderground.com/weather/api). They no longer offer free API keys, and all keys must be paid for. At this time existing free keys will continue to work, but will be disabled Dec 31, 2018. As of Sept 6, 2018 Weather Underground states they are declaring the [End of Service for the Weather Underground API](https://apicommunity.wunderground.com/weatherapi/topics/end-of-service-for-the-weather-underground-api). They say they will develop new plans for non-commercial users. No timeline for this has been announced. +Obtain a WUnderground API key [here](https://www.wunderground.com/weather/api). They no longer offer free API keys, and all keys must be paid for. At this time existing free keys will continue to work, but will be disabled Dec 31, 2018, except you own a personal weather station and provide your data to WU (PWS Uploader). As of Sept 6, 2018 Weather Underground states they are declaring the [End of Service for the Weather Underground API](https://apicommunity.wunderground.com/weatherapi/topics/end-of-service-for-the-weather-underground-api). They say they will develop new plans for non-commercial users. No timeline for this has been announced. Please consider this when using the following information.

+{% linkable_title Configuration %} + To add Wunderground to your installation, add the following to your `configuration.yaml` file: ```yaml @@ -181,28 +183,27 @@ monitored_conditions: description: Text summary of current wind conditions {% endconfiguration %} - All the conditions listed above will be updated every 5 minutes. -### {% linkable_title Forecasts %} +## {% linkable_title Forecasts %} -_12 hour forecasts_ +### {% linkable_title 12 hour forecasts %} Monitored conditions marked above with [12h] are 12 hour forecasts. To get a forecast for different period/daytime replace the `_1d_` part of the sensor name. e.g., `weather_2n` will give you forecast for tomorrow night. Valid values for day are `1` to `4` and valid values for daytime are `d` or `n`. -_Daily forecasts_ +### {% linkable_title Daily forecasts %} Conditions above marked with [1d] are daily forecasts. To get forecast for different day, replace the number in `_1d_` part of the sensor name. Valid values are from `1` to `4`. -_Hourly forecasts_ +### {% linkable_title Hourly forecasts %} Conditions marked with [1h] are hourly forecasts. To get forecast for different hour, replace the number in the `_1h_` part of the sensor name with `1` to `36`. e.g., `weather_24h` will give you weather in 24 hours. -### {% linkable_title Additional examples %} +## {% linkable_title Additional examples %} -#### {% linkable_title Daily forecast %} +### {% linkable_title Daily forecast %} ```yaml sensor: @@ -234,7 +235,7 @@ group: ![Daily Forecast](/images/screenshots/wunderground_daily_forecast.png) -#### {% linkable_title Weather overview %} +### {% linkable_title Weather overview %} ```yaml sensor: diff --git a/source/_components/sensor.xiaomi_aqara.markdown b/source/_components/sensor.xiaomi_aqara.markdown index a69c4f685af5..5dfb310c1eb1 100644 --- a/source/_components/sensor.xiaomi_aqara.markdown +++ b/source/_components/sensor.xiaomi_aqara.markdown @@ -13,8 +13,6 @@ ha_release: "0.50" ha_iot_class: "Local Push" --- - The `xiaomi aqara` sensor platform allows you to get data from your [Xiaomi](http://www.mi.com/en/) sensors. The requirement is that you have setup [Xiaomi aqara](/components/xiaomi_aqara/). - diff --git a/source/_components/sensor.zabbix.markdown b/source/_components/sensor.zabbix.markdown index 9ac7107bcd3c..6ef21a99da8d 100644 --- a/source/_components/sensor.zabbix.markdown +++ b/source/_components/sensor.zabbix.markdown @@ -19,6 +19,8 @@ The `zabbix` sensor platform let you monitor the current count of active trigger You must have the [Zabbix component](/components/zabbix/) configured to use those sensors.

+## {% linkable_title Configuration %} + To set it up, add the following information to your `configuration.yaml` file: ```yaml @@ -48,5 +50,4 @@ individual: description: A 'true'/'false' to specify whether we should show individual sensors when a list of hostids is provided. If false, the sensor state will be the count of all triggers for the specified hosts (or all hosts within the Zabbix instance, if hostids isn't provided). required: false type: boolean - {% endconfiguration %} - +{% endconfiguration %} diff --git a/source/_components/sensor.zestimate.markdown b/source/_components/sensor.zestimate.markdown index aa74b086daf7..cba781e23304 100644 --- a/source/_components/sensor.zestimate.markdown +++ b/source/_components/sensor.zestimate.markdown @@ -13,13 +13,13 @@ ha_release: 0.65 ha_iot_class: "Cloud Polling" --- -The `zestimate` sensor allows one to track the Zestimate® value of properties using the [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm). According to Zillow's website, a Zestimate® home valuation is Zillow's estimated market value. It is not an appraisal. Use it as a starting point to determine a home's value. The Zestimate® is provided by [Zillow](https://www.zillow.com), a website primarily for listing homes to buy/sell/rent in the United States. +The `zestimate` sensor allows one to track the Zestimate® value of properties using the [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm). According to Zillow's website, a Zestimate® home valuation is Zillow's estimated market value. It is not an appraisal. Use it as a starting point to determine a home's value. The Zestimate® is provided by [Zillow](https://www.zillow.com), a website primarily for listing homes to buy/sell/rent in the United States. This component adds one entity per zpid specified, named `sensor.zestimate` with numbers appended if you choose to track more than one Zestimate. ## {% linkable_title Configuration %} -You will need to sign up for the Zillow API at the following link [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm). You will also need the Zillow property ID for each property you'd like to track. This information is available from the URL of a property you are interested in. If you're the owner of this property, it's recommended to claim the listing and update the property information to help the information be as accurate as possible. +You will need to sign up for the Zillow API at the following link [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm). You will also need the Zillow property ID for each property you'd like to track. This information is available from the URL of a property you are interested in. If you're the owner of this property, it's recommended to claim the listing and update the property information to help the information be as accurate as possible. For example, the White House zpid is 84074482 and can be found in its Zillow URL: [https://www.zillow.com/homedetails/1600-Pennsylvania-Ave-NW-Washington-DC-20006/84074482_zpid/](https://www.zillow.com/homedetails/1600-Pennsylvania-Ave-NW-Washington-DC-20006/84074482_zpid/) @@ -36,11 +36,11 @@ sensor: {% configuration %} api_key: - description: The API key to access the service. Obtain yours using the [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm) + description: The API key to access the service. Obtain yours using the [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm). required: true type: string zpid: - description: Property IDs to track in the front end. Can be found in it's Zillow URL as described above. Include only the numbers, do not include the "_zpid" + description: Property IDs to track in the front end. Can be found in it's Zillow URL as described above. Include only the numbers, do not include the "_zpid". required: true type: list {% endconfiguration %} @@ -59,6 +59,6 @@ These attributes are available: - Currency - Amount -Example screenshot +Example screenshot: diff --git a/source/_components/sensor.zha.markdown b/source/_components/sensor.zha.markdown deleted file mode 100644 index 993031476f50..000000000000 --- a/source/_components/sensor.zha.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -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 -sharing: true -footer: true -logo: zigbee.png -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/). - diff --git a/source/_components/sensor.zoneminder.markdown b/source/_components/sensor.zoneminder.markdown deleted file mode 100644 index b1c6f6af8a46..000000000000 --- a/source/_components/sensor.zoneminder.markdown +++ /dev/null @@ -1,52 +0,0 @@ ---- -layout: page -title: "ZoneMinder Sensor" -description: "How to view ZoneMinder monitor functions and events within Home Assistant." -date: 2016-10-13 22:57 -sidebar: true -comments: false -sharing: true -footer: true -logo: zoneminder.png -ha_category: Sensor -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, the current state of the cameras and ZoneMinder's current run state. - -

-You must have the [ZoneMinder component](/components/zoneminder/) configured to use this sensor. -

- -To set it up, add the following information to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: zoneminder - include_archived: false -``` - -{% configuration %} -include_archived: - description: Whether to include archived ZoneMinder events in event counts. - required: false - default: false - type: boolean -monitored_conditions: - description: Event count sensors to display in the frontend. - required: false - type: list - keys: - all: - description: All events. - month: - description: Events in the last month. - week: - description: Events in the last week. - day: - description: Events in the last day. - hour: - description: Events in the last hour. -{% endconfiguration %} diff --git a/source/_components/shiftr.markdown b/source/_components/shiftr.markdown index a38353470437..77997625dec6 100644 --- a/source/_components/shiftr.markdown +++ b/source/_components/shiftr.markdown @@ -38,4 +38,3 @@ password: required: true type: string {% endconfiguration %} - diff --git a/source/_components/shopping_list.markdown b/source/_components/shopping_list.markdown index 09597900327c..a6fc33835b26 100644 --- a/source/_components/shopping_list.markdown +++ b/source/_components/shopping_list.markdown @@ -15,22 +15,25 @@ ha_qa_scale: internal The `shopping_list` component allows you to keep track of shopping list items. Includes the ability to add items via your voice using the sentence "Add eggs to my shopping list". +## {% linkable_title Configuration %} + ```yaml # Example configuration.yaml entry shopping_list: ``` -### Services +## Services + You can add or remove items on your shopping list by using the following services. -#### {% linkable_title Service `shopping_list.add_item` %} +### {% linkable_title Service `shopping_list.add_item` %} | Service data attribute | Optional | Description | |------------------------|----------|--------------------------------------------------------| | `name` | no | Name of the item to add. Example: "Beer" | -#### {% linkable_title Service `shopping_list.complete_item` %} +### {% linkable_title Service `shopping_list.complete_item` %} | Service data attribute | Optional | Description | |------------------------|----------|--------------------------------------------------------| -| `name` | no | Name of the item to mark as completed. Example: "Beer" | \ No newline at end of file +| `name` | no | Name of the item to mark as completed. Example: "Beer" | diff --git a/source/_components/sisyphus.markdown b/source/_components/sisyphus.markdown index dfec98235992..1bdaed901f9f 100644 --- a/source/_components/sisyphus.markdown +++ b/source/_components/sisyphus.markdown @@ -8,19 +8,26 @@ comments: false sharing: true footer: true logo: sisyphus.png -ha_category: Hub +ha_category: + - Hub + - Light + - Media Player featured: false ha_release: 0.75 ha_iot_class: "Local Push" +redirect_from: + - /components/light.sisyphus/ + - /components/media_player.sisyphus/ --- The [Sisyphus](https://sisyphus-industries.com/) integration for Home Assistant allows you to observe and control your Sisyphus Kinetic Art Table. -Each table appears in Home Assistant as a Light and a Media Player. +There is currently support for the following device types within Home Assistant: -The light can be used to sleep/wake the table or adjust the brightness of the table light. +- **Light** - Can be used to sleep/wake the table or adjust the brightness of the table light. +- **Media Player** - Can be used to sleep/wake the table, play/pause, move between tracks, or toggle shuffle on and off. The "volume" control adjusts the table's speed. -The media player can be used to sleep/wake the table, play/pause, move between tracks, or toggle shuffle on and off. The "volume" control adjusts the table's speed. +The Light and Media players will be automatically added for each of your Sisyphus tables, if the Sisyphus component is configured. There are two ways to configure this component. For the automatic discovery of your table(s), simply add the following to your `configuration.yaml`: diff --git a/source/_components/skybell.markdown b/source/_components/skybell.markdown index 379cf3248a00..0d5f2e02973d 100644 --- a/source/_components/skybell.markdown +++ b/source/_components/skybell.markdown @@ -8,13 +8,33 @@ comments: false sharing: true footer: true logo: skybell.png -ha_category: Doorbell +ha_category: + - Doorbell + - Binary Sensor + - Camera + - Light + - Sensor + - Switch ha_release: 0.56 ha_iot_class: "Cloud Polling" +redirect_from: + - /components/binary_sensor.skybell/ + - /components/camera.skybell/ + - /components/light.skybell/ + - /components/sensor.skybell/ + - /components/switch.skybell/ --- The `skybell` implementation allows you to integrate your [Skybell.com](http://www.skybell.com/) doorbells in Home Assistant. +There is currently support for the following device types within Home Assistant: + +- [Binary Sensor](/components/skybell/#binary-sensor) +- [Camera](/components/skybell/#camera) +- [Light](/components/skybell/#light) +- [Sensor](/components/skybell/#sensor) +- [Switch](/components/skybell/#switch) + Currently only the Skybell HD is supported by this platform. ## {% linkable_title Configuration %} @@ -39,4 +59,135 @@ password: type: string {% endconfiguration %} -Finish your configuration by visiting the [Skybell binary sensor](/components/binary_sensor.skybell/), [Skybell camera](/components/camera.skybell/), [Skybell light](/components/light.skybell/), [Skybell sensor](/components/sensor.skybell/), or [Skybell switch](/components/switch.skybell/) documentation. +### {% linkable_title Binary Sensor %} + +Once you have enabled the Skybell component, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: skybell + monitored_conditions: + - button + - motion +``` + +{% configuration %} +monitored_conditions: + 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. + motion: + description: Returns whether movement was detected by the Skybell doorbell. +{% endconfiguration %} + +### {% linkable_title Camera %} + +Once you have enabled the Skybell component, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +camera: + - platform: skybell +``` + +{% configuration %} +monitored_conditions: + description: The camera images to display. Default is `avatar`. The full list is `avatar`, `activity`. + required: false + type: list +avatar_name: + description: Name to append to the device name for the avatar image. Default is empty string. + required: false + type: string +activity_name: + description: Name to append to the device name for the last activity image. Default is empty string. + required: false + type: string +{% endconfiguration %} + +#### {% linkable_title Camera Types %} + +There are two available camera types "Avatar", which is the default, displays the Skybell avatar image. +It is periodically updated with a fresh image. The other type is "Activity", which displays a snapshot from +the latest event (motion, bell, or on demand) captured by the camera. You may show either camera, or both, by +specifying its name under monitored_condtions. It's recommended, but not required, to set either avatar_name or activity_name +if you are showing both cameras so you can tell them apart. The name will be appended to the skybell device name. + +```yaml +# Example configuration.yaml with both images +camera: + - platform: skybell + monitored_conditions: + - avatar + - activity + activity_name: "Last Activity" +``` + +```yaml +# Example configuration.yaml with just last activity image +camera: + - platform: skybell + monitored_conditions: + - activity +``` + +### {% linkable_title Light %} + +Once you have enabled the Skybell component, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +light: + - platform: skybell +``` + +### {% linkable_title Sensor %} + +Once you have enabled the Skybell component, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: skybell + monitored_conditions: + - chime_level +``` + +{% configuration %} +monitored_conditions: + type: list + required: true + description: Conditions to display in the frontend. The following conditions can be monitored. + keys: + chime_level: + description: Return a value between 0-3, indicating no chime, low, medium, and high respectively. +{% endconfiguration %} + +### {% linkable_title Switch %} + +Once you have enabled the Skybell component, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: skybell + monitored_conditions: + - do_not_disturb + - motion_sensor +``` + +{% configuration %} +monitored_conditions: + description: Conditions to display in the frontend. + required: true + type: list + keys: + do_not_disturb: + description: Control the state of your doorbells indoor chime. + motion_sensor: + description: Control the state of your doorbells motion sensor. +{% endconfiguration %} diff --git a/source/_components/sleepiq.markdown b/source/_components/sleepiq.markdown index bb006c23cdc0..6baf61936491 100644 --- a/source/_components/sleepiq.markdown +++ b/source/_components/sleepiq.markdown @@ -8,9 +8,15 @@ comments: false sharing: true footer: true logo: sleepiq.png -ha_category: Health +ha_category: + - Health + - Sensor + - Binary Sensor ha_release: 0.29 ha_iot_class: "Local Polling" +redirect_from: + - /components/binary_sensor.sleepiq/ + - /components/sensor.sleepiq/ --- The SleepIQ implementation lets you view sensor data from [SleepIQ by SleepNumber](http://www.sleepnumber.com/sn/en/sleepiq-sleep-tracker). In particular, it lets you see the occupancy and current SleepNumber (ie current firmness) of each side of a SleepNumber bed. @@ -40,4 +46,3 @@ password: required: true type: string {% endconfiguration %} - diff --git a/source/_components/smappee.markdown b/source/_components/smappee.markdown index 79f6f32d8dc4..ec4c9cf372bc 100644 --- a/source/_components/smappee.markdown +++ b/source/_components/smappee.markdown @@ -9,14 +9,27 @@ sharing: true footer: true logo: smappee.png ha_release: "0.64" -ha_category: Hub +ha_category: + - Hub + - Energy + - Sensor + - Switch +ha_iot_class: "Local Push" +redirect_from: + - /components/sensor.smappee/ + - /components/switch.smappee/ --- The `smappee` component adds support for the [Smappee](https://www.smappee.com/) controller for energy monitoring and Comport plug switches. -Switches and Sensors are supported - and will be automatically added when you connect to the Smappee controller. +There is currently support for the following device types within Home Assistant: -The smappee component gets information from [Smappee API](https://smappee.atlassian.net/wiki/display/DEVAPI/API+Methods). +- Sensor +- Switch + +Will be automatically added when you connect to the Smappee controller. + +The smappee component gets information from [Smappee API](https://smappee.atlassian.net/wiki/spaces/DEVAPI/overview). Note: their cloud API now requires a subscription fee of €2.50 per month for Smappee Energy/Solar or €3 per month for Smappee Plus. ## {% linkable_title Configuration %} diff --git a/source/_components/smartthings.markdown b/source/_components/smartthings.markdown new file mode 100644 index 000000000000..db2b6fa7530a --- /dev/null +++ b/source/_components/smartthings.markdown @@ -0,0 +1,329 @@ +--- +layout: page +title: "SmartThings" +description: "Instructions on setting up Samsung SmartThings within Home Assistant." +date: 2018-01-14 00:00 +sidebar: true +comments: false +sharing: true +footer: true +featured: true +logo: samsung_smartthings.png +ha_category: + - Hub + - Binary Sensor + - Climate + - Cover + - Fan + - Light + - Lock + - Sensor + - Scene + - Switch +ha_release: "0.87" +ha_iot_class: "Cloud Push" +redirect_from: + - /components/smartthings.binary_sensor/ + - /components/binary_sensor.smartthings/ + - /components/smartthings.climate/ + - /components/climate.smartthings/ + - /components/smartthings.cover/ + - /components/cover.smartthings/ + - /components/smartthings.fan/ + - /components/fan.smartthings/ + - /components/smartthings.light/ + - /components/light.smartthings/ + - /components/smartthings.lock/ + - /components/lock.smartthings/ + - /components/smartthings.sensor/ + - /components/sensor.smartthings/ + - /components/smartthings.scene/ + - /components/scene.smartthings/ + - /components/smartthings.switch/ + - /components/switch.smartthings/ +--- + +Samsung SmartThings is integrated into Home Assistant through the SmartThings Cloud API. The SmartThings component is the main component to integrate all SmartThings related platforms. The basic features of this integration include: + +1. Controlling SmartThings devices with pushed state updates from SmartThings. +2. Entities automatically added, removed, or updated when changed in SmartThings (upon Home Assistant restart). +3. Support for multiple SmartThings accounts and locations, each represented as a unique integration in the front-end configuration. +4. No brokers, bridges, or additional dependencies. + +See it in action, with a step-by-step setup guide, thanks to a fan! (v0.87 featured): + +
+ +
+ + +## {% linkable_title Basic requirements %} + +1. A [personal access token](https://account.smartthings.com/tokens) tied to a Samsung or SmartThings account (see below for instructions). +2. Home Assistant setup for [remote access](/docs/configuration/remote/) via a domain name secured with SSL. *Self-signed SSL certificates are not supported by the SmartThings Cloud API.* +3. [`base_url` of the http component](/components/http#base_url) set the URL that Home Assistant is available on the internet. + +## {% linkable_title Setup instructions %} + +### {% linkable_title Create personal access token %} + +1. Log into the [personal access tokens page](https://account.smartthings.com/tokens) and click '[Generate new token](https://account.smartthings.com/tokens/new)' +2. Enter a token name (can be whatever you want), for example, 'Home Assistant' and select the following authorized scopes: + - Devices (all) + - Installed Apps (all) + - Locations (all) + - Apps (all) + - Schedules (all) + - Scenes (all) +3. Click 'Generate token'. When the token is displayed, copy and save it somewhere safe (such as your keystore) as you will not be able to retrieve it again. + +### {% linkable_title Configure Home Assistant %} + +

+The SmartThings component is configured exclusively through the front-end. Manual setup through `configuration.yaml` is not available at this time. +

+ +1. From the Home Assistant front-end, navigate to 'Configuration' then 'Integrations'. Under 'Set up a new integration' locate 'SmartThings' and click 'Configure'. +2. Enter the personal access token created above and click 'Submit' +3. When prompted, install the SmartApp: + 1. Open the SmartThings Classic mobile app. Navigate to 'Automation' and select the 'SmartApps' tab. + 2. Click 'Add a SmartApp', scroll to the bottom, and select 'My Apps', then choose 'Home Assistant'. + 3. Optionally change the display name and press 'Done' + 4. Authorize the app by pressing 'Allow' +4. Return to Home Assistant and click 'Submit'. + +

+Advanced: If you have multiple locations in SmartThings, each can be integrated into Home Assistant. Follow the steps above, then for each subsequent location, install the SmartApp and it will automatically add to Home Assistant. This can be completed during step 3 (install SmartApp) above or at any time after that. +

+ +See the [troubleshooting](#troubleshooting) if you are having issues setting up the integration. + +## {% linkable_title Events %} + +The SmartThings component triggers events for select device capabilities. + +### {% linkable_title smartthings.button %} + +The component will trigger an event when a device with the [button](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Button) capability is actuated and can be used to trigger automations within Home Assistant. Below is an example of the data payload: + +```json +{ + "component_id": "main", + "device_id": "42a16cf2-fef7-4ee8-b4a6-d32cb65474b7", + "location_id": "2a54b9fa-f66c-42d9-8488-d8f036b980c8", + "value": "pushed", + "name": "Scene Button" +} +``` + +| Attribute | Description +|---------------------------|------------------------------------------------------------------| +`component_id` | Describes which component of the device triggered the event. `main` represents the parent device. For devices with child-devices, this attribute identifies the child that raised the event. +`device_id` | The unique id of the device in SmartThings. This can be located in the HASS device registry or in the [SmartThings Groovy IDE](https://developers.smartthings.com/). +`location_id` | The unique id of the location the device is part of. This can be found in the config entry registry or in the [SmartThings Groovy IDE](https://developers.smartthings.com/). +`value` | Describes the action taken on the button. See the [button](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Button) capability reference for a list of possible values (not all are supported by every device). +`name` | The name given to the device in SmartThings. + +Event data payloads are logged at the debug level, see [debugging](#debugging) for more information. + +## {% linkable_title Platforms %} + +SmartThings represents devices as a set of [capabilities](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html) and the SmartThings component maps those to entity platforms in Home Assistant. A single device may be represented by one or more platforms. +- [Binary Sensor](#binary-sensor) +- [Climate](#climate) +- [Cover](#cover) +- [Fan](#fan) +- [Light](#light) +- [Lock](#lock) +- [Sensor](#sensor) +- [Scene](#scene) +- [Switch](#switch) + +Support for additional platforms will be added in the future. + +### {% linkable_title Binary Sensor %} + +The SmartThings Binary Sensor platform lets you view devices that have binary sensor-related capabilities. A Binary Sensor entity will be created for each attribute (below) supported by the device. + +| Capability |Attribute |On-Value +|-------------------|--------------|----------------| +| [`accelerationSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Acceleration-Sensor) | `acceleration` | `active` +| [`contactSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Contact-Sensor) | `contact` | `open` +| [`filterStatus`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Filter-Status) | `filterStatus` | `replace` +| [`motionSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Motion-Sensor) | `motion` | `active` +| [`presenceSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Presence-Sensor) | `presence` | `present` +| [`tamperAlert`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Tamper-Alert) | `tamper` | `detected` +| [`valve`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Valve) | `valve` | `open` +| [`waterSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Water-Sensor) | `water` | `wet` + +### {% linkable_title Climate %} + +The SmartThings Climate platform lets you control devices that have thermostat-related capabilities. For a SmartThings device to be represented by the climate platform, it must have all the capabilities from either "set a" _or_ "set b": + +| Capability |Climate Features +|-------------------------------------|--------------------------------------------| +| [`thermostat`](https://docs.smartthings.com/en/latest/capabilities-reference.html#thermostat) (set a) | `operation mode`, `operating state` (state attribute), `target temp high`, `target temp low` and `fan mode` +| [`thermostatMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Mode) (set b) | `operation mode` +| [`thermostatCoolingSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Cooling-Setpoint) (seb b) | `target temp low` +| [`thermostatHeatingSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Heating-Setpoint) (set b) | `target temp high` +| [`temperatureMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Temperature-Measurement) (set b) | +| [`thermostatOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Operating-State) | `operating state` (state attribute) +| [`thermostatFanMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Fan-Mode) | `fan mode` +| [`relativeHumidityMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Relative-Humidity-Measurement) | `humidity` (state attribute) + +### {% linkable_title Cover %} + +The SmartThings Cover platform lets you control devices that have open/close related capabilities. For a device to be represented by the cover platform, it must have one of the capabilities from "set a" below. + +| Capability |Cover Features +|-------------------------------------|--------------------------------------------| +| [`doorControl`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Door-Control) (set a) | `open` and `close` +| [`garageDoorControl`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Garage-Door-Control) (seb a) | `open` and `close` +| [`windowShade`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Window-Shade) (set a) | `open` and `close` +| [`switchLevel`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch-Level) | `position` +| [`battery`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Battery) | `battery_level` (state attribute) + +### {% linkable_title Fan %} + +The SmartThings Fan platform lets you control devices that have fan-related capabilities. For a SmartThings device to be represented by the fan platform, it must have one or more of the capabilities below in addition to the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability. + +| Capability |Fan Features +|-------------------|------------------------------------------------------------| +| [`fanSpeed`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Fan-Speed) | `speed` (`off`, `low`, `medium`, and `high`) + +### {% linkable_title Light %} + +The SmartThings Light platform lets you control devices that have light-related capabilities. For a SmartThings device to be represented by the light platform, it must have one or more of the capabilities below in addition to the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability. + +| Capability |Light Features +|-------------------|------------------------------------------------------------| +| [`switchLevel`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch-Level) | `brightness` and `transition` +| [`colorControl`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Color-Control) | `color` +| [`colorTemperature`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Color-Temperature) | `color_temp` + +### {% linkable_title Lock %} + +The SmartThings Lock platform lets you control devices that have the [`lock`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Lock) capability, showing current lock status and supporting lock and unlock commands. + +### {% linkable_title Sensor %} + +The SmartThings Sensor platform lets your view devices that have sensor-related capabilities. A Sensor entity is created for each attribute (below) supported by the device. + +| Capability |Attributes | +|-------------------|---------------| +| [`activityLightingMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Activity-Lighting-Mode) | `lightingMode` +| [`airConditionerMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Air-Conditioner-Mode) | `airConditionerMode` +| [`airQualitySensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Air-Quality-Sensory) | `airQuality` +| [`alarm`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Alarm) | `alarm` +| [`audioVolume`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Audio-Volume) | `volume` +| [`battery`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Battery) | `battery` +| [`bodyMassIndexMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Body-Mass-Index-Measurement) | `bmiMeasurement` +| [`bodyWeightMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Body-Weight-Measurement) | `bodyWeightMeasurement` +| [`carbonDioxideMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Carbon-Dioxide-Measurement) | `carbonDioxide` +| [`carbonMonoxideDetector`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Carbon-Monoxide-Detector) | `carbonMonoxide` +| [`carbonMonoxideMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Carbon-Monoxide-Measurement) | `carbonMonoxideLevel` +| [`dishwasherOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Dishwasher-Operating-State) | `machineState`, `dishwasherJobState` and `completionTime` +| [`dryerMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Dryer-Mode) | `dryerMode` +| [`dryerOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Dryer-Operating-State) | `machineState`, `dryerJobState` and `completionTime` +| [`dustSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Dust-Sensor) | `fineDustLevel` and `dustLevel` +| [`energyMeter`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Energy-Meter) | `energy` +| [`equivalentCarbonDioxideMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Equivalent-Carbon-Dioxide-Measurement) | `equivalentCarbonDioxideMeasurement` +| [`formaldehydeMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Formaldehyde-Measurement) | `formaldehydeLevel` +| [`illuminanceMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Illuminance-Measurement) | `illuminance` +| [`infraredLevel`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Infrared-Level) | `infraredLevel` +| [`lock`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Lock) | `lock` +| [`mediaInputSource`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Media-Input-Source) | `inputSource` +| [`mediaPlaybackRepeat`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Media-Playback-Repeat) | `playbackRepeatMode` +| [`mediaPlaybackShuffle`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Media-Playback-Shuffle) | `playbackShuffle` +| [`mediaPlayback`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Media-Playback) | `playbackStatus` +| [`odorSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Odor-Sensor) | `odorLevel` +| [`ovenMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Oven-Mode) | `ovenMode` +| [`ovenOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Oven-Operating-State) | `machineState`, `ovenJobState` and `completionTime` +| [`ovenSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Oven-Setpoint) | `ovenSetpoint` +| [`powerMeter`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Power-Meter) | `power` +| [`powerSource`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Power-Source) | `powerSource` +| [`refrigerationSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Refrigeration-Setpoint) | `refrigerationSetpoint` +| [`relativeHumidityMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Relative-Humidity-Measurement) | `humidity` +| [`robotCleanerCleaningMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Robot-Cleaner-CleaningMode) | `robotCleanerCleaningMode` +| [`robotCleanerMovement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Robot-Cleaner-Movement) | `robotCleanerMovement` +| [`robotCleanerTurboMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Robot-Cleaner-Turbo-Mode) | `robotCleanerTurboMode` +| [`signalStrength`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Signal-Strength) | `lqi` and `rssi` +| [`smokeDetector`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Smoke-Detector) | `smoke` +| [`temperatureMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Temperature-Measurement) | `temperature` +| [`thermostatCoolingSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Cooling-Setpoint) | `coolingSetpoint` +| [`thermostatFanMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Fan-Mode) | `thermostatFanMode` +| [`thermostatHeatingSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Heating-Setpoint) | `heatingSetpoint` +| [`thermostatMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Mode) | `thermostatMode` +| [`thermostatOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Operating-State) | `thermostatOperatingState` +| [`thermostatSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Setpoint) | `thermostatSetpoint` +| [`tvChannel`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Tv-Channel) | `tvChannel` +| [`tvocMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Tvoc-Measurement) | `tvocLevel` +| [`ultravioletIndex`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Ultraviolet-Index) | `ultravioletIndex` +| [`voltageMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Voltage-Measurement) | `voltage` +| [`washerMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Washer-Mode) | `washerMode` +| [`washerOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Washer-Operating-State) | `machineState`, `washerJobState` and `completionTime` + +### {% linkable_title Scene %} + +The SmartThings Scene platform lets you activate scenes defined in SmartThings with a scene entity representing each SmartThings scenes within the location. + +### {% linkable_title Switch %} + +The SmartThings Switch platform lets you control devices that have the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability that are not already represented by a more specific platform. The following optional capabilities will provide energy and power utilization information: + +| Capability |Switch Features +|-------------------------------------|--------------------------------------------| +| [`energyMeter`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Energy-Meter) | energy consumption (`today_energy_kwh` state attribute) +| [`powerMeter`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Power-Meter) | power consumption (`current_power_w` state attribute) + + +## {% linkable_title Troubleshooting %} + +### {% linkable_title Setup %} + +Perform the following steps if you receive one of the following error messages while attempting to setup the integration: + +- "SmartThings could not validate the endpoint configured in base_url. Please review the component requirements." +- "Unable to setup the SmartApp. Please try again." + +#### {% linkable_title Checklist %} + +1. Ensure `base_url` is properly set to the _external address_ that Home Assistant is available to the internet. SmartThings must be able to reach this address. +1. Validate there are no problems with your certificate or SSL configuration by using an online checker, such as [https://www.digicert.com/help/](https://www.digicert.com/help/). +1. Some reverse proxy configuration settings can interfere with communication from SmartThings. For example, TLSv1.3 is not supported. Setting the supported cipher suite too restrictly will prevent handshaking. The following NGINX SSL configuration is known to work: + ```nginx + # cert.crt also contains intermediate certificates + ssl_certificate /path/to/cert.crt; + ssl_certificate_key /path/to/cert.key; + ssl_dhparam /path/to/dhparam.pem; + ssl_protocols TLSv1.2; + ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; + ssl_prefer_server_ciphers on; + ssl_ecdh_curve secp384r1; + ssl_session_timeout 10m; + ssl_session_cache shared:SSL:10m; + ssl_session_tickets off; + ``` +1. While the error message (above) is being displayed, run the following command from outside your local network to confirm it is responding to the ping lifecycle event: + ```bash + curl -X POST https://{BASE_URL}/api/webhook/{WEBHOOK_ID} -H "Content-Type: application/json; charset=utf-8" -d $'{"lifecycle": "PING", "executionId": "00000000-0000-0000-0000-000000000000", "locale": "en", "version": "1.0.0", "pingData": { "challenge": "00000000-0000-0000-0000-000000000000"}}' + ``` + Where `{BASE_URL}` is your external address and `{WEBHOOK_ID}` is the value of `webhook_id` from `.storage/smartthings` in your Home Assistant configuration directory. + + The expected response is: + ```bash + {"pingData": {"challenge": "00000000-0000-0000-0000-000000000000"}} + ``` + +If you have completed the checklist above and are still unable to setup the platform, [activate debug logging](#debugging) for the SmartThings component and include the log messages up until the point of failure in [a new issue](https://github.com/home-assistant/home-assistant/issues). + +### {% linkable_title Debugging %} + +The SmartThings component will log additional information about push updates received, events fired, and other messages when the log level is set to `debug`. Add the the relevent line below to the `configuration.yaml`: + +```yaml +logger: + default: info + logs: + homeassistant.components.smartthings: debug +``` diff --git a/source/_components/smhi.markdown b/source/_components/smhi.markdown index 03f7bca78503..d9f03f22d95e 100644 --- a/source/_components/smhi.markdown +++ b/source/_components/smhi.markdown @@ -8,13 +8,21 @@ comments: false sharing: true footer: true logo: smhi.png -ha_category: Hub +ha_category: + - Hub + - Weather ha_release: 0.81 ha_iot_class: "Cloud Polling" +redirect_from: + - /components/weather.smhi/ --- The `smhi` component adds support for the [SMHI.se](https://www.smhi.se/) web service as a source for meteorological data for your location. +There is currently support for the following device types within Home Assistant: + +- Weather + ## {% 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. @@ -31,15 +39,14 @@ You can only add locations through the integrations page, not in configuration f Only location close to Sweden can be added. See [SMHI.se area](http://opendata.smhi.se/apidocs/metfcst/geographic_area.html) for more details what locations are supported.

- {% configuration %} latitude: - description: Manually specify latitude. + description: Manually specify latitude. required: false type: number default: Provided by Home Assistant configuration longitude: - description: Manually specify longitude. + description: Manually specify longitude. required: false type: number default: Provided by Home Assistant configuration diff --git a/source/_components/snips.markdown b/source/_components/snips.markdown index 96696c36d84e..3b3be76e9e0d 100644 --- a/source/_components/snips.markdown +++ b/source/_components/snips.markdown @@ -22,7 +22,6 @@ Snips takes voice or text as input and produces *intents* as output, which are e ![Snips Modules](/images/screenshots/snips_nlu.png) - ## {% linkable_title The Snips Voice Platform %} ### {% linkable_title Installation %} @@ -30,18 +29,18 @@ Snips takes voice or text as input and produces *intents* as output, which are e The Snips platform can be installed via the Snips APT/Debian repository. If you prefer to install the platform using the Docker distribution, check out our [Docker Installation Guide](https://github.com/snipsco/snips-platform-documentation/wiki/6.--Miscellaneous#using-docker). ```bash -$ sudo apt-get update -$ sudo apt-get install -y dirmngr -$ sudo bash -c 'echo "deb https://raspbian.snips.ai/$(lsb_release -cs) stable main" > /etc/apt/sources.list.d/snips.list' -$ sudo apt-key adv --keyserver pgp.mit.edu --recv-keys D4F50CDCA10A2849 -$ sudo apt-get update -$ sudo apt-get install -y snips-platform-voice +sudo apt-get update +sudo apt-get install -y dirmngr +sudo bash -c 'echo "deb https://raspbian.snips.ai/$(lsb_release -cs) stable main" > /etc/apt/sources.list.d/snips.list' +sudo apt-key adv --keyserver pgp.mit.edu --recv-keys D4F50CDCA10A2849 +sudo apt-get update +sudo apt-get install -y snips-platform-voice ``` Note that if the keyserver pgp.mit.edu is down then try to use another one in the 4th line, like pgp.surfnet.nl: ```bash -$ sudo apt-key adv --keyserver pgp.surfnet.nl --recv-keys D4F50CDCA10A2849 +sudo apt-key adv --keyserver pgp.surfnet.nl --recv-keys D4F50CDCA10A2849 ``` ### {% linkable_title Creating an assistant %} @@ -51,13 +50,13 @@ Head over to the [Snips Console](https://console.snips.ai) to create your assist The next step is to get the assistant to work on your device. Unzip and copy the `assistant` folder that you downloaded from the web console to the path. Assuming your downloaded `assistant` folder is on your desktop, just run: ```bash -$ scp -r ~/Desktop/assistant pi@:/home/pi/. +scp -r ~/Desktop/assistant pi@:/home/pi/. ``` Now ssh into your Raspberry Pi: ```bash -$ ssh pi@ +ssh pi@ ``` By default, this command is `ssh pi@raspberrypi.local`, if you are using the default Raspberry Pi hostname. @@ -82,7 +81,7 @@ Make sure that a microphone is plugged to the Raspberry Pi. If you are having tr Start the Snips Voice Platform by starting the `snips-*` services: ```bash -$ sudo systemctl start "snips-*" +sudo systemctl start "snips-*" ``` Snips is now ready to take voice commands from the microphone. To trigger the listening, simply say @@ -161,11 +160,11 @@ In the `data_template` block, we have access to special variables, corresponding ### {% linkable_title Special slots %} -Several special values for slots are populated with the `siteId `the intent originated from and the probability value for the intent, the `sessionId` generate by the dialogue manager, and `slote_name` raw which will contain the raw, uninterpreted text of the slot value. +Several special values for slots are populated with the `siteId` the intent originated from and the probability value for the intent, the `sessionId` generate by the dialogue manager, and `slote_name` raw which will contain the raw, uninterpreted text of the slot value. In the above example, the slots are plain strings. However, Snips has a duration builtin value used for setting timers and this will be parsed to a seconds value. -In this example if we had an intent triggered with 'Set a timer for five minutes', `duration:` would equal 300 and `duration_raw:` would be set to 'five minutes'. The duration can be easily used to trigger Home Assistant events and the `duration_raw:` could be used to send a human readable response or alert. +In this example if we had an intent triggered with 'Set a timer for five minutes', `duration:` would equal 300 and `duration_raw:` would be set to 'five minutes'. The duration can be easily used to trigger Home Assistant events and the `duration_raw:` could be used to send a human readable response or alert. {% raw %} ```yaml @@ -185,8 +184,6 @@ SetTimer: ``` {% endraw %} - - ### {% linkable_title Sending TTS Notifications %} You can send TTS notifications to Snips using the `snips.say` and `snips.say_action` services. `say_action` starts a session and waits for user response, "Would you like me to close the garage door?", "Yes, close the garage door". @@ -209,7 +206,6 @@ You can send TTS notifications to Snips using the `snips.say` and `snips.say_act | `can_be_enqueued` | yes | If True, session waits for an open session to end, if False session is dropped if one is running. | | `intent_filter` | yes | Array of Strings - A list of intents names to restrict the NLU resolution to on the first query. | - ### {% linkable_title Snips Support %} There is an active [discord](https://discordapp.com/invite/3939Kqx) channel for further support. @@ -281,7 +277,7 @@ So now you can open and close your garage door, let's check the weather. Add the - platform: darksky name: "Dark Sky Weather" api_key: !secret dark_sky_key - update_interval: + scan_interval: minutes: 10 monitored_conditions: - summary @@ -308,4 +304,3 @@ intent_script: and {{ states('sensor.dark_sky_weather_hourly_summary') }} ``` {% endraw %} - diff --git a/source/_components/sonos.markdown b/source/_components/sonos.markdown index 5d3c70c88f7b..e78ecb0a220e 100644 --- a/source/_components/sonos.markdown +++ b/source/_components/sonos.markdown @@ -23,83 +23,151 @@ If you don't have the discovery component enabled, you can configure the Sonos c Sonos makes various services available to allow configuring groups. They are currently registered under the media player component. -### {% linkable_title Service `sonos_snapshot` %} +### {% linkable_title Service `media_player.sonos_snapshot` %} Take a snapshot of what is currently playing on one or more speakers. This service, and the following one, are useful if you want to play a doorbell or notification sound and resume playback afterwards. If no `entity_id` is provided, all speakers are snapshotted. -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | yes | String or list of strings that point at `entity_id`s of coordinator speakers. -| `with_group` | yes | Should be also snapshot the group state of the speaker. +

+The queue is not snapshotted and must be left untouched until the restore. Using `media_player.play_media` is safe and can be used to play a notification sound, including [TTS](/components/tts/) announcements. +

-### {% linkable_title Service `sonos_restore` %} +{% configuration %} +entity_id: + description: The speakers to snapshot. + required: false + type: entity_id +with_group: + description: Should we also snapshot the group layout and the state of other speakers in the group. + required: false + type: boolean +{% endconfiguration %} -Restore a previously taken snapshot of one or more speakers. If no `entity_id` is provided, all speakers are restored. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | yes | String or list of strings that point at `entity_id`s of coordinator speakers. -| `with_group` | yes | Should be also restore the group state of the speaker. Only if was snapshot with group. - -### {% linkable_title Service `sonos_join` %} - -Do group players together under a single coordinator. That will make a new group or join to exists group. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `master` | no | A single `entity_id` that will become/hold the coordinator speaker. -| `entity_id` | no | String or list of a single `entity_id` that will group to master speaker. - -### {% linkable_title Service `sonos_unjoin` %} +### {% linkable_title Service `media_player.sonos_restore` %} -Remove one or more speakers from a group of speakers. If no `entity_id` is provided, all speakers are unjoined. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | no | String or list of `entity_id`s that will be separated from their coordinator speaker. +Restore a previously taken snapshot of one or more speakers. If no `entity_id` is provided, all speakers are restored. -### {% linkable_title Service `sonos_set_sleep_timer` %} +

+The playing queue is not snapshotted. Using `media_player.sonos_restore` on a speaker that has replaced its queue will restore the playing position, but in the new queue! +

+ +

+A cloud queue cannot be restarted. This includes queues started from within Spotify and queues controlled by Amazon Alexa. +

+ +{% configuration %} +entity_id: + description: The speakers that should have their snapshot restored. + required: false + type: entity_id +with_group: + description: Should we also restore the group layout and the state of other speakers in the group. + required: false + type: boolean +{% endconfiguration %} + +### {% linkable_title Service `media_player.sonos_join` %} + +Group players together under a single coordinator. This will make a new group or join to an existing group. + +{% configuration %} +master: + description: A single `entity_id` that will become/stay the coordinator speaker. + required: true + type: entity_id +entity_id: + description: The speakers to join to the master. + required: false + type: entity_id +{% endconfiguration %} + +### {% linkable_title Service `media_player.sonos_unjoin` %} + +Remove one or more speakers from their group of speakers. If no `entity_id` is provided, all speakers are unjoined. + +{% configuration %} +entity_id: + description: The speakers to separate from their coordinator speaker. + required: false + type: entity_id +{% endconfiguration %} + +### {% linkable_title Service `media_player.sonos_set_sleep_timer` %} Sets a timer that will turn off a speaker by tapering the volume down to 0 after a certain amount of time. Protip: If you set the sleep_time value to 0, then the speaker will immediately start tapering the volume down. -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | no | String or list of `entity_id`s that will have their timers set. Must be a coordinator speaker. -| `sleep_time` | no | Integer number of seconds that the speaker should wait until it starts tapering. Cannot exceed 86399 (one day). +{% configuration %} +entity_id: + description: The speakers that will have their timers set. + required: true + type: entity_id +sleep_time: + description: Number of seconds that the speaker should wait until it starts tapering. Cannot exceed 86399 (one day). + required: true + type: integer +{% endconfiguration %} -### {% linkable_title Service `sonos_clear_sleep_timer` %} +### {% linkable_title Service `media_player.sonos_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. Must be a coordinator speaker. +{% configuration %} +entity_id: + description: The speakers that will have their timers cleared. + required: true + type: entity_id +{% endconfiguration %} -### {% linkable_title Service `sonos_update_alarm` %} +### {% linkable_title Service `media_player.sonos_update_alarm` %} Update an existing Sonos alarm. -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | no | String or list of `entity_id`s that will have their timers cleared. Must be a coordinator speaker. -| `alarm_id` | no | Integer that is used in Sonos to refer to your alarm. -| `time` | yes | Time to set the alarm. -| `volume` | yes | Float for volume level. -| `enabled` | yes | Boolean for whether or not to enable this alarm. -| `include_linked_zones` | yes | Boolean that defines if the alarm also plays on grouped players. - -### {% linkable_title Service `sonos_set_option` %} +{% configuration %} +entity_id: + description: The speaker that will have its alarm updated. + required: true + type: entity_id +alarm_id: + description: Integer that is used in Sonos to refer to your alarm. + required: true + type: integer +time: + description: Time to set the alarm. + required: no + type: time +volume: + description: Float for volume level (0.0-1.0). + required: no + type: float +enabled: + description: Boolean for whether or not to enable this alarm. + required: no + type: boolean +include_linked_zones: + description: Boolean that defines if the alarm also plays on grouped players. + required: no + type: boolean +{% endconfiguration %} + +### {% linkable_title Service `media_player.sonos_set_option` %} Set Sonos speaker options. -Night Sound and Speech Enhancement modes are only supported on Sonos PLAYBAR and PLAYBASE speakers when playing from the TV source. Other speaker types will ignore these options. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | no | String or list of `entity_id`s that will have their options set. -| `night_sound` | yes | Boolean to control Night Sound mode. -| `speech_enhance` | yes | Boolean to control Speech Enhancement mode. - +Night Sound and Speech Enhancement modes are only supported when playing from the TV source of products like Sonos Playbar and Sonos Beam. Other speaker types will ignore these options. + +{% configuration %} +entity_id: + description: The speakers that will have their options set. + required: true + type: entity_id +night_sound: + description: Boolean to control Night Sound mode. + required: no + type: boolean +speech_enhance: + description: Boolean to control Speech Enhancement mode. + required: no + type: boolean +{% endconfiguration %} ## {% linkable_title Advanced use %} diff --git a/source/_components/sensor.speedtest.markdown b/source/_components/speedtestdotnet.markdown similarity index 63% rename from source/_components/sensor.speedtest.markdown rename to source/_components/speedtestdotnet.markdown index 9c5d5e5cc5ce..a6386845bb33 100644 --- a/source/_components/sensor.speedtest.markdown +++ b/source/_components/speedtestdotnet.markdown @@ -8,41 +8,42 @@ comments: false sharing: true footer: true logo: speedtest.png -ha_category: System Monitor +ha_category: + - System Monitor + - Sensor featured: false ha_release: 0.13 ha_iot_class: "Cloud Polling" +redirect_from: + - /components/sensor.speedtest/ + - /components/sensor.speedtestdotnet/ --- -The `speedtest` sensor component uses the [Speedtest.net](https://speedtest.net/) -web service to measure network bandwidth performance. +The `speedtestdotnet` component uses the [Speedtest.net](https://speedtest.net/) web service to measure network bandwidth performance. + +Enabling this component will automatically create the Speedtest.net Sensors for the monitored conditions (below). + +By default, a speed test will be run every hour. The user can change the update frequency in the configuration by defining the `scan_interval` for a speed test to run. ## {% linkable_title Configuration %} -By default, it will run every hour. The user can change the update frequency in -the configuration by defining the minute and hour for a speed test to run. For the `server_id` check the list of [available servers](https://www.speedtest.net/speedtest-servers.php). -To add a Speedtest.net sensor to your installation, -add the following to your `configuration.yaml` file: +To add Speedtest.net sensors to your installation, add the following to your `configuration.yaml` file: Once per hour, on the hour (default): ```yaml # Example configuration.yaml entry -sensor: - - platform: speedtest - monitored_conditions: - - ping - - download - - upload +speedtestdotnet: ``` {% configuration %} monitored_conditions: description: Sensors to display in the frontend. - required: true + required: false + default: All keys type: list keys: ping: @@ -55,29 +56,40 @@ sensor: description: Specify the speed test server to perform the test against. required: false type: integer - hour: - description: Specify the hour(s) of the day to schedule the speed test. Use a list for multiple entries. + scan_interval: + description: "Minimum time interval between updates. Supported formats: `scan_interval: 'HH:MM:SS'`, `scan_interval: 'HH:MM'` and Time period dictionary (see example below)." required: false - type: [int, list] - minute: - description: Specify the minute(s) of the hour to schedule the speed test. Use a list for multiple entries. - required: false - type: [int, list] - default: 0 - second: - description: Specify the second(s) of the minute to schedule the speed test. Use a list for multiple entries. - required: false - type: [int, list] - default: 0 + default: 60 minutes + type: time manual: description: > - `true` or `false` to turn manual mode on or off. - Manual mode will disable scheduled speed tests. + `true` or `false` to turn manual mode on or off. Manual mode will disable scheduled speed tests. required: false type: boolean default: false {% endconfiguration %} +#### {% linkable_title Time period dictionary example %} + +```yaml +scan_interval: + # At least one of these must be specified: + days: 0 + hours: 0 + minutes: 3 + seconds: 30 + milliseconds: 0 +``` + +### {% linkable_title Service %} + +Once loaded, the `speedtestdotnet` component will expose a service (`speedtestdotnet.speedtest`) that can be called to run a Speedtest.net speed test on demand. This service takes no parameters. This can be useful if you have enabled manual mode. + +```yaml +action: + service: speedtestdotnet.speedtest +``` + This component uses [speedtest-cli](https://github.com/sivel/speedtest-cli) to gather network performance data from Speedtest.net. Please be aware of the potential @@ -91,7 +103,7 @@ test. You can turn on manual mode to disable the scheduled speed tests. ## {% linkable_title Examples %} -In this section, you find some real-life examples of how to use this sensor. +In this section, you find some real-life examples of how to use this component. ### {% linkable_title Run periodically %} @@ -99,35 +111,13 @@ Every half hour of every day: ```yaml # Example configuration.yaml entry -sensor: - - platform: speedtest - minute: - - 0 - - 30 - monitored_conditions: - - ping - - download - - upload -``` - -### {% linkable_title Run at a specific time %} - -Everyday at 12:30AM, 6:30AM, 12:30PM, 6:30PM: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: speedtest - minute: 30 - hour: - - 0 - - 6 - - 12 - - 18 - monitored_conditions: - - ping - - download - - upload +speedtestdotnet: + scan_interval: + minutes: 30 + monitored_conditions: + - ping + - download + - upload ``` ### {% linkable_title Using as a trigger in an automation %} @@ -139,7 +129,7 @@ automation: - alias: "Internet Speed Glow Connect Great" trigger: - platform: template - value_template: "{{ states('sensor.speedtest_download')|float > 10 }}" + value_template: "{{ states('sensor.speedtest_download')|float >= 10 }}" action: - service: shell_command.green @@ -155,7 +145,7 @@ automation: ## {% linkable_title Notes %} - When running on Raspberry Pi, just note that the maximum speed is limited by its 100 Mbit/s LAN adapter. -- Running this platform can have negative effects on the system's performance as it requires a fair amount of memory. +- Running this component can have negative effects on the system's performance as it requires a fair amount of memory. - Entries under `monitored_conditions` only control what entities are available in Home Assistant, it does not disable the condition from running. - If ran frequently, this component has the ability to use a considerable amount of data. Frequent updates should be avoided on bandwidth-capped connections. - While running, your network capacity is fully utilized. This may have a negative effect on other devices in use the network such as gaming consoles or streaming boxes. diff --git a/source/_components/spider.markdown b/source/_components/spider.markdown index f66617b2a385..272ddba92384 100644 --- a/source/_components/spider.markdown +++ b/source/_components/spider.markdown @@ -8,13 +8,24 @@ comments: false sharing: true footer: true logo: spider.png -ha_category: Hub +ha_category: + - Hub + - Climate + - Switch ha_iot_class: "Cloud Polling" ha_release: 0.75 +redirect_from: + - /components/switch.spider/ + - /components/climate.spider/ --- The `spider` component is the main component to integrate all [Itho Daalderop Spider](https://www.ithodaalderop.nl/spider-thermostaat) related platforms. You will need your Spider account information (username, password) to discover and control devices which are related to your account. +There is currently support for the following device types within Home Assistant: + +- Climate +- Switch + ## {% linkable_title Configuration %} To add your Spider devices into your Home Assistant installation, add the following to your `configuration.yaml` file: @@ -43,3 +54,9 @@ scan_interval:

This component is not affiliated with Itho Daalderop Spider and retrieves data from the endpoints of the mobile application. Use at your own risk.

+ +### {% linkable_title Climate %} + +

+Although this component lets you change the operation mode to heating or cooling, it doesn't necessarily mean your boiler can. Spider is not aware of your current situation. +

\ No newline at end of file diff --git a/source/_components/splunk.markdown b/source/_components/splunk.markdown index 06eefe86577a..d7efdaa556dd 100644 --- a/source/_components/splunk.markdown +++ b/source/_components/splunk.markdown @@ -14,12 +14,14 @@ ha_release: 0.13 The `splunk` component makes it possible to log all state changes to an external [Splunk](http://splunk.com/) database using Splunk's HTTP Event Collector (HEC) feature. You can either use this alone, or with the Home Assistant for Splunk [app](https://github.com/miniconfig/splunk-homeassistant). Since the HEC feature is new to Splunk, you will need to use at least version 6.3. +## {% linkable_title Configuration %} + To use the `splunk` component in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry splunk: - token: B4415DFF-683C-5C6C-3994-4F6D4A5DB03A + token: YOUR_SPLUNK_TOKEN ``` {% configuration %} @@ -28,7 +30,7 @@ token: required: true type: string host: - description: "IP address or host name of your Splunk host e.g., 192.168.1.10." + description: "IP address or host name of your Splunk host, e.g., 192.168.1.10." required: false default: localhost type: string @@ -42,6 +44,11 @@ ssl: required: false default: false type: boolean +verify_ssl: + description: Allows you do disable checking of the SSL certificate. + required: false + default: false + type: boolean name: description: This parameter allows you to specify a friendly name to send to Splunk as the host, instead of using the name of the HEC. required: false diff --git a/source/_components/sun.markdown b/source/_components/sun.markdown index cc2f933d70b9..94da2e561c41 100644 --- a/source/_components/sun.markdown +++ b/source/_components/sun.markdown @@ -19,6 +19,8 @@ below the horizon. The sun can be used within automation as [sun_trigger]: /docs/automation/trigger/#sun-trigger [sun_condition]: /docs/scripts/conditions/#sun-condition +## {% linkable_title Configuration %} + ```yaml # Example configuration.yaml entry sun: @@ -35,7 +37,7 @@ elevation:

-### {% linkable_title Implementation Details %} +## {% linkable_title Implementation Details %} The sun's event listener will call the service when the sun rises or sets with an offset. @@ -52,7 +54,7 @@ which event (sunset or sunrise) and the offset. } ``` -#### {% linkable_title Maintains entity `sun.sun` %} +### {% linkable_title Maintains entity `sun.sun` %} | Possible state | Description | | --------- | ----------- | diff --git a/source/_components/switch.abode.markdown b/source/_components/switch.abode.markdown deleted file mode 100644 index 2cc7d2e9777f..000000000000 --- a/source/_components/switch.abode.markdown +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: page -title: "Abode Switch" -description: "Instructions on how to integrate Abode switches into Home Assistant." -date: 2017-08-26 13:28 -sidebar: true -comments: false -sharing: true -footer: true -logo: abode.jpg -ha_release: 0.52 -ha_category: Switch -ha_iot_class: "Cloud Push" ---- - -The `abode` security control panel platform allows you to control your [Abode](https://goabode.com/) alarms. - -This component will automatically add `Power Switches` configured in your Abode account. You can reclassify switches to show up within Home Assistant as `Lights` by listing the Abode device ID in your [configuration](/components/abode/#configuration). - -This component will also list all Abode `Automations` that are set up within the Abode system, allowing you to activate and deactivate the automations. - -The requirement is that you have setup your [Abode hub](/components/abode/). diff --git a/source/_components/switch.acer_projector.markdown b/source/_components/switch.acer_projector.markdown index 1e5bfb299c08..8e29186e2e88 100644 --- a/source/_components/switch.acer_projector.markdown +++ b/source/_components/switch.acer_projector.markdown @@ -13,7 +13,6 @@ ha_iot_class: "Local Polling" ha_release: 0.19 --- - The `acer_projector` switch platform allows you to control the state of RS232 connected projectors from [Acer](http://www.acer.com). ## {% linkable_title Configuration %} diff --git a/source/_components/switch.ads.markdown b/source/_components/switch.ads.markdown deleted file mode 100644 index 28396413292c..000000000000 --- a/source/_components/switch.ads.markdown +++ /dev/null @@ -1,37 +0,0 @@ ---- -layout: page -title: "ADS Switch" -description: "Instructions on how to set up ADS switches within Home Assistant." -date: 2017-10-25 10:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: beckhoff.png -ha_category: Switch -ha_release: "0.60" -ha_iot_class: "Local Push" ---- - -The `ads` switch platform accesses a boolean variable on the connected ADS device. The variable is identified by its name. - -To use your ADS device, you first have to set up your [ADS hub](/components/ads/) and then add the following to your `configuration.yaml` -file: - -```yaml -# Example configuration.yaml entry -switch: - - platform: ads - adsvar: .global_bool -``` - -{% 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 switch in the frontend. - type: string -{% endconfiguration %} diff --git a/source/_components/switch.amcrest.markdown b/source/_components/switch.amcrest.markdown deleted file mode 100644 index d494df7b02b7..000000000000 --- a/source/_components/switch.amcrest.markdown +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: page -title: "Amcrest IP Camera Settings" -description: "Instructions on how to integrate settings for Amcrest IP Camera as switches within Home Assistant." -date: 2018-03-08 00:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: amcrest.png -ha_category: Switch -ha_release: 0.67 -ha_iot_class: "Local Polling" ---- - -The `amcrest` switch platform lets you control settings of [Amcrest IP Camera](https://home-assistant.io/components/camera.amcrest/) through Home Assistant. - -Switches will be configured automatically. Please refer to the [component](/components/amcrest/) configuration on how to setup. - -

-In previous versions, switch devices in setups with multiple cameras, would not have specific entity ID causing them to change randomly after each Home Assistant restart. The current version adds the name of the camera at the end of the switch entity ID, making it more specific and consistent and causes the name option to be required in a multi-camera system. This behavior matches the sensor behavior of the Amcrest component. Because of this, older automations may require updates to the entity ID. -

diff --git a/source/_components/switch.android_ip_webcam.markdown b/source/_components/switch.android_ip_webcam.markdown deleted file mode 100644 index bb32b0c9f5d0..000000000000 --- a/source/_components/switch.android_ip_webcam.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Android IP Webcam Settings" -description: "Instructions on how to integrate settings for Android IP webcam as switch within Home Assistant." -date: 2017-03-10 00:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: android_ip_webcam.png -ha_category: Switch -ha_release: "0.40" -ha_iot_class: "Local Polling" ---- - - -The `android_ip_webcam` switch platform lets you control settings of [Android IP webcam](https://play.google.com/store/apps/details?id=com.pas.webcam) through Home Assistant. - -Devices will be configured automatically. Please refer to the [component](/components/android_ip_webcam/) configuration on how to setup. diff --git a/source/_components/switch.aqualogic.markdown b/source/_components/switch.aqualogic.markdown deleted file mode 100644 index 80a0ad625db0..000000000000 --- a/source/_components/switch.aqualogic.markdown +++ /dev/null @@ -1,58 +0,0 @@ ---- -layout: page -title: "AquaLogic Switch" -description: "Instructions on how to integrate your AquaLogic devices within Home Assistant." -date: 2018-09-17 9:16 -sidebar: true -comments: false -sharing: true -footer: true -logo: hayward.png -ha_category: Switch -ha_release: "0.80" -ha_iot_class: "Local Push" ---- - -To get your AquaLogic switches working within Home Assistant, please follow the instructions for the general [AquaLogic component](/components/aqualogic). - -## {% linkable_title Configuration %} - -Once you have enabled the [AquaLogic component](/components/aqualogic), add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -switch: - - platform: aqualogic - monitored_conditions: - - lights - - filter -``` - -{% configuration %} -monitored_conditions: - description: List of items you want to monitor/control. - required: false - default: all - type: list - keys: - filter: - description: Controls the filter pump. - filter_low_speed: - description: Controls low speed mode on the filter pump (multi-speed pumps only). - lights: - description: Controls the Lights relay. - aux_1: - description: Controls the Aux 1 relay. - aux_2: - description: Controls the Aux 2 relay. - aux_3: - description: Controls the Aux 3 relay. - aux_4: - description: Controls the Aux 4 relay. - aux_5: - description: Controls the Aux 5 relay. - aux_6: - description: Controls the Aux 6 relay. - aux_7: - description: Controls the Aux 7 relay. -{% endconfiguration %} diff --git a/source/_components/switch.arduino.markdown b/source/_components/switch.arduino.markdown index a27907103af4..5cc9f87d9b1e 100644 --- a/source/_components/switch.arduino.markdown +++ b/source/_components/switch.arduino.markdown @@ -13,7 +13,6 @@ ha_release: pre 0.7 ha_iot_class: "Local Polling" --- - The `arduino` switch platform allows you to control the digital pins of your [Arduino](https://www.arduino.cc/) board. Support for switching pins is limited to high/on and low/off of the digital pins. PWM (pin 3, 5, 6, 9, 10, and 11 on an Arduino Uno) is not supported yet. To enable the Arduino pins with Home Assistant, add the following section to your `configuration.yaml` file: @@ -59,4 +58,3 @@ pins: {% endconfiguration %} The digital pins are numbered from 0 to 13 on a Arduino UNO. The available pins are 2 till 13. For testing purposes you can use pin 13 because with that pin you can control the internal LED. - diff --git a/source/_components/switch.arest.markdown b/source/_components/switch.arest.markdown index a6a61d7ae98c..4b27e680d449 100644 --- a/source/_components/switch.arest.markdown +++ b/source/_components/switch.arest.markdown @@ -29,7 +29,7 @@ switch: name: Fan 13: name: Switch - invert: True + invert: true ``` If you want to use custom functions, then add the following to your `configuration.yaml` file: @@ -44,9 +44,10 @@ switch: function1: name: Light Desk ``` + {% configuration %} resource: - description: IP address and schema of the device that is exposing an aREST API, e.g., http://192.168.1.10 (no-trailing slash) + description: IP address and schema of the device that is exposing an aREST API, e.g., `http://192.168.1.10` (no-trailing slash) required: true type: string name: @@ -78,9 +79,8 @@ functions: type: string {% endconfiguration %} -You can still switch your pins with a web browser or a command line tool. Use the URL http://192.168.1.10/digital/8/1 to set pin 8 to high/on, the JSON response will give you the feedback. +You can still switch your pins with a web browser or a command line tool. Use the URL `http://192.168.1.10/digital/8/1` to set pin 8 to high/on, the JSON response will give you the feedback. ```json {"message": "Pin D8 set to 1", "id": "sensor02", "name": "livingroom", "connected": true} ``` - diff --git a/source/_components/switch.bbb_gpio.markdown b/source/_components/switch.bbb_gpio.markdown deleted file mode 100644 index 6efd8f881591..000000000000 --- a/source/_components/switch.bbb_gpio.markdown +++ /dev/null @@ -1,60 +0,0 @@ ---- -layout: page -title: "BeagleBone Black GPIO Switch" -description: "Instructions on how to integrate the GPIO of a BeagleBone Black into Home Assistant as a switch." -date: 2017-01-14 10:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: beaglebone-black.png -ha_category: DIY -ha_release: 0.36 -ha_iot_class: "Local Push" ---- - -The `bbb_gpio` switch platform allows you to control the GPIOs of your [BeagleBone Black](https://beagleboard.org/black). - -## {% linkable_title Configuration %} - -To use your BeagleBone Black's GPIO in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -switch: - - platform: bbb_gpio - pins: - GPIO0_7: - name: LED Red - P9_12: - name: LED Green -``` - -{% configuration %} -pins: - description: List of used pins. - required: true - type: map - keys: - pin_name: - description: Port numbers and corresponding names. - required: true - type: map - keys: - name: - description: Friendly name to use for the frontend. - required: false - type: string - initial: - description: Initial state of the pin. - required: false - default: false - type: boolean - invert_logic: - description: If `true`, inverts the input logic to ACTIVE LOW - required: false - default: false - type: boolean -{% endconfiguration %} - -For more details about the GPIO layout, visit the [article](http://elinux.org/Beagleboard:BeagleBoneBlack) about the BeagleBone Black. diff --git a/source/_components/switch.broadlink.markdown b/source/_components/switch.broadlink.markdown index 844e6c9715e8..760aee5d2952 100644 --- a/source/_components/switch.broadlink.markdown +++ b/source/_components/switch.broadlink.markdown @@ -15,6 +15,8 @@ ha_iot_class: "Local Polling" This `Broadlink` switch platform allow to you control Broadlink [devices](http://www.ibroadlink.com/). +## {% linkable_title Configuration %} + To enable it, add the following lines to your `configuration.yaml`: ```yaml @@ -93,7 +95,7 @@ slots: Information about how to install on Windows can be found [here](/components/sensor.broadlink/#microsoft-windows-installation). -### {% linkable_title How to obtain IR/RF packets? %} +## {% linkable_title How to obtain IR/RF packets? %} Choose Call Service from the Developer Tools. Choose the service `switch.broadlink_learn_command` from the list of **Available services:** and hit **CALL SERVICE**. Press the button on your remote with in 20 seconds. The packet will be printed as a persistent notification in the States page of the web interface. @@ -173,7 +175,7 @@ switch: slot_4: 'Speaker slot' ``` -### {% linkable_title Service `broadlink_send_packet` %} +## {% linkable_title Service `broadlink_send_packet` %} You can use the service `switch.broadlink_send_packet` to directly send IR packets without the need to assign a switch entity for each command. @@ -194,7 +196,7 @@ script: - "JgBGAJSTFDUUNhM2ExITEhMSExITEhM2EzYTNhQRFBEUERQRFBEUNRQ2ExITNhMSExITNhMSExITEhM2ExITNhQ1FBEUNhMADQUAAA==" ``` -### {% linkable_title Using E-Control Remotes %} +## {% linkable_title Using E-Control Remotes %} If you already have your remotes learned on E-Control app you can use this method to "copy" them to Home Assistant. @@ -226,65 +228,71 @@ First get or learn all the remotes you want to add to Home Assistant in E-Contro 6. Install python-broadlink library: - 1. `git clone https://github.com/mjg59/python-broadlink.git` - 2. `cd python-broadlink` - 3. `sudo python setup.py install` + ```bash + git clone https://github.com/mjg59/python-broadlink.git + cd python-broadlink + sudo python setup.py install + ``` -7. Test the codes -Use the `sendcode` script you have already downloaded to test the codes you got from the device. -You need to edit the script with your RM Pro IP Address and MAC Address and with the code in HEX format. -When run the script, you know the code works when get message . -Code sent... -Not every code works. +7. Test the codes + Use the `sendcode` script you have already downloaded to test the codes you got from the device. + You need to edit the script with your RM Pro IP Address and MAC Address and with the code in HEX format. + When run the script, you know the code works when get message. + Code sent... + Not every code works. -8. Convert the HEX codes to base64 -Use [this](http://tomeko.net/online_tools/hex_to_base64.php?lang=en1) tool to convert the hex codes to base64 for use with Home Assistant. +8. Convert the HEX codes to base64. + Use [this](http://tomeko.net/online_tools/hex_to_base64.php?lang=en1) tool to convert the hex codes to base64 for use with Home Assistant. -### {% linkable_title Using iOS and Windows to Obtain Codes %} +## {% linkable_title Using iOS and Windows to Obtain Codes %} 1. Use the E-Control app to learn the codes from all of your suitable remotes. Depending on the remote, try to add useful names for the buttons and/or the remotes. This will mean that you should only have to run this process once and will help with getting them quickly into Home Assistant. Dump the files in the app by navigating to the hamburger icon, select `share and select`, then choose `Share to other phones on WLAN`. 2. Install Requirements -- Download and install Python 2.7 on your windows PC. -- Run `pip install simplejson`. You must install simplejson in the same python version you will use to run the scripts. You can ensure that the current version is installed by attempting to install again and confirming that you see "Requirement already satisfied". -- Download and install [iBackup Viewer](http://www.imactools.com/iphonebackupviewer/). -- Download [these](https://github.com/NightRang3r/Broadlink-e-control-db-dump) github files. Make sure you place them in the \Python27 path in Windows. Be sure that the getBroadlinkSharedData.py from the download is in this directory. + - Download and install Python 2.7 on your windows PC. + - Run `pip install simplejson`. You must install simplejson in the same python version you will use to run the scripts. You can ensure that the current version is installed by attempting to install again and confirming that you see "Requirement already satisfied". + - Download and install [iBackup Viewer](http://www.imactools.com/iphonebackupviewer/). + - Download [these](https://github.com/NightRang3r/Broadlink-e-control-db-dump) github files. Make sure you place them in the \Python27 path in Windows. Be sure that the getBroadlinkSharedData.py from the download is in this directory. 3. Plug your iphone into your windows PC, open iTunes and create a non-encrypted backup of your device. 4. Open iBackup viewer then select the iOS backup that you created. Navigate to the App icon and then scroll until you find e-control.app, select this. Select and extract the files jsonButton, jsonIrCode and jsonSublr; they will be located in the Documents/SharedData section. Put these in the same location as the getBroadlinkSharedData.py. 5. Now open a Command Prompt and navigate to the directory where the aforementioned files are located e.g. C:\Python27. Now run the command python getBroadlinkSharedData.py, you should see something like this: -```C:\Python27>python getBroadlinkSharedData.py -ID: 1 | Name: TV -ID: 2 | Name: Upstairs -ID: 3 | Name: Sort in order -ID: 4 | Name: Soundbar -ID: 5 | Name: TV -ID: 6 | Name: Xbox One -ID: 7 | Name: User-Defined Aircon -ID: 8 | Name: Sort in order -ID: 9 | Name: User-Defined Aircon -ID: 10 | Name: Kids Fan -ID: 11 | Name: Downstairs -ID: 12 | Name: Ceiling Fan -ID: 13 | Name: Samsung TV -ID: 14 | Name: Xbox One -ID: 15 | Name: SONY SoundBar -ID: 16 | Name: Fire TV -ID: 17 | Name: New RF Remote -``` - -6. Select the remote ID you would like to extract: -```Select accessory ID: 5 -[+] You selected: TV -[+] Dumping codes to TV.txt -``` - -7. Now there should be a file with the name of the remote you chose in the same directory ending in `.txt`. Open that up and it will contain the Base64 code required for Home Assistant. To ensure these codes work correctly you may need to add `==` to the end of the code in your config.yaml file (or wherever you have your switches). -### {% linkable_title Using Windows to Obtain Codes with Broadlink Manager %} + ```bash + C:\Python27>python getBroadlinkSharedData.py + ID: 1 | Name: TV + ID: 2 | Name: Upstairs + ID: 3 | Name: Sort in order + ID: 4 | Name: Soundbar + ID: 5 | Name: TV + ID: 6 | Name: Xbox One + ID: 7 | Name: User-Defined Aircon + ID: 8 | Name: Sort in order + ID: 9 | Name: User-Defined Aircon + ID: 10 | Name: Kids Fan + ID: 11 | Name: Downstairs + ID: 12 | Name: Ceiling Fan + ID: 13 | Name: Samsung TV + ID: 14 | Name: Xbox One + ID: 15 | Name: SONY SoundBar + ID: 16 | Name: Fire TV + ID: 17 | Name: New RF Remote + ``` + + Select the remote ID you would like to extract: + + ```bash + Select accessory ID: 5 + [+] You selected: TV + [+] Dumping codes to TV.txt + ``` + +6. Now there should be a file with the name of the remote you chose in the same directory ending in `.txt`. Open that up and it will contain the Base64 code required for Home Assistant. To ensure these codes work correctly you may need to add `==` to the end of the code in your config.yaml file (or wherever you have your switches). + +## {% linkable_title Using Windows to Obtain Codes with Broadlink Manager %} 1. Install Broadlink Manager from this SourceForge link [here](https://sourceforge.net/projects/broadlink-manager/). 2. Open the application and hit "scan" to activate your broadlink device. diff --git a/source/_components/switch.danfoss_air.markdown b/source/_components/switch.danfoss_air.markdown new file mode 100644 index 000000000000..6203a9a10411 --- /dev/null +++ b/source/_components/switch.danfoss_air.markdown @@ -0,0 +1,22 @@ +--- +layout: page +title: "Danfoss Air Switch" +description: "Instructions for how to setup Danfoss Air switches within Home Assistant." +date: 2019-02-13 13:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: danfoss_air.png +ha_category: Switch +ha_release: 0.89 +ha_iot_class: "Local Polling" +--- + +

+To get your Danfoss Air sensors working with Home Assistant, follow the instructions for the general [Danfoss Air component](/components/danfoss_air/). +

+ + +The following switches. +* **Boost:** Switch to manually activate boost. diff --git a/source/_components/switch.deconz.markdown b/source/_components/switch.deconz.markdown deleted file mode 100644 index 4a251b9fcb94..000000000000 --- a/source/_components/switch.deconz.markdown +++ /dev/null @@ -1,28 +0,0 @@ ---- -layout: page -title: "deCONZ Switches" -description: "Instructions on how to integrate Zigbee switches from deCONZ into Home Assistant." -date: 2018-07-31 23:32 -sidebar: true -comments: false -sharing: true -footer: true -logo: deconz.jpeg -ha_category: Switch -ha_release: "0.76" -ha_iot_class: "Local Push" ---- - -See the [deCONZ main component](/components/deconz/) for configuration instructions. - -Switches are devices like power plugs and sirens. - -Note that devices in the switch platform identify as lights, so there is a manually curated list that defines which "lights" are switches. - -The `entity_id` name will be `switch.device_name`, where `device_name` is defined in deCONZ. - -#### {% linkable_title Verified supported switches %} - -- Innr SP120 -- Osram Outdoor plug -- Heiman siren diff --git a/source/_components/switch.deluge.markdown b/source/_components/switch.deluge.markdown index 43afb1976f68..0d6b41864c26 100644 --- a/source/_components/switch.deluge.markdown +++ b/source/_components/switch.deluge.markdown @@ -13,7 +13,6 @@ ha_release: 0.57 ha_iot_class: "Local Polling" --- - The `deluge` switch platform allows you to control your [Deluge](http://deluge-torrent.org/) client from within Home Assistant. The platform enables you switch all your torrents in pause, and then unpause them all. To add Deluge to your installation, add the following to your `configuration.yaml` file: @@ -31,7 +30,7 @@ switch: host: required: true type: string - description: This is the IP address of your Deluge daemon, eg., 192.168.1.32. + description: This is the IP address of your Deluge daemon, e.g., 192.168.1.32. username: required: true type: string diff --git a/source/_components/switch.digital_ocean.markdown b/source/_components/switch.digital_ocean.markdown deleted file mode 100644 index dc59db6f96ea..000000000000 --- a/source/_components/switch.digital_ocean.markdown +++ /dev/null @@ -1,37 +0,0 @@ ---- -layout: page -title: "Digital Ocean Switch" -description: "Instructions on how to set up Digital Ocean switches within Home Assistant." -date: 2016-09-24 08:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: digital_ocean.png -ha_category: System Monitor -ha_release: "0.30" -ha_iot_class: "Local Polling" ---- - -The `digital_ocean` switch platform allows you to control (start/stop) your Digital Ocean droplets. - -### {% 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: - -```yaml -# Example configuration.yaml entry -switch: - - platform: digital_ocean - droplets: - - 'fedora-512mb-nyc3-01' - - 'coreos-512mb-nyc3-01' -``` - -{% configuration %} -droplets: - description: List of droplets you want to control. - required: true - type: list -{% endconfiguration %} - diff --git a/source/_components/switch.digitalloggers.markdown b/source/_components/switch.digitalloggers.markdown index 7d28962def61..6b75f331da97 100644 --- a/source/_components/switch.digitalloggers.markdown +++ b/source/_components/switch.digitalloggers.markdown @@ -13,10 +13,9 @@ ha_release: 0.35 ha_iot_class: "Local Polling" --- +The `digitalloggers` switch platform allows you to control the state of your [Digital Loggers](http://www.digital-loggers.com/dinfaqs.html) switches. -The `digitalloggers` switch platform allows you to control the state of your [Digital Loggers](http://www.digital-loggers.com/dinfaqs.html) switches. - -### {% linkable_title Configuration %} +## {% linkable_title Configuration %} To use your digitalloggers switch in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/switch.dlink.markdown b/source/_components/switch.dlink.markdown index 9511792504e2..ea148580b778 100644 --- a/source/_components/switch.dlink.markdown +++ b/source/_components/switch.dlink.markdown @@ -13,7 +13,6 @@ ha_iot_class: "Local Polling" ha_release: 0.14 --- - The `dlink` switch platform allows you to control the state of your [D-Link Wi-Fi Smart Plugs](http://us.dlink.com/product-category/home-solutions/connected-home/smart-plugs/). Supported devices (tested): diff --git a/source/_components/switch.doorbird.markdown b/source/_components/switch.doorbird.markdown deleted file mode 100644 index f2da16e96292..000000000000 --- a/source/_components/switch.doorbird.markdown +++ /dev/null @@ -1,28 +0,0 @@ ---- -layout: page -title: "DoorBird Switch" -description: "Instructions on how to integrate DoorBird video doorbell relays into Home Assistant." -date: 2017-08-06 11:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: doorbird.png -ha_category: Switch -ha_release: "0.54" -ha_iot_class: "Local Push" ---- - -The `doorbird` switch platform allows you to power connected relays and trigger the IR array in your [DoorBird](http://www.doorbird.com/) video doorbell device. - -

- You must have the [DoorBird component](/components/doorbird/) configured to use this switch. -

- -To enable this switch, add the following lines to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -switch: - - platform: doorbird -``` diff --git a/source/_components/switch.edimax.markdown b/source/_components/switch.edimax.markdown index 7a6611d77ba6..a7882b473fd1 100644 --- a/source/_components/switch.edimax.markdown +++ b/source/_components/switch.edimax.markdown @@ -12,8 +12,7 @@ ha_category: Switch ha_release: pre 0.7 --- - -This `edimax` switch platform allows you to control the state of your [Edimax](http://www.edimax.com/edimax/merchandise/merchandise_list/data/edimax/global/home_automation_smart_plug/) switches. +This `edimax` switch platform allows you to control the state of your [Edimax](https://www.edimax.com/edimax/merchandise/merchandise_list/data/edimax/global/home_automation_smart_plug/) switches. To use your Edimax switch in your installation, add the following to your `configuration.yaml` file: @@ -45,3 +44,25 @@ name: default: Edimax Smart Plug type: string {% endconfiguration %} + +## {% linkable_title Power consumption sensor %} + +Starting with [version 2 of the firmware](https://www.edimax.com/edimax/download/download/data/edimax/global/download/), the Edimax switches can also report the current and accumulated daily power consumption in their state objects. Use a [template sensor](/components/sensor.template/) to extract their values: + +{% raw %} +```yaml + - platform: template + sensors: + edimax_current_power: + friendly_name: Edimax Current power consumption + unit_of_measurement: 'W' + value_template: "{{ state_attr('switch.edimax_smart_plug', 'current_power_w') | replace('None', 0) }}" + + edimax_total_power: + friendly_name: Edimax Accumulated daily power consumption + unit_of_measurement: 'kWh' + value_template: "{{ state_attr('switch.edimax_smart_plug', 'today_energy_kwh') | replace('None', 0) }}" +``` +{% endraw %} + +Note that if the smart plug is off, these states report the string `None`. By using a `replace()` in the template, these sensors report purely numerical values. diff --git a/source/_components/switch.edp_redy.markdown b/source/_components/switch.edp_redy.markdown deleted file mode 100644 index 9f8e79841646..000000000000 --- a/source/_components/switch.edp_redy.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "EDP re:dy Switch" -description: "Instructions on how to integrate the EDP re:dy switches into Home Assistant." -date: 2018-09-04 16:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: edp_redy.png -ha_category: Switch -ha_release: "0.79" -ha_iot_class: "Cloud Polling" ---- - -See the [EDP re:dy main component](/components/edp_redy/) for configuration instructions. - -This switch platform will provide a switch per toggleable EDP re:dy device (switch, plug, etc). diff --git a/source/_components/switch.elkm1.markdown b/source/_components/switch.elkm1.markdown deleted file mode 100644 index 8ef52a09af6e..000000000000 --- a/source/_components/switch.elkm1.markdown +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: page -title: "Elk-M1 Switch" -description: "Instructions on how to integrate Elk-M1 outputs (relays)." -date: 2018-10-07 00:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: elkproducts.png -ha_release: 0.81 -ha_category: Switch -ha_iot_class: "Local Push" ---- - -The `elkm1` platform allows you to control your [Elk-M1](https://www.elkproducts.com/m1_controls.html). - -Elk-M1 outputs are represented as `switch` entities. - -

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

diff --git a/source/_components/switch.enocean.markdown b/source/_components/switch.enocean.markdown deleted file mode 100644 index f891b939306c..000000000000 --- a/source/_components/switch.enocean.markdown +++ /dev/null @@ -1,57 +0,0 @@ ---- -layout: page -title: "EnOcean Switch" -description: "Instructions on how to set up EnOcean switches within Home Assistant." -date: 2016-05-25 23:49 -sidebar: true -comments: false -sharing: true -footer: true -logo: enocean.png -ha_category: Switch -ha_release: 0.21 -ha_iot_class: "Local Push" ---- - -An EnOcean switch can take many forms. Currently, only a few types have been tested: Permundo PSC234 and Nod On SIN-2-1-01. - -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 -# Example configuration.yaml entry -switch: - - platform: enocean - id: [0x01,0x90,0x84,0x3C] -``` - -{% configuration %} -id: - description: The ID of the device. This is a 4 bytes long number. - required: true - type: list -name: - description: An identifier for the switch. - required: false - default: EnOcean Switch - type: string -channel: - description: The number of the channel (typically 0 or 1) for the output channel to switch. - required: false - default: 0 - type: integer -{% endconfiguration %} - -```yaml -# Example entries for a switch with 2 outputs (channels), e.g., the Nod On SIN-2-1-01 -switch nodon01_0: - - platform: enocean - id: [0x05,0x04,0x03,0x02] - name: enocean_nodon01_0 - channel: 0 - -switch nodon01_1: - - platform: enocean - id: [0x05,0x04,0x03,0x02] - name: enocean_nodon01_1 - channel: 1 -``` diff --git a/source/_components/switch.eufy.markdown b/source/_components/switch.eufy.markdown deleted file mode 100644 index 1a79dbd26bdd..000000000000 --- a/source/_components/switch.eufy.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Eufy Switch" -description: "Instructions on how to integrate Eufy switches into Home Assistant." -date: 2018-04-09 19:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: eufy.png -ha_category: Switch -ha_iot_class: "Local Polling" -ha_release: 0.68 ---- - -The `eufy` platform allows you to control your [Eufy](http://www.eufylife.com) switches from within Home Assistant. - -They will be automatically discovered if the [Eufy](/components/eufy/) component is enabled. - diff --git a/source/_components/switch.fibaro.markdown b/source/_components/switch.fibaro.markdown deleted file mode 100644 index ef93f7853ace..000000000000 --- a/source/_components/switch.fibaro.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Fibaro switches" -description: "Instructions on how to integrate Fibaro switches into Home Assistant." -date: 2018-11-14 23:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: fibaro.png -ha_category: Light -ha_iot_class: "Local Push" -ha_release: 0.83 ---- - -The `fibaro` platform allows you to get data from your [Fibaro](http://fibaro.com/) switches connected to your Fibaro HCL or HC2 from within Home Assistant. - -They will be automatically discovered if the `fibaro` component is loaded. diff --git a/source/_components/switch.flux.markdown b/source/_components/switch.flux.markdown index dccaf1ba9571..68e87e72f192 100644 --- a/source/_components/switch.flux.markdown +++ b/source/_components/switch.flux.markdown @@ -108,7 +108,7 @@ switch: sunset_colortemp: 3000 stop_colortemp: 1900 brightness: 200 - disable_brightness_adjust: True + disable_brightness_adjust: true mode: xy transition: 30 interval: 60 diff --git a/source/_components/switch.fritzbox.markdown b/source/_components/switch.fritzbox.markdown deleted file mode 100644 index 3a257701e5d2..000000000000 --- a/source/_components/switch.fritzbox.markdown +++ /dev/null @@ -1,29 +0,0 @@ ---- -layout: page -title: "Fritzbox Switch" -description: "Instructions on how to integrate the AVM Fritzbox switch." -date: 2017-11-12 17:10 -sidebar: true -comments: false -sharing: true -footer: true -logo: avm.png -ha_category: Switch -ha_release: 0.68 -ha_iot_class: "Local Polling" ---- - -To get AVM Fritzbox switch follow the instructions for the [Fritzbox component](/components/fritzbox/). - -### {% linkable_title Attributes %} - -The are several attributes that can be useful for automations and templates. - -| Attribute | Description | -| --------- | ----------- | -| `device_locked` | The state of the key lock at the device. -| `locked` | The state of the lock for configuring the device via the app or the Fritzbox web interface. -| `temperature_unit` | The unit of the temperature sensor (only available if the device support temperature sensor). -| `temperature` | The current temperature sensor reading (only available if the device supports temperature sensor). -| `total_consumption` | The total power consumption since the beginning of operation (only available if the device supports power meter function). -| `total_consumption_unit` | The unit of the total_consumption (only available if the device supports power meter function). diff --git a/source/_components/switch.fritzdect.markdown b/source/_components/switch.fritzdect.markdown index 88322c313fe8..269cc207b4c4 100644 --- a/source/_components/switch.fritzdect.markdown +++ b/source/_components/switch.fritzdect.markdown @@ -13,7 +13,6 @@ ha_iot_class: "Local Polling" ha_release: 0.38 --- - The `fritzdect` switch platform allows you to control the state of your [AVM FRITZ!DECT DECT-based wireless switches](https://en.avm.de/products/fritzdect/). The AVM FRITZ!DECT switches need to be paired to your Fritz!Box and then can be monitored and controlled via Home Assistant. Supported devices (tested): diff --git a/source/_components/switch.hikvisioncam.markdown b/source/_components/switch.hikvisioncam.markdown index 820a83260721..ad1cc040fba6 100644 --- a/source/_components/switch.hikvisioncam.markdown +++ b/source/_components/switch.hikvisioncam.markdown @@ -12,7 +12,6 @@ ha_category: Switch ha_release: pre 0.7 --- - This `hikvisioncam` switch platform allows you to control your motion detection setting on your [Hikvision](http://www.hikvision.com/) camera.

diff --git a/source/_components/switch.hive.markdown b/source/_components/switch.hive.markdown deleted file mode 100644 index e4ea4837975f..000000000000 --- a/source/_components/switch.hive.markdown +++ /dev/null @@ -1,28 +0,0 @@ ---- -layout: page -title: "Hive Switch" -description: "Instructions on how to integrate Hive Plugs with Home Assistant." -date: 2017-09-24 21:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: hive.png -ha_category: Switch -ha_release: 0.59 -ha_iot_class: "Cloud Polling" ---- - - -The `hive` switch platform integrates your Hive plugs into Home Assistant, enabling control of your devices. - -The platform supports the following Hive products: - -- Hive Active Plug - - -

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

- - diff --git a/source/_components/switch.hlk_sw16.markdown b/source/_components/switch.hlk_sw16.markdown deleted file mode 100644 index 8095622e0a5d..000000000000 --- a/source/_components/switch.hlk_sw16.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "HLK-SW16 Relay Module" -description: "Instructions on how to integrate HLK-SW16 relay switches into Home Assistant." -date: 2018-10-29 20:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: hlktech.jpg -ha_category: Switch -ha_release: 0.84 -ha_iot_class: "Local Push" ---- - -See the [HLK-SW16 main component](/components/hlk_sw16/) for configuration instructions. - -The HLK-SW16 is a simple 16 port relay switch. diff --git a/source/_components/switch.homekit_controller.markdown b/source/_components/switch.homekit_controller.markdown deleted file mode 100644 index d4b50659595e..000000000000 --- a/source/_components/switch.homekit_controller.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "HomeKit Switch" -description: "Instructions on how to setup HomeKit switches within Home Assistant." -date: 2017-03-19 21:08 -sidebar: true -comments: false -sharing: true -footer: true -logo: apple-homekit.png -ha_category: Switch -ha_iot_class: "Local Polling" -ha_release: 0.68 ---- - -To get your HomeKit switches working with Home Assistant, follow the instructions for the general [HomeKit controller component](/components/homekit_controller/). diff --git a/source/_components/switch.homematic.markdown b/source/_components/switch.homematic.markdown deleted file mode 100644 index 7902ae4974d2..000000000000 --- a/source/_components/switch.homematic.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Homematic Switch" -description: "Instructions on how to integrate Homematic switches within Home Assistant." -date: 2016-06-28 08:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: homematic.png -ha_category: Switch -ha_release: 0.23 -ha_iot_class: "Local Push" ---- - - -The `homematic` switch platform lets you control [Homematic](http://www.homematic.com/) switches 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 diff --git a/source/_components/switch.homematicip_cloud.markdown b/source/_components/switch.homematicip_cloud.markdown deleted file mode 100644 index aba47287c257..000000000000 --- a/source/_components/switch.homematicip_cloud.markdown +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: page -title: "HomematicIP Cloud Switch" -description: "Instructions on how to integrate HomematicIP switches within Home Assistant." -date: 2018-04-02 13:40 -sidebar: true -comments: false -sharing: true -footer: true -logo: homematicip_cloud.png -ha_category: Switch -ha_release: 0.70 -ha_iot_class: "Cloud Push" ---- - -The `homematicip_cloud` switch platform allows you to control -[HomematicIP](http://www.homematic-ip.com) switches through Home Assistant. - -Devices will be configured automatically. Please refer to the -[component](/components/homematicip_cloud/) configuration on how to setup -HomematicIP Cloud. diff --git a/source/_components/switch.hook.markdown b/source/_components/switch.hook.markdown index fbfeef75b4bd..71ef1bc45c60 100644 --- a/source/_components/switch.hook.markdown +++ b/source/_components/switch.hook.markdown @@ -14,7 +14,7 @@ ha_release: 0.34 The `hook` component allows you to control the [Hook Smart Home Hub](http://www.hooksmarthome.com/) from within Home Assistant. -Hook allows you to control cheap mains electrical outlets, like these ones at [Amazon](https://www.amazon.com/Etekcity-Wireless-Electrical-Household-Appliances/dp/B00DQELHBS). +Hook allows you to control cheap mains electrical outlets, like these ones at [Amazon](https://www.amazon.com/Etekcity-Wireless-Electrical-Household-Appliances/dp/B00DQELHBS). In short, Hook is an RF to Wi-Fi bridge, controlling devices that receive commands at 315MHz and 433MHz. Unfortunately, this does not allow Hook to determine if the command was successful, so the state is assumed. @@ -28,7 +28,7 @@ To enable this platform in your installation, add the following to your `configu ```yaml # Example configuration.yaml entry -switch: +switch: - platform: hook username: YOUR_E_MAIL_ADDRESS password: YOUR_HOOK diff --git a/source/_components/switch.hydrawise.markdown b/source/_components/switch.hydrawise.markdown index fc584f75a7e0..2fc830e844ca 100644 --- a/source/_components/switch.hydrawise.markdown +++ b/source/_components/switch.hydrawise.markdown @@ -27,7 +27,7 @@ switch: {% configuration %} watering_minutes: - description: When manual watering is enabled this will determine the length of time in minutes that irrigation zone will run. The allowed values are 5, 10, 15, 30, 45, or 60. + description: When manual watering is enabled this will determine the length of time in minutes that the irrigation zone will run. The allowed values are 5, 10, 15, 30, 45, or 60. required: false type: integer default: 15 @@ -63,5 +63,4 @@ switch: monitored_conditions: manual_watering ``` - Finish the configuration by visiting the [Hydrawise binary sensor](/components/binary_sensor.hydrawise) and [Hydrawise sensor](/components/sensor.hydrawise/) documentation. diff --git a/source/_components/switch.ihc.markdown b/source/_components/switch.ihc.markdown index 4d0125807d69..14958dd106df 100644 --- a/source/_components/switch.ihc.markdown +++ b/source/_components/switch.ihc.markdown @@ -24,7 +24,9 @@ project and setup as switch devices: - Mobile wireless relay - Dataline plug outlet -To manually configure IHC switches insert the "switches" section in your +## {% linkable_title Configuration %} + +To manually configure IHC switches insert the "switch" section in your IHC configuration: ```yaml @@ -32,14 +34,14 @@ ihc: - url: 'http://192.168.1.3' username: YOUR_USERNAME password: YOUR_PASSWORD - info: true - switches: + info: true + switch: - id: 12345 - id: 12346 ``` {% configuration %} -switches: +switch: description: List of switches to setup manually required: false type: map @@ -48,6 +50,14 @@ switches: description: The IHC resource id. required: true type: integer + on_id: + description: Optional IHC resource id that will be pulsed to turn ON this switch. + required: false + type: integer + off_id: + description: Optional IHC resource id that will be pulsed to turn OFF this switch. + required: false + type: integer name: description: The name of the component required: false diff --git a/source/_components/switch.insteon.markdown b/source/_components/switch.insteon.markdown deleted file mode 100644 index 0af789e8a3ea..000000000000 --- a/source/_components/switch.insteon.markdown +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: page -title: "Insteon Switch" -description: "Instructions on how to setup the Insteon switches locally within Home Assistant." -date: 2018-08-20 16:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: insteon.png -ha_category: Switch -ha_iot_class: "Local Push" -ha_version: 0.77 ---- - -The `insteon` switch platform lets you control your on/off switches 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 diff --git a/source/_components/switch.isy994.markdown b/source/_components/switch.isy994.markdown deleted file mode 100644 index eacf1a002dd6..000000000000 --- a/source/_components/switch.isy994.markdown +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: page -title: "ISY994 Switch" -description: "Instructions on how to integrate ISY994 switch into Home Assistant." -date: 2016-09-03 23:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: universal_devices.png -ha_category: Switch -ha_iot_class: "Local Push" ---- - -The `isy994` platform allows you to get data from your [ISY994](https://www.universal-devices.com/residential/isy994i-series/) switch from within Home Assistant. - -They will be automatically discovered if the `isy994` component is loaded. diff --git a/source/_components/switch.kankun.markdown b/source/_components/switch.kankun.markdown index 264a6b98a45a..68e715784a5b 100644 --- a/source/_components/switch.kankun.markdown +++ b/source/_components/switch.kankun.markdown @@ -12,13 +12,14 @@ ha_release: 0.36 ha_iot_class: "Local Polling" --- - The `kankun` switch platform allows you to toggle customized Kankun SP3 Wifi switches. Switches are modified to include the [json.cgi](https://github.com/homedash/kankun-json/blob/master/cgi-bin/json.cgi) script to provide an HTTP API. Details of the necessary modifications can be found [here](http://www.homeautomationforgeeks.com/openhab_http.shtml#kankun) (be sure to install the JSON version of the script as linked above). +## {% linkable_title Configuration %} + To enable it, add the following lines to your `configuration.yaml`: ```yaml diff --git a/source/_components/switch.knx.markdown b/source/_components/switch.knx.markdown index 47e9e720d4c4..5b712dc043a1 100644 --- a/source/_components/switch.knx.markdown +++ b/source/_components/switch.knx.markdown @@ -13,7 +13,6 @@ ha_release: 0.24 ha_iot_class: "Local Polling" --- - The `knx` switch component is used as in interface to switching actuators. The `knx` component must be configured correctly, see [KNX Component](/components/knx). @@ -47,4 +46,3 @@ state_address: Some KNX devices can change their state internally without any messages on the KNX bus, e.g., if you configure a timer on a channel. The optional `state_address` can be used to inform Home Assistant about these state changes. If a KNX message is seen on the bus addressed to the given state address, this will overwrite the state of the switch object. For switching actuators that are only controlled by a single group address and can't change their state internally, you don't have to configure the state address. - diff --git a/source/_components/switch.konnected.markdown b/source/_components/switch.konnected.markdown deleted file mode 100644 index 8eecdd41801a..000000000000 --- a/source/_components/switch.konnected.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Konnected Switch" -description: "Connect wired actuators to Home Assistant with Konnected and a NodeMCU ESP8266" -date: 2018-04-03 12:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: konnected.png -ha_category: Switch -ha_release: "0.70" -ha_iot_class: "Local Push" ---- - -The `konnected` switch platform allows you to actuate an alarm system siren, strobe light, buzzer or any other wired device using a [Konnected Alarm Panel board](https://konnected.io) or relay module and a NodeMCU ESP8266 WiFi module running the [open source Konnected software](https://github.com/konnected-io/konnected-security). - -See the [`konnected`](/components/konnected/) component for configuration and setup instructions. - diff --git a/source/_components/switch.lightwave.markdown b/source/_components/switch.lightwave.markdown deleted file mode 100644 index 0734a9a8370a..000000000000 --- a/source/_components/switch.lightwave.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Lightwave Switch" -description: "Instructions on how to integrate Lightwave Switches with Home Assistant." -date: 2018-12-05 18:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: lightwave.png -ha_category: Switch -ha_release: 0.84 -ha_iot_class: "Assumed State" ---- -The `lightwave` switch platform integrates your Lightwave switches into Home Assistant. -

-Configuration details for the Lightwave platform can be found on the main [Lightwave component](/components/lightwave/) page. -

\ No newline at end of file diff --git a/source/_components/switch.linode.markdown b/source/_components/switch.linode.markdown deleted file mode 100644 index f0afd3dd84bc..000000000000 --- a/source/_components/switch.linode.markdown +++ /dev/null @@ -1,34 +0,0 @@ ---- -layout: page -title: "Linode Switch" -description: "Instructions on how to set up Linode switch within Home Assistant." -date: 2017-10-20 08:00 -sidebar: true -comments: false -sharing: true -footer: true -ha_category: System Monitor -logo: linode.png -ha_release: 0.57 -ha_iot_class: "Cloud Polling" ---- - -The `linode` switch platform allows you to turn your Linode nodes on and off. - -Add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -switch: - - platform: linode - nodes: - - 'myvpsname' -``` - -{% configuration linode %} - nodes: - description: List of VPSs you want to control. - required: true - type: string -{% endconfiguration %} - diff --git a/source/_components/switch.litejet.markdown b/source/_components/switch.litejet.markdown deleted file mode 100644 index 34f90d9badbf..000000000000 --- a/source/_components/switch.litejet.markdown +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: page -title: "LiteJet Switch" -description: "Instructions on how to setup the LiteJet switches within Home Assistant." -date: 2016-10-26 13:00 -sidebar: true -comments: false -sharing: true -footer: true -ha_category: Switch -ha_release: 0.32 -ha_iot_class: "Local Polling" ---- - -To get your LiteJet switches working with Home Assistant, follow the instructions for the general [LiteJet component](/components/litejet/). diff --git a/source/_components/switch.lupusec.markdown b/source/_components/switch.lupusec.markdown deleted file mode 100644 index f526e35da2a2..000000000000 --- a/source/_components/switch.lupusec.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Lupusec Switch" -description: "Instructions on how to integrate Lupusec switches into Home Assistant." -date: 2018-10-03 16:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: lupusec.jpg -ha_category: Switch -ha_release: 0.83 -ha_iot_class: "Local Polling" ---- - -The `LUPUS-Electronics` security control panel platform allows you to control your [Lupusec](https://www.lupus-electronics.de) devices. - -This component will automatically add `Power Switches` configured in your Lupusec control panel. - -For the switches to work you have to setup your [Lupusec component](/components/lupusec/). diff --git a/source/_components/switch.lutron_caseta.markdown b/source/_components/switch.lutron_caseta.markdown deleted file mode 100644 index 100e044b1bd3..000000000000 --- a/source/_components/switch.lutron_caseta.markdown +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: page -title: "Lutron Caseta Switch" -description: "Instructions on how to setup the Lutron Caseta switches within Home Assistant." -date: 2017-04-30 09:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: lutron.png -ha_category: Switch -ha_iot_class: "Local Polling" ---- - -To get Lutron Caseta switches working with Home Assistant, follow the instructions for the general [Lutron Caseta component](/components/lutron_caseta/). - -After setup, switches will appear in Home Assistant using an `entity_id` based on the name used in the Lutron mobile app. For example, a light switch called 'Master Bathroom Vanity' will appear in Home Assistant as `switch.master_bathroom_vanity`. - -For dimmable lights including wall and plug-in dimmers, see [Lutron Caseta Light](/components/light.lutron_caseta/). - -For more information on working with switches in Home Assistant, see the [Switches component](/components/switch/). - -Available services: `switch.turn_on` and `switch.turn_off`. \ No newline at end of file diff --git a/source/_components/switch.markdown b/source/_components/switch.markdown index 6e93003ceebd..0ea76993aaa4 100644 --- a/source/_components/switch.markdown +++ b/source/_components/switch.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Switches" -description: "Instructions on how to setup your switches with Home Assistant." +description: "Instructions on how to set up your switches with Home Assistant." date: 2015-01-24 14:39 sidebar: true comments: false @@ -11,10 +11,10 @@ footer: true Keeps track which switches are in your environment, their state and allows you to control them. - * Maintains a state per switch and a combined state `all_switches`. - * Registers services `switch.turn_on`, `switch.turn_off`, and `switch.toggle` to control switches. +- Maintains a state per switch and a combined state `all_switches`. +- Registers services `switch.turn_on`, `switch.turn_off`, and `switch.toggle` to control switches. -### {% linkable_title Use the services %} +## {% linkable_title Use the services %} In the frontend open the sidebar. At the bottom, under **Developer Tools**, click **Services**. From the Service dropdown menu choose `switch.turn_on` or `switch.turn_off` from the list of available services. In the Entity dropdown menu choose or enter the entity ID you want to work with. This will enter something like the sample below into the **Service Data** field. Now hit **CALL SERVICE**. @@ -24,4 +24,4 @@ In the frontend open the sidebar. At the bottom, under **Developer Tools**, clic | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | -| `entity_id` | yes | Only act on a specific switch. Otherwise it targets all switches. +| `entity_id` | yes | Only act on a specific switch. Otherwise, it targets all switches. diff --git a/source/_components/switch.mfi.markdown b/source/_components/switch.mfi.markdown index 038413948589..19a5f58d8d49 100644 --- a/source/_components/switch.mfi.markdown +++ b/source/_components/switch.mfi.markdown @@ -12,7 +12,6 @@ ha_category: Switch ha_iot_class: "Local Polling" --- - The `mfi` switch platform to allow you to control [mFi Controllable Power Outlets](https://www.ubnt.com/mfi/mpower/). ## {% linkable_title Configuration %} diff --git a/source/_components/switch.mochad.markdown b/source/_components/switch.mochad.markdown deleted file mode 100644 index 6d9c2bba8782..000000000000 --- a/source/_components/switch.mochad.markdown +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: page -title: "Mochad Switch" -description: "Instructions on how to integrate X10 Mochad switches into Home Assistant." -date: 2016-10-20 21:13 -sidebar: true -comments: false -sharing: true -footer: true -ha_category: Switch -ha_iot_class: depends -ha_release: 0.32 ---- - -The `mochad` switch platform lets you control an X10 enabled switch device. - -## {% linkable_title Configuration %} - -To enable this sensor, you first have to set up the [mochad component](/components/mochad/) and then add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -switch: - - platform: mochad - devices: - - address: a1 - - address: a5 -``` - -{% configuration %} -address: - description: The X10 address of the switch. - required: true - type: string -name: - description: The name of the switch. - required: false - default: x10_switch_dev_*address* - type: string -comm_type: - description: pl (powerline) or rf (radio frequency). - required: false - default: pl - type: string -{% endconfiguration %} diff --git a/source/_components/switch.modbus.markdown b/source/_components/switch.modbus.markdown index 60ce92daadde..c31dc5c458a7 100644 --- a/source/_components/switch.modbus.markdown +++ b/source/_components/switch.modbus.markdown @@ -13,7 +13,6 @@ ha_release: pre 0.7 ha_iot_class: "Local Push" --- - The `modbus` switch platform allows you to control [Modbus](http://www.modbus.org/) coils or registers. ## {% linkable_title Configuration %} @@ -27,6 +26,7 @@ switch: slave: 1 coils: - name: Switch1 + hub: hub1 slave: 1 coil: 13 - name: Switch2 @@ -34,6 +34,7 @@ switch: coil: 14 registers: - name: Register1 + hub: hub1 slave: 1 register: 11 command_on: 1 @@ -46,6 +47,11 @@ coils: required: false type: map keys: + hub: + description: The name of the hub. + required: false + default: default + type: string slave: description: The number of the slave (can be omitted for tcp and udp Modbus). required: true @@ -63,6 +69,11 @@ register: required: false type: map keys: + hub_name: + description: The hub to use. + required: false + default: default + type: string slave: description: The number of the slave (can be omitted for tcp and udp Modbus). required: true @@ -86,7 +97,7 @@ register: verify_state: description: Define if is possible to readback the status of the switch. required: false - default: True + default: true type: boolean verify_register: description: Register to readback. diff --git a/source/_components/switch.mqtt.markdown b/source/_components/switch.mqtt.markdown index b5f978a0adf9..8e45fba36ce8 100644 --- a/source/_components/switch.mqtt.markdown +++ b/source/_components/switch.mqtt.markdown @@ -33,6 +33,10 @@ switch: ``` {% configuration %} +command_topic: + description: The MQTT topic to publish commands to change the switch state. + required: false + type: string name: description: The name to use when displaying this switch. required: false @@ -56,10 +60,6 @@ state_off: required: false type: string default: "OFF" -command_topic: - description: The MQTT topic to publish commands to change the switch state. - required: false - type: string availability_topic: description: The MQTT topic subscribed to receive availability (online/offline) updates. required: false @@ -103,13 +103,17 @@ value_template: description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload." required: false type: string +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation. + required: false + type: string device: - description: 'Information about the device this switch is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.' + description: "Information about the device this switch is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set." required: false type: map keys: identifiers: - description: 'A list of IDs that uniquely identify the device. For example a serial number.' + description: A list of IDs that uniquely identify the device. For example a serial number. required: false type: list, string connections: @@ -117,19 +121,19 @@ device: required: false type: list manufacturer: - description: 'The manufacturer of the device.' + description: The manufacturer of the device. required: false type: string model: - description: 'The model of the device.' + description: The model of the device. required: false type: string name: - description: 'The name of the device.' + description: The name of the device. required: false type: string sw_version: - description: 'The firmware version of the device.' + description: The firmware version of the device. required: false type: string {% endconfiguration %} @@ -140,7 +144,7 @@ Make sure that your topic matches exactly. `some-topic/` and `some-topic` are di ## {% linkable_title Examples %} -In this section you will find some real-life examples of how to use this sensor. +In this section, you will find some real-life examples of how to use this sensor. ### {% linkable_title Full configuration %} @@ -163,20 +167,20 @@ switch: retain: true ``` -For a check you can use the command line tools `mosquitto_pub` shipped with `mosquitto` to send MQTT messages. This allows you to operate your switch manually: +For a check, you can use the command line tools `mosquitto_pub` shipped with `mosquitto` to send MQTT messages. This allows you to operate your switch manually: ```bash -$ mosquitto_pub -h 127.0.0.1 -t home/bedroom/switch1 -m "ON" +mosquitto_pub -h 127.0.0.1 -t home/bedroom/switch1 -m "ON" ``` ### {% linkable_title Set the state of a device with ESPEasy %} -Assuming that you have flashed your ESP8266 unit with [ESPEasy](https://github.com/letscontrolit/ESPEasy). Under "Config" is a name ("Unit Name:") set for your device (here it's "bathroom"). A configuration for a "Controller" for MQTT with the protocol "OpenHAB MQTT" is present and the entries ("Controller Subscribe:" and "Controller Publish:") are adjusted to match your needs. In this example the topics are prefixed with "home". There is no further configuration needed as the [GPIOs](https://www.letscontrolit.com/wiki/index.php/GPIO) can be controlled with MQTT directly. +Assuming that you have flashed your ESP8266 unit with [ESPEasy](https://github.com/letscontrolit/ESPEasy). Under "Config" is a name ("Unit Name:") set for your device (here it's "bathroom"). A configuration for a "Controller" for MQTT with the protocol "OpenHAB MQTT" is present and the entries ("Controller Subscribe:" and "Controller Publish:") are adjusted to match your needs. In this example, the topics are prefixed with "home". There is no further configuration needed as the [GPIOs](https://www.letscontrolit.com/wiki/index.php/GPIO) can be controlled with MQTT directly. Manually you can set pin 13 to high with `mosquitto_pub` or another MQTT tool: ```bash -$ mosquitto_pub -h 127.0.0.1 -t home/bathroom/gpio/13 -m "1" +mosquitto_pub -h 127.0.0.1 -t home/bathroom/gpio/13 -m "1" ``` The configuration will look like the example below: @@ -193,4 +197,3 @@ switch: payload_off: "0" ``` {% endraw %} - diff --git a/source/_components/switch.mysensors.markdown b/source/_components/switch.mysensors.markdown index 91d5c2e17aa0..d4a360f87ec5 100644 --- a/source/_components/switch.mysensors.markdown +++ b/source/_components/switch.mysensors.markdown @@ -8,16 +8,20 @@ comments: false sharing: true footer: true logo: mysensors.png -ha_category: DIY +ha_category: + - DIY + - Switch featured: false ha_iot_class: "Local Push" --- Integrates MySensors switches into Home Assistant. See the [main component] for configuration instructions. +## {% linkable_title Supported actuator types %} + The following actuator types are supported: -##### MySensors version 1.4 and higher +### {% linkable_title MySensors version 1.4 and higher %} S_TYPE | V_TYPE ---------|------------------- @@ -28,7 +32,7 @@ S_LIGHT | V_LIGHT S_LOCK | V_LOCK_STATUS S_IR | V_IR_SEND, V_LIGHT -##### MySensors version 1.5 and higher +### {% linkable_title MySensors version 1.5 and higher %} S_TYPE | V_TYPE -------------|---------------------- @@ -40,7 +44,7 @@ S_SOUND | V_ARMED S_VIBRATION | V_ARMED S_MOISTURE | V_ARMED -##### MySensors version 2.0 and higher +### {% linkable_title MySensors version 2.0 and higher %} S_TYPE | V_TYPE ----------------|--------- @@ -50,7 +54,7 @@ All V_TYPES for each S_TYPE above are required to activate the actuator for the For more information, visit the [serial api] of MySensors. -### {% linkable_title Services %} +## {% linkable_title Services %} The MySensors switch platform exposes a service to change an IR code attribute for an IR switch device and turn the switch on. The IR switch will automatically be turned off after being turned on, if `optimistic` is set to `true` in the [config](/components/mysensors/#configuration) for the MySensors component. This will simulate a push button on a remote. If `optimistic` is `false`, the MySensors device will have to report its updated state to reset the switch. See the [example sketch](#ir-switch-sketch) for the IR switch below. @@ -63,7 +67,7 @@ The service can be used as part of an automation script. For example: ```yaml # Example configuration.yaml automation entry automation: - - alias: turn hvac on + - alias: Turn HVAC on trigger: platform: time at: '5:30:00' @@ -73,7 +77,7 @@ automation: data: V_IR_SEND: '0xC284' # the IR code to send - - alias: turn hvac off + - alias: Turn HVAC off trigger: platform: time at: '0:30:00' @@ -84,9 +88,10 @@ automation: V_IR_SEND: '0xC288' # the IR code to send ``` -### {% linkable_title Example sketches %} +## {% linkable_title Example sketches %} + +### {% linkable_title Switch sketch %} -#### {% linkable_title Switch sketch %} ```cpp /* * Documentation: http://www.mysensors.org @@ -131,7 +136,8 @@ void incomingMessage(const MyMessage &message) } ``` -#### {% linkable_title IR switch sketch %} +### {% linkable_title IR switch sketch %} + ```cpp /* * Documentation: http://www.mysensors.org diff --git a/source/_components/switch.mystrom.markdown b/source/_components/switch.mystrom.markdown index 8d2f93dc439d..1d7627af32f9 100644 --- a/source/_components/switch.mystrom.markdown +++ b/source/_components/switch.mystrom.markdown @@ -13,8 +13,7 @@ ha_release: 0.9 ha_iot_class: "Local Polling" --- - -The `mystrom` switch platform allows you to control the state of your [myStrom](https://mystrom.ch/en/) switches. The built-in sensor is measuring the power consumption while the switch is on. +The `mystrom` switch platform allows you to control the state of your [myStrom](https://mystrom.ch/en/) switches. The built-in sensor is measuring the power consumption while the switch is on. ## {% linkable_title Setup %} @@ -24,7 +23,6 @@ Make sure that you have enabled the REST API under **Advanced** in the web front

- ## {% linkable_title Configuration %} To use your myStrom switch in your installation, add the following to your `configuration.yaml` file: @@ -53,18 +51,18 @@ Check if you are able to access the device located at `http://IP_ADRRESS`. The d ```bash $ curl -X GET -H "Content-Type: application/json" http://IP_ADDRESS/report { - "power": 0, - "relay": false + "power": 0, + "relay": false } ``` or change its state: ```bash -$ curl -G -X GET http://IP_ADDRESS/relay -d 'state=1' +curl -G -X GET http://IP_ADDRESS/relay -d 'state=1' ``` -### {% linkable_title Get the current power consumption %} +## {% linkable_title Get the current power consumption %} The switch is measuring the current power consumption. To expose this as a sensor use a [`template` sensor](/components/sensor.template/). @@ -80,4 +78,3 @@ sensor: value_template: "{{ states.switch.office.attributes.current_power_w }}" ``` {% endraw %} - diff --git a/source/_components/switch.neato.markdown b/source/_components/switch.neato.markdown deleted file mode 100644 index 2f0e1e8d1eed..000000000000 --- a/source/_components/switch.neato.markdown +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: page -title: "Neato Robotics Switch" -description: "Instructions on how to integrate a Neato Botvac Connected switch within Home Assistant." -date: 2016-10-19 17:10 -sidebar: true -comments: false -sharing: true -footer: true -logo: neato.png -ha_category: Switch -ha_release: 0.31 ---- - -The `neato` switch platform allows you to enable or disable the schedule of your [Neato Botvac Connected](https://www.neatorobotics.com/robot-vacuum/botvac-connected-series/botvac-connected/). - -To add `neato` switch to your installation, follow instructions in [Neato component](/components/neato/). diff --git a/source/_components/switch.pencom.markdown b/source/_components/switch.pencom.markdown new file mode 100644 index 000000000000..7718b88d2a78 --- /dev/null +++ b/source/_components/switch.pencom.markdown @@ -0,0 +1,69 @@ +--- +layout: page +title: "Pencom" +description: "How to use Pencom Designs 8 channel relay boards." +date: 2018-10-05 23:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: pencom.png +ha_category: Switch +ha_release: 0.85 +ha_iot_class: "Local Polling" +--- + +[Pencom Design](http://www.pencomdesign.com/) is a manufacturer of computer-controlled relay, I/O and custom boards for commercial and industrial applications. This interface to [Pencom's Relay Control Boards](https://www.pencomdesign.com/relay-boards/) is designed to work over an ethernet to serial adapter (NPort). Each switch (relay) can be turned on/off, and the state of the relay can be read. + +## {% linkable_title Configuration %} + +The Pencom relays can be daisy-chained to allow for up to 8 boards. + +``` yaml +# Example configuration.yaml entry +switch: + - platform: pencom + host: host.domain.com + port: 4001 + boards: 2 + relays: + - name: "Irrigation" + addr: 0 + - name: "Upper Entry Door" + addr: 1 + - name: "Fountain" + addr: 0 + board: 2 +``` + +{% configuration %} +host: + description: The IP address of the ethernet to serial adapter. It is assumed that the adapter has been preconfigured. + required: true + type: string +port: + description: The port of the ethernet to serial adapter. + required: true + type: port (positive integer between 1-65535) +boards: + description: Number of boards daisy-chained together (default is 1). + required: false + type: int between 1 and 8 +relays: + description: List of relays. + required: true + type: list + keys: + name: + description: The name of the switch (component). + required: true + type: string + addr: + description: The relay on the board starting with 0. + required: true + type: int + board: + description: The board number (defaults to 1). + required: false + type: int between 1 and 8 +{% endconfiguration %} diff --git a/source/_components/switch.pilight.markdown b/source/_components/switch.pilight.markdown index 40bdbd0a86b9..89eee313b687 100644 --- a/source/_components/switch.pilight.markdown +++ b/source/_components/switch.pilight.markdown @@ -68,7 +68,7 @@ switches: Variables for the different codes (`on_code` and `off_code`): -- **protocol** (*Required*): Protocol to use, eg. `intertechno_old` or `daycom`. +- **protocol** (*Required*): Protocol to use, e.g., `intertechno_old` or `daycom`. - **systemcode** (*Optional*): The systemcode of the device. - **unit** (*Optional*): The unit to use (is equivalent to `pilight-send --unit`). - **unitcode** (*Optional*): The unitcode to use (is equivalent to `pilight-send --unitcode`). diff --git a/source/_components/switch.qwikswitch.markdown b/source/_components/switch.qwikswitch.markdown deleted file mode 100644 index 805e47d5fe5c..000000000000 --- a/source/_components/switch.qwikswitch.markdown +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: page -title: "QwikSwitch Switch" -description: "Instructions on how to integrate QwikSwitch relays into Home Assistant." -date: 2016-05-04 00:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: qwikswitch.png -ha_category: Switch -ha_iot_class: "Local Push" -ha_release: "0.20" ---- - - -The `qwikswitch` platform allows you to control your [QwikSwitch](http://www.qwikswitch.co.za/) relays as switches from within Home Assistant. - -If the device name in the QS Mobile application ends with `Switch` it will be created as a switch, otherwise as a [light](/components/light.qwikswitch/). - -The platform is configured through the [QwikSwitch component](/components/qwikswitch/). diff --git a/source/_components/switch.rachio.markdown b/source/_components/switch.rachio.markdown deleted file mode 100644 index f9da8e15d1f5..000000000000 --- a/source/_components/switch.rachio.markdown +++ /dev/null @@ -1,51 +0,0 @@ ---- -layout: page -title: "Rachio Switch" -description: "Instructions on how to use Rachio switches with Home Assistant." -date: 2018-06-23 16:09 -sidebar: true -comments: false -sharing: true -footer: true -logo: rachio.png -ha_category: Irrigation -ha_iot_class: "Cloud Push" -ha_release: 0.46 ---- - -The `rachio` switch platform allows you to toggle zones connected to your [Rachio irrigation system](http://rachio.com/) on and off. - -Once configured, a switch will be added for every zone that is enabled on every controller in the account provided, as well as a switch to toggle each controller's standby mode. - -They will be automatically added if the [Rachio component](/components/rachio/) is loaded. - -## {% linkable_title Examples %} - -In this section, you find some real-life examples of how to use this switch. - -### {% linkable_title `groups.yaml` example %} - -```yaml -irrigation: - name: Irrigation - icon: mdi:water-pump - view: true - entities: - - group.zones_front - - group.zones_back - - switch.side_yard - -zones_front: - name: Front Yard - view: false - entities: - - switch.front_bushes - - switch.front_yard - -zones_back: - name: Back Yard - view: false - entities: - - switch.back_garden - - switch.back_porch -``` diff --git a/source/_components/switch.rainmachine.markdown b/source/_components/switch.rainmachine.markdown deleted file mode 100644 index 982220ccacb5..000000000000 --- a/source/_components/switch.rainmachine.markdown +++ /dev/null @@ -1,36 +0,0 @@ ---- -layout: page -title: "RainMachine Switch" -description: "Instructions on how to use RainMachine switches with Home Assistant." -date: 2017-08-14 13:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: rainmachine.png -ha_category: Irrigation -ha_iot_class: "Cloud Polling" -ha_release: 0.51 ---- - -The `rainmachine` switch platform allows you to control programs and zones -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/) -configured to use this platform. After configuring that component, switches will -automatically appear. -

- -## {% linkable_title Controlling Your Device %} - -After Home Assistant loads, new switches will be added for every enabled -program and zone. These work as expected: - -- Program On/Off: starts/stops a program -- Zone On/Off: starts/stops a zone (using the `zone_run_time` parameter to -determine how long to run for) - -Programs and zones are linked. While a program is running, you will see both -the program and zone switches turned on; turning either one off will turn the -other one off (just like in the web app). diff --git a/source/_components/switch.raspihats.markdown b/source/_components/switch.raspihats.markdown deleted file mode 100644 index 37f31ad59a43..000000000000 --- a/source/_components/switch.raspihats.markdown +++ /dev/null @@ -1,121 +0,0 @@ ---- -layout: page -title: "Raspihats Switch" -description: "Instructions on how to integrate Raspihats add-on boards for Raspberry Pi into Home Assistant as a switch." -date: 2017-05-15 04:20 -sidebar: true -comments: false -sharing: true -footer: true -logo: raspihats.png -ha_category: DIY -ha_release: 0.45 -ha_iot_class: "Local Push" ---- - - -The `raspihats` switch platform allows you to control the digital outputs of your [raspihats](http://www.raspihats.com/) boards. - -## {% linkable_title Configuration %} - -To use your raspihats boards in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -switch: - - platform: raspihats - i2c_hats: - - board: DI6acDQ6rly - address: 0x60 - channels: - - index: 0 - name: Fan Office - invert_logic: true - initial_state: true - - index: 1 - name: Light Office -``` - -{% configuration %} -i2c_hats: - description: An array of used I2C-HATs. - required: false - type: list - keys: - board: - description: The board name. - required: true - type: string - address: - description: The board I2C address as HEX value. - required: true - type: string - channels: - description: An array of used digital input channels. - required: true - type: list - keys: - index: - description: The digital input channel index. - required: true - type: integer - name: - description: The friendly name to use for the frontend. - required: true - type: string - invert_logic: - description: Inverts the input logic. - required: false - default: false - type: boolean - initial_state: - description: "The initial state, can be either `true` or `false`. `none` means no state is forced on the corresponding digital output when this switch is instantiated." - required: false - default: None - type: boolean -{% endconfiguration %} - -## {% linkable_title Directions for installing smbus support on Raspberry Pi %} - -Enable I2c interface with the Raspberry Pi configuration utility: - -```bash -# pi user environment: Enable i2c interface -$ sudo raspi-config -``` - -Select `Interfacing options->I2C` choose `` and hit `Enter`, then go to `Finish`. - -Install dependencies for use the `smbus-cffi` module and enable your _homeassistant_ user to join the _i2c_ group: - -```bash -# pi user environment: Install i2c dependencies and utilities -$ sudo apt-get install build-essential libi2c-dev i2c-tools python-dev libffi-dev - -# pi user environment: Add homeassistant user to the i2c group -$ sudo usermod -a -G i2c homeassistant -``` - -### {% linkable_title Check the i2c address of the sensor %} - -After installing `i2c-tools`, a new utility is available to scan the addresses of the connected sensors, so you can see the sensor address: - -```bash -$ /usr/sbin/i2cdetect -y 1 -``` - -It will output a table like this: - -```text - 0 1 2 3 4 5 6 7 8 9 a b c d e f -00: -- -- -- -- -- -- -- -- -- -- -- -- -- -10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -20: -- -- -- 23 -- -- -- -- -- -- -- -- -- -- -- -- -30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -40: 40 -- -- -- -- -- UU -- -- -- -- -- -- -- -- -- -50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -70: -- -- -- -- -- -- -- 77 -``` - -For more details about the Raspihats add-on boards for Raspberry Pi, visit [raspihats.com](http://www.raspihats.com/). diff --git a/source/_components/switch.raspyrfm.markdown b/source/_components/switch.raspyrfm.markdown new file mode 100644 index 000000000000..0bbd4ac403e3 --- /dev/null +++ b/source/_components/switch.raspyrfm.markdown @@ -0,0 +1,123 @@ +--- +layout: page +title: "RaspyRFM Switch" +description: "Instructions on how to integrate RaspyRFM switches into Home Assistant." +date: 2018-12-08 +sidebar: true +comments: false +sharing: true +footer: true +logo: seegelsysteme.png +ha_category: Switch +ha_release: 0.85 +ha_iot_class: "Assumed State" +--- + +The `raspyrfm` component adds support for cheap RC 433 MHz outlets via one of the supported gateways. + +Initially, this component was created to support the Simple Solutions `ConnAir` gateway which has been discontinued. There are custom alternatives that reimplemented the protocol used by the ConnAir though like this [ConnAir emulator](https://github.com/Phunkafizer/RaspyRFM/blob/master/connair.py) which can be used in conjunction with the [RaspyRFM-II](https://www.seegel-systeme.de/produkt/raspyrfm-ii) RC module for a Raspberry Pi. + +Other vendors of 433 MHz RC outlets have also created gateways that use a very similar protocol and can also be used with this component like the Intertechno [ITGW-433 LAN Gateway](https://www.intertechno24.de/LAN-Gateway/Gateway-ITGW-433.html). + +## {% linkable_title Configuration %} + +```yaml +# Example configuration.yaml entry +switch: + platform: raspyrfm + switches: + - controlunit_manufacturer: Intertechno + controlunit_model: CMR 1000 + channel_config: # Note that keys used here vary between control units + master: A + slave: 1 +``` + +{% configuration %} +gateway_manufacturer: + description: Manufacturer of the gateway. + required: false + default: Seegel Systeme + type: string +gateway_model: + description: Model of the gateway. + required: false + default: RaspyRFM + type: string +host: + description: Host of the gateway. + required: false + default: 127.0.0.1 + type: string +port: + description: Port of the gateway. + required: false + default: Depends on the gateway model. + type: integer +switches: + description: List of switches that can be controlled with this gateway. + required: true + type: list + keys: + name: + description: Name for the device. + required: false + default: Unnamed Device + type: string + controlunit_manufacturer: + description: Manufacturer of the control unit. + required: true + type: string + controlunit_model: + description: Model of the control unit. + required: true + type: string + channel_config: + description: Channel configuration of the control unit. The exact keys needed depend on the control unit manufacturer and model. + required: true + type: dict +{% endconfiguration %} + +## {% linkable_title Device support %} + +Have a look at the underlying library [raspyrfm-client](https://github.com/markusressel/raspyrfm-client) to check what gateways and control units (outlets) are supported. + +## {% linkable_title Channel configuration %} + +Depending on the control unit the channel config can have varying formats. Have a look at the underlying library [raspyrfm-client](https://github.com/markusressel/raspyrfm-client) to find out about a specific model. + +## {% linkable_title Switch state %} + +Initially, the state of a switch is unknown. When the switch is turned on or off (via frontend) the state is known and will be shown in the frontend. + +

+Note that due to the way those cheap RC units work it is **not possible to query their current state**. Therefore the only way to preserve a consistent state within Home Assistant is to only use Home Assistant as the controller. +

+ +## {% linkable_title Full example %} + +```yaml +switch: + platform: raspyrfm + gateway_manufacturer: Seegel Systeme + gateway_model: RaspyRFM + host: 127.0.0.1 # Optional + port: 49880 # Optional + switches: + - name: My Switch + controlunit_manufacturer: Intertechno + controlunit_model: CMR 1000 + channel_config: + master: A + slave: 1 + - name: My other Switch + controlunit_manufacturer: Brennenstuhl + controlunit_model: RCS 1000 N Comfort + channel_config: + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 + CH: A +``` diff --git a/source/_components/switch.recswitch.markdown b/source/_components/switch.recswitch.markdown index e5f1ba62fc39..04cda5bcea89 100644 --- a/source/_components/switch.recswitch.markdown +++ b/source/_components/switch.recswitch.markdown @@ -17,10 +17,12 @@ ha_iot_class: "Local Polling" The `recswitch` switch platform allows you to control the Ankuoo Rec Switch devices. Supported devices (tested): + - Ankuoo RecSwitch MS6126 - Lumitek CSW201 NEO WiFi +- MALMBERGS CSW201 -### {% linkable_title Configuration %} +## {% linkable_title Configuration %} To enable this switch, add the following lines to your `configuration.yaml`: diff --git a/source/_components/switch.rest.markdown b/source/_components/switch.rest.markdown index 8a74470eacf2..8ba4f4584b99 100644 --- a/source/_components/switch.rest.markdown +++ b/source/_components/switch.rest.markdown @@ -72,6 +72,11 @@ headers: description: The headers for the request. required: false type: list, string +verify_ssl: + description: Verify the SSL certificate of the endpoint. + required: false + type: boolean + default: true {% endconfiguration %}

@@ -98,6 +103,7 @@ switch: is_on_template: '{{ value_json.is_active }}' headers: Content-Type: application/json + verify_ssl: true ``` {% endraw %} diff --git a/source/_components/switch.rflink.markdown b/source/_components/switch.rflink.markdown index 0b8840479e28..10d6625ed1e6 100644 --- a/source/_components/switch.rflink.markdown +++ b/source/_components/switch.rflink.markdown @@ -12,107 +12,137 @@ ha_category: Switch ha_release: 0.38 --- -The `rflink` component support 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). +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/). +First, you have to set up your [RFLink hub](/components/rflink/). -The RFLink component does not know the difference between a `switch` and a `light`. Therefore all switchable devices are automatically added as `light` by default. +The RFLink component does not know the difference between a `switch`, a `binary_sensor` and a `light`. Therefore all switchable devices are automatically added as `light` by default. -RFLink switch/light ID's are composed of: protocol, id, switch. For example: `newkaku_0000c6c2_1`. +RFLink binary_sensor/switch/light ID's are composed of: protocol, id, switch/channel. For example: `newkaku_0000c6c2_1`. -Once the ID of a switch is known it can be used to configure it as a switch type in HA, for example to add it to a different group, hide it or configure a nice name. +Once the ID of a switch is known, it can be used to configure it as a switch type in HA and, for example, to add it to a different group, hide it or configure a nice name. -Configuring a device as switch with a nice name: +Configuring devices as switch : ```yaml # Example configuration.yaml entry switch: - platform: rflink - device_defaults: - fire_event: true - signal_repetitions: 2 - devices: - newkaku_0000c6c2_1: - name: Ceiling fan - conrad_00785c_0a: - name: Motion sensor kitchen - + - platform: rflink + devices: + newkaku_0000c6c2_1: {} + conrad_00785c_0a: {} ``` {% configuration %} device_defaults: - description: The defaults for all listed devices. + description: The defaults for the devices. required: false - type: list + type: map keys: fire_event: - description: Set default `fire_event` for Rflink switch devices (see below). + description: Set default `fire_event` for RFLink switch devices (see below). required: false + default: False type: boolean signal_repetitions: - description: Set default `signal_repetitions` for Rflink switch devices (see below). + description: Set default `signal_repetitions` for RFLink switch devices (see below). required: false + default: 1 type: integer devices: - description: A list of devices with their name to use in the frontend. + description: A list of switches. required: false type: list keys: - name: - description: Name for the device. - required: false - default: Rflink ID - type: string - aliases: - description: (deprecated) Alternative Rflink ID's this device is known by. - required: false - type: [list, string] - group_aliases: - description: "(deprecated) `aliases` which only respond to group commands." - required: false - type: [list, string] - no_group_aliases: - description: "(deprecated) `aliases` which do not respond to group commands." - required: false - type: [list, string] - fire_event: - description: Fire a `button_pressed` event if this device is turned on or off. - required: false - default: false - type: boolean - signal_repetitions: - description: Set default `signal_repetitions` for RFLink switch devices (see below). - required: false - default: 1 - type: integer - group: - description: Allow light to respond to group commands (ALLON/ALLOFF). - required: false - default: true - type: boolean + rflink_ids: + description: RFLink ID of the device + required: true + type: map + keys: + name: + description: Name for the device. + required: false + default: RFLink ID + type: string + aliases: + description: Alternative RFLink ID's this device is known by. + required: false + type: [list, string] + group_aliases: + description: "`aliases` which only respond to group commands." + required: false + type: [list, string] + no_group_aliases: + description: "`aliases` which do not respond to group commands." + required: false + type: [list, string] + fire_event: + description: Fire a `button_pressed` event if this device is turned on or off. + required: false + default: false + type: boolean + signal_repetitions: + description: Set default `signal_repetitions` for RFLink switch devices (see below). + required: false + default: 1 + type: integer + group: + description: Allow light to respond to group commands (ALLON/ALLOFF). + required: false + default: true + type: boolean + 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] {% endconfiguration %} -### {% linkable_title Switch state %} +## {% linkable_title Switch state %} -Initially the state of a switch is unknown. When the switch is turned on or off (via frontend or wireless remote) the state is known and will be shown in the frontend. +Initially, the state of a switch is unknown. When the switch is turned on or off (via frontend or wireless remote) the state is known and will be shown in the frontend. Sometimes a switch is controlled by multiple wireless remotes, each remote has its own code programmed in the switch. To allow tracking of the state when switched via other remotes add the corresponding remote codes as aliases: ```yaml # Example configuration.yaml entry switch: - platform: rflink - devices: - newkaku_0000c6c2_1: - name: Ceiling fan - icon: mdi:fan - aliases: - - newkaku_000000001_2 - - kaku_000001_a + - platform: rflink + devices: + newkaku_0000c6c2_1: + name: Ceiling fan + aliases: + - newkaku_000000001_2 + - kaku_000001_a ``` -Any on/off command from any alias ID updates the current state of the switch. However when sending a command through the frontend only the primary ID is used. +Any on/off command from any alias ID updates the current state of the switch. However, when sending a command through the frontend only the primary ID is used. -### {% linkable_title Device support %} +## {% linkable_title Device support %} See [device support](/components/rflink/#device-support) + +### {% linkable_title Additional configuration examples %} + +Multiple switches with signal repetitions and custom names + +```yaml +# Example configuration.yaml entry +switch: + - platform: rflink + device_defaults: + fire_event: true + signal_repetitions: 2 + devices: + newkaku_0000c6c2_1: + name: Ceiling fan + conrad_00785c_0a: + name: Motion sensor kitchen +``` diff --git a/source/_components/switch.rfxtrx.markdown b/source/_components/switch.rfxtrx.markdown index 02094e099d53..669ee3770f75 100644 --- a/source/_components/switch.rfxtrx.markdown +++ b/source/_components/switch.rfxtrx.markdown @@ -14,6 +14,8 @@ ha_release: 0.7.5 The `rfxtrx` platform support switches that communicate in the frequency range of 433.92 MHz. +## {% linkable_title Configuration %} + First you have to set up your [rfxtrx hub](/components/rfxtrx/). The easiest way to find your switches is to add this to your `configuration.yaml`: @@ -21,10 +23,10 @@ The easiest way to find your switches is to add this to your `configuration.yaml # Example configuration.yaml entry switch: platform: rfxtrx - automatic_add: True + automatic_add: true ``` -Launch your Home Assistant and go the website. +Launch your Home Assistant and go to the website. Push your remote and your device should be added:

@@ -54,7 +56,7 @@ devices: required: true type: string fire_event: - description: Fires an event even if the state is the same as before, for example a doorbell switch. Can also be used for automations. + description: Fires an event even if the state is the same as before, for example, a doorbell switch. Can also be used for automations. required: false default: false type: boolean @@ -64,17 +66,17 @@ automatic_add: 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. + description: Because the RFXtrx device sends its actions via radio and from most receivers, it's impossible to know if the signal was received or not. Therefore you can configure the switch to try to send each signal repeatedly. required: false type: integer {% endconfiguration %}

-This component and the [rfxtrx binary sensor](/components/binary_sensor.rfxtrx/) can steal each other's devices when setting the `automatic_add` configuration parameter to `true`. Set `automatic_add` only when you have some devices to add to your installation, otherwise leave it to `False`. +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`.

-If a device ID consists of only numbers, please make sure to surround it with quotes. +If a device ID consists of only numbers, please make sure to surround it with quotes. This is a known limitation in YAML, because the device ID will be interpreted as a number otherwise.

@@ -90,7 +92,7 @@ If you need to generate codes for switches you can use a template (useful for ex ``` - Use this code to add a new switch in your configuration.yaml -- Launch your Home Assistant and go the website. +- Launch your Home Assistant and go to the website. - Enable learning mode on your switch (i.e. push learn button or plug it in a wall socket) - Toggle your new switch in the Home Assistant interface @@ -102,7 +104,7 @@ Basic configuration with 3 devices: # Example configuration.yaml entry switch: platform: rfxtrx - automatic_add: False + automatic_add: false signal_repetitions: 2 devices: 0b1100ce3213c7f210010f70: @@ -111,7 +113,7 @@ switch: name: Movment2 0b1111e003af16aa10000060: name: Door - fire_event: True + fire_event: true ``` Light hallway if doorbell is pressed (when is sun down): @@ -120,7 +122,7 @@ Light hallway if doorbell is pressed (when is sun down): # Example configuration.yaml entry switch: platform: rfxtrx - automatic_add: False + automatic_add: false devices: 0710014c440f0160: name: Hall @@ -129,7 +131,7 @@ switch: fire_event: true automation: - - alias: Switch light on when door bell rings if sun is below horizon and light was off + - alias: Switch the light on when doorbell rings if the sun is below the horizon and the light was off trigger: platform: event event_type: button_pressed @@ -154,7 +156,7 @@ Use remote to enable scene (using event_data): # Example configuration.yaml entry switch: platform: rfxtrx - automatic_add: False + automatic_add: false devices: 0b1100ce3213c7f210010f70: name: Light1 diff --git a/source/_components/switch.rpi_gpio.markdown b/source/_components/switch.rpi_gpio.markdown deleted file mode 100644 index 901734b1ee04..000000000000 --- a/source/_components/switch.rpi_gpio.markdown +++ /dev/null @@ -1,64 +0,0 @@ ---- -layout: page -title: "Raspberry Pi GPIO Switch" -description: "Instructions on how to integrate the GPIO of a Raspberry Pi into Home Assistant as a switch." -date: 2015-08-07 14:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: raspberry-pi.png -ha_category: DIY -ha_release: pre 0.7 -ha_iot_class: "Local Push" ---- - - -The `rpi_gpio` switch platform allows you to control the GPIOs of your [Raspberry Pi](https://www.raspberrypi.org/). - -## {% linkable_title Configuration %} - -To use your Raspberry Pi's GPIO in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -switch: - - platform: rpi_gpio - ports: - 11: Fan Office - 12: Light Desk -``` - -{% 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. - -

-Note that a pin managed by HASS is expected to be exclusive to HASS. -

- -A common question is what does Port refer to, this number is the actual GPIO # not the pin #. -For example, if you have a relay connected to pin 11 its GPIO # is 17. - -```yaml -# Example configuration.yaml entry -switch: - - platform: rpi_gpio - ports: - 17: Speaker Relay -``` diff --git a/source/_components/switch.rpi_rf.markdown b/source/_components/switch.rpi_rf.markdown index 0c7b52f53b18..1bc16d72f7fd 100644 --- a/source/_components/switch.rpi_rf.markdown +++ b/source/_components/switch.rpi_rf.markdown @@ -13,7 +13,6 @@ ha_release: 0.19 ha_iot_class: "Assumed state" --- - The `rpi_rf` switch platform allows you to control devices over 433/315MHz LPD/SRD signals with generic low-cost GPIO RF modules on a [Raspberry Pi](https://www.raspberrypi.org/). Interoperable with codes sniffed via [the rpi-rf module](https://pypi.python.org/pypi/rpi-rf) or [rc-switch](https://github.com/sui77/rc-switch). @@ -72,11 +71,11 @@ switches: default: 1 type: integer pulselength: - description: Pulselength + description: Pulselength. required: false type: integer signal_repetitions: - description: Number of times to repeat transmission + description: Number of times to repeat transmission. required: false default: 10 type: integer diff --git a/source/_components/switch.scsgate.markdown b/source/_components/switch.scsgate.markdown deleted file mode 100644 index 1f0cdb6cf840..000000000000 --- a/source/_components/switch.scsgate.markdown +++ /dev/null @@ -1,34 +0,0 @@ ---- -layout: page -title: "SCSGate Switch" -description: "Instructions on how to integrate SCSGate switches into Home Assistant." -date: 2016-01-31 22:15 -sidebar: true -comments: false -sharing: true -footer: true -logo: bus_scs.png -ha_category: Switch -ha_release: 0.13 -ha_iot_class: "Local Polling" ---- - -The SCSGate device can control switches of the BTicino MyHome system. - -To enable SCSGate switches in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -switch: - - platform: scsgate - devices: - living_room: - scs_id: XXXXX -``` - -{% 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.skybell.markdown b/source/_components/switch.skybell.markdown deleted file mode 100644 index 8bf27738c332..000000000000 --- a/source/_components/switch.skybell.markdown +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: page -title: "Skybell Switch" -description: "Instructions on how to integrate your Skybell HD devices within Home Assistant." -date: 2017-10-03 16:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: skybell.png -ha_category: Switch -ha_release: 0.56 -ha_iot_class: "Cloud Polling" ---- - -To get your [Skybell.com](https://skybell.com/) switches working within Home Assistant, please follow the instructions for the general [Skybell component](/components/skybell). - -## {% linkable_title Configuration %} - -Once you have enabled the [Skybell component](/components/skybell), add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -switch: - - platform: skybell - monitored_conditions: - - do_not_disturb - - motion_sensor -``` - -{% configuration %} -monitored_conditions: - description: Conditions to display in the frontend. - required: true - type: list - keys: - do_not_disturb: - description: Control the state of your doorbells indoor chime. - motion_sensor: - description: Control the state of your doorbells motion sensor. -{% endconfiguration %} diff --git a/source/_components/switch.smappee.markdown b/source/_components/switch.smappee.markdown deleted file mode 100644 index 0576738e51ae..000000000000 --- a/source/_components/switch.smappee.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Smappee Switch" -description: "Instructions on how to integrate Smappee Comfort Plug into Home Assistant." -date: 2018-02-26 08:37 -sidebar: true -comments: false -sharing: true -footer: true -logo: smappee.png -ha_release: "0.64" -ha_category: Switch -ha_iot_class: "Local Push" ---- - -[Smappee](https://www.smappee.com/) controller for energy monitoring and Comport plug switches. - -Comport Plugs will be automatically added when you connect to the Smappee controller. - -For more configuration information see the [Smappee component](/components/smappee/) documentation. diff --git a/source/_components/switch.sony_projector.markdown b/source/_components/switch.sony_projector.markdown new file mode 100644 index 000000000000..298454f34435 --- /dev/null +++ b/source/_components/switch.sony_projector.markdown @@ -0,0 +1,39 @@ +--- +layout: page +title: "Sony Projector Switch" +description: "Instructions on how to integrate Sony Projector switches into Home Assistant." +date: 2019-01-01 07:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: sony.png +ha_category: Multimedia +ha_iot_class: "Local Polling" +ha_release: 0.89 +--- + +The `sony_projector` switch platform allows you to control the state of SDCP compatible network-connected projectors from [Sony](http://www.sony.com). + +## {% linkable_title Configuration %} + +To use your Sony Projector in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: sony_projector + host: "192.168.1.47" + name: "Projector" +``` + +{% configuration %} +host: + description: The hostname or IP address of the projector. + required: true + type: string +name: + description: The name to use when displaying this switch. + required: false + type: string +{% endconfiguration %} diff --git a/source/_components/switch.spider.markdown b/source/_components/switch.spider.markdown deleted file mode 100644 index a38456e927b0..000000000000 --- a/source/_components/switch.spider.markdown +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: page -title: "Spider Power Plug" -description: "Instructions on how to integrate Spider power plugs within Home Assistant." -date: 2018-07-26 22:01 -sidebar: true -comments: false -sharing: true -footer: true -logo: spider.png -ha_category: Switch -ha_iot_class: "Cloud Polling" -ha_release: 0.75 ---- - -The `spider` power plug platform allows you to control your power plugs. It also shows you your current and daily energy usage by the power plug. - -

-Full configuration details can be found on the main [Spider component](/components/spider/) page. -

- -

-This component is not affiliated with Itho Daalderop Spider and retrieves data from the endpoints of the mobile application. Use at your own risk. -

diff --git a/source/_components/switch.switchbot.markdown b/source/_components/switch.switchbot.markdown index ff7e8911b503..a87273de79cd 100644 --- a/source/_components/switch.switchbot.markdown +++ b/source/_components/switch.switchbot.markdown @@ -13,7 +13,7 @@ ha_release: 0.78 ha_iot_class: "Local Polling" --- -This `Switchbot` switch platform allow you to control Switchbot [devices]( https://www.switch-bot.com/). +This `Switchbot` switch platform allows you to control Switchbot [devices]( https://www.switch-bot.com/). To enable it, add the following lines to your `configuration.yaml`: @@ -31,5 +31,5 @@ mac: name: description: The name used to display the switch in the frontend. required: false - type: string + type: string {% endconfiguration %} diff --git a/source/_components/switch.switchmate.markdown b/source/_components/switch.switchmate.markdown index bfc26d496c9c..03e67161ca67 100644 --- a/source/_components/switch.switchmate.markdown +++ b/source/_components/switch.switchmate.markdown @@ -15,6 +15,8 @@ ha_iot_class: "Local Polling" This `Switchmate` switch platform allows you to control Switchmate [devices]( https://www.mysimplysmarthome.com/products/switchmate-switches/). +## {% linkable_title Configuration %} + To enable it, add the following lines to your `configuration.yaml`: ```yaml @@ -31,13 +33,12 @@ mac: name: description: The name used to display the switch in the frontend. required: false - type: string + type: string flip_on_off: description: Option to flip the on/off state. required: false - type: boolean + type: boolean default: false {% endconfiguration %} - The component is tested with SwitchMate Lighting Control Rocker and SwitchMate Lighting Control Toggle. diff --git a/source/_components/switch.tahoma.markdown b/source/_components/switch.tahoma.markdown deleted file mode 100644 index a7c3338fee4f..000000000000 --- a/source/_components/switch.tahoma.markdown +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: page -title: "Tahoma Switch" -description: "Instructions on how to integrate Tahoma switches into Home Assistant." -date: 2017-07-18 12:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: tahoma.png -ha_category: Sensor -ha_release: 0.59 ---- - -The `tahoma` switch platform lets you see switches added to your Tahoma Box in Home Assistant. - -Switches will be added automatically. Please refer to the [component](/components/tahoma/) configuration on how to setup Tahoma. diff --git a/source/_components/switch.tellduslive.markdown b/source/_components/switch.tellduslive.markdown deleted file mode 100644 index 1cfa2c6fc860..000000000000 --- a/source/_components/switch.tellduslive.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "Telldus Live Switch" -description: "Instructions on how to integrate Telldus Live switches into Home Assistant." -date: 2016-01-17 15:49 -sidebar: true -comments: false -sharing: true -footer: true -logo: telldus.png -ha_category: Switch -featured: false ---- - -Integrates Telldus Live switches into Home Assistant. See the [main component](/components/tellduslive/) for configuration instructions. - diff --git a/source/_components/switch.tellstick.markdown b/source/_components/switch.tellstick.markdown deleted file mode 100644 index 9de976af4bac..000000000000 --- a/source/_components/switch.tellstick.markdown +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: page -title: "TellStick Switch" -description: "Instructions on how to integrate TellStick switches into Home Assistant." -date: 2015-08-06 19:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: telldus_tellstick.png -ha_category: Switch -ha_iot_class: "Assumed State" ---- - - -This `tellstick` switch platform allows you to control [TellStick](http://www.telldus.se/products/tellstick) devices. - -To use your TellStick device, you first have to set up your [Tellstick hub](/components/tellstick/) and then add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -switch: - - platform: tellstick -``` diff --git a/source/_components/switch.template.markdown b/source/_components/switch.template.markdown index e3badda4bccd..2107a7280b96 100644 --- a/source/_components/switch.template.markdown +++ b/source/_components/switch.template.markdown @@ -37,7 +37,7 @@ switch: data: entity_id: switch.skylight_open turn_off: - service: switch.turn_on + service: switch.turn_off data: entity_id: switch.skylight_close ``` diff --git a/source/_components/switch.tesla.markdown b/source/_components/switch.tesla.markdown deleted file mode 100644 index 5b184f2fa46a..000000000000 --- a/source/_components/switch.tesla.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Tesla Switch" -description: "Instructions on how to integrate Tesla charging switch into Home Assistant." -date: 2017-09-19 12:20 -sidebar: true -comments: false -sharing: true -footer: true -logo: tesla.png -ha_category: Car -ha_iot_class: "Cloud Push" -ha_release: 0.54 ---- - -The `tesla` platform allows you to control your [Tesla](https://www.tesla.com/) charger (enable/disable charging, max range switch) from within Home Assistant. - -The switch platform will be automatically configured if the `tesla` component is configured. - -For more configuration information see the [`tesla` component](/components/tesla/) documentation. diff --git a/source/_components/switch.toon.markdown b/source/_components/switch.toon.markdown deleted file mode 100644 index 744622da7869..000000000000 --- a/source/_components/switch.toon.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Toon Smart Plugs" -description: "Instructions on how to integrate Toon smart plugs within Home Assistant." -date: 2017-10-22 12:00 -sidebar: true -comments: false -sharing: true -footer: true -ha_category: Switch -ha_release: 0.56 -logo: toon.png -ha_iot_class: "Cloud Polling" ---- - -The `toon` switch platform allows you to control your smart plugs if they are connected to Toon. - -The requirement is that you have setup the [`toon`](/components/toon/) component. diff --git a/source/_components/switch.tplink.markdown b/source/_components/switch.tplink.markdown index fd282c5bbbe1..f12e56293389 100644 --- a/source/_components/switch.tplink.markdown +++ b/source/_components/switch.tplink.markdown @@ -18,6 +18,7 @@ The `tplink` switch platform allows you to control the state of your [TP-Link sm Supported units: - HS100 +- HS103 - HS105 - HS110 - HS200 @@ -40,7 +41,7 @@ name: type: string default: TP-Link Switch host: - description: "The IP address of your TP-Link switch, eg. `192.168.1.32`." + description: "The IP address of your TP-Link switch, e.g., `192.168.1.32`." required: true type: string enable_leds: @@ -62,7 +63,7 @@ switch: host: SECOND_IP_ADDRESS ``` -## {% linkable_title Configure Energy Sensors %} ## +## {% linkable_title Configure Energy Sensors %} In order to get the power consumption readings from the HS110, you'll have to create a [template sensor](/components/switch.template/). In the example below, change all of the `my_tp_switch`'s to match your switch's entity ID. diff --git a/source/_components/switch.tradfri.markdown b/source/_components/switch.tradfri.markdown deleted file mode 100644 index 950695706642..000000000000 --- a/source/_components/switch.tradfri.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "IKEA Trådfri Switch" -description: "Access and control your Zigbee-based IKEA Trådfri (Tradfri) Switches." -date: 2018-09-30 19.22 -sidebar: true -comments: false -sharing: true -footer: true -logo: ikea.svg -ha_category: Switch -ha_iot_class: "Local Polling" -ha_release: 0.80 ---- - -For installation instructions, see [the Trådfri component](/components/tradfri/). diff --git a/source/_components/switch.transmission.markdown b/source/_components/switch.transmission.markdown deleted file mode 100644 index cf7db2f2f321..000000000000 --- a/source/_components/switch.transmission.markdown +++ /dev/null @@ -1,51 +0,0 @@ ---- -layout: page -title: "Transmission Switch" -description: "Instructions on how to integrate Transmission within Home Assistant." -date: 2015-06-02 09:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: transmission.png -ha_category: Downloading -ha_release: pre 0.7 -ha_iot_class: "Local Polling" ---- - - -The `transmission` switch platform allows you to control your [Transmission](http://www.transmissionbt.com/) client from within Home Assistant. The platform enables you switch to your 'Alternative Speed Limits' (aka 'Turtle mode') setting. - -To add Transmission to your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -switch: - platform: transmission - host: IP_ADDRESS -``` - -{% configuration %} -host: - required: true - type: string - description: This is the IP address of your Transmission daemon, e.g., 192.168.1.32. -port: - required: false - type: integer - default: 9091 - description: The port your Transmission daemon uses. -name: - required: false - type: string - default: Transmission Turtle Mode - description: The name to use when displaying this Transmission instance. -username: - required: false - type: string - description: Your Transmission username, if you use authentication. -password: - required: false - type: string - description: Your Transmission password, if you use authentication. -{% endconfiguration %} diff --git a/source/_components/switch.tuya.markdown b/source/_components/switch.tuya.markdown deleted file mode 100644 index 6f081aee6cde..000000000000 --- a/source/_components/switch.tuya.markdown +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: page -title: "Tuya Switch" -description: "Instructions on how to setup the Tuya switch within Home Assistant." -date: 2018-07-09 09:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: tuya.png -ha_category: Switch -ha_iot_class: "Cloud Polling" -ha_release: 0.74 ---- - - -The `tuya` switch platform allows you to control your [Tuya Smart](https://www.tuya.com) switch. - -The platform supports switch and socket. - -

-Full configuration details can be found on the main [Tuya component](/components/tuya/) page. -

\ No newline at end of file diff --git a/source/_components/switch.unifi.markdown b/source/_components/switch.unifi.markdown deleted file mode 100644 index 40376ec6daf7..000000000000 --- a/source/_components/switch.unifi.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -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.upcloud.markdown b/source/_components/switch.upcloud.markdown deleted file mode 100644 index bdd03f6af5e6..000000000000 --- a/source/_components/switch.upcloud.markdown +++ /dev/null @@ -1,36 +0,0 @@ ---- -layout: page -title: UpCloud Switch -description: Instructions on how to set up UpCloud switches within Home Assistant. -date: 2018-01-28 20:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: upcloud.png -ha_category: System Monitor -ha_release: 0.65 -ha_iot_class: Cloud Polling ---- - -The `upcloud` switch platform allows you to control (start/stop) your UpCloud servers. - -## {% linkable_title Configuration %} - -To use your UpCloud servers, you first have to set up your [UpCloud hub](/components/upcloud/) and then add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -switch: - - platform: upcloud - servers: - - 002167b7-4cb1-44b7-869f-e0900ddeeae1 - - 00886296-6137-4074-afe3-068e16d89d00 -``` - -{% configuration %} -servers: - description: List of servers you want to control. - required: true - type: list -{% endconfiguration %} diff --git a/source/_components/switch.velbus.markdown b/source/_components/switch.velbus.markdown deleted file mode 100644 index 10062bddfc13..000000000000 --- a/source/_components/switch.velbus.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: "Velbus Switches" -description: "Access and control your Velbus Switches." -date: 2017-06-17 16.58 -sidebar: true -comments: false -sharing: true -footer: true -logo: velbus.png -ha_category: Switch -ha_iot_class: "Local Push" -ha_release: "0.50" ---- - -The `velbus` switch allows you to control [Velbus](http://www.velbus.eu) connected switches. - -For hub configuration, see [the Velbus component](/components/velbus/). diff --git a/source/_components/switch.vera.markdown b/source/_components/switch.vera.markdown deleted file mode 100644 index e515a8d74c3f..000000000000 --- a/source/_components/switch.vera.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Vera Switch" -description: "Instructions on how to integrate Vera switches into Home Assistant." -date: 2015-10-20 21:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: vera.png -ha_category: Switch -ha_iot_class: "Local Push" -ha_release: pre 0.7 ---- - -The `vera` platform allows you to control your [Vera](http://getvera.com/) switches from within Home Assistant. - -They will be automatically discovered if the vera component is loaded. - -For more configuration information see the [Vera component](/components/vera/) documentation. diff --git a/source/_components/switch.verisure.markdown b/source/_components/switch.verisure.markdown deleted file mode 100644 index c84b3739f812..000000000000 --- a/source/_components/switch.verisure.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Verisure SmartPlug" -description: "Instructions on how to setup the Verisure SmartPlug within Home Assistant." -date: 2016-02-15 22:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: verisure.png -ha_category: Switch -ha_iot_class: "Cloud Polling" ---- - - -The Verisure switch platform allows you to control your [Verisure](https://www.verisure.com/) SmartPlugs. - -The requirement is that you have setup your [Verisure hub](/components/verisure/). - diff --git a/source/_components/switch.vesync.markdown b/source/_components/switch.vesync.markdown index b02f476e93e1..6d11779b6fe6 100644 --- a/source/_components/switch.vesync.markdown +++ b/source/_components/switch.vesync.markdown @@ -16,6 +16,8 @@ The `vesync` switch platform enables integration with Etekcity VeSync smart swit VeSync switches are low-cost wifi smart plugs that offer energy monitoring and work with popular voice assistants. +## {% linkable_title Configuration %} + To use your VeSync switches, you must first register your switches with the VeSync app. Once registration is complete you must add the following to your `configuration.yaml` file: ```yaml @@ -37,7 +39,7 @@ password: type: string {% endconfiguration %} -### {% linkable_title Exposed Attributes %} +## {% linkable_title Exposed Attributes %} VeSync switches will expose the following details. diff --git a/source/_components/switch.vultr.markdown b/source/_components/switch.vultr.markdown deleted file mode 100644 index c02e5273b1e2..000000000000 --- a/source/_components/switch.vultr.markdown +++ /dev/null @@ -1,55 +0,0 @@ ---- -layout: page -title: "Vultr Switch" -description: "Instructions on how to set up Vultr switches within Home Assistant." -date: 2017-10-17 21:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: vultr.png -ha_category: System Monitor -ha_release: "0.58" -ha_iot_class: "Cloud Polling" ---- - -The `vultr` switch platform allows you to control (start/stop) your [Vultr](https://www.vultr.com/) subscription. - -To control your Vultr subscription, you first have to set up your [Vultr hub](/components/vultr/). - -

-The following examples assume a subscription that has an ID of `123456` and a label of `Web Server` -

- -Minimal `configuration.yaml` (produces `switch.vultr_web_server`): - -```yaml -# Example configuration.yaml entry -switch: - - platform: vultr - subscription: 123456 -``` - -{% configuration %} -subscription: - description: List of droplets you want to control. - required: true - type: string -name: - description: The name you want to give this switch. - required: false - default: "Vultr {subscription label}" - type: string -{% endconfiguration %} - - -Full `configuration.yaml` (produces `switch.amazing_server`): - -```yaml -switch: - - platform: vultr - name: Amazing Server - subscription: 123456 -``` - - diff --git a/source/_components/switch.wemo.markdown b/source/_components/switch.wemo.markdown deleted file mode 100644 index 6bca30af1a25..000000000000 --- a/source/_components/switch.wemo.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Belkin WeMo Switch" -description: "Instructions on how to integrate Belkin WeMo switches into Home Assistant." -date: 2016-02-20 00:47 -sidebar: true -comments: false -sharing: true -footer: true -logo: belkin_wemo.png -ha_category: Switch -ha_iot_class: "Local Push" ---- - - -The `wemo` platform allows you to control your [Belkin WeMo](http://www.belkin.com/us/p/P-F7C027/) switches from within Home Assistant. This includes support for Wemo enabled [Mr. Coffee](http://www.mrcoffee.com/wemo-landing-page.html) smart coffee makers. - -They will be automatically discovered if the discovery component is enabled. - -For more configuration information see the [WeMo component](/components/wemo/) documentation. diff --git a/source/_components/switch.wink.markdown b/source/_components/switch.wink.markdown deleted file mode 100644 index 9a026077925c..000000000000 --- a/source/_components/switch.wink.markdown +++ /dev/null @@ -1,30 +0,0 @@ ---- -layout: page -title: "Wink Switch" -description: "Instructions on how to setup the Wink switches within Home Assistant." -date: 2015-01-20 22:36 -sidebar: true -comments: false -sharing: true -footer: true -logo: wink.png -ha_category: Switch -ha_release: pre 0.7 -ha_iot_class: "Cloud Polling" ---- - - -The Wink switch platform allows you to control your [Wink](http://www.wink.com/) switches. - -The requirement is that you have setup [Wink](/components/wink/). - - -### Supported switch devices - -- Wink Pivot power genius (No Wink hub required) -- non-dimming Z-wave in wall switches (dimming switches show up as lights) -- Wink Relay load controlling switches -- Rachio sprinkler controller (No Wink hub required) -- iHome smart plug (No Wink hub required) -- Wink switch groups (User created groups of switches) - diff --git a/source/_components/switch.wirelesstag.markdown b/source/_components/switch.wirelesstag.markdown deleted file mode 100644 index 1721d2bf822c..000000000000 --- a/source/_components/switch.wirelesstag.markdown +++ /dev/null @@ -1,48 +0,0 @@ ---- -layout: page -title: "WirelessTag Switch" -description: "Instructions on how to integrate your Wireless Tags sensors within Home Assistant." -date: 2018-03-26 21:52 -comments: false -sidebar: true -sharing: true -footer: true -logo: wirelesstag.png -ha_category: Switch -ha_iot_class: "Local Push and Cloud Polling" -ha_release: 0.68 ---- - -To get your [wirelesstag.net](http://wirelesstag.net) switches working within Home Assistant, please follow the instructions for the general [WirelessTag component](/components/wirelesstag). - -To enable tags set up with your [wirelesstag.net](http://wirelesstag.net) account, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -switch: - - platform: wirelesstag - monitored_conditions: - - motion - - humidity -``` - -{% configuration %} -monitored_conditions: - description: The metrics types to control. - required: true - type: list - keys: - temperature: - description: Control arm/disarm temperature monitoring. - humidity: - description: Control arm/disarm humidity monitoring. - motion: - description: Control arm/disarm motion and door open/close events monitoring. - light: - description: Control monitoring of light changes. - moisture: - description: Control monitoring of water level/soil moisture for water sensor. -{% endconfiguration %} - -Arm/Disarm of motion switch is required to receive motion and door binary sensors events. -Others are only needed if you want to receive push notifications from tags on a specific range of changes in temperature, humidity, light or moisture. diff --git a/source/_components/switch.xiaomi_aqara.markdown b/source/_components/switch.xiaomi_aqara.markdown index 0306ba29213e..b19adf44314a 100644 --- a/source/_components/switch.xiaomi_aqara.markdown +++ b/source/_components/switch.xiaomi_aqara.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Xiaomi Switch" -description: "Instructions on how to setup the Xiaomi switch within Home Assistant." +description: "Instructions on how to set up the Xiaomi switch within Home Assistant." date: 2017-07-21 16:34 sidebar: true comments: false @@ -13,8 +13,6 @@ ha_release: "0.50" ha_iot_class: "Local Push" --- +The `xiaomi_aqara` switch platform allows you to get data from your [Xiaomi aqara](http://www.mi.com/en/) switches. -The `xiaomi aqara` switch platform allows you to get data from your [Xiaomi aqara](http://www.mi.com/en/) switches. - -The requirement is that you have setup [Xiaomi aqara](/components/xiaomi_aqara/). - +The requirement is that you have set up [Xiaomi aqara](/components/xiaomi_aqara/). diff --git a/source/_components/switch.xiaomi_miio.markdown b/source/_components/switch.xiaomi_miio.markdown index efe0e9c89fdb..0b88bcf52945 100644 --- a/source/_components/switch.xiaomi_miio.markdown +++ b/source/_components/switch.xiaomi_miio.markdown @@ -17,50 +17,50 @@ The `xiaomi_miio` switch platform allows you to control the state of your Xiaomi 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. -## Features +## {% linkable_title Features %} -### Xiaomi Smart WiFi Socket +### {% linkable_title Xiaomi Smart WiFi Socket %} -Supported models: `chuangmi.plug.m1`, `chuangmi.plug.v2`, `chuangmi.plug.hmi205` +Supported models: `chuangmi.plug.m1`, `chuangmi.plug.m3`, `chuangmi.plug.v2`, `chuangmi.plug.hmi205` -* Power (on, off) -* Attributes +- Power (on, off) +- Attributes - Temperature -### Xiaomi Chuangmi Plug V1 +### {% linkable_title Xiaomi Chuangmi Plug V1 %} Supported models: `chuangmi.plug.v1`, `chuangmi.plug.v3` -* Power (on, off) -* USB (on, off) -* Attributes +- Power (on, off) +- USB (on, off) +- Attributes - Temperature -### Xiaomi Smart Power Strip +### {% linkable_title Xiaomi Smart Power Strip %} Supported models: `qmi.powerstrip.v1`, `zimi.powerstrip.v2` -* Power (on, off) -* Wifi LED (on, off) -* Power Price (0...999) -* Power Mode (green, normal) (Power Strip V1 only) -* Attributes +- Power (on, off) +- Wifi LED (on, off) +- Power Price (0...999) +- Power Mode (green, normal) (Power Strip V1 only) +- Attributes - Temperature - Current - Load power - Wifi LED - Mode (Power Strip V1 only) +## {% linkable_title Configuration %} + To add a plug to your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entries switch: - platform: xiaomi_miio - name: Original Xiaomi Mi Smart WiFi Socket - host: 192.168.130.59 + host: MIIO_IP_ADDRESS token: YOUR_TOKEN - model: chuangmi.plug.m1 ``` {% configuration %} @@ -78,7 +78,7 @@ name: type: string default: Xiaomi Miio Switch model: - description: The model of your miio device. Valid values are `chuangmi.plug.v1`, `qmi.powerstrip.v1`, `zimi.powerstrip.v2`, `chuangmi.plug.m1`, `chuangmi.plug.v2`, `chuangmi.plug.v3` and `chuangmi.plug.hmi205`. 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 device. Valid values are `chuangmi.plug.v1`, `qmi.powerstrip.v1`, `zimi.powerstrip.v2`, `chuangmi.plug.m1`, `chuangmi.plug.m3`, `chuangmi.plug.v2`, `chuangmi.plug.v3` and `chuangmi.plug.hmi205`. 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 %} @@ -91,7 +91,7 @@ Turn the wifi led on. | Service data attribute | Optional | Description | |---------------------------|----------|---------------------------------------------------------| -| `entity_id` | yes | Only act on a specific xiaomi miio switch entity. Else targets all. | +| `entity_id` | yes | Only act on a specific Xiaomi miio switch entity. Else targets all. | ### {% linkable_title Service `switch.xiaomi_miio_set_wifi_led_off` %} (Power Strip only) @@ -99,7 +99,7 @@ Turn the wifi led off. | Service data attribute | Optional | Description | |---------------------------|----------|---------------------------------------------------------| -| `entity_id` | yes | Only act on a specific xiaomi miio switch entity. Else targets all. | +| `entity_id` | yes | Only act on a specific Xiaomi miio switch entity. Else targets all. | ### {% linkable_title Service `switch.xiaomi_miio_set_power_price` %} (Power Strip) @@ -107,7 +107,7 @@ Set the power price. | Service data attribute | Optional | Description | |---------------------------|----------|---------------------------------------------------------| -| `entity_id` | yes | Only act on a specific xiaomi miio switch entity. Else targets all. | +| `entity_id` | yes | Only act on a specific Xiaomi miio switch entity. Else targets all. | | `price` | no | Power price, between 0 and 999. | ### {% linkable_title Service `switch.xiaomi_miio_set_power_mode` %} (Power Strip V1 only) @@ -116,5 +116,5 @@ Set the power mode. | Service data attribute | Optional | Description | |---------------------------|----------|---------------------------------------------------------------| -| `entity_id` | yes | Only act on a specific xiaomi miio switch entity. Else targets all. | +| `entity_id` | yes | Only act on a specific Xiaomi miio switch entity. Else targets all. | | `mode` | no | Power mode, valid values are 'normal' and 'green' | diff --git a/source/_components/switch.zha.markdown b/source/_components/switch.zha.markdown deleted file mode 100644 index e23f6751ff39..000000000000 --- a/source/_components/switch.zha.markdown +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: page -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 -sharing: true -footer: true -logo: zigbee.png -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/). diff --git a/source/_components/switch.zoneminder.markdown b/source/_components/switch.zoneminder.markdown deleted file mode 100644 index f194544715cd..000000000000 --- a/source/_components/switch.zoneminder.markdown +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: page -title: "ZoneMinder Switch" -description: "How to toggle the function of ZoneMinder monitors in Home Assistant." -date: 2016-10-13 22:57 -sidebar: true -comments: false -sharing: true -footer: true -logo: zoneminder.png -ha_category: Switch -ha_release: 0.31 -ha_iot_class: "Local Polling" ---- - -The `zoneminder` switch platform allows you to toggle the current function of all cameras attached to your [ZoneMinder](https://www.zoneminder.com) instance. - -

-You must have the [ZoneMinder component](/components/zoneminder/) configured to use this and if ZoneMinder authentication is enabled the account specified in the component configuration must have "Edit" permission for "System". -

- -To enable this switch, add the following lines to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -switch: - - platform: zoneminder - command_on: Modect - command_off: Monitor -``` - -{% configuration %} -command_on: - description: The function you want the camera to run when turned on. - required: true - type: string -command_off: - description: The function you want the camera to run when turned off. - required: true - type: string -{% endconfiguration %} - -

-The default functions installed by ZoneMinder are: None, Monitor, Modect, Record, Mocord, Nodect. -

diff --git a/source/_components/system_health.markdown b/source/_components/system_health.markdown new file mode 100644 index 000000000000..1b7416d890dd --- /dev/null +++ b/source/_components/system_health.markdown @@ -0,0 +1,23 @@ +--- +layout: page +title: "System Health" +description: "Systeam Health component will report system info and allow to run system diagnostics." +date: 2019-02-06 13:40 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: "Other" +ha_qa_scale: internal +ha_release: 0.87 +--- + +The System Health component provides an API to offer information on the system and its components. It also allows to run diagnostic tools to diagnose problems. + +Add the following to your configuration.yaml file. +```yaml +system_health: +``` + +Once added the system health component data can be viewed in the developer tools under service developer tool icon. diff --git a/source/_components/system_log.markdown b/source/_components/system_log.markdown index 9d80c4a61450..e3fe547d930d 100644 --- a/source/_components/system_log.markdown +++ b/source/_components/system_log.markdown @@ -15,7 +15,9 @@ ha_qa_scale: internal The `system_log` component stores information about all logged errors and warnings in Home Assistant. All collected information is accessible directly in the frontend, just navigate to the `Info` section under `Developer Tools`. In order to not overload Home Assistant with log data, only the 50 last errors and warnings will be stored. Older entries are automatically discarded from the log. It is possible to change the number of stored log entries using the parameter `max_entries`. -This component is automatically loaded by the `frontend` (so no need to do anything if you are using the frontend). If you are not doing so, or if you wish to change a parameter, add the following section to your `configuration.yaml` file: +## {% linkable_title Configuration %} + +This component is automatically loaded by the `frontend` (so no need to do anything if you are using the frontend). If you are not doing so, or if you wish to change a parameter, add the following section to your `configuration.yaml` file: ```yaml system_log: @@ -45,19 +47,25 @@ To manually clear the system log, call this service. Errors and warnings are posted as the event `system_log_event`, so it is possible to write automations that trigger whenever a warning or error occurs. The following information is included in each event: -| Field | Description | -|------------------------------------------------------------------------------------------| -| `level` | Either `WARNING` or `ERROR` depending on severity. | +| Field | Description | +|-------------------------------------------------------------------------------------------| +| `level` | Either `WARNING` or `ERROR` depending on severity. | | `source` | File that triggered the error, e.g., `core.py` or `media_player/yamaha.py`. | -| `exception` | Full stack trace if available, otherwise empty string. | +| `exception` | Full stack trace if available, an empty string otherwise. | | `message` | Descriptive message of the error, e.g., "Error handling request". | | `timestamp` | Unix timestamp with as a double, e.g., 1517241010.237416. | -Live examples of these events can be found in the Home Assistant log file or by just looking in the system log. An example could, for instance, look like this: +Live examples of these events can be found in the Home Assistant log file (`home-assistant.log`) or by just looking in the system log. An example could, for instance, look like this: - +```text +2019-02-14 16:20:35 ERROR (MainThread) [homeassistant.loader] Unable to find component system_healt +2019-02-14 16:20:36 ERROR (MainThread) [homeassistant.components.device_tracker] Error setting up platform google_maps +Traceback (most recent call last): + File "/home/fab/Documents/repos/ha/home-assistant/homeassistant/components/device_tracker/__init__.py", line 184, in +[...] +``` -The message ("Unable to find service..."), source (`core.py`) and level (`WARNING`) can easily be extracted from the image. Exact timestamp and stack trace is shown if the entry is selected. +The message ("Unable to find component system_healt"), source (`homeassistant.loader`) and level (`ERROR`) can easily be extracted from the log. The exact timestamp and if there is a stack trace that's shown as well. Here is another error caused by the `google_map` integration with additional output present. ## {% linkable_title Examples %} @@ -89,6 +97,7 @@ automation: This automation will create a persistent notification whenever an error or warning is logged that has the word "service" in the message: +{% raw %} ```yaml automation: - alias: Create notifications for "service" errors @@ -97,10 +106,11 @@ automation: event_type: system_log_event condition: condition: template - value_template: {% raw %}'{{ "service" in trigger.event.data.message }}'{% endraw %} + value_template: '{{ "service" in trigger.event.data.message }}' action: service: persistent_notification.create data_template: title: Something bad happened - message: {% raw %}'{{ trigger.event.data.message }}'{% endraw %} + message: '{{ trigger.event.data.message }}' ``` +{% endraw %} diff --git a/source/_components/tado.markdown b/source/_components/tado.markdown index f78c99ae627b..efd8c821113e 100644 --- a/source/_components/tado.markdown +++ b/source/_components/tado.markdown @@ -8,12 +8,26 @@ comments: false sharing: true footer: true logo: tado.png -ha_category: Hub +ha_category: + - Hub + - Climate + - Presence Detection + - Sensor ha_release: 0.41 ha_iot_class: "Cloud Polling" +redirect_from: + - /components/climate.tado/ + - /components/device_tracker.tado/ + - /components/sensor.tado/ --- -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. +The `tado` component platform is used as an interface to the [my.tado.com](https://my.tado.com/webapp/#/account/sign-in) website. + +There is currently support for the following device types within Home Assistant: + +- Climate - for every tado zone. +- [Presence Detection](#presence-detection) +- Sensor - for some additional information of the zones. ## {% linkable_title Configuration %} @@ -40,3 +54,62 @@ password: The tado thermostats are internet connected thermostats. There exists an unofficial API at [my.tado.com](https://my.tado.com/webapp/#/account/sign-in), which is used by their website and now by this component. It currently supports presenting the current temperature, the setting temperature and the current operation mode. Switching the mode is also supported. If no user is at home anymore, the devices are showing the away-state. Switching to away-mode is not supported. + +## {% linkable_title Presence Detection %} + +The `tado` device tracker is using the [Tado Smart Thermostat](https://www.tado.com/) and its support for person presence detection based on smartphone location by geofencing. + +This tracker uses the Tado API to determine if a mobile device is at home. It tracks all devices in your home that Tado knows about. + +To use the Tado platform in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry for Tado +device_tracker: + - platform: tado + username: YOUR_USERNAME + password: YOUR_PASSWORD + home_id: YOUR_HOME_ID +``` + +{% configuration %} +username: + description: The username for your Tado account. + required: true + type: string +password: + description: The password for your Tado account. + required: true + type: string +home_id: + description: The id of your home of which you want to track devices. If provided, the Tado device tracker will tack *all* devices known to Tado associated with this home. See below how to find it. + required: false + type: integer +{% endconfiguration %} + +After configuration, your device has to be at home at least once before showing up as *home* or *away*. +Polling Tado API for presence information will happen at most once every 30 seconds. + +See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. Beware that the Tado (v2) API does not provide GPS location of devices, only a bearing, therefore Home Assistant only uses `home`/`not-home` status. + +### {% linkable_title Finding your `home_id` %} + +Find your `home_id` by browsing to `https://my.tado.com/api/v2/me?username=YOUR_USERNAME&password=YOUR_PASSWORD`. There you'll see something like the following: + +```json +{ + "name": "Mark", + "email": "your@email.tld", + "username": "your@email.tld", + "homes": [ + { + "id": 12345, + "name": "Home Sweet Home" + } + ], + "locale": "en_US", + "mobileDevices": [] +} +``` + +In this example `12345` is the `home_id` you'll need to configure. \ No newline at end of file diff --git a/source/_components/tahoma.markdown b/source/_components/tahoma.markdown index 323d51bee5a6..2d0300919008 100644 --- a/source/_components/tahoma.markdown +++ b/source/_components/tahoma.markdown @@ -8,13 +8,33 @@ comments: false sharing: true footer: true logo: tahoma.png -ha_category: Hub +ha_category: + - Hub + - Binary Sensor + - Cover + - Scene + - Switch + - Sensor ha_release: 0.59 ha_iot_class: "Cloud Polling" +redirect_from: + - /components/binary_sensor.tahoma/ + - /components/cover.tahoma/ + - /components/scene.tahoma/ + - /components/switch.tahoma/ + - /components/sensor.tahoma/ --- 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. +There is currently support for the following device types within Home Assistant: + +- Binary Sensor +- Sensor +- Cover +- Switch +- Scene + ## {% linkable_title Configuration %} To use your Tahoma devices in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/telegram_bot.markdown b/source/_components/telegram_bot.markdown index f3a3a031f787..343ed59f25d6 100644 --- a/source/_components/telegram_bot.markdown +++ b/source/_components/telegram_bot.markdown @@ -150,6 +150,7 @@ Respond to a callback query originated by clicking on an online keyboard button. | `show_alert` | yes | True/false for show a permanent notification. Defaults to False. | ### {% linkable_title Service `telegram_bot.delete_message` %} + Delete a previously sent message in a conversation. | Service data attribute | Optional | Description | @@ -161,7 +162,7 @@ Delete a previously sent message in a conversation. The [`telegram` notification platform](/components/notify.telegram/) requires the `telegram_bot` component to work with, and it's designed to generate a customized shortcut (`notify.USERNAME`) to send notifications (messages, photos, documents and locations) to a particular `chat_id` with the old syntax, allowing backward compatibility. -The required yaml configuration now reduces to: +The required YAML configuration now reduces to: ```yaml notify: diff --git a/source/_components/tellduslive.markdown b/source/_components/tellduslive.markdown index 4af2502e3183..266cef58007d 100644 --- a/source/_components/tellduslive.markdown +++ b/source/_components/tellduslive.markdown @@ -7,10 +7,25 @@ sidebar: true comments: false sharing: true footer: true -logo: telldus.png -ha_category: Hub +logo: tellduslive.svg +ha_category: + - Hub + - Binary Sensor + - Cover + - Light + - Sensor + - Switch featured: false ha_release: 0.11 +ha_config_flow: true +ha_qa_scale: gold +ha_iot_class: 'Cloud Polling' +redirect_from: + - /components/binary_sensor.tellduslive/ + - /components/cover.tellduslive/ + - /components/light.tellduslive/ + - /components/sensor.tellduslive/ + - /components/switch.tellduslive/ --- The `tellduslive` component let you connect to [Telldus Live](https://live.telldus.com). It's cloud platform that connects to your Tellstick Net or Tellstick ZNet connected gear at home. @@ -35,11 +50,15 @@ host: description: Host address to Tellstick Net or Tellstick ZNet for Local API, only useful when automatic discovery is not enabled. required: false type: string -update_interval: - description: Interval (in seconds) for polling the Telldus Live server (or the local server). Minimal value can't be less then 300. +scan_interval: + description: Interval (in seconds) for polling the Telldus Live server (or the local server). required: false type: integer default: 60 {% endconfiguration %} +

+It is only possible to configure the `scan_interval` when setting up the device. If the polling interval needs to be changed after the device is configured it must be changed manually by changing `"scan_interval": 60,` for the device in the file `.storage/core.config_entries`. +

+ The component will offer configuration through the Home Assistant user interface where it will let you associate it with your Telldus Live account. diff --git a/source/_components/tellstick.markdown b/source/_components/tellstick.markdown index 0566e92a8a42..59c145c9b1c8 100644 --- a/source/_components/tellstick.markdown +++ b/source/_components/tellstick.markdown @@ -8,11 +8,30 @@ comments: false sharing: true footer: true logo: telldus_tellstick.png -ha_category: Hub +ha_release: "pre 0.7" +ha_category: + - Hub + - Cover + - Light + - Sensor + - Switch +ha_iot_class: "Assumed State" +redirect_from: + - /components/cover.tellstick/ + - /components/light.tellstick/ + - /components/sensor.tellstick/ + - /components/switch.tellstick/ --- The `tellstick` component integrates [TellStick](https://telldus.com/produkt/z-wave-gateway-tellstick-znet-lite-ver-2/) devices into Home Assistant. This integration allows users to add switches, lights, and sensors which are communicating with 433 MHz. There are a number of vendors (Capidi Elro, Intertechno, Nexa, Proove, Sartano, and Viking) who are selling products that work with TellStick. For more details, please check the TellStick [protocol list](http://developer.telldus.com/wiki/TellStick_conf). +There is currently support for the following device types within Home Assistant: + +- [Cover](#cover) +- [Light](#light) +- [Sensor](#sensor) +- [Switch](#switch) + ## {% linkable_title Configuration %} To get started, add the devices to your `configuration.yaml` file. @@ -46,3 +65,90 @@ port: required: inclusive type: list {% endconfiguration %} + +## {% linkable_title Cover %} + +This `tellstick` cover platform allows you to control your [TellStick](http://www.telldus.se/products/tellstick) covers. + +To use your TellStick device, you first have to set up your [Tellstick hub](#configuration) and then add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +cover: + - platform: tellstick +``` + +## {% linkable_title Light %} + +This `tellstick` light platform allows you to control your [TellStick](http://www.telldus.se/products/tellstick) dimmers. + +To use your TellStick device, you first have to set up your [Tellstick hub](#configuration) and then add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +light: + platform: tellstick +``` + +## {% linkable_title Sensor %} + +The `tellstick` sensor platform allows you to get current meteorological data from a [TellStick](http://www.telldus.se/products/tellstick) device. + +To use your TellStick device, you first have to set up your [Tellstick hub](#configuration) and then add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: tellstick +``` + +{% configuration %} +sensor: + description: "Entry for a sensor with the ID and its name, e.g., ID: Name." + required: false + type: string +only_named: + description: Only show the named sensors. Set to `true` to hide sensors. + required: false + default: false + type: boolean +temperature_scale: + description: The scale of the temperature value. + required: false + default: °C + type: string +datatype_mask: + description: Mask to determine which sensor values to show based on. Please check the [TellCore tellcore.constants documentation](https://tellcore-py.readthedocs.org/en/v1.1.2/constants.html#module-tellcore.constants) for details. + required: false + default: 127 + type: integer +{% endconfiguration %} + +## {% linkable_title Examples %} + +In this section you find some real-life examples of how to use this sensor. + +### {% linkable_title Full configuration %} + +```yaml +# Example configuration.yaml entry +sensor: + - platform: tellstick + 135: Outside + 21: Inside + only_named: true + temperature_scale: "°C" + datatype_mask: 1 +``` + +## {% linkable_title Switch %} + +This `tellstick` switch platform allows you to control [TellStick](http://www.telldus.se/products/tellstick) devices. + +To use your TellStick device, you first have to set up your [Tellstick hub](#configuration) and then add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: tellstick +``` \ No newline at end of file diff --git a/source/_components/tesla.markdown b/source/_components/tesla.markdown index 1d088c67369f..5d64180c56d3 100644 --- a/source/_components/tesla.markdown +++ b/source/_components/tesla.markdown @@ -8,20 +8,35 @@ comments: false sharing: true footer: true logo: tesla.png -ha_category: Car +ha_category: + - Car + - Binary Sensor + - Climate + - Presence Detection + - Lock + - Sensor + - Switch ha_release: 0.53 ha_iot_class: "Cloud Polling" +redirect_from: + - /components/binary_sensor.tesla/ + - /components/device_tracker.tesla/ + - /components/climate.tesla/ + - /components/lock.tesla/ + - /components/sensor.tesla/ + - /components/switch.tesla/ --- The `Tesla` component offers integration with the [Tesla](https://auth.tesla.com/login) cloud service and provides presence detection as well as sensors such as charger state and temperature. This component provides the following platforms: - - Binary sensors - such as parking and charger connection. - - Sensors - such as Battery level, Inside/Outside temperature, odometer, and estimated range. - - Device tracker - to track location of your car - - Lock - Door lock. Enables you to control Tesla's door lock - - Climate - HVAC control. Allow you to control (turn on/off, set target temperature) your Tesla's HVAC system. - - Switch - Charger and max range switch. Allow you to start/stop charging and set max range charging. + +- Binary sensors - such as parking and charger connection. +- Sensors - such as Battery level, Inside/Outside temperature, odometer, and estimated range. +- Device tracker - to track location of your car +- Lock - Door lock. Enables you to control Tesla's door lock +- Climate - HVAC control. Allow you to control (turn on/off, set target temperature) your Tesla's HVAC system. +- Switch - Charger and max range switch. Allow you to start/stop charging and set max range charging. ## {% linkable_title Configuration %} @@ -30,7 +45,7 @@ To use Tesla in your installation, add the following to your `configuration.yaml ```yaml # Example configuration.yaml entry tesla: - username: YOUR_E_MAIL_ADDRESS + username: YOUR_EMAIL_ADDRESS password: YOUR_PASSWORD ``` diff --git a/source/_components/tibber.markdown b/source/_components/tibber.markdown index 7df4e9a7f283..791bc560b028 100644 --- a/source/_components/tibber.markdown +++ b/source/_components/tibber.markdown @@ -8,16 +8,25 @@ comments: false sharing: true footer: true logo: tibber.png -ha_category: Energy +ha_category: + - Energy + - Sensor + - Notifications ha_release: 0.80 ha_qa_scale: silver ha_iot_class: "Cloud Polling" +redirect_from: + - /components/notify.tibber/ + - /components/sensor.tibber/ --- The `tibber` component provides a sensor with the current electricity price if you are a [Tibber](https://tibber.com/) customer. If you have a [Tibber Pulse](https://norge.tibber.com/products/pulse/) it will also show the electricity consumption in real time. -It also provides a notification service. +There is currently support for the following device types within Home Assistant: + +- [Notifications](#notifications) +- [Sensor](#sensor) ## {% linkable_title Setup %} @@ -38,3 +47,56 @@ access_token: required: true type: string {% endconfiguration %} + +## {% linkable_title Notifications %} + +Tibber can send a notification by calling the [`notify` service](/components/notify/). It will send a notification to all devices registered in the Tibber account. + +The requirement is that you have setup the [`tibber` component](#setup). +To use notifications, please see the [getting started with automation page](/getting-started/automation/). + +### {% linkable_title Send message %} + +```yaml +action: + service: notify.tibber + data: + title: Your title + message: This is a message for you! +``` + +## {% linkable_title Sensor %} + +The `tibber` sensor provides the current electricity price if you are a [Tibber](https://tibber.com/) customer. +If you have a Tibber Pulse it will also show the electricity consumption in real time. + +The requirement is that you have setup the [`tibber` component](#setup). + +## {% linkable_title Examples %} + +In this section, you will find some real-life examples of how to use this sensor. + +### {% linkable_title Electricity price %} + +The electricity price can be used to make automations. The sensor has a `max_price` and `min_price` attribute, with max and min price for the current day. Here is an example to get a notification when the price is above 90% of the maximum price for the day: + +{% raw %} + +```yaml +- alias: "Electricity price" + trigger: + platform: time_pattern + # Matches every hour at 1 minutes past whole + minutes: 1 + condition: + condition: template + value_template: '{{ float(states.sensor.electricity_price_hamretunet_10.state) > 0.9 * float(states.sensor.electricity_price_hamretunet_10.attributes.max_price) }}' + action: + - service: notify.pushbullet + data: + title: "Electricity price" + target: "device/daniel_telefon_cat" + message: "The electricity price is now {{ states.sensor.electricity_price_hamretunet_10.state }}" +``` + +{% endraw %} \ No newline at end of file diff --git a/source/_components/timer.markdown b/source/_components/timer.markdown index 946e20cd8d9e..3e914d731308 100644 --- a/source/_components/timer.markdown +++ b/source/_components/timer.markdown @@ -15,10 +15,10 @@ ha_qa_scale: internal The `timer` component aims to simplify automations based on (dynamic) durations. -When a timer finishes or gets canceled the corresponding events are fired. This allows you to differentiate if a timer has switched from `active` to `idle` because the given duration has elapsed or it has been canceled. To control timers in your automations you can use the services mentioned below. When calling the `start` service on a timer that is already running, it resets the duration it will need to finish and restart the timer without triggering any events. This for example makes it easy to create timed lights that get triggered by motion. +When a timer finishes or gets canceled the corresponding events are fired. This allows you to differentiate if a timer has switched from `active` to `idle` because the given duration has elapsed or it has been canceled. To control timers in your automations you can use the services mentioned below. When calling the `start` service on a timer that is already running, it resets the duration it will need to finish and restart the timer without triggering a canceled or finished event. This, for example, makes it easy to create timed lights that get triggered by motion. Starting a timer triggers a started event unless the timer is paused, in that case, it triggers a restarted event.

-With the current implementation timers don't persist over restarts. After a restart they will be idle again, together with their initial configuration. + With the current implementation timers don't persist over restarts. After a restart, they will be idle again, together with their initial configuration.

## {% linkable_title Configuration %} @@ -60,43 +60,46 @@ Pick an icon that you can find on [materialdesignicons.com](https://materialdesi | Event | Description | | --------------- | ----------- | | timer.cancelled | Fired when a timer has been canceled | -| timer.finished | Fired when a timer has completed | +| timer.finished | Fired when a timer has completed | +| timer.started | Fired when a timer has been started| +| timer.restarted | Fired when a timer has been restarted | +| timer.paused | Fired when a timer has been paused | ## {% linkable_title Services %} -#### {% linkable_title Service `timer.start` %} +### {% linkable_title Service `timer.start` %} Starts or restarts a timer with the provided duration. If no duration is given, it will either restart with its initial value, or continue a paused timer with the remaining duration. If a new duration is provided, this will be the new default for the timer until Home Assistant is restarted (which loads your default values). The duration can be specified as a number of seconds or the easier to read `01:23:45` format. -If no `entity_id` is given all active timers will be started. +You can also use `entity_id: all` and all active timers will be started. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | -| `entity_id` | yes | Name of the entity to take action, e.g., `timer.timer0`. | +| `entity_id` | no | Name of the entity to take action, e.g., `timer.timer0`. | | `duration` | yes | Duration in seconds or `00:00:00` until the timer finishes. | -#### {% linkable_title Service `timer.pause` %} +### {% linkable_title Service `timer.pause` %} -Pause a running timer. This will retain the remaining duration for later continuation. If no `entity_id` is given all active timers will be paused. +Pause a running timer. This will retain the remaining duration for later continuation. You can also use `entity_id: all` and all active timers will be paused. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | -| `entity_id` | yes | Name of the entity to take action, e.g., `timer.timer0`. | +| `entity_id` | no | Name of the entity to take action, e.g., `timer.timer0`. | -#### {% linkable_title Service `timer.cancel` %} +### {% linkable_title Service `timer.cancel` %} -Cancel an active timer. This resets the duration to the last known initial value without firing the `timer.finished` event. If no `entity_id` is given all active timers will be canceled. +Cancel an active timer. This resets the duration to the last known initial value without firing the `timer.finished` event. You can also use `entity_id: all` and all active timers will be canceled. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | -| `entity_id` | yes | Name of the entity to take action, e.g., `timer.timer0`. | +| `entity_id` | no | Name of the entity to take action, e.g., `timer.timer0`. | -#### {% linkable_title Service `timer.finish` %} +### {% linkable_title Service `timer.finish` %} -Manually finish a running timer earlier than scheduled. If no `entity_id` is given all active timers will be finished. +Manually finish a running timer earlier than scheduled. You can also use `entity_id: all` and all active timers will be finished. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | -| `entity_id` | yes | Name of the entity to take action, e.g., `timer.timer0`. | +| `entity_id` | no | Name of the entity to take action, e.g., `timer.timer0`. | ### {% linkable_title Use the service %} @@ -148,7 +151,7 @@ timer: message: "Timer stop" ``` -### {% linkable_title Control a timer from the frontend %} +### {% linkable_title Control a timer manually %} With the [`script`](/components/script/) component you would be able to control a timer (see above for a `timer` configuration sample) manually. diff --git a/source/_components/toon.markdown b/source/_components/toon.markdown index 1e81b2f2be63..4c6a5f403168 100644 --- a/source/_components/toon.markdown +++ b/source/_components/toon.markdown @@ -7,48 +7,77 @@ sidebar: true comments: false sharing: true footer: true -ha_category: Hub +ha_category: + - Climate + - Binary Sensor + - Energy + - Sensor ha_release: 0.56 logo: toon.png ha_iot_class: "Cloud Polling" +redirect_from: + - /components/climate.toon/ + - /components/sensor.toon/ + - /components/switch.toon/ --- -The `toon` component platform can be used to control your Toon thermostat. This component adds a climate device for your Toon thermostat and sensors for power and gas consumption. The component also auto-detects any smart plugs, solar panels and smoke detectors connected to Toon and adds sensors and switches for them. +The `toon` component platform can be used to control your Toon thermostat. This component adds a climate device for your Toon thermostat, sensors for power and gas consumption, sensors for solar production and several binary sensors for things like boiler burner on/off, hot tap water and boiler health status. -For the `toon` component to work, you'll need an active Toon subscription with Eneco. The component uses your Mijn Eneco credentials to control your thermostat through the [toonopafstand](https://toonopafstand.eneco.nl) domain. +For the `toon` component to work, you'll need an active Toon subscription with Eneco and a Toon API developer account. + +There is currently support for the following device types within Home Assistant: + +- Binary Sensor +- [Climate](#climate) +- Sensor + +## {% linkable_title Setting up a developer account %} + +In order to be able to use this component, you'll need to sign up for a free Toon API developer account. + +1. Visit the [Toon API developers website](https://developer.toon.eu/), and [sign in](https://developer.toon.eu/user/login). [Create an account](https://developer.toon.eu/user/register) if you don’t have one already. +2. Open the "[My Apps](https://developer.toon.eu/user/me/apps)" page and click on "Add a new App" button on the top right. +3. The "Add App" page shows a form with two fields: + - **App Name**: Can be anything you like, for example, "Home Assistant" will just do. + - **Callback URL**: Fill in `localhost` in this field. +4. Click on "Create App" to complete the creation process. +5. Open the "[My Apps](https://developer.toon.eu/user/me/apps)" page again and click on the app that you've just created. +6. You need the codes now shown: "Consumer Key" and "Consumer Secret". +7. Add the Toon component to your `configuration.yaml` and restart Home Assistant. Then, go to `Configuration > Integrations` and select `CONFIGURE` next to Toon and follow the setup instructions. ## {% linkable_title Configuration %} -To use your Toon thermostat in your installation, add the following to your `configuration.yaml` file: +To use your Toon in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry toon: - username: YOUR_USERNAME - password: YOUR_PASSWORD + client_id: YOUR_CONSUMER_KEY + client_secret: YOUR_CONSUMER_SECRET ``` {% configuration %} -username: - description: Username for Mijn Eneco. +client_id: + description: Toon API Consumer Key. required: true type: string -password: - description: Password for Mijn Eneco. +client_secret: + description: Toon API Consumer Secret. required: true type: string -gas: - description: With this option you can choose whether you want to measure gas consumption. - required: false - type: boolean - default: true -solar: - description: With this option you can choose whether you want to measure electricity production. - required: false - type: boolean - default: false {% endconfiguration %} -Toon is a smart thermostat delivered by the Eneco power company in The Netherlands. It can measure energy consumption (power and gas), but also the amount of energy generated in case solar panels are connected to it. Toon also acts as a z-wave hub for supported devices like the wall plug and the smoke detector. This component uses the [toonlib library](https://github.com/costastf/toonlib) by Costas Tyfoxylos that connects to the unofficial API on [https://toonopafstand.eneco.nl](https://toonopafstand.eneco.nl). +## {% linkable_title Climate %} + +The `toon` climate platform allows you to interact with your Toon thermostat. For compatibility reasons, the states in Home Assistant are different from the states displayed on your Toon device and are mapped as follows: + +| Home Assistant | Toon | +|:---------------|:--------| +| Performance | Comfort | +| Heat | Thuis | +| Eco | Weg | +| Cool | Slapen | + +It also supports setting the temperature manually. -The current version of this component supports setting any of the four built-in programs and setting the temperature manually. It polls the Toon API at 30 second intervals so the status is relatively fresh without overloading the API. +The Toon API is polled at a 30-second interval, so the status is relatively fresh without overloading the API. diff --git a/source/_components/tplink.markdown b/source/_components/tplink.markdown new file mode 100644 index 000000000000..e32f37d9ec43 --- /dev/null +++ b/source/_components/tplink.markdown @@ -0,0 +1,133 @@ +--- +layout: page +title: "TP-Link Smart Home Devices" +description: "Instructions on integrating TP-Link Smart Home Devices to Home Assistant." +date: 2018-09-12 13:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: tp-link.png +ha_category: Hub +featured: false +ha_release: 0.89 +ha_iot_class: "Local Polling" +redirect_from: + - /components/switch.tplink/ + - /components/light.tplink/ +--- + +The `tplink` component allows you to control your [TP-Link Smart Home Devices](https://www.tp-link.com/kasa-smart/) such as smart plugs and smart bulbs. + +In order to activate the support, you will have to enable the integration inside the config panel. +The supported devices in your network are automatically discovered, but if you want to control devices residing in other networks you will need to configure them manually as shown below. + +## {% linkable_title Supported Devices %} + +This component supports devices that are controllable with the [KASA app](https://www.tp-link.com/us/kasa-smart/kasa.html). +The following devices are known to work with this component. + +### {% linkable_title Plugs %} + +- HS100 +- HS103 +- HS105 +- HS110 + +### {% linkable_title Wall Switches %} + +- HS200 +- HS210 +- HS220 (acts as a light) + +### {% linkable_title Bulbs %} + +- LB100 +- LB110 +- LB120 +- LB130 +- LB230 +- KL110 +- KL120 +- KL130 + +## {% linkable_title Configuration %} + +```yaml +# Example configuration.yaml +tplink: +``` + +{% configuration %} +discovery: + description: Whether to do automatic discovery of devices. + required: false + type: boolean + default: true +light: + description: List of light devices. + required: false + type: list + keys: + host: + description: Hostname or IP address of the device. + required: true + type: string +switch: + description: List of switch devices. + required: false + type: list + keys: + host: + description: Hostname or IP address of the device. + required: true + type: string +{% endconfiguration %} + +## {% linkable_title Manual configuration example %} + +```yaml +# Example configuration.yaml entry with manually specified addresses +tplink: + discovery: false + light: + - host: 192.168.200.1 + - host: 192.168.200.2 + switch: + - host: 192.168.200.3 + - host: 192.168.200.4 +``` + +## {% linkable_title Extracting Energy Sensor data %} + +In order to get the power consumption readings from supported devices, you'll have to create a [template sensor](/components/switch.template/). +In the example below, change all of the `my_tp_switch`'s to match your device's entity ID. + +{% raw %} +```yaml +sensor: + - platform: template + sensors: + my_tp_switch_amps: + friendly_name_template: "{{ states.switch.my_tp_switch.name}} Current" + value_template: '{{ states.switch.my_tp_switch.attributes["current_a"] | float }}' + unit_of_measurement: 'A' + my_tp_switch_watts: + friendly_name_template: "{{ states.switch.my_tp_switch.name}} Current Consumption" + value_template: '{{ states.switch.my_tp_switch.attributes["current_power_w"] | float }}' + unit_of_measurement: 'W' + my_tp_switch_total_kwh: + friendly_name_template: "{{ states.switch.my_tp_switch.name}} Total Consumption" + value_template: '{{ states.switch.my_tp_switch.attributes["total_energy_kwh"] | float }}' + unit_of_measurement: 'kWh' + my_tp_switch_volts: + friendly_name_template: "{{ states.switch.my_tp_switch.name}} Voltage" + value_template: '{{ states.switch.my_tp_switch.attributes["voltage"] | float }}' + unit_of_measurement: 'V' + my_tp_switch_today_kwh: + friendly_name_template: "{{ states.switch.my_tp_switch.name}} Today's Consumption" + value_template: '{{ states.switch.my_tp_switch.attributes["today_energy_kwh"] | float }}' + unit_of_measurement: 'kWh' +``` +{% endraw %} + diff --git a/source/_components/tplink_lte.markdown b/source/_components/tplink_lte.markdown index 1adabfe82d92..519675551648 100644 --- a/source/_components/tplink_lte.markdown +++ b/source/_components/tplink_lte.markdown @@ -9,8 +9,12 @@ sharing: true footer: true logo: tp-link.png ha_release: 0.83 -ha_category: Network +ha_category: + - Network + - Notifications ha_iot_class: "Local Polling" +redirect_from: + - /components/notify.tplink_lte/ --- The TP-Link LTE integration for Home Assistant allows you to observe and control TP-Link LTE routers, currently only tested with TL-MR6400 (firmware 1.4.0). @@ -28,32 +32,32 @@ tplink_lte: password: SECRET notify: - name: sms1 - target: "+15105550123" + recipient: "+15105550123" - name: sms2 - target: "+55520525252" + recipient: "+55520525252" ``` {% configuration %} host: - description: The IP address of the router web interface. - required: true - type: string + description: The IP address of the router web interface. + required: true + type: string password: - description: The password used for the router web interface. - required: true - type: string + description: The password used for the router web interface. + required: true + type: string notify: - description: A list of notification services connected to this specific host. - required: false - type: list - keys: - target: - description: The phone number of a default recipient or a list with multiple recipients. - required: true - type: string, list - name: - description: The name of the notification service. - required: false - default: notify - type: string + description: A list of notification services connected to this specific host. + required: false + type: list + keys: + target: + description: The phone number of a default recipient or a list with multiple recipients. + required: true + type: string, list + name: + description: The name of the notification service. + required: false + default: notify + type: string {% endconfiguration %} diff --git a/source/_components/tradfri.markdown b/source/_components/tradfri.markdown index a642a1959a9c..60a7770011c7 100644 --- a/source/_components/tradfri.markdown +++ b/source/_components/tradfri.markdown @@ -9,9 +9,17 @@ comments: false sharing: true footer: true logo: ikea.svg -ha_category: Hub ha_iot_class: "Local Polling" +ha_config_flow: true ha_release: 0.43 +ha_category: + - Light + - Sensor + - Switch +redirect_from: + - /components/light.tradfri/ + - /components/sensor.tradfri/ + - /components/switch.tradfri/ --- The `tradfri` component support the IKEA Trådfri Gateway (a.k.a. IKEA Tradfri hub/bridge). The gateway can control compatible Zigbee-based lights (certified ZigBee Light Link products) connected to it and Home Assistant will automatically discover the gateways presence on your local network, if `discovery:` is present in your `configuration.yaml` file. @@ -19,7 +27,7 @@ The `tradfri` component support the IKEA Trådfri Gateway (a.k.a. IKEA Tradfri h You will be prompted to configure the gateway through the Home Assistant interface. The configuration process is very simple, when prompted, enter the security key printed on the physical sticker that is on the bottom of the IKEA Trådfri Gateway, then click configure.

-If you see an "Unable to connect" message, restart the gateway and try again. Don't forget to assign a permanent IP to your IKEA Trådfri Gateway in your router / DHCP-server. +If you see an "Unable to connect" message, restart the gateway and try again. Don't forget to assign a permanent IP address to your IKEA Trådfri Gateway in your router / DHCP-server.

## {% linkable_title Configuration %} @@ -52,6 +60,10 @@ After updating the firmware of your IKEA Trådfri Gateway it might be necessary ### {% linkable_title Compilation issues %} +

+ This does not apply to Hass.io or Docker. +

+ Please make sure you have `autoconf` installed (`$ sudo apt-get install autoconf`) if you want to use this component. Also, installing some dependencies might take considerable time (>1 h) on slow devices. ### {% linkable_title Setting the `api_key` %} diff --git a/source/_components/transmission.markdown b/source/_components/transmission.markdown new file mode 100644 index 000000000000..03143c67cb72 --- /dev/null +++ b/source/_components/transmission.markdown @@ -0,0 +1,124 @@ +--- +layout: page +title: "Transmission" +description: "Instructions on how to integrate Transmission within Home Assistant." +date: 2018-12-12 22:44 +sidebar: true +comments: false +sharing: true +footer: true +logo: transmission.png +ha_category: + - Downloading + - Switch + - Sensor +ha_release: 0.87 +ha_iot_class: "Local Polling" +redirect_from: + - /components/switch.transmission/ + - /components/sensor.transmission/ +--- + +The `transmission` component allows you to monitor your downloads with [Transmission](http://www.transmissionbt.com/) from within Home Assistant and setup automation based on the information. + +## {% linkable_title Setup %} + +To use the monitoring, your transmission client needs to allow remote access. If you are running the graphical transmission client (transmission-gtk) go to **Edit** -> **Preferences** and choose the tab **Remote**. Check **Allow remote access**, enter your username and your password, and uncheck the network restriction as needed. + +

+ +

+ +If everything is set up correctly, the details will show up in the frontend. + +

+ +

+ +## {% linkable_title Configuration %} + +To enable this sensor, add the following lines to your `configuration.yaml`: + +```yaml +transmission: + host: 192.168.1.1 +``` + +{% configuration %} +host: + description: "This is the IP address of your Transmission daemon, e.g., `192.168.1.1`." + required: true + type: string +port: + description: The port your Transmission daemon uses. + required: false + type: integer + default: 9091 +name: + description: The name to use when displaying this Transmission instance in the frontend. + required: false + type: string +username: + description: Your Transmission username, if you use authentication. + required: false + type: string +password: + description: Your Transmission password, if you use authentication. + required: false + type: string +turtle_mode: + description: If enabled, it creates a switch entity to control the 'Alternative Speed Limits' (aka 'Turtle mode') setting. + required: false + type: boolean +scan_interval: + description: How frequently to query for new data. Defaults to 120 seconds. + required: false + type: integer +monitored_conditions: + type: integer + description: "List of monitored conditions. Possible values are:" + required: false + type: map + keys: + current_status: + description: The status of your Transmission daemon. + download_speed: + description: The current download speed [MB/s]. + upload_speed: + description: The current upload speed [MB/s]. + active_torrents: + description: The current number of active torrents. + paused_torrents: + description: The current number of paused torrents. + total_torrents: + description: The total number of torrents present in the client. + started_torrents: + description: The current number of started torrents (downloading). + completed_torrents: + description: The current number of completed torrents (seeding) +{% endconfiguration %} + +## {% linkable_title Event Automation %} + +The Transmission component is continuously monitoring the status of torrents in the target client. Once a torrent is started or completed, an event is triggered on the Home Assistant Bus, which allows to implement any kind of automation. + +Possible events are: + +- transmission_downloaded_torrent +- transmission_started_torrent + +Inside of the event, there is the name of the torrent that is started or completed, as it is seen in the Transmission User Interface. + +Example of configuration of an automation with completed torrents: + +```yaml +- alias: Completed Torrent + trigger: + platform: event + event_type: transmission_downloaded_torrent + action: + service: notify.telegram_notifier + data_template: + title: "Torrent completed!" + message: "{{trigger.event.data.name}}" +``` diff --git a/source/_components/tts.google.markdown b/source/_components/tts.google.markdown index c3bdf2d0cca1..927d672a7c4e 100644 --- a/source/_components/tts.google.markdown +++ b/source/_components/tts.google.markdown @@ -12,7 +12,7 @@ ha_category: Text-to-speech ha_release: 0.35 --- -The `google` text-to-speech platform uses [Google Text-to-Speech engine](https://console.developers.google.com/apis/api/speech.googleapis.com/overview) Text-to-Speech engine to read a text with natural sounding voices. +The `google` text-to-speech platform uses [Google Text-to-Speech engine](https://console.developers.google.com/apis/library/texttospeech.googleapis.com) Text-to-Speech engine to read a text with natural sounding voices. ## {% linkable_title Configuration %} diff --git a/source/_components/tts.markdown b/source/_components/tts.markdown index f351404262b7..3d4fceac5d48 100644 --- a/source/_components/tts.markdown +++ b/source/_components/tts.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Text-to-Speech (TTS)" -description: "Instructions on how to setup Text-to-Speech (TTS) with Home Assistant." +description: "Instructions on how to set up Text-to-Speech (TTS) with Home Assistant." date: 2016-12-13 07:00 sidebar: true comments: false @@ -17,7 +17,7 @@ Text-to-Speech (TTS) enables Home Assistant to speak to you. To get started, add the following lines to your `configuration.yaml` (example for Google): ```yaml -# Example configuration.yaml entry for google tts service +# Example configuration.yaml entry for Google TTS service tts: - platform: google ``` @@ -33,7 +33,7 @@ cache: description: Allow TTS to cache voice file to local storage. required: false type: boolean - default: True + default: true cache_dir: description: Folder name or path to a folder for caching files. required: false @@ -94,9 +94,11 @@ Say to all `media_player` device entities: ```yaml # Replace google_say with _say when you use a different platform. service: tts.google_say +entity_id: "all" data: message: 'May the Force be with you.' ``` + Say to the `media_player.floor` device entity: ```yaml @@ -131,7 +133,7 @@ The component has two caches. Both caches can be controlled with the `cache` opt ## {% linkable_title REST Api %} -#### {% linkable_title POST /api/tts_get_url %} +### {% linkable_title POST /api/tts_get_url %} Returns an URL to the generated TTS file. Platform and message are required. diff --git a/source/_components/tts.microsoft.markdown b/source/_components/tts.microsoft.markdown index 7725da381a7b..1c910d62ccf7 100644 --- a/source/_components/tts.microsoft.markdown +++ b/source/_components/tts.microsoft.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Microsoft Text-to-Speech" -description: "Instructions on how to setup Microsoft Text-to-Speech with Home Assistant." +description: "Instructions on how to set up Microsoft Text-to-Speech with Home Assistant." date: 2017-11-07 12:00 sidebar: true comments: false @@ -67,7 +67,6 @@ contour: type: string {% endconfiguration %} - ## {% linkable_title Full configuration example %} A full configuration sample including optional variables: diff --git a/source/_components/tts.yandextts.markdown b/source/_components/tts.yandextts.markdown index f51a24ba402c..180131ae2648 100644 --- a/source/_components/tts.yandextts.markdown +++ b/source/_components/tts.yandextts.markdown @@ -41,7 +41,7 @@ codec: type: string default: "`mp3`" voice: - description: "The speaker voice. Supported female voices are `jane`, `oksana`, `alyss`, `omazh` and male voices are `zahar` and `ermil`." + description: "The speaker voice. Supported female voices are `jane`, `oksana`, `alyss`, `omazh`, `silaerkan`, `nastya`, `sasha`, `tanya`, `tatyana_abramova`, `voicesearch`, and `zombie`. Male voices are `zahar`, `ermil`, `levitan`, `ermilov`, `kolya`, `kostya`, `nick`, `erkanyavas`, `zhenya`, `anton_samokhvalov`, `ermil_with_tuning`, `robot`, `dude`, and `smoky`." required: false type: string default: "`zahar`" diff --git a/source/_components/tuya.markdown b/source/_components/tuya.markdown index c08bc5ab3fa0..52c79e31f4dc 100644 --- a/source/_components/tuya.markdown +++ b/source/_components/tuya.markdown @@ -8,13 +8,36 @@ comments: false sharing: true footer: true logo: tuya.png -ha_category: Hub +ha_category: + - Hub + - Climate + - Cover + - Fan + - Light + - Scene + - Switch ha_iot_class: "Cloud Polling" ha_release: 0.74 +redirect_from: + - /components/climate.tuya/ + - /components/cover.tuya/ + - /components/fan.tuya/ + - /components/light.tuya/ + - /components/scene.tuya/ + - /components/switch.tuya/ --- The `tuya` component is the main component to integrate all [Tuya Smart](https://www.tuya.com) related platforms. You will need your Tuya account information (username, password and account country code) to discover and control devices which related to your account. +There is currently support for the following device types within Home Assistant: + +- **Climate** - The platform supports the air conditioner and heater. +- **Cover** - The platform supports curtains. +- **Fan** - The platform supports most kinds of Tuya fans. +- **Light** - The platform supports most kinds of Tuya light. +- **Scene** - The device state in frontend panel will not change immediately after you activate a scene. +- **Switch** - The platform supports switch and socket. + ## {% linkable_title Configuration %} To add your Tuya devices into your Home Assistant installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/twilio.markdown b/source/_components/twilio.markdown index fa01f2b6c85f..f4f60e7cf7ed 100644 --- a/source/_components/twilio.markdown +++ b/source/_components/twilio.markdown @@ -14,7 +14,7 @@ ha_release: "0.40" The `twilio` component enables the sending of notifications via SMS and the creation of calls with [Twilio](https://twilio.com). -Free trial account is available at [Twilio](https://twilio.com) website providing free calls to verified phone numbers. +A free trial account is available at [Twilio](https://twilio.com) website providing free calls to verified phone numbers. Calls are limited to 10 minutes and will play a short trial message before your message runs. Upgraded accounts have no limitation. ## {% linkable_title Configuration %} @@ -40,9 +40,10 @@ auth_token: {% endconfiguration %} ### {% linkable_title Usage %} + After configuring the base Twilio component, add and configure either or both of the [twilio SMS](/components/notify.twilio_sms/) and [twilio Phone](/components/notify.twilio_call) components to utilize the notification functionality. -To be able to receive events from Twilio, your Home Assistant instance needs to be accessible from the web ([Hass.io instructions](/addons/duckdns/)) and you need to have the `base_url` configured for the HTTP component ([docs](https://www.home-assistant.io/components/http/#base_url)). +To be able to receive events from Twilio, your Home Assistant instance needs to be accessible from the web ([Hass.io instructions](/addons/duckdns/)) and you need to have the `base_url` configured for the HTTP component ([docs](/components/http/#base_url)). To set it up, go to the integrations page in the configuration screen and find Twilio. Click on configure. Follow the instructions on the screen to configure Twilio. @@ -63,4 +64,3 @@ automation: service: light.turn_on entity_id: light.office ``` - diff --git a/source/_components/unifi.markdown b/source/_components/unifi.markdown index bf486c88690e..287412b057fe 100644 --- a/source/_components/unifi.markdown +++ b/source/_components/unifi.markdown @@ -8,13 +8,24 @@ comments: false sharing: true footer: true logo: ubiquiti.png -ha_category: Hub +ha_category: + - Hub + - Presence Detection + - Switch ha_release: "0.81" ha_iot_class: "Local Polling" +redirect_from: + - /components/device_tracker.unifi/ + - /components/switch.unifi/ --- [UniFi](https://unifi-sdn.ubnt.com/) by [Ubiquiti Networks, inc.](https://www.ubnt.com/) is a software that binds gateways, switches and wireless access points together with one graphical front end. +There is currently support for the following device types within Home Assistant: + +- [Presence Detection](#presence-detection) +- [Switch](#switch) + Currently this implementation only exposes POE control for networked devices. Device tracker implementation is not using the same code base. ## {% linkable_title Configuration %} @@ -35,3 +46,161 @@ logger:    homeassistant.components.unifi: debug    homeassistant.components.switch.unifi: debug ``` + +## {% linkable_title Presence detection %} + +This platform allows you to detect presence by looking at devices connected to a [Ubiquiti](http://ubnt.com/) [Unifi](https://www.ubnt.com/enterprise/#unifi) controller. + +To use this device tracker in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +device_tracker: + - platform: unifi + host: unifi + username: username + password: password + ssid_filter: + - 'HomeSSID' + - 'IoTSSID' +``` + +{% configuration %} +username: + description: A user on the controller + type: string + required: true +password: + description: The password for the account + type: string + required: true +host: + description: The hostname or IP address of your controller + default: localhost + type: string + required: false +port: + description: The port of your controller's web interface + default: 8443 + type: integer + required: false +site_id: + description: For multisite installations, you can specify `site_id` to specify which is used + type: string + required: false + default: default +verify_ssl: + description: Whether to do strict validation on SSL certificates of the Unifi controller. This can be true/false or the path to a locally trusted certificate to use for verification (i.e. "/path/to/custom_cert.pm") + type: boolean or filename + required: false + default: true +detection_time: + description: How long since the last seen time before the device is marked away, specified in seconds. + type: integer + required: false + default: 300 +ssid_filter: + description: Filter the SSIDs that tracking will occur on. + type: list of strings + required: false + default: None +monitored_conditions: + description: A list of extra attributes to pull from the Unifi controller. + type: list + required: false + default: None + +{% endconfiguration %} + +See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. + +### {% linkable_title Configuring Users %} + +The Unifi controller allows you to create multiple users on it besides the main administrator. It is recommended that you create a limited user that has `read-only` permissions for the Unifi device tracker. + +### {% linkable_title Conflicts with MQTT %} + +The Unifi controller can either be a dedicated hardware device (Unifi's cloud key), or as software any Linux system. If you run the Unifi controller on the same operating system as Home Assistant there may be conflicts in ports if you have the MQTT component as well. + +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. + +If Home Assistant and the Unifi controller are running on separate machines or VMs ensure that all clocks are synchronized. Failing to have synchronized clocks will lead to Home Assistant failing to mark a device as home. + +[Related Issue](https://github.com/home-assistant/home-assistant/issues/10507) + +### {% linkable_title Monitored Conditions %} + +The Unifi controller returns a number of additional attributes that can be used for tracking devices, including signal strength, rx/tx rates, and which AP it is connected to. The list of possible options may vary depending on your Unifi controller version and if a device is wired or wireless. + +Unifi Controller version 5.6.29 has the following options: + - _id + - _is_guest_by_uap + - _last_seen_by_uap + - _uptime_by_uap + - ap_mac + - assoc_time + - authorized + - bssid + - bytes-r + - ccq + - channel + - essid + - first_seen + - hostname + - idletime + - ip + - is_11r + - is_guest + - is_wired + - last_seen + - latest_assoc_time + - mac + - name + - noise + - noted + - oui + - powersave_enabled + - qos_policy_applied + - radio + - radio_proto + - rssi + - rx_bytes + - rx_bytes-r + - rx_packets + - rx_rate + - signal + - site_id + - tx_bytes + - tx_bytes-r + - tx_packets + - tx_power + - tx_rate + - uptime + - user_id + - usergroup_id + - vlan + +## {% linkable_title Switch %} + +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/upcloud.markdown b/source/_components/upcloud.markdown index 9b5807e536b1..517f2ed39d3d 100644 --- a/source/_components/upcloud.markdown +++ b/source/_components/upcloud.markdown @@ -7,14 +7,25 @@ sidebar: true comments: false sharing: true footer: true -ha_category: System Monitor +ha_category: + - System Monitor + - Binary Sensor + - Switch ha_release: 0.65 logo: upcloud.png ha_iot_class: Cloud Polling +redirect_from: + - /components/binary_sensor.upcloud/ + - /components/switch.upcloud/ --- The `upcloud` component allows you to access the information about your [UpCloud](https://www.upcloud.com/) servers from Home Assistant. +There is currently support for the following device types within Home Assistant: + +- [Binary Sensor](#binary-sensor) +- [Switch](#switch) + ## {% linkable_title Setup %} Set up your API user credentials in your [UpCloud control panel](https://my.upcloud.com/). @@ -45,3 +56,47 @@ scan_interval: type: integer default: 60 {% endconfiguration %} + +## {% linkable_title Binary Sensor %} + +The `upcloud` binary sensor platform allows you to monitor your UpCloud servers. + +To use your UpCloud servers, you first have to set up your [UpCloud hub](#configuration) and then add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: upcloud + servers: + - 002167b7-4cb1-44b7-869f-e0900ddeeae1 + - 00886296-6137-4074-afe3-068e16d89d00 +``` + +{% configuration %} +servers: + description: List of servers you want to monitor. + required: true + type: list +{% endconfiguration %} + +## {% linkable_title Switch %} + +The `upcloud` switch platform allows you to control (start/stop) your UpCloud servers. + +To use your UpCloud servers, you first have to set up your [UpCloud hub](#configuration) and then add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: upcloud + servers: + - 002167b7-4cb1-44b7-869f-e0900ddeeae1 + - 00886296-6137-4074-afe3-068e16d89d00 +``` + +{% configuration %} +servers: + description: List of servers you want to control. + required: true + type: list +{% endconfiguration %} diff --git a/source/_components/upnp.markdown b/source/_components/upnp.markdown index a3c3cd4d3665..1c8aad7a87ce 100644 --- a/source/_components/upnp.markdown +++ b/source/_components/upnp.markdown @@ -14,7 +14,7 @@ ha_release: 0.18 The `upnp` component enables you to collect network statistics from your router such as bytes in/out and packets in/out. This information is provided by the [UPnP](https://en.wikipedia.org/wiki/Universal_Plug_and_Play)/[Internet Gateway Device (IGD) Protocol](https://en.wikipedia.org/wiki/Internet_Gateway_Device_Protocol) if enabled on your router. -The IGD automatically creates port forwarding mappings on your router for Home Assistant, exposing your installation to the internet. The mapping will never automatically expire. Upon stopping Home Assistant, the mapping will be removed from your router. +The IGD can automatically create port forwarding mappings on your router for Home Assistant, exposing your installation to the internet. The mapping will never automatically expire. Upon stopping Home Assistant, the mapping will be removed from your router. Please note that UPnP or NAT-PMP needs to be enabled on your router for this component to work. diff --git a/source/_components/usps.markdown b/source/_components/usps.markdown index 487344d202b3..5d11f98817cc 100644 --- a/source/_components/usps.markdown +++ b/source/_components/usps.markdown @@ -8,29 +8,40 @@ comments: false sharing: true footer: true logo: usps.png -ha_category: Postal Service +ha_category: + - Postal Service + - Camera + - Sensor ha_release: 0.52 ha_iot_class: "Cloud Polling" +redirect_from: + - /components/camera.usps/ + - /components/sensor.usps/ --- The `usps` platform allows one to track deliveries and inbound mail from the [US Postal Service (USPS)](https://www.usps.com/). In addition to having a USPS account, you will need to complete the "Opt-In" process for packages by clicking "Get Started Now" on [this page](https://my.usps.com/mobileWeb/pages/intro/start.action). You must also "Opt-In" to [Informed Delivery](https://informeddelivery.usps.com/box/pages/intro/start.action) to see inbound mail. +There is currently support for the following device types within Home Assistant: + +- [Camera](#camera) +- [Sensor](#sensor) + ## {% linkable_title Prerequisites %} This component requires that a headless-capable web browser is installed on your system - either PhantomJS or Google Chrome. Preferably use Chrome if your operating system supports it, since PhantomJS is deprecated.

- If you are using a Raspberry Pi, you must use PhantomJS. +If you are using a Raspberry Pi, you must use PhantomJS.

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

### {% 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. +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.

Don't use apt-get to install PhantomJS. This version is not compatible. @@ -43,6 +54,7 @@ If you use the PhantomJS option, specify `driver: phantomjs` in your `usps` conf 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) @@ -85,3 +97,26 @@ name:

The USPS sensor logs into the MyUSPS website to scrape package data. It does not use an API.

+ +## {% linkable_title Camera %} + +The `usps` camera component allows you to view the mail piece images made available through USPS via the Informed Delivery service. You must "Opt-In" to [Informed Delivery](https://informeddelivery.usps.com/box/pages/intro/start.action) to see mail images. This works in concert with [USPS sensors](#sensor). + +### {% 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 +camera: + - platform: usps + scan_interval: 5 +``` + +To enable this camera in your installation, set up the USPS component first. + +## {% linkable_title Sensor %} + +The `usps` sensor component allows you to view statistics on incoming mail and packages made available through USPS via the Informed Delivery service. You must "Opt-In" to [Informed Delivery](https://informeddelivery.usps.com/box/pages/intro/start.action) to see mail images. This works in concert with [USPS camera](#camera). + +To enable this sensor in your installation, set up the USPS component first. \ No newline at end of file diff --git a/source/_components/utility_meter.markdown b/source/_components/utility_meter.markdown new file mode 100644 index 000000000000..17d13b8763b6 --- /dev/null +++ b/source/_components/utility_meter.markdown @@ -0,0 +1,174 @@ +--- +layout: page +title: "Utility Meter" +description: "Instructions on how to integrate the Utility Meter into Home Assistant." +date: 2019-01-02 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Sensor +ha_release: 0.87 +ha_iot_class: "Local Push" +logo: energy_meter.png +ha_qa_scale: internal +--- + +The `utility meter` component provides functionality to track consumptions of various utilities (e.g., energy, gas, water, heating). + +From a user perspective, utility meters operate in cycles (usually monthly) for billing purposes. This sensor will track a source sensor values, automatically resetting the meter based on the configured cycle. On reset an attribute will store the previous meter value, providing the means for comparison operations (e.g., "did I spend more or less this month?") or billing estimation (e.g., through a sensor template that multiplies the metered value per the charged unit amount). + +Some utility providers have different tariffs according to time/resource availability/etc. The utility meter enables you to define the various tariffs supported by your utility provider and accounts your consumptions in accordance. When tariffs are defined a new entity will show up indicating the current tariff. In order to change the tariff, the user must call a service, usually through an automation that can be based in time or other external source (eg. a REST sensor). + +

+Sensors created with this component are persistent, so values are retained across restarts of home assistant. The first cycle for each sensor, will be incomplete; a sensor tracking daily usage, will start to be accurate the next day after the component was activated. A sensor tracking monthly usage, will present accurate data starting the first of the next month after being added to home assistant. +

+ +## {% linkable_title Configuration %} + +To enable the Utility Meter Sensor in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +utility_meter: + energy: + source: sensor.energy_in_kwh + cycle: monthly +``` + +{% configuration %} +source: + description: The entity ID of the sensor providing utility readings (energy, water, gas, heating). + required: true + type: string +cycle: + description: How often to reset the counter. Valid values are `hourly`, `daily`, `weekly`, `monthly` and `yearly`. + required: true + type: string +offset: + description: Cycle reset occur at the beginning of the period (0 minutes, 0h00 hours, Monday, day 1, January). This option enables the offsetting of these beginnings. + required: false + default: 0 + type: integer +net_consumption: + description: Set this to True if you would like to treat the source as a net meter. This will allow your counter to go both positive and negative. + required: false + default: false + type: boolean +tariffs: + description: List of tariffs supported by the utility meter. + required: false + default: [] + type: list +{% endconfiguration %} + +## {% linkable_title Services %} + +### {% linkable_title Service `utility_meter.reset` %} + +Reset the Utility Meter. All sensors tracking tariffs will be reset to 0. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | no | String or list of strings that point at `entity_id`s of utility_meters. + +### {% linkable_title Service `utility_meter.next_tariff` %} + +Change the current tariff to the next in the list. +This service must be called by the user for the tariff switching logic to occur (e.g. using an automation) + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | no | String or list of strings that point at `entity_id`s of utility_meters. + +### {% linkable_title Service `utility_meter.select_tariff` %} + +Change the current tariff to the given tariff. +This service must be called by the user for the tariff switching logic to occur (e.g. using an automation) + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | no | String or list of strings that point at `entity_id`s of utility_meters. +| `tariff` | no | String that is equal to one of the defined tariffs. + +# {% linkable_title Advanced Configuration %} + +The following configuration shows an example where 2 utility_meters (`daily_energy` and `monthly_energy`) track daily and monthly energy consumptions. + +Both track the same sensor (`sensor.energy`) which continously monitors the energy consumed. + +4 different sensors will be created, 2 per utility meter and corresponding to each tariff. +Sensor `sensor.daily_energy_peak`, `sensor.daily_energy_offpeak`, `sensor.monthly_energy_peak` and `sensor.monthly_energy_offpeak` will automatically be created to track the consumption in each tariff for the given cycle. + +`utility_meter.daily_energy` and `utility_meter.monthly_energy` entities will track the current tariff and provide a service to change the tariff. + +```yaml +utility_meter: + daily_energy: + source: sensor.energy + cycle: daily + tariffs: + - peak + - offpeak + monthly_energy: + source: sensor.energy + cycle: monthly + tariffs: + - peak + - offpeak +``` + +Assuming your energy provider tariffs are time based according to: + +- *peak*: from 9h00 to 21h00 +- *offpeak*: from 21h00 to 9h00 next day + +a time based automation can be used: + +```yaml +automation: + trigger: + - platform: time + at: '09:00:00' + - platform: time + at: '21:00:00' + action: + - service: utility_meter.next_tariff + entity_id: utility_meter.daily_energy + - service: utility_meter.next_tariff + entity_id: utility_meter.monthly_energy +``` + +## {% linkable_title Advanced Configuration for DSMR users %} + +When using the [DSMR component](https://www.home-assistant.io/components/sensor.dsmr/) to get data from the utility meter, each tariff (peak and off-peak) has a separate sensor. Additionally, there is a separate sensor for gas consumption. The meter switches automatically between tariffs, so an automation is not necessary in this case. But, you do have to setup a few more instances of the `utility_meter` component. + +If you want to create a daily and monthly sensor for each tariff, you have to track separate sensors: + +- `sensor.power_consumption_low` for off-peak power +- `sensor.power_consumption_normal` for peak power +- `sensor.gas_consumption` for gas consumption + +So, tracking daily and monthly consumption for each sensor, will require setting up 6 entries under the `utility_meter` component. + +```yaml +utility_meter: + daily_power_offpeak: + source: sensor.power_consumption_low + cycle: daily + daily_power_peak: + source: sensor.power_consumption_normal + cycle: daily + daily_gas: + source: sensor.gas_consumption + cycle: daily + monthly_power_offpeak: + source: sensor.power_consumption_low + cycle: monthly + monthly_power_peak: + source: sensor.power_consumption_normal + cycle: monthly + monthly_gas: + source: sensor.gas_consumption + cycle: monthly +``` diff --git a/source/_components/vacuum.dyson.markdown b/source/_components/vacuum.dyson.markdown deleted file mode 100644 index 50a09628d7c0..000000000000 --- a/source/_components/vacuum.dyson.markdown +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: page -title: "Dyson 360 Eye" -description: "Instructions on how to integrate your Dyson Eye 360 vacuum robot within Home Assistant." -date: 2017-08-06 10:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: dyson.png -ha_category: Vacuum -ha_iot_class: "Cloud Polling" -ha_release: 0.51 ---- - -The `dyson` vacuum platform allows you to control your Dyson 360 Eye robot vacuum. - -## {% linkable_title Configuration %} - -You have to set up the [Dyson component](/components/dyson/) first. - -### {% linkable_title Component services %} - -This component support the following services (see [Vacuum Cleaner Robots](/components/vacuum/)): -* [`turn_on`](/components/vacuum/#service-vacuumturn_on) -* [`turn_off`](/components/vacuum/#service-vacuumturn_off) -* [`start_pause`](/components/vacuum/#service-vacuumstart_pause) -* [`stop`](/components/vacuum/#service-vacuumstop) -* [`return_to_home`](/components/vacuum/#service-vacuumreturn_to_home) -* [`set_fan_speed`](/components/vacuum/#service-vacuumset_fanspeed). Fan speed values: - * `Quiet` - * `Max` diff --git a/source/_components/vacuum.mqtt.markdown b/source/_components/vacuum.mqtt.markdown index 6ada6edfc034..12c4e2970e37 100644 --- a/source/_components/vacuum.mqtt.markdown +++ b/source/_components/vacuum.mqtt.markdown @@ -22,39 +22,6 @@ To add your MQTT vacuum to your installation, add the following to your `configu # Example configuration.yaml entry vacuum: - platform: mqtt - name: "MQTT Vacuum" - supported_features: - - turn_on - - turn_off - - pause - - stop - - return_home - - battery - - status - - locate - - clean_spot - - fan_speed - - send_command - command_topic: "vacuum/command" - battery_level_topic: "vacuum/state" - battery_level_template: "{{ value_json.battery_level }}" - charging_topic: "vacuum/state" - charging_template: "{{ value_json.charging }}" - cleaning_topic: "vacuum/state" - cleaning_template: "{{ value_json.cleaning }}" - docked_topic: "vacuum/state" - docked_template: "{{ value_json.docked }}" - error_topic: "vacuum/state" - error_template: "{{ value_json.error }}" - fan_speed_topic: "vacuum/state" - fan_speed_template: "{{ value_json.fan_speed }}" - set_fan_speed_topic: "vacuum/set_fan_speed" - fan_speed_list: - - min - - medium - - high - - max - send_command_topic: 'vacuum/send_command' ``` {% configuration %} @@ -191,8 +158,55 @@ payload_not_available: required: false type: string default: offline +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation. + required: false + type: string {% endconfiguration %} +### {% linkable_title Full configuration example %} + +{% raw %} +```yaml +# Example configuration.yaml entry +vacuum: + - platform: mqtt + name: "MQTT Vacuum" + supported_features: + - turn_on + - turn_off + - pause + - stop + - return_home + - battery + - status + - locate + - clean_spot + - fan_speed + - send_command + command_topic: "vacuum/command" + battery_level_topic: "vacuum/state" + battery_level_template: "{{ value_json.battery_level }}" + charging_topic: "vacuum/state" + charging_template: "{{ value_json.charging }}" + cleaning_topic: "vacuum/state" + cleaning_template: "{{ value_json.cleaning }}" + docked_topic: "vacuum/state" + docked_template: "{{ value_json.docked }}" + error_topic: "vacuum/state" + error_template: "{{ value_json.error }}" + fan_speed_topic: "vacuum/state" + fan_speed_template: "{{ value_json.fan_speed }}" + set_fan_speed_topic: "vacuum/set_fan_speed" + fan_speed_list: + - min + - medium + - high + - max + send_command_topic: 'vacuum/send_command' +``` +{% endraw %} + ### {% linkable_title Default MQTT Protocol %} The above configuration for this component expects an MQTT protocol like the following. @@ -202,6 +216,7 @@ The above configuration for this component expects an MQTT protocol like the fol MQTT topic: `vacuum/command` Possible MQTT payloads: + - `turn_on` - Begin cleaning - `turn_off` - Turn the Vacuum off - `return_to_base` - Return to base/dock @@ -215,6 +230,7 @@ Possible MQTT payloads: MQTT topic: `vacuum/set_fan_speed` Possible MQTT payloads: + - `min` - Minimum fan speed - `medium` - Medium fan speed - `high` - High fan speed @@ -231,6 +247,7 @@ MQTT payload for `send_command` can be an arbitrary value handled by the vacuum' MQTT topic: `vacuum/state` MQTT payload: + ```json { "battery_level": 61, @@ -243,5 +260,6 @@ MQTT payload: ``` ### {% 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 deleted file mode 100644 index 9ed678cfb61f..000000000000 --- a/source/_components/vacuum.neato.markdown +++ /dev/null @@ -1,34 +0,0 @@ ---- -layout: page -title: "Neato Robotics Vacuum" -description: "Instructions on how to integrate a Neato Botvac Connected Vacuum within Home Assistant." -date: 2017-10-18 16:11 -sidebar: true -comments: false -sharing: true -footer: true -logo: neato.png -ha_category: Vacuum -ha_release: 0.57 -ha_iot_class: "Cloud Polling" -redirect_from: /components/sensor.neato/ ---- - -The `neato` vacuum platform allows you to control your [Neato Botvac Connected](https://www.neatorobotics.com/robot-vacuum/botvac-connected-series/). -The status will contain attributes on the robots last clean session. - -

-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: - -- `start` -- `pause` -- `stop` -- `return_to_base` -- `locate` diff --git a/source/_components/vacuum.xiaomi_miio.markdown b/source/_components/vacuum.xiaomi_miio.markdown index 2c7911175042..4a806f3298d1 100644 --- a/source/_components/vacuum.xiaomi_miio.markdown +++ b/source/_components/vacuum.xiaomi_miio.markdown @@ -13,7 +13,7 @@ ha_release: 0.51 ha_iot_class: "Local Polling" --- -The `xiaomi miio` vacuum platform allows you to control the state of your [Xiaomi Mi Robot Vacuum](https://www.mi.com/roomrobot/). +The `xiaomi_miio` vacuum platform allows you to control the state of your [Xiaomi Mi Robot Vacuum](https://www.mi.com/roomrobot/). Currently supported services are: @@ -25,6 +25,7 @@ Currently supported services are: - `clean_spot` - `set_fan_speed` - remote control of your robot. +- `xiaomi_clean_zone` ## {% linkable_title Configuration %} @@ -64,45 +65,113 @@ In addition to all of the services provided by the `vacuum` component (`start`, - `xiaomi_remote_control_stop` - `xiaomi_remote_control_move` - `xiaomi_remote_control_move_step` +- `xiaomi_clean_zone` ### {% linkable_title Service `vacuum.xiaomi_remote_control_start` %} Start the remote control mode of the robot. You can then move it with `remote_control_move`; when done, call `remote_control_stop`. -| Service data attribute | Optional | Description | -|---------------------------|----------|-------------------------------------------------------| -| `entity_id` | yes | Only act on specific robot; default targets all | +| Service data attribute | Optional | Description | +|---------------------------|----------|---------------------------------------------------| +| `entity_id` | yes | Only act on a specific robot; default targets all | ### {% linkable_title Service `vacuum.xiaomi_remote_control_stop` %} Exit the remote control mode of the robot. -| Service data attribute | Optional | Description | -|---------------------------|----------|-------------------------------------------------------| -| `entity_id` | yes | Only act on specific robot; default targets all | +| Service data attribute | Optional | Description | +|---------------------------|----------|---------------------------------------------------| +| `entity_id` | yes | Only act on a specific robot; default targets all | ### {% linkable_title Service `vacuum.xiaomi_remote_control_move` %} Remote control the robot. Please ensure you first set it in remote control mode with `remote_control_start`. -| Service data attribute | Optional | Description | -|---------------------------|----------|-------------------------------------------------------| -| `entity_id` | yes | Only act on specific robot; default targets all | -| `velocity` | no | Speed: between -0.29 and 0.29 | -| `rotation` | no | Rotation: between -179 degrees and 179 degrees | -| `duration` | no | The number of milliseconds that the robot should move for | +| Service data attribute | Optional | Description | +|---------------------------|----------|-----------------------------------------------------------| +| `entity_id` | yes | Only act on a specific robot; default targets all | +| `velocity` | no | Speed: between -0.29 and 0.29 | +| `rotation` | no | Rotation: between -179 degrees and 179 degrees | +| `duration` | no | The number of milliseconds that the robot should move for | ### {% linkable_title Service `vacuum.xiaomi_remote_control_move_step` %} Enter remote control mode, make one move, stop, and exit remote control mode. +| Service data attribute | Optional | Description | +|---------------------------|----------|-----------------------------------------------------------| +| `entity_id` | yes | Only act on a specific robot; default targets all | +| `velocity` | no | Speed: between -0.29 and 0.29 | +| `rotation` | no | Rotation: between -179 degrees and 179 degrees | +| `duration` | no | The number of milliseconds that the robot should move for | + +### {% linkable_title Service `vacuum.xiaomi_clean_zone` %} + +Start the cleaning operation in the areas selected for the number of repeats indicated. + | Service data attribute | Optional | Description | |---------------------------|----------|-------------------------------------------------------| | `entity_id` | yes | Only act on specific robot; default targets all | -| `velocity` | no | Speed: between -0.29 and 0.29. | -| `rotation` | no | Rotation: between -179 degrees and 179 degrees. | -| `duration` | no | The number of milliseconds that the robot should move for | +| `zone` | no | List of zones. Each zone is an array of 4 integer value. Example: [[23510,25311,25110,26361]] | +| `repeats` | no | Number of cleaning repeats for each zone between 1 and 3. | +Example of `vacuum.xiaomi_clean_zone` use: + +Inline array: +```yaml +automation: + - alias: Test vacuum zone3 + trigger: + - event: start + platform: homeassistant + condition: [] + action: + - service: vacuum.xiaomi_clean_zone + data_template: + entity_id: vacuum.xiaomi_vacuum + repeats_template: '{{states.input_number.vacuum_passes.state|int}}' + zone: [[30914,26007,35514,28807], [20232,22496,26032,26496]] +``` +Array with inline zone: +```yaml +automation: + - alias: Test vacuum zone3 + trigger: + - event: start + platform: homeassistant + condition: [] + action: + - service: vacuum.xiaomi_clean_zone + data_template: + entity_id: vacuum.xiaomi_vacuum + repeats_template: '{{states.input_number.vacuum_passes.state|int}}' + zone: + - [30914,26007,35514,28807] + - [20232,22496,26032,26496] +``` +Array mode: +```yaml +automation: + - alias: Test vacuum zone3 + trigger: + - event: start + platform: homeassistant + condition: [] + action: + - service: vacuum.xiaomi_clean_zone + data: + entity_id: vacuum.xiaomi_vacuum + repeats: 1 + zone: + - - 30914 + - 26007 + - 35514 + - 28807 + - - 20232 + - 22496 + - 26032 + - 26496 +``` ## {% linkable_title Attributes %} In addition to [all of the attributes provided by the `vacuum` component](/components/vacuum/#attributes), @@ -134,23 +203,23 @@ 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.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. +As per Version 5.4.49 the Android Mi Home app stores the token readable in the log files. It can easily be retrieved in the folder Smarthome on in the Android device. Just open the text file inside the Smarthome/logs folder and search for the token.

-The iPhone app still stores the token in the sqlite db as of v4.9.1 (Nov 7, 2018). +The iPhone app still stores the token in the SQLite db as of v4.10.2 (Dec 22, 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 easily via a hidden menu item at the Mi-Home app or using the `miio` command line tool.

-#### {% linkable_title Miio command line tool %} +### {% linkable_title Miio command line tool %} -You can install the command line tool with: +You can install the command line tool using the following command: ```bash npm install -g miio ``` -Discovering devices on current network +Discovering devices on the current network: ```bash miio discover @@ -170,12 +239,12 @@ Support: At least basic The information output is: -- __Device ID__ - the unique identifier of the device, does not change if the device is reset. -- __Model ID__ - the model id if it could be determined, this indicates what type of device it is -- __Address__ - the IP that the device has on the network -- __Token__ - the token of the device or ??? if it could not be automatically determined +- `Device ID` - The unique identifier of the device, does not change if the device is reset. +- `Model ID`- The model id if it could be determined, this indicates what type of device it is. +- `Address` - The IP that the device has on the network. +- `Token` - The token of the device or `???` if it could not be automatically determined. -#### {% linkable_title Windows and Android %} +### {% linkable_title Windows and Android %} To fetch the token follow these instructions depending on your mobile phone platform. @@ -183,14 +252,14 @@ To fetch the token follow these instructions depending on your mobile phone plat 2. Download and extract the [MiToolKit.zip](https://github.com/ultrara1n/MiToolkit/releases). 3. Enable developer mode and USB debugging on the Android phone and plug it into the computer. 4. Change the MiToolKit language to English if you need to. -5. Click "Extract Token" +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) +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) %} +### {% linkable_title Linux and Android (not rooted) %} -Follow the pairing process using your phone and Mi-Home app. You will be able to retrieve the token from a SQLite file inside your phone. +Follow the pairing process using your phone and Mi-Home app. You will be able to retrieve the token from an SQLite file inside your phone. Before you begin you need to install `libffi-dev` and `libssl-dev` by running the command below. This is needed for `python-miio` to be installed correctly. @@ -198,7 +267,7 @@ Before you begin you need to install `libffi-dev` and `libssl-dev` by running th sudo apt-get install libffi-dev libssl-dev ``` -If your Home Assistant installation is running in a [Virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant), make sure you activate it by running the commands below. +If your Home Assistant installation is running in a [virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant), make sure you activate it by running the commands below. ```bash sudo -u homeassistant -H -s @@ -209,17 +278,23 @@ To fetch the token follow these instructions depending on your mobile phone plat 1. Configure the robot with the Mi-Home app. 2. Enable developer mode, USB debugging and plug the Android phone into the computer. -3. Get ADB e.g., `apt-get install android-tools-adb` or `apt-get install adb` -4. `adb devices` should list your device. Consult ADB manual if necessary. -5. Issue a backup command via adb: `adb backup -noapk com.xiaomi.smarthome -f backup.ab` (set a password if prompted on your phone). Some devices may required single quotes in the command `adb backup '-noapk com.xiaomi.smarthome -f backup.ab'` -6. Download the 'ADB Backup Extractor' from [here](https://sourceforge.net/projects/adbextractor/files/latest/download) -7. Extract the data from the backup: `java -jar Android\ Backup\ Utilities/Android\ Backup\ Extractor/android-backup-extractor-20171005-bin/abe.jar unpack backup.ab unpacked.tar` (enter the password, if prompted) -8. Untar the unpacked data: `tar -xvf unpacked.tar` -9. `sqlite3 apps/com.xiaomi.smarthome/db/miio2.db 'select token from devicerecord where name like "%Vacuum%";'` returns the token for your Xiaomi vacuum bot. - -#### {% linkable_title Linux and Android (rooted!) %} - -Follow the pairing process using your phone and Mi-Home app. You will be able to retrieve the token from a SQLite file inside your phone. +3. Get ADB by running `apt-get install android-tools-adb` or `apt-get install adb`. +4. `adb devices` should list your device. Consult the ADB manual if necessary. +5. Issue a backup command via adb: `adb backup -noapk com.xiaomi.smarthome -f backup.ab` (set a password if prompted on your phone). Some devices may require single quotes in the command `adb backup '-noapk com.xiaomi.smarthome -f backup.ab'`. +6. Download the ['ADB Backup Extractor'](https://sourceforge.net/projects/adbextractor/files/latest/download). +7. Extract the data from the backup: (enter the password, if prompted) + ```bash + java -jar Android\ Backup\ Utilities/Android\ Backup\ Extractor/android-backup-extractor-20171005-bin/abe.jar unpack backup.ab unpacked.tar + ``` +8. Untar the unpacked data: `tar -xvf unpacked.tar`. +9. The following command returns the token for your Xiaomi vacuum bot: + ```bash + sqlite3 apps/com.xiaomi.smarthome/db/miio2.db 'select token from devicerecord where name like "%Vacuum%";' + ``` + +### {% linkable_title Linux and Android (rooted!) %} + +Follow the pairing process using your phone and Mi-Home app. You will be able to retrieve the token from an SQLite file inside your phone. Before you begin you need to install `libffi-dev` and `libssl-dev` by running the command below. This is needed for `python-miio` to be installed correctly. @@ -227,7 +302,7 @@ Before you begin you need to install `libffi-dev` and `libssl-dev` by running th sudo apt-get install libffi-dev libssl-dev ``` -If your Home Assistant installation is running in a [Virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant), make sure you activate it by running the commands below. +If your Home Assistant installation is running in a [virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant), make sure you activate it by running the commands below. ```bash sudo -u homeassistant -H -s @@ -238,40 +313,51 @@ To fetch the token follow these instructions depending on your mobile phone plat 1. Configure the robot with the Mi-Home app. 2. Enable developer mode, USB debugging and root permission only for ADB on the Android phone and plug it into the computer. -3. Get ADB f.e. `apt-get install android-tools-adb` -4. `adb devices` should list your device -5. `adb root` (does work for development builds only: ones with `ro.debuggable=1`) -6. `adb shell` (for those using Magisk based root the previous command won't work. After entering a shell, type `su` to enter the root shell) -7. `echo "select name,localIP,token from devicerecord;" | sqlite3 /data/data/com.xiaomi.smarthome/databases/miio2.db` returns a list of all registered devices including IP address and token. +3. Get ADB (e.g, using `apt-get install android-tools-adb`). +4. The command `adb devices` should list your device. +5. The command `adb root` (does work for development builds only: ones with `ro.debuggable=1`). +6. The command `adb shell` (for those using Magisk based root the this command won't work. After entering a shell, type `su` to enter the root shell and try again). +7. The following command returns a list of all registered devices including IP address and token: + ```bash + echo "select name,localIP,token from devicerecord;" | sqlite3 /data/data/com.xiaomi.smarthome/databases/miio2.db + ``` -#### {% linkable_title iOS %} +### {% linkable_title iOS %} 1. Configure the robot with the Mi-Home app. 2. Using iTunes, create an unencrypted backup of your iPhone. 3. Install [iBackup Viewer](https://www.imactools.com/iphonebackupviewer/), open it, and open your backup. 4. Open the "Raw Data" module. 5. Navigate to `com.xiaomi.mihome`. -6. Search for a file that looks like this: `123456789_mihome.sqlite` – note that `_mihome.sqlite` is *not* the correct file. +6. Search for a file that looks like this: `123456789_mihome.sqlite` (Note: `_mihome.sqlite` is *not* the correct file). 7. Save this file to your filesystem. 8. Install [DB Browser for SQLite](https://sqlitebrowser.org/). 9. Open DB Browser and load the `.sqlite` file you saved from your backup. 10. Click on the `Execute SQL` tab. -11. Input and run this query: `SELECT ZTOKEN FROM ZDEVICE WHERE ZMODEL LIKE "%vacuum%"` +11. Input and run this query: + ```sql + SELECT ZTOKEN FROM ZDEVICE WHERE ZMODEL LIKE "%vacuum%" + ``` 12. Copy the returned 32-digit hexadecimal string to your clipboard. -13. Open `Terminal` and execute this command: `echo '0: ' | xxd -r -p | openssl enc -d -aes-128-ecb -nopad -nosalt -K 00000000000000000000000000000000` +13. Open `Terminal` and execute this command: + ```bash + echo '0: ' | xxd -r -p | openssl enc -d -aes-128-ecb -nopad -nosalt -K 00000000000000000000000000000000 + ``` 14. Use the resulting string as your token. -#### {% linkable_title Bluestacks %} +### {% linkable_title Bluestacks %} 1. Configure the robot with the Mi-Home app. 2. Install [BlueStacks](https://www.bluestacks.com). 3. Set up the Mi-Home app in BlueStacks and login to synchronize devices. 4. Use [BlueStacks Tweaker](https://forum.xda-developers.com/general/general/bluestacks-tweaker-2-tool-modifing-t3622681) to access the filesystem and retrieve the token. -#### {% linkable_title Selecting token manually (Windows and Android)%} +### {% linkable_title Selecting token manually (Windows and Android) %} + +The following instruction explained an alternative method, in case the MiToolKit didn't work. + +Software Required: -The following instruction explained an alternativ way, if MiToolKit didn't work. - Software Required: - Android ADB is contained in [Android SDK](https://developer.android.com/studio/releases/platform-tools) - [Mi-Home version 5.0.30](https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-30-release/) - [Android Backup Extractor](https://sourceforge.net/projects/adbextractor/) @@ -280,15 +366,15 @@ The following instruction explained an alternativ way, if MiToolKit didn't work. 2. Open MiHome, log-in and add your devices 3. Enable USB-Debugging on your Android 4. Create a backup from your MiHome App, by using adb - ```bash - adb backup com.xiaomi.smarthome - ``` - Now the backup App opens on you Android-Device. You don't need to set a password, just click save. + ```bash + adb backup com.xiaomi.smarthome + ``` + Now the backup App opens on you Android-Device. You don't need to set a password, just click save. 5. Extract the backup-file with android-backup-extractor - ```bash - java -jar abe.jar unpack backup.ab backup.tar - ``` - After that, you kann open the file with WinRaR or what ever you like. + ```bash + java -jar abe.jar unpack backup.ab backup.tar + ``` + After that, you kann open the file with WinRaR or what ever you like. 6. Go to \apps\com.xiaomi.smarthome\db 7. Open miio2.db with SQLite Browser 8. You can find your device tokens in "devicerecord" table diff --git a/source/_components/velbus.markdown b/source/_components/velbus.markdown index c5cb790ee999..7751a97e4161 100644 --- a/source/_components/velbus.markdown +++ b/source/_components/velbus.markdown @@ -8,13 +8,30 @@ comments: false sharing: true footer: true logo: velbus.png -ha_category: Hub +ha_category: + - Hub + - Binary Sensor + - Climate + - Sensor + - Switch ha_iot_class: "Local Push" ha_release: "0.50" +redirect_from: + - /components/climate.velbus/ + - /components/sensor.velbus/ + - /components/binary_sensor.velbus/ + - /components/switch.velbus/ --- The `velbus` component supports the Velbus USB, Velbus serial and a TCP/IP gateway. +There is currently support for the following device types within Home Assistant: + +- Binary Sensor +- Climate +- Sensor +- Switch + ## {% linkable_title Configuration %} The gateway needs to be configured by adding the following lines to your `configuration.yaml` file: diff --git a/source/_components/velux.markdown b/source/_components/velux.markdown index 2a6731b25e3b..2f9d9f2d25cc 100644 --- a/source/_components/velux.markdown +++ b/source/_components/velux.markdown @@ -8,12 +8,24 @@ comments: false sharing: true footer: true logo: velux.png -ha_category: Hub +ha_category: + - Scene + - Cover ha_release: 0.49 ha_iot_class: "Local Polling" +redirect_from: + - /components/scene.velux/ + - /components/cover.velux/ --- -[Velux](http://www.velux.com) integration for Home Assistant allows you to connect to a Velux KLF 200 interface, to control [io-homecontrol](http://www.io-homecontrol.com) devices like windows and blinds. The module allows you to start scenes configured within KLF 200. +[Velux](http://www.velux.com) integration for Home Assistant allows you to connect to a Velux KLF 200 interface, to control [io-homecontrol](http://www.io-homecontrol.com) devices like windows and blinds. The module allows you to start scenes configured within KLF 200. + +At least firmware version > 2.0.0.0 is required on the KLF 200 device. The firmware images may be obtained [here](https://www.velux.com/api/klf200) and may be imported via the webinterface of your KLF 200. + +There is currently support for the following device types within Home Assistant: + +- Cover +- Scene ## {% linkable_title Configuration %} @@ -23,7 +35,7 @@ A `velux` section must be present in the `configuration.yaml` file and contain t # Example configuration.yaml entry velux: host: "192.168.1.23" - password: "velux123" + password: "VELUX_PASSWORD" ``` {% configuration %} @@ -32,7 +44,7 @@ host: required: true type: string password: - description: The password of the KLF 200 interface. + description: The password of the KLF 200 interface. Note that this is the same as the WiFi password (in the upper box on the back), *not* the password for the web login. required: true type: string {% endconfiguration %} diff --git a/source/_components/vera.markdown b/source/_components/vera.markdown index 94de436693dc..93f02e8d9155 100644 --- a/source/_components/vera.markdown +++ b/source/_components/vera.markdown @@ -8,13 +8,42 @@ comments: false sharing: true footer: true logo: vera.png -ha_category: Hub +ha_category: + - Hub + - Binary Sensor + - Cover + - Light + - Lock + - Scene + - Sensor + - Switch + - Climate ha_release: pre 0.7 +redirect_from: + - /components/binary_sensor.vera/ + - /components/cover.vera/ + - /components/light.vera/ + - /components/lock.vera/ + - /components/scene.vera/ + - /components/sensor.vera/ + - /components/switch.vera/ + - /components/climate.vera/ --- The [Vera](http://getvera.com) hub is a controller mainly connecting to Z-Wave devices. -Switches, Lights (inc Dimmers), Locks, Sensors, Binary sensors, and Scenes are supported - and will be automatically added when HA connects to your Vera controller. +There is currently support for the following device types within Home Assistant: + +- Binary Sensor +- Cover +- Light +- Lock +- Scene +- Sensor +- Switch +- Climate + +and will be automatically added when HA connects to your Vera controller. ## {% linkable_title Configuration %} @@ -56,3 +85,13 @@ vera: ### {% linkable_title Using Z-Wave devices in automation %} If you want to use a Z-Wave device from the Vera controller in Home Assistant automation, you'll need the entity id. In the Home Assistant UI you'll find all entities listed under the service developer tool icon icon of the Developer Tools section. Look for entities that contain 'Vera Device Id' in their attributes, and you'll find the entity id on the left. + +### {% linkable_title Sensor %} + +The `vera` platform allows you to get data from your [Vera](http://getvera.com/) sensors from within Home Assistant. + +Please note that some vera sensors (such as _motion_ and _flood_ sensors) are _armable_ which means that vera will send alerts (email messages to txts) when they are _armed_ and change state. + +Home Assistant will display the state of these sensors regardless of the _armed_ state. + +To allow you to change the _armed state_ - Home Assistant will create a switch as well as a sensor for each _Armable_ sensor. You can hide these switches using customization if you wish. \ No newline at end of file diff --git a/source/_components/verisure.markdown b/source/_components/verisure.markdown index 68064ebe2425..0deb2c115e4f 100644 --- a/source/_components/verisure.markdown +++ b/source/_components/verisure.markdown @@ -8,23 +8,37 @@ comments: false sharing: true footer: true logo: verisure.png -ha_category: Hub +ha_category: + - Hub + - Alarm + - Binary Sensor + - Camera + - Lock + - Sensor + - Switch ha_release: pre 0.7 ha_iot_class: "Cloud Polling" +redirect_from: + - /components/alarm_control_panel.verisure/ + - /components/binary_sensor.verisure/ + - /components/camera.verisure/ + - /components/lock.verisure/ + - /components/sensor.verisure/ + - /components/switch.verisure/ --- Home Assistant has support to integrate your [Verisure](https://www.verisure.com/) devices. -We support: +There is currently support for the following device types within Home Assistant: - * [Alarm](/components/alarm_control_panel.verisure/) - * [Smartplugs](/components/switch.verisure/) - * Reading from thermometers and hygrometers integrated in various [devices](/components/sensor.verisure/) - * Mouse Detector - * [Locks](/components/lock.verisure/) - * [Door & Window](/components/binary_sensor.verisure/) +- Alarm +- Camera +- Switch (Smartplug) +- Sensor (Thermometers, Hygrometers and Mouse detectors) +- Lock +- Binary Sensor (Door & Window) - ## {% linkable_title Configuration %} +## {% linkable_title Configuration %} To integrate Verisure with Home Assistant, add the following section to your `configuration.yaml` file: @@ -93,3 +107,26 @@ giid: required: false type: string {% endconfiguration %} + +## {% linkable_title Alarm Control Panel %} + +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 first, with the instruction above. + +The `changed_by` attribute enables one to be able to take different actions depending on who armed/disarmed the alarm in [automation](/getting-started/automation/). + +```yaml +automation: + - alias: Alarm status changed + trigger: + - platform: state + entity_id: alarm_control_panel.alarm_1 + action: + - service: notify.notify + data_template: + message: > + {% raw %}Alarm changed from {{ trigger.from_state.state }} + to {{ trigger.to_state.state }} + by {{ trigger.to_state.attributes.changed_by }}{% endraw %} +``` \ No newline at end of file diff --git a/source/_components/volvooncall.markdown b/source/_components/volvooncall.markdown index fe00e91f204f..44d210d355d0 100644 --- a/source/_components/volvooncall.markdown +++ b/source/_components/volvooncall.markdown @@ -52,22 +52,47 @@ volvooncall: region: cn ``` -A more advanced example for setting the vehicle name and selecting what resources to display: +{% configuration %} +username: + description: The username associated with your Volvo On Call account. + required: true + type: string +password: + description: The password for your given Volvo On Call account. + required: true + type: string +region: + description: The region where the Volvo is registered. Needs to be set for users in North America or China. + required: false + type: string +service_url: + description: The service URL to use for Volvo On Call. Normally not necessary to specify. + required: false + type: string +mutable: + description: If set to true, include components that can make changes to the vehicle (unlock, start engine, start heater etc). + required: false + default: true + type: boolean +name: + description: Make it possible to provide a name for the vehicles. + required: false + type: string +resources: + description: A list of resources to display (defaults to all available). + required: false + type: list +scandinavian_miles: + description: If set to true, Scandinavian miles ("mil") are used for distances and fuel range. + required: false + type: boolean + default: false +{% endconfiguration %} -```yaml -# Example configuration.yaml entry -volvooncall: - username: YOUR_USERNAME - password: YOUR_PASSWORD - name: - abc123: 'Batmobile' - resources: - - odometer - - lock - - heater -``` +### {% linkable_title Available Resources %} + +The list of currently available resources: -Currently available resources: - `position` - `lock` - `heater` @@ -105,39 +130,19 @@ Currently available resources: - `any_door_open` - `any_window_open` -{% configuration %} -username: - description: The username associated with your Volvo On Call account. - required: true - type: string -password: - description: The password for your given Volvo On Call account. - required: true - type: string -region: - description: The region where the Volvo is registered. Needs to be set for users in North America or China. - required: false - type: string -service_url: - description: The service URL to use for Volvo On Call. Normally not necessary to specify. - required: false - type: string -mutable: - description: If set to true, include components that can make changes to the vehicle (unlock, start engine, start heater etc). - required: false - default: true - type: boolean -name: - description: Make it possible to provide a name for the vehicles. - required: false - type: string -resources: - description: A list of resources to display (defaults to all available). - required: false - type: list -scandinavian_miles: - description: If set to true, Scandinavian miles ("mil") are used for distances and fuel range. - required: false - type: boolean - default: false -{% endconfiguration %} +## {% linkable_title Advanced Examples %} + +A more advanced example for setting the vehicle name and selecting what resources to display: + +```yaml +# Example configuration.yaml entry +volvooncall: + username: YOUR_USERNAME + password: YOUR_PASSWORD + name: + abc123: 'Batmobile' + resources: + - odometer + - lock + - heater +``` diff --git a/source/_components/vultr.markdown b/source/_components/vultr.markdown index f5313ff065e0..d960c2829727 100644 --- a/source/_components/vultr.markdown +++ b/source/_components/vultr.markdown @@ -8,14 +8,28 @@ comments: false sharing: true footer: true featured: false -ha_category: System Monitor +ha_category: + - System Monitor + - Binary Sensor + - Sensor + - Switch ha_release: "0.58" logo: vultr.png ha_iot_class: "Cloud Polling" +redirect_from: + - /components/binary_sensor.vultr/ + - /components/sensor.vultr/ + - /components/switch.vultr/ --- The `vultr` component allows you to access information about and interact with your [Vultr](https://www.vultr.com) subscriptions (Virtual Private Servers) from Home Assistant. +There is currently support for the following device types within Home Assistant: + +- [Binary Sensor](#binary-sensor) +- [Sensor](#sensor) +- [Switch](#switch) + ## {% linkable_title Configuration %} Obtain your API key from your [Vultr Account](https://my.vultr.com/settings/#settingsapi). @@ -38,3 +52,151 @@ api_key: required: true type: string {% endconfiguration %} + +## {% linkable_title Binary sensor %} + +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. + +

+The following examples assume a subscription that has an ID of `123456` and a label of `Web Server` +

+ +Minimal `configuration.yaml` (produces `binary_sensor.vultr_web_server`): + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: vultr + subscription: 123456 +``` + +{% configuration %} +subscription: + description: The subscription you want to monitor, this can be found in the URL when viewing a server. + required: true + type: string +name: + description: The name you want to give this binary sensor. + required: false + default: "Vultr {subscription label}" + type: string +{% endconfiguration %} + +### {% linkable_title Full example %} + +Full `configuration.yaml` (produces `binary_sensor.totally_awesome_server`): + +```yaml +binary_sensor: + - platform: vultr + name: totally_awesome_server + subscription: 12345 +``` + +## {% linkable_title Sensor %} + +The `vultr` sensor platform will allow you to view current bandwidth usage and pending charges against your [Vultr](https://www.vultr.com/) subscription. + +To use this sensor, you must set up your Vultr hub. + +

+The following examples assume a subscription that has an ID of `123456` and a label of `Web Server` +

+ +Minimal `configuration.yaml` (produces `sensor.vultr_web_server_current_bandwidth_used` and `sensor.vultr_web_server_pending_charges`): + +```yaml +sensor: + - platform: vultr + subscription: 123456 +``` + +{% configuration %} +subscription: + description: The Vultr subscription to monitor, this can be found in the URL when viewing a subscription. + required: true + type: string +name: + description: The name to give this sensor. + required: false + default: "Vultr {Vultr subscription label} {monitored condition name}" + type: string +monitored_conditions: + description: List of items you want to monitor for each subscription. + required: false + detault: All conditions + type: list + keys: + current_bandwidth_used: + description: The current (invoice period) bandwidth usage in Gigabytes (GB). + temperature: + pending_charges: The current (invoice period) charges that have built up for this subscription. Value is in US Dollars (US$). +{% endconfiguration %} + +Full `configuration.yaml` using `{}` to format condition name (produces `sensor.server_current_bandwidth_used` and `sensor.server_pending_charges`): + +```yaml +sensor: + - platform: vultr + name: Server {} + subscription: 123456 + monitored_conditions: + - current_bandwidth_used + - pending_charges +``` + +Custom `configuration.yaml` with only one condition monitored (produces `sensor.web_server_bandwidth`): + +```yaml +sensor: + - platform: vultr + name: Web Server Bandwidth + subscription: 123456 + monitored_conditions: + - current_bandwidth_used +``` + +## {% linkable_title Switch %} + +The `vultr` switch platform allows you to control (start/stop) your [Vultr](https://www.vultr.com/) subscription. + +To control your Vultr subscription, you first have to set up your Vultr hub. + +### {% linkable_title Configuration %} + +Minimal `configuration.yaml` (produces `switch.vultr_web_server`): + +```yaml +# Example configuration.yaml entry +switch: + - platform: vultr + subscription: YOUR_SUBSCRIPTION_ID +``` + +{% configuration %} +subscription: + description: List of droplets you want to control. + required: true + type: string +name: + description: The name you want to give this switch. + required: false + default: "Vultr {subscription label}" + type: string +{% endconfiguration %} + +### {% linkable_title Additional Examples %} + +Full example that produces `switch.amazing_server`, assuming a subscription that has an ID of `123456` and a label of `Web Server`: + +```yaml +# Example configuration.yaml entry +switch: + - platform: vultr + name: Amazing Server + subscription: 123456 +``` \ No newline at end of file diff --git a/source/_components/w800rf32.markdown b/source/_components/w800rf32.markdown index 47602c33abcf..3a87e0b591ae 100644 --- a/source/_components/w800rf32.markdown +++ b/source/_components/w800rf32.markdown @@ -8,15 +8,19 @@ comments: false sharing: true footer: true logo: w800rf32.png -ha_category: Hub +ha_category: + - Hub + - Binary Sensor ha_release: 0.83 ha_iot_class: "Local Push" +redirect_from: + - /components/binary_sensor.w800rf32/ --- -The `w800rf32` component supports W800RF32 devices by [WGL Designs](http://www.wgldesigns.com/w800.html) which -communicate in the frequency range of 310MHz or if you are outside Canada or the U.S., 433.92 MHz. +The `w800rf32` component supports W800RF32 devices by [WGL Designs](http://www.wgldesigns.com/w800.html) which +communicate in the frequency range of 310MHz or if you are outside Canada or the U.S., 433.92 MHz. -The W800 family of RF receivers are designed to receive X10 RF signals generated from X10 products: Palm Pad +The W800 family of RF receivers are designed to receive X10 RF signals generated from X10 products: Palm Pad remotes, key chain remotes, Hawkeye motion detectors, and many, many other X10 RF devices. To enable W800rf32 in your installation, add the following to your `configuration.yaml` file: @@ -34,5 +38,47 @@ device: type: string {% endconfiguration %} +## {% linkable_title Binary Sensor %} +The `w800rf32` platform supports X10 RF binary sensors such as Palm Pad remotes, key chain remotes, Hawkeye motion detectors, and many, many other X10 RF devices. Some that have specifically been used with this are the KR19A keychain, MS16A motion detector and the RSS18 four button wall mount keypad. +## {% linkable_title Setting up your devices %} + +Once you have set up your [w800rf32 hub](/components/w800rf32/), add the binary sensors to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: w800rf32 + devices: + a1: + name: motion_hall + a2: + name: motion_kitchen +``` + +{% configuration %} +devices: + description: A list of devices. + required: true + type: map + 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 + 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 +{% endconfiguration %} + +Binary sensors have only two states, "on" and "off". Many door or window opening sensors will send a signal each time the door/window is open or closed. However, depending on their hardware or on their purpose, some sensors are only able to signal their "on" state: + +- Most motion sensors send a signal each time they detect motion. They stay "on" for a few seconds and go back to sleep, ready to signal other motion events. Usually, they do not send a signal when they go back to sleep. + +For those devices, use the *off_delay* parameter. It defines a delay after which a device will go back to an "Off" state. That "Off" state will be fired internally by Home Assistant, just as if the device fired it by itself. If a motion sensor can only send signals once every 5 seconds, sets the *off_delay* parameter to *seconds: 5*. \ No newline at end of file diff --git a/source/_components/water_heater.econet.markdown b/source/_components/water_heater.econet.markdown index 5ac129c4c381..5e2c439d5463 100644 --- a/source/_components/water_heater.econet.markdown +++ b/source/_components/water_heater.econet.markdown @@ -14,8 +14,7 @@ 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 platform 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 vacation mode. ## {% linkable_title Configuration %} @@ -46,9 +45,9 @@ You can use the service `econet.add_vacation` to create a new vacation for your | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | -| `entity_id` | yes | The entity id of the water heater to add the vaction to. -| `start_date` | yes | This is a Unix timestamp for when the vaction should start. -| `end_date` | yes | this is a Unix timestamp for when the vaction should end. +| `entity_id` | yes | The entity id of the water heater to add the vacation to. +| `start_date` | yes | This is a Unix timestamp for when the vacation should start. +| `end_date` | yes | this is a Unix timestamp for when the vacation 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. @@ -56,11 +55,11 @@ The Unix timestamps can be obtained from the `input_datetime` component. This wi ### {% 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 vacations 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. +| `entity_id` | yes | The entity id of the water heater to remove the vacation 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 index 56917dcc57b1..7e5d08687d63 100644 --- a/source/_components/water_heater.markdown +++ b/source/_components/water_heater.markdown @@ -9,9 +9,8 @@ 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 @@ -23,6 +22,7 @@ water_heater: ## {% 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`

@@ -31,13 +31,13 @@ Not all water heater services may be available for your platform. Be sure to che ### {% linkable_title Service `water_heater.set_temperature` %} -Set target temperature of water heater device +Sets target temperature of water heater device. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | yes | String or list of strings that point at `entity_id`'s of water heater devices to control. Else targets all. | `temperature` | no | New target temperature for water heater -| `operation_mode` | yes | Operation mode to set temperature to. This defaults to current_operation mode if not set, or set incorrectly. +| `operation_mode` | yes | Operation mode to set the temperature to. This defaults to current_operation mode if not set, or set incorrectly. #### {% linkable_title Automation example %} @@ -63,7 +63,7 @@ Set operation mode for water heater device | `entity_id` | yes | String or list of strings that point at `entity_id`'s of water heater devices to control. Else targets all. | `operation_mode` | no | New value of operation mode -#### {% linkable_title Automation example %} +#### {% linkable_title Automation example %} ```yaml automation: @@ -77,15 +77,16 @@ automation: operation_mode: eco ``` -### {% linkable_title Service `water_heater.turn_away_mode_on` %} +### {% linkable_title Service `water_heater.set_away_mode` %} -Turn away mode on for water heater device +Turn away mode on or off for water heater device | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | yes | String or list of strings that point at `entity_id`'s of water heater devices to control. Else targets all. +| `away_mode` | no | New value of away mode. 'on'/'off' or True/False -#### {% linkable_title Automation example %} +#### {% linkable_title Automation example %} ```yaml automation: @@ -93,28 +94,8 @@ automation: platform: time at: "07:15:00" action: - - service: water_heater.turn_away_mode_on + - service: water_heater.set_away_mode data: entity_id: water_heater.demo + away_mode: true ``` - -### {% linkable_title Service `water_heater.turn_away_mode_off` %} - -Trun away mode off for water heater device - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | yes | String or list of strings that point at `entity_id`'s of water heater devices to control. Else targets all. - -#### {% linkable_title Automation example %} - -```yaml -automation: - trigger: - platform: time - at: "07:15:00" - action: - - service: water_heater.turn_away_mode_off - data: - entity_id: water_heater.demo -``` \ No newline at end of file diff --git a/source/_components/water_heater.wink.markdown b/source/_components/water_heater.wink.markdown deleted file mode 100644 index a22084a181f0..000000000000 --- a/source/_components/water_heater.wink.markdown +++ /dev/null @@ -1,28 +0,0 @@ ---- -layout: page -title: "Wink Water Heater" -description: "Instructions on how to setup the Wink water heaters within Home Assistant." -date: 2016-11-01 22:36 -sidebar: true -comments: false -sharing: true -footer: true -logo: wink.png -ha_category: Water heater -ha_release: 0.32 -ha_iot_class: "Cloud Polling" ---- - -The Wink water heater platform allows you to get data from your [Wink](http://www.wink.com/) Water Heaters. - -The requirement is that you have setup [Wink](/components/wink/). - - -### {% linkable_title Supported water heaters %} - -- Rheem Econet water heaters (No Wink hub required) - - -

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

diff --git a/source/_components/waterfurnace.markdown b/source/_components/waterfurnace.markdown index 4798cd81ec75..d260a96553bd 100644 --- a/source/_components/waterfurnace.markdown +++ b/source/_components/waterfurnace.markdown @@ -11,27 +11,28 @@ logo: waterfurnace.png ha_category: Sensor ha_release: 0.62 ha_iot_class: "Cloud Polling" +redirect_frome: + - /components/sensor.waterfurnace/ --- The `waterfurnace` component communicates with the WaterFurnace Symphony website's WebSocket to show you many of the sensors in your system. While not an official API, this is the same backend the Symphony website is based on, and should be reasonably stable. The sensors provided include: - - Thermostat Setpoint - - Thermostat Current Temp - - Leaving Air Temp - - Entering Water Loop Temp - - Current Humidity - - Current Humidity Setpoint - - Total system power (in Watts) - - Furnace Mode - - Compressor Power - - Fan Power - - Aux Power - - Loop Pump Power - - Compressor Speed - - Fan Speed - +- Thermostat Setpoint +- Thermostat Current Temp +- Leaving Air Temp +- Entering Water Loop Temp +- Current Humidity +- Current Humidity Setpoint +- Total system power (in Watts) +- Furnace Mode +- Compressor Power +- Fan Power +- Aux Power +- Loop Pump Power +- Compressor Speed +- Fan Speed ## {% linkable_title Configuration %} @@ -55,8 +56,8 @@ password: type: string {% endconfiguration %} -#### {% linkable_title Limitations %} +## {% 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. +The WebSocket interface used by this module requires active polling to prevent 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 0014d5e24da2..a13ef02fc639 100644 --- a/source/_components/watson_iot.markdown +++ b/source/_components/watson_iot.markdown @@ -22,10 +22,11 @@ a gateway device in your IoT platform instance. For instructions on how to do this check the [official documentation](https://console.bluemix.net/docs/services/IoT/gateways/dashboard.html#IoT_connectGateway) which provides the details on doing this. After you register the gateway device for your home-assistant you'll need 4 pieces of information: - - Organization ID - - Gateway device Type - - Gateway device ID - - Authentication Token + +- Organization ID +- Gateway device Type +- Gateway device ID +- Authentication Token With this basic information you can configure the component: diff --git a/source/_components/weather.buienradar.markdown b/source/_components/weather.buienradar.markdown index 505c84bae90e..a6552408949c 100644 --- a/source/_components/weather.buienradar.markdown +++ b/source/_components/weather.buienradar.markdown @@ -59,7 +59,7 @@ weather: # Force 'Meetstation Volkel' to be used: latitude: 51.65 longitude: 5.70 - forecast: True + forecast: true ```

diff --git a/source/_components/weather.ecobee.markdown b/source/_components/weather.ecobee.markdown deleted file mode 100644 index 33f1983ecd53..000000000000 --- a/source/_components/weather.ecobee.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "Ecobee Weather" -description: "Instructions on how to setup the Ecobee weather within Home Assistant." -date: 2017-11-29 21:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: ecobee.png -ha_category: Weather -ha_release: 0.59 -ha_iot_class: "Local Push" ---- - -To get your Ecobee weather component working with Home Assistant, follow the instructions for the general [Ecobee component](/components/ecobee/). diff --git a/source/_components/weather.metoffice.markdown b/source/_components/weather.metoffice.markdown index 37d41463dbd7..afadc9803ca5 100644 --- a/source/_components/weather.metoffice.markdown +++ b/source/_components/weather.metoffice.markdown @@ -13,7 +13,7 @@ ha_release: 0.42 ha_iot_class: "Cloud Polling" --- -The `metoffice` weather platform uses the Met Office's [DataPoint API][datapoint] for weather data. +The `metoffice` weather platform uses the Met Office's [DataPoint API](http://www.metoffice.gov.uk/datapoint) for weather data. ## {% linkable_title Configuration %} diff --git a/source/_components/weather.openweathermap.markdown b/source/_components/weather.openweathermap.markdown index 1d83077ef80e..6bebcff19f3f 100644 --- a/source/_components/weather.openweathermap.markdown +++ b/source/_components/weather.openweathermap.markdown @@ -39,7 +39,7 @@ name: type: string default: OpenWeatherMap mode: - description: "Can specify `hourly` or `daily`. Select `hourly` for a three-hour forecast or `daily` for daily forecast." + description: "Can specify `hourly`, `daily` of `freedaily`. Select `hourly` for a three-hour forecast, `daily` for daily forecast or `freedaily` for a five days forecast with the free tier." required: false type: string default: "`hourly`" diff --git a/source/_components/weather.smhi.markdown b/source/_components/weather.smhi.markdown deleted file mode 100644 index f06d56635d64..000000000000 --- a/source/_components/weather.smhi.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -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 -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. diff --git a/source/_components/weather.yweather.markdown b/source/_components/weather.yweather.markdown index 382cbf265090..10d8ed2c91bd 100644 --- a/source/_components/weather.yweather.markdown +++ b/source/_components/weather.yweather.markdown @@ -13,41 +13,5 @@ ha_release: 0.47 ---

-The Yahoo Weather API is being [retired](https://developer.yahoo.com/weather/?guccounter=1). A replacement is the [`darksky` weather](/components/weather.darksky/). +The Yahoo Weather API **has been** [retired](https://developer.yahoo.com/weather/?guccounter=1). A replacement is the [`darksky` weather](/components/weather.darksky/).

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

-Use of the Yahoo Weather API should not exceed reasonable request volume. Access is limited to 2000 signed calls per day. -

- -## {% linkable_title Configuration %} - -The `woeid` (Where On Earth ID) for your location, as shown in the example below. You can find your WOEID by copying the numeric digits at the end of the URL for your location at [Yahoo Weather](https://www.yahoo.com/news/weather/). If you don't add a WOEID, it will be generated from Home Assistant's latitude and longitude. - -To add Yahoo Weather to your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -weather: - - platform: yweather -``` - -{% configuration %} -woeid: - description: Your Where On Earth ID, see above for all the info. - required: false - type: integer -name: - description: The name of the sensor. To easily recognize each sensor when adding more than one Yahoo weather sensor, it is recommended to use the name option. - required: false - type: string - default: yweather -{% endconfiguration %} - -

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

- -Details about the API are available in the [Yahoo! Developer Network](https://developer.yahoo.com/weather/). diff --git a/source/_components/wemo.markdown b/source/_components/wemo.markdown index fb16345b3838..0f8ca973c458 100644 --- a/source/_components/wemo.markdown +++ b/source/_components/wemo.markdown @@ -8,25 +8,42 @@ comments: false sharing: true footer: true logo: belkin_wemo.png -ha_category: Hub +ha_category: + - Hub + - Binary Sensor + - Fan + - Light + - Switch featured: true ha_release: pre 0.7 +redirect_from: + - /components/fan.wemo/ + - /components/binary_sensor.wemo/ + - /components/light.wemo/ + - /components/switch.wemo/ --- 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. +There is currently support for the following device types within Home Assistant: + +- Binary Sensor +- Fan (Belkin WeMo (Holmes) Smart Humidifier) +- Light (Belkin WeMo LED lights and [Smart Dimmer Switch](http://www.belkin.com/us/F7C059-Belkin/p/P-F7C059/)) +- Switch ([Belkin WeMo Switches](https://www.belkin.com/us/Products/home-automation/c/wemo-home-automation/) and includes support for Wemo enabled [Mr. Coffee](http://www.mrcoffee.com/wemo-landing-page.html) smart coffee makers.) + ## {% linkable_title Configuration %} {% configuration %} - static: - description: One or more static IP adresses for WeMo to use - required: false - type: list discovery: description: Setting this value to false will prevent the automatic discovery of WeMo devices by the wemo platform and the discovery platform (static devices will still be discovered) required: false type: boolean default: true + static: + description: One or more static IP adresses for WeMo to use + required: false + type: list {% endconfiguration %} Supported devices will be automatically discovered if the optional `discovery` configuration item is omitted or set to true or if the `discovery` component is enabled. If the `discovery` configuration item is set to false, then automatic discovery of WeMo devices is disabled both for the `wemo` component and for the `discovery` component. Loading the `wemo` component with the `discovery` configuration item omitted or set to true will scan the local network for WeMo devices, even if you are not using the `discovery` component. @@ -66,3 +83,35 @@ wemo: - 192.168.1.23:52001 - 192.168.52.172:52002 ``` + +## {% linkable_title Fan %} + +The `wemo` platform allows you to control your Belkin WeMo humidifiers from within Home Assistant. This includes support for the [Holmes Smart Humidifier](https://www.holmesproducts.com/wemo-humidifier.html). + +WeMo devices are automatically discovered if the `discovery` component is enabled. + +### {% linkable_title Attributes %} + +There are several attributes which can be used for automations and templates: + +| Attribute | Description | +| --------- | ----------- | +| `current_humidity` | An integer that indicates the current relative humidity percentage of the room, as determined by the device's onboard humidity sensor. +| `fan_mode` | String that indicates the current fan speed setting, as reported by the WeMo humidifier. +| `filter_expired` | A boolean that indicates whether the filter has expired and needs to be replaced. +| `filter_life` | The used life of the filter (as a percentage). +| `target_humidity` | An integer that indicates the desired relative humidity percentage (this is constrained to the humidity settings of the device, which are 45, 50, 55, 60, and 100). +| `water level` | String that indicates whether the water level is Good, Low, or Empty. + +### {% linkable_title Services %} + +There are several services which can be used for automations and control of the humidifier: + +| Service | Description | +| --------- | ----------- | +| `set_speed` | Calling this service sets the fan speed (entity_id and speed are required parameters, and speed must be one of the following: off, low, medium, or high). When selecting low for the speed, this will map to the WeMo humidifier speed of minimum. When selecting high for the speed, this will map to the WeMo humidifier speed of maximum. The WeMo humidifier speeds of low and high are unused due to constraints on which fan speeds Home Assistant supports. +| `toggle` | Calling this service will toggle the humidifier between on and off states. +| `turn_off` | Calling this service will turn the humidifier off (entity_id is required). +| `turn_on` | Calling this service will turn the humidifier on and set the speed to the last used speed (defaults to medium, entity_id is required). +| `wemo_set_humidity` | Calling this service will set the desired relative humidity setting on the device (entity_id is a required list of 1 or more entities to set humidity on, and target_humidity is a required float value between 0 and 100 (this value will be rounded down and mapped to one of the valid desired humidity settings of 45, 50, 55, 60, or 100 that are supported by the WeMo humidifier)). +| `wemo_reset_filter_life` | Calling this service will reset the humdifier's filter life back to 100% (entity_id is a required list of 1 or more entities to reset the filter life on). Call this service when you change the filter on your humidifier. \ No newline at end of file diff --git a/source/_components/wink.markdown b/source/_components/wink.markdown index b26f93bf50c7..f854ce8c769e 100644 --- a/source/_components/wink.markdown +++ b/source/_components/wink.markdown @@ -1,17 +1,41 @@ --- layout: page title: "Wink" -description: "Instructions on how to setup the Wink hub within Home Assistant." +description: "Instructions on how to set up the Wink hub within Home Assistant." date: 2015-01-20 22:36 sidebar: true comments: false sharing: true footer: true logo: wink.png -ha_category: Hub +ha_category: + - Hub + - Alarm + - Binary Sensor + - Climate + - Cover + - Fan + - Light + - Lock + - Scene + - Sensor + - Switch + - Water heater featured: true ha_iot_class: "Cloud Polling" ha_release: pre 0.7 +redirect_from: + - /components/alarm_control_panel.wink/ + - /components/binary_sensor.wink/ + - /components/climate.wink/ + - /components/cover.wink/ + - /components/fan.wink/ + - /components/light.wink/ + - /components/lock.wink/ + - /components/scene.wink/ + - /components/sensor.wink/ + - /components/switch.wink/ + - /components/water_heater.wink/ --- [Wink](http://www.wink.com/) is a home automation hub that can control a whole wide range of devices on the market. Or, as they say in their own words: @@ -22,19 +46,31 @@ ha_release: pre 0.7 Home Assistant integrates with the Wink API and automatically sets up any switches, lights, locks, fans, climate devices (thermostats, air conditioners, and water heaters), covers, sensors, alarms, and sirens. -Check the related components pages for actual devices that are supported. +There is currently support for the following device types within Home Assistant: -### {% linkable_title Authenticate using [developer.wink.com](https://developer.wink.com) %} +- Alarm +- Binary Sensor +- Climate +- Cover +- Fan +- Light +- Lock +- Scene +- Sensor +- Switch +- Water heater -You need to setup a developer account with Wink. This process can take a few days to get approved. +## {% linkable_title Authenticate using [developer.wink.com](https://developer.wink.com) %} + +You need to set up a developer account with Wink. This process can take a few days to get approved. Wink requests three pieces of information from the user when they sign up for a developer account. -1. `Name:` This can be anything, for example "Home Assistant" +1. `Name:` This can be anything, for example, "Home Assistant" 2. `Website:` The external address of your Home Assistant instance. If not externally accessible you can use your email address. -3. `Redirect URI:` This should be "http://192.168.1.5:8123/auth/wink/callback" replacing the IP with the internal IP of your Home Assistant box. +3. `Redirect URI:` This should be `http://192.168.1.5:8123/auth/wink/callback` replacing the IP with the internal IP of your Home Assistant box. -No settings are required in the configuration.yaml other than `wink:` this is because you will be guided through setup via the configurator on the frontend. +No settings are required in the `configuration.yaml` other than `wink:` this is because you will be guided through setup via the configurator on the frontend.

When using the configurator make sure the initial setup is performed on the same local network as the Home Assistant server, if not from the same box Home Assistant is running on. This will allow for authentication redirects to happen correctly. @@ -44,7 +80,7 @@ When using the configurator make sure the initial setup is performed on the same wink: ``` -### {% linkable_title Full oauth authentication (legacy) %} +## {% linkable_title Full oauth authentication (legacy) %} This should be used for users that obtained their client_id and client_secret via email from Wink support prior to [developer.wink.com's](https://developer.wink.com) existence. @@ -87,7 +123,7 @@ Local control: - Wink's local control API isn't officially documented and therefore could be broken by a hub update. For these reasons `local_control` defaults to `false`. - Using local control doesn't appear to make commands any quicker, but does function in an internet/Wink outage. - Local control is also only available for the Wink hub v1 and v2, not the Wink relay. -- Local control isn't used during start-up of Home Assistant; this means initial setup requires an active internet connection. +- Local control isn't used during the start-up of Home Assistant; this means initial setup requires an active internet connection. - Local control requests are first sent to the controlling hub. If a request fails, that request will attempt to go online.

@@ -95,23 +131,23 @@ It is possible for the hub to get into a bad state where it stops accepting loca The following error will be logged if the hub is rejecting local requests. -``` +```txt Error sending local control request. Sending request online ```

-### {% linkable_title Service `refresh_state_from_wink` %} +## {% linkable_title Service `refresh_state_from_wink` %} The Wink component only obtains the device states from the Wink API once, during startup. All updates after that are pushed via a third party called PubNub. On rare occasions where an update isn't pushed device states can be out of sync. -You can use the service wink/refresh_state_from_wink to pull the most recent state from the Wink API for all devices. If `local_control` is set to `True` states will be pulled from the devices controlling hub, not the online API. +You can use the service wink/refresh_state_from_wink to pull the most recent state from the Wink API for all devices. If `local_control` is set to `true` states will be pulled from the devices controlling hub, not the online API. -### {% linkable_title Service `pull_newly_added_devices_from_wink` %} +## {% linkable_title Service `pull_newly_added_devices_from_wink` %} You can use the service wink/add_new_devices to pull any newly paired Wink devices to an already running instance of Home-Assistant. Any new devices will also be added if Home-Assistant is restarted. -### {% linkable_title Service `delete_wink_device` %} +## {% linkable_title Service `delete_wink_device` %} You can use the service wink/delete_wink_device to remove/unpair a device from Wink. @@ -119,7 +155,7 @@ You can use the service wink/delete_wink_device to remove/unpair a device from W | ---------------------- | -------- | ----------- | | `entity_id` | no | String that points at the `entity_id` of device to delete. -### {% linkable_title Service `pair_new_device` %} +## {% linkable_title Service `pair_new_device` %} You can use the service wink/pair_new_device to pair a new device to your Wink hub/relay @@ -133,7 +169,7 @@ You can use the service wink/pair_new_device to pair a new device to your Wink h Calling service wink/pull_newly_added_wink_devices after a device is paired will add that new device to Home Assistant. The device will also show up on the next restart of Home Assistant.

-### {% linkable_title Service `rename_wink_device` %} +## {% linkable_title Service `rename_wink_device` %} You can use the service wink/rename_wink_device to change the name of a device. @@ -150,17 +186,15 @@ Home Assistant entity_ids for Wink devices are based on the Wink device's name. The Wink hub, by default, can only be accessed via the cloud. This means it requires an active internet connection and you will experience delays when controlling and updating devices (~3s).

- -### Custom Wink devices and their services +## {% linkable_title Custom Wink devices and their services %} - GoControl siren and strobe - Dome siren/chime/strobe - Quirky Nimbus (Legacy device) These can no longer be officially added to your Wink account - ### {% linkable_title Service `set_siren_auto_shutoff` %} -You can use the service wink/set_siren_auto_shutoff to set how long the siren will sound before shuting off. +You can use the service wink/set_siren_auto_shutoff to set how long the siren will sound before shutting off. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | @@ -189,7 +223,7 @@ You can use the service wink/set_chime_volume to set the volume for the chime on | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `volume` | no | String. One of ["low", "medium", "high"] -| `entity_id` | yes | String or list of strings that point at `entity_id`s of siren/chime. +| `entity_id` | yes | String or list of strings that point at `entity_id`s of the siren/chime. Example: @@ -279,7 +313,7 @@ script: sequence: - service: wink.set_siren_strobe_enabled data: - enabled: False + enabled: false ``` ### {% linkable_title Service `set_chime_strobe_enabled` %} @@ -299,7 +333,7 @@ script: sequence: - service: wink.set_chime_strobe_enabled data: - enabled: False + enabled: false ``` ### {% linkable_title Service `set_nimbus_dial_state` %} @@ -353,3 +387,298 @@ script: entity_id: wink.nimbus_dial_1 rotation: 'ccw' ``` + +## {% linkable_title Alarm Control Panel %} + +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/) from above. + +### {% linkable_title Supported devices %} + +- Canary all-in-one security camera + +

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

+ +## {% linkable_title Binary Sensor %} + +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/) from above. + +### {% linkable_title Supported Binary sensor devices %} + +- Smoke and CO detectors (No Wink hub required for Nest) +- Window/Door sensors +- Motion sensors +- Ring Door bells (No hub required) +- Liquid presence sensors +- Z-wave lock key codes +- Lutron connected bulb remote buttons +- Wink Relay buttons and presence detection +- Wink spotter loudness and vibration (No Wink hub required) +- Wink hub devices connection status. This includes any paired hubs like Hue, Wink v1, Wink v2, Wink Relay... +- Dropcam sensors + +

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

+ +## {% linkable_title Climate %} + +The Wink climate platform allows you to get data from your [Wink](http://www.wink.com/) thermostats and air conditioners. + +The requirement is that you have setup [Wink](/components/wink/) from above. + +### {% linkable_title Supported climate devices %} + +- Nest (No Wink hub required) +- Ecobee (No Wink hub required) +- Sensi (No Wink hub required) +- Carrier (Unconfirmed) +- Honeywell (No Wink hub required) +- Generic Z-Wave +- Quirky Aros window AC unit + +

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

+ +## {% linkable_title Cover %} + +Wink Cover garage door functionality varies on the product. Home Assistant can open, close, and view state of GoControl/Linear openers. For Chamberlain MyQ-enabled openers, Home Assistant is limited to show current state (open or closed) only using this Wink cover. This restriction was imposed by Chamberlain for third party control. Wink suggests that MyQ customers should contact Chamberlain directly to inquire about expanding permissions. + +The [MyQ Cover](/components/cover.myq/) does provide full functionality for opening and closing Chamberlain MyQ-enabled garage doors. If installed along with the Wink Component, a duplicate garage door entity may exist. In that case, the semi-functional Wink garage door entity can be hidden via customize.yaml. + +The requirement is that you have setup [Wink](/components/wink/) from above. + +### {% linkable_title Supported cover devices %} + +- Bali window treatments +- Lutron shades +- Pella motorized blinds and shades +- GoControl garage door opener +- Chamberlain MyQ (Limited functionality) (No Wink hub required) + +

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

+ +## {% linkable_title Fan %} + +The Wink fan platform allows you to control your [Wink](http://www.wink.com/) fans. + +The requirement is that you have setup [Wink](/components/wink/) from above. + +### {% linkable_title Supported fan devices %} + +- Home Decorator Wink-enabled Gardinier ceiling fan +- Hampton Bay ceiling fan module + +

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

+ +## {% linkable_title Light %} + +The `wink` light platform allows you to use your [Wink](http://www.wink.com/) lights. + +The requirement is that you have setup [Wink](/components/wink/) from above. + +### {% linkable_title Supported light devices %} + +- Z-wave switches with dimming +- Hue +- Lightify +- GE link +- Wink light groups (User created groups of lights) + +

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

+ +## {% linkable_title Lock %} + +The Wink lock platform allows you to control your [Wink](http://www.wink.com/) locks. + +The requirement is that you have setup [Wink](/components/wink/) from above. + +### {% linkable_title Supported lock devices %} + +- Kwikset +- Schlage +- August (No Wink hub required) (August Connect required) +- Generic Z-wave + +

+The following services have only been confirmed on Schlage locks. +

+ +### {% linkable_title Service `wink_set_lock_alarm_mode` %} + +You can use the service wink/wink_set_lock_alarm_mode to set the alarm mode of your lock. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `mode` | no | String one of tamper, activity, or forced_entry +| `entity_id` | yes | String or list of strings that point at `entity_id`s of locks. + +Example: + +```yaml +script: + set_locks_to_tamper: + sequence: + - service: wink.wink_set_lock_alarm_mode + data: + mode: "tamper" +``` + +### {% linkable_title Service `wink_set_lock_alarm_sensitivity` %} + +You can use the service wink/wink_set_lock_alarm_sensitivity to set the alarm sensitivity of your lock. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `sensitivity` | no | String one of low, medium_low, medium, medium_high, high. +| `entity_id` | yes | String or list of strings that point at `entity_id`s of locks. + +Example: + +```yaml +script: + set_locks_to_high_sensitivity: + sequence: + - service: wink.wink_set_lock_alarm_sensitivity + data: + sensitivity: "high" +``` + +### {% linkable_title Service `wink_set_lock_alarm_state` %} + +You can use the service wink/wink_set_lock_alarm_state to set the alarm state of your lock. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `enabled` | no | Boolean enabled or disabled, true or false +| `entity_id` | yes | String or list of strings that point at `entity_id`s of locks. + +Example: + +```yaml +script: + disable_all_locks_alarm: + sequence: + - service: wink.wink_set_lock_alarm_state + data: + enabled: false +``` + +### {% linkable_title Service `wink_set_lock_beeper_state` %} + +You can use the service wink/wink_set_lock_beeper_state to set the beeper state of your lock. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `enabled` | no | Boolean enabled or disabled, true or false +| `entity_id` | yes | String or list of strings that point at `entity_id`s of locks. + +Example: + +```yaml +script: + disable_all_locks_beepers: + sequence: + - service: wink.wink_set_lock_beeper_state + data: + enabled: false +``` + +### {% linkable_title Service `wink_set_lock_vacation_mode` %} + +You can use the service wink/wink_set_lock_vacation_mode to set the vacation mode of your lock. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `enabled` | no | Boolean enabled or disabled, true or false +| `entity_id` | yes | String or list of strings that point at `entity_id`s of locks. + +Example: + +```yaml +script: + enabled_vacation_mode_on_all_locks: + sequence: + - service: wink.wink_set_lock_vacation_mode + data: + enabled: false +``` + +### {% linkable_title Service `wink_add_new_lock_key_code` %} + +You can use the service wink/wink_add_new_lock_key_code to add a new user code to your Wink lock. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | no | String or list of strings that point at `entity_id`s of locks. +| `name` | no | the name of the new key code +| `code` | no | The new code. Must match length of existing codes. + +

+Calling service wink/pull_newly_added_wink_devices will add the new key code to Home Assistant. The device will also show up on the next restart of Home Assistant. +

+ +

+If supported by your lock, a binary sensor will be created for each user key code you have defined. These key codes will turn on when the code is entered and automatically turn off after a few seconds. +

+ +## {% linkable_title Sensor %} + +The Wink sensor platform allows you to get data from your [Wink](http://www.wink.com/) sensors. + +The requirement is that you have setup [Wink](/components/wink/) from above. + +### {% linkable_title Supported sensor devices %} + +- Wink Relay temperature, proximity, and humidity +- Wink Spotter temperature, humidity, and brightness (No Wink hub required) +- Wink Porkfolio balance (No Wink hub required) +- Wink eggminder (No Wink hub required) +- Nest protect Smoke and CO severity (No confirmation that this is actually reported) (No Wink hub required) +- Motion sensor temperature +- Quirky refuel propane tank monitor (No Wink hub required) + +

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

+ +## {% linkable_title Switch %} + +The Wink switch platform allows you to control your [Wink](http://www.wink.com/) switches. + +The requirement is that you have set up [Wink](/components/wink/) from above. + +## {% linkable_title Supported switch devices %} + +- Wink Pivot power genius (No Wink hub required) +- non-dimming Z-wave in-wall switches (dimming switches show up as lights) +- Wink Relay load controlling switches +- Rachio sprinkler controller (No Wink hub required) +- iHome smart plug (No Wink hub required) +- Wink switch groups (User created groups of switches) + +## {% linkable_title Water heater %} + +The Wink water heater platform allows you to get data from your [Wink](http://www.wink.com/) Water Heaters. + +The requirement is that you have set up [Wink](/components/wink/) from above. + +## {% linkable_title Supported water heaters %} + +- Rheem Econet water heaters (No Wink hub required) + +

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

\ No newline at end of file diff --git a/source/_components/wirelesstag.markdown b/source/_components/wirelesstag.markdown index bd92d2ee6ce1..58fa2f4611b7 100644 --- a/source/_components/wirelesstag.markdown +++ b/source/_components/wirelesstag.markdown @@ -8,13 +8,27 @@ sidebar: true sharing: true footer: true logo: wirelesstag.png -ha_category: Hub +ha_category: + - Hub + - Binary Sensor + - Sensor + - Switch ha_iot_class: "Local Push and Cloud Polling" ha_release: 0.68 +redirect_from: + - /components/binary_sensor.wirelesstag/ + - /components/sensor.wirelesstag/ + - /components/switch.wirelesstag/ --- The `wirelesstag` implementation allows you to integrate your [wirelesstag.net](http://wirelesstag.net) sensors tags in Home Assistant. +There is currently support for the following device types within Home Assistant: + +- [Binary Sensor](#binary-sensor) +- [Sensor](#sensor) +- [Switch](#switch) + ## {% linkable_title Configuration %} To enable tags set up with your [wirelesstag.net](http://wirelesstag.net) account, add the following to your `configuration.yaml` file: @@ -37,13 +51,116 @@ password: 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. -

To enable local push notifications from the Tags Manager, you need to add the IP address of the Tags Manager into whitelist in `http` component; i.e., add it to `trusted_networks`. See the [HTTP](/components/http/) for details. - Additionally, you need add at least one [WirelessTag binary sensor](/components/binary_sensor.wirelesstag/) in config to start receiving local push notifications. + Additionally, you need add at least one [WirelessTag binary sensor](#binary-sensor) in config to start receiving local push notifications.

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

+ +## {% linkable_title Binary Sensor %} + +To enable the binary sensor platform for your tags, set up with your [wirelesstag.net](http://wirelesstag.net) account. Add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: wirelesstag + monitored_conditions: + - presence + - door + - battery +``` + +{% configuration %} +monitored_conditions: + description: The conditions types to monitor. + required: true + type: list + keys: + presence: + description: On means in range, Off means out of range. + motion: + description: On when a movement was detected, Off when clear. + door: + description: On when a door is open, Off when the door is closed. + cold: + description: On means temperature become too cold, Off means normal. + heat: + description: On means hot, Off means normal. + dry: + description: On means too dry (humidity), Off means normal. + wet: + description: On means too wet (humidity), Off means normal. + light: + description: On means light detected, Off means no light. + moisture: + description: On means moisture detected (wet), Off means no moisture (dry). + battery: + description: On means tag battery is low, Off means normal. +{% endconfiguration %} + +## {% linkable_title Sensor %} + +To enable the sensor platform for your tags, set up with your [wirelesstag.net](http://wirelesstag.net) account. Add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: wirelesstag + monitored_conditions: + - temperature + - humidity +``` + +{% configuration %} +monitored_conditions: + description: The metrics types to monitor. + required: true + type: list + keys: + temperature: + description: Value is in Celsius or Fahrenheit (according to your settings at Tag Manager). + humidity: + description: "Humidity level in %." + moisture: + description: "Water level/soil moisture in % (applicable for Water Tag only)." + light: + description: Brightness in lux (if supported by tag). +{% endconfiguration %} + +## {% linkable_title Switch %} + +To enable the switch platform for your tags, set up with your [wirelesstag.net](http://wirelesstag.net) account. Add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: wirelesstag + monitored_conditions: + - motion + - humidity +``` + +{% configuration %} +monitored_conditions: + description: The metrics types to control. + required: true + type: list + keys: + temperature: + description: Control arm/disarm temperature monitoring. + humidity: + description: Control arm/disarm humidity monitoring. + motion: + description: Control arm/disarm motion and door open/close events monitoring. + light: + description: Control monitoring of light changes. + moisture: + description: Control monitoring of water level/soil moisture for water sensor. +{% endconfiguration %} + +Arm/Disarm of motion switch is required to receive motion and door binary sensors events. +Others are only needed if you want to receive push notifications from tags on a specific range of changes in temperature, humidity, light or moisture. \ No newline at end of file diff --git a/source/_components/wunderlist.markdown b/source/_components/wunderlist.markdown index beaa633da561..aed87d67f494 100644 --- a/source/_components/wunderlist.markdown +++ b/source/_components/wunderlist.markdown @@ -12,16 +12,14 @@ ha_category: Calendar ha_release: 0.84 --- -The `wunderlist` component allows you to create tasks in [Wunderlist](https://www.wunderlist.com) from Home Assistant. You can use this if you want Home Assistant to send you a task that -you should not forget, e.g., Congratulate Dani. +The `wunderlist` component allows you to create tasks in [Wunderlist](https://www.wunderlist.com) from Home Assistant. You can use this if you want Home Assistant to send you a task that you should not forget, e.g., Congratulate Dani. ## {% linkable_title Setup %} -Wunderlist API uses OAuth2, so you need to obtain a `client_id` and an `access_token`. +Wunderlist API uses OAuth2, so you need to obtain a `client_id` and an `access_token`. There are two ways: - - -1. Go to the [Wunderlist IOT app page](https://wunderlist-iot.herokuapp.com), login with your Wunderlist account and accept the application permissions. + +1. Go to the [Wunderlist IOT app page](https://wunderlist-iot.herokuapp.com), log in with your Wunderlist account and accept the application permissions. It will print for you the `client_id` and the `access_token`. 2. Or you can create your own application and `access_token` following the instructions at the [Wunderlist developer page](https://developer.wunderlist.com/). @@ -29,20 +27,16 @@ Store the parameters in your Home Assistant configuration: ```yaml # Example configuration.yaml entry - wunderlist: client_id: YOUR_CLIENT_ID access_token: YOUR_ACCESS_TOKEN - ``` - {% configuration %} client_id: description: The ID of your Wunderlist application (OAuth2). required: true type: string - access_token: description: A token for your Wunderlist personal account (For the ``client_id`` application). required: true @@ -51,15 +45,15 @@ access_token: ## {% linkable_title Creating tasks with service `create_task`%} -This component offers a new service domain `wunderlist` with the service `create_task`. -You can call this service with the argument `list_name` the argument `name` and the optional parameter `starred` to create a new task. - +This component offers a new service domain `wunderlist` with the service `create_task`. +You can call this service with the argument `list_name` the argument `name` and the optional parameter `starred` to create a new task. -|Service data attribute | Optional | Description | Example | -|-----------------------|----------|-------------|---------| +| Service data attribute | Optional | Description | Example | +|------------------------|----------|-------------|---------| | list_name | no | Name of the list | "Shopping list" | name | no | Name of the new task | "Spanish Jam" | | starred | yes | Create the task starred or not | false | ## {% linkable_title Disclaimer %} + This product uses the Wunderlist API but is not endorsed or certified by Wunderlist. diff --git a/source/_components/xiaomi_aqara.markdown b/source/_components/xiaomi_aqara.markdown index e4843b644c5a..f797f8f6b3e1 100644 --- a/source/_components/xiaomi_aqara.markdown +++ b/source/_components/xiaomi_aqara.markdown @@ -16,34 +16,34 @@ redirect_from: /components/xiaomi/ The `xiaomi_aqara` component allows you to integrate [Xiaomi](http://www.mi.com/en/) Aqara-compatible devices into Home Assistant. -#### {% linkable_title Supported Devices %} +## {% linkable_title Supported Devices %} -- Xiaomi Mijia Gateway (lumi.gateway.v2, lumi.gateway.v3) - Aqara Air Conditioning Companion (lumi.acpartner.v3) - Aqara Intelligent Door Lock (lock.aq1) -- Temperature and Humidity Sensor (1st and 2nd generation) -- Motion Sensor (1st and 2nd generation) -- Door and Window Sensor (1st and 2nd generation) -- Button 1st generation (Single, Double, long_click_press) -- Button 2nd generation (Single, Double) -- Plug aka Socket (Zigbee version, reports power consumed, power load, state and if device in use) -- Wall Plug (reports power consumed, power load and state) -- Aqara Wall Switch (Single) - Aqara Wall Switch (Double) -- Aqara Wall Switch LN (Single) +- Aqara Wall Switch (Single) - Aqara Wall Switch LN (Double) -- Aqara Wireless Switch (Single) +- Aqara Wall Switch LN (Single) - Aqara Wireless Switch (Double) +- Aqara Wireless Switch (Single) +- Battery +- Button 1st generation (Single, Double, Long Click) +- Button 2nd generation (Single, Double) - Cube +- Door and Window Sensor (1st and 2nd generation) - Gas Leak Detector (reports alarm and density) -- Smoke Detector (reports alarm and density) - Gateway (Light, Illumination Sensor, Ringtone play) - Intelligent Curtain -- Water Leak Sensor +- Motion Sensor (1st and 2nd generation) +- Plug aka Socket (Zigbee version, reports power consumed, power load, state and if the device is in use) +- Smoke Detector (reports alarm and density) +- Temperature and Humidity Sensor (1st and 2nd generation) - Vibration Sensor -- Battery +- Wall Plug (reports power consumed, power load, and state) +- Water Leak Sensor +- Xiaomi Mijia Gateway (lumi.gateway.v2, lumi.gateway.v3) -#### {% linkable_title Unsupported Devices %} +## {% linkable_title Unsupported Devices %} - Xiaomi Aqara Gateway (lumi.gateway.aqhm01), as it is not possible to activate dev mode in the Mi Home App. - Gateway Radio @@ -250,7 +250,6 @@ This example toggles the living room lamp on a double click of the button. entity_id: light.living_room_lamp ``` - ## {% linkable_title Troubleshooting %} ### {% linkable_title Initial setup problem %} @@ -265,6 +264,7 @@ If you run into trouble initializing the gateway with your app, try another smar ``` That means that Home Assistant is not getting any response from your Xiaomi gateway. Might be a local network problem or your firewall. + - Make sure you have [enabled LAN access](https://www.domoticz.com/wiki/Xiaomi_Gateway_(Aqara)#Adding_the_Xiaomi_Gateway_to_Domoticz). - Turn off the firewall on the system where Home Assistant is running. - Ensure your router supports multicast as this is a requirement of the Xiaomi Gateway. @@ -274,6 +274,6 @@ That means that Home Assistant is not getting any response from your Xiaomi gate - Hard reset the gateway: Press the button of the gateway 30 seconds and start again from scratch. - 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. + - 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. - You need to make sure to have multicast support on your network. If you are running Home Assistant in a virtual machine (like Proxmox), try `echo 0 >/sys/class/net/vmbr0/bridge/multicast_snooping` on the host and restart the service or reboot the host. - 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/xs1.markdown b/source/_components/xs1.markdown new file mode 100644 index 000000000000..99951e6ae2c4 --- /dev/null +++ b/source/_components/xs1.markdown @@ -0,0 +1,110 @@ +--- +layout: page +title: "EZcontrol XS1" +description: "Instructions on how to integrate an XS1 Gateway within Home Assistant." +date: 2018-12-04 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: xs1.jpg +ha_category: + - Hub + - Climate + - Sensor + - Switch +ha_release: 0.88 +featured: false +ha_iot_class: "Local Polling" +redirect_from: + - /components/climate.xs1/ + - /components/sensor.xs1/ + - /components/switch.xs1/ +--- + +The [EZcontrol XS1](http://www.ezcontrol.de/content/view/36/28/) integration for Home Assistant allows you to observe and control devices configured on the XS1 Gateway. Please have a look at the official docs for using this gateway [Bedienungsanleitung v3.0.0.0](http://www.ezcontrol.de/support/downloads/XS1/xs1manual/Bedienungsanleitung_EZcontrol_XS1_3.0.0.0-2.pdf). + +## {% linkable_title Configuration %} + +Add the following entry to the `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +xs1: + host: "192.168.2.100" +``` + +The component will automatically detect the configuration of the XS1 Gateway only **on initialization** which currently means when Home Assistant boots. When you change the configuration of the XS1 you (currently) have to restart Home Assistant to see the effects. + +{% configuration %} +host: + description: Host of the XS1 Gateway. + required: true + type: string +port: + description: Custom port if you are running your gateway behind some kind of proxy. + required: false + type: integer + default: 80 +ssl: + description: Defines if `https` should be used for API requests (only possible via your own proxy). + required: false + type: boolean + default: false +username: + description: User to access XS1 web API. + required: false + type: string +password: + description: Password to access XS1 web API. + required: false + type: string +{% endconfiguration %} + +## {% linkable_title Supported Device Types %} + +

+This component currently only covers part of the device types supported by the XS1 gateway, unsupported types are simply ignored. +

+ +### {% linkable_title Sensors %} + +Any type of sensor is supported. + +

+If you are using climate devices the "current temp" sensor will be automatically used by the actuator (if named correctly). To make this work have a look at the actuator description below. +

+ +### {% linkable_title Actuators %} + +| Type | Supported | Notes | +|---------------|-----------|--------------------------------------------------| +| `switch` | Yes | | +| `dimmer` | Partly | Dimmers are currently handled like switches so actual dimming is not supported :(| +| `temperature` | Yes | | + + +### {% linkable_title Climate Actuator/Sensor%} + +Home Assistant can combine temperature sensors and climate actuators into a single device. The XS1 gateway does not allow this, but a sensor and actuator can be configured separately. To make Home Assistant register them in the same climate device just prefix the **sensor** name with the actuator name on the XS1 gateway configuration, f.ex: + +- Actuator device name: "Bedroom_Temp" +- Sensor device name: "Bedroom_Temp_Sensor" + +## {% linkable_title Examples %} + +In this section, you find some real-life examples of how to use this component. + +### {% linkable_title Full configuration %} + +This example shows how you can use the optional configuration options. + +```yaml +# Example configuration.yaml entry +xs1: + host: "192.168.2.100" + port: 80 + ssl: false + username: myuser + password: 123totallySecure +``` diff --git a/source/_components/zabbix.markdown b/source/_components/zabbix.markdown index fe317fce8102..decbd7437b85 100644 --- a/source/_components/zabbix.markdown +++ b/source/_components/zabbix.markdown @@ -37,7 +37,7 @@ path: type: string default: "`/zabbix/`" ssl: - description: Set to `True` if your Zabbix installation is using SSL. + description: Set to `true` if your Zabbix installation is using SSL. required: false type: boolean default: false @@ -58,7 +58,7 @@ password: zabbix: host: ZABBIX_HOST path: ZABBIX_PATH - ssl: False + ssl: false username: USERNAME password: PASSWORD ``` diff --git a/source/_components/zeroconf.markdown b/source/_components/zeroconf.markdown index d2e8908adeab..be29f6e6d840 100644 --- a/source/_components/zeroconf.markdown +++ b/source/_components/zeroconf.markdown @@ -41,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 06dc6715e419..a48d20b2ecc0 100644 --- a/source/_components/zha.markdown +++ b/source/_components/zha.markdown @@ -8,21 +8,36 @@ comments: false sharing: true footer: true logo: zigbee.png -ha_category: Hub +ha_category: + - Binary Sensor + - Fan + - Light + - Sensor + - Switch ha_release: 0.44 ha_iot_class: "Local Polling" +redirect_from: + - /components/binary_sensor.zha/ + - /components/fan.zha/ + - /components/light.zha/ + - /components/sensor.zha/ + - /components/switch.zha/ --- [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 based devices to Home Assistant, using one of the available Zigbee radio modules compatible with [zigpy](https://github.com/zigpy/zigpy) (an open source Python library implementing a Zigbee stack, which in turn relies on seperate libraries which can each interface a with Zigbee radio module a different manufacturer). +integration for Home Assistant allows you to connect many off-the-shelf Zigbee based devices to Home Assistant, using one of the available Zigbee radio modules compatible with [zigpy](https://github.com/zigpy/zigpy) (an open source Python library implementing a Zigbee stack, which in turn relies on separate libraries which can each interface a with Zigbee radio module a different manufacturer). There is currently support for the following device types within Home Assistant: -- [Binary Sensor](../binary_sensor.zha) (e.g., motion and door sensors) -- [Sensor](../sensor.zha) (e.g., temperature sensors) -- [Light](../light.zha) -- [Switch](../switch.zha) -- [Fan](../fan.zha) +- Binary Sensor +- Sensor +- Light +- Switch +- Fan + +ZHA exception and deviation handling: + +Zigbee devices that deviate from or do not fully conform to the standard specification set by the [Zigbee Alliance](https://www.zigbee.org) may require the development of custom [ZHA Device Handlers](https://github.com/dmulcahey/zha-device-handlers) (ZHA quirks handler implementation) to for all their functions to work properly with the ZHA component in Home Assistant. Known working Zigbee radio modules: @@ -32,6 +47,9 @@ Known working Zigbee radio modules: - [Elelabs Zigbee Raspberry Pi Shield](https://elelabs.com/products/elelabs_zigbee_shield.html) - XBee Zigbee based radios (via the [zigpy-xbee](https://github.com/zigpy/zigpy-xbee) library for zigpy) - Digi XBee Series 2C (S2C) modules +- Dresden-Elektronik deCONZ based Zigbee radios (via the [zigpy-deconz](https://github.com/zigpy/zigpy-deconz) library for zigpy) + - [ConBee USB adapter from Dresden-Elektronik](https://www.dresden-elektronik.de/conbee/) + - [RaspBee Raspberry Pi Shield from Dresden-Elektronik](https://www.dresden-elektronik.de/raspbee/) ## {% linkable_title Configuration %} @@ -47,7 +65,7 @@ zha: {% configuration %} radio_type: - description: One of `ezsp` or `xbee`. + description: One of `ezsp`, `xbee` or `deconz`. required: false type: string default: ezsp @@ -71,4 +89,6 @@ enable_quirks: default: true {% endconfiguration %} -To add new devices to the network, call the `permit` service on the `zha` domain, and then follow the device instructions for doing a scan or factory reset. In case you want to add Philips Hue bulbs that have previously been added to another bridge, have a look at: [https://github.com/vanviegen/hue-thief/](https://github.com/vanviegen/hue-thief/) +To add new devices to the network, call the `permit` service on the `zha` domain. Do this by clicking the Service icon in Developer tools and typing `zha.permit` in the **Service** dropdown box. Next, follow the device instructions for adding, scanning or factory reset. + +In case you want to add Philips Hue bulbs that have previously been added to another bridge, have a look at: [https://github.com/vanviegen/hue-thief/](https://github.com/vanviegen/hue-thief/) diff --git a/source/_components/zigbee.markdown b/source/_components/zigbee.markdown index d43c7051ff18..3c2022dbed7b 100644 --- a/source/_components/zigbee.markdown +++ b/source/_components/zigbee.markdown @@ -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: @@ -49,7 +49,7 @@ baud: To find the possible serial port names of your device, run: ```bash -$ ls /dev/ttyUSB* +ls /dev/ttyUSB* ```

diff --git a/source/_components/zone.markdown b/source/_components/zone.markdown index caeb22e761a8..9b9d82c9572b 100644 --- a/source/_components/zone.markdown +++ b/source/_components/zone.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Zone" -description: "Instructions on how to setup zones within Home Assistant." +description: "Instructions on how to set up zones within Home Assistant." date: 2015-10-04 09:23 sidebar: true comments: false @@ -14,7 +14,7 @@ ha_qa_scale: internal Zones allow you to specify certain regions on earth (for now). When a device tracker sees a device to be within a zone, the state will take the name from the zone. Zones can also be used as a [trigger](/getting-started/automation-trigger/#zone-trigger) or [condition](/getting-started/automation-condition/#zone-condition) inside automation setups. -The Zone component uses YAML sequences to configure multiple zones: +The `zone` component uses YAML sequences to configure multiple zones: ```yaml # Example configuration.yaml entry @@ -68,7 +68,7 @@ passive: 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) -#### {% linkable_title Home zone %} +## {% linkable_title Home zone %} If no configuration is given, the `zone` component will create a zone for home. This zone will use location provided in the `configuration.yaml` file and have a radius of 100 meters. To override this, create a zone configuration and name it **'Home'**. @@ -76,10 +76,10 @@ If no configuration is given, the `zone` component will create a zone for home. Devices that are in the zone **'Home'** will not appear on the map in the Home Assistant UI.

-#### {% linkable_title Icons %} +## {% linkable_title Icons %} It is preferred to pick an icon to use for your zone. Pick any icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) and prefix the name with `mdi:`. For example `mdi:school`, `mdi:worker`, `mdi:home`, `mdi:cart`, or `mdi:castle`. -#### State +## {% linkable_title State %} `zoning` is the state a `zone` has when it is configured. A `zone` doesn't have another state; all configured zones are `zoning` all the time. diff --git a/source/_components/zoneminder.markdown b/source/_components/zoneminder.markdown index 614a5ce022b3..8c25922db65a 100644 --- a/source/_components/zoneminder.markdown +++ b/source/_components/zoneminder.markdown @@ -8,20 +8,37 @@ comments: false sharing: true footer: true logo: zoneminder.png -ha_category: Hub +ha_category: + - Hub + - Binary Sensor + - Camera + - Sensor + - Switch featured: false ha_release: 0.31 ha_iot_class: "Local Polling" +redirect_from: + - /components/binary_sensor.zoneminder/ + - /components/camera.zoneminder/ + - /components/sensor.zoneminder/ + - /components/switch.zoneminder/ --- -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. +The ZoneMinder component sets up the integration with your [ZoneMinder](https://www.zoneminder.com) instance. + +There is currently support for the following device types within Home Assistant: + +- [Binary Sensor](#binary-sensor) +- [Camera](#camera) +- [Sensor](#sensor) +- [Switch](#switch) ## {% linkable_title Configuration %} ```yaml # Example configuration.yaml entry zoneminder: - host: ZM_HOST + - host: ZM_HOST ``` {% configuration %} @@ -64,13 +81,13 @@ password: ```yaml # Example configuration.yaml entry zoneminder: - host: ZM_HOST - path: ZM_PATH - path_zms: ZM_PATH_ZMS - ssl: true - verify_ssl: true - username: YOUR_USERNAME - password: YOUR_PASSWORD + - host: ZM_HOST + path: ZM_PATH + path_zms: ZM_PATH_ZMS + ssl: true + verify_ssl: true + username: YOUR_USERNAME + password: YOUR_PASSWORD ``` ### {% linkable_title Service %} @@ -79,12 +96,104 @@ Once loaded, the `zoneminder` platform will expose a service (`set_run_state`) t | Service data attribute | Optional | Description | |:-----------------------|:---------|:----------------------------------| +| `id` | no | Host of the ZoneMinder instance. | | `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: + id: ZM_HOST name: Home ``` + +## {% linkable_title Binary Sensor %} + +The `zoneminder` binary sensor platform lets you monitor the availability of your [ZoneMinder](https://www.zoneminder.com) install. + +Each binary_sensor created will be named after the hostname used when configuring the [ZoneMinder component](/components/zoneminder/). + +## {% linkable_title Camera %} + +The `zoneminder` camera platform lets you monitor the current stream of your [ZoneMinder](https://www.zoneminder.com) cameras. + +## {% linkable_title Configuration %} + +To set it up, add the following information to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +camera: + - platform: zoneminder +``` + +## {% linkable_title Sensor %} + +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. + +To set it up, add the following information to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: zoneminder + include_archived: false +``` + +{% configuration %} +include_archived: + description: Whether to include archived ZoneMinder events in event counts. + required: false + default: false + type: boolean +monitored_conditions: + description: Event count sensors to display in the frontend. + required: false + type: list + keys: + all: + description: All events. + month: + description: Events in the last month. + week: + description: Events in the last week. + day: + description: Events in the last day. + hour: + description: Events in the last hour. +{% endconfiguration %} + +## {% linkable_title Switch %} + +The `zoneminder` switch platform allows you to toggle the current function of all cameras attached to your [ZoneMinder](https://www.zoneminder.com) instance. + +

+You must have the [ZoneMinder component](/components/zoneminder/) configured to use this and if ZoneMinder authentication is enabled the account specified in the component configuration must have "Edit" permission for "System". +

+ +To enable this switch, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: zoneminder + command_on: Modect + command_off: Monitor +``` + +{% configuration %} +command_on: + description: The function you want the camera to run when turned on. + required: true + type: string +command_off: + description: The function you want the camera to run when turned off. + required: true + type: string +{% endconfiguration %} + +

+The default functions installed by ZoneMinder are: None, Monitor, Modect, Record, Mocord, Nodect. +

\ No newline at end of file diff --git a/source/_cookbook/automation_first_light.markdown b/source/_cookbook/automation_first_light.markdown index 098036db77fd..be4770c4f7e8 100644 --- a/source/_cookbook/automation_first_light.markdown +++ b/source/_cookbook/automation_first_light.markdown @@ -30,8 +30,8 @@ automation: - alias: Enable First Morning Trigger trigger: - platform: time - at: '5:00' - action: + at: '05:00:00' + action: service: homeassistant.turn_on entity_id: input_boolean.trigger_first_morning @@ -41,12 +41,12 @@ automation: - platform: sun event: sunrise offset: "01:00:00" - action: + action: service: homeassistant.turn_off entity_id: input_boolean.trigger_first_morning - + # This is the main automation. It triggers when my motion sensor is triggered # (in this case, a motion sensor from a security system attached to my Vera) - alias: First Morning Motion @@ -59,17 +59,17 @@ automation: condition: state entity_id: input_boolean.trigger_first_morning state: 'on' - + action: # turn off the "waiting" boolean regardless of whether lights will turn on # so that this happens only once - service: homeassistant.turn_off entity_id: input_boolean.trigger_first_morning - + # But only turn on lights if the living room and kitchen lights are off or dimmed - # If a condition tests false, the automation will end + # If a condition tests false, the automation will end - condition: and - conditions: + conditions: - condition: numeric_state entity_id: light.livingroom_ec # if light is off, force a 0, otherwise use the brightness value @@ -84,13 +84,13 @@ automation: entity_id: light.kitchen_ceiling value_template: {% raw %}'{% if states.light.kitchen_ceiling.state == "on" %}{{ states.light.kitchen_ceiling.attributes.brightness }}{% else %}0{% endif %}'{% endraw %} below: 128 - + # Trigger a scene # You could add as many services or scenes as you'd like - service: scene.turn_on entity_id: scene.morning_first_motion - + ``` #### {% linkable_title The Scene %} @@ -98,7 +98,7 @@ automation: Here is the Scene that is called via the Automations above. ```yaml -# here's the scene that gets called. Lights in +# here's the scene that gets called. Lights in # my living room and kitchen turn on. scene: - name: Morning First Motion diff --git a/source/_cookbook/automation_for_rainy_days.markdown b/source/_cookbook/automation_for_rainy_days.markdown index 7ce7c46b16a4..a6e3b0bb8b73 100644 --- a/source/_cookbook/automation_for_rainy_days.markdown +++ b/source/_cookbook/automation_for_rainy_days.markdown @@ -44,7 +44,7 @@ And then of course turn off the lamp when it stops raining but only if it's with condition: - condition: sun after: 'sunset' - offset: '-01:00:00' + after_offset: '-01:00:00' action: service: light.turn_off entity_id: light.couch_lamp diff --git a/source/_cookbook/automation_knx.markdown b/source/_cookbook/automation_knx.markdown new file mode 100644 index 000000000000..5092d6b09a30 --- /dev/null +++ b/source/_cookbook/automation_knx.markdown @@ -0,0 +1,217 @@ +--- +layout: page +title: "KNX automation and interaction with other systems" +description: "General KNX set up and communication with other systems like the Philips Hue." +date: 2019-01-20 22:00 +0100 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Automation Examples +--- + +This cookbook shows a general KNX set up and communication with other systems like the Philips Hue. + +## {% linkable_title General KNX setup %} + +``` yaml +knx: + # This is all you need to get the KNX component up and running. + # Auto config works nicely and usually no config data for your KNX ip tunnel is needed. + # If the KNX router is not found automatically, check the docs and add the IP config here. + +# get some sensor data from KNX to HA +sensor: + - platform: knx + name: Helligkeit Treppe oben + address: '6/1/0' + type: 'illuminance' + # The entity_id of this sensor will be generated from the name by a slug function. + # In this case, it will be sensor.helligkeit_treppe_oben + # See dev tools' state page (icons at the bottom of left side menu) for a list of all entity_ids + +light: + # See "sensor" remarks above for an explanation of the resulting entity_ids + - platform: knx + # switched light + name: 'Eltern Decke' + address: '1/2/10' + state_address: '1/2/11' + + - platform: knx + # dimmed light + name: 'Eltern Bett' + address: '1/2/12' + state_address: '1/2/15' + brightness_address: '1/2/13' + brightness_state_address: '1/2/16' + +cover: + # KNX Covers are roller shutters and blinds. + # These items currently expose a bug with the invert_position setting: + # Either you will get 100% for an open shutter and 0% for a closed one + # or you will get the function of up and down arrows exchanged wrongly. + # Hope this is resolved soon. + # --- + # See "sensor" remarks above for an explanation of the resulting entity_ids + - platform: knx + name: "Eltern" + move_long_address: '3/2/0' + move_short_address: '3/2/1' + position_address: '3/2/3' + position_state_address: '3/2/2' + travelling_time_up: 23 + travelling_time_down: 21 + invert_position: true + + - platform: knx + name: "Büro" + move_long_address: '3/2/4' + move_short_address: '3/2/5' + position_address: '3/2/7' + position_state_address: '3/2/6' + travelling_time_up: 23 + travelling_time_down: 21 + invert_position: true +``` + +## {% linkable_title Using some values from HA within KNX %} + +``` yaml +# configuration.yaml example +sensor: +# Register with Dark Sky to retrieve current environment data. +# Registration is free for the amount of requests we need here. +- platform: openweathermap + name: OpenWeather + language: de + api_key: YOUR_API_KEY + monitored_conditions: + - weather + - temperature + - wind_speed + - wind_bearing + - humidity + - pressure + - clouds + - rain + - snow + - weather_code + +knx: + # Expose the above sensor data from HA to KNX group addresses. + # To find the right "type" setting for each parameter, create a group address in ETS, + # add a consuming actor for this kind of parameter to it and check the properties pane. + # ETS will show you a data type (DPT) that you can compare to the available DPTs in the + # documentation of the HA KNX component. + expose: + - type: 'temperature' + entity_id: 'sensor.dark_sky_temperature' + address: '0/1/10' + - type: 'humidity' + entity_id: 'sensor.dark_sky_humidity' + address: '0/1/11' + - type: 'temperature' + entity_id: 'sensor.dark_sky_pressure' + address: '0/1/12' + - type: 'DPT-9' + entity_id: 'sensor.dark_sky_wind_speed' + address: '0/1/13' + - type: 'DPT-14' + entity_id: 'sensor.dark_sky_wind_bearing' + address: '0/1/14' +``` + +## {% linkable_title Basic KNX automation %} + +This example uses an automation that is activated by a KNX switch. + +The automation then triggers a script that controls a KNX light and dims it down in 5 steps from 80% to 0% over a time span of 5 minutes. + +Care must be taken to stop the script, when the light is otherwise switched (i.e., by its normal on/off KNX switch). If we don't do that, the light will first switch correctly, but then the script will continue to run in the background and after the next delay has passed it will kick in again and activate its next dim level. + +```yaml +knx: + +switch: +- platform: knx + # The normal on/off switch for the light + name: "Licht, Eltern Bett" + address: '1/2/12' +- platform: knx + # The switch that triggers the dim script + # This switch must be configured in ETS to send on when pressed and off when released + name: "Licht, Eltern Bett, Fadeout" + address: '1/2/17' + +light: + # This is the light that we want to dim (more precisely it is the dimming actuator of the light). + # It is directly controlled through the first switch above. + # (Note that the switch shares its group address with this light and thus controls it over the KNX bus.) + - platform: knx + name: 'Eltern Bett' + address: '1/2/12' + state_address: '1/2/15' + brightness_address: '1/2/13' + brightness_state_address: '1/2/16' + +automation: +# start the dim script, if the dim switch is pressed +- id: light_eltern_bett_fadeout + alias: Licht Eltern Bett Fade-Out + trigger: + - entity_id: switch.licht_eltern_bett_fadeout + platform: state + to: 'on' + condition: [] + action: + # in case the script was already running, we first stop it + - service: script.turn_off + entity_id: script.light_eltern_bett_fadeout + - service: script.turn_on + entity_id: script.light_eltern_bett_fadeout + +# stop the dim script, if light is switched manually +- id: light_eltern_bett_fadeout_stop + alias: Licht Eltern Bett Fade-Out STOP + trigger: + - entity_id: switch.licht_eltern_bett + platform: state + # no argument here = trigger with ANY state change + condition: [] + action: + - service: script.turn_off + entity_id: script.light_eltern_bett_fadeout + +script: + light_eltern_bett_fadeout: + alias: Licht Eltern Bett Fade-Out + sequence: + - service: light.turn_on + entity_id: light.eltern_bett + data: + brightness_pct: 80 + - delay: '00:01:00' + - service: light.turn_on + entity_id: light.eltern_bett + data: + brightness_pct: 60 + - delay: '00:01:00' + - service: light.turn_on + entity_id: light.eltern_bett + data: + brightness_pct: 40 + - delay: '00:01:00' + - service: light.turn_on + entity_id: light.eltern_bett + data: + brightness_pct: 20 + - delay: '00:01:00' + - service: light.turn_on + entity_id: light.eltern_bett + data: + brightness_pct: 10 + - delay: '00:01:00' + - service: light.turn_off + entity_id: light.eltern_bett +``` diff --git a/source/_cookbook/automation_kodi_dynamic_input_select.markdown b/source/_cookbook/automation_kodi_dynamic_input_select.markdown deleted file mode 100644 index 9fc1bbd3f9e0..000000000000 --- a/source/_cookbook/automation_kodi_dynamic_input_select.markdown +++ /dev/null @@ -1,156 +0,0 @@ ---- -layout: page -title: "Dynamic input select with Kodi media" -description: "How to configure an `input_select` that can play in Kodi the latest entries added to the library" -date: 2017-05-16 19:05 -sidebar: true -comments: false -sharing: true -footer: true -ha_category: Automation Examples ---- - -This requires a [Kodi](/components/media_player.kodi/) media player, and consists of commands that perform queries in the Kodi library, and a selection box (`input_select`) that shows the available options. By clicking the commands, the selection box is updated, and when selecting an option, Kodi plays the media. - -Option filling is done in an [AppDaemon](/docs/ecosystem/appdaemon/tutorial/) app, which listens for events that are triggered with the results of the Kodi JSONRPC API queries when scripts run. This application also listens to the selection box and calls the play media service with the corresponding parameters. - -The media player yaml config: - -```yaml -media_player: -- platform: kodi - name: Kodi - host: 192.168.0.123 -``` - -The `input_select` with the scripts and a group: - -```yaml -input_select: - kodi_results: - name: Kodi API results - options: - - Nothing to do - -script: - get_recent_movies: - alias: Last added movies - sequence: - - service: media_player.kodi_call_method - data: - entity_id: media_player.kodi - method: VideoLibrary.GetRecentlyAddedMovies - properties: - - title - - year - - file - - lastplayed - - get_recent_episodes: - alias: Last TV shows - sequence: - - service: media_player.kodi_call_method - data: - entity_id: media_player.kodi - method: VideoLibrary.GetRecentlyAddedEpisodes - properties: - - showtitle - - file - - lastplayed - - firstaired - - get_pvr_channels: - alias: TV Channels - sequence: - - service: media_player.kodi_call_method - data: - entity_id: media_player.kodi - method: PVR.GetChannels - channelgroupid: 1 - -group: - Media Select: - control: hidden - entities: - - input_select.kodi_results - - script.get_recent_movies - - script.get_recent_episodes - - script.get_pvr_channels -``` - -The AppDaemon app: - -```python -import appdaemon.appapi as appapi -from homeassistant.components.media_player.kodi import ( - EVENT_KODI_CALL_METHOD_RESULT) - -ENTITY = 'input_select.kodi_results' -MEDIA_PLAYER = 'media_player.kodi' -DEFAULT_ACTION = "Nothing to do" -MAX_RESULTS = 20 - -class DynamicKodiInputSelect(appapi.AppDaemon): - """AppDaemon app to dynamically populate an `input_select`.""" - _ids_options = None - - def initialize(self): - """Set up appdaemon app.""" - self.listen_event(self._receive_kodi_result, - EVENT_KODI_CALL_METHOD_RESULT) - self.listen_state(self._change_selected_option, ENTITY) - # Input select: - self._ids_options = {DEFAULT_ACTION: None} - - def _receive_kodi_result(self, event_id, payload_event, *args): - result = payload_event['result'] - method = payload_event['input']['method'] - - assert event_id == EVENT_KODI_CALL_METHOD_RESULT - if method == 'VideoLibrary.GetRecentlyAddedMovies': - values = result['movies'][:MAX_RESULTS] - data = [('{} ({})'.format(r['label'], r['year']), - ('MOVIE', r['file'])) for r in values] - self._ids_options.update(dict(zip(*zip(*data)))) - labels = list(list(zip(*data))[0]) - self.call_service('input_select/set_options', - entity_id=ENTITY, - options=[DEFAULT_ACTION] + labels) - self.set_state(ENTITY, - attributes={"friendly_name": 'Recent Movies', - "icon": 'mdi:movie'}) - elif method == 'VideoLibrary.GetRecentlyAddedEpisodes': - values = list(filter(lambda r: not r['lastplayed'], - result['episodes']))[:MAX_RESULTS] - data = [('{} - {}'.format(r['showtitle'], r['label']), - ('TVSHOW', r['file'])) for r in values] - self._ids_options.update(dict(zip(*zip(*data)))) - labels = list(list(zip(*data))[0]) - self.call_service('input_select/set_options', - entity_id=ENTITY, - options=[DEFAULT_ACTION] + labels) - self.set_state(ENTITY, - attributes={"friendly_name": 'Recent TvShows', - "icon": 'mdi:play-circle'}) - elif method == 'PVR.GetChannels': - values = result['channels'] - data = [(r['label'], ('CHANNEL', r['channelid'])) - for r in values] - self._ids_options.update(dict(zip(*zip(*data)))) - labels = list(list(zip(*data))[0]) - self.call_service('input_select/set_options', - entity_id=ENTITY, - options=[DEFAULT_ACTION] + labels) - self.set_state(ENTITY, - attributes={"friendly_name": 'TV channels', - "icon": 'mdi:play-box-outline'}) - - def _change_selected_option(self, entity, attribute, old, new, kwargs): - selected = self._ids_options[new] - if selected: - mediatype, file = selected - self.call_service('media_player/play_media', - entity_id=MEDIA_PLAYER, - media_content_type=mediatype, - media_content_id=file) -``` diff --git a/source/_cookbook/automation_using_timeinterval_inputboolean.markdown b/source/_cookbook/automation_using_timeinterval_inputboolean.markdown index d5edc5e9613e..af46927fe5fb 100644 --- a/source/_cookbook/automation_using_timeinterval_inputboolean.markdown +++ b/source/_cookbook/automation_using_timeinterval_inputboolean.markdown @@ -25,9 +25,8 @@ automation: # Changes Hue light every two minutes to random color if input boolean is set to on - alias: 'Set LivingColors to random color' trigger: - platform: time + platform: time_pattern minutes: '/2' - seconds: 0 condition: condition: state entity_id: input_boolean.loop_livingcolors diff --git a/source/_cookbook/configuration_yaml_by_patatman.markdown b/source/_cookbook/configuration_yaml_by_patatman.markdown new file mode 100644 index 000000000000..1b45e9742025 --- /dev/null +++ b/source/_cookbook/configuration_yaml_by_patatman.markdown @@ -0,0 +1,12 @@ +--- +layout: page +title: "Configuration.yaml by patatman" +description: "" +date: 2019-01-13 21:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Example configuration.yaml +ha_external_link: https://github.com/patatman/patatman-homeassistant-config +--- diff --git a/source/_cookbook/configuration_yaml_by_renemarc.markdown b/source/_cookbook/configuration_yaml_by_renemarc.markdown new file mode 100644 index 000000000000..265bf0c84264 --- /dev/null +++ b/source/_cookbook/configuration_yaml_by_renemarc.markdown @@ -0,0 +1,12 @@ +--- +layout: page +title: "Configuration.yaml by René-Marc Simard" +description: "" +date: 2018-12-18 12:18 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Example configuration.yaml +ha_external_link: https://github.com/renemarc/home-assistant-config +--- diff --git a/source/_cookbook/python_component_mqtt_basic.markdown b/source/_cookbook/python_component_mqtt_basic.markdown index f038f21969ec..0d208a387365 100644 --- a/source/_cookbook/python_component_mqtt_basic.markdown +++ b/source/_cookbook/python_component_mqtt_basic.markdown @@ -34,8 +34,8 @@ DEFAULT_TOPIC = 'home-assistant/hello_mqtt' def setup(hass, config): """Set up the Hello MQTT component.""" - mqtt = loader.get_component('mqtt') - topic = config[DOMAIN].get('topic', DEFAULT_TOPIC) + mqtt = hass.components.mqtt + topic = config[DOMAIN].get(CONF_TOPIC, DEFAULT_TOPIC) entity_id = 'hello_mqtt.last_message' # Listener to be called when we receive a message. @@ -44,7 +44,7 @@ def setup(hass, config): hass.states.set(entity_id, payload) # Subscribe our listener to a topic. - mqtt.subscribe(hass, topic, message_received) + mqtt.subscribe(topic, message_received) # Set the initial state. hass.states.set(entity_id, 'No messages') @@ -52,7 +52,7 @@ def setup(hass, config): # Service to publish a message on MQTT. def set_state_service(call): """Service to send a message.""" - mqtt.publish(hass, topic, call.data.get('new_state')) + mqtt.publish(topic, call.data.get('new_state')) # Register our service with Home Assistant. hass.services.register(DOMAIN, 'set_state', set_state_service) diff --git a/source/_cookbook/send_a_reminder.markdown b/source/_cookbook/send_a_reminder.markdown index e08d2c9767da..9b965a77bc56 100644 --- a/source/_cookbook/send_a_reminder.markdown +++ b/source/_cookbook/send_a_reminder.markdown @@ -30,13 +30,9 @@ automation: - alias: Send message at a given time trigger: platform: time - hours: 12 - minutes: 15 - seconds: 0 + at: '12:15:00' action: service: notify.jabber data: message: 'Time for lunch' ``` - - diff --git a/source/_docs/authentication/multi-factor-auth.markdown b/source/_docs/authentication/multi-factor-auth.markdown index be55b3118ce2..16ecd5b8e87e 100644 --- a/source/_docs/authentication/multi-factor-auth.markdown +++ b/source/_docs/authentication/multi-factor-auth.markdown @@ -65,7 +65,7 @@ TOTP is _time based_ so it relies on your Home Assistant clock being accurate. I ### {% linkable_title Notify multi-factor authentication module %} -The Notify MFA module uses the [notify component](https://www.home-assistant.io/components/notify/) to send you an [HMAC-based One-Time Password](https://en.wikipedia.org/wiki/HMAC-based_One-time_Password_algorithm). It is typically sent to your phone, but can be sent to any destination supported by a `notify` service. You use this password to log in. +The Notify MFA module uses the [notify component](/components/notify/) to send you an [HMAC-based One-Time Password](https://en.wikipedia.org/wiki/HMAC-based_One-time_Password_algorithm). It is typically sent to your phone, but can be sent to any destination supported by a `notify` service. You use this password to log in. #### {% linkable_title Setting up TOTP %} diff --git a/source/_docs/authentication/providers.markdown b/source/_docs/authentication/providers.markdown index 659b027ae3f2..a36531c62581 100644 --- a/source/_docs/authentication/providers.markdown +++ b/source/_docs/authentication/providers.markdown @@ -63,7 +63,7 @@ The Trusted Networks auth provider defines a range of IP addresses for which no When you log in from one of these networks, you will be asked which user account to use and won't need to enter a password.

-The [multi-factor authentication module](/docs/authentication/multi-factor-auth/) will not participate in the login process if you using this auth provider. +The [multi-factor authentication module](/docs/authentication/multi-factor-auth/) will not participate in the login process if you are using this auth provider.

Here is an example in `configuration.yaml` to set up Trusted Networks: @@ -71,18 +71,55 @@ Here is an example in `configuration.yaml` to set up Trusted Networks: ```yaml homeassistant: auth_providers: - - type: trusted_networks + - type: trusted_networks + trusted_networks: + - 127.0.0.1 + - ::1 + - 192.168.0.0/24 + - fd00::/8 +``` -# Temporary, this will be moved to be part of auth provider config -# https://github.com/home-assistant/home-assistant/issues/16149 -http: - trusted_networks: - - 127.0.0.1 - - ::1 - - 192.168.0.0/24 - - fd00::/8 +If you don't specify any `auth_providers` section in the `configuration.yaml` file then this provider will be set up automatically if `trusted_networks` was configured under `http` section. + +### {% linkable_title Command Line %} + +The Command Line auth provider executes a configurable shell command to perform user authentication. Two environment variables, `username` and `password`, are passed to the command. Access is granted when the command exits successfully (with exit code 0). + +This provider can be used to integrate Home Assistant with arbitrary external authentication services, from plaintext databases over LDAP to RADIUS. A compatible script for LDAP authentication is [this one](https://github.com/efficiosoft/ldap-auth-sh), for instance. + +Here is a configuration example: + +```yaml +homeassistant: + auth_providers: + - type: command_line + command: /absolute/path/to/command + # Optionally, define a list of arguments to pass to the command. + #args: ["--first", "--second"] + # Uncomment to enable parsing of meta variables (see below). + #meta: true +``` + +When `meta: true` is set in the auth provider's configuration, your command can write some variables to standard output to populate the user account created in Home Assistant with additional data. These variables have to be printed in the form: + +``` +name = John Doe ``` +Leading and trailing whitespace, as well as lines starting with `#` are ignored. The following variables are supported. More may be added in the future. + +* `name`: The real name of the user to be displayed in their profile. + +Stdaerr is not read at all and just passed through to that of the Home Assistant process, hence you can use it for status messages or suchlike. + +

+Any leading and trailing whitespace is stripped from usernames before they're passed to the configured command. For instance, " hello " will be rewritten to just "hello". +

+ +

+For now, meta variables are only respected the first time a particular user is authenticated. Upon subsequent authentications of the same user, the previously created user object with the old values is reused. +

+ ### {% linkable_title Legacy API password %}

@@ -102,6 +139,8 @@ http: Activating this auth provider will also allow you to provide the API password using an authentication header to make requests against the Home Assistant API. This feature will be dropped in the future in favor of long-lived access tokens. +If you don't specify any `auth_providers` section in the `configuration.yaml` file then this provider will be set up automatically if `api_password` was configured under `http` section. +

[Issue 16441](https://github.com/home-assistant/home-assistant/issues/16441): the legacy API password auth provider, won't be automatically configured if your API password is located in a package. This is because Home Assistant processes the `auth_provider` during the `core` section loading, which is earlier than the `packages` processing.

diff --git a/source/_docs/automation.markdown b/source/_docs/automation.markdown index 99ace9bb2e7c..fdd1526a7f57 100644 --- a/source/_docs/automation.markdown +++ b/source/_docs/automation.markdown @@ -49,14 +49,14 @@ Actions are all about calling services. To explore the available services open t ### {% linkable_title Automation initial state %} -You have to set an initial state in your automations in order for Home Assistant to always enable them upon restart. +If you always want your automations to be enabled or disabled upon Home Assistant restart, then you have to set an initial state in your automations. Otherwise the previous state will be restored. + +If an automation is disabled (turned off) then it will never trigger. Only automations that are enabled (turned on) will trigger. ```text automation: - alias: Automation Name - initial_state: True + initial_state: true trigger: ... ``` - -If you don't set this the previous state is restored. If you shut Home Assistant down before it finishes starting, the automation will be stored as being off, and your automations will be disabled at the next startup. diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index 7a4e57b496a3..963fd7d8f7c9 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -10,7 +10,7 @@ footer: true redirect_from: /getting-started/automation-trigger/ --- -Triggers are what starts the processing of an automation rule. It is possible to specify multiple triggers for the same rule - when _any_ of the triggers becomes true then the automation will start. Once a trigger starts, Home Assistant will validate the conditions, if any, and call the action. +Triggers are what starts the processing of an automation rule. It is possible to specify [multiple triggers](/docs/automation/trigger/#multiple-triggers) for the same rule - when _any_ of the triggers becomes true then the automation will start. Once a trigger starts, Home Assistant will validate the conditions, if any, and call the action. ### {% linkable_title Event trigger %} @@ -46,7 +46,7 @@ automation: ### {% linkable_title MQTT trigger %} -Triggers when a specific message is received on given topic. Optionally can match on the payload being sent over the topic. +Triggers when a specific message is received on given topic. Optionally can match on the payload being sent over the topic. The default payload encoding is 'utf-8'. For images and other byte payloads use `encoding: ''` to disable payload decoding completely. ```yaml automation: @@ -55,6 +55,7 @@ automation: topic: living_room/switch/ac # Optional payload: 'on' + encoding: 'utf-8' ``` ### {% linkable_title Numeric state trigger %} @@ -73,7 +74,7 @@ automation: above: 17 below: 25 - # If given, will trigger when condition has been for X time. + # If given, will trigger when condition has been for X time, can also use days and milliseconds. for: hours: 1 minutes: 10 @@ -86,6 +87,25 @@ Listing above and below together means the numeric_state has to be between the t In the example above, a numeric_state that goes to 17.1-24.9 (from 17 or below, or 25 or above) would fire this trigger.

+The `for:` can also be specified as `HH:MM:SS` like this: + +{% raw %} +```yaml +automation: + trigger: + platform: numeric_state + entity_id: sensor.temperature + # Optional + value_template: '{{ state.attributes.battery }}' + # At least one of the following required + above: 17 + below: 25 + + # If given, will trigger when condition has been for X time. + for: '01:10:05' +``` +{% endraw %} + ### {% linkable_title State trigger %} Triggers when the state of a given entity changes. If only `entity_id` is given trigger will activate for all state changes, even if only state attributes change. @@ -101,10 +121,7 @@ automation: to: 'home' # If given, will trigger when state has been the to state for X time. - for: - hours: 1 - minutes: 10 - seconds: 5 + for: '01:10:05' ```

@@ -115,6 +132,8 @@ automation: Triggers when the sun is setting or rising. An optional time offset can be given to have it trigger a set time before or after the sun event (i.e. 45 minutes before sunset, when dusk is setting in). +Sunrise as a trigger may need special attention as explained in time triggers below. This is due to the date changing at midnight and sunrise is at an earlier time on the following day. + ```yaml automation: trigger: @@ -125,7 +144,7 @@ automation: offset: '-00:45:00' ``` -Sometimes you may want more granular control over an automation based on the elevation of the sun. This can be used to layer automations to occur as the sun lowers on the horizon or even after it is below the horizon. This is also useful when the "sunset" event is not dark enough outside and you would like the automation to run later at a precise solar angle instead of the time offset such as turning on exterior lighting. +Sometimes you may want more granular control over an automation based on the elevation of the sun. This can be used to layer automations to occur as the sun lowers on the horizon or even after it is below the horizon. This is also useful when the "sunset" event is not dark enough outside and you would like the automation to run later at a precise solar angle instead of the time offset such as turning on exterior lighting. For most things, a general number like -4 degrees is suitable and is used in this example: {% raw %} ```yaml @@ -141,9 +160,15 @@ automation: service: switch.turn_on entity_id: switch.exterior_lighting ``` -}{% endraw %} +{% endraw %} -The US Naval Observatory has a [tool](http://aa.usno.navy.mil/data/docs/AltAz.php) that will help you estimate what the solar angle will be at any specific time. +If you want to get more precise, start with the US Naval Observatory [tool](http://aa.usno.navy.mil/data/docs/AltAz.php) that will help you estimate what the solar angle will be at any specific time. Then from this, you can select from the defined twilight numbers. Although the actual amount of light depends on weather, topography and land cover, they are defined as: + +- Civil twilight: Solar angle > -6° +- Nautical twilight: Solar angle > -12° +- Astronomical twilight: Solar angle > -18° + +A very thorough explanation of this is available in the Wikipedia article about the [Twilight](https://en.wikipedia.org/wiki/Twilight). ### {% linkable_title Template trigger %} @@ -165,32 +190,43 @@ Rendering templates with time (`now()`) is dangerous as trigger templates only u ### {% linkable_title Time trigger %} -Time can be triggered in many ways. The most common is to specify `at` and trigger at a specific point in time each day. Alternatively, you can also match if the hour, minute or second of the current time has a specific value. You can prefix the value with a `/` to match whenever the value is divisible by that number. You cannot use `at` together with hour, minute or second. +The time trigger is configured to run once at a specific point in time each day. ```yaml automation: trigger: platform: time + # Military time format. This trigger will fire at 3:32 PM + at: '15:32:00' +``` + +### {% linkable_title Time pattern trigger %} + +With the time pattern trigger, you can match if the hour, minute or second of the current time matches a specific value. You can prefix the value with a `/` to match whenever the value is divisible by that number. You can specify `*` to match any value. + +```yaml +automation: + trigger: + platform: time_pattern # Matches every hour at 5 minutes past whole minutes: 5 - seconds: 00 automation 2: trigger: - platform: time - # When 'at' is used, you cannot also match on hour, minute, seconds. - # Military time format. - at: '15:32:00' + platform: time_pattern + # Trigger once per minute during the hour of 3 + hours: '3' + minutes: '*' automation 3: trigger: - platform: time + platform: time_pattern # You can also match on interval. This will match every 5 minutes minutes: '/5' - seconds: 00 ``` +

- Remember that if you are using matching to include both `minutes` and `seconds`. Without `seconds`, your automation will trigger 60 times during the matching minute. + Do not prefix numbers with a zero - using `'00'` instead of '0' for example will result in errors.

### {% linkable_title Webhook trigger %} @@ -204,7 +240,8 @@ automation: webhook_id: some_hook_id ``` -You could test triggering above automation by sending a POST HTTP request to `http://your-home-assistant:8123/api/webhook/some_hook_id`. +You could test triggering the above automation by sending a POST HTTP request to `http://your-home-assistant:8123/api/webhook/some_hook_id`. An example with no data sent to a SSL/TLS secured installation and using the command-line curl program is `curl -d "" https://your-home-assistant:8123/api/webhook/some_hook_id`. + ### {% linkable_title Zone trigger %} @@ -220,10 +257,10 @@ automation: event: enter # or "leave" ``` -### {% linkable_title Geo Location trigger %} +### {% linkable_title Geolocation trigger %} -Geo Location triggers can trigger when an entity is appearing in or disappearing from a zone. Entities that are created by a [Geo Location](/components/geo_location/) platform support reporting GPS coordinates. -Because entities are generated and removed by these platforms automatically, the entity id normally cannot be predicted. Instead, this trigger requires the definition of a `source` which is directly linked to one of the Geo Location platforms. +Geolocation triggers can trigger when an entity is appearing in or disappearing from a zone. Entities that are created by a [Geolocation](/components/geo_location/) platform support reporting GPS coordinates. +Because entities are generated and removed by these platforms automatically, the entity id normally cannot be predicted. Instead, this trigger requires the definition of a `source` which is directly linked to one of the Geolocation platforms. ```yaml automation: @@ -243,9 +280,8 @@ When your want your automation rule to have multiple triggers, just prefix the f automation: trigger: # first trigger - - platform: time + - platform: time_pattern minutes: 5 - seconds: 00 # our second trigger is the sunset - platform: sun event: sunset diff --git a/source/_docs/autostart/macos.markdown b/source/_docs/autostart/macos.markdown index 56e6b27c3f6e..012c72ff83a4 100644 --- a/source/_docs/autostart/macos.markdown +++ b/source/_docs/autostart/macos.markdown @@ -10,7 +10,7 @@ footer: true redirect_from: /getting-started/autostart-macos/ --- -Setting up Home Assistant to run as a background service is simple; macOS will start Home Assistant on boot and make sure it's always running. +Setting up Home Assistant to run as a background service is simple; macOS will start Home Assistant after the system has booted, the user has logged in, and make sure it's always running. To get Home Assistant installed as a background service, run: diff --git a/source/_docs/autostart/systemd.markdown b/source/_docs/autostart/systemd.markdown index 2ca35936e20a..30faef2d1220 100644 --- a/source/_docs/autostart/systemd.markdown +++ b/source/_docs/autostart/systemd.markdown @@ -70,7 +70,7 @@ After=docker.service [Service] Restart=always RestartSec=3 -ExecStart=/usr/bin/docker run --name="home-assistant-%i" -v /home/%i/.homeassistant/:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/home-assistant +ExecStart=/usr/bin/docker run --name=home-assistant-%i -v /home/%i/.homeassistant/:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/home-assistant ExecStop=/usr/bin/docker stop -t 2 home-assistant-%i ExecStopPost=/usr/bin/docker rm -f home-assistant-%i @@ -134,3 +134,11 @@ When working on Home Assistant, you can easily restart the system and then watch $ sudo systemctl restart home-assistant@YOUR_USER && sudo journalctl -f -u home-assistant@YOUR_USER ``` +### {% linkable_title Automatically restarting Home Assistant on failure %} + +If you want to restart the Home Assistant service automatically after a crash, add the following lines to the `[Service]` section of your unit file: + +``` +Restart=on-failure +RestartSec=5s +``` diff --git a/source/_docs/backend/database.markdown b/source/_docs/backend/database.markdown index 81a5226b41b2..c8266477d4ea 100644 --- a/source/_docs/backend/database.markdown +++ b/source/_docs/backend/database.markdown @@ -124,4 +124,4 @@ The `VACUUM` command cleans your database. sqlite> VACUUM; ``` -For a more interactive way of working with the database, checkout our [Jupyter notebooks](http://nbviewer.jupyter.org/github/home-assistant/home-assistant-notebooks/tree/master/). +For a more interactive way of working with the database, check the [Data Science Portal](https://data.home-assistant.io/). diff --git a/source/_docs/configuration.markdown b/source/_docs/configuration.markdown index f97eb07c8676..2955704fbcf8 100644 --- a/source/_docs/configuration.markdown +++ b/source/_docs/configuration.markdown @@ -35,10 +35,11 @@ If you run into trouble while configuring Home Assistant, have a look at the [co ## {% linkable_title Reloading changes %} -You will have to restart Home Assistant for most changes to `configuration.yaml` to take effect. You can load changes to [automations](/docs/automation/), [customize](/docs/configuration/customizing-devices/), [groups](/components/group/), and [scripts](/components/script/) without restarting if you're not using [packages](/docs/configuration/packages/). +You will have to restart Home Assistant for most changes to `configuration.yaml` to take effect. +You can load changes to [automations](/docs/automation/), [core (customize)](/docs/configuration/customizing-devices/), [groups](/components/group/), and [scripts](/components/script/) without restarting.

-If you've made any changes, remember to [check your configuration](https://www.home-assistant.io/docs/configuration/troubleshooting/#problems-with-the-configuration) before trying to reload or restart. +If you've made any changes, remember to [check your configuration](/docs/configuration/troubleshooting/#problems-with-the-configuration) before trying to reload or restart.

## {% linkable_title Migrating to a new system %} diff --git a/source/_docs/configuration/customizing-devices.markdown b/source/_docs/configuration/customizing-devices.markdown index cb059e9ebd9f..0ef2263845c0 100644 --- a/source/_docs/configuration/customizing-devices.markdown +++ b/source/_docs/configuration/customizing-devices.markdown @@ -42,17 +42,17 @@ hidden: description: Set to `true` to hide the entity. required: false type: boolean - default: False + default: false homebridge_hidden: description: Set to `true` to hide the entity from `HomeBridge`. required: false type: boolean - default: False + default: false emulated_hue_hidden: description: Set to `true` to hide the entity from `emulated_hue` (this will be deprecated in the near future and should be configured in [`emulated_hue`](/components/emulated_hue)). required: false type: boolean - default: False + default: false entity_picture: description: URL to use as picture for entity. required: false @@ -65,7 +65,7 @@ assumed_state: description: For switches with an assumed state two buttons are shown (turn off, turn on) instead of a switch. By setting `assumed_state` to `false` you will get the default switch icon. required: false type: boolean - default: True + default: true device_class: description: Sets the class of the device, changing the device state and icon that is displayed on the UI (see below). It does not set the `unit_of_measurement`. required: false diff --git a/source/_docs/configuration/devices.markdown b/source/_docs/configuration/devices.markdown index 6aedad89483e..61b2213feda1 100644 --- a/source/_docs/configuration/devices.markdown +++ b/source/_docs/configuration/devices.markdown @@ -37,8 +37,6 @@ sensor: switch: - platform: vera - - platform: tplink - host: IP_ADDRESS ``` ## {% linkable_title Style 2: List each device separately %} @@ -65,8 +63,7 @@ switch 1: platform: vera switch 2: - platform: tplink - host: IP_ADDRESS + platform: vera ``` ## {% linkable_title Grouping devices %} diff --git a/source/_docs/configuration/events.markdown b/source/_docs/configuration/events.markdown index 86494fc7b28f..187e757e0f12 100644 --- a/source/_docs/configuration/events.markdown +++ b/source/_docs/configuration/events.markdown @@ -70,6 +70,9 @@ Field | Description ----- | ----------- `service_call_id` | String with the unique call id of the service call that was executed. Example: `23123-4`. +

+ Starting with 0.84, it is no longer possible to listen for event `service_executed`. +

### {% linkable_title Event `platform_discovered` %} Event `platform_discovered` is fired when a new platform has been discovered by the [`discovery`](/components/discovery/) component. diff --git a/source/_docs/configuration/group_visibility.markdown b/source/_docs/configuration/group_visibility.markdown index cab429ce404f..230ae78b11b6 100644 --- a/source/_docs/configuration/group_visibility.markdown +++ b/source/_docs/configuration/group_visibility.markdown @@ -20,7 +20,7 @@ To change visibility of a group, use the service `group.set_visibility`, pass th service: group.set_visibility entity_id: group.basement data: - visible: False + visible: false ```

@@ -42,7 +42,7 @@ automation: service: group.set_visibility entity_id: group.basement data: - visible: False + visible: false automation 2: trigger: @@ -52,7 +52,7 @@ automation 2: service: group.set_visibility entity_id: group.basement data: - visible: True + visible: true ``` ## {% linkable_title Easier automations %} diff --git a/source/_docs/configuration/packages.markdown b/source/_docs/configuration/packages.markdown index 00a3636b4f49..91285f8c3010 100644 --- a/source/_docs/configuration/packages.markdown +++ b/source/_docs/configuration/packages.markdown @@ -12,6 +12,10 @@ redirect_from: /topics/packages/ Packages in Home Assistant provide a way to bundle different component's configuration together. We already learned about the two configuration styles (specifying platforms entries together or individually) on the [adding devices](/docs/configuration/devices/) page. Both of these configuration methods require you to create the component key in the main `configuration.yaml` file. With packages we have a way to include different components, or different configuration parts using any of the `!include` directives introduced in [splitting the configuration](/docs/configuration/splitting_configuration). +

+Note that if you use packages for your configuration, the configuration reloading buttons in the configuration panel will not reload your packages. +

+ Packages are configured under the core `homeassistant/packages` in the configuration and take the format of a package name (no spaces, all lower case) followed by a dictionary with the package config. For example, package `pack_1` would be created as: ```yaml @@ -22,7 +26,7 @@ homeassistant: ...package configuration here... ``` -The package configuration can include: `switch`, `light`, `automation`, `groups`, or most other Home Assistant components. +The package configuration can include: `switch`, `light`, `automation`, `groups`, or most other Home Assistant components including hardware platforms. It can be specified inline or in a separate YAML file using `!include`. @@ -88,7 +92,7 @@ homeassistant: ``` This uses the concept splitting the configuration and will include all files in a directory with the keys representing the filenames. -See the documentation about [splitting the configuration](/docs/configuration/splitting_configuration/) for more information about `!include_dir_named` and other include statements that might be helpful. +See the documentation about [splitting the configuration](/docs/configuration/splitting_configuration/) for more information about `!include_dir_named` and other include statements that might be helpful. The benefit of this approach is to pull all configurations required to integrate a system, into one file, rather than accross several. ### {% linkable_title Customizing entities with packages %} diff --git a/source/_docs/configuration/securing.markdown b/source/_docs/configuration/securing.markdown index 85117013ff53..945f1c3e8344 100644 --- a/source/_docs/configuration/securing.markdown +++ b/source/_docs/configuration/securing.markdown @@ -55,4 +55,4 @@ For remote access for a component, for example, a device tracker, you have to en * A [self-signed certificate](/cookbook/tls_self_signed_certificate/) - be warned though, some services will refuse to work with self-signed certificates 3. Optionally use a proxy like [NGINX](/docs/ecosystem/nginx/), [Apache](/cookbook/apache_configuration/), or another. These allow you to provide finer-grained access. You could use this to limit access to specific parts of the API (for example, only `/api/owntracks/`) 4. Enable IP Filtering and configure a low [Login Attempts Threshold](/components/http/) -5. If you use a proxy then install [fail2ban](https://www.fail2ban.org/wiki/index.php/Main_Page) to [monitor your proxy logs](https://www.home-assistant.io/cookbook/fail2ban/) (or Home Assistant logs) for failed authentication +5. If you use a proxy then install [fail2ban](https://www.fail2ban.org/wiki/index.php/Main_Page) to [monitor your proxy logs](/cookbook/fail2ban/) (or Home Assistant logs) for failed authentication diff --git a/source/_docs/configuration/splitting_configuration.markdown b/source/_docs/configuration/splitting_configuration.markdown index 0d61a87c3e1d..c04bd04460c9 100644 --- a/source/_docs/configuration/splitting_configuration.markdown +++ b/source/_docs/configuration/splitting_configuration.markdown @@ -101,7 +101,7 @@ Let's look at the `device_tracker.yaml` file from our example: hosts: 192.168.2.0/24 home_interval: 3 - track_new_devices: yes + track_new_devices: true interval_seconds: 40 consider_home: 120 ``` diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index a4887fa8ebf3..53c5af9d7753 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -10,12 +10,12 @@ footer: true redirect_from: /topics/templating/ --- -This is an advanced feature of Home Assistant. You'll need a basic understanding of the following things: +This is an advanced feature of Home Assistant. You'll need a basic understanding of: - [Home Assistant architecture](/developers/architecture/), especially states. -- [State object](/topics/state_object/) +- The [State object](/topics/state_object/). -Templating is a powerful feature in Home Assistant that allows the user control over information that is going into and out of the system. It is used for: +Templating is a powerful feature that allows you to control information going into and out of the system. It is used for: - Formatting outgoing messages in, for example, the [notify](/components/notify/) platforms and [alexa](/components/alexa/) component. - Process incoming data from sources that provide raw data, like [MQTT](/components/mqtt/), [`rest` sensor](/components/sensor.rest/) or the [`command_line` sensor](/components/sensor.command_line/). @@ -23,11 +23,16 @@ Templating is a powerful feature in Home Assistant that allows the user control ## {% linkable_title Building templates %} -Templating in Home Assistant is powered by the [Jinja2](http://jinja.pocoo.org/) templating engine. This means that we are using their syntax and make some custom Home Assistant variables available to templates during rendering. We will not go over the basics of the syntax, as Jinja2 does a lot better job at this in their [Jinja2 documentation](http://jinja.pocoo.org/docs/dev/templates/). +Templating in Home Assistant is powered by the [Jinja2](http://jinja.pocoo.org/) templating engine. This means that we are using their syntax and make some custom Home Assistant variables available to templates during rendering. Jinja2 supports a wide variety of operations: + +- [Mathematical operation](http://jinja.pocoo.org/docs/dev/templates/#math) +- [Comparisons](http://jinja.pocoo.org/docs/dev/templates/#comparisons) +- [Logic](http://jinja.pocoo.org/docs/dev/templates/#logic) + +We will not go over the basics of the syntax, as Jinja2 does a great job of this in their [templates documentation](http://jinja.pocoo.org/docs/dev/templates/). + +The frontend has a template editor tool to help develop and debug templates. Click on the template developer tool icon icon, create your template in the _Template editor_ and check the results on the right. -

-The frontend has a template editor developer tool to help develop and debug templates. -

Templates can get big pretty fast. To keep a clear overview, consider using YAML multiline strings to define your templates: @@ -47,17 +52,11 @@ script: ``` {% endraw %} -[Jinja2](http://jinja.pocoo.org/) supports a wide variety of operations: - -- [Mathematical operation](http://jinja.pocoo.org/docs/dev/templates/#math) -- [Comparisons](http://jinja.pocoo.org/docs/dev/templates/#comparisons) -- [Logic](http://jinja.pocoo.org/docs/dev/templates/#logic) - - ## {% linkable_title Home Assistant template extensions %} -Home Assistant adds extensions to allow templates to access all of the current states: + Extensions allow templates to access all of the Home Assistant specific states and adds other convenience functions and filters. +### {% linkable_title States %} - Iterating `states` will yield each state sorted alphabetically by entity ID. - Iterating `states.domain` will yield each state of that domain sorted alphabetically by entity ID. - `states.sensor.temperature` returns the state object for `sensor.temperature`. @@ -65,87 +64,60 @@ Home Assistant adds extensions to allow templates to access all of the current s - `is_state('device_tracker.paulus', 'home')` will test if the given entity is the specified state. - `state_attr('device_tracker.paulus', 'battery')` will return the value of the attribute or None if it doesn't exist. - `is_state_attr('device_tracker.paulus', 'battery', 40)` will test if the given entity attribute is the specified state (in this case, a numeric value). -- `now()` will be rendered as current time in your time zone. - - For specific values: `now().second`, `now().minute`, `now().hour`, `now().day`, `now().month`, `now().year`, `now().weekday()` and `now().isoweekday()` -- `utcnow()` will be rendered as UTC time. - - For specific values: `utcnow().second`, `utcnow().minute`, `utcnow().hour`, `utcnow().day`, `utcnow().month`, `utcnow().year`, `utcnow().weekday()` and `utcnow().isoweekday()`. -- `as_timestamp()` will convert datetime object or string to UNIX timestamp -- `distance()` will measure the distance in kilometers between home, entity, coordinates. -- `closest()` will find the closest entity. -- `float` will format the output as float. -- `strptime(string, format)` will parse a string to a datetime based on a [format][strp-format]. -- `log(value, base)` will take the logarithm of the input. When the base is omitted, it defaults to `e` - the natural logarithm. Can also be used as a filter. -- `sin(value)` will return the sine of the input. Can be used as a filter. -- `cos(value)` will return the cosine of the input. Can be used as a filter. -- `tan(value)` will return the tangent of the input. Can be used as a filter. -- `sqrt(value)` will return the square root of the input. Can be used as a filter. -- `e` mathematical constant, approximately 2.71828. -- `pi` mathematical constant, approximately 3.14159. -- `tau` mathematical constant, approximately 6.28318. -- Filter `round(x)` will convert the input to a number and round it to `x` decimals. -- Filter `timestamp_local` will convert an UNIX timestamp to local time/data. -- Filter `timestamp_utc` will convert an UNIX timestamp to UTC time/data. -- Filter `timestamp_custom(format_string, local_boolean)` will convert an UNIX timestamp to a custom format, the use of a local timestamp is default, supporting [Python format options](https://docs.python.org/3/library/time.html#time.strftime). -- Filter `max` will obtain the largest item in a sequence. -- Filter `min` will obtain the smallest item in a sequence. -- Filter `regex_match(string, find, ignorecase=FALSE)` will match the find expression at the beginning of the string using regex. -- Filter `regex_search(string, find, ignorecase=FALSE)` will match the find expression anywhere in the string using regex. -- Filter `regex_replace(string, find='', replace='', ignorecase=False)` will replace the find expression with the replace string using regex. -- Filter `regex_findall_index(string, find='', index=0, ignorecase=False)` will find all regex matches of find in string and return the match at index (findall returns an array of matches). -- Filter `bitwise_and(value_one, value_two)` perform a bitwise and(&) operation with two values. -- Filter `bitwise_or(value_one, value_two)` perform a bitwise or(\|) operation with two values. -- Filter `base64_encode` convert given value to a Base64 encoded string. -- Filter `base64_decode` convert given Base64 value to a regulary string. -- Filter `ordinal` convert a number into a speakable ordinal text. - -[strp-format]: https://docs.python.org/3.6/library/datetime.html#strftime-and-strptime-behavior - -

-If your template uses an `entity_id` that begins with a number (example: `states.device_tracker.2008_gmc`) you must use a bracket syntax to avoid errors caused by rendering the `entity_id` improperly. In the example given, the correct syntax for the device tracker would be: `states.device_tracker['2008_gmc']` -

-## {% linkable_title Templates using `now()` %} +Besides the normal [state object methods and properties](/topics/state_object/), `states.sensor.temperature.state_with_unit` will print the state of the entity and, if available, the unit. -

-Rendering templates with time (`now()`) is dangerous as updates only trigger templates in sensors based on entity state changes. -

- -## {% linkable_title Priority of operators %} -The default priority of operators is that the filter (`|`) has priority over everything except brackets. This means that: +#### {% linkable_title States examples %} +The next two statements result in the same value if the state exists. The second one will result in an error if the state does not exist. {% raw %} -```yaml -{{ states('sensor.temperature') | float / 10 | round(2) }} +```text +{{ states('device_tracker.paulus') }} +{{ states.device_tracker.paulus.state }} ``` {% endraw %} -Would round `10` to 2 decimal places, then divide `states('sensor.temperature')` by that. +Print out a list of all the sensor states: -## {% linkable_title Home Assistant template extensions %} +{% raw %} +```text +{% for state in states.sensor %} + {{ state.entity_id }}={{ state.state }}, +{% endfor %} +``` +{% endraw %} -In templates, besides the normal [state object methods and properties](/topics/state_object/), there are also some extra things available: +Other state examples: +{% raw %} -- `states.sensor.temperature.state_with_unit` will print the state of the entity and, if available, the unit. +```text +{% if is_state('device_tracker.paulus', 'home') %} + Ha, Paulus is home! +{% else %} + Paulus is at {{ states('device_tracker.paulus') }}. +{% endif %} -## {% linkable_title Examples %} +{{ states('sensor.temperature') | float + 1 }} -To test a template, go to the template developer tool icon template developer tools, create your template in the _Template editor_ and check the results on the right. +{{ (states('sensor.temperature') | float * 10) | round(2) }} -### {% linkable_title States %} +{% if states('sensor.temperature') | float > 20 %} + It is warm! +{%endif %} -The next two statements result in same value if state exists. The second one will result in an error if state does not exist. +{{ as_timestamp(states.binary_sensor.garage_door.last_changed) }} -{% raw %} -```text -{{ states('device_tracker.paulus') }} -{{ states.device_tracker.paulus.state }} +{{ as_timestamp(now()) - as_timestamp(states.binary_sensor.garage_door.last_changed) }} ``` {% endraw %} + ### {% linkable_title Attributes %} -Print an attribute if state is defined. Both will return the same thing but the last one you can specify entity_id from a variable. +You can print an attribute with `state_attr` if state is defined. + +#### {% linkable_title Attributes examples %} {% raw %} ```text @@ -157,7 +129,7 @@ Print an attribute if state is defined. Both will return the same thing but the ``` {% endraw %} -With strings +With strings: {% raw %} ```text @@ -171,39 +143,24 @@ With strings ``` {% endraw %} -### {% linkable_title Sensor states %} - -Print out a list of all the sensor states. -{% raw %} -```text -{% for state in states.sensor %} - {{ state.entity_id }}={{ state.state }}, -{% endfor %} - -{% if is_state('device_tracker.paulus', 'home') %} - Ha, Paulus is home! -{% else %} - Paulus is at {{ states('device_tracker.paulus') }}. -{% endif %} - -{{ states('sensor.temperature') | float + 1 }} - -{{ (states('sensor.temperature') | float * 10) | round(2) }} - -{% if states('sensor.temperature') | float > 20 %} - It is warm! -{%endif %} - -{{ as_timestamp(states.binary_sensor.garage_door.last_changed) }} - -{{ as_timestamp(now()) - as_timestamp(states.binary_sensor.garage_door.last_changed) }} -``` -{% endraw %} +### {% linkable_title Time %} +- `now()` will be rendered as the current time in your time zone. + - For specific values: `now().second`, `now().minute`, `now().hour`, `now().day`, `now().month`, `now().year`, `now().weekday()` and `now().isoweekday()` +- `utcnow()` will be rendered as UTC time. + - For specific values: `utcnow().second`, `utcnow().minute`, `utcnow().hour`, `utcnow().day`, `utcnow().month`, `utcnow().year`, `utcnow().weekday()` and `utcnow().isoweekday()`. +- `as_timestamp()` will convert datetime object or string to UNIX timestamp. +- `strptime(string, format)` will parse a string to a datetime based on a [format](https://docs.python.org/3.6/library/datetime.html#strftime-and-strptime-behavior). +- Filter `timestamp_local` will convert an UNIX timestamp to local time/data. +- Filter `timestamp_utc` will convert a UNIX timestamp to UTC time/data. +- Filter `timestamp_custom(format_string, local_boolean)` will convert a UNIX timestamp to a custom format, the use of a local timestamp is default. Supports the standard [Python time formatting options](https://docs.python.org/3/library/time.html#time.strftime). -### {% linkable_title Distance examples %} +### {% linkable_title Distance %} +- `distance()` will measure the distance in kilometers between home, entity, coordinates. +- `closest()` will find the closest entity. -If only 1 location is passed in, Home Assistant will measure the distance from home. +#### {% linkable_title Distance examples %} +If only one location is passed in, Home Assistant will measure the distance from home. {% raw %} ```text @@ -217,8 +174,6 @@ These can also be combined in any combination: ``` {% endraw %} -### {% linkable_title Closest examples %} - Find entities closest to the Home Assistant location: {% raw %} @@ -230,7 +185,7 @@ Query all entities in group.children: {{ closest(states.group.children) }} ``` {% endraw %} -Find entities closest to a coordinate or another entity. All previous arguments still apply for 2nd argument. +Find entities closest to a coordinate or another entity. All previous arguments still apply for second argument. {% raw %} ```text @@ -240,8 +195,6 @@ Closest to an entity: {{ closest(states.zone.school, 'group.children') }} ``` {% endraw %} -### {% linkable_title Combined %} - Since closest returns a state, we can combine it with distance too. {% raw %} @@ -250,9 +203,36 @@ Since closest returns a state, we can combine it with distance too. ``` {% endraw %} + +### {% linkable_title Formatting %} +- `float` will format the output as float. + +### {% linkable_title Numeric functions and filters %} +Some of these functions can also be used in a [filter](http://jinja.pocoo.org/docs/dev/templates/#id11). This means they can act as a normal function like this `sqrt(2)`, or as part of a filter like this `2|sqrt`. + +- `log(value, base)` will take the logarithm of the input. When the base is omitted, it defaults to `e` - the natural logarithm. Can also be used as a filter. +- `sin(value)` will return the sine of the input. Can be used as a filter. +- `cos(value)` will return the cosine of the input. Can be used as a filter. +- `tan(value)` will return the tangent of the input. Can be used as a filter. +- `sqrt(value)` will return the square root of the input. Can be used as a filter. +- `e` mathematical constant, approximately 2.71828. +- `pi` mathematical constant, approximately 3.14159. +- `tau` mathematical constant, approximately 6.28318. +- Filter `round(x)` will convert the input to a number and round it to `x` decimals. +- Filter `max` will obtain the largest item in a sequence. +- Filter `min` will obtain the smallest item in a sequence. +- Filter `value_one|bitwise_and(value_two)` perform a bitwise and(&) operation with two values. +- Filter `value_one|bitwise_or(value_two)` perform a bitwise or(\|) operation with two values. + +### {% linkable_title Regular expressions %} +- Filter `string|regex_match(find, ignorecase=FALSE)` will match the find expression at the beginning of the string using regex. +- Filter `string|regex_search(find, ignorecase=FALSE)` will match the find expression anywhere in the string using regex. +- Filter `string|regex_replace(find='', replace='', ignorecase=False)` will replace the find expression with the replace string using regex. +- Filter `string|regex_findall_index(find='', index=0, ignorecase=False)` will find all regex matches of find in string and return the match at index (findall returns an array of matches). + ## {% linkable_title Processing incoming data %} -The other part of templating is processing incoming data. It will allow you to modify incoming data and extract only the data you care about. This will work only for platforms and components that mentioned support for this in their documentation. +The other part of templating is processing incoming data. It allows you to modify incoming data and extract only the data you care about. This will only work for platforms and components that mention support for this in their documentation. It depends per component or platform, but it is common to be able to define a template using the `value_template` configuration key. When a new value arrives, your template will be rendered while having access to the following values on top of the usual Home Assistant extensions: @@ -329,7 +309,7 @@ The following overview contains a couple of options to get the needed values: {% raw %}{{ value_json.tst | timestamp_custom('%Y' True) }}{% endraw %} ``` -To evaluate a response, go to the template developer tool icon template developer tools, create your output into "Template", and check the result. +To evaluate a response, go to the template developer tool icon template developer tools, create your output in "Template", and check the result. {% raw %} ```yaml @@ -344,3 +324,28 @@ To evaluate a response, go to the + Make sure you include the `hook.service` plugin if you want to run Caddy as a service +

+ +### {% linkable_title 3. Port forwarding. %} + +Forward ports 443 and 80 to your server on your router. Do not forward port 8123. + +### {% linkable_title 4. Create Caddyfile. %} + +Use this as your Caddyfile, change the domain name to match yours. ``` -hass.example.org { +example.com { proxy / localhost:8123 { websocket transparent } } ``` + +### {% linkable_title 5. Configure Home Assistant %} + +Home Assistant is still available without using the Caddy proxy. Restricting it to only listen to `127.0.0.1` will forbid direct accesses. Also, Home Assistant should be told to trust headers coming from Caddy proxy only. Otherwise, incoming requests will always come from `127.0.0.1` and not the real IP address. + +On your `configuration.yaml` file, edit the `http` component. + +```yaml +http: + # For extra security set this to only accept connections on localhost if Caddy is on the same machine + # server_host: 127.0.0.1 + # Update this line to be your domain + base_url: https://example.com + use_x_forwarded_for: true + # You must set the trusted proxy IP address so that Home Assistant will properly accept connections + # Set this to your Caddy machine IP, or localhost if hosted on the same machine. + trusted_proxies: +``` + +### {% linkable_title 6. Start Caddy %} + +You can either start Caddy or [install it as a service](https://github.com/mholt/caddy/wiki/Caddy-as-a-service-examples), pass the Caddyfile path as a `conf` parameter. +Home Assistant will be listening on port 443 (HTTPS) and all insecure traffic on port 80 will be redirected. + diff --git a/source/_docs/ecosystem/haproxy.markdown b/source/_docs/ecosystem/haproxy.markdown new file mode 100644 index 000000000000..3e56ae52a9d5 --- /dev/null +++ b/source/_docs/ecosystem/haproxy.markdown @@ -0,0 +1,114 @@ +--- +layout: page +title: "HAProxy" +description: "Documentation about setting up Home Assistant with HAProxy" +date: 2018-01-02 11:23:00 -0500 +sidebar: true +comments: false +sharing: true +footer: true +--- + +Using HAProxy to proxy for Home Assistant allows you to serve Home Assistant securely over standard ports with HTTP to HTTPS redirection. + +### {% linkable_title Install HAProxy on your server %} + +This will vary depending on your OS. Check out Google for this. + +### {% linkable_title Obtain an SSL certificate %} + +There are multiple ways of obtaining an SSL certificate. Let’s Encrypt is one method. +Use Google for this, but a good example of using Certbot can be found [here](https://www.digitalocean.com/community/tutorials/how-to-secure-haproxy-with-let-s-encrypt-on-ubuntu-12-04). + +### {% linkable_title HAPRoxy Configuration %} + +The following configuration updates HAProxy defaults for more secure ciphers for SSL and logging and connection +timeouts. + +Items to update for your deployment: + + * `bind`: Update the ports HAProxy listens on for forwarding. + * `subdomain.domain.com`: Your domain to use + * `ssl crt`: The path to your SSL certificate. + * `server hass 127.0.0.1:8123`: The IP and port location of your Home Assistant instance. + +```text +global + log /dev/log local0 + log /dev/log local1 notice + chroot /var/lib/haproxy + stats socket /run/haproxy/admin.sock mode 660 level admin + stats timeout 30s + user haproxy + group haproxy + daemon + + # Default SSL material locations + ca-base /etc/ssl/certs + crt-base /etc/ssl/private + + # Default ciphers to use on SSL-enabled listening sockets. + # For more information, see ciphers(1SSL). This list is from: + # https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/ + ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS + ssl-default-bind-options no-sslv3 + maxconn 2048 + tune.ssl.default-dh-param 2048 + +defaults + log global + mode http + option httplog + option dontlognull + timeout connect 5000 + timeout client 50000 + timeout server 50000 + timeout http-request 5s #protection from Slowloris attacks + +frontend www-http + bind *:80 + redirect scheme https + +frontend www-https + log /dev/log local0 debug + bind *:443 ssl crt /etc/haproxy/certs/MYCERT.pem + acl hass-acl hdr(host) -i SUBDOMAIN.DOMAIN.COM + use_backend hass-backend if hass-acl + +backend hass-backend + server hass :8123 + + mode http + option forwardfor + http-request add-header X-Forwarded-Proto https + http-request add-header X-Forwarded-Port 443 +``` + +### {% linkable_title Forward Ports %} + +Forward ports 443 and (optionally) 80 to your server on your router. + +Do not forward port 8123, HAProxy takes care of securing the connection with HTTPS on 443. +If 8123 is forwarded then it will not be secured. + +Replace 443 with whatever port you chose to bind to in the config if different. + +### {% linkable_title Configure Home Assistant HTTP Component %} + +In your `configuration.yaml` file, edit the [http component](https://www.home-assistant.io/components/http/). + +```text +http: + # For extra security set this to only accept connection on localhost if HAProxy is on the same machine + # server_host: 127.0.0.1 + # Update this line to be your domain + base_url: https://example.com + use_x_forwarded_for: true + # You must set the trusted proxy IP address so that Home Assistant will properly accept connections + # Set this to your HAProxy machine IP, or localhost if hosted on the same machine. + trusted_proxies: +``` + +### {% linkable_title Restart or Reload HAProxy %} + +Use your OS method of restarting or reloading HAProxy. Use Google for this. diff --git a/source/_docs/ecosystem/ios.markdown b/source/_docs/ecosystem/ios.markdown index d6554f1ace7f..57c9ad0c579e 100644 --- a/source/_docs/ecosystem/ios.markdown +++ b/source/_docs/ecosystem/ios.markdown @@ -31,6 +31,8 @@ The `ios` component is the companion component for the Home Assistant iOS app. W Loading the `ios` component will also load the [`device_tracker`](/components/device_tracker), [`zeroconf`](/components/zeroconf) and [`notify`](/components/notify) platforms. +The Home Assistant for iOS app supports the new authentication system introduced in Home Assistant 0.77. + ## {% linkable_title Setup %} ### {% linkable_title Automated Setup %} diff --git a/source/_docs/ecosystem/ios/notifications/actions.markdown b/source/_docs/ecosystem/ios/notifications/actions.markdown index 3112ae06a334..9f1493b3d72f 100644 --- a/source/_docs/ecosystem/ios/notifications/actions.markdown +++ b/source/_docs/ecosystem/ios/notifications/actions.markdown @@ -58,7 +58,7 @@ When sending a notification: - **identifier** (*Required*): A unique identifier for this action. Must be uppercase and have no special characters or spaces. Only needs to be unique to the category, not unique globally. - **title** (*Required*): The text to display on the button. Keep it short. - **activationMode** (*Optional*): The mode in which to run the app when the action is performed. Setting this to `foreground` will make the app open after selecting. Default value is `background`. -- **authenticationRequired** (*Optional*): If a truthy value (`true`, `True`, `yes`, etc.) the user must unlock the device before the action is performed. +- **authenticationRequired** (*Optional*): If `true`, the user must unlock the device before the action is performed. - **destructive** (*Optional*): When the value of this property is a truthy value, the system displays the corresponding button differently to indicate that the action is destructive (text color is red). - **behavior** (*Optional*): When `textInput` the system provides a way for the user to enter a text response to be included with the notification. The entered text will be sent back to Home Assistant. Default value is `default`. - **textInputButtonTitle** (*Optional*): The button label. *Required* if `behavior` is `textInput`. @@ -76,14 +76,14 @@ ios: - identifier: 'SOUND_ALARM' title: 'Sound Alarm' activationMode: 'background' - authenticationRequired: yes - destructive: yes + authenticationRequired: true + destructive: true behavior: 'default' - identifier: 'SILENCE_ALARM' title: 'Silence Alarm' activationMode: 'background' - authenticationRequired: yes - destructive: no + authenticationRequired: true + destructive: false behavior: 'textInput' textInputButtonTitle: 'Silencio!' textInputPlaceholder: 'Placeholder' diff --git a/source/_docs/ecosystem/ios/notifications/content_extensions.markdown b/source/_docs/ecosystem/ios/notifications/content_extensions.markdown index 721386de2e3b..29f0f5c0727c 100644 --- a/source/_docs/ecosystem/ios/notifications/content_extensions.markdown +++ b/source/_docs/ecosystem/ios/notifications/content_extensions.markdown @@ -93,13 +93,13 @@ ios: - identifier: 'OPEN_COVER' title: 'Open Cover' activationMode: 'background' - authenticationRequired: yes + authenticationRequired: true destructive: no - identifier: 'CLOSE_COVER' title: 'Close Cover' activationMode: 'background' - authenticationRequired: yes - destructive: yes + authenticationRequired: true + destructive: true ``` # Troubleshooting diff --git a/source/_docs/ecosystem/ios/notifications/sounds.markdown b/source/_docs/ecosystem/ios/notifications/sounds.markdown index 7daa9e1b9a16..0ebc712bf05e 100644 --- a/source/_docs/ecosystem/ios/notifications/sounds.markdown +++ b/source/_docs/ecosystem/ios/notifications/sounds.markdown @@ -31,23 +31,24 @@ Notes: * You must use the full filename in the payload (including extension). ## {% linkable_title Custom push notification sounds %} -The app allows you to use your own custom sounds in push notifications. The sounds must be formatted following [Apple's requirements][sound-requirements]. You set the filename of the sound in the notification payload. To add sounds: + +The app allows you to use your own custom sounds in push notifications. The sounds must be formatted as 32bit float 48000Hz wav files. You set the filename of the sound in the notification payload. To add sounds: 1. Connect the device to a PC or Mac running the latest version of iTunes. 2. Go to the device in iTunes. -3. Select "Apps" on the left sidebar. -4. Scroll down until you see the section labeled "File Sharing". -5. Select Home Assistant. -6. Drag and drop properly formatted sounds. -7. Click Sync in the lower right. -8. Once sync is complete, disconnect the device from the computer. -9. On your iOS device, open the Home Assistant app. -10. Go to Settings -> Notification Settings. -11. Select "Import sounds from iTunes". +3. Select "File Sharing" in the left-hand menu. +4. Select Home Assistant. +5. Drag and drop properly formatted sounds (32bit float 48000Hz wav files). +6. Click Sync in the lower right. +7. Once the sync is complete, disconnect the device from the computer. +8. On your iOS device, open the Home Assistant app. +9. Go to Settings -> Notification Settings. +10. Select "Import sounds from iTunes". Assuming that you correctly formatted the sounds they are now available to use in push notifications. Notes: + * **Please note that due to a bug in iOS 10 you may need to restart your entire device before notification sounds can be played. This should hopefully be fixed by Apple soon.** * Uploading a file with the same name as an existing one will overwrite the original. * You can view what sounds are installed on each device by inspecting the `ios.conf` file in your configuration directory. They are listed in the `pushSounds` array. diff --git a/source/_docs/ecosystem/nginx.markdown b/source/_docs/ecosystem/nginx.markdown index 0d44113b3e49..4f4fcfa4a244 100644 --- a/source/_docs/ecosystem/nginx.markdown +++ b/source/_docs/ecosystem/nginx.markdown @@ -83,6 +83,24 @@ Double check this configuration to ensure all settings are correct and start ngi Forward ports 443 and 80 to your server on your router. Do not forward port 8123. +### {% linkable_title 9. Configure Home Assistant %} + +Home Assistant is still available without using the NGINX proxy. Restricting it to only listen to `127.0.0.1` will forbid direct accesses. Also, Home Assistant should be told to trust headers coming from the NGINX proxy only. Otherwise, incoming requests will always come from `127.0.0.1` and not the real IP address. + +On your `configuration.yaml` file, edit the `http` component. + +```yaml +http: + # For extra security set this to only accept connections on localhost if NGINX is on the same machine + # server_host: 127.0.0.1 + # Update this line to be your domain + base_url: https://example.com + use_x_forwarded_for: true + # You must set the trusted proxy IP address so that Home Assistant will properly accept connections + # Set this to your NGINX machine IP, or localhost if hosted on the same machine. + trusted_proxies: +``` + ### {% linkable_title NGINX Config %} ```nginx diff --git a/source/_docs/frontend/browsers.markdown b/source/_docs/frontend/browsers.markdown index 520f77135c4f..772bd9922c20 100644 --- a/source/_docs/frontend/browsers.markdown +++ b/source/_docs/frontend/browsers.markdown @@ -10,7 +10,7 @@ footer: true redirect_from: /getting-started/browsers/ --- -Home Assistant requires a web browser to show the frontend and supports all major modern browsers. We don't test the web interface against all available browsers but this page tracks different browsers on various operating systems and should help you to pick a browser which works. The "Release" column contains the release number which were tested. This doesn't mean that older or newer releases not work. +Home Assistant requires a web browser to show the frontend and supports all major modern browsers. We don't test the web interface against all available browsers but this page tracks different browsers on various operating systems and should help you to pick a browser which works. The "Release" column contains the release number which was tested. This doesn't mean that older or newer releases are not work. If a browser is listed as working but you are still having problems, it is possible that some add-on or extension may be the problem. Some add-ons or extension are known to cause issue with the frontend, but it's not possible to test them all. If you are having issues with the frontend displaying correctly, you should disable all your add-ons or extensions and enable them one at a time. @@ -50,7 +50,8 @@ We would appreciate if you help to keep this page up-to-date and add feedback. | [w3m] | 0.5.3 | fails | display the icon shown while loading HA | | [Epiphany] | 3.18.5 | works | | | [surf] | 0.7 | works | | -| [Chrome] | 69.0.3497.100 | works | | +| [Chrome] | 71.0.3578.98 | works | | +| [Waterfox] | 56.2.6 | fails | | ## {% linkable_title Android %} @@ -87,4 +88,5 @@ There are reports that devices running with iOS prior to iOS 10, especially old [Tor Browser]: https://www.torproject.org/ [Uzbl]: http://www.uzbl.org/ [w3m]: http://w3m.sourceforge.net/ +[Waterfox]: https://www.waterfoxproject.org diff --git a/source/_docs/installation.markdown b/source/_docs/installation.markdown index 0d1af7257e1a..9440729d6184 100644 --- a/source/_docs/installation.markdown +++ b/source/_docs/installation.markdown @@ -11,55 +11,39 @@ redirect_from: /getting-started/installation/ ---

-Beginners should check our [Getting started guide](/getting-started/) first. This is for users that require advanced installations. +Beginners should check our [Getting started guide](/getting-started/) first.

-Home Assistant provides multiple ways to be installed. A requirement is that you have [Python 3.5.3 or later](https://www.python.org/downloads/) installed. +Home Assistant provides multiple ways to be installed. The first start may take up to 20 minutes because the required packages will be downloaded and installed. The web interface will be served on `http://ip.add.re.ss:8123/`. Replace `ip.add.re.ss` with the IP of the computer you installed it on.

Please remember to [secure your installation](/docs/configuration/securing/) once you've finished with the installation process.

-## {% linkable_title Recommended options %} +## {% linkable_title Recommended %} - +These install options are fully supported by Home Assistant's documentation. For example, if a component requires that you install something to make it work on one of these methods then the component page will document the steps required. + +**Method**|**You have**|**Recommended for** +:-----|:-----|:----- +[Hass.io](/hassio/installation/)|Raspberry Pi
VM|Anybody +[Docker](/docs/installation/docker/)|Docker|Anybody already running Docker +[Hassbian](/docs/hassbian/installation/)|Raspberry Pi|Those who want a more traditional Linux experience and either have experience with Linux, or intend to learn ## {% linkable_title Alternative installs %} -The following installs are only recommended for experienced users of those platforms. +If you use these install methods, we assume that you know how to manage and administer the operating system you're using. Due to the range of platforms on which these install methods can be used, component documentation may only tell you what you have to install, not how to install it. + +**Method**|**You have**|**Recommended for** +:-----|:-----|:----- +[Virtualenv
(as another user)](/docs/installation/raspberry-pi/)|Any Linux, Python 3.5.3 or later|Those familiar with their operating system +[Virtualenv
(as your user)](/docs/installation/virtualenv/)|Any Python 3.5.3 or later|Developers + +## {% linkable_title Community provided guides %} + +These guides are provided as-is. Some of these install methods are more limited than the methods above. Some components may not work due to limitations of the platform or because required Python packages aren't available for that platform. - -## {% linkable_title After installation %} - -Once Home Assistant is installed, execute the following code in a console/terminal to check if the setup was successful: - -```bash -$ hass -``` - -The first start may take up to 20 minutes because the needed packages will be downloaded and installed. The web interface will be served on [http://localhost:8123](http://localhost:8123). - -For more details about `hass`, please refer to the [tools section](/docs/tools/hass/). - -If you're running a Linux-based platform, we suggest you follow the [VirtualEnv instructions](/docs/installation/virtualenv/) to avoid using `root`. - -You may need to install additional libraries depending on the platforms/components you want to use. diff --git a/source/_docs/installation/armbian.markdown b/source/_docs/installation/armbian.markdown index 5f16fc5bc0e2..14f548a0453b 100644 --- a/source/_docs/installation/armbian.markdown +++ b/source/_docs/installation/armbian.markdown @@ -13,7 +13,7 @@ footer: true Python 3.5.3 or later is required. -Setup Python and `pip` +Setup Python and `pip`: ```bash $ sudo apt-get update @@ -23,10 +23,12 @@ $ sudo apt-get install python3-dev python3-pip Now that you installed python, there are two ways to install Home Assistant: 1. It is recommended to install Home Assistant in a virtual environment to avoid using `root`, using the [VirtualEnv instructions](/docs/installation/virtualenv/) 2. Alternatively, you can install Home Assistant for the user you created when first booting Armbian: + ```bash $ sudo pip3 install homeassistant $ hass --open-ui ``` + Running these commands will: - Install Home Assistant diff --git a/source/_docs/installation/centos.markdown b/source/_docs/installation/centos.markdown index bf0c76c6eef7..4b3364ec44bc 100644 --- a/source/_docs/installation/centos.markdown +++ b/source/_docs/installation/centos.markdown @@ -11,36 +11,48 @@ footer: true To run Python 3.x on [CentOS](https://www.centos.org/) or RHEL (Red Hat Enterprise Linux), [Software Collections](https://www.softwarecollections.org/en/scls/rhscl/rh-python36/) needs to be activated first. -You must install Python 3.5.3 or later. Software Collections version of Python 3.5 is 3.5.1 so this guide uses Python 3.6. - ### {% linkable_title Using Software Collections %} -First of all install the software collection repository as root. For example, on CentOS: +First of all install the software collection repository as root and [scl utils](https://access.redhat.com/documentation/en-US/Red_Hat_Developer_Toolset/1/html-single/Software_Collections_Guide/). For example, on CentOS: ```bash -$ yum install centos-release-scl +$ sudo yum install centos-release-scl +$ sudo yum-config-manager --enable centos-sclo-rh-testing +$ sudo yum install -y scl-utils ``` + Install some dependencies you'll need later. ```bash -$ yum install gcc gcc-c++ systemd-devel +$ sudo yum install gcc gcc-c++ systemd-devel +``` + +Then install the Python 3.6 package. If you are using CentOS 7 then you may have to install the packages for Python 3.6 using RHEL Methods listed here: https://www.softwarecollections.org/en/scls/rhscl/rh-python36/) for this to work as mentioned above. + +```bash +$ sudo yum install rh-python36 ``` -Then install the Python 3.6 package: +This is part of the slight change when trying to install Python 3.6 and running the command `python36 --version` which will after install give you the correct version, but won't allow you to set the software collection using the `scl` command. This command downloads the RH collection of Python to allow you to run `scl` command to enable the environment in `bash` and then run the automate command using the template. ```bash $ yum install rh-python36 ``` -Once installed, switch to your `homeassistant` user (if you've set one up), enable the software collection and check that it has set up the new version of Python: +### {% linkable_title Start using software collections %} ```bash $ scl enable rh-python36 bash +``` + +Once installed, switch to your `homeassistant` user (if you've set one up), enable the software collection and check that it has set up the new version of Python: + +```bash $ python --version Python 3.6.3 ``` -You will be in a command shell set up with Python 3.6 as your default version. The virtualenv and pip commands will be correct for this version, so you can now create a virtual environment and install Home Assistant following the main [instructions](/docs/installation/virtualenv/#step-4-set-up-the-virtualenv). +You will be in a command shell set up with Python 3.6 as your default version. The `virtualenv` and `pip` commands will be correct for this version, so you can now create a virtual environment and install Home Assistant following the main [instructions](/docs/installation/virtualenv/#step-4-set-up-the-virtualenv). You will need to enable the software collection each time you log on before you activate your virtual environment. diff --git a/source/_docs/installation/docker.markdown b/source/_docs/installation/docker.markdown index 77cc0547d41e..655caea6b85a 100644 --- a/source/_docs/installation/docker.markdown +++ b/source/_docs/installation/docker.markdown @@ -15,19 +15,19 @@ Installation with Docker is straightforward. Adjust the following command so tha ### {% linkable_title Linux %} ```bash -$ docker run -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/home-assistant +$ docker run --init -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/home-assistant ``` ### {% linkable_title Raspberry Pi 3 (Raspbian) %} ```bash -$ docker run -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/raspberrypi3-homeassistant +$ docker run --init -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/raspberrypi3-homeassistant ``` You need to replace `/PATH_TO_YOUR_CONFIG` with your path to the configuration, for example if you choose your configuration path to be `/home/pi/homeassistant`, then command would be: ```bash -$ docker run -d --name="home-assistant" -v /home/pi/homeassistant:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/raspberrypi3-homeassistant +$ docker run --init -d --name="home-assistant" -v /home/pi/homeassistant:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/raspberrypi3-homeassistant ``` ### {% linkable_title macOS %} @@ -37,7 +37,7 @@ When using `docker-ce` (or `boot2docker`) on macOS, you are unable to map the lo If you wish to browse directly to `http://localhost:8123` from your macOS host, meaning forward ports directly to the container, replace the `--net=host` switch with `-p 8123:8123`. More detail can be found in [the docker forums](https://forums.docker.com/t/should-docker-run-net-host-work/14215/10). ```bash -$ docker run -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config -e "TZ=America/Los_Angeles" -p 8123:8123 homeassistant/home-assistant +$ docker run --init -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config -e "TZ=America/Los_Angeles" -p 8123:8123 homeassistant/home-assistant ``` Alternatively, `docker-compose` works with any recent release of `docker-ce` on macOS. Note that (further down this page) we provide an example `docker-compose.yml` however it differs from the `docker run` example above. To make the .yml directives match, you would need to make _two_ changes: first add the equivalent `ports:` directive, then _remove_ the `network_mode: host` section. This is because `Port mapping is incompatible with network_mode: host:`. More details can be found at [Docker networking docs](https://docs.docker.com/engine/userguide/networking/#default-networks). Note also the `/dev/tty*` device name used by your Arduino etc. devices will differ from the Linux example, so the compose `mount:` may require updates. @@ -45,7 +45,7 @@ Alternatively, `docker-compose` works with any recent release of `docker-ce` on ### {% linkable_title Windows %} ```powershell -$ docker run -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config -e "TZ=America/Los_Angeles" --net=host homeassistant/home-assistant +$ docker run --init -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config -e "TZ=America/Los_Angeles" --net=host homeassistant/home-assistant ``` When running Home Assistant in Docker on Windows, you may have some difficulty getting ports to map for routing (since the `--net=host` switch actually applies to the hypervisor's network interface). To get around this, you will need to add port proxy ipv4 rules to your local Windows machine, like so (Replacing '192.168.1.10' with whatever your Windows IP is, and '10.0.50.2' with whatever your Docker container's IP is): @@ -77,7 +77,30 @@ The steps would be: * Click on "Next" and then "Apply" * Your Home Assistant within Docker should now run and will serve the web interface from port 8123 on your Docker host (this will be your Synology NAS IP address - for example `http://192.168.1.10:8123`) +To use a Z-Wave USB stick for Z-Wave control, the HA Docker container needs extra configuration to access to the USB stick. While there are multiple ways to do this, the least privileged way of granting access can only be performed via the Terminal, at the time of writing. See this page for configuring Terminal acces to your Synology NAS: + + + +See this page for accessing the Terminal via SSH: + + + +Adjust the following Terminal command as follows : + +- Replace `/PATH_TO_YOUR_CONFIG` points at the folder where you want to store your configuration +- Replace `/PATH_TO_YOUR_USB_STICK` matches the path for your USB stick (e.g., `/dev/ttyACM0` for most Synology users) +- Replace "Australia/Melbourne" with [your timezone](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones) + +Run it in Terminal. + +```bash +sudo docker run --restart always -d --name="homeassistant" -v /PATH_TO_YOUR_CONFIG:/config --device=/PATH_TO_YOUR_USB_STICK -e TZ=Australia/Melbourne --net=host homeassistant/home-assistant +``` + +Complete the remainder of the Z-Wave configuration by [following the instructions here.](/docs/z-wave/installation) + Remark: to update your Home Assistant on your Docker within Synology NAS, you just have to do the following: + * Go to the Docker-app and move to "Registry"-section * Find "homeassistant/home-assistant" within registry and click on "Download". Choose the "latest" tag, this will overwrite your current image to the latest version. * Wait until the system-message/-notification comes up, that the download is finished (there is no progress bar) @@ -127,7 +150,7 @@ If you want to use a USB Bluetooth adapter or Z-Wave USB stick with Home Assista The above command should show you any USB devices plugged into your NAS. If you have more than one, you may get multiple items returned. Like : `ttyACM0` - Run Docker command: - `docker run --name home-assistant --net=host --privileged -itd -v /share/CACHEDEV1_DATA/Public/homeassistant/config:/config -e variable=TZ -e value=Europe/London --device /dev/ttyACM0 homeassistant/home-assistant` + `docker run --init --name home-assistant --net=host --privileged -itd -v /share/CACHEDEV1_DATA/Public/homeassistant/config:/config -e variable=TZ -e value=Europe/London --device /dev/ttyACM0 homeassistant/home-assistant` `-v` is your config path `-e` is set timezone @@ -145,7 +168,7 @@ That will tell Home Assistant where to look for our Z-wave radio. - Connect to your NAS over SSH - Run Docker command: - `docker run --name home-assistant --net=host --privileged -itd -v /share/CACHEDEV1_DATA/Public/homeassistant/config:/config -e variable=TZ -e value=Europe/London -v /dev/bus/usb:/dev/bus/usb -v /var/run/dbus:/var/run/dbus homeassistant/home-assistant` + `docker run --init --name home-assistant --net=host --privileged -itd -v /share/CACHEDEV1_DATA/Public/homeassistant/config:/config -e variable=TZ -e value=Europe/London -v /dev/bus/usb:/dev/bus/usb -v /var/run/dbus:/var/run/dbus homeassistant/home-assistant` First `-v` is your config path `-e` is set timezone @@ -198,7 +221,7 @@ $ docker-compose restart In order to use Z-Wave, Zigbee or other components that require access to devices, you need to map the appropriate device into the container. Ensure the user that is running the container has the correct privileges to access the `/dev/tty*` file, then add the device mapping to your docker command: ```bash -$ docker run -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config \ +$ docker run --init -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config \ -v /etc/localtime:/etc/localtime:ro --device /dev/ttyUSB0:/dev/ttyUSB0 \ --net=host homeassistant/home-assistant ``` diff --git a/source/_docs/installation/fedora.markdown b/source/_docs/installation/fedora.markdown index be37bdeecba1..847984b31b37 100644 --- a/source/_docs/installation/fedora.markdown +++ b/source/_docs/installation/fedora.markdown @@ -23,14 +23,14 @@ and Home Assistant itself. $ pip3 install homeassistant ``` -To isolate the Home Assistant installation a [venv](https://docs.python.org/3/library/venv.html) is handy. First create a new directory to store the installation and adjust the permissions. +To isolate the Home Assistant installation a [`venv`](https://docs.python.org/3/library/venv.html) is handy. First create a new directory to store the installation and adjust the permissions. ```bash $ sudo mkdir -p /opt/homeassistant $ sudo useradd -rm homeassistant -G dialout $ sudo chown -R homeassistant:homeassistant /opt/homeassistant ``` -Now switch to the new directory, setup the venv, and activate it. +Now switch to the new directory, setup the `venv`, and activate it. ```bash $ sudo -u homeassistant -H -s diff --git a/source/_docs/installation/hassbian/common-tasks.markdown b/source/_docs/installation/hassbian/common-tasks.markdown index 7c8b9b5b880c..3a0894c6c37b 100644 --- a/source/_docs/installation/hassbian/common-tasks.markdown +++ b/source/_docs/installation/hassbian/common-tasks.markdown @@ -11,7 +11,7 @@ redirect_from: /docs/hassbian/common-tasks/ --- ### {% linkable_title Login to the Raspberry Pi %} -To login to your Raspberry Pi running Hassbian you're going to be using a ssh client. Depending on your platform there are several alternatives for doing this. Linux and Max OS generally have a ssh client installed. Windows users are recommended to download and install the ssh client [Putty][ssh-putty]. +To login to your Raspberry Pi running Hassbian you're going to be using a ssh client. Depending on your platform there are several alternatives for doing this. Linux and Mac OS generally have a ssh client installed. Windows users are recommended to download and install the ssh client [Putty][ssh-putty]. Connect to the Raspberry Pi over ssh. Default user name is `pi` and password is `raspberry`. Linux and Mac OS users execute the following command in a terminal. diff --git a/source/_docs/installation/hassbian/installation.markdown b/source/_docs/installation/hassbian/installation.markdown index 41af2edf384b..26d1f7294418 100644 --- a/source/_docs/installation/hassbian/installation.markdown +++ b/source/_docs/installation/hassbian/installation.markdown @@ -13,7 +13,7 @@ redirect_from: /docs/hassbian/installation/ One of the easiest ways to install Home Assistant on your Raspberry Pi Zero, 2, 3 and 3B+ is by using Hassbian: a Raspberry Pi image with Home Assistant built-in. The image will install the latest version of Home Assistant on initial boot (~10 minutes). 1. [Download the Hassbian image][image-download] - 2. Use [Etcher][etcher] to flash the image to your SD card. We recommend at least a 32 GB SD card to avoid running out of space. + 2. Use [balenaEtcher][balenaEtcher] to flash the image to your SD card. We recommend at least a 32 GB SD card to avoid running out of space. 3. Ensure your Raspberry Pi has wired access to the internet for the entire process or configure your [wireless network settings](#wireless-network) **before proceeding to step 4**. 4. Insert SD card to Raspberry Pi and turn it on. Initial installation of Home Assistant will take about 10 minutes. @@ -55,6 +55,8 @@ network={ You may need to adjust the country code depending upon where you are. A list of codes can be found [here](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements). +If you are using a [hidden SSID](https://en.wikipedia.org/wiki/Network_cloaking) for your WiFi network , you must add `scan_ssid=1` to the `network` section to be able to connect. + If you are running in trouble with your WiFi connection (for [further details](https://www.raspberrypi.org/forums/viewtopic.php?t=207882)), check the output of the following command: ```bash @@ -73,7 +75,7 @@ To unblock it, execute `$ sudo rfkill unblock wifi`. - The configuration is located at `/home/homeassistant/.homeassistant` [image-download]: https://github.com/home-assistant/pi-gen/releases/latest -[etcher]: https://etcher.io/ +[balenaEtcher]: https://www.balena.io/etcher [http://hassbian.local:8123]: http://hassbian.local:8123 [wifi-setup]: https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md diff --git a/source/_docs/installation/raspberry-pi.markdown b/source/_docs/installation/raspberry-pi.markdown index 31af033f9d61..136c1ae2bb5c 100644 --- a/source/_docs/installation/raspberry-pi.markdown +++ b/source/_docs/installation/raspberry-pi.markdown @@ -45,7 +45,7 @@ $ sudo apt-get upgrade -y Install the dependencies. ```bash -$ sudo apt-get install python3 python3-venv python3-pip +$ sudo apt-get install python3 python3-venv python3-pip libffi-dev ``` Add an account for Home Assistant called `homeassistant`. diff --git a/source/_docs/installation/updating.markdown b/source/_docs/installation/updating.markdown index 4bc5d375eb14..a1d2b06d6622 100644 --- a/source/_docs/installation/updating.markdown +++ b/source/_docs/installation/updating.markdown @@ -32,6 +32,13 @@ For a Docker container, simply pull the latest one: $ sudo docker pull homeassistant/home-assistant:latest ``` +For a Raspberry Pi Docker container, simply pull the latest one: + +```bash +$ sudo docker pull homeassistant/raspberrypi3-homeassistant:latest +``` + + After updating, you must start/restart Home Assistant for the changes to take effect. This means that you will have to restart `hass` itself or the [autostarting](/docs/autostart/) daemon (if applicable). Startup can take considerable amount of time (i.e. minutes) depending on your device. This is because all requirements are updated as well. [BRUH automation](http://www.bruhautomation.com) has created [a tutorial video](https://www.youtube.com/watch?v=tuG2rs1Cl2Y) explaining how to upgrade Home Assistant. @@ -63,3 +70,13 @@ If you want to stay on the bleeding-edge Home Assistant development branch, you ```bash $ pip3 install --upgrade git+git://github.com/home-assistant/home-assistant.git@dev ``` + +### {% linkable_title Update Hass.io installation %} + +Best practice for updating a Hass.io installation: + +1. Backup your installation, using the snapshot functionality Hass.io offers. +2. Check the release notes for breaking changes on [Home Assistant release notes](https://github.com/home-assistant/home-assistant/releases). Be sure to check all release notes between the version you are running and the one you are upgrading to. Use the search function in your browser (`CTRL + f`) and search for **Breaking Changes**. +3. Check your configuration using the [Check Home Assistant configuration](/addons/check_config/) add-on. +4. If the check passes, you can safely update. If not, update your configuration accordingly. +5. Update Home Assistant. diff --git a/source/_docs/installation/virtualenv.markdown b/source/_docs/installation/virtualenv.markdown index e9427bba34f5..548c776ce224 100644 --- a/source/_docs/installation/virtualenv.markdown +++ b/source/_docs/installation/virtualenv.markdown @@ -14,7 +14,7 @@ If you already have Python 3.5.3 or later installed, you can easily give Home As It's recommended when installing Python packages that you use a [virtual environment](https://docs.python.org/3.5/library/venv.html#module-venv). This will make sure that your Python installation and Home Assistant installation won't impact one another. The following steps will work on most UNIX like systems. -_(If you're on a Debian based system, you will need to install Python virtual environment support using `apt-get install python3-pip python3-venv`. You may also need to install development libraries using `apt-get install build-essential libssl-dev libffi-dev python-dev`.)_ +_(If you're on a Debian based system, you will need to install Python virtual environment support using `apt-get install python3-pip python3-venv`. You may also need to install development libraries using `apt-get install build-essential libssl-dev libffi-dev python3-dev`.)_

It is recommended to use the [advanced guide](/docs/installation/raspberry-pi/) which allows for the installation to run as a `homeassistant` user. The steps below may be shorter but some users find difficulty when applying updates and may run into issues. @@ -47,6 +47,8 @@ It is recommended to use the [advanced guide](/docs/installation/raspberry-pi/) ``` $ hass --open-ui ``` + 8. You can now reach the web interface on `http://ipaddress:8123/` - the first start may take up to 20 minutes before the web interface is available + ### {% linkable_title Upgrade %} diff --git a/source/_docs/installation/windows.markdown b/source/_docs/installation/windows.markdown index 3efe0581137b..4ad45162efd4 100644 --- a/source/_docs/installation/windows.markdown +++ b/source/_docs/installation/windows.markdown @@ -15,7 +15,7 @@ To run Home Assistant on Microsoft Windows installation you need to install Pyth There may be alpha or beta releases of Python listed on that download page (marked by the letters `a` or `b` in the version number. Do not use these versions.

-If you use your machine for something other than Home Assistant, you should install it in a [Python virtual environment](#Installing_in_a_Python_virtual_environment). +If you use your machine for something other than Home Assistant, you should install it in a [Python virtual environment](#installing-in-a-python-virtual-environment). Start diff --git a/source/_docs/mqtt/broker.markdown b/source/_docs/mqtt/broker.markdown index cfff837d8eae..2fd03ed181ba 100644 --- a/source/_docs/mqtt/broker.markdown +++ b/source/_docs/mqtt/broker.markdown @@ -173,4 +173,7 @@ mqtt:

Home Assistant will automatically load the correct certificate if you connect to an encrypted channel of CloudMQTT (port range 20000-30000).

+

+If you experience an error message like `Failed to connect due to exception: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed`, then add `certificate: auto` to your broker configuration and restart Home Assistant. +

diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index f0cce9e3f016..85983004e2b8 100644 --- a/source/_docs/mqtt/discovery.markdown +++ b/source/_docs/mqtt/discovery.markdown @@ -10,7 +10,7 @@ footer: true logo: mqtt.png --- -The discovery of MQTT devices will enable one to use MQTT devices with only minimal configuration effort on the side of Home Assistant. The configuration is done on the device itself and the topic used by the device. Similar to the [HTTP binary sensor](/components/binary_sensor.http/) and the [HTTP sensor](/components/sensor.http/). The basic idea is that the device itself adds its configuration into your `configuration.yaml` automatically. To prevent multiple identical entries if a device reconnects a unique identifier is necessary. Two parts are required on the device side: The configuration topic which contains the necessary device type and unique identifier and the remaining device configuration without the device type. +The discovery of MQTT devices will enable one to use MQTT devices with only minimal configuration effort on the side of Home Assistant. The configuration is done on the device itself and the topic used by the device. Similar to the [HTTP binary sensor](/components/binary_sensor.http/) and the [HTTP sensor](/components/sensor.http/). To prevent multiple identical entries if a device reconnects a unique identifier is necessary. Two parts are required on the device side: The configuration topic which contains the necessary device type and unique identifier and the remaining device configuration without the device type. Supported by MQTT discovery: @@ -24,6 +24,7 @@ Supported by MQTT discovery: - [Locks](/components/lock.mqtt/) - [Sensors](/components/sensor.mqtt/) - [Switches](/components/switch.mqtt/) +- [Vacuums](/components/vacuum.mqtt/) To enable MQTT discovery, add the following to your `configuration.yaml` file: @@ -86,12 +87,25 @@ Supported abbreviations: 'bri_scl': 'brightness_scale', 'bri_stat_t': 'brightness_state_topic', 'bri_val_tpl': 'brightness_value_template', + 'bat_lev_t': 'battery_level_topic', + 'bat_lev_tpl': 'battery_level_template', + 'chrg_t': 'charging_topic', + 'chrg_tpl': 'charging_template', 'clr_temp_cmd_t': 'color_temp_command_topic', 'clr_temp_stat_t': 'color_temp_state_topic', 'clr_temp_val_tpl': 'color_temp_value_template', + 'cln_t': 'cleaning_topic', + 'cln_tpl': 'cleaning_template', 'cmd_t': 'command_topic', 'curr_temp_t': 'current_temperature_topic', 'dev_cla': 'device_class', + 'dock_t': 'docked_topic', + 'dock_tpl': 'docked_template', + 'err_t': 'error_topic', + 'err_tpl': 'error_template', + 'fanspd_t': 'fan_speed_topic', + 'fanspd_tpl': 'fan_speed_template', + 'fanspd_lst': 'fan_speed_list', 'fx_cmd_t': 'effect_command_topic', 'fx_list': 'effect_list', 'fx_stat_t': 'effect_state_topic', @@ -141,6 +155,7 @@ Supported abbreviations: 'rgb_cmd_t': 'rgb_command_topic', 'rgb_stat_t': 'rgb_state_topic', 'rgb_val_tpl': 'rgb_value_template', + 'send_cmd_t': 'send_command_topic', 'send_if_off': 'send_if_off', 'set_pos_tpl': 'set_position_template', 'set_pos_t': 'set_position_topic', @@ -154,6 +169,7 @@ Supported abbreviations: 'stat_open': 'state_open', 'stat_t': 'state_topic', 'stat_val_tpl': 'state_value_template', + 'sup_feat': 'supported_features', 'swing_mode_cmd_t': 'swing_mode_command_topic', 'swing_mode_stat_tpl': 'swing_mode_state_template', 'swing_mode_stat_t': 'swing_mode_state_topic', @@ -182,13 +198,14 @@ Supported abbreviations: ### {% linkable_title Support by third-party tools %} -The following firmware for ESP8266, ESP32 and Sonoff unit has built-in support for MQTT discovery: +The following software has built-in support for MQTT discovery: - [Sonoff-Tasmota](https://github.com/arendst/Sonoff-Tasmota) (starting with 5.11.1e) -- [esphomeyaml](https://esphomelib.com/esphomeyaml/index.html) +- [ESPHome](https://esphome.io) - [ESPurna](https://github.com/xoseperez/espurna) - [Arilux AL-LC0X LED controllers](https://github.com/mertenats/Arilux_AL-LC0X) - [room-assistant](https://github.com/mKeRix/room-assistant) (starting with 1.1.0) +- [Zigbee2mqtt](https://github.com/koenkk/zigbee2mqtt) ### {% linkable_title Examples %} @@ -212,7 +229,7 @@ $ mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/binary_sensor/garden/stat Delete the sensor by sending an empty message. ```bash -$ mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/binary_sensor/garden/state" -m '' +$ mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/binary_sensor/garden/config" -m '' ``` Setting up a switch is similar but requires a `command_topic` as mentioned in the [MQTT switch documentation](/components/switch.mqtt/). @@ -254,7 +271,6 @@ Setting up a climate component (heat only) with abbreviated configuration variab ```yaml { "name":"Livingroom", - "dev_cla":"climate", "mode_cmd_t":"homeassistant/climate/livingroom/thermostatModeCmd", "mode_stat_t":"homeassistant/climate/livingroom/state", "mode_stat_tpl":"{{value_json.mode}}", diff --git a/source/_docs/mqtt/service.markdown b/source/_docs/mqtt/service.markdown index d4a7aad206d0..223d554d3f9a 100644 --- a/source/_docs/mqtt/service.markdown +++ b/source/_docs/mqtt/service.markdown @@ -12,6 +12,20 @@ logo: mqtt.png The MQTT component will register the service `mqtt.publish` which allows publishing messages to MQTT topics. There are two ways of specifying your payload. You can either use `payload` to hard-code a payload or use `payload_template` to specify a [template](/topics/templating/) that will be rendered to generate the payload. +### {% linkable_title Service `mqtt.publish` %} + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `topic` | no | Topic to publish payload to. +| `payload` | yes | Payload to publish. +| `payload_template` | yes | Template to render as payload value. Ignored if payload given. +| `qos` | yes | Quality of Service to use. +| `retain` | yes | If message should have the retain flag set. (default: false) + +

+You need to include either payload or payload_template, but not both. +

+ ```json { "topic": "home-assistant/light/1/command", @@ -36,3 +50,14 @@ The MQTT component will register the service `mqtt.publish` which allows publish "payload":"{\"Status\":\"off\", \"Data\":\"something\"}" } ``` + +Example of how to use `qos` and `retain`: + +```json +{ + "topic": "home-assistant/light/1/command", + "payload": "on", + "qos": 2, + "retain": true +} +``` diff --git a/source/_docs/scripts.markdown b/source/_docs/scripts.markdown index 9d8b8a218b69..fccdd277509c 100644 --- a/source/_docs/scripts.markdown +++ b/source/_docs/scripts.markdown @@ -42,9 +42,10 @@ The most important one is the action to call a service. This can be done in vari ### {% linkable_title Test a Condition %} -While executing a script you can add a condition to stop further execution. When a condition does not return `true`, the script will finish. There are many different conditions which are documented at the [conditions page]. +While executing a script you can add a condition to stop further execution. When a condition does not return `true`, the script will stop executing. There are many different conditions which are documented at the [conditions page]. ```yaml +# If paulus is home, continue to execute the script below these lines - condition: state entity_id: device_tracker.paulus state: 'home' diff --git a/source/_docs/scripts/conditions.markdown b/source/_docs/scripts/conditions.markdown index 32ed35a628de..052845f32283 100644 --- a/source/_docs/scripts/conditions.markdown +++ b/source/_docs/scripts/conditions.markdown @@ -12,6 +12,8 @@ redirect_from: /getting-started/scripts-conditions/ Conditions can be used within a script or automation to prevent further execution. A condition will look at the system right now. For example a condition can test if a switch is currently turned on or off. +Unlike a trigger, which is always `or`, conditions are `and` by default - all conditions have to be true. + ### {% linkable_title AND condition %} Test multiple conditions in 1 condition statement. Passes if all embedded conditions are valid. @@ -28,7 +30,8 @@ condition: below: 20 ``` -If you do not want to combine AND and OR conditions, you can also just list them sequentially, by default all conditions have to be true. +If you do not want to combine AND and OR conditions, you can also just list them sequentially. + The following configuration works the same as the one listed above: ```yaml @@ -59,7 +62,7 @@ condition: below: 20 ``` -### {% linkable_title MIXED AND and OR conditions %} +### {% linkable_title MIXED AND and OR conditions %} Test multiple AND and OR conditions in 1 condition statement. Passes if any embedded conditions is valid. This allows you to mix several AND and OR conditions together. @@ -131,7 +134,7 @@ condition: ```yaml condition: - condition: or # 'when dark' condition: either after sunset or before sunrise + condition: or # 'when dark' condition: either after sunset or before sunrise - equivalent to a state condition on `sun.sun` of `below_horizon` conditions: - condition: sun after: sunset @@ -141,7 +144,7 @@ condition: ```yaml condition: - condition: and # 'when light' condition: before sunset and after sunrise + condition: and # 'when light' condition: before sunset and after sunrise - equivalent to a state condition on `sun.sun` of `above_horizon` conditions: - condition: sun before: sunset diff --git a/source/_docs/scripts/service-calls.markdown b/source/_docs/scripts/service-calls.markdown index 2724a7a07842..6a706456f13e 100644 --- a/source/_docs/scripts/service-calls.markdown +++ b/source/_docs/scripts/service-calls.markdown @@ -22,7 +22,7 @@ Use the -You can also use the Z-Wave *Integration* in the *Configuration* menu to set up the Z-Wave component. -

- ```yaml # Example configuration.yaml entry zwave: @@ -53,7 +23,7 @@ zwave: {% configuration zwave %} usb_path: - description: The port where your device is connected to your Home Assistant host. + description: The port where your device is connected to your Home Assistant host. Z-Wave sticks will generally be `/dev/ttyACM0` and GPIO hats will generally be `/dev/ttyAMA0`. required: false type: string default: /zwaveusbstick @@ -63,7 +33,7 @@ network_key: type: string default: None config_path: - description: "The path to the Python OpenZWave configuration files. NOTE: there is also the [update_config service](https://www.home-assistant.io/docs/z-wave/services/) to perform updating the config within python-openzwave automatically." + description: "The path to the Python OpenZWave configuration files. NOTE: there is also the [update_config service](/docs/z-wave/services/) to perform updating the config within python-openzwave automatically." required: false type: string default: the 'config' that is installed by python-openzwave @@ -71,7 +41,7 @@ autoheal: description: Allows disabling auto Z-Wave heal at midnight. required: false type: boolean - default: True + default: true polling_interval: description: The time period in milliseconds between polls of a nodes value. Be careful about using polling values below 30000 (30 seconds) as polling can flood the zwave network and cause problems. required: false @@ -81,7 +51,7 @@ debug: description: Print verbose z-wave info to log. required: false type: boolean - default: False + default: false device_config / device_config_domain / device_config_glob: description: "This attribute contains node-specific override values. NOTE: This needs to be specified if you are going to use any of the following options. See [Customizing devices and services](/docs/configuration/customizing-devices/) for the format." required: false @@ -91,7 +61,7 @@ device_config / device_config_domain / device_config_glob: description: Ignore this entity completely. It won't be shown in the Web Interface and no events are generated for it. required: false type: boolean - default: False + default: false polling_intensity: description: Enables polling of a value and sets the frequency of polling (0=none, 1=every time through the list, 2=every other time, etc). If not specified then your device will not be polled. required: false @@ -101,7 +71,7 @@ device_config / device_config_domain / device_config_glob: description: Enable refreshing of the node value. Only the light component uses this. required: false type: boolean - default: False + default: false delay: description: Specify the delay for refreshing of node value. Only the light component uses this. required: false @@ -111,114 +81,154 @@ device_config / device_config_domain / device_config_glob: description: Inverts function of the open and close buttons for the cover domain. This will not invert the position and state reporting. required: false type: boolean - default: False + default: false {% endconfiguration %}

-As of Home Assistant 0.81, the Z-Wave `usb_path` and `network_key` options are configured through the Integrations page in Home Assistant. Specifying a `zwave:` section in configuration.yaml is no longer required unless you need to customize other settings, such as `device_config`, `polling_interval`, etc. +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. + +If you change the `usb_path` or `network_key` in your `configuration.yaml` then this will not be updated in the integration. You'll need to remove and re-add the Integration for these changes to take effect.

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

-If you're using Hass.io please follow [these setup instructions](/hassio/zwave/) for finding the controller path. -

- -To find the path of your Z-Wave USB stick or module, connect it to your system and run: +Security Z-Wave devices require a network key before being added to the network using the Add Secure Node button in the Z-Wave Network Management card. You must set the *network_key* configuration variable to use a network key before adding these devices. +An easy script to generate a random key: ```bash -$ ls -ltr /dev/tty*|tail -n 1 +$ cat /dev/urandom | tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0x\1, /g' -e 's/, $//' ``` -That will give you a line that looks something like this: +You can also use sites like [this one](https://www.random.org/cgi-bin/randbyte?nbytes=16&format=h) to generate the required data, just remember to put `0x` before each pair of characters: -```bash -crw-rw---- 1 root dialout 204, 64 Sep 21 10:25 /dev/ttyUSB0 +```yaml +# Example configuration.yaml entry for network_key +zwave: + network_key: "0x2e, 0xcc, 0xab, 0x1c, 0xa3, 0x7f, 0x0e, 0xb5, 0x70, 0x71, 0x2d, 0x98, 0x25, 0x43, 0xee, 0x0c" ``` -Where the date and time displayed is approximately the time you connected the USB stick or module (it may also be something like `/dev/ttyAMA0` or `/dev/ttyACM0`). The number will be zero for the first device connected, and higher numbers for later devices. +Ensure you keep a backup of this key. If you have to rebuild your system and don't have a backup of this key, you won't be able to reconnect to any security devices. This may mean you have to do a factory reset on those devices, and your controller, before rebuilding your Z-Wave network. -Or, if there is no result, try to find detailed USB connection info with: +## {% linkable_title First Run %} + +On platforms other than Hass.io and Docker, the compilation and installation of python-openzwave happens when you first enable the Z-Wave component, and can take half an hour or more on a Raspberry Pi. When you upgrade Home Assistant and python-openzwave is also upgraded, this will also result in a delay while the new version is compiled and installed. + +The first run after adding a device is when the `zwave` component will take time to initialize the entities, some entities may appear with incomplete names. Running a network heal may speed up this process. + +## {% linkable_title Platform specific instructions %} + +### {% linkable_title Hass.io %} + +You do not need to install any software to use Z-Wave. + +If the path of `/dev/ttyACM0` doesn't work, look in the *System* section of the *Hass.io* menu. There you'll find a *Hardware* button which will list all the hardware found. + +You can also check what hardware has been found using the [hassio command](/hassio/commandline/#hardware): ```bash -$ dmesg | grep USB +$ hassio hardware info ``` -If Home Assistant (`hass`) runs with another user (e.g., *homeassistant* on Hassbian) give access to the stick with: +### {% linkable_title Docker %} + +You do not need to install any software to use Z-Wave. + +To enable access to the Z-Wave stick, add `--device=/dev/ttyACM0` to the `docker` command that starts your container, for example: ```bash -$ sudo usermod -aG dialout homeassistant +$ docker run -d --name="home-assistant" -v /home/pi/homeassistant:/config -v /etc/localtime:/etc/localtime:ro --net=host --device=/dev/ttyACM0 homeassistant/raspberrypi3-homeassistant ``` -

-The output from `ls -ltr` above contains the following information -The device type is `c` (character special) and permissions are `rw-rw----`, meaning only the owner and group can read and write to it, there is only `1` link to the file, it is owned by `root` and can be accessed by the group `dialout`, it has a major device number of `204`, and a minor device number of `64`, the device was connected at `10:25` on `21 September`, and the device is `/dev/ttyUSB0`. -

+If the path of `/dev/ttyACM0` doesn't work then you can find the path of the stick by disconnecting and then reconnecting it, and running the following in the Docker host: -#### {% linkable_title Creating a Persistent Device Path %} +```bash +$ ls -1tr /dev/tty*|tail -n 1 +``` -Depending on what's plugged into your USB ports, the name found above may change. You can lock in a name, such as `/dev/zwave`, by following [these instructions](http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/). +### {% linkable_title Hassbian %} -### {% linkable_title Finding the controller path on macOS %} +You do not need to install any software to use Z-Wave. -On macOS you can find the USB stick with: +To find the path of your Z-Wave USB stick, disconnect it and then reconnect it to your system and run: ```bash -$ ls /dev/cu.usbmodem* +$ ls -1tr /dev/tty*|tail -n 1 ``` -### {% linkable_title Hass.io %} +### {% linkable_title Community install methods %} -To enable Z-Wave, plug your Z-Wave USB stick into your system and add the following to your `configuration.yaml`: +#### {% linkable_title Raspberry Pi specific %} -```yaml -zwave: - usb_path: /dev/ttyACM0 -``` +On the Raspberry Pi you will need to enable the serial interface in the `raspi-config` tool before you can add Z-Wave to Home Assistant. + +#### {% linkable_title Linux (except Hassbian) %} -If the above defaults don't work, you can check what hardware has been found using the [hassio command](/hassio/commandline/#hardware): +On Debian Linux platforms there two dependencies you will need to have installed ahead of time (included in `systemd-devel` on Fedora/RHEL systems): ```bash -$ hassio hardware info +$ sudo apt-get install libudev-dev +$ sudo apt-get install libopenzwave1.5-dev ``` -Or you can use the UI and look in the *System* section of the *Hass.io* menu. There you'll find a *Hardware* button which will list all the hardware found. +You may also have to install the Python development libraries for your version of Python. For example `libpython3.6-dev`, and possibly `python3.6-dev` if you're using Python 3.6. + +##### {% linkable_title Finding the controller path %} -### {% linkable_title RancherOS %} +To find the path of your Z-Wave USB stick, disconnect it and then reconnect it to your system and run: -If you're using RancherOS for containers, you'll need to ensure you enable the kernel-extras service so that the `USB_ACM` module (also known as `cdc_acm`) is loaded: +```bash +$ ls -ltr /dev/tty*|tail -n 1 +``` + +That will give you a line that looks something like this: ```bash -$ sudo ros service enable kernel-extras -$ sudo ros service up kernel-extras +crw-rw---- 1 root dialout 204, 64 Sep 21 10:25 /dev/ttyACM0 ``` -### {% linkable_title Network Key %} +Where the date and time displayed is approximately the time you connected the USB stick or module (it may also be something like `/dev/ttyAMA0` or `/dev/ttyUSB0`). The number will be zero for the first device connected, and higher numbers for later devices. -Security Z-Wave devices require a network key before being added to the network using the Add Secure Node button in the Z-Wave Network Management card. You must set the *network_key* configuration variable to use a network key before adding these devices. +Or, if there is no result, try to find detailed USB connection info with: -An easy script to generate a random key: ```bash -$ cat /dev/urandom | tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0x\1, /g' -e 's/, $//' +$ dmesg | grep USB ``` -```yaml -# Example configuration.yaml entry for network_key -zwave: - network_key: "0x2e, 0xcc, 0xab, 0x1c, 0xa3, 0x7f, 0x0e, 0xb5, 0x70, 0x71, 0x2d, 0x98, 0x25, 0x43, 0xee, 0x0c" +If Home Assistant (`hass`) runs with another user (e.g., *homeassistant*) you need to give access to the stick with: + +```bash +$ sudo usermod -aG dialout homeassistant ``` -Ensure you keep a backup of this key. If you have to rebuild your system and don't have a backup of this key, you won't be able to reconnect to any security devices. This may mean you have to do a factory reset on those devices, and your controller, before rebuilding your Z-Wave network. +The output from `ls -ltr` above contains the following information: +* The device type is `c` (character special) +* The permissions are `rw-rw----`, meaning only the owner and group can read and write to it +* There is only `1` link to the file +* It is owned by `root` and can be accessed by members of the group `dialout` +* It has a major device number of `204`, and a minor device number of `64` +* The device was connected at `10:25` on `21 September` +* The device is `/dev/ttyUSB0`. -## {% linkable_title First Run %} +#### {% linkable_title macOS %} -The (compilation and) installation of python-openzwave happens when you first enable the Z-Wave component, and can take half an hour or more on a Raspberry Pi. When you upgrade Home Assistant and python-openzwave is also upgraded, this will also result in a delay while the new version is compiled and installed. +When installing on macOS you may have to also run the command below ahead of time, replace "x.x" with the version of Python (`$ python3 --version`) you have installed. -The first run after adding a device is when the `zwave` component will take time to initialize the entities, some entities may appear with incomplete names. Running a network heal may speed up this process. +```bash +$ sudo /Applications/Python\ x.x/Install\ Certificates.command +``` + +On macOS you can find the USB stick with: + +```bash +$ ls /dev/cu.usbmodem* +``` ## {% linkable_title Troubleshooting %} +### {% linkable_title Device path changes %} + +If your device path changes when you restart, see [this guide](http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/) on fixing it. + ### {% linkable_title Component could not be set up %} Sometimes the device may not be accessible and you'll get an error message upon startup about not being able to set up Z-Wave. Run the following command for your device path (here we're using `/dev/ttyAMA0` for our Razberry board): @@ -252,14 +262,10 @@ That should include `dialout`, if it doesn't then: $ sudo usermod -aG dialout homeassistant ``` -### {% linkable_title Device path changes %} - -If your device path changes when you restart, see [this guide](http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/) on fixing it. - ### {% linkable_title Unable to install Python Openzwave %} If you're getting errors like: openzwave-embed/open-zwave-master/libopenzwave.a: No such file or directory -Then the problem is that you're missing `libudev-dev`, please [install it](/docs/z-wave/installation/#linux-except-hassio). +Then the problem is that you're missing `libudev-dev` (or the equivalent for your distribution), please [install it](/docs/z-wave/installation/#linux-except-hassbian). diff --git a/source/_faq/pip3.markdown b/source/_faq/pip3.markdown index 9b4fe56e0292..ff61d2fdc46d 100644 --- a/source/_faq/pip3.markdown +++ b/source/_faq/pip3.markdown @@ -18,4 +18,10 @@ If you are able to successfully run `python3 --version` but not `pip3`, install $ python3 -m pip install homeassistant ``` -On a Debian system, you can also install python3 by `sudo apt-get install python3`d and pip3 by `sudo apt-get install python3-pip`. +On a Debian system, you can also install python3 by `sudo apt-get install python3` and pip3 by `sudo apt-get install python3-pip`. + +If you run into errors during installation, check that you've installed all the necessary prerequisite packages, which include `python3-dev`, `libffi-dev`, and `libssl-dev`. On a Debian-based system, you can install these via `apt-get`: + +```bash +$ sudo apt-get install python3-dev libffi-dev libssl-dev +``` diff --git a/source/_includes/asides/about.html b/source/_includes/asides/about.html index 5d672861adc4..e4a12f326189 100644 --- a/source/_includes/asides/about.html +++ b/source/_includes/asides/about.html @@ -5,7 +5,7 @@

About Home Assistant

Home Assistant is an open-source home automation platform running on Python 3. Track and control all devices at home and automate control.
  • Get started with Home Assistant
  • -
  • Try the online demo
  • +
  • Try the online demo
  • diff --git a/source/_includes/asides/component_navigation.html b/source/_includes/asides/component_navigation.html index bd64fc7efe32..21fd0aec209a 100644 --- a/source/_includes/asides/component_navigation.html +++ b/source/_includes/asides/component_navigation.html @@ -1,5 +1,5 @@ {%- assign components = site.components | sort_natural: 'title' -%} -{%- assign github_main_repo = 'https://github.com/home-assistant/home-assistant/blob/master/homeassistant' -%} +{%- assign github_main_repo = 'https://github.com/home-assistant/home-assistant/blob/dev/homeassistant' -%}
    {%- include edit_github.html -%} @@ -14,13 +14,15 @@ {%- if file_parts.size == 2 -%} {%- assign is_platform = true -%} {%- assign imp_name = file_parts[1] -%} + {%- assign imp_url = imp_name | prepend: '/components/' | append: '/' -%} {%- assign parent_name = file_parts[0] -%} {%- assign parent_url = parent_name | prepend: '/components/' | append: '/' -%} - {%- assign parent_component = components | where: 'url', parent_url | first -%} + {%- assign parent_component = components | where: 'url', imp_url | first -%} {%- else -%} {%- assign is_platform = false -%} {%- assign imp_name = file_parts | first -%} - {%- endif -%} + {%- assign imp_url = imp_name | prepend: '/components/' | append: '/' -%} +{%- endif -%} {%- if page.ha_iot_class -%}
    @@ -50,13 +52,20 @@
    {%- endif -%} - {%- if is_platform -%} + {%- if page.ha_config_flow -%}
    - Source: - {{parent_name}}/{{imp_name}}.py + This component is configurable via UI
    {%- endif -%} +
    + {%- if is_platform -%} + Source: {{imp_name}}/{{parent_name}}.py + {%- else -%} + Source: {{imp_url}} + {%- endif -%} +
    + {%- if is_platform and parent_name != 'sensor' -%}
    This is a platform for @@ -88,7 +97,6 @@

    Platforms

    {%- endif -%} - {%- assign related_found = false -%} {%- for component in components -%} {%- if component.url != page.url -%} @@ -118,22 +126,14 @@

    Related components

    {%- endif -%} - - - {%- if page.ha_category -%} + {%- if page.ha_category.first -%}
    -

    Category {{page.ha_category}}

    +

    Categories

      - {%- for component in components -%} - {%- if component.ha_category == page.ha_category -%} -
    • - {%- if component.url == page.url -%} - {{component.title}} - {%- else -%} - {{component.title}} - {%- endif -%} -
    • - {%- endif -%} + {%- for category in page.ha_category -%} +
    • + {{ category }} +
    • {%- endfor -%}
    diff --git a/source/_includes/asides/docs_navigation.html b/source/_includes/asides/docs_navigation.html index 4d9912c1253e..e1c2af85c228 100644 --- a/source/_includes/asides/docs_navigation.html +++ b/source/_includes/asides/docs_navigation.html @@ -68,7 +68,7 @@

    Topics

    • {% active_link /docs/frontend/mobile/ Android/iOS Homescreen %}
    • {% active_link /docs/frontend/browsers/ Browser Compatibility List %}
    • -
    • {% active_link /lovelace Lovelace UI (Experimental) %}
    • +
    • {% active_link /lovelace Lovelace UI %}
  • @@ -187,6 +187,7 @@

    Topics

    • {% active_link /docs/ecosystem/apache/ Apache %}
    • {% active_link /docs/ecosystem/caddy/ Caddy Server %}
    • +
    • {% active_link /docs/ecosystem/haproxy/ HAProxy %}
    • {% active_link /docs/ecosystem/nginx/ NGINX %}
    • {% active_link /docs/ecosystem/nginx_subdomain/ NGINX with subdomain%}
    • {% active_link /docs/ecosystem/tor/ Tor Onion Service %}
    • diff --git a/source/_includes/asides/hassio_navigation.html b/source/_includes/asides/hassio_navigation.html index 6c42ff0ca6d2..f8e6a3debeb6 100644 --- a/source/_includes/asides/hassio_navigation.html +++ b/source/_includes/asides/hassio_navigation.html @@ -19,6 +19,7 @@

      Topics

    • {% active_link /hassio/zwave/ Z-Wave %}
    • {% active_link /hassio/external_storage/ External storage %}
    • {% active_link /hassio/run_local/ Execute local things %}
    • +
    • {% active_link /hassio/enable_i2c/ Enable I2C %}
  • diff --git a/source/_includes/asides/lovelace_navigation.html b/source/_includes/asides/lovelace_navigation.html index fd5b58c70ab5..8f9a1cd3b100 100644 --- a/source/_includes/asides/lovelace_navigation.html +++ b/source/_includes/asides/lovelace_navigation.html @@ -7,7 +7,6 @@

    Lovelace UI

    @@ -17,7 +16,7 @@

    Advanced

  • {% active_link /lovelace/how-it-works/ How it works %}
  • {% active_link /lovelace/yaml-mode/ YAML mode %}
  • {% active_link /lovelace/views/ Views %}
  • -
  • Custom Cards (for developers)
  • +
  • Developing Custom Cards
  • diff --git a/source/_includes/custom/footer.html b/source/_includes/custom/footer.html index ad8df9a0553d..ca099bd7b3b5 100644 --- a/source/_includes/custom/footer.html +++ b/source/_includes/custom/footer.html @@ -1,12 +1,11 @@