mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-13 12:26:50 +00:00
commit
58d1fb93f8
@ -139,14 +139,14 @@ social:
|
|||||||
|
|
||||||
# Home Assistant release details
|
# Home Assistant release details
|
||||||
current_major_version: 0
|
current_major_version: 0
|
||||||
current_minor_version: 65
|
current_minor_version: 66
|
||||||
current_patch_version: 6
|
current_patch_version: 0
|
||||||
date_released: 2018-03-21
|
date_released: 2018-03-30
|
||||||
|
|
||||||
# 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-0656---march-21"
|
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
|
||||||
|
93
source/_components/alarm_control_panel.ifttt.markdown
Normal file
93
source/_components/alarm_control_panel.ifttt.markdown
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "IFTTT Alarm Control Panel"
|
||||||
|
description: "Instructions on how to integrate IFTTT-controlled security systems into Home Assistant."
|
||||||
|
date: 2018-03-10 21:00
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: ifttt.png
|
||||||
|
ha_category: Alarm
|
||||||
|
ha_release: 0.66
|
||||||
|
---
|
||||||
|
|
||||||
|
The `ifttt` platform allows you to integrate security systems that have no open API but can be controlled through [IFTTT](https://ifttt.com/discover).
|
||||||
|
|
||||||
|
This platform depends on the [IFTTT](https://home-assistant.io/components/ifttt/) Home Assistant component. See the component's documentation to set it up.
|
||||||
|
|
||||||
|
<p class='note'>
|
||||||
|
It is important to note that this platform fully relies on IFTTT to receive updates when the security system's state changes. Therefore, this platform shows an assumed state.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
To enable this, setup the required IFTTT applets as listed below and add the following lines to your `configuration.yaml` file:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Example configuration.yaml entry
|
||||||
|
ifttt:
|
||||||
|
key: YOUR_WEBHOOK_KEY
|
||||||
|
|
||||||
|
alarm_control_panel:
|
||||||
|
- platform: ifttt
|
||||||
|
name: YOUR_ALARM_NAME
|
||||||
|
code: YOUR_ALARM_CODE
|
||||||
|
event_arm_away: YOUR_ARM_AWAY_EVENT
|
||||||
|
event_arm_home: YOUR_ARM_HOME_EVENT
|
||||||
|
event_arm_night: YOUR_ARM_NIGHT_EVENT
|
||||||
|
event_disarm: YOUR_DISARM_EVENT
|
||||||
|
```
|
||||||
|
|
||||||
|
<p class='note warning'>
|
||||||
|
It is strongly discouraged to use this platform when you don't use encryption; otherwise, your API password will be send unprotected through the IFTTT Webhooks. It is adviced to [setup encryption using Let's Encrypt](https://home-assistant.io/blog/2017/09/27/effortless-encryption-with-lets-encrypt-and-duckdns/).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{% linkable_title Required IFTTT applets %}
|
||||||
|
|
||||||
|
This platform supports the services `alarm_disarm`, `alarm_arm_away`, `alarm_arm_home` and `alarm_arm_night`. For each of these services, an IFTTT webhook will be triggered.
|
||||||
|
|
||||||
|
For this system to operate correctly, the following IFTTT applets have to be setup. Obviously, if your alarm device does not support some states, no applets have to be provided for those.
|
||||||
|
* **IF** Webhook event `YOUR_DISARM_EVENT` is called, **THEN** disarm the alarm system.
|
||||||
|
* **IF** Webhook event `YOUR_ARM_HOME_EVENT` is called, **THEN** set the alarm system to armed home.
|
||||||
|
* **IF** Webhook event `YOUR_ARM_NIGHT_EVENT` is called, **THEN** set the alarm system to armed away.
|
||||||
|
* **IF** Webhook event `YOUR_DISARM_EVENT` is called, **THEN** set the alarm system to armed night.
|
||||||
|
* **IF** the alarm system was disarmed, **THEN** perform a Webhook `POST` web request to url `https://HASS_URL/api/services/alarm_control_panel/ifttt_push_alarm_state?api_password=API_PASSWORD` with content type `application/json` and body `{"entity_id": "alarm_control_panel.DEVICE_NAME", "state": "disarmed"}`.
|
||||||
|
* **IF** the alarm system state changed to armed home, **THEN** perform a Webhook `POST` web request to url `https://HASS_URL/api/services/alarm_control_panel/ifttt_push_alarm_state?api_password=API_PASSWORD` with content type `application/json` and body `{"entity_id": "alarm_control_panel.DEVICE_NAME", "state": "armed_home"}`.
|
||||||
|
* **IF** the alarm system state changed to armed away, **THEN** perform a Webhook `POST` web request to url `https://HASS_URL/api/services/alarm_control_panel/ifttt_push_alarm_state?api_password=API_PASSWORD` with content type `application/json` and body `{"entity_id": "alarm_control_panel.DEVICE_NAME", "state": "armed_away"}`.
|
||||||
|
* **IF** the alarm system state changed to armed night, **THEN** perform a Webhook `POST` web request to url `https://HASS_URL/api/services/alarm_control_panel/ifttt_push_alarm_state?api_password=API_PASSWORD` with content type `application/json` and body `{"entity_id": "alarm_control_panel.DEVICE_NAME", "state": "armed_night"}`.
|
||||||
|
|
||||||
|
|
||||||
|
{% configuration %}
|
||||||
|
name:
|
||||||
|
description: The name of your Home Assistant alarm control panel.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
code:
|
||||||
|
description: The code for the alarm control panel.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
event_arm_away:
|
||||||
|
description: IFTTT webhook event to call when the state is set to armed away.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: alarm_arm_away
|
||||||
|
event_arm_home:
|
||||||
|
description: IFTTT webhook event to call when the state is set to armed home.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: alarm_arm_home
|
||||||
|
event_arm_night:
|
||||||
|
description: IFTTT webhook event to call when the state is set to armed night.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: alarm_arm_night
|
||||||
|
event_disarm:
|
||||||
|
description: IFTTT webhook event to call when the state is set to disarmed.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: alarm_disarm
|
||||||
|
optimistic:
|
||||||
|
description: Specify if the state will be updated by a ifttt_push_alarm_state call (false) or can be set immediately (true).
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
{% endconfiguration %}
|
20
source/_components/binary_sensor.bmw_connected_drive.markdown
Executable file
20
source/_components/binary_sensor.bmw_connected_drive.markdown
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "BMW connected drive"
|
||||||
|
description: "Instructions on how to setup your BMW connected drive account with Home Assistant."
|
||||||
|
date: 2018-02-22 23:00
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: bmw.png
|
||||||
|
ha_category: Binary Sensor
|
||||||
|
ha_release: 0.66
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
The `bmw_connected_drive` platform allows you to import data on your BMW into Home Assistant.
|
||||||
|
|
||||||
|
The binary sensors will be automatically configured if 'bmw_connected_drive' component is configured.
|
||||||
|
|
||||||
|
For more configuration information see the [bmw_connected_drive component](/components/bmw_connected_drive/) documentation.
|
@ -29,17 +29,46 @@ camera:
|
|||||||
max_image_width: 720
|
max_image_width: 720
|
||||||
```
|
```
|
||||||
|
|
||||||
Configuration variables:
|
{% configuration %}
|
||||||
|
entity_id:
|
||||||
- **entity_id** (*Required*): The ID of another Home Assistant camera to post-process.
|
description: The ID of another Home Assistant camera to post-process.
|
||||||
- **name** (*Optional*): This parameter allows you to override the name of your camera.
|
required: true
|
||||||
- **max_image_width** (*Optional*): The maximum width of single images taken from the camera (aspect ratio will be maintained).
|
type: string
|
||||||
- **max_stream_width** (*Optional*): The maximum width of the MJPEG stream from the camera (aspect ratio will be maintained).
|
name:
|
||||||
- **image_quality** (*Optional*): The quality level used for resulting JPEG for snapshots (default: 75).
|
description: This parameter allows you to override the name of your camera.
|
||||||
- **stream_quality** (*Optional*): The quality level used for resulting MJPEG streams (default: 75).
|
required: false
|
||||||
- **image_refresh_rate** (*Optional*): The minimum time in seconds between generating successive image snapshots.
|
type: string
|
||||||
- **force_resize** (*Optional*): Resize the image even if the resulting image would take up more bandwidth than the original.
|
max_image_width:
|
||||||
- **cache_images** (*Optional*): Preserve the last image and re-send in the case the camera is not responding.
|
description: The maximum width of single images taken from the camera (aspect ratio will be maintained).
|
||||||
|
required: false
|
||||||
|
type: integer
|
||||||
|
max_stream_width:
|
||||||
|
description: The maximum width of the MJPEG stream from the camera (aspect ratio will be maintained).
|
||||||
|
required: false
|
||||||
|
type: integer
|
||||||
|
image_quality:
|
||||||
|
description: The quality level used for resulting JPEG for snapshots.
|
||||||
|
required: false
|
||||||
|
type: integer
|
||||||
|
default: 75
|
||||||
|
stream_quality:
|
||||||
|
description: The quality level used for resulting MJPEG streams.
|
||||||
|
required: false
|
||||||
|
type: integer
|
||||||
|
default: 75
|
||||||
|
image_refresh_rate:
|
||||||
|
description: The minimum time in seconds between generating successive image snapshots.
|
||||||
|
required: false
|
||||||
|
type: float
|
||||||
|
force_resize:
|
||||||
|
description: Resize the image even if the resulting image would take up more bandwidth than the original.
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
cache_images:
|
||||||
|
description: Preserve the last image and re-send in the case the camera is not responding.
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
{% endconfiguration %}
|
||||||
|
|
||||||
|
|
||||||
## {% linkable_title Examples %}
|
## {% linkable_title Examples %}
|
||||||
|
43
source/_components/cover.group.markdown
Normal file
43
source/_components/cover.group.markdown
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Cover Group"
|
||||||
|
description: "Instructions how to setup grouped covers in Home Assistant."
|
||||||
|
date: 2018-02-11 10:00
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
ha_category: Cover
|
||||||
|
ha_release: 0.66
|
||||||
|
ha_iot_class: "Local Push"
|
||||||
|
logo: home-assistant.png
|
||||||
|
---
|
||||||
|
|
||||||
|
The `group` platform can create a cover that combines several cover entities into one.
|
||||||
|
|
||||||
|
To enable `Cover Groups` in your installation, add the following to your `configuration.yaml` file:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Example configuration.yaml entry
|
||||||
|
cover:
|
||||||
|
- platform: group
|
||||||
|
entities:
|
||||||
|
- cover.hall_window
|
||||||
|
- cover.living_room_window
|
||||||
|
```
|
||||||
|
|
||||||
|
{% configuration %}
|
||||||
|
name:
|
||||||
|
description: Name to use in the frontend.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: "Cover Group"
|
||||||
|
entities:
|
||||||
|
description: List of all cover entities you want to control.
|
||||||
|
required: true
|
||||||
|
type: [string | list]
|
||||||
|
{% endconfiguration %}
|
||||||
|
|
||||||
|
## {% linkable_title Functionality %}
|
||||||
|
|
||||||
|
It works best if you group covers with the same supported features together (like support for `open`/`close`/`stop`/`position`/`tilt controls`), but is not limited to it. In case you have bundled covers with different features together, the controls will only affect those covers that support the actions.
|
@ -20,9 +20,11 @@ ha_iot_class: "Local Push"
|
|||||||
### {% linkable_title Supported device types %}
|
### {% linkable_title Supported device types %}
|
||||||
|
|
||||||
- [Zigbee Lights](/components/light.deconz/)
|
- [Zigbee Lights](/components/light.deconz/)
|
||||||
|
- [Consumption Sensors](/components/sensor.deconz/)
|
||||||
- [Humidity Sensors](/components/sensor.deconz/)
|
- [Humidity Sensors](/components/sensor.deconz/)
|
||||||
- [Light Level Sensors](/components/sensor.deconz/)
|
- [Light Level Sensors](/components/sensor.deconz/)
|
||||||
- [OpenClose Detectors](/components/binary_sensor.deconz/)
|
- [OpenClose Detectors](/components/binary_sensor.deconz/)
|
||||||
|
- [Power Sensors](/components/sensor.deconz/)
|
||||||
- [Presence Detectors](/components/binary_sensor.deconz/)
|
- [Presence Detectors](/components/binary_sensor.deconz/)
|
||||||
- [Pressure Sensors](/components/sensor.deconz/)
|
- [Pressure Sensors](/components/sensor.deconz/)
|
||||||
- [Switches (Remote Controls)](/components/sensor.deconz/)
|
- [Switches (Remote Controls)](/components/sensor.deconz/)
|
||||||
|
@ -42,3 +42,29 @@ This will download the file from the given URL.
|
|||||||
| `subdir` | yes | Download into subdirectory of **download_dir** |
|
| `subdir` | yes | Download into subdirectory of **download_dir** |
|
||||||
| `filename` | yes | Determine the filename. |
|
| `filename` | yes | Determine the filename. |
|
||||||
| `overwrite` | yes | Whether to overwrite the file or not, defaults to `false`. |
|
| `overwrite` | yes | Whether to overwrite the file or not, defaults to `false`. |
|
||||||
|
|
||||||
|
### {% linkable_title Download Status Events %}
|
||||||
|
|
||||||
|
When a download finished successfully, Home Assistant will emit a 'downloader_download_completed' event to the event bus which you can use to write automations against.
|
||||||
|
In case download failed another event 'downloader_download_failed' is emitted to indicate that the download did not complete successfully.
|
||||||
|
|
||||||
|
Along with the event the following payload parameters are available:
|
||||||
|
|
||||||
|
| Parameter | Description |
|
||||||
|
|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
| `url` | The `url` that was requested.|
|
||||||
|
| `filename` | The `name` of the file that was being downloaded.|
|
||||||
|
|
||||||
|
#### Example Automation:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- alias: Download Failed Notification
|
||||||
|
trigger:
|
||||||
|
platform: event
|
||||||
|
event_type: downloader_download_failed
|
||||||
|
action:
|
||||||
|
service: persistent_notification.create
|
||||||
|
data_template:
|
||||||
|
message: "{{trigger.event.data.filename}} download failed"
|
||||||
|
title: "Download Failed"
|
||||||
|
```
|
||||||
|
@ -71,6 +71,15 @@ name:
|
|||||||
|
|
||||||
## {% linkable_title Platform Services %}
|
## {% linkable_title Platform Services %}
|
||||||
|
|
||||||
|
### {% linkable_title Service `fan.set_speed` %}
|
||||||
|
|
||||||
|
Set the fan speed/operation mode.
|
||||||
|
|
||||||
|
| Service data attribute | Optional | Description |
|
||||||
|
|---------------------------|----------|---------------------------------------------------------------------|
|
||||||
|
| `entity_id` | yes | Only act on a specific air purifier. Else targets all. |
|
||||||
|
| `speed` | no | Fan speed. Valid values are 'Auto', 'Silent', 'Favorite' and 'Idle' |
|
||||||
|
|
||||||
### {% linkable_title Service `fan.xiaomi_miio_set_buzzer_on` %}
|
### {% linkable_title Service `fan.xiaomi_miio_set_buzzer_on` %}
|
||||||
|
|
||||||
Turn the buzzer on.
|
Turn the buzzer on.
|
||||||
|
16
source/_components/fan.zha.markdown
Normal file
16
source/_components/fan.zha.markdown
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "ZigBee Home Automation Fan"
|
||||||
|
description: "Instructions how to setup ZigBee Home Automation fans within Home Assistant."
|
||||||
|
date: 2018-02-10 00:00
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: zigbee.png
|
||||||
|
ha_category: Fan
|
||||||
|
ha_iot_class: "Local Polling"
|
||||||
|
ha_release: 0.66
|
||||||
|
---
|
||||||
|
|
||||||
|
To get your ZigBee fans working with Home Assistant, follow the instructions for the general [ZigBee Home Automation component](/components/zha/).
|
@ -131,58 +131,32 @@ If you're not using Linux, you can use sites such as [this one](https://www.brow
|
|||||||
|
|
||||||
### {% linkable_title Setup %}
|
### {% linkable_title Setup %}
|
||||||
|
|
||||||
1. Download the [gactions CLI](https://developers.google.com/actions/tools/gactions-cli) to be used later. You can download and run this anywhere and on any machine. Just remember where you put it for later and don't forget to run `chmod +x gactions` to make it executable on Mac or Linux.
|
1. Create a new project in the [developer console](https://console.actions.google.com/).
|
||||||
2. Create a new file named `project.json` (in the same directory you downloaded `gactions` to) and replace the `[YOUR HOME ASSISTANT URL:PORT]` below with the URL you use to access Home Assistant.
|
|
||||||
Note: This must be an HTTPS URL to work. Don't forget to include the port number if you're not using port 443.
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"actions": [{
|
|
||||||
"name": "actions.devices",
|
|
||||||
"deviceControl": {
|
|
||||||
},
|
|
||||||
"fulfillment": {
|
|
||||||
"conversationName": "automation"
|
|
||||||
}
|
|
||||||
}],
|
|
||||||
"conversations": {
|
|
||||||
"automation":
|
|
||||||
{
|
|
||||||
"name": "automation",
|
|
||||||
"url": "https://[YOUR HOME ASSISTANT URL:PORT]/api/google_assistant"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
3. Create a new project in the [developer console](https://console.actions.google.com/).
|
|
||||||
a. Add/Import project
|
a. Add/Import project
|
||||||
b. Go to Build under the Actions SDK box
|
b. Click on `BUILD` on the `Smart home` card
|
||||||
c. Copy the command that looks like:
|
c. Type in your home assistant url: `https://[YOUR HOME ASSISTANT URL:PORT]/api/google_assistant`, replace the `[YOUR HOME ASSISTANT URL:PORT]` with the domain / ip address and the port under which your Home Assistant is reachable.
|
||||||
|
d. Click `Done`. Then click on `Overview`, which will lead you to the app details screen.
|
||||||
`gactions update --action_package PACKAGE_NAME --project doctest-2d0b8`
|
2. You'll need to fill out most of the information on that page, but none of it really matters since you won't be addressing the App directly, only through the Smart Home functionality built into Google Assistant.
|
||||||
4. Replace `PACKAGE_NAME` with `project.json` and run that command in a console from the same directory you saved `project.json` in (you'll need to put `./` before `gactions` so that it reads `./gactions` if you're running it on Linux or Windows). It should output a URL like `https://console.actions.google.com/project/doctest-2d0b8/overview` - go there.
|
3. The final item on that page `Account linking` is required for your app to interact with Home Assistant.
|
||||||
5. You'll need to fill out most of the information on that page, but none of it really matters since you won't be addressing the App directly, only through the Smart Home functionality built into Google Assistant.
|
a. Grant type: `Implicit`
|
||||||
6. The final item on that page `Account linking` is required for your app to interact with Home Assistant.
|
b. Client ID: The `client_id` from your Home Assistant configuration above
|
||||||
1. Grant type: `Implicit`
|
c. Authorization URL (replace with your actual URL): `https://[YOUR HOME ASSISTANT URL]/api/google_assistant/auth`. If you have set `api_password:` add this password to the URL `https://[YOUR HOME ASSISTANT URL]/api/google_assistant/auth?api_password=[YOUR API PASSWORD]`)
|
||||||
2. Client ID: The `client_id` from your Home Assistant configuration above
|
d. Configure your client. Add scopes for `email` and `name`.
|
||||||
3. Authorization URL (replace with your actual URL): `https://[YOUR HOME ASSISTANT URL]/api/google_assistant/auth`. If you have set `api_password:` add this password to the URL `https://[YOUR HOME ASSISTANT URL]/api/google_assistant/auth?api_password=[YOUR API PASSWORD]`)
|
e. Testing instructions: Enter anything. It doesn't matter since you won't submit this app.
|
||||||
4. Configure your client. Add scopes for `email` and `name`.
|
4. Back on the main app draft page. Click `Test Draft`. That will take you to the simulator (which won't work so just close that window).
|
||||||
5. Testing instructions: Enter anything. It doesn't matter since you won't submit this app.
|
5. If you haven't already added the component configuration to `configuration.yaml` and restarted Home Assistant, you'll be unable to continue until you have.
|
||||||
7. Back on the main app draft page. Click `Test Draft`. That will take you to the simulator (which won't work so just close that window).
|
6. Open the Google Assistant app and go into `Settings > Home Control`
|
||||||
8. If you haven't already added the component configuration to `configuration.yaml` and restarted Home Assistant, you'll be unable to continue until you have.
|
7. Click the `+` sign, and near the bottom, you should have `[test] your app name`. Selecting that should lead you the screen where you can set rooms for your devices or nicknames for your devices.
|
||||||
8. Open the Google Assistant app and go into `Settings > Home Control`
|
8. If you want to allow other household users to control the devices:
|
||||||
9. Click the `+` sign, and near the bottom, you should have `[test] your app name`. Selecting that should lead to you the screen where you can set rooms for your devices or nicknames for your devices.
|
a. Go to the developer console using the address from point 4.
|
||||||
10. If you want to allow other household users to control the devices:
|
b. Under the gear icon, click `Permissions`
|
||||||
1. Go to the developer console using the address from point 4.
|
c. Click `Add`, type the new user's e-mail address and choose `Project -> Editor` role
|
||||||
2. Under the gear icon, click `Permissions`
|
d. Have the new user go to [developer console](https://console.actions.google.com/) and repeat steps starting from point
|
||||||
3. Click `Add`, type the new user's e-mail address and choose `Project -> Editor` role
|
9. If you want to use the `google_assistant.request_sync` service, to update devices without unlinking and relinking, in Home Assistant, then enable Homegraph API for your project:
|
||||||
4. Have the new user go to [developer console](https://console.actions.google.com/) and repeat steps starting from point 7.
|
a. Go to the [cloud console](https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview)
|
||||||
11. If you want to use the `google_assistant.request_sync` service, to update devices without unlinking and relinking, in Home Assistant, then enable Homegraph API for your project:
|
b. Select your project and click Enable Homegraph API
|
||||||
1. Go to the [cloud console](https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview)
|
c. Go to Credentials, which you can find on the left navigation bar under the key icon, and select API Key from Create Credentials
|
||||||
2. Select your project and click Enable Homegraph API
|
d. Note down the generated API Key and use this in the configuration
|
||||||
3. Go to Credentials and select API Key from Create Credentials
|
|
||||||
4. Note down the generated API Key and use this in the configuration
|
|
||||||
|
|
||||||
### {% linkable_title Troubleshooting the request_sync service %}
|
### {% linkable_title Troubleshooting the request_sync service %}
|
||||||
|
|
||||||
|
@ -12,7 +12,12 @@ ha_release: 0.64
|
|||||||
logo: apple-homekit.png
|
logo: apple-homekit.png
|
||||||
---
|
---
|
||||||
|
|
||||||
The `HomeKit` component allows you to forward entities from Home Assistant to Apple `HomeKit`, so they could be controlled from Apple `Home` app and `Siri`.
|
The `HomeKit` component allows you to forward entities from Home Assistant to Apple `HomeKit`, so they could be controlled from Apple `Home` app and `Siri`. Please make sure that you have read the [considerations](#considerations) listed below to save you some trouble later.
|
||||||
|
|
||||||
|
<p class="note warning">
|
||||||
|
It might be necessary to install an additional package:
|
||||||
|
`$ sudo apt-get install libavahi-compat-libdnssd-dev`
|
||||||
|
</p>
|
||||||
|
|
||||||
{% configuration %}
|
{% configuration %}
|
||||||
homekit:
|
homekit:
|
||||||
@ -20,18 +25,55 @@ The `HomeKit` component allows you to forward entities from Home Assistant to Ap
|
|||||||
required: true
|
required: true
|
||||||
type: map
|
type: map
|
||||||
keys:
|
keys:
|
||||||
pincode:
|
auto_start:
|
||||||
description: Pin code required during setup of HomeKit Home Assistant accessory. The format needs to be 'XXX-XX-XXX' where X is a number between 0 and 9.
|
description: Flag if the HomeKit Server should start automatically after the Home Assistant Core Setup is done. ([Disable Auto Start](#disable-auto-start))
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: boolean
|
||||||
default: '"123-45-678"'
|
default: true
|
||||||
port:
|
port:
|
||||||
description: Port for the HomeKit extension.
|
description: Port for the HomeKit extension.
|
||||||
required: false
|
required: false
|
||||||
type: int
|
type: int
|
||||||
default: 51826
|
default: 51827
|
||||||
|
filter:
|
||||||
|
description: Filter entities to available in the `Home` app. ([Configure Filter](#configure-filter))
|
||||||
|
required: false
|
||||||
|
type: map
|
||||||
|
keys:
|
||||||
|
include_domains:
|
||||||
|
description: Domains to be included.
|
||||||
|
required: false
|
||||||
|
type: list
|
||||||
|
include_entities:
|
||||||
|
description: Entities to be included.
|
||||||
|
required: false
|
||||||
|
type: list
|
||||||
|
exclude_domains:
|
||||||
|
description: Domains to be excluded.
|
||||||
|
required: false
|
||||||
|
type: list
|
||||||
|
exclude_entities:
|
||||||
|
description: Entities to be excluded.
|
||||||
|
required: false
|
||||||
|
type: list
|
||||||
|
entity_config:
|
||||||
|
description: Configuration for specific entities. All subordinate keys are the corresponding entity ids to the domains, e.g. `alarm_control_panel.alarm`.
|
||||||
|
required: false
|
||||||
|
type: map
|
||||||
|
keys:
|
||||||
|
alarm_control_panel:
|
||||||
|
description: Additional options for `alarm_control_panel` entities.
|
||||||
|
required: false
|
||||||
|
type: map
|
||||||
|
keys:
|
||||||
|
code:
|
||||||
|
description: Code to arm or disarm the alarm in the frontend.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: ''
|
||||||
{% endconfiguration %}
|
{% endconfiguration %}
|
||||||
|
|
||||||
|
|
||||||
## {% linkable_title Setup %}
|
## {% linkable_title Setup %}
|
||||||
|
|
||||||
To enable the `HomeKit` component in Home Assistant, add the following to your configuration file:
|
To enable the `HomeKit` component in Home Assistant, add the following to your configuration file:
|
||||||
@ -39,18 +81,78 @@ To enable the `HomeKit` component in Home Assistant, add the following to your c
|
|||||||
```yaml
|
```yaml
|
||||||
# Example for HomeKit setup
|
# Example for HomeKit setup
|
||||||
homekit:
|
homekit:
|
||||||
pincode: '123-45-678'
|
|
||||||
```
|
```
|
||||||
|
|
||||||
<p class='note'>It is not recommended to choose '123-45-678' as your pin code!</p>
|
After Home Assistant has started, the entities specified by the filter are exposed to `HomeKit` if the are [supported](#supported-components). To add them:
|
||||||
|
1. Open the Home Assistant frontend. A new card will display the `pin code`.
|
||||||
After Home Assistant has started, all supported entities (see the [list](#supported-components) below which components are already integrated) will be exposed to `HomeKit`. To add them:
|
1. Open the `Home` app.
|
||||||
1. Open the `Home` App.
|
2. Choose `Add Accessory`, than select `Don't Have a Code or Can't Scan?` and enter the `pin code`.
|
||||||
2. Choose `Add Accessory` and then `Don't Have a Code or Can't Scan?`.
|
4. Confirm the you are adding an `Uncertified Accessory` by clicking on `Add Anyway`.
|
||||||
3. The `Home Assistant` Bridge should be listed there. Select it and follow the instructions to complete setup.
|
5. Follow the setup be clicking on `Next` and lastly `Done` in the top right hand corner.
|
||||||
|
6. The `Home Assistant` Bridge and the Accessories should now be listed in the `Home` app.
|
||||||
|
|
||||||
After the setup is completed you should be able to control your Home Assistant components through `Home` and `Siri`.
|
After the setup is completed you should be able to control your Home Assistant components through `Home` and `Siri`.
|
||||||
|
|
||||||
|
|
||||||
|
## {% linkable_title Considerations %}
|
||||||
|
|
||||||
|
|
||||||
|
### {% linkable_title Accessory ID %}
|
||||||
|
|
||||||
|
Currently this component uses the `entity_id` to generate a unique `accessory id (aid)` for `HomeKit`. The `aid` is used to identify a device and save all configurations made for it. This however means that if you decide to change an `entity_id` all configurations for this accessory made in the `Home` app will be lost.
|
||||||
|
|
||||||
|
### {% linkable_title Persistence Storage %}
|
||||||
|
|
||||||
|
Unfortunately `HomeKit` doesn't support any kind of persistence storage, only the configuration for accessories that are added to the `Home Assistant Bridge` are kept. To avoid problems it is recommended to use an automation to always start `HomeKit` with at least the same entities setup. If for some reason some entities are not setup, their config will be deleted. (State unknown or similar will not cause any issues.)
|
||||||
|
|
||||||
|
A common situation might be if you decide to disable parts of the configuration for testing. Please make sure to disable `auto start` and `turn off` the `Start HomeKit` automation (if you have one).
|
||||||
|
|
||||||
|
|
||||||
|
## {% linkable_title Disable Auto Start %}
|
||||||
|
|
||||||
|
Depending on your individual setup, it might be necessary to disable `Auto Start` for all accessories to be available for `HomeKit`. Only those entities that are fully setup when the `HomeKit` component is started, can be added. To start `HomeKit` when `auto_start: False`, you can call the service `homekit.start`.
|
||||||
|
|
||||||
|
This can be automated using an `automation`.
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
```yaml
|
||||||
|
# Example for Z-Wave
|
||||||
|
homekit:
|
||||||
|
auto_start: False
|
||||||
|
|
||||||
|
automation:
|
||||||
|
- alias: 'Start HomeKit'
|
||||||
|
trigger:
|
||||||
|
- platform: event
|
||||||
|
event_type: zwave.network_ready
|
||||||
|
action:
|
||||||
|
- service: homekit.start
|
||||||
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
```yaml
|
||||||
|
# Example using a delay after start of Home Assistant
|
||||||
|
homekit:
|
||||||
|
auto_start: False
|
||||||
|
|
||||||
|
automation:
|
||||||
|
- alias: 'Start HomeKit'
|
||||||
|
trigger:
|
||||||
|
- platform: homeassistant
|
||||||
|
event: start
|
||||||
|
action:
|
||||||
|
- delay: 00:05 # Waits 5 minutes
|
||||||
|
- service: homekit.start
|
||||||
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
|
|
||||||
|
## {% linkable_title Configure Filter %}
|
||||||
|
|
||||||
|
To limit which entities are being exposed to `HomeKit`, you can use the `filter` parameter. By default no entity will be excluded. Keep in mind though that only supported components can be added.
|
||||||
|
|
||||||
|
|
||||||
## {% linkable_title Supported Components %}
|
## {% linkable_title Supported Components %}
|
||||||
|
|
||||||
The following components are currently supported:
|
The following components are currently supported:
|
||||||
@ -59,8 +161,28 @@ The following components are currently supported:
|
|||||||
| --------- | --------- | ----------- |
|
| --------- | --------- | ----------- |
|
||||||
| alarm_control_panel | SecuritySystem | All security systems. |
|
| alarm_control_panel | SecuritySystem | All security systems. |
|
||||||
| climate | Thermostat | All climate devices. |
|
| climate | Thermostat | All climate devices. |
|
||||||
| cover | Window | All covers that support `set_cover_position`. |
|
| cover | WindowCovering | All covers that support `set_cover_position`. |
|
||||||
|
| light | Light | Support for `on / off`, `brightness` and `rgb_color`. |
|
||||||
| sensor | TemperatureSensor | All sensors that have `Celsius` and `Fahrenheit` as their `unit_of_measurement`. |
|
| sensor | TemperatureSensor | All sensors that have `Celsius` and `Fahrenheit` as their `unit_of_measurement`. |
|
||||||
| switch/remote | Switch | All switches or remotes (represented as switches). |
|
| sensor | HumiditySensor | All sensors that have `%` as their `unit_of_measurement` |
|
||||||
|
| switch / remote / input_boolean / script | Switch | All represented as switches. |
|
||||||
|
|
||||||
<p class='note'>Currently only devices that are setup when Home Assistant is starting can be exposed to `HomeKit`. This means that especially `Z-Wave` components are currently not supported, since they will be setup afterwards. We are working on a solution for this problem.</p>
|
|
||||||
|
## {% linkable_title Error reporting %}
|
||||||
|
|
||||||
|
If you encounter any issues or bug and want to report them on `GitHub`, please follow these steps to make it easier for others to help and get your issue solved.
|
||||||
|
|
||||||
|
1. Enable debugging mode:
|
||||||
|
```yaml
|
||||||
|
logger:
|
||||||
|
default: warning
|
||||||
|
logs:
|
||||||
|
homeassistant.components.homekit: debug
|
||||||
|
```
|
||||||
|
2. Reproduce the bug / problem you have encountered.
|
||||||
|
3. Stop Home Assistant and copy the log from the log file. That is necessary since some errors only get logged, when Home Assistant is being shutdown.
|
||||||
|
4. Follow this link: [home-assistant/issues/new](https://github.com/home-assistant/home-assistant/issues/new?labels=component: homekit) and open a new issue.
|
||||||
|
5. Fill out all fields and especially include the following information:
|
||||||
|
- The configuration entries for `homekit` and the `component` that is causing the issue.
|
||||||
|
- The log / traceback you have generated before.
|
||||||
|
- Screenshots of the failing entity in the `states` panel.
|
||||||
|
42
source/_components/homematicip.markdown
Normal file
42
source/_components/homematicip.markdown
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "HomematicIP"
|
||||||
|
description: "Instructions for integrating HomematicIP into Home Assistant."
|
||||||
|
date: 2018-03-06 20:40
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
ha_category: Hub
|
||||||
|
ha_iot_class: "Cloud Polling"
|
||||||
|
ha_release: 0.66
|
||||||
|
featured: false
|
||||||
|
---
|
||||||
|
|
||||||
|
The [HomematicIP](http://www.homematicip.com/) component platform is used as an interface to the cloud server.
|
||||||
|
For for communication [homematicip-rest-api](https://github.com/coreGreenberet/homematicip-rest-api) is used.
|
||||||
|
|
||||||
|
To set up the component:
|
||||||
|
|
||||||
|
- **generate the authentication token**:
|
||||||
|
```yaml
|
||||||
|
generate_auth_token.py
|
||||||
|
```
|
||||||
|
|
||||||
|
- ** add the information to your `configuration.yaml` file:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
homematicip:
|
||||||
|
- name: NAME
|
||||||
|
accesspoint: IDENTIFIER
|
||||||
|
authtoken: AUTHTOKEN
|
||||||
|
```
|
||||||
|
|
||||||
|
Configuration variables (global):
|
||||||
|
|
||||||
|
- **name** (*Required*): Name to identify your access point, this will be
|
||||||
|
used to prefix your device names.
|
||||||
|
- **accesspoint** (*Required*): This is the access point id (SGTIN)
|
||||||
|
- **authtoken** (*Required*): Authentification token generated with
|
||||||
|
`generate_auth_token.py`.
|
||||||
|
|
@ -19,26 +19,27 @@ The light component supports multiple entries in <code>configuration.yaml</code>
|
|||||||
|
|
||||||
Turns one light on or multiple lights on using [groups]({{site_root}}/components/group/).
|
Turns one light on or multiple lights on using [groups]({{site_root}}/components/group/).
|
||||||
|
|
||||||
Most lights do not support all attributes. You can check the platform documentation of your particular light for hints but in general you will have to try things out and see what works.
|
Most lights do not support all attributes. You can check the platform documentation of your particular light for hints, but in general, you will have to try things out and see what works.
|
||||||
|
|
||||||
| Service data attribute | Optional | Description |
|
| Service data attribute | Optional | Description |
|
||||||
| ---------------------- | -------- | ----------- |
|
| ---------------------- | -------- | ----------- |
|
||||||
| `entity_id` | no | String or list of strings that point at `entity_id`s of lights. Else targets all.
|
| `entity_id` | no | String or list of strings that point at `entity_id`s of lights. Else targets all.
|
||||||
| `transition` | yes | Number that represents the time (in seconds) the light should take to transition to the new state.
|
| `transition` | yes | Number that represents the time (in seconds) the light should take to transition to the new state.
|
||||||
| `profile` | yes | String with the name of one of the [built-in profiles](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/light/light_profiles.csv) (relax, energize, concentrate, reading) or one of the custom profiles defined in `light_profiles.csv` in the current working directory. Light profiles define a xy color and a brightness. If a profile is given and a brightness then the profile brightness will be overwritten.
|
| `profile` | yes | String with the name of one of the [built-in profiles](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/light/light_profiles.csv) (relax, energize, concentrate, reading) or one of the custom profiles defined in `light_profiles.csv` in the current working directory. Light profiles define an xy color and a brightness. If a profile is given and a brightness then the profile brightness will be overwritten.
|
||||||
| `xy_color` | yes | A list containing two floats representing the xy color you want the light to be. Two comma separated floats that represent the color in XY.
|
| `hs_color` | yes | A list containing two floats representing the hue and saturation of the color you want the light to be. Hue is scaled 0-360, and saturation is scaled 0-100.
|
||||||
| `rgb_color` | yes | A list containing three integers representing the rgb color you want the light to be. Three comma separated integers that represent the color in RGB. You can find a great chart here: [Hue Color Chart](http://www.developers.meethue.com/documentation/hue-xy-values)
|
| `xy_color` | yes | A list containing two floats representing the xy color you want the light to be. Two comma-separated floats that represent the color in XY. You can find a great chart here: [Hue Color Chart](https://developers.meethue.com/documentation/core-concepts#color_gets_more_complicated).
|
||||||
|
| `rgb_color` | yes | A list containing three integers between 0 and 255 representing the RGB color you want the light to be. Three comma-separated integers that represent the color in RGB. Note that the specified RGB value will not change the light brightness, only the color.
|
||||||
| `white_value` | yes | Integer between 0 and 255 for how bright a dedicated white LED should be.
|
| `white_value` | yes | Integer between 0 and 255 for how bright a dedicated white LED should be.
|
||||||
| `color_temp` | yes | An integer in mireds representing the color temperature you want the light to be.
|
| `color_temp` | yes | An integer in mireds representing the color temperature you want the light to be.
|
||||||
| `kelvin` | yes | Alternatively, you can specify the color temperature in Kelvin.
|
| `kelvin` | yes | Alternatively, you can specify the color temperature in Kelvin.
|
||||||
| `color_name` | yes | A human readable string of a color name, such as `blue` or `goldenrod`. All [CSS3 color names](https://www.w3.org/TR/2010/PR-css3-color-20101028/#svg-color) are supported.
|
| `color_name` | yes | A human-readable string of a color name, such as `blue` or `goldenrod`. All [CSS3 color names](https://www.w3.org/TR/2010/PR-css3-color-20101028/#svg-color) are supported.
|
||||||
| `brightness` | yes | Integer between 0 and 255 for how bright the color should be.
|
| `brightness` | yes | Integer between 0 and 255 for how bright the color should be.
|
||||||
| `brightness_pct`| yes | Alternatively, you can specify brightness in percent (a number between 0 and 100).
|
| `brightness_pct`| yes | Alternatively, you can specify brightness in percent (a number between 0 and 100).
|
||||||
| `flash` | yes | Tell light to flash, can be either value `short` or `long`.
|
| `flash` | yes | Tell light to flash, can be either value `short` or `long`.
|
||||||
| `effect`| yes | Applies an effect such as `colorloop` or `random`.
|
| `effect`| yes | Applies an effect such as `colorloop` or `random`.
|
||||||
|
|
||||||
<p class='note'>
|
<p class='note'>
|
||||||
In order to apply attributes to an entity you will need to add `data:` to the configuration. See example below
|
In order to apply attributes to an entity, you will need to add `data:` to the configuration. See example below
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
|
@ -13,9 +13,54 @@ ha_version: 0.53
|
|||||||
ha_iot_class: "Local Polling"
|
ha_iot_class: "Local Polling"
|
||||||
---
|
---
|
||||||
|
|
||||||
The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philips LED Ball Lamp, Xiaomi Philips LED Ceiling Lamp and Xiaomi Philips Eyecare Lamp 2.
|
The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philips LED Ball Lamp, Xiaomi Philips Zhirui LED Bulb E14 Candle Lamp, Xiaomi Philips LED Ceiling Lamp and Xiaomi Philips Eyecare Lamp 2.
|
||||||
|
|
||||||
Currently, the supported features are `on`, `off`, `set_cct` (colortemp) , `set_bright` (brightness).
|
## Features
|
||||||
|
|
||||||
|
### Philips LED Ball Lamp and Philips Zhirui LED Candle Lamp
|
||||||
|
|
||||||
|
* Power (on, off)
|
||||||
|
* Brightness
|
||||||
|
* Color temperature (175...333 mireds)
|
||||||
|
* Scene (1, 2, 3, 4)
|
||||||
|
* Delayed turn off (Resolution in seconds)
|
||||||
|
* Attributes
|
||||||
|
- model
|
||||||
|
- scene
|
||||||
|
- delayed_turn_off
|
||||||
|
|
||||||
|
### Philips LED Ceiling Lamp
|
||||||
|
|
||||||
|
* Power (on, off)
|
||||||
|
* Brightness
|
||||||
|
* Color temperature (175...370 mireds)
|
||||||
|
* Scene (1, 2, 3, 4)
|
||||||
|
* Night light mode (on, off)
|
||||||
|
* Delayed turn off (Resolution in seconds)
|
||||||
|
* Attributes
|
||||||
|
- model
|
||||||
|
- scene
|
||||||
|
- delayed_turn_off
|
||||||
|
- night_light_mode
|
||||||
|
- automatic_color_temperature
|
||||||
|
|
||||||
|
### Philips Eyecare Smart Lamp 2
|
||||||
|
|
||||||
|
* Eyecare light (on, off)
|
||||||
|
* Ambient light (on, off)
|
||||||
|
* Brightness (of each light)
|
||||||
|
* Scene (1, 2, 3, 4)
|
||||||
|
* Night light mode (on, off)
|
||||||
|
* Delayed turn off (Resolution in seconds)
|
||||||
|
* Eye fatigue reminder / notification (on, off)
|
||||||
|
* Eyecare mode (on, off)
|
||||||
|
* Attributes
|
||||||
|
- model
|
||||||
|
- scene
|
||||||
|
- delayed_turn_off
|
||||||
|
- night_light_mode
|
||||||
|
- reminder
|
||||||
|
- eyecare_mode
|
||||||
|
|
||||||
Please follow the instructions on [Retrieving the Access Token](/components/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token to use in the `configuration.yaml` file.
|
Please follow the instructions on [Retrieving the Access Token](/components/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token to use in the `configuration.yaml` file.
|
||||||
|
|
||||||
@ -35,7 +80,7 @@ Configuration variables:
|
|||||||
- **host** (*Required*): The IP of your light.
|
- **host** (*Required*): The IP of your light.
|
||||||
- **token** (*Required*): The API token of your light.
|
- **token** (*Required*): The API token of your light.
|
||||||
- **name** (*Optional*): The name of your light.
|
- **name** (*Optional*): The name of your light.
|
||||||
- **model** (*Optional*): The model of your light. Valid values are `philips.light.bulb`, `philips.light.sread1`, `philips.light.ceiling` and `philips.light.zyceiling`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available.
|
- **model** (*Optional*): The model of your light. Valid values are `philips.light.bulb`, `philips.light.candle2`, `philips.light.sread1`, `philips.light.ceiling` and `philips.light.zyceiling`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available.
|
||||||
|
|
||||||
{% configuration %}
|
{% configuration %}
|
||||||
host:
|
host:
|
||||||
@ -76,3 +121,51 @@ Delayed turn off.
|
|||||||
|---------------------------|----------|-------------------------------------------------------|
|
|---------------------------|----------|-------------------------------------------------------|
|
||||||
| `entity_id` | yes | Only act on a specific light. Else targets all. |
|
| `entity_id` | yes | Only act on a specific light. Else targets all. |
|
||||||
| `time_period` | no | Time period for the delayed turn off. |
|
| `time_period` | no | Time period for the delayed turn off. |
|
||||||
|
|
||||||
|
### {% linkable_title Service `light.xiaomi_miio_reminder_on` %} (Eyecare Smart Lamp 2 only)
|
||||||
|
|
||||||
|
Enable the eye fatigue reminder/notification.
|
||||||
|
|
||||||
|
| Service data attribute | Optional | Description |
|
||||||
|
|---------------------------|----------|-------------------------------------------------------|
|
||||||
|
| `entity_id` | yes | Only act on a specific light. Else targets all. |
|
||||||
|
|
||||||
|
### {% linkable_title Service `light.xiaomi_miio_reminder_off` %} (Eyecare Smart Lamp 2 only)
|
||||||
|
|
||||||
|
Disable the eye fatigue reminder/notification.
|
||||||
|
|
||||||
|
| Service data attribute | Optional | Description |
|
||||||
|
|---------------------------|----------|-------------------------------------------------------|
|
||||||
|
| `entity_id` | yes | Only act on a specific light. Else targets all. |
|
||||||
|
|
||||||
|
### {% linkable_title Service `light.xiaomi_miio_night_light_mode_on` %} (Eyecare Smart Lamp 2 only)
|
||||||
|
|
||||||
|
Turn the smart night light mode on.
|
||||||
|
|
||||||
|
| Service data attribute | Optional | Description |
|
||||||
|
|---------------------------|----------|-------------------------------------------------------|
|
||||||
|
| `entity_id` | yes | Only act on a specific light. Else targets all. |
|
||||||
|
|
||||||
|
### {% linkable_title Service `light.xiaomi_miio_night_light_mode_off` %} (Eyecare Smart Lamp 2 only)
|
||||||
|
|
||||||
|
Turn the smart night light mode off.
|
||||||
|
|
||||||
|
| Service data attribute | Optional | Description |
|
||||||
|
|---------------------------|----------|-------------------------------------------------------|
|
||||||
|
| `entity_id` | yes | Only act on a specific light. Else targets all. |
|
||||||
|
|
||||||
|
### {% linkable_title Service `light.xiaomi_miio_eyecare_mode_on` %} (Eyecare Smart Lamp 2 only)
|
||||||
|
|
||||||
|
Turn the eyecare mode on.
|
||||||
|
|
||||||
|
| Service data attribute | Optional | Description |
|
||||||
|
|---------------------------|----------|-------------------------------------------------------|
|
||||||
|
| `entity_id` | yes | Only act on a specific light. Else targets all. |
|
||||||
|
|
||||||
|
### {% linkable_title Service `light.xiaomi_miio_eyecare_mode_off` %} (Eyecare Smart Lamp 2 only)
|
||||||
|
|
||||||
|
Turn the eyecare mode off.
|
||||||
|
|
||||||
|
| Service data attribute | Optional | Description |
|
||||||
|
|---------------------------|----------|-------------------------------------------------------|
|
||||||
|
| `entity_id` | yes | Only act on a specific light. Else targets all. |
|
||||||
|
20
source/_components/lock.bmw_connected_drive.markdown
Executable file
20
source/_components/lock.bmw_connected_drive.markdown
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "BMW connected drive"
|
||||||
|
description: "Instructions on how to setup your BMW connected drive account with Home Assistant."
|
||||||
|
date: 2018-02-22 23:00
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: bmw.png
|
||||||
|
ha_category: Lock
|
||||||
|
ha_release: 0.66
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
The `bmw_connected_drive` platform allows you to import data on your BMW into Home Assistant.
|
||||||
|
|
||||||
|
The lock will be automatically configured if 'bmw_connected_drive' component is configured.
|
||||||
|
|
||||||
|
For more configuration information see the [bmw_connected_drive component](/components/bmw_connected_drive/) documentation.
|
19
source/_components/lock.homematic.markdown
Normal file
19
source/_components/lock.homematic.markdown
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Homematic Lock"
|
||||||
|
description: "Instructions on how to integrate Homematic locks within Home Assistant."
|
||||||
|
date: 2016-06-28 08:30
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: homematic.png
|
||||||
|
ha_category: Lock
|
||||||
|
ha_release: 0.66
|
||||||
|
ha_iot_class: "Local Push"
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
The `homematic` lock platform lets you control [Homematic](http://www.homematic.com/) locks through Home Assistant.
|
||||||
|
|
||||||
|
Devices will be configured automatically. Please refer to the [component](/components/homematic/) configuration on how to setup Homematic.
|
@ -30,3 +30,4 @@ Configuration variables:
|
|||||||
- **host** (*Required*): IP address of TV.
|
- **host** (*Required*): IP address of TV.
|
||||||
- **name** (*Optional*): The name you would like to give to the Philips TV.
|
- **name** (*Optional*): The name you would like to give to the Philips TV.
|
||||||
- **turn_on_action** (*Optional*): A script that will be executed to turn on the TV (can be used with wol).
|
- **turn_on_action** (*Optional*): A script that will be executed to turn on the TV (can be used with wol).
|
||||||
|
- **api_version** (*Optional*): The JointSpace API version of your Philips TV, defaults to `1`. This is an experimental option and not all the functionalities are guaranteed to work with API versions different from `1`.
|
||||||
|
@ -69,6 +69,8 @@ media_player:
|
|||||||
show_all_controls: false
|
show_all_controls: false
|
||||||
use_custom_entity_ids: true
|
use_custom_entity_ids: true
|
||||||
use_episode_art: true
|
use_episode_art: true
|
||||||
|
remove_unavailable_clients: true
|
||||||
|
client_remove_interval: 600
|
||||||
```
|
```
|
||||||
- **entity_namespace** (*Optional*): Prefix for entity ID's. Defaults to `null`. Useful when using overlapping components (ex. Apple TV and Plex components when you have Apple TV's you use as Plex clients). Go from _media_player.playroom2_ to _media_player.plex_playroom_
|
- **entity_namespace** (*Optional*): Prefix for entity ID's. Defaults to `null`. Useful when using overlapping components (ex. Apple TV and Plex components when you have Apple TV's you use as Plex clients). Go from _media_player.playroom2_ to _media_player.plex_playroom_
|
||||||
- **include_non_clients** (*Optional*): Display non-recontrollable clients (ex. remote clients, PlexConnect Apple TV's). Defaults to `false`.
|
- **include_non_clients** (*Optional*): Display non-recontrollable clients (ex. remote clients, PlexConnect Apple TV's). Defaults to `false`.
|
||||||
@ -76,6 +78,8 @@ media_player:
|
|||||||
- **show_all_controls** (*Optional*): Forces all controls to display. Defaults to `false`. Ignores dynamic controls (ex. show volume controls for client A but not for client B) based on detected client capabilities. This option allows you to override this detection if you suspect it to be incorrect.
|
- **show_all_controls** (*Optional*): Forces all controls to display. Defaults to `false`. Ignores dynamic controls (ex. show volume controls for client A but not for client B) based on detected client capabilities. This option allows you to override this detection if you suspect it to be incorrect.
|
||||||
- **use_custom_entity_ids** (*Optional*): Name Entity ID's by client ID's instead of friendly names. Defaults to `false`. HA assigns entity ID's on a first come first serve basis. When you have identically named devices connecting (ex. media_player.plex_web_safari, media_player.plex_web_safari2), you can't reliably distinguish and or predict which device is which. This option avoids this issue by using unique client ID's (ex. media_player.dy4hdna2drhn).
|
- **use_custom_entity_ids** (*Optional*): Name Entity ID's by client ID's instead of friendly names. Defaults to `false`. HA assigns entity ID's on a first come first serve basis. When you have identically named devices connecting (ex. media_player.plex_web_safari, media_player.plex_web_safari2), you can't reliably distinguish and or predict which device is which. This option avoids this issue by using unique client ID's (ex. media_player.dy4hdna2drhn).
|
||||||
- **use_episode_art** (*Optional*): Display TV episode art instead of TV show art. Defaults to `false`.
|
- **use_episode_art** (*Optional*): Display TV episode art instead of TV show art. Defaults to `false`.
|
||||||
|
- **remove_unavailable_clients** (*Optional*): Remove stale plex clients from UI after interval. Defaults to `true`.
|
||||||
|
- **client_remove_interval** (*Optional*): How long a client is to be unavailable for before it is cleaned up. Defaults to `600 seconds (10min)`.
|
||||||
|
|
||||||
### {% linkable_title Service `play_media` %}
|
### {% linkable_title Service `play_media` %}
|
||||||
|
|
||||||
|
63
source/_components/notify.stride.markdown
Normal file
63
source/_components/notify.stride.markdown
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Stride"
|
||||||
|
description: "Instructions how to add Stride notifications to Home Assistant."
|
||||||
|
date: 2018-03-14 15:00
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: stride.png
|
||||||
|
ha_category: Notifications
|
||||||
|
ha_release: 0.66
|
||||||
|
---
|
||||||
|
|
||||||
|
The `stride` platform allows you to send notifications from Home Assistant to [Stride](https://stride.com/).
|
||||||
|
|
||||||
|
You need to obtain a [Stride API token](https://developer.atlassian.com/cloud/stride/security/authentication/#using-room-tokens) to be able to send notifications. When creating the token, you'll see a section labeled "Use this conversation URL to post messages" - it will look something like "https://api.atlassian.com/site/55872e9f-047e-a619-b32c-19d37fbc6038/conversation/26c98c26-0ffd-a11e-3a55-1b397cb71fe0/message". The first set of numbers and letters (`55872e9f-047e-a619-b32c-19d37fbc6038`) is the Cloud ID, and the second set (`26c98c26-0ffd-a11e-3a55-1b397cb71fe0`) is the Room ID.
|
||||||
|
|
||||||
|
To enable the Stride notification in your installation, add the following to your `configuration.yaml` file:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Example configuration.yaml entry
|
||||||
|
notify:
|
||||||
|
- platform: stride
|
||||||
|
cloudid: CLOUD-ID
|
||||||
|
token: TOKEN
|
||||||
|
room: ROOM-ID
|
||||||
|
```
|
||||||
|
|
||||||
|
{% configuration %}
|
||||||
|
name:
|
||||||
|
description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`.
|
||||||
|
required: false
|
||||||
|
default: notify
|
||||||
|
type: string
|
||||||
|
cloudid:
|
||||||
|
description: The Stride Cloud ID to use for sending Stride notification.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
token:
|
||||||
|
description: The Stride API token to use for sending Stride notifications.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
room:
|
||||||
|
description: The default room to post to if no room is explicitly specified when sending the notification.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
panel:
|
||||||
|
description: Setting panel will override the default panel type (`None`) for the notification. By default not setting this will post to Stride without using a panel type. Valid options are 'None', 'info', 'note', 'tip', 'warning'.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
{% endconfiguration %}
|
||||||
|
|
||||||
|
### {% linkable_title Stride service data %}
|
||||||
|
|
||||||
|
The following attributes can be placed `data` for extended functionality.
|
||||||
|
|
||||||
|
| Service data attribute | Optional | Description |
|
||||||
|
| ---------------------- | -------- | ----------- |
|
||||||
|
| `room` | yes | (int) Same usage as in configuration.yaml. Overrides any setting set in configuration.yaml.
|
||||||
|
| `panel` | yes | (str) Same usage as in configuration.yaml. Overrides any setting set in configuration.yaml.
|
||||||
|
|
||||||
|
To use notifications, please see the [getting started with automation page](/getting-started/automation/).
|
@ -41,6 +41,46 @@ Configuration variables:
|
|||||||
- **api_key** (*Required*): Your API key.
|
- **api_key** (*Required*): Your API key.
|
||||||
- **name** (*Optional*): Additional name for the sensors. Default to platform name.
|
- **name** (*Optional*): Additional name for the sensors. Default to platform name.
|
||||||
- **forecast** array (*Optional*): List of days in the 7 day forecast you would like to receive data on, starting with tomorrow as day 1. Any `monitored_condition` with a daily forecast by DarkSky will generate a sensor tagged with `_<day>`.
|
- **forecast** array (*Optional*): List of days in the 7 day forecast you would like to receive data on, starting with tomorrow as day 1. Any `monitored_condition` with a daily forecast by DarkSky will generate a sensor tagged with `_<day>`.
|
||||||
|
- **language** (*Optional*): The desired language of the summary properties. Valid options are
|
||||||
|
- `ar`: Arabic
|
||||||
|
- `az`: Azerbaijani
|
||||||
|
- `be`: Belarusian
|
||||||
|
- `bg`: Bulgarian
|
||||||
|
- `bs`: Bosnian
|
||||||
|
- `ca`: Catalan
|
||||||
|
- `cs`: Czech
|
||||||
|
- `da`: Danish
|
||||||
|
- `de`: German
|
||||||
|
- `el`: Greek
|
||||||
|
- `en`: English (which is the default)
|
||||||
|
- `es`: Spanish
|
||||||
|
- `et`: Estonian
|
||||||
|
- `fi`: Finnish
|
||||||
|
- `fr`: French
|
||||||
|
- `hr`: Croatian
|
||||||
|
- `hu`: Hungarian
|
||||||
|
- `id`: Indonesian
|
||||||
|
- `is`: Icelandic
|
||||||
|
- `it`: Italian
|
||||||
|
- `ja`: Japanese
|
||||||
|
- `ka`: Georgian
|
||||||
|
- `kw`: Cornish
|
||||||
|
- `nb`: Norwegian Bokmål
|
||||||
|
- `nl`: Dutch
|
||||||
|
- `pl`: Polish
|
||||||
|
- `pt`: Portuguese
|
||||||
|
- `ro`: Romanian
|
||||||
|
- `ru`: Russian
|
||||||
|
- `sk`: Slovak
|
||||||
|
- `sl`: Slovenian
|
||||||
|
- `sr`: Serbian
|
||||||
|
- `sv`: Swedish
|
||||||
|
- `tet`: Tetum
|
||||||
|
- `tr`: Turkish
|
||||||
|
- `uk`: Ukrainian
|
||||||
|
- `x-pig-latin`: Igpay Atinlay
|
||||||
|
- `zh`: simplified Chinese
|
||||||
|
- `zh-tw`: traditional Chinese
|
||||||
- **latitude** (*Optional*): Latitude coordinate to monitor weather of (required if **longitude** is specified), defaults to coordinates defined in your `configuration.yaml`
|
- **latitude** (*Optional*): Latitude coordinate to monitor weather of (required if **longitude** is specified), defaults to coordinates defined in your `configuration.yaml`
|
||||||
- **longitude** (*Optional*): Longitude coordinate to monitor weather of (required if **latitude** is specified), defaults to coordinates defined in your `configuration.yaml`
|
- **longitude** (*Optional*): Longitude coordinate to monitor weather of (required if **latitude** is specified), defaults to coordinates defined in your `configuration.yaml`
|
||||||
- **monitored_conditions** array (*Required*): Conditions to display in the frontend.
|
- **monitored_conditions** array (*Required*): Conditions to display in the frontend.
|
||||||
|
@ -15,7 +15,7 @@ logo: home-assistant.png
|
|||||||
|
|
||||||
The `filter` platform enables sensors that process the states of other entities.
|
The `filter` platform enables sensors that process the states of other entities.
|
||||||
|
|
||||||
`filter` applies a signal processing algorithm to a sensor, previous and current states, and generates a `new state` given the chosen algorithm.
|
`filter` applies a signal processing algorithm to a sensor, previous and current states, and generates a `new state` given the chosen algorithm. The next image depicts an original sensor and the filter sensor of that same sensor using the [History Graph]({{site_roor}}/components/history_graph/) component.
|
||||||
|
|
||||||
<p class='img'>
|
<p class='img'>
|
||||||
<img src='{{site_root}}/images/screenshots/filter-sensor.png' />
|
<img src='{{site_root}}/images/screenshots/filter-sensor.png' />
|
||||||
@ -37,6 +37,18 @@ sensor:
|
|||||||
- filter: lowpass
|
- filter: lowpass
|
||||||
time_constant: 10
|
time_constant: 10
|
||||||
precision: 2
|
precision: 2
|
||||||
|
- platform: filter
|
||||||
|
name: "filtered realistic temperature"
|
||||||
|
entity_id: sensor.realistic_temperature
|
||||||
|
filters:
|
||||||
|
- filter: outlier
|
||||||
|
window_size: 4
|
||||||
|
radius: 2.0
|
||||||
|
- filter: lowpass
|
||||||
|
time_constant: 10
|
||||||
|
- filter: time_simple_moving_average
|
||||||
|
window_size: 00:05
|
||||||
|
precision: 2
|
||||||
```
|
```
|
||||||
|
|
||||||
Filters can be chained and are applied according to the order present in the configuration file.
|
Filters can be chained and are applied according to the order present in the configuration file.
|
||||||
@ -53,17 +65,17 @@ name:
|
|||||||
filters:
|
filters:
|
||||||
description: Filters to be used.
|
description: Filters to be used.
|
||||||
required: true
|
required: true
|
||||||
type: map
|
type: list
|
||||||
keys:
|
keys:
|
||||||
filter:
|
filter:
|
||||||
description: Algorithm to be used to filter data. Available filters are `lowpass`, `outlier` and `throttle`.
|
description: Algorithm to be used to filter data. Available filters are `lowpass`, `outlier`, `throttle` and `time_simple_moving_average`.
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
window_size:
|
window_size:
|
||||||
description: Size of the window of previous states.
|
description: Size of the window of previous states. Time based filters such as `time_simple_moving_average` will require a time period (size in time), while other filters such as `outlier` will require an integer (size in number of states)
|
||||||
required: false
|
required: false
|
||||||
type: int
|
type: [int, time]
|
||||||
default: 5
|
default: 1
|
||||||
precision:
|
precision:
|
||||||
description: See [_lowpass_](#low-pass) filter. Defines the precision of the filtered state, through the argument of round().
|
description: See [_lowpass_](#low-pass) filter. Defines the precision of the filtered state, through the argument of round().
|
||||||
required: false
|
required: false
|
||||||
@ -78,16 +90,21 @@ filters:
|
|||||||
description: See [_outlier_](#outlier) filter. Band radius from median of previous states.
|
description: See [_outlier_](#outlier) filter. Band radius from median of previous states.
|
||||||
required: false
|
required: false
|
||||||
type: float
|
type: float
|
||||||
default: 2.0
|
default: 2.0
|
||||||
|
type:
|
||||||
|
description: See [_time_simple_moving_average_](#time-simple-moving-average) filter. Defines the type of Simple Moving Average.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: last
|
||||||
{% endconfiguration %}
|
{% endconfiguration %}
|
||||||
|
|
||||||
## {% linkable_title Filters %}
|
## {% linkable_title Filters %}
|
||||||
|
|
||||||
### {% linkable_title Low-pass %}
|
### {% linkable_title Low-pass %}
|
||||||
|
|
||||||
The Low-pass filter (`lowpass`) is one of signal processing most common filters, as it smooths data by shortcuting peaks and valleys.
|
The Low-pass filter (`lowpass`) is one of signal processing most common filters, as it smooths data by shortcutting peaks and valleys.
|
||||||
|
|
||||||
The included Low-pass filter is very basic and is based on a moving average, in which the previous data point is weighted with the new data point.
|
The included Low-pass filter is very basic and is based on [exponential smoothing](https://en.wikipedia.org/wiki/Exponential_smoothing), in which the previous data point is weighted with the new data point.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
B = 1.0 / time_constant
|
B = 1.0 / time_constant
|
||||||
@ -120,3 +137,10 @@ To adjust the rate you need to set the window_size. To throttle a sensor down to
|
|||||||
|
|
||||||
This filter is relevant when you have a sensor which produces states at a very high-rate, which you might want to throttle down for storing or visualization purposes.
|
This filter is relevant when you have a sensor which produces states at a very high-rate, which you might want to throttle down for storing or visualization purposes.
|
||||||
|
|
||||||
|
### {% linkable_title Time Simple Moving Average %}
|
||||||
|
|
||||||
|
The Time SMA filter (`time_simple_moving_average`) is based on the paper [Algorithms for Unevenly Spaced Time Series: Moving Averages and Other Rolling Operators](http://www.eckner.com/papers/Algorithms%20for%20Unevenly%20Spaced%20Time%20Series.pdf) by Andreas Eckner.
|
||||||
|
|
||||||
|
The paper defines three types/versions of the Simple Moving Average (SMA): *last*, *next* and *linear*. Currently only *last* is implemented.
|
||||||
|
|
||||||
|
Theta, as described in the paper, is the `window_size` parameter, and can be expressed using time notation (e.g., 00:05 for a five minutes time window).
|
||||||
|
51
source/_components/sensor.foobot.markdown
Normal file
51
source/_components/sensor.foobot.markdown
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Foobot Air Quality Monitor"
|
||||||
|
description: "Instructions on how to setup Foobot Air Quality sensor in Home Assistant."
|
||||||
|
date: 2018-02-14 06:00
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: foobot.png
|
||||||
|
ha_category: Health
|
||||||
|
ha_release: 0.66
|
||||||
|
ha_iot_class: "Cloud Polling"
|
||||||
|
---
|
||||||
|
|
||||||
|
The `foobot` sensor platform will fetch air quality data from your or yours [Foobot device(s)](https://foobot.io/features/).
|
||||||
|
|
||||||
|
This sensor requires an API token. Please obtain one at [Foobot API site](https://api.foobot.io/apidoc/index.html).
|
||||||
|
|
||||||
|
## {% linkable_title Configuring the Platform %}
|
||||||
|
|
||||||
|
To enable this sensor, add the following lines to your `configuration.yaml` file:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
sensor:
|
||||||
|
- platform: foobot
|
||||||
|
token: FOOBOT_SECRET_KEY
|
||||||
|
username: FOOBOT_USERNAME
|
||||||
|
```
|
||||||
|
|
||||||
|
{% configuration %}
|
||||||
|
token:
|
||||||
|
description: The token for the Foobot API.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
username:
|
||||||
|
description: Your Foobot username, used to fetch devices associated with an account.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
{% endconfiguration %}
|
||||||
|
|
||||||
|
## {% linkable_title Available Metrics %}
|
||||||
|
|
||||||
|
Every ten minutes, it'll fetch the last ten minutes average of the following measurements:
|
||||||
|
|
||||||
|
* Temperature
|
||||||
|
* Humidity
|
||||||
|
* Co2
|
||||||
|
* VOC
|
||||||
|
* PM2.5
|
||||||
|
* [Index](https://help.foobot.io/hc/en-us/articles/204814371-What-does-central-number-mean-)
|
@ -58,6 +58,9 @@ sensor:
|
|||||||
- 'process_thread'
|
- 'process_thread'
|
||||||
- 'process_sleeping'
|
- 'process_sleeping'
|
||||||
- 'cpu_temp'
|
- 'cpu_temp'
|
||||||
|
- 'docker_active'
|
||||||
|
- 'docker_cpu_use'
|
||||||
|
- 'docker_memory_use'
|
||||||
```
|
```
|
||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
@ -81,5 +84,8 @@ Configuration variables:
|
|||||||
- **process_thread**: Number of threads
|
- **process_thread**: Number of threads
|
||||||
- **process_sleeping**: Number of sleeping processes
|
- **process_sleeping**: Number of sleeping processes
|
||||||
- **cpu_temp**: CPU Temperature (may not available on all platforms)
|
- **cpu_temp**: CPU Temperature (may not available on all platforms)
|
||||||
|
- **docker_active**: Count of active Docker containers
|
||||||
|
- **docker_cpu_use**: Total CPU usage in percent of Docker containers
|
||||||
|
- **docker_memory_use**: Total memory used of Docker containers
|
||||||
|
|
||||||
Not all platforms are able to provide all metrics. For instance `cpu_temp` is requires installing and configuring `lmsensors` in Ubuntu, and may not be available at all in other platforms.
|
Not all platforms are able to provide all metrics. For instance `cpu_temp` is requires installing and configuring `lmsensors` in Ubuntu, and may not be available at all in other platforms.
|
||||||
|
18
source/_components/sensor.homematicip.markdown
Normal file
18
source/_components/sensor.homematicip.markdown
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "HomematicIP Sensor"
|
||||||
|
description: "Instructions on how to integrate Homematic sensors within Home Assistant."
|
||||||
|
date: 2016-06-28 08:30
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: homematic.png
|
||||||
|
ha_category: Sensor
|
||||||
|
ha_release: 0.66
|
||||||
|
ha_iot_class: "Local Push"
|
||||||
|
---
|
||||||
|
|
||||||
|
The `homematicip` sensor platform lets you control [Homematic](http://www.homematic.com/) sensors through Home Assistant.
|
||||||
|
|
||||||
|
Devices will be configured automatically. Please refer to the [component](/components/homematicip/) configuration on how to setup Homematic.
|
@ -8,13 +8,13 @@ comments: false
|
|||||||
sharing: true
|
sharing: true
|
||||||
footer: true
|
footer: true
|
||||||
ha_category: Sensor
|
ha_category: Sensor
|
||||||
ha_release: 0.64
|
ha_release: 0.65
|
||||||
ha_iot_class: "Cloud Polling"
|
ha_iot_class: "Cloud Polling"
|
||||||
---
|
---
|
||||||
|
|
||||||
The `spotcrime` sensor allows one to track reported incidents occurring in a given area. Incidents include anything reported to [Spot Crime](http://spotcrime.com). Your regional emergency services may or may not report data. The sensor defaults to counting incidents within one day, but can be customized via configuration.yaml.
|
The `spotcrime` sensor allows one to track reported incidents occurring in a given area. Incidents include anything reported to [Spot Crime](http://spotcrime.com). Your regional emergency services may or may not report data. The sensor defaults to counting incidents within one day, but can be customized via configuration.yaml.
|
||||||
|
|
||||||
## Configuration
|
You will need to request an API key from [Spotcrime](mailto:pyrrhus@spotcrime.com).
|
||||||
|
|
||||||
To enable this sensor, add the following lines to your `configuration.yaml`. Your `radius` should be of sufficient size to capture incidents in your area. 0.01 = 1 mile.
|
To enable this sensor, add the following lines to your `configuration.yaml`. Your `radius` should be of sufficient size to capture incidents in your area. 0.01 = 1 mile.
|
||||||
|
|
||||||
@ -23,23 +23,39 @@ sensor:
|
|||||||
- platform: spotcrime
|
- platform: spotcrime
|
||||||
name: <any name>
|
name: <any name>
|
||||||
radius: <your radius>
|
radius: <your radius>
|
||||||
days: <your days>
|
api_key: <"your_api_key_here">
|
||||||
```
|
```
|
||||||
|
|
||||||
Configuration options for the Crime Reports Sensor:
|
{% configuration %}
|
||||||
|
name:
|
||||||
|
description: Name the sensor what you'd like.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
radius:
|
||||||
|
description: Radius you'd like to search within. 0.01 = 1 mile.
|
||||||
|
required: true
|
||||||
|
type: float
|
||||||
|
api_key:
|
||||||
|
description: The API key to access the service.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
days:
|
||||||
|
description: Number of days you'd like see to crime statistics for.
|
||||||
|
required: false
|
||||||
|
type: int
|
||||||
|
include:
|
||||||
|
description: Event types you want statistics for.
|
||||||
|
required: false
|
||||||
|
type: list
|
||||||
|
exclude:
|
||||||
|
description: Event types to ignore statistics for.
|
||||||
|
required: false
|
||||||
|
type: list
|
||||||
|
{% endconfiguration %}
|
||||||
|
|
||||||
- **name** (*Required*): Name the sensor whatever you want.
|
## {% linkable_title Notes %}
|
||||||
- **radius** (*Required*): Radius in miles.
|
|
||||||
- **days** (*Optional*): Defaults to 1 day.
|
|
||||||
- **latitude** (*Optional*): Defaults to your home zone latitude.
|
|
||||||
- **longitude** (*Optional*): Defaults to your home zone longitude.
|
|
||||||
- **include** (*Optional*): List of incident types to include.
|
|
||||||
- **exclude** (*Optional*): List of incident types to exclude.
|
|
||||||
|
|
||||||
|
### {% linkable_title Incident Types %}
|
||||||
## Notes
|
|
||||||
|
|
||||||
### Incident Types
|
|
||||||
|
|
||||||
You can explicitly include or exclude incident types. Specifying `include`s restricts the incidents to those types. Specifying `exclude`s will return all incident types except those specified.
|
You can explicitly include or exclude incident types. Specifying `include`s restricts the incidents to those types. Specifying `exclude`s will return all incident types except those specified.
|
||||||
|
|
||||||
@ -55,6 +71,6 @@ These incident types are available:
|
|||||||
- Vandalism
|
- Vandalism
|
||||||
- Other
|
- Other
|
||||||
|
|
||||||
### Events
|
### {% linkable_title Events %}
|
||||||
|
|
||||||
The `crimealerts` sensor fires a `crimealerts_incident` event when a new incident is detected, including the type, time, and location of the incident.
|
The `crimealerts` sensor fires a `crimealerts_incident` event when a new incident is detected, including the type, time, and location of the incident.
|
||||||
|
89
source/_components/sensor.syncthru.markdown
Normal file
89
source/_components/sensor.syncthru.markdown
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Samsung SyncThru Printer"
|
||||||
|
description: "Instructions on how to integrate a Samsung printer providing SyncThru within Home Assistant."
|
||||||
|
date: 2018-02-19 23:33
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: samsung.png
|
||||||
|
ha_category: Sensor
|
||||||
|
ha_iot_class: "Local Polling"
|
||||||
|
ha_release: 0.66
|
||||||
|
---
|
||||||
|
|
||||||
|
The Samsung SyncThru Printer platform allows you to read current data from your local Samsung printer.
|
||||||
|
|
||||||
|
It usually provides information about the device's state, the left amount of ink or toner and the state of paper trays.
|
||||||
|
The platform automatically monitors every supported part.
|
||||||
|
|
||||||
|
If you wish not to include certain monitored values specify the values that you would like to see in the front-end via the `monitored_conditions` setting.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Example configuration.yaml entry
|
||||||
|
sensor:
|
||||||
|
- platform: syncthru
|
||||||
|
resource: http://my-printer.address
|
||||||
|
name: My Awesome Printer
|
||||||
|
monitored_conditions:
|
||||||
|
- toner_black
|
||||||
|
- output_tray_0
|
||||||
|
```
|
||||||
|
|
||||||
|
{% configuration %}
|
||||||
|
resource:
|
||||||
|
description: The address for connecting to the printer. Equal to the SyncThru Webservice address.
|
||||||
|
required: true
|
||||||
|
default: false
|
||||||
|
type: url
|
||||||
|
name:
|
||||||
|
description: A user specified name for the printer. Defaults to "Samsung Printer" and the friendly name will be the name of the printer model.
|
||||||
|
required: false
|
||||||
|
default: Samsung Printer
|
||||||
|
type: string
|
||||||
|
monitored_conditions:
|
||||||
|
description: Conditions to display in the frontend.
|
||||||
|
required: false
|
||||||
|
default: all values
|
||||||
|
type: list
|
||||||
|
keys:
|
||||||
|
toner_black:
|
||||||
|
description: Black toner fill level
|
||||||
|
toner_cyan:
|
||||||
|
description: Cyan toner fill level
|
||||||
|
toner_magenta:
|
||||||
|
description: Magenta toner fill level
|
||||||
|
toner_yellow:
|
||||||
|
description: Yellow toner fill level
|
||||||
|
drum_black:
|
||||||
|
description: Black drum state
|
||||||
|
drum_cyan:
|
||||||
|
description: Cyan drum state
|
||||||
|
drum_magenta:
|
||||||
|
description: Magenta drum state
|
||||||
|
drum_yellow:
|
||||||
|
description: Yellow drum state
|
||||||
|
tray_1:
|
||||||
|
description: First paper input tray state
|
||||||
|
tray_2:
|
||||||
|
description: Second paper input tray state
|
||||||
|
tray_3:
|
||||||
|
description: Third paper input tray state
|
||||||
|
tray_4:
|
||||||
|
description: Fourth paper input tray state
|
||||||
|
tray_5:
|
||||||
|
description: Fifth paper input tray state
|
||||||
|
output_tray_0:
|
||||||
|
description: First paper output tray state
|
||||||
|
output_tray_1:
|
||||||
|
description: Second paper output tray state
|
||||||
|
output_tray_2:
|
||||||
|
description: Third paper output tray state
|
||||||
|
output_tray_3:
|
||||||
|
description: Fourth paper output tray state
|
||||||
|
output_tray_4:
|
||||||
|
description: Fifth paper output tray state
|
||||||
|
output_tray_5:
|
||||||
|
description: Sixth paper output tray state
|
||||||
|
{% endconfiguration %}
|
@ -13,7 +13,6 @@ ha_release: 0.55
|
|||||||
ha_iot_class: "Cloud Polling"
|
ha_iot_class: "Cloud Polling"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
The `tibber` sensor provides the current electricity price if you are a [Tibber](https://tibber.com/) customer.
|
The `tibber` sensor provides the current electricity price if you are a [Tibber](https://tibber.com/) customer.
|
||||||
|
|
||||||
To add Tibber to your installation, add the following to your `configuration.yaml` file:
|
To add Tibber to your installation, add the following to your `configuration.yaml` file:
|
||||||
@ -31,3 +30,31 @@ sensor:
|
|||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
{% endconfiguration %}
|
{% endconfiguration %}
|
||||||
|
|
||||||
|
## {% linkable_title Examples %}
|
||||||
|
|
||||||
|
In this section, you will find some real-life examples of how to use this sensor.
|
||||||
|
|
||||||
|
### {% linkable_title Electricity price %}
|
||||||
|
|
||||||
|
The electricity price can be used to make automations. The sensor has a `max_price` and `min_price` attribute, with max and min price for the current day. Here is an example to get a notification when the price is above 90% of the maximum price for the day:
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
```yaml
|
||||||
|
- alias: "Electricity price"
|
||||||
|
trigger:
|
||||||
|
platform: time
|
||||||
|
# Matches every hour at 1 minutes past whole
|
||||||
|
minutes: 1
|
||||||
|
seconds: 00
|
||||||
|
condition:
|
||||||
|
condition: template
|
||||||
|
value_template: '{{ float(states.sensor.electricity_price_hamretunet_10.state) > 0.9 * float(states.sensor.electricity_price_hamretunet_10.attributes.max_price) }}'
|
||||||
|
action:
|
||||||
|
- service: notify.pushbullet
|
||||||
|
data:
|
||||||
|
title: "Electricity price"
|
||||||
|
target: "device/daniel_telefon_cat"
|
||||||
|
message: "The electricity price is now {{ states.sensor.electricity_price_hamretunet_10.state }}"
|
||||||
|
```
|
||||||
|
{% endraw %}
|
||||||
|
@ -0,0 +1,86 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Trafikverket WeatherStation"
|
||||||
|
description: "Instructions how to integrate Trafikverket WeatherStation within Home Assistant."
|
||||||
|
date: 2018-02-01 12:06
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: trafikverket.png
|
||||||
|
ha_category: Sensor
|
||||||
|
ha_release: 0.66.0
|
||||||
|
---
|
||||||
|
|
||||||
|
Showing weather information for air and road temperature provided by [Trafikverket](https://www.trafikverket.se/) in Sweden.
|
||||||
|
|
||||||
|
Potential use cases:
|
||||||
|
- Get weather data in general
|
||||||
|
- You live near a weather station and want to know the current temperature at home
|
||||||
|
- Setup automations for your car heating system. If the road is frozen along the way to work, you might want the car heating system to start earlier.
|
||||||
|
|
||||||
|
##### {% linkable_title Configuration %}
|
||||||
|
|
||||||
|
To enable this sensor, add the following lines to your `configuration.yaml`.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
sensor:
|
||||||
|
- platform: trafikverket_weatherstations
|
||||||
|
name: Trafikverket Road WeatherStation Kungälv
|
||||||
|
api_key: eXXcbXXXacXXXXc39XX3aXXX4aXX46XX
|
||||||
|
station: Kungälv
|
||||||
|
type: road
|
||||||
|
```
|
||||||
|
|
||||||
|
{% configuration %}
|
||||||
|
name:
|
||||||
|
description: Unique name of the device in the frontend.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
api_key:
|
||||||
|
description: API key from Trafikverket.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
station:
|
||||||
|
description: Name of the weather station.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
type:
|
||||||
|
description: Defines which temperature you want (`air` or `road`).
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
scan_interval:
|
||||||
|
description: How frequently to query for new data (in seconds).
|
||||||
|
required: false
|
||||||
|
type: int
|
||||||
|
default: 300
|
||||||
|
{% endconfiguration %}
|
||||||
|
|
||||||
|
##### {% linkable_title Obtaining API key %}
|
||||||
|
|
||||||
|
Please click [here](https://api.trafikinfo.trafikverket.se/) and register to obtain the API key.
|
||||||
|
|
||||||
|
##### {% linkable_title Weather stations %}
|
||||||
|
|
||||||
|
Click [here](https://www.trafikverket.se/trafikinformation/vag/?TrafficType=personalTraffic&map=1/606442.17/6886316.22/&Layers=RoadWeather%2b) to get a map of valid weather stations. Once a station is found, copy the name according to the below picture and paste it in your `configuration.yaml` file as the `station` variable.
|
||||||
|
|
||||||
|
<p class='img'>
|
||||||
|
<img src='{{site_root}}/images/screenshots/get_trafikverket_weather_station_example.png' />
|
||||||
|
</p>
|
||||||
|
|
||||||
|
##### {% linkable_title Examples %}
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
sensor:
|
||||||
|
- platform: trafikverket_weatherstations
|
||||||
|
name: Trafikverket Road WeatherStation Kungälv
|
||||||
|
api_key: eXXcbXXXacXXXXc39XX3aXXX4aXX46XX
|
||||||
|
station: Kungälv
|
||||||
|
type: road
|
||||||
|
- platform: trafikverket_weatherstations
|
||||||
|
name: Trafikverket Air WeatherStation Lanna
|
||||||
|
api_key: eXXcbXXXacXXXXc39XX3aXXX4aXX46XX
|
||||||
|
station: Lanna
|
||||||
|
type: air
|
||||||
|
scan_interval: 600
|
||||||
|
```
|
@ -13,7 +13,6 @@ ha_iot_class: "Cloud Polling"
|
|||||||
ha_release: "0.30"
|
ha_release: "0.30"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
The `vasttrafik` sensor will provide you traveling details for the larger Göteborg area in Sweden from the [Västtrafik](https://vasttrafik.se/) public transportation service.
|
The `vasttrafik` sensor will provide you traveling details for the larger Göteborg area in Sweden from the [Västtrafik](https://vasttrafik.se/) public transportation service.
|
||||||
|
|
||||||
You must create an application [here](https://developer.vasttrafik.se/portal/#/applications) to obtain a `key` and a `secret`.
|
You must create an application [here](https://developer.vasttrafik.se/portal/#/applications) to obtain a `key` and a `secret`.
|
||||||
@ -34,10 +33,11 @@ Configuration variables:
|
|||||||
|
|
||||||
- **key** (*Required*): The API key to access your Västtrafik account.
|
- **key** (*Required*): The API key to access your Västtrafik account.
|
||||||
- **secret** (*Required*): The API secret to access your Västtrafik account.
|
- **secret** (*Required*): The API secret to access your Västtrafik account.
|
||||||
- **departures** array (*Required*): List of traveling routes.
|
- **departures** array (*Required*): List of travel routes.
|
||||||
- **name** (*Optional*): Name of the route.
|
- **name** (*Optional*): Name of the route.
|
||||||
- **from** (*Required*): The start station.
|
- **from** (*Required*): The start station.
|
||||||
- **heading** (*Optional*): Direction of the traveling.
|
- **heading** (*Optional*): Direction of the traveling.
|
||||||
|
- **lines** (*Optional*): Only consider these lines.
|
||||||
- **delay** (*Optional*): Delay in minutes. Defaults to 0.
|
- **delay** (*Optional*): Delay in minutes. Defaults to 0.
|
||||||
|
|
||||||
The data are coming from [Västtrafik](https://vasttrafik.se/).
|
The data are coming from [Västtrafik](https://vasttrafik.se/).
|
||||||
@ -54,5 +54,8 @@ sensor:
|
|||||||
- name: Mot järntorget
|
- name: Mot järntorget
|
||||||
from: Musikvägen
|
from: Musikvägen
|
||||||
heading: Järntorget
|
heading: Järntorget
|
||||||
|
lines:
|
||||||
|
- 7
|
||||||
|
- GRÖN
|
||||||
delay: 10
|
delay: 10
|
||||||
```
|
```
|
||||||
|
55
source/_components/sensor.xiaomi_miio.markdown
Normal file
55
source/_components/sensor.xiaomi_miio.markdown
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Xiaomi Air Quality Monitor"
|
||||||
|
description: "Instructions how to integrate your Xiaomi Mi Air Quality Monitor within Home Assistant."
|
||||||
|
date: 2018-02-28 08:35
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: xiaomi.png
|
||||||
|
ha_category: Sensor
|
||||||
|
ha_version: 0.66
|
||||||
|
ha_iot_class: "Local Polling"
|
||||||
|
---
|
||||||
|
|
||||||
|
The `xiaomi_miio` sensor platform is observing your Xiaomi Mi Air Quality Monitor (PM2.5) and reporting the air quality index.
|
||||||
|
|
||||||
|
Currently, the supported features are:
|
||||||
|
|
||||||
|
* Air Quality Index (AQI)
|
||||||
|
* Attributes
|
||||||
|
- power
|
||||||
|
- charging
|
||||||
|
- battery
|
||||||
|
- time_stat
|
||||||
|
|
||||||
|
Please follow the instructions on [Retrieving the Access Token](/components/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token.
|
||||||
|
|
||||||
|
To add a Xiaomi Mi Air Quality Monitor to your installation, add the following to your `configuration.yaml` file:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
sensor:
|
||||||
|
# Example configuration.yaml entry
|
||||||
|
sensor:
|
||||||
|
- platform: xiaomi_miio
|
||||||
|
name: Xiaomi Air Quality Monitor
|
||||||
|
host: 192.168.130.73
|
||||||
|
token: YOUR_TOKEN
|
||||||
|
```
|
||||||
|
|
||||||
|
{% configuration %}
|
||||||
|
host:
|
||||||
|
description: The IP address of your miio device.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
token:
|
||||||
|
description: The API token of your miio device.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
description: The name of your miio device.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: Xiaomi Miio Sensor
|
||||||
|
{% endconfiguration %}
|
36
source/_components/switch.vesync.markdown
Normal file
36
source/_components/switch.vesync.markdown
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "VeSync Switch"
|
||||||
|
description: "Instructions on how to set up Etekcity VeSync switches within Home Assistant."
|
||||||
|
date: 2018-03-09 02:11
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: vesync.png
|
||||||
|
ha_category: Switch
|
||||||
|
ha_release: 0.66
|
||||||
|
---
|
||||||
|
|
||||||
|
The `vesync` switch platform enabled integration with Etekcity VeSync smart switches.
|
||||||
|
|
||||||
|
To use your VeSync switches, you must first register your switches with the VeSync app. Once registration is complete you must add the following to your `configuration.yaml` file:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Example configuration.yaml entry
|
||||||
|
switch:
|
||||||
|
- platform: vesync
|
||||||
|
username: username
|
||||||
|
password: password
|
||||||
|
```
|
||||||
|
|
||||||
|
{% configuration %}
|
||||||
|
username:
|
||||||
|
description: Username needed to log in to VeSync.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
password:
|
||||||
|
description: Password needed to log in to VeSync.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
{% endconfiguration %}
|
@ -13,12 +13,38 @@ ha_version: 0.56
|
|||||||
ha_iot_class: "Local Polling"
|
ha_iot_class: "Local Polling"
|
||||||
---
|
---
|
||||||
|
|
||||||
The `xiaomi_miio` switch platform allows you to control the state of your Xiaomi Smart WiFi Socket aka Plug or Xiaomi Smart Power Strip.
|
The `xiaomi_miio` switch platform allows you to control the state of your Xiaomi Smart WiFi Socket aka Plug, Xiaomi Smart Power Strip and Xiaomi Chuangmi Plug V1.
|
||||||
|
|
||||||
Currently, the supported features are `on`, `off`. If the device provides the current load, it will be reported.
|
|
||||||
|
|
||||||
Please follow the instructions on [Retrieving the Access Token](/components/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token to use in the `configuration.yaml` file.
|
Please follow the instructions on [Retrieving the Access Token](/components/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token to use in the `configuration.yaml` file.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
### Xiaomi Smart WiFi Socket
|
||||||
|
|
||||||
|
* Power (on, off)
|
||||||
|
* Attributes
|
||||||
|
- Temperature
|
||||||
|
|
||||||
|
### Xiaomi Chuangmi Plug V1
|
||||||
|
|
||||||
|
* Power (on, off)
|
||||||
|
* USB (on, off)
|
||||||
|
* Attributes
|
||||||
|
- Temperature
|
||||||
|
|
||||||
|
### Xiaomi Smart Power Strip
|
||||||
|
|
||||||
|
* Power (on, off)
|
||||||
|
* Wifi LED (on, off)
|
||||||
|
* Power Price (0...999)
|
||||||
|
* Power Mode (green, normal) (Power Strip V1 only)
|
||||||
|
* Attributes
|
||||||
|
- Temperature
|
||||||
|
- Current
|
||||||
|
- Load power
|
||||||
|
- Wifi LED
|
||||||
|
- Mode (Power Strip V1 only)
|
||||||
|
|
||||||
To add a plug to your installation, add the following to your `configuration.yaml` file:
|
To add a plug to your installation, add the following to your `configuration.yaml` file:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
@ -35,7 +61,7 @@ Configuration variables:
|
|||||||
- **host** (*Required*): The IP of your miio device.
|
- **host** (*Required*): The IP of your miio device.
|
||||||
- **token** (*Required*): The API token of your miio device.
|
- **token** (*Required*): The API token of your miio device.
|
||||||
- **name** (*Optional*): The name of your miio device.
|
- **name** (*Optional*): The name of your miio device.
|
||||||
- **model** (*Optional*): The model of your miio device. Valid values are chuangmi.plug.v1`, `qmi.powerstrip.v1`, `zimi.powerstrip.v2`, `chuangmi.plug.m1` and `chuangmi.plug.v2`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available.
|
- **model** (*Optional*): The model of your miio device. Valid values are `chuangmi.plug.v1`, `qmi.powerstrip.v1`, `zimi.powerstrip.v2`, `chuangmi.plug.m1` and `chuangmi.plug.v2`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available.
|
||||||
|
|
||||||
{% configuration %}
|
{% configuration %}
|
||||||
host:
|
host:
|
||||||
@ -56,3 +82,39 @@ model:
|
|||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
{% endconfiguration %}
|
{% endconfiguration %}
|
||||||
|
|
||||||
|
## {% linkable_title Platform Services %}
|
||||||
|
|
||||||
|
### {% linkable_title Service `switch.xiaomi_miio_set_wifi_led_on` %} (Power Strip only)
|
||||||
|
|
||||||
|
Turn the wifi led on.
|
||||||
|
|
||||||
|
| Service data attribute | Optional | Description |
|
||||||
|
|---------------------------|----------|---------------------------------------------------------|
|
||||||
|
| `entity_id` | yes | Only act on a specific xiaomi miio switch entity. Else targets all. |
|
||||||
|
|
||||||
|
### {% linkable_title Service `switch.xiaomi_miio_set_wifi_led_off` %} (Power Strip only)
|
||||||
|
|
||||||
|
Turn the wifi led off.
|
||||||
|
|
||||||
|
| Service data attribute | Optional | Description |
|
||||||
|
|---------------------------|----------|---------------------------------------------------------|
|
||||||
|
| `entity_id` | yes | Only act on a specific xiaomi miio switch entity. Else targets all. |
|
||||||
|
|
||||||
|
### {% linkable_title Service `switch.xiaomi_miio_set_power_price` %} (Power Strip)
|
||||||
|
|
||||||
|
Set the power price.
|
||||||
|
|
||||||
|
| Service data attribute | Optional | Description |
|
||||||
|
|---------------------------|----------|---------------------------------------------------------|
|
||||||
|
| `entity_id` | yes | Only act on a specific xiaomi miio switch entity. Else targets all. |
|
||||||
|
| `price` | no | Power price, between 0 and 999. |
|
||||||
|
|
||||||
|
### {% linkable_title Service `switch.xiaomi_miio_set_power_mode` %} (Power Strip V1 only)
|
||||||
|
|
||||||
|
Set the power mode.
|
||||||
|
|
||||||
|
| Service data attribute | Optional | Description |
|
||||||
|
|---------------------------|----------|---------------------------------------------------------------|
|
||||||
|
| `entity_id` | yes | Only act on a specific xiaomi miio switch entity. Else targets all. |
|
||||||
|
| `mode` | no | Power mode, valid values are 'normal' and 'green' |
|
||||||
|
@ -19,10 +19,12 @@ This component creates notification services to send, or edit previously sent, m
|
|||||||
|
|
||||||
If you don't need to receive messages, you can use the [broadcast](/components/telegram_bot.broadcast/) platform instead.
|
If you don't need to receive messages, you can use the [broadcast](/components/telegram_bot.broadcast/) platform instead.
|
||||||
|
|
||||||
### {% linkable_title Notification services %}
|
## {% linkable_title Notification services %}
|
||||||
Available services: `send_message`, `send_photo`, `send_document`, `send_location`, `edit_message`, `edit_replymarkup`, `edit_caption`, `answer_callback_query`.
|
|
||||||
|
Available services: `send_message`, `send_photo`, `send_document`, `send_location`, `send_sticker`, `edit_message`, `edit_replymarkup`, `edit_caption` and `answer_callback_query`.
|
||||||
|
|
||||||
|
### {% linkable_title Service `telegram_bot.send_message` %}
|
||||||
|
|
||||||
#### {% linkable_title Service `telegram_bot/send_message` %}
|
|
||||||
Send a notification.
|
Send a notification.
|
||||||
|
|
||||||
| Service data attribute | Optional | Description |
|
| Service data attribute | Optional | Description |
|
||||||
@ -36,7 +38,8 @@ Send a notification.
|
|||||||
| `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` |
|
| `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` |
|
||||||
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
|
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
|
||||||
|
|
||||||
#### {% linkable_title Service `telegram_bot/send_photo` %}
|
### {% linkable_title Service `telegram_bot.send_photo` and `telegram_bot.send_sticker` %}
|
||||||
|
|
||||||
Send a photo.
|
Send a photo.
|
||||||
|
|
||||||
| Service data attribute | Optional | Description |
|
| Service data attribute | Optional | Description |
|
||||||
@ -44,16 +47,16 @@ Send a photo.
|
|||||||
| `url` | no | Remote path to an image. |
|
| `url` | no | Remote path to an image. |
|
||||||
| `file` | no | Local path to an image. |
|
| `file` | no | Local path to an image. |
|
||||||
| `caption` | yes | The title of the image. |
|
| `caption` | yes | The title of the image. |
|
||||||
| `username` | yes | Username for a URL which require HTTP basic authentication. |
|
| `username` | yes | Username for a URL which requires HTTP basic authentication. |
|
||||||
| `password` | yes | Password for a URL which require HTTP basic authentication. |
|
| `password` | yes | Password for a URL which requires HTTP basic authentication. |
|
||||||
| `authentication` | yes | Define which authentication method to use. Set to `digest` to use HTTP digest authentication. Defaults to `basic`. |
|
| `authentication` | yes | Define which authentication method to use. Set to `digest` to use HTTP digest authentication. Defaults to `basic`. |
|
||||||
| `target` | yes | An array of pre-authorized chat_ids or user_ids to send the notification to. Defaults to the first allowed chat_id. |
|
| `target` | yes | An array of pre-authorized chat_ids or user_ids to send the notification to. Defaults to the first allowed chat_id. |
|
||||||
| `disable_notification` | yes | True/false for send the message silently. iOS users and web users will not receive a notification, Android users will receive a notification with no sound. Defaults to False. |
|
| `disable_notification` | yes | True/false for send the message silently. iOS users and web users will not receive a notification, Android users will receive a notification with no sound. Defaults to False. |
|
||||||
| `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` |
|
| `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` |
|
||||||
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
|
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
|
||||||
|
|
||||||
|
### {% linkable_title Service `telegram_bot.send_video` %}
|
||||||
|
|
||||||
#### {% linkable_title Service `telegram_bot/send_video` %}
|
|
||||||
Send a video.
|
Send a video.
|
||||||
|
|
||||||
| Service data attribute | Optional | Description |
|
| Service data attribute | Optional | Description |
|
||||||
@ -69,7 +72,8 @@ Send a video.
|
|||||||
| `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` |
|
| `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` |
|
||||||
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
|
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
|
||||||
|
|
||||||
#### {% linkable_title Service `telegram_bot/send_document` %}
|
### {% linkable_title Service `telegram_bot.send_document` %}
|
||||||
|
|
||||||
Send a document.
|
Send a document.
|
||||||
|
|
||||||
| Service data attribute | Optional | Description |
|
| Service data attribute | Optional | Description |
|
||||||
@ -77,15 +81,16 @@ Send a document.
|
|||||||
| `url` | no | Remote path to a document. |
|
| `url` | no | Remote path to a document. |
|
||||||
| `file` | no | Local path to a document. |
|
| `file` | no | Local path to a document. |
|
||||||
| `caption` | yes | The title of the document. |
|
| `caption` | yes | The title of the document. |
|
||||||
| `username` | yes | Username for a URL which require HTTP basic authentication. |
|
| `username` | yes | Username for a URL which requires HTTP basic authentication. |
|
||||||
| `password` | yes | Password for a URL which require HTTP basic authentication. |
|
| `password` | yes | Password for a URL which requires HTTP basic authentication. |
|
||||||
| `authentication` | yes | Define which authentication method to use. Set to `digest` to use HTTP digest authentication. Defaults to `basic`. |
|
| `authentication` | yes | Define which authentication method to use. Set to `digest` to use HTTP digest authentication. Defaults to `basic`. |
|
||||||
| `target` | yes | An array of pre-authorized chat_ids or user_ids to send the notification to. Defaults to the first allowed chat_id. |
|
| `target` | yes | An array of pre-authorized chat_ids or user_ids to send the notification to. Defaults to the first allowed chat_id. |
|
||||||
| `disable_notification` | yes | True/false for send the message silently. iOS users and web users will not receive a notification, Android users will receive a notification with no sound. Defaults to False. |
|
| `disable_notification` | yes | True/false for send the message silently. iOS users and web users will not receive a notification, Android users will receive a notification with no sound. Defaults to False. |
|
||||||
| `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` |
|
| `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` |
|
||||||
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
|
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
|
||||||
|
|
||||||
#### {% linkable_title Service `telegram_bot/send_location` %}
|
### {% linkable_title Service `telegram_bot.send_location` %}
|
||||||
|
|
||||||
Send a location.
|
Send a location.
|
||||||
|
|
||||||
| Service data attribute | Optional | Description |
|
| Service data attribute | Optional | Description |
|
||||||
@ -97,7 +102,8 @@ Send a location.
|
|||||||
| `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` |
|
| `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` |
|
||||||
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
|
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
|
||||||
|
|
||||||
#### {% linkable_title Service `telegram_bot/edit_message` %}
|
### {% linkable_title Service `telegram_bot.edit_message` %}
|
||||||
|
|
||||||
Edit a previously sent message in a conversation.
|
Edit a previously sent message in a conversation.
|
||||||
|
|
||||||
| Service data attribute | Optional | Description |
|
| Service data attribute | Optional | Description |
|
||||||
@ -110,7 +116,8 @@ Edit a previously sent message in a conversation.
|
|||||||
| `disable_web_page_preview`| yes | True/false for disable link previews for links in the message. |
|
| `disable_web_page_preview`| yes | True/false for disable link previews for links in the message. |
|
||||||
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
|
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
|
||||||
|
|
||||||
#### {% linkable_title Service `telegram_bot/edit_caption` %}
|
### {% linkable_title Service `telegram_bot.edit_caption` %}
|
||||||
|
|
||||||
Edit the caption of a previously sent message.
|
Edit the caption of a previously sent message.
|
||||||
|
|
||||||
| Service data attribute | Optional | Description |
|
| Service data attribute | Optional | Description |
|
||||||
@ -121,8 +128,9 @@ Edit the caption of a previously sent message.
|
|||||||
| `disable_web_page_preview`| yes | True/false for disable link previews for links in the message. |
|
| `disable_web_page_preview`| yes | True/false for disable link previews for links in the message. |
|
||||||
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
|
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
|
||||||
|
|
||||||
#### {% linkable_title Service `telegram_bot/edit_replymarkup` %}
|
### {% linkable_title Service `telegram_bot.edit_replymarkup` %}
|
||||||
Edit the inline keyboard of a previusly sent message.
|
|
||||||
|
Edit the inline keyboard of a previously sent message.
|
||||||
|
|
||||||
| Service data attribute | Optional | Description |
|
| Service data attribute | Optional | Description |
|
||||||
|---------------------------|----------|--------------------------------------------------|
|
|---------------------------|----------|--------------------------------------------------|
|
||||||
@ -131,7 +139,8 @@ Edit the inline keyboard of a previusly sent message.
|
|||||||
| `disable_web_page_preview`| yes | True/false for disable link previews for links in the message. |
|
| `disable_web_page_preview`| yes | True/false for disable link previews for links in the message. |
|
||||||
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
|
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
|
||||||
|
|
||||||
#### {% linkable_title Service `telegram_bot/answer_callback_query` %}
|
### {% linkable_title Service `telegram_bot.answer_callback_query` %}
|
||||||
|
|
||||||
Respond to a callback query originated by clicking on an online keyboard button. The answer will be displayed to the user as a notification at the top of the chat screen or as an alert.
|
Respond to a callback query originated by clicking on an online keyboard button. The answer will be displayed to the user as a notification at the top of the chat screen or as an alert.
|
||||||
|
|
||||||
| Service data attribute | Optional | Description |
|
| Service data attribute | Optional | Description |
|
||||||
@ -140,7 +149,7 @@ Respond to a callback query originated by clicking on an online keyboard button.
|
|||||||
| `callback_query_id` | no | Unique id of the callback response. In the `telegram_callback` event data: `{{ trigger.event.data.id }}` |
|
| `callback_query_id` | no | Unique id of the callback response. In the `telegram_callback` event data: `{{ trigger.event.data.id }}` |
|
||||||
| `show_alert` | yes | True/false for show a permanent notification. Defaults to False. |
|
| `show_alert` | yes | True/false for show a permanent notification. Defaults to False. |
|
||||||
|
|
||||||
#### {% linkable_title Service `telegram_bot/delete_message` %}
|
### {% linkable_title Service `telegram_bot.delete_message` %}
|
||||||
Delete a previously sent message in a conversation.
|
Delete a previously sent message in a conversation.
|
||||||
|
|
||||||
| Service data attribute | Optional | Description |
|
| Service data attribute | Optional | Description |
|
||||||
@ -148,12 +157,12 @@ Delete a previously sent message in a conversation.
|
|||||||
| `message_id` | no | Id of the message to delete. When answering a callback from a pressed button, the id of the origin message is in: `{{ trigger.event.data.message.message_id }}`. You can use `"last"` to refer to the last message sent to `chat_id`. |
|
| `message_id` | no | Id of the message to delete. When answering a callback from a pressed button, the id of the origin message is in: `{{ trigger.event.data.message.message_id }}`. You can use `"last"` to refer to the last message sent to `chat_id`. |
|
||||||
| `chat_id` | no | The chat_id where to delete the message. |
|
| `chat_id` | no | The chat_id where to delete the message. |
|
||||||
|
|
||||||
### {% linkable_title `Telegram` notification platform %}
|
## {% linkable_title `telegram` notification platform %}
|
||||||
|
|
||||||
|
The [`telegram` notification platform](/components/notify.telegram/) requires the `telegram_bot` component to work with, and it's designed to generate a customized shortcut (`notify.USERNAME`) to send notifications (messages, photos, documents and locations) to a particular `chat_id` with the old syntax, allowing backward compatibility.
|
||||||
The [Telegram notification platform](/components/notify.telegram/) requires the `telegram_bot` component to work with, and it's designed to generate a customized shortcut (`notify.USERNAME`) to send notifications (messages, photos, documents and locations) to a particular `chat_id` with the old syntax, allowing backward compatibility.
|
|
||||||
|
|
||||||
The required yaml configuration now reduces to:
|
The required yaml configuration now reduces to:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
notify:
|
notify:
|
||||||
- name: NOTIFIER_NAME
|
- name: NOTIFIER_NAME
|
||||||
@ -161,8 +170,7 @@ notify:
|
|||||||
chat_id: USER_CHAT_ID
|
chat_id: USER_CHAT_ID
|
||||||
```
|
```
|
||||||
|
|
||||||
### {% linkable_title Event triggering %}
|
## {% linkable_title Event triggering %}
|
||||||
|
|
||||||
|
|
||||||
A command looks like `/thecommand`, or `/othercommand with some args`.
|
A command looks like `/thecommand`, or `/othercommand with some args`.
|
||||||
|
|
||||||
@ -189,7 +197,7 @@ chat_id: "<origin chat id>"
|
|||||||
chat: "<chat info>"
|
chat: "<chat info>"
|
||||||
```
|
```
|
||||||
|
|
||||||
if the message is sent from a [press from an inline button](https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating), for example, a callback query is received, and Home Assistant will fire a `telegram_callback` event with:
|
If the message is sent from a [press from an inline button](https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating), for example, a callback query is received, and Home Assistant will fire a `telegram_callback` event with:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
data: "<data associated to action callback>"
|
data: "<data associated to action callback>"
|
||||||
@ -204,7 +212,6 @@ chat_id: "<origin chat id>"
|
|||||||
|
|
||||||
### {% linkable_title Configuration samples %}
|
### {% linkable_title Configuration samples %}
|
||||||
|
|
||||||
|
|
||||||
Simple ping pong example.
|
Simple ping pong example.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
@ -221,7 +228,7 @@ action:
|
|||||||
message: 'pong'
|
message: 'pong'
|
||||||
```
|
```
|
||||||
|
|
||||||
Example that show keyboard interaction with `notify.telegram`
|
An example that shows keyboard interaction with `notify.telegram`
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
trigger:
|
trigger:
|
||||||
@ -256,8 +263,9 @@ action:
|
|||||||
entity_id: switch.vision_zm1601eu5_battery_operated_siren_switch_9_0
|
entity_id: switch.vision_zm1601eu5_battery_operated_siren_switch_9_0
|
||||||
```
|
```
|
||||||
|
|
||||||
An example to show the use of event_data in the action:
|
An example to show the use of event_data in action:
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
```yaml
|
```yaml
|
||||||
- alias: 'Kitchen Telegram Speak'
|
- alias: 'Kitchen Telegram Speak'
|
||||||
trigger:
|
trigger:
|
||||||
@ -269,17 +277,21 @@ An example to show the use of event_data in the action:
|
|||||||
- service: notify.kitchen_echo
|
- service: notify.kitchen_echo
|
||||||
data_template:
|
data_template:
|
||||||
message: >
|
message: >
|
||||||
Message from {% raw %}{{ trigger.event.data["from_first"] }}. {% for state in trigger.event.data["args"] %} {{ state }} {% endfor %}{% endraw %}
|
Message from {{ trigger.event.data["from_first"] }}. {% for state in trigger.event.data["args"] %} {{ state }} {% endfor %}
|
||||||
```
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
### {% linkable_title Sample automations with callback queries and inline keyboards %}
|
### {% linkable_title Sample automations with callback queries and inline keyboards %}
|
||||||
|
|
||||||
Quick example to show some of the callback capabilities of inline keyboards with a dumb automation consisting in a simple repeater of normal text that presents an inline keyboard with 3 buttons: 'EDIT', 'NO' and 'REMOVE BUTTON':
|
A quick example to show some of the callback capabilities of inline keyboards with a dumb automation consisting in a simple repeater of normal text that presents an inline keyboard with 3 buttons: 'EDIT', 'NO' and 'REMOVE BUTTON':
|
||||||
|
|
||||||
- Pressing 'EDIT' changes the sent message.
|
- Pressing 'EDIT' changes the sent message.
|
||||||
- Pressing 'NO' only shows a brief notification (answering the callback query).
|
- Pressing 'NO' only shows a brief notification (answering the callback query).
|
||||||
- Pressing 'REMOVE BUTTON' changes the inline keyboard removing that button.
|
- Pressing 'REMOVE BUTTON' changes the inline keyboard removing that button.
|
||||||
|
|
||||||
Text repeater:
|
Text repeater:
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
```yaml
|
```yaml
|
||||||
- alias: 'Telegram bot that repeats text'
|
- alias: 'Telegram bot that repeats text'
|
||||||
hide_entity: true
|
hide_entity: true
|
||||||
@ -290,15 +302,18 @@ Text repeater:
|
|||||||
- service: telegram_bot.send_message
|
- service: telegram_bot.send_message
|
||||||
data_template:
|
data_template:
|
||||||
title: '*Dumb automation*'
|
title: '*Dumb automation*'
|
||||||
target: {% raw %}'{{ trigger.event.data.user_id }}'{% endraw %}
|
target: '{{ trigger.event.data.user_id }}'
|
||||||
message: 'You said: {% raw %}{{ trigger.event.data.text }}{% endraw %}'
|
message: 'You said: {{ trigger.event.data.text }}'
|
||||||
disable_notification: true
|
disable_notification: true
|
||||||
inline_keyboard:
|
inline_keyboard:
|
||||||
- "Edit message:/edit_msg, Don't:/do_nothing"
|
- "Edit message:/edit_msg, Don't:/do_nothing"
|
||||||
- "Remove this button:/remove button"
|
- "Remove this button:/remove button"
|
||||||
```
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
Message editor:
|
Message editor:
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
```yaml
|
```yaml
|
||||||
- alias: 'Telegram bot that edits the last sent message'
|
- alias: 'Telegram bot that edits the last sent message'
|
||||||
hide_entity: true
|
hide_entity: true
|
||||||
@ -315,19 +330,22 @@ Message editor:
|
|||||||
show_alert: true
|
show_alert: true
|
||||||
- service: telegram_bot.edit_message
|
- service: telegram_bot.edit_message
|
||||||
data_template:
|
data_template:
|
||||||
message_id: {% raw %}'{{ trigger.event.data.message.message_id }}'{% endraw %}
|
message_id: '{{ trigger.event.data.message.message_id }}'
|
||||||
chat_id: {% raw %}'{{ trigger.event.data.chat_id }}'{% endraw %}
|
chat_id: '{{ trigger.event.data.chat_id }}'
|
||||||
title: '*Message edit*'
|
title: '*Message edit*'
|
||||||
inline_keyboard:
|
inline_keyboard:
|
||||||
- "Edit message:/edit_msg, Don't:/do_nothing"
|
- "Edit message:/edit_msg, Don't:/do_nothing"
|
||||||
- "Remove this button:/remove button"
|
- "Remove this button:/remove button"
|
||||||
message: >
|
message: >
|
||||||
{% raw %}Callback received from {% raw %}{{ trigger.event.data.from_first }}{% endraw %}.
|
Callback received from {{ trigger.event.data.from_first }}.
|
||||||
Message id: {% raw %}{{ trigger.event.data.message.message_id }}{% endraw %}.
|
Message id: {{ trigger.event.data.message.message_id }}.
|
||||||
Data: {% raw %}{{ trigger.event.data.data }}{% endraw %}
|
Data: {{ trigger.event.data.data }}
|
||||||
```
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
Keyboard editor:
|
Keyboard editor:
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
```yaml
|
```yaml
|
||||||
- alias: 'Telegram bot that edits the keyboard'
|
- alias: 'Telegram bot that edits the keyboard'
|
||||||
hide_entity: true
|
hide_entity: true
|
||||||
@ -339,17 +357,20 @@ Keyboard editor:
|
|||||||
action:
|
action:
|
||||||
- service: telegram_bot.answer_callback_query
|
- service: telegram_bot.answer_callback_query
|
||||||
data_template:
|
data_template:
|
||||||
callback_query_id: {% raw %}'{{ trigger.event.data.id }}'{% endraw %}
|
callback_query_id: '{{ trigger.event.data.id }}'
|
||||||
message: 'Callback received for editing the inline keyboard!'
|
message: 'Callback received for editing the inline keyboard!'
|
||||||
- service: telegram_bot.edit_replymarkup
|
- service: telegram_bot.edit_replymarkup
|
||||||
data_template:
|
data_template:
|
||||||
message_id: 'last'
|
message_id: 'last'
|
||||||
chat_id: {% raw %}'{{ trigger.event.data.chat_id }}'{% endraw %}
|
chat_id: '{{ trigger.event.data.chat_id }}'
|
||||||
inline_keyboard:
|
inline_keyboard:
|
||||||
- "Edit message:/edit_msg, Don't:/do_nothing"
|
- "Edit message:/edit_msg, Don't:/do_nothing"
|
||||||
```
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
Only acknowledges the 'NO' answer:
|
Only acknowledges the 'NO' answer:
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
```yaml
|
```yaml
|
||||||
- alias: 'Telegram bot that simply acknowledges'
|
- alias: 'Telegram bot that simply acknowledges'
|
||||||
hide_entity: true
|
hide_entity: true
|
||||||
@ -361,9 +382,10 @@ Only acknowledges the 'NO' answer:
|
|||||||
action:
|
action:
|
||||||
- service: telegram_bot.answer_callback_query
|
- service: telegram_bot.answer_callback_query
|
||||||
data_template:
|
data_template:
|
||||||
callback_query_id: {% raw %}'{{ trigger.event.data.id }}'{% endraw %}
|
callback_query_id: '{{ trigger.event.data.id }}'
|
||||||
message: 'OK, you said no!'
|
message: 'OK, you said no!'
|
||||||
```
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
For a more complex usage of the `telegram_bot` capabilities, using [AppDaemon](/docs/ecosystem/appdaemon/tutorial/) is advised.
|
For a more complex usage of the `telegram_bot` capabilities, using [AppDaemon](/docs/ecosystem/appdaemon/tutorial/) is advised.
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ There is currently support for the following device types within Home Assistant:
|
|||||||
- [Sensor](../sensor.zha) (e.g., temperature sensors)
|
- [Sensor](../sensor.zha) (e.g., temperature sensors)
|
||||||
- [Light](../light.zha)
|
- [Light](../light.zha)
|
||||||
- [Switch](../switch.zha)
|
- [Switch](../switch.zha)
|
||||||
|
- [Fan](../fan.zha)
|
||||||
|
|
||||||
Known working ZigBee radios:
|
Known working ZigBee radios:
|
||||||
|
|
||||||
|
12
source/_cookbook/configuration_yaml_by_gummientchen.markdown
Normal file
12
source/_cookbook/configuration_yaml_by_gummientchen.markdown
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Configuration.yaml by Gummientchen"
|
||||||
|
description: ""
|
||||||
|
date: 2018-03-23 09:13
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
ha_category: Example configuration.yaml
|
||||||
|
ha_external_link: https://github.com/Gummientchen/Home-AssistantConfig
|
||||||
|
---
|
@ -9,11 +9,12 @@ sharing: true
|
|||||||
footer: true
|
footer: true
|
||||||
---
|
---
|
||||||
|
|
||||||
Backing up your Home Assistant configuration to USB drive. A good plus side is that you don't need to mask all your passwords since the backup is locally at your home/residence.
|
This will step you through the process of setting up a backup of your Home Assistant configuration to a USB device. This is a good method if you don't want to mask all of your passwords since the backup is kept locally at your home/residence.
|
||||||
|
|
||||||
### {% linkable_title Requirements %}
|
### {% linkable_title Requirements %}
|
||||||
First you need a USB drive. Once you have one you need to prepare it to be used on your device.
|
|
||||||
Once connected you want to format/work with the drive. To know what path it is in, you can check with `dmesg`.
|
First, you need a USB drive. It should be formatted properly for your device and connected to your device before beginning. Any type of partition will work, but Linux filesystems are preferred so that you can set permissions.
|
||||||
|
Once connected you want to mount the drive. To find the path where it is located, you can use the `dmesg` command.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# dmesg | grep sd
|
# dmesg | grep sd
|
||||||
@ -32,16 +33,17 @@ Once connected you want to format/work with the drive. To know what path it is i
|
|||||||
[726259.209004] sd 0:0:0:0: [sda] Attached SCSI removable disk
|
[726259.209004] sd 0:0:0:0: [sda] Attached SCSI removable disk
|
||||||
```
|
```
|
||||||
|
|
||||||
Here we see we have a drive on `/dev/sda1`. We assume you created a partition on the drive to start with. This can be any type of partition. Preferred is a Linux filesystem type so you can set permissions!
|
The device here is `sda` and our partition is `sda1`. So our partition is located here `/dev/sda1`.
|
||||||
|
|
||||||
Mount the drive (as root) to `/media`
|
Mount the drive (as root) to `/media`
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# mount /dev/sda1 /media/
|
# sudo mount /dev/sda1 /media/
|
||||||
```
|
```
|
||||||
|
|
||||||
### {% linkable_title Prepare USB Stick %}
|
### {% linkable_title Prepare the USB Device %}
|
||||||
Change into it and create a folder called `hassbackup` and change the ownership to the user that runs Home Assistant. In my case group and user are both `homeassistant`.
|
|
||||||
|
Change to the `/media` directory and create a folder called `hassbackup`. Change the ownership to the user that runs Home Assistant. In this example case, the user and group are both `homeassistant`.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# cd /media/
|
# cd /media/
|
||||||
@ -54,11 +56,10 @@ drwxr-xr-x 22 root root 4096 Mar 22 18:37 ..
|
|||||||
drwxr-xr-x 2 homeassistant homeassistant 4096 Apr 29 10:36 hassbackup
|
drwxr-xr-x 2 homeassistant homeassistant 4096 Apr 29 10:36 hassbackup
|
||||||
drwx------ 2 root root 16384 Apr 29 10:18 lost+found
|
drwx------ 2 root root 16384 Apr 29 10:18 lost+found
|
||||||
```
|
```
|
||||||
You can ignore 'lost+found'.
|
|
||||||
|
|
||||||
### {% linkable_title Install Dependency %}
|
### {% linkable_title Install Dependency %}
|
||||||
|
|
||||||
In order to preserve space on your drive we use zip. Install that too.
|
The script in the next section uses zip to preserve space on your drive. So we will install zip next.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
/media# apt-get install zip
|
/media# apt-get install zip
|
||||||
@ -68,9 +69,9 @@ Building dependency tree
|
|||||||
Setting up zip (3.0-8) ...
|
Setting up zip (3.0-8) ...
|
||||||
```
|
```
|
||||||
|
|
||||||
### {% linkable_title Install and run script %}
|
### {% linkable_title Download and Run Script %}
|
||||||
|
|
||||||
Become the `homeassistant` user and place the following [script](https://gist.github.com/riemers/041c6a386a2eab95c55ba3ccaa10e7b0) to a place of your liking.
|
Become the `homeassistant` user (or whatever user runs Home Assistant). Change to whatever directory you would like the [script](https://gist.github.com/riemers/041c6a386a2eab95c55ba3ccaa10e7b0) placed into and run the following command.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# wget https://gist.githubusercontent.com/riemers/041c6a386a2eab95c55ba3ccaa10e7b0/raw/86727d4e72e9757da4f68f1c9d784720e72d0e99/usb_backup.sh
|
# wget https://gist.githubusercontent.com/riemers/041c6a386a2eab95c55ba3ccaa10e7b0/raw/86727d4e72e9757da4f68f1c9d784720e72d0e99/usb_backup.sh
|
||||||
@ -82,7 +83,7 @@ Make the downloaded script executable.
|
|||||||
# chmod +x usb_backup.sh
|
# chmod +x usb_backup.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Open up the file and change the paths you want to use, then simply run the `./usb_backup.sh`.
|
Edit the script file using your preferred text editor (use nano if you are not advanced). Change the paths to reflect your configuration, then simply run `./usb_backup.sh`.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ .homeassistant/extraconfig/shell_code/usb_backup.sh
|
$ .homeassistant/extraconfig/shell_code/usb_backup.sh
|
||||||
@ -91,26 +92,27 @@ $ .homeassistant/extraconfig/shell_code/usb_backup.sh
|
|||||||
[i] Keeping all files no prunning set
|
[i] Keeping all files no prunning set
|
||||||
```
|
```
|
||||||
|
|
||||||
### {% linkable_title Crontab %}
|
### {% linkable_title Set Up Crontab %}
|
||||||
In order for this to automatically make a backup every night at 3 am, you can add a crontab for it as the `homeassistant` user.
|
|
||||||
Change below path to where you placed the `usb_backup.sh` and run the following line.
|
To automatically backup your configuration on a schedule, you can add a crontab for it as the `homeassistant` user.
|
||||||
|
Change the path below to the directory where you placed the `usb_backup.sh` and run the following line. This will backup every night at 3 am.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
(crontab -l 2>/dev/null; echo "0 3 * * * /home/homeassistant/.homeassistant/extraconfig/shell_code/usb_backup.sh") | crontab -
|
(crontab -l 2>/dev/null; echo "0 3 * * * /home/homeassistant/.homeassistant/extraconfig/shell_code/usb_backup.sh") | crontab -
|
||||||
```
|
```
|
||||||
|
|
||||||
### {% linkable_title Auto mount %}
|
### {% linkable_title Auto Mount the USB Device %}
|
||||||
|
|
||||||
This does not automatically mount your USB drive at boot. You need to do that manually or add a line to your `/etc/fstab` file.
|
NOTE: This does not automatically mount your USB drive at boot. You will need to manually mount your drive after each boot or add a line to your `/etc/fstab` file.
|
||||||
|
|
||||||
If your drive is on `/dev/sda1`, you could add an entry to your `/etc/fstab` like so:
|
To manually mount a USB drive located at `/dev/sda1`, run the following line:
|
||||||
|
|
||||||
```text
|
|
||||||
/dev/sda1 /media ext4 defaults,noatime 0 1
|
|
||||||
```
|
|
||||||
|
|
||||||
Manual step to mount the USB drive:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# mount /dev/sda1 /media
|
# mount /dev/sda1 /media
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Alternatively, auto-mount the drive by adding the following entry to your `/etc/fstab`:
|
||||||
|
|
||||||
|
```text
|
||||||
|
/dev/sda1 /media ext4 defaults,noatime 0 1
|
||||||
|
```
|
||||||
|
@ -82,10 +82,8 @@ This will display the Z-Wave related information about the node:
|
|||||||
* **lastResponseRTT** The Round Trip Time of the response to the last request
|
* **lastResponseRTT** The Round Trip Time of the response to the last request
|
||||||
* **manufacturer_name** The name of the manufacturer, as supplied by OpenZWave
|
* **manufacturer_name** The name of the manufacturer, as supplied by OpenZWave
|
||||||
* **max_baud_rate** The maximum bandwidth the device supports, most modern devices will support 40,000 or higher
|
* **max_baud_rate** The maximum bandwidth the device supports, most modern devices will support 40,000 or higher
|
||||||
* **new_entity_id** In 0.47, Home Assistant introduced a new naming convention for entities, this shows the new naming convention
|
|
||||||
* **node_id** The unique node ID of this node
|
* **node_id** The unique node ID of this node
|
||||||
* **node_name** The base name of this node, this is used to build the entity ID of all entities of this node
|
* **node_name** The base name of this node, this is used to build the entity ID of all entities of this node
|
||||||
* **old_entity_id** If `new_entity_ids: false` has been configured, then this is the entity_id that will be used. Support for this will be removed in the future
|
|
||||||
* **product_name** The product name of the device, as supplied by OpenZWave
|
* **product_name** The product name of the device, as supplied by OpenZWave
|
||||||
* **query_stage** The query stage for this device (see [here](/docs/z-wave/query-stage/) for details)
|
* **query_stage** The query stage for this device (see [here](/docs/z-wave/query-stage/) for details)
|
||||||
* **receivedCnt** The number of messages received from the device
|
* **receivedCnt** The number of messages received from the device
|
||||||
|
@ -77,11 +77,6 @@ debug:
|
|||||||
required: false
|
required: false
|
||||||
type: boolean
|
type: boolean
|
||||||
default: False
|
default: False
|
||||||
new_entity_ids:
|
|
||||||
description: Switch to new entity_id generation.
|
|
||||||
required: false
|
|
||||||
type: boolean
|
|
||||||
default: True
|
|
||||||
device_config / device_config_domain / device_config_glob:
|
device_config / device_config_domain / device_config_glob:
|
||||||
description: This attribute contains node-specific override values. (For releases prior to 0.39 this variable is called **customize**) See [Customizing devices and services](/docs/configuration/customizing-devices/) for the format.
|
description: This attribute contains node-specific override values. (For releases prior to 0.39 this variable is called **customize**) See [Customizing devices and services](/docs/configuration/customizing-devices/) for the format.
|
||||||
required: false
|
required: false
|
||||||
|
555
source/_posts/2018-03-30-release-66.markdown
Normal file
555
source/_posts/2018-03-30-release-66.markdown
Normal file
@ -0,0 +1,555 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: "0.66: ...."
|
||||||
|
description: "...."
|
||||||
|
date: 2018-03-30 00:01:00
|
||||||
|
date_formatted: "March 30, 2018"
|
||||||
|
author: Paulus Schoutsen
|
||||||
|
author_twitter: balloob
|
||||||
|
comments: true
|
||||||
|
categories: Release-Notes
|
||||||
|
og_image: /images/blog/2018-03-0.66/components.png
|
||||||
|
---
|
||||||
|
|
||||||
|
<a href='/components/#version/0.66'><img src='/images/blog/2018-03-0.66/components.png' style='border: 0;box-shadow: none;'></a>
|
||||||
|
|
||||||
|
This is the first release with our new release schedule. During the extra week we had a total of 4 beta releases with a total of [26 fixes](https://github.com/home-assistant/home-assistant/milestone/128?closed=1). So this should be the most stable release yet!
|
||||||
|
|
||||||
|
It's also a release that is full of goodies. 80 people contributed over 223 fixes, improvements and new integrations during the last 2 weeks of this release 😎 I want to highlight the work of two people who are doing an amazing job: [@NovapaX] has been doing a great job triaging and fixing weird quirks and bugs in the frontend. And I want to give a shout out to [@armills] who has enabled backend translations. This means that a bunch of things that did not have translations yet, will now soon be translatable. We're planning some cool things with this!
|
||||||
|
|
||||||
|
A quick note if you are using Philips Hue and a Hue custom component: it will no longer work due to the internal changes to the Hue platform. Remove the custom component to ensure that your Hue lights keep working.
|
||||||
|
|
||||||
|
## New Platforms
|
||||||
|
|
||||||
|
- Add new platform for VeSync switches ([@markperdue] - [#13000]) ([switch.vesync docs]) (new-platform)
|
||||||
|
- HomeKit Restructure (new config options) ([@cdce8p] - [#12997]) ([homekit docs]) (breaking change) (new-platform)
|
||||||
|
- Added cover.group platform (replaces #12303) ([@cdce8p] - [#12692]) ([cover.group docs]) (new-platform)
|
||||||
|
- Add extra sensors for BMW ConnectedDrive ([@gerard33] - [#12591]) ([bmw_connected_drive docs]) ([binary_sensor.bmw_connected_drive docs]) ([lock.bmw_connected_drive docs]) ([sensor.bmw_connected_drive docs]) (new-platform)
|
||||||
|
- Homekit: New supported devices ([@cdce8p] - [#13244]) ([homekit docs]) (new-platform)
|
||||||
|
- Adding Foobot device sensor ([@reefab] - [#12417]) ([sensor.foobot docs]) (new-platform)
|
||||||
|
- Added Stride notification component ([@BioSehnsucht] - [#13221]) ([notify docs]) (new-platform)
|
||||||
|
- Xiaomi MiIO Sensor: Xiaomi Air Quality Monitor (PM2.5) integration ([@syssi] - [#13264]) ([sensor.xiaomi_miio docs]) (new-platform)
|
||||||
|
- Add initial support fo HomematicIP components ([@mxworm] - [#12761]) ([homematicip docs]) ([sensor.homematicip docs]) (new-platform)
|
||||||
|
- Support for security systems controlled by IFTTT ([@maxclaey] - [#12975]) ([alarm_control_panel.ifttt docs]) (new-platform)
|
||||||
|
- Zigbee fan ([@igorbernstein2] - [#12289]) ([zha docs]) ([fan.zha docs]) (new-platform)
|
||||||
|
- Adding a discoverable Samsung Syncthru Printer sensor platform ([@nielstron] - [#13134]) ([sensor.syncthru docs]) (new-platform)
|
||||||
|
- Add trafikverket_weatherstation sensor platform ([@Qxlkdr] - [#12115]) ([sensor.trafikverket_weatherstation docs]) (new-platform)
|
||||||
|
- Security fix & lock for HomeMatic ([@PH89] - [#11980]) ([homematic docs]) ([lock docs]) ([lock.homematic docs]) (breaking change) (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-->
|
||||||
|
## Breaking Changes
|
||||||
|
|
||||||
|
- Refactor Hue: If you specify a bridge in your config, the `host` key is now required and needs to be a valid ip address. Option `allow_in_emulated_hue` has been removed. Exclude the lights via the emulated hue config. Due to the internal changes of how the Hue integration works, any Hue custom component will no longer work. ([@balloob] - [#13043]) ([hue docs]) ([light.hue docs]) (breaking change)
|
||||||
|
- Z-Wave: In version 0.47, the opt-in `new_entity_ids` configuration was added to Z-Wave to smooth the transition through the change. Support for old entity IDs is now removed, and the configuration is no longer necessary. If you are migrating from 0.63 or higher, your entity IDs will already be stored in the Entity Registry and no changes are required. If not, [entity IDs can now be manually configured using the Entity Registry](/docs/configuration/entity-registry/) if necessary. ([@armills] - [#12652]) ([zwave docs]) (breaking change)
|
||||||
|
- Spotcrime sensor: This update changes the sensor to require a user supplied API key as a configuration entry. The default key has been removed from the Spotcrime package and has also been modified to accept a user supplied API key.([@jcconnell] - [#12926]) ([sensor.spotcrime docs]) (breaking change)
|
||||||
|
- Smappee sensor: Fixed SI units for current consumption. Total consumption should be in kWh. not kW. ([@vandenberghev] - [#13190]) ([sensor.smappee docs]) (breaking change)
|
||||||
|
- System monitor sensor: Used and available swap space reported by the system monitor component is now measured in MiB instead of GiB. ([@DanNixon] - [#13148]) ([sensor.systemmonitor docs]) (breaking change)
|
||||||
|
- HomeKit: The `pincode` parameter is deprecated, since the `HomeKit` component will now generate one for you and display it as a persistence notification during setup. Additionally the default `port` changed to `51827` to avoid potential conflicts with `homebridge`. Lastly to fix a major bug, we needed to change the way accessory ids are generated. This means that in turn all previous accessory settings will need to be repeated. To avoid future conflicts, it is highly recommended to remove the `Home Assistant Bridge` from the `Home` app and repeat the setup process. ([HomeKit Setup](/components/homekit/#setup)) ([@cdce8p] - [#12997]) ([homekit docs]) (breaking change) (new-platform)
|
||||||
|
- Tibber: The name and the entity id for the Tibber sensor will now be the same as the nickname from the app. Default nick name is the address. So if you have not changed the nickname in the app, everything should be as before. ([@clementhk] - [#13231]) ([sensor.tibber docs]) (breaking change)
|
||||||
|
- Darsky sensor: Fix the incorrect unit of measurement for the 'Precip Intensity' and 'Daily Max Precip Intensity' for IS units according to the dark sky api documentation.([@cgtobi] - [#13415]) ([sensor.darksky docs]) (breaking change)
|
||||||
|
- HomeMatic: Locks are now under the lock component ([@PH89] - [#11980]) ([homematic docs]) ([lock docs]) ([lock.homematic docs]) (breaking change) (new-platform)
|
||||||
|
|
||||||
|
## All changes
|
||||||
|
|
||||||
|
- New lazytox.py script ([@kellerza] - [#12862])
|
||||||
|
- Update netdisco to 1.3.0 ([@balloob] - [#13007])
|
||||||
|
- remove rounding of temperature reading ([@hthiery] - [#13018]) ([sensor.lacrosse docs])
|
||||||
|
- Make lazytox script executable ([@OttoWinter] - [#13040])
|
||||||
|
- python-miio version bumped. ([@syssi] - [#13055]) ([fan.xiaomi_miio docs]) ([light.xiaomi_miio docs]) ([remote.xiaomi_miio docs]) ([switch.xiaomi_miio docs]) ([vacuum.xiaomi_miio docs])
|
||||||
|
- Glances Docker Sensors ([@timmo001] - [#13026]) ([sensor.glances docs])
|
||||||
|
- Script/lint, Lazytox: Fix issue to ignore delete files ([@cdce8p] - [#13051])
|
||||||
|
- Sensor template don't exit early on TemplateError ([@OttoWinter] - [#13041]) ([sensor.template docs])
|
||||||
|
- Better errors for unknown secrets ([@kellerza] - [#13072])
|
||||||
|
- Remove Z-Wave old/new entity_id attributes ([@armills] - [#12652]) ([zwave docs]) (breaking change)
|
||||||
|
- Make Sensibo climate registry_entity compliant ([@andrey-git] - [#13086]) ([climate.sensibo docs])
|
||||||
|
- Rename homeassistant.util.async to .async_ ([@smurfix] - [#13088])
|
||||||
|
- Config flow translations ([@armills] - [#13066])
|
||||||
|
- Lint script tweaks ([@armills] - [#13093])
|
||||||
|
- asyncio.ensure_future Python 3.5 ([@OttoWinter] - [#13141]) ([spc docs])
|
||||||
|
- Upgrade aiohttp to 3.0.7 ([@fabaff] - [#13119])
|
||||||
|
- Upgrade astral to 1.6 ([@fabaff] - [#13120])
|
||||||
|
- fix: Support different JointSpace API versions ([@FezVrasta] - [#13084]) ([media_player.philips_js docs])
|
||||||
|
- update to async/await ([@perosb] - [#13137]) ([zha docs]) ([light.zha docs])
|
||||||
|
- Upgrade mypy to 0.570 ([@fabaff] - [#13128])
|
||||||
|
- Upgrade TwitterAPI to 2.4.10 ([@fabaff] - [#13126]) ([notify docs])
|
||||||
|
- Upgrade youtube_dl to 2018.03.10 ([@fabaff] - [#13124]) ([media_extractor docs])
|
||||||
|
- Upgrade zeroconf to 0.20.0 ([@fabaff] - [#13123]) ([zeroconf docs])
|
||||||
|
- Upgrade schiene to 0.22 ([@fabaff] - [#13121]) ([sensor.deutsche_bahn docs])
|
||||||
|
- Remove crazy JSON encoding things that are no longer used ([@balloob] - [#13029]) ([http docs]) ([websocket_api docs])
|
||||||
|
- Disable Monkey Patch for 3.6.3+ ([@OttoWinter] - [#13150])
|
||||||
|
- Upgrade Sphinx to 1.7.1 ([@fabaff] - [#13127])
|
||||||
|
- upgrade tibber libary to 0.4.0 to use aiohttp 3.0 ([@danielhiversen] - [#13164]) ([sensor.tibber docs])
|
||||||
|
- Change iglo port to cv.port validator ([@jesserockz] - [#13163]) ([light.iglo docs])
|
||||||
|
- deConz rewrite to use async await syntax ([@Kane610] - [#13151]) ([deconz docs]) ([binary_sensor.deconz docs]) ([light.deconz docs]) ([scene.deconz docs]) ([sensor.deconz docs])
|
||||||
|
- Upgrade holidays to 0.9.4 ([@OttoWinter] - [#13167]) ([binary_sensor.workday docs])
|
||||||
|
- upcloud: Provide unique ID for server entities ([@scop] - [#13181]) ([upcloud docs])
|
||||||
|
- Added IPAreaThermostat and an exception-list for HM_IGNORE_DISCOVERY_NODE ([@a-wolter] - [#13171]) ([homematic docs]) ([sensor.homematic docs])
|
||||||
|
- Improve MQTT failed connection error message ([@OttoWinter] - [#13184]) ([mqtt docs])
|
||||||
|
- Upgrade pytest to 3.4.2 ([@OttoWinter] - [#13169])
|
||||||
|
- Channels clean ups ([@maddox] - [#12967]) ([media_player.channels docs])
|
||||||
|
- Fix freegeoip ([@pvizeli] - [#13193])
|
||||||
|
- Python Spotcrime sensor requires API key, fixes include/exclude ([@jcconnell] - [#12926]) ([sensor.spotcrime docs]) (breaking change)
|
||||||
|
- Add new platform for VeSync switches ([@markperdue] - [#13000]) ([switch.vesync docs]) (new-platform)
|
||||||
|
- Fixed SI units for current consumption ([@vandenberghev] - [#13190]) ([sensor.smappee docs]) (breaking change)
|
||||||
|
- Report swap in MiB ([@DanNixon] - [#13148]) ([sensor.systemmonitor docs]) (breaking change)
|
||||||
|
- Fix history API ([@balloob] - [#13214]) ([history docs])
|
||||||
|
- Add notifications to downloader.py ([@engrbm87] - [#12961]) ([downloader docs])
|
||||||
|
- HomeKit Restructure (new config options) ([@cdce8p] - [#12997]) ([homekit docs]) (breaking change) (new-platform)
|
||||||
|
- deCONZ - Add support for consumption and power sensors ([@Kane610] - [#13218]) ([deconz docs]) ([binary_sensor.deconz docs]) ([sensor.deconz docs])
|
||||||
|
- Change Hass.io icon to home-assistant ([@c727] - [#13230]) ([hassio docs])
|
||||||
|
- Add docstring ([@fabaff] - [#13232]) ([sensor.crimereports docs])
|
||||||
|
- Python 3.5 adjustments ([@OttoWinter] - [#13173]) ([mysensors docs])
|
||||||
|
- Added cover.group platform (replaces #12303) ([@cdce8p] - [#12692]) ([cover.group docs]) (new-platform)
|
||||||
|
- Tibber use appNickname as name ([@clementhk] - [#13231]) ([sensor.tibber docs]) (breaking change)
|
||||||
|
- media_content_type attribute display fix ([@kuzin2006] - [#13204]) ([media_player.kodi docs])
|
||||||
|
- Edimax component reports wrong power values ([@andreipop2005] - [#13011]) ([switch.edimax docs])
|
||||||
|
- myStrom: Add RGB support to Wifi bulbs ([@the-glu] - [#13194]) ([light.mystrom docs])
|
||||||
|
- Fix logbook JSON serialize issue ([@balloob] - [#13229]) ([logbook docs])
|
||||||
|
- Try to fix caldav ([@maxlaverse] - [#13236]) ([calendar.caldav docs])
|
||||||
|
- Cleanup Sonos platform setup ([@amelchio] - [#13225]) ([media_player.sonos docs])
|
||||||
|
- Fix 'dict' object has no attribute 'strftime' ([@Juggels] - [#13215]) ([calendar.todoist docs])
|
||||||
|
- Fix aiohttp deprecation warnings ([@balloob] - [#13240])
|
||||||
|
- Add extra sensors for BMW ConnectedDrive ([@gerard33] - [#12591]) ([bmw_connected_drive docs]) ([binary_sensor.bmw_connected_drive docs]) ([lock.bmw_connected_drive docs]) ([sensor.bmw_connected_drive docs]) (new-platform)
|
||||||
|
- Homekit: New supported devices ([@cdce8p] - [#13244]) ([homekit docs]) (new-platform)
|
||||||
|
- Adding Foobot device sensor ([@reefab] - [#12417]) ([sensor.foobot docs]) (new-platform)
|
||||||
|
- Fix for not setting up the camera if it is offline during setup phase ([@karlkar] - [#13082]) ([camera.onvif docs])
|
||||||
|
- Added Stride notification component ([@BioSehnsucht] - [#13221]) ([notify docs]) (new-platform)
|
||||||
|
- Homekit: Use util functions for unit conversion ([@cdce8p] - [#13253]) ([homekit docs])
|
||||||
|
- Use the first, not the last volume controller when multiple are available on songpal ([@rytilahti] - [#13222]) ([media_player.songpal docs])
|
||||||
|
- Xiaomi MiIO Switch: Power Strip support improved ([@syssi] - [#12917]) ([switch.xiaomi_miio docs])
|
||||||
|
- Xiaomi MiIO light: Philips Eyecare Smart Lamp 2 integration ([@syssi] - [#12883]) ([light.xiaomi_miio docs])
|
||||||
|
- Fix guide link in CONTRIBUTING.md ([@JensTimmerman] - [#13272])
|
||||||
|
- Xiaomi MiIO Remote: Unique id added ([@syssi] - [#13266]) ([remote.xiaomi_miio docs])
|
||||||
|
- Xiaomi MiIO Sensor: Xiaomi Air Quality Monitor (PM2.5) integration ([@syssi] - [#13264]) ([sensor.xiaomi_miio docs]) (new-platform)
|
||||||
|
- Refactor Hue: phue -> aiohue ([@balloob] - [#13043]) ([hue docs]) ([light.hue docs]) (breaking change)
|
||||||
|
- Unused xiaomi miio sensor method removed ([@syssi] - [#13281]) ([sensor.xiaomi_miio docs])
|
||||||
|
- Changed to async/await ([@thrawnarn] - [#13246]) ([media_player.bluesound docs])
|
||||||
|
- Python 3.5 async with ([@OttoWinter] - [#13283])
|
||||||
|
- Fix WUnderground duplicate entity ids ([@OttoWinter] - [#13285]) ([sensor.wunderground docs])
|
||||||
|
- Upgrade aiohttp to 3.0.9 ([@fabaff] - [#13288])
|
||||||
|
- Upgrade aiohttp_cors to 0.7.0 ([@fabaff] - [#13289]) ([http docs])
|
||||||
|
- Upgrade sqlalchemy to 1.2.5 ([@fabaff] - [#13292]) ([sensor.sql docs])
|
||||||
|
- Upgrade TwitterAPI to 2.5.0 ([@fabaff] - [#13287]) ([notify docs])
|
||||||
|
- Upgrade numpy to 1.14.2 ([@fabaff] - [#13291]) ([binary_sensor.trend docs]) ([image_processing.opencv docs])
|
||||||
|
- Upgrade python-telegram-bot to 10.0.1 ([@fabaff] - [#13294]) ([telegram_bot docs])
|
||||||
|
- Upgrade python-forecastio to 1.4.0 ([@cgtobi] - [#13282]) ([weather.darksky docs])
|
||||||
|
- Delete .gitmodules ([@pvizeli] - [#13295])
|
||||||
|
- Update to latest python-nest ([@cburgess] - [#12590]) ([nest docs])
|
||||||
|
- Upgrade async_timeout to 2.0.1 ([@fabaff] - [#13290])
|
||||||
|
- Add initial support fo HomematicIP components ([@mxworm] - [#12761]) ([homematicip docs]) ([sensor.homematicip docs]) (new-platform)
|
||||||
|
- Added Time based SMA to Filter Sensor ([@dgomes] - [#13104]) ([sensor.filter docs])
|
||||||
|
- Support for security systems controlled by IFTTT ([@maxclaey] - [#12975]) ([alarm_control_panel.ifttt docs]) (new-platform)
|
||||||
|
- Add ecobee fan mode ([@uchagani] - [#12732]) ([ecobee docs]) ([climate.ecobee docs])
|
||||||
|
- Zigbee fan ([@igorbernstein2] - [#12289]) ([zha docs]) ([fan.zha docs]) (new-platform)
|
||||||
|
- Update plex.py ([@chronm] - [#12157]) ([sensor.plex docs])
|
||||||
|
- Support MQTT Lock discovery ([@molobrakos] - [#13303]) ([mqtt docs]) ([lock.mqtt docs])
|
||||||
|
- Adding a discoverable Samsung Syncthru Printer sensor platform ([@nielstron] - [#13134]) ([sensor.syncthru docs]) (new-platform)
|
||||||
|
- Use hue/sat as internal light color interface ([@armills] - [#11288]) ([light docs])
|
||||||
|
- Superfluous None ([@dgomes] - [#13326]) ([sensor.filter docs])
|
||||||
|
- pytest 3.4.0 cache gitignore ([@OttoWinter] - [#13308])
|
||||||
|
- Add trafikverket_weatherstation sensor platform ([@Qxlkdr] - [#12115]) ([sensor.trafikverket_weatherstation docs]) (new-platform)
|
||||||
|
- zha: catch the exception from bellows if a device isn't available. ([@perosb] - [#13314]) ([light.zha docs]) ([switch.zha docs])
|
||||||
|
- Plex unavailable client cleanup ([@ryanm101] - [#13156]) ([media_player.plex docs])
|
||||||
|
- Perform check_config service in current process ([@kellerza] - [#13017])
|
||||||
|
- Added switch for DoorBird second relay ([@sjvc] - [#13339]) ([doorbird docs]) ([switch.doorbird docs])
|
||||||
|
- Add min and max price as attribute for Tibber sensor ([@danielhiversen] - [#13313]) ([sensor.tibber docs])
|
||||||
|
- Bugfix: Zwave set_config_parameter failed when config list contained int ([@turbokongen] - [#13301]) ([zwave docs])
|
||||||
|
- Update pyhomematic to 0.1.40 ([@danielperna84] - [#13354]) ([homematic docs])
|
||||||
|
- Fix mysensors light turn on hs color ([@MartinHjelmare] - [#13349]) ([light.mysensors docs])
|
||||||
|
- Add a polling fallback for Sonos ([@amelchio] - [#13310]) ([media_player.sonos docs])
|
||||||
|
- Fix retrieval of track URL into medi_content_id ([@ih8gates] - [#13333]) ([media_player.spotify docs])
|
||||||
|
- Homekit Bugfix: Use get instead of indexing ([@maxclaey] - [#13353]) ([homekit docs])
|
||||||
|
- Configuration options for IFTTT alarm control panel ([@maxclaey] - [#13352]) ([alarm_control_panel.ifttt docs])
|
||||||
|
- Add the possibility to filter on line(s) in Västtrafik Public Transport sensor ([@ThomasSvedberg] - [#13317]) ([sensor.vasttrafik docs])
|
||||||
|
- Fix mysensors RGBW ([@MartinHjelmare] - [#13364]) ([light.mysensors docs])
|
||||||
|
- Add watt to mysensors switch attributes ([@MartinHjelmare] - [#13370])
|
||||||
|
- Mediaroom async ([@dgomes] - [#13321]) ([media_player.mediaroom docs])
|
||||||
|
- Add language parameter to darksky sensor ([@cgtobi] - [#13297]) ([sensor.darksky docs]) ([weather.darksky docs])
|
||||||
|
- Fixing Egardia 'home armed' state not shown correctly. ([@jeroenterheerdt] - [#13335])
|
||||||
|
- Include all config flow translations with backend translations ([@balloob] - [#13394])
|
||||||
|
- Avoid breaking change for BMW ConnectedDrive sensors in #12591 ([@gerard33] - [#13380]) ([binary_sensor.bmw_connected_drive docs]) ([lock.bmw_connected_drive docs]) ([sensor.bmw_connected_drive docs])
|
||||||
|
- Support setting icon when configuring MQTT entity ([@molobrakos] - [#13304]) ([sensor.mqtt docs]) ([switch.mqtt docs])
|
||||||
|
- Enhance mysensors sensor units and icons ([@MartinHjelmare] - [#13365]) ([sensor.mysensors docs])
|
||||||
|
- Fix incorrect unit of measurement for precip_intensity. ([@cgtobi] - [#13415]) ([sensor.darksky docs]) (breaking change)
|
||||||
|
- Fix Sonos playing Sveriges Radio ([@amelchio] - [#13401]) ([media_player.sonos docs])
|
||||||
|
- Cache LaMetric devices for offline use ([@PhilRW] - [#13379])
|
||||||
|
- Enhance mysensors binary sensor device classes ([@MartinHjelmare] - [#13367]) ([binary_sensor.mysensors docs])
|
||||||
|
- Switched to async/await. Bumped pyxeoma version ([@jeradM] - [#13404]) ([camera.xeoma docs])
|
||||||
|
- Added default return value for HS_Color ([@cdce8p] - [#13395]) ([homekit docs])
|
||||||
|
- Hue: Use the currently active color mode ([@armills] - [#13376]) ([light docs]) ([light.hue docs])
|
||||||
|
- Cleanup homematicip_cloud ([@mxworm] - [#13356]) ([homematicip_cloud docs]) ([sensor.homematicip_cloud docs])
|
||||||
|
- Add send sticker service to telegram bot ([@syssi] - [#13387]) ([telegram_bot docs])
|
||||||
|
- Google assistant sync ([@balloob] - [#13392]) ([cloud docs])
|
||||||
|
- Fix current_cover_position ([@cdce8p] - [#13135]) ([cover.template docs])
|
||||||
|
- Switched values to downcase. ([@diminishedprime] - [#13406])
|
||||||
|
- Cast Integration Cleanup ([@OttoWinter] - [#13275]) ([media_player.cast docs])
|
||||||
|
- Security fix & lock for HomeMatic ([@PH89] - [#11980]) ([homematic docs]) ([lock docs]) ([lock.homematic docs]) (breaking change) (new-platform)
|
||||||
|
- Log invalid templates in script delays ([@amelchio] - [#13423])
|
||||||
|
- LimitlessLED hs_color fixes ([@amelchio] - [#13425]) ([light.limitlessled docs])
|
||||||
|
- Hyperion: fix typo ([@a-andre] - [#13429]) ([light.hyperion docs])
|
||||||
|
- HomeKit: Bugfix & improved logging ([@cdce8p] - [#13431]) ([homekit docs])
|
||||||
|
- Improve detection of entity names in templates ([@amelchio] - [#13432])
|
||||||
|
- Add version bump script ([@balloob] - [#13447])
|
||||||
|
- Add extra check for ESSID field in case there's a wired connection ([@Zepheus] - [#13459]) ([device_tracker docs])
|
||||||
|
- Fix encoding errors in mikrotik device tracker ([@bdurrer] - [#13464]) ([device_tracker docs])
|
||||||
|
- Hue: Convert XY to HS color if HS not present ([@balloob] - [#13465]) ([light.hue docs])
|
||||||
|
- Fix ID (fixes #13444) ([@fabaff] - [#13471]) ([media_player.mpchc docs])
|
||||||
|
- Upgrade aiohue and fix race condition ([@balloob] - [#13475]) ([hue docs])
|
||||||
|
- version should contain just 'b' not 'beta' ([@balloob] - [#13476])
|
||||||
|
- Fix Google Calendar caching when offline ([@PhilRW] - [#13375]) ([calendar.google docs])
|
||||||
|
- Homekit: Bugfix Thermostat Fahrenheit support ([@cdce8p] - [#13477]) ([homekit docs])
|
||||||
|
- Validate basic customize entries ([@cdce8p] - [#13478])
|
||||||
|
- Homekit: Fix security systems ([@cdce8p] - [#13499]) ([homekit docs])
|
||||||
|
- python-miio version bumped (Closes: 13449) ([@syssi] - [#13511]) ([fan.xiaomi_miio docs]) ([light.xiaomi_miio docs]) ([remote.xiaomi_miio docs]) ([sensor.xiaomi_miio docs]) ([switch.xiaomi_miio docs]) ([vacuum.xiaomi_miio docs])
|
||||||
|
- Fix mysensors light supported features ([@MartinHjelmare] - [#13512]) ([light.mysensors docs])
|
||||||
|
- Fix Insteon Leak Sensor ([@teharris1] - [#13515])
|
||||||
|
- HomeKit: Fix setting light brightness ([@cdce8p] - [#13518]) ([homekit docs])
|
||||||
|
- Construct version pinned ([@syssi] - [#13528]) ([climate.eq3btsmart docs]) ([fan.xiaomi_miio docs]) ([light.xiaomi_miio docs]) ([remote.xiaomi_miio docs]) ([sensor.eddystone_temperature docs]) ([sensor.xiaomi_miio docs]) ([switch.xiaomi_miio docs]) ([vacuum.xiaomi_miio docs])
|
||||||
|
- Don't add Falsy items to list #13412 ([@kellerza] - [#13536])
|
||||||
|
- Check whitelisted paths #13107 ([@kellerza] - [#13154])
|
||||||
|
- Fix FLUX_LED error when no color is set ([@dramamoose] - [#13527]) ([light.flux_led docs])
|
||||||
|
|
||||||
|
[#11288]: https://github.com/home-assistant/home-assistant/pull/11288
|
||||||
|
[#11980]: https://github.com/home-assistant/home-assistant/pull/11980
|
||||||
|
[#12115]: https://github.com/home-assistant/home-assistant/pull/12115
|
||||||
|
[#12157]: https://github.com/home-assistant/home-assistant/pull/12157
|
||||||
|
[#12289]: https://github.com/home-assistant/home-assistant/pull/12289
|
||||||
|
[#12417]: https://github.com/home-assistant/home-assistant/pull/12417
|
||||||
|
[#12590]: https://github.com/home-assistant/home-assistant/pull/12590
|
||||||
|
[#12591]: https://github.com/home-assistant/home-assistant/pull/12591
|
||||||
|
[#12652]: https://github.com/home-assistant/home-assistant/pull/12652
|
||||||
|
[#12692]: https://github.com/home-assistant/home-assistant/pull/12692
|
||||||
|
[#12732]: https://github.com/home-assistant/home-assistant/pull/12732
|
||||||
|
[#12761]: https://github.com/home-assistant/home-assistant/pull/12761
|
||||||
|
[#12862]: https://github.com/home-assistant/home-assistant/pull/12862
|
||||||
|
[#12883]: https://github.com/home-assistant/home-assistant/pull/12883
|
||||||
|
[#12917]: https://github.com/home-assistant/home-assistant/pull/12917
|
||||||
|
[#12926]: https://github.com/home-assistant/home-assistant/pull/12926
|
||||||
|
[#12961]: https://github.com/home-assistant/home-assistant/pull/12961
|
||||||
|
[#12967]: https://github.com/home-assistant/home-assistant/pull/12967
|
||||||
|
[#12975]: https://github.com/home-assistant/home-assistant/pull/12975
|
||||||
|
[#12997]: https://github.com/home-assistant/home-assistant/pull/12997
|
||||||
|
[#13000]: https://github.com/home-assistant/home-assistant/pull/13000
|
||||||
|
[#13007]: https://github.com/home-assistant/home-assistant/pull/13007
|
||||||
|
[#13011]: https://github.com/home-assistant/home-assistant/pull/13011
|
||||||
|
[#13017]: https://github.com/home-assistant/home-assistant/pull/13017
|
||||||
|
[#13018]: https://github.com/home-assistant/home-assistant/pull/13018
|
||||||
|
[#13026]: https://github.com/home-assistant/home-assistant/pull/13026
|
||||||
|
[#13029]: https://github.com/home-assistant/home-assistant/pull/13029
|
||||||
|
[#13040]: https://github.com/home-assistant/home-assistant/pull/13040
|
||||||
|
[#13041]: https://github.com/home-assistant/home-assistant/pull/13041
|
||||||
|
[#13043]: https://github.com/home-assistant/home-assistant/pull/13043
|
||||||
|
[#13051]: https://github.com/home-assistant/home-assistant/pull/13051
|
||||||
|
[#13055]: https://github.com/home-assistant/home-assistant/pull/13055
|
||||||
|
[#13066]: https://github.com/home-assistant/home-assistant/pull/13066
|
||||||
|
[#13072]: https://github.com/home-assistant/home-assistant/pull/13072
|
||||||
|
[#13082]: https://github.com/home-assistant/home-assistant/pull/13082
|
||||||
|
[#13084]: https://github.com/home-assistant/home-assistant/pull/13084
|
||||||
|
[#13086]: https://github.com/home-assistant/home-assistant/pull/13086
|
||||||
|
[#13088]: https://github.com/home-assistant/home-assistant/pull/13088
|
||||||
|
[#13093]: https://github.com/home-assistant/home-assistant/pull/13093
|
||||||
|
[#13104]: https://github.com/home-assistant/home-assistant/pull/13104
|
||||||
|
[#13119]: https://github.com/home-assistant/home-assistant/pull/13119
|
||||||
|
[#13120]: https://github.com/home-assistant/home-assistant/pull/13120
|
||||||
|
[#13121]: https://github.com/home-assistant/home-assistant/pull/13121
|
||||||
|
[#13123]: https://github.com/home-assistant/home-assistant/pull/13123
|
||||||
|
[#13124]: https://github.com/home-assistant/home-assistant/pull/13124
|
||||||
|
[#13126]: https://github.com/home-assistant/home-assistant/pull/13126
|
||||||
|
[#13127]: https://github.com/home-assistant/home-assistant/pull/13127
|
||||||
|
[#13128]: https://github.com/home-assistant/home-assistant/pull/13128
|
||||||
|
[#13134]: https://github.com/home-assistant/home-assistant/pull/13134
|
||||||
|
[#13135]: https://github.com/home-assistant/home-assistant/pull/13135
|
||||||
|
[#13137]: https://github.com/home-assistant/home-assistant/pull/13137
|
||||||
|
[#13141]: https://github.com/home-assistant/home-assistant/pull/13141
|
||||||
|
[#13148]: https://github.com/home-assistant/home-assistant/pull/13148
|
||||||
|
[#13150]: https://github.com/home-assistant/home-assistant/pull/13150
|
||||||
|
[#13151]: https://github.com/home-assistant/home-assistant/pull/13151
|
||||||
|
[#13154]: https://github.com/home-assistant/home-assistant/pull/13154
|
||||||
|
[#13156]: https://github.com/home-assistant/home-assistant/pull/13156
|
||||||
|
[#13163]: https://github.com/home-assistant/home-assistant/pull/13163
|
||||||
|
[#13164]: https://github.com/home-assistant/home-assistant/pull/13164
|
||||||
|
[#13167]: https://github.com/home-assistant/home-assistant/pull/13167
|
||||||
|
[#13169]: https://github.com/home-assistant/home-assistant/pull/13169
|
||||||
|
[#13171]: https://github.com/home-assistant/home-assistant/pull/13171
|
||||||
|
[#13173]: https://github.com/home-assistant/home-assistant/pull/13173
|
||||||
|
[#13181]: https://github.com/home-assistant/home-assistant/pull/13181
|
||||||
|
[#13184]: https://github.com/home-assistant/home-assistant/pull/13184
|
||||||
|
[#13190]: https://github.com/home-assistant/home-assistant/pull/13190
|
||||||
|
[#13193]: https://github.com/home-assistant/home-assistant/pull/13193
|
||||||
|
[#13194]: https://github.com/home-assistant/home-assistant/pull/13194
|
||||||
|
[#13204]: https://github.com/home-assistant/home-assistant/pull/13204
|
||||||
|
[#13214]: https://github.com/home-assistant/home-assistant/pull/13214
|
||||||
|
[#13215]: https://github.com/home-assistant/home-assistant/pull/13215
|
||||||
|
[#13218]: https://github.com/home-assistant/home-assistant/pull/13218
|
||||||
|
[#13221]: https://github.com/home-assistant/home-assistant/pull/13221
|
||||||
|
[#13222]: https://github.com/home-assistant/home-assistant/pull/13222
|
||||||
|
[#13225]: https://github.com/home-assistant/home-assistant/pull/13225
|
||||||
|
[#13229]: https://github.com/home-assistant/home-assistant/pull/13229
|
||||||
|
[#13230]: https://github.com/home-assistant/home-assistant/pull/13230
|
||||||
|
[#13231]: https://github.com/home-assistant/home-assistant/pull/13231
|
||||||
|
[#13232]: https://github.com/home-assistant/home-assistant/pull/13232
|
||||||
|
[#13236]: https://github.com/home-assistant/home-assistant/pull/13236
|
||||||
|
[#13240]: https://github.com/home-assistant/home-assistant/pull/13240
|
||||||
|
[#13244]: https://github.com/home-assistant/home-assistant/pull/13244
|
||||||
|
[#13246]: https://github.com/home-assistant/home-assistant/pull/13246
|
||||||
|
[#13253]: https://github.com/home-assistant/home-assistant/pull/13253
|
||||||
|
[#13264]: https://github.com/home-assistant/home-assistant/pull/13264
|
||||||
|
[#13266]: https://github.com/home-assistant/home-assistant/pull/13266
|
||||||
|
[#13272]: https://github.com/home-assistant/home-assistant/pull/13272
|
||||||
|
[#13275]: https://github.com/home-assistant/home-assistant/pull/13275
|
||||||
|
[#13281]: https://github.com/home-assistant/home-assistant/pull/13281
|
||||||
|
[#13282]: https://github.com/home-assistant/home-assistant/pull/13282
|
||||||
|
[#13283]: https://github.com/home-assistant/home-assistant/pull/13283
|
||||||
|
[#13285]: https://github.com/home-assistant/home-assistant/pull/13285
|
||||||
|
[#13287]: https://github.com/home-assistant/home-assistant/pull/13287
|
||||||
|
[#13288]: https://github.com/home-assistant/home-assistant/pull/13288
|
||||||
|
[#13289]: https://github.com/home-assistant/home-assistant/pull/13289
|
||||||
|
[#13290]: https://github.com/home-assistant/home-assistant/pull/13290
|
||||||
|
[#13291]: https://github.com/home-assistant/home-assistant/pull/13291
|
||||||
|
[#13292]: https://github.com/home-assistant/home-assistant/pull/13292
|
||||||
|
[#13294]: https://github.com/home-assistant/home-assistant/pull/13294
|
||||||
|
[#13295]: https://github.com/home-assistant/home-assistant/pull/13295
|
||||||
|
[#13297]: https://github.com/home-assistant/home-assistant/pull/13297
|
||||||
|
[#13301]: https://github.com/home-assistant/home-assistant/pull/13301
|
||||||
|
[#13303]: https://github.com/home-assistant/home-assistant/pull/13303
|
||||||
|
[#13304]: https://github.com/home-assistant/home-assistant/pull/13304
|
||||||
|
[#13308]: https://github.com/home-assistant/home-assistant/pull/13308
|
||||||
|
[#13310]: https://github.com/home-assistant/home-assistant/pull/13310
|
||||||
|
[#13313]: https://github.com/home-assistant/home-assistant/pull/13313
|
||||||
|
[#13314]: https://github.com/home-assistant/home-assistant/pull/13314
|
||||||
|
[#13317]: https://github.com/home-assistant/home-assistant/pull/13317
|
||||||
|
[#13321]: https://github.com/home-assistant/home-assistant/pull/13321
|
||||||
|
[#13326]: https://github.com/home-assistant/home-assistant/pull/13326
|
||||||
|
[#13333]: https://github.com/home-assistant/home-assistant/pull/13333
|
||||||
|
[#13335]: https://github.com/home-assistant/home-assistant/pull/13335
|
||||||
|
[#13339]: https://github.com/home-assistant/home-assistant/pull/13339
|
||||||
|
[#13349]: https://github.com/home-assistant/home-assistant/pull/13349
|
||||||
|
[#13352]: https://github.com/home-assistant/home-assistant/pull/13352
|
||||||
|
[#13353]: https://github.com/home-assistant/home-assistant/pull/13353
|
||||||
|
[#13354]: https://github.com/home-assistant/home-assistant/pull/13354
|
||||||
|
[#13356]: https://github.com/home-assistant/home-assistant/pull/13356
|
||||||
|
[#13364]: https://github.com/home-assistant/home-assistant/pull/13364
|
||||||
|
[#13365]: https://github.com/home-assistant/home-assistant/pull/13365
|
||||||
|
[#13367]: https://github.com/home-assistant/home-assistant/pull/13367
|
||||||
|
[#13370]: https://github.com/home-assistant/home-assistant/pull/13370
|
||||||
|
[#13375]: https://github.com/home-assistant/home-assistant/pull/13375
|
||||||
|
[#13376]: https://github.com/home-assistant/home-assistant/pull/13376
|
||||||
|
[#13379]: https://github.com/home-assistant/home-assistant/pull/13379
|
||||||
|
[#13380]: https://github.com/home-assistant/home-assistant/pull/13380
|
||||||
|
[#13387]: https://github.com/home-assistant/home-assistant/pull/13387
|
||||||
|
[#13392]: https://github.com/home-assistant/home-assistant/pull/13392
|
||||||
|
[#13394]: https://github.com/home-assistant/home-assistant/pull/13394
|
||||||
|
[#13395]: https://github.com/home-assistant/home-assistant/pull/13395
|
||||||
|
[#13401]: https://github.com/home-assistant/home-assistant/pull/13401
|
||||||
|
[#13404]: https://github.com/home-assistant/home-assistant/pull/13404
|
||||||
|
[#13406]: https://github.com/home-assistant/home-assistant/pull/13406
|
||||||
|
[#13415]: https://github.com/home-assistant/home-assistant/pull/13415
|
||||||
|
[#13423]: https://github.com/home-assistant/home-assistant/pull/13423
|
||||||
|
[#13425]: https://github.com/home-assistant/home-assistant/pull/13425
|
||||||
|
[#13429]: https://github.com/home-assistant/home-assistant/pull/13429
|
||||||
|
[#13431]: https://github.com/home-assistant/home-assistant/pull/13431
|
||||||
|
[#13432]: https://github.com/home-assistant/home-assistant/pull/13432
|
||||||
|
[#13447]: https://github.com/home-assistant/home-assistant/pull/13447
|
||||||
|
[#13459]: https://github.com/home-assistant/home-assistant/pull/13459
|
||||||
|
[#13464]: https://github.com/home-assistant/home-assistant/pull/13464
|
||||||
|
[#13465]: https://github.com/home-assistant/home-assistant/pull/13465
|
||||||
|
[#13471]: https://github.com/home-assistant/home-assistant/pull/13471
|
||||||
|
[#13475]: https://github.com/home-assistant/home-assistant/pull/13475
|
||||||
|
[#13476]: https://github.com/home-assistant/home-assistant/pull/13476
|
||||||
|
[#13477]: https://github.com/home-assistant/home-assistant/pull/13477
|
||||||
|
[#13478]: https://github.com/home-assistant/home-assistant/pull/13478
|
||||||
|
[#13499]: https://github.com/home-assistant/home-assistant/pull/13499
|
||||||
|
[#13511]: https://github.com/home-assistant/home-assistant/pull/13511
|
||||||
|
[#13512]: https://github.com/home-assistant/home-assistant/pull/13512
|
||||||
|
[#13515]: https://github.com/home-assistant/home-assistant/pull/13515
|
||||||
|
[#13518]: https://github.com/home-assistant/home-assistant/pull/13518
|
||||||
|
[#13527]: https://github.com/home-assistant/home-assistant/pull/13527
|
||||||
|
[#13528]: https://github.com/home-assistant/home-assistant/pull/13528
|
||||||
|
[#13536]: https://github.com/home-assistant/home-assistant/pull/13536
|
||||||
|
[@BioSehnsucht]: https://github.com/BioSehnsucht
|
||||||
|
[@DanNixon]: https://github.com/DanNixon
|
||||||
|
[@FezVrasta]: https://github.com/FezVrasta
|
||||||
|
[@JensTimmerman]: https://github.com/JensTimmerman
|
||||||
|
[@Juggels]: https://github.com/Juggels
|
||||||
|
[@Kane610]: https://github.com/Kane610
|
||||||
|
[@MartinHjelmare]: https://github.com/MartinHjelmare
|
||||||
|
[@OttoWinter]: https://github.com/OttoWinter
|
||||||
|
[@PH89]: https://github.com/PH89
|
||||||
|
[@PhilRW]: https://github.com/PhilRW
|
||||||
|
[@Qxlkdr]: https://github.com/Qxlkdr
|
||||||
|
[@ThomasSvedberg]: https://github.com/ThomasSvedberg
|
||||||
|
[@Zepheus]: https://github.com/Zepheus
|
||||||
|
[@a-andre]: https://github.com/a-andre
|
||||||
|
[@a-wolter]: https://github.com/a-wolter
|
||||||
|
[@amelchio]: https://github.com/amelchio
|
||||||
|
[@andreipop2005]: https://github.com/andreipop2005
|
||||||
|
[@andrey-git]: https://github.com/andrey-git
|
||||||
|
[@armills]: https://github.com/armills
|
||||||
|
[@balloob]: https://github.com/balloob
|
||||||
|
[@bdurrer]: https://github.com/bdurrer
|
||||||
|
[@c727]: https://github.com/c727
|
||||||
|
[@cburgess]: https://github.com/cburgess
|
||||||
|
[@cdce8p]: https://github.com/cdce8p
|
||||||
|
[@cgtobi]: https://github.com/cgtobi
|
||||||
|
[@chronm]: https://github.com/chronm
|
||||||
|
[@clementhk]: https://github.com/clementhk
|
||||||
|
[@danielhiversen]: https://github.com/danielhiversen
|
||||||
|
[@danielperna84]: https://github.com/danielperna84
|
||||||
|
[@dgomes]: https://github.com/dgomes
|
||||||
|
[@diminishedprime]: https://github.com/diminishedprime
|
||||||
|
[@dramamoose]: https://github.com/dramamoose
|
||||||
|
[@engrbm87]: https://github.com/engrbm87
|
||||||
|
[@fabaff]: https://github.com/fabaff
|
||||||
|
[@gerard33]: https://github.com/gerard33
|
||||||
|
[@hthiery]: https://github.com/hthiery
|
||||||
|
[@igorbernstein2]: https://github.com/igorbernstein2
|
||||||
|
[@ih8gates]: https://github.com/ih8gates
|
||||||
|
[@jcconnell]: https://github.com/jcconnell
|
||||||
|
[@jeradM]: https://github.com/jeradM
|
||||||
|
[@jeroenterheerdt]: https://github.com/jeroenterheerdt
|
||||||
|
[@jesserockz]: https://github.com/jesserockz
|
||||||
|
[@karlkar]: https://github.com/karlkar
|
||||||
|
[@kellerza]: https://github.com/kellerza
|
||||||
|
[@kuzin2006]: https://github.com/kuzin2006
|
||||||
|
[@maddox]: https://github.com/maddox
|
||||||
|
[@markperdue]: https://github.com/markperdue
|
||||||
|
[@maxclaey]: https://github.com/maxclaey
|
||||||
|
[@maxlaverse]: https://github.com/maxlaverse
|
||||||
|
[@molobrakos]: https://github.com/molobrakos
|
||||||
|
[@mxworm]: https://github.com/mxworm
|
||||||
|
[@nielstron]: https://github.com/nielstron
|
||||||
|
[@perosb]: https://github.com/perosb
|
||||||
|
[@pvizeli]: https://github.com/pvizeli
|
||||||
|
[@reefab]: https://github.com/reefab
|
||||||
|
[@ryanm101]: https://github.com/ryanm101
|
||||||
|
[@rytilahti]: https://github.com/rytilahti
|
||||||
|
[@scop]: https://github.com/scop
|
||||||
|
[@sjvc]: https://github.com/sjvc
|
||||||
|
[@smurfix]: https://github.com/smurfix
|
||||||
|
[@syssi]: https://github.com/syssi
|
||||||
|
[@teharris1]: https://github.com/teharris1
|
||||||
|
[@the-glu]: https://github.com/the-glu
|
||||||
|
[@thrawnarn]: https://github.com/thrawnarn
|
||||||
|
[@timmo001]: https://github.com/timmo001
|
||||||
|
[@turbokongen]: https://github.com/turbokongen
|
||||||
|
[@uchagani]: https://github.com/uchagani
|
||||||
|
[@vandenberghev]: https://github.com/vandenberghev
|
||||||
|
[alarm_control_panel.ifttt docs]: /components/alarm_control_panel.ifttt/
|
||||||
|
[binary_sensor.bmw_connected_drive docs]: /components/binary_sensor.bmw_connected_drive/
|
||||||
|
[binary_sensor.deconz docs]: /components/binary_sensor.deconz/
|
||||||
|
[binary_sensor.mysensors docs]: /components/binary_sensor.mysensors/
|
||||||
|
[binary_sensor.trend docs]: /components/binary_sensor.trend/
|
||||||
|
[binary_sensor.workday docs]: /components/binary_sensor.workday/
|
||||||
|
[bmw_connected_drive docs]: /components/bmw_connected_drive/
|
||||||
|
[calendar.caldav docs]: /components/calendar.caldav/
|
||||||
|
[calendar.google docs]: /components/calendar.google/
|
||||||
|
[calendar.todoist docs]: /components/calendar.todoist/
|
||||||
|
[camera.onvif docs]: /components/camera.onvif/
|
||||||
|
[camera.xeoma docs]: /components/camera.xeoma/
|
||||||
|
[climate.ecobee docs]: /components/climate.ecobee/
|
||||||
|
[climate.eq3btsmart docs]: /components/climate.eq3btsmart/
|
||||||
|
[climate.sensibo docs]: /components/climate.sensibo/
|
||||||
|
[cloud docs]: /components/cloud/
|
||||||
|
[cover.group docs]: /components/cover.group/
|
||||||
|
[cover.template docs]: /components/cover.template/
|
||||||
|
[deconz docs]: /components/deconz/
|
||||||
|
[device_tracker docs]: /components/device_tracker/
|
||||||
|
[doorbird docs]: /components/doorbird/
|
||||||
|
[downloader docs]: /components/downloader/
|
||||||
|
[ecobee docs]: /components/ecobee/
|
||||||
|
[fan.xiaomi_miio docs]: /components/fan.xiaomi_miio/
|
||||||
|
[fan.zha docs]: /components/fan.zha/
|
||||||
|
[hassio docs]: /components/hassio/
|
||||||
|
[history docs]: /components/history/
|
||||||
|
[homekit docs]: /components/homekit/
|
||||||
|
[homematic docs]: /components/homematic/
|
||||||
|
[homematicip docs]: /components/homematicip/
|
||||||
|
[homematicip_cloud docs]: /components/homematicip_cloud/
|
||||||
|
[http docs]: /components/http/
|
||||||
|
[hue docs]: /components/hue/
|
||||||
|
[image_processing.opencv docs]: /components/image_processing.opencv/
|
||||||
|
[light docs]: /components/light/
|
||||||
|
[light.deconz docs]: /components/light.deconz/
|
||||||
|
[light.flux_led docs]: /components/light.flux_led/
|
||||||
|
[light.hue docs]: /components/light.hue/
|
||||||
|
[light.hyperion docs]: /components/light.hyperion/
|
||||||
|
[light.iglo docs]: /components/light.iglo/
|
||||||
|
[light.limitlessled docs]: /components/light.limitlessled/
|
||||||
|
[light.mysensors docs]: /components/light.mysensors/
|
||||||
|
[light.mystrom docs]: /components/light.mystrom/
|
||||||
|
[light.xiaomi_miio docs]: /components/light.xiaomi_miio/
|
||||||
|
[light.zha docs]: /components/light.zha/
|
||||||
|
[lock docs]: /components/lock/
|
||||||
|
[lock.bmw_connected_drive docs]: /components/lock.bmw_connected_drive/
|
||||||
|
[lock.homematic docs]: /components/lock.homematic/
|
||||||
|
[lock.mqtt docs]: /components/lock.mqtt/
|
||||||
|
[logbook docs]: /components/logbook/
|
||||||
|
[media_extractor docs]: /components/media_extractor/
|
||||||
|
[media_player.bluesound docs]: /components/media_player.bluesound/
|
||||||
|
[media_player.cast docs]: /components/media_player.cast/
|
||||||
|
[media_player.channels docs]: /components/media_player.channels/
|
||||||
|
[media_player.kodi docs]: /components/media_player.kodi/
|
||||||
|
[@NovapaX]: https://github.com/NovapaX
|
||||||
|
[media_player.mediaroom docs]: /components/media_player.mediaroom/
|
||||||
|
[media_player.mpchc docs]: /components/media_player.mpchc/
|
||||||
|
[media_player.philips_js docs]: /components/media_player.philips_js/
|
||||||
|
[media_player.plex docs]: /components/media_player.plex/
|
||||||
|
[media_player.songpal docs]: /components/media_player.songpal/
|
||||||
|
[media_player.sonos docs]: /components/media_player.sonos/
|
||||||
|
[media_player.spotify docs]: /components/media_player.spotify/
|
||||||
|
[mqtt docs]: /components/mqtt/
|
||||||
|
[mysensors docs]: /components/mysensors/
|
||||||
|
[nest docs]: /components/nest/
|
||||||
|
[notify docs]: /components/notify/
|
||||||
|
[remote.xiaomi_miio docs]: /components/remote.xiaomi_miio/
|
||||||
|
[scene.deconz docs]: /components/scene.deconz/
|
||||||
|
[sensor.bmw_connected_drive docs]: /components/sensor.bmw_connected_drive/
|
||||||
|
[sensor.crimereports docs]: /components/sensor.crimereports/
|
||||||
|
[sensor.darksky docs]: /components/sensor.darksky/
|
||||||
|
[sensor.deconz docs]: /components/sensor.deconz/
|
||||||
|
[sensor.deutsche_bahn docs]: /components/sensor.deutsche_bahn/
|
||||||
|
[sensor.eddystone_temperature docs]: /components/sensor.eddystone_temperature/
|
||||||
|
[sensor.filter docs]: /components/sensor.filter/
|
||||||
|
[sensor.foobot docs]: /components/sensor.foobot/
|
||||||
|
[sensor.glances docs]: /components/sensor.glances/
|
||||||
|
[sensor.homematic docs]: /components/sensor.homematic/
|
||||||
|
[sensor.homematicip docs]: /components/sensor.homematicip/
|
||||||
|
[sensor.homematicip_cloud docs]: /components/sensor.homematicip_cloud/
|
||||||
|
[sensor.lacrosse docs]: /components/sensor.lacrosse/
|
||||||
|
[sensor.mqtt docs]: /components/sensor.mqtt/
|
||||||
|
[sensor.mysensors docs]: /components/sensor.mysensors/
|
||||||
|
[sensor.plex docs]: /components/sensor.plex/
|
||||||
|
[sensor.smappee docs]: /components/sensor.smappee/
|
||||||
|
[sensor.spotcrime docs]: /components/sensor.spotcrime/
|
||||||
|
[sensor.sql docs]: /components/sensor.sql/
|
||||||
|
[sensor.syncthru docs]: /components/sensor.syncthru/
|
||||||
|
[sensor.systemmonitor docs]: /components/sensor.systemmonitor/
|
||||||
|
[sensor.template docs]: /components/sensor.template/
|
||||||
|
[sensor.tibber docs]: /components/sensor.tibber/
|
||||||
|
[sensor.trafikverket_weatherstation docs]: /components/sensor.trafikverket_weatherstation/
|
||||||
|
[sensor.vasttrafik docs]: /components/sensor.vasttrafik/
|
||||||
|
[sensor.wunderground docs]: /components/sensor.wunderground/
|
||||||
|
[sensor.xiaomi_miio docs]: /components/sensor.xiaomi_miio/
|
||||||
|
[spc docs]: /components/spc/
|
||||||
|
[switch.doorbird docs]: /components/switch.doorbird/
|
||||||
|
[switch.edimax docs]: /components/switch.edimax/
|
||||||
|
[switch.mqtt docs]: /components/switch.mqtt/
|
||||||
|
[switch.vesync docs]: /components/switch.vesync/
|
||||||
|
[switch.xiaomi_miio docs]: /components/switch.xiaomi_miio/
|
||||||
|
[switch.zha docs]: /components/switch.zha/
|
||||||
|
[telegram_bot docs]: /components/telegram_bot/
|
||||||
|
[upcloud docs]: /components/upcloud/
|
||||||
|
[vacuum.xiaomi_miio docs]: /components/vacuum.xiaomi_miio/
|
||||||
|
[weather.darksky docs]: /components/weather.darksky/
|
||||||
|
[websocket_api docs]: /components/websocket_api/
|
||||||
|
[zeroconf docs]: /components/zeroconf/
|
||||||
|
[zha docs]: /components/zha/
|
||||||
|
[zwave docs]: /components/zwave/
|
@ -42,7 +42,22 @@ frontend:
|
|||||||
|
|
||||||
`www/custom_ui/state-card-my-custom-light.html`:
|
`www/custom_ui/state-card-my-custom-light.html`:
|
||||||
|
|
||||||
```javascript
|
```html
|
||||||
|
<script>
|
||||||
|
{
|
||||||
|
// show the version of your custom UI in the HA dev info panel (HA 0.66.0+):
|
||||||
|
const _NAME = 'My custom light';
|
||||||
|
const _URL = 'https://home-assistant.io/developers/frontend_creating_custom_ui/';
|
||||||
|
const _VERSION = '20180312';
|
||||||
|
|
||||||
|
if (!window.CUSTOM_UI_LIST) window.CUSTOM_UI_LIST = [];
|
||||||
|
window.CUSTOM_UI_LIST.push({
|
||||||
|
name: _NAME,
|
||||||
|
url: _URL,
|
||||||
|
version: _VERSION
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
<dom-module id='state-card-my-custom-light'>
|
<dom-module id='state-card-my-custom-light'>
|
||||||
<template>
|
<template>
|
||||||
<style>
|
<style>
|
||||||
@ -71,11 +86,14 @@ class StateCardMyCustomLight extends Polymer.Element {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_toStr(obj) {
|
_toStr(obj) {
|
||||||
return JSON.stringify(obj);
|
return JSON.stringify(obj, null, 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
customElements.define(StateCardMyCustomLight.is, StateCardMyCustomLight);
|
customElements.define(StateCardMyCustomLight.is, StateCardMyCustomLight);
|
||||||
</script>
|
</script>
|
||||||
```
|
```
|
||||||
|
<p class='note'>
|
||||||
|
Some browsers don't support latest ECMAScript standards, these require a separate ES5 compatible file (`extra_html_url_es5`).
|
||||||
|
</p>
|
||||||
|
|
||||||
For more possibilities, see the [Custom UI section](/cookbook/#user-interface) on our Examples page.
|
For more possibilities, see the [Custom UI section](/cookbook/#user-interface) on our Examples page.
|
||||||
|
BIN
source/images/blog/2018-03-0.66/components.png
Normal file
BIN
source/images/blog/2018-03-0.66/components.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
Binary file not shown.
After Width: | Height: | Size: 156 KiB |
BIN
source/images/supported_brands/foobot.png
Normal file
BIN
source/images/supported_brands/foobot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 47 KiB |
BIN
source/images/supported_brands/stride.png
Normal file
BIN
source/images/supported_brands/stride.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.6 KiB |
BIN
source/images/supported_brands/trafikverket.png
Normal file
BIN
source/images/supported_brands/trafikverket.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
BIN
source/images/supported_brands/vesync.png
Normal file
BIN
source/images/supported_brands/vesync.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 51 KiB |
Loading…
x
Reference in New Issue
Block a user