Merge branch 'rc' into current

This commit is contained in:
Franck Nijhof 2020-05-20 10:24:07 +02:00
commit 9f0c286fc3
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
104 changed files with 3621 additions and 546 deletions

View File

@ -121,6 +121,7 @@ source/_integrations/fixer.markdown @fabaff
source/_integrations/flock.markdown @fabaff
source/_integrations/flume.markdown @ChrisMandich @bdraco
source/_integrations/flunearyou.markdown @bachya
source/_integrations/forked_daapd.markdown @uvjustin
source/_integrations/fortigate.markdown @kifeo
source/_integrations/fortios.markdown @kimfrellsen
source/_integrations/foscam.markdown @skgsergio

View File

@ -100,9 +100,9 @@ social:
# Home Assistant release details
current_major_version: 0
current_minor_version: 109
current_patch_version: 6
date_released: 2020-05-07
current_minor_version: 110
current_patch_version: 0
date_released: 2020-05-20
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.

View File

@ -10,18 +10,24 @@ If you prefer YAML, you can add the following information to your `configuration
```yaml
homeassistant:
name: Home
latitude: 32.87336
longitude: 117.22743
elevation: 430
unit_system: metric
time_zone: America/Los_Angeles
name: Home
external_url: "https://www.example.com"
internal_url: "http://homeassistant.local:8123"
whitelist_external_dirs:
- /usr/var/dumping-ground
- /tmp
```
{% configuration %}
name:
description: Name of the location where Home Assistant is running.
required: false
type: string
latitude:
description: Latitude of your location required to calculate the time the sun rises and sets.
required: false
@ -46,8 +52,12 @@ time_zone:
description: "Pick your time zone from the column **TZ** of [Wikipedia's list of tz database time zones](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones)"
required: false
type: string
name:
description: Name of the location where Home Assistant is running.
external_url:
description: "The URL that Home Assistant is available on from the internet. For example: `https://example.duckdns.org:8123`. Note that this setting may only contain a protocol, hostname and port; using a path is not supported."
required: false
type: string
internal_url:
description: "The URL that Home Assistant is available on from your local network. For example: `http://homeassistant.local:8123`. Note that this setting may only contain a protocol, hostname and port; using a path is not supported."
required: false
type: string
customize:
@ -68,6 +78,6 @@ whitelist_external_dirs:
type: list
{% endconfiguration %}
### Reload Core Service
## Reload Core Service
Home Assistant offers a service to reload the core configuration while Home Assistant is running called `homeassistant.reload_core_config`. This allows you to change any of the above sections and see it being applied without having to restart Home Assistant. To call this service, go to the "Service" tab under Developer Tools, select the `homeassistant.reload_core_config` service and click the "CALL SERVICE" button. Alternatively, you can press the "Reload Location & Customizations" button under Configuration > Server Control.

View File

@ -45,8 +45,6 @@ On your `configuration.yaml` file, edit the `http` component.
http:
# For extra security set this to only accept connections on localhost if Caddy is on the same machine
# server_host: 127.0.0.1
# Update this line to be your domain
base_url: https://example.com
use_x_forwarded_for: true
# You must set the trusted proxy IP address so that Home Assistant will properly accept connections
# Set this to your Caddy machine IP, or localhost if hosted on the same machine.
@ -57,4 +55,3 @@ http:
You can either start Caddy or [install it as a service](https://github.com/mholt/caddy/wiki/Caddy-as-a-service-examples), pass the Caddyfile path as a `conf` parameter.
Home Assistant will be listening on port 443 (HTTPS) and all insecure traffic on port 80 will be redirected.

View File

@ -333,9 +333,10 @@ Now edit your `configuration.yaml` file to reflect the SSL entries and your base
http:
ssl_certificate: /etc/letsencrypt/live/examplehome.duckdns.org/fullchain.pem
ssl_key: /etc/letsencrypt/live/examplehome.duckdns.org/privkey.pem
base_url: examplehome.duckdns.org
```
Go to the Home Assistant UI -> **Configuration** -> **General** and set the external URL to your new URL, for example: `https://examplehome.duckdns.org`. Please note, advanced mode on your user profile must be enabled in order to see the external URL option.
You may wish to set up other options for the [HTTP](/integrations/http/) integration at this point, these extra options are beyond the scope of this guide.
Save the changes to `configuration.yaml`. Restart Home Assistant.

View File

@ -57,7 +57,6 @@ The [`http`](/integrations/http/) section must contain the full path to the need
```yaml
http:
base_url: https://mydomain.com:8123
ssl_certificate: /etc/letsencrypt/live/mydomain.com/fullchain.pem
ssl_key: /etc/letsencrypt/live/mydomain.com/privkey.pem
```

View File

@ -96,14 +96,16 @@ In your `configuration.yaml` file, edit the [HTTP component](/integrations/http/
http:
# For extra security set this to only accept connection on localhost if HAProxy is on the same machine
# server_host: 127.0.0.1
# Update this line to be your domain
base_url: https://example.com
use_x_forwarded_for: true
# You must set the trusted proxy IP address so that Home Assistant will properly accept connections
# Set this to your HAProxy machine IP, or localhost if hosted on the same machine.
trusted_proxies: <HAProxy IP address here, 127.0.0.1 if same machine>
```
Go to the Home Assistant UI -> **Configuration** -> **General** and set the external URL
to your new URL, for example: `https://examplehome.duckdns.org`.
Please note, advanced mode on your user profile must be enabled in order to see the external URL option.
### Restart or Reload HAProxy
Use your OS method of restarting or reloading HAProxy. Use Google for this.

View File

@ -89,14 +89,14 @@ On your `configuration.yaml` file, edit the `http` component.
http:
# For extra security set this to only accept connections on localhost if NGINX is on the same machine
# server_host: 127.0.0.1
# Update this line to be your domain
base_url: https://example.com
use_x_forwarded_for: true
# You must set the trusted proxy IP address so that Home Assistant will properly accept connections
# Set this to your NGINX machine IP, or localhost if hosted on the same machine.
trusted_proxies: <NGINX IP address here, or 127.0.0.1 if hosted on the same machine>
```
Go to the Home Assistant UI -> **Configuration** -> **General** and set the external URL to your new URL, for example: `https://examplehome.duckdns.org`. Please note, advanced mode on your user profile must be enabled in order to see the external URL option.
### NGINX configuration
```nginx

View File

@ -230,6 +230,7 @@ Supported abbreviations:
'temp_lo_stat_t': 'temperature_low_state_topic',
'temp_stat_tpl': 'temperature_state_template',
'temp_stat_t': 'temperature_state_topic',
'temp_unit': 'temperature_unit',
'tilt_clsd_val': 'tilt_closed_value',
'tilt_cmd_t': 'tilt_command_topic',
'tilt_inv_stat': 'tilt_invert_state',

View File

@ -78,6 +78,22 @@ condition:
below: 20
```
### NOT condition
Test multiple conditions in one condition statement. Passes if all embedded conditions are **not** valid.
```yaml
condition:
condition: not
conditions:
- condition: state
entity_id: device_tracker.paulus
state: 'home'
- condition: state
entity_id: alarm_control_panel.home_alarm
state: disarmed
```
### Numeric state condition
This type of condition attempts to parse the state of the specified entity as a number, and triggers if the value matches the thresholds.

View File

@ -0,0 +1,68 @@
---
title: Agent DVR
description: Access and control Agent DVR from Home Assistant.
ha_category:
- Camera
ha_config_flow: true
ha_release: "0.110"
ha_iot_class: Local Pull
ha_codeowners:
- '@ispysoftware'
ha_domain: agent_dvr
---
[Agent DVR](https://www.ispyconnect.com/download.aspx/) is a free* software DVR solution for windows 10, Mac and Linux. Agent DVR runs as a service or console application and can access and control a huge range of third party cameras with advanced motion detection, including YOLO integration for object recognition. The iSpyConnect website provides secured (SSL) remote access without port forwarding needed.
You can add Agent DVR via integrations using the IP address and port of the server, e.g.,: `http://192.168.1.3:8090/`.
## Configuration
For configuration, go to the `Integrations panel` on your Home Assistant instance. Click on the + symbol and pick 'Agent DVR' from the list and enter your Agent DVR server address and port. You can then setup your devices using the Home Assistant UI.
<div class='note'>
Please ensure you are using Agent DVR v2.6.1.0 +
</div>
## Services
Once loaded, the `agent_dvr` integration will expose services that can be called to perform various actions. The `entity_id` service attribute can specify one or more specific cameras.
Available services:
`enable_alerts`, `disable_alerts`,
`start_recording`, `stop_recording`,
`turn_on`, `turn_off`, `toggle`, `enable_motion_detection`,`disable_motion_detection`
#### Service `enable_alerts`/`disable_alerts`
These services enable or disable the device's alert events within Agent DVR.
Service data attribute | Optional | Description
-|-|-
`entity_id` | no | Name(s) of entities, e.g., `camera.living_room_camera`.
#### Service `start_recording`/`stop_recording`
These services start or stop the device recording.
Service data attribute | Optional | Description
-|-|-
`entity_id` | no | Name(s) of entities, e.g., `camera.living_room_camera`.
#### Service `turn_on`/`turn_off`/`toggle`
These services turn on, off or toggle the device enabled state within Agent DVR
Service data attribute | Optional | Description
-|-|-
`entity_id` | no | Name(s) of entities, e.g., `camera.living_room_camera`.
## IFrame
- Using the Webpage Card you can embed the Agent DVR viewer directly in Home Assistant. Just point it to https://www.ispyconnect.com/app/
<p class='img'>
<img src='/images/screenshots/agent_dvr.jpg' />
</p>
*Agent offers additional services like secured remote access (without port forwarding) and cloud uploads via a subscription service.

View File

@ -11,9 +11,11 @@ ha_domain: airvisual
ha_config_flow: true
---
The `airvisual` sensor platform queries the [AirVisual](https://airvisual.com/) API for air quality data. Data can be collected via latitude/longitude or by city/state/country. The resulting information creates sensors for the Air Quality Index (AQI), the human-friendly air quality level, and the main pollutant of that area. Sensors that conform to either/both the [U.S. and Chinese air quality standards](https://www.clm.com/publication.cfm?ID=366) are created.
The `airvisual` sensor platform queries the [AirVisual](https://airvisual.com/) cloud API for air quality data. Data can be collected via latitude/longitude, by city/state/country, or from an [AirVisual Node/Pro unit](https://www.airvisual.com/air-quality-monitor).
This platform requires an AirVisual API key, which can be obtained [here](https://airvisual.com/api). Note that the platform was designed using the "Community" package; the "Startup" and "Enterprise" package keys should continue to function, but actual results may vary (or not work at all).
## Using the AirVisual Cloud API
AirVisual API keys can be obtained [here](https://airvisual.com/api). Note that the platform was designed using the "Community" package; the "Startup" and "Enterprise" package keys should continue to function, but actual results may vary (or not work at all).
The Community API key is valid for 12 months after which it will expire. You must then go back to the AirVisual website, delete your old key, create a new one following the same steps and update your configuration with the new key.
@ -23,19 +25,34 @@ The "Community" API key is limited to 10,000 calls per month. In order to leave
</div>
## Using an AirVisual Node/Pro Unit
The integration can communicate to Node/Pro units over the local network. You will need the IP address/hostname of the unit and its Samba password (which can be found on the unit; instructions here: https://support.airvisual.com/en/articles/3029331-download-the-airvisual-node-pro-s-data-using-samba).
## Configuration
To enable the platform and gather data via latitude/longitude, add the following lines to your `configuration.yaml` file:
To enable the integration and gather data via latitude/longitude, add the following lines to your `configuration.yaml` file:
```yaml
airvisual:
api_key: YOUR_AIRVISUAL_API_KEY
```
To enable the integration and gather from a Node/Pro unit, add the following lines to your `configuration.yaml` file:
```yaml
airvisual:
ip_address: YOUR_NODE_PRO_IP_ADDRESS
password: YOUR_NODE_PRO_SAMBA_PASSWORD
```
Note that an API key-based entry can be mixed with one or more Node/Pro-based entries
(examples below).
{% configuration %}
api_key:
description: Your AirVisual API key.
required: true
required: false
type: string
geographies:
description: A list of geographical locations to monitor
@ -66,14 +83,14 @@ geographies:
## Example Configurations
No explicit configuration (uses the `latitude` and `longitude` defined within `configuration.yaml`):
No explicit configuration (using the cloud API and the `latitude` and `longitude` defined within `configuration.yaml`):
```yaml
airvisual:
api_key: YOUR_AIRVISUAL_API_KEY
```
Configuration using a single custom latitude and longitude:
Configuration using the cloud API and a single custom latitude and longitude:
```yaml
airvisual:
@ -83,7 +100,7 @@ airvisual:
longitude: 108.12422
```
Configuration using multiple custom latitude and longitude pairs:
Configuration using the cloud API and multiple custom latitude and longitude pairs:
```yaml
airvisual:
@ -95,7 +112,7 @@ airvisual:
longitude: -117.22743
```
Configuration using a single city, state, and country:
Configuration using the cloud API and a single city, state, and country:
```yaml
airvisual:

View File

@ -0,0 +1,39 @@
---
title: "Xiaomi Gateway Alarm"
description: "Instructions on how to integrate your Xiaomi Gateway Alarm within Home Assistant."
logo: xiaomi.png
ha_category:
- Alarm
ha_iot_class: Local Polling
ha_release: 0.110
ha_domain: xiaomi_miio
---
The `xiaomi_miio` alarm_control_panel platform allows you to control the state of your Xiaomi Gateway Alarm.
Please follow the instructions on [Retrieving the Access Token](/integrations/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token to use during configuration.
## Features
- Turn on/off Alarm
- See the status of Alarm (armed_away, disarmed, arming)
## Configuration
To set up the Xiaomi gateway, click Configuration in the sidebar, then click Integrations and then click the + icon in the lower right and find xiaomi_miio. Select the option "Connect to a Xiaomi Gateway" and click submit. You will then be presented with a form in which you will need to fill in the "IP address" and 32 characters "token". Optionally, you can specify a different name for the gateway. After you click submit, you will have the opportunity to select the area that your devices are located.
{% configuration %}
host:
description: The IP address of your Xiaomi gateway.
required: true
type: string
token:
description: The API token of your Xiaomi gateway.
required: true
type: string
name:
description: The name of your Xiaomi gateway.
required: false
type: string
default: Xiaomi Gateway
{% endconfiguration %}

View File

@ -13,7 +13,7 @@ ha_domain: ambiclimate
Integrates [Ambiclimate](https://ambiclimate.com/) Air Conditioning controller into Home Assistant.
You must create an application [here](https://api.ambiclimate.com/clients) to obtain a `client_id` and `client_secret`.
The `callback url` should be configured as your Home Assistant `base_url` + `/api/ambiclimate`, e.g., `https://example.com/api/ambiclimate`.
The `callback url` should be configured as your Home Assistant external URL + `/api/ambiclimate`, e.g., `https://example.com/api/ambiclimate`.
To enable this platform, add the following lines to your `configuration.yaml` file:

View File

@ -0,0 +1,49 @@
---
title: BleBox
description: Instructions on how to integrate BleBox devices with Home Assistant.
ha_category:
- Cover
ha_release: "0.110"
ha_iot_class: Local Polling
ha_config_flow: true
ha_codeowners:
- '@gadgetmobile'
ha_domain: blebox
---
[BleBox](https://blebox.eu/?lang=en) produces small, low-power, surprisingly affordable, feature-rich WiFi devices for serverless home automation.
## Configuration
For the best experience, make sure your BleBox devices have the most recent available firmware installed.
This integration can be configured using the integrations in the
Home Assistant frontend.
Menu: **Configuration** -> **Integrations**.
Click on the `+` sign to add an integration and click on **BleBox**.
After completing the configuration flow, the BleBox
integration will be available.
Additionally, if you are configuring a gateBox, it may be useful to set the second button as "stop" in your device's settings (via website or phone app).
## Covers
This integration adds the BleBox device as a cover in Home Assistant.
Currently, this includes support for the following product classes:
- BleBox shutterBox
- BleBox gateController
- BleBox gateBox
For now, only a minimum set of features are supported (e.g., no tilt support for shutterBox).
## Sensors
This integration adds the BleBox device as a sensor in Home Assistant.
Currently, this includes support for the following product classes and their features:
- BleBox tempSensor (temperature only)

View File

@ -22,7 +22,17 @@ You will need your Blink login information (username, which is usually your emai
## Configuration
To enable devices linked in your [Blink](https://blinkforhome.com) account, add the following to your `configuration.yaml` file:
The preferred method for setting this up is by using the configuration flow. Go to the integrations page in your configuration and click on new integration -> Blink. When you are prompted for your pin, there are (currently) two possibilities:
1. You are sent an email asking for you to allow Home Assistant to access Blink. In this case, leave the pin field blank and hit `Submit`.
2. You are sent an email containing a 2FA pin. In this case, please enter the pin and hit `Submit`.
Your integration will then set up. Given that setup is asynchronous, you may see your sensors before they have finished extracting data from the Blink servers. After a few minutes (at most) this information should populate.
Existing YAML will be converted to this flow but will be removed in a future version. This is due to Blink's migration to 2FA which is rolling out this year, and which YAML cannot support.
If you'd like to continue using YAML until it is fully removed, you can use the following example:
```yaml
# Example configuration.yaml entry
@ -30,7 +40,6 @@ blink:
username: YOUR_USERNAME
password: YOUR_PASSWORD
```
{% configuration %}
username:
description: The username for accessing your Blink account.
@ -44,44 +53,14 @@ scan_interval:
description: How frequently to query for new data. Defaults to 300 seconds (5 minutes).
required: false
type: integer
binary_sensors:
description: Binary sensor configuration options.
required: false
type: map
keys:
monitored_conditions:
description: The conditions to create sensors from.
required: false
type: list
default: all (`motion_enabled`, `motion_detected`)
sensors:
description: Sensor configuration options.
required: false
type: map
keys:
monitored_conditions:
description: The conditions to create sensors from.
required: false
type: list
default: all (`battery`, `temperature`, `wifi_strength`)
offset:
description: How far back in time (minutes) to look for motion. Motion is determined if a new video has been recorded between now and the last time you refreshed plus this offset.
required: false
type: integer
default: 1
mode:
description: Set to 'legacy' to enable use of old API endpoint subdomains (APIs can differ based on region, so use this if you are having issues with the integration).
required: false
type: string
default: not set
{% endconfiguration %}
Once Home Assistant starts, the `blink` integration will create the following platforms:
Once Home Assistant starts and you authenticate access, the `blink` integration will create the following platforms:
- An `alarm_control_panel` to arm/disarm the whole blink system (note, `alarm_arm_home` is not implemented and will not actually do anything, despite it being an option in the GUI).
- A `camera` for each camera linked to your Blink sync module.
- A `sensor` per camera for every item listed in `monitored_conditions` (if no items specified in your `configuration.yaml`, all of them will be added by default).
- A `binary_sensor` for each item listed in `monitored_conditions` (if no items specified in your `configuration.yaml`, all of them will be added by default).
- A `sensor` per camera for temperature, wifi strength, and battery status
- A `binary_sensor` motion detection and camera armed status
Since the cameras are battery operated, setting the `scan_interval` must be done with care so as to not drain the battery too quickly, or hammer Blink's servers with too many API requests. The cameras can be manually updated via the `trigger_camera` service which will ignore the throttling caused by `scan_interval`. As a note, all of the camera-specific sensors are only polled when a new image is requested from the camera. This means that relying on any of these sensors to provide timely and accurate data is not recommended.
@ -95,15 +74,6 @@ blink:
username: YOUR_USERNAME
password: YOUR_PASSWORD
scan_interval: 300
binary_sensors:
monitored_conditions:
- motion_enabled
- motion_detected
sensors:
monitored_conditions:
- battery
- temperature
- wifi_strength
```
## Services
@ -140,6 +110,14 @@ homeassistant:
- '/path/to/whitelist'
```
### `blink.send_pin`
Send a new pin to blink. Since Blink's 2FA implementation is new and changing, this is to allow the integration to continue to work with user intervention. The intent is to handle all of this behind the scenes, but until the login implementation is settled this was added. To use it, you simply call the service with the pin you receive from Blink as the payload (for a simple "Allow this Device" email, you may keep the `pin` value empty).
| Service Data Attribute | Optional | Description |
| ---------------------- | -------- | ---------------------------- |
| `pin` | no | 2FA Pin received from blink. |
### Other Services
In addition to the services mentioned above, there are generic `camera` and `alarm_control_panel` services available for use as well. The `camera.enable_motion_detection` and `camera.disable_motion_detection` services allow for individual cameras to be enabled and disabled, respectively, within the Blink system. The `alarm_control_panel.alarm_arm_away` and `alarm_control_panel.alarm_disarm` services allow for the whole system to be armed and disarmed, respectively.

View File

@ -37,6 +37,11 @@ track_new_devices:
required: false
default: false
type: boolean
track_battery:
description: Whether the integration should try to read the battery status for tracked devices.
required: false
default: false
type: boolean
interval_seconds:
description: Seconds between each scan for new devices.
required: false
@ -47,6 +52,8 @@ interval_seconds:
As some BT LE devices change their MAC address regularly, a new device is only discovered when it has been seen 5 times.
Some BTLE devices (e.g., fitness trackers) are only visible to the devices that they are paired with. In this case, the BTLE tracker won't see this device.
Enabling the battery tracking might slightly decrease the duration of the battery, but since this is only done at most once a day, this shouldn't be noticeable. Not all devices offer battery status information; if the information is not available, the integration will only try once at startup.
## Rootless Setup
Normally accessing the Bluetooth stack is reserved for root, but running programs that are networked as root is a bad security wise. To allow non-root access to the Bluetooth stack we can give Python 3 and hcitool the missing capabilities to access the Bluetooth stack. Quite like setting the setuid bit (see [Stack Exchange](https://unix.stackexchange.com/questions/96106/bluetooth-le-scan-as-non-root) for more information).

View File

@ -0,0 +1,44 @@
---
title: BSBLan
description: Instructions on how to integrate BSBLan device into Home Assistant.
logo: bsblan.png
ha_category: Climate
ha_release: "0.110"
ha_iot_class: Local Polling
ha_config_flow: true
ha_codeowners:
- "@liudger"
ha_domain: bsblan
---
This integration integrates [BSBLan](https://github.com/fredlcore/bsb_lan) device into Home Assistant.
BSBLan is a device that is made by `Frederik Holst` and `Ulf Diekmann` for documentation and with
the help of many other contributors.
The board is designed for an Arduino Mega 2560 with an Ethernet-Shield for web-based controlling
of heating systems such as `Elco Thision`, `Brötje` and similar systems.
It can interface with the heating system over Boiler-System-Bus, Local Process Bus and PPS (Punkt-zu-Punkt Schnittstelle)
For more information of which system it supports, have a look at their [documentation](https://1coderookie.github.io/BSB-LPB-LAN_EN/).
## Configuration
This integration can be configured using the integrations in the
Home Assistant frontend.
Menu: **Configuration** -> **Integrations**.
Click on the `+` sign to add an integration and click on **BSBLan**.
Fill in the IP address of the device in your network and, if needed,
the port number. The default value should be 80.
For authentication now only passkey is supported.
Username and password are not supported yet. This will be supported in the next release.
After completing the configuration flow, the BSBLan Climate integration will be
available.
For more documentation of the BSBLan device, check the [manual](https://1coderookie.github.io/BSB-LPB-LAN_EN/).
The device support quite a few controllers from different manufacturers.
[list of supported models](https://1coderookie.github.io/BSB-LPB-LAN_EN/chap03.html#313-other-manufacturers)
The integration is tested with firmware latest stable version `v0.43`.

View File

@ -34,10 +34,61 @@ Home Assistant has its own Cast application to show the Home Assistant UI on any
```
<div class='note'>
Home Assistant Cast requires your Home Assistant installation to be accessible via `https://`. If you're using Home Assistant Cloud, you don't need to do anything. Otherwise you must make sure that you have configured the `base_url` for [the `http` integration](/integrations/http/).
Home Assistant Cast requires your Home Assistant installation to be accessible via `https://`. If you're using Home Assistant Cloud, you don't need to do anything. Otherwise you must make sure that you have configured the `external_url` in your [configuration](/docs/configuration/basic).
</div>
## Casting other apps
### YouTube
- `app_name`: `youtube`
- `media_id`: YouTube video ID
Optional:
- `enqueue`: Enqueue only
- `playlist_id`: Play video with `media_id` from this playlist
```yaml
'cast_youtube_to_my_chromecast':
alias: Cast YouTube to My Chromecast
sequence:
- data:
entity_id: media_player.my_chromecast
media_content_type: cast
media_content_id: '
{
"app_name": "youtube",
"media_id": "dQw4w9WgXcQ"
}'
service: media_player.play_media
```
### [Supla](https://www.supla.fi/)
Example values to cast the item at https://www.supla.fi/audio/3601824
- `app_name`: `supla`
- `media_id`: Supla item ID
Optional:
- `is_live`: Item is a livestream
```yaml
'cast_supla_to_my_chromecast':
alias: Cast supla to My Chromecast
sequence:
- data:
entity_id: media_player.my_chromecast
media_content_type: cast
media_content_id: '
{
"app_name": "supla",
"media_id": "3601824"
}'
service: media_player.play_media
```
## Advanced use
### Manual configuration

View File

@ -24,32 +24,17 @@ There is currently support for the following device types within Home Assistant:
## Supported hardware
- The European versions of the Wifi Controller Unit (BRP069A41, 42, 43, 45), which is powered by the [Daikin Online Controller](https://play.google.com/store/apps/details?id=eu.daikin.remoapp) application. The new versions of WiFi Controller Unit (BRP069Bxx) also should work but it have to be confirmed by users. Tested and working devices are the BRP069B41 and BRP069B45.
- The European versions of the Wifi Controller Unit (BRP069A41, 42, 43, 45), which is powered by the [Daikin Online Controller](https://play.google.com/store/apps/details?id=eu.daikin.remoapp) application. The new version of WiFi Controller Unit BRP069Bxx also confirmed to work, tested and working devices are the BRP069B41 and BRP069B45.
- The Australian version of the Daikin Wifi Controller Unit BRP072A42. Confirmed working on a Daikin Cora Series Reverse Cycle Split System Air Conditioner 2.5kW Cooling FTXM25QVMA with operation mode, temp, fan swing (3d, horizontal, vertical) which is powered by the [Daikin Mobile Controller](https://itunes.apple.com/au/app/daikin-mobile-controller/id917168708?mt=8) ([Android version](https://play.google.com/store/apps/details?id=eu.daikin.remoapp)) application.
- BRP072Cxx based units (including Zena devices) need to provide the API-key found on a sticker under the front cover during setup.
- The Australian version of the Daikin Wifi Controller for **AirBase** units (BRP15B61), which is powered by the [Daikin Airbase](https://play.google.com/store/apps/details?id=au.com.daikin.airbase) application.
- SKYFi based units (using the SKYFi app). These devices need to provide the password found on a sticker under the front cover during setup.
## Configuration
The Daikin integration can be configured in three ways.
The Daikin integration can be configured via the Home Assistant user interface where it will let you enter the IP-address of your Daikin AC (SKYFi based devices need to provide a password and BRP072Cxx devices need to provide a key).
- Automatically via the [discovery]({{site_root}}/integrations/discovery/) integration.
- Via the Home Assistant user interface where it will let you enter the IP-address of your Daikin AC.
- Or via the `configuration.yaml` file by adding the following:
```yaml
# Full manual example configuration.yaml entry
daikin:
hosts:
- 192.168.4.161
```
{% configuration %}
hosts:
description: List of IP addresses or hostnames.
required: false
default: All discovered hosts
type: list
{% endconfiguration %}
## Climate
@ -88,14 +73,21 @@ The `daikin` sensor platform integrates Daikin air conditioning systems into Hom
- Inside temperature
- Outside temperature
- Total instant power consumption
- Hourly energy consumption in cool mode
- Hourly energy consumption in heat mode
<div class='note'>
Some models only report outside temperature when they are turned on.
</div>
<div class='note'>
Some models does not report the power/energy consumption.
</div>
## Switch
Daikin AirBase units exposes zones (typically rooms) that can be switched on/off individually.
AirBase and SKYFi units exposes zones (typically rooms) that can be switched on/off individually.
<div class='note'>

View File

@ -23,6 +23,7 @@ This integration is a meta-component and configures a default set of integration
- [Map](/integrations/map/)
- [Mobile App Support](/integrations/mobile_app/)
- [Person](/integrations/person/)
- [Scene](/integrations/scene/)
- [Scripts](/integrations/script/)
- [Simple Service Discovery Protocol (SSDP)](/integrations/ssdp/)
- [Sun](/integrations/sun/)

View File

@ -0,0 +1,34 @@
---
title: devolo Home Control
description: Instructions on how to integrate devolo Home Control with Home Assistant.
ha_category:
- Switch
ha_release: "0.110"
ha_iot_class: Local Push
ha_config_flow: true
ha_codeowners:
- '@2Fake'
- '@Shutgun'
ha_domain: devolo_home_control
ha_quality_scale: silver
---
devolo Home Control is a Z-Wave ecosystem with a Z-Wave to IP gateway in the center. The integration allows you to control devices connected to the gateway.
## Configuration
Menu: **Configuration** -> **Integrations**.
Click on the `+` sign to add an integration and click on **devolo Home Control**. You will be asked for your [mydevolo](https://www.mydevolo.com) credentials. After entering them, the devolo Home Control integration will be available.
## Switches
The integration provides support for the following Z-Wave devices:
- devolo Metering Plug v1
- devolo Metering Plug v2
- devolo Switch FM
- Qubino Flush 1 Relay
- Qubino Flush 1D Relay
- Fibaro Wall Plug
- Fibaro Double Relay Switch

View File

@ -10,7 +10,7 @@ ha_domain: dialogflow
The `dialogflow` integration is designed to be used with the [webhook](https://dialogflow.com/docs/fulfillment#webhook) integration of [Dialogflow](https://dialogflow.com/). When a conversation ends with a user, Dialogflow sends an action and parameters to the webhook.
To be able to receive messages from Dialogflow, your Home Assistant instance needs to be accessible from the web and you need to have the `base_url` configured for the HTTP integration ([documentation](/integrations/http/#base_url)). Dialogflow will return fallback answers if your server does not answer or takes too long (more than 5 seconds).
To be able to receive messages from Dialogflow, your Home Assistant instance needs to be accessible from the web and you need to have the external URL [configured](/docs/configuration/basic). Dialogflow will return fallback answers if your server does not answer or takes too long (more than 5 seconds).
Dialogflow could be [integrated](https://dialogflow.com/docs/integrations/) with many popular messaging, virtual assistant and IoT platforms.

View File

@ -75,7 +75,6 @@ Valid values for ignore are:
* `enigma2`: Enigma2 media players
* `frontier_silicon`: Frontier Silicon internet radios
* `harmony`: Logitech Harmony Hub
* `igd`: Internet Gateway Device
* `logitech_mediaserver`: Logitech Media Server (Squeezebox)
* `netgear_router`: NETGEAR routers
* `octoprint`: Octoprint

View File

@ -33,6 +33,10 @@ sensor:
```
{% configuration %}
name:
description: The friendly name of the smart meter.
required: false
type: string
serial_port:
description: The device to communicate with. When using ser2net, use socket://host:port.
required: true

View File

@ -0,0 +1,30 @@
---
title: Flick Electric
description: Instructions on how to set up the Flick Electric Pricing sensor in Home Assistant.
ha_category:
- Energy
ha_release: '0.110'
ha_iot_class: Cloud Polling
ha_codeowners:
- '@ZephireNZ'
ha_domain: flick_electric
---
[Flick Electric Co](https://www.flickelectric.co.nz/) is a power company in New Zealand, based around a transparent pricing model where each component of pricing is provided. This integration uses the mobile app's API from Flick Electric Co to get the current power price as well as each of the components price.
## Configuration
This integration can be configured via the Home Assistant frontend.
- Go to **Configuration** -> **Integrations**.
- Click on the `+` in the bottom right corner to add a new integration.
- Search and select the **Flick Electric** integration form the list.
- Follow the instruction on screen to add the sensor.
<div class='note'>
The configuration uses the client ID and secret used by the app at the time of release. If this stops working, you can find the new ones by using a MITM proxy with the mobile app. The app will call `https://api.flick.energy/identity/oauth/token` with the `client_id` and `client_secret`.
You can then use these values during the configuration.
</div>

View File

@ -0,0 +1,31 @@
---
title: forked-daapd
description: Instructions on how to integrate a forked-daapd server into Home Assistant.
ha_category:
- Media Player
ha_release: "0.110"
ha_iot_class: Local Push
ha_domain: forked_daapd
---
The `forked_daapd` integration allows you to control your [forked-daapd](http://ejurgensen.github.io/forked-daapd/) server from Home Assistant. This integration can control the forked-daapd outputs (zones) with limited playback control (play/pause, previous/next track) and media info support. Playlist manipulation is not supported.
## Requirements
The `forked_daapd` integration requires a forked-daapd server built with libwebsockets enabled, version >= 27.0.
## Configuration
To add `forked-daapd` to your installation, go to **Configuration** >> **Integrations** in the UI, click the button with `+` sign and from the list of integrations select **forked-daapd**.
## Outputs
Once the `forked-daapd` integration is set up, outputs will automatically be loaded from the server and added to HA in real time.
## Pipes
As forked-daapd supports playing audio input via a pipe, this integration supports the forwarding of basic player controls (play, pause, next track, previous track) directly to the pipe's source. Currently only the pipe source librespot-java is supported. To use this, configure your forked-daapd server to autostart pipes and name your librespot-java pipe "librespot-java" (accompanying metadata is also supported through forked-daapd via a metadata pipe named"librespot-java.metadata"). The `forked-daapd` integration will find the librespot-java pipe in the database and will set it up as a source.
## Playlists
The `forked-daapd` integration will treat playlists in the database as sources. The number of playlists shown as sources can be set in the integration's configuration options.

View File

@ -42,11 +42,3 @@ tts:
- platform: google_translate
language: 'de'
```
If you are using SSL certificate or Docker, you may need to add the `base_url` configuration variable to your `http` integration as follows:
```yaml
#Example configuration.yaml entry
http:
base_url: https://example.duckdns.org
```

View File

@ -0,0 +1,59 @@
---
title: "Home Connect"
description: "Instructions on how to set up the Home Connect integration within Home Assistant."
logo: homeconnect.png
ha_category:
- Hub
- Binary Sensor
- Sensor
- Switch
ha_iot_class: Cloud Push
ha_release: "0.110"
ha_domain: home_connect
---
The Home Connect integration will allow users to integrate their home appliances supporting the Home Connect standard using the [official API](https://developer.home-connect.com).
The integration will add one Home Assistant device for each connected home appliance which will have the following entities:
- A power switch
- If the device has programs, switches for the individual programs. Note that program options cannot be configured at present.
- If the device has programs, a timestamp sensor for remaining time and a numeric sensor for the progress in percent.
Note that it depends on the appliance and on API permissions which of the features are actually supported. A notable limitation is that oven programs cannot be started at present.
## Installation
### Installation using a developer account
1. Visit [https://developer.home-connect.com](https://developer.home-connect.com) and sign up for a developer accouunt.
2. Under [Applications](https://developer.home-connect.com/applications), register a new App:
- Application ID: Home Assistant
- OAuth Flow: Authorization Code Grant Flow
- Redirect URI : `<YOUR_HOME_ASSISTANT_URL>/auth/external/callback`
3. Add the client ID and client secret to your `configuration.yaml` (see below).
4. Once Home Assistant restarted, go to Configuration > Integrations.
5. Select the Home Connect integration.
### Configuration
```yaml
# Example configuration.yaml entry
home_connect:
client_id: CLIENT_ID
client_secret: CLIENT_SECRET
```
{% configuration %}
client_id:
description: Your Home Connect client ID.
required: true
type: string
client_secret:
description: Your Home Connect client secret.
required: true
type: string
{% endconfiguration %}

View File

@ -1,15 +1,17 @@
---
title: HomeKit
description: Instructions on how to set up the HomeKit integration in Home Assistant.
title: HomeKit Bridge
description: Instructions on how to set up the HomeKit Bridge integration in Home Assistant.
ha_category:
- Voice
ha_release: 0.64
ha_iot_class: Local Push
ha_domain: homekit
ha_config_flow: true
ha_codeowners:
- '@bdraco'
---
The `homekit` integration allows you to forward entities from Home Assistant to Apple HomeKit, so they can be controlled from Apple's Home app and Siri. Please make sure that you have read the [considerations](#considerations) listed below to save you some trouble later. However, if you do encounter issues, check out the [troubleshooting](#troubleshooting) section.
The HomeKit Bridge integration allows you to forward entities from Home Assistant to Apple HomeKit, so they can be controlled from Apple's Home app and Siri. Please make sure that you have read the [considerations](#considerations) listed below to save you some trouble later. However if you do encounter issues, check out the [troubleshooting](#troubleshooting) section.
<div class="note">
@ -28,10 +30,14 @@ It might be necessary to install an additional package:
</div>
To add `HomeKit Bridge` to your installation, go to **Configuration** >> **Integrations** in the UI, click the button with `+` sign and from the list of integrations select **HomeKit Bridge**.
If you need to use the `entity_config`, `ip_address`, or `advertise_ip` configuration options, `HomeKit Bridge` must be configured via your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry configuring HomeKit
homekit:
filter:
- filter:
include_domains:
- alarm_control_panel
- light
@ -56,6 +62,13 @@ homekit:
- feature: toggle_mute
switch.bedroom_outlet:
type: outlet
camera.back_porch:
support_audio: True
- name: HASS Bridge 2
port: 56332
filter:
include_domains:
- light
```
{% configuration %}
@ -160,6 +173,68 @@ homekit:
required: false
type: string
default: '`switch`'
stream_address:
description: Only for `camera` entities. The source IP address to use when streaming to RTP clients. If your Home Assistant host has multiple interfaces, selecting a specific IP may be necessary.
required: false
type: string
default: local IP from Home Assistant
stream_source:
description: Only for `camera` entities. A URL, file or other valid FFmpeg input string to use as the stream source, rather than the default camera source. Required for camera entities that do not natively support streaming (MJPEG). If `-i` is not found in the stream source, it is prepended to construct the FFmpeg input.
required: false
type: string
default: stream source from camera entity
support_audio:
description: Only for `camera` entities. Whether the camera supports audio. Audio is disabled unless this flag is set to `True`.
required: false
type: boolean
default: '`False`'
max_width:
description: Only for `camera` entities. Maximum width supported by camera. Used when generating advertised video resolutions.
required: false
type: integer
default: 1920
max_height:
description: Only for `camera` entities. Maximum height supported by camera. Used when generating advertised video resolutions.
required: false
type: integer
default: 1080
max_fps:
description: Only for `camera` entities. Maximum fps supported by camera. Used when generating advertised video resolutions.
required: false
type: integer
default: 30
audio_map:
description: Only for `camera` entities. FFmpeg [stream selection mapping](https://ffmpeg.org/ffmpeg.html#Stream-selection) for the audio-only stream. Selects the first audio stream in the input stream by default. If your input stream has multiple audio streams, this may need to be adjusted.
required: false
type: string
default: '`0:a:0`'
video_map:
description: Only for `camera` entities. FFmpeg [stream selection mapping](https://ffmpeg.org/ffmpeg.html#Stream-selection) for the video-only stream. Selects the first video stream in the input stream by default. If your input stream has multiple video streams, this may need to be adjusted.
required: false
type: string
default: '`0:v:0`'
audio_packet_size:
description: Only for `camera` entities. RTP packet size used for streaming audio to HomeKit clients.
required: false
type: integer
default: 188
video_packet_size:
description: Only for `camera` entities. RTP packet size used for streaming video to HomeKit clients.
required: false
type: integer
default: 1316
video_codec:
description: Only for `camera` entities. FFmpeg video codec for transcoding. `copy` option reduces CPU load when video source already encoded with `H264` (MPEG4). `h264_omx` option is only available with custom FFmpeg builds and enables GPU Hardware acceleration on Raspberry Pi.
required: false
type: string
default: libx264
available options: copy, libx264, h264_omx
audio_codec:
description: Only for `camera` entities. FFmpeg audio codec for transcoding. `copy` option reduces CPU load when audio source already encoded with `libopus`.
required: false
type: string
default: libopus
available options: copy, libopus
{% endconfiguration %}
## Setup
@ -189,7 +264,7 @@ After the setup is completed, you should be able to control your Home Assistant
## Move Home Assistant install
If you like to retain your HomeKit pairing through a move to a new Home Assistant device or installation, besides copying the configurations files you need to copy the `.homekit.state` file inside your configurations directory. Keep in mind though that the file is usually hidden by default, depending on your operating system.
If you like to retain your HomeKit pairing through a move to a new Home Assistant device or installation, besides copying the configurations files you need to copy the `.storage/homekit.*` file inside your configurations directory. Keep in mind though that the file is usually hidden by default, depending on your operating system.
Before you copy it, make sure to stop the old and new Home Assistant instances first entirely, otherwise it won't work.
@ -197,11 +272,11 @@ Before you copy it, make sure to stop the old and new Home Assistant instances f
### Accessory ID
Currently, this integration 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.
Currently, this integration 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` that does not have a `unique_id`, all configurations for this accessory made in the `Home` app will be lost.
### Device Limit
The HomeKit Accessory Protocol Specification only allow a maximum of 150 unique accessories (`aid`) per bridge. Be mindful of this when configuring the filter(s).
The HomeKit Accessory Protocol Specification only allow a maximum of 150 unique accessories (`aid`) per bridge. Be mindful of this when configuring the filter(s). If you plan on exceeding the 150 device limit, it is possible to create multiple bridges. If you need specific configuration for some entities via `entity_config` be sure to add them to a bridge configured via `YAML`.
### Persistence Storage
@ -382,6 +457,7 @@ The following integrations are currently supported:
| alarm_control_panel | SecuritySystem | All security systems. |
| automation / input_boolean / remote / scene / script / vacuum | Switch | All represented as switches. |
| binary_sensor | Sensor | Support for `co2`, `door`, `garage_door`, `gas`, `moisture`, `motion`, `occupancy`, `opening`, `smoke` and `window` device classes. Defaults to the `occupancy` device class for everything else. |
| camera | Camera | All camera devices. **HomeKit Secure Video is not supported at this time.** |
| climate | Thermostat | All climate devices. |
| cover | GarageDoorOpener | All covers that support `open` and `close` and have `garage` or `gate` as their `device_class`. |
| cover | WindowCovering | All covers that support `set_cover_position`. |
@ -405,22 +481,22 @@ The following integrations are currently supported:
## Troubleshooting
### Deleting the `.homekit.state` file
### Resetting when created via YAML
The `.homekit.state` file can be found in the configurations directory. You might need to enable `view hidden files` to see it.
1. Delete the `HomeKit Bridge` integration in the **Integrations** screen.
2. **Restart** Home Assistant.
3. The configuration will be automaticlly reimported from YAML.
4. Pair the bridge.
1. **Stop** Home Assistant
2. Delete the `.homekit.state` file
3. **Start** Home Assistant
### Resetting when created via the **Integrations** screen
1. Delete the `HomeKit Bridge` integration in the **Integrations** screen.
2. Recreate the `HomeKit Bridge` integration in the **Integrations** screen.
3. Pair the bridge.
### Errors during pairing
If you encounter any issues during pairing, make sure to:
1. **Stop** Home Assistant
2. Delete the `.homekit.state` file
3. Edit your configuration (see below)
4. **Start** Home Assistant
If you encounter any issues during pairing, make sure to add the following to your `configuration.yaml`
```yaml
logger:
@ -428,7 +504,15 @@ logger:
logs:
homeassistant.components.homekit: debug
pyhap: debug
```
Follow the above instructions for `Resetting`
### Minimal Configuration
If pairing still fails after trying the steps in ([Errors during pairing](#errors-during-pairing)), it may be caused by a specific entity. Try resetting with a minimal configuration:
```yaml
homekit:
filter:
include_entities:
@ -437,7 +521,7 @@ homekit:
#### PIN doesn't appear as persistent status
You might have paired the `Home Assistant Bridge` already. If not, delete the `.homekit.state` file ([guide](#deleting-the-homekitstate-file)).
You might have paired the `Home Assistant Bridge` already. If not, follow the above instructions for `Resetting`
#### `Home Assistant Bridge` doesn't appear in the Home App (for pairing)
@ -473,7 +557,7 @@ Pairing works fine when the filter is set to only include `demo.demo`, but fails
#### Pairing hangs - no error
1. Make sure that you don't try to add more than 100 accessories, see [device limit](#device-limit). In rare cases, one of your entities doesn't work with the HomeKit component. Use the [filter](#configure-filter) to find out which one. Feel free to open a new issue in the `home-assistant` repository, so we can resolve it.
1. Make sure that you don't try to add more than 150 accessories, see [device limit](#device-limit). In rare cases, one of your entities doesn't work with the HomeKit component. Use the [filter](#configure-filter) to find out which one. Feel free to open a new issue in the `home-assistant` repository, so we can resolve it.
2. Check logs, and search for `Starting accessory Home Assistant Bridge on address`. Make sure Home Assistant Bridge hook up to a correct interface. If it did not, explicitly set `homekit.ip_address` configuration variable.
#### Duplicate AID found when attempting to add accessory
@ -498,22 +582,20 @@ To use the HomeKit integration with to different Home Assistant instances on the
Although we try our best, some entities don't work with the HomeKit integration yet. The result will be that either pairing fails completely or all Home Assistant accessories will stop working. Use the filter to identify which entity is causing the issue. It's best to try pairing and step by step including more entities. If it works unpair and repeat until you find the one that is causing the issues. To help others and the developers, please open a new issue here: [home-assistant/issues/new](https://github.com/home-assistant/home-assistant/issues/new?labels=component:%20homekit)
If you have any iOS 12.x devices signed into your iCloud account, media player entities with `device_class: tv` may trigger this condition. Filtering the entity or signing the iOS 12.x device out of iCloud should resolve the issue after restarting other devices.
#### Accessories are all listed as not responding
See [specific entity doesn't work](#specific-entity-doesnt-work)
#### Accessory not responding - after restart or update
See [device limit](#device-limit)
See [resetting accessories](#resetting-accessories)
#### Accessory not responding - randomly
Unfortunately, that sometimes happens at the moment. It might help to close the `Home` App and delete it from the cache. Usually, the accessory should get back to responding after a few minutes at most.
#### Accessories not responding / behaving unusual - Upgrade from `0.65.x`
To fix this, you need to unpair the `Home Assistant Bridge`, delete the `.homekit.state` file ([guide](#deleting-the-homekitstate-file)) and pair it again. This should only be an issue if you're upgrading from `0.65.x` or below.
#### The linked battery sensor isn't recognized
Try removing the entity from HomeKit and then adding it again. If you are adding this configuration option to an existing entity in HomeKit, any changes you make to this entity's configuration options won't appear until the accessory is removed from HomeKit and then re-added. See [resetting accessories](#resetting-accessories).
@ -526,9 +608,29 @@ Media Player entities with `device_class: tv` will show up as Television accesso
The volume and play/pause controls will show up on the Remote app or Control Center. If your TV supports volume control through Home Assistant, you will be able to control the volume using the side volume buttons on the device while having the remote selected on screen.
#### Camera video is not streaming
Ensure that the [`ffmpeg`](/integrations/ffmpeg) integration is configured correctly. Verify that your stream is directly playable with `ffplay <stream_source>` or [VLC Media Player](https://www.videolan.org/). If you have changed your camera's entity configuration, you may need to [reset the accessory](#resetting-accessories).
#### Cameras streaming is unstable or slow
If your camera supports native H.264 streams, Home Assistant can avoid converting the video stream, which is an expensive operation. To enable native H.264 streaming when configured via YAML, change the `video_codec` to `copy`. To allow native H.264 streaming when via the UI, go to **Configuration** >> **Integrations** in the UI, click **Options** for your HomeKit Bridge, and check the box for your camera on the `Cameras that support native H.264 streams` screen.
#### One video stream limit per camera
Currently, cameras are limited to one video stream. Multiple streams are not possible at this time. One workaround is to create a second `HomeKit Bridge` to generate a copy of the camera accessory.
#### Camera audio is not streaming
Make sure `support_audio` is `True` in the camera's entity configuration.
#### HomeKit stalls or devices respond slowly with many cameras
HomeKit updates each camera snapshot sequentially when there are multiple cameras on a bridge. The HomeKit update methodology can lead to the app stalling or taking a while to update. To avoid this problem, limit each `HomeKit Bridge` to 6 cameras and create a new `HomeKit Bridge` for additional cameras.
#### Resetting accessories
On Home Assistant `0.97.x` or later, you may use the service `homekit.reset_accessory` with one or more entity_ids to reset accessories whose configuration may have changed. This can be useful when changing a media_player's device class to `tv`, linking a battery, or whenever Home Assistant adds support for new HomeKit features to existing entities.
You may use the service `homekit.reset_accessory` with one or more entity_ids to reset accessories whose configuration may have changed. This can be useful when changing a media_player's device class to `tv`, linking a battery, or whenever Home Assistant adds support for new HomeKit features to existing entities.
On earlier versions of Home Assistant, you can reset accessories by removing the entity from HomeKit (via [filter](#configure-filter)) and then re-adding the accessory.

View File

@ -42,11 +42,6 @@ server_port:
required: false
type: integer
default: 8123
base_url:
description: "The URL that Home Assistant is available on the internet. For example: `https://hass-example.duckdns.org:8123`. The iOS app finds local installations, if you have an outside URL use this so that you can auto-fill when discovered in the app. Note that this setting may only contain a protocol, hostname and port; using a path is *not* currently supported."
required: false
type: string
default: Your local IP address
ssl_certificate:
description: Path to your TLS/SSL certificate to serve Home Assistant over a secure connection.
required: false

View File

@ -2,24 +2,44 @@
title: Hunter Douglas PowerView
description: Instructions on how to setup Hunter Douglas PowerView scenes within Home Assistant.
ha_category:
- Cover
- Scene
- Sensor
ha_release: 0.15
ha_domain: hunterdouglas_powerview
ha_iot_class: Local Polling
ha_config_flow: true
ha_codeowners:
- '@bdraco'
---
Implements the [Hunter Douglas PowerView](https://www.hunterdouglas.com/operating-systems/powerview-motorization/support) platform scene control. It queries the PowerView Hub and Home Assistant displays them as scenes.
The `hunterdouglas_powerview` integration allows you to integrate your [Hunter Douglas PowerView](https://www.hunterdouglas.com/operating-systems/powerview-motorization/support) devices in Home Assistant.
Scenes can be activated using the service `scene.turn_on`.
There is currently support for the following device types within Home Assistant:
- Cover
- Scene
- Sensor
To add `Hunter Douglas PowerView` to your installation, go to **Configuration** >> **Integrations** in the UI, click the button with `+` sign and from the list of integrations select **Hunter Douglas PowerView**.
Alternatively, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
scene:
platform: hunterdouglas_powerview
address: IP_ADDRESS
hunterdouglas_powerview:
- host: IP_ADDRESS
```
```yaml
# Example configuration.yaml with multiple hubs
hunterdouglas_powerview:
- host: IP_ADDRESS
- host: IP_ADDRESS_2
```
{% configuration %}
address:
host:
description: IP address of the PowerView Hub, e.g., 192.168.1.10.
required: true
type: string

View File

@ -14,7 +14,7 @@ ha_domain: ifttt
## Sending events from IFTTT to Home Assistant
To be able to receive events from IFTTT, your Home Assistant instance needs to be accessible from the web and you need to have the `base_url` configured for the HTTP integration ([documentation](/integrations/http/#base_url)).
To be able to receive events from IFTTT, your Home Assistant instance needs to be accessible from the web and you need to have the external URL [configured](/docs/configuration/basic).
### Setting up the integration

View File

@ -7,12 +7,6 @@ ha_domain: image_processing
Image processing enables Home Assistant to process images from [cameras](/integrations/#camera). Only camera entities are supported as sources.
<div class='note'>
If you are running Home Assistant over SSL or from within a container, you will have to setup a base URL (`base_url`) inside the [HTTP component](/integrations/http/).
</div>
## ALPR
ALPR entities have a vehicle counter attribute `vehicles` and all found plates are stored in the `plates` attribute.

View File

@ -68,6 +68,10 @@ verify_ssl:
description: Verify SSL certificate for HTTPS request.
required: false
default: true
path:
type: string
description: Path to use if your InfuxDB is running behind an reverse proxy.
required: false
max_retries:
type: integer
description: Set this to allow the integration to retry if there was a network error when transmitting data.

View File

@ -4,6 +4,7 @@ description: Instructions on how to setup the ISY994 controller within Home Assi
ha_category:
- Hub
- Binary Sensor
- Climate
- Cover
- Fan
- Light
@ -13,6 +14,7 @@ ha_category:
ha_release: 0.28
ha_iot_class: Local Push
ha_domain: isy994
ha_config_flow: true
---
The ISY994 is a home automation controller that is capable of controlling Insteon and X10 devices. Some models of the ISY994 can even control Z-Wave devices.
@ -21,6 +23,7 @@ The ISY994 controller is manufactured by [Universal Devices](https://www.univers
There is currently support for the following device types within Home Assistant:
- Binary Sensor
- Climate
- Cover
- Light
- Fan
@ -32,7 +35,9 @@ There is currently support for the following device types within Home Assistant:
Home Assistant is capable of communicating with any binary sensor, cover, fan, light, lock, sensor and switch that is configured on the controller. Using the programs on the controller, custom binary sensors, cover, fan, lock, and switches can also be created.
To integrate your ISY994 controller with Home Assistant, add the following section to your `configuration.yaml` file:
To integrate your ISY994 controller with Home Assistant, Go to the **integrations page** in your configuration and click on new **integration** -> **Universal Devices ISY994**.
You may also configure the integration manually by adding the following section to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@ -60,20 +65,25 @@ sensor_string:
required: false
type: string
default: sensor
variable_sensor_string:
description: This is the string that is used to identify which Integer or State Variables are to be added as sensors. If this string is found in the device name, Home Assistant will assume it is as a sensor.
required: false
type: string
default: sensor
ignore_string:
description: Any devices that contain this string in their name (or folder path) will be ignored by Home Assistant. They will not become entities at all.
description: Any devices that contain this string in their name (or folder path) will be ignored by Home Assistant. They will not become entities at all and will not fire `control_events`.
required: false
type: string
default: {IGNORE ME}
enable_climate:
description: When enabled, climate measurements from the optional climate module in the ISY994 will show up in Home Assistant as sensors.
required: false
type: string
default: true
tls:
description: This entry should reflect the version of TLS that the ISY controller is using for HTTPS encryption. This value can be either 1.1 or 1.2. If this value is not set, it is assumed to be version 1.1. This is the default for most users. ISY994 Pro users may likely be using 1.2. When using HTTPS in the host entry, it is best practice to set this value.
required: false
type: string
restore_light_state:
description: If disabled (default behavior), lights turned ON from Home Assistant without a `brightness` parameter set, will turn on to the `on_level` set within the physical device. For example, on Insteon devices this would be the same brightness as if the switch/device was turned ON. If this setting is enabled, lights that are turned on from Home Assistant will go to the last known brightness value. Both the `on_level` and `last_brightness` values are available as attributes if needed for device-specific customization.
required: false
type: boolean
default: false
{% endconfiguration %}
Once the ISY controller is configured, it will automatically import any binary sensors, covers, fans, lights, locks, sensors and switches it can locate.
@ -82,13 +92,15 @@ Once the ISY controller is configured, it will automatically import any binary s
An Insteon door/window sensor will show up as a single Binary Sensor rather than two discrete devices like it does in the ISY994 admin panel. Note that when in "Two Nodes" mode, the sensor will have an UNKNOWN state until the sensor changes for the first time since the last Home Assistant reboot. If you do not use Insteon scenes that are controlled directly from the door sensor, you may prefer to set the sensor to "One Node" mode using the ISY Admin Panel.
Each Insteon leak sensor will also show up as a single Binary Sensor as opposed to the two nodes seen in the ISY994. The name of the device will be based on what the parent node is named in the ISY994, which is typically the one with "-Dry" at the end of the name. This may be confusing, because "On" means wet in Home Assistant. You can rename this node either in the ISY994 Admin Panel (which will change the entity_id in Home Assistant) or assign a `friendly_name` in the [Customization section](/docs/configuration/customizing-devices/) of your configuration.
Each Insteon leak sensor will also show up as a single Binary Sensor as opposed to the two nodes seen in the ISY994. The name of the device will be based on what the parent node is named in the ISY994, which is typically the one with "-Dry" at the end of the name. This may be confusing, because "On" means wet in Home Assistant. You can rename this node in Home Assistant to be more clear, see the [Customization section](/docs/configuration/customizing-devices/) of your configuration.
If your leak or door/window sensor supports heartbeats, a new binary_sensor device will be added to Home Assistant to represent the battery state. The sensor will stay "Off" so long as the daily heartbeats occur. If a heartbeat is missed, the sensor will flip to "On". The name of this device will be based on the heartbeat node in the ISY.
### Handling Insteon Control Events
Integer and State Variables from the ISY can be used as sensors by setting the `variable_sensor_string` and adding it as part of the variable name in the ISY. For example, if you have a variable named `HA.my_variable` and a `variable_sensor_string` of `"HA."`, it will be automatically added as a `sensor` in Home Assistant.
A Home Assistant `isy994_control` event is emitted for every "control" event in the Insteon network. This allows you to write automations that trigger based on Insteon button presses. You can also trigger off of the unique Insteon events, such as double-presses, long-holds etc.
### Handling Insteon or Other ISY Control Events
A Home Assistant `isy994_control` event is emitted for every "control" event in the ISY's device network (as long as the device has not been ignored or disabled in Home Assistant). This allows you to write automations that trigger based on events such as Insteon button presses. You can also trigger off of the unique Insteon/Zigbee/Z-Wave events, such as double-presses, long-holds etc.
```yaml
automation:
@ -98,7 +110,11 @@ automation:
event_type: isy994_control
event_data:
entity_id: light.lr_track_lights_front
control: 'DFOF'
control: 'DFON'
value: 255
formatted: "On"
uom: "100"
prec: "0"
action:
service: light.turn_off
entity_id: light.lr_track_lights_rear
@ -116,11 +132,112 @@ All `isy994_control` events will have an `entity_id` and `control` parameter in
- `BRT`: "Brighten", from controllers that issue a single command to slightly brighten a light.
- `DIM`: "Dim", from controllers that issue a single command to slightly dim a light.
### Insteon Scenes
### Insteon Scenes & Keypad/Remote Buttons
All Insteon scenes configured in the ISY994 will show up as switches in Home Assistant.
All Insteon scenes configured in the ISY994 will show up as a `switch` in Home Assistant, as they do not support dimming or setting specific brightness settings as Home Assisstant's `light` component.
### Creating Custom Devices
Insteon Secondary Keypad buttons and Remote buttons are added to Home Assistant to allow support for using Control Events in Automations. These devices are added as `sensors` since they cannot be directly controlled (turned on/off); their state is the last ON level command they sent, in a range from `0` (Off) to `255` (On 100%). Note: these devices may report incorrect states before being used after a reboot of the ISY. Secondary Keypad buttons may be turned on or off using ISY Scenes (refer to ISY Documentation for more details).
### Services
Once loaded, the following services will be exposed with the `isy994.` prefix, to allow advanced control over the ISY and its connected devices:
- Entity services for Home Assistant-connected entities: `send_node_command`, `send_raw_node_command`, `set_on_level`, and `set_ramp_rate`.
- Generic ISY services: `system_query`, `set_variable`, `send_program_command`, and `run_network_resource`.
- Management services for the ISY994 Home Assistant integration: `reload` and `cleanup_entities`.
#### Service `isy994.send_node_command`
Send a command to an ISY Device using its Home Assistant entity ID. Valid commands are: `beep`, `brighten`, `dim`, `disable`, `enable`, `fade_down`, `fade_stop`, `fade_up`, `fast_off`, `fast_on`, and `query`.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | Name(s) of entities to send the command, e.g., `light.front_porch`. |
| `command` | no | The command to be sent to the device, e.g., `"fast_on"` |
#### Service `isy994.send_raw_node_command`
Send a "raw" (e.g., `DON`, `DOF`) ISY REST Device Command to a Node using its Home Assistant Entity ID. This is useful for devices that aren't fully supported in Home Assistant yet, such as controls for many NodeServer nodes. Refer to the ISY (or PyISY Python Module) Documentation for details of valid commands.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | Name(s) of entities to send the command, e.g., `light.front_porch`. |
| `command` | no | The ISY REST Command to be sent to the device, e.g., `"DON"` |
| `value` | yes | The integer value to be sent with the command, if required by the command, e.g., `255` |
| `parameters` | yes | A `dict` of parameters to be sent in the query string for controlling colored bulbs or advanced parameters, e.g., `{ GV2: 0, GV3: 0, GV4: 255 }` |
| `unit_of_measurement` | yes | The ISY Unit of Measurement (UOM) to send with the command, if required, e.g., `67` |
#### Service `isy994.set_on_level`
Send an ISY set_on_level command to a `light` Node to set the devices' local On Level.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | Name(s) of entities to send the command, e.g., `light.front_porch`. |
| `value` | no | The integer value to set the On Level to in a range of 0-255, e.g., `255` |
#### Service `isy994.set_ramp_rate`
Send an ISY set_ramp_rate command to a `light` Node to set the devices' ramp rate. Refer to the PyISY documentation for the [available values](https://github.com/automicus/PyISY/blob/d053369f7531370a907136bf25a177632adccd1e/pyisy/constants.py#L630).
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | no | Name(s) of entities to send the command, e.g., `light.front_porch`. |
| `value` | no | The integer index value to set the Ramp Rate to in a range of `0` (9.5 minutes) to `31` (0.1 Seconds), e.g., `28` |
#### Service `isy994.system_query`
Request the ISY Query the connected devices.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `address` | yes | ISY Address to Query. Omitting this requests a system-wide scan (typically recommended by UDI to be scheduled once per day), e.g., `"1A 2B 3C 1"` |
| `isy` | yes | If you have more than one ISY connected, provide the name of the ISY to query (as shown on the Device Registry or as the top-first node in the ISY Admin Console). Omitting this will cause all ISYs to be queried, e.g., `"ISY"` |
#### Service `isy994.set_variable`
Set an ISY variable's current or initial value. Variables can be set by either type/address or by name.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `value` | no | The integer value to be sent, e.g., `255` |
| `address` | no | The address of the variable for which to set the value, e.g., `5` |
| `type` | no | The variable type, 1 = Integer, 2 = State, e.g., `2` |
| `name` | yes | The name of the variable to set (Optional, use `name` instead of `type` and `address`), e.g., `"my_variable_name"` |
| `init` | yes | If True, the initial (init) value will be updated instead of the current value, e.g., `false` |
| `isy` | yes | If you have more than one ISY connected, provide the name of the ISY to query (as shown on the Device Registry or as the top-first node in the ISY Admin Console). If you have the same variable name or address on multiple ISYs, omitting this will run the command on them all, e.g., `"ISY"` |
#### Service `isy994.send_program_command`
Send a command to control an ISY program or folder. Valid commands are `run`, `run_then`, `run_else`, `stop`, `enable`, `disable`, `enable_run_at_startup`, and `disable_run_at_startup`.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `command` | no | The ISY Program Command to be sent, e.g., `"run"` |
| `address` | yes | The address of the program to control (optional, use either `address` or `name`), e.g., `"04B1"` |
| `name` | yes | The name of the program to control (optional, use either `address` or `name`), e.g., `"My Program"` |
| `isy` | yes | (Optional) If you have more than one ISY connected, provide the name of the ISY to query (as shown on the Device Registry or as the top-first node in the ISY Admin Console). If you have the same program name or address on multiple ISYs, omitting this will run the command on them all, e.g., `"ISY"` |
#### Service `isy994.run_network_resource`
Run a network resource on the ISY.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `address` | yes | The address of the network resource to execute (optional, use either `address` or `name`), e.g., `121` |
| `name` | yes | The name of the network resource to execute (optional, use either `address` or `name`), e.g., `"Network Resource 1"` |
| `isy` | yes | (Optional) If you have more than one ISY connected, provide the name of the ISY to query (as shown on the Device Registry or as the top-first node in the ISY Admin Console). If you have the same resource name or address on multiple ISYs, omitting this will run the command on them all, e.g., `"ISY"` |
#### Service `isy994.reload`
Reload the ISY994 connection(s) without restarting Home Assistant. Use this service to pick up new devices that have been added or changed on the ISY since the last restart of Home Assistant.
#### Service `isy994.cleanup_entities`
Cleanup old entities no longer used by the ISY994 integrations. Useful if you've removed devices from the ISY or changed the filter string options in the configuration to exclude additional items and they were not properly removed
by Home Assistant.
### Creating Custom Devices using ISY Programs
Using the Programs tab in the controller's Administrative Console, custom devices can be created that will appear natively inside of Home Assistant. Home Assistant will scan the following folders and build the device to the associated domains:

View File

@ -1,6 +1,6 @@
---
title: JuiceNet
description: Instructions on how to setup WiFi-equipped Juicenet charging stations with Home Assistant.
description: Instructions on how to setup WiFi-equipped JuiceNet/JuiceBox charging stations with Home Assistant.
ha_category:
- Car
- Energy
@ -11,13 +11,16 @@ ha_release: 0.47
ha_codeowners:
- '@jesserockz'
ha_domain: juicenet
ha_config_flow: true
---
The `juicenet` sensor platform pulls data from a [JuiceNet](https://emotorwerks.com/products/juicenet/) charging station equipped with a Wi-Fi connection. It will access and make available all of the devices attached to your account. It also exposes a switch allowing you to charge your car now instead of waiting for the pre-set schedule.
The `juicenet` platform pulls data from a [JuiceNet](https://evcharging.enelx.com/products/juicebox) charging station equipped with a Wi-Fi connection. It will access and make available all of the devices attached to your account. It also exposes a switch allowing you to charge your car now instead of waiting for the pre-set schedule.
## Configuration
To enable the platform in your installation, add the following to your `configuration.yaml` file:
To add `JuiceNet` go to **Configuration** >> **Integrations** in the UI, click the button with `+` sign and from the list of integrations select **JuiceNet**.
Alternatively, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@ -27,14 +30,14 @@ juicenet:
{% configuration %}
access_token:
description: "Your eMotorWerks API Token can be found in the [dashboard](https://dashboard.emotorwerks.com/Manage)."
description: "Your JuiceNet API Token can be found in the [dashboard](https://home.juice.net/Manage)."
required: true
type: string
{% endconfiguration %}
## Sensor
The `juicenet` sensor platform allows you to get data from your [JuiceNet](https://emotorwerks.com/products/juicenet/) sensors.
The `juicenet` sensor platform allows you to get data from your [JuiceNet](https://evcharging.enelx.com/products/juicebox) charger.
### Added sensors

View File

@ -10,12 +10,12 @@ ha_codeowners:
ha_domain: knx
---
The [KNX](https://www.knx.org) integration for Home Assistant allows you to connect to a KNX/IP devices.
The [KNX](https://www.knx.org) integration for Home Assistant allows you to connect to KNX/IP devices.
The integration requires a local KNX/IP interface like the [Weinzierl 730](https://www.weinzierl.de/index.php/en/all-knx/knx-devices-en/produktarchiv-en/knx-ip-interface-730-en). Through this, it will send and receive commands to and from other devices to the KNX bus.
The integration requires a local KNX/IP interface or router. Through this, it will establish a connection between Home Assistant and your KNX bus.
<div class='note warning'>
Please note, the `knx` platform does not support Windows.
Please note, the `knx` platform does not support KNX Secure.
</div>
There is currently support for the following device types within Home Assistant:
@ -37,7 +37,7 @@ To use your KNX in your installation, add the following lines to your `configura
knx:
```
Optional, recommended for large KNX installations (>100 devices) and/or if you want to use the XKNX abstraction also for other scripted tools outside of Home Assistant:
Optional, or if you want to use the XKNX abstraction also for other scripted tools outside of Home Assistant:
```yaml
knx:
@ -46,7 +46,7 @@ knx:
{% configuration %}
config_file:
description: The path for XKNX configuration file.
description: The path for XKNX configuration file. See [xknx.io](https://xknx.io/configuration) for details
required: false
type: string
rate_limit:
@ -138,9 +138,11 @@ payload:
type: [integer, list]
{% endconfiguration %}
### Exposing sensor values or time to KNX bus
You can also use the `homeassistant.update_entity` service call to issue GroupValueRead requests for all `*state_address` of a device.
KNX integration is able to expose time or sensor values to KNX bus. The integration will broadcast any change of the exposed value to the KNX bus and answer read requests to the specified group address:
### Exposing entity states, entity attributes or time to KNX bus
KNX integration is able to expose entity states or attributes to KNX bus. The integration will broadcast any change of the exposed value to the KNX bus and answer read requests to the specified group address. It is also possible to expose the current time.
```yaml
# Example configuration.yaml entry
@ -155,6 +157,15 @@ knx:
- type: 'binary'
entity_id: 'binary_sensor.kitchen_window'
address: '0/6/5'
- type: 'binary'
entity_id: 'light.office'
address: '0/3/0'
default: False
- type: 'percentU8'
entity_id: 'light.office'
attribute: 'brightness'
default: 0
address: '0/3/1'
- type: 'time'
address: '0/0/1'
- type: 'datetime'
@ -169,6 +180,19 @@ type:
entity_id:
description: Entity id to be exposed. Not needed for types time, date and datetime.
type: string
required: false
attribute:
description: Attribute of the entity that shall be sent to the KNX bus. If not set (or `None`) the state will be sent.
Eg. for a light the state is eigther "on" or "off" - with attribute you can expose its "brightness".
type: string
required: false
default:
description: Default value to send to the bus if the state or attribute value is `None`.
Eg. a light with state "off" has no brightness attribute so a default value of `0` could be used.
If not set (or `None`) no value would be sent to the bus and a GroupReadRequest to the address would return the last known value.
type: [boolean, string, integer, float]
default: None
required: false
address:
description: KNX group address.
type: string

View File

@ -98,7 +98,7 @@ Once all zones are configured you'll be presented with the configuration for add
**Blink panel LED on when sending state change:** The desired LED behavior for the panel.
**Override default Home Assistant API host panel URL:** The Konnected Alarm Panel post sensor states back to the Home Assistant API. If this value is unchecked the panel will default postbacks using `base_url` in the `http` component. If you've set `base_url` to an external hostname, then you'll want to check this field and set the **Override API host URL** to your _local_ IP address and port (e.g., `http://192.168.1.101:8123`).
**Override default Home Assistant API host panel URL:** The Konnected Alarm Panel post sensor states back to the Home Assistant API. If this value is unchecked the panel will default postbacks using the URL [configured](/docs/configuration/basic) in Home Assistant. By default, the integration will use the internal URL. However, if you check this field and set the **Override API host URL** to your _local_ IP address and port (e.g., `http://192.168.1.101:8123`), it will be used instead of the internal URL.
**Override API host URL (optional):** The host info to use if you checked **Override default Home Assistant API host panel URL** in the step above. This is ignored if **Override default Home Assistant API host panel URL** is unchecked.
@ -132,10 +132,10 @@ access_token:
required: true
type: string
api_host:
description: Override the IP address/host (and port number) of Home Assistant that the Konnected device(s) will use to communicate sensor state updates. If omitted, this is defaulted to the value of `base_url` in the `http` component. If you've set `base_url` to an external hostname, then you'll want to set this value back to your _local_ IP address and port (e.g., `http://192.168.1.101:8123`).
description: Override the IP address/host (and port number) of Home Assistant that the Konnected device(s) will use to communicate sensor state updates. If omitted, this is defaulted to the value of internal URL from the Home Assistant configuration is used.
required: false
type: string
default: value of `base_url`
default: value of internal URL
devices:
description: A list of Konnected devices that you have on your network.
required: true

View File

@ -158,6 +158,14 @@ json_attributes_topic:
description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation.
required: false
type: string
max_mireds:
description: The maximum color temperature in mireds.
required: false
type: integer
min_mireds:
description: The minimum color temperature in mireds.
required: false
type: integer
name:
description: The name of the light.
required: false
@ -475,6 +483,14 @@ json_attributes_topic:
description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation.
required: false
type: string
max_mireds:
description: The maximum color temperature in mireds.
required: false
type: integer
min_mireds:
description: The minimum color temperature in mireds.
required: false
type: integer
name:
description: The name of the light.
required: false
@ -769,6 +785,14 @@ json_attributes_topic:
description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation.
required: false
type: string
max_mireds:
description: The maximum color temperature in mireds.
required: false
type: integer
min_mireds:
description: The minimum color temperature in mireds.
required: false
type: integer
name:
description: The name of the light.
required: false

View File

@ -38,12 +38,18 @@ Once you have the three necessary files, place them in your configuration direct
```yaml
# Example configuration.yaml entry
lutron_caseta:
host: IP_ADDRESS
- host: IP_ADDRESS
keyfile: caseta.key
certfile: caseta.crt
ca_certs: caseta-bridge.crt
```
<div class='note'>
Note that multiple hubs can be specified by using multiple configuration blocks, but each of them requires its own `keyfile`, `certfile`, and `ca_certs` to be generated and specified.
</div>
{% configuration %}
host:
required: true

View File

@ -8,7 +8,7 @@ ha_config_flow: true
ha_domain: mailgun
---
To be able to receive webhooks from Mailgun, your Home Assistant instance needs to be accessible from the web and you need to have the `base_url` configured for the HTTP integration ([documentation](/integrations/http/#base_url)).
To be able to receive webhooks from Mailgun, your Home Assistant instance needs to be accessible from the web and you need to have the extern URL [configured](/docs/configuration/basic)).
To set it up, go to the integrations page in the configuration screen and find Mailgun. Click on configure. Follow the instructions on the screen to configure Mailgun.

View File

@ -45,17 +45,17 @@ code_arm_required:
type: boolean
default: true
delay_time:
description: The time in seconds of the pending time before triggering the alarm.
description: The time in seconds of the 'pending' state before triggering the alarm.
required: false
type: integer
default: 0
pending_time:
description: The time in seconds of the pending time before effecting a state change.
default: 60
arming_time:
description: The time in seconds of the 'arming' state before effecting a state change.
required: false
type: integer
default: 60
trigger_time:
description: The time in seconds of the trigger time in which the alarm is firing.
description: The time in seconds of the 'triggered' state in which the alarm is firing.
required: false
type: integer
default: 120
@ -73,8 +73,8 @@ armed_custom_bypass/armed_home/armed_away/armed_night/disarmed/triggered:
description: State specific setting for **delay_time** (all states except **triggered**)
required: false
type: integer
pending_time:
description: State specific setting for **pending_time** (all states except **disarmed**)
arming_time:
description: State specific setting for **arming_time** (all states except **disarmed**)
required: false
type: integer
trigger_time:
@ -86,20 +86,19 @@ armed_custom_bypass/armed_home/armed_away/armed_night/disarmed/triggered:
## State machine
The state machine of the manual alarm integration is complex but powerful. The
transitions are timed according to three values, **delay_time**, **pending_time**
transitions are timed according to three values, **delay_time**, **arming_time**
and **trigger_time**. The values in turn can come from the default configuration
variable or from a state-specific override.
When the alarm is armed, its state first goes to **pending** for a number
of seconds equal to the destination state's **pending_time**, and then
When the alarm is armed, its state first goes to **arming** for a number
of seconds equal to the destination state's **arming_time**, and then
transitions to one of the "armed" states. Note that **code_template**
never receives "pending" in the **to_state** variable; instead,
never receives "arming" in the **to_state** variable; instead,
**to_state** contains the state which the user has requested. However,
**from_state** *can* contain "pending".
**from_state** *can* contain "arming".
When the alarm is triggered, its state goes to **pending** for a number of
seconds equal to the previous state's **delay_time** plus the triggered
state's **pending_time**. Then the alarm transitions to the "triggered"
seconds equal to the previous state's **delay_time**. Then the alarm transitions to the "triggered"
states. The code is never checked when triggering the alarm, so the
**to_state** variable of **code_template** cannot ever contain "triggered"
either; again, **from_state** *can* contain "triggered".
@ -110,12 +109,11 @@ it goes back to either the previous state or **disarmed**. If the previous
state's **trigger_time** is zero, the transition to "triggered" is entirely
blocked and the alarm remains in the armed state.
Each of the settings is useful in different scenarios. **pending_time** gives
you some time to leave the building (for "armed" states) or to disarm the alarm
(for the "triggered" state).
Each of the settings is useful in different scenarios. **arming_time** gives
you some time to leave the building (for "armed" states).
**delay_time** can also be used to allow some time to disarm the alarm, but with
more flexibility. For example, you could specify a delay time for the
**delay_time** can be used to allow some time to disarm the alarm, with
flexibility. For example, you could specify a delay time for the
"armed away" state, in order to avoid triggering the alarm while the
garage door opens, but not for the "armed home" state.
@ -137,12 +135,13 @@ alarm_control_panel:
name: Home Alarm
code: '1234'
pending_time: 30
arming_time: 30
delay_time: 20
trigger_time: 4
disarmed:
trigger_time: 0
armed_home:
pending_time: 0
arming_time: 0
delay_time: 0
```

View File

@ -110,6 +110,8 @@ The following attributes are available for `sensor` platform entities:
- Room temperature for each zone
- Tank water temperature
- Outside temperature - 1°C precision, polled every 1-2 hours.
- Zone flow temperature, polled every 1-2 hours
- Zone flow return temperature, polled every 1-2 hours
Unlike air-to-air devices, air-to-water devices do not report energy consumption in an easily accessible manner.

View File

@ -12,27 +12,8 @@ ha_domain: mill
Integrates Mill heater into Home Assistant.
## Configuration
To add Mill to your installation, go to Configuration >> Integrations in the UI and enable the Mill integration.
To enable this platform, add the following lines to your `configuration.yaml` file:
```yaml
climate:
- platform: mill
username: YOUR_EMAIL_ADDRESS
password: YOUR_PASSWORD
```
{% configuration %}
username:
description: Your registered Mill email.
required: true
type: string
password:
description: Your Mill password.
required: true
type: string
{% endconfiguration %}
## Component services

View File

@ -8,6 +8,7 @@ ha_config_flow: true
ha_iot_class: Local Polling
ha_codeowners:
- '@etsinko'
- '@OnFreund'
ha_domain: monoprice
---
@ -20,12 +21,12 @@ Menu: **Configuration** -> **Integrations**.
Click on the `+` sign to add an integration and click on **Monoprice**.
Select the serial port to which Monoprice amplifier is connected, and name the six sources (leave sources you're not using empty).
Sources can also be later edited from the integration options (gear icon in the top right when selecting the integration). In order to remove an existing source, you'll need to replace it with a space (simply removing its name will still keep it in place). Note that editing sources will remove the snapshot you may have saved.
Sources can also be later edited from the integration options (gear icon in the top right when selecting the integration). Note that editing sources will remove the snapshot you may have saved.
## Zone Management
Devices and entities are created for each of the possible 18 zones, and can be enabled, disabled and renamed through regular Home Assisant methods.
By default, the first 6 zones (11..16) are enabled, while the 12 extension zones (21..26, and 31..36) are disabled.
By default, the first 6 zones (11..16) are enabled, and there's an attempt to automatically detect the 12 extension zones (21..26, and 31..36) on the first run.
## Services

View File

@ -86,7 +86,7 @@ The `netatmo` sensor platform is consuming the information provided by a [Netatm
The [Netatmo Smart Indoor](https://www.netatmo.com/en-gb/security/cam-indoor) or [Outdoor](https://www.netatmo.com/en-gb/security/cam-outdoor) cameras, [Smart Door and Window Sensors](https://www.netatmo.com/en-gb/security/cam-indoor/tag), as well as the [Netatmo Smart Smoke Alarm](https://www.netatmo.com/en-gb/security/smoke-alarm), send instant events to Home Assistant by using webhooks. It is required to have your camera enabled in Home Assistant.
To be able to receive events from [Netatmo](https://www.netatmo.com/en-gb/), your Home Assistant instance needs to be accessible from the web over port `80` or `443`. To achieve this you can either use your Nabu Casa account or for example Duck DNS ([Home Assistant instructions](/addons/duckdns/)). You also need to have the `base_url` configured for the HTTP integration ([documentation](/integrations/http/#base_url)).
To be able to receive events from [Netatmo](https://www.netatmo.com/en-gb/), your Home Assistant instance needs to be accessible from the web over port `80` or `443`. To achieve this you can either use your Nabu Casa account or for example Duck DNS ([Home Assistant instructions](/addons/duckdns/)). You also need to have the external URL configured in the Home Assistant [configuration](/docs/configuration/basic).
Events coming in from Netatmo will be available as an event in Home Assistant and are fired as `netatmo_event`, along with their data. You can use these events to trigger automations.

View File

@ -0,0 +1,211 @@
---
title: Numato USB GPIO Expander
description: Instructions on how to integrate a Numato GPIO expander into Home Assistant.
ha_category:
- DIY
- Binary Sensor
- Sensor
- Switch
logo: numato.png
ha_release: "0.110"
ha_iot_class: Local Push
ha_domain: numato
---
The `numato` integration is the base for all related GPIO platforms of the
[Numato 32 Port USB GPIO expander](https://numato.com/product/32-channel-usb-gpio-module-with-analog-inputs):
- [Binary Sensor](#binary-sensor)
- [Sensor](#sensor)
- [Switch](#switch)
The whole configuration of all Numato devices is located in the general setup
of this integration. The following minimalistic example configures a couple of
binary_sensor, switch and sensor ports for a single device with ID 0.
```yaml
numato:
devices:
- id: 0
binary_sensors:
ports:
2: Window Livingroom Open
3: Window Livingroom Glassbreak
4: Doorbell
sensors:
ports:
1:
name: Soil Moisture Ficus
switches:
ports:
5: Relay Light Outdoor
6: Relay Circulation Pump
7: Door Opener
```
{% configuration %}
discover:
description: List of OS device files (/dev/...) to try during discovery
required: false
default: List of /dev/ttyACM0 .. /dev/ttyACM9
type: list
devices:
description: List of Numato 32 Port USB GPIO devices.
required: true
type: list
keys:
id:
description: ID configured in the device (not the Linux device since this can change).
required: true
type: integer
binary_sensors:
description: Configuration of ports for the `binary_sensor` platform
type: map
keys:
invert_logic:
description: Whether to invert the logic, so a high voltage level is interpreted as false.
required: false
default: false
type: boolean
ports:
description: Map of port numbers to names.
required: true
type: map
keys:
"port: name":
description: The port numbers and corresponding names.
required: true
type: string
sensors:
description: Configuration of ports for the `sensor` platform
type: map
keys:
ports:
description: Map of port numbers to ADC configurations.
required: true
type: map
keys:
"port: adc_config":
description: The port number and corresponding ADC configuration.
required: true
type: map
keys:
name:
description: Name of the ADC sensor port.
required: true
type: string
source_range:
description: Range within the ADC's resolution to map values from.
required: false
default: [0, 1024]
type: list
destination_range:
description: Range to map values from the source range to in a linear fashion.
required: false
default: [0.0, 100.0]
type: list
unit:
description: Unit of the destination values.
required: false
type: string
default: \%
switches:
description: Configuration of ports for the `sensor` platform
type: map
keys:
invert_logic:
description: Whether to invert the logic, so a value of true leads to a low voltage level at the output.
required: false
default: false
type: boolean
ports:
description: Map of port numbers to names.
required: true
type: map
keys:
"port: name":
description: The port numbers and corresponding names.
required: true
type: string
{% endconfiguration %}
## Binary Sensor
The `numato` binary_sensor platform allows you to operate the GPIOs of your
[Numato](https://numato.com) 32 port USB GPIO expander in binary input mode.
<div class='note warning'>
As the Numato devices do not have internal pull-up or pull-down circuitry,
be careful not to destroy a port by creating a short circuit. Refer to the
[Numato documentation](https://numato.com/docs/32-channel-usb-gpio-module-with-analog-inputs/#gpio-with-switches-8)
on how to connect a switch to an input port, for example.
</div>
## Sensor
The `numato` sensor platform allows you to operate some GPIOs of your USB GPIO
expander in analog input mode.
The Numato device has a number of built-in analog-digital-converters (ADCs) to
convert a voltage level between VCC and GND into a 10-bit integer value. Read
the [IO Ports](#io-ports) section for constraints on the ports to use.
By default, the ADC's whole 10-bit range will be mapped to a float value between
0.0 and 1.0. Use the optional `source_range` to map from a specific range and
the `destination_range` to specify the value range to represent the entity
state.
## Switch
The `numato` switch platform allows you to operate the GPIOs of your
[Numato](https://numato.com) 32 port USB GPIO expander in output mode.
## IO Ports
The IO port numbers used in this configuration refer to the port numbers
printed on the PCB. Note that the Sensor platform can be configured on ports
1-7 only. These are the only ports on the 32 port device equipped with an ADC.
For details about the GPIO layout, take a look at the [Numato 32 GPIO
documentation](https://numato.com/docs/32-channel-usb-gpio-module-with-analog-inputs).
## Device IDs
This integration uses a internal device ID to identify the device, which is
_not_ the Linux device path. The Linux device path (e.g., `/dev/ttyACM0`) can
change, for example, when you disconnect and re-connect the device or if you
connect the device to a different USB port.
The internal device ID is 0 by default. If you have only one device, you should
not need to care about changing it. If you have multiple devices, their IDs are
shown in the console log during startup of Home Assistant.
### Configure the Device ID
Configure your Numato device's ID with the following steps. Though you can use
any terminal emulator to connect to and communicate with your device, the
following steps are based on using _GNU Screen_. On a Debian or Ubuntu-based OS
install _Screen_ like `sudo apt install screen`.
1. Plug in only the one device to assign an id to so it'll get /dev/ttyACM0
2. Wait a couple of seconds as your Linux OS may be trying to identify the
device as a Modem right after plugging it in
3. Run `screen /dev/ttyACM0`
4. Type `id get` to see the current ID
5. Type `id set 00000005` and hit enter to assign ID 5
6. Type `id get` to validate and expect `00000005` as a reply
7. Quit screen with: Ctrl-a + \ and confirm with `y`
Note that during communication with the device the ID values are strictly 32
bit hexadecimal numbers (8 hex digits) with leading `0` padding.
Hint: It is a good practice to put sticky labels with the IDs onto the PCBs in
order to avoid confusion of devices and their port configuration since this
could easily destroy your device.
<div class='note warning'>
Numato devices used by Home Assistant are expected to be exclusive to Home
Assistant and remain permanently connected.
</div>

View File

@ -7,62 +7,51 @@ ha_release: 0.47
ha_domain: onvif
---
The `onvif` camera platform allows you to use an [ONVIF](https://www.onvif.org/) camera in Home Assistant. This requires the [`ffmpeg` component](/integrations/ffmpeg/) to be already configured.
The `onvif` camera platform allows you to use an [ONVIF](https://www.onvif.org/) Profile S conformant device in Home Assistant. This requires the [`ffmpeg` component](/integrations/ffmpeg/) to be already configured.
## Configuration
To enable your ONVIF camera in your installation, add the following to your `configuration.yaml` file:
Home Assistant offers ONVIF integration through **Configuration** -> **Integrations** -> **ONVIF**. Follow the instructions to get it set up.
```yaml
# Example configuration.yaml entry
camera:
- platform: onvif
host: 192.168.1.111
```
<div class='note'>
It is recommended that you create a user on your device specifically for Home Assistant. For all current functionality, it is enough to create a standard user.
</div>
{% configuration %}
host:
description: The IP address or hostname of the camera.
required: true
type: string
name:
description: Override the name of your camera.
required: false
type: string
default: ONVIF Camera
username:
description: The username for the camera.
required: false
type: string
default: admin
password:
description: The password for the camera.
required: false
type: string
default: 888888
port:
description: The (HTTP) port for the camera.
required: false
type: integer
default: 5000
profile:
description: Video profile that will be used to obtain the stream, more details below.
required: false
type: integer
default: 0
rtsp_transport:
description: "RTSP transport protocols. The possible options are: `tcp`, `udp`, `udp_multicast`, `http`."
required: false
type: string
default: tcp
extra_arguments:
description: "Extra options to pass to `ffmpeg`, e.g., image quality or video filter options. More details in [`ffmpeg` component](/integrations/ffmpeg)."
required: false
type: string
default: -q:v 2
{% endconfiguration %}
### Configuration Notes
Most of the ONVIF cameras support more than one audio/video profile. Each profile provides different image quality. Usually, the first profile has the highest quality and it is the profile used by default. However, you may want to use a lower quality image. One of the reasons may be that your hardware isn't able to render the highest quality image in real-time, especially when running on Raspberry Pi. Therefore you can choose which profile do you want to use by setting in configuration `profile` variable.
Most of the ONVIF devices support more than one audio/video profile. Each profile provides different image quality, or in the case of an NVR, separate connected cameras. This integration will add entities for all compatible profiles with the video encoding set to H254. Usually, the first profile has the highest quality and it is the profile used by default. However, you may want to use a lower quality image. You may disable unwanted entities through the Home Assistant UI.
### Extra configuration of the integration
You can configure specific FFmpeg options through the integration options flow by clicking the gear icon on the top right of the integration details page.
| Option | Description |
| -------| ----------- |
| RTSP transport mechanism | RTSP transport protocols. The possible options are: `tcp`, `udp`, `udp_multicast`, `http`. |
| Extra FFmpeg arguments | Extra options to pass to `ffmpeg`, e.g., image quality or video filter options. More details in [`ffmpeg` component](/integrations/ffmpeg). |
### Supported Sensors
This integration uses the ONVIF pullpoint subscription API to process events into sensors that will be automatically added to Home Assistant. Below is a list of currently supported event topics along with the entities they create.
To help with development of this component, enable `info` level logging for `homeassistant.components.onvif` and create an issue on GitHub for any messages that show _"No registered handler for event"_.
| Topic(s) | Entity Type | Device Class | Description |
|----------|-------------|--------------|-------------|
| `tns1:VideoSource/MotionAlarm` | Binary Sensor | Motion | Generic motion alarm. |
| `tns1:RuleEngine/FieldDetector/ObjectsInside` | Binary Sensor | Motion | Polygonal field detection determines if each object in the scene is inside or outside the polygon. |
| `tns1:RuleEngine/CellMotionDetector/Motion` | Binary Sensor | Motion | Cell based motion detection determined by placing a grid over the video source and determining changes. |
| `tns1:AudioAnalytics/Audio/DetectedSound` | Binary Sensor | Sound | Device detected sound. |
| `tns1:VideoSource/ImageTooBlurry/AnalyticsService`<br>`tns1:VideoSource/ImageTooBlurry/ImagingService`<br>`tns1:VideoSource/ImageTooBlurry/RecordingService` | Binary Sensor | Problem | Device reports blurry image. |
| `tns1:VideoSource/ImageTooDark/AnalyticsService`<br>`tns1:VideoSource/ImageTooDark/ImagingService`<br>`tns1:VideoSource/ImageTooDark/RecordingService` | Binary Sensor | Problem | Device reports dark image. |
| `tns1:VideoSource/ImageTooBright/AnalyticsService`<br>`tns1:VideoSource/ImageTooBright/ImagingService`<br>`tns1:VideoSource/ImageTooBright/RecordingService` | Binary Sensor | Problem | Device reports bright image. |
| `tns1:VideoSource/GlobalSceneChange/AnalyticsService`<br>`tns1:VideoSource/GlobalSceneChange/ImagingService`<br>`tns1:VideoSource/GlobalSceneChange/RecordingService` | Binary Sensor | Problem | Device reports a large portion of the video content changing. The cause can be tamper actions like camera movement or coverage. |
| `tns1:RuleEngine/TamperDetector/Tamper` | Binary Sensor | Problem | Tamper Detection. |
| `tns1:Device/HardwareFailure/StorageFailure` | Binary Sensor | Problem | Storage failure on device. |
| `tns1:Monitoring/ProcessorUsage` | Sensor | Percent | Device processor usage. |
| `tns1:Monitoring/OperatingTime/LastReboot` | Sensor | Timestamp | When the device was last rebooted. |
| `tns1:Monitoring/OperatingTime/LastReset` | Sensor | Timestamp | When the device was last reset. |
| `tns1:Monitoring/OperatingTime/LastClockSynchronization` | Sensor | Timestamp | When the device clock was last synchronized. |
### Service `onvif.ptz`
@ -70,13 +59,14 @@ If your ONVIF camera supports PTZ, you will be able to pan, tilt or zoom your ca
| Service data attribute | Description |
| -----------------------| ----------- |
| `entity_id` | String or list of strings that point at `entity_id`s of cameras. Use `entity_id: all` to target all.
| `tilt` | Tilt direction. Allowed values: `UP`, `DOWN`, `NONE`
| `pan` | Pan direction. Allowed values: `RIGHT`, `LEFT`, `NONE`
| `zoom` | Zoom. Allowed values: `ZOOM_IN`, `ZOOM_OUT`, `NONE`
| `distance` | Distance coefficient. Sets how much PTZ should be executed in one request. Allowed values: floating point numbers, 0 to 1. Default : 0.1
| `speed` | Speed coefficient. Sets how fast PTZ will be executed. Allowed values: floating point numbers, 0 to 1. Default : 0.5
| `move_mode` | PTZ moving mode. Allowed values: `ContinuousMove`, `RelativeMove`, `AbsoluteMove`. Default :`RelativeMove`
| `continuous_duration` | Set ContinuousMove delay in seconds before stoping the move. Allowed values: floating point numbers or integer. Default : 0.5
| `entity_id` | String or list of strings that point at `entity_id`s of cameras. Use `entity_id: all` to target all. |
| `tilt` | Tilt direction. Allowed values: `UP`, `DOWN`, `NONE` |
| `pan` | Pan direction. Allowed values: `RIGHT`, `LEFT`, `NONE` |
| `zoom` | Zoom. Allowed values: `ZOOM_IN`, `ZOOM_OUT`, `NONE` |
| `distance` | Distance coefficient. Sets how much PTZ should be executed in one request. Allowed values: floating point numbers, 0 to 1. Default : 0.1 |
| `speed` | Speed coefficient. Sets how fast PTZ will be executed. Allowed values: floating point numbers, 0 to 1. Default : 0.5 |
| `preset` | PTZ preset profile token. Sets the preset profile token which is executed with GotoPreset. |
| `move_mode` | PTZ moving mode. Allowed values: `ContinuousMove`, `RelativeMove`, `AbsoluteMove`, `GotoPreset`. Default :`RelativeMove` |
| `continuous_duration` | Set ContinuousMove delay in seconds before stoping the move. Allowed values: floating point numbers or integer. Default : 0.5 |
If you are running into trouble with this sensor, please refer to the [Troubleshooting section](/integrations/ffmpeg/#troubleshooting).

View File

@ -0,0 +1,67 @@
---
title: OpenZWave (beta)
description: Instructions on how to integrate OpenZWave with Home Assistant.
ha_category:
- Switch
ha_release: "0.110"
ha_iot_class: Local Push
ha_config_flow: true
ha_codeowners:
- '@cgarwood'
- '@marcelveldt'
- '@MartinHjelmare'
ha_domain: ozw
---
This integration allows you to utilize OpenZWave's ozwdaemon to control a Z-Wave network over MQTT.
## Requirements
- MQTT server and the [MQTT integration](/integrations/mqtt/) set up in Home Assistant.
- The [ozwdaemon](https://github.com/OpenZWave/qt-openzwave) installed and running in your network.
For Home Assistant Supervisor there's a [custom add-on](https://github.com/marcelveldt/hassio-addons-repo/tree/master/ozwdaemon).
- Supported Z-Wave dongle compatible with OpenZWave 1.6. See this [list](/docs/z-wave/controllers/#supported-z-wave-usb-sticks--hardware-modules) of controllers. The Z-Wave controller dongle should be connected to the same host as where the ozwdaemon is running.
## Configuration
This integration can be configured using the integrations in the
Home Assistant frontend.
Menu: **Configuration** -> **Integrations**.
Click on the `+` sign to add an integration and click on **OpenZWave (beta)**.
After completing the configuration flow, the OpenZWave integration will be
available.
### Secure network key
The secure network key is set in the settings for the ozwdaemon and
not in the integration configuration.
## Services
### Service `ozw.add_node`
This service will set the controller into inclusion mode and should be used to
add a device (node) to the Z-Wave network. Call the service and then perform
the device-specific procedure, according to the device manual, to add your
device to the network. Make sure the controller is connected to the host where
the ozwdaemon is running, when performing this operation.
| Service Data Attribute | Required | Description |
| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `secure` | no | Add the new node with secure communications. [Secure network key must be set](#secure-network-key). This process will fallback to add_node (unsecure) for unsupported devices. Note that insecure devices can't directly talk to secure devices. |
| `instance_id` | no | The OZW Instance/Controller to use, defaults to 1. |
### Service `ozw.remove_node`
This service will set the controller into exclusion mode and should be used to
remove a device (node) from the Z-Wave network. Call the service and then
perform the device-specific procedure, according to the device manual,
to remove your device from the network. Make sure the controller is connected
to the host where the ozwdaemon is running, when performing
this operation.
| Service Data Attribute | Required | Description |
| ---------------------- | -------- | -------------------------------------------------- |
| `instance_id` | no | The OZW Instance/Controller to use, defaults to 1. |

View File

@ -4,10 +4,12 @@ description: Instructions on how to integrate Pi-hole with Home Assistant.
ha_category:
- System Monitor
ha_iot_class: Local Polling
ha_config_flow: true
ha_release: 0.28
ha_codeowners:
- '@fabaff'
- '@johnluetke'
- '@shenxn'
ha_domain: pi_hole
---
@ -15,7 +17,7 @@ The `pi_hole` integration allows you to retrieve statistics and interact with a
## Configuration
To enable this integration with the default configuration, add the following lines to your `configuration.yaml` file
To enable this integration, go to the Integrations page inside the configuration panel. You can also use YAML configuration. Add the following lines to your `configuration.yaml` file
```yaml
# Example configuration.yaml entry

View File

@ -22,7 +22,7 @@ There is currently support for the following device types within Home Assistant:
If your Plex server has been claimed by a Plex account via the [claim interface](https://plex.tv/claim), Home Assistant will require authentication to connect.
The preferred way to enable the Plex integration is via **Configuration** -> **Integrations**. You will be redirected to the [Plex](https://plex.tv) website to sign in with your Plex account. Once access is granted, Home Assistant will connect to the server linked to the associated account. If multiple Plex servers are available on the account, you will be prompted to complete the configuration by selecting the desired server on the Integrations page. Home Assistant will show as an authorized device on the [Plex Web](https://app.plex.tv/web/app) interface under **Settings** -> **Authorized Devices**.
The Plex integration is set up via **Configuration** -> **Integrations**. You will be redirected to the [Plex](https://plex.tv) website to sign in with your Plex account. Once access is granted, Home Assistant will connect to the server linked to the associated account. If multiple Plex servers are available on the account, you will be prompted to complete the configuration by selecting the desired server on the Integrations page. Home Assistant will show as an authorized device on the [Plex Web](https://app.plex.tv/web/app) interface under **Settings** -> **Authorized Devices**.
<div class='note info'>
@ -30,83 +30,39 @@ Local and secure connections are preferred when setting up an Integration. After
</div>
The `plex` integration can also be configured via `configuration.yaml`:
### Integration Options
```yaml
# Example configuration.yaml entry
plex:
token: MYSECRETTOKEN
```
Several options are provided to adjust the behavior of `media_player` entities. These can be changed at **Plex** -> **Options** on the Integrations page.
<div class='note warning'>
**Use episode art**: Display TV episode art instead of TV show art.
Only one Plex server can be configured when using `configuration.yaml`. To add more servers, set up via **Configuration** -> **Integrations**.
**Monitored users**: A list of accounts with access to the Plex server. Only selected users will create `media_player` entities.
</div>
**Ignore new managed/shared users**: Enable to ignore new Plex accounts granted access to the server.
{% configuration %}
host:
description: The IP address or hostname of your Plex server.
required: false
type: string
port:
description: The port of your Plex Server.
required: false
default: 32400
type: integer
token:
description: A valid X-Plex-Token for your Plex server. If provided without `host` and `port`, a connection URL will be retreived from Plex.
required: false
type: string
server:
description: Name of Plex server to use if multiple servers are associated with the token's Plex account. Only used if `token` is provided without `host` and `port`.
required: false
type: string
ssl:
description: Use HTTPS to connect to Plex server, **NOTE:** host **must not** be an IP when this option is enabled.
required: false
default: false
type: boolean
verify_ssl:
description: Verify the SSL certificate of your Plex server. You may need to disable this check if your local server enforces secure connections with the default certificate.
required: false
default: true
type: boolean
media_player:
description: Options to set the default behavior of `media_player` entities for new Integrations. **NOTE:** These options are exposed as Configuration Options (**Integrations** -> **Configured** --> **Plex** --> **Gear Icon**). Configuration Options will take precedence.
required: false
type: map
keys:
use_episode_art:
description: Display TV episode art instead of TV show art.
required: false
default: false
type: boolean
ignore_new_shared_users:
description: Do not track Plex clients for newly added Plex users.
required: false
default: false
type: boolean
{% endconfiguration %}
**Ignore Plex Web clients**: Do not create `media_player` entities for Plex Web clients.
### Manual Configuration
Alternatively, you can manually configure a Plex server connection by selecting the "Configure Plex server manually" when configuring a Plex integration. This option is only available to users in "Advanced Mode". This will allow you to specify the server connection options which will be validated before setup is completed. The available options are described below:
**Host**: The IP address or hostname of your Plex server. Optional if 'Token' is provided.
**Port**: The port of your Plex Server.
**Use SSL**: Use HTTPS to connect to Plex server.
**Verify SSL certificate**: Verify the SSL certificate of your Plex server. May be used if connecting with an IP or if using a self-signed certificate.
**Token**: A valid authorization token for your Plex server. If provided without 'Host', a connection URL will be retreived from Plex.
```yaml
# Complete configuration.yaml entry
plex:
host: 192.168.1.100
port: 32400
token: MY_SECRET_TOKEN
ssl: true
verify_ssl: true
media_player:
use_episode_art: true
ignore_new_shared_users: false
```
## Media Player
The `plex` media_player platform will create Media Player entities for each connected client device. These entities will display media information, playback progress, and playback controls if supported by the device.
By default the Plex integration will create Media Player entities for all local, managed, and shared users on the Plex server. To choose specific users to monitor or ignore, select them via the Configuration Options (**Integrations** -> **Configured** --> **Plex** --> **Gear Icon**).
By default the Plex integration will create Media Player entities for all local, managed, and shared users on the Plex server. To customize which users or client types to monitor, adjust the "*Monitored users*", "*Ignore new managed/shared users*", and "*Ignore Plex Web clients*" options described under [Integration Options](#integration-options).
### Service `play_media`
@ -198,15 +154,7 @@ media_content_id: '{ "library_name": "Adult Movies", "video_name": "Blade" }'
### Notes
* The `plex` integration supports multiple Plex servers. Additional connections can be configured under Configuration > Integrations.
* When setting up a server via `configuration.yaml`, it is possible to get errors that look like the following.
```txt
ERROR:plexapi:http://192.168.1.10:32400: ('Connection aborted.', BadStatusLine("''",))
INFO:homeassistant.components.media_player.plex:No server found at: http://192.168.1.10:32400
```
If this occurs, check the setting `Server`>`Network`>`Secure connections` on your Plex Media Server: if it is set to `Preferred` or `Required`, you may need to manually set the `ssl` and `verify_ssl` configuration options to, respectively, `true` and `false`.
* The `plex` integration supports multiple Plex servers. Additional connections can be configured under **Configuration** > **Integrations**.
* Movies must be located under 'Movies' section in the Plex library to properly get 'playing' state.
## Sensor

View File

@ -15,7 +15,7 @@ ha_codeowners:
ha_domain: point
---
The Point hub enables integration with the [Minut Point](https://minut.com/). To connect with Point, you will have to [sign up for a developer account](https://minut.com/community/developers/) and get a `client_id` and `client_secret` with the `callback url` configured as your Home Assistant `base_url` + `/api/minut`, e.g., `http://localhost:8123/api/minut`. The `client_id` and `client_secret` should be used as below.
The Point hub enables integration with the [Minut Point](https://minut.com/). To connect with Point, you will have to [sign up for a developer account](https://minut.com/community/developers/) and get a `client_id` and `client_secret` with the `callback url` configured as your Home Assistant URL + `/api/minut`, e.g., `http://localhost:8123/api/minut`. The `client_id` and `client_secret` should be used as below.
Once Home Assistant is started, a configurator will pop up asking you to Authenticate your Point account via a link. When you follow the link and click on **Accept** you will be redirected to the `callback url` and the Point integration will be automatically configured and you can go back to the original dialog and press **Submit**.

View File

@ -41,27 +41,17 @@ name:
host:
description: The IP address or host name of the PulseAudio server.
required: false
default: localhost
default: Use client configuration in /etc/pulse
type: string
port:
description: The port that Pulseaudio is listening on.
required: false
default: 4712
type: integer
buffer_size:
description: How much data to load from Pulseaudio at once.
required: false
default: 1024
type: integer
tcp_timeout:
description: How long to wait for a response from Pulseaudio before giving up.
required: false
default: 3
default: 4713
type: integer
{% endconfiguration %}
<div class='note warning'>
This integration relies on raw TCP commands to PulseAudio. In order for PulseAudio to accept commands with this component, `module-cli-protocol` must be loaded on the PulseAudio server.
This integration relies on raw TCP commands to PulseAudio. In order for PulseAudio to accept commands with this component, `module-native-protocol` must be loaded on the PulseAudio server.
</div>

View File

@ -76,7 +76,7 @@ panel_iframe:
The `rachio` switch platform allows you to toggle zones and schedules connected to your [Rachio irrigation system](https://rachio.com/) on and off.
Once configured, a switch will be added for every zone that is enabled on every controller in the account provided, a switch to start or stop every schedule on a controller, as well as a switch to toggle each controller's standby mode.
Once configured, a switch will be added for every zone that is enabled on every controller in the account provided and a switch to start or stop every schedule on a controller. There will also be a switch to toggle each controller's standby mode, as well as to activate a 24 hour rain delay on the device.
## Examples

View File

@ -8,7 +8,7 @@ ha_release: 0.17
ha_domain: rpi_camera
---
The `rpi_camera` platform allows you to integrate the Raspberry Pi camera into Home Assistant. This integration uses the application [`raspistill`](https://www.raspberrypi.org/documentation/usage/camera/raspicam/raspistill.md) to store the image from camera.
The `rpi_camera` integration allows you to integrate the Raspberry Pi camera into Home Assistant. This integration uses the application [`raspistill`](https://www.raspberrypi.org/documentation/usage/camera/raspicam/raspistill.md) to store the image from camera.
## Configuration
@ -16,10 +16,12 @@ To enable this camera in your installation, add the following to your `configura
```yaml
# Example configuration.yaml entry
camera:
- platform: rpi_camera
rpi_camera:
```
The whole set of configuration variables is documented here [`Raspberry Pi Camera Module - Raspberry Pi Documentation`](https://www.raspberrypi.org/documentation/raspbian/applications/camera.md).
They are not all wrapped by this `rpi_camera` platform.
{% configuration %}
image_width:
description: Set the image width.
@ -61,6 +63,16 @@ timelapse:
required: false
type: integer
default: 1000
overlay_metadata:
description: Adds some text and/or metadata onto the picture. Check the [`--annotate`](https://www.raspberrypi.org/documentation/raspbian/applications/camera.md) section.
required: false
type: integer
default: none
overlay_timestamp:
description: Helper to add date/time onto the picture. Format as used by [`strftime`](http://man7.org/linux/man-pages/man3/strftime.3.html).
required: false
type: string
default: none
file_path:
description: Save the picture in a custom file path.
required: false

View File

@ -51,58 +51,145 @@ type:
type: string
{% endconfiguration %}
| KNX DPT | type | size in byte | unit |
|--------:|--------------------|-------------:|----------------|
| 5.001 | percent | 1 | % |
| 5.003 | angle | 1 | ° |
| 5.004 | percentU8 | 1 | % |
| 5.010 | pulse | 1 | |
| 5.010 | DPT-5 | 1 | |
| 5.010 | 1byte_unsigned | 1 | |
| 6.001 | percentV8 | 1 | % |
| 6.010 | counter_pulses | 1 | counter pulses |
| 7.*** | DPT-7 | 2 | |
| 7.001 | 2byte_unsigned | 2 | pulses |
| 7.012 | current | 2 | mA |
| 7.013 | brightness | 2 | lx |
| 7.600 | color_temperature | 2 | K |
| 8.*** | DPT-8 | 2 | |
| 8.001 | 2byte_signed | 2 | pulses |
| 8.002 | delta_time_ms | 2 | ms |
| 8.005 | delta_time_sec | 2 | s |
| 8.006 | delta_time_min | 2 | min |
| 8.007 | delta_time_hrs | 2 | h |
| 8.010 | percentV16 | 2 | % |
| 8.011 | rotation_angle | 2 | ° |
| 9.* | enthalpy | 2 | H |
| 9.*** | DPT-9 | 2 | |
| 9.001 | temperature | 2 | °C |
| 9.004 | illuminance | 2 | lx |
| 9.005 | speed_ms | 2 | m/s |
| 9.006 | pressure_2byte | 2 | Pa |
| 9.007 | humidity | 2 | % |
| 9.008 | ppm | 2 | ppm |
| 9.020 | voltage | 2 | mV |
| 12.*** | DPT-12 | 4 | |
| 12.*** | 4byte_unsigned | 4 | |
| 13.*** | DPT-13 | 4 | |
| 13.*** | 4byte_signed | 4 | |
| 14.*** | DPT-14 | 4 | |
| 14.*** | 4byte_float | 4 | |
| 14.019 | electric_current | 4 | A |
| 14.027 | electric_potential | 4 | V |
| 14.031 | energy | 4 | J |
| 14.033 | frequency | 4 | Hz |
| 14.036 | heatflowrate | 4 | W |
| 14.042 | luminous_flux | 4 | lm |
| 14.054 | phaseanglerad | 4 | rad |
| 14.055 | phaseangledeg | 4 | ° |
| 14.056 | power | 4 | W |
| 14.057 | powerfactor | 4 | |
| 14.058 | pressure | 4 | Pa |
| 14.065 | speed | 4 | m/s |
| 16.000 | string | 14 | |
| 17.001 | scene_number | 1 | |
| KNX DPT | type | size in byte | range | unit |
|--------:|-------------------------------|-------------:|:--------------------------:|----------------|
| 5.001 | percent | 1 | 0 ... 100 | % |
| 5.003 | angle | 1 | 0 ... 360 | ° |
| 5.004 | percentU8 | 1 | 0 ... 255 | % |
| 5.010 | pulse | 1 | 0 ... 255 | |
| 5.010 | 1byte_unsigned | 1 | 0 ... 255 | |
| 6.001 | percentV8 | 1 | -128 ... 127 | % |
| 6.010 | counter_pulses | 1 | -128 ... 127 | counter pulses |
| 7.001 | 2byte_unsigned | 2 | 0 ... 65535 | pulses |
| 7.002 | time_period_msec | 2 | 0 ... 65535 | ms |
| 7.003 | time_period_10msec | 2 | 0 ... 65535 | ms |
| 7.004 | time_period_100msec | 2 | 0 ... 65535 | ms |
| 7.005 | time_period_sec | 2 | 0 ... 65535 | s |
| 7.006 | time_period_min | 2 | 0 ... 65535 | min |
| 7.007 | time_period_hrs | 2 | 0 ... 65535 | h |
| 7.011 | length_mm | 2 | 0 ... 65535 | mm |
| 7.012 | current | 2 | 0 ... 65535 | mA |
| 7.013 | brightness | 2 | 0 ... 65535 | lx |
| 7.600 | color_temperature | 2 | 0 ... 65535 | K |
| 8.001 | 2byte_signed | 2 | -32768 ... 32767 | pulses |
| 8.002 | delta_time_ms | 2 | -32768 ... 32767 | ms |
| 8.005 | delta_time_sec | 2 | -32768 ... 32767 | s |
| 8.006 | delta_time_min | 2 | -32768 ... 32767 | min |
| 8.007 | delta_time_hrs | 2 | -32768 ... 32767 | h |
| 8.010 | percentV16 | 2 | -32768 ... 32767 | % |
| 8.011 | rotation_angle | 2 | -32768 ... 32767 | ° |
| 9.* | enthalpy | 2 | -671088.64 ... 670760.96 | H |
| 9.001 | temperature | 2 | -273 ... 670760 | °C |
| 9.002 | temperature_difference_2byte | 2 | -670760 ... 670760 | K |
| 9.003 | temperature_a | 2 | -670760 ... 670760 | K/h |
| 9.004 | illuminance | 2 | 0 ... 670760 | lx |
| 9.005 | wind_speed_ms | 2 | 0 ... 670760 | m/s |
| 9.006 | pressure_2byte | 2 | 0 ... 670760 | Pa |
| 9.007 | humidity | 2 | 0 ... 670760 | % |
| 9.008 | ppm | 2 | -671088.64 ... 670760.96 | ppm |
| 9.010 | time_1 | 2 | -670760 ... 670760 | s |
| 9.011 | time_2 | 2 | -670760 ... 670760 | ms |
| 9.020 | voltage | 2 | -671088.64 ... 670760.96 | mV |
| 9.022 | power_density | 2 | -671088.64 ... 670760.96 | W/m² |
| 9.023 | kelvin_per_percent | 2 | -671088.64 ... 670760.96 | K/% |
| 9.024 | power_2byte | 2 | -671088.64 ... 670760.96 | kW |
| 9.025 | volume_flow | 2 | -671088.64 ... 670760.96 | l/h |
| 9.026 | rain_amount | 2 | -671088.64 ... 670760.96 | l/m² |
| 9.027 | temperature_f | 2 | -459.6 ... 670760 | °F |
| 9.028 | wind_speed_kmh | 2 | 0 ... 670760 | km/h |
| 12.*** | 4byte_unsigned | 4 | 0 ... 4294967295 | |
| 13.*** | 4byte_signed | 4 | -2147483648 ... 2147483647 | |
| 13.002 | flow_rate_m3h | 4 | -2147483648 ... 2147483647 | m³/h |
| 13.010 | active_energy | 4 | -2147483648 ... 2147483647 | Wh |
| 13.011 | apparant_energy | 4 | -2147483648 ... 2147483647 | VAh |
| 13.012 | reactive_energy | 4 | -2147483648 ... 2147483647 | VARh |
| 13.013 | active_energy_kwh | 4 | -2147483648 ... 2147483647 | kWh |
| 13.014 | apparant_energy_kvah | 4 | -2147483648 ... 2147483647 | kVAh |
| 13.015 | reactive_energy_kvarh | 4 | -2147483648 ... 2147483647 | kVARh |
| 13.100 | long_delta_timesec | 4 | -2147483648 ... 2147483647 | s |
| 14.000 | acceleration | 4 | | m/s² |
| 14.*** | 4byte_float | 4 | | |
| 14.001 | acceleration_angular | 4 | | rad/s² |
| 14.002 | activation_energy | 4 | | J/mol |
| 14.003 | activity | 4 | | s⁻¹ |
| 14.004 | mol | 4 | | mol |
| 14.005 | amplitude | 4 | | |
| 14.006 | angle_rad | 4 | | rad |
| 14.007 | angle_deg | 4 | | ° |
| 14.008 | angular_momentum | 4 | | J s |
| 14.009 | angular_velocity | 4 | | rad/s |
| 14.010 | area | 4 | | m² |
| 14.011 | capacitance | 4 | | F |
| 14.012 | charge_density_surface | 4 | | C/m² |
| 14.013 | charge_density_volume | 4 | | C/m³ |
| 14.014 | compressibility | 4 | | m²/N |
| 14.015 | conductance | 4 | | S |
| 14.016 | electrical_conductivity | 4 | | S/m |
| 14.017 | density | 4 | | kg/m³ |
| 14.018 | electric_charge | 4 | | C |
| 14.019 | electric_current | 4 | | A |
| 14.020 | electric_current_density | 4 | | A/m² |
| 14.021 | electric_dipole_moment | 4 | | C m |
| 14.022 | electric_displacement | 4 | | C/m² |
| 14.023 | electric_field_strength | 4 | | V/m |
| 14.024 | electric_flux | 4 | | c |
| 14.025 | electric_flux_density | 4 | | C/m² |
| 14.026 | electric_polarization | 4 | | C/m² |
| 14.027 | electric_potential | 4 | | V |
| 14.028 | electric_potential_difference | 4 | | V |
| 14.029 | electromagnetic_moment | 4 | | A m² |
| 14.030 | electromotive_force | 4 | | V |
| 14.031 | energy | 4 | | J |
| 14.032 | force | 4 | | N |
| 14.033 | frequency | 4 | | Hz |
| 14.034 | angular_frequency | 4 | | rad/s |
| 14.035 | heatcapacity | 4 | | J/K |
| 14.036 | heatflowrate | 4 | | W |
| 14.037 | heat_quantity | 4 | | J |
| 14.038 | impedance | 4 | | Ω |
| 14.039 | length | 4 | | m |
| 14.040 | light_quantity | 4 | | lm s |
| 14.041 | luminance | 4 | | cd/m² |
| 14.042 | luminous_flux | 4 | | lm |
| 14.043 | luminous_intensity | 4 | | cd |
| 14.044 | magnetic_field_strength | 4 | | A/m |
| 14.045 | magnetic_flux | 4 | | Wb |
| 14.046 | magnetic_flux_density | 4 | | T |
| 14.047 | magnetic_moment | 4 | | A m² |
| 14.048 | magnetic_polarization | 4 | | T |
| 14.049 | magnetization | 4 | | A/m |
| 14.050 | magnetomotive_force | 4 | | A |
| 14.051 | mass | 4 | | kg |
| 14.052 | mass_flux | 4 | | kg/s |
| 14.053 | momentum | 4 | | N/s |
| 14.054 | phaseanglerad | 4 | | rad |
| 14.055 | phaseangledeg | 4 | | ° |
| 14.056 | power | 4 | | W |
| 14.057 | powerfactor | 4 | | cosΦ |
| 14.058 | pressure | 4 | | Pa |
| 14.059 | reactance | 4 | | Ω |
| 14.060 | resistance | 4 | | Ω |
| 14.061 | resistivity | 4 | | Ω m |
| 14.062 | self_inductance | 4 | | H |
| 14.063 | solid_angle | 4 | | sr |
| 14.064 | sound_intensity | 4 | | W/m² |
| 14.065 | speed | 4 | | m/s |
| 14.066 | stress | 4 | | Pa |
| 14.067 | surface_tension | 4 | | N/m |
| 14.068 | common_temperature | 4 | | °C |
| 14.069 | absolute_temperature | 4 | | K |
| 14.070 | temperature_difference | 4 | | K |
| 14.071 | thermal_capacity | 4 | | J/K |
| 14.072 | thermal_conductivity | 4 | | W/mK |
| 14.073 | thermoelectric_power | 4 | | V/K |
| 14.074 | time_seconds | 4 | | s |
| 14.075 | torque | 4 | | N m |
| 14.076 | volume | 4 | | m³ |
| 14.077 | volume_flux | 4 | | m³/s |
| 14.078 | weight | 4 | | N |
| 14.079 | work | 4 | | J |
| 16.000 | string | 14 | | |
| 17.001 | scene_number | 1 | 1 ... 64 | |
## Full example

View File

@ -104,7 +104,7 @@ registers:
default: 0
type: integer
data_type:
description: Response representation (int, uint, float, custom). If float selected, value will be converted to IEEE 754 floating point format.
description: Response representation (int, uint, float, string, custom). If float selected, value will be converted to IEEE 754 floating point format.
required: false
default: int
type: string

View File

@ -43,6 +43,36 @@ baudrate:
required: false
default: 9600 Bps
type: integer
bytesize:
description: "Number of data bits. Possible values: `5=FIVEBITS`, `6=SIXBITS`, `7=SEVENBITS`, `8=EIGHTBITS`."
required: false
default: 8
type: integer
parity:
description: "Enable parity checking. Possible values: `N=PARITY_NONE`, `E=PARITY_EVEN`, `O=PARITY_ODD`, `M=PARITY_MARK`, `S=PARITY_SPACE`."
required: false
default: "N"
type: string
stopbits:
description: "Number of stop bits. Possible values: `1=STOPBITS_ONE`, `1.5=STOPBITS_ONE_POINT_FIVE`, `2=STOPBITS_TWO`."
required: false
default: 1
type: float
xonxoff:
description: Enable software flow control.
required: false
default: False
type: boolean
rtscts:
description: Enable hardware (RTS/CTS) flow control.
required: false
default: False
type: boolean
dsrdtr:
description: Enable hardware (DSR/DTR) flow control.
required: false
default: False
type: boolean
value_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the serial line."
required: false

View File

@ -37,6 +37,10 @@ notify:
- "RECIPIENT1"
```
Both phone numbers and Signal Messenger groups can be added to the `recipients`list. However, it's not possible to mix phone numbers and Signal Messenger groups in a single notifier. If you would like to send messages to individual phone numbers and Signal Messenger groups, separate notifiers need to be created.
To obtain the Signal Messenger group ids, follow [this guide]( https://github.com/bbernhard/signal-cli-rest-api/blob/master/doc/HOMEASSISTANT.md).
{% configuration %}
name:
description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`.
@ -52,7 +56,7 @@ number:
required: true
type: string
recipients:
description: A list of recipients.
description: A list of recipients (either phone numbers or Signal Messenger group ids).
required: true
type: string
{% endconfiguration %}

View File

@ -51,6 +51,12 @@ Note that the `system_id` parameter required by the below service calls can be d
by looking at the device state attributes for the integration's `alarm_control_panel`
entity.
### `simplisafe.clear_notifications`
Clear any existing notifications within the SimpliSafe cloud; this will mark existing
notifications as "read" in the SimpliSafe web and mobile apps, as well as prevent them
from triggering future `SIMPLISAFE_NOTIFICATION` events.
### `simplisafe.remove_pin`
Remove a SimpliSafe PIN (by label or PIN value).
@ -144,3 +150,8 @@ event data that contains the following keys:
* `code`: The SimpliSafe code for the notification
* `message`: The actual text of the notification
* `timestamp`: The UTC timestamp of the notification
Note that when Home Assistant restarts, `SIMPLISAFE_NOTIFICATION` events will fire once
again for any notifications still active in the SimpliSafe web and mobile apps. To
prevent this, either (a) clear them in the web/mobile app or (b) utilize the
`simplisafe.clear_notifications` service described above.

View File

@ -5,13 +5,12 @@ ha_category:
- Health
- Sensor
- Binary Sensor
- Light
ha_release: 0.29
ha_iot_class: Local Polling
ha_domain: sleepiq
---
The SleepIQ implementation lets you view sensor data from [SleepIQ by SleepNumber](https://www.sleepnumber.com/sleepiq-sleep-tracker). In particular, it lets you see the occupancy and current SleepNumber (ie current firmness) of each side of a SleepNumber bed. Control of the lights included in the FlexFit platform is available as well.
The SleepIQ implementation lets you view sensor data from [SleepIQ by SleepNumber](https://www.sleepnumber.com/sleepiq-sleep-tracker). In particular, it lets you see the occupancy and current SleepNumber (ie current firmness) of each side of a SleepNumber bed.
## Setup

View File

@ -52,7 +52,7 @@ The PAT is used to create a Home Assistant SmartApp in your SmartThings account
This integration requires an internet accessible incoming webhook to receive push updates from SmartThings. The preferred approach is to subscribe to [Home Assistant Cloud (Nabu Casa)](https://www.nabucasa.com/) and the integration will configure and use a cloudhook automatically. Alternatively, you will have to configure and setup a internet accessible webhook in Home Assistant as described below:
1. Setup [remote access](/docs/configuration/remote/) via a domain name secured with SSL. *Self-signed SSL certificates are not supported by the SmartThings Cloud API.*
1. Set [`base_url` of the HTTP integration](/integrations/http#base_url) to the URL that Home Assistant is available on the internet (this must start with `https://`).
1. Set the external URL in the Home Assistant [configuration](/docs/configuration/basic) to the URL that Home Assistant is available on the internet (this must start with `https://`).
## Setup instructions
@ -282,7 +282,7 @@ The SmartThings Switch platform lets you control devices that have the [`switch`
#### Aborted: Home Assistant is not configured correctly to receive updates from SmartThings
This error message occurs when you do not have an active Home Assistant Cloud (Nabu Casa) subscription and the `base_url` is not configured correctly (it must start with `https`). Update your Home Assistant configuration per the prerequisites above, restart, and try again.
This error message occurs when you do not have an active Home Assistant Cloud (Nabu Casa) subscription and the external URL is not configured correctly (it must start with `https`). Update your Home Assistant configuration per the prerequisites above, and try again.
#### Error: The token must be in the UID/GUID format
@ -306,7 +306,7 @@ This error message occurs when all of the SmartThings locations under the accoun
#### Webhook Troubleshooting Checklist
1. Ensure `base_url` is properly set to the _external address_ that Home Assistant is available to the internet. SmartThings must be able to reach this address.
1. Ensure external URL is properly set to the _external address_ that Home Assistant is available to the internet. SmartThings must be able to reach this address.
1. Validate there are no problems with your certificate or SSL configuration by using an online checker, such as [https://www.digicert.com/help/](https://www.digicert.com/help/).
1. Some reverse proxy configuration settings can interfere with communication from SmartThings. For example, TLSv1.3 is not supported. Setting the supported cipher suite too restrictly will prevent handshaking. The following NGINX SSL configuration is known to work:
```nginx
@ -324,9 +324,9 @@ This error message occurs when all of the SmartThings locations under the accoun
```
1. While the error message (above) is being displayed, run the following command from outside your local network to confirm it is responding to the ping lifecycle event:
```bash
curl -X POST https://{BASE_URL}/api/webhook/{WEBHOOK_ID} -H "Content-Type: application/json; charset=utf-8" -d $'{"lifecycle": "PING", "executionId": "00000000-0000-0000-0000-000000000000", "locale": "en", "version": "1.0.0", "pingData": { "challenge": "00000000-0000-0000-0000-000000000000"}}'
curl -X POST https://{EXTERNAL_URL}/api/webhook/{WEBHOOK_ID} -H "Content-Type: application/json; charset=utf-8" -d $'{"lifecycle": "PING", "executionId": "00000000-0000-0000-0000-000000000000", "locale": "en", "version": "1.0.0", "pingData": { "challenge": "00000000-0000-0000-0000-000000000000"}}'
```
Where `{BASE_URL}` is your external address and `{WEBHOOK_ID}` is the value of `webhook_id` from `.storage/smartthings` in your Home Assistant configuration directory.
Where `{EXTERNAL_URL}` is your external address and `{WEBHOOK_ID}` is the value of `webhook_id` from `.storage/smartthings` in your Home Assistant configuration directory.
The expected response is:
```bash

View File

@ -329,6 +329,11 @@ command_payload_off:
description: The value to write to turn off the switch, if different from `payload_off`.
required: false
type: string
vartype:
description: The SNMP vartype for the `payload_on` and `payload_off` commands as defined in [RFC1902](https://tools.ietf.org/html/rfc1902.html).
required: false
type: string
default: 'none'
{% endconfiguration %}
You should check with your device's vendor to find out the correct BaseOID and what values turn the switch on and off.
@ -352,6 +357,20 @@ Valid values for `priv_protocol`:
- **aes-cfb-192**
- **aes-cfb-256**
Valid values for `vartype`:
- **Counter32**
- **Counter64**
- **Gauge32**
- **Integer32**
- **Integer**
- **IpAddress**
- **ObjectIdentifier**
- **OctetString**
- **Opaque**
- **TimeTicks**
- **Unsigned32**
Complete examples:
```yaml
@ -376,4 +395,18 @@ switch:
baseoid: 1.3.6.1.4.1.19865.1.2.1.4.0
payload_on: 1
payload_off: 0
- platform: snmp
name: Enable PoE on Netgear switch port 2 using SNMP v3
host: 192.168.0.4
version: '3'
username: 'myusername'
auth_key: 'myauthkey'
auth_protocol: 'hmac-sha'
priv_key: 'myprivkey'
priv_protocol: 'des'
baseoid: 1.3.6.1.4.1.4526.11.15.1.1.1.1.1.2
payload_on: 15400
payload_off: 3000
vartype: Gauge32
```

View File

@ -1,13 +1,15 @@
---
title: Sony Songpal
description: Instructions on how to integrate Sony Songpal devices into Home Assistant.
logo: sony.png
ha_category:
- Media Player
ha_iot_class: Local Push
ha_release: 0.65
ha_config_flow: true
ha_quality_scale: gold
ha_codeowners:
- '@rytilahti'
- '@shenxn'
ha_domain: songpal
---
@ -26,12 +28,11 @@ A few notes:
## Configuration
The platform will be loaded automatically by discovery component. If you want to manually configure it, add the following to your `configuration.yaml` file:
Supported devices will be automatically discovered and can be set up through UI. If you want to manually configure it in YAML configuration, add the following to your `configuration.yaml` file:
```yaml
media_player:
- platform: songpal
name: my soundbar
songpal:
- name: my soundbar
endpoint: http://IP_ADDRESS:10000/sony
```
@ -58,6 +59,6 @@ For a list of available settings and their values use [`songpal sound`](https://
| Service data attribute | Optional | Description |
|------------------------|----------|--------------------------------------------------|
| `entity_id` | yes | Target entity, leave unset for all devices |
| `entity_id` | yes | Target entity. To target all songpal devices, use `all` |
| `name` | no | Configuration variable, e.g., `nightmode` |
| `value` | no | New configuration value, e.g., `on` |

View File

@ -35,8 +35,6 @@ To create the required Spotify application:
- If you are using SSL: `https://<your_home_assistant_url_or_local_ip>:<port>/auth/external/callback`
- Click **Save** after adding the URI.
If you are using an externally accessible address, you will likely also need to set the `base_url` attribute of the [HTTP Integration](/integrations/http/). This should be set using the same base URL as the redirect URI, e.g., if you used a domain name (not local IP) in the redirect, then use the same domain name in your `base_url`.
## Configuration
To add Spotify to your installation, add the following to your `configuration.yaml` file:

View File

@ -75,7 +75,44 @@ This service can be used to integrate any Squeezebox action to an automation.
It can also be used to target a Squeezebox from IFTTT (or Dialogflow, Alexa...).
For example, to play an album from your collection, create an IFTTT applet like this:
- Trigger: Google assistant, with sentence: `I want to listen to album $`
- Action: JSON post query with such JSON body:
`{ "entity_id": "media_player.squeezebox_radio", "command": "playlist", "parameters": ["loadtracks", "album.titlesearch={{TextField}}"] }`
This can work with title search and basically any thing. The same wouldn't have worked by calling directly Squeezebox server as IFTTT cannot escape the text field.
### Service `call_query`
Call a custom Squeezebox JSON-RPC API. The result of the query will be stored in the 'query_result' attribute of the player.
See documentation for this interface on `http://HOST:PORT/html/docs/cli-api.html?player=` where HOST and PORT are the host name and port for your Logitech Media Server.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | no | Name(s) of the Squeezebox entities where to run the API method.
| `command` | no | Command to pass to Logitech Media Server (p0 in the CLI documentation).
| `parameters` | yes | Array of additional parameters to pass to Logitech Media Server (p1, ..., pN in the CLI documentation).
This service can be used to integrate a Squeezebox query into an automation. For example, in a Python script, you can get a list of albums available by an artist like this:
`hass.services.call("squeezebox", "call_query", { "entity_id": "media_player.kitchen", "command": "albums", "parameters": ["0", "20", "search:beatles", "tags:al"] })`
To work with the results:
`result = hass.states.get("media_player.kitchen").attributes['query_result']`
### Service `sync`
Add another player to this player's sync group. If the other player is already in a sync group, it will leave it.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | no | Name(s) of the Squeezebox entities where to run the API method.
| `other_player` | no | Name of the other Squeezebox player to join the sync group.
### Service `unsync`
Remove this player from its sync group.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | no | Name(s) of the Squeezebox entities where to run the API method.
=======

View File

@ -30,3 +30,5 @@ The following integrations are automatically discovered by the SSDP integration:
- [Philips Hue](../hue/)
- [Roku](/integrations/roku/)
- [Samsung TV](../samsungtv/)
- [UPnP](../upnp/)
- [Sony Songpal](../songpal/)

View File

@ -11,7 +11,7 @@ ha_codeowners:
ha_domain: stream
---
The `stream` integration provides a way to proxy live streams through Home Assistant. The integration currently only supports proxying H.264 source streams to the HLS format and requires at least FFmpeg >= 3.2.
The `stream` integration provides a way to proxy live streams through Home Assistant. The integration currently only supports proxying H.264 source streams to the HLS format and requires at least FFmpeg >= 4.
## Configuration
@ -59,16 +59,17 @@ To do this add either [picture-entity](/lovelace/picture-entity/), [picture-glan
## Troubleshooting
Some users on manual installs may see the following error in their logs after restarting:
Users on manual installs with FFmpeg < 4 may see an error similar to:
```text
2019-03-12 08:49:59 ERROR (SyncWorker_5) [homeassistant.util.package] Unable to install package av==6.1.2: Command "/home/pi/home-assistant/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-udfl2b3t/av/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-ftn5zmh2/install-record.txt --single-version-externally-managed --compile --install-headers /home/pi/home-assistant/include/site/python3.6/av" failed with error code 1 in /tmp/pip-install-udfl2b3t/av/
2019-03-12 08:49:59 ERROR (MainThread) [homeassistant.requirements] Not initializing stream because could not install requirement av==6.1.2
2019-03-12 08:49:59 ERROR (MainThread) [homeassistant.setup] Setup failed for stream: Could not install all requirements.
2020-04-28 13:35:43 ERROR (SyncWorker_5) [homeassistant.util.package] Unable to install package av==7.0.1: ERROR: Command errored out with exit status 1:
command: /mnt/c/dev/home-assistant/venv/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-twd7glz2/av/setup.py'"'"'; __file__='"'"'/tmp/pip-install-twd7glz2/av/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-x9tw2ql2/install-record.txt --single-version-externally-managed --compile --install-headers /mnt/c/dev/home-assistant/venv/include/site/python3.7/av
cwd: /tmp/pip-install-twd7glz2/av/
```
If you see this error you can solve it by running the following commands and restarting Home Assistant (commands do not need to be ran as the `homeassistant` user):
You can solve this by running the following steps to update FFmpeg >= 4:
```text
sudo apt-get install -y python-dev pkg-config libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libavresample-dev libavfilter-dev
sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo apt upgrade
```

View File

@ -74,3 +74,14 @@ Meaning the device will turn itself off when reaching the auto-off configuration
| ------------- | --------- | -------------------------------------------------------------------------------------- | -------------------------- |
| `entity_id` | Yes | Name of the entity id associated with the integration, used for permission validation. | switch.switcher_kis_boiler |
| `auto_off` | Yes | Time period string containing hours and minutes. | "02:30" |
### Service: `switcher_kis.turn_on_with_timer`
You can use the `switcher_kis.turn_on_with_timer` service to turn on the switcher device with timer.
Meaning the device will turn itself off when timer ends.
Note: This does not affect the auto off timer.
| Service Field | Mandatory | Description | Example |
| ------------- | --------- | -------------------------------------------------------------------------------------- | -------------------------- |
| `entity_id` | Yes | Name of the entity id associated with the integration, used for permission validation. | switch.switcher_kis_boiler |
| `timer_minutes` | Yes | Integer containing timer minutes (valid range 1 to 90) | 90 |

View File

@ -19,9 +19,6 @@ To integrate this into Home Assistant, add the following section to your `config
```yaml
# Example configuration.yaml entry
http:
base_url: <public_url> # the Home Assistant https url which is exposed to the internet.
telegram_bot:
- platform: webhooks
api_key: YOUR_API_KEY
@ -54,7 +51,7 @@ proxy_params:
required: false
type: string
url:
description: Allow to overwrite the `base_url` from the [`http`](/integrations/http/) integration for different configurations (`https://<public_url>:<port>`).
description: Allow to overwrite the external URL from the Home Assistant [configuration](/docs/configuration/basic/) for different setups (`https://<public_url>:<port>`).
required: false
type: string
trusted_networks:
@ -72,9 +69,6 @@ The configuration sample below shows how an entry can look like:
```yaml
# Example configuration.yaml entry
http:
base_url: <public_url>
telegram_bot:
- platform: webhooks
api_key: YOUR_API_KEY

View File

@ -25,21 +25,8 @@ There is currently support for the following device types within Home Assistant:
Go to [developer.tibber.com/settings/accesstoken](https://developer.tibber.com/settings/accesstoken) to get your API token.
## Configuration
To add Tibber to your installation, go to Configuration >> Integrations in the UI and enable the Tibber integration.
To add Tibber to your installation, add the following to your `configuration.yaml` file:
```yaml
tibber:
access_token: YOUR_ACCESS_TOKEN
```
{% configuration %}
access_token:
description: Your Tibber API token.
required: true
type: string
{% endconfiguration %}
## Notifications

View File

@ -21,7 +21,7 @@ tts:
<div class='note'>
Depending on your setup, you might need to set a base URL (`base_url`) inside the [HTTP component](/integrations/http/) or in the parameters of this component.
Depending on your setup, you might need to set a external URL (`external_url`) inside the [configuration](/docs/configuration/basic/) or in the parameters of this component.
</div>
@ -44,10 +44,10 @@ time_memory:
type: integer
default: 300
base_url:
description: A base URL to use *instead* of the one set in the [HTTP component](/integrations/http/). It is used as-is by the `tts` component. In particular, you need to include the protocol scheme `http://` or `https://` and the correct port number. They will not be automatically added for you.
description: A base URL to use *instead* of the one set in the Home Assistant [configuration](/docs/configuration/basic). It is used as-is by the `tts` component. In particular, you need to include the protocol scheme `http://` or `https://` and the correct port number. They will not be automatically added for you.
required: false
type: string
default: value of ``http.base_url``
default: value of internal URL
service_name:
description: Define the service name.
required: false
@ -70,21 +70,21 @@ tts:
<div class='note'>
In the above example, `base_url` is custom to this particular TTS platform configuration. It is not suggesting that you use the `base_url` that you have set for your core Home Assistant configuration. The reason you might need to do this is outlined in the next section.
In the above example, `base_url` is custom to this particular TTS platform configuration. It is not suggesting that you use the internal URL that you have set for your core Home Assistant configuration. The reason you might need to do this is outlined in the next section.
</div>
## When do you need to set `base_url` here?
The general answer is "whenever the global `base_url` set in [HTTP component](/integrations/http/) is not adequate to allow the `say` service to run". The `say` service operates by generating a media file that contains the speech corresponding to the text passed to the service. Then the `say` service sends a message to the media device with a URL pointing to the file. The device fetches the media file at the URL and plays the media. Some combinations of a media device, network configuration and Home Assistant configuration can make it so that the device cannot fetch the media file.
The general answer is "whenever the global internal URL set in the [configuration](/docs/configuration/basic/) of Home Assistant is not adequate to allow the `say` service to run". The `say` service operates by generating a media file that contains the speech corresponding to the text passed to the service. Then the `say` service sends a message to the media device with a URL pointing to the file. The device fetches the media file at the URL and plays the media. Some combinations of a media device, network configuration and Home Assistant configuration can make it so that the device cannot fetch the media file.
The following sections describe some of the problems encountered with media devices.
### Self-signed certificates
This problem occurs when your Home Assistant instance is configured to be accessed through SSL, and you are using a self-signed certificate.
This problem occurs when your Home Assistant instance is configured to be accessed through SSL, and you are using a self-signed certificate on your internal URL.
The `tts` service will send an `https://` URL to the media device, which will check the certificate, and reject it. So it won't play your file. If you could make the device accept your certificate, it would play the file. However, many media devices do not allow changing settings to accept self-signed certificates. Ultimately, your option may be to serve files to the device as `http://` rather than `https://`. To do this, you *could* change the `base_url` setting in [HTTP component](/integrations/http/), but that would turn off SSL for all services that use `base_url`. Instead, setting a `base_url` for the `tts` service allows turning off SSL only for this component.
The `tts` service will send an `https://` URL to the media device, which will check the certificate, and reject it. So it won't play your file. If you could make the device accept your certificate, it would play the file. However, many media devices do not allow changing settings to accept self-signed certificates. Ultimately, your option may be to serve files to local devices as `http://` rather than `https://`.
### Google cast devices
@ -92,9 +92,7 @@ The Google cast devices (Google Home, Chromecast, etc.) present the following pr
* They [reject self-signed certificates](#self-signed-certificates).
* They do not work with URLs that contain hostnames established by local naming means. Let's say your Home Assistant instance is running on a machine made known locally as `ha`. All your machines on your local network are able to access it as `ha`. However, try as you may, your cast device won't download the media files from your `ha` machine. That's because your cast device ignores your local naming setup. In this example, the `say` service creates a URL like `http://ha/path/to/media.mp3` (or `https://...` if you are using SSL). Setting a `base_url` that contains the IP address of your server works around this issue. By using an IP address, the cast device does not have to resolve the hostname.
* An alternative way to force Google cast devices to use internal DNS is to block them from accessing Google DNS at the firewall/router level. This would be useful in the case, for example, where your internal IP of Home Assistant is a private IP and you have your internal DNS server (quite often a split-brain DNS scenario). This method works on both Google Home Mini and Google Chromecasts.
* They do not work with URLs that contain hostnames established by local naming means. Let's say your Home Assistant instance is running on a machine made known locally as `ha`. All your machines on your local network are able to access it as `ha`. However, try as you may, your cast device won't download the media files from your `ha` machine. That's because your cast device ignores your local naming setup. In this example, the `say` service creates a URL like `http://ha/path/to/media.mp3` (or `https://...` if you are using SSL). Setting a internal URL that contains the IP address of your server works around this issue. By using an IP address, the cast device does not have to resolve the hostname.
## Service say

View File

@ -11,6 +11,7 @@ ha_category:
- Switch
ha_iot_class: Cloud Polling
ha_release: 0.74
ha_config_flow: true
ha_domain: tuya
---
@ -25,7 +26,17 @@ There is currently support for the following device types within Home Assistant:
- **Scene** - The device state in frontend panel will not change immediately after you activate a scene.
- **Switch** - The platform supports switch and socket.
## Configuration
## Configuration via frontend
To add your Tuya devices into your Home Assistant installation, go to:
**Configuration** -> **Integrations** in the UI, click the button with `+` sign and from the list of integrations select **Tuya**.
During configuration, be careful to select the [country code](https://www.countrycode.org/) and the platform corresponding to those used by you in the app. Once configuration flow is completed, the devices configured in your app will be automatically discovered.
### Configuration via YAML
_YAML configuration is still around for people that prefer YAML, but it's deprecated and you should not use it anymore._
To add your Tuya devices into your Home Assistant installation, add the following to your `configuration.yaml` file:

View File

@ -39,7 +39,7 @@ auth_token:
After configuring the base Twilio component, add and configure either or both of the [Twilio SMS](/integrations/twilio_sms) and [Twilio Phone](/integrations/twilio_call) integrations to utilize the notification functionality.
To be able to receive events from Twilio, your Home Assistant instance needs to be accessible from the web and you need to have the `base_url` configured for the HTTP integration ([documentation](/integrations/http/#base_url)).
To be able to receive events from Twilio, your Home Assistant instance needs to be accessible from the web and you need to have the external URL [configured](/docs/configuration/basic) in Home Assistant..
To set it up, go to the integrations page in the configuration screen and find Twilio. Click on configure. Follow the instructions on the screen to configure Twilio.

View File

@ -0,0 +1,226 @@
---
title: Universal Powerline Bus (UPB)
description: Instructions on how to setup Universal Powerline Bus integration.
ha_category:
- Light
- Scene
ha_release: "0.110"
ha_config_flow: true
ha_quality_scale: platinum
ha_iot_class: Local Polling
ha_codeowners:
- '@gwww'
ha_domain: upb
---
The UPB integration allows Home Assistant to connect to a Universal Powerline Bus Powerline Interface Module (UPB PIM) to get status and control UPB devices and UPB links. The UPB PIM may be connected either to a serial port or over TCP. The integration implements the following platforms:
- Light
- Scene
## Configuration
To add UPB to your installation, go to **Configuration** >> **Integrations** in the UI, click the button with `+` sign and from the list of integrations select **Universal Powerline Bus (UPB)**.
The UPB integration requires that an export from the `UPStart` UPB configuration program. To create an export, in `UPStart`, click the UPB button in the top left and select **Export to File**. This will create a file with the `.upe` extension. The file must be placed somewhere in your Home Assistant installation, for example, in the configuration directory.
## Device Configuration
Using UPStart, configure each UPB dimmer-switch to report its state when it is manually operated. If you omit this step, manual changes to a dimmer-switch's state (on/off/brightness) will *not* be reported to Home Assistant.
## Events
An event is generated whenever a UPB Link is:
- activated
- deactivated
- goes to a new level
- fade is started
- fade is stopped
- blink is started
The event is `upb.scene_changed`.
The `event_data` contains the following:
- `command`: One of `activated`, `blink`, `deactivated`, `fade_started`,
`fade_stopped`, or `goto`.
- `address`: The address of the link reporting the event. The `address`
is comprised of the UPB network number and the UPB Link number.
For example for UPB Network number 42 and UPB Link number 24 the
`address` would be 42_24.
- `brightness_pct`: The brightness level as a percentage. `brightness_pct` is
reported as -1 if the brightness is a default level of brightness is not
applicable to the link change.
- `rate`: The rate for link to transition to the new level. `rate` is
-1 for the default transition rate.
## Services
Besides the standard services provided by the Home Assistant [Light](/integrations/light/) and [Scene](/integrations/scene) integrations, the following extra services are provided by the UPB integration:
- `upb.light_fade_start`
- `upb.light_fade_stop`
- `upb.light_blink`
- `upb.scene_deactivate`
- `upb.scene_goto`
- `upb.scene_fade_start`
- `upb.scene_fade_stop`
- `upb.scene_blink`
### Rate Transition Time
Both standard and custom services that take a `transition` or a `rate` for changing brightness levels take time in seconds. The UPB
system only offers a discrete set of transition times. As such, the transition time requested is changed to the closest time based on
the table below. Note that this table does not apply to blink rates, only to brightness transition times.
| Request rate >= | Requested rate < | Rate Used |
| --------------- | ---------------- | --------- |
| 0 seconds | 0.4 seconds | 0 seconds
| 0.4 seconds | 1.2 seconds | 0.8 seconds
| 1.2 seconds | 2.45 seconds | 1.6 seconds
| 2.45 seconds | 4.15 seconds | 3.3 seconds
| 4.15 seconds | 5.8 seconds | 5.0 seconds
| 5.8 seconds | 8.3 seconds | 6.6 seconds
| 8.3 seconds | 15 seconds | 10 seconds
| 15 seconds | 25 seconds | 20 seconds
| 25 seconds | 45 seconds | 30 seconds
| 45 seconds | 90 seconds | 60 seconds
| 1.5 minute | 3.5 minutes | 2 minutes
| 3.5 minutes | 7.5 minutes | 5 minutes
| 7.5 minutes | 12.5 minutes | 10 minutes
| 12.5 minutes | 22.5 minutes | 15 minutes
| 22.5 minutes | 45 minutes | 30 minutes
| 45 minutes | ∞ | 1 hour
### Service `upb.light_fade_start`
Starts a transition of a light to the specified level. Lights that are not dimmable ignore the fade start command.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | UPB light which to start fading operation.
| `brightness` | no* | Integer between 0 and 255 for how bright the light should be, where 0 means the light is off, 1 is the minimum brightness and 255 is the maximum brightness. *Only one of `brightness` and `brightness_pct` may be used.
| `brightness_pct`| no* | Number between 0 and 100 in percentage that specifies how bright the light should be, where 0 means the light is off, 1 is the minimum brightness and 100 is the maximum brightness. *Only one of `brightness` and `brightness_pct` may be used.
| `rate` | yes | Number that represents the time (in seconds) the light should take to transition to the new state. See section on "Rate Transition Time" for how this time value is interpreted.
### Service `upb.light_fade_stop`
Stop a light when transitioning from one light level to another. Stops either a fade or a goto (goto occurs when using a `light.turn_on` or `light.turn_off`.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | UPB light which to stop fading operation.
### Service `upb.light_blink`
Start a light blinking.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | UPB light which to blink.
| `rate` | no | Number between 0 and 4.25 that represents the time (in seconds) the rate the light blinks. Note the UPB implementation limits the blink rate to no faster than 1/3 of a second.
### Service `upb.scene_deactivate`
Deactivate a scene. The term “deactivate” is a general UPB term that usually means to turn to the OFF state, but each individual device manufacturer can define it differently for their device.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | UPB scene to deactivate.
### Service `upb.scene_goto`
Starts a transition of a scene to the specified level.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | UPB scene to transition.
| `brightness` | no* | Integer between 0 and 255 for how bright the scene should be, where 0 means the scene is off, 1 is the minimum brightness and 255 is the maximum brightness. *Only one of `brightness` and `brightness_pct` may be used.
| `brightness_pct`| no* | Number between 0 and 100 in percentage that specifies how bright the scene should be, where 0 means the scene is off, 1 is the minimum brightness and 100 is the maximum brightness. *Only one of `brightness` and `brightness_pct` may be used.
| `rate` | yes | Number that represents the time (in seconds) the light should take to transition to the new state. See section on "Rate Transition Time" for how this time value is interpreted.
### Service `upb.scene_fade_start`
Starts a transition of a scene to the specified level. Lights within the scene that are not dimmable ignore the fade start command.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | UPB scene to transition.
| `brightness` | no* | Integer between 0 and 255 for how bright the scene should be, where 0 means the scene is off, 1 is the minimum brightness and 255 is the maximum brightness. *Only one of `brightness` and `brightness_pct` may be used.
| `brightness_pct`| no* | Number between 0 and 100 in percentage that specifies how bright the scene should be, where 0 means the scene is off, 1 is the minimum brightness and 100 is the maximum brightness. *Only one of `brightness` and `brightness_pct` may be used.
| `rate` | yes | Number that represents the time (in seconds) the light should take to transition to the new state. See section on "Rate Transition Time" for how this time value is interpreted.
### Service `upb.scene_fade_stop`
Stop a scene when transitioning from one light level to another. Stops either a fade or a goto.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | UPB scene which to stop fading operation.
### Service `upb.scene_blink`
Start a scene blinking.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | UPB scene which to blink.
| `rate` | no | Number between 0 and 4.25 that represents the time (in seconds) the rate the scene blinks. Note the UPB implementation limits the blink rate to no faster than 1/3 of a second.
## Examples
```yaml
#automation:
- alias: 'Specific scene activated'
description: 'Trigger when scene 9 on network 42 is activated'
trigger:
platform: event
event_type: upb.scene_changed
event_data:
command: activated
address: '42_9'
action:
service: persistent_notification.create
data_template:
title: 'Scene Activated'
message: >
Activated scene 9 on network 42: {{trigger.event.data.command}}, {{trigger.event.data.address}}
```
```yaml
#script:
all_lights_on:
alias: 'All Lights On'
description: 'Activate two UPB scenes named interior_lights and exterior_lights'
sequence:
- service: scene.turn_on
entity_id:
- scene.interior_lights
- scene.exterior_lights
all_lights_off:
alias: 'All Lights Off'
description: 'Deactivate two UPB scenes named interior_lights and exterior_lights'
sequence:
- service: upb.scene_deactivate
entity_id:
- scene.interior_lights
- scene.exterior_lights
kitchen_fade_on:
alias: 'Kitchen Fade to On'
description: 'Turn on kitchen light to 75% over a period of 10 seconds'
sequence:
- service: upb.light_fade_start
data:
entity_id: light.kitchen
brightness_pct: 75
rate: 10
```
## Notes
- A UPB device does not always report its current state. For example, if you call `upb.light_fade_start` and then, a few seconds later, call `upb.light_fade_stop`, the selected UPB device will not report its new brightness level. However, if you then call `homeassistant.update_entity` it will make the UPB device report its current state to Home Assistant.

View File

@ -14,8 +14,6 @@ ha_domain: upnp
The `upnp` integration enables you to collect network statistics from your router such as bytes in/out and packets in/out. This information is provided by the [UPnP](https://en.wikipedia.org/wiki/Universal_Plug_and_Play)/[Internet Gateway Device (IGD) Protocol](https://en.wikipedia.org/wiki/Internet_Gateway_Device_Protocol) if enabled on your router.
The IGD can automatically create port forwarding mappings on your router for Home Assistant, exposing your installation to the internet. The mapping will never automatically expire. Upon stopping Home Assistant, the mapping will be removed from your router.
There is currently support for the following device types within Home Assistant:
- **Sensor** - Allows to get the network statistics from your router such as bytes in/out and packets in/out.
@ -27,46 +25,24 @@ Please note that UPnP or NAT-PMP needs to be enabled on your router for this int
To integrate this into Home Assistant, add the following section to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry with custom external portal
# Example configuration.yaml entry
upnp:
port_mapping: true
ports:
hass: 8000
8080: 8080
```
With the default settings only the sensors are added for statistics. If you wish to have port mapping done through IGD, add the option **port_mapping** and **ports**.
{% configuration %}
port_mapping:
description: If the integration should try to map ports.
required: false
type: boolean
default: false
sensors:
description: If the integration should enable the UPnP sensors.
required: false
type: boolean
default: true
local_ip:
description: The local IP address of the computer running Home Assistant.
required: false
type: string
default: Try to auto-detect IP of host.
ports:
description: Map of ports to map from internal to external. Pass 'hass' as internal port to use the port Home Assistant runs on. Note that you have to enable port_mapping if you wish to map ports.
required: false
type: map
default: Open same port on external router as that Home Assistant runs locally and forwards it.
{% endconfiguration %}
## Troubleshooting
If Home Assistant is not able to discover UPnP sensors, it may be because the local IP address was not auto-detected correctly. To prevent this, you may add the `local_ip` option to your UPnP configuration:
If Home Assistant is not able to discover the UPnP device, it may be because the local IP address of the computer running Home Assistant was not auto-detected correctly. To prevent this, you may add the `local_ip` option to your UPnP configuration:
```yaml
# Example configuration.yaml with UPnP sensors enabled and local_ip set
# Example configuration.yaml with local_ip set
upnp:
sensors: true
local_ip: 192.168.1.2
```

View File

@ -0,0 +1,30 @@
---
title: STALL WIFFI
logo: wiffi.png
description: Support for WIFFI devices from stall.biz, e.g., Weatherman, Rainyman, ...
ha_category:
- DIY
ha_release: "0.110"
ha_iot_class: Local Push
ha_config_flow: true
ha_codeowners:
- '@mampfes'
ha_domain: wiffi
---
This integration allows you to connect your [STALL WIFFI](https://stall.biz) devices directly to Home Assistant.
## Configuration via the frontend
Menu: **Configuration** -> **Integrations**.
Click on the `+` sign to add an integration and click on **STALL WIFFI**.
After completing the configuration flow, the STALL WIFFI
integration will be available.
## Configure the WIFFI device
1. Set "CCU-IP Adresse myCCUIP" to the IP address of Home Assistant.
2. Set port for JSON telegrams to configured server port using parameter "send_json".
Home Assistant will open a TCP server socket on the configured port and listens for incoming telegrams from STALL WIFFI devices. Entities from new devices will be automatically added.

View File

@ -80,7 +80,7 @@ devices:
required: false
type: string
model:
description: "Yeelight model. Possible values are `mono1`, `color1`, `color2`, `strip1`, `bslamp1`, `ceiling1`, `ceiling2`, `ceiling3`, `ceiling4`, `ceiling13`. The setting is used to enable model specific features f.e. a particular color temperature range. Its also used to setup device, if its not available and discovery if disabled, during Home Assistant startup. If model is not specified, it will be guessed, by integration by looking at supported properties, reported by device."
description: "Yeelight model. Possible values are `mono1`, `color1`, `color2`, `strip1`, `bslamp1`, `ceiling1`, `ceiling2`, `ceiling3`, `ceiling4`, `ceiling10`, `ceiling13`. The setting is used to enable model specific features f.e. a particular color temperature range. Its also used to setup device, if its not available and discovery if disabled, during Home Assistant startup. If model is not specified, it will be guessed, by integration by looking at supported properties, reported by device."
required: false
type: string
custom_effects:
@ -150,6 +150,7 @@ This integration is tested to work with the following models. If you have a diff
| `ceiling3` | YLXD05YL | Yeelight Ceiling Light (Jiaoyue 480) |
| `ceiling4` | YLXD02YL | Yeelight Ceiling Light (Jiaoyue 650) |
| `mono` | YLTD03YL | Yeelight Serene Eye-Friendly Desk Lamp |
| `ceiling10` | YLDL01YL | Yeelight Meteorite Pendant Light |
| `ceiling13` | YLXD01YL | Yeelight LED Ceiling Light |
## Services

View File

@ -23,3 +23,15 @@ This integration is by default enabled, unless you've disabled or removed the [`
# Example configuration.yaml entry
zeroconf:
```
{% configuration %}
zeroconf:
description:
type: map
keys:
default_interface:
description: By default, `zeroconf` will attempt to bind to all interfaces. For systems running using network isolation or similar, this may result in `zeroconf` being unavailable. Change this option to `true` if `zeroconf` does not function.
required: false
type: boolean
default: false
{% endconfiguration %}

View File

@ -0,0 +1,45 @@
---
title: Zerproc Bluetooth Lights
description: Instructions for integrating Zerproc bluetooth lights within Home Assistant.
ha_category:
- Light
ha_iot_class: Local Polling
ha_release: "0.110"
ha_domain: zerproc
---
This integration discovers nearby Zerproc lights and adds them to Home Assistant.
## Configuration
This integration can be configured using the integrations page in Home Assistant.
Menu: **Configuration** -> **Integrations**.
Click on the `+` sign to add an integration and search for **Zerproc**.
The integration will scan for nearby devices, and is completed if any are found. No additional configuration is required. The integration will perform a BLE scan every 60 seconds to search for new devices.
## Additional information for Home Assistant Core on Python environments
This integration requires `pybluez` to be installed. On Debian based installs, run:
```bash
sudo apt install bluetooth
```
Before you get started with this integration, please note that:
- Requires access to the Bluetooth stack, see [Rootless Setup section](#rootless-setup) for further information
## Rootless Setup
Normally accessing the Bluetooth stack is reserved for `root`, but running programs that are networked as `root` is a bad security wise. To allow non-root access to the Bluetooth stack we can give Python 3 and `hcitool` the missing capabilities to access the Bluetooth stack. Quite like setting the setuid bit (see [Stack Exchange](https://unix.stackexchange.com/questions/96106/bluetooth-le-scan-as-non-root) for more information).
```bash
sudo apt-get install libcap2-bin
sudo setcap 'cap_net_raw,cap_net_admin+eip' `readlink -f \`which python3\``
sudo setcap 'cap_net_raw+ep' `readlink -f \`which hcitool\``
```
A restart of Home Assistant Core is required.

View File

@ -87,34 +87,36 @@ Use the plus button in the bottom right to add a new integration called **ZHA**.
In the popup:
- USB Device Path - on a Linux system will be something like `/dev/ttyUSB0` or `/dev/ttyACM0`
- Radio type - select device type `ezsp`, `deconz`, `ti_cc`, `xbee` or `zigate`
- Serial Device Path - List of detected serial ports on the system. You need to pick one to which your
radio is connected
- Submit
Press `Submit` and the integration will try to detect radio type automatically. If unsuccessful, you will get
a new pop-up asking for a radio type. In the pop-up:
- Radio Type
| Radio Type | Zigbee Radio Hardware |
| ------------- | ------------- |
| `ezsp` | Silicon Labs Ember based radios with EmberZNet Zigbee firmware |
| `ezsp` | EmberZNet based radios, HUSBZB-1, Telegesis ETRX357USB*** (using EmberZNet firmware) |
| `deconz` | dresden elektronik ConBee and RaspBee based radios with deCONZ Zigbee firmware |
| `xbee` | Digi XBee Series 2 and 3 based radios with XBee Zigbee firmware |
| `xbee` | Digi XBee Series 2, 2C and 3 based radios with XBee Zigbee firmware |
| `ti_cc` | Texas Instruments CC253x/CC26x2/CC13x2 based radios with Z-Stack firmware |
| `zigate` | ZiGate USB-TTL, PiZiGate, and WiFi based Zigbee radios with ZiGate firmware |
- Press `Submit` to save changes.
- Submit
The success dialog will appear or an error will be displayed in the popup. An error is likely if Home Assistant can't access the USB device or your device is not up to date. Refer to [Troubleshooting](#troubleshooting) below for more information.
Press `Submit` to save radio type and you will get a new form asking for port settings specific for this
radio type. In the pop-up:
- Serial device path
- port speed (not applicable for all radios)
- data flow control (not applicable for all radios)
## Configuration - Manual
Most devices need at very least the serial device path, like `/dev/ttyUSB0`, but it is recommended to use
device path from `/dev/serial/by-id` folder,
eg `/dev/serial/by-id/usb-Silicon_Labs_HubZ_Smart_Home_Controller_C0F003D3-if01-port0`
To configure the component, select ZHA on the Integrations page and provide the path to your Zigbee USB stick.
Or, you can manually configure `zha` section in `configuration.yaml`. The path to the database which will persist your network data is required.
```yaml
# Example configuration.yaml entry
zha:
usb_path: /dev/ttyUSB2
database_path: /home/homeassistant/.homeassistant/zigbee.db
```
Press `Submit` The success dialog will appear or an error will be displayed in the popup. An error is likely if Home Assistant can't access the USB device or your device is not up to date. Refer to [Troubleshooting](#troubleshooting) below for more information.
If you are use ZiGate, you have to use some special usb_path configuration:
@ -123,20 +125,6 @@ If you are use ZiGate, you have to use some special usb_path configuration:
- Wifi Zigate : `socket://[IP]:[PORT]` for example `socket://192.168.1.10:9999`
{% configuration %}
radio_type:
description: One of `deconz`, `ezsp`, `ti_cc`, `xbee` or `zigate`.
required: false
type: string
default: ezsp
usb_path:
description: Path to the serial device for the radio.
required: true
type: string
baudrate:
description: Baud rate of the serial device.
required: false
type: integer
default: 57600
database_path:
description: _Full_ path to the database which will keep persistent network data.
required: true

View File

@ -74,7 +74,7 @@ image:
type: string
secondary_info:
required: false
description: "Show additional info. Values: `entity-id`, `last-changed`, `last-triggered` (only for automations and scripts), `position` or `tilt-position` (only for supported covers)."
description: "Show additional info. Values: `entity-id`, `last-changed`, `last-triggered` (only for automations and scripts), `position` or `tilt-position` (only for supported covers), `brightness` (only for lights)."
type: string
format:
required: false

View File

@ -84,7 +84,7 @@ value:
type: string
operator:
required: false
description: Operator to use in the comparison. Can be `==`, `<=`, `<`, `>=`, `>`, `!=` or `regex`.
description: Operator to use in the comparison. Can be `==`, `<=`, `<`, `>=`, `>`, `!=`, `in`, `not in`, or `regex`.
type: string
attribute:
required: false

View File

@ -30,6 +30,11 @@ show_forecast:
description: Show next hours/days forecast.
type: boolean
default: true
secondary_info_attribute:
required: false
description: Which attribute to display under the temperature.
type: boolean
default: Defaults to Extrema if Available, if not available then Precipitation and if precipitation isn't available then Humidity.
theme:
required: false
description: "Set to any theme within `themes.yaml`"
@ -40,13 +45,69 @@ Example
```yaml
type: weather-forecast
entity: weather.dark_sky
entity: weather.openweathermap
```
<div class="note">
This card works only with platforms that define a `weather` entity.
E.g., it works with [Dark Sky](/integrations/weather.darksky/) but not [Dark Sky Sensor](/integrations/darksky)
E.g., it works with [OpenWeatherMap](https://www.home-assistant.io/integrations/openweathermap/#weather) but not [OpenWeatherMap Sensor](https://www.home-assistant.io/integrations/openweathermap/#sensor)
</div>
### Advanced
##### Themeable Icons
The default weather icons are themable via a [Theme](https://www.home-assistant.io/integrations/frontend/#themes). Theme variables include:
```yaml
--weather-icon-cloud-front-color
--weather-icon-cloud-back-color
--weather-icon-sun-color
--weather-icon-rain-color
--weather-icon-moon-color
```
Example theme configuration:
```yaml
--weather-icon-cloud-front-color: white
--weather-icon-cloud-back-color: blue
--weather-icon-sun-color: orange
--weather-icon-rain-color: purple
```
&nbsp;
##### Personal Icons
Weather icons can be overwritten with your own personal images via a [Theme](https://www.home-assistant.io/integrations/frontend/#themes). Theme variables include:
```yaml
--weather-icon-clear-night
--weather-icon-cloudy
--weather-icon-fog
--weather-icon-lightning
--weather-icon-lightning-rainy
--weather-icon-partlycloudy
--weather-icon-pouring
--weather-icon-rainy
--weather-icon-hail
--weather-icon-snowy
--weather-icon-snowy-rainy
--weather-icon-sunny
--weather-icon-windy
--weather-icon-windy-variant
--weather-icon-exceptional
// If your state is not above, use this format
--weather-icon-<state>
```
Example theme configuration:
```yaml
--weather-icon-sunny: url("local/sunny.png")
```

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Some files were not shown because too many files have changed in this diff Show More