diff --git a/source/_docs/configuration/splitting_configuration.markdown b/source/_docs/configuration/splitting_configuration.markdown
index b09e0015afb..a7763020f9f 100644
--- a/source/_docs/configuration/splitting_configuration.markdown
+++ b/source/_docs/configuration/splitting_configuration.markdown
@@ -6,7 +6,7 @@ redirect_from: /topics/splitting_configuration/
So you've been using Home Assistant for a while now and your configuration.yaml file brings people to tears or you simply want to start off with the distributed approach, here's how to "split the configuration.yaml" into more manageable (read: humanly readable) pieces.
-First off, several community members have sanitized (read: without api keys/passwords etc) versions of their configurations available for viewing, you can see a list of them [here](/cookbook/#example-configurationyaml).
+First off, several community members have sanitized (read: without API keys/passwords etc) versions of their configurations available for viewing, you can see a list of them [here](/cookbook/#example-configurationyaml).
As commenting code doesn't always happen, please read on for the details.
@@ -56,6 +56,7 @@ zwave:
mqtt:
broker: 127.0.0.1
```
+
As with the core snippet, indentation makes a difference. The integration headers (`mqtt:`) should be fully left aligned (aka no indent), and the parameters (`broker:`) should be indented two (2) spaces.
While some of these integrations can technically be moved to a separate file they are so small or "one off's" where splitting them off is superfluous. Also, you'll notice the # symbol (hash/pound). This represents a "comment" as far as the commands are interpreted. Put another way, any line prefixed with a `#` will be ignored. This makes breaking up files for human readability really convenient, not to mention turning off features while leaving the entry intact.
@@ -148,18 +149,20 @@ That about wraps it up.
If you have issues checkout `home-assistant.log` in the configuration directory as well as your indentations. If all else fails, head over to our [Discord chat server][discord] and ask away.
-### Debugging multiple configuration files
+## Debugging multiple configuration files
If you have many configuration files, the `check_config` script allows you to see how Home Assistant interprets them:
+
- Listing all loaded files: `hass --script check_config --files`
- Viewing a component's config: `hass --script check_config --info light`
- Or all components' config: `hass --script check_config --info all`
You can get help from the command line using: `hass --script check_config --help`
-### Advanced Usage
+## Advanced Usage
We offer four advanced options to include whole directories at once. Please note that your files must have the `.yaml` file extension; `.yml` is not supported.
+
- `!include_dir_list` will return the content of a directory as a list with each file content being an entry in the list. The list entries are ordered based on the alphanumeric ordering of the names of the files.
- `!include_dir_named` will return the content of a directory as a dictionary which maps filename => content of file.
- `!include_dir_merge_list` will return the content of a directory as a list by merging all files (which should contain a list) into 1 big list.
@@ -182,7 +185,7 @@ These work recursively. As an example using `!include_dir_* automation`, will in
└── configuration.yaml (not included)
```
-#### Example: `!include_dir_list`
+### Example: `!include_dir_list`
`configuration.yaml`
@@ -244,7 +247,7 @@ It is important to note that each file must contain only **one** entry when usin
It is also important to note that if you are splitting a file after adding -id: to support the automation UI,
the -id: line must be removed from each of the split files.
-#### Example: `!include_dir_named`
+### Example: `!include_dir_named`
`configuration.yaml`
@@ -321,7 +324,7 @@ speech:
{% endif %}{% endraw %}
```
-#### Example: `!include_dir_merge_list`
+### Example: `!include_dir_merge_list`
`configuration.yaml`
@@ -376,7 +379,7 @@ automation: !include_dir_merge_list automation/
It is important to note that when using `!include_dir_merge_list`, you must include a list in each file (each list item is denoted with a hyphen [-]). Each file may contain one or more entries.
-#### Example: `!include_dir_merge_named`
+### Example: `!include_dir_merge_named`
`configuration.yaml`
diff --git a/source/_docs/configuration/troubleshooting.markdown b/source/_docs/configuration/troubleshooting.markdown
index 9817a4ac116..a3e61e72108 100644
--- a/source/_docs/configuration/troubleshooting.markdown
+++ b/source/_docs/configuration/troubleshooting.markdown
@@ -10,22 +10,22 @@ Before we dive into common issues, make sure you know where your configuration d
Whenever an integration or configuration option results in a warning, it will be stored in `home-assistant.log` in the configuration directory. This file is reset on start of Home Assistant.
-### My integration does not show up
+## My integration does not show up
When an integration does not show up, many different things can be the case. Before you try any of these steps, make sure to look at the `home-assistant.log` file and see if there are any errors related to your integration you are trying to set up.
If you have incorrect entries in your configuration files you can use the [`check_config`](/docs/tools/check_config/) script to assist in identifying them: `hass --script check_config`. If you need to provide the path for your configuration you can do this using the `-c` argument like this: `hass --script check_config -c /path/to/your/config/dir`.
-#### Problems with the configuration
+### Problems with the configuration
-One of the most common problems with Home Assistant is an invalid `configuration.yaml` or other configuration file.
-
- - You can test your configuration using the command line with: `hass --script check_config`.
- - On Hass.io you can use the [hassio command](/hassio/commandline/#home-assistant): `hassio homeassistant check`.
- - On Docker you can use `docker exec home-assistant python -m homeassistant --script check_config --config /config` - where `home-assistant` is the name of the container.
- - The configuration files, including `configuration.yaml` must be UTF-8 encoded. If you see error like `'utf-8' codec can't decode byte`, edit the offending configuration and re-save it as UTF-8.
- - You can verify your configuration's yaml structure using [this online YAML parser](http://yaml-online-parser.appspot.com/) or [YAML Lint](http://www.yamllint.com/).
- - To learn more about the quirks of YAML, read [YAML IDIOSYNCRASIES](https://docs.saltstack.com/en/latest/topics/troubleshooting/yaml_idiosyncrasies.html) by SaltStack (the examples there are specific to SaltStack, but do explain YAML issues well).
+One of the most common problems with Home Assistant is an invalid `configuration.yaml` or other configuration file.
+
+- You can test your configuration using the command line with: `hass --script check_config`.
+ - On Hass.io you can use the [`hassio` command](/hassio/commandline/#home-assistant): `hassio homeassistant check`.
+ - On Docker you can use `docker exec home-assistant python -m homeassistant --script check_config --config /config` - where `home-assistant` is the name of the container.
+- The configuration files, including `configuration.yaml` must be UTF-8 encoded. If you see error like `'utf-8' codec can't decode byte`, edit the offending configuration and re-save it as UTF-8.
+- You can verify your configuration's yaml structure using [this online YAML parser](http://yaml-online-parser.appspot.com/) or [YAML Lint](http://www.yamllint.com/).
+- To learn more about the quirks of YAML, read [YAML IDIOSYNCRASIES](https://docs.saltstack.com/en/latest/topics/troubleshooting/yaml_idiosyncrasies.html) by SaltStack (the examples there are specific to SaltStack, but do explain YAML issues well).
`configuration.yaml` does not allow multiple sections to have the same name. If you want to load multiple platforms for one component, you can append a [number or string](/getting-started/devices/#style-2-list-each-device-separately) to the name or nest them using [this style](/getting-started/devices/#style-1-collect-every-entity-under-the-parent):
@@ -55,13 +55,14 @@ It can happen that some integrations either do not work right away or stop worki
#### Multiple files
-If you are using multiple files for your setup, make sure that the pointers are correct and the format of the files is valid.
+If you are using multiple files for your setup, make sure that the pointers are correct and the format of the files is valid.
```yaml
light: !include devices/lights.yaml
sensor: !include devices/sensors.yaml
```
-Contents of `lights.yaml` (notice it does not contain `light: `):
+
+Contents of `lights.yaml` (notice it does not contain `light:`):
```yaml
- platform: hyperion
@@ -89,8 +90,8 @@ Whenever you report an issue, be aware that we are volunteers who do not have ac
The only characters valid in entity names are:
-* Lowercase letters
-* Numbers
-* Underscores
+- Lowercase letters
+- Numbers
+- Underscores
If you create an entity with other characters then Home Assistant may not generate an error for that entity. However you will find that attempts to use that entity will generate errors (or possibly fail silently).
diff --git a/source/_docs/z-wave/installation.markdown b/source/_docs/z-wave/installation.markdown
index 60281c21b63..fa4de6f11e2 100644
--- a/source/_docs/z-wave/installation.markdown
+++ b/source/_docs/z-wave/installation.markdown
@@ -88,8 +88,9 @@ device_config / device_config_domain / device_config_glob:
Security Z-Wave devices require a network key before being added to the network using the Add Secure Node button in the Z-Wave Network Management card. You must set the *network_key* configuration variable to use a network key before adding these devices.
An easy script to generate a random key:
+
```bash
-$ cat /dev/urandom | tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0x\1, /g' -e 's/, $//'
+cat /dev/urandom | tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0x\1, /g' -e 's/, $//'
```
You can also use sites like [this one](https://www.random.org/cgi-bin/randbyte?nbytes=16&format=h) to generate the required data, just remember to put `0x` before each pair of characters:
@@ -116,10 +117,10 @@ You do not need to install any software to use Z-Wave.
If the path of `/dev/ttyACM0` doesn't work, look in the *System* section of the *Hass.io* menu. There you'll find a *Hardware* button which will list all the hardware found.
-You can also check what hardware has been found using the [hassio command](/hassio/commandline/#hardware):
+You can also check what hardware has been found using the [`hassio` command](/hassio/commandline/#hardware):
```bash
-$ hassio hardware info
+hassio hardware info
```
If you did an alternative install of Hass.io on Linux (e.g. installing Ubuntu, then Docker, then Hass.io) then the `modemmanager` package will interfere with any Z-Wave (or Zigbee) stick and should be removed or disabled in the host OS. Failure to do so will result in random failures of those components, e.g. dead or unreachable Z-Wave nodes, most notably right after Home Assistant restarts. Connect to your host OS via SSH, then you can disable with `sudo systemctl disable ModemManager` and remove with `sudo apt-get purge modemmanager` (commands are for Debian/Ubuntu).
@@ -131,7 +132,7 @@ You do not need to install any software to use Z-Wave.
To enable access to the Z-Wave stick, add `--device=/dev/ttyACM0` to the `docker` command that starts your container, for example:
```bash
-$ docker run -d --name="home-assistant" -v /home/pi/homeassistant:/config -v /etc/localtime:/etc/localtime:ro --net=host --device=/dev/ttyACM0 homeassistant/raspberrypi3-homeassistant
+docker run -d --name="home-assistant" -v /home/pi/homeassistant:/config -v /etc/localtime:/etc/localtime:ro --net=host --device=/dev/ttyACM0 homeassistant/raspberrypi3-homeassistant
```
If the path of `/dev/ttyACM0` doesn't work then you can find the path of the stick by disconnecting and then reconnecting it, and running the following in the Docker host:
@@ -153,7 +154,7 @@ On the Raspberry Pi you will need to enable the serial interface in the `raspi-c
On Debian Linux platforms there are dependencies you will need to have installed ahead of time (included in `systemd-devel` on Fedora/RHEL systems):
```bash
-$ sudo apt-get install libudev-dev build-essential
+sudo apt-get install libudev-dev build-essential
```
You may also have to install the Python development libraries for your version of Python. For example `libpython3.6-dev`, and possibly `python3.6-dev` if you're using Python 3.6.
@@ -183,17 +184,18 @@ dmesg | grep USB
If Home Assistant (`hass`) runs with another user (e.g., *homeassistant*) you need to give access to the stick with:
```bash
-$ sudo usermod -aG dialout homeassistant
+sudo usermod -aG dialout homeassistant
```
The output from `ls -ltr` above contains the following information:
-* The device type is `c` (character special)
-* The permissions are `rw-rw----`, meaning only the owner and group can read and write to it
-* There is only `1` link to the file
-* It is owned by `root` and can be accessed by members of the group `dialout`
-* It has a major device number of `204`, and a minor device number of `64`
-* The device was connected at `10:25` on `21 September`
-* The device is `/dev/ttyUSB0`.
+
+- The device type is `c` (character special).
+- The permissions are `rw-rw----`, meaning only the owner and group can read and write to it.
+- There is only `1` link to the file.
+- It is owned by `root` and can be accessed by members of the group `dialout`.
+- It has a major device number of `204`, and a minor device number of `64`.
+- The device was connected at `10:25` on `21 September`.
+- The device is `/dev/ttyUSB0`.
#### macOS
@@ -218,6 +220,7 @@ If your device path changes when you restart, see [this guide](http://hintshop.l
### Random unreachable Z-Wave nodes: ModemManager interference
If this applies to your situation:
+
- Some or all Z-Wave nodes are unreachable after restarting Home Assistant; not necessarily after every restart but seemingly random.
- The Z-Wave stick stops responding, needs to be re-plugged or Home Assistant needs a restart to get Z-Wave back.
- Your host OS is Debian-based/Ubuntu (for example: you installed Ubuntu, then Docker, then Hass.io).
@@ -267,7 +270,9 @@ sudo usermod -aG dialout homeassistant
If you're getting errors like:
- openzwave-embed/open-zwave-master/libopenzwave.a: No such file or directory
+```txt
+openzwave-embed/open-zwave-master/libopenzwave.a: No such file or directory
+```
Then the problem is that you're missing `libudev-dev` (or the equivalent for your distribution), please [install it](/docs/z-wave/installation/#linux).
diff --git a/source/_integrations/apple_tv.markdown b/source/_integrations/apple_tv.markdown
index a06ec891a1d..0428288424a 100644
--- a/source/_integrations/apple_tv.markdown
+++ b/source/_integrations/apple_tv.markdown
@@ -26,7 +26,7 @@ Currently, you must have Home Sharing enabled for this to work. Support for pair
To use this component, you must first install some system libraries and a compiler. For Debian or a similar system, this should be enough:
```shell
-$ sudo apt-get install build-essential libssl-dev libffi-dev python-dev
+sudo apt-get install build-essential libssl-dev libffi-dev python-dev
```
If you want to discover new devices automatically, just make sure you have `discovery:` in your `configuration.yaml` file. To manually add one or more Apple TVs to your installation, add the following to your `configuration.yaml` file:
@@ -78,7 +78,7 @@ In order to connect to the device, you need a *login id*. The easiest way to obt
Make sure Home Sharing is enabled on the Apple TV.
-To scan for devices and determine the `login_id`, open the developer tools by selecting the hammer icon in the sidebar. Once in the developer tools select **services**.
+To scan for devices and determine the `login_id`, open the developer tools by selecting the hammer icon in the sidebar. Once in the developer tools select **services**.
@@ -106,9 +106,9 @@ Just copy and paste the `login_id` from the device you want to add. For more det
If you, when playing media with `play_url`, get the following error message:
-*“This AirPlay connection requires iOS 7.1 or later, OS X 10.10 or later, or iTunes 11.2 or later.”*
+“This AirPlay connection requires iOS 7.1 or later, macOS 10.10 or later, or iTunes 11.2 or later.”
-then device authentication is required, open the developer tools by selecting the hammer icon in the sidebar. Once in the developer tools select **services**.
+then device authentication is required, open the developer tools by selecting the hammer icon in the sidebar. Once in the developer tools select **services**.
diff --git a/source/_integrations/beewi_smartclim.markdown b/source/_integrations/beewi_smartclim.markdown
index b83c9908929..9380153b7a7 100644
--- a/source/_integrations/beewi_smartclim.markdown
+++ b/source/_integrations/beewi_smartclim.markdown
@@ -21,7 +21,7 @@ Depending on the operating system you're running, you have to configure the prop
- On other Linux systems:
- Preferred solution: Install the `bluepy` and `btlewrap` library (via pip). When using a virtual environment, make sure to use install the library in the right one.
- Fallback solution: Install `btlewrap` library (via pip) and `gatttool` via your package manager. Depending on the distribution, the package name might be: `bluez`, `bluetooth` or `bluez-deprecated`.
-- Windows and MacOS are currently not supported by the `btlewrap` library.
+- Windows and macOS are currently not supported by the `btlewrap` library.
## Configuration
diff --git a/source/_integrations/binary_sensor.mysensors.markdown b/source/_integrations/binary_sensor.mysensors.markdown
index 8b42a3c5504..28f19636164 100644
--- a/source/_integrations/binary_sensor.mysensors.markdown
+++ b/source/_integrations/binary_sensor.mysensors.markdown
@@ -9,31 +9,31 @@ ha_release: 0.14
ha_iot_class: Local Push
---
-Integrates MySensors binary sensors into Home Assistant. See the [main component] for configuration instructions.
+Integrates MySensors binary sensors into Home Assistant. See the [main integration](/integrations/mysensors/) for configuration instructions.
The following sensor types are supported:
-#### MySensors version 1.4 and higher
+## MySensors version 1.4 and higher
-S_TYPE | V_TYPE
--------------------|---------------------------------------
-S_DOOR | V_TRIPPED
-S_MOTION | V_TRIPPED
-S_SMOKE | V_TRIPPED
+| S_TYPE | V_TYPE |
+| -------- | --------- |
+| S_DOOR | V_TRIPPED |
+| S_MOTION | V_TRIPPED |
+| S_SMOKE | V_TRIPPED |
-#### MySensors version 1.5 and higher
+## MySensors version 1.5 and higher
-S_TYPE | V_TYPE
----------------|----------------------------------
-S_SPRINKLER | V_TRIPPED
-S_WATER_LEAK | V_TRIPPED
-S_SOUND | V_TRIPPED
-S_VIBRATION | V_TRIPPED
-S_MOISTURE | V_TRIPPED
+| S_TYPE | V_TYPE |
+| ------------ | --------- |
+| S_SPRINKLER | V_TRIPPED |
+| S_WATER_LEAK | V_TRIPPED |
+| S_SOUND | V_TRIPPED |
+| S_VIBRATION | V_TRIPPED |
+| S_MOISTURE | V_TRIPPED |
-For more information, visit the [serial api] of MySensors.
+For more information, visit the [serial API](https://www.mysensors.org/download) of MySensors.
-### Example sketch
+## Example sketch
```cpp
/**
@@ -80,6 +80,3 @@ void loop()
}
}
```
-
-[main component]: /integrations/mysensors/
-[serial api]: https://www.mysensors.org/download
diff --git a/source/_integrations/climate.mysensors.markdown b/source/_integrations/climate.mysensors.markdown
index 542e21a4d56..9200dffac11 100644
--- a/source/_integrations/climate.mysensors.markdown
+++ b/source/_integrations/climate.mysensors.markdown
@@ -9,24 +9,24 @@ ha_release: 0.29
ha_iot_class: Local Push
---
-Integrates MySensors HVAC into Home Assistant. See the [main component] for configuration instructions.
+Integrates MySensors HVAC into Home Assistant. See the [main integration](/integrations/mysensors/) for configuration instructions.
The following actuator types are supported:
-##### MySensors version 1.5 and higher
+## MySensors version 1.5 and higher
-S_TYPE | V_TYPE
--------|-----------------------------------------------------------------------------
-S_HVAC | V_HVAC_FLOW_STATE*, V_HVAC_SETPOINT_HEAT, V_HVAC_SETPOINT_COOL, V_HVAC_SPEED, V_TEMP
+| S_TYPE | V_TYPE |
+| ------ | ------------------------------------------------------------------------------------ |
+| S_HVAC | V_HVAC_FLOW_STATE*, V_HVAC_SETPOINT_HEAT, V_HVAC_SETPOINT_COOL, V_HVAC_SPEED, V_TEMP |
V_HVAC_FLOW_STATE is mapped to the state of the Climate integration in Home Assistant as follows:
-Home Assistant State | MySensors State
----------------------|----------------
-HVAC_MODE_COOL | CoolOn
-HVAC_MODE_HEAT | HeatOn
-HVAC_MODE_AUTO | AutoChangeOver
-HVAC_MODE_OFF | Off
+| Home Assistant State | MySensors State |
+| -------------------- | --------------- |
+| HVAC_MODE_COOL | CoolOn |
+| HVAC_MODE_HEAT | HeatOn |
+| HVAC_MODE_AUTO | AutoChangeOver |
+| HVAC_MODE_OFF | Off |
Currently humidity, away_mode, aux_heat, swing_mode is not supported. This will be included in later versions as feasible.
@@ -36,9 +36,9 @@ You can use V_HVAC_SPEED to control the Speed setting of the Fan in the HVAC.
You can use V_TEMP to send the current temperature from the node to Home Assistant.
-For more information, visit the [serial api] of MySensors.
+For more information, visit the [serial API](https://www.mysensors.org/download) of MySensors.
-### Example sketch for MySensors 2.x
+## Example sketch for MySensors 2.x
```cpp
/*
@@ -183,7 +183,7 @@ void sendHeatpumpCommand() {
}
```
-### Example sketch for MySensors 1.x
+## Example sketch for MySensors 1.x
```cpp
/*
@@ -255,6 +255,3 @@ void incomingMessage(const MyMessage &message) {
}
}
```
-
-[main component]: /integrations/mysensors/
-[serial api]: https://www.mysensors.org/download
diff --git a/source/_integrations/cover.mysensors.markdown b/source/_integrations/cover.mysensors.markdown
index 075f99a2e10..917983aae89 100644
--- a/source/_integrations/cover.mysensors.markdown
+++ b/source/_integrations/cover.mysensors.markdown
@@ -9,27 +9,27 @@ ha_release: "0.30"
ha_iot_class: Local Push
---
-Integrates MySensors covers into Home Assistant. See the [main component] for configuration instructions.
+Integrates MySensors covers into Home Assistant. See the [main integration](/integrations/mysensors/) for configuration instructions.
The following actuator types are supported:
-##### MySensors version 1.4
+## MySensors version 1.4
-S_TYPE | V_TYPE
---------|--------------------------------------------
-S_COVER | V_UP, V_DOWN, V_STOP, [V_DIMMER or V_LIGHT]
+| S_TYPE | V_TYPE |
+| ------- | ------------------------------------------- |
+| S_COVER | V_UP, V_DOWN, V_STOP, [V_DIMMER or V_LIGHT] |
-##### MySensors version 1.5 and higher
+## MySensors version 1.5 and higher
-S_TYPE | V_TYPE
---------|-------------------------------------------------
-S_COVER | V_UP, V_DOWN, V_STOP, [V_PERCENTAGE or V_STATUS]
+| S_TYPE | V_TYPE |
+| ------- | ------------------------------------------------ |
+| S_COVER | V_UP, V_DOWN, V_STOP, [V_PERCENTAGE or V_STATUS] |
All V_TYPES above are required. Use V_PERCENTAGE (or V_DIMMER) if you know the exact position of the cover in percent, use V_STATUS (or V_LIGHT) if you don't.
-For more information, visit the [serial api] of MySensors.
+For more information, visit the [serial API](https://www.mysensors.org/download/serial_api_20) of MySensors.
-### Example sketch
+## Example sketch
```cpp
/*
@@ -149,6 +149,3 @@ void receive(const MyMessage &message) {
}
}
```
-
-[main component]: /integrations/mysensors/
-[serial api]: https://www.mysensors.org/download/serial_api_20
diff --git a/source/_integrations/deconz.markdown b/source/_integrations/deconz.markdown
index f552501aa31..cb72d42e125 100644
--- a/source/_integrations/deconz.markdown
+++ b/source/_integrations/deconz.markdown
@@ -63,7 +63,7 @@ logger:
## Troubleshooting
-If you are having issues and want to report a problem, always start with making sure that you're on the latest [deCONZ software version](https://github.com/dresden-elektronik/deconz-rest-plugin/releases) and [latest firmware for hardware](http://deconz.dresden-elektronik.de/deconz-firmware/?C=M;O=D).
+If you are having issues and want to report a problem, always start with making sure that you're on the latest [deCONZ software version](https://github.com/dresden-elektronik/deconz-rest-plugin/releases) and [latest firmware for hardware](http://deconz.dresden-elektronik.de/deconz-firmware/?C=M;O=D).
## Device services
@@ -73,11 +73,11 @@ Available services: `configure` and `deconz.device_refresh`.
Set attribute of device in deCONZ using [REST-API](https://dresden-elektronik.github.io/deconz-rest-doc/rest/).
-| Service data attribute | Optional | Description |
-|-----------|----------|-------------|
-| `field` | No | String representing a specific device in deCONZ. |
-| `entity` | No | String representing a specific Home Assistant entity of a device in deCONZ. |
-| `data` | No | Data is a JSON object with what data you want to alter. |
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | --------------------------------------------------------------------------- |
+| `field` | No | String representing a specific device in deCONZ. |
+| `entity` | No | String representing a specific Home Assistant entity of a device in deCONZ. |
+| `data` | No | Data is a JSON object with what data you want to alter. |
Either `entity` or `field` must be provided. If both are present, `field` will be interpreted as a subpath under the device path corresponding to the specified `entity`:
@@ -109,12 +109,12 @@ Remote controls (ZHASwitch category) will not be exposed as regular entities, bu
Typical values for switches, the event codes are 4 numbers where the first and last number are of interest here.
-| Switch code | Description |
-|-------------|-------------|
-| 1XXX | Button #1 up to #8 |
-| XXX1 | Button hold |
-| XXX2 | Button short release |
-| XXX3 | Button long release |
+| Switch code | Description |
+| ----------- | -------------------- |
+| 1XXX | Button #1 up to #8 |
+| XXX1 | Button hold |
+| XXX2 | Button short release |
+| XXX3 | Button long release |
Where for example on a Philips Hue Dimmer, 2001 would be holding the dim up button.
@@ -122,17 +122,17 @@ For the IKEA Tradfri remote the first digit equals, 1 for the middle button, 2 f
Specific gestures for the Aqara Magic Cube are:
-| Gesture | Description |
-|---------|-------------|
-| 0 | Awake |
-| 1 | Shake |
-| 2 | Free fall |
-| 3 | Flip 90 |
-| 4 | Flip 180 |
-| 5 | Move on any side |
-| 6 | Double tap on any side |
-| 7 | Turn clockwise |
-| 8 | Turn counter clockwise |
+| Gesture | Description |
+| ------- | ---------------------- |
+| 0 | Awake |
+| 1 | Shake |
+| 2 | Free fall |
+| 3 | Flip 90 |
+| 4 | Flip 180 |
+| 5 | Move on any side |
+| 6 | Double tap on any side |
+| 7 | Turn clockwise |
+| 8 | Turn counter clockwise |
### Finding your events
@@ -313,7 +313,7 @@ class RemoteControl(hass.Hass):
{% endraw %}
-#### Appdaemon remote template
+#### Appdaemon Ikea Tradfri remote template
Community app from [Teachingbirds](https://community.home-assistant.io/u/teachingbirds/summary). This app uses an Ikea Tradfri remote to control Sonos speakers with play/pause, volume up and down, next and previous track.
@@ -402,7 +402,7 @@ Note that devices in the climate platform identify as sensors, so there is a man
The `entity_id` name will be `climate.device_name`, where `device_name` is defined in deCONZ.
-#### Verified supported climate devices
+### Verified supported climate devices
- Bitron Thermostat 902010/32
- Eurotronic SPZB0001
@@ -443,8 +443,8 @@ The `entity_id` names will be `light.device_name`, where `device_name` is define
- Philips Hue White Ambiance A19
- Philips Hue Hue White ambiance Milliskin (recessed spotlight) LTW013
- Philips Hue LightStrip Plus
-- Busch Jaeger ZigBee Light Link univ. relai (6711 U) with ZigBee Light Link control element 6735-84
-- Xiaomi Aqara Smart Led Bulb (white) E27 ZNLDP12LM
+- Busch Jaeger Zigbee Light Link univ. relai (6711 U) with Zigbee Light Link control element 6735-84
+- Xiaomi Aqara Smart Led Bulb (white) E27 ZNLDP12LM
## Scene
@@ -484,24 +484,24 @@ The `entity_id` name will be `sensor.device_name`, where `device_name` is define
### deCONZ Daylight Sensor
-The deCONZ Daylight sensor is a special sensor built into the deCONZ software since version 2.05.12. It is represented in Home Assistant as a sensor called sensor.daylight. The sensor's state value is a string corresponding to the phase of daylight (descriptions below taken from https://github.com/mourner/suncalc, on which the deCONZ implementation is based):
+The deCONZ Daylight sensor is a special sensor built into the deCONZ software since version 2.05.12. It is represented in Home Assistant as a sensor called sensor.daylight. The sensor's state value is a string corresponding to the phase of daylight (descriptions below taken from , on which the deCONZ implementation is based):
-| Sensor State | Description |
-|--------------|-------------|
-| sunrise_start | sunrise (top edge of the sun appears on the horizon) |
-| sunrise_end | sunrise ends (bottom edge of the sun touches the horizon) |
-| golden_hour_1 | morning golden hour (soft light, the best time for photography) |
-| solar_noon | solar noon (sun is in the highest position) |
-| golden_hour_2 | evening golden hour |
-| sunset_start | sunset starts (bottom edge of the sun touches the horizon) |
-| sunset_end | sunset (sun disappears below the horizon, evening civil twilight starts) |
-| dusk | dusk (evening nautical twilight starts) |
-| nautical_dusk | nautical dusk (evening astronomical twilight starts) |
-| night_start | night starts (dark enough for astronomical observations) |
-| nadir | nadir (darkest moment of the night, the sun is in the lowest position) |
-| night_end | night ends (morning astronomical twilight starts) |
-| nautical_dawn | nautical dawn (morning nautical twilight starts) |
-| dawn | dawn (morning nautical twilight ends, morning civil twilight starts) |
+| Sensor State | Description |
+| ------------- | ------------------------------------------------------------------------ |
+| sunrise_start | sunrise (top edge of the sun appears on the horizon) |
+| sunrise_end | sunrise ends (bottom edge of the sun touches the horizon) |
+| golden_hour_1 | morning golden hour (soft light, the best time for photography) |
+| solar_noon | solar noon (sun is in the highest position) |
+| golden_hour_2 | evening golden hour |
+| sunset_start | sunset starts (bottom edge of the sun touches the horizon) |
+| sunset_end | sunset (sun disappears below the horizon, evening civil twilight starts) |
+| dusk | dusk (evening nautical twilight starts) |
+| nautical_dusk | nautical dusk (evening astronomical twilight starts) |
+| night_start | night starts (dark enough for astronomical observations) |
+| nadir | nadir (darkest moment of the night, the sun is in the lowest position) |
+| night_end | night ends (morning astronomical twilight starts) |
+| nautical_dawn | nautical dawn (morning nautical twilight starts) |
+| dawn | dawn (morning nautical twilight ends, morning civil twilight starts) |
The sensor also has an attribute called "daylight" that has the value `true` when the sensor's state is `golden_hour_1`, `solar_noon`, or `golden_hour_2`, and `false` otherwise.
diff --git a/source/_integrations/device_tracker.mysensors.markdown b/source/_integrations/device_tracker.mysensors.markdown
index 88d645f68b6..20f477790f0 100644
--- a/source/_integrations/device_tracker.mysensors.markdown
+++ b/source/_integrations/device_tracker.mysensors.markdown
@@ -9,19 +9,19 @@ ha_release: 0.38
ha_iot_class: Local Push
---
-Integrates MySensors device trackers into Home Assistant. See the [main component] for configuration instructions.
+Integrates MySensors device trackers into Home Assistant. See the [main integration](/integrations/mysensors/) for configuration instructions.
The following sensor types are supported:
-##### MySensors version 2.0 and higher
+## MySensors version 2.0 and higher
-S_TYPE | V_TYPE
--------------------|---------------------------------------
-S_GPS | V_POSITION
+| S_TYPE | V_TYPE |
+| ------ | ---------- |
+| S_GPS | V_POSITION |
-For more information, visit the [serial api] of MySensors.
+For more information, visit the [serial API](https://www.mysensors.org/download) of MySensors.
-### MySensors 2.x example sketch
+## MySensors 2.x example sketch
```cpp
/**
@@ -95,6 +95,3 @@ void loop()
}
}
```
-
-[main component]: /integrations/mysensors/
-[serial api]: https://www.mysensors.org/download
diff --git a/source/_integrations/envisalink.markdown b/source/_integrations/envisalink.markdown
index 129e921eb4e..96b4bece4d1 100644
--- a/source/_integrations/envisalink.markdown
+++ b/source/_integrations/envisalink.markdown
@@ -22,7 +22,7 @@ There is currently support for the following device types within Home Assistant:
This is a fully event-based component. Any event sent by the Envisalink device will be immediately reflected within Home Assistant.
-As of 0.29, the alarm_trigger service is supported. It is possible to fire off an envisalink-based alarm directly from Home Assistant. For example, a newer zwave/zigbee sensor can now be integrated into a legacy alarm system using a Home Assistant automation.
+As of 0.29, the alarm_trigger service is supported. It is possible to fire off an envisalink-based alarm directly from Home Assistant. For example, a newer Z-Wave / Zigbee sensor can now be integrated into a legacy alarm system using a Home Assistant automation.
An `envisalink` section must be present in the `configuration.yaml` file and contain the following options as required:
@@ -136,6 +136,6 @@ The following services are supported by Envisalink and can be used to script or
- **alarm_arm_home**: Arms the alarm in home mode.
- **alarm_arm_away**: Arms the alarm in standard away mode.
- **alarm_arm_night**: Arms the alarm in night mode.
-- **alarm_trigger**: Trigger an alarm on the Envisalink connected alarm system. For example, a newer zwave/zigbee sensor can now be integrated into a legacy alarm system using a Home Assistant automation.
+- **alarm_trigger**: Trigger an alarm on the Envisalink connected alarm system. For example, a newer Z-Wave / Zigbee sensor can now be integrated into a legacy alarm system using a Home Assistant automation.
- **alarm_keypress**: Sends a string of up to 6 characters to the alarm. *Works with DSC panels, and confirmed to work with Honeywell Vista-20P (aka First Alert FA-168)*
- **invoke_custom_function**: Invokes a custom PGM function. *DSC alarms only*
diff --git a/source/_integrations/flic.markdown b/source/_integrations/flic.markdown
index 6218c34b118..8bcdfd843e0 100644
--- a/source/_integrations/flic.markdown
+++ b/source/_integrations/flic.markdown
@@ -12,13 +12,13 @@ The `flic` platform allows you to receive click events from [flic](https://flic.
The platform does not directly interact with the buttons, *but communicates with a flic service* that manages the buttons. The service can run on the same instance as Home Assistant or any other reachable machine.
-#### Service setup
+## Service setup
If you are using Hass.io, you can run the service locally by [installing](/hassio/installing_third_party_addons/) the flicd add-on from [pschmitt's repository](https://github.com/pschmitt/hassio-addons).
-For instructions on how to install the service manually, visit the GitHub repository of the service for [Linux](https://github.com/50ButtonsEach/fliclib-linux-hci), [OS X](https://github.com/50ButtonsEach/flic-service-osx) or [Windows](https://github.com/50ButtonsEach/fliclib-windows).
+For instructions on how to install the service manually, visit the GitHub repository of the service for [Linux](https://github.com/50ButtonsEach/fliclib-linux-hci), [macOS](https://github.com/50ButtonsEach/flic-service-osx) or [Windows](https://github.com/50ButtonsEach/fliclib-windows).
-#### Configuration
+## Configuration
To use your flic buttons in your installation, add the following to your `configuration.yaml` file:
@@ -55,15 +55,15 @@ timeout:
default: 3
{% endconfiguration %}
-#### Discovery
+## Discovery
If discovery is enabled, you can add a new button by pressing it for at least 7 seconds. The button will be paired with the flic service and added to Home Assistant. Otherwise, you have to manually pair it with the flic service. The Home Assistant platform will not scan for new buttons and will only connect to buttons already paired.
-#### Timeout
+## Timeout
- When the flic button is triggered while disconnected from flic service, it will queue all events and try to connect and transmit them as soon as possible. The timeout variable can be used to stop events from triggering if too much time passed between the action and the notification in Home Assistant.
+When the flic button is triggered while disconnected from flic service, it will queue all events and try to connect and transmit them as soon as possible. The timeout variable can be used to stop events from triggering if too much time passed between the action and the notification in Home Assistant.
-#### Events
+## Events
The flic integration fires `flic_click` events on the bus. You can capture the events and respond to them in automation scripts like this:
@@ -105,6 +105,6 @@ automation:
message: {% raw %}"flic {{ trigger.event.data.button_name }} was {{ trigger.event.data.click_type }} clicked"{% endraw %}
```
-##### Ignoring Click Types
+### Ignoring Click Types
For some purposes it might make sense to exclude a specific click type from triggering click events. For example when ignoring double clicks, pressing the button twice fast results in two `single` instead of a `double` click event. This is very useful for applications where you want to click fast.
diff --git a/source/_integrations/foursquare.markdown b/source/_integrations/foursquare.markdown
index 0a8c8b863d2..41dd04d2e7d 100644
--- a/source/_integrations/foursquare.markdown
+++ b/source/_integrations/foursquare.markdown
@@ -30,7 +30,7 @@ push_secret:
type: string
{% endconfiguration %}
-#### Getting the access token ####
+## Getting the access token
After you have registered your APP on your [My Apps Page](https://foursquare.com/developers/apps) you get a `CLIENT_ID` and you have specified a
`REDIRECT_URL` which can be any URL you like, but since it will get your access token via an HTTP GET request, it should be a URL which will ignore the `access_token` HTTP GET variable. A good idea is to choose the URL of your Home Assistant.
@@ -71,7 +71,7 @@ Parameters:
- **eventId** (*Optional*): The event the user is checking in to.
- **shout** (*Optional*): A message about your check-in. The maximum length of this field is 140 characters.
- **mentions** (*Optional*): Mentions in your check-in. This parameter is a semicolon-delimited list of mentions. A single mention is of the form "start,end,userid", where start is the index of the first character in the shout representing the mention, end is the index of the first character in the shout after the mention, and userid is the userid of the user being mentioned. If userid is prefixed with "fbu-", this indicates a Facebook userid that is being mention. Character indices in shouts are 0-based.
-- **broadcast** (*Optional*): "Who to broadcast this check-in to. Accepts a comma-delimited list of values: private (off the grid) or public (share with friends), Facebook share on Facebook, twitter share on twitter, followers share with followers (celebrity mode users only), If no valid value is found, the default is public."
+- **broadcast** (*Optional*): "Who to broadcast this check-in to. Accepts a comma-delimited list of values: private (off the grid) or public (share with friends), Facebook share on Facebook, Twitter share on twitter, followers share with followers (celebrity mode users only), If no valid value is found, the default is public."
- **ll** (*Optional*): Latitude and longitude of the user's location. Only specify this field if you have a GPS or other device reported location for the user at the time of check-in.
- **llAcc** (*Optional*): Accuracy of the user's latitude and longitude, in meters.
- **alt** (*Optional*): Altitude of the user's location, in meters.
diff --git a/source/_integrations/knx.markdown b/source/_integrations/knx.markdown
index 056ad86f69b..fd722ff0fa7 100644
--- a/source/_integrations/knx.markdown
+++ b/source/_integrations/knx.markdown
@@ -43,6 +43,7 @@ Optional, recommended for large KNX installations (>100 devices) and/or if you w
knx:
config_file: '/path/to/xknx.yaml'
```
+
{% configuration %}
config_file:
description: The path for XKNX configuration file.
@@ -108,7 +109,7 @@ fire_event:
type: boolean
default: false
fire_event_filter:
- description: If `fire_event` is set `fire_event_filter` has to be specified. `fire_event_filter` defines a list of patterns for filtering KNX addresses. Only telegrams which match this pattern are sent to the HOme Assistant event bus.
+ description: If `fire_event` is set `fire_event_filter` has to be specified. `fire_event_filter` defines a list of patterns for filtering KNX addresses. Only telegrams which match this pattern are sent to the Home Assistant event bus.
required: inclusive
type: [list, string]
state_updater:
diff --git a/source/_integrations/light.mysensors.markdown b/source/_integrations/light.mysensors.markdown
index 4cfa6de1403..8d3ff74d05e 100644
--- a/source/_integrations/light.mysensors.markdown
+++ b/source/_integrations/light.mysensors.markdown
@@ -9,31 +9,31 @@ ha_release: 0.13
ha_iot_class: Local Push
---
-Integrates MySensors lights into Home Assistant. See the [main component] for configuration instructions.
+Integrates MySensors lights into Home Assistant. See the [main integration](/integrations/mysensors/) for configuration instructions.
The following actuator types are supported:
-##### MySensors version 1.4
+## MySensors version 1.4
-S_TYPE | V_TYPE
----------|--------------
-S_DIMMER | V_DIMMER\*, V_LIGHT\*
+| S_TYPE | V_TYPE |
+| -------- | --------------------- |
+| S_DIMMER | V_DIMMER\*, V_LIGHT\* |
-##### MySensors version 1.5 and higher
+## MySensors version 1.5 and higher
-S_TYPE | V_TYPE
-------------|-------------
-S_DIMMER | [V_DIMMER\* or V_PERCENTAGE\*], [V_LIGHT\* or V_STATUS\*]
-S_RGB_LIGHT | V_RGB*, [V_LIGHT\* or V_STATUS\*], [V_DIMMER or V_PERCENTAGE]
-S_RGBW_LIGHT | V_RGBW*, [V_LIGHT\* or V_STATUS\*], [V_DIMMER or V_PERCENTAGE]
+| S_TYPE | V_TYPE |
+| ------------ | -------------------------------------------------------------- |
+| S_DIMMER | [V_DIMMER\* or V_PERCENTAGE\*], [V_LIGHT\* or V_STATUS\*] |
+| S_RGB_LIGHT | V_RGB*, [V_LIGHT\* or V_STATUS\*], [V_DIMMER or V_PERCENTAGE] |
+| S_RGBW_LIGHT | V_RGBW*, [V_LIGHT\* or V_STATUS\*], [V_DIMMER or V_PERCENTAGE] |
V_TYPES with a star (\*) denote V_TYPES that should be sent at sketch startup. For an S_DIMMER, send both a V_DIMMER/V_PERCENTAGE and a V_LIGHT/V_STATUS message. For an S_RGB_LIGHT, send both a V_RGB and a V_LIGHT/V_STATUS message with a V_DIMMER/V_PERCENTAGE message being optional. Same principal applies for S_RGBW_LIGHT and V_RGBW.
Sketch should acknowledge a command sent from controller with the same type. If command invokes a change to off state (including a V_PERCENTAGE, V_RGB, or V_RGBW message of zero), only a V_STATUS of zero message should be sent. See sketches below for examples.
-For more information, visit the [serial api] of MySensors.
+For more information, visit the [serial API](https://www.mysensors.org/download) of MySensors.
-### MySensors 1.x example sketch
+## MySensors 1.x example sketch
```cpp
/*
@@ -108,7 +108,7 @@ void incomingMessage(const MyMessage &message) {
}
```
-### MySensors 2.x example sketch
+## MySensors 2.x example sketch
```cpp
/*
@@ -241,6 +241,3 @@ void send_status_message()
}
}
```
-
-[main component]: /integrations/mysensors/
-[serial api]: https://www.mysensors.org/download
diff --git a/source/_integrations/limitlessled.markdown b/source/_integrations/limitlessled.markdown
index f6b55f44a8d..59597a5494f 100644
--- a/source/_integrations/limitlessled.markdown
+++ b/source/_integrations/limitlessled.markdown
@@ -16,7 +16,7 @@ Note: you can assign an `rgbw`, `rgbww`, `white` and `dimmer` group to the same
An archive of the extensive API can be found [here](https://github.com/Fantasmos/LimitlessLED-DevAPI).
-### Setup
+## Setup
Before configuring Home Assistant, make sure you can control your bulbs or LEDs with the MiLight mobile application. Next, discover your bridge(s) IP address. You can do this via your router or a mobile application like Fing ([Android](https://play.google.com/store/apps/details?id=com.overlook.android.fing&hl=en) or [iTunes](https://itunes.apple.com/us/app/fing-network-scanner/id430921107?mt=8)).
diff --git a/source/_integrations/miflora.markdown b/source/_integrations/miflora.markdown
index 390adfaa6d5..d37335c10a5 100644
--- a/source/_integrations/miflora.markdown
+++ b/source/_integrations/miflora.markdown
@@ -24,7 +24,7 @@ Before configuring Home Assistant you need a Bluetooth backend and the MAC addre
- On other Linux systems:
- Preferred solution: Install the `bluepy` library (via pip). When using a virtual environment, make sure to install the library in the right one.
- Fallback solution: Install `gatttool` via your package manager. Depending on the distribution, the package name might be: `bluez`, `bluetooth`, `bluez-deprecated`
-- On Windows and MacOS there is currently no support for the [miflora library](https://github.com/open-homeautomation/miflora/).
+- On Windows and macOS there is currently no support for the [miflora library](https://github.com/open-homeautomation/miflora/).
## Scan for devices
@@ -120,7 +120,7 @@ sensor:
- platform: miflora
mac: 'xx:xx:xx:xx:xx:xx'
name: Flower 1
- force_update: true
+ force_update: true
median: 3
monitored_conditions:
- moisture
diff --git a/source/_integrations/mikrotik.markdown b/source/_integrations/mikrotik.markdown
index f23d31212bf..c87a6e3eef2 100644
--- a/source/_integrations/mikrotik.markdown
+++ b/source/_integrations/mikrotik.markdown
@@ -27,11 +27,10 @@ set api disabled=no port=8728
Web Frontend:
-Go to **IP** -> **Services** -> **api** and enable it.
+Go to **IP** -> **Services** -> **API** and enable it.
Make sure that port 8728 or the port you choose is accessible from your network.
-
To use a MikroTik router in your installation, add the following to your `configuration.yaml` file:
```yaml
@@ -86,7 +85,7 @@ arp_ping:
As of version 6.43 of RouterOS Mikrotik introduced a new login method (plain) in addition to the old login method (token). With Version 6.45.1 the old token login method got deprecated.
In order to support both login mechanisms, the new config option `login_method` has been introduced. If this option is not set, the component will try to login with the plain method first and the token method if that fails.
- That can cause log entries on the router like `login failure for user homeassistant from 192.168.23.10 via api` but doesn't keep the component from working.
+ That can cause log entries on the router like `login failure for user homeassistant from 192.168.23.10 via api` but doesn't keep the component from working.
To get rid of these entries, set the `login_method` to `plain` for Routers with OS versions > 6.43 or `token` for routers with OS versions < 6.43.
@@ -120,7 +119,7 @@ To use this device tracker you need restricted privileges only. To enhance the s
/user set password="YOUR_PASSWORD" homeassistant
```
-## Using the additional configuration to the `mikrotik` entry in your `configuration.yaml` file:
+## Using the additional configuration to the `mikrotik` entry in your `configuration.yaml` file
```yaml
mikrotik:
diff --git a/source/_integrations/mitemp_bt.markdown b/source/_integrations/mitemp_bt.markdown
index 64d736ea20c..cea293437fe 100644
--- a/source/_integrations/mitemp_bt.markdown
+++ b/source/_integrations/mitemp_bt.markdown
@@ -19,7 +19,7 @@ Depending on the operating system you're running, you have to configure the prop
- On other Linux systems:
- Preferred solution: Install the `bluepy` and `btlewrap` library (via pip). When using a virtual environment, make sure to use install the library in the right one.
- Fallback solution: Install `btlewrap` library (via pip) and `gatttool` via your package manager. Depending on the distribution, the package name might be: `bluez`, `bluetooth` or `bluez-deprecated`.
-- Windows and MacOS are currently not supported by the `btlewrap` library.
+- Windows and macOS are currently not supported by the `btlewrap` library.
## Configuration
diff --git a/source/_integrations/notify.mysensors.markdown b/source/_integrations/notify.mysensors.markdown
index 7dc8aeac619..b5f9628e0ed 100644
--- a/source/_integrations/notify.mysensors.markdown
+++ b/source/_integrations/notify.mysensors.markdown
@@ -9,11 +9,11 @@ ha_release: 0.36
ha_iot_class: Local Push
---
-Integrates MySensors notifications into Home Assistant. See the [main component] for configuration instructions.
+Integrates MySensors notifications into Home Assistant. See the [main integration](/integrations/mysensors/) for configuration instructions.
Setting the `target` key in the service call will target the name of the MySensors device in Home Assistant. MySensors device names follow the notation: "[Sketch name] [Node id] [Child id]".
-### Automation example
+## Automation example
```yaml
...
@@ -28,11 +28,11 @@ The following sensor types are supported:
##### MySensors version 2.0 and higher
-S_TYPE | V_TYPE
-----------------|--------------------------
-S_INFO | V_TEXT
+| S_TYPE | V_TYPE |
+| ------ | ------ |
+| S_INFO | V_TEXT |
-For more information, visit the [api] page of MySensors.
+For more information, visit the [API](https://www.mysensors.org/download/) page of MySensors.
### Example sketch
@@ -91,6 +91,3 @@ For more information, visit the [api] page of MySensors.
}
}
```
-
-[main component]: /integrations/mysensors/
-[api]: https://www.mysensors.org/download/
diff --git a/source/_integrations/roku.markdown b/source/_integrations/roku.markdown
index f640d668d8b..b11c0569b9e 100644
--- a/source/_integrations/roku.markdown
+++ b/source/_integrations/roku.markdown
@@ -90,7 +90,7 @@ data:
When the Home Assistant Roku integration is enabled and has found a Roku device, in the Home Assistant GUI the Roku media player will show a listing of the installed channels, or apps, under “source”. Select one and it will attempt to launch the channel on your Roku device. This action can also be automated, but it requires you to acquire an extra piece of information; the ```appID``` for the channel specific to your Roku. Although this information is gathered by the Roku integration, at the moment it is not exposed to the end user. This item might be added in a future release. For now though, you can easily get the information yourself. All you need to do is a simple GET API call on the same network as your device.
-The api calls are like this:
+The API calls are like this:
```txt
GET http:// ROKU_IP:8060/query/apps
@@ -102,7 +102,7 @@ POST http://YOUR_ROKU_IP:8060/launch/837?contentID=YOUR_YOUTUBE_VIDEOS_CONTENT_I
More details can be found on the [Roku dev pages](https://developer.roku.com/docs/developer-program/discovery/external-control-api.md)
-To use this in Home Assistant, for instance in an automation, the format is as follows. Note that ```source: ``` is the appID you discovered in the API call:
+To use this in Home Assistant, for instance in an automation, the format is as follows. Note that `source:` is the appID you discovered in the API call:
```yaml
action:
diff --git a/source/_integrations/sensibo.markdown b/source/_integrations/sensibo.markdown
index 35627385e29..70dce13f6e1 100644
--- a/source/_integrations/sensibo.markdown
+++ b/source/_integrations/sensibo.markdown
@@ -23,7 +23,7 @@ climate:
{% configuration %}
api_key:
- description: Your Sensibo API key (To get your API key visit ).
+ description: Your Sensibo API key (To get your API key visit `https://home.sensibo.com/me/api`).
required: true
type: string
id:
@@ -38,7 +38,8 @@ then in the Sensibo app log you will be able to distinguish between actions
done in the app and actions done by Home Assistant.
-### Full config example
+## Full config example
+
```yaml
climate:
- platform: sensibo
@@ -48,11 +49,12 @@ climate:
- id2
```
-### Adding a quick switch example
+## Adding a quick switch example
If you want a "Quick Switch" to turn your AC On / Off, you can do that using the following `Switch Template`:
{% raw %}
+
```yaml
switch:
- platform: template
@@ -71,4 +73,5 @@ switch:
entity_id: climate.ac
hvac_mode: off
```
+
{% endraw %}
diff --git a/source/_integrations/sensor.mysensors.markdown b/source/_integrations/sensor.mysensors.markdown
index 6b84c8422da..908228b1d3c 100644
--- a/source/_integrations/sensor.mysensors.markdown
+++ b/source/_integrations/sensor.mysensors.markdown
@@ -9,7 +9,7 @@ ha_iot_class: Local Push
ha_release: 0.7
---
-Integrates MySensors sensors into Home Assistant. See the [main component] for configuration instructions.
+Integrates MySensors sensors into Home Assistant. See the [main integration](/integrations/mysensors/) for configuration instructions.
## Supported sensor types
@@ -17,46 +17,46 @@ The following sensor types are supported:
### MySensors version 1.4 and higher
-S_TYPE | V_TYPE
--------------------|---------------------------------------
-S_TEMP | V_TEMP
-S_HUM | V_HUM
-S_BARO | V_PRESSURE, V_FORECAST
-S_WIND | V_WIND, V_GUST, V_DIRECTION
-S_RAIN | V_RAIN, V_RAINRATE
-S_UV | V_UV
-S_WEIGHT | V_WEIGHT, V_IMPEDANCE
-S_POWER | V_WATT, V_KWH
-S_DISTANCE | V_DISTANCE
-S_LIGHT_LEVEL | V_LIGHT_LEVEL
-S_IR | V_IR_RECEIVE
-S_WATER | V_FLOW, V_VOLUME
-S_AIR_QUALITY | V_DUST_LEVEL
-S_CUSTOM | V_VAR1, V_VAR2, V_VAR3, V_VAR4, V_VAR5
-S_DUST | V_DUST_LEVEL
-S_SCENE_CONTROLLER | V_SCENE_ON, V_SCENE_OFF
+| S_TYPE | V_TYPE |
+| ------------------ | -------------------------------------- |
+| S_TEMP | V_TEMP |
+| S_HUM | V_HUM |
+| S_BARO | V_PRESSURE, V_FORECAST |
+| S_WIND | V_WIND, V_GUST, V_DIRECTION |
+| S_RAIN | V_RAIN, V_RAINRATE |
+| S_UV | V_UV |
+| S_WEIGHT | V_WEIGHT, V_IMPEDANCE |
+| S_POWER | V_WATT, V_KWH |
+| S_DISTANCE | V_DISTANCE |
+| S_LIGHT_LEVEL | V_LIGHT_LEVEL |
+| S_IR | V_IR_RECEIVE |
+| S_WATER | V_FLOW, V_VOLUME |
+| S_AIR_QUALITY | V_DUST_LEVEL |
+| S_CUSTOM | V_VAR1, V_VAR2, V_VAR3, V_VAR4, V_VAR5 |
+| S_DUST | V_DUST_LEVEL |
+| S_SCENE_CONTROLLER | V_SCENE_ON, V_SCENE_OFF |
### MySensors version 1.5 and higher
-S_TYPE | V_TYPE
----------------|----------------------------------
-S_COLOR_SENSOR | V_RGB
-S_MULTIMETER | V_VOLTAGE, V_CURRENT, V_IMPEDANCE
-S_SOUND | V_LEVEL
-S_VIBRATION | V_LEVEL
-S_MOISTURE | V_LEVEL
-S_LIGHT_LEVEL | V_LEVEL
-S_AIR_QUALITY | V_LEVEL (replaces V_DUST_LEVEL)
-S_DUST | V_LEVEL (replaces V_DUST_LEVEL)
+| S_TYPE | V_TYPE |
+| -------------- | --------------------------------- |
+| S_COLOR_SENSOR | V_RGB |
+| S_MULTIMETER | V_VOLTAGE, V_CURRENT, V_IMPEDANCE |
+| S_SOUND | V_LEVEL |
+| S_VIBRATION | V_LEVEL |
+| S_MOISTURE | V_LEVEL |
+| S_LIGHT_LEVEL | V_LEVEL |
+| S_AIR_QUALITY | V_LEVEL (replaces V_DUST_LEVEL) |
+| S_DUST | V_LEVEL (replaces V_DUST_LEVEL) |
### MySensors version 2.0 and higher
-S_TYPE | V_TYPE
-----------------|--------------------------
-S_INFO | V_TEXT
-S_GAS | V_FLOW, V_VOLUME
-S_GPS | V_POSITION
-S_WATER_QUALITY | V_TEMP, V_PH, V_ORP, V_EC
+| S_TYPE | V_TYPE |
+| --------------- | ------------------------- |
+| S_INFO | V_TEXT |
+| S_GAS | V_FLOW, V_VOLUME |
+| S_GPS | V_POSITION |
+| S_WATER_QUALITY | V_TEMP, V_PH, V_ORP, V_EC |
## Custom unit of measurement
@@ -64,7 +64,7 @@ Some sensor value types are not specific for a certain sensor type. These do not
By using V_UNIT_PREFIX, it's possible to set a custom unit for any sensor. The string value that is sent for V_UNIT_PREFIX will be used in preference to any other unit of measurement, for the defined sensors. V_UNIT_PREFIX can't be used as a stand-alone sensor value type. Sending a supported value type and value from the tables above is also required. V_UNIT_PREFIX is available with MySensors version 1.5 and later.
-For more information, visit the [serial api] of MySensors.
+For more information, visit the [serial API](https://www.mysensors.org/download) of MySensors.
## Example sketches
@@ -179,6 +179,3 @@ void receive(const MyMessage &message) {
}
}
```
-
-[main component]: /integrations/mysensors/
-[serial api]: https://www.mysensors.org/download
diff --git a/source/_integrations/spaceapi.markdown b/source/_integrations/spaceapi.markdown
index 6d9cef1d863..279c8b741ca 100644
--- a/source/_integrations/spaceapi.markdown
+++ b/source/_integrations/spaceapi.markdown
@@ -128,7 +128,7 @@ contact:
required: false
type: string
issue_report_channels:
- description: "The reporting channel for issues. Valid values are email, issue_mail, twitter or ml"
+ description: "The reporting channel for issues. Valid values are `email`, `issue_mail`, `twitter` or `ml`"
required: true
type: list
state:
diff --git a/source/_integrations/switch.mysensors.markdown b/source/_integrations/switch.mysensors.markdown
index 1d35df94d29..f4439feff47 100644
--- a/source/_integrations/switch.mysensors.markdown
+++ b/source/_integrations/switch.mysensors.markdown
@@ -9,7 +9,7 @@ ha_iot_class: Local Push
ha_release: 0.11
---
-Integrates MySensors switches into Home Assistant. See the [main component] for configuration instructions.
+Integrates MySensors switches into Home Assistant. See the [main integration](/integrations/mysensors/) for configuration instructions.
## Supported actuator types
@@ -17,44 +17,44 @@ The following actuator types are supported:
### MySensors version 1.4 and higher
-S_TYPE | V_TYPE
----------|-------------------
-S_DOOR | V_ARMED
-S_MOTION | V_ARMED
-S_SMOKE | V_ARMED
-S_LIGHT | V_LIGHT
-S_LOCK | V_LOCK_STATUS
-S_IR | V_IR_SEND, V_LIGHT
+| S_TYPE | V_TYPE |
+| -------- | ------------------ |
+| S_DOOR | V_ARMED |
+| S_MOTION | V_ARMED |
+| S_SMOKE | V_ARMED |
+| S_LIGHT | V_LIGHT |
+| S_LOCK | V_LOCK_STATUS |
+| S_IR | V_IR_SEND, V_LIGHT |
### MySensors version 1.5 and higher
-S_TYPE | V_TYPE
--------------|----------------------
-S_LIGHT | V_STATUS
-S_BINARY | [V_STATUS or V_LIGHT]
-S_SPRINKLER | V_STATUS
-S_WATER_LEAK | V_ARMED
-S_SOUND | V_ARMED
-S_VIBRATION | V_ARMED
-S_MOISTURE | V_ARMED
+| S_TYPE | V_TYPE |
+| ------------ | --------------------- |
+| S_LIGHT | V_STATUS |
+| S_BINARY | [V_STATUS or V_LIGHT] |
+| S_SPRINKLER | V_STATUS |
+| S_WATER_LEAK | V_ARMED |
+| S_SOUND | V_ARMED |
+| S_VIBRATION | V_ARMED |
+| S_MOISTURE | V_ARMED |
### MySensors version 2.0 and higher
-S_TYPE | V_TYPE
-----------------|---------
-S_WATER_QUALITY | V_STATUS
+| S_TYPE | V_TYPE |
+| --------------- | -------- |
+| S_WATER_QUALITY | V_STATUS |
All V_TYPES for each S_TYPE above are required to activate the actuator for the platform. Use either V_LIGHT or V_STATUS depending on library version for cases where that V_TYPE is required.
-For more information, visit the [serial api] of MySensors.
+For more information, visit the [serial API](https://www.mysensors.org/download) of MySensors.
## Services
The MySensors switch platform exposes a service to change an IR code attribute for an IR switch device and turn the switch on. The IR switch will automatically be turned off after being turned on, if `optimistic` is set to `true` in the [config](/integrations/mysensors/#configuration) for the MySensors component. This will simulate a push button on a remote. If `optimistic` is `false`, the MySensors device will have to report its updated state to reset the switch. See the [example sketch](#ir-switch-sketch) for the IR switch below.
-| Service | Description |
-| ------- | ----------- |
-| mysensors.send_ir_code | Set an IR code as a state attribute for a MySensors IR device switch and turn the switch on.|
+| Service | Description |
+| ---------------------- | -------------------------------------------------------------------------------------------- |
+| mysensors.send_ir_code | Set an IR code as a state attribute for a MySensors IR device switch and turn the switch on. |
The service can be used as part of an automation script. For example:
@@ -201,6 +201,3 @@ void incomingMessage(const MyMessage &message) {
}
}
```
-
-[main component]: /integrations/mysensors/
-[serial api]: https://www.mysensors.org/download
diff --git a/source/_integrations/tts.markdown b/source/_integrations/tts.markdown
index f2cc5b0f0a4..a9d9a7812fc 100644
--- a/source/_integrations/tts.markdown
+++ b/source/_integrations/tts.markdown
@@ -141,9 +141,9 @@ data_template:
The integration has two caches. Both caches can be controlled with the `cache` option in the platform configuration or the service call `say`. A long time cache will be located on the file system. The in-memory cache for fast responses to media players will be auto-cleaned after a short period.
-## REST Api
+## REST API
-### POST /api/tts_get_url
+### POST `/api/tts_get_url`
Returns an URL to the generated TTS file. Platform and message are required.
diff --git a/source/_integrations/watson_tts.markdown b/source/_integrations/watson_tts.markdown
index 674f937c0cd..d81d3dec2d5 100644
--- a/source/_integrations/watson_tts.markdown
+++ b/source/_integrations/watson_tts.markdown
@@ -40,7 +40,7 @@ watson_url:
description: "The endpoint to which the service will connect."
required: false
type: string
- default: https://stream.watsonplatform.net/text-to-speech/api
+ default: "`https://stream.watsonplatform.net/text-to-speech/api`"
watson_apikey:
description: "Your secret apikey generated on the IBM Cloud admin console."
required: true
diff --git a/source/_integrations/wunderlist.markdown b/source/_integrations/wunderlist.markdown
index 64fe62efa6f..6c05f4db403 100644
--- a/source/_integrations/wunderlist.markdown
+++ b/source/_integrations/wunderlist.markdown
@@ -14,7 +14,7 @@ The `wunderlist` integration allows you to create tasks in [Wunderlist](https://
Wunderlist API uses OAuth2, so you need to obtain a `client_id` and an `access_token`.
There are two ways:
-1. Go to the [Wunderlist IOT app page](https://wunderlist-iot.herokuapp.com), log in with your Wunderlist account and accept the application permissions.
+1. Go to the [Wunderlist IoT app page](https://wunderlist-iot.herokuapp.com), log in with your Wunderlist account and accept the application permissions.
It will print for you the `client_id` and the `access_token`.
2. Or you can create your own application and `access_token` following the instructions at the [Wunderlist developer page](https://developer.wunderlist.com/).
@@ -43,11 +43,11 @@ access_token:
This integration offers a new service domain `wunderlist` with the service `create_task`.
You can call this service with the argument `list_name` the argument `name` and the optional parameter `starred` to create a new task.
-| Service data attribute | Optional | Description | Example |
-|------------------------|----------|-------------|---------|
-| list_name | no | Name of the list | "Shopping list"
-| name | no | Name of the new task | "Spanish Jam" |
-| starred | yes | Create the task starred or not | false |
+| Service data attribute | Optional | Description | Example |
+| ---------------------- | -------- | ------------------------------ | --------------- |
+| list_name | no | Name of the list | "Shopping list" |
+| name | no | Name of the new task | "Spanish Jam" |
+| starred | yes | Create the task starred or not | false |
## Disclaimer
diff --git a/source/_integrations/yeelight.markdown b/source/_integrations/yeelight.markdown
index 0c3a97a4e76..82c30b65fa7 100644
--- a/source/_integrations/yeelight.markdown
+++ b/source/_integrations/yeelight.markdown
@@ -18,7 +18,8 @@ There is currently support for the following device types within Home Assistant:
- **Light** - The yeelight platform for supporting lights.
- **Sensor** - The yeelight platform for supporting sensors. Currently only nightlight mode sensor, for ceiling lights.
-### Example configuration (Automatic)
+## Example configuration (Automatic)
+
After the lights are connected to the WiFi network and have been detected in Home Assistant, the discovered names will be shown in the `Light` section of the `Overview` view. Add the following lines to your `customize.yaml` file:
```yaml
@@ -29,7 +30,7 @@ light.yeelight_color2_XXXXXXXXXXXX:
friendly_name: Downstairs Toilet
```
-### Example configuration (Manual)
+## Example configuration (Manual)
To enable those lights, add the following lines to your `configuration.yaml` file:
@@ -107,7 +108,8 @@ custom_effects:
type: list
{% endconfiguration %}
-#### Music mode
+### Music mode
+
Per default the bulb limits the amount of requests per minute to 60, a limitation which can be bypassed by enabling the music mode. In music mode the bulb is commanded to connect back to a socket provided by the integration and it tries to keep the connection open, which may not be wanted in all use-cases.
**Also note that bulbs in music mode will not update their state to "unavailable" if they are disconnected, which can cause delays in Home Assistant. Bulbs in music mode may also not react to commands from Home Assistant the first time if the connection is dropped. If you experience this issue, turn the light off and back on again in the frontend and everything will return to normal.**
@@ -149,7 +151,7 @@ This integration is tested to work with the following models. If you have a diff
| `ceiling4` | YLXD02YL | Yeelight Ceiling Light (Jiaoyue 650) |
| `mono` | YLTD03YL | Yeelight Serene Eye-Friendly Desk Lamp |
-## Platform Services
+## Services
### Service `yeelight.set_mode`
@@ -203,7 +205,7 @@ Changes the light to the specified color temperature. If the light is off, it wi
### Service `yeelight.set_color_flow_scene`
-Starts a color flow. Difference between this and [yeelight.start_flow](#service-yeelightstart_flow), this service call uses different Yeelight api call. If the light was off, it will be turned on. There might be some firmware differences, in handling complex flows, etc.
+Starts a color flow. Difference between this and [yeelight.start_flow](#service-yeelightstart_flow), this service call uses different Yeelight API call. If the light was off, it will be turned on. There might be some firmware differences, in handling complex flows, etc.
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------------------------------------------|
@@ -261,14 +263,14 @@ This example shows how you can add your custom effects in your configuration. To
Possible transitions are `RGBTransition`, `HSVTransition`, `TemperatureTransition`, `SleepTransition`.
Where the array values are as per the following:
- - RGBTransition: [red, green, blue, duration, brightness] with red / green / blue being an integer between 0 and 255, duration being in milliseconds (minimum of 50) and final brightness to transition to 0-100 (%)
- - HSVTransition: [hue, saturation, duration, brightness] with hue being an integer between 0 and 359, saturation 0 -100, duration in milliseconds (minimum 50) and final brightness 0-100 (%)
- - TemperatureTransition: [temp, duration, brightness] with temp being the final color temperature between 1700 and 6500, duration in milliseconds (minimum 50) and final brightness to transition to 0-100 (%)
- - SleepTransition: [duration] with duration being in integer for effect time in milliseconds (minimum 50)
+
+- RGBTransition: [red, green, blue, duration, brightness] with red / green / blue being an integer between 0 and 255, duration being in milliseconds (minimum of 50) and final brightness to transition to 0-100 (%).
+- HSVTransition: [hue, saturation, duration, brightness] with hue being an integer between 0 and 359, saturation 0 -100, duration in milliseconds (minimum 50) and final brightness 0-100 (%).
+- TemperatureTransition: [temp, duration, brightness] with temp being the final color temperature between 1700 and 6500, duration in milliseconds (minimum 50) and final brightness to transition to 0-100 (%).
+- SleepTransition: [duration] with duration being in integer for effect time in milliseconds (minimum 50).
More info about transitions and their expected parameters can be found in [python-yeelight documentation](https://yeelight.readthedocs.io/en/stable/flow.html).
-
```yaml
yeelight:
devices: