diff --git a/_config.yml b/_config.yml index 7868ab6419a..018bcd66b51 100644 --- a/_config.yml +++ b/_config.yml @@ -138,9 +138,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 92 -current_patch_version: 2 -date_released: 2019-05-02 +current_minor_version: 93 +current_patch_version: 0 +date_released: 2019-05-16 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_components/ads.markdown b/source/_components/ads.markdown index 2d5c697d1c1..2c285b2ebbc 100644 --- a/source/_components/ads.markdown +++ b/source/_components/ads.markdown @@ -14,6 +14,7 @@ ha_category: - Light - Sensor - Switch + - Cover ha_release: "0.60" ha_iot_class: Local Push redirect_from: @@ -31,6 +32,7 @@ There is currently support for the following device types within Home Assistant: - [Light](#light) - [Sensor](#sensor) - [Switch](#switch) +- [Cover](#cover) ## {% linkable_title Configuration %} @@ -80,7 +82,7 @@ Service parameters: The `ads` binary sensor platform can be used to monitor a boolean value on your ADS device. -To use your ADS device, you first have to set up your [ADS hub](/components/ads/) and then add the following to your `configuration.yaml` +To use your ADS device, you first have to set up your [ADS hub](#configuration) and then add the following to your `configuration.yaml` file: ```yaml @@ -109,7 +111,7 @@ device_class: The `ads` light platform allows you to control your connecte ADS lights. -To use your ADS device, you first have to set up your [ADS hub](/components/ads/) and then add the following to your `configuration.yaml` +To use your ADS device, you first have to set up your [ADS hub](#configuration) and then add the following to your `configuration.yaml` file: ```yaml @@ -128,7 +130,7 @@ adsvar: adsvar_brightness: required: false description: The name of the variable that controls the brightness, use an unsigned integer on the PLC side - type: integer + type: string name: required: false description: An identifier for the Light in the frontend @@ -139,7 +141,7 @@ name: The `ads` sensor platform allows reading the value of a numeric variable on your ADS device. The variable can be of type *INT*, *UINT*, *BYTE*, *DINT* or *UDINT*. -To use your ADS device, you first have to set up your [ADS hub](/components/ads/) and then add the following to your `configuration.yaml` +To use your ADS device, you first have to set up your [ADS hub](#configuration) and then add the following to your `configuration.yaml` file: ```yaml @@ -178,7 +180,7 @@ The *factor* can be used to implement fixed decimals. E.g., set *factor* to 100 The `ads` switch platform accesses a boolean variable on the connected ADS device. The variable is identified by its name. -To use your ADS device, you first have to set up your [ADS hub](/components/ads/) and then add the following to your `configuration.yaml` +To use your ADS device, you first have to set up your [ADS hub](#configuration) and then add the following to your `configuration.yaml` file: ```yaml @@ -198,3 +200,56 @@ name: description: An identifier for the switch in the frontend. type: string {% endconfiguration %} + +## {% linkable_title Cover %} + +The `ads` cover platform allows you to control your connected ADS covers. + +To use your ADS device, you first have to set up your [ADS hub](#configuration) and then add the following to your `configuration.yaml` +file: + +```yaml +# Example configuration.yaml entry +cover: + - platform: ads + name: Curtain master bed room + adsvar_open: covers.master_bed_room_open + adsvar_close: covers.master_bed_room_close + adsvar_stop: covers.master_bed_room_stop + device_class: curtain +``` + +{% configuration %} +adsvar: + required: true + description: The name of the boolean variable that returns the current status of the cover (`True` = closed) + type: string +adsvar_position: + required: false + description: The name of the variable that returns the current cover position, use a byte variable on the PLC side + type: string +adsvar_set_position: + required: false + description: The name of the variable that sets the new cover position, use a byte variable on the PLC side + type: string +adsvar_open: + required: false + description: The name of the boolean variable that triggers the cover to open + type: string +adsvar_close: + required: false + description: The name of the boolean variable that triggers the cover to close + type: string +adsvar_stop: + required: false + description: The name of the boolean variable that triggers the cover to stop + type: string +name: + required: false + description: An identifier for the Cover in the frontend + type: string +device_class: + required: false + description: Sets the class of the device, changing the device state and icon that is displayed on the UI (awning, blind, curtain, damper, door, garage, shade, shutter, window) + type: device_class +{% endconfiguration %} diff --git a/source/_components/alarm_control_panel.mqtt.markdown b/source/_components/alarm_control_panel.mqtt.markdown index 2e2c6fca85e..4b698510c49 100644 --- a/source/_components/alarm_control_panel.mqtt.markdown +++ b/source/_components/alarm_control_panel.mqtt.markdown @@ -123,6 +123,10 @@ json_attributes_topic: description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation. required: false type: string +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-template-configuration) documentation." + required: false + type: template device: description: 'Information about the device this alarm panel is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.' required: false diff --git a/source/_components/ambiclimate.markdown b/source/_components/ambiclimate.markdown new file mode 100644 index 00000000000..03215193451 --- /dev/null +++ b/source/_components/ambiclimate.markdown @@ -0,0 +1,71 @@ +--- +layout: page +title: "Ambiclimate A/C controller" +description: "Instructions on how to integrate Ambiclimate A/C controller into Home Assistant." +date: 2019-02-21 15:00 +0200 +sidebar: true +comments: false +sharing: true +footer: true +logo: ambiclimate.png +ha_category: Climate +ha_release: 0.93 +ha_iot_class: Cloud Polling +--- + +Integrates [Ambiclimate](https://Ambiclimate.com) Air Conditioning controller into Home Assistant. + +You must create an application [here](https://api.ambiclimate.com/clients) to obtain a `client_id` and `client_secret`. +The `callback url` should be configured as your Home Assistant `base_url` + `/api/ambiclimate`, e.g. `https://example.com/api/ambiclimate`. + +To enable this platform, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +ambiclimate: + client_id: CLIENT_ID + client_secret: CLIENT_SECRET +``` + +Restart Home Assistant. Then, go to the frontend and authorize Ambiclimate. + +{% configuration %} +client_id: + description: Your Ambiclimate API client ID. + required: true + type: string +client_secret: + description: Your Ambiclimate API client secret. + required: true + type: string +{% endconfiguration %} + +Note that you have to select manual mode from the Ambiclimate app to be able to control the A/C from Home Assistant. + +## {% linkable_title Component services %} + +Enable comfort mode on your AC: + +`climate.set_comfort_mode` + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `Name` | yes | String with device name. + +Send feedback for comfort mode: + +`climate.send_comfort_feedback` + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `Name` | yes | String with device name. +| `value` | yes | Send any of the following comfort values: too_hot, too_warm, bit_warm, comfortable, bit_cold, too_cold, freezing + +Enable temperature mode on your AC: + +`climate.set_temperature_mode` + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `Name` | yes | String with device name. +| `value` | yes | Target value in celsius diff --git a/source/_components/amcrest.markdown b/source/_components/amcrest.markdown index 3d2235d954b..841920a0f9a 100644 --- a/source/_components/amcrest.markdown +++ b/source/_components/amcrest.markdown @@ -29,7 +29,7 @@ There is currently support for the following device types within Home Assistant: - Binary Sensor - Camera - Sensor -- Switch +- Switch (deprecated) ## {% linkable_title Configuration %} @@ -128,8 +128,8 @@ sensors: motion_detector: description: > Return `true`/`false` when motion is detected. - - **Note:** This sensor is deprecated and will be removed in a future release. + + **Note:** The motion_detector sensor is deprecated and will be removed in a future release. Use **binary_sensors** option **motion_detected** instead. sdcard: description: Return the SD card usage by reporting the total and used space. @@ -139,7 +139,11 @@ sensors: configured for the given camera. switches: description: > - Switches to display in the frontend. + Switches to display in the frontend. + + **Note:** Switches are deprecated and will be removed in a future release. + Use services and attributes instead. + The following switches can be monitored: required: false type: list @@ -163,9 +167,66 @@ Newer Amcrest firmware may not work, then **rtsp** is recommended instead. make sure to follow the steps mentioned at [FFMPEG](/components/ffmpeg/) documentation to install the `ffmpeg`. -To check if your Amcrest camera is supported/tested, visit the -[supportability matrix](https://github.com/tchellomello/python-amcrest#supportability-matrix) -link from the `amcrest` project. +## {% linkable_title Services %} + +Once loaded, the `amcrest` component will expose services that can be called to perform various actions. The `entity_id` service attribute can specify one or more specific cameras, or `all` can be used to specify all configured Amcrest cameras. + +Available services: +`enable_audio`, `disable_audio`, +`enable_motion_recording`, `disable_motion_recording`, +`enable_recording`, `disable_recording`, +`goto_preset`, `set_color_bw`, +`start_tour` and `stop_tour` + +#### {% linkable_title Service `enable_audio`/`disable_audio` %} + +These services enable or disable the camera's audio stream. + +Service data attribute | Optional | Description +-|-|- +`entity_id` | no | Name(s) of entities, e.g., `camera.living_room_camera`. + +#### {% linkable_title Service `enable_motion_recording`/`disable_motion_recording` %} + +These services enable or disable the camera to record a clip to its configured storage location when motion is detected. + +Service data attribute | Optional | Description +-|-|- +`entity_id` | no | Name(s) of entities, e.g., `camera.living_room_camera`. + +#### {% linkable_title Service `enable_recording`/`disable_recording` %} + +These services enable or disable the camera to continuously record to its configured storage location. + +Service data attribute | Optional | Description +-|-|- +`entity_id` | no | Name(s) of entities, e.g., `camera.living_room_camera`. + +#### {% linkable_title Service `goto_preset` %} + +This service will cause the camera to move to one of the PTZ locations configured within the camera. + +Service data attribute | Optional | Description +-|-|- +`entity_id` | no | Name(s) of entities, e.g., `camera.living_room_camera`. +`preset` | no | Preset number, starting from 1. + +#### {% linkable_title Service `set_color_bw` %} + +This service will set the color mode of the camera. + +Service data attribute | Optional | Description +-|-|- +`entity_id` | no | Name(s) of entities, e.g., `camera.living_room_camera`. +`color_bw` | no | One of `auto`, `bw` or `color`. + +#### {% linkable_title Service `start_tour`/`stop_tour` %} + +These services start or stop the camera's PTZ tour function. + +Service data attribute | Optional | Description +-|-|- +`entity_id` | no | Name(s) of entities, e.g., `camera.living_room_camera`. ## {% linkable_title Advanced Configuration %} @@ -181,9 +242,6 @@ amcrest: - motion_detected sensors: - sdcard - switches: - - motion_detection - - motion_recording # Add second camera - host: IP_ADDRESS_CAMERA_2 diff --git a/source/_components/binary_sensor.mqtt.markdown b/source/_components/binary_sensor.mqtt.markdown index 78c6252e272..7cccd22aa10 100644 --- a/source/_components/binary_sensor.mqtt.markdown +++ b/source/_components/binary_sensor.mqtt.markdown @@ -73,6 +73,10 @@ json_attributes_topic: description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation. required: false type: string +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-template-configuration) documentation." + required: false + type: template qos: description: The maximum QoS level to be used when receiving messages. required: false diff --git a/source/_components/binary_sensor.netatmo.markdown b/source/_components/binary_sensor.netatmo.markdown deleted file mode 100644 index 9fc62b62381..00000000000 --- a/source/_components/binary_sensor.netatmo.markdown +++ /dev/null @@ -1,83 +0,0 @@ ---- -layout: page -title: "Netatmo Binary Sensor" -description: "Instructions on how to integrate Netatmo binary sensor into Home Assistant." -date: 2016-09-19 15:10 -sidebar: true -comments: false -sharing: true -footer: true -logo: netatmo.png -ha_category: - - Binary Sensor -ha_release: 0.31 ---- - -The `netatmo` binary sensor platform is consuming the information provided by a -[Netatmo](https://www.netatmo.com) camera. -This component allows you to get the latest event seen by the camera. - -### {% linkable_title Basic Configuration %} - -To enable the Netatmo binary sensor, you have to set up -[netatmo](/components/netatmo/), -this will use discovery to add your binary sensor. - -### {% linkable_title Advanced configuration %} - -If you want to select a specific sensor, -set discovery to `false` for [netatmo](/components/netatmo/) -and add the following lines to your `configuration.yaml`: - -```yaml -# Example configuration.yaml entry -binary_sensor: - platform: netatmo - home: home_name - timeout: 90 - cameras: - - camera_name1 - welcome_sensors: - - Someone known - - Someone unknown - - Motion - presence_sensors: - - Outdoor motion - - Outdoor human - - Outdoor animal - - Outdoor vehicle -``` - -{% configuration %} -home: - description: Will use the cameras of this home only. - required: false - type: string -timeout: - description: > - The Welcome/Presence binary sensors will - stay on for X seconds after detection. - required: false - type: integer - default: 90 -cameras: - description: List of cameras entity IDs to display. - required: false - type: list -welcome_sensors: - description: > - List of monitored conditions. Possible values are - 'Someone known', 'Someone unknown' and 'Motion'. - required: false - type: list -presence_sensors: - description: > - List of monitored conditions. Possible values are 'Outdoor motion', - 'Outdoor human', 'Outdoor animal' and 'Outdoor vehicle'. - required: false - type: list -{% endconfiguration %} - -If **home** and **cameras** is not provided, all cameras will be used. -If multiple cameras are available then each monitored conditions -will create a specific sensor for each camera diff --git a/source/_components/bizkaibus.markdown b/source/_components/bizkaibus.markdown new file mode 100644 index 00000000000..e496d3f6071 --- /dev/null +++ b/source/_components/bizkaibus.markdown @@ -0,0 +1,50 @@ +--- +layout: page +title: "Bizkaibus next bus tracking sensor" +description: "Instructions on how to integrate timetable data for traveling on Bizkaibus within Home Assistant." +date: 2019-04-22 14:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: bizkaibus.png +ha_category: + - Transport + - Sensor +ha_iot_class: Cloud Polling +ha_release: 0.93 +--- + +The `bizkaibus` sensor will give you the time until the next bus in the selected stop. + +The next website can help to determine the id of your bus stop. You can check if this is correct by going to [next link](http://apli.bizkaia.net/APPS/DANOK/TQ/DATOS_PARADAS/DATOS_Paradas.xml) and look the PR_CODE for the STOP_ID. + +For a correct use of the sensor the selected route must stop in the selected stop. + +Then add the data to your `configuration.yaml` file as shown in the example: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: bizkaibus + stopid: STOP_ID + route: ROUTE_ID +``` + +{% configuration %} +stopid: + description: The ID of the bus stop to get the information for. + required: true + type: string +route: + description: The ID of the bus route to get information for. This is the same as the bus number, e.g., `A3641`. + required: true + type: string +name: + description: A friendly name for this sensor. + required: false + default: Next Bus + type: string +{% endconfiguration %} + +The public RTPI information is coming from [Bizkaibus API](http://apli.bizkaia.net/APPS/DANOK/TQWS/TQ.ASMX). diff --git a/source/_components/camera.netatmo.markdown b/source/_components/camera.netatmo.markdown deleted file mode 100644 index 8741159d0fb..00000000000 --- a/source/_components/camera.netatmo.markdown +++ /dev/null @@ -1,63 +0,0 @@ ---- -layout: page -title: "Netatmo Camera" -description: "Instructions on how to integrate Netatmo cameras into Home Assistant." -date: 2016-06-02 08:10 -sidebar: true -comments: false -sharing: true -footer: true -logo: netatmo.png -ha_category: - - Camera -ha_release: 0.22 -ha_iot_class: Local Polling ---- - -The `netatmo` camera platform is consuming the information provided by a [Netatmo](https://www.netatmo.com) camera. This component allows you to view the current photo created by the Camera. - -### {% linkable_title Basic configuration %} - -To enable the Netatmo camera, you have to set up [netatmo](/components/netatmo/), this will use discovery to add your camera. - -### {% linkable_title Advanced configuration %} - -If you want to select a specific camera, set discovery to False for [netatmo](/components/netatmo/) and add the following lines to your `configuration.yaml`: - -```yaml -# Example configuration.yaml entry -camera: - - platform: netatmo -``` - -{% configuration %} -home: - description: Will display the cameras of this home only. - required: false - type: string -cameras: - description: Cameras to use. Multiple entities allowed. - required: false - type: list - keys: - camera_name: - description: Name of the camera to display. -quality: - description: Quality of the live stream. (`'high'`, `'medium'`, `'low'` or `'poor'`) - required: false - type: string - default: high -{% endconfiguration %} - -If **home** and **cameras** are not provided, all cameras will be displayed. For more control over your cameras check the configuration sample below. - -```yaml -# Example configuration.yaml entry -camera: - platform: netatmo - home: home_name - quality: medium - cameras: - - camera_name1 - - camera_name2 -``` diff --git a/source/_components/climate.mqtt.markdown b/source/_components/climate.mqtt.markdown index 56d4c30c389..bc4204808be 100644 --- a/source/_components/climate.mqtt.markdown +++ b/source/_components/climate.mqtt.markdown @@ -232,6 +232,10 @@ json_attributes_topic: description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation. required: false type: string +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-template-configuration) documentation." + required: false + type: template device: description: 'Information about the device this HVAC device is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.' required: false diff --git a/source/_components/climate.netatmo.markdown b/source/_components/climate.netatmo.markdown deleted file mode 100644 index 7239c7c0596..00000000000 --- a/source/_components/climate.netatmo.markdown +++ /dev/null @@ -1,62 +0,0 @@ ---- -layout: page -title: "Netatmo Thermostat" -description: "Instructions on how to integrate Netatmo thermostat into Home Assistant." -date: 2016-10-11 08:10 -sidebar: true -comments: false -sharing: true -footer: true -logo: netatmo.png -ha_category: - - Climate -ha_release: 0.31 -ha_iot_class: Cloud Polling ---- - - -The `netatmo` thermostat platform is consuming the information provided by a [Netatmo Smart Thermostat](https://www.netatmo.com/product/energy/thermostat) thermostat. This component allows you to view the current temperature and setpoint. - -To enable the Netatmo thermostat, you first have to set up [netatmo](/components/netatmo/), this will use discovery to add your thermostat. - -If you want to select specific homes or specific rooms, set discovery to False for [netatmo](/components/netatmo/) and add the following lines to your `configuration.yaml`: - -```yaml -# Example configuration.yaml entry -climate: - - platform: netatmo -``` - -{% configuration %} -homes: - description: Will display the thermostats of the homes listed. - required: false - type: list - keys: - name: - required: true - description: The home name. - rooms: - description: Rooms to be displayed. Multiple entities allowed. - required: false - type: [list, string] - description: List of the names of the rooms to be displayed. -{% endconfiguration %} - -If **homes** and **rooms** are not provided, all thermostats will be displayed. - -```yaml -# Example configuration.yaml entry -climate: - platform: netatmo - homes: - - name: home1_name - rooms: - - room1_name - - room2_name - - name: home2_name - rooms: - - room3_name - - room4_name - - room5_name -``` diff --git a/source/_components/counter.markdown b/source/_components/counter.markdown index 0a605611d53..db9702990c4 100644 --- a/source/_components/counter.markdown +++ b/source/_components/counter.markdown @@ -54,6 +54,14 @@ counter: required: false type: integer default: 1 + minimum: + description: Minimum value the counter will have + required: false + type: integer + maximum: + description: Maximum value the counter will have + required: false + type: integer icon: description: Icon to display for the counter. required: false @@ -96,6 +104,18 @@ With this service the counter is reset to its initial value. | ---------------------- | -------- | ----------- | | `entity_id` | no | Name of the entity to take action, e.g., `counter.my_custom_counter`. | +#### {% linkable_title Service `counter.configure` %} + +With this service the properties of the counter can be changed while running. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | no | Name of the entity to take action, e.g., `counter.my_custom_counter`. | +| `minimum` | yes | Set new value for minimum. None disables minimum. | +| `maximum` | yes | Set new value for maximum. None disables maximum. | +| `step` | yes | Set new value for step | + + ### {% linkable_title Use the service %} @@ -106,4 +126,3 @@ Select serv
   "entity_id": "counter.my_custom_counter"
 }
 ```
-
diff --git a/source/_components/cover.mqtt.markdown b/source/_components/cover.mqtt.markdown
index 0a4b21a5623..acf37e99e42 100644
--- a/source/_components/cover.mqtt.markdown
+++ b/source/_components/cover.mqtt.markdown
@@ -182,6 +182,10 @@ json_attributes_topic:
   description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation.
   required: false
   type: string
+json_attributes_template:
+  description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-template-configuration) documentation."
+  required: false
+  type: template
 unique_id:
   description: An ID that uniquely identifies this cover. If two covers have the same unique ID, Home Assistant will raise an exception.
   required: false
diff --git a/source/_components/cover.template.markdown b/source/_components/cover.template.markdown
index 41d8dc689f7..e4813769784 100644
--- a/source/_components/cover.template.markdown
+++ b/source/_components/cover.template.markdown
@@ -68,6 +68,10 @@ cover:
         description: Defines a template to specify which icon to use.
         required: false
         type: template
+      device_class:
+        description: The [type/class](/components/cover/#device-class) of the cover to set the icon in the frontend.
+        required: false
+        type: string
       open_cover:
         description: Defines an action to run when the cover is opened. If [`open_cover`](#open_cover) is specified, [`close_cover`](#close_cover) must also be specified. At least one of [`open_cover`](#open_cover) and [`set_cover_position`](#set_cover_position) must be specified.
         required: inclusive
diff --git a/source/_components/danfoss_air.markdown b/source/_components/danfoss_air.markdown
index fd93743b4d1..5b8ab36e70a 100644
--- a/source/_components/danfoss_air.markdown
+++ b/source/_components/danfoss_air.markdown
@@ -65,3 +65,5 @@ The following sensors are supported.
 The following switches are supported.
 
 - **Boost:** Switch to manually activate boost.
+- **Bypass:** Switch to manually activate bypass.
+- **Automatic bypass:** Switch to enable automatic bypass.
diff --git a/source/_components/dyson.markdown b/source/_components/dyson.markdown
index 99aac12279b..88a56255fac 100644
--- a/source/_components/dyson.markdown
+++ b/source/_components/dyson.markdown
@@ -31,6 +31,7 @@ There is currently support for the following device types within Home Assistant:
 - Fan
 - Sensor
 - Vacuum
+- Air Quality
 
 ## {% linkable_title Configuration %}
 
@@ -158,9 +159,22 @@ There are several attributes which can be used for automations and templates.
 
 ## {% linkable_title Sensor %}
 
-The `dyson` sensor platform allows you to control your Dyson Purifier/PRESENTATION/HTML/TOP/PRTINFO.HTML diff --git a/source/_components/essent.markdown b/source/_components/essent.markdown new file mode 100644 index 00000000000..36e7e530e05 --- /dev/null +++ b/source/_components/essent.markdown @@ -0,0 +1,40 @@ +--- +layout: page +title: "Essent" +description: "Instructions on how to integrate Essent within Home Assistant." +date: 2019-04-29 19:15 +sidebar: true +comments: false +sharing: true +footer: true +logo: essent.png +ha_category: + - Energy + - Sensor +ha_release: 0.93 +ha_iot_class: Cloud Polling +--- + +The `essent` platform uses [PyEssent](https://github.com/TheLastProject/PyEssent/) to communicate with the (undocumented) API of Dutch energy provider Essent. It provides sensors for each of your meters and tariffs, updated daily. + +To add Essent to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: essent + username: YOUR_USERNAME + password: YOUR_PASSWORD +``` + +{% configuration %} +username: + required: true + description: Your username for [Mijn Essent](https://www.essent.nl/content/particulier/klantenservice/mijn_essent/). + type: string +password: + required: true + description: Your password for [Mijn Essent](https://www.essent.nl/content/particulier/klantenservice/mijn_essent/). + type: string +{% endconfiguration %} + diff --git a/source/_components/fan.mqtt.markdown b/source/_components/fan.mqtt.markdown index 07fe6d93ba6..189b3139758 100644 --- a/source/_components/fan.mqtt.markdown +++ b/source/_components/fan.mqtt.markdown @@ -147,6 +147,10 @@ json_attributes_topic: description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation. required: false type: string +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-template-configuration) documentation." + required: false + type: template unique_id: description: An ID that uniquely identifies this fan. If two fans have the same unique ID, Home Assistant will raise an exception. required: false diff --git a/source/_components/geniushub.markdown b/source/_components/geniushub.markdown index 7e9202bb363..00789f70031 100644 --- a/source/_components/geniushub.markdown +++ b/source/_components/geniushub.markdown @@ -10,40 +10,73 @@ footer: true logo: geniushub.png ha_category: - Climate + - Water heater ha_release: 0.92 ha_iot_class: Local Polling --- -The `geniushub` integration links Home Assistant with your Genius Hub for controlling climate devices (the hub does not have to be in the same network as HA). +The `geniushub` integration links Home Assistant with your Genius Hub (the hub does not have to be in the same network as HA). -Each Zone controlled by your Genius hub will report back the state, mode, setpoint and temperature. Other properties are available via the device's attributes. +Currently only **Radiator** and **Hot Water Temperature** zones are supported. Within HA, each **Radiator** zone will appear as a `Climate` device, and each **Hot Water Temperature** zone will appear as a `WaterHeater` device. -There are two distinct options for accessing a Genius Hub: +The device's `operating_mode` can be set to one of `off`, `timer`, `on` (i.e. **Override** mode) or `eco`. The `eco` mode is a proxy for the **Footprint** mode and so is only available to **Radiator** zones that have room sensors. -### {% linkable_title Option 1: hub token only %} +Other properties are available via the device's state attributes, which includes a JSON data structure called `status`. For example, in the case of **Radiator** zones/`Climate` devices: - - requires a **hub token** obtained from [https://my.geniushub.co.uk/tokens](https://my.geniushub.co.uk/tokens) - - uses the v1 API - which is well-documented - - polls Heat Genius' own servers (so is slower, say 10-20s response time) +```json +{ + "status": { + "type": "radiator", + "temperature": 19, + "occupied": False, + "override": { + "duration": 0, + "setpoint": 16 + } + } +} -### {% linkable_title Option 2: hub hostname/address with user credentials %} +``` - - requires your **username** & **password**, as used with [https://www.geniushub.co.uk/app](https://www.geniushub.co.uk/app) - - uses the v3 API - results are WIP and may not be what you expect - - polls the hub directly (so is faster, say 1s response time) +This data can be accessed in automations, etc. via a value template. For example: + +{% raw %} +``` +value_template: "{{ state_attr('water_heater.boiler_h_w', 'status').override.setpoint }}" +``` +{% endraw %} + +In the specific case of **Radiator** zones with room sensors: + +{% raw %} +``` +value_template: "{{ state_attr('climate.main_room', 'status').occupied }}" +``` +{% endraw %} + +Currently, there is no support for modifying schedules and neither do they appear in the state attributes. ## {% linkable_title Configuration %} To add your Genius Hub into your Home Assistant installation, add one of the following to your `configuration.yaml` file. -If you want to poll Heat Genius' own servers: +### {% linkable_title Option 1: hub token only %} + + - requires a **hub token** obtained from [my.geniushub.co.uk/tokens](https://my.geniushub.co.uk/tokens) + - uses the v1 API - which is well-documented + - polls Heat Genius' own servers (so is slower, say 5-10s response time) ```yaml # Example configuration.yaml entry, using a Hub Token geniushub: token: GENIUS_HUB_TOKEN ``` -Alternatively, if you want to poll the hub directly: + +### {% linkable_title Option 2: hub hostname/address with user credentials %} + + - requires your **username** & **password**, as used with [www.geniushub.co.uk/app](https://www.geniushub.co.uk/app) + - uses the v3 API - results are WIP and may not be what you expect + - polls the hub directly (so is faster, say 1s response time) ```yaml # Example configuration.yaml entry, directly polling the Hub @@ -71,5 +104,5 @@ username: password: description: Your Genius Hub password required: false - type: integer + type: string {% endconfiguration %} diff --git a/source/_components/google_assistant.markdown b/source/_components/google_assistant.markdown index a25cd42e2af..5f1c75b766f 100644 --- a/source/_components/google_assistant.markdown +++ b/source/_components/google_assistant.markdown @@ -198,6 +198,12 @@ Currently, the following domains are available to be used with Google Assistant, The domain groups contains groups containing all items, by example group.all_automations. When telling Google Assistant to shut down everything, this will lead in this example to disabling all automations

+### {% linkable_title Secure Devices %} + +Certain devices are considered secure, including anything in the `lock` domain, and `covers` with device types `garage` and `door`. + +By default these cannot be opened by Google Assistant unless a `secure_devices_pin` is set up. To allow opening, set the `secure_devices_pin` to something and you will be prompted to speak the pin when opening the device. Closing and locking these devices does not require a pin. + ### {% linkable_title Media Player Sources %} Media Player sources are sent via the Modes trait in Google Assistant. diff --git a/source/_components/heos.markdown b/source/_components/heos.markdown index df86a5ba811..ec870a19d39 100644 --- a/source/_components/heos.markdown +++ b/source/_components/heos.markdown @@ -22,7 +22,6 @@ The HEOS integration adds support for [HEOS](http://heosbydenon.denon.com) capab - Clear playlist - Select source from device physical inputs and HEOS favorites - ## {% linkable_title Configuration %} HEOS devices are discovered and setup automatically when the [discovery](/components/discovery) component is enabled. Alternatively, the component can be setup through the frontend control panel integrations page or manually by adding the following to your `configuration.yaml` file: @@ -44,13 +43,110 @@ host: A connection to a single device enables control for all devices on the network. If you have multiple HEOS devices, enter the host of one that is connected to the LAN via wire or has the strongest wireless signal.

+## {% linkable_title Services %} + +### {% linkable_title Service `heos.sign_in` %} + +Use the sign-in service to sign the connected controller into a HEOS account so that it can retreive and play HEOS favorites and playlists. An error message is logged if sign-in is unsuccessful. Example service data payload: + +```json +{ + "username": "example@example.com", + "password": "password" +} +``` + +| Attribute | Description +| ---------------------- | ---------------------------------------------------------| +| `username` | The username or email of the HEOS account. [Required] +| `password` | The password of the HEOS account. [Required] + +### {% linkable_title Service `heos.sign_out` %} + +Use the sign-out service to sign the connected controller out of a HEOS account. An error message is logged if sign-out is unsuccessful. There are no parameters to this service. + +### {% linkable_title Service `media_player.play_media` %} + +#### {% linkable_title Play Favorite %} + +You can play a HEOS favorite by number or name with the `media_player.play_media` service. Example service data payload: + +```json +{ + "entity_id": "media_player.office", + "media_content_type": "favorite", + "media_content_id": "1" +} +``` + +| Attribute | Description +| ---------------------- | ---------------------------------------------------------| +| `entity_id` | `entity_id` of the player +| `media_content_type` | Set to the value `playlist` +| `media_content_id` | The nubmer (i.e. `1`) or name (i.e. `Thumbprint Radio`) of the HEOS favorite + +#### {% linkable_title Play Playlist %} + +You can play a HEOS playlist with the `media_player.play_media` service. Example service data payload: + +```json +{ + "entity_id": "media_player.office", + "media_content_type": "playlist", + "media_content_id": "Awesome Music" +} +``` + +| Attribute | Description +| ---------------------- | ---------------------------------------------------------| +| `entity_id` | `entity_id` of the player +| `media_content_type` | Set to the value `playlist` +| `media_content_id` | The name of the HEOS playlist + +#### {% linkable_title Play Quick Select %} + +You can play a HEOS Quick Select by nubmer or name with the `media_player.play_media` service. Example service data payload: + +```json +{ + "entity_id": "media_player.office", + "media_content_type": "quick_select", + "media_content_id": "1" +} +``` + +| Attribute | Description +| ---------------------- | ---------------------------------------------------------| +| `entity_id` | `entity_id` of the player +| `media_content_type` | Set to the value `quick_select` +| `media_content_id` | The quick select number (i.e. `1`) or name (i.e. `Quick Select 1`) + +#### {% linkable_title Play Url %} + +You can play a URL through a HEOS media player using the `media_player.play_media` service. The HEOS player must be able to reach the URL. Example service data payload: + +```json +{ + "entity_id": "media_player.office", + "media_content_type": "url", + "media_content_id": "http://path.to/stream.mp3" +} +``` + +| Attribute | Description +| ---------------------- | ---------------------------------------------------------| +| `entity_id` | `entity_id` of the player to play the URL +| `media_content_type` | Set to the value `url` +| `media_content_id` | The full URL to the stream + ## {% linkable_title Notes %} - HEOS groups are not currently supported. - Receivers with multiple zones are represented as a single media player. They will be turned on when playback is started, but cannot be turned off by the integration at this time. +## {% linkable_title Troubleshooing %} -## {% linkable_title Debugging %} +### {% linkable_title Debugging %} The HEOS component will log additional information about commands, events, and other messages when the log level is set to `debug`. Add the the relevent line below to the `configuration.yaml` to enable debug logging: @@ -60,4 +156,11 @@ logger: logs: homeassistant.components.heos: debug pyheos: debug -``` \ No newline at end of file +``` + +### {% linkable_title Missing Favorites %} + +If the HEOS controller is not signed in to a HEOS account, HEOS favorites will not be populated in the media player source selection and the service `media_player.play_media` for `favorite` and `playlist` will fail. Additionally, the following warning will be logged at startup: +> IP_ADDRESS is not logged in to a HEOS account and will be unable to retrieve HEOS favorites: Use the 'heos.sign_in' service to sign-in to a HEOS account + +To resolve this issue, use the `heos.sign_out` service to sign the controller into an account as documented above. This only needs to be performed once, as the controller will remain signed in while the account credentails are valid. diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown index 1afeace2b50..fece1ba1b39 100644 --- a/source/_components/homekit.markdown +++ b/source/_components/homekit.markdown @@ -39,6 +39,7 @@ homekit: code: 1234 binary_sensor.living_room_motion: linked_battery_sensor: sensor.living_room_motion_battery + low_battery_threshold: 31 light.kitchen_table: name: Kitchen Table Light lock.front_door: @@ -122,6 +123,11 @@ homekit: description: The `entity_id` of a `sensor` entity to use as the battery of the accessory. HomeKit will cache an accessory's feature set on the first run so a device must be removed and then re-added for any change to take effect. required: false type: string + low_battery_threshold: + description: Minimum battery level before the accessory starts reporting a low battery. + required: false + type: integer + default: 20 code: description: Code to `arm / disarm` an alarm or `lock / unlock` a lock. Only applicable for `alarm_control_panel` or `lock` entities. required: false @@ -330,12 +336,13 @@ The following components are currently supported: | cover | WindowCovering | All covers that support `set_cover_position`. | | cover | WindowCovering | All covers that support `open_cover` and `close_cover` through value mapping. (`open` -> `>=50`; `close` -> `<50`) | | cover | WindowCovering | All covers that support `open_cover`, `stop_cover` and `close_cover` through value mapping. (`open` -> `>70`; `close` -> `<30`; `stop` -> every value in between) | -| device_tracker | Sensor | Support for `occupancy` device class. | +| device_tracker / person | Sensor | Support for `occupancy` device class. | | fan | Fan | Support for `on / off`, `direction` and `oscillating`. | | fan | Fan | All fans that support `speed` and `speed_list` through value mapping: `speed_list` is assumed to contain values in ascending order. The numeric ranges of HomeKit map to a corresponding entry of `speed_list`. The first entry of `speed_list` should be equivalent to `off` to match HomeKit's concept of fan speeds. (Example: `speed_list` = [`off`, `low`, `high`]; `off` -> `<= 33`; `low` -> between `33` and `66`; `high` -> `> 66`) | | light | Light | Support for `on / off`, `brightness` and `rgb_color`. | | lock | DoorLock | Support for `lock / unlock`. | | media_player | MediaPlayer | Represented as a series of switches which control `on / off`, `play / pause`, `play / stop`, or `mute` depending on `supported_features` of entity and the `mode` list specified in `entity_config`. | +| media_player | TelevisionMediaPlayer | All media players that have `tv` as their `device_class`. Represented as Television and Remote accessories in HomeKit to control `on / off`, `play / pause`, `select source`, or `volume increase / decrease`, depending on `supported_features` of entity. Requires iOS 12.2/macOS 10.14.4 or later. | | sensor | TemperatureSensor | All sensors that have `Celsius` or `Fahrenheit` as their `unit_of_measurement` or `temperature` as their `device_class`. | | sensor | HumiditySensor | All sensors that have `%` as their `unit_of_measurement` and `humidity` as their `device_class`. | | sensor | AirQualitySensor | All sensors that have `pm25` as part of their `entity_id` or `pm25` as their `device_class` | @@ -452,3 +459,11 @@ To fix this, you need to unpair the `Home Assistant Bridge`, delete the `.homeki #### {% linkable_title The linked battery sensor isn't recognized %} Try removing the entity from HomeKit and then adding it again. If you are adding this config option to an existing entity in HomeKit, any changes you make to this entity's config options won't appear until the accessory is removed from HomeKit and then re-added. + +#### {% linkable_title My media player is not showing up as a television accessory %} + +Media Player entities with `device_class: tv` will show up as Television accessories on devices running iOS 12.2/macOS 10.14.4 or later. If needed, try removing the entity from HomeKit and then adding it again, especially if the `media_player` was previously exposed as a series of switches. Any changes, including changed supported features, made to an existing accessory won't appear until the accessory is removed from HomeKit and then re-added. + +#### {% linkable_title Can't control volume of your TV media player? %} + +The volume and play/pause controls will show up on the Remote app or Control Center. If your TV supports volume control through Home Assistant, you will be able to control the volume using the side volume buttons on the device while having the remote selected on screen. diff --git a/source/_components/homematicip_cloud.markdown b/source/_components/homematicip_cloud.markdown index b92aae3aea1..42615eb65b6 100644 --- a/source/_components/homematicip_cloud.markdown +++ b/source/_components/homematicip_cloud.markdown @@ -99,12 +99,11 @@ authtoken: * Water Sensor (*HmIP-SWD*) * homematicip_cloud.climate - * Heating-Thermostat Radiator with Display (*HmIP-eTRV,-2*) - should also work with (*HmIP-eTRV-2-UK, -B, -B1, -C*) * Climate group (*HmIP-HeatingGroup*) * This includes temperature/humidity measures for climate devices of a room delivered by: * Wall-mounted thermostat (*HmIP-WTH, WTH-2*) * Brand Wall-mounted thermostat (*HmIP-BWTH, BWTH-24*) - * Radiator thermostat (*HmIP-eTRV,-2*) - should also work with (*HmIP-eTRV-2-UK, -B, -B1, -C*) + * Radiator thermostat (*HmIP-eTRV,-2,-C*) - should also work with (*HmIP-eTRV-2-UK, -B, -B1*) * Temperature and humidity sensor (*HmIP-STH*) * Temperature and humidity Sensor with display (*HmIP-STHD*) @@ -123,6 +122,7 @@ authtoken: * homematicip_cloud.sensor * Cloud Access point duty-cycle (*HmIP-HAP, -B1*) * Wall Mounted Thermostat Pro with Display (*HmIP-WTH, WTH2*) + * Radiator thermostat (*HmIP-eTRV,-2, -C*) - should also work with (*HmIP-eTRV-2-UK, -B, -B1*) * Temperature and Humidity Sensor without display - indoor (*HmIP-STH*) * Temperature and Humidity Sensor with display - indoor (*HmIP-STHD*) * Temperature and Humidity sensor - outdoor (*HmIP-STHO, -A*) diff --git a/source/_components/html5.markdown b/source/_components/html5.markdown index c9803894e97..6e9035f00ce 100644 --- a/source/_components/html5.markdown +++ b/source/_components/html5.markdown @@ -145,7 +145,7 @@ data: #### {% linkable_title Data %} -Any parameters that you pass in the notify payload that aren't valid for use in the HTML5 notification (`actions`, `badge`, `body`, `dir`, `icon`, `image`, `lang`, `renotify`, `requireInteraction`, `tag`, `timestamp`, `vibrate`) will be sent back to you in the [callback events](#automating-notification-events). +Any parameters that you pass in the notify payload that aren't valid for use in the HTML5 notification (`actions`, `badge`, `body`, `dir`, `icon`, `image`, `lang`, `renotify`, `requireInteraction`, `tag`, `timestamp`, `vibrate`, `priority`, `ttl`) will be sent back to you in the [callback events](#automating-notification-events). ```yaml title: Front door @@ -220,6 +220,20 @@ data: If no URL or actions are provided, interacting with a notification will open your Home Assistant in the browser. You can use relative URLs to refer to Home Assistant, i.e. `/map` would turn into `https://192.168.1.2:8123/map`. +#### {% linkable_title TTL and Priority %} + +Newer Android versions introduced stronger battery optimization, so notifications by default are delivered only when phone is awake. +Options TTL and priority tries to help users solve those problems. Default value of TTL is `86400s` and priority is `normal`. +You can set priority to either `normal` or `high`. TTL is any integer value. + +```yaml +title: Front door +message: The front door is open +data: + ttl: 86400 + priority: high +``` + ### {% linkable_title Dismiss %} You can dismiss notifications by using service notify.html5_dismiss like so: diff --git a/source/_components/incomfort.markdown b/source/_components/incomfort.markdown new file mode 100644 index 00000000000..d11846f4cd7 --- /dev/null +++ b/source/_components/incomfort.markdown @@ -0,0 +1,55 @@ +--- +layout: page +title: "Intergas InComfort" +description: "Instructions on how to integrate an Intergas Lan2RF gateway with Home Assistant." +date: 2019-03-03 16:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: incomfort.png +ha_category: + - Water heater +ha_release: 0.93 +ha_iot_class: Local Polling +--- + +The `incomfort` integration links Home Assistant with your Intergas Lan2RF gateway for controlling water_heater devices (the hub does not have to be in the same network as HA). + +The **Water Heater** device will report back the `state` and `temperature`. Other properties are available via the device's attributes. + +In the future, other entities will be added to this integration (e.g. a **Sensor** for CV pressure, and a **Climate** device for room temperature). + +### {% linkable_title Configuration %} + +To add your Lan2RF gateway into your Home Assistant installation, add one of the following to your `configuration.yaml` file. + +```yaml +# Example configuration.yaml entry, older firmware with no user credentials +incomfort: + host: IP_ADDRESS +``` +Alternatively, if a **username** & **password** is printed on the back of the gateway: + +```yaml +# Example configuration.yaml entry, newer firmware with user credentials +incomfort: + host: IP_ADDRESS + username: USERNAME + password: PASSWORD +``` + +{% configuration %} +host: + description: The hostname/IP address of the Lan2RF gateway + required: true + type: string +username: + description: The username of the Lan2RF gateway + required: inclusive + type: string +password: + description: The password of the Lan2RF gateway + required: inclusive + type: string +{% endconfiguration %} diff --git a/source/_components/pollen.markdown b/source/_components/iqvia.markdown similarity index 81% rename from source/_components/pollen.markdown rename to source/_components/iqvia.markdown index 6748aa5d80f..cb04396076a 100644 --- a/source/_components/pollen.markdown +++ b/source/_components/iqvia.markdown @@ -1,24 +1,25 @@ --- layout: page -title: "Pollen.com" -description: "Instructions on how to use Pollen.com data within Home Assistant" +title: "IQVIA" +description: "Instructions on how to use IQVIA data within Home Assistant" date: 2018-01-10 19:20:00 sidebar: true comments: false sharing: true footer: true -logo: pollen.jpg +logo: iqvia.png ha_category: - Health ha_release: 0.63 ha_iot_class: Cloud Polling redirect_from: - /components/sensor.pollen/ + - /components/pollen/ --- -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: +The `iqvia` sensor platform collects and displays allergy, asthma, and disease +information (based on a U.S. ZIP code) from [IQVIA](https://www.iqvia.com/). +Data measured includes: * Indicies for allergies, asthma and cold/flu indices * Trends @@ -27,26 +28,25 @@ information (based on a U.S. ZIP code) from ## {% linkable_title Configuring the Platform %} -To integrate `pollen` into Home Assistant, add the following section to your +To integrate `iqvia` into Home Assistant, add the following section to your `configuration.yaml` file (adjusting the `monitored_conditions` list to your liking): ```yaml -sensor: - platform: pollen +iqvia: zip_code: "00544" monitored_conditions: - allergy_average_forecasted - - allergy_average_historical - 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 + - disease_index_today + - disease_index_yesterday ``` {% configuration %} @@ -70,16 +70,16 @@ ZIP codes that start with 0 will cause errors. The following metrics can be monitored: * Allergy Index: Forecasted Average (`allergy_average_forecasted`): the average forecasted allergy index over the next 5 days -* Allergy Index: Historical Average (`allergy_average_historical`): the average historical allergy index over the past 30 days * Allergy Index: Today (`allergy_index_today`): the allergy index for today * Allergy Index: Tomorrow (`allergy_index_tomorrow`): the allergy index for 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 +* Cold & Flu Index: Today (`disease_index_today`): the cold/flu index for today +* Cold & Flu Index: Yesterday (`disease_index_yesterday`): the cold/flu index for yesterday ## {% linkable_title Understanding the Indices %} diff --git a/source/_components/light.mqtt.markdown b/source/_components/light.mqtt.markdown index d68d9605dd7..084a8f13e7e 100644 --- a/source/_components/light.mqtt.markdown +++ b/source/_components/light.mqtt.markdown @@ -231,6 +231,10 @@ json_attributes_topic: description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation. required: false type: string +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-template-configuration) documentation." + required: false + type: template device: description: 'Information about the device this light is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.' required: false @@ -489,6 +493,10 @@ json_attributes_topic: description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation. required: false type: string +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-template-configuration) documentation." + required: false + type: template device: description: 'Information about the device this light is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.' required: false @@ -760,6 +768,9 @@ json_attributes_topic: description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation. required: false type: string +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-template-configuration) documentation." + required: false device: description: 'Information about the device this light is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.' required: false diff --git a/source/_components/lock.mqtt.markdown b/source/_components/lock.mqtt.markdown index c647e9a44e2..b35d237aa9c 100644 --- a/source/_components/lock.mqtt.markdown +++ b/source/_components/lock.mqtt.markdown @@ -94,6 +94,10 @@ json_attributes_topic: description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation. required: false type: string +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-template-configuration) documentation." + required: false + type: template unique_id: description: An ID that uniquely identifies this lock. If two locks have the same unique ID, Home Assistant will raise an exception. required: false diff --git a/source/_components/meteoalarm.markdown b/source/_components/meteoalarm.markdown new file mode 100644 index 00000000000..a8ec7771e5c --- /dev/null +++ b/source/_components/meteoalarm.markdown @@ -0,0 +1,107 @@ +--- +layout: page +title: MeteoAlarm Sensor +description: "Instructions on how to set up MeteoAlarm binary sensors within Home Assistant." +date: 2019-05-03 16:50 +sidebar: true +comments: false +sharing: true +footer: true +logo: meteoalarm.png +ha_category: Binary Sensor +ha_release: 0.93 +ha_iot_class: Local Polling +--- + +The `MeteoAlarm` platform allows one to watch for weather alerts in europe from [MeteoAlarm](https://www.meteoalarm.eu) (EUMETNET). To use this binary sensor, you need the two digits of your country and the province name from [MeteoAlarm](https://www.meteoalarm.eu). Please note that you need to write the exact details from the website with capitals. + +The binary sensor state shows if applicable the warning message. The details are available as attribute. + +## {% linkable_title Configuration %} + +To enable this binary sensor, add the following lines to your `configuration.yaml`: + +```yaml +binary_sensor: + - platform: meteoalarm + country: 'NL' + province: 'Groningen' +``` + +{% configuration %} +name: + description: Binary sensor name + required: false + default: meteoalarm + type: string +country: + description: The 2 digits of your country + required: true + type: string +province: + description: The province + required: true + type: string +language: + description: "The 4 digits our your language, please be aware that this is only possible in the current country. So 'ne' is only possible in Netherlands. Possible options is: bu, bs, ce, da, de, ee, en, es, ga, ca, su, fr, gr, he, hr, ma, is, it, li, la, sr, mk, ma, ne, no, po, ro, cp, sv, sl, eu." + required: false + type: string + default: 'en' +{% endconfiguration %} + + +{% linkable_title Example output %} + +You will find an example below when the state is "on". + +{% raw %} +attribution: Information provided by MeteoAlarm +language: en-GB +category: Met +event: Severe forest-fire warning +responseType: Monitor +urgency: Immediate +severity: Severe +certainty: Likely +effective: 2019-05-02T22:00:00+00:00 +onset: 2019-05-02T22:00:00+00:00 +expires: 2019-05-03T21:59:00+00:00 +senderName: Stig Carlsson +headline: Orange forest-fire for Hedmark, Oppland +description: High grass and heather fire hazard in areas without snow until significant amount of precipitation. +Consequences: Vegetation is very easily ignited and very large areas may be affected. +instruction: Be very careful with open fire. Follow the instructions from the local authorities. Emergency services should assess a necessary level of alertness. +awareness_level: 3; orange; Severe +awareness_type: 8; forest-fire +unit_of_measurement: +friendly_name: meteoalarm +icon: mdi:alert +{% endraw %} + +There are a few awareness levels: + +* 2; yellow; Moderate +* 3; orange; Severe +* 4; red; High + +{% linkable_title Example automation %} + +Below you find an example of an automation. + +{% raw %} +automation: + - alias: Alert me about weather warnings + trigger: + platform: state + entity_id: binary_sensor.meteoalarm + from: ‘off’ + action: + - service: notify.notify + data_template: + title: '{{state_attr('binary_sensor.meteoalarm', 'headline')}}' + message: "{{state_attr('binary_sensor.meteoalarm', 'description')}} is effective on {{state_attr('binary_sensor.meteoalarm', 'effective')}}" +{% endraw %} + +

+This component is not affiliated with MeteoAlarm and retrieves data from the website by using the XML feeds. Use it at your own risk. +

diff --git a/source/_components/mysensors.markdown b/source/_components/mysensors.markdown index 386daaeeb30..b7fc620ea8d 100644 --- a/source/_components/mysensors.markdown +++ b/source/_components/mysensors.markdown @@ -247,7 +247,13 @@ In MySensors version 2.2 the serial API changed from using `I_HEARTBEAT_RESPONSE Messages sent to or from Home Assistant from or to a MySensors device will be validated according to the MySensors [serial API](https://www.mysensors.org/download/serial_api_20). If a message doesn't pass validation, it will be dropped and not be passed forward either to or from Home Assistant. Make sure you follow the serial API for your version of MySensors when writing your Arduino sketch. -If you experience dropped messages or that a device is not added to Home Assistant, please turn on debug logging for the `mysensors` component and the `mysensors` package. +The log should warn you of messages that failed validation or if a child value is missing that is required for a certain child type. Home Assistant will log failed validations of child values at warning level if e.g. one required value type for a platform has been received, but other required value types are missing. + +Message validation was introduced in version 0.52 of Home Assistant. + +### {% linkable_title Debug logging %} + +If you experience dropped messages or that a device is not added to Home Assistant, please turn on debug logging for the `mysensors` component and the `mysensors` package. This will help you see what is going on. Make sure you use these logging settings to collect a log sample if you report an issue about the `mysensors` integration in our github issue tracker. ```yaml logger: default: info @@ -255,9 +261,6 @@ logger: homeassistant.components.mysensors: debug mysensors: debug ``` -The log should inform you of messages that failed validation or if a child value is missing that is required for a certain child type. Note that the log will log all possible combinations of platforms for a child type that failed validation. It is normal to see some platforms fail validation if the child type supports multiple platforms and your sketch doesn't send all corresponding value types. e.g., the `S_BARO` child type supports both `V_PRESSURE` and `V_FORECAST` value types. If you only send a `V_PRESSURE` value, an `S_BARO` entity with `V_PRESSURE` value will be set up for the sensor platform. However, the log will inform of a sensor platform that failed validation due to missing `V_FORECAST` value type for the `S_BARO` child. Home Assistant will log failed validations of child values at warning level if one required value type for a platform has been received, but other required value types are missing. Most failed validations are logged at debug level. - -Message validation was introduced in version 0.52 of Home Assistant. Visit the [library API][MySensors library api] of MySensors for more information. diff --git a/source/_components/netatmo.markdown b/source/_components/netatmo.markdown index ae756c71fc9..19281f38514 100644 --- a/source/_components/netatmo.markdown +++ b/source/_components/netatmo.markdown @@ -10,12 +10,33 @@ footer: true logo: netatmo.png ha_category: - Hub + - Environment + - Weather + - Binary Sensor + - Sensor + - Climate + - Camera ha_release: "0.20" ha_iot_class: Cloud Polling +redirect_from: + - /components/binary_sensor.netatmo/ + - /components/camera.netatmo/ + - /components/climate.netatmo/ + - /components/sensor.netatmo/ + - /components/public_sensor.netatmo/ --- The `netatmo` component platform is the main component to integrate all Netatmo related platforms. +There is currently support for the following device types within Home Assistant: + +- [Binary Sensor](#binary-sensor) +- [Camera](#camera) +- [Climate](#climate) +- [Sensor](#sensor) + +## {% linkable_title Configuration %} + To enable the Netatmo component, add the following lines to your `configuration.yaml`: ```yaml @@ -130,3 +151,309 @@ There are two services to manually add and drop the webhooks. This might be usef | ------- | ----------- | | addwebhook | Subscribe to webhooks. By default the automatically generated URL will be used. But you can pass `{"url": "https://yourdomain.com/yourwebhook/"}` as service data to the service call if you want to use a manually created [webhook trigger](https://www.home-assistant.io/docs/automation/trigger/#webhook-trigger). In this case you have to manually process the data that is sent by Netatmo. | dropwebhook | Unsubscribe existing webhooks. + +## {% linkable_title Binary Sensor %} + +This component allows you to get the latest event seen by the camera. + +### {% linkable_title Binary Sensor Advanced configuration %} + +If you want to select a specific sensor, +set discovery to `false` for [netatmo](/components/netatmo/) +and add the following lines to your `configuration.yaml`: + +{% configuration %} +home: + description: Will use the cameras of this home only. + required: false + type: string +timeout: + description: > + The Welcome/Presence binary sensors will + stay on for X seconds after detection. + required: false + type: integer + default: 90 +cameras: + description: List of cameras entity IDs to display. + required: false + type: list +welcome_sensors: + description: > + List of monitored conditions. Possible values are + 'Someone known', 'Someone unknown' and 'Motion'. + required: false + type: list +presence_sensors: + description: > + List of monitored conditions. Possible values are 'Outdoor motion', + 'Outdoor human', 'Outdoor animal' and 'Outdoor vehicle'. + required: false + type: list +{% endconfiguration %} + +```yaml +# Example configuration.yaml entry +binary_sensor: + platform: netatmo + home: home_name + timeout: 90 + cameras: + - camera_name1 + welcome_sensors: + - Someone known + - Someone unknown + - Motion + presence_sensors: + - Outdoor motion + - Outdoor human + - Outdoor animal + - Outdoor vehicle +``` + +If **home** and **cameras** is not provided, all cameras will be used. +If multiple cameras are available then each monitored conditions +will create a specific sensor for each camera + +## {% linkable_title Camera %} + +The `netatmo` camera platform is consuming the information provided by a [Netatmo](https://www.netatmo.com) camera. This component allows you to view the current photo created by the Camera. + +### {% linkable_title Camera Advanced configuration %} + +If you want to select a specific camera, +set discovery to `false` for [netatmo](/components/netatmo/) +and add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +camera: + - platform: netatmo +``` + +{% configuration %} +home: + description: Will display the cameras of this home only. + required: false + type: string +cameras: + description: Cameras to use. Multiple entities allowed. + required: false + type: list + keys: + camera_name: + description: Name of the camera to display. +quality: + description: Quality of the live stream. (`'high'`, `'medium'`, `'low'` or `'poor'`) + required: false + type: string + default: high +{% endconfiguration %} + +If **home** and **cameras** are not provided, all cameras will be displayed. For more control over your cameras check the configuration sample below. + +```yaml +# Example configuration.yaml entry +camera: + platform: netatmo + home: home_name + quality: medium + cameras: + - camera_name1 + - camera_name2 +``` + +## {% linkable_title Climate %} + +The `netatmo` thermostat platform is consuming the information provided by a [Netatmo Smart Thermostat](https://www.netatmo.com/product/energy/thermostat) thermostat. This component allows you to view the current temperature and setpoint. + +### {% linkable_title Camera Advanced configuration %} + +If you want to select specific homes or specific rooms, +set discovery to `false` for [netatmo](/components/netatmo/) +and add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +climate: + - platform: netatmo +``` + +{% configuration %} +homes: + description: Will display the thermostats of the homes listed. + required: false + type: list + keys: + name: + required: true + description: The home name. + rooms: + description: Rooms to be displayed. Multiple entities allowed. + required: false + type: [list, string] + description: List of the names of the rooms to be displayed. +{% endconfiguration %} + +If **homes** and **rooms** are not provided, all thermostats will be displayed. + +```yaml +# Example configuration.yaml entry +climate: + platform: netatmo + homes: + - name: home1_name + rooms: + - room1_name + - room2_name + - name: home2_name + rooms: + - room3_name + - room4_name + - room5_name +``` + +## {% linkable_title Sensor %} + +The `netatmo` sensor platform is consuming the information provided by a [Netatmo Weather Station](https://www.netatmo.com/en-us/weather/weatherstation), a +[Netatmo Home Coach](https://www.netatmo.com/en-us/aircare/homecoach) [Netatmo](https://www.netatmo.com) device or the public sensors of others available via the [Netatmo API](https://weathermap.netatmo.com/) even if you don't own a Netatmo device. + +Public sensors have to be set up manually. Currently the following conditions are supported for the public sensors: + +* temperature +* pressure +* humidity +* rain +* windstrength +* guststrength + +## {% linkable_title Advanced sensor configuration %} + +If you want to select a specific sensor, set discovery to False for [netatmo](/components/netatmo/) and add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +sensor: + # Personal sensors + - platform: netatmo + station: STATION_NAME + modules: + module_name1: + - temperature + module_name2: + - temperature + - battery_vp + + # Public sensor + - platform: netatmo + areas: + - lat_ne: 40.719 + lon_ne: -73.735 + lat_sw: 40.552 + lon_sw: -74.105 + monitored_conditions: + - temperature + - pressure + - humidity + - rain + - windstrength + - guststrength +``` + +{% configuration %} +station: + required: false + description: The name of the weather station. Needed if several stations are associated with the account. + type: string +modules: + required: false + description: Modules to use. Multiple entries allowed. Please check the next section about how to retrieve the module names. + type: list + keys: + module_name: + type: list + required: true + description: Name of the module. + keys: + temperature: + description: Current temperature. + co2: + description: CO2 concentration in ppm. + pressure: + description: Pressure in mbar. + noise: + description: Noise level in dB. + humidity: + description: "Humidity in %." + health_idx: + description: "Air health as one of the values Healthy, Fine, Fair, Poor, Unhealthy." + rain: + description: Estimated rainfall for today in mm. + sum_rain_1: + description: Rainfall in the last hour in mm. + sum_rain_24: + description: "Rainfall in mm from 00:00am - 23:59pm." + windangle: + description: Wind angle + windstrength: + description: Wind strength + gustangle: + description: Wind gust angle + guststrength: + description: Wind gust strength + min_temp: + description: Min temperature for today + max_temp: + description: Max temperature for today + rf_status: + description: "Current radio status per module. (90=low, 60=highest)" + wifi_status: + description: Wifi status per Base station + battery_vp: + description: Current battery status per module. + battery_percent: + description: Percentage of battery remaining per module. +areas: + description: The list contains one or more areas to add as sensors. + required: false + type: map + keys: + lat_ne: + description: Latitude of north-eastern corner of area. + required: true + type: string + lon_ne: + description: Longitude of north-eastern corner of area. + required: true + type: string + lat_sw: + description: Latitude of south-western corner of area. + required: true + type: string + lon_sw: + description: Longitude of south-western corner of area. + required: true + type: string + monitored_conditions: + description: List of environment conditions to monitor. + required: true + type: list + name: + description: Name of the sensor. + required: false + type: string + default: Netatmo Public Data + mode: + description: "How to calculate the value of the sensor if there are multiple stations reporting data. Accepts `max` or `avg`." + required: false + type: string + default: avg +{% endconfiguration %} + +## {% linkable_title Find your modules name %} + +You can find your modules name in your [online NetAtmo account](https://my.netatmo.com/app/station). These names can be found and changed in parameters. You have to provide these name in your Home Assistant `configuration.yaml` file. + +

+ +

diff --git a/source/_components/netatmo_public.markdown b/source/_components/netatmo_public.markdown deleted file mode 100644 index 8796584f90d..00000000000 --- a/source/_components/netatmo_public.markdown +++ /dev/null @@ -1,88 +0,0 @@ ---- -layout: page -title: "Netatmo Public" -description: "Instructions on how to add sensors using Netatmo public data to Home Assistant." -date: 2018-07-22 21:18 -sidebar: true -comments: false -sharing: true -footer: true -logo: netatmo.png -ha_category: - - Environment -ha_iot_class: Cloud Polling -ha_release: 0.77 -redirect_from: - - /components/sensor.netatmo_public/ ---- - -The `netatmo_public` sensor allows you to expose data from [Netatmo](https://weathermap.netatmo.com/) to Home Assistant, even if you don't have a Netatmo device yourself. Currently the following conditions are supported: - -* temperature -* pressure -* humidity -* rain -* windstrength -* guststrength - -To enable the Netatmo sensor, you have to set up [netatmo](/components/netatmo/). - -## {% linkable_title Configuration %} - -Next, enable the sensor by adding the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: netatmo_public - areas: - - lat_ne: 40.719 - lon_ne: -73.735 - lat_sw: 40.552 - lon_sw: -74.105 - monitored_conditions: - - temperature - - pressure - - humidity - - rain - - windstrength - - guststrength -``` - -{% configuration %} -areas: - description: The list contains one or more areas to add as sensors. - required: true - type: map - keys: - lat_ne: - description: Latitude of north-eastern corner of area. - required: true - type: string - lon_ne: - description: Longitude of north-eastern corner of area. - required: true - type: string - lat_sw: - description: Latitude of south-western corner of area. - required: true - type: string - lon_sw: - description: Longitude of south-western corner of area. - required: true - type: string - monitored_conditions: - description: List of environment conditions to monitor. - required: true - type: list - name: - description: Name of the sensor. - required: false - type: string - default: Netatmo Public Data - mode: - description: "How to calculate the value of the sensor if there are multiple stations reporting data. Accepts `max` or `avg`." - required: false - type: string - default: avg -{% endconfiguration %} diff --git a/source/_components/netgear_lte.markdown b/source/_components/netgear_lte.markdown index ed9d9ea94df..56a195073cf 100644 --- a/source/_components/netgear_lte.markdown +++ b/source/_components/netgear_lte.markdown @@ -146,15 +146,33 @@ Messages arriving in the modem inbox are sent as events of type `netgear_lte_sms ## {% linkable_title Services %} -### {% linkable_title Service `netgear_lte.delete_sms` %} +### {% linkable_title Service `netgear_lte.connect_lte` %} -The integration makes a service call available to delete messages from the modem inbox. This can be used to clean up after incoming SMS events. +This service asks the modem to establish its LTE connection, useful if the modem does not autoconnect. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | -| `host` | no | The modem that should have a message deleted. +| `host` | yes | The modem that should connect (optional when just one modem is configured). + +### {% linkable_title Service `netgear_lte.delete_sms` %} + +The integration makes a service available to delete messages from the modem inbox. This can be used to clean up after incoming SMS events. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `host` | yes | The modem that should have a message deleted (optional when just one modem is configured). | `sms_id` | no | Integer or list of integers with inbox IDs of messages to delete. +### {% linkable_title Service `netgear_lte.set_option` %} + +This service can set modem configuration options (otherwise available in the modem web UI). + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `host` | yes | The modem to set options on (optional when just one modem is configured). +| `autoconnect` | yes | Autoconnect value: `never`/`home`/`always`, with `home` meaning "not roaming". +| `failover` | yes | Failover mode: `wire` (wired connection only), `mobile` (mobile connection only), `auto` (wired connection with failover to mobile connection). + ## {% linkable_title Examples %} The following automation example processes incoming SMS messages with the [Conversation](/components/conversation/) integration and then deletes the message from the inbox. diff --git a/source/_components/nextbus.markdown b/source/_components/nextbus.markdown new file mode 100644 index 00000000000..f6324681eca --- /dev/null +++ b/source/_components/nextbus.markdown @@ -0,0 +1,58 @@ +--- +layout: page +title: "Public Transit (Nextbus)" +description: "Instructions on how to use public transit data from Nextbus in Home Assistant." +date: 2019-02-20 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: train.png +ha_category: + - Transport + - Sensor +ha_iot_class: Local Polling +ha_release: 0.93 +--- + +The `nextbus` sensor will give you the next departure time and associated data from your public transit station/stop. The data comes from [NextBus](https://www.nextbus.com), which provides real time transit data for a number of transit authorities. + +It is possible to get the tag information from the NextBus website. + + 1. Visit https://www.nextbus.com/ + 2. Use the drop downs to select the transit system, route, direction, and stop + 3. Extract the tags from the URL. It is constructed with the following pattern: + + https://www.nextbus.com/#!//// + +If tags are incorrect, valid ones will be displayed in the logs as a +convenience. + +```yaml +# Example configuration.yaml entry +sensor: + - platform: nextbus + agency: AGENCY_TAG + route: ROUTE_TAG + stop: STOP_TAG +``` + +{% configuration %} +agency: + description: The agency tag from NextBus. + required: true + type: string +route: + description: The route tag from NextBus. + required: true + type: string +stop: + description: The stop tag from NextBus. + required: true + type: integer +name: + description: Name to use in the frontend. + required: false + default: - + type: string +{% endconfiguration %} diff --git a/source/_components/orangepi_gpio.markdown b/source/_components/orangepi_gpio.markdown new file mode 100644 index 00000000000..1cdb9709981 --- /dev/null +++ b/source/_components/orangepi_gpio.markdown @@ -0,0 +1,85 @@ +--- +layout: page +title: "Orange Pi GPIO" +description: "Instructions on how to integrate the GPIO capability of a Orange Pi into Home Assistant." +date: 2019-03-29 19:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: + - DIY + - Binary Sensor +ha_release: 0.93 +ha_iot_class: Local Push +--- + +The `orangepi_gpio` component is the base for all related GPIO platforms in Home Assistant. There is no setup needed for the component itself, for the platforms please check their corresponding pages. + +## {% linkable_title Binary Sensor %} + +The `orangepi_gpio` binary sensor platform allows you to read sensor values of the GPIOs of your Orange Pi or NanoPi. + +## {% linkable_title Configuration %} + +To use your Orange Pi's GPIO in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: orangepi_gpio + pin_mode: pc + ports: + 11: PIR Office + 12: PIR Bedroom +``` + +{% configuration %} +pin_mode: + description: Type of pin mode to use. This depends on which device you are actually using ([PIN_MODE](/components/orangepi_gpio#pin_mode)). + required: true + type: string +ports: + description: List of used ports. + required: true + type: map + keys: + "port: name": + description: The port numbers (physical pin numbers) and corresponding names. + required: true + type: string +invert_logic: + description: If `true`, inverts the output logic to ACTIVE LOW. + required: false + type: boolean + default: "`false` (ACTIVE HIGH)" +{% endconfiguration %} + +Compared to the [Raspberry Pi GPIO](/components/rpi_gpio/) component, this component does not support pull-up resistors or port debouncing. Use external pull-ups and external port-debouncing. + +## {% linkable_title Pin_mode %} + +As this platform supports different types of GPIO pinouts for difference Orange Pi or Nano Pi devices, we use the `pin_mode` value to specify which one to use. Enabled values are: + +| Value | Description | +| ----- | ----------- | +| `pc` | Supports the Orange Pi Lite, One, PC and Prime | +| `zeroplus` | Supports the Orange Pi Zero Plus | +| `zeroplus2` | Supports the Orange Pi Zero Plus 2 | +| `duo` | Supports the NanoPi Duo | +| `neocore2` | Supports the NanoPi Neocore 2 | + +## {% linkable_title Additional steps %} +This component uses the `SYSFS` filesystem to get control of the GPIOs. Therefore an operatings system with `CONFIG_GPIO_SYSFS` is required. As far as I know, most out-of-the-box distributions still enable this by default. + +As of Linux 4.8 sysfs-gpio is marked as obsolete. However as of today, the alternative GPIO character device is not widely used. Therefore we will use this until the new character device is more widely supported. + +Normally the `/sys/class/gpio` path is owned by root, so Home Assistant does not have access. As we don't want to run Home Assistant as root, we will add the group `gpio` to have control over this path. I will assume you added the `homeassistant` user already to the `gpio` group as recommended in the [Manual installation guide](/docs/installation/raspberry-pi/) + +Create a new file in `/etc/udev/rules.d/` named `10-gpio.rules` with the following contents: + +``` +SUBSYSTEM=="gpio*", PROGRAM="/bin/sh -c 'find -L /sys/class/gpio/ -maxdepth 2 -exec chown root:gpio {} \; -exec chmod 770 {} \; || true'" +``` + +Home Assistant will now be able to control your GPIO pins. diff --git a/source/_components/ptvsd.markdown b/source/_components/ptvsd.markdown new file mode 100644 index 00000000000..d47a02605a4 --- /dev/null +++ b/source/_components/ptvsd.markdown @@ -0,0 +1,118 @@ +--- +layout: page +title: "PTVSD Debugger (Visual Studio Code)" +description: "Debugging from Visual Studio Code." +date: 2019-04-24 09:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: visual-studio.png +ha_category: + - Utility +ha_release: 0.93 +--- + +The `ptvsd` component allows you to use the Visual Studio Code PTVSD debugger with Home Assistant. + +This is useful in testing changes on a local development install, or connecting to a production server to debug issues. + +To enable the `ptvsd` component add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +ptvsd: +``` + +By default this will listen on all local interfaces, on port 5678, and will not wait for a connection. + +{% configuration %} +host: + description: The local interface to listen on. + required: false + default: 0.0.0.0 (all interfaces). + type: string +port: + description: Port to listen on. + required: false + default: 5678 + type: port +wait: + description: If true, wait for the debugger to connect before starting up home assistant. + required: false + default: false + type: boolean +{% endconfiguration %} + +### {% linkable_title Security %} + +Ensure if this is a public-facing server, that the port is secured. Anyone who is able to access the debugger port can *execute arbitary code* on the home assistant server, which is very unsafe. + +If the home assistant server is behind your firewall with only the http(s) port exposed, then this is safe from outside connections. + +Another way of securing the port is to set `host` to localhost and have a secured SSH TCP tunnel with a client certificate for access from the outside internet. + +### {% linkable_title Waiting at startup %} + +If you want to debug something in the boot-up sequence, configure the component to wait for a connection first: + +```yaml +# Example configuration.yaml entry +ptvsd: + wait: True +``` + +The ptvsd debugger is loaded quite early on in the boot-up sequence, before any other components. This will allow you to set breakpoints in `async_setup` or similar and debug the loading of the component. + +### {% linkable_title Alternate host and port %} + +You can also listen on a different server address or port: + +```yaml +# Example configuration.yaml entry +ptvsd: + host: localhost + port: 6789 +``` + +This is useful for multi-homed servers, or for localhost only access + +### {% linkable_title Example Visual Studio Code configuration %} + +This can be copied into your `launch.json` in the `.vscode` subdirectory in your Visual Studio Code project to connect to the debugger. + +```json +{ + "version": "0.2.0", + "configurations": [ + { + // Example of attaching to local debug server running on WSL + "name": "Python: Attach Local", + "type": "python", + "request": "attach", + "port": 5678, + "host": "localhost", + "pathMappings": [ + { + "localRoot": "c:\\Users\\Penny\\Documents\\Software\\home-assistant\\", + "remoteRoot": "/mnt/c/Users/Penny/Documents/Software/home-assistant" + } + ], + }, + { + // Example of attaching to my production server + "name": "Python: Attach Brontosarus", + "type": "python", + "request": "attach", + "port": 5678, + "host": "10.0.0.3", // Within my firewall so I don't need to secure the port. + "pathMappings": [ + { + "localRoot": "c:\\Users\\Penny\\Documents\\Software\\home-assistant\\", + "remoteRoot": "/usr/src/app" // setup for docker container. + } + ], + } + ] +} +``` diff --git a/source/_components/rainmachine.markdown b/source/_components/rainmachine.markdown index 7bba33402bb..132313647ce 100644 --- a/source/_components/rainmachine.markdown +++ b/source/_components/rainmachine.markdown @@ -88,7 +88,7 @@ binary_sensors: description: The conditions to create sensors from. required: false type: list - default: all (`extra_water_on_hot_days`, `freeze`, `freeze_protection`, `hourly`, `month`, `raindelay`, `rainsensor`, `weekday`) + default: all (`extra_water_on_hot_days`, `flow_sensor`, `freeze`, `freeze_protection`, `hourly`, `month`, `raindelay`, `rainsensor`, `weekday`) sensors: description: Sensor-related configuration options. required: false @@ -98,7 +98,7 @@ sensors: description: The conditions to create sensors from. required: false type: list - default: all (`freeze_protect_temp`) + default: all (`flow_sensor_clicks_cubic_meter`, `flow_sensor_consumed_liters`, `flow_sensor_start_index`, `flow_sensor_watering_clicks`,`freeze_protect_temp`) switches: description: Switch-related configuration options. required: false diff --git a/source/_components/sensor.mqtt.markdown b/source/_components/sensor.mqtt.markdown index b81dd39137d..f9a79d23cce 100644 --- a/source/_components/sensor.mqtt.markdown +++ b/source/_components/sensor.mqtt.markdown @@ -82,6 +82,9 @@ json_attributes_topic: description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. required: false type: string +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`." + required: false json_attributes: description: (Deprecated, replaced by json_attributes_topic) A list of keys to extract values from a JSON dictionary payload and then set as sensor attributes. required: false @@ -150,6 +153,29 @@ sensor: ``` {% endraw %} +### {% linkable_title JSON attributes template configuration %} + +The example sensor below shows a configuration example which uses a JSON dict: `{"Timer1":{"Arm": , "Time":