mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-16 13:56:53 +00:00
Merge branch 'current' into next
This commit is contained in:
commit
b569e2ee80
10
_config.yml
10
_config.yml
@ -76,6 +76,8 @@ collections:
|
|||||||
output: true
|
output: true
|
||||||
faq:
|
faq:
|
||||||
output: true
|
output: true
|
||||||
|
lovelace:
|
||||||
|
output: true
|
||||||
|
|
||||||
# ----------------------- #
|
# ----------------------- #
|
||||||
# 3rd Party Settings #
|
# 3rd Party Settings #
|
||||||
@ -139,14 +141,14 @@ social:
|
|||||||
|
|
||||||
# Home Assistant release details
|
# Home Assistant release details
|
||||||
current_major_version: 0
|
current_major_version: 0
|
||||||
current_minor_version: 72
|
current_minor_version: 73
|
||||||
current_patch_version: 1
|
current_patch_version: 0
|
||||||
date_released: 2018-06-25
|
date_released: 2018-07-06
|
||||||
|
|
||||||
# Either # or the anchor link to latest release notes in the blog post.
|
# Either # or the anchor link to latest release notes in the blog post.
|
||||||
# Must be prefixed with a # and have double quotes around it.
|
# Must be prefixed with a # and have double quotes around it.
|
||||||
# Major release:
|
# Major release:
|
||||||
patch_version_notes: "#release-0721---june-25"
|
patch_version_notes: "#"
|
||||||
# Minor release (Example #release-0431---april-25):
|
# Minor release (Example #release-0431---april-25):
|
||||||
|
|
||||||
# Date we moved to Discourse for comments
|
# Date we moved to Discourse for comments
|
||||||
|
@ -20,19 +20,18 @@ featured: true
|
|||||||
"keyfile": "privkey.pem"
|
"keyfile": "privkey.pem"
|
||||||
},
|
},
|
||||||
"token": "sdfj-2131023-dslfjsd-12321",
|
"token": "sdfj-2131023-dslfjsd-12321",
|
||||||
"domains": ["my-domain.duckdns.org"]
|
"domains": ["my-domain.duckdns.org"],
|
||||||
|
"seconds": 300
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
|
|
||||||
- **lets_encrypt.accept_terms** (*Optional*): If you accept the [Let's Encrypt Subscriber Agreement][le], it will generate and update Let's Encrypt certificates for your DuckDNS domain.
|
- **lets_encrypt.accept_terms** (*Required*): If you accept the [Let's Encrypt Subscriber Agreement](https://letsencrypt.org/repository/), it will generate and update Let's Encrypt certificates for your DuckDNS domain.
|
||||||
- **token** (*Required*): Your Duck DNS API key.
|
- **token** (*Required*): Your Duck DNS API key.
|
||||||
- **domains** (*Required*): A list of domains to update DNS.
|
- **domains** (*Required*): A list of domains to update DNS.
|
||||||
- **seconds** (*Required*): Seconds between updates to Duck DNS.
|
- **seconds** (*Required*): Seconds between updates to Duck DNS.
|
||||||
|
|
||||||
[le]: https://letsencrypt.org/repository/
|
|
||||||
|
|
||||||
## {% linkable_title Home Assistant configuration %}
|
## {% linkable_title Home Assistant configuration %}
|
||||||
|
|
||||||
Use the following configuration in Home Assistant to use the generated certificate:
|
Use the following configuration in Home Assistant to use the generated certificate:
|
||||||
@ -48,7 +47,7 @@ If you use a port other than `8123` or an SSL proxy, change the port number acco
|
|||||||
|
|
||||||
## {% linkable_title Router configuration %}
|
## {% linkable_title Router configuration %}
|
||||||
|
|
||||||
You'll need to forward the port you listed in your configuration (8123 in the example above) on your router to your Home Assistant system. You can find guides on how to do this on [Port Forward](https://portforward.com/) - noting that you'll only need to forward the TCP port.
|
You'll need to forward the port you listed in your configuration (8123 in the example above) on your router to your Home Assistant system. You can find guides on how to do this on [Port Forward](https://portforward.com/). Noting that you'll only need to forward the TCP port.
|
||||||
|
|
||||||
Ensure that you allocate the Home Assistant system a fixed IP on your network before you configure port forwarding. You can do this either on the computer itself (see the [install guide](/hassio/installation/) or via a static lease on your router.
|
Ensure that you allocate the Home Assistant system a fixed IP on your network before you configure port forwarding. You can do this either on the computer itself (see the [install guide](/hassio/installation/) or via a static lease on your router.
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ footer: true
|
|||||||
featured: true
|
featured: true
|
||||||
---
|
---
|
||||||
|
|
||||||
Setting up an [SSH](https://openssh.org/) server allows access to your Hass.io folders with any SSH client. It also includes a command-line tool to access the [Hass.io API](https://github.com/home-assistant/hassio/blob/dev/API.md). Try it out:
|
Setting up an [SSH](https://openssh.com/) server allows access to your Hass.io folders with any SSH client. It also includes a command-line tool to access the [Hass.io API](https://github.com/home-assistant/hassio/blob/dev/API.md). Try it out:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
hassio help
|
hassio help
|
||||||
|
@ -42,11 +42,13 @@ If you set `show_on_map` `True` then the location attributes are named `latitude
|
|||||||
|
|
||||||
The [generic camera platform](/components/camera.mjpeg/) offers the possibility to show the location of the ISS on Google Maps.
|
The [generic camera platform](/components/camera.mjpeg/) offers the possibility to show the location of the ISS on Google Maps.
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
camera:
|
camera:
|
||||||
- platform: generic
|
- platform: generic
|
||||||
name: ISS
|
name: ISS
|
||||||
still_image_url: {% raw %}https://maps.googleapis.com/maps/api/staticmap?center={{ states.binary_sensor.iss.attributes.lat }},{{ states.binary_sensor.iss.attributes.long }}&zoom=5&size=500x500&maptype=roadmap&markers=color:blue%7Clabel:P%7C{{ states.binary_sensor.iss.attributes.lat }},{{ states.binary_sensor.iss.attributes.long }}{% endraw %}
|
still_image_url: http://staticmap.openstreetmap.de/staticmap.php?center={{ states.binary_sensor.iss.attributes.lat }},{{ states.binary_sensor.iss.attributes.long }}&zoom=4&size=865x512&maptype=mapnik&markers={{ states.binary_sensor.iss.attributes.lat }},{{ states.binary_sensor.iss.attributes.long }},lightblue
|
||||||
limit_refetch_to_url_change: true
|
limit_refetch_to_url_change: true
|
||||||
```
|
```
|
||||||
|
{% endraw %}
|
||||||
|
@ -38,7 +38,7 @@ binary_sensor:
|
|||||||
name: device_name
|
name: device_name
|
||||||
```
|
```
|
||||||
|
|
||||||
Do not forget to tweak the configuration variables:
|
Configuration variables:
|
||||||
|
|
||||||
- **automatic_add** (*Optional*): To enable the automatic addition of new binary sensors.
|
- **automatic_add** (*Optional*): To enable the automatic addition of new binary sensors.
|
||||||
- **device_class** (*Optional*): The [type or class of the sensor](/components/binary_sensor/) to set the icon in the frontend.
|
- **device_class** (*Optional*): The [type or class of the sensor](/components/binary_sensor/) to set the icon in the frontend.
|
||||||
@ -48,6 +48,11 @@ Do not forget to tweak the configuration variables:
|
|||||||
This component and the [rfxtrx switch](/components/switch/rfxtrx/) can steal each other's devices when setting the `automatic_add` configuration parameter to `true`. Set `automatic_add` only when you have some devices to add to your installation, otherwise leave it to `False`.
|
This component and the [rfxtrx switch](/components/switch/rfxtrx/) can steal each other's devices when setting the `automatic_add` configuration parameter to `true`. Set `automatic_add` only when you have some devices to add to your installation, otherwise leave it to `False`.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<p class='note warning'>
|
||||||
|
If a device ID consists of only numbers, please make sure to surround it with quotes.
|
||||||
|
This is a known limitation in YAML, because the device ID will be interpreted as a number otherwise.
|
||||||
|
</p>
|
||||||
|
|
||||||
Binary sensors have only two states - "on" and "off". Many door or window opening sensors will send a signal each time the door/window is open or closed. However, depending on their hardware or on their purpose, some sensors are only able to signal their "on" state:
|
Binary sensors have only two states - "on" and "off". Many door or window opening sensors will send a signal each time the door/window is open or closed. However, depending on their hardware or on their purpose, some sensors are only able to signal their "on" state:
|
||||||
|
|
||||||
- Most motion sensors send a signal each time they detect motion. They stay "on" for a few seconds and go back to sleep, ready to signal other motion events. Usually, they do not send a signal when they go back to sleep.
|
- Most motion sensors send a signal each time they detect motion. They stay "on" for a few seconds and go back to sleep, ready to signal other motion events. Usually, they do not send a signal when they go back to sleep.
|
||||||
@ -55,7 +60,6 @@ Binary sensors have only two states - "on" and "off". Many door or window openin
|
|||||||
|
|
||||||
For those devices, use the *off_delay* parameter. It defines a delay after which a device will go back to an "Off" state. That "Off" state will be fired internally by Home Assistant, just as if the device fired it by itself. If a motion sensor can only send signals once every 5 seconds, sets the *off_delay* parameter to *seconds: 5*.
|
For those devices, use the *off_delay* parameter. It defines a delay after which a device will go back to an "Off" state. That "Off" state will be fired internally by Home Assistant, just as if the device fired it by itself. If a motion sensor can only send signals once every 5 seconds, sets the *off_delay* parameter to *seconds: 5*.
|
||||||
|
|
||||||
|
|
||||||
Example configuration:
|
Example configuration:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
@ -83,7 +87,7 @@ Let's try to add a new PT-2262 sensor using the "automatic_add" option and have
|
|||||||
|
|
||||||
Have your sensor trigger the "On" state for the first time. Some messages will appear:
|
Have your sensor trigger the "On" state for the first time. Some messages will appear:
|
||||||
|
|
||||||
```
|
```text
|
||||||
INFO (Thread-6) [homeassistant.components.binary_sensor.rfxtrx] Added binary sensor 0913000022670e013970 (Device_id: 22670e Class: LightingDevice Sub: 0)
|
INFO (Thread-6) [homeassistant.components.binary_sensor.rfxtrx] Added binary sensor 0913000022670e013970 (Device_id: 22670e Class: LightingDevice Sub: 0)
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -91,7 +95,7 @@ Here the sensor has the id *22670e*.
|
|||||||
|
|
||||||
Now have your sensor trigger the "Off" state and look for the following message in the Home Assistant log. You should see that your device has been detected as a *new* device when triggering its "Off" state:
|
Now have your sensor trigger the "Off" state and look for the following message in the Home Assistant log. You should see that your device has been detected as a *new* device when triggering its "Off" state:
|
||||||
|
|
||||||
```
|
```text
|
||||||
INFO (Thread-6) [homeassistant.components.binary_sensor.rfxtrx] Added binary sensor 09130000226707013d70 (Device_id: 226707 Class: LightingDevice Sub: 0)
|
INFO (Thread-6) [homeassistant.components.binary_sensor.rfxtrx] Added binary sensor 09130000226707013d70 (Device_id: 226707 Class: LightingDevice Sub: 0)
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -115,7 +119,7 @@ devices:
|
|||||||
|
|
||||||
The *automatic_add* option makes the rfxtrx binary sensor component calculate and display the configuration options for you in the Home Assistant logs:
|
The *automatic_add* option makes the rfxtrx binary sensor component calculate and display the configuration options for you in the Home Assistant logs:
|
||||||
|
|
||||||
```
|
```text
|
||||||
INFO (Thread-6) [homeassistant.components.rfxtrx] rfxtrx: found possible device 226707 for 22670e with the following configuration:
|
INFO (Thread-6) [homeassistant.components.rfxtrx] rfxtrx: found possible device 226707 for 22670e with the following configuration:
|
||||||
data_bits=4
|
data_bits=4
|
||||||
command_on=0xe
|
command_on=0xe
|
||||||
|
@ -46,7 +46,7 @@ client_id:
|
|||||||
description: Use the value you generated in the Prerequisites stage.
|
description: Use the value you generated in the Prerequisites stage.
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
minimum:
|
client_secret:
|
||||||
description: Use the value you generated in the Prerequisites stage.
|
description: Use the value you generated in the Prerequisites stage.
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
@ -95,7 +95,7 @@ Variables:
|
|||||||
- **track**: (*Required*): Should we create a sensor `True` or ignore it `False`?
|
- **track**: (*Required*): Should we create a sensor `True` or ignore it `False`?
|
||||||
- **search**: (*Optional*): If set will only trigger for matched events.
|
- **search**: (*Optional*): If set will only trigger for matched events.
|
||||||
- **offset**: (*Optional*): A set of characters that precede a number in the event title for designating a pre-trigger state change on the sensor. (Default: `!!`)
|
- **offset**: (*Optional*): A set of characters that precede a number in the event title for designating a pre-trigger state change on the sensor. (Default: `!!`)
|
||||||
- **ignore_availablilty**: (*Optional*): Should we respect `free`/`busy` flags? (Defaults to `true`)
|
- **ignore_availability**: (*Optional*): Should we respect `free`/`busy` flags? (Defaults to `true`)
|
||||||
|
|
||||||
From this we will end up with the binary sensors `calendar.test_unimportant` and `calendar.test_important` which will toggle themselves on/off based on events on the same calendar that match the search value set for each. You'll also have a sensor `calendar.test_everything` that will not filter events out and always show the next event available.
|
From this we will end up with the binary sensors `calendar.test_unimportant` and `calendar.test_important` which will toggle themselves on/off based on events on the same calendar that match the search value set for each. You'll also have a sensor `calendar.test_everything` that will not filter events out and always show the next event available.
|
||||||
|
|
||||||
|
@ -19,8 +19,6 @@ To successfully implement this platform, the Home Assistant host should be capab
|
|||||||
|
|
||||||
## {% linkable_title Preparing the Device %}
|
## {% linkable_title Preparing the Device %}
|
||||||
|
|
||||||
### {% linkable_title Installing Alternative Firmware %}
|
|
||||||
|
|
||||||
In order to integrate the camera with Home Assistant, it is necessary to install a custom firmware on the device. Instructions for doing so can be found for each models.
|
In order to integrate the camera with Home Assistant, it is necessary to install a custom firmware on the device. Instructions for doing so can be found for each models.
|
||||||
|
|
||||||
* [Yi 720p](https://github.com/fritz-smh/yi-hack)
|
* [Yi 720p](https://github.com/fritz-smh/yi-hack)
|
||||||
@ -29,16 +27,16 @@ In order to integrate the camera with Home Assistant, it is necessary to install
|
|||||||
|
|
||||||
Once installed, please ensure that you have enabled FTP.
|
Once installed, please ensure that you have enabled FTP.
|
||||||
|
|
||||||
<p class='note warning'>
|
<p class='note warning'>
|
||||||
Currently, version 0.1.4-beta2 of the custom firmware is the highest supported. Firmwares higher than this version use [Pure-FTPd](https://www.pureftpd.org/project/pure-ftpd), which has a bug that prevents FFmpeg from correctly rendering video files.
|
Currently, version 0.1.4-beta2 of the custom firmware is the highest supported. Firmwares higher than this version use [Pure-FTPd](https://www.pureftpd.org/project/pure-ftpd), which has a bug that prevents FFmpeg from correctly rendering video files.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class='note warning'>
|
<p class='note warning'>
|
||||||
Hassbian users: don't forget to install ffmpeg support on your platform, otherwise, you'll not see video.
|
Hassbian users: Don't forget to install `ffmpeg` support on your platform, otherwise, you'll not see video.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class='note warning'>
|
<p class='note warning'>
|
||||||
The live stream writing by the camera is not an supported format when the hass reads through FTP for Yi 720p and Xiaofang Cameras, so this component retrives the video which was saved 1 minute earlier.
|
The live stream writing by the camera is not an supported format when the hass reads through FTP for Yi 720p and Xiaofang Cameras, so this platform retrives the video which was saved 1 minute earlier.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class='note warning'>
|
<p class='note warning'>
|
||||||
@ -68,6 +66,10 @@ Configuration variables:
|
|||||||
- **username** (*Optional*): The user that can access the FTP server. Defaults to `root`.
|
- **username** (*Optional*): The user that can access the FTP server. Defaults to `root`.
|
||||||
- **ffmpeg_arguments** (*Optional*): Extra options to pass to `ffmpeg` (e.g., image quality or video filter options).
|
- **ffmpeg_arguments** (*Optional*): Extra options to pass to `ffmpeg` (e.g., image quality or video filter options).
|
||||||
|
|
||||||
|
<p class='note'>
|
||||||
|
The default for `path:` will not work with all cameras. It may be needed that you add that key with the exact path for your device.
|
||||||
|
</p>
|
||||||
|
|
||||||
## {% linkable_title Image quality %}
|
## {% linkable_title Image quality %}
|
||||||
|
|
||||||
Any option supported by [`ffmpeg` camera](/components/camera.ffmpeg/) can be utilized via the `ffmpeg_arguments` configuration parameter.
|
Any option supported by [`ffmpeg` camera](/components/camera.ffmpeg/) can be utilized via the `ffmpeg_arguments` configuration parameter.
|
||||||
|
@ -67,3 +67,8 @@ Configuration variables:
|
|||||||
- **automatic_add** (*Optional*): To enable the automatic addition of new covers (Siemens/LightwaveRF only).
|
- **automatic_add** (*Optional*): To enable the automatic addition of new covers (Siemens/LightwaveRF only).
|
||||||
- **signal_repetitions** (*Optional*): Because the rxftrx device sends its actions via radio and from most receivers it's impossible to know if the signal was received or not. Therefore you can configure the roller shutter to try to send each signal repeatedly.
|
- **signal_repetitions** (*Optional*): Because the rxftrx device sends its actions via radio and from most receivers it's impossible to know if the signal was received or not. Therefore you can configure the roller shutter to try to send each signal repeatedly.
|
||||||
- **fire_event** (*Optional*): Fires an event even if the state is the same as before. Can be used for automations.
|
- **fire_event** (*Optional*): Fires an event even if the state is the same as before. Can be used for automations.
|
||||||
|
|
||||||
|
<p class='note warning'>
|
||||||
|
If a device ID consists of only numbers, please make sure to surround it with quotes.
|
||||||
|
This is a known limitation in YAML, because the device ID will be interpreted as a number otherwise.
|
||||||
|
</p>
|
||||||
|
@ -36,7 +36,7 @@ Example JSON you can publish to the topic (e.g., via mqtt.publish service):
|
|||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"topic": "/location/paulus",
|
"topic": "location/paulus",
|
||||||
"payload": "home"
|
"payload": "home"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -34,6 +34,8 @@ The following OID examples pull the current MAC Address table from a router. Thi
|
|||||||
| EdgeRouter | Lite v1.9.0 | `1.3.6.1.2.1.4.22.1.2` |
|
| EdgeRouter | Lite v1.9.0 | `1.3.6.1.2.1.4.22.1.2` |
|
||||||
| Ruckus | ZoneDirector 9.13.3 | `1.3.6.1.4.1.25053.1.2.2.1.1.3.1.1.1.6` |
|
| Ruckus | ZoneDirector 9.13.3 | `1.3.6.1.4.1.25053.1.2.2.1.1.3.1.1.1.6` |
|
||||||
| DD-WRT | unknown RouterOS version/model | `1.3.6.1.2.1.4.22.1.2` |
|
| DD-WRT | unknown RouterOS version/model | `1.3.6.1.2.1.4.22.1.2` |
|
||||||
|
| Apple Airport Express (2nd gen.) | 7.6.9 | `1.3.6.1.2.1.3.1.1.2`
|
||||||
|
`1.3.6.1.2.1.4.22.1.2.16`|
|
||||||
|
|
||||||
To use the SNMP version 1 platform in your installation, add the following to your `configuration.yaml` file:
|
To use the SNMP version 1 platform in your installation, add the following to your `configuration.yaml` file:
|
||||||
|
|
||||||
|
@ -60,3 +60,8 @@ Configuration variables:
|
|||||||
- **automatic_add** (*Optional*): To enable the automatic addition of new lights.
|
- **automatic_add** (*Optional*): To enable the automatic addition of new lights.
|
||||||
- **signal_repetitions** (*Optional*): Because the RFXtrx device sends its actions via radio and from most receivers it's impossible to know if the signal was received or not. Therefore you can configure the switch to try to send each signal repeatedly.
|
- **signal_repetitions** (*Optional*): Because the RFXtrx device sends its actions via radio and from most receivers it's impossible to know if the signal was received or not. Therefore you can configure the switch to try to send each signal repeatedly.
|
||||||
- **fire_event** (*Optional*): Fires an event even if the state is the same as before. Can be used for automations.
|
- **fire_event** (*Optional*): Fires an event even if the state is the same as before. Can be used for automations.
|
||||||
|
|
||||||
|
<p class='note warning'>
|
||||||
|
If a device ID consists of only numbers, please make sure to surround it with quotes.
|
||||||
|
This is a known limitation in YAML, because the device ID will be interpreted as a number otherwise.
|
||||||
|
</p>
|
||||||
|
@ -32,6 +32,7 @@ This component is known to work for:
|
|||||||
- Landis+Gyr ZCF110 / ZM F110 (DSMR 4.2)
|
- Landis+Gyr ZCF110 / ZM F110 (DSMR 4.2)
|
||||||
- Kaifa E0026
|
- Kaifa E0026
|
||||||
- Kamstrup 382JxC (DSMR 2.2)
|
- Kamstrup 382JxC (DSMR 2.2)
|
||||||
|
- Sagemcom XS210 ESMR5
|
||||||
|
|
||||||
USB serial converters:
|
USB serial converters:
|
||||||
|
|
||||||
|
@ -55,7 +55,9 @@ sensor:
|
|||||||
- Humidity
|
- Humidity
|
||||||
- Temperature
|
- Temperature
|
||||||
```
|
```
|
||||||
|
|
||||||
Only these data_type are valid :
|
Only these data_type are valid :
|
||||||
|
|
||||||
- *Temperature*
|
- *Temperature*
|
||||||
- *Humidity*
|
- *Humidity*
|
||||||
- *Barometer*
|
- *Barometer*
|
||||||
@ -93,4 +95,7 @@ Configuration variables:
|
|||||||
- **data_type** (*Optional*): Which data type the sensor should show
|
- **data_type** (*Optional*): Which data type the sensor should show
|
||||||
- **fire_event** (*Optional*): Fires an event even if the state is the same as before. Can be used for automations.
|
- **fire_event** (*Optional*): Fires an event even if the state is the same as before. Can be used for automations.
|
||||||
|
|
||||||
|
<p class='note warning'>
|
||||||
|
If a device ID consists of only numbers, please make sure to surround it with quotes.
|
||||||
|
This is a known limitation in YAML, because the device ID will be interpreted as a number otherwise.
|
||||||
|
</p>
|
||||||
|
@ -31,7 +31,7 @@ Configuration variables:
|
|||||||
- **mac** (*Required*): Device MAC address.
|
- **mac** (*Required*): Device MAC address.
|
||||||
- **timeout** (*Optional*): Timeout in seconds for the connection to the device.
|
- **timeout** (*Optional*): Timeout in seconds for the connection to the device.
|
||||||
- **friendly_name** (*Optional*): The name used to display the switch in the frontend.
|
- **friendly_name** (*Optional*): The name used to display the switch in the frontend.
|
||||||
- **type** (*Required for some models*): Switch type. Choose one from: `rm`, `rm2`, `rm_mini`, `rm_pro_phicomm`, `rm2_home_plus`, `rm2_home_plus_gdt`, `rm2_pro_plus`, `rm2_pro_plus2`, `rm2_pro_plus_bl`, `rm_mini_shate`, `sp1`, `sp2`, `honeywell_sp2`, `sp3`, `spmini2`, `spminiplus` or `mp1`.
|
- **type** (*Required for some models*): Switch type. Choose one from: `rm`, `rm2`, `rm_mini`, `rm_pro_phicomm`, `rm2_home_plus`, `rm2_home_plus_gdt`, `rm2_pro_plus`, `rm2_pro_plus2`, `rm2_pro_plus_bl`, `rm_mini_shate`, `sp1`, `sp2`, `honeywell_sp2`, `sp3`, `spmini2`, `spminiplus` or `mp1`. `SC1` devices can be registered as `sp2`.
|
||||||
- **switches** (*Optional*): The array that contains all switches.
|
- **switches** (*Optional*): The array that contains all switches.
|
||||||
- **identifier** (*Required*): Name of the command switch as slug. Multiple entries are possible.
|
- **identifier** (*Required*): Name of the command switch as slug. Multiple entries are possible.
|
||||||
- **friendly_name** (*Optional*): The name used to display the switch in the frontend.
|
- **friendly_name** (*Optional*): The name used to display the switch in the frontend.
|
||||||
|
@ -54,6 +54,10 @@ Configuration variables:
|
|||||||
This component and the [rfxtrx binary sensor](/components/binary_sensor.rfxtrx/) can steal each other's devices when setting the `automatic_add` configuration parameter to `true`. Set `automatic_add` only when you have some devices to add to your installation, otherwise leave it to `False`.
|
This component and the [rfxtrx binary sensor](/components/binary_sensor.rfxtrx/) can steal each other's devices when setting the `automatic_add` configuration parameter to `true`. Set `automatic_add` only when you have some devices to add to your installation, otherwise leave it to `False`.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<p class='note warning'>
|
||||||
|
If a device ID consists of only numbers, please make sure to surround it with quotes.
|
||||||
|
This is a known limitation in YAML, because the device ID will be interpreted as a number otherwise.
|
||||||
|
</p>
|
||||||
|
|
||||||
Generate codes:
|
Generate codes:
|
||||||
|
|
||||||
@ -101,10 +105,10 @@ switch:
|
|||||||
devices:
|
devices:
|
||||||
0710014c440f0160:
|
0710014c440f0160:
|
||||||
name: Hall
|
name: Hall
|
||||||
0710010244080780:
|
"0710010244080780":
|
||||||
name: Door
|
name: Door
|
||||||
fire_event: true
|
fire_event: true
|
||||||
|
|
||||||
automation:
|
automation:
|
||||||
- alias: Switch light on when door bell rings if sun is below horizon and light was off
|
- alias: Switch light on when door bell rings if sun is below horizon and light was off
|
||||||
trigger:
|
trigger:
|
||||||
@ -145,7 +149,7 @@ scene:
|
|||||||
entities:
|
entities:
|
||||||
switch.light1: on
|
switch.light1: on
|
||||||
switch.light2: on
|
switch.light2: on
|
||||||
|
|
||||||
automation:
|
automation:
|
||||||
- alias: Use remote to enable scene
|
- alias: Use remote to enable scene
|
||||||
trigger:
|
trigger:
|
||||||
|
@ -49,10 +49,10 @@ $ sudo apt-get install python3 python3-venv python3-pip
|
|||||||
```
|
```
|
||||||
|
|
||||||
Add an account for Home Assistant called `homeassistant`.
|
Add an account for Home Assistant called `homeassistant`.
|
||||||
Since this account is only for running Home Assistant the extra arguments of `-rm` is added to create a system account and create a home directory. The arguments `-G dialout` adds the user to the `dialout` group. This is required for using Z-Wave and Zigbee controllers.
|
Since this account is only for running Home Assistant the extra arguments of `-rm` is added to create a system account and create a home directory. The arguments `-G dialout,gpio` adds the user to the `dialout` and the `gpio` group. The first is required for using Z-Wave and Zigbee controllers, while the second is required to communicate with Raspberry's GPIO.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ sudo useradd -rm homeassistant -G dialout
|
$ sudo useradd -rm homeassistant -G dialout,gpio
|
||||||
```
|
```
|
||||||
|
|
||||||
Next we will create a directory for the installation of Home Assistant and change the owner to the `homeassistant` account.
|
Next we will create a directory for the installation of Home Assistant and change the owner to the `homeassistant` account.
|
||||||
|
@ -15,6 +15,8 @@ To run Home Assistant on Microsoft Windows installation you need to install Pyth
|
|||||||
There may be alpha or beta releases of Python listed on that download page (marked by the letters `a` or `b` in the version number. Do not use these versions.
|
There may be alpha or beta releases of Python listed on that download page (marked by the letters `a` or `b` in the version number. Do not use these versions.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
If you use your machine for something other than Home Assistant, you should install it in a [Python virtual environment](#Installing_in_a_Python_virtual_environment).
|
||||||
|
|
||||||
Start
|
Start
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@ -39,3 +41,27 @@ C:\...\> pip3 install --upgrade homeassistant
|
|||||||
```
|
```
|
||||||
|
|
||||||
Then start Home Assistant.
|
Then start Home Assistant.
|
||||||
|
|
||||||
|
## {% linkable_title Installing in a Python virtual environment %}
|
||||||
|
|
||||||
|
Open `cmd.exe` and paste the following commands (one at the time):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
C:\...\> py -m venv homeassistant
|
||||||
|
C:\...\> cd homeassistant
|
||||||
|
C:\...\> Scripts\activate.bat
|
||||||
|
C:\...\> py -m pip install wheel setuptools pip
|
||||||
|
C:\...\> py -m pip install homeassistant
|
||||||
|
C:\...\> hass
|
||||||
|
```
|
||||||
|
|
||||||
|
## {% linkable_title Upgrading in a Python virtual environment %}
|
||||||
|
|
||||||
|
To update Home Assistant, stop it and then open `cmd.exe` and paste the following commands (one at the time):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
C:\...\> cd homeassistant
|
||||||
|
C:\...\> Scripts\activate.bat
|
||||||
|
C:\...\> py -m pip install --upgrade homeassistant
|
||||||
|
```
|
||||||
|
Then start Home Assistant.
|
||||||
|
22
source/_includes/asides/lovelace_navigation.html
Normal file
22
source/_includes/asides/lovelace_navigation.html
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<section class="aside-module grid__item one-whole lap-one-half">
|
||||||
|
<!-- {% include edit_github.html %} -->
|
||||||
|
{% assign cards = site.lovelace | sort: 'title' %}
|
||||||
|
|
||||||
|
<div class='section'>
|
||||||
|
<h1 class="title delta">Lovelace UI</h1>
|
||||||
|
<ul class='divided'>
|
||||||
|
<li><a href='/lovelace/'>Introduction</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='section'>
|
||||||
|
<h1 class="title delta">Cards</h1>
|
||||||
|
<ul class='divided'>
|
||||||
|
{% for card in cards %}
|
||||||
|
<li>
|
||||||
|
<a href='{{card.url}}'>{{ card.sidebar_label }}</a>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</section>
|
@ -4,6 +4,8 @@
|
|||||||
{% include asides/component_navigation.html | compact_newlines %}
|
{% include asides/component_navigation.html | compact_newlines %}
|
||||||
{% elsif url_parts[1] == 'cookbook' %}
|
{% elsif url_parts[1] == 'cookbook' %}
|
||||||
{% include asides/cookbook_navigation.html | compact_newlines %}
|
{% include asides/cookbook_navigation.html | compact_newlines %}
|
||||||
|
{% elsif url_parts[1] == 'lovelace' %}
|
||||||
|
{% include asides/lovelace_navigation.html | compact_newlines %}
|
||||||
{% elsif url_parts[1] == 'developers' or url_parts[1] == 'help' %}
|
{% elsif url_parts[1] == 'developers' or url_parts[1] == 'help' %}
|
||||||
{% include asides/help_navigation.html | compact_newlines %}
|
{% include asides/help_navigation.html | compact_newlines %}
|
||||||
{% elsif url_parts[1] == 'getting-started' %}
|
{% elsif url_parts[1] == 'getting-started' %}
|
||||||
|
26
source/_lovelace/glance.markdown
Normal file
26
source/_lovelace/glance.markdown
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Glance Card"
|
||||||
|
sidebar_label: Glance
|
||||||
|
description: "The Glance card allows you to see a list of entities at a glance."
|
||||||
|
date: 2018-07-01 10:28 +00:00
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
---
|
||||||
|
|
||||||
|
A card that allows you to see see a list of entities at a glance.
|
||||||
|
|
||||||
|
| Name | Type | Default | Description
|
||||||
|
| ---- | ---- | ------- | -----------
|
||||||
|
| type | string | **Required** | `glance`
|
||||||
|
| entities | list | **Required** | Entity id's
|
||||||
|
| title | string | Optional | Card title
|
||||||
|
|
||||||
|
Each entry in the list of entities is either an entity ID or an entity option object. The entity option object can have the following options:
|
||||||
|
|
||||||
|
| Name | Type | Default | Description
|
||||||
|
| ---- | ---- | ------- | -----------
|
||||||
|
| entity | entity id | **Required** | The ID of the entity to show.
|
||||||
|
| title | string | Optional | The title to use instead of the entity name.
|
327
source/_posts/2018-07-06-release-73.markdown
Normal file
327
source/_posts/2018-07-06-release-73.markdown
Normal file
@ -0,0 +1,327 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: "0.73: Preview version new user system, Rachio cloud push and Lovelace goes wild"
|
||||||
|
description: "Summer is here and that means fresh new goodies for all of you."
|
||||||
|
date: 2018-07-06 00:01:00
|
||||||
|
date_formatted: "July 6, 2018"
|
||||||
|
author: Paulus Schoutsen
|
||||||
|
author_twitter: balloob
|
||||||
|
comments: true
|
||||||
|
categories: Release-Notes
|
||||||
|
og_image: /images/blog/2018-07-0.73/lovelace-elements.png
|
||||||
|
---
|
||||||
|
|
||||||
|
Today we're releasing Home Assistant 0.73. First, let's talk security. Home Assistant has a lot of power. It can control all devices in your house and know what you're up to. That's why securing it is very important. It's not good enough to connect your instance unsecured to the internet and hope no one will find it. All ports on all computers are regularly scanned by bad actors. Please read [our guidelines thoroughly](https://www.home-assistant.io/docs/configuration/securing/) and follow them.
|
||||||
|
|
||||||
|
In the meanwhile, we're also working hard on the new authentication system. A preview version is included in this release, more info on [our developer blog](https://developers.home-assistant.io/blog/2018/07/02/trying-new-auth.html).
|
||||||
|
|
||||||
|
This release also includes a TON of love for the new Lovelace UI. Yes, it's still experimental but daaang, it's already so awesome that you should probably just go ahead and try it out. Thanks to all the devs who have jumped on this: [@c727], [@ciotlosm] and [@jeradM].
|
||||||
|
|
||||||
|
We don't have time to go through all the changes in this release, but [@ciotlosm] has been keeping [a very detailed changelog](https://github.com/ciotlosm/docs-lovelace/blob/0.73.0/changelog.md). I'll just leave this screenshot by [@arsaboo] of the new picture-elements card and [the Lovelace configuration](https://github.com/arsaboo/homeassistant-config/blob/master/ui-lovelace.yaml#L15-L158):
|
||||||
|
|
||||||
|
<p class='img'>
|
||||||
|
<img src='/images/blog/2018-07-0.73/lovelace-elements.png' alt='Screenshot of a floorplan with sensor info and light/camera controls overlayed.'>
|
||||||
|
The new picture elements card.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
And last but not least, [@Klikini] has upgraded Rachio support from cloud polling to cloud push! Now you'll be able to get instantly notified of changes to your sprinklers. NICE!
|
||||||
|
|
||||||
|
## {% linkable_title New Platforms %}
|
||||||
|
|
||||||
|
- Support for Homekit Controller climate devices ([@armills] - [#15057]) ([homekit_controller docs]) ([climate.homekit_controller docs]) ([light.homekit_controller docs]) ([switch.homekit_controller docs]) (new-platform)
|
||||||
|
- Rachio webhooks ([@Klikini] - [#15111]) ([rachio docs]) ([binary_sensor.rachio docs]) ([switch.rachio docs]) (beta fix) (new-platform)
|
||||||
|
|
||||||
|
## {% linkable_title If you need help... %}
|
||||||
|
|
||||||
|
...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks.
|
||||||
|
|
||||||
|
## {% linkable_title Reporting Issues %}
|
||||||
|
|
||||||
|
Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template.
|
||||||
|
|
||||||
|
<!--more-->
|
||||||
|
## {% linkable_title Breaking Changes %}
|
||||||
|
|
||||||
|
- Update to hole to 0.3.0 ([@fabaff] - [#15014]) ([sensor.pi_hole docs]) (breaking change)
|
||||||
|
- Update PostNL unit of measure to align with UPS ([@keesschollaart81] - [#15023]) ([sensor.postnl docs]) (breaking change)
|
||||||
|
- Make Pollen.com platform async ([@bachya] - [#14963]) ([sensor.pollen docs]) (breaking change)
|
||||||
|
- Adding 'namespace' for prometheus metrics ([@alexbarcelo] - [#13738]) ([prometheus docs]) (breaking change)
|
||||||
|
- Fix zwave climate operation mode mappings ([@cdce8p] - [#15162]) ([climate.zwave docs]) (breaking change)
|
||||||
|
- X-Forwarded-For improvements and bug fixes ([@colinodell] - [#15204]) ([emulated_hue docs]) ([http docs]) (breaking change)
|
||||||
|
- Stop supporting deprecated TLS ciphers ([@hmmbob] - [#15217]) ([http docs]) (breaking change)
|
||||||
|
|
||||||
|
## {% linkable_title Beta Fixes %}
|
||||||
|
|
||||||
|
- Rachio webhooks ([@Klikini] - [#15111]) ([rachio docs]) ([binary_sensor.rachio docs]) ([switch.rachio docs]) (beta fix) (new-platform)
|
||||||
|
- Only create front-end client_id once ([@awarecan] - [#15214]) ([frontend docs]) (beta fix)
|
||||||
|
- Make LIFX color/temperature attributes mutually exclusive ([@amelchio] - [#15234]) ([light.lifx docs]) (beta fix)
|
||||||
|
- Fix an issue when user's nest developer account don't have permission ([@awarecan] - [#15237]) ([binary_sensor.nest docs]) (beta fix)
|
||||||
|
- Revert some changes to setup.py ([@cdce8p] - [#15248]) (beta fix)
|
||||||
|
|
||||||
|
## {% linkable_title All changes %}
|
||||||
|
|
||||||
|
- Add entity support to Waze Travel Time ([@Petro31] - [#14934]) ([sensor.waze_travel_time docs])
|
||||||
|
- Switch to own packaged version of anel_pwrctrl ([@andrey-git] - [#15011]) ([switch.anel_pwrctrl docs])
|
||||||
|
- Switch to own packaged version of braviarc ([@andrey-git] - [#15009]) ([media_player.braviatv docs])
|
||||||
|
- HomeKit style clean up ([@schmittx] - [#14793]) ([homekit docs])
|
||||||
|
- Upgrade netdisco to 1.5.0 ([@fabaff] - [#15016])
|
||||||
|
- Update to hole to 0.3.0 ([@fabaff] - [#15014]) ([sensor.pi_hole docs]) (breaking change)
|
||||||
|
- Upgrade numpy to 1.14.5 ([@fabaff] - [#15015]) ([binary_sensor.trend docs]) ([image_processing.opencv docs])
|
||||||
|
- Upgrade youtube_dl to 2018.06.14 ([@fabaff] - [#15013]) ([media_extractor docs])
|
||||||
|
- Switch nuimo to a hopefully working pypi version ([@andrey-git] - [#15006]) ([nuimo_controller docs])
|
||||||
|
- Remove typing ([@fabaff] - [#15018])
|
||||||
|
- Add support for Homekit battery service ([@schmittx] - [#14288]) ([homekit docs])
|
||||||
|
- Update PostNL unit of measure to align with UPS ([@keesschollaart81] - [#15023]) ([sensor.postnl docs]) (breaking change)
|
||||||
|
- Expose Wemo component availability to home assistant ([@gstorer] - [#14995]) ([light.wemo docs])
|
||||||
|
- Improve volume support for Vizio Smartcast ([@JeffLIrion] - [#14981]) ([media_player.vizio docs])
|
||||||
|
- Upgrade requests to 2.19.1 ([@fabaff] - [#15019])
|
||||||
|
- Show running apps as sources for Fire TV ([@JeffLIrion] - [#15033]) ([media_player.firetv docs])
|
||||||
|
- Patch save_json ([@Hate-Usernames] - [#15046])
|
||||||
|
- Update loopenergy link to docs ([@fabaff] - [#15050]) ([sensor.loopenergy docs])
|
||||||
|
- Switch upstream adafruit package ([@andrey-git] - [#15038]) ([sensor.dht docs])
|
||||||
|
- Switch to own packaged version of pyflic ([@andrey-git] - [#15041]) ([binary_sensor.flic docs])
|
||||||
|
- Update condition.py ([@raoulteeuwen] - [#15021])
|
||||||
|
- Update pywemo to version 0.4.28. ([@gstorer] - [#15052]) ([wemo docs])
|
||||||
|
- Upgrade pyarlo to 0.1.8 to support Arlo Baby monitor ([@tchellomello] - [#15060]) ([arlo docs])
|
||||||
|
- Upgraded librouteros since it has support for authenticatoin in new RouterOS. ([@dejx] - [#15056]) ([device_tracker docs])
|
||||||
|
- Python wink update ([@w1ll1am23] - [#15048]) ([wink docs]) ([cover.wink docs])
|
||||||
|
- Fix tplink max/min kelvin for temperature adjustment ([@titilambert] - [#15020]) ([light.tplink docs])
|
||||||
|
- Update pyhomematic to 0.1.44 ([@danielperna84] - [#15069]) ([homematic docs])
|
||||||
|
- Homematic: Add optional port for resolvenames via JSON ([@hanzoh] - [#15029]) ([homematic docs])
|
||||||
|
- Add script to run monkeytype typing on test suite ([@MartinHjelmare] - [#14440])
|
||||||
|
- Switch to pypi version of pybotvac ([@andrey-git] - [#15115]) ([neato docs])
|
||||||
|
- Added attribute attribution to Digital Ocean component ([@tchellomello] - [#15114]) ([digital_ocean docs]) ([binary_sensor.digital_ocean docs]) ([switch.digital_ocean docs])
|
||||||
|
- Make Pollen.com platform async ([@bachya] - [#14963]) ([sensor.pollen docs]) (breaking change)
|
||||||
|
- deCONZ small improvements ([@Kane610] - [#15128]) ([deconz docs]) ([light.deconz docs])
|
||||||
|
- Bump insteonplm version to 0.11.2 ([@teharris1] - [#15133]) ([insteon_plm docs])
|
||||||
|
- Reorganize mysensors ([@MartinHjelmare] - [#15123])
|
||||||
|
- MQTT Alarm Control Panel: add retain option for publishing for cases... ([@b3nj1] - [#15134]) ([alarm_control_panel.mqtt docs])
|
||||||
|
- Add discovery support to mqtt climate component. ([@dreizehnelf] - [#15085]) ([mqtt docs]) ([climate.mqtt docs])
|
||||||
|
- Support for Homekit Controller climate devices ([@armills] - [#15057]) ([homekit_controller docs]) ([climate.homekit_controller docs]) ([light.homekit_controller docs]) ([switch.homekit_controller docs]) (new-platform)
|
||||||
|
- PyPi: Fix description and setup.cfg ([@cdce8p] - [#15107])
|
||||||
|
- Add language to dark sky weather component ([@pvizeli] - [#15130]) ([weather.darksky docs])
|
||||||
|
- Add storage helper and migrate config entries ([@balloob] - [#15045]) ([sensor.fitbit docs])
|
||||||
|
- Fix pylintrc section order and option placements ([@scop] - [#15120])
|
||||||
|
- Fix #14919. Should throw exception when camera stream closed by frontend ([@awarecan] - [#15028]) ([camera docs]) ([camera.proxy docs])
|
||||||
|
- Revert "Add language to dark sky weather component" ([@pvizeli] - [#15142]) ([weather.darksky docs])
|
||||||
|
- Lint cleanup ([@scop] - [#15103])
|
||||||
|
- Update aiofreepybox to fix HTTPS connection issues ([@stilllman] - [#15104]) ([device_tracker docs])
|
||||||
|
- Fix mysensors climate supported features ([@MartinHjelmare] - [#15110]) ([climate.mysensors docs])
|
||||||
|
- Update xiaomi.py ([@vaidyasr] - [#15136]) ([camera.xiaomi docs])
|
||||||
|
- Return None to indicate no config found ([@balloob] - [#15147])
|
||||||
|
- Add channel changing support to SamsungTV component ([@mlebrun] - [#14451]) ([media_player.samsungtv docs])
|
||||||
|
- Add SSL peer certificate support to HTTP server ([@kepten] - [#15043]) ([emulated_hue docs]) ([http docs])
|
||||||
|
- Address inconsistent behavior on flux_led component ([@oblogic7] - [#14713]) ([light.flux_led docs])
|
||||||
|
- Upgrade youtube_dl to 2018.06.25 ([@fabaff] - [#15168]) ([media_extractor docs])
|
||||||
|
- Upgrade keyring to 13.0.0 ([@fabaff] - [#15167])
|
||||||
|
- Upgrade sendgrid to 5.4.1 ([@fabaff] - [#15166]) ([notify docs])
|
||||||
|
- Add Mini remote support to insteon_plm ([@teharris1] - [#15152]) ([insteon_plm docs])
|
||||||
|
- Warn when using custom components ([@balloob] - [#15172])
|
||||||
|
- Philips Hue Scene Activation: Simplified scene lookup logic, improved error handling ([@MizterB] - [#15175]) ([hue docs])
|
||||||
|
- Finalize BotVac D7 Support And Further Reduce Cloud Calls ([@dshokouhi] - [#15161]) ([neato docs]) ([camera.neato docs]) ([switch.neato docs]) ([vacuum.neato docs])
|
||||||
|
- DarkSky weather / Fix states ([@pvizeli] - [#15174]) ([weather.darksky docs])
|
||||||
|
- Only use the X-Forwarded-For header if connection is from a trusted network ([@colinodell] - [#15182]) ([http docs])
|
||||||
|
- Adding 'namespace' for prometheus metrics ([@alexbarcelo] - [#13738]) ([prometheus docs]) (breaking change)
|
||||||
|
- Storage auth ([@balloob] - [#15192])
|
||||||
|
- Make sure we check access token expiration ([@balloob] - [#15207]) ([frontend docs])
|
||||||
|
- Migrate home assistant auth provider to use storage helper ([@balloob] - [#15200])
|
||||||
|
- Fix zwave climate operation mode mappings ([@cdce8p] - [#15162]) ([climate.zwave docs]) (breaking change)
|
||||||
|
- Fixed Indentation error ([@vaidyasr] - [#15210]) ([camera.xiaomi docs])
|
||||||
|
- X-Forwarded-For improvements and bug fixes ([@colinodell] - [#15204]) ([emulated_hue docs]) ([http docs]) (breaking change)
|
||||||
|
- Stop supporting deprecated TLS ciphers ([@hmmbob] - [#15217]) ([http docs]) (breaking change)
|
||||||
|
- Update eternalegypt ([@amelchio] - [#15180]) ([netgear_lte docs]) ([notify docs])
|
||||||
|
- Update python-wink to 1.9.1 ([@vickyg3] - [#15215]) ([wink docs])
|
||||||
|
- Fix 'AirQualityMonitorStatus' object has no attribute ‘time_state’ ([@syssi] - [#15216]) ([sensor.xiaomi_miio docs])
|
||||||
|
- Use cached states for neato when possible ([@dshokouhi] - [#15218]) ([switch.neato docs]) ([vacuum.neato docs])
|
||||||
|
- Rachio webhooks ([@Klikini] - [#15111]) ([rachio docs]) ([binary_sensor.rachio docs]) ([switch.rachio docs]) (beta fix) (new-platform)
|
||||||
|
- Only create front-end client_id once ([@awarecan] - [#15214]) ([frontend docs]) (beta fix)
|
||||||
|
- Make LIFX color/temperature attributes mutually exclusive ([@amelchio] - [#15234]) ([light.lifx docs]) (beta fix)
|
||||||
|
- Fix an issue when user's nest developer account don't have permission ([@awarecan] - [#15237]) ([binary_sensor.nest docs]) (beta fix)
|
||||||
|
- Revert some changes to setup.py ([@cdce8p] - [#15248]) (beta fix)
|
||||||
|
|
||||||
|
[#13738]: https://github.com/home-assistant/home-assistant/pull/13738
|
||||||
|
[#14288]: https://github.com/home-assistant/home-assistant/pull/14288
|
||||||
|
[#14440]: https://github.com/home-assistant/home-assistant/pull/14440
|
||||||
|
[#14451]: https://github.com/home-assistant/home-assistant/pull/14451
|
||||||
|
[#14713]: https://github.com/home-assistant/home-assistant/pull/14713
|
||||||
|
[#14793]: https://github.com/home-assistant/home-assistant/pull/14793
|
||||||
|
[#14934]: https://github.com/home-assistant/home-assistant/pull/14934
|
||||||
|
[#14963]: https://github.com/home-assistant/home-assistant/pull/14963
|
||||||
|
[#14981]: https://github.com/home-assistant/home-assistant/pull/14981
|
||||||
|
[#14995]: https://github.com/home-assistant/home-assistant/pull/14995
|
||||||
|
[#15006]: https://github.com/home-assistant/home-assistant/pull/15006
|
||||||
|
[#15009]: https://github.com/home-assistant/home-assistant/pull/15009
|
||||||
|
[#15011]: https://github.com/home-assistant/home-assistant/pull/15011
|
||||||
|
[#15013]: https://github.com/home-assistant/home-assistant/pull/15013
|
||||||
|
[#15014]: https://github.com/home-assistant/home-assistant/pull/15014
|
||||||
|
[#15015]: https://github.com/home-assistant/home-assistant/pull/15015
|
||||||
|
[#15016]: https://github.com/home-assistant/home-assistant/pull/15016
|
||||||
|
[#15018]: https://github.com/home-assistant/home-assistant/pull/15018
|
||||||
|
[#15019]: https://github.com/home-assistant/home-assistant/pull/15019
|
||||||
|
[#15020]: https://github.com/home-assistant/home-assistant/pull/15020
|
||||||
|
[#15021]: https://github.com/home-assistant/home-assistant/pull/15021
|
||||||
|
[#15023]: https://github.com/home-assistant/home-assistant/pull/15023
|
||||||
|
[#15028]: https://github.com/home-assistant/home-assistant/pull/15028
|
||||||
|
[#15029]: https://github.com/home-assistant/home-assistant/pull/15029
|
||||||
|
[#15033]: https://github.com/home-assistant/home-assistant/pull/15033
|
||||||
|
[#15038]: https://github.com/home-assistant/home-assistant/pull/15038
|
||||||
|
[#15041]: https://github.com/home-assistant/home-assistant/pull/15041
|
||||||
|
[#15043]: https://github.com/home-assistant/home-assistant/pull/15043
|
||||||
|
[#15045]: https://github.com/home-assistant/home-assistant/pull/15045
|
||||||
|
[#15046]: https://github.com/home-assistant/home-assistant/pull/15046
|
||||||
|
[#15048]: https://github.com/home-assistant/home-assistant/pull/15048
|
||||||
|
[#15050]: https://github.com/home-assistant/home-assistant/pull/15050
|
||||||
|
[#15052]: https://github.com/home-assistant/home-assistant/pull/15052
|
||||||
|
[#15056]: https://github.com/home-assistant/home-assistant/pull/15056
|
||||||
|
[#15057]: https://github.com/home-assistant/home-assistant/pull/15057
|
||||||
|
[#15060]: https://github.com/home-assistant/home-assistant/pull/15060
|
||||||
|
[#15069]: https://github.com/home-assistant/home-assistant/pull/15069
|
||||||
|
[#15085]: https://github.com/home-assistant/home-assistant/pull/15085
|
||||||
|
[#15103]: https://github.com/home-assistant/home-assistant/pull/15103
|
||||||
|
[#15104]: https://github.com/home-assistant/home-assistant/pull/15104
|
||||||
|
[#15107]: https://github.com/home-assistant/home-assistant/pull/15107
|
||||||
|
[#15110]: https://github.com/home-assistant/home-assistant/pull/15110
|
||||||
|
[#15111]: https://github.com/home-assistant/home-assistant/pull/15111
|
||||||
|
[#15114]: https://github.com/home-assistant/home-assistant/pull/15114
|
||||||
|
[#15115]: https://github.com/home-assistant/home-assistant/pull/15115
|
||||||
|
[#15120]: https://github.com/home-assistant/home-assistant/pull/15120
|
||||||
|
[#15123]: https://github.com/home-assistant/home-assistant/pull/15123
|
||||||
|
[#15128]: https://github.com/home-assistant/home-assistant/pull/15128
|
||||||
|
[#15130]: https://github.com/home-assistant/home-assistant/pull/15130
|
||||||
|
[#15133]: https://github.com/home-assistant/home-assistant/pull/15133
|
||||||
|
[#15134]: https://github.com/home-assistant/home-assistant/pull/15134
|
||||||
|
[#15136]: https://github.com/home-assistant/home-assistant/pull/15136
|
||||||
|
[#15142]: https://github.com/home-assistant/home-assistant/pull/15142
|
||||||
|
[#15147]: https://github.com/home-assistant/home-assistant/pull/15147
|
||||||
|
[#15152]: https://github.com/home-assistant/home-assistant/pull/15152
|
||||||
|
[#15161]: https://github.com/home-assistant/home-assistant/pull/15161
|
||||||
|
[#15162]: https://github.com/home-assistant/home-assistant/pull/15162
|
||||||
|
[#15166]: https://github.com/home-assistant/home-assistant/pull/15166
|
||||||
|
[#15167]: https://github.com/home-assistant/home-assistant/pull/15167
|
||||||
|
[#15168]: https://github.com/home-assistant/home-assistant/pull/15168
|
||||||
|
[#15172]: https://github.com/home-assistant/home-assistant/pull/15172
|
||||||
|
[#15174]: https://github.com/home-assistant/home-assistant/pull/15174
|
||||||
|
[#15175]: https://github.com/home-assistant/home-assistant/pull/15175
|
||||||
|
[#15180]: https://github.com/home-assistant/home-assistant/pull/15180
|
||||||
|
[#15182]: https://github.com/home-assistant/home-assistant/pull/15182
|
||||||
|
[#15192]: https://github.com/home-assistant/home-assistant/pull/15192
|
||||||
|
[#15200]: https://github.com/home-assistant/home-assistant/pull/15200
|
||||||
|
[#15204]: https://github.com/home-assistant/home-assistant/pull/15204
|
||||||
|
[#15207]: https://github.com/home-assistant/home-assistant/pull/15207
|
||||||
|
[#15210]: https://github.com/home-assistant/home-assistant/pull/15210
|
||||||
|
[#15214]: https://github.com/home-assistant/home-assistant/pull/15214
|
||||||
|
[#15215]: https://github.com/home-assistant/home-assistant/pull/15215
|
||||||
|
[#15216]: https://github.com/home-assistant/home-assistant/pull/15216
|
||||||
|
[#15217]: https://github.com/home-assistant/home-assistant/pull/15217
|
||||||
|
[#15218]: https://github.com/home-assistant/home-assistant/pull/15218
|
||||||
|
[#15234]: https://github.com/home-assistant/home-assistant/pull/15234
|
||||||
|
[#15237]: https://github.com/home-assistant/home-assistant/pull/15237
|
||||||
|
[#15248]: https://github.com/home-assistant/home-assistant/pull/15248
|
||||||
|
[@ciotlosm]: https://github.com/ciotlosm
|
||||||
|
[@jeradM]: https://github.com/jeradM
|
||||||
|
[@c727]: https://github.com/c727
|
||||||
|
[@arsaboo]: https://github.com/arsaboo
|
||||||
|
[@Hate-Usernames]: https://github.com/Hate-Usernames
|
||||||
|
[@JeffLIrion]: https://github.com/JeffLIrion
|
||||||
|
[@Kane610]: https://github.com/Kane610
|
||||||
|
[@Klikini]: https://github.com/Klikini
|
||||||
|
[@MartinHjelmare]: https://github.com/MartinHjelmare
|
||||||
|
[@MizterB]: https://github.com/MizterB
|
||||||
|
[@Petro31]: https://github.com/Petro31
|
||||||
|
[@alexbarcelo]: https://github.com/alexbarcelo
|
||||||
|
[@amelchio]: https://github.com/amelchio
|
||||||
|
[@andrey-git]: https://github.com/andrey-git
|
||||||
|
[@armills]: https://github.com/armills
|
||||||
|
[@awarecan]: https://github.com/awarecan
|
||||||
|
[@b3nj1]: https://github.com/b3nj1
|
||||||
|
[@bachya]: https://github.com/bachya
|
||||||
|
[@balloob]: https://github.com/balloob
|
||||||
|
[@cdce8p]: https://github.com/cdce8p
|
||||||
|
[@colinodell]: https://github.com/colinodell
|
||||||
|
[@danielperna84]: https://github.com/danielperna84
|
||||||
|
[@dejx]: https://github.com/dejx
|
||||||
|
[@dreizehnelf]: https://github.com/dreizehnelf
|
||||||
|
[@dshokouhi]: https://github.com/dshokouhi
|
||||||
|
[@fabaff]: https://github.com/fabaff
|
||||||
|
[@gstorer]: https://github.com/gstorer
|
||||||
|
[@hanzoh]: https://github.com/hanzoh
|
||||||
|
[@hmmbob]: https://github.com/hmmbob
|
||||||
|
[@keesschollaart81]: https://github.com/keesschollaart81
|
||||||
|
[@kepten]: https://github.com/kepten
|
||||||
|
[@mlebrun]: https://github.com/mlebrun
|
||||||
|
[@oblogic7]: https://github.com/oblogic7
|
||||||
|
[@pvizeli]: https://github.com/pvizeli
|
||||||
|
[@raoulteeuwen]: https://github.com/raoulteeuwen
|
||||||
|
[@schmittx]: https://github.com/schmittx
|
||||||
|
[@scop]: https://github.com/scop
|
||||||
|
[@stilllman]: https://github.com/stilllman
|
||||||
|
[@syssi]: https://github.com/syssi
|
||||||
|
[@tchellomello]: https://github.com/tchellomello
|
||||||
|
[@teharris1]: https://github.com/teharris1
|
||||||
|
[@titilambert]: https://github.com/titilambert
|
||||||
|
[@vaidyasr]: https://github.com/vaidyasr
|
||||||
|
[@vickyg3]: https://github.com/vickyg3
|
||||||
|
[@w1ll1am23]: https://github.com/w1ll1am23
|
||||||
|
[alarm_control_panel.mqtt docs]: /components/alarm_control_panel.mqtt/
|
||||||
|
[arlo docs]: /components/arlo/
|
||||||
|
[binary_sensor.digital_ocean docs]: /components/binary_sensor.digital_ocean/
|
||||||
|
[binary_sensor.flic docs]: /components/binary_sensor.flic/
|
||||||
|
[binary_sensor.nest docs]: /components/binary_sensor.nest/
|
||||||
|
[binary_sensor.rachio docs]: /components/binary_sensor.rachio/
|
||||||
|
[binary_sensor.trend docs]: /components/binary_sensor.trend/
|
||||||
|
[camera docs]: /components/camera/
|
||||||
|
[camera.neato docs]: /components/camera.neato/
|
||||||
|
[camera.proxy docs]: /components/camera.proxy/
|
||||||
|
[camera.xiaomi docs]: /components/camera.xiaomi/
|
||||||
|
[climate.homekit_controller docs]: /components/climate.homekit_controller/
|
||||||
|
[climate.mqtt docs]: /components/climate.mqtt/
|
||||||
|
[climate.mysensors docs]: /components/climate.mysensors/
|
||||||
|
[climate.zwave docs]: /components/climate.zwave/
|
||||||
|
[cover.wink docs]: /components/cover.wink/
|
||||||
|
[deconz docs]: /components/deconz/
|
||||||
|
[device_tracker docs]: /components/device_tracker/
|
||||||
|
[digital_ocean docs]: /components/digital_ocean/
|
||||||
|
[emulated_hue docs]: /components/emulated_hue/
|
||||||
|
[frontend docs]: /components/frontend/
|
||||||
|
[homekit docs]: /components/homekit/
|
||||||
|
[homekit_controller docs]: /components/homekit_controller/
|
||||||
|
[homematic docs]: /components/homematic/
|
||||||
|
[http docs]: /components/http/
|
||||||
|
[hue docs]: /components/hue/
|
||||||
|
[image_processing.opencv docs]: /components/image_processing.opencv/
|
||||||
|
[insteon_plm docs]: /components/insteon_plm/
|
||||||
|
[light.deconz docs]: /components/light.deconz/
|
||||||
|
[light.flux_led docs]: /components/light.flux_led/
|
||||||
|
[light.homekit_controller docs]: /components/light.homekit_controller/
|
||||||
|
[light.lifx docs]: /components/light.lifx/
|
||||||
|
[light.tplink docs]: /components/light.tplink/
|
||||||
|
[light.wemo docs]: /components/light.wemo/
|
||||||
|
[media_extractor docs]: /components/media_extractor/
|
||||||
|
[media_player.braviatv docs]: /components/media_player.braviatv/
|
||||||
|
[media_player.firetv docs]: /components/media_player.firetv/
|
||||||
|
[media_player.samsungtv docs]: /components/media_player.samsungtv/
|
||||||
|
[media_player.vizio docs]: /components/media_player.vizio/
|
||||||
|
[mqtt docs]: /components/mqtt/
|
||||||
|
[neato docs]: /components/neato/
|
||||||
|
[netgear_lte docs]: /components/netgear_lte/
|
||||||
|
[notify docs]: /components/notify/
|
||||||
|
[nuimo_controller docs]: /components/nuimo_controller/
|
||||||
|
[prometheus docs]: /components/prometheus/
|
||||||
|
[rachio docs]: /components/rachio/
|
||||||
|
[sensor.dht docs]: /components/sensor.dht/
|
||||||
|
[sensor.fitbit docs]: /components/sensor.fitbit/
|
||||||
|
[sensor.loopenergy docs]: /components/sensor.loopenergy/
|
||||||
|
[sensor.pi_hole docs]: /components/sensor.pi_hole/
|
||||||
|
[sensor.pollen docs]: /components/sensor.pollen/
|
||||||
|
[sensor.postnl docs]: /components/sensor.postnl/
|
||||||
|
[sensor.waze_travel_time docs]: /components/sensor.waze_travel_time/
|
||||||
|
[sensor.xiaomi_miio docs]: /components/sensor.xiaomi_miio/
|
||||||
|
[switch.anel_pwrctrl docs]: /components/switch.anel_pwrctrl/
|
||||||
|
[switch.digital_ocean docs]: /components/switch.digital_ocean/
|
||||||
|
[switch.homekit_controller docs]: /components/switch.homekit_controller/
|
||||||
|
[switch.neato docs]: /components/switch.neato/
|
||||||
|
[switch.rachio docs]: /components/switch.rachio/
|
||||||
|
[vacuum.neato docs]: /components/vacuum.neato/
|
||||||
|
[weather.darksky docs]: /components/weather.darksky/
|
||||||
|
[wemo docs]: /components/wemo/
|
||||||
|
[wink docs]: /components/wink/
|
@ -9,7 +9,6 @@ sharing: true
|
|||||||
footer: true
|
footer: true
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
<p class='note'>
|
<p class='note'>
|
||||||
The minimum supported version of Home Assistant is 0.65.6.
|
The minimum supported version of Home Assistant is 0.65.6.
|
||||||
</p>
|
</p>
|
||||||
@ -19,8 +18,10 @@ The Google Assistant integration allows users to control the entities via the Ho
|
|||||||
To use this integration, you need to have:
|
To use this integration, you need to have:
|
||||||
|
|
||||||
- The cloud component set up. [Learn more](/components/cloud/)
|
- The cloud component set up. [Learn more](/components/cloud/)
|
||||||
- A Google Assistant enabled device like the Google Home
|
- A Google Assistant enabled device like the Google Home or a mobile phone running Google Assistant.
|
||||||
- Activated the Home Assistant Smart Home skill for Google Assistant by using the Google Home app, select *Home control*, and then add *hass.io* using the *Add devices* option.
|
- Activated the Home Assistant Smart Home skill for Google Assistant.
|
||||||
|
- If you have a Google Home device, use the Google Home app, select *Home control*, and then add *hass.io* using the *Add devices* option.
|
||||||
|
- If you only have a mobile phone, launch Google Assistant, select the three dots menu. Under *Settings* you'll find *Home Control*. There you can add *hass.io* using the *Add devices* option.
|
||||||
|
|
||||||
You can use `configuration.yaml` to configure the entities that are being shown to Google Assistant and how they are exposed.
|
You can use `configuration.yaml` to configure the entities that are being shown to Google Assistant and how they are exposed.
|
||||||
|
|
||||||
@ -73,7 +74,7 @@ google_actions:
|
|||||||
required: false
|
required: false
|
||||||
type: list
|
type: list
|
||||||
entity_config:
|
entity_config:
|
||||||
description: Entity specific configuration for Google Assistant
|
description: Entity specific configuration for Google Assistant.
|
||||||
required: false
|
required: false
|
||||||
type: map
|
type: map
|
||||||
keys:
|
keys:
|
||||||
@ -83,11 +84,11 @@ google_actions:
|
|||||||
type: map
|
type: map
|
||||||
keys:
|
keys:
|
||||||
name:
|
name:
|
||||||
description: Name of entity to show in Google Assistant
|
description: Name of entity to show in Google Assistant.
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
aliases:
|
aliases:
|
||||||
description: Aliases that can also be used to refer to this entity
|
description: Aliases that can also be used to refer to this entity.
|
||||||
required: false
|
required: false
|
||||||
type: list
|
type: list
|
||||||
room:
|
room:
|
||||||
|
@ -9,119 +9,6 @@ sharing: true
|
|||||||
footer: true
|
footer: true
|
||||||
---
|
---
|
||||||
|
|
||||||
For a platform or component page, the fastest way is to make a copy of an existing page and edit it. The [Component overview](/components/) and the [Examples section](/cookbook/) are generated automatically, so there is no need to add a link to those pages.
|
<script>
|
||||||
|
window.location = 'https://developers.home-assistant.io/docs/en/documentation_create_page.html';
|
||||||
Please honor the [Standards](/developers/documentation/standards/) we have for the documentation.
|
</script>
|
||||||
|
|
||||||
If you start from scratch with a page, you need to add a header. Different sections of the documentation may need different headers.
|
|
||||||
|
|
||||||
```text
|
|
||||||
---
|
|
||||||
layout: page
|
|
||||||
title: "Awesome Sensor"
|
|
||||||
description: "home-assistant.io web presence"
|
|
||||||
date: 2015-06-17 08:00
|
|
||||||
sidebar: true
|
|
||||||
comments: false
|
|
||||||
sharing: true
|
|
||||||
footer: true
|
|
||||||
ha_release: "0.38"
|
|
||||||
ha_category: Sensor
|
|
||||||
---
|
|
||||||
|
|
||||||
Content...Written in markdown.
|
|
||||||
|
|
||||||
{% raw %}### {% linkable_title Linkable Header %}{% endraw %}
|
|
||||||
...
|
|
||||||
```
|
|
||||||
|
|
||||||
There are [pre-definied variables](https://jekyllrb.com/docs/variables/) available but usually, it's not necessary to use them when writing documentation.
|
|
||||||
|
|
||||||
A couple of points to remember:
|
|
||||||
|
|
||||||
- Document the needed steps to retrieve API keys or access token for the third party service or device if needed.
|
|
||||||
- If you're adding a new component, for the `ha_release` part of the header, just increment of the current release. If the current release is 0.37, make `ha_release` 0.38. If it's 0.30 or 0.40 please quote it with `" "`.
|
|
||||||
- `ha_category:` is needed to list the platform or component in the appropriate category on the website.
|
|
||||||
|
|
||||||
### {% linkable_title Configuration %}
|
|
||||||
|
|
||||||
Every platform page should contain a configuration sample. This sample must contain only the **required** variables to make it easy to copy and paste it for users into their `configuration.yaml` file.
|
|
||||||
|
|
||||||
The **Configuration Variables** section must use the {% raw %}`{% configuration %} ... {% endconfiguration %}`{% endraw %} tag.
|
|
||||||
|
|
||||||
{% raw %}
|
|
||||||
```text
|
|
||||||
{% configuration %}
|
|
||||||
api_key:
|
|
||||||
description: The API key to access the service.
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
name:
|
|
||||||
description: Name to use in the frontend.
|
|
||||||
required: false
|
|
||||||
default: The default name to use in the frontend.
|
|
||||||
type: string
|
|
||||||
monitored_conditions:
|
|
||||||
description: Conditions to display in the frontend.
|
|
||||||
required: true
|
|
||||||
type: list
|
|
||||||
keys:
|
|
||||||
weather:
|
|
||||||
description: A human-readable text summary.
|
|
||||||
temperature:
|
|
||||||
description: The current temperature.
|
|
||||||
{% endconfiguration %}
|
|
||||||
|
|
||||||
```
|
|
||||||
{% endraw %}
|
|
||||||
|
|
||||||
Available keys:
|
|
||||||
|
|
||||||
- **`description:`**: That the variable is about.
|
|
||||||
- **`required:`**: If the variable is required.
|
|
||||||
```text
|
|
||||||
required: true #=> Required
|
|
||||||
required: false #=> Optional
|
|
||||||
required: inclusive #=> Inclusive
|
|
||||||
required: exclusive #=> Exclusive
|
|
||||||
required: any string here #=> Any string here
|
|
||||||
```
|
|
||||||
- **`type:`**: The type of the variable. Allowed entries: `string`, `int`, `time`, `template` or `map`. For multiple possibilities use `[string, int]`. If you use `map` then you need to define `keys:` (see the [`template` sensor](/components/sensor.template/) for an example).
|
|
||||||
- **`default:`**: The default value for the variable.
|
|
||||||
|
|
||||||
### {% linkable_title Embedding Code %}
|
|
||||||
|
|
||||||
You can use the [default markdown syntax](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) to generate syntax highlighted code. For inline code wrap your code in {% raw %}`{% endraw %}.
|
|
||||||
|
|
||||||
When you're writing code that is to be executed on the terminal, prefix it with `$`.
|
|
||||||
|
|
||||||
### {% linkable_title Templates %}
|
|
||||||
|
|
||||||
For the [configuration templating](/topics/templating/) is [Jinja](http://jinja.pocoo.org/) used. Check the [Documentation Standards](/developers/documentation/standards/) for further details.
|
|
||||||
|
|
||||||
If you are don't escape templates then they will be rendered and appear blank on the website.
|
|
||||||
|
|
||||||
### {% linkable_title HTML %}
|
|
||||||
|
|
||||||
The direct usage of HTML is supported but not recommended. The note boxes are an exception.
|
|
||||||
|
|
||||||
```html
|
|
||||||
<p class='note warning'>
|
|
||||||
You need to enable telnet on your router.
|
|
||||||
</p>
|
|
||||||
```
|
|
||||||
|
|
||||||
### {% linkable_title Images, icons, and logos %}
|
|
||||||
|
|
||||||
The images which are displayed on the pages are stored in various directories according to their purpose. If you want to use a logo and placed `logo:` in the file header then this image should be stored in `source/images/supported_brands`. The background must be transparent.
|
|
||||||
|
|
||||||
| Type | Location |
|
|
||||||
| :----------- |:----------------------------------------------|
|
|
||||||
| logos | source/images/supported_brands |
|
|
||||||
| blog | source/images/blog |
|
|
||||||
| screenshots | source/images/components |
|
|
||||||
|
|
||||||
Not everything (product, component, etc.) should have a logo. To show something for internal parts of Home Assistant we are using the [Material Design Icons](https://materialdesignicons.com/).
|
|
||||||
|
|
||||||
### {% linkable_title Linking From The Sidebar %}
|
|
||||||
If you are adding a new page that requires linking from the sidebar you need to edit the `docs_navigation.html` file in `home-assistant.github.io/source/_includes/asides/docs_navigation.html`.
|
|
||||||
|
@ -10,35 +10,6 @@ footer: true
|
|||||||
redirect_from: /developers/website/
|
redirect_from: /developers/website/
|
||||||
---
|
---
|
||||||
|
|
||||||
The website you are reading now is the home of Home Assistant: [https://www.home-assistant.io](/). This is the place where we provide documentation and additional details about Home Assistant for end users and developers.
|
<script>
|
||||||
|
window.location = 'https://developers.home-assistant.io/docs/en/documentation_index.html';
|
||||||
The [home-assistant.io](/) website is built using [Jekyll](http://github.com/mojombo/jekyll) and [these dependencies](https://pages.github.com/versions/). The pages are written in [Markdown](http://daringfireball.net/projects/markdown/). To add a page, you don't need to know about HTML.
|
</script>
|
||||||
|
|
||||||
You can use the "**Edit this page on GitHub**" link to edit pages without creating a fork. Keep in mind that you can't upload images while working this way.
|
|
||||||
|
|
||||||
For larger changes, we suggest that you clone the website repository. This way, you can review your changes locally. The process for working on the website is no different from working on Home Assistant itself. You work on your change and propose it via a Pull Request (PR).
|
|
||||||
|
|
||||||
To test your changes locally, you need to install **Ruby** and its dependencies (gems):
|
|
||||||
|
|
||||||
- [Install Ruby](https://www.ruby-lang.org/en/documentation/installation/) if you don't have it already. Ruby version 2.3.0 or higher is required.
|
|
||||||
- Install `bundler`, a dependency manager for Ruby: `$ gem install bundler`
|
|
||||||
- In your home-assistant.github.io root directory, run `$ bundle` to install the gems you need.
|
|
||||||
|
|
||||||
Shortcut for Fedora: `$ sudo dnf -y install gcc-c++ ruby ruby-devel rubygem-bundler rubygem-json && bundle`
|
|
||||||
|
|
||||||
Then you can work on the documentation:
|
|
||||||
|
|
||||||
- Fork home-assistant.io [git repository](https://github.com/home-assistant/home-assistant.github.io).
|
|
||||||
- Create/edit/update a page in the directory `source/_components/` for your platform/component.
|
|
||||||
- Test your changes to home-assistant.io locally: run `rake preview` and navigate to [http://127.0.0.1:4000](http://127.0.0.1:4000)
|
|
||||||
- Create a Pull Request (PR) against the **next** branch of home-assistant.github.io if your documentation is a new feature, platform, or component.
|
|
||||||
- Create a Pull Request (PR) against the **current** branch of home-assistant.github.io if you fix stuff, create Cookbook entries, or expand existing documentation.
|
|
||||||
|
|
||||||
<p class='note'>
|
|
||||||
It could be necessary that you run `rake generate` prior to `rake preview` for the very first preview.
|
|
||||||
</p>
|
|
||||||
<p class='note'>
|
|
||||||
Site generated by `rake` is only available locally. If you are developing on a headless machine use port forwarding:
|
|
||||||
`ssh -L 4000:localhost:4000 user_on_headless_machine@ip_of_headless_machine`
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
@ -9,113 +9,6 @@ sharing: true
|
|||||||
footer: true
|
footer: true
|
||||||
---
|
---
|
||||||
|
|
||||||
To ensure that the documentation for Home Assistant is consistent and easy to follow for both novice and expert users, we ask that you follow a very strict set of standards for developing the documentation.
|
<script>
|
||||||
|
window.location = 'https://developers.home-assistant.io/docs/en/documentation_standards.html';
|
||||||
## {% linkable_title General Documentation %}
|
</script>
|
||||||
|
|
||||||
* The language of the documentation should be American-English.
|
|
||||||
* Don't put two spaces after a period and avoid the "Oxford comma".
|
|
||||||
* Be objective and not gender favoring, polarizing, race related or religion inconsiderate.
|
|
||||||
* The case of brand names, services, protocols, components, and platforms must match its respective counterpart. e.g., "Z-Wave" **not** "Zwave", "Z-wave", "Z Wave" or "ZWave". Also, "Input Select" **not** "input select" or "Input select".
|
|
||||||
* All headings should use the {% raw %}`{% linkable_title %}`{% endraw %} tag.
|
|
||||||
|
|
||||||
## {% linkable_title Component and Platform Pages %}
|
|
||||||
|
|
||||||
* The **Configuration Variables** section must use the {% raw %}`{% configuration %}`{% endraw %} tag.
|
|
||||||
* Configuration variables must document the requirement status.
|
|
||||||
* Configuration variables must document the default value, if any.
|
|
||||||
* Configuration variables must document the accepted value types.
|
|
||||||
* For configuration variables that accept multiple types, separate the types with a comma (i.e. `string, int`).
|
|
||||||
* Use YAML sequence syntax in the sample code if it is supported.
|
|
||||||
* All examples should be formatted to be included in `configuration.yaml` unless explicitly stated.
|
|
||||||
* Use capital letters and `_` to indicate that the value needs to be replaced. E.g., `api_key: YOUR_API_KEY` or `api_key: REPLACE_ME`.
|
|
||||||
* If you know that the API key or value contains [control characters](https://en.wikipedia.org/wiki/YAML#Syntax), e.g., `#`, `[`, `?`, etc., wrap it in quotes and add a note.
|
|
||||||
* Component and platform names should be a link to their respective documentation pages.
|
|
||||||
|
|
||||||
## {% linkable_title Templates %}
|
|
||||||
|
|
||||||
* All examples containing Jinja2 templates should be wrapped **outside** of the code markdown with the {% raw %}`{% raw %}`{% endraw %} tag.
|
|
||||||
* Do not use `states.switch.source.state` in templates. Instead use `states()` and `is_state()`.
|
|
||||||
* Use double quotes (`"`) for ([more information](#single-vs-double-quotation-marks)):
|
|
||||||
* `friendly_name`
|
|
||||||
* Single-line templates:
|
|
||||||
* `value_template`
|
|
||||||
* `level_template`
|
|
||||||
* `icon_template`
|
|
||||||
* Children of `data_template`
|
|
||||||
* Use single quotes (`'`) for ([more information](#single-vs-double-quotation-marks):
|
|
||||||
* Strings inside of templates:
|
|
||||||
* States
|
|
||||||
* Entity IDs
|
|
||||||
* `unit_of_measurement`
|
|
||||||
* No whitespace around pipe character (`|`) for Jinja2 filters.
|
|
||||||
* Single whitespace after Jinja2 opening delimiters ({% raw %}`{{`{% endraw %}).
|
|
||||||
* Single whitespace before Jinja2 closing delimiters ({% raw %}`}}`{% endraw %}).
|
|
||||||
* Do not quote values for:
|
|
||||||
* `device_class`
|
|
||||||
* `platform`
|
|
||||||
* `condition`
|
|
||||||
* `service`
|
|
||||||
|
|
||||||
## {% linkable_title Renaming Pages %}
|
|
||||||
|
|
||||||
It can happen that a component or platform is renamed, in this case the documentation needs to be updated as well. If you rename a page, add `redirect_from:` to the file header and let it point to the old location/name of the page. Please consider to add details, like release number or old component/platform name, to the page in a [note](/developers/documentation/create_page/#html).
|
|
||||||
|
|
||||||
```text
|
|
||||||
---
|
|
||||||
...
|
|
||||||
redirect_from: /getting-started/android/
|
|
||||||
---
|
|
||||||
```
|
|
||||||
|
|
||||||
Adding a redirect also applies if you move content around in the [documentation](/docs/).
|
|
||||||
|
|
||||||
## {% linkable_title Single vs. Double Quotation Marks %}
|
|
||||||
|
|
||||||
Use single quotes (`'`) for strings inside of a template. It is more obvious to escape a single quote when necessary (i.e. `name` is a possessive noun), because the single quotes that wrap the string are closer in position to the apostrophe inside the string. Use double quotes (`"`) outside of a template (unless it is a multi-line template, in which case outside quotes are not required).
|
|
||||||
|
|
||||||
### {% linkable_title Examples %}
|
|
||||||
|
|
||||||
#### {% linkable_title Double Quotes Outside, Single Quotes Inside (Valid) %}
|
|
||||||
|
|
||||||
{% raw %}
|
|
||||||
```yaml
|
|
||||||
automation:
|
|
||||||
...
|
|
||||||
action:
|
|
||||||
- service: notify.notify
|
|
||||||
data_template:
|
|
||||||
message: "{% if trigger.to_state.name == 'Dale\'s Bedroom' %}Someone's in your base, killing your noobs!{% else %}It's just another door.{% endif %}"
|
|
||||||
```
|
|
||||||
{% endraw %}
|
|
||||||
|
|
||||||
#### {% linkable_title Single Quotes Outside, Double Quotes Inside (Invalid) %}
|
|
||||||
|
|
||||||
{% raw %}
|
|
||||||
```yaml
|
|
||||||
automation:
|
|
||||||
...
|
|
||||||
action:
|
|
||||||
- service: notify.notify
|
|
||||||
data_template:
|
|
||||||
message: '{% if trigger.to_state.name == "Dale's Bedroom" %}Someone's in your base, killing your noobs!{% else %}It's just another door.{% endif %}'
|
|
||||||
```
|
|
||||||
{% endraw %}
|
|
||||||
|
|
||||||
#### {% linkable_title Multi-Line Template (Valid) %}
|
|
||||||
|
|
||||||
{% raw %}
|
|
||||||
```yaml
|
|
||||||
automation:
|
|
||||||
...
|
|
||||||
action:
|
|
||||||
- service: notify.notify
|
|
||||||
data_template:
|
|
||||||
message: >-
|
|
||||||
{% if trigger.to_state.name == 'Dale\'s Bedroom' %}
|
|
||||||
Someone's in your base, killing your noobs!
|
|
||||||
{% else %}
|
|
||||||
It's just another door.
|
|
||||||
{% endif %}
|
|
||||||
```
|
|
||||||
{% endraw %}
|
|
||||||
|
BIN
source/images/blog/2018-07-0.73/lovelace-elements.png
Normal file
BIN
source/images/blog/2018-07-0.73/lovelace-elements.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
BIN
source/images/lovelace/lovelace-ui-comparison.png
Normal file
BIN
source/images/lovelace/lovelace-ui-comparison.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
107
source/lovelace/index.markdown
Normal file
107
source/lovelace/index.markdown
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Lovelace UI"
|
||||||
|
description: "The Lovelace UI is a powerful and configurable interface for Home Assistant."
|
||||||
|
date: 2018-07-01 10:28 +00:00
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
---
|
||||||
|
|
||||||
|
<p class='note warning'>
|
||||||
|
This is an experimental feature. Configuration might change in future versions.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
Starting with Home Assistant 0.72, we're experimenting with a new way of defining your interface. We're calling it the Lovelace UI.
|
||||||
|
|
||||||
|
The Lovelace UI is:
|
||||||
|
|
||||||
|
- **Extremely fast**. We create the user interface when the UI configuration changes. When a state changes, we just make the UI represent the current state.
|
||||||
|
- **Extremely customizable**. We have a new file for just configuration. In the past, we declined UI specific options because they did not fit in the state machine. They will fit in a configuration file for a user interface.
|
||||||
|
- **Extremely extensible**. It's based on the web standard [custom elements](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements). Don't like the built-in cards? Make your own! Custom cards are treated the same as built-in cards and are configured the same way. [Check the docs.](lovelace_custom_card.md)
|
||||||
|
- **Making the backend faster**. With Lovelace, the backend will no longer need to maintain entities like groups for the sole purpose of showing them on the frontend.
|
||||||
|
|
||||||
|
## How it works
|
||||||
|
|
||||||
|
The old user interface relied solely on the state machine. This caused trouble as it meant that the state machine was now not only the source for device states, but also for user interface configuration. With Lovelace, we're taking a completely different approach. All user interface configuration will live in a seperate file, controlled by the user.
|
||||||
|
|
||||||
|
<p class='img'>
|
||||||
|
<img
|
||||||
|
src='/images/lovelace/lovelace-ui-comparison.png'
|
||||||
|
alt='Diagram showing how states no longer contain UI configuration.'>
|
||||||
|
Visual comparison of old configuration versus new configuration
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- source: https://docs.google.com/drawings/d/1O1o7-wRlnsU1lLgfdtn3s46P5StJjSL5to5RU9SV8zs/edit?usp=sharing -->
|
||||||
|
|
||||||
|
## Trying it out
|
||||||
|
|
||||||
|
Create a new file `<config>/ui-lovelace.yaml` and add the following content:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
title: My Awesome Home
|
||||||
|
views:
|
||||||
|
# View tab title.
|
||||||
|
- title: Example
|
||||||
|
# Optional unique id for direct access /lovelace/${id}
|
||||||
|
id: example
|
||||||
|
# Each view can have a different theme applied. Theme should be defined in the frontend.
|
||||||
|
theme: dark-mode
|
||||||
|
# The cards to show on this view.
|
||||||
|
cards:
|
||||||
|
# The entities card will take a list of entities and show their state.
|
||||||
|
- type: entities
|
||||||
|
# Title of the entities card
|
||||||
|
title: Example
|
||||||
|
# The entities here will be shown in the same order as specified.
|
||||||
|
entities:
|
||||||
|
- input_boolean.switch_ac_kitchen
|
||||||
|
- input_boolean.switch_ac_livingroom
|
||||||
|
- input_boolean.switch_tv
|
||||||
|
|
||||||
|
# The filter card will filter available entities for certain criteria
|
||||||
|
# and render it as type 'entities'.
|
||||||
|
- type: entity-filter
|
||||||
|
# Filter criteria. They are all optional.
|
||||||
|
filter:
|
||||||
|
- domain: input_boolean
|
||||||
|
state: 'on'
|
||||||
|
# This config will be passed to the card rendering the filter results
|
||||||
|
card_config:
|
||||||
|
title: Input booleans that are on
|
||||||
|
|
||||||
|
# Specify a tab icon if you want the view tab to be an icon.
|
||||||
|
- icon: mdi:home-assistant
|
||||||
|
# Title of the view. Will be used as the tooltip for tab icon
|
||||||
|
title: Second view
|
||||||
|
cards:
|
||||||
|
- type: entities
|
||||||
|
title: Lots of Kitchen AC
|
||||||
|
entities:
|
||||||
|
# It is totally possible to render duplicates.
|
||||||
|
- input_boolean.switch_ac_kitchen
|
||||||
|
- input_boolean.switch_ac_kitchen
|
||||||
|
- input_boolean.switch_ac_kitchen
|
||||||
|
- input_boolean.switch_ac_kitchen
|
||||||
|
- input_boolean.switch_ac_kitchen
|
||||||
|
- input_boolean.switch_ac_kitchen
|
||||||
|
```
|
||||||
|
|
||||||
|
Add to your `configuration.yaml`:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
input_boolean:
|
||||||
|
switch_ac_kitchen:
|
||||||
|
name: AC kitchen
|
||||||
|
switch_ac_livingroom:
|
||||||
|
name: AC living room
|
||||||
|
switch_tv:
|
||||||
|
name: TV
|
||||||
|
```
|
||||||
|
|
||||||
|
Now restart Home Assistant, navigate to `<YOUR HASS URL>/lovelace`. When you make changes to `ui-lovelace.yaml`, you don't have to restart Home Assistant or refresh the page. Just hit the refresh button at the top of the UI.
|
||||||
|
|
||||||
|
## Current limitations
|
||||||
|
|
||||||
|
This is the very very early version aimed at gathering feedback. Discussion and suggestions are welcome in the [ui-schema repository](https://github.com/home-assistant/ui-schema).
|
Loading…
x
Reference in New Issue
Block a user