diff --git a/_config.yml b/_config.yml index bfabc39b356..83b1a9e460e 100644 --- a/_config.yml +++ b/_config.yml @@ -139,8 +139,8 @@ social: # Home Assistant release details current_major_version: 0 current_minor_version: 90 -current_patch_version: 0 -date_released: 2019-03-20 +current_patch_version: 2 +date_released: 2019-03-26 # 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/source/_components/alarm_control_panel.mqtt.markdown b/source/_components/alarm_control_panel.mqtt.markdown index 5985f6e04c4..ad44be66baa 100644 --- a/source/_components/alarm_control_panel.mqtt.markdown +++ b/source/_components/alarm_control_panel.mqtt.markdown @@ -20,7 +20,7 @@ The component will accept the following states from your Alarm Panel (in lower c - `disarmed` - `armed_home` - `armed_away` -- 'armed_night' +- `armed_night` - `pending` - `triggered` diff --git a/source/_components/androidtv.markdown b/source/_components/androidtv.markdown index f6f56df304b..7ccb6a023f6 100644 --- a/source/_components/androidtv.markdown +++ b/source/_components/androidtv.markdown @@ -150,7 +150,7 @@ The second option is to connect to your device using the `adb` Python package. If your device requires ADB authentication, you will need to follow the instructions in the [ADB Authentication](#adb-authentication) 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. For a Fire TV device, you can try setting the `get_sources` configuration option to `false`. If the problem cannot be resolved, you should use the ADB server option. -### {% linkable_title ADB Authentication %} +#### {% linkable_title ADB Authentication %} If you get a "Device authentication required, no keys available" error when trying to set up your Android TV or 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 device from your computer: [Connecting to Fire TV Through adb](https://developer.amazon.com/zh/docs/fire-tv/connecting-adb-to-device.html). @@ -165,17 +165,23 @@ Once you've successfully connected to your Android TV / Fire TV via the command Copy the `adbkey` and `adbkey.pub` files to your Home Assistant folder and add the path to the `adbkey` file to your configuration. -#### {% linkable_title ADB Troubleshooting %} +## {% linkable_title ADB Troubleshooting %} -If you receive the error message `Issue: Error while setting up platform androidtv` in your log when trying to set up an Android TV or Fire TV device with an ADB key, then there is probably an issue with your ADB key. Here are some possible causes. +If you receive the error message `Error while setting up platform androidtv` in your log when trying to set up an Android TV or Fire TV device, then there is probably an issue with your ADB connection. Here are some possible causes. 1. ADB is not enabled on your device. -2. Your key is not pre-authenticated. Before using the `adbkey` in Home Assistant, you _**must**_ connect to your device using the ADB binary and tell it to always allow connections from this computer. For more information, see the section [ADB Authentication](#adb-authentication) above. +2. You are already connected to the Android TV / Fire TV via ADB from another device. Only one device can be connected, so disconnect the other device, restart the Android TV / Fire TV (for good measure), and then restart Home Assistant. -3. Home Assistant does not have the appropriate permissions for the `adbkey` file and so it is not able to use it. Once you fix the permissions, the component should work. +3. If you are using the [Python ADB implementation](#2-python-adb-implementation): -4. You are already connected to the Android TV / Fire TV via ADB from another device. Only one device can be connected, so disconnect the other device, restart the Android TV / Fire TV (for good measure), and then restart Home Assistant. + * This method often does not work for newer devices. Use the [ADB server](#1-adb-server) approach instead. + + * Your key is not pre-authenticated. Before using the `adbkey` in Home Assistant, you _**must**_ connect to your device using the ADB binary and tell it to always allow connections from this computer. For more information, see the section [ADB Authentication](#adb-authentication) above. + + * Home Assistant does not have the appropriate permissions for the `adbkey` file and so it is not able to use it. Once you fix the permissions, the component should work. + + * Newer ADB binaries do not generate an `adbkey.pub` file for you. This can be resolved by creating an empty `adbkey.pub` in the same directory, e.g., by running `touch adbkey.pub`. ## {% linkable_title Services %} diff --git a/source/_components/binary_sensor.ihc.markdown b/source/_components/binary_sensor.ihc.markdown deleted file mode 100644 index 3e53d343a5c..00000000000 --- a/source/_components/binary_sensor.ihc.markdown +++ /dev/null @@ -1,87 +0,0 @@ ---- -layout: page -title: "IHC Binary Sensor" -description: "Instructions on how to integrate IHC Binary Sensors within Home Assistant." -date: 2017-11-27 13:35 -sidebar: true -comments: false -sharing: true -footer: true -logo: ihc.png -ha_category: Binary Sensor -ha_release: 0.62 -ha_iot_class: Local Push ---- - -Before you can use the IHC Binary Sensor platform, -you must setup the [IHC Component](/components/ihc/). - -When auto setup is enabled the following products will -be found in the IHC project and setup as binary sensors: - -- Dataline magnet contacts -- Dataline Pir sensors -- Dataline Pir sensors with twilight detection -- Dataline Pir alarm sensor -- Dataline smoke detector -- Dataline gas detector -- Dataline light sensor - -## {% linkable_title Manual configuration %} - -To manually configure IHC Binary Sensors insert the "binary_sensor" section in your IHC configuration: - -```yaml -# Example configuration.yaml entry -ihc: - - url: 'http://192.168.1.3' - username: YOUR_USERNAME - password: YOUR_PASSWORD - info: true - binary_sensor: - - id: 12345 - name: switch_front_door - inverting: false - note: Magnet contact - position: Switch in door - type: door -``` - -{% configuration %} -binary_sensor: - description: List of binary sensors to setup manually. - required: false - type: map - keys: - id: - description: The IHC resource id. - required: true - type: integer - inverting: - description: If True the sensor will be inverted. - required: false - type: boolean - default: false - name: - description: The name of the sensor. - required: false - type: string - type: - description: > - The binary sensor type. - See [Home Assistant binary sensor](/components/binary_sensor/) - for available types. - required: false - type: string - note: - description: Descriptive note - required: false - type: string - position: - description: Where is it placed - required: false - type: string -{% endconfiguration %} - -The resource id should be an id of a boolean IHC resource. For more information -about IHC resource ids see [Manual Setup](/components/ihc/#manual-setup). diff --git a/source/_components/binary_sensor.xiaomi_aqara.markdown b/source/_components/binary_sensor.xiaomi_aqara.markdown index 27a5f1d946f..d79c2a580a6 100644 --- a/source/_components/binary_sensor.xiaomi_aqara.markdown +++ b/source/_components/binary_sensor.xiaomi_aqara.markdown @@ -23,8 +23,8 @@ The requirement is that you have setup the [`xiaomi aqara` component](/component | ---- | ------------- | --------- | ------ | ----- | --------- | ------------ | | Motion Sensor (1st gen) | motion | RTCGQ01LM | on, off | `xiaomi_aqara.motion` | | | | Motion Sensor (2nd gen) | sensor_motion.aq2 | RTCGQ11LM | on, off | `xiaomi_aqara.motion` | | | -| Door and Window Sensor (1st gen) | magnet | WSDCGQ01LM | on, off | | | | -| Door and Window Sensor (2nd gen) | sensor_magnet.aq2 | MCCGQ11LM | on, off | | | | +| Xiaomi Door and Window Sensor (1st gen) | magnet | MCCGQ01LM | on, off | | | | +| Aqara Door and Window Sensor (2nd gen) | sensor_magnet.aq2 | MCCGQ11LM | on, off | | | | | Smoke Detector | smoke | JTYJ-GD-01LM/BW | on, off | | | | | Gas Leak Detector | natgas | JTQJ-BF-01LM/BW | on, off | | | | | Water Leak Sensor | sensor_wleak.aq1 | SJCGQ11LM | on, off | | | | diff --git a/source/_components/device_tracker.tplink.markdown b/source/_components/device_tracker.tplink.markdown deleted file mode 100644 index 0e8a14dc09f..00000000000 --- a/source/_components/device_tracker.tplink.markdown +++ /dev/null @@ -1,68 +0,0 @@ ---- -layout: page -title: "TP-Link Router" -description: "Instructions on how to integrate TP-Link routers into Home Assistant." -date: 2015-06-22 10:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: tp-link.png -ha_category: Presence Detection -ha_release: pre 0.7 ---- - - -The `tplink` platform allows you to detect presence by looking at connected devices to a [TP-Link](https://www.tp-link.com) router. - -Currently supported devices includes the following: - -- Archer C7 firmware version 150427 -- Archer C9 firmware version 150811 -- EAP-225 AP with latest firmware version -- Archer D9 firmware version 0.9.1 0.1 v0041.0 Build 160224 Rel.59129n - -
-TP-Link devices typically only allow one login at a time to the admin console. This component will count towards your one allowed login. Depending on how aggressively you configure device_tracker you may not be able to access the admin console of your TP-Link device without first stopping Home Assistant. Home Assistant takes a few seconds to login, collect data, and log out. If you log into the admin console manually, remember to log out so that Home Assistant can log in again. -
- -## {% linkable_title Configuration %} - -To enable this device tracker, add the following lines to your `configuration.yaml`: - -```yaml -# Example configuration.yaml entry -device_tracker: - - platform: tplink - host: YOUR_ROUTER_IP - 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 an user with administrative privileges, usually *admin*. The Archer D9 last firmware does not require a username. - required: true - type: string -password: - description: The password for your given admin account. - required: true - type: string -{% endconfiguration %} - -For Archer C9 models running firmware version 150811 or later please use the encrypted password you can retrieve like this: - -1. Go to the login page of your router. (default: 192.168.0.1) -2. Type in the password you use to login into the password field. -3. Click somewhere else on the page so that the password field is not selected anymore. -4. Open the JavaScript console of your browser (usually by pressing F12 and then clicking on "Console"). -5. Type `document.getElementById("login-password").value;` or `document.getElementById("pcPassword").value;`, depending on your firmware version. -6. Copy the returned value to your Home Assistant configuration as password. - -See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. - -For Archer D9 model the default ip is 192.168.1.1, the username is not necessary and you can leave that field blank. diff --git a/source/_components/dweet.markdown b/source/_components/dweet.markdown index 5d17ce02f9c..26235c2997d 100644 --- a/source/_components/dweet.markdown +++ b/source/_components/dweet.markdown @@ -8,8 +8,13 @@ comments: false sharing: true footer: true logo: dweet.png -ha_category: "History" +ha_category: + - History + - Sensor ha_release: 0.19 +ha_iot_class: Cloud Polling +redirect_from: + - /components/sensor.dweet/ --- The `dweet` component makes it possible to transfer details collected with Home Assistant to [Dweet.io](http://dweet.io/) and visualize them with [freeboard.io](https://freeboard.io). Keep in mind that your information will be public! @@ -18,11 +23,16 @@ The `dweet` component makes it possible to transfer details collected with HomeThe publishing interval is limited to 1 second. This means that it's possible to miss fast changes.
+There is currently support for the following device types within Home Assistant: + +- [Sensor](#sensor) + +## {% linkable_title Configuration %} + To use the `dweet` component in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -47,3 +57,88 @@ whitelist: type: list {% endconfiguration %} +## {% linkable_title Sensor %} + +The `dweet` sensor platform allows you to get details from your devices which are publishing their values to [Dweet.io](https://dweet.io/). + +### {% linkable_title Configuration %} + +To use Dweet.io sensors in your installation, add the following to your `configuration.yaml` file: + +{% raw %} +```yaml +# Example configuration.yaml entry +sensor: + - platform: dweet + device: THING_NAME + value_template: '{{ value_json.VARIABLE }}' +``` +{% endraw %} + +{% configuration %} +device: + description: Identification of the device (also known as `thing`). + required: true + type: string +value_template: + description: The variable to extract a value from the content. + required: true + type: template +name: + description: Let you overwrite the name of the device in the frontend. + required: false + default: Dweet.io Sensor + type: string +unit_of_measurement: + description: Defines the unit of measurement of the sensor, if any. + required: false + type: string +{% endconfiguration %} + +### {% linkable_title Full configuration sample %} + +A full configuration entry could look like the sample below. + +{% raw %} +```yaml +# Example configuration.yaml entry +sensor: + - platform: dweet + name: Temperature + device: THING_NAME + value_template: '{{ value_json.VARIABLE }}' + unit_of_measurement: "°C" +``` +{% endraw %} + +### {% linkable_title Interacting with Dweet.io %} + +You can easily send dweets from the command-line to test your sensor with `curl`. + +```bash +$ curl -H 'Content-Type: application/json' -d '{"temperature": 40, "humidity": 65}' https://dweet.io/dweet/for/ha-sensor +``` + +will give you a response like the one below: + +```json +{"this":"succeeded","by":"dweeting","the":"dweet","with":{"thing":"ha-sensor","created":"2015-12-10T09:43:31.133Z","content":{"temperature":40,"humidity":65}}} +``` + +The [dweepy](https://github.com/paddycarey/dweepy) module gives you another option to work with [Dweet.io](https://dweet.io/). + +Send a dweet. + +```bash +$ python3 +>>> import dweepy +>>> dweepy.dweet_for('ha-sensor', {'temperature': '23', 'humiditiy':'81'}) +{'thing': 'ha-sensor', 'created': '2015-12-10T09:46:08.559Z', 'content': {'humiditiy': 81, 'temperature': 23}} +``` + +Receive the latest dweet. + +```bash +>>> dweepy.get_latest_dweet_for('ha-sensor') +[{'thing': 'ha-sensor'', 'created': '2015-12-10T09:43:31.133Z', 'content': {'humidity': 65, 'temperature': 40}}] +``` \ No newline at end of file diff --git a/source/_components/eight_sleep.markdown b/source/_components/eight_sleep.markdown index 58f59a4c8ab..485925d994a 100644 --- a/source/_components/eight_sleep.markdown +++ b/source/_components/eight_sleep.markdown @@ -50,10 +50,10 @@ password: description: The password associated with your Eight Sleep account. required: true type: string -password: +partner: description: Defines if you'd like to fetch data for both sides of the bed. required: false - type: string + type: boolean default: false {% endconfiguration %} diff --git a/source/_components/hangouts.markdown b/source/_components/hangouts.markdown index 1b14f247abe..3d19fec7f15 100644 --- a/source/_components/hangouts.markdown +++ b/source/_components/hangouts.markdown @@ -8,19 +8,28 @@ comments: false sharing: true footer: true logo: hangouts.png -ha_category: Hub +ha_category: + - Hub + - Notifications ha_release: 0.77 +redirect_from: + - /components/notify.hangouts/ --- This component allows you to send messages to [Google Hangouts](https://hangouts.google.com) conversations, as well as to react to messages in conversations. Reacting to commands is accomplished by firing an event when one of the configured commands is triggered. Home Assistant will impersonate a Smartisan YQ603 phone which will then show up in your Google devices. +There is currently support for the following device types within Home Assistant: + +- [Notifications](#notifications) + ## {% linkable_title Setup the component via the frontend %} Menu: *Configuration* -> *Integrations* Configure the integration: -* Enter your **Google Mail Address** and **Password** -* If you secured your account with 2-factor authentication you will be asked for a 2-factor authentication token. + +- Enter your **Google Mail Address** and **Password** +- If you secured your account with 2-factor authentication you will be asked for a 2-factor authentication token.
You can't write messages to yourself or get notifications in a group, if "you" write the message. The best way is to create a new Google Hangouts account for this integration.
@@ -49,8 +58,8 @@ hangouts:
- id: CONVERSATION_ID1
error_suppressed_conversations:
- id: CONVERSATION_ID2
-
```
+
{% configuration %}
intents:
description: "Intents that the hangouts component should understand."
@@ -106,6 +115,7 @@ The intent `HangoutsHelp` is part of the component and return a list of all sent
## {% linkable_title Adding sentences %}
{% raw %}
+
```yaml
# The Hangouts component
hangouts:
@@ -126,6 +136,7 @@ intent_script:
speech:
text: I know {{ states.hangouts.conversations.state }} conversations
```
+
{% endraw %}
This configuration will:
@@ -139,14 +150,15 @@ Sentences can contain slots (marked with curly braces: `{name}`) and optional wo
The following configuration can handle the following sentences:
- - Change the lights to red
- - Change the lights to green
- - Change the lights to blue
- - Change the lights to the color red
- - Change the lights to the color green
- - Change the lights to the color blue
+- Change the lights to red
+- Change the lights to green
+- Change the lights to blue
+- Change the lights to the color red
+- Change the lights to the color green
+- Change the lights to the color blue
{% raw %}
+
```yaml
# Example configuration.yaml entry
hangouts:
@@ -167,6 +179,7 @@ intent_script:
- "{% if color == 'green' %}255{% else %}0{% endif %}"
- "{% if color == 'blue' %}255{% else %}0{% endif %}"
```
+
{% endraw %}
## {% linkable_title Services %}
@@ -189,7 +202,6 @@ Sends a message to the given conversations.
| message | List of message segments, only the "text" field is required in every segment. [Required] | [{"text":"test", "is_bold": false, "is_italic": false, "is_strikethrough": false, "is_underline": false, "parse_str": false, "link_target": "http://google.com"}, ...] |
| data | Extra options | {"image_file": "path"} / {"image_url": "url"} |
-
### {% linkable_title Service `hangouts.reconnect` %}
Reconnects the hangouts bot.
@@ -205,6 +217,7 @@ Reconnects the hangouts bot.
The hangouts component can't detect if your ip address changes, so it can't automatic reconnect to the Google servers. This is a workaround for this problem.
{% raw %}
+
```yaml
sensor:
- platform: rest
@@ -212,7 +225,7 @@ sensor:
name: External IP
value_template: '{{ value_json.ip }}'
scan_interval: 10
-
+
automation:
- alias: Reconnect Hangouts
trigger:
@@ -220,10 +233,62 @@ automation:
platform: state
condition:
- condition: template
- value_template: '{{ trigger.from_state.state != trigger.to_state.state }}'
+ value_template: '{{ trigger.from_state.state != trigger.to_state.state }}'
- condition: template
- value_template: '{{ not is_state("sensor.external_ip", "unavailable") }}'
+ value_template: '{{ not is_state("sensor.external_ip", "unavailable") }}'
action:
- service: hangouts.reconnect
```
+
{% endraw %}
+
+## {% linkable_title Notifications %}
+
+The `hangouts` platform allows you to deliver notifications from Home Assistant to [Google Hangouts](http://hangouts.google.com) conversations. Conversations can be both direct as well as group chats.
+
+To enable Hangouts notifications in your installation, you first need to configure the Hangouts component. Then, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+notify:
+ - name: NOTIFIER_NAME
+ platform: hangouts
+ default_conversations:
+ - id: CONVERSATION_ID1
+ - id: CONVERSATION_ID2
+```
+
+{% configuration %}
+name:
+ description: "Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`."
+ required: false
+ type: string
+default_conversations:
+ description: "The conversations all messages will be sent to, when no other target is given."
+ required: true
+ type: [map]
+ keys:
+ id:
+ description: "Specifies the id of the conversation. *The conversation id can be obtained from the `hangouts.conversations` entity.*"
+ required: true
+ type: string
+{% endconfiguration %}
+
+### {% linkable_title Finding the conversation ID %}
+
+The conversations has to be precreated, the conversation id can be obtained from the `hangouts.conversations` entity, this can be found in with the states developer tool that is shown as this icon in the side bar. Using your web browsers search tool to find the `hangouts.conversations` entity. You will find something like below.
+
+```json
+0: {
+ "id": "
in the side bar. Using your web browsers search tool to find the `hangouts.conversations` entity. You will find something like below.
-
-```
-0: {
- "id": "
+The GCM configuration option is deprecated and will stop working in April 2019, see [https://developers.google.com/cloud-messaging/faq](https://developers.google.com/cloud-messaging/faq). If you are installing this platform for the first time, follow the VAPID configuration steps. To migrate your current installation from GCM to VAPID configuration, follow the instructions below. You can skip the first 3 steps and continue in step 4 with your existing project. You will also need to [re-enable the notifications in your browser](#setting-up-your-browser). +
+ ## {% linkable_title Configuration %} To enable this platform, add the following lines to your `configuration.yaml` file: @@ -35,7 +39,8 @@ notify: Or ```yaml -# Example configuration.yaml entry +# Example configuration.yaml entry. +# Warning: this option will be deprecated soon! notify: - platform: html5 name: NOTIFIER_NAME @@ -49,52 +54,52 @@ name: required: false type: string default: notify +vapid_pub_key: + description: The VAPID public key generated by Google (this is the key that is immediately visible under "webpush certificates"). + required: true + type: string +vapid_prv_key: + description: The VAPID private key generated by Google. + required: true + type: string +vapid_email: + description: The e-mail account associated with your Firebase project. + required: true + type: string gcm_api_key: - description: The API Server key provided to you by Google for Google Cloud Messaging (GCM). Required to push to Chrome. + description: The API Server key provided to you by Google for Google Cloud Messaging (GCM). required: true type: string gcm_sender_id: - description: The sender ID provided to you by Google for Google Cloud Messaging (GCM). Required to push to Chrome. + description: The sender ID provided to you by Google for Google Cloud Messaging (GCM). required: true type: string {% endconfiguration %} -### {% linkable_title Getting ready for Chrome %} - -1. Make sure you can access your Home Assistant installation from outside your network over HTTPS ([see docs](/docs/configuration/remote/)). -2. Create a new project at [https://console.cloud.google.com/home/dashboard](https://console.cloud.google.com/home/dashboard). -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. -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 %} - -Follow these steps to verify domain ownership with Google Webmaster Central/Search Console: -1. Enter your domain and add `/local` at the end, e.g., `https://example.com:8123/local` -2. Select HTML file verification and download the google*.html file. -2. Create a directory named `www` in your Home Assistant configuration directory (`/config/` share from Samba add-on). -3. Place the downloaded `google*.html` file in the `www` directory. -4. RESTART Home Assistant. **This is important!** -5. Verify the file can be accessed in the browser, e.g., **https://example.com:8123/local/google123456789.html** (change filename). You should see a plain text message saying "google-site-verification: ...". If you see "404: Not Found" or something else, retry the above steps. -6. Go back to Google Webmaster Central/Search Console and proceed with the verification. - ### {% linkable_title Requirements %} The `html5` platform can only function if all of the following requirements are met: * You are using Chrome and/or Firefox on any desktop platform, ChromeOS or Android. -* Your Home Assistant instance is exposed to the world. +* Your Home Assistant instance is accessible from outside your network over HTTPS. * If using a proxy, HTTP basic authentication must be off for registering or unregistering for push notifications. It can be re-enabled afterwards. * If you don't run Hass.io: `pywebpush` must be installed. `libffi-dev`, `libpython-dev` and `libssl-dev` must be installed prior to `pywebpush` (i.e. `pywebpush` probably won't automatically install). * You have configured SSL/TLS for your Home Assistant. It doesn't need to be configured in Home Assistant though, e.g., you can be running [NGINX](/ecosystem/nginx/) in front of Home Assistant and this will still work. The certificate must be trustworthy (i.e. not self signed). * You are willing to accept the notification permission in your browser. -### {% linkable_title Setting up %} +### {% linkable_title Configuring the platform %} -Assuming you have already added the platform to your configuration: +1. Make sure you can access your Home Assistant installation from outside your network over HTTPS ([see docs](/docs/configuration/remote/)). +2. Create a new project at [https://console.cloud.google.com/home/dashboard](https://console.cloud.google.com/home/dashboard). +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 - [see below](#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. +7. 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'. + +### {% linkable_title Setting up your browser %} + +Assuming you have already configured the platform: 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). @@ -313,3 +318,15 @@ If you still have the problem, even with mentioned rule, try to add this code: proxy_set_header Authorization $http_authorization; proxy_pass_header Authorization; ``` + +#### {% linkable_title Verify your domain %} + +If you need to verify domain ownership with Google Webmaster Central/Search Console while configuring this component, follow these steps: + +1. Enter your domain and add `/local` at the end, e.g., `https://example.com:8123/local` +2. Select HTML file verification and download the google*.html file. +2. Create a directory named `www` in your Home Assistant configuration directory (`/config/` share from Samba add-on). +3. Place the downloaded `google*.html` file in the `www` directory. +4. RESTART Home Assistant. **This is important!** +5. Verify the file can be accessed in the browser, e.g., **https://example.com:8123/local/google123456789.html** (change filename). You should see a plain text message saying "google-site-verification: ...". If you see "404: Not Found" or something else, retry the above steps. +6. Go back to Google Webmaster Central/Search Console and proceed with the verification. diff --git a/source/_components/notify.lametric.markdown b/source/_components/notify.lametric.markdown deleted file mode 100644 index 680b258278d..00000000000 --- a/source/_components/notify.lametric.markdown +++ /dev/null @@ -1,107 +0,0 @@ ---- -layout: page -title: "LaMetric Notify" -description: "Instructions on how to setup the LaMetric notify platform with Home Assistant." -date: 2017-04-02 13:28 -sidebar: true -comments: false -sharing: true -footer: true -logo: lametric.png -ha_category: Notifications -ha_release: 0.49 ---- - -The `lametric` notification platform allows to send notification to a LaMetric device. It needs the LaMetric platform to be configured first. - -To enable LaMetric notifications in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -notify: - name: NOTIFIER_NAME - platform: lametric -``` - -{% configuration %} -name: - description: "The optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`." - required: false - type: string - default: notify -lifetime: - description: Defines how long the message remains in LaMetric notification queue (in seconds). - required: false - type: integer - default: 10 -icon: - description: An icon or animation. - required: false - type: string -cycles: - description: Defines how often the notification is displayed. - required: false - type: integer - default: 1 -priority: - description: Defines the priority of the notification. - required: false - type: string - default: warning -{% endconfiguration %} - -Check out the list of all icons at [https://developer.lametric.com/icons](https://developer.lametric.com/icons). Note that icons always begin with "i" while animations begin with "a". This is part of the name, you can't just use the number! - -## {% linkable_title Examples %} - -### {% linkable_title Full configuration example %} - -```yaml -# Example configuration.yaml entry -notify: - name: NOTIFIER_NAME - platform: lametric - lifetime: 20 - icon: a7956 - cycles: 3 - priority: info -``` - -### {% linkable_title Changing sounds and icons %} - -To add a notification sound, icon, cycles, or priority override, it has to be done via service data. - -```yaml -- alias: "Send notification on arrival at school" - trigger: - platform: state - entity_id: device_tracker.son_mobile - from: 'not_home' - to: 'school' - action: - service: notify.lametric - data: - message: "Son has arrived at school!" - data: - sound: 'notification' - icon: 'i51' - cycles: 0 - priority: 'critical' -``` - -### {% linkable_title Only notify specific device %} - -If you have more than one La Metric device, you can specify which will receive the message by adding `target:` to the service data: - -```yaml - action: - service: notify.lametric - data: - message: "Son has arrived at school!" - target: "Office LaMetric" - data: - sound: 'notification' - icon: 'i51' - ``` - - If target is not specified, all LaMetric devices will be notified. diff --git a/source/_components/notify.mailgun.markdown b/source/_components/notify.mailgun.markdown deleted file mode 100644 index 35941fc55d4..00000000000 --- a/source/_components/notify.mailgun.markdown +++ /dev/null @@ -1,77 +0,0 @@ ---- -layout: page -title: "Mailgun Notify" -description: "Instructions on how to add Mailgun mail notifications to Home Assistant." -date: 2017-02-06 16:52 -sidebar: true -comments: false -sharing: true -footer: true -logo: mailgun.png -ha_category: Notifications -ha_release: 0.38 ---- - -The Mailgun notification service allows you to send emails via Mailgun's REST API. It requires the [Mailgun component] to be set up. - -[Mailgun component]: /components/mailgun/ - -## {% linkable_title Sample configuration %} - -```yaml -# Example configuration.yaml entry -mailgun: - domain: EXAMPLE.COM - api_key: YOUR_API_KEY - -notify: - - name: mailgun - platform: mailgun - recipient: CHANGE@EXAMPLE.COM -``` - -{% configuration %} -domain: - description: This is the domain name to be used when sending out mail. - required: true - type: string -sandbox: - description: "(**Deprecated**) If a sandboxed domain is used, specify it in `domain`." - required: false - default: false - type: boolean -api_key: - description: This is the API Key that has been generated in your Mailgun account. - required: true - type: string -recipient: - description: The email address of the recipient. - required: true - type: string -sender: - description: The sender's email address. - required: false - default: "`hass@DOMAIN`, where `DOMAIN` is the outgoing mail domain, as defined by the `domain` configuration entry." - type: string -{% endconfiguration %} - -## {% linkable_title Example automation %} - -The following automation reacts to an event by sending out an email with two attachments. - -```yaml -# Example automation using Mailgun notifications -automation: - trigger: - platform: event - event_type: SPECIAL_EVENT - action: - service: notify.mailgun - data: - title: "Something special has happened" - message: "This a test message from Home Assistant" - data: - images: - - /home/pi/pic_test1.png - - /home/pi/pic_test2.png -``` diff --git a/source/_components/notify.matrix.markdown b/source/_components/notify.matrix.markdown deleted file mode 100644 index f03d25b734f..00000000000 --- a/source/_components/notify.matrix.markdown +++ /dev/null @@ -1,44 +0,0 @@ ---- -layout: page -title: "Matrix" -description: "Instructions on how to add Matrix notifications to Home Assistant." -date: 2016-10-11 23:51 -sidebar: true -comments: false -sharing: true -footer: true -logo: matrix.png -ha_category: Notifications -ha_release: 0.32 ---- - -The `matrix` platform allows you to deliver notifications from Home Assistant to a [Matrix](http://matrix.org) room. Rooms can be both direct as well as group chats. - -## {% linkable_title Configuration %} - -To enable Matrix notifications in your installation, you first need to configure -the [Matrix component](/components/matrix/). Then, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -notify: - - name: NOTIFIER_NAME - platform: matrix - default_room: ROOM_ID_OR_ALIAS -``` - -{% 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 -default_room: - description: The room all messages will be sent to, when no other target is given. - required: true - type: string -{% endconfiguration %} - -The target room has to be precreated, the room id can be obtained from the rooms settings dialog. Rooms by default have a canonical id of the form `"!-The binary sensors **battery**, **button_press** and **tamper** are switched `On` for a breif moment and are then switched back to `Off`. +The binary sensors **button_press**, **sound** and **tamper** are switched `On` for a breif moment and are then switched back to `Off`.
### {% linkable_title Automation example %} diff --git a/source/_components/sensor.crimereports.markdown b/source/_components/sensor.crimereports.markdown index 9facbec11f8..3bac531f056 100644 --- a/source/_components/sensor.crimereports.markdown +++ b/source/_components/sensor.crimereports.markdown @@ -13,7 +13,7 @@ ha_release: 0.42 ha_iot_class: Cloud Polling --- -The `crimereports` sensor allows one to track reported incidents occurring in a given area. Incidents include anything reported to [Crime Reports](http://crimereports.com). Your regional emergency services may or may not report data. The sensor only counts incidents from the current day. +The `crimereports` sensor allows one to track reported incidents occurring in a given area. Incidents include anything reported to [Crime Reports](https://www.crimereports.com). Your regional emergency services may or may not report data. The sensor only counts incidents from the current day. ## {% linkable_title Configuration %} diff --git a/source/_components/sensor.dweet.markdown b/source/_components/sensor.dweet.markdown deleted file mode 100644 index 179e535e916..00000000000 --- a/source/_components/sensor.dweet.markdown +++ /dev/null @@ -1,98 +0,0 @@ ---- -layout: page -title: "Dweet.io" -description: "Instructions on how to integrate Dweet.io sensors within Home Assistant." -date: 2015-12-10 10:15 -sidebar: true -comments: false -sharing: true -footer: true -logo: dweet.png -ha_category: Sensor -ha_release: "0.10" -ha_iot_class: Cloud Polling ---- - -The `dweet` sensor platform allows you to get details from your devices which are publishing their values to [Dweet.io](https://dweet.io/). - -## {% linkable_title Configuration %} - -To use Dweet.io sensors in your installation, add the following to your `configuration.yaml` file: - -{% raw %} -```yaml -# Example configuration.yaml entry -sensor: - - platform: dweet - device: THING_NAME - value_template: '{{ value_json.VARIABLE }}' -``` -{% endraw %} - -{% configuration %} -device: - description: Identification of the device (also known as `thing`). - required: true - type: string -value_template: - description: The variable to extract a value from the content. - required: true - type: template -name: - description: Let you overwrite the name of the device in the frontend. - required: false - default: Dweet.io Sensor - type: string -unit_of_measurement: - description: Defines the unit of measurement of the sensor, if any. - required: false - type: string -{% endconfiguration %} - -### {% linkable_title Full configuration sample %} - -A full configuration entry could look like the sample below. - -{% raw %} -```yaml -# Example configuration.yaml entry -sensor: - - platform: dweet - name: Temperature - device: THING_NAME - value_template: '{{ value_json.VARIABLE }}' - unit_of_measurement: "°C" -``` -{% endraw %} - -### {% linkable_title Interacting with Dweet.io %} - -You can easily send dweets from the command-line to test your sensor with `curl`. - -```bash -$ curl -H 'Content-Type: application/json' -d '{"temperature": 40, "humidity": 65}' https://dweet.io/dweet/for/ha-sensor -``` - -will give you a response like the one below: - -```json -{"this":"succeeded","by":"dweeting","the":"dweet","with":{"thing":"ha-sensor","created":"2015-12-10T09:43:31.133Z","content":{"temperature":40,"humidity":65}}} -``` - -The [dweepy](https://github.com/paddycarey/dweepy) module gives you another option to work with [Dweet.io](https://dweet.io/). - -Send a dweet. - -```bash -$ python3 ->>> import dweepy ->>> dweepy.dweet_for('ha-sensor', {'temperature': '23', 'humiditiy':'81'}) -{'thing': 'ha-sensor', 'created': '2015-12-10T09:46:08.559Z', 'content': {'humiditiy': 81, 'temperature': 23}} -``` - -Receive the latest dweet. - -```bash ->>> dweepy.get_latest_dweet_for('ha-sensor') -[{'thing': 'ha-sensor'', 'created': '2015-12-10T09:43:31.133Z', 'content': {'humidity': 65, 'temperature': 40}}] -``` diff --git a/source/_components/sensor.ihc.markdown b/source/_components/sensor.ihc.markdown deleted file mode 100644 index 771a9760afe..00000000000 --- a/source/_components/sensor.ihc.markdown +++ /dev/null @@ -1,74 +0,0 @@ ---- -layout: page -title: "IHC Sensor" -description: "Instructions on how to integrate IHC Sensors within Home Assistant." -date: 2017-11-27 13:35 -sidebar: true -comments: false -sharing: true -footer: true -logo: ihc.png -ha_category: Sensor -ha_release: 0.62 -ha_iot_class: Local Push ---- - -Before you can use the IHC Sensor platform, you must setup the -[IHC Component](/components/ihc/) - -When auto setup is enabled the following products will be found in the IHC -project and setup as sensors: - -- Dataline temperature sensor - Will insert 2 temperature 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 "sensor" -section in your IHC configuration: - -```yaml -ihc: - - url: 'http://192.168.1.3' - username: YOUR_USERNAME2 - password: YOUR_PASSWORD2 - info: true - sensor: - - id: 12345 - name: Temperatur_living_room - unit_of_measurement: '°C' - note: Floor and wall temp. - position: On wall between windows - - id: 23456 - ... -``` - -{% configuration %} -sensor: - description: List of sensors to setup manually. - required: false - type: map - keys: - id: - description: The IHC resource id. - required: true - type: integer - name: - description: The name of the sensor. - required: false - type: string - unit_of_measurement: - description: Defines the unit of measurement of the sensor, if any. - required: false - type: string - note: - description: Descriptive note. - required: false - type: string - position: - description: Where it is placed. - required: false - type: string -{% endconfiguration %} - -The resource id should be a IHC float resource. For more information about IHC -resource ids see [Manual Setup](/components/ihc/#manual-setup). diff --git a/source/_components/sensor.pocketcasts.markdown b/source/_components/sensor.pocketcasts.markdown index 0cd5a16fb67..cd1a1f7b266 100644 --- a/source/_components/sensor.pocketcasts.markdown +++ b/source/_components/sensor.pocketcasts.markdown @@ -13,7 +13,7 @@ ha_release: 0.39 ha_iot_class: Cloud Polling --- -The `pocketcasts` sensor platform let one monitor the podcasts at [Pocket Casts](https://play.pocketcasts.com/). +The `pocketcasts` sensor platform lets one monitor the podcasts at [Pocket Casts](https://play.pocketcasts.com/). ## {% linkable_title Configuration %} diff --git a/source/_components/sensor.spotcrime.markdown b/source/_components/sensor.spotcrime.markdown index 33a36f2d19b..0afbb45fae5 100644 --- a/source/_components/sensor.spotcrime.markdown +++ b/source/_components/sensor.spotcrime.markdown @@ -7,17 +7,14 @@ sidebar: true comments: false sharing: true footer: true -ha_category: Social ha_release: 0.65 ha_iot_class: Cloud Polling --- +SpotCrime is no longer handing out API keys to integrate their services.
+ The `spotcrime` sensor allows one to track reported incidents occurring in a given area. Incidents include anything reported to [Spot Crime](http://spotcrime.com). Your regional emergency services may or may not report data. The sensor defaults to counting incidents within one day, but can be customized via configuration.yaml. -## {% linkable_title Setup %} - -You will need to request an API key from [Spotcrime](mailto:pyrrhus@spotcrime.com). - ## {% linkable_title Configuration %} To enable this sensor, add the following lines to your `configuration.yaml`. Your `radius` should be of sufficient size to capture incidents in your area. 0.01 = 1 mile. diff --git a/source/_components/sensor.zabbix.markdown b/source/_components/sensor.zabbix.markdown deleted file mode 100644 index bb5b3118114..00000000000 --- a/source/_components/sensor.zabbix.markdown +++ /dev/null @@ -1,53 +0,0 @@ ---- -layout: page -title: "Zabbix Sensor" -description: "Instructions on how to integrate Zabbix Triggers sensors within Home Assistant." -date: 2016-12-13 22:57 -sidebar: true -comments: false -sharing: true -footer: true -logo: zabbix.png -ha_category: System Monitor -ha_release: 0.37 -ha_iot_class: Local Polling ---- - -The `zabbix` sensor platform let you monitor the current count of active triggers for your [Zabbix](http://www.zabbix.com/) monitoring instance. - --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 -# Example configuration.yaml entry -sensor: - - platform: zabbix - triggers: - name: Important Hosts Trigger Count - hostids: [10051,10081,10084] - individual: true -``` - -{% configuration %} -triggers: - description: Specifies that this sensor is for Zabbix 'triggers'. In the future there will be other Zabbix sensors. - required: true - type: string -name: - description: Allows you to specify the name for the Sensor, otherwise the host name, as stored in Zabbix, is used. This is useful when you are specifying a list of hostids to monitor as a single count. - required: false - type: string -hostids: - description: This is a list of Zabbix hostids that we want to filter our count on. - required: false - type: string -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 %} diff --git a/source/_components/switch.ihc.markdown b/source/_components/switch.ihc.markdown deleted file mode 100644 index 1a56406e408..00000000000 --- a/source/_components/switch.ihc.markdown +++ /dev/null @@ -1,77 +0,0 @@ ---- -layout: page -title: "IHC Switch" -description: "Instructions on how to integrate IHC switches within Home Assistant." -date: 2017-11-27 13:35 -sidebar: true -comments: false -sharing: true -footer: true -logo: ihc.png -ha_category: Switch -ha_release: 0.62 -ha_iot_class: Local Push ---- - -Before you can use the IHC Switch platform, you must setup the -[IHC Component](/components/ihc/) - -When auto setup is enabled the following products will be found in the ihc -project and setup as switch devices: - -- Wireless plug outlet -- Wireless relay -- Mobile wireless relay -- Dataline plug outlet - -## {% linkable_title Configuration %} - -To manually configure IHC switches insert the "switch" section in your -IHC configuration: - -```yaml -ihc: - - url: 'http://192.168.1.3' - username: YOUR_USERNAME - password: YOUR_PASSWORD - info: true - switch: - - id: 12345 - - id: 12346 -``` - -{% configuration %} -switch: - description: List of switches to setup manually - required: false - type: map - keys: - id: - 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 - type: string - note: - description: Descriptive note. - required: false - type: string - position: - description: Where it is placed. - required: false - type: string -{% endconfiguration %} - -The resource id should be a boolean resource (On/Off). -For more information about IHC resource ids see -[Manual Setup](/components/ihc/#manual-setup). diff --git a/source/_components/switch.wake_on_lan.markdown b/source/_components/switch.wake_on_lan.markdown deleted file mode 100644 index 2dd668d9e05..00000000000 --- a/source/_components/switch.wake_on_lan.markdown +++ /dev/null @@ -1,87 +0,0 @@ ---- -layout: page -title: "Wake on LAN Switch" -description: "Instructions on how to integrate a wake on lan switch." -date: 2016-03-18 18:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: ethernet.png -ha_category: Network -ha_release: 0.16 -ha_iot_class: Local Polling ---- - -The `wake_on_lan` (WOL) switch platform allows you to turn on a [WOL](https://en.wikipedia.org/wiki/Wake-on-LAN) enabled computer. - -## {% linkable_title Configuration %} - --The WOL switch can only turn on your computer and monitor the state. There is no universal way to turn off a computer remotely. The `turn_off` variable is there to help you call a script when you have figured out how to remotely turn off your computer. -See below for suggestions on how to do this. -
- -To enable this switch in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -switch: - - platform: wake_on_lan - mac_address: "00-01-02-03-04-05" -``` - -{% configuration %} -mac_address: - description: MAC address to send the wake up command to. - required: true - type: string -name: - description: The name of the switch. - required: false - default: Wake on LAN - type: string -host: - description: The IP address or hostname to check the state of the device (on/off). - required: false - type: string -turn_off: - description: Defines an [action](/getting-started/automation/) to run when the switch is turned off. - required: false - type: string -broadcast_address: - description: The IP address of the host to send the magic packet to. - required: false - default: 255.255.255.255 - type: string -{% endconfiguration %} - -## {% linkable_title Examples %} - -Here are some real-life examples of how to use the **turn_off** variable. - -### {% linkable_title Suspending Linux %} - -Suggested recipe for letting the `turn_off` script suspend a Linux computer (the **target**) -from Home Assistant running on another Linux computer (the **server**). - -1. On the **server**, log in as the user account Home Assistant is running under. (I'm using `hass` in this example) -2. On the **server**, create ssh keys by running `ssh-keygen`. Just press enter on all questions. -3. On the **target**, create a new account that Home Assistant can ssh into: `sudo adduser hass`. Just press enter on all questions except password. I recommend using the same user name as on the server. If you do, you can leave out `hass@` in the ssh commands below. -4. On the **server**, transfer your public ssh key by `ssh-copy-id hass@TARGET` where TARGET is your target machine's name or IP address. Enter the password you created in step 3. -5. On the **server**, verify that you can reach your target machine without password by `ssh TARGET`. -6. On the **target**, we need to let the hass user execute the program needed to suspend/shut down the target computer. I'm using `pm-suspend`, use `poweroff` to turn off the computer. First, get the full path: `which pm-suspend`. On my system, this is `/usr/sbin/pm-suspend`. -7. On the **target**, using an account with sudo access (typically your main account), `sudo visudo`. Add this line last in the file: `hass ALL=NOPASSWD:/usr/sbin/pm-suspend`, where you replace `hass` with the name of your user on the target, if different, and `/usr/sbin/pm-suspend` with the command of your choice, if different. -8. On the **server**, add the following to your configuration, replacing TARGET with the target's name: - -```yaml -switch: - - platform: wake_on_lan - name: "TARGET" - ... - turn_off: - service: shell_command.turn_off_TARGET - -shell_command: - turn_off_TARGET: 'ssh hass@TARGET sudo pm-suspend' -``` diff --git a/source/_components/tibber.markdown b/source/_components/tibber.markdown index 1f56579e636..70af502cd8f 100644 --- a/source/_components/tibber.markdown +++ b/source/_components/tibber.markdown @@ -21,7 +21,7 @@ redirect_from: --- 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. +If you have a [Tibber Pulse](https://norge.tibber.com/products/pulse/) or [Watty](https://watty.io/) it will also show the electricity consumption in real time. There is currently support for the following device types within Home Assistant: diff --git a/source/_components/tplink.markdown b/source/_components/tplink.markdown index 094fe692275..57a1353ad92 100644 --- a/source/_components/tplink.markdown +++ b/source/_components/tplink.markdown @@ -8,16 +8,27 @@ comments: false sharing: true footer: true logo: tp-link.png -ha_category: Hub +ha_category: + - Hub + - Switch + - Light + - Presence Detection ha_release: 0.89 ha_iot_class: Local Polling redirect_from: - /components/switch.tplink/ - /components/light.tplink/ + - /components/device_tracker.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. +There is currently support for the following device types within Home Assistant: + +- **Light** +- **Switch** +- [Presence Detection](#presence-detection) + 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. @@ -129,3 +140,59 @@ sensor: unit_of_measurement: 'kWh' ``` {% endraw %} + +## {% linkable_title Presence detection %} + +The `tplink` platform allows you to detect presence by looking at connected devices to a [TP-Link](https://www.tp-link.com) router. + +Currently supported devices includes the following: + +- Archer C7 firmware version 150427 +- Archer C9 firmware version 150811 +- EAP-225 AP with latest firmware version +- Archer D9 firmware version 0.9.1 0.1 v0041.0 Build 160224 Rel.59129n + ++TP-Link devices typically only allow one login at a time to the admin console. This component will count towards your one allowed login. Depending on how aggressively you configure device_tracker you may not be able to access the admin console of your TP-Link device without first stopping Home Assistant. Home Assistant takes a few seconds to login, collect data, and log out. If you log into the admin console manually, remember to log out so that Home Assistant can log in again. +
+ +### {% linkable_title Configuration %} + +To enable this device tracker, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +device_tracker: + - platform: tplink + host: YOUR_ROUTER_IP + 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 an user with administrative privileges, usually *admin*. The Archer D9 last firmware does not require a username. + required: true + type: string +password: + description: The password for your given admin account. + required: true + type: string +{% endconfiguration %} + +For Archer C9 models running firmware version 150811 or later please use the encrypted password you can retrieve like this: + +1. Go to the login page of your router. (default: 192.168.0.1) +2. Type in the password you use to login into the password field. +3. Click somewhere else on the page so that the password field is not selected anymore. +4. Open the JavaScript console of your browser (usually by pressing F12 and then clicking on "Console"). +5. Type `document.getElementById("login-password").value;` or `document.getElementById("pcPassword").value;`, depending on your firmware version. +6. Copy the returned value to your Home Assistant configuration as password. + +See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. + +For Archer D9 model the default ip is 192.168.1.1, the username is not necessary and you can leave that field blank. \ No newline at end of file diff --git a/source/_components/vacuum.mqtt.markdown b/source/_components/vacuum.mqtt.markdown index 12c4e2970e3..f27641373e0 100644 --- a/source/_components/vacuum.mqtt.markdown +++ b/source/_components/vacuum.mqtt.markdown @@ -259,6 +259,10 @@ MQTT payload: } ``` +### {% linkable_title Usage with cloudless Xiaomi vacuums %} + +This component is supported by the cloud-free Xiaomi Vacuum Webinterface [Valetudo](https://github.com/Hypfer/Valetudo). + ### {% 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. diff --git a/source/_components/wake_on_lan.markdown b/source/_components/wake_on_lan.markdown index 62201899594..b120e58f05b 100644 --- a/source/_components/wake_on_lan.markdown +++ b/source/_components/wake_on_lan.markdown @@ -8,13 +8,21 @@ comments: false sharing: true footer: true logo: ethernet.png -ha_category: Network +ha_category: + - Network + - Switch ha_release: 0.49 ha_iot_class: Local Push +redirect_from: + - /components/switch.wake_on_lan/ --- The `wake_on_lan` component enables the ability to send _magic packets_ to [Wake on LAN](https://en.wikipedia.org/wiki/Wake-on-LAN) capable devices, to turn them on. +There is currently support for the following device types within Home Assistant: + +- [Switch](#switch) + ## {% linkable_title Configuration %} To use this component in your installation, add the following to your `configuration.yaml` file: @@ -44,3 +52,78 @@ Sample service data: "mac":"00:40:13:ed:f1:32" } ``` + +## {% linkable_title Switch %} + +The `wake_on_lan` (WOL) switch platform allows you to turn on a [WOL](https://en.wikipedia.org/wiki/Wake-on-LAN) enabled computer. + +### {% linkable_title Switch configuration %} + ++The WOL switch can only turn on your computer and monitor the state. There is no universal way to turn off a computer remotely. The `turn_off` variable is there to help you call a script when you have figured out how to remotely turn off your computer. +See below for suggestions on how to do this. +
+ +To enable this switch in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: wake_on_lan + mac_address: "00-01-02-03-04-05" +``` + +{% configuration %} +mac_address: + description: MAC address to send the wake up command to. + required: true + type: string +name: + description: The name of the switch. + required: false + default: Wake on LAN + type: string +host: + description: The IP address or hostname to check the state of the device (on/off). + required: false + type: string +turn_off: + description: Defines an [action](/getting-started/automation/) to run when the switch is turned off. + required: false + type: string +broadcast_address: + description: The IP address of the host to send the magic packet to. + required: false + default: 255.255.255.255 + type: string +{% endconfiguration %} + +### {% linkable_title Examples %} + +Here are some real-life examples of how to use the **turn_off** variable. + +#### {% linkable_title Suspending Linux %} + +Suggested recipe for letting the `turn_off` script suspend a Linux computer (the **target**) +from Home Assistant running on another Linux computer (the **server**). + +1. On the **server**, log in as the user account Home Assistant is running under. (I'm using `hass` in this example) +2. On the **server**, create ssh keys by running `ssh-keygen`. Just press enter on all questions. +3. On the **target**, create a new account that Home Assistant can ssh into: `sudo adduser hass`. Just press enter on all questions except password. I recommend using the same user name as on the server. If you do, you can leave out `hass@` in the ssh commands below. +4. On the **server**, transfer your public ssh key by `ssh-copy-id hass@TARGET` where TARGET is your target machine's name or IP address. Enter the password you created in step 3. +5. On the **server**, verify that you can reach your target machine without password by `ssh TARGET`. +6. On the **target**, we need to let the hass user execute the program needed to suspend/shut down the target computer. I'm using `pm-suspend`, use `poweroff` to turn off the computer. First, get the full path: `which pm-suspend`. On my system, this is `/usr/sbin/pm-suspend`. +7. On the **target**, using an account with sudo access (typically your main account), `sudo visudo`. Add this line last in the file: `hass ALL=NOPASSWD:/usr/sbin/pm-suspend`, where you replace `hass` with the name of your user on the target, if different, and `/usr/sbin/pm-suspend` with the command of your choice, if different. +8. On the **server**, add the following to your configuration, replacing TARGET with the target's name: + +```yaml +switch: + - platform: wake_on_lan + name: "TARGET" + ... + turn_off: + service: shell_command.turn_off_TARGET + +shell_command: + turn_off_TARGET: 'ssh hass@TARGET sudo pm-suspend' +``` \ No newline at end of file diff --git a/source/_components/zabbix.markdown b/source/_components/zabbix.markdown index 75fce8fe3d7..e68b2841c6b 100644 --- a/source/_components/zabbix.markdown +++ b/source/_components/zabbix.markdown @@ -8,13 +8,21 @@ comments: false sharing: true footer: true logo: zabbix.png -ha_category: System Monitor +ha_category: + - System Monitor + - Sensor ha_release: 0.37 ha_iot_class: Local Polling +redirect_from: + - /components/sensor.zabbix/ --- The `zabbix` component is the main component to connect to a [Zabbix](http://www.zabbix.com/) monitoring instance via the Zabbix API. +There is currently support for the following device types within Home Assistant: + +- [Sensor](#sensor) + ## {% linkable_title Configuration %} To set the Zabbix component up, add the following information to your `configuration.yaml` file: @@ -22,7 +30,7 @@ To set the Zabbix component up, add the following information to your `configura ```yaml # Example configuration.yaml entry zabbix: - host: 192.168.0.100 + host: IP_ADDRESS ``` {% configuration %} @@ -61,3 +69,42 @@ zabbix: username: USERNAME password: PASSWORD ``` + +## {% linkable_title Sensor %} + +The `zabbix` sensor platform let you monitor the current count of active triggers for your [Zabbix](http://www.zabbix.com/) monitoring instance. + ++You must have the Zabbix component configured to use those sensors. +
+ +To set it up, add the following information to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: zabbix + triggers: + name: Important Hosts Trigger Count + hostids: [10051,10081,10084] + individual: true +``` + +{% configuration %} +triggers: + description: Specifies that this sensor is for Zabbix 'triggers'. In the future there will be other Zabbix sensors. + required: true + type: string +name: + description: Allows you to specify the name for the Sensor, otherwise the host name, as stored in Zabbix, is used. This is useful when you are specifying a list of hostids to monitor as a single count. + required: false + type: string +hostids: + description: This is a list of Zabbix hostids that we want to filter our count on. + required: false + type: string +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 %} \ No newline at end of file diff --git a/source/_docs/authentication/providers.markdown b/source/_docs/authentication/providers.markdown index 6bb069c3561..c3a332bc9e3 100644 --- a/source/_docs/authentication/providers.markdown +++ b/source/_docs/authentication/providers.markdown @@ -108,7 +108,7 @@ Leading and trailing whitespace, as well as lines starting with `#` are ignored. * `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. +Stderr 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".
@@ -133,7 +133,7 @@ homeassistant:
api_password: !secret http_password
```
-`api_password` is required option since 0.90 rlease.
+`api_password` is required option since 0.90 release.
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.
diff --git a/source/_docs/configuration/splitting_configuration.markdown b/source/_docs/configuration/splitting_configuration.markdown
index 1cf7c1f523b..a789dec549c 100644
--- a/source/_docs/configuration/splitting_configuration.markdown
+++ b/source/_docs/configuration/splitting_configuration.markdown
@@ -64,7 +64,7 @@ mqtt:
```
As with the core snippet, indentation makes a difference. The component headers (`mqtt:`) should be fully left aligned (aka no indent), and the parameters (`broker:`) should be indented two (2) spaces.
-While some of these components can technically be moved to a separate file they are so small or "one off's" where splitting them off is superfluous. Also, you'll notice the # symbol (hash/pound). This represents a "comment" as far as the commands are interpreted. Put another way, any line prefixed with a `#` will be ignored. This makes breaking up files for human readability really convenient, not to mention turning off features while leaving the entry intact. (Look at the `zigbee:` entry above and the b entry further down)
+While some of these components can technically be moved to a separate file they are so small or "one off's" where splitting them off is superfluous. Also, you'll notice the # symbol (hash/pound). This represents a "comment" as far as the commands are interpreted. Put another way, any line prefixed with a `#` will be ignored. This makes breaking up files for human readability really convenient, not to mention turning off features while leaving the entry intact.
Now, lets assume that a blank file has been created in the Home Assistant configuration directory for each of the following:
@@ -106,7 +106,7 @@ Let's look at the `device_tracker.yaml` file from our example:
consider_home: 120
```
-This small example illustrates how the "split" files work. In this case, we start with a "comment block" identifying the file followed by two (2) device tracker entries (`owntracks` and `nmap`). These files follow ["style 1"](/getting-started/devices/#style-2-list-each-device-separately) that is to say a fully left aligned leading entry (`- platform: owntracks`) followed by the parameter entries indented two (2) spaces.
+This small example illustrates how the "split" files work. In this case, we start with two (2) device tracker entries (`owntracks` and `nmap`). These files follow ["style 1"](/getting-started/devices/#style-2-list-each-device-separately) that is to say a fully left aligned leading entry (`- platform: owntracks`) followed by the parameter entries indented two (2) spaces.
This (large) sensor configuration gives us another example:
diff --git a/source/_docs/ecosystem/ios/notifications/content_extensions.markdown b/source/_docs/ecosystem/ios/notifications/content_extensions.markdown
index 29f0f5c0727..4c4940b2afa 100644
--- a/source/_docs/ecosystem/ios/notifications/content_extensions.markdown
+++ b/source/_docs/ecosystem/ios/notifications/content_extensions.markdown
@@ -61,6 +61,8 @@ You can use the attachment parameters `content-type` and `hide-thumbnail` with c
You can view an example [here](https://www.youtube.com/watch?v=LmYwpxPKW0g).
+Note: This functionality is only available from iOS 11 onwards.
+
```yaml
service: notify.ios_