From 8f4c0ae558168f9bf80d1045e6e3b7faebf4c3bc Mon Sep 17 00:00:00 2001 From: Jason Lawrence Date: Fri, 2 Nov 2018 16:14:51 -0500 Subject: [PATCH 01/83] Remove FFmpeg run_test config --- source/_components/ffmpeg.markdown | 5 ----- 1 file changed, 5 deletions(-) diff --git a/source/_components/ffmpeg.markdown b/source/_components/ffmpeg.markdown index 24f4f30de98..d1feedd3e2e 100644 --- a/source/_components/ffmpeg.markdown +++ b/source/_components/ffmpeg.markdown @@ -35,11 +35,6 @@ ffmpeg_bin: required: false default: ffmpeg type: string -run_test: - description: Check if `input` is usable by ffmpeg. - required: false - default: True - type: boolean {% endconfiguration %} ### {% linkable_title Raspbian Debian Jessie Lite Installations %} From e2853ac9b9021a4d0c706be997b8585dca46c495 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Sun, 4 Nov 2018 09:15:49 +0100 Subject: [PATCH 02/83] Adds documentation for the new Tautulli sensor. (#7151) * Adds documentation for the new Tautulli sensor. * Change "Plex" to "Tautulli" for the "ssl" option. * Added link to API example * added info about the user activity attribute. * Update source/_components/sensor.tautulli.markdown Co-Authored-By: ludeeus * Update source/_components/sensor.tautulli.markdown Co-Authored-By: ludeeus * Update source/_components/sensor.tautulli.markdown Co-Authored-By: ludeeus * Update source/_components/sensor.tautulli.markdown Co-Authored-By: ludeeus * Update source/_components/sensor.tautulli.markdown Co-Authored-By: ludeeus * Update source/_components/sensor.tautulli.markdown Co-Authored-By: ludeeus --- source/_components/sensor.tautulli.markdown | 73 ++++++++++++++++++++ source/images/supported_brands/tautulli.png | Bin 0 -> 57551 bytes 2 files changed, 73 insertions(+) create mode 100644 source/_components/sensor.tautulli.markdown create mode 100644 source/images/supported_brands/tautulli.png diff --git a/source/_components/sensor.tautulli.markdown b/source/_components/sensor.tautulli.markdown new file mode 100644 index 00000000000..03a0dd98288 --- /dev/null +++ b/source/_components/sensor.tautulli.markdown @@ -0,0 +1,73 @@ +--- +layout: page +title: "Tautulli activity sensor" +description: "Instructions on how to set up Tautulli sensors in Home Assistant." +date: 2018-10-27 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: tautulli.png +ha_category: Sensor +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: + +- LAN bandwidth +- Number of direct plays +- Number of direct streams +- Stream count +- Top Movie +- Top TV Show +- Top User +- Total bandwidth +- Transcode count +- WAN bandwidth + +More user statistics can be added with the `monitored_variables` 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. + +If you want to enable this sensor, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: tautulli + api_key: 24b6eac0a858748664878d146bf63623b4 + host: 192.168.1.14 +``` + +{% configuration %} +api_key: + description: The API key for your Tautulli server. + required: true + type: string +host: + description: The DNS name or IP Address of the server running Tautulli. + required: true + type: string +port: + description: The port of your Tautulli server. + required: false + default: 8181 + type: integer +ssl: + description: Use HTTPS to connect to Tautulli server. *NOTE* A host *cannot* be an IP address when this option is enabled. + required: false + default: false + type: boolean +monitored_users: + description: A list of Tautulli users you want to monitor, if not set this will monitor **all** users. + required: false + type: list +monitored_variables: + description: A list of attributes to expose for each Tautulli user you monitor, every key in the `session` [section here][tautulliapi] can be used. + required: false + type: list +{% endconfiguration %} + +[tautulli]: https://tautulli.com +[tautulliapi]: https://github.com/Tautulli/Tautulli/blob/master/API.md#get_activity diff --git a/source/images/supported_brands/tautulli.png b/source/images/supported_brands/tautulli.png new file mode 100644 index 0000000000000000000000000000000000000000..d2fb724fe8e6a348ebbd206d79701c79b6e49b2e GIT binary patch literal 57551 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%0D>DKI)G;-pR7S_+82p8) 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 Date: Sun, 4 Nov 2018 09:17:24 +0100 Subject: [PATCH 03/83] Xmpp http upload (#6788) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * xmpp http upload documented * titles, note for rooms * document unverified request for image retrieval * reverting some quotes in configuration section * xmpp docs update * XMPP HTTP upload: added templating docs for url and path * fix url template in example n°6 --- source/_components/notify.xmpp.markdown | 124 +++++++++++++++++++++++- 1 file changed, 120 insertions(+), 4 deletions(-) diff --git a/source/_components/notify.xmpp.markdown b/source/_components/notify.xmpp.markdown index 45f452f5a88..6c79aa48fa8 100644 --- a/source/_components/notify.xmpp.markdown +++ b/source/_components/notify.xmpp.markdown @@ -22,7 +22,7 @@ To enable Jabber notifications in your installation, add the following to your ` ```yaml # Example configuration.yaml entry notify: - - name: NOTIFIER_NAME + - name: NOTIFIER_NAME # e.g. jabber platform: xmpp sender: YOUR_JID password: YOUR_JABBER_ACCOUNT_PASSWORD @@ -34,7 +34,7 @@ name: description: "Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`." required: false type: string - default: Random Sensor + default: notify sender: description: "The Jabber ID (JID) that will act as origin of the messages. Add your JID including the domain, e.g. your_name@jabber.org." required: true @@ -61,7 +61,7 @@ verify: type: boolean default: true room: - description: Room's name (e.g., example@conference.jabber.org). If set, send a message to chatroom instead of the recipient. + description: "Room's name (e.g., example@conference.jabber.org). If set, send a message to chatroom instead of the recipient." required: false type: string {% endconfiguration %} @@ -74,4 +74,120 @@ room: All Jabber IDs (JID) must include the domain. Make sure that the password matches the account provided as sender. -To use notifications, please see the [getting started with automation page](/getting-started/automation/). +You can send text messages and images as well as other files through Jabber. + +### {% linkable_title Jabber Text Message %} + +Here are some examples on how to set up a script, that can be run from an automation. + +Number 1 shows a classical, text-only message. The Title is optional, although if omitted, +`Home-Assistant` will be set. To keep it empty set it to `""`. + +```yaml +# Example script.yaml entry +1_send_jabber_message: + alias: "Text only Jabber message" + sequence: + - service: notify.jabber # from notify.NOTIFIER_NAME + data: + title: "Optional Title" + message: "My funny or witty message" +``` + +### {% linkable_title Jabber Image Message %} + +You can send images or files from locally stored files or remote web locations via Jabber's HTTP Upload feature. +To send files and images, your jabber server must support [XEP_0363](https://xmpp.org/extensions/xep-0363.html). + +

+Be aware that images are uploaded onto the Jabber server of your provider. They reside there un-encrypted and could be accessed by the server admins. Usually images are deleted after a few days. +
+Home-Assistant supports TLS encryption to ensure transport encryption. TLS is enforced by default. You can disable it with the [`tls`](#tls) flag -- which is not recommended. +

+ +Number 2 sends only an image, retrieved from the URL. The TLS connection to get the image is also not verified (use with caution). + +```yaml +# Example script.yaml entry +2_send_jabber_message_with_image_url: + alias: "Send Image via Jabber from website" + sequence: + - service: notify.jabber + data: + title: "" + message: "" + data: + url: "https://www.graz.at:8443/webcam_neu/getimg.php" + verify: false +``` + +Number 3 sends an image from a local path. + +```yaml +# Example script.yaml entry +3_send_jabber_message_with_local_image_path: + alias: "Send Image via Jabber from local file" + sequence: + - service: notify.jabber + data: + title: "" + message: "" + data: + path: "/home/homeassistant/super_view.jpg" +``` + +### {% linkable_title Jabber File Message %} + + +Number 4 sends a text-file, retrieved from Github, renamed to `Hass_Cheatsheet.txt` to be viewable on a mobile Android device, as most don't offer any application to view `.md` files. Optionally you can add a timeout for the HTTP upload in seconds. + +```yaml +# Example script.yaml entry +4_send_jabber_message_with_file: + alias: "Send text file via Jabber" + sequence: + - service: notify.jabber + data: + title: "" + message: "" + data: + url: "https://raw.githubusercontent.com/arsaboo/homeassistant-config/master/HASS%20Cheatsheet.md" + path: "Hass_Cheatsheet.txt" + timeout: 10 +``` + +### {% linkable_title Templating %} + +Number 5 sends an image retrieved from a URL, and an additional text message with `title` and `message`. + +```yaml +# Example script.yaml entry +5_send_jabber_message_with_image_and_text: + alias: "Send Image and Text via Jabber" + sequence: + - service: notify.jabber + data: + title: "The Time is now" + message: "{% raw %} {{ {% endraw %}now(){% raw %} }} {% endraw %}, templating works as well..." + data: + url: "https://github.com/home-assistant/home-assistant.io/raw/next/source/images/favicon-192x192.png" +``` + +Number 6 sends an image from a templated URL. + +```yaml +# Example script.yaml entry +6_send_jabber_message_with_image_from_url_template: + alias: "Send Image from template URL via Jabber" + sequence: + - service: notify.jabber + data: + title: "" + message: "" + data: + url_template: "https://www.foto-webcam.eu/webcam/dornbirn/{% raw %}{{ now().year }}/{{ '%02d' % now().month }}/{{ '%02d' % now().day }}/{{ '%02d' % now().hour }}{{ (now().minute + 58) % 60 // 10}}{% endraw %}0_hd.jpg" +``` + +The possible source of a file is prioritized and only one will be picked up. `url_template` has the hightest priority; next is `url` then `path_template` and finally if none of them are defined `path` would be used. `path` will be used to eliminate file extension guessing for unknown URL downloads. Only the file extension will be left, as Home Assistant changes the filename to a random string for added privacy. + +To find out more about notifications, please see the [getting started with automation page](/getting-started/automation/). From 7156cef2dcb0618220a9f44878cf6d8e00944464 Mon Sep 17 00:00:00 2001 From: Dav0815 <35415680+Dav0815@users.noreply.github.com> Date: Mon, 5 Nov 2018 18:46:01 +1100 Subject: [PATCH 04/83] Add destination and icon; few more samples (#7365) * Add destination and icon; few more samples * Minor changes --- .../_components/sensor.transport_nsw.markdown | 68 ++++++++++++++++--- 1 file changed, 59 insertions(+), 9 deletions(-) diff --git a/source/_components/sensor.transport_nsw.markdown b/source/_components/sensor.transport_nsw.markdown index 9ddf794d069..8296ffdedea 100644 --- a/source/_components/sensor.transport_nsw.markdown +++ b/source/_components/sensor.transport_nsw.markdown @@ -14,15 +14,19 @@ ha_release: 0.81 --- -The `transport_nsw` sensor will give you the time until the next departure from a Transport NSW stop (bus, train or ferry). +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. -Get your free API key from [Transport NSW](https://opendata.transport.nsw.gov.au/). +## {% linkable_title Setup %} -In order to find the stop id, just go to Google maps and click on the bus/train/ferry stop. It will give you there the stop ID. +Prerequisite is a free API key from [Transport NSW](https://opendata.transport.nsw.gov.au/). -You can define a bus line, but if you don’t do it, the sensor will pick up the next stop event from any line servicing this stop. +In order to find your stop id, go to Google maps and click on any bus/train/ferry stop. The pop up window shows the stop ID underneath the station name. For train stations the easist way to get a stop id for a platform is through [Transport NSW Info](https://transportnsw.info/). -Then add the data to your `configuration.yaml` file as shown in the example: +As a default the sensor picks up the next mode of transport leaving from a stop id. + +## {% linkable_title Configuration %} + +To enable the sensor, add the following lines to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -34,15 +38,19 @@ sensor: {% configuration %} api_key: - description: Your API key for Open Data Transport NSW + description: Your API key for Open Data Transport NSW. required: true type: string stop_id: - description: The ID of the stop to get the information for + description: The ID of the stop to get the information for. required: true type: string route: - description: Only show a single bus route at the stop. This is the same as the bus number, e.g., `83` + description: Filter on bus route at the stop. This is the same as the bus number, e.g., `83`. + required: false + type: string +destination: + description: Useful for ferry or train stops to filter the destination of the sensor, e.g. `Circular Quay`. required: false type: string name: @@ -51,4 +59,46 @@ name: type: string {% endconfiguration %} -The public information is coming from [Transport NSW](https://opendata.transport.nsw.gov.au/). +The public information is provided from [Transport NSW](https://opendata.transport.nsw.gov.au/). + +## {% linkable_title Examples %} + +More example configurations for bus or ferry. + +```yaml +# Example bus route configuration.yaml entry +sensor: + - platform: transport_nsw + name: 'Bus' + stop_id: '209516' + route: '199' + api_key: 'YOUR API KEY' +``` + +```yaml +# Example ferry configuration.yaml entry +sensor: + - platform: transport_nsw + name: 'Ferry' + stop_id: '10102008' + destination: 'Circular Quay' + api_key: 'YOUR API KEY' +``` + +The sensor returns n/a if no stop event is found within the next 24h. A `template` sensor can help building a more meaninful string. + +{% raw %} +```yaml +# Sample template sensor +- platform: template + sensors: + busmonitor: + friendly_name: "Bus Mon 199" + value_template: >- + {% if is_state_attr('sensor.bus', 'due', 'n/a') %} + No schedule found + {% else %} + {{ states.sensor.bus.attributes.route }} in {{ states.sensor.bus.attributes.due }}m ({{ states.sensor.bus.attributes.delay }}) + {% endif %} +``` +{% endraw %} From 8b007bea4ef7385498018ea5d8fc266ecb07982b Mon Sep 17 00:00:00 2001 From: Marcel Hoppe Date: Mon, 5 Nov 2018 13:15:56 +0100 Subject: [PATCH 05/83] add doc for the reconnect service and example for an automatic reconnect on ip change (#7347) --- source/_components/hangouts.markdown | 36 ++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/source/_components/hangouts.markdown b/source/_components/hangouts.markdown index 22faaa78aaf..aa906625b81 100644 --- a/source/_components/hangouts.markdown +++ b/source/_components/hangouts.markdown @@ -186,3 +186,39 @@ 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. + +| Service data attribute | Optional | Description | +|------------------------|----------|--------------------------------------------------| +| | | | + +## {% linkable_title Advanced %} + +### {% linkable_title Automatic reconnect after ip change %} + +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. + +```yaml +sensor: + - platform: rest + resource: https://api.ipify.org?format=json + name: External IP + value_template: '{{ value_json.ip }}' + scan_interval: 10 + +automation: + - alias: Reconnect Hangouts + trigger: + - entity_id: sensor.external_ip + platform: state + condition: + - condition: template + value_template: '{{ trigger.from_state.state != trigger.to_state.state }}' + - condition: template + value_template: '{{ not is_state("sensor.external_ip", "unavailable") }}' + action: + - service: hangouts.reconnect +``` From 897935a037de5ac7d67096cf06a76b57972fce81 Mon Sep 17 00:00:00 2001 From: Jason Hunter Date: Mon, 5 Nov 2018 09:32:47 -0500 Subject: [PATCH 06/83] TensorFlow image_processing component (#7083) * initial documentation for image_processing.tensorflow * add raw tag to fix template errors * changes per review * update documentation to reflect latest component changes and pull script out to gist * do not use deps folder as default, as it should only be managed by HA. Update to have tensorflow in root config directory * make gist a link, remove additional deps references * add additional cameras to example config, shorten model selection section, add warning at top for Hass.io * Update warning adding further Hassbian instructions * changes per PR review * fix init location in docs * fix spelling of raspberry * Update image_processing.tensorflow.markdown * Minor changes * Add class * add link to tensorflow install site for additional installation options --- .../image_processing.tensorflow.markdown | 163 ++++++++++++++++++ source/images/supported_brands/tensorflow.png | Bin 0 -> 23652 bytes 2 files changed, 163 insertions(+) create mode 100644 source/_components/image_processing.tensorflow.markdown create mode 100644 source/images/supported_brands/tensorflow.png diff --git a/source/_components/image_processing.tensorflow.markdown b/source/_components/image_processing.tensorflow.markdown new file mode 100644 index 00000000000..81c9324007b --- /dev/null +++ b/source/_components/image_processing.tensorflow.markdown @@ -0,0 +1,163 @@ +--- +layout: page +title: "TensorFlow" +description: "Detect and recognize objects with TensorFlow." +date: 2018-10-24 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: tensorflow.png +ha_category: Image Processing +ha_iot_class: "Local Polling" +ha_release: 0.82 +--- + +The `tensorflow` image processing platform allows you to detect and recognize objects in a camera image using [TensorFlow](https://www.tensorflow.org/). The state of the entity is the number of objects detected, and recognized objects are listed in the `summary` attribute along with quantity. The `matches` attribute provides the confidence `score` for recognition and the bounding `box` of the object for each detection category. + +

+ The following packages must be installed on Hassbian after following the setup for the component to work: + `$ sudo apt-get install libatlas-base-dev libopenjp2-7 libtiff5` +

+ +## {% linkable_title Setup %} + +You need to install the `tensorflow` Python packages with: `$ pip3 install tensorflow`. The wheel is not available for all platforms. See [the official install guide](https://www.tensorflow.org/install/) for other options. Hass.io has this package pre-installed. + +This component requires files to be downloaded, compiled on your computer, and added to the Home Assistant configuration directory. These steps can be performed using the sample script at [this gist](https://gist.github.com/hunterjm/6f9332f92b60c3d5e448ad936d7353c3). Alternatively, if you wish to perform the process manually, the process is as follows: + +- Clone [tensorflow/models](https://github.com/tensorflow/models/tree/master/research/object_detection) +- Compile protobuf models located in `research/object_detection/protos` with `protoc` +- Create the following directory structure inside your config directory: + +```bash + |- {config_dir} + | - tensorflow/ + |- object_detection/ + |- __init__.py +``` + +- Copy required object_detection dependancies to the `object_detection` folder inside of the `tensorflow` folder: + + - `research/object_detection/data` + - `research/object_detection/utils` + - `research/object_detection/protos` + +## {% linkable_title Model Selection %} + +Lastly, it is time to pick a model. It is recommended to start with one of the COCO models available in the [Model Detection Zoo](https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md). + +The trade-off between the different models is accuracy vs speed. Users with a decent CPU should start with the `faster_rcnn_inception_v2_coco` model. If you are running on an ARM device like a Raspberry Pi, start with the `ssd_mobilenet_v2_coco` model. + +Whichever model you choose, download it and place the `frozen_inference_graph.pb` file in the `tensorflow` folder in your configuration directory. + +## {% linkable_title Configuration %} + +To enable this platform in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +image_processing: + - platform: tensorflow + source: + - entity_id: camera.local_file + model: + graph: /home/homeassistant/.homeassistant/tensorflow/frozen_inference_graph.pb +``` + +{% configuration %} +source: + description: The list of image sources. + required: true + type: map + 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 +file_out: + description: A [template](/docs/configuration/templating/#processing-incoming-data) for the component to save processed images including bounding boxes. `camera_entity` is available as the `entity_id` string of the triggered source camera. + required: false + type: list +model: + description: Information about the TensorFlow model. + required: true + type: map + keys: + graph: + description: Full path to `frozen_inference_graph.pb`. + required: true + type: string + labels: + description: Full path to a `*label_map.pbtext`. + required: false + type: string + default: tensorflow/object_detection/data/mscoco_label_map.pbtxt + model_dir: + description: Full path to tensorflow models directory. + required: false + type: string + default: /tensorflow inside config + area: + description: Custom detection area. Only objects fully in this box will be reported. Top of image is 0, bottom is 1. Same left to right. + required: false + type: map + keys: + top: + description: Top line defined as % from top of image. + required: false + type: float + default: 0 + left: + description: Left line defined as % from left of image. + required: false + type: float + default: 0 + bottom: + description: Bottom line defined as % from top of image. + required: false + type: float + default: 1 + right: + description: Right line defined as % from left of image. + required: false + type: float + default: 1 + categories: + description: List of categories to include in object detection. Can be seen in the file provided to `labels`. + type: list + required: false +{% endconfiguration %} + +`categories` can also be defined as dictionary providing an `area` for each category as seen in the advanced configuration below: + +```yaml +# Example advanced configuration.yaml entry +image_processing: + - platform: tensorflow + source: + - entity_id: camera.driveway + - entity_id: camera.backyard + file_out: + - "/tmp/{% raw %}{{ camera_entity.split('.')[1] }}{% endraw %}_latest.jpg" + - "/tmp/{% raw %}{{ camera_entity.split('.')[1] }}_{{ now().strftime('%Y%m%d_%H%M%S') }}{% endraw %}.jpg" + model: + graph: /home/homeassistant/.homeassistant/tensorflow/frozen_inference_graph.pb + categories: + - category: person + area: + # Exclude top 10% of image + top: 0.1 + # Exclude right 15% of image + right: 0.85 + - car + - truck +``` + +## {% linkable_title Optimising resources %} + +[Image processing components](https://www.home-assistant.io/components/image_processing/) process the image from a camera at a fixed period given by the `scan_interval`. This leads to excessive processing if the image on the camera hasn't changed, as the default `scan_interval` is 10 seconds. You can override this by adding to your config `scan_interval: 10000` (setting the interval to 10,000 seconds), and then call the `image_processing.scan` service when you actually want to perform processing. diff --git a/source/images/supported_brands/tensorflow.png b/source/images/supported_brands/tensorflow.png new file mode 100644 index 0000000000000000000000000000000000000000..e7208340a2c3ab68f163f407eb2f088f38a0dc9b GIT binary patch literal 23652 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 Hu0mjfx(@i{ literal 0 HcmV?d00001 From d3935c1390f6465278860493e3a616ca3cebe831 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 5 Nov 2018 16:54:40 +0100 Subject: [PATCH 07/83] Remove links to helper scripts (#7372) * Remove links to helper scripts * Delete db_migrator.markdown * Delete influxdb_migrator.markdown * Delete influxdb_import.markdown * Update docs_navigation.html --- source/_components/influxdb.markdown | 5 -- source/_docs/tools/db_migrator.markdown | 71 ------------------- source/_docs/tools/influxdb_import.markdown | 63 ---------------- source/_docs/tools/influxdb_migrator.markdown | 39 ---------- source/_includes/asides/docs_navigation.html | 3 - 5 files changed, 181 deletions(-) delete mode 100644 source/_docs/tools/db_migrator.markdown delete mode 100644 source/_docs/tools/influxdb_import.markdown delete mode 100644 source/_docs/tools/influxdb_migrator.markdown diff --git a/source/_components/influxdb.markdown b/source/_components/influxdb.markdown index 4052506b526..5ff4d8e38e4 100644 --- a/source/_components/influxdb.markdown +++ b/source/_components/influxdb.markdown @@ -137,11 +137,6 @@ component_config_glob: required: false {% endconfiguration %} -## {% linkable_title Helper scripts %} - -- [Helper script `influxdb_import`](/docs/tools/influxdb_import/) -- [Helper script `db_migrator`](/docs/tools/db_migrator/) (only used for [Home Assistant 0.36](/blog/2017/01/14/iss-usps-images-packages/#influxdb-export)) - ## {% linkable_title Examples %} ### {% linkable_title Full configuration %} diff --git a/source/_docs/tools/db_migrator.markdown b/source/_docs/tools/db_migrator.markdown deleted file mode 100644 index 68127935ae3..00000000000 --- a/source/_docs/tools/db_migrator.markdown +++ /dev/null @@ -1,71 +0,0 @@ ---- -layout: page -title: "db_migrator" -description: "Script to migrate data in an InfluxDB database" -release_date: 2017-02-23 11:00:00 -sidebar: true -comments: false -sharing: true -footer: true ---- - -

-This script was only use for 0.36 release cycle! -

- -Starting with 0.36 the [InfluxDB](omponents/influxdb/) component has a new schema to store values in the InfluxDB databases. - -- There will no longer be any tags/fields named `time`. -- All numeric fields (int/float/bool) will be stored as float inside InfluxDB database. -- All string fields corresponding to state attributes will be renamed as `FIELDNAME_str`, where `FIELDNAME` is the state attribute, to avoid type conflicts. -- All string fields corresponding to a state will be renamed as `state` (former value). -- Fields named `value` will always be stored as float. -- Fields named `state` will always be stored as string. - -## {% linkable_title Migration script %} - -If you need to migrate your database, you may require to run the `influxdb_migrator` script. Run the script after upgrade to 0.36 but before the first regular start of `hass` version 0.36. - -These are the steps the script will perform: - -1. Create a new database (called `DBNAME__old`) to store old data. -2. Copy data from `DBNAME` database to `DBNAME__old` database. -3. Empty `DBNAME` database (using `drop` then `create`). `DBNAME` database is now considered as the new database. -4. For each measurement of `DBNAME__old` database: - 1. Read all points from the current measurement (in groups of 1000 points by default) and convert them. - 2. Send group of points to `DBNAME` database. -5. Delete the `DBNAME__old` database if needed. - -Example to run the script: - -```bash -$ hass --script influxdb_migrator \ - -H IP_INFLUXDB_HOST -u INFLUXDB_USERNAME -p INFLUXDB_PASSWORD \ - -d INFLUXDB_DB_NAME -``` -Script arguments: - -``` -required arguments: - -d dbname, --dbname dbname InfluxDB database name - -optional arguments: - -h, --help show this help message and exit - -H host, --host host InfluxDB host address - -P port, --port port InfluxDB host port - -u username, --username username - InfluxDB username - -p password, --password password - InfluxDB password - -s step, --step step How many points to migrate at the same time - -o override_measurement, --override-measurement override_measurement - Store all your points in the same measurement - -D, --delete Delete old database -``` - -- If you run the script with only the `-h` option, you will get a help printout with a short explanation of the different options. -- The host option defaults to `'127.0.0.1'`. -- The port option defaults to `8086`. -- You should be able to omit username and password if InfluxDB authentication is disabled, which it is by default. -- The step option defaults to `1000`. - diff --git a/source/_docs/tools/influxdb_import.markdown b/source/_docs/tools/influxdb_import.markdown deleted file mode 100644 index 8ff3d85e7b8..00000000000 --- a/source/_docs/tools/influxdb_import.markdown +++ /dev/null @@ -1,63 +0,0 @@ ---- -layout: page -title: "influxdb_import" -description: "Script to import data into an InfluxDB database" -release_date: 2017-02-23 11:00:00 -sidebar: true -comments: false -sharing: true -footer: true ---- - -If you want to import all the recorded data from your recorder database you can use the data import script. It will read all your state_change events from the database and add them as data-points to the InfluxDB. You can specify the source database either by pointing the `--config` option to the config directory which includes the default SQLite database or by giving a sqlalchemy connection URI with `--uri`. - -The writing to InfluxDB is done in batches that can be changed with `--step`. - -You can control, which data is imported by using the command line options `--exclude_entities` and `--exclude_domains`. Both get a comma separated list of either entity-ids or domain names that are excluded from the import. - -To test what gets imported you can use the `--simulate` option, which disables the actual write to the InfluxDB instance. This only writes the statistics how much points would be imported from which entity. - -Example to run the script: - -```bash -$ hass --script influxdb_import --config CONFIG_DIR \ - -H IP_INFLUXDB_HOST -u INFLUXDB_USERNAME -p INFLUXDB_PASSWORD \ - --dbname INFLUXDB_DB_NAME --exclude_domains automation,configurator -``` -Script arguments: - -``` -required arguments: - -d dbname, --dbname dbname - InfluxDB database name - -optional arguments: - -h, --help show this help message and exit - -c path_to_config_dir, --config path_to_config_dir - Directory that contains the Home Assistant - configuration - --uri URI Connect to URI and import (if other than default - sqlite) eg: mysql://localhost/homeassistant - - -H host, --host host InfluxDB host address - -P port, --port port InfluxDB host port - -u username, --username username - InfluxDB username - -p password, --password password - InfluxDB password - -s step, --step step How many points to import at the same time - -t tags, --tags tags Comma separated list of tags (key:value) for all - points - -D default_measurement, --default-measurement default_measurement - Store all your points in the same measurement - -o override_measurement, --override-measurement override_measurement - Store all your points in the same measurement - -e exclude_entities, --exclude_entities exclude_entities - Comma separated list of excluded entities - -E exclude_domains, --exclude_domains exclude_domains - Comma separated list of excluded domains - -S, --simulate Do not write points but simulate preprocessing - and print statistics -``` - - diff --git a/source/_docs/tools/influxdb_migrator.markdown b/source/_docs/tools/influxdb_migrator.markdown deleted file mode 100644 index df8e83e4058..00000000000 --- a/source/_docs/tools/influxdb_migrator.markdown +++ /dev/null @@ -1,39 +0,0 @@ ---- -layout: page -title: "influxdb_migrator" -description: "Script to convert an old-structure Influx database to a new one." -release_date: 2017-02-23 11:00:00 -sidebar: true -comments: false -sharing: true -footer: true ---- - -Script to convert an old-structure Influx database to a new one. - -Example to run the script: - -```bash -$ hass --script influxdb_migrator -H IP_INFLUXDB_HOST \ - -u INFLUXDB_USERNAME -p INFLUXDB_PASSWORD \ - --dbname INFLUXDB_DB_NAME -``` -Script arguments: - -``` -optional arguments: - -h, --help show this help message and exit - -d dbname, --dbname dbname - InfluxDB database name - -H host, --host host InfluxDB host address - -P port, --port port InfluxDB host port - -u username, --username username - InfluxDB username - -p password, --password password - InfluxDB password - -s step, --step step How many points to migrate at the same time - -o override_measurement, --override-measurement override_measurement - Store all your points in the same measurement - -D, --delete Delete old database -``` - diff --git a/source/_includes/asides/docs_navigation.html b/source/_includes/asides/docs_navigation.html index 84f70a61751..c6a7a752eb0 100644 --- a/source/_includes/asides/docs_navigation.html +++ b/source/_includes/asides/docs_navigation.html @@ -96,10 +96,7 @@
  • {% active_link /docs/tools/benchmark/ benchmark %}
  • {% active_link /docs/tools/check_config/ check_config %}
  • {% active_link /docs/tools/credstash/ credstash %}
  • -
  • {% active_link /docs/tools/db_migrator/ db_migrator %}
  • {% active_link /docs/tools/ensure_config/ ensure_config %}
  • -
  • {% active_link /docs/tools/influxdb_import/ influxdb_import %}
  • -
  • {% active_link /docs/tools/influxdb_migrator/ influxdb_migrator %}
  • {% active_link /docs/tools/keyring/ keyring %}
  • From 2df8da55cde6fb94c5868be29a1b021b34b6500d Mon Sep 17 00:00:00 2001 From: quthla Date: Mon, 5 Nov 2018 21:36:59 +0100 Subject: [PATCH 08/83] Add scenes as switches HomeKit (#7371) --- source/_components/homekit.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown index d87844743f3..790ff6cca93 100644 --- a/source/_components/homekit.markdown +++ b/source/_components/homekit.markdown @@ -260,7 +260,7 @@ The following components are currently supported: | Component | Type Name | Description | | --------- | --------- | ----------- | | alarm_control_panel | SecuritySystem | All security systems. | -| automation / input_boolean / remote / script | Switch | All represented as switches. | +| automation / input_boolean / remote / scene / script | Switch | All represented as switches. | | binary_sensor | Sensor | Support for `co2`, `door`, `garage_door`, `gas`, `moisture`, `motion`, `occupancy`, `opening`, `smoke` and `window` device classes. Defaults to the `occupancy` device class for everything else. | | climate | Thermostat | All climate devices. | | cover | GarageDoorOpener | All covers that support `open` and `close` and have `garage` as their `device_class`. | From df9218479ccf4e82146f002157379d170dbe686c Mon Sep 17 00:00:00 2001 From: Robert Svensson Date: Tue, 6 Nov 2018 10:35:01 +0100 Subject: [PATCH 09/83] deCONZ is now fully IQS Platinum (#7328) When PRs - https://github.com/home-assistant/home-assistant/pull/18106 - https://github.com/home-assistant/home-assistant/pull/18116 are integrated deCONZ is fully IQS Platinum compliant. --- source/_components/deconz.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/deconz.markdown b/source/_components/deconz.markdown index ab6c32740f1..37d1e7584ab 100644 --- a/source/_components/deconz.markdown +++ b/source/_components/deconz.markdown @@ -11,6 +11,7 @@ logo: deconz.jpeg ha_category: Hub ha_release: "0.61" ha_iot_class: "Local Push" +ha_qa_scale: platinum --- [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. From c171d83b0f807974c7a707df0f174d7adf1e06d9 Mon Sep 17 00:00:00 2001 From: Georgi Kirichkov Date: Tue, 6 Nov 2018 15:20:16 +0200 Subject: [PATCH 10/83] Fix comments and squash commits (#6863) --- .../device_tracker.owntracks_http.markdown | 38 +++++++++++++++++-- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/source/_components/device_tracker.owntracks_http.markdown b/source/_components/device_tracker.owntracks_http.markdown index 64df68dd04e..6354553f1ea 100644 --- a/source/_components/device_tracker.owntracks_http.markdown +++ b/source/_components/device_tracker.owntracks_http.markdown @@ -21,22 +21,38 @@ To integrate Owntracks tracking via HTTP in Home Assistant, add the following se # Example configuration.yaml entry device_tracker: - platform: owntracks_http + webhook_id: long-random-webhook-url ``` -For configuration options and usage instructions, read the documentation for the [OwnTracks platform](/components/device_tracker.owntracks/). +The value for `webhook_id` should be sufficiently long and random, as it is the only form of "authentication" that is used. For this reason, it is highly advisable to be randomly generated. + +To generate a `webhook_id` you can use the following command on your Raspberry Pi: + +```bash +python3 -c "import binascii;import os;print(binascii.hexlify(os.urandom(32)).decode('ascii'))" +``` + +{% configuration %} +webhook_id: + description: Set the URL suffix used in the webhook component + required: true + type: string +{% endconfiguration %} + +For further configuration options and usage instructions, read the documentation for the [OwnTracks platform](/components/device_tracker.owntracks/). ## {% linkable_title Configuring OwnTracks to submit data via HTTP %} Open OwnTracks and go to Connection preferences: - Mode: Select **Private HTTP** - - Host: [Home Assistant URL]:[port]/api/owntracks/[your name]/[device name] - - Identification: Turn **Authentication** on, username `homeassistant` and password is your API password that you use to login to Home Assistant. + - Host: [Home Assistant URL]:[port]/api/webhook/[your-random-webhook-url]?u=[your name]&d=[device name] -Host example: If I host my Home Assistant at `https://example.duckdns.org`, my name is Paulus and my phone is a Pixel I would set the host to be `https://example.duckdns.org/api/owntracks/paulus/pixel`. This will result in an entity with an ID of `device_tracker.paulus_pixel`. You can pick any name for the user and the device. +Host example: If I host my Home Assistant at `https://example.duckdns.org`, my name is Paulus, my phone is a Pixel and I configured the value for `webhook_id` to be `long-random-webhook-url` I would set the host to be `https://example.duckdns.org/api/webhook/long-random-webhook-url?u=paulus&d=pixel`. This will result in an entity with an ID of `device_tracker.paulus_pixel`. You can pick any name for the user and the device. Since the battery data is available as an attribute of the device tracker entity, it can be tracked with a [`template` sensor](/components/sensor.template/). + {% raw %} ```yaml # Example configuration.yaml entry @@ -50,3 +66,17 @@ sensor: device_class: battery ``` {% endraw %} + + +## {% linkable_title Setting up on Android %} + +The Android OwnTracks app sends more data than its iOS counterpart and it is possible to configure it using the `Identification` tab in `Preferences`, setting **Username** to your name, and **Device ID** to your device's name. Password field may be left blank. + +Elaborating on the general example above: + + 1. Identification: Turn **Authentication** on, + 2. Set **Username** to `paulus` and leave the password blank or put any string in it. + 3. Set Device ID to `pixel` + 4. In the Host tab enter simply `https://example.duckdns.org/api/webhook/long-random-webhook-url` + + From 50bf005ea4e508d29cf01d9bf5cebeec61967fd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Tue, 6 Nov 2018 19:50:33 +0100 Subject: [PATCH 11/83] Add documentation for ruter sensor. (#7379) * Add documentation for ruter sensor. * fix missing link * Fix missing : * Change stopid to stop_id --- source/_components/sensor.ruter.markdown | 53 +++++++++++++++++++++++ source/images/supported_brands/ruter.png | Bin 0 -> 36006 bytes 2 files changed, 53 insertions(+) create mode 100644 source/_components/sensor.ruter.markdown create mode 100644 source/images/supported_brands/ruter.png diff --git a/source/_components/sensor.ruter.markdown b/source/_components/sensor.ruter.markdown new file mode 100644 index 00000000000..c24765d3663 --- /dev/null +++ b/source/_components/sensor.ruter.markdown @@ -0,0 +1,53 @@ +--- +layout: page +title: "Ruter Public Transport" +description: "Instructions on how to integrate departure times from Ruter within Home Assistant." +date: 2018-11-05 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: ruter.png +ha_category: Transport +ha_iot_class: "Cloud Polling" +ha_release: "0.83" +--- + +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. + +To find the `stop_id` you need to visit the [Ruter][ruter] site and search for your stop. +In the URL after you have searched, there will be an ID right after the `Stoppested/` in a format like this `(2190400)`, the numbers there is what you need to put in the `stop_id:` configuration option. + +Add the data to your `configuration.yaml` file as shown in the example: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: ruter + stop_id: STOPID +``` + +{% configuration %} +stop_id: + description: The stop id for the stop you want to monitor. + required: true + type: string +destination: + description: A destination name to show only departures that has this as the final stop. + required: false + type: string +offset: + description: An offset for the next departure time. + required: false + default: 0 + type: integer +name: + description: Name of the sensor. + required: false + type: string +{% endconfiguration %} + +[ruter]: https://ruter.no/reiseplanlegger/Stoppested +[ruter-api]: http://reisapi.ruter.no/Help \ No newline at end of file diff --git a/source/images/supported_brands/ruter.png b/source/images/supported_brands/ruter.png new file mode 100644 index 0000000000000000000000000000000000000000..0cbb52f754a63faf5b802627f2fd1bdd056ec6c5 GIT binary patch literal 36006 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 Date: Tue, 6 Nov 2018 19:53:20 +0100 Subject: [PATCH 12/83] Update Luftdaten docs (#7393) * Update Luftdaten docs * Add IQS --- source/_components/luftdaten.markdown | 108 +++++++++++++++++++ source/_components/sensor.luftdaten.markdown | 67 +----------- 2 files changed, 110 insertions(+), 65 deletions(-) create mode 100644 source/_components/luftdaten.markdown diff --git a/source/_components/luftdaten.markdown b/source/_components/luftdaten.markdown new file mode 100644 index 00000000000..b614d523b90 --- /dev/null +++ b/source/_components/luftdaten.markdown @@ -0,0 +1,108 @@ +--- +layout: page +title: "Luftdaten" +description: "Instructions on how to setup Luftdaten sensors in Home Assistant." +date: 2018-11-05 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: luftdaten.png +ha_category: Health +ha_release: 0.82 +ha_iot_class: "Cloud Polling" +ha_qa_scale: gold +--- + +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. + +## {% linkable_title Setup %} + +- 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. + +## {% linkable_title Manual Configuration %} + +To enable this sensor, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +luftdaten: +``` + +{% configuration %} +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 + default: false + type: boolean +scan_interval: + description: the frequency (in seconds) between data updates. + required: false + type: integer + default: 1800 +sensors: + description: The sensor-related configuration options. + required: false + type: map + keys: + monitored_conditions: + description: A list of conditions you want to monitor. + required: true + type: list + keys: + P1: + description: Show the particle sensors (particles 10 microns and below). + P2: + description: Show the particle sensors (particles 2.5 microns and below). + temperature: + description: Display the temperature from the sensor. + humidity: + description: Display the humidity from the sensor. + pressure: + description: Display the pressure from the sensor. +{% endconfiguration %} + +

    +If you set `show_on_map` to `true` then the location attributes are named `latitude` and `longitude`. The default name of the location attributes is `lat` and `long` to avoid showing them on the map. +

    + +Not all sensors provide all conditions. Also, it's possible that the sensor values are not available all the time. To check what a sensor is publishing use `curl`: + +```bash +$ 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: + sensor_id: 155 + show_on_map: true + sensors: + monitored_conditions: + - temperature + - humidity +`` diff --git a/source/_components/sensor.luftdaten.markdown b/source/_components/sensor.luftdaten.markdown index b368a6d8e9b..86e59b5e006 100644 --- a/source/_components/sensor.luftdaten.markdown +++ b/source/_components/sensor.luftdaten.markdown @@ -11,72 +11,9 @@ 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. -## {% linkable_title Setup %} - -- 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 %} - -To enable this sensor, add the following lines to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: luftdaten - sensorid: 3123 - monitored_conditions: - - P1 - - P2 - - platform: luftdaten - sensorid: 155 - monitored_conditions: - - temperature - - humidity -``` - -{% configuration %} - sensorid: - 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 - monitored_conditions: - description: A list of conditions you want to monitor. - required: true - type: list - keys: - P1: - description: Show the particle sensors (particles 10 microns and below). - P2: - description: Show the particle sensors (particles 2.5 microns and below). - temperature: - description: Display the temperature from the sensor. - humidity: - description: Display the humidity from the sensor. - pressure: - description: Display the pressure from the sensor. - show_on_map: - description: Option to show the position of the sensor on the map. - required: optional - default: false - type: boolean -{% endconfiguration %} - -

    -If you set `show_on_map` to `True` then the location attributes are named `latitude` and `longitude`. The default name of the location attributes is `lat` and `long` to avoid showing them on the map. -

    - -Not all sensors provide all conditions. Also, it's possible that the sensor values are not available all the time. To check what a sensor is publishing use `curl`: - -```bash -$ curl https://api.luftdaten.info/v1/sensor/[sensorid]/ -``` +You must have the [`luftdaten` component](/components/luftdaten/) configured to use this platform. After configuring that component, sensors will automatically appear. From d14db798dbba401e2d02eae3d04dae768ea99ed7 Mon Sep 17 00:00:00 2001 From: Matt Schmitt Date: Tue, 6 Nov 2018 17:26:47 -0500 Subject: [PATCH 13/83] Add services to set/update and cancel Nest ETA (#7163) * Reformat Nest structure services * :pencil2: Tweaks --- source/_components/nest.markdown | 123 ++++++++++++++++++++++--------- 1 file changed, 90 insertions(+), 33 deletions(-) diff --git a/source/_components/nest.markdown b/source/_components/nest.markdown index e935935d043..60a2a1e0824 100644 --- a/source/_components/nest.markdown +++ b/source/_components/nest.markdown @@ -70,53 +70,110 @@ structure: type: list {% endconfiguration %} -### {% linkable_title Services %} +### {% linkable_title Service `set_away_mode` %} -Currently there is a single `nest.set_mode` service available to switch between -"away" and "home" modes. This service requires a `home_mode` param and has an -optional `structure` param. While setting "away" mode, an estimated arrival time -can also be set with `eta`, `eta_window`, and `trip_id` parameters. +You can use the service `nest/set_away_mode` to set the structure(s) to "Home" or "Away". -- **home_mode** (*Required*): `home` or `away` -- **structure** (*Optional*): Structure(s). Default apply to all structures connected with Home Assistant. -- **eta** (*Optional*): Estimated Time of Arrival from now. -- **eta_window** (*Optional*): ETA window (default is 1 minute). -- **trip_id** (*Optional*): Unique ID for the trip. Using an existing trip ID will update that trip's ETA. +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `away_mode` | no | String, must be `away` or `home`. +| `structure` | yes | String, will default to all configured Nest structures if not specified. +Examples: ```yaml # Example script to set away, no structure specified so will execute for all -set_nest_away: - sequence: - - service: nest.set_mode - data: - home_mode: away +script: + nest_set_away: + sequence: + - service: nest.set_away_mode + data: + away_mode: away ``` ```yaml # Example script to set home, structure specified -set_nest_home: - sequence: - - service: nest.set_mode - data: - home_mode: home - structure: - - Building +script: + nest_set_home: + sequence: + - service: nest.set_away_mode + data: + away_mode: home + structure: + - Apartment +``` + +### {% linkable_title Service `set_eta` %} + +You can use the service `nest/set_eta` to set or update the estimated time of arrival window. Calling this service will automatically set the structure(s) to "Away". Structures must have an associated Nest thermostat in order to use ETA function. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `eta` | no | Time period, estimated time of arrival from now. +| `eta_window` | yes | Time period, estimated time of arrival window. Default is 1 minute. +| `trip_id` | yes | String, unique ID for the trip. Default is auto-generated using a timestamp. Using an existing `trip_id` will update that trip's ETA. +| `structure` | yes | String, will default to all configured Nest structures if not specified. + +Examples: + +```yaml +# Example script to set ETA, no structure specified so will execute for all +script: + nest_set_eta: + sequence: + - service: nest.set_eta + data: + eta: 00:10:30 + trip_id: Leave Work ``` ```yaml -# Example script to set eta, structure specified -set_nest_eta: - sequence: - - service: nest.set_mode - data: - home_mode: away - structure: - - Building - eta: 00:10:30 - eta_window: 00:05 +# Example script to update ETA and specify window, structure specified +script: + nest_update_eta: + sequence: + - service: nest.set_eta + data: + eta: 00:11:00 + eta_window: 00:05 + trip_id: Leave Work + structure: + - Apartment ``` -{% linkable_title Troubleshooting %} +### {% linkable_title Service `cancel_eta` %} + +You can use the service `nest/cancel_eta` to cancel an existing estimated time of arrival window. Structures must have an associated Nest thermostat in order to use ETA function. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `trip_id` | no | String, unique ID for the trip. Using an existing `trip_id` will update that trip's ETA. +| `structure` | yes | String, will default to all configured Nest structures if not specified. + +Examples: + +```yaml +# Example script to cancel ETA, no structure specified so will execute for all +script: + nest_cancel_eta: + sequence: + - service: nest.cancel_eta + data: + trip_id: Leave Work +``` + +```yaml +# Example script to cancel ETA, structure specified +script: + nest_cancel_eta: + sequence: + - service: nest.cancel_eta + data: + trip_id: Leave Work + structure: + - Apartment +``` + +### {% 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. From 7f1251fc986b3efae3bb549be5f29f23325c6b8f Mon Sep 17 00:00:00 2001 From: Jorim Tielemans Date: Wed, 7 Nov 2018 08:29:26 +0100 Subject: [PATCH 14/83] Update alert.markdown (#7410) `{% raw %}`-tags were missing, changed boolean to lowercase, improved examples. --- source/_components/alert.markdown | 40 ++++++++++++++++++------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/source/_components/alert.markdown b/source/_components/alert.markdown index 5c97d5cf4a1..8b7690d43d8 100644 --- a/source/_components/alert.markdown +++ b/source/_components/alert.markdown @@ -42,8 +42,8 @@ alert: entity_id: input_boolean.garage_door state: 'on' repeat: 30 - can_acknowledge: True - skip_first: True + can_acknowledge: true + skip_first: true notifiers: - ryans_phone - kristens_phone @@ -103,7 +103,7 @@ notifiers: In this example, the garage door status (`input_boolean.garage_door`) is watched and this alert will be triggered when its status is equal to `on`. This indicates that the door has been opened. Because the `skip_first` option -was set to `True`, the first notification will not be delivered immediately. +was set to `true`, the first notification will not be delivered immediately. However, every 30 minutes, a notification will be delivered until either `input_boolean.garage_door` no longer has a state of `on` or until the alert is acknowledged using the Home Assistant frontend. @@ -125,15 +125,16 @@ provided by the `alert` component: ``` ```yaml -freshwater_temp_alert: - name: "Warning: I have detected a problem with the freshwater tank temperature" - entity_id: binary_sensor.freshwater_temperature_status - state: 'on' - repeat: 5 - can_acknowledge: true - skip_first: false - notifiers: - - john_phone_sms +alert: + freshwater_temp_alert: + name: "Warning: I have detected a problem with the freshwater tank temperature" + entity_id: binary_sensor.freshwater_temperature_status + state: 'on' + repeat: 5 + can_acknowledge: true + skip_first: false + notifiers: + - john_phone_sms ``` ### {% linkable_title Complex Alert Criteria %} @@ -146,12 +147,13 @@ disable the alert on certain days. Maybe the alert firing should depend on more than one input. For all of these situations, it is best to use the alert in conjunction with a `Template Binary Sensor`. The following example does that. +{% raw %} ```yaml binary_sensor: - platform: template sensors: motion_battery_low: - value_template: {% raw %}'{{ states.sensor.motion.attributes.battery < 15 }}'{% endraw %} + value_template: '{{ states.sensor.motion.attributes.battery < 15 }}' friendly_name: 'Motion battery is low' alert: @@ -163,6 +165,7 @@ alert: - ryans_phone - kristens_phone ``` +{% endraw %} This example will begin firing as soon as the entity `sensor.motion`'s `battery` attribute falls below 15. It will continue to fire until the battery attribute @@ -186,8 +189,8 @@ alert: - 15 - 30 - 60 - can_acknowledge: True # Optional, default is True - skip_first: True # Optional, false is the default + can_acknowledge: true # Optional, default is true + skip_first: true # Optional, false is the default notifiers: - ryans_phone - kristens_phone @@ -206,21 +209,24 @@ about the state of the entity. The following will show for a plant how to include the problem `attribute` of the entity. +{% raw %} ```yaml # Example configuration.yaml entry +alert: office_plant: name: Plant in office needs help entity_id: plant.plant_office state: 'problem' repeat: 30 - can_acknowledge: True - skip_first: True + can_acknowledge: true + skip_first: true message: "Plant {{ states.plant.plant_office }} needs help ({{ state_attr('plant.plant_office', 'problem') }})" done_message: Plant in office is fine notifiers: - ryans_phone - kristens_phone ``` +{% endraw %} The resulting message could be `Plant Officeplant needs help (moisture low)`. From e97237dfc8fe878114f75c790ecd1260405ecd6a Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 7 Nov 2018 08:32:33 +0100 Subject: [PATCH 15/83] Add raw --- source/_components/hangouts.markdown | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/source/_components/hangouts.markdown b/source/_components/hangouts.markdown index aa906625b81..aca2a7eaf78 100644 --- a/source/_components/hangouts.markdown +++ b/source/_components/hangouts.markdown @@ -105,6 +105,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: @@ -123,11 +124,13 @@ hangouts: intent_script: Ping: speech: - text: I know {% raw %}{{ states.hangouts.conversations.state }}{% endraw %} conversations + text: I know {{ states.hangouts.conversations.state }} conversations ``` +{% endraw %} This configuration will: + - Toggle the light in the given location in a specific conversation. - Return the conversations the bot know. @@ -144,6 +147,7 @@ The following configuration can handle the following sentences: - Change the lights to the color green - Change the lights to the color blue +{% raw %} ```yaml # Example configuration.yaml entry hangouts: @@ -151,7 +155,7 @@ hangouts: ColorLight: sentences: - Change the lights to [the color] {color} -{% raw %} + intent_script: ColorLight: speech: @@ -163,8 +167,8 @@ intent_script: - "{% if color == 'red' %}255{% else %}0{% endif %}" - "{% if color == 'green' %}255{% else %}0{% endif %}" - "{% if color == 'blue' %}255{% else %}0{% endif %}" -{% endraw %} ``` +{% endraw %} ## {% linkable_title Services %} @@ -201,6 +205,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 @@ -222,3 +227,4 @@ automation: action: - service: hangouts.reconnect ``` +{% endraw %} From 97bb151cb69e54b675c63da784a8b3eb61f1e4ea Mon Sep 17 00:00:00 2001 From: Jorim Tielemans Date: Wed, 7 Nov 2018 08:36:36 +0100 Subject: [PATCH 16/83] Fix default name for version (#7409) * Fix default name for version Still stated `Home Assistant Version` as default name while it was reversed in a later commit to maintain compatibility in existing configurations. * Update sensor.version.markdown Forgot the quotes --- source/_components/sensor.version.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/sensor.version.markdown b/source/_components/sensor.version.markdown index 91b0b63dd01..10ce29b4ac3 100644 --- a/source/_components/sensor.version.markdown +++ b/source/_components/sensor.version.markdown @@ -31,7 +31,7 @@ name: description: Name to use in the frontend. required: false type: string - default: Home Assistant Version + default: "`Current Version` in case of `source: local`, `Latest Version` otherwise" beta: description: Flag to indicate that it will check for beta versions, only supported for the sources `pypi`, `hassio` and `docker`. required: false From 6c653839eb2c68d2f233a64808ce0aa5a2231568 Mon Sep 17 00:00:00 2001 From: Jorim Tielemans Date: Wed, 7 Nov 2018 08:39:55 +0100 Subject: [PATCH 17/83] Update hangouts.markdown (#7411) `{% raw %}`-tags were missing --- source/_components/hangouts.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/source/_components/hangouts.markdown b/source/_components/hangouts.markdown index aca2a7eaf78..d36e78e6e3d 100644 --- a/source/_components/hangouts.markdown +++ b/source/_components/hangouts.markdown @@ -125,7 +125,6 @@ intent_script: Ping: speech: text: I know {{ states.hangouts.conversations.state }} conversations - ``` {% endraw %} From ee0a5d5b1154fe1d9b2d2138efebeb1e94bd37b2 Mon Sep 17 00:00:00 2001 From: kennedyshead Date: Wed, 7 Nov 2018 09:22:36 +0100 Subject: [PATCH 18/83] No sensor for melissa, its moved to attributes for the climate device (#7370) --- source/_components/sensor.melissa.markdown | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 source/_components/sensor.melissa.markdown diff --git a/source/_components/sensor.melissa.markdown b/source/_components/sensor.melissa.markdown deleted file mode 100644 index 0b4360560d5..00000000000 --- a/source/_components/sensor.melissa.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Melissa Sensor" -description: "Instructions on how to integrate Melissa sensors into Home Assistant." -date: 2017-08-30 12:21 -sidebar: true -comments: false -sharing: true -footer: true -logo: mclimate.png -ha_category: Environment -ha_iot_class: "Cloud Polling" -ha_release: 0.63 ---- - -The `melissa` platform allows you to get data from your [Melissa](http://seemelissa.com/) sensors from within Home Assistant. - -The sensor platform will be automatically configured if Melissa component is configured. - -For more configuration information see the [Melissa component](/components/melissa/) documentation. From 610fbe4050aecc528300427b1bb828aeecc632bc Mon Sep 17 00:00:00 2001 From: Aaron Bach Date: Wed, 7 Nov 2018 01:32:48 -0700 Subject: [PATCH 19/83] Update Pollen.com sensor docs with asthma info (#7281) --- source/_components/sensor.pollen.markdown | 35 +++++++++++++++++++++-- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/source/_components/sensor.pollen.markdown b/source/_components/sensor.pollen.markdown index 8c613882242..c3f781da50a 100644 --- a/source/_components/sensor.pollen.markdown +++ b/source/_components/sensor.pollen.markdown @@ -13,10 +13,11 @@ ha_release: 0.63 ha_iot_class: "Cloud Polling" --- -The `pollen` sensor platform collects and displays allergy and disease -information (based on a U.S. ZIP code) from [Pollen.com](https://www.pollen.com/). Data measured includes: +The `pollen` sensor platform collects and displays allergy, asthma, and disease +information (based on a U.S. ZIP code) from +[Pollen.com](https://www.pollen.com/). Data measured includes: -* Indicies for allergies and cold/flu measurements +* Indicies for allergies, asthma and cold/flu indices * Trends * Current outlook * more! @@ -37,6 +38,11 @@ sensor: - allergy_index_today - allergy_index_tomorrow - allergy_index_yesterday + - asthma_average_forecasted + - asthma_average_historical + - asthma_index_today + - asthma_index_tomorrow + - asthma_index_yesterday - disease_average_forecasted ``` @@ -69,6 +75,15 @@ historical allergy index over the past 30 days tomorrow * Allergy Index: Yesterday (`allergy_index_yesterday`): the allergy index for yesterday +* Asthma Index: Forecasted Average (`asthma_average_forecasted`): the average +forecasted asthma index over the next 5 days +* Asthma Index: Historical Average (`asthma_average_historical`): the average +historical asthma index over the past 30 days +* Asthma Index: Today (`asthma_index_today`): the asthma index for today +* Asthma Index: Tomorrow (`asthma_index_tomorrow`): the asthma index for +tomorrow +* Asthma Index: Yesterday (`asthma_index_yesterday`): the asthma index for +yesterday * Cold & Flu: Forecasted Average (`disease_average_forecasted`): the average forecasted cold/flu index over the next 5 days @@ -84,3 +99,17 @@ Range | Rating 4.9 - 7.2 | Medium 7.3 - 9.6 | Medium/High 9.7 - 12.0 | High + +## {% linkable_title Understanding Asthma Allergens %} + +Several asthma-related sensors carry information regarding the top three +"asthma allergens" (i.e., irritants that may exacerbate asthma symptoms). +Example values include: + +Pollutant | Symbol | More Info +--------- | ------ | --------- +Particulate (<= 2.5 μm) | PM2.5 | [EPA: Particulate Matter (PM) Pollution ](https://www.epa.gov/pm-pollution) +Particulate (<= 10 μm) | PM10 | [EPA: Particulate Matter (PM) Pollution ](https://www.epa.gov/pm-pollution) +Ozone | O | [EPA: Ozone Pollution](https://www.epa.gov/ozone-pollution) +Sulpher Dioxide | SO2 | [EPA: Sulfur Dioxide (SO2) Pollution](https://www.epa.gov/so2-pollution) +Carbon Monoxide | CO | [EPA: Carbon Monoxide (CO) Pollution in Outdoor Air](https://www.epa.gov/co-pollution) From e423ac382c28e97fa0eae275b32d835d602096ec Mon Sep 17 00:00:00 2001 From: Pawel Date: Wed, 7 Nov 2018 09:33:27 +0100 Subject: [PATCH 20/83] Cover get position topic (#7279) * Support for position_topic. * titles fixed * added Configuration description. * set_position_topic description updated. --- source/_components/cover.mqtt.markdown | 61 ++++++++++++++++++++++---- 1 file changed, 53 insertions(+), 8 deletions(-) diff --git a/source/_components/cover.mqtt.markdown b/source/_components/cover.mqtt.markdown index 26bb333b6b3..903ac487224 100644 --- a/source/_components/cover.mqtt.markdown +++ b/source/_components/cover.mqtt.markdown @@ -18,12 +18,17 @@ The `mqtt` cover platform allows you to control an MQTT cover (such as blinds, a ## {% linkable_title Configuration %} The device state (`open` or `closed`) will be updated only after a new message is published on `state_topic` matching `state_open` or `state_closed`. If these messages are published with the `retain` flag set, the cover 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`. +`state_topic` can only manage `state_open` and `state_closed`. No percentage positons etc. -There is an attribute that stores the relative position of the device, where 0 means the device is `closed` and all other intermediate positions means the device is `open`. +For this purpose is `position_topic` which can set state of the cover and positon. +Default setting are 0 means the device is `closed` and all other intermediate positions means the device is `open`. +`position_topic` is managed by `position_open` and `position_closed` +You can set it up in opossite way as well. +If position topic is defined than state topic is ignored. -If a state topic is not defined, the cover will work in optimistic mode. In this mode, the cover will immediately change state (`open` or `closed`) after every command sent by Home Assistant. If a state topic is defined, the cover will wait for a message on `state_topic` matching `state_open` or `state_closed` before changing state in Home Assistant. +If a state topic and position topic are not defined, the cover will work in optimistic mode. In this mode, the cover will immediately change state (`open` or `closed`) after every command sent by Home Assistant. If a state topic/position topic is defined, the cover will wait for a message on `state_topic` or `position_topic`. -Optimistic mode can be forced, even if a `state_topic` is defined. Try to enable it if experiencing incorrect cover operation. +Optimistic mode can be forced, even if a `state_topic` / `position_topic` is defined. Try to enable it if experiencing incorrect cover operation (Google Assistant gauge may need optimistic mode as it often send request to your Home Assistant immediately after send set_cover_position in which case MQTT could be too slow). The `mqtt` cover platform optionally supports an `availability_topic` to receive online and offline messages (birth and LWT messages) from the MQTT cover 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 cover as "unavailable". If these messages are published with the `retain` flag set, the cover will receive an instant update after subscription and Home Assistant will display correct availability state of the cover when Home Assistant starts up. If the `retain` flag is not set, Home Assistant will display the cover as "unavailable" when Home Assistant starts up. @@ -63,7 +68,7 @@ payload_stop: type: string default: STOP state_topic: - description: The MQTT topic subscribed to receive cover state messages. + description: The MQTT topic subscribed to receive cover state messages. Use only if not using get_position_topic. State topic can only read open/close state. Cannot read position state. required: false type: string state_open: @@ -76,6 +81,20 @@ state_closed: required: false type: string default: closed +position_topic: + description: The MQTT topic subscribed to receive cover position messages. Always in favor if used together with state_topic. + required: false + type: integer +position_open: + description: Number which represents open position. + required: false + type: integer + default: 100 +position_closed: + description: Number which represents closed position. + required: false + type: integer + default: 0 availability_topic: description: "The MQTT topic subscribed to to receive birth and LWT messages from the MQTT cover device. If `availability_topic` is not defined, the cover availability state will always be `available`. If `availability_topic` is defined, the cover availability state will be `unavailable` by default." required: false @@ -110,11 +129,11 @@ value_template: required: false type: string set_position_topic: - description: The MQTT topic to publish position commands to. + description: The MQTT topic to publish position commands to. You need to set position_topic as well if you want to use position topic. Use template if position topic wants different values than within range `position_closed` - `position_open`. If template is not defined and `position_closed != 100` and `position_open != 0` then proper position value is calculated from percentage position. required: false type: string set_position_template: - description: " Defines a [template](/topics/templating/) to define the position to be sent to the `set_position_topic` topic. Incoming position value is available for use in the template `{{position}}`. If no template is defined, the numeric position (0-100) will be written directly to the topic." + description: " Defines a [template](/topics/templating/) to define the position to be sent to the `set_position_topic` topic. Incoming position value is available for use in the template `{{position}}`. If no template is defined, the position (0-100) will be calculated according to `position_open` and `position_closed` values." required: false type: string tilt_command_topic: @@ -194,9 +213,9 @@ device: In this section you will find some real-life examples of how to use this platform. -### {% linkable_title Full configuration without tilt %} +### {% linkable_title Full configuration state topic without tilt %} -The example below shows a full configuration for a cover without tilt. +The example below shows a full configuration for a cover without tilt with state topic only. ```yaml # Example configuration.yaml entry @@ -219,6 +238,32 @@ cover: value_template: '{% raw %}{{ value.x }}{% endraw %}' ``` +### {% linkable_title Full configuration position topic without tilt %} + +The example below shows a full configuration for a cover without tilt with position topic. + +```yaml +# Example configuration.yaml entry +cover: + - platform: mqtt + name: "MQTT Cover" + command_topic: "home-assistant/cover/set" + position_topic: "home-assistant/cover/position" + availability_topic: "home-assistant/cover/availability" + set_position_topic: "home-assistant/cover/set_position" + qos: 0 + retain: true + payload_open: "OPEN" + payload_close: "CLOSE" + payload_stop: "STOP" + position_open: 100 + position_closed: 0 + payload_available: "online" + payload_not_available: "offline" + optimistic: false + value_template: '{% raw %}{{ value.x }}{% endraw %}' +``` + ### {% linkable_title Full configuration %} The example below shows a full configuration for a cover. From 0f150439661f7d48bdf5d0de63a299eb71dfec7c Mon Sep 17 00:00:00 2001 From: akloeckner Date: Wed, 7 Nov 2018 09:34:05 +0100 Subject: [PATCH 21/83] Additional attributes and hint to manual bug fix (#7251) --- source/_components/device_tracker.luci.markdown | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/_components/device_tracker.luci.markdown b/source/_components/device_tracker.luci.markdown index 3e74b5ed972..c159afeb875 100644 --- a/source/_components/device_tracker.luci.markdown +++ b/source/_components/device_tracker.luci.markdown @@ -59,6 +59,9 @@ ssl: See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. +This device tracker provides a number of additional attributes for each tracked device (if it is at home): `flags`, `ip`, `device`, and `host`. The first three attributes are taken from the ARP table returned by the luci RPC. The `host` attribute is taken from the platform configuration and can be used to distinguish in which router a device is logged in, if you are using multiple OpenWRT routers. +

    -Some installations have [a small bug](https://github.com/openwrt/luci/issues/576). The timeout for luci RPC calls is not set and this makes the call fail. +Some installations have [a small bug](https://github.com/openwrt/luci/issues/576). The timeout for luci RPC calls is not set and this makes the call fail. +If you want to locally fix your OpenWRT installation, you can apply the change manually to `/usr/lib/lua/luci/controller/rpc.lua`, or simply set a fixed timeout. The default is 3600.

    From 88bf2a0a49a1a2c3813775c1a07b0ee7669ff5ae Mon Sep 17 00:00:00 2001 From: Anton Sarukhanov Date: Wed, 7 Nov 2018 03:44:58 -0500 Subject: [PATCH 22/83] Update Avi-On doc to clarify multiple-device usage (#7073) * Update Avi-On doc to clarify multiple-device usage. * Fix typo --- source/_components/light.avion.markdown | 26 ++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/source/_components/light.avion.markdown b/source/_components/light.avion.markdown index 7290fcedb01..6abf6e2fd61 100644 --- a/source/_components/light.avion.markdown +++ b/source/_components/light.avion.markdown @@ -37,6 +37,8 @@ light: - platform: avion ``` +There are two ways to configure this component: username & password, or list of devices. You must choose one. + {% configuration %} username: description: The username used in the Avion app. If username and password are both provided, all associated switches will automatically be added to your configuration. @@ -59,6 +61,10 @@ devices: description: The API Key. required: true type: string + id: + description: The ID of the dimmer switch. Only needed for independent control of multiple devices. + required: true + type: string {% endconfiguration %} ## {% linkable_title Full example %} @@ -73,7 +79,21 @@ light: 00:21:4D:00:00:01: name: Light 1 api_key: YOUR_API_KEY - 00:21:3D:20:00:a1: - name: Light 2 - api_key: YOUR_API_KEY +``` + +For independent control of multiple devices, you must specify each device's ID (integer starting with 1). Each switch's ID can be guessed or detected from the Avi-On API. + +```yaml +# Manual device configuration.yaml entry +light: + - platform: avion + devices: + 00:21:4D:00:00:01: + name: Light 1 + api_key: YOUR_API_KEY + id: 1 + 00:21:4D:00:00:02: + name: Light 1 + api_key: YOUR_API_KEY + id: 2 ``` From 333cb56506ea5dfdf540adbf0a41fbde59061562 Mon Sep 17 00:00:00 2001 From: Rohan Kapoor Date: Wed, 7 Nov 2018 00:45:26 -0800 Subject: [PATCH 23/83] Update Dialogflow with the webhook changes (#7109) --- source/_components/dialogflow.markdown | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/_components/dialogflow.markdown b/source/_components/dialogflow.markdown index bf2cc4b4e61..beb5f795656 100644 --- a/source/_components/dialogflow.markdown +++ b/source/_components/dialogflow.markdown @@ -20,7 +20,7 @@ Before 0.56 this component was named `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. -Dialogflow requires a public endpoint (HTTPS recommended), so your Home Assistant should be exposed to the Internet. 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](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). Dialogflow could be [integrated](https://dialogflow.com/docs/integrations/) with many popular messaging, virtual assistant and IoT platforms. @@ -40,6 +40,8 @@ Using Dialogflow will be easy to create conversations like: To use this integration, you should define a conversation (intent) in Dialogflow, configure Home Assistant with the speech to return and, optionally, the action to execute. +To get the webhook url, go to the integrations page in the configuration screen and find Dialogflow. Click on configure. Follow the instructions on the screen. + ### {% linkable_title Configuring your Dialogflow account %} - [Login](https://console.dialogflow.com/) with your Google account @@ -47,7 +49,7 @@ To use this integration, you should define a conversation (intent) in Dialogflow - Select name, language (if you are planning to use Google Actions check their [supported languages](https://support.google.com/assistant/answer/7108196?hl=en)) and time zone - Click "Save" - Go to "Fulfillment" (in the left menu) -- Enable Webhook and set your Home Assistant URL with the Dialogflow endpoint, e.g., `https://myhome.duckdns.org/api/dialogflow?api_password=HA_PASSWORD` +- Enable Webhook and set your Dialogflow webhook url as the endpoint, e.g., `https://myhome.duckdns.org/api/webhook/800b4cb4d27d078a8871656a90854a292651b20635685f8ea23ddb7a09e8b417` - 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?` From c4d4107bb96a72f8f74b8afdb8fa1ddc2a5b6fd6 Mon Sep 17 00:00:00 2001 From: Pascal de Ladurantaye Date: Wed, 7 Nov 2018 03:48:13 -0500 Subject: [PATCH 24/83] Add optional ttl configuration for route53 component (#7344) * Add optional ttl configuration for route53 component * Minor changes --- source/_components/route53.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/_components/route53.markdown b/source/_components/route53.markdown index a00e5e708d0..4b4d57ab6dc 100644 --- a/source/_components/route53.markdown +++ b/source/_components/route53.markdown @@ -100,4 +100,9 @@ records: description: A list of records you want to update. required: true type: list +ttl: + description: The TTL value for the DNS records. + required: false + type: int + default: 300 {% endconfiguration %} From eb1c0b25b04a60b696ced489c5a0b11d73917839 Mon Sep 17 00:00:00 2001 From: kbickar Date: Wed, 7 Nov 2018 04:31:48 -0500 Subject: [PATCH 25/83] Updated to include new devices configuration (#6983) * Updated to include new devices configuration * Sensor now requires sense component * Added sense device binary sensor * Added main Sense component * No longer needed * Redirects to sense * Added info about sensors that are added * Update 'ha_release' --- source/_components/sense.markdown | 50 +++++++++++++++ source/_components/sensor.sense.markdown | 77 ------------------------ 2 files changed, 50 insertions(+), 77 deletions(-) create mode 100644 source/_components/sense.markdown delete mode 100644 source/_components/sensor.sense.markdown diff --git a/source/_components/sense.markdown b/source/_components/sense.markdown new file mode 100644 index 00000000000..63611b0b7be --- /dev/null +++ b/source/_components/sense.markdown @@ -0,0 +1,50 @@ +--- +layout: page +title: Sense +description: "Instructions on how to integrate Sense within Home Assistant." +date: 2018-10-22 22:50 +sidebar: true +comments: false +sharing: true +footer: true +logo: sense.png +ha_category: Energy +ha_iot_class: "Cloud Polling" +ha_release: 0.82 +redirect_from: /components/sensor.sense/ +--- + +Integrate your [Sense](https://sense.com) meter information into Home Assistant. + +## {% linkable_title Configuration %} + +To enable this sensor in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sense: + email: CLIENT_ID + 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 +password: + description: The password for your Sense account/application. + required: true + type: string +timeout: + description: Seconds for timeout of API requests + required: false + type: positive_int +{% endconfiguration %} diff --git a/source/_components/sensor.sense.markdown b/source/_components/sensor.sense.markdown deleted file mode 100644 index f894c5312e2..00000000000 --- a/source/_components/sensor.sense.markdown +++ /dev/null @@ -1,77 +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) meter information into Home Assistant. - -## {% linkable_title Configuration %} - -To enable this sensor in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - platform: sense - email: CLIENT_ID - password: CLIENT_SECRET - monitored_conditions: - - active_usage - - active_production - - daily_usage - - daily_production -``` - -Two types of sensors can be monitored and will be created with the following names: - -- **Active Usage/Production**: Current active power usage/production in Watts. Updated every 30 seconds. -- **Daily Usage/Production**: Daily power usage/production in kWh. Updated every 5 minutes. - -Weekly, Monthly and Yearly variants are also available. - -{% 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 -monitored_conditions: - description: List of sensors to display in the front end. - required: true - type: list - keys: - active_usage: - description: The current power usage in W. - active_production: - description: The current solar production in W. - daily_usage: - description: Total power used for current day in kWh. - daily_production: - description: Total power produced for current day in kWh. - weekly_usage: - description: Total power used for current week in kWh. - weekly_production: - description: Total power produced for current week in kWh. - monthly_usage: - description: Total power used for current month in kWh. - monthly_production: - description: Total power produced for current month in kWh. - yearly_usage: - description: Total power used for current year in kWh. - yearly_production: - description: Total power produced for current year in kWh. -{% endconfiguration %} From 4601d0882dc3ec218df456be837d22f0c9a72c32 Mon Sep 17 00:00:00 2001 From: Nick Touran Date: Thu, 8 Nov 2018 00:39:40 -0800 Subject: [PATCH 26/83] Documented new precision config option in generic_thermostat. (#7434) --- source/_components/climate.generic_thermostat.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/_components/climate.generic_thermostat.markdown b/source/_components/climate.generic_thermostat.markdown index ee522ae27ed..41aecaaaa26 100644 --- a/source/_components/climate.generic_thermostat.markdown +++ b/source/_components/climate.generic_thermostat.markdown @@ -82,6 +82,11 @@ away_temp: description: Set the temperature used by "away_mode". If this is not specified, away_mode feature will not get activated. required: false type: float +precision: + description: "The desired precision for this device. Can be used to match your actual thermostat's precision. Supported values are `0.1`, `0.5` and `1.0`." + required: false + type: float + default: "`0.5` for Celsius and `1.0` for Fahrenheit." {% endconfiguration %} A full configuration example looks like the one below. `min_cycle_duration` and `keep_alive` must contain at least one of the following entries: `days:`, `hours:`, `minutes:`, `seconds:` or `milliseconds:`. @@ -109,4 +114,5 @@ climate: minutes: 3 initial_operation_mode: "off" away_temp: 16 + precision: 0.1 ``` From bb8b918dd2f56efe75cb9c931cc22ad4bc61f916 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 8 Nov 2018 11:18:02 +0100 Subject: [PATCH 27/83] Unpublish velbus climate (#7435) --- source/_components/climate.velbus.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/climate.velbus.markdown b/source/_components/climate.velbus.markdown index a24345f49cb..45ca48a54b1 100644 --- a/source/_components/climate.velbus.markdown +++ b/source/_components/climate.velbus.markdown @@ -11,6 +11,7 @@ logo: velbus.png ha_category: Climate ha_iot_class: "Local Push" ha_release: 0.82 +published: false --- The `velbus` climate devices allow you to control [Velbus](http://www.velbus.eu) connected thermostats. From b171ab5e655db1002eef389884521b6e6fb7526f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Thu, 8 Nov 2018 18:28:04 +0100 Subject: [PATCH 28/83] Add documentation for sensor.launch (#7397) * Add documentation for sensor.launch * Minor changes --- source/_components/sensor.launch.markdown | 37 ++++++++++++++++++++++ source/images/supported_brands/rocket.png | Bin 0 -> 2117 bytes 2 files changed, 37 insertions(+) create mode 100644 source/_components/sensor.launch.markdown create mode 100644 source/images/supported_brands/rocket.png diff --git a/source/_components/sensor.launch.markdown b/source/_components/sensor.launch.markdown new file mode 100644 index 00000000000..33fb855b0fd --- /dev/null +++ b/source/_components/sensor.launch.markdown @@ -0,0 +1,37 @@ +--- +layout: page +title: "Space Launch sensor" +description: "Instructions on how to integrate space launch information within Home Assistant." +date: 2018-11-06 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: rocket.png +ha_category: Sensor +ha_iot_class: "Cloud Polling" +ha_release: "0.83" +--- + +The `launch` sensor will provide you with information about the next planed space launch. + +## {% linkable_title Configuration %} + +Add the data to your `configuration.yaml` file as shown in the example: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: launch +``` + +{% configuration %} +name: + description: Name of the sensor. + required: false + type: string +{% endconfiguration %} + +The data this platform are presenting are coming from [launchlibrary.net][launchlibrary]. + +[launchlibrary]: http://launchlibrary.net/ diff --git a/source/images/supported_brands/rocket.png b/source/images/supported_brands/rocket.png new file mode 100644 index 0000000000000000000000000000000000000000..5bee75804c886c82847a44ca09601010504c997d GIT binary patch literal 2117 zcmbVN{X5h98=s?9=7X}yN~Y+fEKIUidHAxe(3vcuVj^drvV|rirpO$5$|+9?ts|1~weJ+4>5 zB$7cq&G5Jw#E1!qqCz49Lg@?(I+d~GfQ6NXb>^eb6w`0&?ThqYSH$|6 z%czKFp*yoQX?o8FQLY|)NEkq4jTMQOh+t_JMx-FDpuVW-(*etLf`z*q->$NCpMS8pevkh^EwFgY9k zr>nAUr4ET+F<<4L%kxtnXs;^w3w>2mD>)X#U9(S6mAT!;aq=wBRd;4=<)R(@2WkS6 z<%qAPU=<^AiJgZJk3Kbs%WB!bgd_?vkuj5R_Sz(<7+e>kZ!3$Ub4}E(-u~=WSH5NM zePVh>=Rn-5ssW{)cob~5CBa zDxA7Y9ftR`SXO#H?lDSs_;Vw2_u5^DL_bmiM!2W>V!j2X$0&8&eH{R|iCFudU=#U{ zz#ZYlFVB+__mv#qj0vyv{@w54R_h>Sigu>BeG4GF;YD%J!K0UzIc+txkWYXf-%JN( zD|y{^2@PY@6yH~`*iipMaBDorlu>H!*n!%>RI=po%R=j8CpL(s>w%&#Z~u%5n|=S{ zsN?6TsUaIXb6al%O!yQVO1!8tp^lc&+F^VGQ5DWT5n=v z5_f|sZ}cBPT$%r3bwgjXDeURE4~Xe6OoAR&oR3n?h1!v9WArh%GhVrhG7W+e7T9<> zRp|c6;2<3dO_xsgR(@kBtoTVBLa?~R2DYU#+sI*Z@7P!b6d#&}vI|3?y_6rjUwd?l z$m@Y04>2ZglB)`&)cq{LzRewWSc&g23!DEk7}j4+nf%yYbc5B>lPJD>2u}a3ZZ1&< z&Oq6^61#g9r-_o>H5L!m)0)B;jL8L8;+QLiR3YYa{n=!g=d&l&uDMN2U;3w>@(4hm z(XVDSY>Mp6n5H?Vm_4Q1bo9^4CnhSuNwak@8G~gmw=#_Ni059!H`|^lwND8gJk5{b zpkUcwHG#kers6!;8N0|NDk8(Br0)2ihW(LTkYfYr6Y|HwcA?M_7qr=@F5sF|?w&yZ9$MF}GrX-`ulAis% zQ@(;Yy{y92>67DuDL=GJCKmRpybjTZ4vdZ9_bScluOE;iUa}?z7I8a;n6fDu&tL-u zs)Ck^%lG7Ws5SNenhnY!-T+Zb*$Am0UBkAK(gIq;2P%Lir5de z2{%Ox=G%!v2@iRvp!UptpC>>ce(PVpuZ}#Cf$x(`>d&TQprYGh&V{vbwY@#4m`9Rt3_q1+Hi=@HDFBRD)(R-W+ zXlX^~3EelBae0X|fmu)>VQG2c_xt%`6fWXkUjC*f#{1`+6Py=ufspo_Ev(g{GrHV^ znyGvZ+;t>tRIJ`^Cbe-o)r^#&s}k%{C|#hkQxmD)3 zoAOgwhNCig3(fGn&yfZw-dj+Dn(im;kD2!6pUcJ4|E~BgY1~u|pzyIdlA#}mc&;se z)86{Xp`q5qRx;9QxO(8*fSssWO}S!&x0~(7dDUWg6a4 zbGqjQVYOyusNt_FkDZ+y1aB^6LRRD6aRn}{ws7urmt9DxQHv!v~MI}>d6n%w)O|9n1X2e zO8HfeB`5=HSbzF)YaJtdK=ed<9d7so-Y6WD7VV>QTs(@yPOQtwMsEhXqC$;h=O%LG zhS_N=OUeyd9tgX%4$*BGo65&3UKJmSi?Q8pu9Q}uWx6fmh&B(?*0HPEsi~PsdO7`s zvrLD}UkbjTQw~$ym?6Sz*(Qbn<$Aa=jdywKtYM*SpoPgxBkjV}e;6XfxfW#Sexe(5 zT7x@yJF%v=B$_e!d9ynOqq3a)U`Pi;Ex#IL3%}-yn2xb;VaB7fpvB9+`*gVMbs(7` zvA#vl7hk@U1*?i@>N#K|SmvmT)7mXu5Q7t%J3JbC9IgS-X5M|%eUx?`g?P8z@Nc_V zrdkdt)=84$JGIDpG52PpO%5pH7_}S;>E+MM-&6^8pZr5i&^u0g!ZkqT2JnsUpauV+ g*8jC6Gq)}3q#v-Gu=;C{6kPcb7or=X+Q~oZAE(^%S^xk5 literal 0 HcmV?d00001 From 8a837c527aa169447053cd861d2869f9ccf08ab5 Mon Sep 17 00:00:00 2001 From: kennedyshead Date: Fri, 9 Nov 2018 08:22:03 +0100 Subject: [PATCH 29/83] Add Asuswrt component and sensor (#7324) * Adding component and sensor to Asuswrt * Changes * fix * Right * Better grammar and correct category * title --- source/_components/asuswrt.markdown | 70 +++++++++++++++++++ .../device_tracker.asuswrt.markdown | 65 ++--------------- source/_components/sensor.asuswrt.markdown | 20 ++++++ 3 files changed, 95 insertions(+), 60 deletions(-) create mode 100644 source/_components/asuswrt.markdown create mode 100644 source/_components/sensor.asuswrt.markdown diff --git a/source/_components/asuswrt.markdown b/source/_components/asuswrt.markdown new file mode 100644 index 00000000000..486ec51086a --- /dev/null +++ b/source/_components/asuswrt.markdown @@ -0,0 +1,70 @@ +--- +layout: page +title: "Asuswrt" +description: "Instructions on how to integrate Asuswrt into Home Assistant." +date: 2017-01-05 17:30 +sidebar: true +comments: false +sharing: true +footer: true +logo: asus.png +ha_category: Hub +ha_release: 0.83 +ha_iot_class: "Local Polling" +--- + +The `asuswrt` component is the main component to connect to a [ASUSWRT](http://event.asus.com/2013/nw/ASUSWRT/) based router. + +## {% linkable_title Configuration %} + +To use an ASUSWRT router in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +asuswrt: + host: YOUR_ROUTER_IP + username: YOUR_ADMIN_USERNAME +``` + +{% configuration %} +host: + description: "The IP address of your router, eg. `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 (use this if no SSH key is given)." + required: false + type: string +protocol: + description: "The protocol (`ssh` or `telnet`) to use." + required: false + type: string + default: ssh +port: + description: SSH port to use. + required: false + type: integer + default: 22 +mode: + description: "The operating mode of the router (`router` or `ap`)." + required: false + type: string + default: router +ssh_key: + description: The path to your SSH private key file associated with your given admin account (instead of password). + required: false + type: string +require_ip: + description: If the router is in access point mode. + required: false + type: boolean + default: true +{% 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 diff --git a/source/_components/device_tracker.asuswrt.markdown b/source/_components/device_tracker.asuswrt.markdown index ac26ef901fc..a24982b7a6a 100644 --- a/source/_components/device_tracker.asuswrt.markdown +++ b/source/_components/device_tracker.asuswrt.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "ASUSWRT" -description: "Instructions on how to integrate ASUSWRT based routers into Home Assistant." +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 @@ -15,63 +15,8 @@ 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. -

    -This platform is **NOT** available for [Microsoft Windows installations](http://pexpect.readthedocs.io/en/stable/overview.html#pexpect-on-windows). -

    +The platform will be automatically configured if Asuswrt component is configured. -### {% linkable_title Configuration %} +For more configuration information see the [Asuswrt component](/components/asuswrt/) documentation. -To use an ASUSWRT router in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -device_tracker: - - platform: asuswrt - host: YOUR_ROUTER_IP - username: YOUR_ADMIN_USERNAME -``` - -{% configuration %} -host: - description: "The IP address of your router, eg. `192.168.1.1`." - required: true - type: string -username: - description: "The username of an user with administrative privileges, usually `admin`." - required: true - type: string -password: - description: "The password for your given admin account (use this if no SSH key is given)." - required: false - type: string -protocol: - description: "The protocol (`ssh` or `telnet`) to use." - required: false - type: string - default: ssh -port: - description: SSH port to use. - required: false - type: integer - default: 22 -mode: - description: "The operating mode of the router (`router` or `ap`)." - required: false - type: string - default: router -ssh_key: - description: The path to your SSH private key file associated with your given admin account (instead of password). - required: false - type: string -require_ip: - description: If the router is in access point mode. - required: false - type: boolean - default: true -{% endconfiguration %} - -

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

    - -See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. +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/sensor.asuswrt.markdown b/source/_components/sensor.asuswrt.markdown new file mode 100644 index 00000000000..8c091b166e2 --- /dev/null +++ b/source/_components/sensor.asuswrt.markdown @@ -0,0 +1,20 @@ +--- +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. From 9940810dfec616a2448b89c46f49162135819be2 Mon Sep 17 00:00:00 2001 From: Brig Lamoreaux Date: Fri, 9 Nov 2018 00:37:15 -0700 Subject: [PATCH 30/83] Add documentation for Srp Energy (#7289) * Add documentation for Srp Energy * Fix typo. Add standard configuration section. --- source/_components/sensor.srpenergy.markdown | 45 ++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 source/_components/sensor.srpenergy.markdown diff --git a/source/_components/sensor.srpenergy.markdown b/source/_components/sensor.srpenergy.markdown new file mode 100644 index 00000000000..6488f4dc257 --- /dev/null +++ b/source/_components/sensor.srpenergy.markdown @@ -0,0 +1,45 @@ +--- +layout: page +title: "SRP Energy Sensor" +description: "How to integrate SRP Energy within Home Assistant." +date: 2018-10-30 08:00 +sidebar: true +comments: false +ha_category: Energy +ha_release: "0.83" +ha_iot_class: "Cloud Polling" +--- + +The `srp_energy` component shows information from Srp hourly energy usage report for their customers. The srpenergy module fetches the data found on the website. + +You need a Username, Password, and AccountId which you can create at [Srp](https://www.srpnet.com). + +## {% linkable_title Configuration %} + +To add Srp Energy to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: srp_energy + username: YOUR_USERNAME + password: YOUR_PASSWORD + id: YOUR_ACCOUNT_ID +``` + +{% configuration %} +username: + description: Your username for SRP. + required: true + type: string +password: + description: Your password for SRP. + required: true + type: string +id: + description: Your account id for SRP. + required: true + type: string +{% endconfiguration %} + +Details about the API are available in the [SRP Energy Developers API documentation](https://srpenergy-api-client-python.readthedocs.io/en/latest/?badge=latest). From 007441f68fe539f3870825880621da160adb9996 Mon Sep 17 00:00:00 2001 From: Adam Belebczuk Date: Fri, 9 Nov 2018 16:35:32 -0500 Subject: [PATCH 31/83] Documentation update for WeMo disable_discovery configuration variable (#7314) * WeMo - Disable Discovery - Documentation Update * WeMo - Disable Discovery - Correct typos * WeMo - Disable Discovery - Corrected bad default value for static --- source/_components/wemo.markdown | 36 +++++++++++++++++++------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/source/_components/wemo.markdown b/source/_components/wemo.markdown index 62cd2b5e2f6..a9e2758387f 100644 --- a/source/_components/wemo.markdown +++ b/source/_components/wemo.markdown @@ -2,7 +2,7 @@ layout: page title: "Belkin WeMo" description: "Instructions on how to integrate Belkin WeMo devices into Home Assistant." -date: 2016-02-20 00:41 +date: 2018-11-01 01:53 sidebar: true comments: false sharing: true @@ -17,41 +17,47 @@ The `wemo` component is the main component to integrate various [Belkin WeMo](ht ## {% linkable_title Configuration %} -Supported devices will be automatically discovered if the discovery component is enabled. Loading the `wemo` component will scan the local network for WeMo devices, even if you are not using the discovery component - -```yaml -# Example configuration.yaml entry -wemo: -``` - {% configuration %} static: description: One or more static IP adresses for WeMo to use required: false type: list - default: 1 + disable_discovery: + description: Setting this value to true 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: false {% endconfiguration %} -Alternately, WeMo devices that are not discoverable can be statically configured. If you have WeMo devices on subnets other than where Home Assistant is running, or devices in a remote location reachable over a VPN, you will need to configure them manually. This is also useful if you wish to disable discovery for some WeMo's, even if they are local. Example static configuration: +Supported devices will be automatically discovered if the optional `disable_discovery` configuration item is omitted or set to false or if the `discovery` component is enabled. If the `disable_discovery` configuration item is set to true, then automatic discovery of WeMo devices is disabled both for the `wemo` component and for the `discovery` component. Loading the `wemo` component with the `disable_discovery` configuration item omitted or set to false will scan the local network for WeMo devices, even if you are not using the `discovery` component. ```yaml +# Example configuration.yaml entry with automatic discovery enabled wemo: + disable_discovery: false +``` + +Alternately, WeMo devices that are not discoverable can be statically configured. If you have WeMo devices on subnets other than where Home Assistant is running, or devices in a remote location reachable over a VPN, you will need to configure them manually. Statically configured devices may be used with or without automatic discovery enabled. Example static configuration: + +```yaml +# Example configuration.yaml entry with automatic discovery disabled, and 2 statically configured devices +wemo: + disable_discovery: true static: - 192.168.1.23 - 192.168.52.172 ``` -Any WeMo devices that are not statically configured but reachable via discovery will still be added automatically. +Note that if you use static device entries, you may want to set up your router (or whatever runs your DHCP server) to force your WeMo devices to use a static IP address. Check the DHCP section of your router configuration for this ability. -Note that if you use this, you may want to set up your router (or whatever runs your DHCP server) to force your WeMo devices to use a static IP address. Check the DHCP section of your router configuration for this ability. - -If the device doesn't seem to work and all you see is the state "unavailable" on your dashboard, check that your firewall doesn't block incoming request on port 8989 since this is the address to which the WeMo devices send their update. +If the device doesn't seem to work and all you see is the state "unavailable" on your dashboard, check that your firewall doesn't block incoming requests on port 8989, since this is the port to which the WeMo devices send their updates. ## {% linkable_title Emulated devices %} -Various software that emulates WeMo devices often uses alternative ports. Static configuration should include the port value: +Various software that emulate WeMo devices often use alternative ports. Static configuration should include the port value: ```yaml +# Example configuration.yaml entry with static device entries that include non-standard port numbers wemo: static: - 192.168.1.23:52001 From 9ddec7a0890c8287cdf630199a6bae2ea7bbf395 Mon Sep 17 00:00:00 2001 From: Adam Belebczuk Date: Sat, 10 Nov 2018 02:18:07 -0500 Subject: [PATCH 32/83] WeMo - Change name of discovery option (#7453) --- source/_components/wemo.markdown | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/source/_components/wemo.markdown b/source/_components/wemo.markdown index a9e2758387f..fb16345b383 100644 --- a/source/_components/wemo.markdown +++ b/source/_components/wemo.markdown @@ -22,19 +22,22 @@ The `wemo` component is the main component to integrate various [Belkin WeMo](ht description: One or more static IP adresses for WeMo to use required: false type: list - disable_discovery: - description: Setting this value to true will prevent the automatic discovery of WeMo devices by the wemo platform and the discovery platform (static devices will still be discovered) + 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: false + default: true {% endconfiguration %} -Supported devices will be automatically discovered if the optional `disable_discovery` configuration item is omitted or set to false or if the `discovery` component is enabled. If the `disable_discovery` configuration item is set to true, then automatic discovery of WeMo devices is disabled both for the `wemo` component and for the `discovery` component. Loading the `wemo` component with the `disable_discovery` configuration item omitted or set to false will scan the local network for WeMo devices, even if you are not using the `discovery` component. +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. ```yaml -# Example configuration.yaml entry with automatic discovery enabled +# Example configuration.yaml entry with automatic discovery enabled (by omitting the discovery configuration item) wemo: - disable_discovery: false + +# Example configuration.yaml entry with automatic discovery enabled (by explicitly setting the discovery configuration item) +wemo: + discovery: true ``` Alternately, WeMo devices that are not discoverable can be statically configured. If you have WeMo devices on subnets other than where Home Assistant is running, or devices in a remote location reachable over a VPN, you will need to configure them manually. Statically configured devices may be used with or without automatic discovery enabled. Example static configuration: @@ -42,7 +45,7 @@ Alternately, WeMo devices that are not discoverable can be statically configured ```yaml # Example configuration.yaml entry with automatic discovery disabled, and 2 statically configured devices wemo: - disable_discovery: true + discovery: false static: - 192.168.1.23 - 192.168.52.172 From b8474d7041fd6a2668dc496b041b433e487438cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Sat, 10 Nov 2018 09:29:42 +0100 Subject: [PATCH 33/83] Rename sensor.launch to sensor.launch_library (#7447) * Rename sensor.launch to sensor.launch_library * Added configuration header --- ...{sensor.launch.markdown => sensor.launch_library.markdown} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename source/_components/{sensor.launch.markdown => sensor.launch_library.markdown} (85%) diff --git a/source/_components/sensor.launch.markdown b/source/_components/sensor.launch_library.markdown similarity index 85% rename from source/_components/sensor.launch.markdown rename to source/_components/sensor.launch_library.markdown index 33fb855b0fd..f8a0b50b417 100644 --- a/source/_components/sensor.launch.markdown +++ b/source/_components/sensor.launch_library.markdown @@ -13,7 +13,7 @@ ha_iot_class: "Cloud Polling" ha_release: "0.83" --- -The `launch` sensor will provide you with information about the next planed space launch. +The `launch_library` sensor will provide you with information about the next planed space launch. ## {% linkable_title Configuration %} @@ -22,7 +22,7 @@ Add the data to your `configuration.yaml` file as shown in the example: ```yaml # Example configuration.yaml entry sensor: - - platform: launch + - platform: launch_library ``` {% configuration %} From 216d071c84d3255ef478c244cc7f982ec6c42b0c Mon Sep 17 00:00:00 2001 From: Adam <22942687+SilvrrGIT@users.noreply.github.com> Date: Sat, 10 Nov 2018 11:01:18 -0600 Subject: [PATCH 34/83] typo fix (#7449) --- source/_addons/nginx_proxy.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_addons/nginx_proxy.markdown b/source/_addons/nginx_proxy.markdown index 3e2a546cb14..471ec08c5f8 100644 --- a/source/_addons/nginx_proxy.markdown +++ b/source/_addons/nginx_proxy.markdown @@ -52,5 +52,5 @@ customize: {% endconfiguration %}

    -It is possible to deactivate port 80 if you need this for things like `emulate_hue`. Remove the host port from Network option of this add-on. +It is possible to deactivate port 80 if you need this for things like `emulated_hue`. Remove the host port from Network option of this add-on.

    From 55cc1afd557ccfcb93f15db411827a75aab28dd6 Mon Sep 17 00:00:00 2001 From: Andrew Hayworth Date: Sat, 10 Nov 2018 11:35:08 -0600 Subject: [PATCH 35/83] Add documentation for google assistant locks (#7377) --- source/_components/google_assistant.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/_components/google_assistant.markdown b/source/_components/google_assistant.markdown index 413e1dcf478..a9de307dddc 100644 --- a/source/_components/google_assistant.markdown +++ b/source/_components/google_assistant.markdown @@ -124,6 +124,11 @@ project_id: description: Project ID from the Actions on Google console (looks like `words-2ab12`) required: true type: string +allow_unlock: + description: "When True, allows Google Assistant to unlock locks." + required: false + type: boolean + default: False api_key: description: Your Homegraph API key (for the `google_assistant.request_sync` service) required: false @@ -176,6 +181,7 @@ Currently, the following domains are available to be used with Google Assistant, - switch (on/off) - fan (on/off) - light (on/off/brightness/rgb color/color temp) +- 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)) - climate (temperature setting) From d6486a192b034a9f954005ea24f213de5ca9a812 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bat=C3=A1ri=20Bal=C3=A1zs=20L=C3=A1szl=C3=B3?= Date: Sat, 10 Nov 2018 22:29:41 +0100 Subject: [PATCH 36/83] Note about needed doorbird user's permission (#7456) --- source/_components/doorbird.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/doorbird.markdown b/source/_components/doorbird.markdown index 50ca47bd6bb..1942931a7a5 100644 --- a/source/_components/doorbird.markdown +++ b/source/_components/doorbird.markdown @@ -53,7 +53,7 @@ devices: required: true type: string username: - description: The username of a non-administrator user account on the device. + description: The username of a non-administrator user account on the device. This user needs the "API-Operator" permission enabled on doorbird. required: true type: string password: From 1b3049f2bdaad70960bab931cbe36dc0c6a29b15 Mon Sep 17 00:00:00 2001 From: horga83 Date: Sun, 11 Nov 2018 04:33:01 -0800 Subject: [PATCH 37/83] W800rf32 (#7373) * Add files via upload * Add files via upload * Initial release of documentation for the w800rf32 component, binary_sensor and switch. * Update missing pieces in docs and properly format yaml section * Minor change to make it more concise * Remove switch platform * Use new configuration format * Update version and fix mapping error * Change type from list to map --- .../binary_sensor.w800rf32.markdown | 69 ++++++++++++++++++ source/_components/w800rf32.markdown | 38 ++++++++++ w800rf32.png | Bin 0 -> 5245 bytes 3 files changed, 107 insertions(+) create mode 100644 source/_components/binary_sensor.w800rf32.markdown create mode 100644 source/_components/w800rf32.markdown create mode 100644 w800rf32.png diff --git a/source/_components/binary_sensor.w800rf32.markdown b/source/_components/binary_sensor.w800rf32.markdown new file mode 100644 index 00000000000..b4cdfae4176 --- /dev/null +++ b/source/_components/binary_sensor.w800rf32.markdown @@ -0,0 +1,69 @@ +--- +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/w800rf32.markdown b/source/_components/w800rf32.markdown new file mode 100644 index 00000000000..47602c33abc --- /dev/null +++ b/source/_components/w800rf32.markdown @@ -0,0 +1,38 @@ +--- +layout: page +title: "W800rf32" +description: "Instructions on how to integrate a W800rf32(a) into Home Assistant." +date: 2018-10-16 10:15 +sidebar: true +comments: false +sharing: true +footer: true +logo: w800rf32.png +ha_category: Hub +ha_release: 0.83 +ha_iot_class: "Local Push" +--- + +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 +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: + +```yaml +# Example configuration.yaml entry +w800rf32: + device: PATH_TO_DEVICE +``` + +{% configuration %} +device: + description: "The path to USB/serial device, example: /dev/ttyUSB0." + required: true + type: string +{% endconfiguration %} + + + diff --git a/w800rf32.png b/w800rf32.png new file mode 100644 index 0000000000000000000000000000000000000000..3994afa480a3d1ad91d00c5356a8a6ef2f8d788d GIT binary patch literal 5245 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 P25)IVbXCx=ZQuPL5-Dc^ literal 0 HcmV?d00001 From f86b9b6a03ce881026679fbaf5811ec812c4c9a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Sun, 11 Nov 2018 13:38:16 +0100 Subject: [PATCH 38/83] Add documentation for traccar (#7364) * Add documentation for traccar * Remove unused link * Add username + password to example * Change host description from GH to Traccar * Clearer wording --- .../device_tracker.traccar.markdown | 63 ++++++++++++++++++ source/images/supported_brands/traccar.png | Bin 0 -> 2888 bytes 2 files changed, 63 insertions(+) create mode 100644 source/_components/device_tracker.traccar.markdown create mode 100644 source/images/supported_brands/traccar.png diff --git a/source/_components/device_tracker.traccar.markdown b/source/_components/device_tracker.traccar.markdown new file mode 100644 index 00000000000..688d02d036e --- /dev/null +++ b/source/_components/device_tracker.traccar.markdown @@ -0,0 +1,63 @@ +--- +layout: page +title: "Traccar GPS tracker" +description: "Instructions how to use Traccar GPS tracker to track devices in Home Assistant." +date: 2018-11-04 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: traccar.png +ha_release: 0.83 +ha_category: Presence Detection +ha_iot_class: "Local Polling" +--- + +`Traccar` uses GPS for tracking and has support for over 1500 different types of devices. + +## {% linkable_title Configuration %} + +To integrate Traccar GPS tracker in Home Assistant, add the following section to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +device_tracker: + - platform: traccar + host: IP_ADDRESS + username: USERNAME + password: PASSWORD +``` + +{% configuration %} +host: + description: The DNS name or IP Address of the server running Traccar. + required: true + type: string +username: + description: The username for the Traccar server. + required: true + type: string +password: + description: The password for your given account on the Traccar server. + required: true + type: string +host: + description: The DNS name or IP Address of the server running Traccar. + required: true + type: string +port: + description: The port of your Traccar server. + required: false + default: 8082 + type: integer +ssl: + description: Use HTTPS to connect to Traccar server. *NOTE* A host *cannot* be an IP address when this option is enabled. + required: false + default: false + type: boolean +verify_ssl: + description: Verify the certification of the system. + required: false + type: boolean + default: true +{% endconfiguration %} \ No newline at end of file diff --git a/source/images/supported_brands/traccar.png b/source/images/supported_brands/traccar.png new file mode 100644 index 0000000000000000000000000000000000000000..3ac75c16c23278514818c441d9440e92467c673d GIT binary patch literal 2888 zcmV-O3%B%%P)00004XF*Lt006O% z3;baP0000WV@Og>004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00002 zVoOIv0RM-N%)bBt00(qQO+^Rc2pJF|2Lf;sV*mgOP)S5VRCwC$oNIIy)fLBoH#dn% z$O8f>2IOU|sDM0*fG$7-l~|$piUJaYQhcO>0#eYx@-7txfz*O_HLXeo3n;as^|4fp zC6QH9R45X{LxVs95kpJ}Nep@HewdS+nS1Bn+_|~ri}Sx9GIP$JGiUaH&OUqZb0%QJ zh7I3v1TN|duN_mJQroZo!p5lZv*Gof4tLrc|E}wdt;7z;;-TqpUi*EgX2kOsDTAu- z$e%ae)=`JycZ;qo3m4k>CI6JM$#tQvt@CWM=02Fee0M_2Sr@)iTUIQZBDsIL+4GdBD8sJsUI? z_mx+qUfROva+7;jxqGXvzYt^gnkYe#D0wyjGFq@rE>omTJm`wCwHPwow=PT&%EZ~2w^<5^rdI~3XWn%fK7hE-+qSdq#Qwz;ZiH@#bQB_ zq{ghC{--M>z~82yAsr9TLy#CbU|IcTGFA!=C5cSXU&3ubZ zH1I37lgKuP>Pq)BjCvxNKW;^y&r2_1h)2m(rUOMR@+dFmtDo8U$b1q(k}bp?EqFw| z#oeUXqtNiQ|f31-|2%)01C&4u)j0OA%_S6 zqM1WJWt3A$n#bJqFdNvzaVjWgJI`^2pEi?O%qM)q87eu-M?A$y6R9z*q<~{oQ$Z2` z;8FT|NW^eEYslkUDkxzOuQCaziL0MO4ujMTKAHC^ri#NnZ;%@K1A^pR92t+x%j&2} zZd79=Q&-~<@pl0%fK#ieWz5%6J_?R(dJDTBi9KH+z+licxvtZxta!4YVQ1 z$R9#Xh)_Z|OU}US2ttlwd>la#*7?2e3N;@Ew~b@6GKSuS2u-B;^s>%%0qE*cCCp$G zx#+#tX5MBC4FC+{W&mpWud)?)F_*OlcR_2jCOYKa;p3EBlHaRLO)G9tUedBQygCO^ z9AxT7yK92-3XRx6uGuBw08LSVm&^M{-qB_lZYD~VE#L*KOPkU4Att26Z>^ItOkyZkagiUX?f`~3 z)=aV5m^vCzuadciYZ**$Qxj!G8I67ji9QN&%usPycU;3F{;o{-L>f#3S#xM@CYFbo z5Py5W(s-8S0NUsbKy?5zZAk%K&Ppa*c!C;V72yDJxh#Qwrshw>CNh;d9cD>$TAQ7Z zhL{lF7JU^9)B}IS7nE?ElhjeoTwMN_AKHcS{F8VU_`s-inLN*Z( z6p_xChMI&RlZ&p#tIMI1ow|w<9;u(*K`d%F^C{pYp`+IO7Al|PUJp7T*2IcyQM`Y{ zay9^|nREwgnCL-=*L5a@eU64q69;$)h03Q7^ZQOU0bRY;_`UDzeb@eEwBuc27TJWZAU#Vc;;tZU&_mCR4~x?30Z zcQu0WBRveYz1ip1TfA2;Yi|I$7*vHI%RSWEB=5`pGC{`5Oj$2=0n1mt1vpfeE0KwMNHe8l(dAY{&5hal0Gw^*B@K}HIK{Kjh1p?!oTQ0RUuo7_u8 z!hAZ>XhO&ZZ1k}YEW+Rr>^GHZ-71@{E3I;`SAIq`TdfkJv!83%Ogsp6-03@vw4m1l z;Nqr1x6+ZQB87jspDb3TStgTBjYr(8p`IDs=aHh&QjYrU+jorSIWMI&>y-K!S?=sX zJPx3NWu#K465$qLu(nx!)_rp#9MaenL=f1D^~^+Ykh%D!6&5f31p|Q7?C?=Pg1*3E z_V}~Cq%wdw&TxV}@>EbbnqHKVZ<_nMh7^+MhH#35A?^;3S27sdM5lZn|+xzYNzoTdC(2 z4?i~MgtN^roCefpY;?uj+Ug)YF)(ApwPlG--b6&m;4^8T+5ZiwgG`nu7LKbOReNP! zcYw$05UK! zH!UzYEiyG!F*Z6gGdeIgD=;uRFfcOw?EC-#03~!qSaf7zbY(hiZ)9m^c>ppnF*hwR mI4v?YR53O>Gc!6cH!CnOIxsLpp;SNs0000 Date: Sun, 11 Nov 2018 06:55:53 -0600 Subject: [PATCH 39/83] Shopping List Card documentation (#7346) * Shopping List Card documentation * Add note on shopping list intent requirement * Cleanup description * Update gif and description based on MVP * Updated gif for changes to card --- source/_lovelace/shopping-list.markdown | 44 ++++++++++++++++++ .../lovelace/lovelace_shopping_list_card.gif | Bin 0 -> 64289 bytes 2 files changed, 44 insertions(+) create mode 100644 source/_lovelace/shopping-list.markdown create mode 100644 source/images/lovelace/lovelace_shopping_list_card.gif diff --git a/source/_lovelace/shopping-list.markdown b/source/_lovelace/shopping-list.markdown new file mode 100644 index 00000000000..40a4a7587c3 --- /dev/null +++ b/source/_lovelace/shopping-list.markdown @@ -0,0 +1,44 @@ +--- +layout: page +title: "Shopping List Card" +sidebar_label: Shopping List +description: "The Shopping List Card allows you to edit and check-off items from your shopping list" +date: 2018-11-02 10:28 +00:00 +sidebar: true +comments: false +sharing: true +footer: true +--- + +The Shopping List Card allows you to edit and check-off items from your shopping list. + +Setup of the [Shopping List Intent](https://www.home-assistant.io/components/shopping_list/) is required + +

    +Screenshot of the shopping list card +Screenshot of the Shopping List card. +

    + +```yaml +- type: shopping-list +``` + +{% configuration %} +type: + required: true + description: shopping-list + type: string +title: + required: false + description: Title of Shopping List + type: string +{% endconfiguration %} + +## {% linkable_title Examples %} + +Title Example: + +```yaml +- type: shopping-list + title: Shopping List +``` diff --git a/source/images/lovelace/lovelace_shopping_list_card.gif b/source/images/lovelace/lovelace_shopping_list_card.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1f1716d32dd41c714aa17558663491db38ac000 GIT binary patch literal 64289 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 Date: Sun, 11 Nov 2018 14:03:02 +0100 Subject: [PATCH 40/83] Add documentation for googlehome device_tracker. (#7357) * Add documentation for googlehome device_tracker. * Corrected typo * update descriptions * :pencil2: Spelling --- .../device_tracker.googlehome.markdown | 41 ++++++++++++++++++ .../images/supported_brands/google_home.png | Bin 0 -> 29709 bytes 2 files changed, 41 insertions(+) create mode 100644 source/_components/device_tracker.googlehome.markdown create mode 100644 source/images/supported_brands/google_home.png diff --git a/source/_components/device_tracker.googlehome.markdown b/source/_components/device_tracker.googlehome.markdown new file mode 100644 index 00000000000..4c748fa4355 --- /dev/null +++ b/source/_components/device_tracker.googlehome.markdown @@ -0,0 +1,41 @@ +--- +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 %} + +[googlehomeapi]: https://rithvikvibhu.github.io/GHLocalApi/ diff --git a/source/images/supported_brands/google_home.png b/source/images/supported_brands/google_home.png new file mode 100644 index 0000000000000000000000000000000000000000..a208e9d472f1bb81461a023263cfde4d8873a524 GIT binary patch literal 29709 zcmb??gJ6 z{Kn_|{t54n9ovp)_n!N{&g(qS>w035n(B%qgtUYJ0DweUNlqI8z(D~3SXczum@ON8 z-x~n{Y=EYkuDs$qwYj-DFHi5GAHC`tn$AwnT3XuLI=T)Hju42xo2&cZ#pSK7ZJ33n zk&$tDc!a;-`-XaU29B6{y zzYj=H%ScPhNJ#kH*4EzD^?hk+c|lWFHh3c}EPQx)1oI3I4)OH#a&~za5fPb~m|R>~ zTvdfap}r<1CD+$C{6iDN;qaouV%_?8fq_8+QQAdC#c8Q&Sy|b}ssHRdLQI;x@^bTa z>Ya{ljXFCz!QmGj9i2B_Wc|JU{k}Ykkq3Leu5ur*{rvoq$O;P!%h#ED;bGygJqIv* z#>{(YZB$!R`|)FVLw$pjvrA@1R#a5*~^q5vNsE)wYdkleXG1F|kf>o!knp96LjPDT(Lj7X$`;z^v27<(+j~h-UoF z5me2`$5-$|Zc34sDF~oUB~( zulf|kPJ+3GGIR!%#P{rBu#B61TeAZ@vq5FCpGs2o*1<;(W-E0xKg^uQi>S7$$dAh@ zLXhICX+q~M#5-=zXK#i4KY7b#mKS*E`h3$@%u5sfj0i0e?GM&7h&|cX0PkpGp0Z-) z28tigMa!YGVdpy<;M)!&@p3~M__79~ z$XzF%2vSp|OkeTi*@gxotYlijWgV$h;I2pxf(KL5jyYh2w^|tEfw!OXmvbl3>699OJtt=;_>oc>HCFMwGK+`>S z!OCk?HW3JKFd**Noi1Ic`$j-utnlQdX8`9Dyzt|Pn^#f9z}Z5j)A`3Z4LX`aV4Y9V zYWYsq4bNS_o@e^6$656voJ6QwhBUe+j2r2?x_k#S-G}(wF?iiSyi!|R!KEi<(6=vX ze^`|2a_{Ue=3+MMRFRT3dp7@Z@D$C0ltZfS)(^-vZ~>^q9VW(CwdMh^&T3{T;KLu{ zs;D2%&0dq6ndjG`onIF23eZTeX002NAv^%eaZ#^k`rl3CI%nT%wc+@i)8lo&nn+u0 z!0+dTY32!5hcq}u095G9?RvKms&Y_@WoT5*xT!&xUu!Tv4&XO~af6cqH!7;|bxe`z z%a|2iKb2bEa>H`wpICq$axZSEn<$B_VUac%JS7M^Z7kbPXYz{_WW_Y!m@ul>%4Lw9C?&EpF zsXlXz*9)wqBfl9l5)Wp)xsNdVZgNDZt0IljVn@ zEfANcRdI#zK4mF~p_N9vr%S?1b}IN#*anw|Qdqvj;kS=T^Av>4!UpI zrN>Ym#ZkpxIQ0%8!`>(t%>-s8vgoOg%_d{g_jPlxDP2)EhrNV*qq$u>yM6^rthXu*nMNCl*)3kR^%WG;VChoOVeA|~5kw1tk3Pu{qh=k(kT^|8}VuoNz7 zd)v=b9cAr}es#J>+no^c<5svWzHP4;_<1t3ARhKrNU^V0NU8*T^QQV(Zm|}n z*dPaGD>fiIOv>c^#l1SNDWl}CcaVJ~aIlijhgBUL?gQ-X1NIBHv=4VreS4@3!5hZS z0z`#1wdQ)333Uq2QT0e*A0ryZUBHe34oklGP4?K*hRg%9Qr0RN;eYaDZO^!u$p z^Hdh)mEomP8eE=42QqCaJGYNW2y36O{9Jj%yzfin@Z~f= z?RFN{fDfsEKwqNB<@W&}c8MUhPMzuZ3N$LTpAD7Kxa>SkwI#cH$t*;^24UV@3LsCH z^0|8DFT{CbPqK#3uGdYazARh`xkunPY0$UIWnnG)7+`FP2LnQ&VQcmn9#te<4cc5{ zPtXIIM)INw-DMEVy8i(t>hJGgPmNR}LgWA;r1s+u4;y3cNvSc0(;V>>!;`U%NeAry zyaVn>_*=AN7cyq^4uNNo*HZlx14FrlDDaOYsbk;E zndt4o z)K`T6F8?j}q>PO%F9b#K;Q+)xe|8G0M!L}_(9ET?zZA9RU3@Ru-gM>Td)XcuI+mXp zAnpO^SoTRKKoBD9ZGpvO#(G_O<_t0z{NiA7YlVSj5N_8b1*onsJG4YM)jHN)2ec;fhfh%*( z)j)b`seKv`f+J z!*4I@4qnE;Yizo5^%Z&UQ201zo}Ru%enbplu5*T|A(&NWbj0w%25~D69nt%Q3)$I>OpJM|_<(o(^0Sh~7*Wy4#BcX1<8CX9@DA2TDEl^RmorD|^}Q8t z`SN7@WToIk5H8@aq-kNuD*kK(yfKho-Q0wj!#7+3C7DUjuw?cC@Qq@xXLBQvzEHtH z9vg^A3RY8CRmyo5kU>Ak_)Jwdm0_CWS1beUWRKx=`PZ{#+)Q3Ms0vDf_1?)|<(kjh z8V`0j)M>$!qf1{!ql8;VS9i@g8XgUX=M(wqUtFya+>rq~7?PlXuT?q<*UZV{gRww)>cAqUw62JVo)@x2}xu!=EU4H`EQRaE5k z!w1Y!^Um(^oi5Kg0uxUr!V&Qx=v>^fXDib$&&^LzRD3rUfVbL=dt!DsTQW!H1?ebV zx)T2hv0q=~aVue2LADZ;AM8tIycgp>4q5*Qhk4j%@7!z+rmeutMbXam)$1?HDARTY zjHjC?ggc$<`6PRh;YEw^CY&zvuAo|Y9qZz|K9{>ek1vz@XKni(JjEic39Hpcu7OeW z4*(6g{h3n@Z-LkgLGkRrV$=o<&~m7!bQdxN)Btm#FpCjMv2qCaGUprf%Vm1WM(IDF z^2KvCDm9~|y*F`g4tUDgqKkvO{inw;wg=1=u_tQU#gxZ76K^O0Ccm($W zfH#KoZ3m|Bnjb>kB)i^POAV$IIKCQB_w_AC&2g94`(W%L^2e@wKWq8dP)ew0 z_p(cJo|2S$ee8PVg5T4-sxy+@qoac@!5cy5z3v@$LeYw|@?$wmKWlWgGvsdKDuY3R1lkJfh<9dT`y}LcJM3vD;|6M46tfY zi{N!bB3xQ5;}J8i{~~XCObf%j7h-?jeJ|OgkVjsf{vhu7jVtRAF`w0in`F!c>z_|@i5HEd;jWCu`cD5;lJpahsNXa@&R>#9BWp*?9xJT( zCced1-L;mHw=Tphf7_xrq|E<)^=BrQ>tB_$7Bt82zyHpIM#HI0wjn5P5%w==Z$-uH za2YNJki9&6&ukSNj)Namc;w4AZ2F23QGAB_ch#@mJ)7?!!CQw8sp}O!X_Jw91+xD^ zqPo~�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 literal 0 HcmV?d00001 From fa79c4b9b3013cfacf8db837106550ccb529523b Mon Sep 17 00:00:00 2001 From: Aaron Bach Date: Sun, 11 Nov 2018 06:11:20 -0700 Subject: [PATCH 41/83] Add docs for Flu Near You (#7345) * Add docs for Flu Near You * Small update * :pencil2: Typo fix * :arrow_up: ha_release 0.83 --- source/_components/sensor.flunearyou.markdown | 64 ++++++++++++++++++ source/images/supported_brands/flunearyou.png | Bin 0 -> 8361 bytes 2 files changed, 64 insertions(+) create mode 100644 source/_components/sensor.flunearyou.markdown create mode 100644 source/images/supported_brands/flunearyou.png diff --git a/source/_components/sensor.flunearyou.markdown b/source/_components/sensor.flunearyou.markdown new file mode 100644 index 00000000000..71514a95641 --- /dev/null +++ b/source/_components/sensor.flunearyou.markdown @@ -0,0 +1,64 @@ +--- +layout: page +title: "Flu Near You" +description: "Instructions on how to use Flu Near You data within Home Assistant" +date: 2018-11-02 21:05 +sidebar: true +comments: false +sharing: true +footer: true +logo: flunearyou.jpg +ha_category: Health +ha_release: 0.83 +ha_iot_class: "Cloud Polling" +--- + +The `flunearyou` sensor platform allows users in the United States and its +territories to get information regarding reported flu symptoms from Flu Near +You. The platform can return user-reported information as well reports from the +Center for Disease Control (CDC). + +## {% linkable_title Configuration %} + +To enable the platform, add the following lines to your `configuration.yaml` +file: + +```yaml +sensor: + - platform: flunearyou +``` + +{% configuration %} +monitored_conditions: + description: The sensor categories to display. + required: false + type: list + default: ['cdc_report', 'user_report'] +latitude: + description: The latitude of the location to monitor. + required: optional + type: string + default: The latitude defined under the `homeassistant` key in `configuration.yaml`. +longitude: + description: The longitude of the location to monitor. + required: optional + type: string + default: The longitude defined under the `homeassistant` key in `configuration.yaml`. +{% endconfiguration %} + +## {% linkable_title Sensor Types %} + +### User Report + +* Number of reported cases of [Avian Flu](https://www.cdc.gov/flu/avianflu/index.htm) symptoms +* Number of reported cases of [Dengue](https://www.cdc.gov/dengue/index.html) symptoms +* Number of reported cases of [Flu](https://www.cdc.gov/flu/) symptoms +* Number of reported cases of [Flu-like](https://en.wikipedia.org/wiki/Influenza-like_illness) symptoms +* Number of reported cases of [Leptospirosis](https://www.cdc.gov/leptospirosis/index.html) symptoms +* Total number of reported cases with symptoms +* Number of reported cases with no symptoms + +### CDC Report + +* Current CDC level for the state +* Current CDC "Level 2" for the state diff --git a/source/images/supported_brands/flunearyou.png b/source/images/supported_brands/flunearyou.png new file mode 100644 index 0000000000000000000000000000000000000000..773c720e9f714b4e305b4b32f996f708025cdb63 GIT binary patch literal 8361 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 Date: Sun, 11 Nov 2018 13:13:59 +0000 Subject: [PATCH 42/83] Adds documentation for Lupusec alarm control panel (#6601) * Adds documentation for Lupusec alarm control panel * Fixes to the example conf * :arrow_up: Updates ha_release * Adds back minimal example * clarified default scan_interval; improved speeling * updated version, small fixes * description of component fixed --- .../alarm_control_panel.lupusec.markdown | 18 +++++++ .../binary_sensor.lupusec.markdown | 20 +++++++ source/_components/lupusec.markdown | 51 ++++++++++++++++++ source/_components/switch.lupusec.markdown | 20 +++++++ source/images/supported_brands/lupusec.jpg | Bin 0 -> 17621 bytes 5 files changed, 109 insertions(+) create mode 100644 source/_components/alarm_control_panel.lupusec.markdown create mode 100644 source/_components/binary_sensor.lupusec.markdown create mode 100644 source/_components/lupusec.markdown create mode 100644 source/_components/switch.lupusec.markdown create mode 100644 source/images/supported_brands/lupusec.jpg diff --git a/source/_components/alarm_control_panel.lupusec.markdown b/source/_components/alarm_control_panel.lupusec.markdown new file mode 100644 index 00000000000..432a7da93ae --- /dev/null +++ b/source/_components/alarm_control_panel.lupusec.markdown @@ -0,0 +1,18 @@ +--- +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/binary_sensor.lupusec.markdown b/source/_components/binary_sensor.lupusec.markdown new file mode 100644 index 00000000000..4367bde3b0d --- /dev/null +++ b/source/_components/binary_sensor.lupusec.markdown @@ -0,0 +1,20 @@ +--- +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/lupusec.markdown b/source/_components/lupusec.markdown new file mode 100644 index 00000000000..d26b74319ea --- /dev/null +++ b/source/_components/lupusec.markdown @@ -0,0 +1,51 @@ +--- +layout: page +title: "Lupus Electronics Home Security" +description: "Instructions on integrating Lupusec home security with Home Assistant." +date: 2018-10-03 16:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: lupusec.jpg +ha_category: Hub +ha_release: 0.83 +ha_iot_class: "Local Polling" +--- + +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. + +- [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. + +To use Lupusec devices in your installation, add the following `lupusec` section to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +lupusec: + username: YOUR_USERNAME + password: YOUR_PASSWORD + ip_address: 192.168.178.35 +``` + +{% configuration %} +username: + description: The login username of your Lupusec alarm panel. + required: true + type: string +password: + description: The login password of your Lupusec alarm panel. + required: true + type: string +ip_address: + 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 diff --git a/source/_components/switch.lupusec.markdown b/source/_components/switch.lupusec.markdown new file mode 100644 index 00000000000..f526e35da2a --- /dev/null +++ b/source/_components/switch.lupusec.markdown @@ -0,0 +1,20 @@ +--- +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/images/supported_brands/lupusec.jpg b/source/images/supported_brands/lupusec.jpg new file mode 100644 index 0000000000000000000000000000000000000000..003f29e4db903ab4366d4269d9d4156a5e6a0c31 GIT binary patch literal 17621 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 Date: Sun, 11 Nov 2018 06:14:21 -0700 Subject: [PATCH 43/83] Add docs for 17track.net sensor platform (#7303) * Add docs for 17track.net sensor platform * Addressing feedback * :arrow_up: ha_release --- source/_components/sensor.17track.markdown | 52 +++++++++++++++++++++ source/images/supported_brands/17track.png | Bin 0 -> 9621 bytes 2 files changed, 52 insertions(+) create mode 100644 source/_components/sensor.17track.markdown create mode 100644 source/images/supported_brands/17track.png diff --git a/source/_components/sensor.17track.markdown b/source/_components/sensor.17track.markdown new file mode 100644 index 00000000000..e0e67280181 --- /dev/null +++ b/source/_components/sensor.17track.markdown @@ -0,0 +1,52 @@ +--- +layout: page +title: "17track.net" +description: "Instructions on how to use 17track.net data within Home Assistant" +date: 2018-10-31 10:42 +sidebar: true +comments: false +sharing: true +footer: true +logo: 17track.jpg +ha_category: Postal Service +ha_release: 0.83 +ha_iot_class: "Cloud Polling" +--- + +The 17track.net sensor platform allows users to get package data tied to their +17track.net account. The platform creates both summary sensors, which show the +number of packages in a current state (e.g., "In Transit"), as well as +individual sensors for each package within the account. + +## {% linkable_title Configuration %} + +To enable the platform, add the following lines to your `configuration.yaml` +file: + +```yaml +sensor: + - platform: seventeentrack + username: + password: +``` + +{% configuration %} +username: + description: The email address associated with your 17track.net account. + required: true + type: string +password: + description: The password associated with your 17track.net account. + required: true + type: string +show_archived: + description: Whether sensors should be created for archived packages. + required: false + type: boolean + default: false +show_delivered: + description: Whether sensors should be created for delivered packages. + required: false + type: boolean + default: false +{% endconfiguration %} diff --git a/source/images/supported_brands/17track.png b/source/images/supported_brands/17track.png new file mode 100644 index 0000000000000000000000000000000000000000..c6107b45e860e851529bb9499e843d71efef6c93 GIT binary patch literal 9621 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 Date: Sun, 11 Nov 2018 06:16:20 -0700 Subject: [PATCH 44/83] Add option to manually specify device detection method (#7145) * Add option to manually specify device detection method * :pencil2: Tweak --- source/_components/device_tracker.mikrotik.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_components/device_tracker.mikrotik.markdown b/source/_components/device_tracker.mikrotik.markdown index 5476d7902bc..1183060b972 100644 --- a/source/_components/device_tracker.mikrotik.markdown +++ b/source/_components/device_tracker.mikrotik.markdown @@ -59,6 +59,10 @@ port: required: false default: 8728 type: integer +method: + description: Override autodetection of device scanning method. Can be `wireless` to use local wireless registration, `capsman` for capsman wireless registration, or `ip` for DHCP leases. + required: false + type: string {% endconfiguration %} See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. From 6b57b803665af1ab0249f75127cfdafa543bdebd Mon Sep 17 00:00:00 2001 From: Rohan Kapoor Date: Sun, 11 Nov 2018 07:16:42 -0600 Subject: [PATCH 45/83] Split out geofency into a new component and device_tracker platform (#7218) * Split out geofency into a new component and device_tracker platform * Switch geofency ha_category to "Presence Detection" * :arrow_up: ha_release --- .../device_tracker.geofency.markdown | 35 +++------------ source/_components/geofency.md | 44 +++++++++++++++++++ 2 files changed, 50 insertions(+), 29 deletions(-) create mode 100644 source/_components/geofency.md diff --git a/source/_components/device_tracker.geofency.markdown b/source/_components/device_tracker.geofency.markdown index e6f68b9efa8..13f4a773e50 100644 --- a/source/_components/device_tracker.geofency.markdown +++ b/source/_components/device_tracker.geofency.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "Geofency" +title: "Geofency Device Tracker" description: "Instructions for how to use Geofency to track devices in Home Assistant." date: 2017-08-22 19:00 sidebar: true @@ -10,37 +10,14 @@ footer: true logo: geofency.png ha_category: Presence Detection ha_release: 0.53 +ha_iot_class: "Cloud Push" --- -This platform allows you to detect presence using [Geofency](http://www.geofency.com/). Geofency is a [paid app](https://itunes.apple.com/app/id615538630) for iOS that lets users to configure a request that will be sent when a geofence or iBeacon region is entered or exited. This can be configured with Home Assistant to update your location. +This platform allows you to detect presence using [Geofency](http://www.geofency.com/). -To integrate Geofency in Home Assistant, add the following section to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -device_tracker: - - platform: geofency -``` - -{% configuration %} -mobile_beacons: - description: List of beacon names that are to be treated as *mobile*. The name must match the name you configure in Geofency. By default, beacons will be treated as *stationary*. - required: false - type: list -{% endconfiguration %} - -A full sample configuration for the `geofency` platform is shown below: - -```yaml -# Example configuration.yaml entry -device_tracker: - - platform: geofency - mobile_beacons: - - 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. +

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

    Geofency will automatically generate the device tracker name used for geofences, and you will find it in `known_devices.yaml` after the first request. For beacons, the device name will be `beacon_`, e.g., `device_tracker.beacon_car`. diff --git a/source/_components/geofency.md b/source/_components/geofency.md new file mode 100644 index 00000000000..bff78c98327 --- /dev/null +++ b/source/_components/geofency.md @@ -0,0 +1,44 @@ +--- +layout: page +title: "Geofency" +description: "Instructions for how to use Geofency to track devices in Home Assistant." +date: 2017-08-22 19:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: geofency.png +ha_category: Presence Detection +ha_release: 0.83 +ha_iot_class: "Cloud Push" +--- + +This component sets up integration with [Geofency](http://www.geofency.com/). Geofency is a [paid app](https://itunes.apple.com/app/id615538630) for iOS that lets users to configure a request that will be sent when a geofence or iBeacon region is entered or exited. This can be configured with Home Assistant to update your location. + +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: + +```yaml +# Example configuration.yaml entry +geofency: +``` + +{% configuration %} +mobile_beacons: + description: List of beacon names that are to be treated as *mobile*. The name must match the name you configure in Geofency. By default, beacons will be treated as *stationary*. + required: false + type: list +{% endconfiguration %} + +A full sample configuration for the `geofency` component is shown below: + +```yaml +# Example configuration.yaml entry +geofency: + mobile_beacons: + - 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. From bbba17a8111857ad82b5da63eca188b761dfed8f Mon Sep 17 00:00:00 2001 From: Andrea Tosatto Date: Sun, 11 Nov 2018 14:24:15 +0100 Subject: [PATCH 46/83] New component tplink_lte with SMS notify service (#6485) * New component tplink_lte with SMS notify service * :pencil2: Tweak * :pencil2: Tweak * Updated configuration to handle notify discovery. Bumped ha_release to 0.82 * Bumped ha_release to 0.83. Added ha_io_class to notify * :pencil2: Typo --- source/_components/notify.tplink_lte.markdown | 18 ++++++ source/_components/tplink_lte.markdown | 59 +++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 source/_components/notify.tplink_lte.markdown create mode 100644 source/_components/tplink_lte.markdown diff --git a/source/_components/notify.tplink_lte.markdown b/source/_components/notify.tplink_lte.markdown new file mode 100644 index 00000000000..727014eb34a --- /dev/null +++ b/source/_components/notify.tplink_lte.markdown @@ -0,0 +1,18 @@ +--- +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/tplink_lte.markdown b/source/_components/tplink_lte.markdown new file mode 100644 index 00000000000..1adabfe82d9 --- /dev/null +++ b/source/_components/tplink_lte.markdown @@ -0,0 +1,59 @@ +--- +layout: page +title: "TP-Link LTE" +description: "Instructions on how to integrate your TP-Link LTE routers within Home Assistant." +date: 2018-10-03 21:30 +sidebar: true +comments: false +sharing: true +footer: true +logo: tp-link.png +ha_release: 0.83 +ha_category: Network +ha_iot_class: "Local Polling" +--- + +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). + +The integration provides a notification service that will send an SMS. + +## {% linkable_title Configuration %} + +To enable the component, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +tplink_lte: + - host: IP_ADDRESS + password: SECRET + notify: + - name: sms1 + target: "+15105550123" + - name: sms2 + target: "+55520525252" +``` + +{% configuration %} +host: + 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 +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 +{% endconfiguration %} From 618132c67c02c6a8bbf7d00b1c14fd3b85855166 Mon Sep 17 00:00:00 2001 From: Ian Richardson Date: Sun, 11 Nov 2018 07:33:08 -0600 Subject: [PATCH 47/83] Some service-row fields are now optional (#7201) * service-data now optional https://github.com/home-assistant/home-assistant-polymer/pull/1894 * additional fields made optional `icon` and `action_name` will be optional as well * :ambulance: Fixes build --- source/_lovelace/entities.markdown | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/source/_lovelace/entities.markdown b/source/_lovelace/entities.markdown index ef9ead7d25f..1e99fbfef61 100644 --- a/source/_lovelace/entities.markdown +++ b/source/_lovelace/entities.markdown @@ -72,20 +72,22 @@ name: required: true description: Main Label. type: string -icon: - required: true - description: "Icon to display (e.g., `mdi:home`)" - type: string -action_name: - required: true - description: Button label. - type: string service: required: true description: "Service like `media_player.media_play_pause`" type: string +icon: + required: false + description: "Icon to display (e.g., `mdi:home`)" + type: string + default: "`mdi:remote`" +action_name: + required: false + description: Button label. + type: string + default: "`Run`" service_data: - required: true + required: false description: The service data to use. type: object {% endconfiguration %} From 01f8ca6e242a401c32feb1c5f4fb1cbdf7b6c58f Mon Sep 17 00:00:00 2001 From: bouni Date: Sun, 11 Nov 2018 17:39:40 +0100 Subject: [PATCH 48/83] Update Swiss Hydrological Data documentation (#6535) * Update Swiss Hydrological Data documentation * Update * Fix typo and style * Fix my copy-&-paste mistake: --- .../sensor.swiss_hydrological_data.markdown | 48 +++++++++---------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/source/_components/sensor.swiss_hydrological_data.markdown b/source/_components/sensor.swiss_hydrological_data.markdown index c6110b8f7c5..03283941fda 100644 --- a/source/_components/sensor.swiss_hydrological_data.markdown +++ b/source/_components/sensor.swiss_hydrological_data.markdown @@ -13,15 +13,11 @@ ha_iot_class: "Cloud Polling" ha_release: 0.22 --- -

    - This sensor doesn't work at the moment due to changed by the [Swiss Federal Office for the Environment (Bundesamt für Umwelt - Abt. Hydrologie)](http://www.hydrodaten.admin.ch) to access the data. -

    - The `swiss_hydrological_data` sensor will show you details (temperature, level, and discharge) of rivers and lakes in Switzerland. ## {% linkable_title Setup %} -The [station overview](http://www.hydrodaten.admin.ch/en/danger-levels-table.html) contains a list of all available measuring points and will help to determine the ID of station which is needed for the configuration. +The [station overview](https://www.hydrodaten.admin.ch/en/stations-and-data.html) contains a list of all available measuring points and will help to determine the ID of station which is needed for the configuration. ## {% linkable_title Configuration %} @@ -32,6 +28,10 @@ To enable this sensor, add the following lines to your `configuration.yaml` file sensor: - platform: swiss_hydrological_data station: STATION_ID + monitored_conditions: + - temperature + - level + - discharge ``` {% configuration %} @@ -39,29 +39,27 @@ station: description: The ID of the measurement point. required: true type: string -name: - description: Name to use in the frontend. +monitored_conditions: + description: The list of measurements you want to use. Available is `temperature`, `level` or `discharge`. required: false - type: string - default: + type: list + default: temperature {% endconfiguration %} -The hydrological measurings are coming from the [Swiss Federal Office for the Environment (Bundesamt für Umwelt - Abt. Hydrologie)](http://www.hydrodaten.admin.ch) and are updated almost in real-time. +Sensors are exposing additional values through their attributes for all available conditions: -## {% linkable_title Example %} - -This sensor contains additional information which an easily accessed by a [template sensor](/components/sensor.template/). - -{% raw %} -```yaml -# Example configuration.yaml entry -sensor: - platform: template - sensors: - discharge: - value_template: '{{ states.sensor.aare.attributes.Discharge }}' - friendly_name: 'Discharge' -``` -{% endraw %} +- `delta-24h`: The delta measurement for the last 24 hours. +- `max-1h`: The maximum measurement for the last hour. +- `max-24h`: The maximum measurement for the last 24 hours. +- `mean-1h`: The mean measurement for the last hour. +- `mean-24h`: The mean measurement for the last 24 hours. +- `min-1h`: The minimum measurement for the last hour. +- `min-24h`: The minimum measurement for the last 24 hours. +- `previous-24h`: The previous measurement for the last 24 hours. +- `station_update`: There is a time span between the sensor update in Home Assistant and the updates from the stations. Include those information if you are building automations based on the discharge of a water body. +

    + The sensors don't show the latest measurement, but those from the last hour due to the source of data. Some stations also don't provide data for certain measurements. +

    +The hydrological measurements are coming from the [Swiss Federal Office for the Environment (Bundesamt für Umwelt - Abt. Hydrologie)](http://www.hydrodaten.admin.ch) and are updated every 10 minutes. From 4baaa238e4040c1d72189a512a517340fe92074a Mon Sep 17 00:00:00 2001 From: blakadder Date: Mon, 12 Nov 2018 11:12:54 +0100 Subject: [PATCH 49/83] Update xiaomi_aqara.markdown (#7477) --- source/_components/xiaomi_aqara.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/xiaomi_aqara.markdown b/source/_components/xiaomi_aqara.markdown index c01577030b0..3cc0785fbc6 100644 --- a/source/_components/xiaomi_aqara.markdown +++ b/source/_components/xiaomi_aqara.markdown @@ -98,7 +98,7 @@ gateways: type: map keys: mac: - description: The MAC address of your gateway. *Optional if only using one gateway.* + description: The MAC address of your gateway. Needs to be formatted without ":". *Optional if only using one gateway.* required: false type: string key: From beb2941a8fe13af8b53f3c90e3d0fe1d7b378d46 Mon Sep 17 00:00:00 2001 From: Jorim Tielemans Date: Mon, 12 Nov 2018 11:26:37 +0100 Subject: [PATCH 50/83] Update coinbase.markdown with new docs (#7412) * Update coinbase.markdown Delete trailing spaces Keep example configuration minimal Add new `account_balance_currencies` option * Added a full configuration example --- source/_components/coinbase.markdown | 34 ++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/source/_components/coinbase.markdown b/source/_components/coinbase.markdown index f45ffa69888..1b8211a9578 100644 --- a/source/_components/coinbase.markdown +++ b/source/_components/coinbase.markdown @@ -13,7 +13,6 @@ ha_release: 0.61 ha_iot_class: "Cloud Polling" --- - The `coinbase` component lets you access account balances and exchange rates from [coinbase](https://coinbase.com). You will need to obtain an API key from coinbase's [developer site](https://www.coinbase.com/settings/api) to use this component. You need to give read access to `wallet:accounts` in order for the component to access relevant data. @@ -25,12 +24,8 @@ To set it up, add the following information to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry coinbase: - api_key: YOUR_API_KEY - api_secret: YOUR_API_SECRET - exchange_rate_currencies: - - BTC - - ETH - - LTC + api_key: YOUR_API_KEY + api_secret: YOUR_API_SECRET ``` {% configuration %} @@ -42,8 +37,33 @@ api_secret: description: Your API secret to access coinbase. required: true type: string +account_balance_currencies: + description: List of currencies to create account wallet sensors for. + required: false + type: list + default: all account wallets exchange_rate_currencies: description: List of currencies to create exchange rate sensors for. required: false type: list {% endconfiguration %} + +Possible currencies are codes that conform to the ISO 4217 standard where possible. Currencies which have or had no representation in ISO 4217 may use a custom code (e.g. BTC). A list of values can be obtained via https://api.coinbase.com/v2/currencies, for more information visit [the Coinbase API documentation](https://developers.coinbase.com/api/v2#get-currencies). + +## {% linkable_title Full configuration example %} + +A full configuration sample including optional variables: + +```yaml +# Example configuration.yaml entry +coinbase: + api_key: YOUR_API_KEY + api_secret: YOUR_API_SECRET + account_balance_currencies: + - EUR + - BTC + exchange_rate_currencies: + - BTC + - ETH + - LTC +``` From 67516728171f5a50c57154cd5e570daadd107f43 Mon Sep 17 00:00:00 2001 From: bonanitech Date: Mon, 12 Nov 2018 05:53:01 -0500 Subject: [PATCH 51/83] Update Lovelace Weather Forecast Card screenshot (#7472) --- source/images/lovelace/lovelace_weather.png | Bin 33853 -> 72984 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/source/images/lovelace/lovelace_weather.png b/source/images/lovelace/lovelace_weather.png index 808038b63ab453d7da728b08cdfe5816b15b6707..83b15bf7732a74844f7cc7d4265eda08f35f306b 100644 GIT binary patch literal 72984 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 A+yDRo From 659e0a6a57fc5334973f7332031beca4bc7ed099 Mon Sep 17 00:00:00 2001 From: Dries De Peuter Date: Mon, 12 Nov 2018 15:57:16 +0100 Subject: [PATCH 52/83] Add niko-home-control documentation (#5137) * Add niko-home-control documentation * Updates --- .../light.niko_home_control.markdown | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 source/_components/light.niko_home_control.markdown diff --git a/source/_components/light.niko_home_control.markdown b/source/_components/light.niko_home_control.markdown new file mode 100644 index 00000000000..6a513b90ac0 --- /dev/null +++ b/source/_components/light.niko_home_control.markdown @@ -0,0 +1,33 @@ +--- +layout: page +title: "Niko Home Control Light" +description: "Instructions on how to integrate Niko Home Control lights into Home Assistant." +date: 2018-04-08 08:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Light +ha_iot_class: "Local Polling" +ha_release: 0.82 +--- + +The `niko_home_control` platform allows you to integrate your [Niko Home Control](https://www.niko.eu/enus/products/niko-home-control) into Home Assistant. + +## {% linkable_title Configuration %} + +To enable this lights, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +light: + - platform: niko_home_control + host: IP_ADDRESS +``` + +{% configuration %} +host: + description: The IP address of the Niko Home light. + required: false + type: string +{% endconfiguration %} From 15aa288168e81dff750472c05691263192dd0411 Mon Sep 17 00:00:00 2001 From: Omer Efrat Date: Wed, 14 Nov 2018 11:49:25 +0200 Subject: [PATCH 53/83] media_player.plex: Add note (#7501) --- source/_components/media_player.plex.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/media_player.plex.markdown b/source/_components/media_player.plex.markdown index 45db859c70e..7e87fa2014d 100644 --- a/source/_components/media_player.plex.markdown +++ b/source/_components/media_player.plex.markdown @@ -175,3 +175,4 @@ Plays a song, playlist, TV episode, or video on a connected client. ``` If this occurs, check the setting `Server`>`Network`>`Secure connections` in your Plex Media Server: if it is set to `Preferred` or `Required`, you may need to manually set the `ssl` and `verify` booleans in the `plex.conf` file to, respectively, `true` and `false`. See the **"Setup"** section above for details. +* Movies must be located under 'Movies' section in the Plex library to properly get 'playing' state. From caf10a14c88e66d2e0d0c78e0c30e5f9ad62b989 Mon Sep 17 00:00:00 2001 From: Maikel Punie Date: Wed, 14 Nov 2018 15:40:52 +0100 Subject: [PATCH 54/83] Re-enabled climta.velbus (#7489) --- source/_components/climate.velbus.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/source/_components/climate.velbus.markdown b/source/_components/climate.velbus.markdown index 45ca48a54b1..a24345f49cb 100644 --- a/source/_components/climate.velbus.markdown +++ b/source/_components/climate.velbus.markdown @@ -11,7 +11,6 @@ logo: velbus.png ha_category: Climate ha_iot_class: "Local Push" ha_release: 0.82 -published: false --- The `velbus` climate devices allow you to control [Velbus](http://www.velbus.eu) connected thermostats. From 457445f0002b9bca4db0f1499e1c5ffba4262401 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Thu, 15 Nov 2018 20:31:07 +0100 Subject: [PATCH 55/83] :ambulance: :arrow_up: ha_release 0.83 on Velbus climate component (#7518) --- source/_components/climate.velbus.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/climate.velbus.markdown b/source/_components/climate.velbus.markdown index a24345f49cb..5a95e769a94 100644 --- a/source/_components/climate.velbus.markdown +++ b/source/_components/climate.velbus.markdown @@ -10,7 +10,7 @@ footer: true logo: velbus.png ha_category: Climate ha_iot_class: "Local Push" -ha_release: 0.82 +ha_release: 0.83 --- The `velbus` climate devices allow you to control [Velbus](http://www.velbus.eu) connected thermostats. From c27f365ca1a175862aca19b19bda98174e8e60dc Mon Sep 17 00:00:00 2001 From: cdce8p <30130371+cdce8p@users.noreply.github.com> Date: Fri, 16 Nov 2018 11:09:09 +0100 Subject: [PATCH 56/83] Add safe_mode HomeKit (#7516) --- source/_components/homekit.markdown | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown index 790ff6cca93..081ec7916b7 100644 --- a/source/_components/homekit.markdown +++ b/source/_components/homekit.markdown @@ -73,6 +73,11 @@ homekit: description: The local network IP address. Only necessary if the default from Home Assistant does not work. required: false type: string + safe_mode: + description: Only set this parameter if you encounter issues during pairing. ([Safe Mode](#safe-mode)) + required: false + type: boolean + default: false filter: description: Filters for entities to be included / excluded from HomeKit. ([Configure Filter](#configure-filter)) required: false @@ -253,6 +258,24 @@ Filters are applied as follows: - if entity include and exclude, the entity exclude is ignored +## {% linkable_title Safe Mode %} + +The `safe_mode` option should only be used (and only works) if you encounter issues during the pairing. ([Paring hangs - zeroconf error](#pairing-hangs---zeroconf-error)) + +To use `safe_mode`, add the option to your `homekit` config: +```yaml +homekit: + 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. + +

    +To avoid any errors, after you have successfully paired your Home Assistant Bridge, remove the `safe_mode` option from your config and restart Home Assistant. +

    + + + ## {% linkable_title Supported Components %} The following components are currently supported: @@ -319,7 +342,7 @@ You might have paired the `Home Assistant Bridge` already. If not, delete the `. For `Docker` users: make sure to set `network_mode: host`. Other reasons could be network related. Make sure to check your router configuration. For some it helped when the Home Assistant device was using WIFI, not LAN. Remember that the iOS device needs to be in the same local network as the Home Assistant device for paring. #### {% linkable_title Pairing hangs - zeroconf error %} -Paining eventually fails, you might see and an error message `NonUniqueNameException`. To resolve this, you need to replace a specific file. See the following git issues for more details: [home-assistant#14567](https://github.com/home-assistant/home-assistant/issues/14567) and [home-assistant#17181](https://github.com/home-assistant/home-assistant/issues/17181) +Pairing eventually fails, you might see and an error message `NonUniqueNameException`. Add the `safe_mode` option to your config. See [safe_mode](#safe-mode) #### {% linkable_title Pairing hangs - only works with debug config %} Pairing works fine when the filter is set to only include `demo.demo`, but fails with normal config. See [specific entity doesn't work](#specific-entity-doesnt-work) From 28a7c84c21f0a1fe13541f1a8e825c4bfd450469 Mon Sep 17 00:00:00 2001 From: Heiko Rothe Date: Mon, 19 Nov 2018 09:27:08 +0100 Subject: [PATCH 57/83] Add room-assistant to mqtt discovery support list (#7575) --- source/_docs/mqtt/discovery.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index f4d390e7911..ba33b4fab6a 100644 --- a/source/_docs/mqtt/discovery.markdown +++ b/source/_docs/mqtt/discovery.markdown @@ -188,6 +188,7 @@ The following firmware for ESP8266, ESP32 and Sonoff unit has built-in support f - [esphomeyaml](https://esphomelib.com/esphomeyaml/index.html) - [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) ### {% linkable_title Examples %} From 12cda23e020b5c9022b81db4b247bf35f079dd4b Mon Sep 17 00:00:00 2001 From: Jeff Irion Date: Mon, 19 Nov 2018 03:45:55 -0800 Subject: [PATCH 58/83] Add documentation for updated Fire TV component (#7062) * Add documentation for updated Fire TV component * Add the default locations for the adbkey files * Use configuration tags, change 'setup' to 'set up' * Add hyperlink * Fixed a typo * Put the 'Important' message in a note box --- .../_components/media_player.firetv.markdown | 100 +++++++++++------- 1 file changed, 62 insertions(+), 38 deletions(-) diff --git a/source/_components/media_player.firetv.markdown b/source/_components/media_player.firetv.markdown index b2abdca1113..4ca7e150c8c 100644 --- a/source/_components/media_player.firetv.markdown +++ b/source/_components/media_player.firetv.markdown @@ -14,9 +14,7 @@ ha_iot_class: "Local Polling" --- -The `firetv` platform allows you to control a [Amazon Fire TV/stick](https://www.amazon.com/b/?node=8521791011). - -The python-firetv Python 2.x module with its helper script that exposes an HTTP server to fetch state and perform actions is used. +The `firetv` platform allows you to control an [Amazon Fire TV/stick](https://www.amazon.com/b/?node=8521791011). Steps to configure your Amazon Fire TV stick with Home Assistant: @@ -27,59 +25,85 @@ Steps to configure your Amazon Fire TV stick with Home Assistant: - Find Amazon Fire TV device IP: - From the main (Launcher) screen, select Settings. - Select System > About > Network. -- The following commands must be run in a Python 2.x environment. They will allow the component to function in an Ubuntu 16.04/Hassbian environment. - - `apt-get install swig libssl-dev python-dev libusb-1.0-0 python-yaml` - - `pip install flask` - - `pip install https://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-0.24.0.tar.gz` - - `pip install firetv[firetv-server]` -- `firetv-server -d :5555`, background the process -- Navigate to http://localhost:5556/devices/list - - You will get an output similar to below: -```json -{ - "devices": { - "default": { - "host": "192.168.1.153:5555", - "state": "play" - } - } -} -``` -- The `"default"` above is the device name you will need to use for your `configuration.yaml` -- Configure Home Assistant as follows: To add FireTV to your installation, Note your device name, and add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry media_player: + # a device that does not require ADB authentication - platform: firetv + name: Fire TV 1 + host: 192.168.0.111 + + # a device that does require ADB authentication + - platform: firetv + name: Fire TV 2 + 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 + - platform: firetv + name: Fire TV 3 + host: 192.168.0.123 + get_source: false + get_sources: false ``` {% configuration %} host: - description: "The host where `firetv-server` is running." - required: false + description: The IP address for your Fire TV device. + required: true type: string - default: localhost -port: - description: "The port where `firetv-server` is running." - required: false - type: integer - default: 5556 -device: - description: The device ID. - required: false - type: string - default: default name: description: The friendly name of the device. required: false - type: string default: Amazon Fire TV + type: string +port: + description: The port for your Fire TV device. + required: false + default: 5555 + type: integer +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. + required: false + default: true + type: boolean +get_sources: + description: Whether or not to retrieve the running apps as the list of sources. + required: false + default: true + type: boolean {% endconfiguration %} +### {% 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). +

    -Note that python-firetv has support for multiple Amazon Fire TV devices. If you have more than one configured, be sure to specify the device ID in `device`. Run `firetv-server -h` and/or view the source for complete capabilities. + In the dialog appearing on your Fire TV, you must check the box that says "always allow connections from this device." ADB authentication in Home Assistant will only work using a trusted key.

    +Once you've successfully connected to your Fire TV via the command `adb connect `, the files `adbkey` and `adbkey.pub` will be created on your computer. The default locations for these files are (from [https://developer.android.com/studio/command-line/adb](https://developer.android.com/studio/command-line/adb)): + +* Linux and Mac: `$HOME/.android.` +* Windows: `%USERPOFILE%\.android.` + +Copy the `adbkey` and `adbkey.pub` files to your Home Assistant folder and add the path to the `adbkey` file to your configuration. + +#### ADB Troubleshooting + +If you receive the error message `Issue: Error while setting up platform firetv` in your log when trying to set up a Fire TV device with an ADB key, then there is probably an issue with your ADB key. Here are some possible causes. + +1. ADB is not enabled on your Fire TV. To remedy this, enable ADB by following the instructions above. + +2. Your key is not pre-authenticated. Before using the `adbkey` in Home Assistant, you _**must**_ connect to your Fire TV device using the ADB binary and tell the Fire TV to always allow connections from this computer. For more information, see the section "ADB Authentication (for Fire TV devices with recent software)" above. + +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. + +4. You are already connected to the Fire TV via ADB from another device. Only one device can be connected, so disconnect the other device, restart the Fire TV (for good measure), and then restart Home Assistant. From a1e3c14550106f9ab2007ce88bdf887a4e21e6a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?So=C3=B3s=20P=C3=A9ter?= Date: Tue, 20 Nov 2018 00:42:56 +0100 Subject: [PATCH 59/83] Added api-ssl related documentation (#7184) * Added api-ssl related documentation * Updated to refer to the last changes in parent PR * Fixed typos * Fixed conflicts Fixed conflicts with the home-assistant/home-assistant.io --- .../device_tracker.mikrotik.markdown | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/source/_components/device_tracker.mikrotik.markdown b/source/_components/device_tracker.mikrotik.markdown index 1183060b972..8e839945c87 100644 --- a/source/_components/device_tracker.mikrotik.markdown +++ b/source/_components/device_tracker.mikrotik.markdown @@ -30,7 +30,7 @@ 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 an 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 @@ -57,12 +57,30 @@ password: port: description: Mikrotik API port. required: false - default: 8728 + default: 8728 (or 8729 if ssl is true) type: integer +ssl: + description: Use api_ssl service instead of api. + required: false + default: false + type: boolean method: description: Override autodetection of device scanning method. Can be `wireless` to use local wireless registration, `capsman` for capsman wireless registration, or `ip` for DHCP leases. required: false 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: + +```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 +/certificate sign "Self signed demo certificate for API" +/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: + +```bash +/ip service disable api +``` See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. From 71d5777801c89de7c025a21b01b76ed204af098a Mon Sep 17 00:00:00 2001 From: Eric Nagley Date: Mon, 19 Nov 2018 18:44:41 -0500 Subject: [PATCH 60/83] Update docs to reflect new fan speed control. (#7462) --- source/_components/google_assistant.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/google_assistant.markdown b/source/_components/google_assistant.markdown index 7a8872c387e..6fee46b118c 100644 --- a/source/_components/google_assistant.markdown +++ b/source/_components/google_assistant.markdown @@ -179,7 +179,7 @@ Currently, the following domains are available to be used with Google Assistant, - scene (on) - script (on) - switch (on/off) -- fan (on/off) +- fan (on/off/speed) - light (on/off/brightness/rgb color/color temp) - lock (lock/unlock (to allow assistant to unlock, set the `allow_unlock` key in configuration)) - cover (on/off/set position (via set brightness)) From bc26c1f1f0c27fb9fbecec13fb8c1ded43647c0a Mon Sep 17 00:00:00 2001 From: Sebastian Muszynski Date: Tue, 20 Nov 2018 00:46:24 +0100 Subject: [PATCH 61/83] Prefix all xiaomi_aqara events (#7587) --- .../binary_sensor.xiaomi_aqara.markdown | 22 +++++++++---------- source/_components/xiaomi_aqara.markdown | 6 ++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/source/_components/binary_sensor.xiaomi_aqara.markdown b/source/_components/binary_sensor.xiaomi_aqara.markdown index 688cbf1a15d..43ee724efd3 100644 --- a/source/_components/binary_sensor.xiaomi_aqara.markdown +++ b/source/_components/binary_sensor.xiaomi_aqara.markdown @@ -148,7 +148,7 @@ Available events are `single`, `double`, `hold`, `long_click_press` and `long_cl - alias: Toggle dining light on single press trigger: platform: event - event_type: click + event_type: xiaomi_aqara.click event_data: entity_id: binary_sensor.switch_158d000xxxxxc2 click_type: single @@ -158,7 +158,7 @@ Available events are `single`, `double`, `hold`, `long_click_press` and `long_cl - alias: Toggle couch light on double click trigger: platform: event - event_type: click + event_type: xiaomi_aqara.click event_data: entity_id: binary_sensor.switch_158d000xxxxxc2 click_type: double @@ -168,7 +168,7 @@ Available events are `single`, `double`, `hold`, `long_click_press` and `long_cl - alias: Let a dog bark on long press trigger: platform: event - event_type: click + event_type: xiaomi_aqara.click event_data: entity_id: binary_sensor.switch_158d000xxxxxc2 click_type: long_click_press @@ -188,7 +188,7 @@ Available events are `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swi - alias: Cube event flip90 trigger: platform: event - event_type: cube_action + event_type: xiaomi_aqara.cube_action event_data: entity_id: binary_sensor.cube_15xxxxxxxxxxxx action_type: flip90 @@ -200,7 +200,7 @@ Available events are `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swi - alias: Cube event flip180 trigger: platform: event - event_type: cube_action + event_type: xiaomi_aqara.cube_action event_data: entity_id: binary_sensor.cube_15xxxxxxxxxxxx action_type: flip180 @@ -212,7 +212,7 @@ Available events are `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swi - alias: Cube event move trigger: platform: event - event_type: cube_action + event_type: xiaomi_aqara.cube_action event_data: entity_id: binary_sensor.cube_15xxxxxxxxxxxx action_type: move @@ -224,7 +224,7 @@ Available events are `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swi - alias: Cube event tap_twice trigger: platform: event - event_type: cube_action + event_type: xiaomi_aqara.cube_action event_data: entity_id: binary_sensor.cube_15xxxxxxxxxxxx action_type: tap_twice @@ -236,7 +236,7 @@ Available events are `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swi - alias: Cube event shake_air trigger: platform: event - event_type: cube_action + event_type: xiaomi_aqara.cube_action event_data: entity_id: binary_sensor.cube_15xxxxxxxxxxxx action_type: shake_air @@ -255,7 +255,7 @@ The Aqara Wireless Switch is available as single-key and double-key version. Eac - alias: Decrease brightness of the gateway light trigger: platform: event - event_type: click + event_type: xiaomi_aqara.click event_data: entity_id: binary_sensor.wall_switch_left_158xxxxxxxxx12 click_type: single @@ -277,7 +277,7 @@ The Aqara Wireless Switch is available as single-key and double-key version. Eac - alias: Increase brightness of the gateway light trigger: platform: event - event_type: click + event_type: xiaomi_aqara.click event_data: entity_id: binary_sensor.wall_switch_right_158xxxxxxxxx12 click_type: single @@ -299,7 +299,7 @@ The Aqara Wireless Switch is available as single-key and double-key version. Eac - alias: Turn off the gateway light trigger: platform: event - event_type: click + event_type: xiaomi_aqara.click event_data: entity_id: binary_sensor.wall_switch_both_158xxxxxxxxx12 click_type: both diff --git a/source/_components/xiaomi_aqara.markdown b/source/_components/xiaomi_aqara.markdown index 3cc0785fbc6..afc31b480d6 100644 --- a/source/_components/xiaomi_aqara.markdown +++ b/source/_components/xiaomi_aqara.markdown @@ -207,7 +207,7 @@ This example plays the sound of a dog barking when the button is held down and s - alias: Let a dog bark on long press trigger: platform: event - event_type: click + event_type: xiaomi_aqara.click event_data: entity_id: binary_sensor.switch_158d000xxxxxc2 click_type: long_click_press @@ -221,7 +221,7 @@ This example plays the sound of a dog barking when the button is held down and s - alias: Stop barking immediately on single click trigger: platform: event - event_type: click + event_type: xiaomi_aqara.click event_data: entity_id: binary_sensor.switch_158d000xxxxxc2 click_type: single @@ -239,7 +239,7 @@ This example toggles the living room lamp on a double click of the button. - alias: Double Click to toggle living room lamp trigger: platform: event - event_type: click + event_type: xiaomi_aqara.click event_data: entity_id: binary_sensor.switch_158d000xxxxxc2 click_type: double From c73ac72de467f5272b2a7a0152db3234dda14fbf Mon Sep 17 00:00:00 2001 From: Glen Takahashi Date: Mon, 19 Nov 2018 18:47:16 -0500 Subject: [PATCH 62/83] Revert #7292 (#7479) * Revert #7292 Now that https://github.com/home-assistant/home-assistant/pull/17745 has been merged, the original documentation is back to being correct so the docs changes should be reverted once the version with https://github.com/home-assistant/home-assistant/pull/17745 has been released. * Add missing quote --- source/_components/google_assistant.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/google_assistant.markdown b/source/_components/google_assistant.markdown index 6fee46b118c..7c76b03aebb 100644 --- a/source/_components/google_assistant.markdown +++ b/source/_components/google_assistant.markdown @@ -134,7 +134,7 @@ api_key: required: false type: string expose_by_default: - description: "Expose devices in all supported domains by default. If set to false, you need to add the expose configuration option to each entity in `entity_config` and set it to true. Setting `exposed_domains` values will _not_ expose those domains if `expose_by_default` is false." + 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 type: boolean From f656af47864a39377611873d9a251d1468cb3057 Mon Sep 17 00:00:00 2001 From: Ian Richardson Date: Mon, 19 Nov 2018 18:15:26 -0600 Subject: [PATCH 63/83] Update shopping-list card docs (#7512) Ability to add items Ability to clear items --- source/_lovelace/shopping-list.markdown | 4 ++-- .../lovelace/lovelace_shopping_list_card.gif | Bin 64289 -> 219112 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_lovelace/shopping-list.markdown b/source/_lovelace/shopping-list.markdown index 40a4a7587c3..ec57df242c6 100644 --- a/source/_lovelace/shopping-list.markdown +++ b/source/_lovelace/shopping-list.markdown @@ -2,7 +2,7 @@ layout: page title: "Shopping List Card" sidebar_label: Shopping List -description: "The Shopping List Card allows you to edit and check-off items from your shopping list" +description: "The Shopping List Card allows you to add, edit, check-off, and clear items from your shopping list" date: 2018-11-02 10:28 +00:00 sidebar: true comments: false @@ -10,7 +10,7 @@ sharing: true footer: true --- -The Shopping List Card allows you to edit and check-off items from your shopping list. +The Shopping List Card allows you to add, edit, check-off, and clear items from your shopping list. Setup of the [Shopping List Intent](https://www.home-assistant.io/components/shopping_list/) is required diff --git a/source/images/lovelace/lovelace_shopping_list_card.gif b/source/images/lovelace/lovelace_shopping_list_card.gif index b1f1716d32dd41c714aa17558663491db38ac000..a4fdd3028b0bbb397da54dcb3930527805635322 100644 GIT binary patch literal 219112 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
    GZG3?Gj!Ro=Pc@Z0RL4`+w)7Sv;}&6l*7MQ@ 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 literal 64289 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 Date: Tue, 20 Nov 2018 01:16:46 +0100 Subject: [PATCH 64/83] documentation for the Minut Point (#7269) * documentation for the Minut Point * Update source/_components/sensor.point.markdown Co-Authored-By: fredrike * Update source/_components/binary_sensor.point.markdown Co-Authored-By: fredrike * Update source/_components/binary_sensor.point.markdown Co-Authored-By: fredrike * Update source/_components/binary_sensor.point.markdown Co-Authored-By: fredrike * Update source/_components/point.markdown Co-Authored-By: fredrike * Update source/_components/point.markdown Co-Authored-By: fredrike * Update source/_components/sensor.point.markdown Co-Authored-By: fredrike * Added button_press and tamper * Update point.markdown, new configuration flow. * added ha_release * Update source/_components/point.markdown Co-Authored-By: fredrike * added configuration section * quote ha_release --- .../_components/binary_sensor.point.markdown | 35 +++++++++++++++ source/_components/point.markdown | 45 +++++++++++++++++++ source/_components/sensor.point.markdown | 29 ++++++++++++ source/images/supported_brands/minut.svg | 1 + 4 files changed, 110 insertions(+) create mode 100644 source/_components/binary_sensor.point.markdown create mode 100644 source/_components/point.markdown create mode 100644 source/_components/sensor.point.markdown create mode 100644 source/images/supported_brands/minut.svg diff --git a/source/_components/binary_sensor.point.markdown b/source/_components/binary_sensor.point.markdown new file mode 100644 index 00000000000..dadf24d5aa8 --- /dev/null +++ b/source/_components/binary_sensor.point.markdown @@ -0,0 +1,35 @@ +--- +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/point.markdown b/source/_components/point.markdown new file mode 100644 index 00000000000..8186890c902 --- /dev/null +++ b/source/_components/point.markdown @@ -0,0 +1,45 @@ +--- +layout: page +title: "Minut Point" +description: "Instructions on how to integrate Minut Point into Home Assistant." +date: 2018-11-19 +sidebar: true +comments: false +sharing: true +footer: true +logo: minut.svg +ha_category: Hub +featured: true +ha_release: "0.83" +ha_iot_class: "Cloud Polling" +ha_qa_scale: silver +--- + +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. + +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**. + +### {% linkable_title Configuration %} + +```yaml +# Example configuration.yaml entry +point: + client_id: CLIENT_ID + client_secret: CLIENT_SECRET +``` + +{% configuration %} +client_id: + description: Your Minut Point developer client ID. + required: true + type: string +client_secret: + description: Your Minut Point developer client secret. + required: true + type: string +{% endconfiguration %} + +

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

    diff --git a/source/_components/sensor.point.markdown b/source/_components/sensor.point.markdown new file mode 100644 index 00000000000..ad491d427c6 --- /dev/null +++ b/source/_components/sensor.point.markdown @@ -0,0 +1,29 @@ +--- +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/images/supported_brands/minut.svg b/source/images/supported_brands/minut.svg new file mode 100644 index 00000000000..6d73080ba2a --- /dev/null +++ b/source/images/supported_brands/minut.svg @@ -0,0 +1 @@ + \ No newline at end of file From ee940def6319135fa9f6dfcde02bb99c7ec9bb83 Mon Sep 17 00:00:00 2001 From: Sebastian Muszynski Date: Tue, 20 Nov 2018 01:18:39 +0100 Subject: [PATCH 65/83] Add Philips Zhirui Downlight and designate supported model names (#7498) --- source/_components/light.xiaomi_miio.markdown | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/source/_components/light.xiaomi_miio.markdown b/source/_components/light.xiaomi_miio.markdown index 5b9a335f03f..523d6039dd1 100644 --- a/source/_components/light.xiaomi_miio.markdown +++ b/source/_components/light.xiaomi_miio.markdown @@ -13,11 +13,13 @@ ha_iot_class: "Local Polling" ha_release: 0.53 --- -The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philips LED Ball Lamp, Xiaomi Philips Zhirui LED Bulb E14 Candle Lamp, Xiaomi Philips LED Ceiling Lamp, Xiaomi Philips Eyecare Lamp 2 and Philips Zhirui Desk Lamp. +The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philips LED Ball Lamp, Xiaomi Philips Zhirui LED Bulb E14 Candle Lamp, Xiaomi Philips Zhirui Downlight, Xiaomi Philips LED Ceiling Lamp, Xiaomi Philips Eyecare Lamp 2 and Philips Zhirui Desk Lamp. ## Features -### Philips LED Ball Lamp and Philips Zhirui LED Candle Lamp +### Philips LED Ball Lamp, Philips Zhirui LED Candle Lamp and Philips Zhirui Downlight + +Supported models: `philips.light.bulb`, `philips.light.candle`, `philips.light.candle2`, `philips.light.downlight` * Power (on, off) * Brightness @@ -31,6 +33,8 @@ The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philip ### Philips LED Ceiling Lamp +Supported models: `philips.light.ceiling`, `philips.light.zyceiling` + * Power (on, off) * Brightness * Color temperature (175...370 mireds) @@ -46,6 +50,8 @@ The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philip ### Philips Eyecare Smart Lamp 2 +Supported models: `philips.light.sread1` + * Eyecare light (on, off) * Ambient light (on, off) * Brightness (of each light) @@ -55,7 +61,7 @@ The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philip * Eye fatigue reminder / notification (on, off) * Eyecare mode (on, off) * Attributes - - model (Warning: set this value to philips.light.sread1) + - model - scene - delayed_turn_off - night_light_mode @@ -64,6 +70,8 @@ The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philip ### Philips Zhirui Desk Lamp +Supported models: `philips.light.mono1` + * Power (on, off) * Brightness * Scene (1, 2, 3, 4) @@ -102,7 +110,7 @@ name: type: string default: Xiaomi Philips Light model: - description: The model of your miio light. Valid values are `philips.light.bulb`, `philips.light.candle`, `philips.light.candle2`, `philips.light.sread1`, `philips.light.ceiling`, `philips.light.zyceiling` and `philips.light.mono1`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available. + description: The model of your light. Valid values are `philips.light.sread1`, `philips.light.ceiling`, `philips.light.zyceiling`, `philips.light.bulb`, `philips.light.candle`, `philips.light.candle2`, `philips.light.mono1` and `philips.light.downlight`. 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 %} From f47566a2ea4bebc48992228d921e698840d5f29d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Kihlstr=C3=B6m?= Date: Tue, 20 Nov 2018 12:42:21 +0100 Subject: [PATCH 66/83] Update config for sensor lovelace card change (#7582) --- source/_lovelace/sensor.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/_lovelace/sensor.markdown b/source/_lovelace/sensor.markdown index d1d1b49e0bd..ea646d2e3ef 100644 --- a/source/_lovelace/sensor.markdown +++ b/source/_lovelace/sensor.markdown @@ -56,11 +56,11 @@ line_color: required: false description: Color of the line stroke type: string -accuracy: +detail: required: false - description: Amount of data points on the graph + description: Detail of the graph `1` or `2`, `1` equals one point/hour, `2` equals six points/hour type: integer - default: 10 + default: 1 hours_to_show: required: false description: Hours to show in graph From e46bac70111f967ceff176a4e4d38ed94df836f6 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 20 Nov 2018 20:21:54 +0100 Subject: [PATCH 67/83] Add state of union card for frontend (#7591) --- sass/custom/_paulus.scss | 3 +-- source/index.html | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/sass/custom/_paulus.scss b/sass/custom/_paulus.scss index c64bdb7da2e..142841d06aa 100644 --- a/sass/custom/_paulus.scss +++ b/sass/custom/_paulus.scss @@ -141,10 +141,9 @@ $primary-color: #049cdb; } } - .shirt-promo { + .picture-promo { display: block; padding-top: 30%; - background-image: url(/images/merchandise/shirt-frontpage.png); background-size: cover; background-position: center; text-decoration: none; diff --git a/source/index.html b/source/index.html index 28b6444b01f..03277214372 100644 --- a/source/index.html +++ b/source/index.html @@ -64,11 +64,30 @@ description: Open source home automation that puts local control and privacy fir {% endfor %} +
    +
    +
    + Watch the State of the Union 2018 +
    +
    + Learn about the origin of Home Assistant and where we're heading. +
    +
    +
    + Learn how Hass.io can turn your Raspberry Pi into the ultimate home automation hub - +
    Join the Home Assistant t-shirt revolution! From e94399fa0876279a7662f292fe9597f461fd2fdf Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 21 Nov 2018 09:42:28 +0100 Subject: [PATCH 68/83] Adds light switch platform documentation (#7577) * Adds light switch platform documentation * :pencil2: Fixes a spelling issue * :ambulance: Fixes example --- source/_components/light.switch.markdown | 46 ++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 source/_components/light.switch.markdown diff --git a/source/_components/light.switch.markdown b/source/_components/light.switch.markdown new file mode 100644 index 00000000000..4e1eeb2135e --- /dev/null +++ b/source/_components/light.switch.markdown @@ -0,0 +1,46 @@ +--- +layout: page +title: "Light Switch" +description: "Instructions on how to set up a light switch within Home Assistant." +date: 2018-11-18 19:59 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Light +ha_release: 0.83 +ha_iot_class: "Local Push" +logo: home-assistant.png +ha_qa_scale: internal +--- + +The light switch platform lets you control an existing switch, allowing you +to use a switch like a light in Home Assistant. + +In Home Assistant's world, a wall plug is a switch. This platform allows you +to expose this switch as a light source, allowing you to add, e.g., the wall +plug controlling your Christmas Tree, to be part of a light group. + +To enable this platform in your installation, add the following to your +`configuration.yaml` file: + +```yaml +light: + - platform: switch + name: Christmas Tree Lights + entity_id: switch.christmas_tree_lights +``` + +{% configuration %} + name: + description: The name of the light switch. + required: false + type: string + default: Light Switch + entity_id: + description: "The `entity_id` of a switch entity to control as a light source." + required: true + type: string +{% endconfiguration %} + +A light switch only supports turning on/off a light. From e523114fe42bfd74d31aae3c833d0bfe07d84740 Mon Sep 17 00:00:00 2001 From: ehendrix23 Date: Wed, 21 Nov 2018 01:51:09 -0700 Subject: [PATCH 69/83] Updated to include the services supported (#7509) Updated to add the services from media_player component that are supported within the directv platform. --- source/_components/media_player.directv.markdown | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source/_components/media_player.directv.markdown b/source/_components/media_player.directv.markdown index d27b10e1101..e7b82e80650 100644 --- a/source/_components/media_player.directv.markdown +++ b/source/_components/media_player.directv.markdown @@ -87,3 +87,17 @@ media_player: ``` It is important to notice that the host and port variables for slave/Genie receivers are the same as the master receiver. + +## {% linkable_title Services %} + +### {% linkable_title Media control services %} + +Available services: turn_on, turn_off, media_play, media_pause, media_stop, media_next_track, media_previous_track, play_media + +#### {% linkable_title Service `media_player.play_media` %} + +| Service data attribute | Optional | Description | +| -----------------------| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `entity_id` | yes | Target a specific media player. Defaults to all. | +| `media_content_id` | no | The channel number to change to. | +| `media_content_type` | no | A media type. Has to be `channel`. From 8fec55fd04009a0efd95e7a3aeae2d0eb878b23b Mon Sep 17 00:00:00 2001 From: pbalogh77 Date: Wed, 21 Nov 2018 09:54:45 +0100 Subject: [PATCH 70/83] Fibaro initial support (#7493) * Fibaro initial support * :arrow_up: ha_release 0.83 * Update based on reviewer comments * :fire: Removes optional configuration from example config --- .../_components/binary_sensor.fibaro.markdown | 18 ++++++ source/_components/fibaro.markdown | 56 ++++++++++++++++++ source/images/supported_brands/fibaro.png | Bin 0 -> 25677 bytes 3 files changed, 74 insertions(+) create mode 100644 source/_components/binary_sensor.fibaro.markdown create mode 100644 source/_components/fibaro.markdown create mode 100644 source/images/supported_brands/fibaro.png diff --git a/source/_components/binary_sensor.fibaro.markdown b/source/_components/binary_sensor.fibaro.markdown new file mode 100644 index 00000000000..56c0e7086e2 --- /dev/null +++ b/source/_components/binary_sensor.fibaro.markdown @@ -0,0 +1,18 @@ +--- +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/fibaro.markdown b/source/_components/fibaro.markdown new file mode 100644 index 00000000000..d7a69c04e73 --- /dev/null +++ b/source/_components/fibaro.markdown @@ -0,0 +1,56 @@ +--- +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 +sidebar: true +comments: false +sharing: true +footer: true +logo: fibaro.png +ha_category: Hub +ha_release: 0.83 +ha_iot_class: "Local Push" +--- + +The [Fibaro](http://fibaro.com) hub is a controller mainly connecting to Z-Wave devices. + +Switches, Lights (including Dimmers), Locks, Sensors, Binary sensors and Covers are supported - and will be automatically added when HA connects to your Fibaro controller. + +## {% 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: + +```yaml +fibaro: + url: http://192.168.1.161/api/ + username: your_username + password: your_password +``` + +{% configuration %} +url: + description: The URL for your Fibaro HomeCenter device. + required: true + type: url +username: + description: The username for your Fibaro account. + required: true + type: string +password: + description: The password for your Fibaro account. + 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. + required: false + type: bool +{% 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. +

    + +### {% linkable_title Using Z-Wave devices in automation %} + +If you want to use a Z-Wave device from the Fibaro 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 'Fibaro Device Id' in their attributes, and you'll find the entity id on the left. diff --git a/source/images/supported_brands/fibaro.png b/source/images/supported_brands/fibaro.png new file mode 100644 index 0000000000000000000000000000000000000000..438b2087d03cbf905fbf38fe29d6b9ff43488477 GIT binary patch literal 25677 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 Date: Wed, 21 Nov 2018 09:58:08 +0100 Subject: [PATCH 71/83] Update Dark Sky Sensor documentation (#7424) * Update darksky sensor component configuration (#7571) * Update Dark Sky Sensor documentation Update `forecast` configuration parameter documentation to include `0`, add missing descriptions for `icon`, `nearest_storm_distance`, and `nearest_storm_bearing`. Descriptions were updated to correspond as closely as makes sense to the official Dark Sky API documentation. * :pencil2: Tweaks --- source/_components/sensor.darksky.markdown | 56 +++++++++++++--------- 1 file changed, 33 insertions(+), 23 deletions(-) diff --git a/source/_components/sensor.darksky.markdown b/source/_components/sensor.darksky.markdown index 036865b3de2..5f39f039eb6 100644 --- a/source/_components/sensor.darksky.markdown +++ b/source/_components/sensor.darksky.markdown @@ -30,10 +30,12 @@ To add Dark Sky to your installation, add the following to your `configuration.y sensor: - platform: darksky api_key: YOUR_API_KEY + forecast: + - 0 monitored_conditions: - summary - icon - - nearest_storm_distance + - temperature ``` {% configuration %} @@ -47,7 +49,7 @@ name: default: Dark Sky type: string forecast: - description: List of days in the 7 day forecast you would like to receive data on, starting with tomorrow as day 1. Any `monitored_condition` with a daily forecast by DarkSky will generate a sensor tagged with `_`. + description: List of days in the 7-day forecast you would like to receive data on, starting with today as day 0 and ending with day 7. Any condition from `monitored_conditions` with a daily forecast by Dark Sky will generate a sensor with entity_id `_`. required: false type: list language: @@ -71,27 +73,29 @@ monitored_conditions: type: list keys: summary: - description: A human-readable text summary of the current conditions. + description: A human-readable text summary. + icon: + description: A machine-readable text summary, suitable for selecting an icon for display. See [Dark Sky API documentation][] for the list of possible values. precip_type: - description: The type of precipitation occurring. + description: The type of precipitation occurring at the given time. If `precip_intensity` is zero, then this property will be `unknown`. See [Dark Sky API documentation][] for the list of possible values. precip_intensity: - description: The average expected intensity of precipitation occurring. + description: The intensity of precipitation occurring at the given time. This value is conditional on probability (that is, assuming any precipitation occurs at all). precip_probability: - description: A value between 0 and 1 which is representing the probability of precipitation. + description: The probability of precipitation occurring, in percents. precip_accumulation: - description: Daily snow accumulation. Returns unknown if no snow accumulation available. + description: The amount of snowfall accumulation expected to occur. If no snowfall is expected, this property will be `undefined`. temperature: - description: The current temperature. + description: The air temperature. apparent_temperature: - description: A numerical value representing the apparent (or "feels like") temperature. + description: The apparent (or "feels like") temperature. dew_point: description: The dew point. wind_speed: description: The wind speed. wind_gust: - description: The wind gust. + description: The wind gust speed. wind_bearing: - description: Where the wind is coming from in degrees, with true north at 0° and progressing clockwise. + description: The direction that the wind is coming **from** in degrees, with true north at 0° and progressing clockwise. If `wind_speed` is 0, then this value is `unknown`. cloud_cover: description: The percentage of sky occluded by clouds. humidity: @@ -101,29 +105,33 @@ monitored_conditions: visibility: description: The average visibility. ozone: - description: The columnar density of total atmospheric ozone in Dobson. + description: The columnar density of total atmospheric ozone at the given time in Dobson units. minutely_summary: description: A human-readable text summary for the next hour. hourly_summary: - description: A human-readable text summary for the next 24 hours. + description: A human-readable text summary for the next two days. daily_summary: - description: A human-readable text summary for the next 7 days. + description: A human-readable text summary for the next week. temperature_high: - description: Today's daytime expected high temperature. + description: The daytime high temperature. temperature_low: - description: Today's overnight expected low temperature. + description: The overnight low temperature. apparent_temperature_high: - description: Today's daytime expected apparent high temperature. + description: The daytime high apparent temperature. apparent_temperature_low: - description: Today's overnight expected apparent low temperature. + description: The overnight low apparent temperature. precip_intensity_max: - description: Today's expected maximum intensity of precipitation. + description: The maximum value of `precip_intensity` during a given day. uv_index: - description: The current UV index. + description: The UV index. moon_phase: - description: The fractional part of the lunation number during the given day. + description: "The fractional part of the lunation number during the given day: a value of 0 corresponds to a new moon, 0.25 to a first quarter moon, 0.5 to a full moon, and 0.75 to a last quarter moon." + nearest_storm_distance: + description: The approximate distance to the nearest storm in miles. + nearest_storm_bearing: + description: The approximate direction of the nearest storm in degrees, with true north at 0° and progressing clockwise. units: - description: Specify the unit system. Valid options are `auto`, `us`, `si`, `ca`, `uk` and `uk2`. `auto` will let Dark Sky decide the unit system based on location. + description: Specify the unit system. Valid options are `auto`, `us`, `si`, `ca` and `uk2`. `auto` will let Dark Sky decide the unit system based on location. required: false default: "`si` or `us`, based on the temperature preference in Home Assistant." type: string @@ -196,4 +204,6 @@ All language options are described in this table that you can use for the dark s While the platform is called "darksky" the sensors will show up in Home Assistant as "dark_sky" (eg: sensor.dark_sky_summary).

    -Details about the API are available in the [Dark Sky documentation](https://darksky.net/dev/docs). +More details about the API are available in the [Dark Sky API documentation][]. + +[Dark Sky API documentation]: https://darksky.net/dev/docs From ead3b703bc7248c92a65cc6317a65b7cd63185cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Wed, 21 Nov 2018 12:50:05 +0100 Subject: [PATCH 72/83] Add documentation for SSL and authentication (#7596) * Add documentation for ssl and authentication * :ambulance: Corrected required values --- source/_components/sensor.glances.markdown | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/source/_components/sensor.glances.markdown b/source/_components/sensor.glances.markdown index e9321628a61..32759b1912a 100644 --- a/source/_components/sensor.glances.markdown +++ b/source/_components/sensor.glances.markdown @@ -66,6 +66,24 @@ name: required: false type: string default: Glances +username: + description: Your username for the HTTP connection to Glances. + required: false + type: string +password: + description: Your password for the HTTP connection to Glances. + required: false + type: string +ssl: + description: "If `true`, use SSL/TLS to connect to the Glances system." + required: false + type: boolean + default: false +verify_ssl: + description: Verify the certification of the system. + required: false + type: boolean + default: true version: description: "The version of the Glances API. Supported version: `2` and `3`." required: false From 93ff352697246d901374d8f918dcbabf1462069f Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 22 Nov 2018 10:38:52 +0100 Subject: [PATCH 73/83] Add release 83 draft --- _config.yml | 8 +- source/_posts/2018-11-28-release-83.markdown | 695 ++++++++++++++++++ .../blog/2018-11-release-83/google-unlock.png | Bin 0 -> 63666 bytes 3 files changed, 699 insertions(+), 4 deletions(-) create mode 100644 source/_posts/2018-11-28-release-83.markdown create mode 100644 source/images/blog/2018-11-release-83/google-unlock.png diff --git a/_config.yml b/_config.yml index 15c61e15a7b..6e981ad4ba8 100644 --- a/_config.yml +++ b/_config.yml @@ -141,14 +141,14 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 82 -current_patch_version: 1 -date_released: 2018-11-15 +current_minor_version: 83 +current_patch_version: 0 +date_released: 2018-11-28 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. # Major release: -patch_version_notes: "#release-0821---november-15" +patch_version_notes: "#" # Minor release (Example #release-0431---april-25): # Date we moved to Discourse for comments diff --git a/source/_posts/2018-11-28-release-83.markdown b/source/_posts/2018-11-28-release-83.markdown new file mode 100644 index 00000000000..bfb55f71341 --- /dev/null +++ b/source/_posts/2018-11-28-release-83.markdown @@ -0,0 +1,695 @@ +--- +layout: post +title: "0.83: TBF" +description: "TBD" +date: 2018-11-22 00:01:00 +date_formatted: "November 28, 2018" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2018-11-release-82/lovelace-edit.png +--- + + - Lock support for Google Assistant, including unlock if opted in: For HA Cloud, toggle in config cloud panel, for manual config, add to config: `allow_unlock: true` + - Fibaro Home Center Hubs supported! + - Home Assistant Cloud: show exposed entities in UI + - [Frontend notes](https://github.com/home-assistant/home-assistant-polymer/pull/2077) + +

    + Screenshot of the Google Assistant card on the cloud panel. + See what entities are exposed to Google and enable unlocking of locks. +

    + + ## {% linkable_title New Platforms %} + +- Add Tautulli sensor platform ([@ludeeus] - [#17835]) ([sensor.tautulli docs]) (new-platform) +- Implemented tplink_lte components and notify service via SMS ([@andtos90] - [#17111]) ([notify docs]) ([tplink_lte docs]) (new-platform) +- Add Traccar device tracker ([@ludeeus] - [#18200]) ([device_tracker docs]) (new-platform) +- Add support for Google Home device tracking ([@ludeeus] - [#18190]) ([device_tracker docs]) (new-platform) +- Add Norwegian Public Transportation sensor (Ruter). ([@ludeeus] - [#18237]) ([sensor.ruter docs]) (new-platform) +- Split out geofency with a component and platform ([@rohankapoorcom] - [#17933]) ([device_tracker docs]) ([geofency docs]) (breaking change) (new-platform) +- Add support for Lupusec alarm control panel ([@majuss] - [#17691]) ([lupusec docs]) ([alarm_control_panel.lupusec docs]) ([binary_sensor.lupusec docs]) ([switch.lupusec docs]) (new-platform) +- Add upload and download sensors and component for asuswrt ([@kennedyshead] - [#17757]) ([asuswrt docs]) ([device_tracker docs]) ([sensor.asuswrt docs]) (breaking change) (new-platform) +- Add support for 17track.net package sensors ([@bachya] - [#18038]) ([sensor.seventeentrack docs]) (new-platform) +- Add new launch sensor to keep track of space launches. ([@ludeeus] - [#18274]) ([sensor.launch docs]) (new-platform) +- W800rf32 ([@horga83] - [#17920]) ([w800rf32 docs]) ([binary_sensor.w800rf32 docs]) ([switch.w800rf32 docs]) (new-platform) +- Srpenergy ([@briglx] - [#18036]) ([sensor.srp_energy docs]) (new-platform) +- Add support for sensors from Flu Near You ([@bachya] - [#18136]) ([sensor.flunearyou docs]) (new-platform) +- Add niko-home-control support ([@legovaer] - [#18019]) ([light.niko_home_control docs]) ([sensor.niko_home_control docs]) (new-platform) +- Readded climate.velbus ([@Cereal2nd] - [#18434]) ([velbus docs]) ([climate.velbus docs]) (new-platform) +- Initial support for Fibaro HomeCenter hubs ([@pbalogh77] - [#17891]) ([fibaro docs]) ([binary_sensor.fibaro docs]) ([cover.fibaro docs]) ([light.fibaro docs]) ([scene.fibaro docs]) ([sensor.fibaro docs]) ([switch.fibaro docs]) (new-platform) +- Support for Point component ([@fredrike] - [#17466]) ([point docs]) ([binary_sensor.point docs]) ([sensor.point docs]) (new-platform) +- Adds light switch platform ([@frenck] - [#18562]) ([light.switch docs]) (new-platform) +- Add cloud pref for Google unlock ([@balloob] - [#18600]) ([cloud docs]) (new-platform) +- Fibaro components ([@pbalogh77] - [#18487]) ([fibaro docs]) ([cover.fibaro docs]) ([light.fibaro docs]) ([sensor.fibaro docs]) ([switch.fibaro docs]) (new-platform) +- Add support for Panasonic Blu-Ray players ([@u1f35c] - [#18541]) ([media_player.panasonic_bluray docs]) (new-platform) + +## {% linkable_title New Features %} + +- Add scenes as switches HomeKit ([@quthla] - [#17799]) ([homekit docs]) (new-feature) + +## {% linkable_title If you need help... %} + +...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. + +## {% linkable_title Reporting Issues %} + +Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template. + + + +## {% linkable_title Breaking Changes %} + +- Removes melissa sensors (they should be state attributes as implemented in #18201) ([@kennedyshead] - [#18214]) ([melissa docs]) ([sensor.melissa docs]) (breaking change) +- Enable config flow for Luftdaten ([@fabaff] - [#17700]) ([luftdaten docs]) ([sensor.luftdaten docs]) (breaking change) +- Update Neato states, actions and alerts based on Neato docs ([@dshokouhi] - [#17353]) ([neato docs]) (breaking change) +- Add services to set/update and cancel Nest ETA ([@schmittx] - [#17836]) ([nest docs]) (breaking change) +- Split out geofency with a component and platform ([@rohankapoorcom] - [#17933]) ([device_tracker docs]) ([geofency docs]) (breaking change) (new-platform) +- Add upload and download sensors and component for asuswrt ([@kennedyshead] - [#17757]) ([asuswrt docs]) ([device_tracker docs]) ([sensor.asuswrt docs]) (breaking change) (new-platform) +- Show battery_level as a percent vs a decimal ([@chriskacerguis] - [#18328]) ([wirelesstag docs]) (breaking change) +- Enable native support + ADB authentication for Fire TV ([@JeffLIrion] - [#17767]) ([media_player.firetv docs]) (breaking change) +- Logbook speedup ([@jaxer] - [#18376]) (breaking change) +- Template binary sensor to not track all state changes ([@amelchio] - [#18573]) ([binary_sensor.template docs]) (breaking change) +- Darksky: Expose missing conditions for day 0 forecast ([@leppa] - [#18312]) ([sensor.darksky docs]) (breaking change) +- Prefix all xiaomi_aqara events ([@syssi] - [#17354]) ([binary_sensor.xiaomi_aqara docs]) (breaking change) +- Change channel with play_media instead of select_source ([@ehendrix23] - [#18474]) ([media_player.directv docs]) (breaking change) + +## {% linkable_title Beta Fixes %} + +- Rename sensor.launch to sensor.launch_library ([@ludeeus] - [#18337]) ([sensor.launch_library docs]) (beta fix) + +## {% linkable_title All changes %} + +- Add support for various load level devices ([@rafale77] - [#18161]) ([zha docs]) +- Add Tautulli sensor platform ([@ludeeus] - [#17835]) ([sensor.tautulli docs]) (new-platform) +- Add option to manually specify device detection method ([@heytensai] - [#17852]) ([device_tracker docs]) +- Rename huawei_lte.py to test_huawei_lte.py ([@tjorim] - [#18170]) +- Improve netgear_lte logging when unconnected ([@amelchio] - [#18163]) ([netgear_lte docs]) +- XMPP HTTP upload ([@flowolf] - [#17426]) ([notify docs]) +- Update Coinbase icons ([@tjorim] - [#18172]) ([sensor.coinbase docs]) +- Added AU (Australia) ([@troykelly] - [#18183]) ([sensor.waze_travel_time docs]) +- Upgrade toonlib to 1.1.3 ([@fabaff] - [#18189]) ([toon docs]) +- Update python-openzwave to 0.4.11 ([@rafale77] - [#18160]) ([zwave docs]) +- Refactor mysensors message handling ([@MartinHjelmare] - [#17214]) ([mysensors docs]) +- Fix temperature interval Thermostat HomeKit ([@cdce8p] - [#18192]) ([homekit docs]) +- Add more type hints to helpers ([@scop] - [#18196]) +- Implemented tplink_lte components and notify service via SMS ([@andtos90] - [#17111]) ([notify docs]) ([tplink_lte docs]) (new-platform) +- Add destination and icon ([@Dav0815] - [#18210]) ([sensor.transport_nsw docs]) +- Webhook names ([@balloob] - [#18206]) +- Add Traccar device tracker ([@ludeeus] - [#18200]) ([device_tracker docs]) (new-platform) +- Turn off not cancellable scripts automatically HomeKit ([@quthla] - [#17793]) ([homekit docs]) +- add service to reconnect the bot ([@hobbypunk90] - [#18142]) ([hangouts docs]) +- Bump version of pywemo to 0.4.29 ([@sqldiablo] - [#18217]) ([wemo docs]) +- Removes melissa sensors (they should be state attributes as implemented in #18201) ([@kennedyshead] - [#18214]) ([melissa docs]) ([sensor.melissa docs]) (breaking change) +- Remove unrelated scripts ([@balloob] - [#18219]) +- Add available property to DirecTV ([@ehendrix23] - [#18168]) ([media_player.directv docs]) +- deCONZ - reflect hub status on entities ([@Kane610] - [#18106]) ([deconz docs]) ([binary_sensor.deconz docs]) ([cover.deconz docs]) ([light.deconz docs]) ([scene.deconz docs]) ([sensor.deconz docs]) ([switch.deconz docs]) +- Ignore duplicate state changes GarageDoor HomeKit ([@cdce8p] - [#18149]) ([homekit docs]) +- Activate kodi media player progress bar ([@vetegrodd] - [#17626]) ([media_player.kodi docs]) +- Duplicate entities on discovery ([@ehendrix23] - [#18074]) ([media_player.directv docs]) +- Mill room temp ([@Danielhiversen] - [#18203]) ([climate.mill docs]) +- Add scenes as switches HomeKit ([@quthla] - [#17799]) ([homekit docs]) (new-feature) +- Improve debug log information ([@ehendrix23] - [#18230]) ([sensor.statistics docs]) +- Tibber login validate ([@Danielhiversen] - [#18235]) ([tibber docs]) +- Add Xiaomi Smartmi Fresh Air System support ([@syssi] - [#18097]) ([fan.xiaomi_miio docs]) +- Elk-M1 fixes ([@gwww] - [#18154]) ([elkm1 docs]) +- Lovelace: Duplicate ID check on load config + caching ([@bramkragten] - [#18152]) ([lovelace docs]) +- deCONZ - manual input fallback in config flow ([@Kane610] - [#18116]) ([deconz docs]) +- Fix IOLinc sensor ([@teharris1] - [#18250]) ([insteon docs]) ([binary_sensor.insteon docs]) +- Add support for locks in google assistant component ([@ahayworth] - [#18233]) ([cloud docs]) ([google_assistant docs]) +- Add workaround to use notification state for zwave lock state ([@mtreinish] - [#17386]) ([zwave docs]) ([lock.zwave docs]) +- Add season icons ([@tjorim] - [#18221]) ([sensor.season docs]) +- docstring fix ([@smurfix] - [#18257]) +- Report *which* component didn't return a bool ([@smurfix] - [#18258]) +- Fritz keepalive ([@akloeckner] - [#18155]) ([sensor.fritzbox_callmonitor docs]) +- Add additional property to HomeKitSwitch to show whether the Homekit outlet is in use ([@drndos] - [#17448]) ([switch.homekit_controller docs]) +- Add support for Google Home device tracking ([@ludeeus] - [#18190]) ([device_tracker docs]) (new-platform) +- Correct expose_by_default interaction with expose_domains ([@glentakahashi] - [#17745]) ([google_assistant docs]) +- Melissa state_attributes ([@kennedyshead] - [#18201]) ([climate.melissa docs]) +- Support eco mode option on Ziggo Mediabox XL ([@4lloyd] - [#17990]) ([media_player.ziggo_mediabox_xl docs]) +- Add attributes of ARP table ([@akloeckner] - [#17987]) ([device_tracker docs]) +- Add input_boolean reporting to Prometheus ([@TFenby] - [#17966]) ([prometheus docs]) +- Add Xiaomi Air Purifier 2s support ([@syssi] - [#18260]) ([fan.xiaomi_miio docs]) +- Allow alexa to simply turn on and off climate components. ([@Parlane] - [#16989]) ([alexa docs]) +- Enable config flow for Luftdaten ([@fabaff] - [#17700]) ([luftdaten docs]) ([sensor.luftdaten docs]) (breaking change) +- Adding current_humidity to attributes if its not None. ([@kennedyshead] - [#18261]) ([climate docs]) +- Add iAlarm "triggered" support ([@RyuzakiKK] - [#18263]) ([alarm_control_panel.ialarm docs]) +- Add support for switches in homekit controller ([@drndos] - [#17916]) ([homekit_controller docs]) +- Move more MQTT platforms to config entries ([@emontnemery] - [#18180]) ([lock docs]) ([mqtt docs]) ([light.mqtt_json docs]) ([lock.mqtt docs]) +- Switch OwnTracks HTTP to use webhook component ([@kirichkov] - [#17034]) ([device_tracker docs]) +- Update Neato states, actions and alerts based on Neato docs ([@dshokouhi] - [#17353]) ([neato docs]) (breaking change) +- Add services to set/update and cancel Nest ETA ([@schmittx] - [#17836]) ([nest docs]) (breaking change) +- Normalize MAC addresses ([@balloob] - [#16916]) +- HmIP thermostat fix with operations ([@pvizeli] - [#18068]) ([climate.homematic docs]) +- Update PR checklist with commented out code check ([@armills] - [#18272]) +- Add Norwegian Public Transportation sensor (Ruter). ([@ludeeus] - [#18237]) ([sensor.ruter docs]) (new-platform) +- Split out geofency with a component and platform ([@rohankapoorcom] - [#17933]) ([device_tracker docs]) ([geofency docs]) (breaking change) (new-platform) +- Use async_add_executor_job at the xiaomi_miio platforms ([@syssi] - [#18294]) ([device_tracker docs]) ([fan.xiaomi_miio docs]) ([light.xiaomi_miio docs]) ([remote.xiaomi_miio docs]) ([sensor.xiaomi_miio docs]) ([switch.xiaomi_miio docs]) ([vacuum.xiaomi_miio docs]) +- Remove skipped device tracker tests ([@armills] - [#18291]) +- Update litejet automation tests to async ([@armills] - [#18287]) +- Update manual ACP tests to async ([@armills] - [#18289]) ([alarm_control_panel.demo docs]) +- Update input component tests to async ([@armills] - [#18290]) +- Darksky: Add icon to summary sensors ([@leppa] - [#18275]) ([sensor.darksky docs]) +- Add support for Lupusec alarm control panel ([@majuss] - [#17691]) ([lupusec docs]) ([alarm_control_panel.lupusec docs]) ([binary_sensor.lupusec docs]) ([switch.lupusec docs]) (new-platform) +- Improve version sensor ([@tjorim] - [#18292]) +- Upgrade hdate to 0.7.5 ([@tsvi] - [#18296]) ([sensor.jewish_calendar docs]) +- Add SUPPORT_SEEK for DLNA DMR devices + now (better) providing media_image_url for DLNA DMR devices ([@StevenLooman] - [#18157]) ([upnp docs]) ([media_player.dlna_dmr docs]) +- Add upload and download sensors and component for asuswrt ([@kennedyshead] - [#17757]) ([asuswrt docs]) ([device_tracker docs]) ([sensor.asuswrt docs]) (breaking change) (new-platform) +- Update pyruter to 1.1.0 to be able to reuse aiohttp session. ([@ludeeus] - [#18310]) ([sensor.ruter docs]) +- Make flux switch async ([@jawilson] - [#18277]) ([switch.flux docs]) +- Add support for 17track.net package sensors ([@bachya] - [#18038]) ([sensor.seventeentrack docs]) (new-platform) +- Added optional precision configuration option to generic_thermostat. ([@partofthething] - [#18317]) ([climate.generic_thermostat docs]) +- System groups ([@balloob] - [#18303]) +- Doc fix: a circular dependency does not raise an error. ([@smurfix] - [#18298]) +- Add new launch sensor to keep track of space launches. ([@ludeeus] - [#18274]) ([sensor.launch docs]) (new-platform) +- W800rf32 ([@horga83] - [#17920]) ([w800rf32 docs]) ([binary_sensor.w800rf32 docs]) ([switch.w800rf32 docs]) (new-platform) +- Srpenergy ([@briglx] - [#18036]) ([sensor.srp_energy docs]) (new-platform) +- Restrict recorder query to include max age ([@ehendrix23] - [#18231]) ([sensor.statistics docs]) +- Add support for sensors from Flu Near You ([@bachya] - [#18136]) ([sensor.flunearyou docs]) (new-platform) +- Rename sensor.launch to sensor.launch_library ([@ludeeus] - [#18337]) ([sensor.launch_library docs]) (beta fix) +- Switchmate library update ([@Danielhiversen] - [#18336]) ([switch.switchmate docs]) +- bump total connect client to 0.22 ([@uchagani] - [#18344]) ([alarm_control_panel.totalconnect docs]) +- Update credstash.py ([@iamtpage] - [#18349]) +- Update HAP-python to 2.4.0 ([@cdce8p] - [#18355]) ([homekit docs]) +- add heartbeat support to mysensors ([@inetAnt] - [#18359]) ([mysensors docs]) +- Upgrade pytest and pytest-sugar ([@scop] - [#18338]) +- Show battery_level as a percent vs a decimal ([@chriskacerguis] - [#18328]) ([wirelesstag docs]) (breaking change) +- Better error handling in Tibber ([@Danielhiversen] - [#18363]) ([tibber docs]) ([sensor.tibber docs]) +- Upgrade async_upnp_client to 0.13.2 ([@StevenLooman] - [#18377]) ([upnp docs]) ([media_player.dlna_dmr docs]) +- Add more type hints to helpers ([@scop] - [#18350]) +- Return color information in Alexa Smart Home response ([@jackwilsdon] - [#18368]) ([alexa docs]) +- Fix and improvment of Swiss Hydrological Data component ([@Bouni] - [#17166]) ([sensor.swiss_hydrological_data docs]) +- Fixed misspellings in some of the Pollen sensor names ([@bachya] - [#18382]) ([sensor.pollen docs]) +- Google assistant enable fan speed controls ([@marchingphoenix] - [#18373]) ([google_assistant docs]) +- Discord - Minor bugfixes ([@sqldiablo] - [#18385]) ([notify docs]) +- Update waze_travel_time.py ([@hmmbob] - [#18399]) ([sensor.waze_travel_time docs]) +- Bumping aioasuswrt ([@kennedyshead] - [#18400]) ([asuswrt docs]) +- Filter Coinbase account wallets ([@tjorim] - [#18167]) ([coinbase docs]) +- Update pynello to 2.0.2 ([@ultrara1n] - [#18402]) ([lock.nello docs]) +- Add niko-home-control support ([@legovaer] - [#18019]) ([light.niko_home_control docs]) ([sensor.niko_home_control docs]) (new-platform) +- Add support for keypad keypress ([@gwww] - [#18393]) ([elkm1 docs]) ([sensor.elkm1 docs]) +- Use existing constant ([@fabaff] - [#18408]) ([weather.ecobee docs]) +- Bumps pytile to 2.0.5 ([@bachya] - [#18395]) ([device_tracker docs]) +- Daikin fixes ([@fredrike] - [#18415]) ([daikin docs]) ([climate.daikin docs]) +- Sense will not list removed devices ([@kbickar] - [#18410]) ([binary_sensor.sense docs]) +- Fix smhi docstrings ([@fabaff] - [#18414]) ([smhi docs]) ([weather.smhi docs]) +- Avg price for tibber sensor ([@Danielhiversen] - [#18426]) ([sensor.tibber docs]) +- Bumping aioasuswrt ([@kennedyshead] - [#18427]) ([asuswrt docs]) +- Fixes issue for returning the correct docker version. ([@ludeeus] - [#18439]) ([sensor.version docs]) +- Update Magicseaweed sensor ([@jcconnell] - [#18446]) ([sensor.magicseaweed docs]) +- Bump elkm1_lib version ([@gwww] - [#18450]) ([elkm1 docs]) +- Add Philips Zhirui Downlight support ([@syssi] - [#18455]) ([light.xiaomi_miio docs]) +- Init statistics sensor upon HASS start ([@ehendrix23] - [#18236]) ([sensor.statistics docs]) +- fixes for last version bump on pydaikin ([@fredrike] - [#18438]) +- Readded climate.velbus ([@Cereal2nd] - [#18434]) ([velbus docs]) ([climate.velbus docs]) (new-platform) +- Make mikrotik method setting optional as intended ([@WoLpH] - [#18454]) ([device_tracker docs]) +- Improve support for 1. generation mill heater ([@Danielhiversen] - [#18423]) ([climate.mill docs]) +- Initial support for Fibaro HomeCenter hubs ([@pbalogh77] - [#17891]) ([fibaro docs]) ([binary_sensor.fibaro docs]) ([cover.fibaro docs]) ([light.fibaro docs]) ([scene.fibaro docs]) ([sensor.fibaro docs]) ([switch.fibaro docs]) (new-platform) +- Add Rainmachine config entry ([@bachya] - [#18419]) ([rainmachine docs]) ([binary_sensor.rainmachine docs]) ([sensor.rainmachine docs]) ([switch.rainmachine docs]) +- AirVisual: Show icon for air pollution level, based on its value ([@leppa] - [#18482]) ([sensor.airvisual docs]) +- Add Rainmachine to the device registry ([@bachya] - [#18452]) ([rainmachine docs]) ([binary_sensor.rainmachine docs]) ([sensor.rainmachine docs]) ([switch.rainmachine docs]) +- Fixed bug for receivers without support for new command ([@leothlon] - [#18478]) ([media_player.onkyo docs]) +- Alexa v3 name change for additionalApplianceDetails ([@pc-coholic] - [#18485]) ([alexa docs]) +- Add safe_mode HomeKit ([@cdce8p] - [#18356]) ([homekit docs]) +- Update HAP-python 2.4.1 ([@cdce8p] - [#18417]) ([homekit docs]) +- Upgrade youtube_dl to 2018.11.07 ([@fabaff] - [#18507]) ([media_extractor docs]) +- Upgrade numpy to 1.15.4 ([@fabaff] - [#18506]) ([binary_sensor.trend docs]) ([image_processing.opencv docs]) ([image_processing.tensorflow docs]) ([sensor.pollen docs]) +- Upgrade sphinx-autodoc-typehints to 1.5.0 ([@fabaff] - [#18505]) +- Upgrade sqlalchemy to 1.2.14 ([@fabaff] - [#18504]) ([sensor.sql docs]) +- Ban systemair-savecair ([@balloob] - [#18483]) +- fixed sky_hub schema to reflect documentation ([@eliseomartelli] - [#18509]) ([device_tracker docs]) +- Improve real time consumption for Tibber sensor ([@Danielhiversen] - [#18517]) ([tibber docs]) +- Clean up left-behind dispatcher handlers when removing RainMachine ([@bachya] - [#18488]) ([rainmachine docs]) ([binary_sensor.rainmachine docs]) ([sensor.rainmachine docs]) ([switch.rainmachine docs]) +- Improve handling of unavailable Sonos speakers ([@amelchio] - [#18534]) ([sonos docs]) ([media_player.sonos docs]) +- Upgrade ruamel.yaml to 0.15.78 ([@fabaff] - [#18508]) ([media_extractor docs]) +- Mill lib ([@Danielhiversen] - [#18529]) ([climate.mill docs]) +- Upgrade pytest and pytest-cov ([@scop] - [#18542]) +- Make MyQ platform async ([@bachya] - [#18489]) ([cover.myq docs]) +- Upgrade vsure to 1.5.2 ([@persandstrom] - [#18557]) ([verisure docs]) +- Allow unloading of LIFX config entry ([@amelchio] - [#18535]) ([lifx docs]) ([light.lifx docs]) +- Re-adding the season attribute ([@sdelliot] - [#18523]) ([sensor.pollen docs]) +- Enable native support + ADB authentication for Fire TV ([@JeffLIrion] - [#17767]) ([media_player.firetv docs]) (breaking change) +- Fix small issue related to topic prefix ([@emontnemery] - [#18512]) ([mqtt docs]) +- Avoid race in entity_platform.async_add_entities() ([@emontnemery] - [#18445]) +- Logbook speedup ([@jaxer] - [#18376]) (breaking change) +- Log delay and wait_template steps in scripts ([@pnbruckner] - [#18448]) +- Remove turn_on and turn_off feature for clients ([@ehendrix23] - [#18234]) ([media_player.directv docs]) +- Add support for sessions ([@ehendrix23] - [#18518]) ([august docs]) +- Correct cached stale device tracker handling ([@arigilder] - [#18572]) ([device_tracker docs]) +- Template binary sensor to not track all state changes ([@amelchio] - [#18573]) ([binary_sensor.template docs]) (breaking change) +- Support for Point component ([@fredrike] - [#17466]) ([point docs]) ([binary_sensor.point docs]) ([sensor.point docs]) (new-platform) +- Fix for epson state not updating ([@bw3] - [#18357]) ([media_player.epson docs]) +- Update pyhomematic to 0.1.52 and add features for lights ([@danielperna84] - [#18499]) ([homematic docs]) ([light.homematic docs]) +- Darksky: Expose missing conditions for day 0 forecast ([@leppa] - [#18312]) ([sensor.darksky docs]) (breaking change) +- Reconfigure MQTT binary_sensor component if discovery info is changed ([@emontnemery] - [#18169]) ([mqtt docs]) ([binary_sensor.mqtt docs]) +- Add mikrotik SSL support ([@soosp] - [#17898]) ([device_tracker docs]) +- Fix MQTT async_added_to_hass ([@balloob] - [#18575]) ([alarm_control_panel.manual_mqtt docs]) ([camera.mqtt docs]) +- Prefix all xiaomi_aqara events ([@syssi] - [#17354]) ([binary_sensor.xiaomi_aqara docs]) (breaking change) +- Bumped ghlocalapi to 0.1.0 ([@eliseomartelli] - [#18584]) ([device_tracker docs]) +- Added unique id to all Wink devices. ([@w1ll1am23] - [#18589]) ([wink docs]) +- Adds light switch platform ([@frenck] - [#18562]) ([light.switch docs]) (new-platform) +- Bump Python-Nest to 4.0.5 ([@balloob] - [#18580]) ([nest docs]) ([climate.nest docs]) +- Add websocket calls to shopping-list ([@iantrich] - [#18392]) ([shopping_list docs]) +- Revert changes that broke UI ([@dapowers87] - [#18495]) +- Hass.io config check ([@pvizeli] - [#18576]) ([hassio docs]) +- Add support for Daikin BRP069B41 ([@fredrike] - [#18564]) ([daikin docs]) ([climate.daikin docs]) +- Z-Wave Lock Config Entry Support ([@cgarwood] - [#18209]) ([lock docs]) ([zwave docs]) ([lock.zwave docs]) +- Improve available for Mill heater ([@Danielhiversen] - [#18597]) ([climate.mill docs]) +- Update Z-Wave Tests asyncio/yield from -> async/await ([@cgarwood] - [#18599]) +- Add cloud pref for Google unlock ([@balloob] - [#18600]) ([cloud docs]) (new-platform) +- Change channel with play_media instead of select_source ([@ehendrix23] - [#18474]) ([media_player.directv docs]) (breaking change) +- Fibaro components ([@pbalogh77] - [#18487]) ([fibaro docs]) ([cover.fibaro docs]) ([light.fibaro docs]) ([sensor.fibaro docs]) ([switch.fibaro docs]) (new-platform) +- Upgrade blinkpy to 0.10.3 (Fixes #18341) ([@fronzbot] - [#18603]) ([blink docs]) +- Add permissions check in service helper ([@balloob] - [#18596]) +- Add support for HTTPS and basic HTTP authentication for Glances ([@ludeeus] - [#18608]) ([sensor.glances docs]) +- Add support for Panasonic Blu-Ray players ([@u1f35c] - [#18541]) ([media_player.panasonic_bluray docs]) (new-platform) +- Update locationsharinglib requirement to 3.0.8 ([@pc-coholic] - [#18612]) ([device_tracker docs]) +- Fix mqtt cover inverted ([@pszafer] - [#18456]) ([cover.mqtt docs]) +- Upgrade requests to 2.20.1 ([@fabaff] - [#18615]) + +[#16916]: https://github.com/home-assistant/home-assistant/pull/16916 +[#16989]: https://github.com/home-assistant/home-assistant/pull/16989 +[#17034]: https://github.com/home-assistant/home-assistant/pull/17034 +[#17111]: https://github.com/home-assistant/home-assistant/pull/17111 +[#17166]: https://github.com/home-assistant/home-assistant/pull/17166 +[#17214]: https://github.com/home-assistant/home-assistant/pull/17214 +[#17353]: https://github.com/home-assistant/home-assistant/pull/17353 +[#17354]: https://github.com/home-assistant/home-assistant/pull/17354 +[#17386]: https://github.com/home-assistant/home-assistant/pull/17386 +[#17426]: https://github.com/home-assistant/home-assistant/pull/17426 +[#17448]: https://github.com/home-assistant/home-assistant/pull/17448 +[#17466]: https://github.com/home-assistant/home-assistant/pull/17466 +[#17626]: https://github.com/home-assistant/home-assistant/pull/17626 +[#17691]: https://github.com/home-assistant/home-assistant/pull/17691 +[#17700]: https://github.com/home-assistant/home-assistant/pull/17700 +[#17745]: https://github.com/home-assistant/home-assistant/pull/17745 +[#17757]: https://github.com/home-assistant/home-assistant/pull/17757 +[#17767]: https://github.com/home-assistant/home-assistant/pull/17767 +[#17793]: https://github.com/home-assistant/home-assistant/pull/17793 +[#17799]: https://github.com/home-assistant/home-assistant/pull/17799 +[#17835]: https://github.com/home-assistant/home-assistant/pull/17835 +[#17836]: https://github.com/home-assistant/home-assistant/pull/17836 +[#17852]: https://github.com/home-assistant/home-assistant/pull/17852 +[#17891]: https://github.com/home-assistant/home-assistant/pull/17891 +[#17898]: https://github.com/home-assistant/home-assistant/pull/17898 +[#17916]: https://github.com/home-assistant/home-assistant/pull/17916 +[#17920]: https://github.com/home-assistant/home-assistant/pull/17920 +[#17933]: https://github.com/home-assistant/home-assistant/pull/17933 +[#17966]: https://github.com/home-assistant/home-assistant/pull/17966 +[#17987]: https://github.com/home-assistant/home-assistant/pull/17987 +[#17990]: https://github.com/home-assistant/home-assistant/pull/17990 +[#18019]: https://github.com/home-assistant/home-assistant/pull/18019 +[#18036]: https://github.com/home-assistant/home-assistant/pull/18036 +[#18038]: https://github.com/home-assistant/home-assistant/pull/18038 +[#18068]: https://github.com/home-assistant/home-assistant/pull/18068 +[#18074]: https://github.com/home-assistant/home-assistant/pull/18074 +[#18097]: https://github.com/home-assistant/home-assistant/pull/18097 +[#18106]: https://github.com/home-assistant/home-assistant/pull/18106 +[#18116]: https://github.com/home-assistant/home-assistant/pull/18116 +[#18136]: https://github.com/home-assistant/home-assistant/pull/18136 +[#18142]: https://github.com/home-assistant/home-assistant/pull/18142 +[#18149]: https://github.com/home-assistant/home-assistant/pull/18149 +[#18152]: https://github.com/home-assistant/home-assistant/pull/18152 +[#18154]: https://github.com/home-assistant/home-assistant/pull/18154 +[#18155]: https://github.com/home-assistant/home-assistant/pull/18155 +[#18157]: https://github.com/home-assistant/home-assistant/pull/18157 +[#18160]: https://github.com/home-assistant/home-assistant/pull/18160 +[#18161]: https://github.com/home-assistant/home-assistant/pull/18161 +[#18163]: https://github.com/home-assistant/home-assistant/pull/18163 +[#18167]: https://github.com/home-assistant/home-assistant/pull/18167 +[#18168]: https://github.com/home-assistant/home-assistant/pull/18168 +[#18169]: https://github.com/home-assistant/home-assistant/pull/18169 +[#18170]: https://github.com/home-assistant/home-assistant/pull/18170 +[#18172]: https://github.com/home-assistant/home-assistant/pull/18172 +[#18180]: https://github.com/home-assistant/home-assistant/pull/18180 +[#18183]: https://github.com/home-assistant/home-assistant/pull/18183 +[#18189]: https://github.com/home-assistant/home-assistant/pull/18189 +[#18190]: https://github.com/home-assistant/home-assistant/pull/18190 +[#18192]: https://github.com/home-assistant/home-assistant/pull/18192 +[#18196]: https://github.com/home-assistant/home-assistant/pull/18196 +[#18200]: https://github.com/home-assistant/home-assistant/pull/18200 +[#18201]: https://github.com/home-assistant/home-assistant/pull/18201 +[#18203]: https://github.com/home-assistant/home-assistant/pull/18203 +[#18206]: https://github.com/home-assistant/home-assistant/pull/18206 +[#18209]: https://github.com/home-assistant/home-assistant/pull/18209 +[#18210]: https://github.com/home-assistant/home-assistant/pull/18210 +[#18214]: https://github.com/home-assistant/home-assistant/pull/18214 +[#18217]: https://github.com/home-assistant/home-assistant/pull/18217 +[#18219]: https://github.com/home-assistant/home-assistant/pull/18219 +[#18221]: https://github.com/home-assistant/home-assistant/pull/18221 +[#18230]: https://github.com/home-assistant/home-assistant/pull/18230 +[#18231]: https://github.com/home-assistant/home-assistant/pull/18231 +[#18233]: https://github.com/home-assistant/home-assistant/pull/18233 +[#18234]: https://github.com/home-assistant/home-assistant/pull/18234 +[#18235]: https://github.com/home-assistant/home-assistant/pull/18235 +[#18236]: https://github.com/home-assistant/home-assistant/pull/18236 +[#18237]: https://github.com/home-assistant/home-assistant/pull/18237 +[#18250]: https://github.com/home-assistant/home-assistant/pull/18250 +[#18257]: https://github.com/home-assistant/home-assistant/pull/18257 +[#18258]: https://github.com/home-assistant/home-assistant/pull/18258 +[#18260]: https://github.com/home-assistant/home-assistant/pull/18260 +[#18261]: https://github.com/home-assistant/home-assistant/pull/18261 +[#18263]: https://github.com/home-assistant/home-assistant/pull/18263 +[#18272]: https://github.com/home-assistant/home-assistant/pull/18272 +[#18274]: https://github.com/home-assistant/home-assistant/pull/18274 +[#18275]: https://github.com/home-assistant/home-assistant/pull/18275 +[#18277]: https://github.com/home-assistant/home-assistant/pull/18277 +[#18287]: https://github.com/home-assistant/home-assistant/pull/18287 +[#18289]: https://github.com/home-assistant/home-assistant/pull/18289 +[#18290]: https://github.com/home-assistant/home-assistant/pull/18290 +[#18291]: https://github.com/home-assistant/home-assistant/pull/18291 +[#18292]: https://github.com/home-assistant/home-assistant/pull/18292 +[#18294]: https://github.com/home-assistant/home-assistant/pull/18294 +[#18296]: https://github.com/home-assistant/home-assistant/pull/18296 +[#18298]: https://github.com/home-assistant/home-assistant/pull/18298 +[#18303]: https://github.com/home-assistant/home-assistant/pull/18303 +[#18310]: https://github.com/home-assistant/home-assistant/pull/18310 +[#18312]: https://github.com/home-assistant/home-assistant/pull/18312 +[#18317]: https://github.com/home-assistant/home-assistant/pull/18317 +[#18328]: https://github.com/home-assistant/home-assistant/pull/18328 +[#18336]: https://github.com/home-assistant/home-assistant/pull/18336 +[#18337]: https://github.com/home-assistant/home-assistant/pull/18337 +[#18338]: https://github.com/home-assistant/home-assistant/pull/18338 +[#18344]: https://github.com/home-assistant/home-assistant/pull/18344 +[#18349]: https://github.com/home-assistant/home-assistant/pull/18349 +[#18350]: https://github.com/home-assistant/home-assistant/pull/18350 +[#18355]: https://github.com/home-assistant/home-assistant/pull/18355 +[#18356]: https://github.com/home-assistant/home-assistant/pull/18356 +[#18357]: https://github.com/home-assistant/home-assistant/pull/18357 +[#18359]: https://github.com/home-assistant/home-assistant/pull/18359 +[#18363]: https://github.com/home-assistant/home-assistant/pull/18363 +[#18368]: https://github.com/home-assistant/home-assistant/pull/18368 +[#18373]: https://github.com/home-assistant/home-assistant/pull/18373 +[#18376]: https://github.com/home-assistant/home-assistant/pull/18376 +[#18377]: https://github.com/home-assistant/home-assistant/pull/18377 +[#18382]: https://github.com/home-assistant/home-assistant/pull/18382 +[#18385]: https://github.com/home-assistant/home-assistant/pull/18385 +[#18392]: https://github.com/home-assistant/home-assistant/pull/18392 +[#18393]: https://github.com/home-assistant/home-assistant/pull/18393 +[#18395]: https://github.com/home-assistant/home-assistant/pull/18395 +[#18399]: https://github.com/home-assistant/home-assistant/pull/18399 +[#18400]: https://github.com/home-assistant/home-assistant/pull/18400 +[#18402]: https://github.com/home-assistant/home-assistant/pull/18402 +[#18408]: https://github.com/home-assistant/home-assistant/pull/18408 +[#18410]: https://github.com/home-assistant/home-assistant/pull/18410 +[#18414]: https://github.com/home-assistant/home-assistant/pull/18414 +[#18415]: https://github.com/home-assistant/home-assistant/pull/18415 +[#18417]: https://github.com/home-assistant/home-assistant/pull/18417 +[#18419]: https://github.com/home-assistant/home-assistant/pull/18419 +[#18423]: https://github.com/home-assistant/home-assistant/pull/18423 +[#18426]: https://github.com/home-assistant/home-assistant/pull/18426 +[#18427]: https://github.com/home-assistant/home-assistant/pull/18427 +[#18434]: https://github.com/home-assistant/home-assistant/pull/18434 +[#18438]: https://github.com/home-assistant/home-assistant/pull/18438 +[#18439]: https://github.com/home-assistant/home-assistant/pull/18439 +[#18445]: https://github.com/home-assistant/home-assistant/pull/18445 +[#18446]: https://github.com/home-assistant/home-assistant/pull/18446 +[#18448]: https://github.com/home-assistant/home-assistant/pull/18448 +[#18450]: https://github.com/home-assistant/home-assistant/pull/18450 +[#18452]: https://github.com/home-assistant/home-assistant/pull/18452 +[#18454]: https://github.com/home-assistant/home-assistant/pull/18454 +[#18455]: https://github.com/home-assistant/home-assistant/pull/18455 +[#18456]: https://github.com/home-assistant/home-assistant/pull/18456 +[#18474]: https://github.com/home-assistant/home-assistant/pull/18474 +[#18478]: https://github.com/home-assistant/home-assistant/pull/18478 +[#18482]: https://github.com/home-assistant/home-assistant/pull/18482 +[#18483]: https://github.com/home-assistant/home-assistant/pull/18483 +[#18485]: https://github.com/home-assistant/home-assistant/pull/18485 +[#18487]: https://github.com/home-assistant/home-assistant/pull/18487 +[#18488]: https://github.com/home-assistant/home-assistant/pull/18488 +[#18489]: https://github.com/home-assistant/home-assistant/pull/18489 +[#18495]: https://github.com/home-assistant/home-assistant/pull/18495 +[#18499]: https://github.com/home-assistant/home-assistant/pull/18499 +[#18504]: https://github.com/home-assistant/home-assistant/pull/18504 +[#18505]: https://github.com/home-assistant/home-assistant/pull/18505 +[#18506]: https://github.com/home-assistant/home-assistant/pull/18506 +[#18507]: https://github.com/home-assistant/home-assistant/pull/18507 +[#18508]: https://github.com/home-assistant/home-assistant/pull/18508 +[#18509]: https://github.com/home-assistant/home-assistant/pull/18509 +[#18512]: https://github.com/home-assistant/home-assistant/pull/18512 +[#18517]: https://github.com/home-assistant/home-assistant/pull/18517 +[#18518]: https://github.com/home-assistant/home-assistant/pull/18518 +[#18523]: https://github.com/home-assistant/home-assistant/pull/18523 +[#18529]: https://github.com/home-assistant/home-assistant/pull/18529 +[#18534]: https://github.com/home-assistant/home-assistant/pull/18534 +[#18535]: https://github.com/home-assistant/home-assistant/pull/18535 +[#18541]: https://github.com/home-assistant/home-assistant/pull/18541 +[#18542]: https://github.com/home-assistant/home-assistant/pull/18542 +[#18557]: https://github.com/home-assistant/home-assistant/pull/18557 +[#18562]: https://github.com/home-assistant/home-assistant/pull/18562 +[#18564]: https://github.com/home-assistant/home-assistant/pull/18564 +[#18572]: https://github.com/home-assistant/home-assistant/pull/18572 +[#18573]: https://github.com/home-assistant/home-assistant/pull/18573 +[#18575]: https://github.com/home-assistant/home-assistant/pull/18575 +[#18576]: https://github.com/home-assistant/home-assistant/pull/18576 +[#18580]: https://github.com/home-assistant/home-assistant/pull/18580 +[#18584]: https://github.com/home-assistant/home-assistant/pull/18584 +[#18589]: https://github.com/home-assistant/home-assistant/pull/18589 +[#18596]: https://github.com/home-assistant/home-assistant/pull/18596 +[#18597]: https://github.com/home-assistant/home-assistant/pull/18597 +[#18599]: https://github.com/home-assistant/home-assistant/pull/18599 +[#18600]: https://github.com/home-assistant/home-assistant/pull/18600 +[#18603]: https://github.com/home-assistant/home-assistant/pull/18603 +[#18608]: https://github.com/home-assistant/home-assistant/pull/18608 +[#18612]: https://github.com/home-assistant/home-assistant/pull/18612 +[#18615]: https://github.com/home-assistant/home-assistant/pull/18615 +[@4lloyd]: https://github.com/4lloyd +[@Bouni]: https://github.com/Bouni +[@Cereal2nd]: https://github.com/Cereal2nd +[@Danielhiversen]: https://github.com/Danielhiversen +[@Dav0815]: https://github.com/Dav0815 +[@JeffLIrion]: https://github.com/JeffLIrion +[@Kane610]: https://github.com/Kane610 +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@Parlane]: https://github.com/Parlane +[@RyuzakiKK]: https://github.com/RyuzakiKK +[@StevenLooman]: https://github.com/StevenLooman +[@TFenby]: https://github.com/TFenby +[@WoLpH]: https://github.com/WoLpH +[@ahayworth]: https://github.com/ahayworth +[@akloeckner]: https://github.com/akloeckner +[@amelchio]: https://github.com/amelchio +[@andtos90]: https://github.com/andtos90 +[@arigilder]: https://github.com/arigilder +[@armills]: https://github.com/armills +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@bramkragten]: https://github.com/bramkragten +[@briglx]: https://github.com/briglx +[@bw3]: https://github.com/bw3 +[@cdce8p]: https://github.com/cdce8p +[@cgarwood]: https://github.com/cgarwood +[@chriskacerguis]: https://github.com/chriskacerguis +[@danielperna84]: https://github.com/danielperna84 +[@dapowers87]: https://github.com/dapowers87 +[@drndos]: https://github.com/drndos +[@dshokouhi]: https://github.com/dshokouhi +[@ehendrix23]: https://github.com/ehendrix23 +[@eliseomartelli]: https://github.com/eliseomartelli +[@emontnemery]: https://github.com/emontnemery +[@fabaff]: https://github.com/fabaff +[@flowolf]: https://github.com/flowolf +[@fredrike]: https://github.com/fredrike +[@frenck]: https://github.com/frenck +[@fronzbot]: https://github.com/fronzbot +[@glentakahashi]: https://github.com/glentakahashi +[@gwww]: https://github.com/gwww +[@heytensai]: https://github.com/heytensai +[@hmmbob]: https://github.com/hmmbob +[@hobbypunk90]: https://github.com/hobbypunk90 +[@horga83]: https://github.com/horga83 +[@iamtpage]: https://github.com/iamtpage +[@iantrich]: https://github.com/iantrich +[@inetAnt]: https://github.com/inetAnt +[@jackwilsdon]: https://github.com/jackwilsdon +[@jawilson]: https://github.com/jawilson +[@jaxer]: https://github.com/jaxer +[@jcconnell]: https://github.com/jcconnell +[@kbickar]: https://github.com/kbickar +[@kennedyshead]: https://github.com/kennedyshead +[@kirichkov]: https://github.com/kirichkov +[@legovaer]: https://github.com/legovaer +[@leothlon]: https://github.com/leothlon +[@leppa]: https://github.com/leppa +[@ludeeus]: https://github.com/ludeeus +[@majuss]: https://github.com/majuss +[@marchingphoenix]: https://github.com/marchingphoenix +[@mtreinish]: https://github.com/mtreinish +[@partofthething]: https://github.com/partofthething +[@pbalogh77]: https://github.com/pbalogh77 +[@pc-coholic]: https://github.com/pc-coholic +[@persandstrom]: https://github.com/persandstrom +[@pnbruckner]: https://github.com/pnbruckner +[@pszafer]: https://github.com/pszafer +[@pvizeli]: https://github.com/pvizeli +[@quthla]: https://github.com/quthla +[@rafale77]: https://github.com/rafale77 +[@rohankapoorcom]: https://github.com/rohankapoorcom +[@schmittx]: https://github.com/schmittx +[@scop]: https://github.com/scop +[@sdelliot]: https://github.com/sdelliot +[@smurfix]: https://github.com/smurfix +[@soosp]: https://github.com/soosp +[@sqldiablo]: https://github.com/sqldiablo +[@syssi]: https://github.com/syssi +[@teharris1]: https://github.com/teharris1 +[@tjorim]: https://github.com/tjorim +[@troykelly]: https://github.com/troykelly +[@tsvi]: https://github.com/tsvi +[@u1f35c]: https://github.com/u1f35c +[@uchagani]: https://github.com/uchagani +[@ultrara1n]: https://github.com/ultrara1n +[@vetegrodd]: https://github.com/vetegrodd +[@w1ll1am23]: https://github.com/w1ll1am23 +[alarm_control_panel.demo docs]: /components/alarm_control_panel.demo/ +[alarm_control_panel.ialarm docs]: /components/alarm_control_panel.ialarm/ +[alarm_control_panel.lupusec docs]: /components/alarm_control_panel.lupusec/ +[alarm_control_panel.manual_mqtt docs]: /components/alarm_control_panel.manual_mqtt/ +[alarm_control_panel.totalconnect docs]: /components/alarm_control_panel.totalconnect/ +[alexa docs]: /components/alexa/ +[asuswrt docs]: /components/asuswrt/ +[august docs]: /components/august/ +[binary_sensor.deconz docs]: /components/binary_sensor.deconz/ +[binary_sensor.fibaro docs]: /components/binary_sensor.fibaro/ +[binary_sensor.insteon docs]: /components/binary_sensor.insteon/ +[binary_sensor.lupusec docs]: /components/binary_sensor.lupusec/ +[binary_sensor.mqtt docs]: /components/binary_sensor.mqtt/ +[binary_sensor.point docs]: /components/binary_sensor.point/ +[binary_sensor.rainmachine docs]: /components/binary_sensor.rainmachine/ +[binary_sensor.sense docs]: /components/binary_sensor.sense/ +[binary_sensor.template docs]: /components/binary_sensor.template/ +[binary_sensor.trend docs]: /components/binary_sensor.trend/ +[binary_sensor.w800rf32 docs]: /components/binary_sensor.w800rf32/ +[binary_sensor.xiaomi_aqara docs]: /components/binary_sensor.xiaomi_aqara/ +[blink docs]: /components/blink/ +[camera.mqtt docs]: /components/camera.mqtt/ +[climate docs]: /components/climate/ +[climate.daikin docs]: /components/climate.daikin/ +[climate.generic_thermostat docs]: /components/climate.generic_thermostat/ +[climate.homematic docs]: /components/climate.homematic/ +[climate.melissa docs]: /components/climate.melissa/ +[climate.mill docs]: /components/climate.mill/ +[climate.nest docs]: /components/climate.nest/ +[climate.velbus docs]: /components/climate.velbus/ +[cloud docs]: /components/cloud/ +[coinbase docs]: /components/coinbase/ +[cover.deconz docs]: /components/cover.deconz/ +[cover.fibaro docs]: /components/cover.fibaro/ +[cover.mqtt docs]: /components/cover.mqtt/ +[cover.myq docs]: /components/cover.myq/ +[daikin docs]: /components/daikin/ +[deconz docs]: /components/deconz/ +[device_tracker docs]: /components/device_tracker/ +[elkm1 docs]: /components/elkm1/ +[fan.xiaomi_miio docs]: /components/fan.xiaomi_miio/ +[fibaro docs]: /components/fibaro/ +[geofency docs]: /components/geofency/ +[google_assistant docs]: /components/google_assistant/ +[hangouts docs]: /components/hangouts/ +[hassio docs]: /components/hassio/ +[homekit docs]: /components/homekit/ +[homekit_controller docs]: /components/homekit_controller/ +[homematic docs]: /components/homematic/ +[image_processing.opencv docs]: /components/image_processing.opencv/ +[image_processing.tensorflow docs]: /components/image_processing.tensorflow/ +[insteon docs]: /components/insteon/ +[lifx docs]: /components/lifx/ +[light.deconz docs]: /components/light.deconz/ +[light.fibaro docs]: /components/light.fibaro/ +[light.homematic docs]: /components/light.homematic/ +[light.lifx docs]: /components/light.lifx/ +[light.mqtt_json docs]: /components/light.mqtt_json/ +[light.niko_home_control docs]: /components/light.niko_home_control/ +[light.switch docs]: /components/light.switch/ +[light.xiaomi_miio docs]: /components/light.xiaomi_miio/ +[lock docs]: /components/lock/ +[lock.mqtt docs]: /components/lock.mqtt/ +[lock.nello docs]: /components/lock.nello/ +[lock.zwave docs]: /components/lock.zwave/ +[lovelace docs]: /components/lovelace/ +[luftdaten docs]: /components/luftdaten/ +[lupusec docs]: /components/lupusec/ +[media_extractor docs]: /components/media_extractor/ +[media_player.directv docs]: /components/media_player.directv/ +[media_player.dlna_dmr docs]: /components/media_player.dlna_dmr/ +[media_player.epson docs]: /components/media_player.epson/ +[media_player.firetv docs]: /components/media_player.firetv/ +[media_player.kodi docs]: /components/media_player.kodi/ +[media_player.onkyo docs]: /components/media_player.onkyo/ +[media_player.panasonic_bluray docs]: /components/media_player.panasonic_bluray/ +[media_player.sonos docs]: /components/media_player.sonos/ +[media_player.ziggo_mediabox_xl docs]: /components/media_player.ziggo_mediabox_xl/ +[melissa docs]: /components/melissa/ +[mqtt docs]: /components/mqtt/ +[mysensors docs]: /components/mysensors/ +[neato docs]: /components/neato/ +[nest docs]: /components/nest/ +[netgear_lte docs]: /components/netgear_lte/ +[notify docs]: /components/notify/ +[point docs]: /components/point/ +[prometheus docs]: /components/prometheus/ +[rainmachine docs]: /components/rainmachine/ +[remote.xiaomi_miio docs]: /components/remote.xiaomi_miio/ +[scene.deconz docs]: /components/scene.deconz/ +[scene.fibaro docs]: /components/scene.fibaro/ +[sensor.airvisual docs]: /components/sensor.airvisual/ +[sensor.asuswrt docs]: /components/sensor.asuswrt/ +[sensor.coinbase docs]: /components/sensor.coinbase/ +[sensor.darksky docs]: /components/sensor.darksky/ +[sensor.deconz docs]: /components/sensor.deconz/ +[sensor.elkm1 docs]: /components/sensor.elkm1/ +[sensor.fibaro docs]: /components/sensor.fibaro/ +[sensor.flunearyou docs]: /components/sensor.flunearyou/ +[sensor.fritzbox_callmonitor docs]: /components/sensor.fritzbox_callmonitor/ +[sensor.glances docs]: /components/sensor.glances/ +[sensor.jewish_calendar docs]: /components/sensor.jewish_calendar/ +[sensor.launch docs]: /components/sensor.launch/ +[sensor.launch_library docs]: /components/sensor.launch_library/ +[sensor.luftdaten docs]: /components/sensor.luftdaten/ +[sensor.magicseaweed docs]: /components/sensor.magicseaweed/ +[sensor.melissa docs]: /components/sensor.melissa/ +[sensor.niko_home_control docs]: /components/sensor.niko_home_control/ +[sensor.point docs]: /components/sensor.point/ +[sensor.pollen docs]: /components/sensor.pollen/ +[sensor.rainmachine docs]: /components/sensor.rainmachine/ +[sensor.ruter docs]: /components/sensor.ruter/ +[sensor.season docs]: /components/sensor.season/ +[sensor.seventeentrack docs]: /components/sensor.seventeentrack/ +[sensor.sql docs]: /components/sensor.sql/ +[sensor.srp_energy docs]: /components/sensor.srp_energy/ +[sensor.statistics docs]: /components/sensor.statistics/ +[sensor.swiss_hydrological_data docs]: /components/sensor.swiss_hydrological_data/ +[sensor.tautulli docs]: /components/sensor.tautulli/ +[sensor.tibber docs]: /components/sensor.tibber/ +[sensor.transport_nsw docs]: /components/sensor.transport_nsw/ +[sensor.version docs]: /components/sensor.version/ +[sensor.waze_travel_time docs]: /components/sensor.waze_travel_time/ +[sensor.xiaomi_miio docs]: /components/sensor.xiaomi_miio/ +[shopping_list docs]: /components/shopping_list/ +[smhi docs]: /components/smhi/ +[sonos docs]: /components/sonos/ +[switch.deconz docs]: /components/switch.deconz/ +[switch.fibaro docs]: /components/switch.fibaro/ +[switch.flux docs]: /components/switch.flux/ +[switch.homekit_controller docs]: /components/switch.homekit_controller/ +[switch.lupusec docs]: /components/switch.lupusec/ +[switch.rainmachine docs]: /components/switch.rainmachine/ +[switch.switchmate docs]: /components/switch.switchmate/ +[switch.w800rf32 docs]: /components/switch.w800rf32/ +[switch.xiaomi_miio docs]: /components/switch.xiaomi_miio/ +[tibber docs]: /components/tibber/ +[toon docs]: /components/toon/ +[tplink_lte docs]: /components/tplink_lte/ +[upnp docs]: /components/upnp/ +[vacuum.xiaomi_miio docs]: /components/vacuum.xiaomi_miio/ +[velbus docs]: /components/velbus/ +[verisure docs]: /components/verisure/ +[w800rf32 docs]: /components/w800rf32/ +[weather.ecobee docs]: /components/weather.ecobee/ +[weather.smhi docs]: /components/weather.smhi/ +[wemo docs]: /components/wemo/ +[wink docs]: /components/wink/ +[wirelesstag docs]: /components/wirelesstag/ +[zha docs]: /components/zha/ +[zwave docs]: /components/zwave/ diff --git a/source/images/blog/2018-11-release-83/google-unlock.png b/source/images/blog/2018-11-release-83/google-unlock.png new file mode 100644 index 0000000000000000000000000000000000000000..b9b8ae9fb6d9517ab62ee5d5229e70c67f4c8e64 GIT binary patch literal 63666 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 E1IP|sv;Y7A literal 0 HcmV?d00001 From ea0b2577ebee7f418ff4484183825d0f09a8497d Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 22 Nov 2018 10:40:04 +0100 Subject: [PATCH 74/83] Shrink images --- .../supported_brands/afraid_freedns.png | Bin 57197 -> 25691 bytes source/images/supported_brands/gitlab.png | Bin 50682 -> 12811 bytes source/images/supported_brands/hayward.png | Bin 60369 -> 16308 bytes .../images/supported_brands/meteo-france.png | Bin 84371 -> 27600 bytes .../nsw-rural-fire-service.png | Bin 78479 -> 20786 bytes source/images/supported_brands/tautulli.png | Bin 57551 -> 20395 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/source/images/supported_brands/afraid_freedns.png b/source/images/supported_brands/afraid_freedns.png index b878a519b26b5cae16b7ed1a25457a425fa316b2..86c608cff772c9ba4ca0d0ac4d996c0fe56375d0 100644 GIT binary patch literal 25691 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