Merge branch 'current' into next

This commit is contained in:
Fabian Affolter 2017-12-10 10:49:11 +01:00
commit 1e85297630
No known key found for this signature in database
GPG key ID: DDF3D6F44AAB1336
38 changed files with 575 additions and 200 deletions

View file

@ -47,25 +47,61 @@ binary_sensor:
method: POST
```
Configuration variables:
- **resource** (*Required*): The resource or endpoint that contains the value.
- **method** (*Optional*): The method of the request. Default is GET.
- **name** (*Optional*): Name of the REST binary sensor.
- **device_class** (*Optional*): The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend.
- **value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the value.
- **payload** (*Optional*): The payload to send with a POST request. Usually formed as a dictionary.
- **verify_ssl** (*Optional*): Verify the certification of the endpoint. Default to True.
- **authentication** (*Optional*): Type of the HTTP authentication. `basic` or `digest`.
- **username** (*Optional*): The username for accessing the REST endpoint.
- **password** (*Optional*): The password for accessing the REST endpoint.
- **headers** (*Optional*): The headers for the requests.
{% configuration %}
resource:
description: The resource or endpoint that contains the value.
required: true
type: string
default: string
method:
description: The method of the request.
required: false
type: string
default: GET
name:
description: Name of the REST binary sensor.
required: false
type: string
default: REST Binary Sensor
device_class:
description: "The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend."
required: false
type: string
value_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the value."
required: false
type: template
payload:
description: The payload to send with a POST request. Usually formed as a dictionary.
required: false
type: string
verify_ssl:
description: Verify the certification of the endpoint.
required: false
type: boolean
default: True
authentication:
description: Type of the HTTP authentication. `basic` or `digest`.
required: false
type: string
username:
description: The username for accessing the REST endpoint.
required: false
type: string
password:
description: The password for accessing the REST endpoint.
required: false
type: string
headers:
description: The headers for the requests.
required: false
type: list, string
{% endconfiguration %}
<p class='note warning'>
Make sure that the URL exactly matches your endpoint or resource.
</p>
## {% linkable_title Examples %}
In this section you find some real life examples of how to use this sensor.

View file

@ -22,10 +22,12 @@ To enable the `workday` sensor in your installation, add the following to your `
binary_sensor:
- platform: workday
country: DE
workdays: [ mon, wed, fri ]
```
Configuration variables:
- **name** (*Optional*): A name for this sensor. Defaults to *Workday Sensor*
- **country** (*Required*): Country code according to [holidays](https://pypi.python.org/pypi/holidays/0.8.1) notation.
- **province** (*Optional*): Province code according to [holidays](https://pypi.python.org/pypi/holidays/0.8.1) notation. Defaults to None.
- **workdays** (*Optional*): List of workdays. Defaults to `mon`, `tue`, `wed`, `thu`, `fri`.

View file

@ -13,9 +13,9 @@ ha_release: 0.47
---
The `ONVIF` platform allows you to use an ONVIF camera in Home Assistant. This requires FFmpeg component to be already configured.
The `onvif` camera platform allows you to use an ONVIF camera in Home Assistant. This requires the [`ffmpeg` component](/components/ffmpeg/) to be already configured.
To enable your ONVIF in your installation, add the following to your `configuration.yaml` file:
To enable your ONVIF camera in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry

View file

@ -32,7 +32,7 @@ Configuration variables:
- **target_sensor** (*Required*): `entity_id` for a temperature sensor, target_sensor.state must be temperature.
- **min_temp** (*Optional*): Set minimum set point available (default: 7)
- **max_temp** (*Optional*): Set maximum set point available (default: 35)
- **target_temp** (*Optional*): Set initial target temperature. Failure to set this variable will result in target temperature being set to null on startup.
- **target_temp** (*Optional*): Set initial target temperature. Failure to set this variable will result in target temperature being set to null on startup. As of version 0.59 it will retain the target temperature set before restart if this variable is not configured.
- **ac_mode** (*Optional*): Set the switch specified in the *heater* option to be treated as a cooling device instead of a heating device.
- **min_cycle_duration** (*Optional*): Set a minimum amount of time that the switch specified in the *heater* option must be in it's current state prior to being switched either off or on.
- **cold_tolerance** (*Optional*): Set a minimum amount of difference between the temperature read by the sensor specified in the *target_sensor* option and the target temperature that must change prior to being switched on. For example, if the target temperature is 25 and the tolerance is 0.5 the heater will start when the sensor equals or goes below 24.5.

View file

@ -40,6 +40,8 @@ google_assistant:
`cat /dev/urandom|fold -w 120|head -n 1|base64 -w 0|tr -dc '0-9A-Za-z'|cut -c -80`
If you're not using Linux, you can use sites such as [this one](https://www.browserling.com/tools/random-string) to generate a random string (containing mixed case letters and numbers) of up to 80 characters.
*Configuration Variables:*
* *expose_by_default* (Optional): Expose devices in all supported domains by default.
* *project_id* (Required): Project ID from the Google Developer console (looks like `words-2ab12`)
@ -56,6 +58,7 @@ google_assistant:
- `fan`
- `scene`
- `script`
- `climate`
You can also customize your devices similar to other components by adding keys to entities:
@ -111,7 +114,7 @@ homeassistant:
2. Go to Build under the Actions SDK box
3. Copy the command that looks like:
`gactions update --action_package PACKAGE_NAME --project doctest-2d0b8`
4. Replace `PACKAGE_NAME` with `project.json` and run that command from the same directory you saved `project.json` in (you'll need to put `./` before `gactions` so that it reads `./gactions`). It should output a URL like `https://console.actions.google.com/project/doctest-2d0b8/overview` - go there.
4. Replace `PACKAGE_NAME` with `project.json` and run that command from the same directory you saved `project.json` in (you'll need to put `./` before `gactions` so that it reads `./gactions` if you're running on Linux). It should output a URL like `https://console.actions.google.com/project/doctest-2d0b8/overview` - go there.
5. You'll need to fill out most of the information on that page, but none of it really matters since you won't be addressing the App directly, only through the Smart Home functionality built into Google Assistant.
6. The final item on that page `Account linking` is required for your app to interact with Home Assistant.
1. Grant type: `Implicit`
@ -134,3 +137,10 @@ homeassistant:
4. Note down the generated API Key and use this in the configuration
*Note:* The request_sync service requires that the initial sync from Google includes the agent_user_id. If not, the service will log an error that reads something like "Request contains an invalid argument". If this happens, then [unlink the account](https://support.google.com/googlehome/answer/7506443?hl=en-GB) from Home Control and relink.
*Note:* The request_sync service may fail with a 404 if the project_id of the Homegraph API differs from the project_id of the Actions SDK found in the preferences of your project on [developer console](https://console.actions.google.com). Resolve this by:
1. Removing your project on the [developer console](https://console.actions.google.com).
2. Add a new project in the [cloud console](https://console.cloud.google.com). Here you get a new project_id.
3. Enable Homegraph API to the new project.
4. Generete a new API key.
5. Again create a new project in the [developer console](https://console.actions.google.com/). Described above. But at the step 'Build under the Actions SDK box' choose your newly created project. By this they share the same project_id.

View file

@ -13,22 +13,21 @@ ha_release: "0.24"
---
The Join platform exposes services from [Join](http://joaoapps.com/join). In Home Assistant, the Join features are divided up in two locations, the Join component, and the Join notify platform. The notify platform allows us to send messages to Join devices, the component allows us to access the other special features that Join offers.
The `joaoapps_join` component exposes services from [Join](http://joaoapps.com/join). In Home Assistant, the Join features are divided up in two locations, the Join component, and the Join notify platform. The notify platform allows us to send messages to Join devices, the component allows us to access the other special features that Join offers.
In the `configuration.yaml` file you need to provide the api key and device id or name of the target device. You can find your device id and api key [here](https://joinjoaomgcd.appspot.com/).
To set it up, add the following information to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
notify:
- platform: joaoapps_join
api_key: asd97823jb628a34fwsdfwefd5384345tf2d
device_id: d5asdfasdf54645h45h368761dfe5gt8a *optional
device_ids: d5asdfasdf54645h45h368761dfe5gt8a, a4asdfasdf54645h45h368761dfe5gt3b *optional
device_names: Pixel, iPhone *optional
name: Phones *optional
device_id: d5asdfasdf54645h45h368761dfe5gt8a
device_ids: d5asdfasdf54645h45h368761dfe5gt8a, a4asdfasdf54645h45h368761dfe5gt3b
device_names: Pixel, iPhone
name: Phones
joaoapps_join:
- name: android
device_id: group.android
@ -42,20 +41,20 @@ Configuration variables:
- **device_ids** (*Optional*): Comma separated list of device ids.
- **device_names** (*Optional*): Comma separated list of device names.
The notify service has two optional parameters: `icon` and `vibration`. You can use them like so:
The notify service has two optional parameters: `icon` and `vibration`. You can use them like so:
```json
{"message":"Hello from Home Assistant!","title":"Home Assistant","data":{"icon":"https://goo.gl/xeetdy", "vibration":"0,65,706,86,657,95,668,100"}}
```
The services exposed in the joaoapps_join component can be used with the service data described below:
The services exposed in the `joaoapps_join` component can be used with the service data described below:
| Service | Data |
|------------------------------ |------------------------------------------------------------------ |
| joaoapps_join/ring | |
| joaoapps_join/send_sms | {"number":"5553334444", "message":"Hello!"} |
| joaoapps_join/send_tasker | {"command":"test"} |
| joaoapps_join/send_url | {"url":"http://google.com"} |
| joaoapps_join/send_wallpaper | {"url":"http://www.planwallpaper.com/static/images/ZhGEqAP.jpg"} |
| joaoapps_join/send_file | {"url":"http://download.thinkbroadband.com/5MB.zip"} |
| joaoapps_join/send_sms | `{"number":"5553334444", "message":"Hello!"}` |
| joaoapps_join/send_tasker | `{"command":"test"}` |
| joaoapps_join/send_url | `{"url":"http://google.com"}` |
| joaoapps_join/send_wallpaper | `{"url":"http://www.planwallpaper.com/static/images/ZhGEqAP.jpg"}` |
| joaoapps_join/send_file | `{"url":"http://download.thinkbroadband.com/5MB.zip"}` |

View file

@ -30,7 +30,7 @@ A `maxcube` section must be present in the `configuration.yaml` file and contain
```yaml
# Example configuration.yaml entry
maxcube:
host: 192.168.0.20
host: 192.168.0.20
```
Configuration variables:
- **host** (*Required*): The IP address of the eQ-3 MAX! Cube to use.

View file

@ -18,6 +18,7 @@ The `denonavr` platform allows you to control a [Denon Network Receivers](http:/
Supported devices:
- Denon AVR-X1300W
- Denon AVR-X2000
- Denon AVR-X2100W
- Denon AVR-X4100W

View file

@ -55,6 +55,7 @@ Currently known supported models:
- U6300 (port must be set to 8001, and `pip3 install websocket-client` must be executed)
- K6500AF (port must be set to 8001)
- KS8005 (port must be set to 8001, and `pip3 install websocket-client` must be executed)
- MU6170UXZG (port must be set to 8001, and `pip3 install websocket-client` must be executed)
- KS7502 (port must be set to 8001, and `pip3 install websocket-client` must be executed, turn on doesn't work, turn off works fine)
- K5600AK (partially supported, turn on works but state is not updated)
- UE65KS8005 (port must be set to 8001, On/Off, Forward/Backward, Volume are OK, but no Play button)
@ -66,7 +67,7 @@ Currently tested but not working models:
- JU7500 - Unable to see state and unable to control
- JS9000 - State is always "on" and unable to control (but port 8001 *is* open)
- JS9500 - State is always "on" and unable to control (but port 8001 *is* open)
- MU6170UXZG (port set to 8001, `pip3 install websocket-client` must be executed, turning on works, status not working reliably, turning off is not permanent (it comes back on).)
- MU6300 - Port set to 8001, `pip3 install websocket-client` must be executed, turning on works, status not working reliably, turning off is not permanent (it comes back on)
If your model is not on the list then give it a test, if everything works correctly then add it to the list on [GitHub](https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_components/media_player.samsungtv.markdown).
The first letter (U, P, L, H & K) represent the screen type, e.g. LED or Plasma. The second letter represents the region, E is Europe, N is North America and A is Asia & Australia. The two numbers following that represent the screen size.

View file

@ -28,6 +28,13 @@ Configuration variables:
- **username** (*Required*): Username for the Neato account.
- **password** (*Required*): Password for the Neato account.
The Home Assistant Neato platform has not been tested with all models of Botvac.
| BotVac Model | Tested |
| --- | --- |
| Botvac Connected | SUCCESS |
| Botvac D7 Connected | SUCCESS |
<p class='note'>
The Home Assistant Neato platform has only be tested with a Botvac Connected. There is no support for the Botvac D3 Connected and Botvac D5 Connected robots at this time.
There is no support for the Botvac D3 Connected and Botvac D5 Connected robots at this time.
</p>

View file

@ -51,16 +51,18 @@ Configuration variables:
## {% linkable_title Examples %}
### Using plain MQTT sensor to get the data
This is a practical example that uses a multiple of `MQTT sensors` to supply the readings used by the `plant` sensor.
Another good source of this data would be the [Mi Flora](https://home-assistant.io/components/sensor.miflora/) component.
Another good source of this data would be the [Mi Flora](/components/sensor.miflora/) component.
If the sensor data is within the min/max values the status will be `ok`, if not the status will be `problem`. You can use this to trigger a notification, if there is a problem with your plant. Of course you can only monitor attributes of your plant, where the sensor is configured and is providing the data.
## Data Source
The main sources of the data will usually be a [MiFlora sensor](sensor.miflora) or a [MQTT sensor](sensor.mqtt) receiving the data from a [PlantGateway](https://github.com/ChristianKuehnel/plantgateway).
The main sources of the data will usually be a [MiFlora sensor](/components/sensor.miflora/) or a [MQTT sensor](/components/sensor.miflora/) receiving the data from a [PlantGateway](https://github.com/ChristianKuehnel/plantgateway).
If you want to get the date via a PlantGateway, this is a typical configuration for the MQTT sensors:
{% raw %}
```yaml
# Example configuration.yaml entry
plant:
@ -99,5 +101,6 @@ sensor:
state_topic: my_plant_topic
value_template: '{{ value_json.brightness }}'
```
{% endraw %}
You have to replace the `state_topic` with the value that you configured in the PlantGateway. It also depends on the global configuration of your MQTT server.

View file

@ -13,7 +13,7 @@ ha_release: 0.29
ha_iot_class: "Local Polling"
---
The `miflora` sensor platform allows one to monitor to plants. The [Mi Flora plant sensor](https://www.aliexpress.com/item/Newest-Original-Xiaomi-Flora-Monitor-Digital-Plants-Flowers-Soil-Water-Light-Tester-Sensor-Monitor-for-Aquarium/32685750372.html) is a small Bluetooth Low Energy device that monitors not only the moisture, but also light, temperature and conductivity. As only a single BLE device can be polled at the same time, the library implements locking to make sure this is the case.
The `miflora` sensor platform allows one to monitor to plants. The [Mi Flora plant sensor](https://xiaomi-mi.com/sockets-and-sensors/xiaomi-huahuacaocao-flower-care-smart-monitor/) is a small Bluetooth Low Energy device that monitors not only the moisture, but also light, temperature and conductivity. As only a single BLE device can be polled at the same time, the library implements locking to make sure this is the case.
Start a scan to determine the MAC addresses of the sensor:

View file

@ -36,20 +36,60 @@ sensor:
payload: '{ "device" : "heater" }'
```
Configuration variables:
- **resource** (*Required*): The resource or endpoint that contains the value.
- **method** (*Optional*): The method of the request. Default is `GET`.
- **value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the value.
- **payload** (*Optional*): The payload to send with a POST request. Depends on the service, but usually formed as JSON.
- **name** (*Optional*): Name of the REST sensor.
- **unit_of_measurement** (*Optional*): Defines the unit of measurement of the sensor, if any.
- **verify_ssl** (*Optional*): Verify the certification of the endpoint. Default to `True`.
- **authentication** (*Optional*): Type of the HTTP authentication. `basic` or `digest`.
- **username** (*Optional*): The username for accessing the REST endpoint.
- **password** (*Optional*): The password for accessing the REST endpoint.
- **headers** (*Optional*): The headers for the requests.
- **json_attributes** (*Optional*): A list of keys to extract values from a JSON dictionary result and then set as sensor attributes. Default is an empty list.
{% configuration %}
resource:
description: The resource or endpoint that contains the value.
required: true
type: string
default: string
method:
description: The method of the request.
required: false
type: string
default: GET
name:
description: Name of the REST sensor.
required: false
type: string
default: REST Sensor
value_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the value."
required: false
type: template
payload:
description: The payload to send with a POST request. Depends on the service, but usually formed as JSON.
required: false
type: string
verify_ssl:
description: Verify the certification of the endpoint.
required: false
type: boolean
default: True
unit_of_measurement:
description: Defines the units of measurement of the sensor, if any.
required: false
type: string
authentication:
description: Type of the HTTP authentication. `basic` or `digest`.
required: false
type: string
username:
description: The username for accessing the REST endpoint.
required: false
type: string
password:
description: The password for accessing the REST endpoint.
required: false
type: string
headers:
description: The headers for the requests.
required: false
type: list, string
json_attributes:
description: A list of keys to extract values from a JSON dictionary result and then set as sensor attributes.
reqired: false
type: list, string
{% endconfiguration %}
<p class='note warning'>
Make sure that the URL exactly matches your endpoint or resource.

View file

@ -45,6 +45,7 @@ In this section you find some real life examples of how to use this sensor. Ther
The current release Home Assistant is published on [https://home-assistant.io/](https://home-assistant.io/)
{% raw %}
```yaml
sensor:
# Example configuration.yaml entry
@ -52,13 +53,15 @@ sensor:
resource: https://home-assistant.io
name: Release
select: ".current-version h1"
value_template: '{% raw %}{{ value.split(":")[1] }}{% endraw %}'
value_template: '{{ value.split(":")[1] }}'
```
{% endraw %}
### {% linkable_title Available implementations %}
Get the counter for all our implementations from the [Component overview](/components/) page.
{% raw %}
```yaml
# Example configuration.yaml entry
sensor:
@ -66,8 +69,9 @@ sensor:
resource: https://home-assistant.io/components/
name: Home Assistant impl.
select: 'a[href="#all"]'
value_template: '{% raw %}{{ value.split("(")[1].split(")")[0] }}{% endraw %}'
value_template: '{{ value.split("(")[1].split(")")[0] }}'
```
{% endraw %}
### {% linkable_title Get a value out of a tag %}
@ -109,3 +113,20 @@ sensor:
select: 'enclosure:nth-of-type(1)'
attribute: url
```
### {% linkable_title Energy price %}
This example tries to retrieve the price for electricity.
{% raw %}
```yaml
# Example configuration.yaml entry
sensor:
- platform: scrape
resource: https://elen.nu/timpriser-pa-el-for-elomrade-se3-stockholm/
name: Electricity price
select: ".elspot-content"
value_template: '{{ value.split(" ")[0] }}'
unit_of_measurement: "öre/kWh"
```
{% endraw %}

View file

@ -22,18 +22,30 @@ sensor:
- platform: temper
```
Configuration option:
- **name** (*Optional*): The name you would like to give the sensor in Home Assistant.
- **scale** (*Optional*): The scale for the sensor.
- **offset** (*Optional*): The offset to fix reported vales.
{% configuration %}
offset:
description: The offset to fix reported vales.
required: false
type: int
default: o
scale:
description: The scale for the sensor.
required: false
type: int
default: 1
name:
description: The name to use when displaying this switch.
required: false
type: string
default: myStrom Switch
{% endconfiguration %}
Since some of these sensors consistently show higher temperatures the scale and offset values can be used to fine-tune your sensor.
The calculation follows the formula `scale * sensor value + offset`.
The TEMPer sensors can only be accessed as root by default. To fix the USB permissions on your system create the file `/etc/udev/rules.d/99-tempsensor.rules` and add the following line to it:
```
```text
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="0c45", ATTRS{idProduct}=="7401", MODE="666"
```

View file

@ -27,6 +27,7 @@ sensor:
sensors:
solar_angle:
friendly_name: "Sun angle"
entity_id: sun.sun
unit_of_measurement: 'degrees'
value_template: "{{ states.sun.sun.attributes.elevation }}"

View file

@ -25,16 +25,50 @@ switch:
resource: http://IP_ADDRESS/ENDPOINT
```
Configuration variables:
- **resource** (*Required*): The resource or endpoint that contains the value.
- **name** (*Optional*): Name of the REST switch.
- **method** (*Optional*): HTTP method to use (`post` or `put`). Defaults to `post`.
- **username** (*Optional*): The username for accessing the REST endpoint.
- **password** (*Optional*): The password for accessing the REST endpoint.
- **body_on** (*Optional*): The body of the POST request that commands the switch to become enabled. Default is "ON". This value can be a [template](/topics/templating/).
- **body_off** (*Optional*): The body of the POST request that commands the switch to become disabled. Default is "OFF". This value can also be a [template](/topics/templating/).
- **is_on_template** (*Optional*): A [template](/docs/configuration/templating/#processing-incoming-data) that determines the state of the switch from the value returned by the GET request on the resource URL. This template should compute to a boolean (True or False). If the value is valid JSON, it will be available in the template as the variable `value_json`. Default is equivalent to `'{% raw %}{{ value_json == body_on }}{% endraw %}'`. This means that by default, the state of the switch is on if and only if the response to the GET request matches .
{% configuration %}
resource:
description: The resource or endpoint that contains the value.
required: true
type: string
default: string
method:
description: "The method of the request. Supported `post` or `put`."
required: false
type: string
default: POST
name:
description: Name of the REST Switch.
required: false
type: string
default: REST Binary Switch
timeout:
description: Timeout for the request.
required: false
type: int
default: 10
body_on:
description: "The body of the POST request that commands the switch to become enabled. This value can be a [template](/topics/templating/)."
required: false
type: string
default: ON
body_off:
description: "The body of the POST request that commands the switch to become disabled. This value can also be a [template](/topics/templating/)."
required: false
type: string
default: OFF
is_on_template:
description: "A [template](/docs/configuration/templating/#processing-incoming-data) that determines the state of the switch from the value returned by the GET request on the resource URL. This template should compute to a boolean (True or False). If the value is valid JSON, it will be available in the template as the variable `value_json`. Default is equivalent to `'{% raw %}{{ value_json == body_on }}{% endraw %}'`. This means that by default, the state of the switch is on if and only if the response to the GET request matches."
required: false
type: string
username:
description: The username for accessing the REST endpoint.
required: false
type: string
password:
description: The password for accessing the REST endpoint.
required: false
type: string
{% endconfiguration %}
<p class='note warning'>
Make sure that the URL matches exactly your endpoint or resource.

View file

@ -32,9 +32,22 @@ switch:
host: IP_ADDRESS
```
Configuration variables:
- **host** (*Required*): The IP address of your TP-Link switch, eg. `192.168.1.32`.
- **name** (*Optional*): The name to use when displaying this switch.
{% configuration %}
name:
description: The name to use when displaying this switch.
required: false
type: string
default: Random Sensor
host:
description: "The IP address of your TP-Link switch, eg. `192.168.1.32`."
required: true
type: string
enable_leds:
description: If the LEDs on the switch (WiFi and power) should be lit.
required: false
type: boolean
default: true
{% endconfiguration %}

View file

@ -28,12 +28,12 @@ Configuration variables:
- **api_key** (*Required*): Your API key.
- **language** (*Optional*): The language to use. Defaults to `en-us`. Accepted values are listed in the documentation mentioned below. Note that if you set the language to anything other than the default of `en-us`, you will need to specify a matching voice type as well.
- **gender** (*Optional*): The gender you would like to use for the voice. Accepted values are `Female` and `Male`. Defaults to `Female`
- **type** (*Optional*): The voice type you want to use. Accepted values are listed in the service name mapping [in the documentation](https://docs.microsoft.com/en-us/azure/cognitive-services/Speech/api-reference-rest/bingvoiceoutput). Defaults to `ZiraRUS`
- **rate** (*Optional*): Change the rate of speaking. Example values: `-25%`, `+50%`. Defaults to `+0%` (no change)
- **volume** (*Optional*): Change the volume of the output. Example values: `-20%`, `+70%`. Defaults to `+0%` (no change)
- **pitch** (*Optional*): Change the pitch of the output. Example values: `high`. Defaults to `default` (no change)
- **contour** (*Optional*): Change the contour of the output. This overrides the pitch setting. See the [W3 SSML specification](http://www.w3.org/TR/speech-synthesis/#pitch_contour) for what it does. Example value: `(0%,+0%) (100%,+100%)`
- **gender** (*Optional*): The gender you would like to use for the voice. Accepted values are `Female` and `Male`. Defaults to `Female`.
- **type** (*Optional*): The voice type you want to use. Accepted values are listed as the service name mapping [in the documentation](https://docs.microsoft.com/en-us/azure/cognitive-services/Speech/api-reference-rest/bingvoiceoutput). Defaults to `ZiraRUS`.
- **rate** (*Optional*): Change the rate of speaking in percentage. Example values: `25`, `50`. Defaults to `0` (no change).
- **volume** (*Optional*): Change the volume of the output in percentage. Example values: `-20`, `70`. Defaults to `0` (no change).
- **pitch** (*Optional*): Change the pitch of the output. Example values: `high`. Defaults to `default` (no change).
- **contour** (*Optional*): Change the contour of the output in percentages. This overrides the pitch setting. See the [W3 SSML specification](http://www.w3.org/TR/speech-synthesis/#pitch_contour) for what it does. Example value: `(0,0) (100,100)`.
A full configuration sample including optional configuration variables:
@ -45,8 +45,8 @@ tts:
language: en-gb
gender: Male
type: George, Apollo
rate: +20%
volume: -50%
rate: 20
volume: -50
pitch: high
contour: (0%, +0%) (100%, +100%)
contour: (0, 0) (100, 100)
```