Merge branch 'rc' into current

This commit is contained in:
Franck Nijhof 2020-03-18 14:20:46 +01:00
commit f917b51b04
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
73 changed files with 2675 additions and 558 deletions

View File

@ -142,7 +142,6 @@ source/_integrations/hikvision.markdown @mezz64
source/_integrations/hikvisioncam.markdown @fbradyirl
source/_integrations/hisense_aehw4a1.markdown @bannhead
source/_integrations/history.markdown @home-assistant/core
source/_integrations/history_graph.markdown @andrey-git
source/_integrations/hive.markdown @Rendili @KJonline
source/_integrations/homeassistant.markdown @home-assistant/core
source/_integrations/homekit_controller.markdown @Jc2k
@ -385,7 +384,6 @@ source/_integrations/vlc_telnet.markdown @rodripf
source/_integrations/waqi.markdown @andrey-git
source/_integrations/watson_tts.markdown @rutkai
source/_integrations/weather.markdown @fabaff
source/_integrations/weblink.markdown @home-assistant/core
source/_integrations/webostv.markdown @bendavid
source/_integrations/websocket_api.markdown @home-assistant/core
source/_integrations/wemo.markdown @sqldiablo

View File

@ -100,9 +100,9 @@ social:
# Home Assistant release details
current_major_version: 0
current_minor_version: 106
current_patch_version: 6
date_released: 2020-03-10
current_minor_version: 107
current_patch_version: 0
date_released: 2020-03-18
# 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

@ -26,12 +26,12 @@ Please visit the [Abode website](https://goabode.com/) for further information a
There is currently support for the following device types within Home Assistant:
- **Alarm Control Panel**: Reports on the current alarm status and can be used to arm and disarm the system.
- [**Binary Sensor**](/integrations/abode/#binary-sensor): Reports on `Quick Actions`, `Door Contacts`, `Connectivity` sensors (remotes, keypads, and status indicators), `Moisture` sensors, and `Motion` or `Occupancy` sensors. Also lists all Abode `Quick Actions` that are set up. You can trigger these quick actions by passing the `entity_id` of your quick action binary sensor to the [trigger_quick_action service](/integrations/abode/#trigger_quick_action).
- **Binary Sensor**: Reports on `Quick Actions`, `Door Contacts`, `Connectivity` sensors (remotes, keypads, and status indicators), `Moisture` sensors, and `Motion` or `Occupancy` sensors.
- **Camera**: Reports on `Camera` devices and will download and show the latest captured still image.
- **Cover**: Reports on `Secure Barriers` and can be used to open and close the cover.
- **Lock**: Reports on `Door Locks` and can be used to lock and unlock the door.
- [**Light**](/integrations/abode/#light): Reports on `Dimmer` lights and can be used to dim or turn the light on and off.
- [**Switch**](/integrations/abode/#switch): Reports on `Power Switch` and `Water Valve` devices which can be used to turn the devices on and off. Also reports on `Automations` set up in the Abode system and allows you to activate or deactivate them (does not currently work with Abode's CUE automations).
- **Light**: Reports on `Dimmer` lights and can be used to dim or turn the light on and off.
- **Switch**: Reports on `Power Switch` and `Water Valve` devices which can be turned on and off. Also reports on `Automations` set up in the Abode system and allows you to activate or deactivate them.
- **Sensor**: Reports on `Temperature`, `Humidity`, and `Light` sensors.
## Configuration
@ -115,16 +115,16 @@ For a full list of settings and valid values, consult the
### Service `capture_image`
Request a new still image from your Abode IR camera.
Request a new still image from your Abode camera.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | No | String or list of strings that point at `entity_id`s of Abode cameras.
### Service `trigger_quick_action`
### Service `trigger_automation`
Trigger a quick action automation on your Abode system.
Trigger an automation on your Abode system.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | No | String or list of strings that point at `entity_id`s of binary_sensors that represent your Abode quick actions.
| `entity_id` | No | String or list of strings that point at `entity_id`s of switches that represent your Abode automations.

View File

@ -10,7 +10,7 @@ ha_codeowners:
ha_domain: airvisual
---
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) can be created.
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.
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).
@ -18,7 +18,7 @@ The Community API key is valid for 12 months after which it will expire. You mus
<div class='note warning'>
The "Community" API key is limited to 10,000 calls per month. In order to leave a buffer, the `airvisual` platform queries the API every 10 minutes (600 seconds) by default. Modification of this (via the `scan_interval` key) to a too-low value may result in your API key being deactivated.
The "Community" API key is limited to 10,000 calls per month. In order to leave a buffer, the `airvisual` platform queries the API every 10 minutes (600 seconds) by default. Note that each item in the `geographies` list will consume an API call with each update.
</div>
@ -27,8 +27,7 @@ The "Community" API key is limited to 10,000 calls per month. In order to leave
To enable the platform and gather data via latitude/longitude, add the following lines to your `configuration.yaml` file:
```yaml
sensor:
- platform: airvisual
airvisual:
api_key: YOUR_AIRVISUAL_API_KEY
```
@ -37,74 +36,74 @@ api_key:
description: Your AirVisual API key.
required: true
type: string
monitored_conditions:
description: "The air quality standard(s) to use (`us` for U.S., `cn` for Chinese)."
required: true
type: list
default: ['us', 'cn']
show_on_map:
description: "Whether to show a marker on the map at the specified location."
geographies:
description: A list of geographical locations to monitor
required: false
type: boolean
default: true
scan_interval:
description: "The rate in seconds at which AirVisual should be polled for new data."
required: false
type: integer
default: 600
latitude:
description: The latitude of the location to monitor.
required: false
type: string
default: "The latitude defined under the `homeassistant` key in `configuration.yaml`."
longitude:
description: The longitude of the location to monitor.
required: false
type: string
default: "The longitude defined under the `homeassistant` key in `configuration.yaml`."
city:
description: The city to monitor.
required: false
type: string
state:
description: The state the city belongs to.
required: false
type: string
country:
description: The country the state belongs to.
required: false
type: string
type: [list, map]
keys:
latitude:
description: The latitude of the location to monitor.
required: inclusive
type: float
longitude:
description: The longitude of the location to monitor.
required: inclusive
type: float
city:
description: The city to monitor.
required: inclusive
type: string
state:
description: The state the city belongs to.
required: inclusive
type: string
country:
description: The country the state belongs to.
required: inclusive
type: string
{% endconfiguration %}
## Example Configurations
Configuration using custom Latitude and Longitude:
No explicit configuration (uses the `latitude` and `longitude` defined within `configuration.yaml`):
```yaml
sensor:
- platform: airvisual
airvisual:
api_key: YOUR_AIRVISUAL_API_KEY
monitored_conditions:
- cn
show_on_map: false
scan_interval: 300
latitude: 42.81212
longitude: 108.12422
```
Configuration using city, state, and country:
Configuration using a single custom latitude and longitude:
```yaml
sensor:
- platform: airvisual
airvisual:
api_key: YOUR_AIRVISUAL_API_KEY
monitored_conditions:
- us
show_on_map: false
geographies:
latitude: 42.81212
longitude: 108.12422
scan_interval: 300
city: Los Angeles
state: California
country: USA
```
Configuration using multiple custom latitude and longitude pairs:
```yaml
airvisual:
api_key: YOUR_AIRVISUAL_API_KEY
geographies:
- latitude: 42.81212
longitude: 108.12422
- latitude: 32.87336
longitude: -117.22743
```
Configuration using a single city, state, and country:
```yaml
airvisual:
api_key: YOUR_AIRVISUAL_API_KEY
geographies:
city: Los Angeles
state: California
country: USA
```
## Determining the City/State/Country
@ -114,20 +113,17 @@ To easily determine the proper values for a particular location, use the [AirVis
For example, Sao Paulo, Brazil shows a breadcrumb title of `Brazil > Sao Paulo > Sao Paulo`. Thus, the proper configuration would look like this:
```yaml
sensor:
- platform: airvisual
api_key: abc123
monitored_conditions:
- us
- cn
city: sao-paulo
state: sao-paulo
country: brazil
airvisual:
api_key: YOUR_AIRVISUAL_API_KEY
geographies:
city: sao-paulo
state: sao-paulo
country: brazil
```
## Sensor Types
When configured, the platform will create three sensors for each configured air quality standard:
When configured, the platform will create three sensors for each air quality standard:
### Air Quality Index

View File

@ -905,7 +905,15 @@ Support _"turn on"_ and _"turn off"_ utterances.
### Timer
Start, Pause, and Restart Timer entities in Home Assistant.
Start a timer with using the _"turn on"_ utterance.
- _"Alexa, turn on the laundry."_
Cancel a timer using the _"turn off"_ utterance.
- _"Alexa, turn off the laundry."_
Pause and Restart Timer entities in Home Assistant.
- _"Alexa, pause the microwave."_
- _"Alexa, hold the sous vide."_

View File

@ -68,6 +68,16 @@ require_ip:
required: false
type: boolean
default: true
interface:
description: "The interface of the router that you want statistics from (e.g. eth0,eth1 etc)"
required: false
type: string
default: eth0
dnsmasq:
description: "The location of the dnsmasq.leases files"
required: false
type: string
default: /var/lib/misc
sensors:
description: List of enabled sensors
required: false
@ -116,32 +126,5 @@ The example above, creates the following sensors:
## Padavan custom firmware (The rt-n56u project)
The [rt-n56u project](https://bitbucket.org/padavan/rt-n56u) does not store `dnsmasq.leases` which is used to track devices at `/var/lib/misc/` as `asuswrt` do. However this integration can still be used for the rt-n56u project by linking `dnsmasq.leases` during the boot process of the router.
Follow these steps to setup the link.
1. SSH or Telnet into the router. (default ssh admin@my.router)
2. Run the following command to find the file:
```bash
$ find / -name "dnsmasq.leases"
```
3. Copy or remember the full path of, example: `/tmp/dnsmasq.leases`
4. Create the folder if it does not exist:
```bash
$ mkdir -p /var/lib/misc
```
5. Add the linking process to the routers started script (one line):
```bash
$ echo "/bin/ln -s /tmp/dnsmasq.leases /var/lib/misc/dnsmasq.leases" >> /etc/storage/started_script.sh
```
6. Reboot the router or link the file:
```bash
$ /bin/ln -s /tmp/dnsmasq.leases /var/lib/misc/dnsmasq.leases
```
The started script is also accessible and editable in the Router's web interface. `Advanced Settings -> Customization -> Scripts -> Custom User Script -> Run After Router Started`
The [rt-n56u project](https://bitbucket.org/padavan/rt-n56u) does not store `dnsmasq.leases` which is used to track devices at `/var/lib/misc/` as `asuswrt` do. However this integration can still be used for the rt-n56u project by changing the dnsmasq location using the `dnsmasq` variable to `dnsmasq: '/tmp'`
Also, to get the statistics for the `WAN` port, specify `interface: 'eth3'` as this is the interface used in the rt-n56u project

View File

@ -5,10 +5,12 @@ logo: august.png
ha_category:
- Doorbell
- Binary Sensor
- Sensor
- Camera
- Lock
ha_release: 0.64
ha_iot_class: Cloud Polling
ha_config_flow: true
ha_codeowners:
- '@bdraco'
ha_domain: august
@ -20,6 +22,7 @@ There is currently support for the following device types within Home Assistant:
- Doorbell
- Binary Sensor
- Sensor
- Camera
- Lock
@ -31,7 +34,9 @@ August Lock 2nd Gen will need either August Connect or Doorbell to connect to Ho
You will need your August login information (username (either phone# or email), and password) to use this module.
To set it up, add the following to your `configuration.yaml` file:
To add `August` to your installation, go to **Configuration** >> **Integrations** in the UI, click the button with `+` sign and from the list of integrations select **August**.
Alternatively, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@ -65,16 +70,56 @@ Once Home Assistant is started, a configurator will pop up asking you to enter v
### Binary Sensor
If you have August Doorbell, once you have enabled the August component, you should see following sensors:
If you have an August Doorbell, once you have enabled the August component, you should see following sensors:
- Doorbell ding sensor
- Doorbell motion sensor
- Doorbell online sensor
If you have August Smart Lock with DoorSense, once you have enabled the August component, you should see the following sensors:
If you have an August Smart Lock with DoorSense, once you have enabled the August component, you should see the following sensors:
- Door sensor
### Camera
The `august` camera platform allows you to view the latest camera image (triggered by motion) by your [August](https://august.com/) device in Home Assistant.
### Sensor
If you have an August Doorbell with a battery, once you have enabled the August component, you should see the following sensors:
- Doorbell Battery
If you have an August Smart Lock, once you have enabled the August component, you should see the following sensors:
- Lock Battery
- Lock Operation
If you have an August Keypad, once you have enabled the August component, you should see the following sensors:
- Keypad Battery
### Presence Detection with Lock Operation
Using the lock operation sensors, you can detect when a user operates a lock and is physically present (not remote). The below example will trigger when the user named “John Doe” in August locks or unlocks the door from the keypad (if present), via Bluetooth from their phone, or by auto-unlock. The state of the sensor will be the name of the party operating the lock as returned by August.
{% raw %}
```yaml
- id: '1583706446906'
alias: joe_doe_front_door_operate
description: John Doe locks or unlocks the Front Door
trigger:
- entity_id: sensor.front_door_operator
platform: state
to: John Doe
condition:
- condition: template
value_template: "{{ not state_attr('sensor.front_door_operator', 'remote') }}"
action:
- data: {}
entity_id: camera.inside
service: camera.turn_off
```
{% endraw %}

View File

@ -0,0 +1,52 @@
---
title: Avri
description: Instructions on how to set up Avri Waste sensor within Home Assistant.
logo: avri.jpeg
ha_category:
- Sensor
ha_iot_class: Cloud Polling
ha_release: 0.107
ha_codeowners:
- '@timvancann'
ha_domain: avri
---
The `Avri Waste` platform allows you to track the next scheduled waste pickup and the type of waste from [Avri](https://www.avri.nl/).
## Configuration
To enable this sensor, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
sensor:
- platform: avri
zip_code: YOUR_ZIP_CODE
house_number: YOUR_HOUSE_NUMBER
```
{% configuration %}
zip_code:
description: Your zip code
required: true
type: string
house_number:
description: Your house number
required: true
type: integer
house_number_extension:
description: Your house number extension
required: false
type: string
county_code:
description: Your country code
required: false
type: string
default: NL
{% endconfiguration %}
The default frequency for pulling data from the Avri API is once every 4 hours. If the Avri API does not return any pickup days the state of the sensor is set to `unknown`.
<p class='note warning'>
The Avri sensor uses an unofficial API to obtain data. Use it at your own risk.
</p>

View File

@ -18,7 +18,7 @@ The `cert_expiry` sensor fetches information from a configured URL and displays
There are 2 options in configuring the `cert_expiry` sensor:
- Via the Home Assistant user interface where it will let you enter a name, host and port for the certificate to check.
- Via the Home Assistant user interface where it will let you enter a host and port for the certificate to check.
- Via the Home Assistant `configuration.yaml` file.
@ -39,13 +39,17 @@ port:
required: false
default: 443
type: integer
name:
description: The friendly name for the certificate.
required: false
default: SSL Certificate Expiry
type: string
{% endconfiguration %}
## Attributes
The Certificate Expiry entities provide extra attributes to represent the state of the certificate.
| Name | Description |
| ---- | ----------- |
| `is_valid` | If the certificate is able to be validated: `True` / `False`.
| `error` | A human-readable error description if the certificate is considered invalid, "None" otherwise.
<div class='note warning'>
Make sure that the URL exactly matches your endpoint or resource.
</div>

View File

@ -6,83 +6,34 @@ ha_category:
ha_release: 0.25
ha_iot_class: Local Polling
ha_domain: directv
ha_config_flow: true
---
Master [DirecTV](https://www.directv.com/) receivers (ie: those that have tuners) will be automatically discovered if you enable the [discovery integration](/integrations/discovery/) and the receiver is powered-on. Slave/RVU client/Genie boxes will also be discovered, but only if they are also online at the time of discovery.
The DirecTV platform allows you to control a [DirecTV](https://www.directv.com) receiver and its client devices.
### Configuration
Go to the integrations page in your configuration and click on new integration -> DirecTV.
If your DirecTV device is on, it has likely been discovered already and you just have to confirm the detected device.
### YAML Configuration
Manual configuration of your DirecTV device is also possible, add the following to your `configuration.yaml` file:
To ensure that your DirecTV boxes are always found and configured, they should be added into your `configuration.yaml`.
```yaml
# Example configuration.yaml entry
media_player:
- platform: directv
directv:
- host: IP_ADDRESS
```
{% configuration %}
host:
description: The IP address or the hostname of the device. Use only if you don't want to scan for devices.
required: false
type: string
port:
description: The port your receiver is using.
required: false
default: 8080
type: integer
name:
description: Use to give a specific name to the device.
required: false
default: DirecTV Receiver
type: string
device:
description: Use to specify a particular receiver in a Genie setup.
required: false
description: "The hostname or IP of the DirecTV receiver, e.g., `192.168.0.10`."
required: true
type: string
{% endconfiguration %}
To find valid device IDs, open `http://<IP Address of Genie Server>:8080/info/getLocations` in a web browser. For each Genie slave, you will find a variable `clientAddr` in the response, and this should be used for `device` in `configuration.yaml`
For example, a response such as:
```json
{
"locations": [
{
"clientAddr": "0",
"locationName": "MASTER GENIE SERVER",
"tunerBond": true
},
{
"clientAddr": "5009591D6969",
"locationName": "SOME SLAVE GENIE"
}
],
"status": {
"code": 200,
"commandResult": 0,
"msg": "OK.",
"query": "/info/getLocations"
}
}
```
Could be formatted into `configuration.yaml` like so:
```yaml
media_player:
 - platform: directv
host: 192.168.1.10
port: 8080
name: Main DirecTV Box
device: 0
- platform: directv
host: 192.168.1.10
port: 8080
name: Bedroom DirecTV
device: 5009591D6969
```
It is important to notice that the host and port variables for slave/Genie receivers are the same as the master receiver.
## Services
### Media control services

View File

@ -1,10 +1,11 @@
---
title: Philips Dynalite
description: Instructions on setting up Philips Dynalite within Home Assistant.
title: "Philips Dynalite"
description: "Instructions on setting up Philips Dynalite within Home Assistant."
logo: dynalite.png
ha_category:
- Hub
- Light
- Switch
ha_iot_class: Local Push
ha_release: 0.106
ha_codeowners:
@ -13,17 +14,18 @@ ha_config_flow: true
ha_domain: dynalite
---
Philips Dynalite support is integrated into Home Assistant as a hub that can drive the light platforms.
Philips Dynalite support is integrated into Home Assistant as a hub that can drive the light and switch platforms.
There is currently support for the following device types within Home Assistant:
- Lights
- Switches
A Philips Dynalite hub connects to the Dynet network, which is composed of areas, channels, and preset.
A Dynalite area typically (although not necessarily) defines some physical area, such as a room.
Each area can have one or more channels that correspond to the different devices they control. A channel can relate to a dimmable light, or other devices, such as a cover.
Each area can have one or more channels that correspond to the different devices they control. A channel can relate to a dimmable light, or other devices.
Additionally, each area can have one or more presets that determine the behavior of all the channels, and sometimes trigger additional actions. Typically, preset 1 in an area means 'on', and preset '4' means off. Additional presets could be used for scenes and dimming.
@ -54,17 +56,17 @@ name:
type: string
default: dynalite
active:
description: Actively query network. When starting, it will query all devices for their current status, and also will send queries when some changes are in progress (e.g., lights dimming or covers moving). Better experience but creates more load on the Dynalite network.
description: "Actively query network. When starting, it will query all devices for their current status, and also will send queries when some changes are in progress (e.g., lights dimming or covers moving). Better experience but creates more load on the Dynalite network. Value can be `on`, `off`, our `init`, where `init` will only send queries during the initial init of Home Assistant."
required: false
type: boolean
type: [boolean, string]
default: false
polltimer:
description: Polling interval for devices in transition. Value in seconds. When devices are in transition (e.g., a light fading), it will ask for a new state every X seconds until it is at the target level. Only relevant when active is set.
description: "Polling interval for devices in transition. Value in seconds. When devices are in transition (e.g., a light fading), it will ask for a new state every X seconds until it is at the target level. Only relevant when active is set to `on`."
required: false
type: float
default: 1.0
autodiscover:
description: Enable auto-discover. As Dynalite does not support autodiscovery, this tracks event on your network, so if you turn on a light, it will be added to Home Assistant.
description: Enable auto-discover. As Dynalite does not support native autodiscovery, this tracks events on your network, so if you turn on a light, it will be added to Home Assistant.
required: false
type: boolean
default: false
@ -82,7 +84,7 @@ area:
required: true
type: map
keys:
'AREA_NUMBER':
AREA_NUMBER:
description: The Dynalite area number, 1-255.
required: true
type: map
@ -96,12 +98,37 @@ area:
required: false
type: float
default: 2.0
preset:
description: Specific presets for the area.
required: false
type: map
keys:
PRESET_NUMBER:
description: The Dynalite preset number in the area.
required: true
type: map
keys:
name:
description: Name of the preset.
required: false
type: string
default: AREA_NAME Preset PRESET_NUMBER
fade:
description: Fade time for the preset, in seconds.
required: false
type: float
default: 2.0
nodefault:
description: Do not use the default presets defined globally, but only the specific ones defined for this area.
required: false
type: boolean
default: false
channel:
description: Map of the channels in this area.
required: false
type: map
keys:
'CHANNEL_NUMBER':
CHANNEL_NUMBER:
description: The Dynalite channel number in the area, 1-255.
required: true
type: map
@ -110,12 +137,37 @@ area:
description: Name of the channel.
required: false
type: string
default: \"AREA_NAME Channel CHANNEL_NUMBER\"
default: AREA_NAME Channel CHANNEL_NUMBER
type:
description: "Type of entity this should appear as. Can be either `light` or if this is a device that is not a light (e.g., water heater), can be `switch`."
require: false
type: string
default: light
fade:
description: Fade time for the channel, in seconds.
required: false
type: float
default: 2.0
preset:
description: "Default presets for any area without the `nodefault` option."
required: false
type: map
keys:
PRESET_NUMBER:
description: The Dynalite preset number in the area.
required: true
type: map
keys:
name:
description: "Name of the preset. When used in an area, it will be 'AREA_NAME name'. For example, if a room's name is 'Kitchen' and preset 4 is defined with the name `Off`, it will appear in HA as 'Kitchen Off'."
required: false
type: string
default: AREA_NAME Preset PRESET_NUMBER
fade:
description: Fade time for the preset, in seconds.
required: false
type: float
default: 2.0
{% endconfiguration %}
## Examples
@ -128,17 +180,29 @@ dynalite:
port: 12345
autodiscover: true
polltimer: 1
areacreate: auto
log_level: debug
area:
'1':
name: Office
'2':
name: Living Room
nodefault: true
channel:
'2':
name: Entrance Spot
fade: 10.0
'3':
name: Dining Table
preset:
'5':
name: Blinking Lights
'6':
name: All Off
fade: 3.0
preset:
'1':
name: 'On'
'4':
name: 'Off'
```
## Initial configuration and discovery

View File

@ -0,0 +1,38 @@
---
title: "EDL21 smart meter"
description: "Instructions on how to integrate SML-based EDL21 smart meters into Home Assistant."
ha_category:
- Sensor
ha_release: 0.107
ha_domain: edl21
---
The `edl21` integration lets you read German EDL21 smart meters using [SML](https://de.wikipedia.org/wiki/Smart_Message_Language) from Home Assistant.
In order to connect to the smart meter, an infrared transceiver is required.
Compatible transceivers:
- [DIY](https://wiki.volkszaehler.org/hardware/controllers/ir-schreib-lesekopf-rs232-ausgang)
- [Weidmann Elektronik Schreib-/Lesekopf USB](https://shop.weidmann-elektronik.de/index.php?page=product&info=24)
Tested smart meters:
- Iskraemeco MT175 (ISKRA MT175-D2A51-V22-K0t)
## Configuration
To set it up, add the following information to your `configuration.yaml` file:
```yaml
sensor:
- platform: edl21
serial_port: /dev/ttyUSB0
```
{% configuration %}
serial_port:
description: The device to communicate with. When using ser2net, use socket://host:port.
required: true
type: string
{% endconfiguration %}

View File

@ -22,17 +22,49 @@ sensor:
id: 1
```
As of Feb 2020, the integration will discover all sensors from Emoncms and will use the unit of measurement specified in the Feed from Emoncms, in preference to the one set in the configuration. Tested with [Emoncms](https://github.com/emoncms/emoncms) V10.1.13 - `unit` was added to the API around version V9.9.1.
## Configuration variables
- `api_key` (*Required*): The read API key for your Emoncms user.
- `url` (*Required*): The base URL of Emoncms, use <https://emoncms.org> for the cloud based version.
- `id` (*Required*): Positive integer identifier for the sensor. Must be unique if you specify multiple Emoncms sensors.
- `include_only_feed_id` (*Optional*): Positive integer list of Emoncms feed IDs. Only the feeds with feed IDs specified here will be displayed. Can not be specified if `exclude_feed_id` is specified.
- `exclude_feed_id` (*Optional*): Positive integer list of Emoncms feed IDs. All the feeds will be displayed as sensors except the ones listed here. Can not be specified if `include_only_feed_id` is specified.
- `sensor_names` (*Optional*): Dictionary of names for the sensors created that are created based on feed ID. The dictionary consists of `feedid: name` pairs. Sensors for feeds with their feed ID mentioned here will get the chosen name instead of the default name
- `value_template` (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to alter the feed value.
- `scan_interval` (*Optional*): Defines the update interval of the sensor in seconds.
- `unit_of_measurement` (*Optional*): Defines the unit of measurement of for all the sensors. default is "W".
{% configuration %}
api_key:
description: The read API key for your Emoncms user.
required: true
type: string
url:
description: "The base URL of Emoncms, use <https://emoncms.org> for the cloud-based version. For self-hosted Emoncms or EmonPi you may need a URL of `http://x.x.x.x/emoncms`."
required: true
type: string
id:
description: Positive integer identifier for the sensor. Must be unique if you specify multiple Emoncms sensors.
required: true
type: integer
include_only_feed_id:
description: Positive integer list of Emoncms feed IDs. Only the feeds with feed IDs specified here will be displayed. Can not be specified if `exclude_feed_id` is specified.
required: false
type: list
exclude_feed_id:
description: Positive integer list of Emoncms feed IDs. All the feeds will be displayed as sensors except the ones listed here. Can not be specified if `include_only_feed_id` is specified.
required: false
type: list
sensor_names:
description: "Dictionary of names for the sensors created that are created based on feed ID. The dictionary consists of `feedid: name` pairs. Sensors for feeds with their feed ID mentioned here will get the chosen name instead of the default name."
required: false
type: [integer, list]
value_template:
description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to alter the feed value.
required: false
type: template
scan_interval:
description: Defines the update interval of the sensor in seconds.
required: false
type: integer
unit_of_measurement:
description: Defines the unit of measurement to be used for any sensor where the unit is *not* set in Emoncms. If no unit is set in Emoncms or in the configuration, the default (W) will be used.
required: false
default: W
type: string
{% endconfiguration %}
## Default naming scheme
@ -46,6 +78,16 @@ If `sensor_names` is used, any feeds with defined names will get those names exa
In this section you find some more examples of how this sensor can be used.
Minimal configuration. All Feeds are added as sensors with the unit of measurement being set by the Emoncms Feed or the default unit.
```yaml
sensor:
platform: emoncms
api_key: API_KEY
url: https://emoncms.org
id: 1
```
Display only feeds with their feed IDs specified in `include_only_feed_id`.
```yaml
@ -70,7 +112,7 @@ sensor:
api_key: API_KEY
url: https://emoncms.org
id: 1
unit_of_measurement: "KWH"
unit_of_measurement: "kWh"
exclude_feed_id:
- 107
- 105
@ -85,7 +127,7 @@ sensor:
api_key: API_KEY
url: https://emoncms.org
id: 1
unit_of_measurement: "KW"
unit_of_measurement: "kW"
include_only_feed_id:
- 5
- 120
@ -127,7 +169,7 @@ sensor:
- 107
- 106
- platform: emoncms
api_key: put your emoncms read api key here
api_key: API_KEY
url: https://emoncms.org
id: 2
scan_interval: 60

View File

@ -0,0 +1,244 @@
---
title: "Ezviz Camera"
description: "Integrate Ezviz camera within Home Assistant."
logo: ezviz.png
ha_release: 0.107
ha_category:
- Camera
ha_iot_class: Cloud Polling
ha_domain: ezviz
---
The `ezviz` sensor platform uses the EzvizLife API to interact with the devices.
It also exposes an RTSP stream, by using the local camera IPs (so the device hosting Home Assistant has to be able to access the local IP of the cameras).
As there is no official documentation for the API, the component retrieves data from the API used in the Ezviz mobile app, [hosted here](https://apiieu.ezvizlife.com).
## Configuration
The configuration (see below) needs your Ezviz username & password you use within the Ezviz mobile application.
Next, add the Ezviz camera to your `configuration.yaml` file like below:
```yaml
# Example configuration.yaml entry
camera:
- platform: ezviz
username: YOUR_USERNAME
password: YOUR_PASSWORD
cameras:
D12345678:
username: YOUR_CAMERA_USERNAME
password: YOUR_CAMERA_PASSWORD
```
As you see, here is the way to describe the camera credentials.
The password for each camera is usually written underneath the device, near the QR code. It is also code "verification code".
{% configuration %}
username:
description: The Ezviz account username.
required: true
type: string
password:
description: The Ezviz account password.
required: true
type: string
cameras:
description: A list of cameras
required: false
type: string
serial:
description: The Ezviz camera Serial, usually a letter followed by 8 digits.
required: true
type: string
username:
description: The Ezviz camera RTSP username.
required: true
type: string
password:
description: The Ezviz verification code.
required: true
type: string
{% endconfiguration %}
## Lovelace
If you want a shiny Lovelace card, with proper buttons, here is a snippet of a Lovelace card:
```yaml
camera_image: camera.c6n_d12345678
camera_view: live
elements:
- icon: 'mdi:arrow-up'
style:
background: 'rgba(255, 255, 255, 0.5)'
bottom: 50px
right: 25px
tap_action:
action: call-service
service: camera.ezviz_ptz
service_data:
direction: up
entity_id: camera.c6n_d12345678
type: icon
- icon: 'mdi:arrow-down'
style:
background: 'rgba(255, 255, 255, 0.5)'
bottom: 0px
right: 25px
tap_action:
action: call-service
service: camera.ezviz_ptz
service_data:
direction: down
entity_id: camera.c6n_d12345678
type: icon
- icon: 'mdi:arrow-left'
style:
background: 'rgba(255, 255, 255, 0.5)'
bottom: 25px
right: 50px
tap_action:
action: call-service
service: camera.ezviz_ptz
service_data:
direction: left
entity_id: camera.c6n_d12345678
type: icon
- icon: 'mdi:arrow-right'
style:
background: 'rgba(255, 255, 255, 0.5)'
bottom: 25px
right: 0px
tap_action:
action: call-service
service: camera.ezviz_ptz
service_data:
direction: right
entity_id: camera.c6n_d12345678
type: icon
- icon: 'mdi:run-fast'
style:
background: 'rgba(255, 255, 255, 0.5)'
top: 25px
right: 25px
tap_action:
action: call-service
service: camera.ezviz_switch_follow_move_on
service_data:
entity_id: camera.c6n_d12345678
confirmation: true
type: icon
- icon: 'mdi:run'
style:
background: 'rgba(255, 255, 255, 0.5)'
top: 25px
right: 0px
tap_action:
action: call-service
service: camera.ezviz_switch_follow_move_off
service_data:
entity_id: camera.c6n_d12345678
confirmation: true
type: icon
- icon: 'mdi:eye'
style:
background: 'rgba(255, 255, 255, 0.5)'
right: 25px
top: 50px
tap_action:
action: call-service
service: camera.ezviz_switch_privacy_off
service_data:
entity_id: camera.c6n_d12345678
confirmation: true
type: icon
- icon: 'mdi:eye-off'
style:
background: 'rgba(255, 255, 255, 0.5)'
right: 0px
top: 50px
tap_action:
action: call-service
service: camera.ezviz_switch_privacy_on
service_data:
entity_id: camera.c6n_d12345678
confirmation: true
type: icon
- icon: 'mdi:volume-high'
style:
background: 'rgba(255, 255, 255, 0.5)'
right: 25px
top: 75px
tap_action:
action: call-service
service: camera.ezviz_switch_audio_off
service_data:
entity_id: camera.c6n_d12345678
confirmation: true
type: icon
- icon: 'mdi:volume-off'
style:
background: 'rgba(255, 255, 255, 0.5)'
right: 0px
top: 75px
tap_action:
action: call-service
service: camera.ezviz_switch_audio_on
service_data:
entity_id: camera.c6n_d12345678
confirmation: true
type: icon
- icon: 'mdi:led-on'
style:
background: 'rgba(255, 255, 255, 0.5)'
right: 25px
top: 100px
tap_action:
action: call-service
service: camera.ezviz_switch_state_off
service_data:
entity_id: camera.c6n_d12345678
confirmation: true
type: icon
- icon: 'mdi:led-off'
style:
background: 'rgba(255, 255, 255, 0.5)'
right: 0px
top: 100px
tap_action:
action: call-service
service: camera.ezviz_switch_state_on
service_data:
entity_id: camera.c6n_d12345678
confirmation: true
type: icon
- icon: 'mdi:brightness-4'
style:
background: 'rgba(255, 255, 255, 0.5)'
right: 25px
top: 100px
tap_action:
action: call-service
service: camera.ezviz_switch_ir_off
service_data:
entity_id: camera.c6n_d12345678
confirmation: true
type: icon
- icon: 'mdi:brightness-5'
style:
background: 'rgba(255, 255, 255, 0.5)'
right: 0px
top: 100px
tap_action:
action: call-service
service: camera.ezviz_switch_ir_on
service_data:
entity_id: camera.c6n_d12345678
confirmation: true
type: icon
entity: camera.c6n_d12345678
type: picture-elements
```

View File

@ -119,20 +119,3 @@ script:
title: Blue
payload: DEVELOPER_DEFINED_PAYLOAD_FOR_PICKING_BLUE
```
You can now also use Facebook public beta broadcast API to push messages to ALL users who interacted with your chatbot on your page, without having to collect their number. This will scale to thousands of users. Facebook requires that this only be used for non-commercial purposes and they validate every message you send. Also note, your Facebook bot needs to be authorized for "page_subscritions" if you want to make it to all but can be used right away to a selected group of testers of your choice.
To enable broadcast just use the keyword "BROADCAST" as your target. Only put ONE target BROADCAST as below:
```yaml
- alias: Facebook Broadcast
trigger:
platform: sun
event: sunset
action:
service: notify.facebook
data:
message: Some text you want to send
target:
- BROADCAST
```

View File

@ -49,6 +49,11 @@ password:
required: false
default: 1234
type: string
name:
description: Friendly name of the Internet Radio. If present this will override the friendly name reported by the radio itself.
required: false
default: empty
type: string
{% endconfiguration %}
Some models use a separate port (2244) for API access, this can be verified by visiting http://[host]:[port]/device.

View File

@ -7,6 +7,7 @@ ha_category:
ha_iot_class: Cloud Polling
ha_release: 0.98
ha_config_flow: true
ha_quality_scale: platinum
ha_codeowners:
- '@exxamalte'
ha_domain: geonetnz_quakes
@ -26,7 +27,7 @@ on the default map automatically, or on a map card by defining the source
converted to the unit (kilometers or miles) configured in Home Assistant.
<p class='img'>
<img src='{{site_root}}/images/screenshots/geonetnz-quakes-feed-map.png' />
<img src='/images/screenshots/geonetnz-quakes-feed-map.png' />
</p>
The data is updated every 5 minutes.
@ -111,7 +112,7 @@ some useful attributes that indicate the currentness of the data retrieved
from the feed.
<p class='img'>
<img src='{{site_root}}/images/screenshots/geonetnz-quakes-sensor.png' />
<img src='/images/screenshots/geonetnz-quakes-sensor.png' />
</p>
| Attribute | Description |

View File

@ -0,0 +1,64 @@
---
title: Griddy
description: Instructions on how to integrate griddy prices into Home Assistant.
ha_category:
- Sensor
ha_release: 0.107
ha_iot_class: Cloud Polling
ha_config_flow: true
ha_codeowners:
- '@bdraco'
ha_domain: griddy
---
The `griddy` integration allows you to integrate your [Griddy](https://griddy.com/) price data into Home Assistant.
There is currently support for the following device types within Home Assistant:
- Sensor
## Configuration
You will need your Griddy Load Zone to use this module.
To add `Griddy` to your installation, go to **Configuration** >> **Integrations** in the UI, click the button with `+` sign and from the list of integrations select **Griddy**.
Alternatively, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
griddy:
loadzone: YOUR_LZ
```
{% configuration %}
loadzone:
description: Your Load Zone is in your Griddy account under “Account > Meter > Load Zone.”
required: true
type: string
{% endconfiguration %}
### Sensor
The current price for the Load Zone will appear as a sensor:
- LZ_XXXXX Price Now
### Example Automation
```yaml
- id: '1572630019168'
alias: Stop Tesla Charging if Power Price Spikes
description: ''
trigger:
- above: '30'
entity_id: sensor.lz_houston_price_now
platform: numeric_state
condition:
- condition: zone
entity_id: device_tracker.my_tesla
zone: zone.home
action:
- service: switch.turn_off
entity_id: switch.my_tesla_charger_switch
```

View File

@ -71,7 +71,7 @@ Without any `include` or `exclude` configuration the history displays graphs for
Define domains and entities to `exclude` (aka. blacklist). This is convenient
when you are basically happy with the information displayed, but just want to
remove some entities or domains. Usually these are entities/domains which do not
change (like `weblink`) or rarely change (like `updater` or `automation`).
change or rarely change (like `updater` or `automation`).
```yaml
# Example configuration.yaml entry with exclude
@ -79,7 +79,6 @@ history:
exclude:
domains:
- automation
- weblink
- updater
entities:
- sensor.last_boot

View File

@ -1,79 +0,0 @@
---
title: History Graph
description: Instructions for setting up History Graph.
ha_category:
- History
logo: home-assistant.png
ha_release: 0.55
ha_quality_scale: internal
ha_codeowners:
- '@andrey-git'
ha_domain: history_graph
---
<div class='note'>
This integration is deprecated and pending removal in Home Assistant 0.107.0,
as it was only used by the old states UI (not our current Lovelace UI).
</div>
<p class='img'>
<img src='{{site_root}}/images/screenshots/history_graph.png' />
</p>
The `history_graph` integration will make the UI display a graph similar to the graphs in `more-info` popups and the [history](/integrations/history/) panel. If you want to add history graphs to the Lovelace UI, please check the [History Graph Card](/lovelace/history-graph/) configuration as it slightly differs from the component.
To use this integration in your installation, add the following to your `configuration.yaml` file:
```yaml
# Minimal configuration.yaml entry
history_graph:
gr1:
entities:
- light.ceiling.lights
```
{% configuration %}
entities:
description: List of entities whose history to show as a graph.
required: true
type: string
name:
description: Name to display.
required: false
default: ID
type: string
hours_to_show:
description: Number of hours to show in the graph.
required: false
default: 24
type: integer
refresh:
description: Number of seconds between graph refreshes. 0 to disable refreshing.
required: false
default: 0
type: integer
{% endconfiguration %}
### Full Example
```yaml
# Full configuration.yaml entry
history_graph:
gr1:
name: Lights Graph
entities:
- light.ceiling.lights
- light.bed_light
hours_to_show: 240
refresh: 60
gr2:
name: Temperature
entities:
- sensor.outside_temperature
- sensor.inside_temperature
hours_to_show: 120
# refresh: 0
```
For sensors to automatically be combined into one graph they need to have exactly the same unit of measurement. This is important if you have, e.g., a unit-less temperature `state_topic` MQTT sensor and you want to combine this with a weather sensor. `unit_of_measurement:` of the MQTT sensor then needs to be set to `°C`.

View File

@ -59,7 +59,7 @@ scan_interval:
### Service `hive.boost_heating`
You can use the service `hive.boost_heating` to set your heating to boost for a period of time at a certain target temperature".
You can use the service `hive.boost_heating` to set your heating to boost for a period of time at a certain target temperature". Individual TRVs can also be boosted in the same way, using this service.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ---------------------------------------------------------------------- |

View File

@ -14,7 +14,7 @@ ha_category:
- Fan
- Health
ha_release: 0.68
ha_iot_class: Local Polling
ha_iot_class: Local Push
ha_config_flow: true
ha_codeowners:
- '@Jc2k'
@ -37,7 +37,7 @@ There is currently support for the following device types within Home Assistant:
- Light (HomeKit lights)
- Lock (HomeKit lock)
- Switch (HomeKit switches)
- Binary Sensor (HomeKit motion, contact and smoke sensors)
- Binary Sensor (HomeKit motion, contact, occupancy and smoke sensors)
- Sensor (HomeKit humidity, temperature, co2 and light level sensors)
- Fan
- Air Quality
@ -47,6 +47,8 @@ HomeKit IP accessories for these device types may work with some caveats:
- If the device is Wi-Fi based and has no physical controls or screen then you may need an Apple HomeKit device like an iPhone or iPad to get the accessory onto your Wi-Fi network. For example, for a Koogeek LS1 you must add the accessory to HomeKit on your iOS device, then remove it from the iOS device. This leaves the LS1 in an unpaired state but still on your Wi-Fi. Home Assistant can then find it and pair with it.
- You need to know the HomeKit PIN. There is no way to recover this if you do not have it. In this case, you will need to contact the manufacturer to see what options you have.
HomeKit controller will poll your devices, but it will also automatically enable push updates for accessories that support it.
Home Assistant does not currently support HomeKit BLE.
<div class='note'>
@ -67,10 +69,6 @@ If your device doesn't have a display and received HomeKit support after it was
If you have lost your PIN code, then you may not be able to pair your accessory. You should contact the manufacturer to see if there is anything you can do.
### My accessory isn't updating straight away
This is normal - HomeKit controller is currently a local polling based integration. It polls your accessory for its latest state once per minute.
### Home Assistant cannot discover my device
For IP accessories, Home Assistant can only find devices that are already on the same network as your device. If an accessory is Wi-Fi based and has no user interface for joining it to your Wi-Fi network, you will need an Apple HomeKit controller device (an iPhone or iPad). You should pair it with the controller and then remove the pairing in the UI (but do not reset the accessory itself). This will leave the accessory on your Wi-Fi network but in an unpaired state, and then Home Assistant can find it.

View File

@ -185,12 +185,15 @@ Afterward, this device can be implemented into Home Assistant.
## Services
Executable by all users:
- `homematicip_cloud.activate_eco_mode_with_duration`: Activate eco mode with duration.
- `homematicip_cloud.activate_eco_mode_with_period`: Activate eco mode with period.
- `homematicip_cloud.activate_vacation`: Activates the vacation mode until the given time.
- `homematicip_cloud.deactivate_eco_mode`: Deactivates the eco mode immediately.
- `homematicip_cloud.deactivate_vacation`: Deactivates the vacation mode immediately.
- `homematicip_cloud.set_active_climate_profile`: Set the active climate profile index.
Executable by administrators or within the context of an automation:
- `homematicip_cloud.dump_hap_config`: Dump the configuration of the Homematic IP Access Point(s).
- `homematicip_cloud.reset_energy_counter`: Reset energy counter of measuring actuators.

View File

@ -0,0 +1,83 @@
---
title: "iammeter"
description: "Instructions on how to integrate IAMMETER sensor within Home Assistant."
logo: iammeter-logo.png
ha_category:
- Energy
- Sensor
ha_release: 0.107
ha_iot_class: Local Polling
ha_domain: iammeter
---
`iammeter` provides real-time readings of single-phase (WEM3080, WEM3162) and three-phase (WEM3080T) meters from [IAMMETER](https://www.iammeter.com) over Wi-Fi.
## Configuration
To use this sensor in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: iammeter
host: IP_ADDRESS_OF_HOST
```
{% configuration %}
host:
description: The IP address of your IAMMETER.
required: true
type: string
port:
description: port of your IAMMETER.
required: false
default: 80
type: integer
name:
description: Name for the sensor entity.
required: false
type: string
default: IamMeter
{% endconfiguration %}
## Sensors
Sensors available in the library:
### Single-phase energy meter (WEM3080/WEM3162)
| name | Unit | Description |
|--------------------|------|:-----------------------------------------------------------------------------|
| wem3080_voltage | V | Voltage. |
| wem3080_current | A | current. |
| wem3080_power | W | active power. |
| wem3080_importenergy | kWh | Energy consumption from gird |
| wem3080_exportgrid | kWh | Energy export to grid |
### Three-phase energy meter (WEM3080T)
| name | Unit | Description |
|--------------------|------|:-----------------------------------------------------------------------------|
| wem3080t_voltage_a | V | A phase voltage |
| wem3080t_current_a | A | A phase current |
| wem3080t_power_a | W | A phase active power |
| wem3080t_importenergy_a | kWh | A phase import energy |
| wem3080t_exportgrid_a | kWh | A phase export energy |
| wem3080t_frequency_a | kWh | A phase frequency |
| wem3080t_pf_a | kWh | A phase power factor |
| | | |
| wem3080t_voltage_b | V | B phase voltage |
| wem3080t_current_b | A | B phase current |
| wem3080t_power_b | W | B phase active power |
| wem3080t_importenergy_b | kWh | B phase import energy |
| wem3080t_exportgrid_b | kWh | B phase export energy |
| wem3080t_frequency_b | kWh | B phase frequency |
| wem3080t_pf_b | kWh | B phase power factor |
| | | |
| wem3080t_voltage_c | V | C phase voltage |
| wem3080t_current_c | A | C phase current |
| wem3080t_power_c | W | C phase active power |
| wem3080t_importenergy_c | kWh | C phase import energy |
| wem3080t_exportgrid_c | kWh | C phase export energy |
| wem3080t_frequency_c | kWh | C phase frequency |
| wem3080t_pf_c | kWh | C phase power factor |

View File

@ -56,6 +56,11 @@ password:
description: Your iCloud account password.
required: true
type: string
with_family:
description: If you want to fetch your family devices.
required: false
default: false
type: boolean
max_interval:
description: Maximum interval in minutes between subsequent location updates. This tracker uses dynamic intervals for requesting location updates. When the iPhone is stationary, the interval will eventually be set to `max_interval` to save battery. When the iPhone starts moving again, the interval will be dynamically updated to 1 min. Note that updating interval to 1 min might be delayed by maximum `max_interval` minutes. Minimum value is 1 min.
required: false

View File

@ -29,15 +29,6 @@ liking):
```yaml
iqvia:
zip_code: "00544"
monitored_conditions:
- allergy_average_forecasted
- allergy_index_today
- allergy_index_tomorrow
- asthma_average_forecasted
- asthma_index_today
- asthma_index_tomorrow
- disease_average_forecasted
- disease_index_today
```
{% configuration %}
@ -45,27 +36,6 @@ zip_code:
description: The U.S. ZIP code to gather data for (as a quoted string).
required: true
type: string
monitored_conditions:
description: The metric types to monitor.
required: true
type: list
keys:
allergy_average_forecasted:
description: "The average forecasted allergy index over the next 5 days."
allergy_index_today:
description: "The allergy index for today."
allergy_index_tomorrow:
description: "The allergy index for tomorrow."
asthma_average_forecasted:
description: "The average forecasted asthma index over the next 5 days."
asthma_index_today:
description: "The asthma index for today."
asthma_index_tomorrow:
description: "The asthma index for tomorrow."
disease_average_forecasted:
description: "The average forecasted cold/flu index over the next 5 days."
disease_index_today:
description: "The cold/flu index for today."
{% endconfiguration %}
<div class='note warning'>

View File

@ -65,7 +65,6 @@ logbook:
- sensor.date
domains:
- sun
- weblink
```
In case you just want to see messages from some specific entities or domains use

View File

@ -16,7 +16,7 @@ The `melcloud` integration integrates Mitsubishi Electric's [MELCloud](https://w
## Device support
- Air-to-Air heat pumps, e.g., AC units - **Supported**
- Air-to-Water heat pumps - **Work in progress**
- Air-to-Water heat pumps - **Supported**
- Energy recovery ventilators - **Not supported**
- Other - **Not supported**
@ -64,3 +64,49 @@ The following attributes are available for `sensor` platform entities:
- Room temperature
- Energy - The total consumed energy in kWh. **Not supported by all models.**
## Air-to-Water device
An Air-to-Water device provides `water_heater`, `climate` and `sensor` platforms.
### Climate
A `climate` platform entity is provided for each radiator zone in the air-to-water system. The following parameters can be controlled:
- Target room temperature
The radiators need to be configured to run in room temperature control mode either through the local HMI or MELCloud. Flow temperature and curve modes are not supported.
Some air-to-water devices allow cooling using the radiator zones. This feature has not been implemented due to the lack of sample devices.
The system cannot be turned on/off through the `climate` entities.
#### State attributes
|Attribute|Description|Example|
|---------|-----------|-------|
|`status` |Current operation status|`idle`|
### Sensor
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.
Unlike air-to-air devices, air-to-water devices do not report energy consumption in an easily accessible manner.
### Water heater
The following parameters can be controlled for the `water_heater` platform entities:
- Power - Controls the entire system.
- Target tank temperature
- Operation mode
#### State attributes
|Attribute|Description|Example|
|---------|-----------|-------|
|`status` |Current operation status|`heat`|

View File

@ -60,7 +60,7 @@ extra_arguments:
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.
### Service `camera.onvif_ptz`
### Service `onvif.ptz`
If your ONVIF camera supports PTZ, you will be able to pan, tilt or zoom your camera.
@ -70,5 +70,9 @@ If your ONVIF camera supports PTZ, you will be able to pan, tilt or zoom your ca
| `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
If you are running into trouble with this sensor, please refer to the [Troubleshooting section](/integrations/ffmpeg/#troubleshooting).

View File

@ -10,7 +10,7 @@ ha_domain: owntracks
[OwnTracks](https://owntracks.org/) is a free and open source application for iOS and Android that allow you to track your location and send it directly to Home Assistant. It can be set up via the integrations panel in the configuration screen.
By default the integration will listen for incoming messages from OwnTracks via HTTP. It will also listen for MQTT messages if Home Assistant is configured to use MQTT.
By default the integration will listen for incoming messages from OwnTracks via HTTP. It will also listen for MQTT messages if Home Assistant is configured to use MQTT. When a location is submitted via HTTP, Home Assistant will return all [Persons](/integrations/person/)' last known locations and they will be displayed within the OwnTracks app.
<div class='videoWrapper'>
<iframe width="560" height="315" src="https://www.youtube.com/embed/UieAQ8sC6GY" frameborder="0" allowfullscreen></iframe>

View File

@ -30,8 +30,6 @@ Local and secure connections are preferred when setting up an Integration. After
</div>
If [discovery](/integrations/discovery/) is enabled and a local Plex server is found, a legacy `media_player` configuration (i.e., a `plex.conf` file) will be imported. GDM can be enabled via the Plex Web App under **Settings** -> **(Server Name)** -> **Settings** -> **Network** and choosing **Enable local network discovery (GDM)**.
The `plex` integration can also be configured via `configuration.yaml`:
```yaml
@ -79,11 +77,6 @@ media_player:
required: false
type: map
keys:
show_all_controls:
description: Forces all controls to display. Ignores dynamic controls (ex. show volume controls for client A but not for client B) based on detected client capabilities. This option allows you to override this detection if you suspect it to be incorrect.
required: false
default: false
type: boolean
use_episode_art:
description: Display TV episode art instead of TV show art.
required: false
@ -106,7 +99,6 @@ plex:
verify_ssl: true
media_player:
use_episode_art: true
show_all_controls: false
ignore_new_shared_users: false
```
@ -159,11 +151,10 @@ Plays a song, playlist, TV episode, or video on a connected client.
| Any (when all controls disabled) | A stop button will appear but is not functional. |
| Any (when casting) | Controlling playback will work but with error logging. |
| Any (remote client) | Controls disabled. |
| Apple TV (PlexConnect) | Controls disabled. Music does not work. |
| Apple TV | None |
| iOS | None |
| NVidia Shield | Mute disabled. Volume set below 2 will cause error logging. Controlling playback when the Shield is both a client and a server will work but with error logging |
| NVidia Shield | Controlling playback when the Shield is both a client and a server will work but with error logging |
| Plex Web | None |
| Tivo Plex App | Only play, pause, stop/off controls enabled |
### Notes

View File

@ -113,20 +113,21 @@ Type | Prefix | Suffix | Example
Device | `device/` | Device nickname | `device/iphone`
Channel | `channel/` | Channel tag | `channel/my_home`
Email | `email/` | Contact's email address | `email/email@example.com`
SMS | `sms/` | Contact's phone number | `sms/0612345678`
If using targets, your own account's email address functions as 'send to all devices'. All targets are verified (if exists) before sending, except email.
#### Example service payload
```json
{
"message": "A message for many people",
"target": [
"device/telephone",
"email/hello@example.com",
"channel/my_home"
]
}
```yaml
message: A message for many people
target:
- device/telephone
- email/hello@example.com
- channel/my_home
- sms/0612345678
```
To use notifications, please see the [getting started with automation page](/getting-started/automation/).

View File

@ -0,0 +1,55 @@
---
title: "QVR Pro"
description: "Instructions on how to integrate QVR Pro within Home Assistant."
logo: qvr_pro.png
ha_category:
- Camera
ha_release: 0.107
ha_domain: qvr_pro
---
[QVR Pro](https://www.qnap.com/solution/qvr-pro-official) allows you to create
an independent and expandable surveillance environment on your QNAP NAS. The
`qvr_pro` component allows you to view your QVR Pro channels in Home Assistant.
Currently, only cameras are supported by this integration.
## Configuration
To enable QVR Pro integration, add the following to your
`configuration.yaml` file:
```yaml
# Example configuration.yaml entry
qvr_pro:
host: YOUR_HOST
username: YOUR_USERNAME
password: YOUR_PASSWORD
```
{% configuration %}
host:
description: The IP address where QVR Pro is accessible.
required: true
type: string
username:
description: The username for accessing your Ring account.
required: true
type: string
password:
description: The password for accessing your Ring account.
required: true
type: string
exclude_channels:
description: Comma separated list of channel numbers to be excluded.
required: false
type: list
{% endconfiguration %}
Enabling the QVR Pro camera platform will add all QVR Pro channels by
default. Please see `exclude_channels` if you would like to exclude
specific channels from showing up in Home Assistant.
<p class="note warning">
The QVR Pro user must have Surveillance Management permission.
</p>

View File

@ -57,6 +57,11 @@ recorder:
required: false
default: 1
type: integer
commit_interval:
description: How often (in seconds) the events and state changes are committed to the database. The default of `1` allows events to be committed almost right away without trashing the disk when an event storm happens. Increasing this will reduce disk I/O and may prolong disk (SD card) lifetime with the trade-off being that the logbook and history will lag. If this is set to `0` (zero), commit are made as soon as possible after an event is processed.
required: false
default: 1
type: integer
exclude:
description: Configure which integrations should be excluded from recordings.
required: false
@ -89,7 +94,7 @@ recorder:
type: list
{% endconfiguration %}
Defining domains and entities to `exclude` (aka. blacklist) is convenient when you are basically happy with the information recorded, but just want to remove some entities or domains. Usually, these are entities/domains that do not change (like `weblink`) or rarely change (like `updater` or `automation`).
Defining domains and entities to `exclude` (aka. blacklist) is convenient when you are basically happy with the information recorded, but just want to remove some entities or domains. Usually, these are entities/domains that do not change or rarely change (like `updater` or `automation`).
```yaml
# Example configuration.yaml entry with exclude
@ -99,7 +104,6 @@ recorder:
exclude:
domains:
- automation
- weblink
- updater
entities:
- sun.sun # Don't record sun data

View File

@ -105,7 +105,7 @@ headers:
required: false
type: [string, list]
json_attributes:
description: A list of keys to extract values from a JSON dictionary result and then set as sensor attributes. If the endpoint returns XML with the "text/xml" content type, it will automatically be converted to JSON according to this [specification](https://www.xml.com/pub/a/2006/05/31/converting-between-xml-and-json.html)
description: A list of keys to extract values from a JSON dictionary result and then set as sensor attributes. If the endpoint returns XML with the "text/xml" or "application/xml" content type, it will automatically be converted to JSON according to this [specification](https://www.xml.com/pub/a/2006/05/31/converting-between-xml-and-json.html)
required: false
type: [string, list]
json_attributes_path:

View File

@ -37,11 +37,6 @@ host:
description: "The hostname or IP of the Samsung Smart TV, e.g., `192.168.0.10`."
required: true
type: string
port:
description: The port of the Samsung Smart TV. If set to 8001, the new websocket connection will be used (required for 2016+ TVs) - For Home Assistant Core installations, you may need to install a Python package, see below.
required: false
type: integer
default: automatically detected
name:
description: The name you would like to give to the Samsung Smart TV.
required: false
@ -102,29 +97,29 @@ For example: for model `UN55NU7100`, the `UN55` would mean it's an LED, North Am
- F6500
- F7000
- F8000BF
- K5579 (port must be set to 8001, On/Off, Forward/Backward, Volume control, but no Play button)
- K5579 (On/Off, Forward/Backward, Volume control, but no Play button)
- K5600AK (partially supported, turn on works but state is not updated)
- K6500AF (port must be set to 8001)
- KS7005 (port must be set to 8001, MAC address must be provided, On/Off, Volume are OK, no channel change)
- KS7502 (port must be set to 8001, turn on doesn't work, turn off works fine)
- KS8000 (port must be set to 8001)
- KS8005 (port must be set to 8001)
- KS8500 (port must be set to 8001)
- KU6020 (port must be set to 8001)
- KU6100 (port must be set to 8001)
- KU6290 (port must be set to 8001)
- KU6400U (port must be set to 8001)
- KU7000 (port must be set to 8001)
- M5620 (port must be set to 8001)
- MU6170UXZG (port must be set to 8001)
- NU7090 (port must be set to 8801, On/Off, MAC must be specified for Power On)
- NU7400 (port set to 8001)
- K6500AF
- KS7005 (MAC address must be provided, On/Off, Volume are OK, no channel change)
- KS7502 (turn on doesn't work, turn off works fine)
- KS8000
- KS8005
- KS8500
- KU6020
- KU6100
- KU6290
- KU6400U
- KU7000
- M5620
- MU6170UXZG
- NU7090 (On/Off, MAC must be specified for Power On)
- NU7400
- NU8000
- U6000 (port must be set to 8001)
- U6300 (port must be set to 8001)
- UE6199UXZG (port must be set to 8001, On/Off, Forward/Backward, Volume control, but no Play button)
- UE65KS8005 (port must be set to 8001, On/Off, Forward/Backward, Volume are OK, but no Play button)
- UE49KU6470 (port must be set to 8001, On/Off, Forward/Backward, Volume are OK, but no Play button)
- U6000
- U6300
- UE6199UXZG (On/Off, Forward/Backward, Volume control, but no Play button)
- UE65KS8005 (On/Off, Forward/Backward, Volume are OK, but no Play button)
- UE49KU6470 (On/Off, Forward/Backward, Volume are OK, but no Play button)
- UE46ES5500 (partially supported, turn on doesn't work)
#### Models tested but not yet working

View File

@ -8,6 +8,7 @@ ha_category:
- Sensor
ha_iot_class: Cloud Polling
ha_release: 0.82
ha_config_flow: true
ha_codeowners:
- '@kbickar'
ha_domain: sense
@ -22,7 +23,9 @@ There is currently support for the following device types within Home Assistant:
## Configuration
To enable this sensor in your installation, add the following to your `configuration.yaml` file:
To add `Sense` to your installation, go to **Configuration** >> **Integrations** in the UI, click the button with `+` sign and from the list of integrations select **Sense**.
Alternatively, to enable this sensor in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@ -52,3 +55,5 @@ Sensors are added for both usage and production with the following names:
- **Daily/Weekly/Monthly Usage/Production**: Daily/Weekly/Monthly power usage/production in kWh. Updated every 5 minutes.
Binary sensors are created for each of the devices detected by your Sense monitor to show their power state.
Sensors are created for each of the devices detected by your Sense monitor to show their power usage in Watts.

View File

@ -4,13 +4,25 @@ description: Instructions on how to integrate a Shopping list into Home Assistan
ha_category:
- Intent
ha_release: '0.50'
ha_config_flow: true
ha_quality_scale: internal
ha_domain: shopping_list
---
The `shopping_list` integration allows you to keep track of shopping list items. Includes the ability to add items via your voice using the sentence "Add eggs to my shopping list".
## Configuration
## Configuration - GUI
From the Home Assistant front page go to **Configuration** and then select **Integrations** from the list.
Use the plus button in the bottom right to add a new integration called **Shopping List**.
In the popup:
- Submit
The success dialog will appear or an error will be displayed in the popup.
## Configuration - Manual
```yaml
# Example configuration.yaml entry

View File

@ -15,7 +15,9 @@ Detect people in camera images using [Sighthound Cloud](https://www.sighthound.c
This integration adds an image processing entity where the state of the entity is the number of people detected in an image. For each person detected, an `sighthound.person_detected` event is fired. The event data includes the entity_id of the image processing entity firing the event, and the bounding box around the detected person.
**Note** that by default the component will not automatically scan images, but requires you to call the `image_processing.scan` service e.g., using an automation triggered by motion.
If `save_file_folder` is configured, on each new detection of a person, an annotated image with the name `sighthound_{camera_name}_latest.jpg` is saved in the configured folder if it doesn't already exist, and overwritten if it does exist. The saved image shows the bounding box around detected people and can be displayed on the Home Assistant front end using a [Local File](/integrations/local_file/) camera, and used in notifications. If `save_timestamped_file` is configured as `true`, then the annotated image is saved with a file name that includes the time of detection.
**Note** that by default the component will not automatically scan images, but requires you to call the `image_processing.scan` service, e.g., using an automation triggered by motion.
## Configuration
@ -26,6 +28,8 @@ To enable this platform in your installation, add the following to your `configu
image_processing:
- platform: sighthound
api_key: some_key
save_file_folder: /my_dir/
save_timestamped_file: True
source:
- entity_id: camera.my_cam
```
@ -39,6 +43,14 @@ account_type:
description: If you have a paid account, used `prod`.
required: false
type: string
save_file_folder:
description: The folder to save annotated images to.
required: false
type: string
save_timestamped_file:
description: Save the processed image with the time of detection in the filename. Requires save_file_folder to be configured.
required: false
type: string
source:
description: The list of image sources.
required: true

View File

@ -18,7 +18,7 @@ The Somfy integration will allow users to integrate their Somfy devices into Hom
Somfy is leveraging the new account linking service. This means that to set up Somfy, you only need to go to the integrations page and click on add new integration.
<div class='videoWrapper'>
<iframe width="560" height="315" src="https://www.youtube.com/embed/y0SECWUVR-M" frameborder="0" allowfullscreen></iframe>
<iframe width="560" height="315" src="https://www.youtube.com/embed/y0SECWUVR-M" frameborder="0" allowfullscreen></iframe>
</div>
## Installation with own developer account
@ -58,8 +58,15 @@ client_secret:
description: Your Somfy consumer secret.
required: true
type: string
optimistic:
description: Set optimistic mode.
required: false
default: false
type: boolean
{% endconfiguration %}
**optimistic** mode should only be used when the integration is not able to gain information on whether a cover is open or closed (e.g., [RTS](https://www.somfysystems.com/en-us/discover-somfy/technology/radio-technology-somfy) devices). It will attempt to track the status within Home Assistant. This mode should only be used if Home Assistant is the only way you operate the blind. If you also use the physical remote control or the Somfy app, Home Assistant will become out of sync.
### Potential duplicate with the Tahoma integration
If you use the [Tahoma](/integrations/tahoma) integration, you will have to exclude the covers added by this one. Otherwise, they will be added twice.

View File

@ -25,6 +25,7 @@ ssdp:
The following integrations are automatically discovered by the SSDP integration:
- [deCONZ](../deconz/)
- [DirecTV](/integrations/directv/)
- [Huawei LTE](../huawei_lte/)
- [Philips Hue](../hue/)
- [Samsung TV](../samsungtv/)

View File

@ -11,11 +11,12 @@ ha_codeowners:
ha_domain: supla
---
The [Supla](https://supla.org/) is an Open Source home automation system for ESP8266 based devices. It has its own set of protocols, it's own firmware and commercially available devices (produced for example by [Zamel](https://supla.zamel.pl/))
The [Supla](https://supla.org/) is an Open Source home automation system for ESP8266 based devices. It has its own set of protocols, its own firmware and commercially available devices (produced for example by [Zamel](https://supla.zamel.pl/))
Currently only covers (shutters in Supla's lingo) and switches are supported, but, thanks to comprehensive and universal REST API, it's pretty easy to add more.
Currently only covers (shutters in Supla's lingo), gates and switches are supported, but, thanks to comprehensive and universal REST API, it's pretty easy to add more.
Right now it's impossible to add single devices -- all of them are discovered from Supla Cloud's servers or yours.
Right now it's impossible to add a device -- all of them are discovered from Supla Cloud's servers or yours.
Devices disabled on Supla Cloud will not be loaded into Home Assistant.
## Configuration

View File

@ -0,0 +1,95 @@
---
title: "Tankerkoenig Sensor"
description: "Instructions on how to integrate Tankerkoenig sensors within Home Assistant."
logo: tankerkoenig.png
ha_category:
- Energy
- Sensor
ha_release: 0.107
ha_iot_class: Cloud Polling
ha_domain: tankerkoenig
---
The `tankerkoenig` platform allows you to monitor the fuel prices with [tankerkoenig.de](https://www.tankerkoenig.de/) from within Home Assistant and setup automations based on the information.
One sensor entity will be created for each fuel station within the given radius and for each configured fuel type in it.
You can also add additional stations manually, referencing them via their IDs. To find out the ID for a given fuel station, you can use the [TankstellenFinder](https://creativecommons.tankerkoenig.de/TankstellenFinder/index.html) tool.
## Setup
To use this sensor you need an API key from [tankerkoenig](https://creativecommons.tankerkoenig.de). Go to [api-key](https://creativecommons.tankerkoenig.de/api-key), fill out the form and request a key. The API is free, but requests should be limited to less than once every 5 minutes.
## Configuration
To enable this platform, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
tankerkoenig:
api_key: YOUR_API_KEY
radius: 1
fuel_type:
- "diesel"
```
{% configuration %}
api_key:
description: The api key you got when you registered.
required: true
type: string
fuel_types:
description: The types of fuels you want to track. Allowed values are `e5`, `e10` and `diesel`.
required: false
default: ["e5", "e10", "diesel"]
type: list
latitude:
description: The latitude of the gas station to list.
required: inclusive
type: float
default: latitude of your home zone
longitude:
description: The longitude of the gas station to list.
required: inclusive
type: float
default: longitude of your home zone
radius:
description: The radius in km. in which to search for gas stations. Cannot be less than 1.
required: false
default: 2
type: integer
scan_interval:
description: The time interval to poll the server for new data. You should not put values lower than 5 minutes here; otherwise you risk your API key being blocked.
required: false
default: 0:30
type: time
stations:
description: List of additional fuel stations to create entities for.
required: false
type: list
{% endconfiguration %}
## Full example
This is a full example of the platform:
```yaml
tankerkoenig:
api_key: YOUR_API_KEY
fuel_types:
- "diesel"
- "e10"
latitude: 52.51627
longitude: 13.3777
radius: 1
scan_interval: "0:10:01"
stations:
- 8531b393-1e42-423b-cb4d-e4b98cff8a0c
```
Assuming there are two fuel stations within the specified range and location, you would get six sensor entities:
* sensor.tankerkoenig_berlin_paulstrasse_20_diesel
* sensor.tankerkoenig_berlin_paulstrasse_20_e10
* sensor.tankerkoenig_aral_tankstelle_diesel
* sensor.tankerkoenig_aral_tankstelle_e10
* sensor.tankerkoenig_svg_hamburg_strassen>_diesel
* sensor.tankerkoenig_svg_hamburg_strassen_e10

View File

@ -21,23 +21,51 @@ The `thinkingcleaner` sensor platform simple displays information about your [Th
To enable this sensor in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: thinkingcleaner
```
{% configuration %}
host:
description: IP address of Thinking Cleaner device
required: false
type: string
{% endconfiguration %}
This will automatically add sensors for each Thinking Cleaner in your network.
## switch
## Switch
The `thinkingcleaner` switch platform allows you to control your [Thinking Cleaner](https://www.thinkingcleaner.com/) add-on.
To enable this switch in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
switch:
- platform: thinkingcleaner
```
{% configuration %}
host:
description: IP address of Thinking Cleaner device
required: false
type: string
{% endconfiguration %}
This will automatically add switches for each Thinking Cleaner in your network.
## Example configuration using a Roomba with a static IP
If your `thinkingcleaner` device has a static IP address, you can also supply this to the sensor and switch using the host parameter. This is optional and will disable the automatic lookup.
```yaml
sensor:
- platform: thinkingcleaner
host: 10.0.0.55
switch:
- platform: thinkingcleaner
host: 10.0.0.55
```

View File

@ -49,6 +49,7 @@ Supported models:
- EVW321B
- EVW32C-0N
- EVW3226@UPC
- DVW32CB
<div class='note info'>

View File

@ -80,6 +80,15 @@ Reset the Utility Meter. All sensors tracking tariffs will be reset to 0.
| ---------------------- | -------- | ----------- |
| `entity_id` | no | String or list of strings that point at `entity_id`s of utility_meters.
### Service `utility_meter.calibrate`
Calibrate the Utility Meter. Change the value of a given sensor.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | no | String or list of strings that point at `entity_id`s of utility_meters.
| `value` | no | Number | Value to calibrate the sensor with |
### Service `utility_meter.next_tariff`
Change the current tariff to the next in the list.

View File

@ -1,11 +1,12 @@
---
title: Vizio SmartCast TV
title: Vizio SmartCast
description: Instructions on how to integrate Vizio SmartCast TVs and sound bars into Home Assistant.
ha_category:
- Media Player
ha_release: 0.49
ha_iot_class: Local Polling
ha_config_flow: true
ha_quality_scale: platinum
ha_codeowners:
- '@raman325'
ha_quality_scale: platinum
@ -16,9 +17,15 @@ The `vizio` integration allows you to control [SmartCast](https://www.vizio.com/
## Find your device
### Install pyvizio locally
If `zeroconf` discovery is enabled, your device will get discovered automatically. To discover your device manually, read the subsections below.
> NOTE: If the `pip3` command is not found, try `pip` instead
### Install `pyvizio` locally
<div class='note'>
If the `pip3` command is not found, try `pip` instead
</div>
- To install, run `pip3 install pyvizio` in your terminal.
- If `pyvizio` is already installed locally, make sure you are using the latest version by running `pip3 install --upgrade pyvizio` in your terminal.
@ -26,17 +33,43 @@ The `vizio` integration allows you to control [SmartCast](https://www.vizio.com/
### Discover devices
Find your device using the following command:
```bash
$ pyvizio --ip=0 discover
pyvizio --ip=0 discover
```
and note its IP address and port number. If you have trouble finding a device you were expecting to, you can try increasing the discovery timeout period by adding the `--timeout` option (e.g., `pyvizio --ip=0 discover --timeout=10`).
Write down its IP address and port number. If you have trouble finding a device you were expecting to, you can try increasing the discovery timeout period by adding the `--timeout` option (e.g., `pyvizio --ip=0 discover --timeout=10`).
## Pairing
Before adding your device to Home Assistant, you may need to pair it manually. In particular, it is unclear how a sound bar would notify you of a valid auth token. In this case, it might be best to first skip the pairing process entirely, specify a `device_class` of `speaker` in your configuration, and try interacting with the entity to see if you have any success. If the media player controls aren't working, and if specifying different ports as mentioned above doesn't work, you will need to find a way to obtain the auth token during this process.
This integration requires an access token in order to communicate with TVs (speakers do not need an access token). An access token can be obtained by going through a pairing process, either manually, or through the HA frontend.
To obtain an auth token, follow these steps:
### Pair using the HA frontend
- **Using `configuration.yaml`:** If you have a `vizio` entry in `configuration.yaml` but don't provide an access token value in your configuration, after you initialize HomeAssistant, you will see a Vizio SmartCast device ready to be configured. When you open the configuration window, you will be guided through the pairing process. While HA will store the access token for the life of your `vizio` entity, it is a good idea to note the access token value displayed in the window and add it to your `configuration.yaml`. This will ensure that you will not have to go through the pairing process again in the future if you decide to rebuild your HA instance.
- **Using discovery or manual setup through the Integrations menu:** To initiate the pairing process, submit your initial configuration with an empty Access Token value.
### Pair manually using the CLI
The following script, written by [JeffLIrion](https://github.com/JeffLIrion) can be run to obtain an auth token. You will need to replace `<IP>` with your IP and `<PORT>` (which is typically 7345 or 9000).
```bash
#!/bin/bash
VIZIO_IP="<IP>"
VIZIO_PORT="<PORT>"
curl -k -H "Content-Type: application/json" -X PUT -d '{"DEVICE_ID":"pyvizio","DEVICE_NAME":"Python Vizio"}' https://${VIZIO_IP}:${VIZIO_PORT}/pairing/start
read -p "PIN: " VIZIO_PIN
read -p "PAIRING_REQ_TOKEN: " VIZIO_PAIRING_REQ_TOKEN
curl -k -H "Content-Type: application/json" -X PUT -d '{"DEVICE_ID": "pyvizio","CHALLENGE_TYPE": 1,"RESPONSE_VALUE": "'"${VIZIO_PIN}"'","PAIRING_REQ_TOKEN": '"${VIZIO_PAIRING_REQ_TOKEN}"'}' https://${VIZIO_IP}:${VIZIO_PORT}/pairing/pair
```
### Pair manually using `pyvizio`
To obtain an auth token manually, follow these steps:
Make sure that your device is on before continuing.
@ -48,20 +81,20 @@ Make sure that your device is on before continuing.
Enter the following command to initiate pairing:
```bash
$ pyvizio --ip={ip:port} --device_type={device_type} pair
pyvizio --ip={ip:port} --device_type={device_type} pair
```
Initiation will show you two different values:
| Value | Description |
| :-------------- | :-------------------------------------------------- |
| Challenge type | Usually it should be `"1"` |
| Challenge token | Token required to finalize pairing in the next step |
| Value | Description |
| :-------------- | :------------------------------------------------------------------------------------------------------ |
| Challenge type | Usually, it should be `"1"`. |
| Challenge token | Token required to finalize pairing in the next step |
At this point, a PIN code should be displayed at the top of your TV. With all these values, you can now finish pairing:
```bash
$ pyvizio --ip={ip:port} --device_type={device_type} pair-finish --token={challenge_token} --pin={pin} --ch_type={challenge_type}
pyvizio --ip={ip:port} --device_type={device_type} pair-finish --token={challenge_token} --pin={pin} --ch_type={challenge_type}
```
You will need the authentication token returned by this command to configure Home Assistant.
@ -88,11 +121,11 @@ name:
type: string
default: Vizio SmartCast
access_token:
description: Authentication token you received in the last step of the pairing process (if applicable).
description: Authentication token you received in the last step of the pairing process. This token is only needed if your device is a TV, and you can opt not to provide it in your configuration and instead go through the pairing process via the HA frontend.
required: false
type: string
device_class:
description: The class of your device. Valid options are `tv` or `speaker`
description: The class of your device. Valid options are `tv` or `speaker`.
required: false
type: string
default: tv
@ -101,8 +134,65 @@ volume_step:
required: false
type: integer
default: 1
apps:
description: Use this section to define app specific settings (only applicable for Vizio Smart TVs).
required: false
type: map
keys:
include:
description: List of apps to include in the source list. Cannot be used in combination with `exclude`.
required: exclusive
type: list
exclude:
description: List of apps to exclude from the source list. Cannot be used in combination with `include`.
required: exclusive
type: list
additional_configs:
description: List of manually configured apps that aren't available in the default app list provided by the integration.
required: false
type: map
keys:
name:
description: The name of the app that will be used in the source list and used to launch the app.
required: true
type: string
config:
description: The app configuration that will be used to detect and launch the app.
required: true
type: map
keys:
APP_ID:
description: See [Obtaining an app configuration](#obtaining-an-app-configuration) section below.
required: true
type: string
NAME_SPACE:
description: See [Obtaining an app configuration](#obtaining-an-app-configuration) section below.
required: true
type: integer
MESSAGE:
description: See [Obtaining an app configuration](#obtaining-an-app-configuration) section below.
required: false
type: string
default: null
{% endconfiguration %}
### Obtaining an app configuration
If there is an app you want to be able to launch from Home Assistant that isn't detected by default, you will need to specify the app configuration in `configuration.yaml`. In order to determine the values to specify for each configuration parameter, launch the app you want to configure on your device, and run the following command (requires `pyvizio` to be installed locally):
```bash
pyvizio --ip={IP:PORT} get-current-app-config
```
`pyvizio` will return the value of the three parameters (`APP_ID`, `NAME_SPACE`, `MESSAGE`) for the currently running app which you can then include in your configuration.
### Obtaining a list of valid apps to include or exclude
To get the list of apps that can be excluded or included, run the following command (requires `pyvizio` to be installed locally):
```bash
pyvizio --ip=0 get-apps-list
```
## Notes and limitations
### Turning device on
@ -112,7 +202,3 @@ If the `Power Mode` of your device is set to `Eco Mode`, turning the device on w
### Changing tracks
Changing tracks works like switching channels. If the current input is anything other than regular TV, this command might not do anything.
### Sources
The source list shows all external devices connected to the Vizio device through HDMI, plus a list of internal devices (TV mode, Chromecast, etc.)

View File

@ -1,56 +0,0 @@
---
title: Weblink
description: Instructions on how to setup Links within Home Assistant.
logo: home-assistant.png
ha_category:
- Front End
ha_release: 0.13
ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'
ha_domain: weblink
---
The `weblink` integration allows you to display links in the Home Assistant frontend.
<div class='note'>
The below documentation applies to the classic "States" user interface.
The `weblink` integration has been **deprecated** and pending for removal in Home Assistant 0.107.0.
Starting with Home Assistant 0.86, Lovelace is the new default interface. For information on configuring weblinks in Lovelace please follow [these instructions](/lovelace/entities/#weblink) instead.
</div>
## Configuration
To use this integration in your installation, add something like the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
weblink:
entities:
- name: Router
url: http://192.168.1.1/
- name: Home Assistant
url: https://www.home-assistant.io
- name: Grafana
url: /grafana
```
{% configuration %}
name:
description: Text for the link.
required: true
type: string
url:
description: The URL (absolute URL or absolute path) for the link.
required: true
type: string
icon:
description: Icon for entry.
required: false
type: icon
{% endconfiguration %}
Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`.

View File

@ -11,15 +11,14 @@ ha_codeowners:
ha_domain: workday
---
The `workday` binary sensor indicates, whether the current day is a workday or not. It allows specifying, which days of the week counts as workdays and also
uses the Python module [holidays](https://pypi.python.org/pypi/holidays) to incorporate information about region-specific public holidays.
The `workday` binary sensor indicates, whether the current day is a workday or not. It allows specifying, which days of the week will count as workdays and also
uses the Python module [holidays](https://pypi.python.org/pypi/holidays) to incorporate information about region-specific public holidays.
## Setup
Check the [country list](https://github.com/dr-prodigy/python-holidays#available-countries) for available province.
## Configuration
To enable the `workday` sensor in your installation, add the following to your `configuration.yaml` file:
```yaml
@ -71,26 +70,40 @@ The keyword `holiday` is used for public holidays identified by the holidays mod
<div class='note warning'>
If you use the sensor for Norway (`NO`) you need to wrap `NO` in quotes or write the name in full.
Otherwise the value is evaluated as `false`.
Otherwise, the value is evaluated as `false`.
If you use the sensor for Canada (`CA`) with Ontario (`ON`) as `province:` then you need to wrap `ON` in quotes.
Otherwise the value is evaluated as `true` (check the YAML documentation for further details) and the sensor will not work.
Otherwise, the value is evaluated as `true` (check the YAML documentation for further details) and the sensor will not work.
One other thing to watch is how the `holiday` keyword is used. Your first instinct might be to add it to the `exclude` configuration, thinking that it means to skip the holidays. Actually it means to exclude the days in the holidays list from the workdays. So when you exclude `holiday` and a workday falls on that day, then that workday is excluded. Meaning the sensor will be off. If you want the workday flagged without regarding holidays, make sure that there is something in your `Excludes` configuration other than `holiday`.
</div>
## Full example
## Full examples
This examples excludes Saturdays, Sundays and holiday. Two custom holidays are added.
This example excludes Saturdays, Sundays but not a holiday. Two custom holidays are added.
Even though `sat` and `sun` was not included in `workdays` and in theory, it would not need to be excluded, but because we do not what holidays excluded, we add them so exclude would not default and skip the holidays. Therefore as the note above, 2/17/2020 in the US would still be a workday.
```yaml
# Example configuration.yaml entry
# Example 1 configuration.yaml entry
binary_sensor:
- platform: workday
country: US
workdays: [mon, tue, wed, thu, fri]
excludes: [sat, sun]
```
This example excludes Saturdays, Sundays and holidays. Two custom holidays are added.
The date February 24th, 2020 is a Monday but will be excluded because it was added to the `add_holiday` configuration.
```yaml
# Example 2 configuration.yaml entry
binary_sensor:
- platform: workday
country: DE
workdays: [mon, wed, fri]
excludes: [sat, sun, holiday]
add_holidays:
- '2018-12-26'
- '2018-12-31'
- '2020-02-24'
```
## Automation example

View File

@ -1,35 +0,0 @@
---
title: Xfinity Gateway
description: Instructions on how to integrate Xfinity Gateways into Home Assistant.
ha_category:
- Presence Detection
ha_release: 0.9
ha_iot_class: Local Polling
ha_codeowners:
- '@cisasteelersfan'
ha_domain: xfinity
---
The `xfinity` device tracker platform offers presence detection by looking at connected devices to an Xfinity gateway.
It was tested with an Xfinity Gateway model TG1682G.
## Configuration
To use an Xfinity Gateway in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
device_tracker:
- platform: xfinity
```
{% configuration %}
host:
description: The IP address of your router, e.g., `192.168.1.1`.
required: false
type: string
default: 10.0.0.1
{% endconfiguration %}
See the [device tracker integration page](/integrations/device_tracker/) for instructions how to configure the people to be tracked.

View File

@ -153,6 +153,10 @@ type:
required: true
description: cast
type: string
dashboard:
required: false
description: Path to the dashboard of the view that needs to be shown.
type: string
view:
required: true
description: Path to the view that needs to be shown.

View File

@ -165,6 +165,11 @@ entity:
required: true
description: Entity id
type: string
attribute:
required: false
description: If present, the corresponding attribute will be shown,
instead of the entity's state
type: string
prefix:
required: false
description: Text before entity state.
@ -456,6 +461,13 @@ elements:
style:
top: 82%
left: 79%
- type: state-label
entity: climate.kitchen
attribute: current_temperature
suffix: "°C"
style:
top: 33%
left: 15%
- type: service-button
title: Turn lights off
style:

View File

@ -13,7 +13,7 @@ The focus of 0.13 was on test coverage, big cheers to [@rmkraus] for his hard wo
<p class='img'>
<img src='/images/blog/2016-02-release-13/input_select__input_boolean__weblink.png'>
Examples of the new [input_select] and [weblink] components.
Examples of the new [input_select] and weblink components.
</p>
Not only did we gain a lot of test coverage, we also attracted a lot of new developers that contributed a variety of components and platforms:
@ -32,7 +32,7 @@ Not only did we gain a lot of test coverage, we also attracted a lot of new deve
- Component: Added support for [Bloomsky Weather Station] ([@haraldnagel])
- Component: Added support for pushing stats to [graphite] ([@kk7ds])
- Component: Added support for [SCSGate] devices ([@flavio])
- Component: Added [weblink] component to link to other pages ([@MagnusKnutas])
- Component: Added weblink component to link to other pages ([@MagnusKnutas])
- Component: Support for Ubiquiti mFI [sensors][mfi.sensor] and [switchable devices][mfi.switch] added ([@kk7ds])
- Alarm control panel: Added [Caddx/GE/Interlogix NetworX][nx584] support ([@kk7ds])
- Camera: [MJPEG] camera's will now show real stream instead of a 2fps stream ([@stjohnjohnson])
@ -92,7 +92,6 @@ Not only did we gain a lot of test coverage, we also attracted a lot of new deve
[Bloomsky Weather Station]: /integrations/bloomsky/
[graphite]: /integrations/graphite/
[SCSGate]: /integrations/scsgate/
[weblink]: /integrations/weblink/
[mfi.switch]: /integrations/mfi#switch
[mfi.sensor]: /integrations/mfi#sensor
[nx584]: /integrations/nx584

View File

@ -15,7 +15,7 @@ You'll need two key software packages, besides Home Assistant. The first is [Mop
Finally, you also need a player to control Mopidy. Any MPD-compatible player will work, and there are several [Mopidy-only web-based options](https://docs.mopidy.com/en/latest/ext/web/#ext-web) available. On Android, [Remotedy](https://play.google.com/store/apps/details?id=se.anil.remotedy) is particularly nice since you can access multiple Mopidy instances in one place.
Home Assistant will provide device status, and volume control for each room. If you want to play music in all your rooms (on all your clients), access the server instance of Mopidy. If you want to play music only in a specific room, access that specific Mopidy instance. If you're using a web UI for Mopidy, you can add links to each instance in Home Assistant with the [weblink] component.
Home Assistant will provide device status, and volume control for each room. If you want to play music in all your rooms (on all your clients), access the server instance of Mopidy. If you want to play music only in a specific room, access that specific Mopidy instance. If you're using a web UI for Mopidy, you can add links to each instance in Home Assistant with the weblink component.
<p class='img'>
<img src='/images/blog/2016-02-snapcast/diagram.png'>
@ -134,6 +134,5 @@ weblink:
url: xxxx
```
[weblink]: /integrations/weblink/
[snapcast]: /integrations/snapcast
[mpd]: /integrations/mpd

View File

@ -61,7 +61,7 @@ Experiencing issues introduced by this release? Please report them in our [issue
## Breaking Changes
- history_graph component: If your component used `history.get_significant_states` function then you need to adjust the string `entity_id` parameter has been changed to a list of strings `entity_ids` parameter. ([@andrey-git] - [#9472]) ([history_graph docs]) (breaking change)
- history_graph component: If your component used `history.get_significant_states` function then you need to adjust the string `entity_id` parameter has been changed to a list of strings `entity_ids` parameter. ([@andrey-git] - [#9472]) (breaking change)
- UPNP component: The `external_port` configuration option was removed. ([@balloob] - [#9560]) ([upnp docs]) (breaking change)
- New Wink services: pair new device, rename, delete and add new lock key code. All device attributes that are multi-words are now separated by "_" and no longer " ". ([@w1ll1am23] - [#9303]) ([wink docs]) ([binary_sensor.wink docs]) ([lock.wink docs]) (breaking change)
- TP-Link Switch: Attribute names now uses underscores and unnecessary capitalization was removed. ([@djchen] - [#9607]) ([switch.tplink docs]) (breaking change)
@ -383,7 +383,6 @@ Experiencing issues introduced by this release? Please report them in our [issue
[forum]: https://community.home-assistant.io/
[issue]: https://github.com/home-assistant/home-assistant/issues
[discord]: https://discord.gg/c5DvZ4e
[history_graph docs]: /integrations/history_graph/
[#9754]: https://github.com/home-assistant/home-assistant/pull/9754
[#9776]: https://github.com/home-assistant/home-assistant/pull/9776
[#9785]: https://github.com/home-assistant/home-assistant/pull/9785

View File

@ -127,7 +127,7 @@ Experiencing issues introduced by this release? Please report them in our [issue
- Map media_stop to idle state ([@akloeckner] - [#11819])
- Adds allergy/disease sensor platform from Pollen.com ([@bachya] - [#11573]) ([sensor.pollen docs]) (new-platform)
- check_config.py: allow colorlog==3.1. ([@dotlambda] - [#11927])
- Weblink - Allow relative urls in config ([@ReneNulschDE] - [#11808]) ([weblink docs])
- Weblink - Allow relative urls in config ([@ReneNulschDE] - [#11808])
- Panel_Iframe - Allow relative urls in config ([@ReneNulschDE] - [#11832]) ([panel_iframe docs])
- Python 3.6 invalid escape sequence deprecation fixes ([@scop] - [#11941])
- tests: Use assertEqual instead of deprecated assertEquals ([@scop] - [#11943])
@ -622,7 +622,6 @@ Experiencing issues introduced by this release? Please report them in our [issue
[wake_on_lan docs]: /integrations/wake_on_lan/
[waterfurnace docs]: /integrations/waterfurnace/
[weather.openweathermap docs]: /integrations/openweathermap#weather
[weblink docs]: /integrations/weblink/
[websocket_api docs]: /integrations/websocket_api/
[zha docs]: /integrations/zha/
[zha.const docs]: /integrations/zha.const/

View File

@ -139,7 +139,7 @@ Experiencing issues introduced by this release? Please report them in our [issue
- check_config check bootstrap errors ([@kellerza] - [#12291])
- Attempt fixing flakiness of check config test ([@balloob] - [#12283])
- Fix MQTT retained message not being re-dispatched ([@OttoWinter] - [#12004]) ([mqtt docs])
- Fix config error for FTP links, add test ([@ReneNulschDE] - [#12294]) ([weblink docs])
- Fix config error for FTP links, add test ([@ReneNulschDE] - [#12294])
- Fix Panel_IFrame - FTP URL not allowed in 0.63 ([@ReneNulschDE] - [#12295]) ([panel_iframe docs])
- Upgrade pylint to 1.8.2 ([@OttoWinter] - [#12274])
- Move HassIntent handler code into helpers/intent ([@tschmidty69] - [#12181]) ([conversation docs])
@ -580,7 +580,6 @@ Experiencing issues introduced by this release? Please report them in our [issue
[vacuum.xiaomi_miio docs]: /integrations/vacuum.xiaomi_miio/
[vera docs]: /integrations/vera/
[weather.buienradar docs]: /integrations/buienradar
[weblink docs]: /integrations/weblink/
[xiaomi_aqara docs]: /integrations/xiaomi_aqara/
[zha docs]: /integrations/zha/
[#12635]: https://github.com/home-assistant/home-assistant/pull/12635

View File

@ -234,9 +234,9 @@ Experiencing issues introduced by this release? Please report them in our [issue
Please ensure your configuration and automations do not use these anymore. - ([@frenck] - [#30831]) ([group docs])
- __Weblink__ *Deprecated* - The weblink integration is now deprecated and pending removal in Home Assistant 0.107.0. This integration only works with the old states UI. - ([@frenck] - [#30834]) ([weblink docs])
- __Weblink__ *Deprecated* - The weblink integration is now deprecated and pending removal in Home Assistant 0.107.0. This integration only works with the old states UI. - ([@frenck] - [#30834])
- __History Graph__ *Deprecated* - The `history_graph` integration has been deprecated and pending for removal in Home Assistant 0.107.0. This integration was used for the old states UI. Going ahead, please ensure this configuration option is not used in your configuration. - ([@frenck] - [#30835]) ([history_graph docs])
- __History Graph__ *Deprecated* - The `history_graph` integration has been deprecated and pending for removal in Home Assistant 0.107.0. This integration was used for the old states UI. Going ahead, please ensure this configuration option is not used in your configuration. - ([@frenck] - [#30835])
- __Neato__ - This change adds a neato boundary name to the state if it exists, requiring to potentially update automations. - ([@Olen] - [#29915]) ([neato docs])
@ -774,9 +774,9 @@ Hats over your heart for these shuttered integrations. Pour one out for:
- Use collection helpers for input_datetime component ([@Adminiuga] - [#30815]) ([input_datetime docs])
- Handle location API being exhausted ([@balloob] - [#30798])
- Deprecate states UI options in group integration ([@frenck] - [#30831]) ([group docs]) (breaking change)
- Deprecate weblink integration ([@frenck] - [#30834]) ([weblink docs]) (breaking change)
- Deprecate weblink integration ([@frenck] - [#30834]) (breaking change)
- Deprecate hide_if_away from device_tracker ([@frenck] - [#30833]) ([device_tracker docs]) (breaking change)
- Deprecate history_graph integration ([@frenck] - [#30835]) ([history_graph docs]) (breaking change)
- Deprecate history_graph integration ([@frenck] - [#30835]) (breaking change)
- Remove unused import ([@dshokouhi] - [#30858]) ([ring docs])
- Bump pyvizio version to 0.1.1 ([@raman325] - [#30867]) ([vizio docs])
- Update pyatmo to 3.2.2 and add available attribute ([@cgtobi] - [#30882]) ([netatmo docs])
@ -1458,7 +1458,6 @@ Hats over your heart for these shuttered integrations. Pour one out for:
[group docs]: /integrations/group/
[hassio docs]: /integrations/hassio/
[hisense_aehw4a1 docs]: /integrations/hisense_aehw4a1/
[history_graph docs]: /integrations/history_graph/
[hlk_sw16 docs]: /integrations/hlk_sw16/
[homeassistant docs]: /integrations/homeassistant/
[homekit docs]: /integrations/homekit/
@ -1551,7 +1550,6 @@ Hats over your heart for these shuttered integrations. Pour one out for:
[versasense docs]: /integrations/versasense/
[vicare docs]: /integrations/vicare/
[vizio docs]: /integrations/vizio/
[weblink docs]: /integrations/weblink/
[webostv docs]: /integrations/webostv/
[wemo docs]: /integrations/wemo/
[withings docs]: /integrations/withings/

File diff suppressed because it is too large Load Diff

View File

@ -373,7 +373,6 @@
/components/device_tracker.unifi_direct /integrations/unifi_direct
/components/device_tracker.upc_connect /integrations/upc_connect
/components/device_tracker.volvooncall /integrations/volvooncall
/components/device_tracker.xfinity /integrations/xfinity
/components/device_tracker.xiaomi_miio /integrations/xiaomi_miio
/components/fan.comfoconnect /integrations/comfoconnect
/components/fan.dyson /integrations/dyson#fan
@ -1420,7 +1419,6 @@
/components/hikvision /integrations/hikvision
/components/hikvisioncam /integrations/hikvisioncam
/components/history /integrations/history
/components/history_graph /integrations/history_graph
/components/history_stats /integrations/history_stats
/components/hitron_coda /integrations/hitron_coda
/components/hive /integrations/hive
@ -1989,7 +1987,6 @@
/components/weather.darksky /integrations/weather.darksky
/components/webhook /integrations/webhook
/components/webhooks /integrations/telegram_webhooks
/components/weblink /integrations/weblink
/components/webostv /integrations/webostv
/components/websocket_api /integrations/websocket_api
/components/wemo /integrations/wemo
@ -2008,7 +2005,6 @@
/components/x10 /integrations/x10
/components/xbox_live /integrations/xbox_live
/components/xeoma /integrations/xeoma
/components/xfinity /integrations/xfinity
/components/xiaomi /integrations/xiaomi
/components/xiaomi_aqara /integrations/xiaomi_aqara
/components/xiaomi_miio /integrations/xiaomi_miio

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -23,8 +23,103 @@ When you make changes to `ui-lovelace.yaml`, you don't have to restart Home Assi
To revert back to using the UI to edit your Lovelace interface, remove the `lovelace` section from your `configuration.yaml` and copy the contents of your `ui-lovelace.yaml` into the raw configuration section of Home Assistant and restart.
### Advanced configuration
As a super minimal example, here's the bare minimum you will need for this to work:
You can define multiple dashboards that all have their own YAML file, and add custom resources that are shared by all dashboards.
The key of the dashboard is used as the URL, this needs to contain a hyphen (`-`).
```yaml
lovelace:
mode: yaml
# Include external resources only add when mode is yaml, otherwise manage in the resources in the lovelace configuration panel.
resources:
- url: /local/my-custom-card.js
type: module
- url: /local/my-webfont.css
type: css
# Add more dashboards
dashboards:
lovelace-generated: # Needs to contain a hyphen (-)
mode: yaml
filename: notexist.yaml
title: Generated
icon: mdi:tools
show_in_sidebar: true
require_admin: true
lovelace-hidden:
mode: yaml
title: hidden
show_in_sidebar: false
filename: hidden.yaml
```
You can also add YAML dashboards when your main dashboard is UI configurated:
```yaml
lovelace:
mode: storage
# Add yaml dashboards
dashboards:
yaml:
mode: yaml
title: YAML
icon: mdi:script
show_in_sidebar: true
filename: lovelace.yaml
```
{% configuration Lovelace %}
mode:
required: true
description: "In what mode should the main Lovelace panel be, `yaml` or `storage` (UI managed)."
type: string
resources:
required: false
description: "List of resources that should be loaded when you use Lovelace. Only use this when mode is `yaml`."
type: list
keys:
url:
required: true
description: The URL of the resource to load.
type: string
type:
required: true
description: "The type of resource, this should be either `module` for a JavaScript module or `css` for a StyleSheet."
type: string
dashboards:
required: false
description: Additional Lovelace YAML dashboards. The key is used for the URL and should contain a hyphen (`-`)
type: map
keys:
mode:
required: true
description: "The mode of the dashboard, this should always be `yaml`. Dashboards in `storage` mode can be created in the Lovelace configuration panel."
type: string
filename:
required: true
description: "The file in your `config` directory where the Lovelace configuration for this panel is."
type: string
title:
required: true
description: "The title of the dashboard, will be used in the sidebar."
type: string
icon:
required: false
description: The icon to show in the sidebar.
type: string
show_in_sidebar:
required: false
description: Should this view be shown in the sidebar.
type: boolean
default: true
require_admin:
required: false
description: Should this view be only accessible for admin users.
type: boolean
default: false
{% endconfiguration %}
As a super minimal example of a Lovelace dashboard config, here's the bare minimum you will need for it to work:
```yaml
title: My Awesome Home
@ -39,17 +134,10 @@ views:
Welcome to your **Lovelace UI**.
```
A slightly more advanced example shows additional elements which can be used to customize your frontend.
A slightly more advanced example:
```yaml
title: My Awesome Home
# Include external resources
resources:
- url: /local/my-custom-card.js
type: js
- url: /local/my-webfont.css
type: css
views:
# View tab title.
- title: Example