Merge pull request #15451 from home-assistant/rc

This commit is contained in:
Franck Nijhof 2020-10-28 20:04:13 +01:00 committed by GitHub
commit 50f003a26f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
134 changed files with 4367 additions and 1232 deletions

View File

@ -12,6 +12,7 @@ source/_integrations/abode.markdown @shred86
source/_integrations/accuweather.markdown @bieniu
source/_integrations/acmeda.markdown @atmurray
source/_integrations/adguard.markdown @frenck
source/_integrations/advantage_air.markdown @Bre77
source/_integrations/agent_dvr.markdown @ispysoftware
source/_integrations/airly.markdown @bieniu
source/_integrations/airvisual.markdown @bachya
@ -55,7 +56,6 @@ source/_integrations/blebox.markdown @gadgetmobile
source/_integrations/blink.markdown @fronzbot
source/_integrations/bmp280.markdown @belidzs
source/_integrations/bmw_connected_drive.markdown @gerard33 @rikroe
source/_integrations/bom.markdown @maddenp
source/_integrations/bond.markdown @prystupa
source/_integrations/braviatv.markdown @bieniu
source/_integrations/broadlink.markdown @danielhiversen @felipediel
@ -71,7 +71,7 @@ source/_integrations/cisco_ios.markdown @fbradyirl
source/_integrations/cisco_mobility_express.markdown @fbradyirl
source/_integrations/cisco_webex_teams.markdown @fbradyirl
source/_integrations/cloud.markdown @home-assistant/cloud
source/_integrations/cloudflare.markdown @ludeeus
source/_integrations/cloudflare.markdown @ludeeus @ctalkington
source/_integrations/comfoconnect.markdown @michaelarnauts
source/_integrations/config.markdown @home-assistant/core
source/_integrations/configurator.markdown @home-assistant/core
@ -156,8 +156,8 @@ source/_integrations/goalzero.markdown @tkdrob
source/_integrations/gogogate2.markdown @vangorra
source/_integrations/google_assistant.markdown @home-assistant/cloud
source/_integrations/google_cloud.markdown @lufton
source/_integrations/google_translate.markdown @awarecan
source/_integrations/gpsd.markdown @fabaff
source/_integrations/gree.markdown @cmroche
source/_integrations/greeneye_monitor.markdown @jkeljo
source/_integrations/griddy.markdown @bdraco
source/_integrations/group.markdown @home-assistant/core
@ -268,7 +268,7 @@ source/_integrations/neato.markdown @dshokouhi @Santobert
source/_integrations/nederlandse_spoorwegen.markdown @YarmoM
source/_integrations/nello.markdown @pschmitt
source/_integrations/ness_alarm.markdown @nickw444
source/_integrations/nest.markdown @awarecan
source/_integrations/nest.markdown @awarecan @allenporter
source/_integrations/netatmo.markdown @cgtobi
source/_integrations/netdata.markdown @fabaff
source/_integrations/nexia.markdown @ryannazaretian @bdraco
@ -296,7 +296,7 @@ source/_integrations/ohmconnect.markdown @robbiet480
source/_integrations/ombi.markdown @larssont
source/_integrations/omnilogic.markdown @oliver84 @djtimca @gentoosu
source/_integrations/onboarding.markdown @home-assistant/core
source/_integrations/onewire.markdown @garbled1
source/_integrations/onewire.markdown @garbled1 @epenet
source/_integrations/onvif.markdown @hunterjm
source/_integrations/openerz.markdown @misialq
source/_integrations/opengarage.markdown @danielhiversen
@ -308,7 +308,6 @@ source/_integrations/orangepi_gpio.markdown @pascallj
source/_integrations/oru.markdown @bvlaicu
source/_integrations/ovo_energy.markdown @timmo001
source/_integrations/ozw.markdown @cgarwood @marcelveldt @MartinHjelmare
source/_integrations/panasonic_viera.markdown @joogps
source/_integrations/panel_custom.markdown @home-assistant/frontend
source/_integrations/panel_iframe.markdown @home-assistant/frontend
source/_integrations/pcal9535a.markdown @Shulyaka
@ -325,6 +324,7 @@ source/_integrations/plum_lightpad.markdown @ColinHarrington @prystupa
source/_integrations/point.markdown @fredrike
source/_integrations/poolsense.markdown @haemishkyd
source/_integrations/powerwall.markdown @bdraco @jrester
source/_integrations/profiler.markdown @bdraco
source/_integrations/progettihwsw.markdown @ardaseremet
source/_integrations/prometheus.markdown @knyar
source/_integrations/proxmoxve.markdown @k4ds3 @jhollowe
@ -346,7 +346,7 @@ source/_integrations/rainmachine.markdown @bachya
source/_integrations/random.markdown @fabaff
source/_integrations/rejseplanen.markdown @DarkFox
source/_integrations/repetier.markdown @MTrab
source/_integrations/rfxtrx.markdown @danielhiversen @elupus
source/_integrations/rfxtrx.markdown @danielhiversen @elupus @RobBie1221
source/_integrations/ring.markdown @balloob
source/_integrations/risco.markdown @OnFreund
source/_integrations/rmvtransport.markdown @cgtobi
@ -354,6 +354,7 @@ source/_integrations/roku.markdown @ctalkington
source/_integrations/roomba.markdown @pschmitt @cyr-ius @shenxn
source/_integrations/roon.markdown @pavoni
source/_integrations/rpi_power.markdown @shenxn @swetoast
source/_integrations/ruckus_unleashed.markdown @gabe565
source/_integrations/safe_mode.markdown @home-assistant/core
source/_integrations/saj.markdown @fredericvl
source/_integrations/salt.markdown @bjornorri
@ -427,6 +428,7 @@ source/_integrations/tado.markdown @michaelarnauts @bdraco
source/_integrations/tag.markdown @balloob @dmulcahey
source/_integrations/tahoma.markdown @philklei
source/_integrations/tankerkoenig.markdown @guillempages
source/_integrations/tasmota.markdown @emontnemery
source/_integrations/tautulli.markdown @ludeeus
source/_integrations/tellduslive.markdown @fredrike
source/_integrations/template.markdown @PhracturedBlue @tetienne
@ -441,7 +443,7 @@ source/_integrations/tmb.markdown @alemuro
source/_integrations/todoist.markdown @boralyl
source/_integrations/toon.markdown @frenck
source/_integrations/totalconnect.markdown @austinmroczek
source/_integrations/tplink.markdown @rytilahti
source/_integrations/tplink.markdown @rytilahti @thegardenmonkey
source/_integrations/traccar.markdown @ludeeus
source/_integrations/tradfri.markdown @ggravlingen
source/_integrations/trafikverket_train.markdown @endor-force
@ -486,6 +488,7 @@ source/_integrations/wled.markdown @frenck
source/_integrations/wolflink.markdown @adamkrol93
source/_integrations/workday.markdown @fabaff
source/_integrations/worldclock.markdown @fabaff
source/_integrations/xbox.markdown @hunterjm
source/_integrations/xbox_live.markdown @MartinHjelmare
source/_integrations/xiaomi_aqara.markdown @danielhiversen @syssi
source/_integrations/xiaomi_miio.markdown @rytilahti @syssi @starkillerOG
@ -497,7 +500,7 @@ source/_integrations/yeelight.markdown @rytilahti @zewelor @shenxn
source/_integrations/yeelightsunflower.markdown @lindsaymarkward
source/_integrations/yessssms.markdown @flowolf
source/_integrations/yi.markdown @bachya
source/_integrations/zeroconf.markdown @Kane610
source/_integrations/zeroconf.markdown @bdraco
source/_integrations/zerproc.markdown @emlove
source/_integrations/zha.markdown @dmulcahey @adminiuga
source/_integrations/zodiac.markdown @JulienTant

View File

@ -99,9 +99,9 @@ social:
# Home Assistant release details
current_major_version: 0
current_minor_version: 116
current_patch_version: 4
date_released: 2020-10-15
current_minor_version: 117
current_patch_version: 0
date_released: 2020-10-28
# 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

@ -13,7 +13,7 @@ The following sections introduce all trigger types and further details to get st
### Event trigger
Fires when an event is being received. Events are the raw building blocks of Home Assistant. You can match events on just the event name or also require specific event data to be present.
Fires when an event is being received. Events are the raw building blocks of Home Assistant. You can match events on just the event name or also require specific event data or context to be present.
Events can be fired by integrations or via the API. There is no limitation to the types. A list of built-in events can be found [here](/docs/configuration/events/).
@ -25,6 +25,11 @@ automation:
# optional
event_data:
mood: happy
context:
user_id:
# any of these will match
- MY_USER_ID
- ANOTHER_USER_ID
```
### Home Assistant trigger

View File

@ -25,6 +25,7 @@ homeassistant:
media_dirs:
media: /media
recordings: /mnt/recordings
legacy_templates: false
```
NOTE: You will not be able to edit anything in Configuration -> General in the UI if you are using YAML configuration for any of the following: name, latitude, longitude, elevation, unit_system, temperature_unit, time_zone, external_url, internal_url.
@ -90,6 +91,11 @@ media_dirs:
description: A mapping of local media sources and their paths on disk.
required: false
type: map
legacy_templates:
description: Enable this option to restore pre-0.117 template rendering. Which renders all templates to string, instead of native types.
required: false
type: boolean
default: false
{% endconfiguration %}
## Reload Core Service

View File

@ -174,8 +174,10 @@ The same thing can also be expressed as a filter:
- `now()` returns a datetime object that represents the current time in your time zone.
- You can also use: `now().second`, `now().minute`, `now().hour`, `now().day`, `now().month`, `now().year`, `now().weekday()` and `now().isoweekday()` and other [`datetime`](https://docs.python.org/3.8/library/datetime.html#datetime.datetime) attributes and functions.
- Using `now()` will cause templates to be refreshed at the start of every new minute.
- `utcnow()` returns a datetime object of the current time in the UTC timezone.
- For specific values: `utcnow().second`, `utcnow().minute`, `utcnow().hour`, `utcnow().day`, `utcnow().month`, `utcnow().year`, `utcnow().weekday()` and `utcnow().isoweekday()`.
- Using `utcnow()` will cause templates to be refreshed at the start of every new minute.
- `as_timestamp()` converts datetime object or string to UNIX timestamp. This function also be used as a filter.
- `as_local()` converts datetime object to local time. This function also be used as a filter.
- `strptime(string, format)` parses a string based on a [format](https://docs.python.org/3.8/library/datetime.html#strftime-and-strptime-behavior) and returns a datetime object.
@ -460,10 +462,6 @@ To evaluate a response, go to **Developer Tools** -> **Template**, create your o
If your template uses an `entity_id` that begins with a number (example: `states.device_tracker.2008_gmc`) you must use a bracket syntax to avoid errors caused by rendering the `entity_id` improperly. In the example given, the correct syntax for the device tracker would be: `states.device_tracker['2008_gmc']`
### Templates without entities using `now()`
Note that templates that depend on time (`now()`) and do not use any entities will not be updated as it only happens on entity state changes. For more information and examples refer to [`template` sensor documentation](/integrations/template/#working-without-entities)
### Priority of operators
The default priority of operators is that the filter (`|`) has priority over everything except brackets. This means that:

View File

@ -0,0 +1,124 @@
---
title: "Quick Bar"
description: "Dialog for quickly accessing entities or running commands."
---
The "Quick Bar" allows you to quickly look up entities or run commands without needing to navigate away from your current view (Similar to the "quick open" feature in VS Code, Chrome Developer Tools, etc).
It can be launched from anywhere in the frontend using [hotkeys](#hotkeys).
<p class='img'>
<img src='/images/docs/quick-bar/quick-bar-demo.gif' alt='Quick Bar'>
Quick Bar for accessing entities and running commands
</p>
## Hotkeys
Type these from anywhere in the application to launch the dialog.
| Mode | Hotkey | Switch Modes
| ------------- | ------------- | ------------- |
| Entity Filter | `e` | Type `>` at start of input to switch to command palette.
| Command Palette| `c` | Remove `>` from start of input to switch to entity filter.
<div class='note'>
The application must have focus for the hotkey to register. If the dialog doesn't launch, try clicking into an empty part of the main content area of Home Assistant and type it again.
</div>
## Entity Filter
*Hotkey: `e`*
Similar to Configuration -> Entities, but more lightweight and accessible from anywhere in the frontend.
<p class='img'>
<img src='/images/docs/quick-bar/quick-bar-entity-filter.gif' alt='Quick Bar'>
Filter for entities in Quick Bar's entity filter mode
</p>
Once launched, start typing your entity id (or ["bits and pieces" of your entity id](#search-by-bits-and-pieces-rather-than-complete-substring)) to get back a filtered list of entities. Clicking on an entity (or hitting `enter` when the desired entity is highlighted) will open the "More Info" dialog for that entity.
This is helpful when, say, you are in the middle of writing an automation and need some quick insight about an entity but don't want to navigate away to Developer Tools.
## Command Palette
*Hotkey: `c`*
Run various commands from anywhere without having to navigate to another view.
<p class='img'>
<img src='/images/docs/quick-bar/quick-bar-command-mode.gif' alt='Quick Bar'>
Run commands in Quick Bar's "command palette"
</p>
### Currently-supported commands
Type | Available |
| ------------- | ------------- |
| Reload | All currently-supported "Reload {domain}" services.<br />*(E.g., "Reload Scripts")* |
| Server | Restart/Stop |
## Disabling Shortcuts
You can enable or disable all of Home Assistant's keyboard shortcuts by going to your User Profile and clicking the "Keyboard Shortcuts" toggle button.
<p class='img'>
<img src='/images/docs/quick-bar/disable-shortcuts-toggle.png' alt='Toggle for enabling or disabling keyboard shortcuts'>
Toggle button for enabling/disabling keyboard shortcuts added by Home Assistant.
</p>
## Tips
### Search by "bits and pieces" rather than an exact substring
We know something like "**light.ch**" should match "**light.ch**andelier". Similarly, "**telev**" should match "media_player.**telev**ision".
But with Quick Bar, "**lich**" would also match "**li**ght.**ch**andelier", and "**plyrtv**" would also match "media_**pl**a**y**e**r**.**t**ele**v**ision". It checks letter *sequences* rather than exact substrings.
One nice use-case for this is that you can quickly filter out an entire domain of entities with just a couple letters and a period. For example, "**li.**" will match any "**light.***" entities. Continuing with "li.ch" would bring up the chandelier right away.
### Filters work against friendly name too
If "light.hue_ceiling_light" has been named "Chandelier", you can type either "hue_ceil" or "chand" to find it.
### Use the enter key any time to open the top result in the list
As soon as the item you wanted shows up at the top of your filtered results, just hit "enter" to activate it -- no need to arrow down to the item, or click with your mouse.
### Use arrow keys to move around the list
When in the text field, use the down arrow `↓` to navigate down the item list. Hit `enter` to activate the currently-highlighted row.
When in the item list, use the up arrow `↑` to navigate up the item list, and to get back into the text field.
### Typing more letters will always add to your filter string
Say you've just used arrow keys to navigate half-way down the list, and want to add more text to your filter. You don't need to click back into the text field, just start typing new letters and they'll append to your filter.
## Troubleshooting
### Dialog doesn't launch using hotkeys
There are a few possible reasons why the quick bar dialog won't launch:
1. Your user is not an admin.
2. The application lost focus. Try clicking into the main content area of the application and typing the shortcut again.
3. You have disabled Keyboard Shortcuts in your User Profile settings.
4. Shortcut is marked by browser as non-overridable. Firefox does this with some shortcuts, for example. But this shouldn't be a problem with single-key shortcuts currently used by the Quick Bar.
5. Some other application or browser extension is using or overriding the shortcut. Try disabling the extension.
### A command is missing
The command list only shows commands that are available to you based on your user settings, and loaded integrations.
For example, if you don't have `automations:` in your config, then you won't see the "Reload Automations" command.
If "Advanced Mode" is turned off in User Settings, then any command related to advanced mode will not appear in the list.
If a command is missing that you feel is in error, please create an issue on GitHub.
### Shortcuts interfere with accessibility tools, browser extensions, or are otherwise annoying
You can [disable shortcuts](#disabling-shortcuts) in your User settings.
Please consider submitting an issue explaining why the shortcut was disruptive to you. Keyboard shortcuts are new to Home Assistant, and getting them right is a challenge for any Web application. We rely on user feedback to ensure the experience is minimally-disruptive.

View File

@ -131,6 +131,7 @@
<b>{% active_link /docs/tools/ Tools and Helpers %}</b>
<ul>
<li>{% active_link /docs/tools/dev-tools/ Developer Tools %}</li>
<li>{% active_link /docs/tools/quick-bar/ Quick Bar %}</li>
<li>{% active_link /docs/tools/hass/ hass %}</li>
<li>{% active_link /docs/tools/benchmark/ benchmark %}</li>
<li>{% active_link /docs/tools/check_config/ check_config %}</li>

View File

@ -0,0 +1,62 @@
---
title: Advantage Air
description: Instructions on how to integrate Advantage Air A/C controller into Home Assistant.
ha_category: Climate
ha_release: 0.117
ha_iot_class: Local Polling
ha_config_flow: true
ha_codeowners:
- '@Bre77'
ha_domain: advantage_air
ha_quality_scale: platinum
---
The Advantage Air integration allows you to control [Advantage Air](https://www.advantageair.com.au/) Air Conditioning controllers into Home Assistant.
## Configuration
The wall-mounted Android table running the [MyPlace](https://play.google.com/store/apps/details?id=com.air.advantage.myair5), [e-zone](https://play.google.com/store/apps/details?id=com.air.advantage.ezone), or [zone10e](https://play.google.com/store/apps/details?id=com.air.advantage.zone10) must have a static IP, which you will enter on the integrations page in Home Assistant.
Menu: **Configuration** -> **Integrations**.
Click on the `+` sign to add an integration and click on **Advantage Air** (use typeahead if necessary).
Enter the IP address, and leave the port as the default value.
After completing the configuration flow, the Advantage Air integration will dynamically add relevant entities for each Air Conditioning system and controlled zones.
## Entities
### Climate
The integration will create a climate entity for each air conditioning system found and for each zone that is temperature-controlled.
### Cover
The integration will create a cover entity for each zone that is not temperature controlled, allowing you to adjust the opening level manually from 0% to 100% in 5% increments.
### Sensor
The integration will create sensor entities for a variety of aspects:
- The air filter sensor shows if it needs to be replaced.
- Two sensor entities will be created for the 'time to on' and 'time to off' features. Use the `advantage_air.set_time_to` service to change these.
- Each zone that is temperature-controlled will have a sensor to show how open the damper is.
- Each zone with a wireless temperature or motion sensor will have a sensor that reports its wireless RSSI.
### Binary Sensor
The `advantage_air` binary sensor platform will create a binary sensor for each zone that has a motion sensor.
### Switch
The `advantage_air` switch platform will create a switch entity to toggle fresh air mode, if it is supported.
## Services
### Service `advantage_air.set_time_to`
Set the On/Off Timer using the relevant sensor entity.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | `sensor.[name]_time_to_on` or `sensor.[name]_time_to_off`
| `minutes` | no | Number of minutes between `0` and `720`.

View File

@ -2,7 +2,7 @@
title: Air Quality
description: Instructions on how to add air quality sensors with Home Assistant
ha_release: 0.85
ha_iot_class: ~
ha_iot_class:
ha_domain: air_quality
---

View File

@ -6,7 +6,7 @@ ha_category:
ha_release: 0.7.3
ha_quality_scale: internal
ha_domain: alarm_control_panel
ha_iot_class: ~
ha_iot_class:
---
Home Assistant can give you an interface which is similar to a classic alarm system.

View File

@ -77,7 +77,7 @@ panels:
required: false
type: string
value_template:
description: "Defines a template to set the state of the alarm panel. Only the states `armed_away`, `armed_home`, `armed_night`, `disarmed`, `pending`, `triggered` and `unavailable` are used."
description: "Defines a template to set the state of the alarm panel. Only the states `armed_away`, `armed_home`, `armed_night`, `arming`, `disarmed`, `pending`, `triggered` and `unavailable` are used."
required: false
type: template
disarm:
@ -108,7 +108,3 @@ panels:
If you are using the state of a integration that takes extra time to load, the Template Alarm Control Panel may get an `unknown` state during startup. This results in error messages in your log file until that integration has completed loading. If you use `is_state()` function in your template, you can avoid this situation.
For example, you would replace {% raw %}`{{ states.switch.source.state == 'on' }}`{% endraw %} with this equivalent that returns `true`/`false` and never gives an unknown result: {% raw %}`{{ is_state('switch.source', 'on') }}`{% endraw %}
### Working without entities
If you use a template that depends on the current time or some other non-deterministic result not sourced from entities, the template won't repeatedly update but will only update when the state of a referenced entity updates. For ways to deal with this issue, see [Working without entities](/integrations/binary_sensor.template/#working-without-entities) in the Template Binary Sensor integration.

View File

@ -4,7 +4,7 @@ description: This integration is responsible for providing the authentication en
ha_category:
- Other
ha_release: 0.73
ha_iot_class: ~
ha_iot_class:
ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'

View File

@ -7,7 +7,7 @@ ha_release: 0.7
ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'
ha_iot_class: ~
ha_iot_class:
ha_domain: automation
---

View File

@ -4,7 +4,7 @@ description: Instructions on how-to setup binary sensors with Home Assistant.
ha_category:
- Binary Sensor
ha_release: 0.9
ha_iot_class: ~
ha_iot_class:
ha_quality_scale: internal
ha_domain: binary_sensor
---

View File

@ -106,13 +106,6 @@ with this equivalent that returns `true`/`false` and never gives an unknown
result:
{% raw %}`{{ is_state('switch.source', 'on') }}`{% endraw %}
### Sensor state updates
The template engine works out what entities are used to trigger an update of the sensor and recalculates the result when one of those entities change.
If you use a template that depends on the current time or some other non-deterministic result not sourced from entities, create an interval-based
automation that calls the service `homeassistant.update_entity` for the sensor requiring updates. See the [example below](#working-without-entities).
## Examples
In this section you find some real-life examples of how to use this sensor.
@ -309,83 +302,16 @@ binary_sensor:
```
{% endraw %}
If the template accesses every state on the system or all states under a specific domain, a rate limit of one update per minute is applied. If the template only accesses specific states, receives update events for specifically referenced entities, or the `homeassistant.update_entity` service is used, no rate limit is applied.
### Working without entities
The `template` sensors are not limited to use attributes from other entities but can also work with [Home Assistant's template extensions](/docs/configuration/templating/#home-assistant-template-extensions). If the template includes some non-deterministic property such as time in its calculation, the result will not continually update, but will only update when some entity referenced by the template updates.
There's a couple of options to manage this issue. This first example creates a `sensor.time` from the [Time & Date](/integrations/time_date/) component which updates every minute, and the binary sensor is triggered by this updating. The binary sensor returns true if in the first half of the hour:
In the below example, re-renders are limited to once per second:
{% raw %}
```yaml
sensor:
- platform: time_date
display_options:
- 'time'
binary_sensor:
- platform: template
sensors:
half_hour:
value_template: '{{ (states("sensor.time")[3:] | int) < 30 }}'
has_sensor_unavailable_states:
value_template: '{{ states.sensor | selectattr('state', 'in', ['unavailable', 'unknown', 'none']) | list | count }}'
```
{% endraw %}
An alternative to this is to create an interval-based automation that calls the service `homeassistant.update_entity` for the entities requiring updates:
{% raw %}
```yaml
binary_sensor:
- platform: template
sensors:
half_hour:
value_template: '{{ now().minute < 30 }}'
automation:
- alias: 'Update half_hour'
trigger:
- platform: time_pattern
minutes: /30
action:
- service: homeassistant.update_entity
entity_id: binary_sensor.half_hour
```
{% endraw %}
In the case where the template should be updated every minute, just reading `states("sensor.time")` can achieve the desired result without the need to create an automation:
{% raw %}
```yaml
sensor:
- platform: time_date
display_options:
- 'time'
binary_sensor:
- platform: template
sensors:
minute_is_odd:
value_template: >-
{% set dummy = states("sensor.time") %}
{{ now().minute % 2 == 1 }}
```
{% endraw %}
A similar trick of ignoring the sensor value can be used with `states("sensor.date")` for templates that should update at midnight.
The `time_date` sensors are always true so here we use `and` to ignore the result in a more condensed way:
{% raw %}
```yaml
sensor:
- platform: time_date
display_options:
- 'date'
binary_sensor:
- platform: template
sensors:
weekend:
value_template: {{ states("sensor.date") and now().isoweekday() > 5 }}
```
{% endraw %}
If the template accesses every state on the system, a rate limit of one update per minute is applied. If the template accesses all states under a specific domain, a rate limit of one update per second is applied. If the template only accesses specific states, receives update events for specifically referenced entities, or the `homeassistant.update_entity` service is used, no rate limit is applied.

View File

@ -1,286 +0,0 @@
---
title: Australian Bureau of Meteorology (BOM)
description: Instructions on how to integrate Bureau of Meteorology Australia weather conditions into Home Assistant.
ha_category:
- Weather
- Sensor
- Camera
ha_release: 0.36
ha_iot_class: Cloud Polling
ha_domain: bom
ha_codeowners:
- '@maddenp'
---
The `bom` weather platform uses the [Australian Bureau of Meteorology (BOM)](http://www.bom.gov.au) as a source for current (half-hourly) meteorological data.
There is currently support for the following device types within Home Assistant:
- [Camera](#camera)
- [Sensor](#sensor)
## Configuration
To add the BOM weather platform to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
weather:
- platform: bom
```
{% configuration %}
name:
description: The name you would like to give to the weather station.
required: false
type: string
station:
description: "The station ID string. See the [`sensor.bom` documentation](#sensor) for details on how to find the ID of a station."
required: false
type: string
default: The closest station
{% endconfiguration %}
<div class='note'>
This platform is an alternative to the [`bom`](#sensor) sensor.
The weather platform is easier to configure but less customizable.
</div>
## Camera
The `bom` camera platform uses the [Australian Bureau of Meteorology (BOM)](http://www.bom.gov.au) [radar web service](http://www.bom.gov.au/australia/radar/) as a source to generate an animated radar image.
To add the BOM camera to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
camera:
- platform: bom
location: YOUR_LOCATION
```
See below for a list of valid `location` values, and subsitute one for `YOUR_LOCATION`.
{% configuration %}
location:
description: Required unless `id` is specified. See below for a list of valid locations.
required: true
type: string
name:
description: Allows you to override the Home Assistant-generated camera name.
required: false
type: string
id:
description: Allows you to manually specify a BOM Radar ID (either `location` or `id` must be defined, but not both).
required: false
type: integer
delta:
description: Time in seconds between BOM radar images available for this radar. Optional if `location` is defined; required if `id` is defined.
required: false
type: integer
frames:
description: Number of frames in the animated GIF. Optional if `location` is defined; required if `id` is defined.
required: false
type: integer
filename:
description: Periodically save the animated GIF image to this filesystem path.
required: false
type: string
{% endconfiguration %}
### Valid `location` values
```txt
Adelaide Albany AliceSprings Bairnsdale Bowen
Brisbane Broome Cairns Canberra Carnarvon
Ceduna Dampier Darwin Emerald Esperance
Geraldton Giles Gladstone Gove Grafton
Gympie HallsCreek Hobart Kalgoorlie Katherine
Learmonth Longreach Mackay Marburg Melbourne
Mildura Moree MorningtonIs MountIsa MtGambier
Namoi Newcastle Newdegate NorfolkIs NWTasmania
Perth PortHedland Rainbow SellicksHill SouthDoodlakine
Sydney Townsville WaggaWagga Warrego Warruwi
Watheroo Weipa WillisIs Wollongong Woomera
Wyndham Yarrawonga
```
### Examples
#### Using `location` and `name`
Example `configuration.yaml` entry to display the `Townsville` radar with a camera named `mytowsvilleradar`:
```yaml
camera:
- platform: bom
name: mytownsvilleradar
location: Townsville
```
#### Using `id`, `delta` and `frames`
In the event BOM creates a new radar, or a radar's ID changes, you may define a custom `id` along with corresponding `delta` and `frames` values. You may also specify custom `delta` and `frames` values, along with a valid `location`, to override the default values for an existing radar. You may not define `location` and `id` in the same entity; you must specify one or the other. If `id` is specified, then `delta` and `frames` values _must_ be provided. If `location` is specified, `delta` and `frames` _may_ be provided to override the default values.
To find a live radar ID (e.g., for the `Townsville` radar), visit the [BOM website's radars page](http://www.bom.gov.au/australia/radar/), click the link for the radar you are interested in, and note the URL, for example: `http://www.bom.gov.au/products/IDR733.loop.shtml`. The ID is the number following `IDR` (i.e., `733`) in the URL. You can also see, at the bottom of the radar image, a rotating set of times corresponding to the frames of the BOM's JavaScript-driven animation. The number of minutes (in seconds) between these times corresponds to the camera's `delta` value, and the number of frames corresponds to the `frames` value. At the time of this writing, the `Townsville` radar loop is composed of 4 frames at 10-minute (600 second) intervals. Since these are also the default values, this configuration block
```yaml
camera:
- platform: bom
location: Townsville
```
is equivalent to this one
```yaml
camera:
- platform: bom
id: '053'
delta: 600
frames: 4
name: 'Carnarvon'
```
#### Using `filename`
This option can be specified to save the animated radar-imagery GIF to the given filesystem path.
Example `configuration.yaml` entry to display the `Sydney` radar and save the animated GIF to a file named `sydneyradar.gif` to the filesystem path accessible as `/local/sydneyradar.gif` via Home Assistant's web server:
```yaml
camera:
- platform: bom
id: Sydney
filename: /config/www/images/sydneyradar.gif
```
The file will be updated every `delta` seconds when the camera regenerates the animation.
## Sensor
The `bom` sensor platform uses the [Australian Bureau of Meteorology (BOM)](http://www.bom.gov.au) as a source for current (half-hourly) meteorological data.
- Each sensor will be given the `device_id` of "bom [optionalname] friendlyname units"
- A name is optional but if multiple BOM weather stations are used a name will be required.
- The sensor checks for new data every minute, starting 30 minutes after the timestamp of the most recent data as the data is updated every half-hour.
To add the BOM weather observation to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: bom
monitored_conditions:
- apparent_t
- cloud
- cloud_base_m
- cloud_oktas
- cloud_type_id
- cloud_type
- delta_t
- gust_kmh
- gust_kt
- air_temp
- dewpt
- local_date_time
- local_date_time_full
- press
- press_qnh
- press_msl
- press_tend
- rain_trace
- rel_hum
- sea_state
- swell_dir_worded
- swell_height
- swell_period
- vis_km
- weather
- wind_dir
- wind_spd_kmh
- wind_spd_kt
```
To get the station ID for any BOM station:
- Find your station on these maps: [NSW](http://www.bom.gov.au/nsw/observations/map.shtml), [QLD](http://www.bom.gov.au/qld/observations/map.shtml), [VIC](http://www.bom.gov.au/vic/observations/map.shtml), [WA](http://www.bom.gov.au/wa/observations/map.shtml), [SA](http://www.bom.gov.au/sa/observations/map.shtml), [TAS](http://www.bom.gov.au/tas/observations/map.shtml), [ACT](http://www.bom.gov.au/act/observations/canberramap.shtml), [NT](http://www.bom.gov.au/nt/observations/map.shtml).
- alternatively, from the [BOM website](http://www.bom.gov.au/), navigate to State -> Observations -> Latest Observations -> Choose the station.
- The URL will look like `http://www.bom.gov.au/products/IDx60901/[station].shtml`
- For Adelaide, the URL will look like `http://www.bom.gov.au/products/IDS60901/IDS60901.94648.shtml`; the station ID is `IDS60901.94648`.
{% configuration %}
station:
description: The station ID string as identified from the BOM website.
required: false
type: string
default: If not given, defaults to the closest station based on location data in configuration.yaml.
name:
description: The name you would like to give to the weather station.
required: false
type: string
monitored_conditions:
description: A list of the conditions to monitor.
required: true
type: list
keys:
apparent_t:
description: Feels like temperature in C.
cloud:
description: Cloud cover.
cloud_base_m:
description: Cloud Base in m.
cloud_oktas:
description: Cloud Oktas.
cloud_type_id:
description: Cloud type ID.
cloud_type:
description: Cloud type description.
delta_t:
description: Delta temperature in C.
gust_kmh:
description: Wind gust in km/h.
gust_kt:
description: Wing gust in kt.
air_temp:
description: Air temperature in C.
dewpt:
description: Dew point in C.
press:
description: Pressure in mbar.
press_qnh:
description: Pressure in qnh.
press_msl:
description: Pressure in msl.
press_tend:
description: Pressure trend.
rain_trace:
description: Raing today in mm.
rel_hum:
description: Relative Humidity in %.
sea_state:
description: Sea state.
swell_dir_worded:
description: Swell direction.
swell_height:
description: Swell height in m.
swell_period:
description: Swell period.
vis_km:
description: Visibility in km.
weather:
description: Weather summary.
wind_dir:
description: Wind direction.
wind_spd_kmh:
description: Wind speed in km/h.
wind_spd_kt:
description: Wind speed in kt.
{% endconfiguration %}
<div class='note'>
This sensor is an alternative to the [`bom`](#configuration) weather platform.
The weather platform is easier to configure but less customisable.
</div>

View File

@ -4,7 +4,7 @@ description: Instructions on how to setup the browser integration with Home Assi
ha_category:
- Utility
ha_release: pre 0.7
ha_iot_class: ~
ha_iot_class:
ha_quality_scale: internal
ha_domain: browser
---

View File

@ -2,7 +2,7 @@
title: Calendar
description: Instructions on how to integrate calendars within Home Assistant.
ha_release: 0.33
ha_iot_class: ~
ha_iot_class:
ha_domain: calendar
---

View File

@ -6,7 +6,7 @@ ha_category:
ha_release: 0.7
ha_quality_scale: internal
ha_domain: camera
ha_iot_class: ~
ha_iot_class:
---
The camera integration allows you to use IP cameras with Home Assistant.

View File

@ -89,6 +89,21 @@ Optional:
service: media_player.play_media
```
### Plex
To cast media directly from a configured Plex server, set the fields [as documented in the Plex integration](/integrations/plex/#service-play_media) and prepend the `media_content_id` with `plex://`:
```yaml
'cast_plex_to_chromecast':
alias: Cast Plex to Chromecast
sequence:
- service: media_player.play_media
data:
entity_id: media_player.chromecast
media_content_type: movie
media_content_id: 'plex://{"library_name": "Movies", "title": "Groundhog Day"}'
```
## Advanced use
### Manual configuration

View File

@ -6,7 +6,7 @@ ha_category:
ha_release: 0.19
ha_quality_scale: internal
ha_domain: climate
ha_iot_class: ~
ha_iot_class:
---
The Climate integration allows you to control and monitor HVAC (heating, ventilating, and air conditioning) devices and thermostats.

View File

@ -17,21 +17,25 @@ To use your Modbus thermostat in your installation, add the following to your `c
```yaml
# Example configuration.yaml entry
climate:
- platform: modbus
name: Watlow F4T
hub: hub1
slave: 1
data_type: uint
data_count: 1
scale: 0.1
offset: 0
precision: 1
max_temp: 30
min_temp: 15
temp_step: 1
target_temp_register: 2782
current_temp_register: 27586
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
climates:
- name: Watlow F4T
slave: 1
data_type: uint
data_count: 1
scale: 0.1
offset: 0
precision: 1
max_temp: 30
min_temp: 15
temp_step: 1
target_temp_register: 2782
current_temp_register: 27586
```
{% configuration %}
@ -39,11 +43,6 @@ name:
description: Name of the device
required: true
type: string
hub:
description: The name of the hub.
required: false
default: default
type: string
slave:
description: The number of the slave (Optional for tcp and upd Modbus, use 1).
required: true
@ -66,6 +65,11 @@ data_type:
required: false
type: string
default: float
structure:
description: "If `data_type` is custom specified a double-quoted Python struct is expected here, to format the string to unpack the value. See Python documentation for details. Example: `>i`."
required: false
type: string
default: ">f"
data_count:
description: Number of registers to read.
required: false
@ -106,6 +110,11 @@ temperature_unit:
required: false
type: string
default: C
scan_interval:
description: Defines the update interval of the sensor in seconds.
required: false
type: integer
default: 15
{% endconfiguration %}

View File

@ -7,7 +7,9 @@ ha_release: 0.74
ha_iot_class: Cloud Push
ha_codeowners:
- '@ludeeus'
- '@ctalkington'
ha_domain: cloudflare
ha_config_flow: true
---
With the `cloudflare` integration, you can keep your Cloudflare records up to date.
@ -26,43 +28,25 @@ Due to a limitation in the Cloudflare API, you can not use this integration with
</div>
## Setup
## Requirements
You can find your global API key in your Cloudflare account settings.
<div class='note warning'>
On older versions of Home Assistant, this integration used the account email and Global API Key to authenticate.
As of Home Assistant 0.117, API Tokens are now used to authenticate.
</div>
Setup requires an API Token created with Zone:Zone:Read and Zone:DNS:Edit permissions for all zones in your account.
An easy way to create this is to start with the "Edit zone DNS" template then add Zone:Zone:Read to the permissions.
[Cloudflare API Tokens Guide](https://developers.cloudflare.com/api/tokens/create)
## Configuration
To use the integration in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
cloudflare:
email: YOUR_EMAIL_ADDRESS
api_key: YOUR_GLOBAL_API_KEY
zone: EXAMPLE.COM
records:
- ha
- www
```
{% configuration cloudflare %}
email:
description: The email address for your Cloudflare account.
required: true
type: string
api_key:
description: The global API key for your Cloudflare account.
required: true
type: string
zone:
description: The DNS zone (domain) you want to update.
required: true
type: string
records:
description: A list of records (subdomains) you want to update.
required: true
type: list
{% endconfiguration %}
Go to the integrations page in your configuration and click on new integration -> Cloudflare.
## Additional information
@ -70,10 +54,6 @@ records:
This platform uses the API from [ipify.org](https://www.ipify.org/) to set the public IP address.
### API Key
Please note that the `api_key` is the [global API key](https://support.cloudflare.com/hc/en-us/articles/200167836-Managing-API-Tokens-and-Keys#12345682) of your Cloudflare account (not the API Token).
### Home Assistant Companion App
If you would like to use [iOS App](https://companion.home-assistant.io/) via Cloudflare set **Minimum TLS version as 1.2**, in order to do that, do the following:
@ -89,20 +69,6 @@ Other settings should not cause any issues.
For SSH usage (according to [this](https://blog.cloudflare.com/cloudflare-now-supporting-more-ports/) source), you need to connect directly to your server (bypassing Cloudflare). To do that, create a `CNAME` DNS record, e.g., `ssh.example.com`, with proxy status as "DNS only" (to do that click on orange icon, it will change color to gray) and then connect to `ssh.example.com` using your server SSH port.
### Using Cloudflare domain only for Home Assistant
If you want to update just a main domain, place in the records list only your domain, e.g., `example.com`. It will update your `A` DNS record with your IP every hour.
```yaml
# Example configuration.yaml entry for one domain
cloudflare:
email: YOUR_EMAIL_ADDRESS
api_key: YOUR_GLOBAL_API_KEY
zone: EXAMPLE.COM
records:
- EXAMPLE.COM
```
#### The minimum DNS record settings (if you have set up HTTPS already)
To redirect from your domain to the IP address of your Home Assistant server set this DNS record:

View File

@ -7,7 +7,6 @@ ha_category:
- Binary Sensor
ha_iot_class: Local Polling
ha_release: 0.31
ha_iot_class: Local Polling
ha_domain: concord232
---

View File

@ -4,7 +4,7 @@ description: Instructions on how to setup the configuration panel for Home Assis
ha_category:
- Front End
ha_release: 0.39
ha_iot_class: ~
ha_iot_class:
ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'

View File

@ -4,7 +4,7 @@ description: Instructions on how to integrate the configurator in your component
ha_category:
- Other
ha_release: 0.7
ha_iot_class: ~
ha_iot_class:
ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'

View File

@ -8,7 +8,7 @@ ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'
ha_domain: cover
ha_iot_class: ~
ha_iot_class:
---
Home Assistant can give you an interface to control covers such as rollershutters, blinds, and garage doors.

View File

@ -126,10 +126,6 @@ with this equivalent that returns `true`/`false` and never gives an unknown
result:
{% raw %}`{{ is_state('cover.source', 'open') }}`{% endraw %}
### Working without entities
If you use a template that depends on the current time or some other non-deterministic result not sourced from entities, the template won't repeatedly update but will only update when the state of a referenced entity updates. For ways to deal with this issue, see [Working without entities](/integrations/binary_sensor.template/#working-without-entities) in the Template Binary Sensor integration.
## Optimistic Mode
In optimistic mode, the cover position state is maintained internally. This mode

View File

@ -5,7 +5,9 @@ ha_category:
- Hub
- Binary Sensor
- Cover
- Fan
- Light
- Lock
- Scene
- Sensor
- Switch
@ -28,6 +30,7 @@ There is currently support for the following device types within Home Assistant:
- [Climate](#climate)
- [Cover](#cover)
- [Light](#light)
- [Lock](#lock)
- [Scene](#scene)
- [Sensor](#sensor)
- [Switch](#switch)
@ -318,6 +321,12 @@ The `entity_id` name will be `cover.device_name`, where `device_name` is defined
- Keen vents
- Xiaomi Aqara Curtain controller
## Fan
Fans from deCONZ are currently a combination of a light and fan fixture.
Note that devices in the fan platform identify as lights, so there is a manually curated list that defines which "lights" are fans. You, therefore, add a fan device as a light device in deCONZ (Phoscon App).
## Light
The `entity_id` names will be `light.device_name`, where `device_name` is defined in deCONZ. Light groups created in deCONZ will be created in Home Assistant as lights named `light.group_name_in_deconz`, allowing the user to control groups of lights with only a single API call to deCONZ.
@ -344,6 +353,14 @@ The `entity_id` names will be `light.device_name`, where `device_name` is define
- Busch Jaeger Zigbee Light Link univ. relai (6711 U) with Zigbee Light Link control element 6735-84
- Xiaomi Aqara Smart LED Bulb (white) E27 ZNLDP12LM
## Lock
Locks are devices such as the Danalock Zigbee lock.
Note that devices in the `lock` platform identify as lights, so there is a manually curated list that defines which "lights" are locks. You therefore add a lock device as a light device in deCONZ (Phoscon App).
The `entity_id` name will be `lock.device_name`, where `device_name` is defined in deCONZ.
## Scene
The `entity_id` name will be `scene.group_scene_name`, where `group` is which group the scene belongs to and the name of the scene, both group and name are defined in deCONZ.

View File

@ -4,7 +4,7 @@ description: Instructions on how to setup device tracking within Home Assistant.
ha_category:
- Presence Detection
ha_release: 0.7
ha_iot_class: ~
ha_iot_class:
ha_quality_scale: internal
ha_domain: device_tracker
---

View File

@ -4,7 +4,7 @@ description: Instructions on how to setup Home Assistant to discover new devices
ha_category:
- Other
ha_release: 0.7
ha_iot_class: ~
ha_iot_class:
ha_quality_scale: internal
ha_domain: discovery
---

View File

@ -31,6 +31,9 @@ There is currently support for the following device types within Home Assistant:
- **Sensor** - Elk-M1 counters, keypads, panel, settings, and zones are represented as `sensor` entities.
- **Switch** - Elk-M1 outputs are represented as `switch` entities.
The implementation follows the Elk Products ElkM1 "ASCII Protocol & Interface
Specification, Revision 1.84" document. This document can be found on the Internet.
## ElkM1 Configuration and Version
In order for the ElkM1 integration to work to its fullest with Home Assistant the
@ -119,7 +122,15 @@ The complete list of trouble statuses are:
To add `ElkM1` to your installation, go to **Configuration** >> **Integrations** in the UI, click the button with `+` sign and from the list of integrations select **Elk-M1 Control**.
Alternatively, add the following section to your `configuration.yaml` file:
Alternatively, configuration through the `configuration.yaml` file
is supported (example below).
Both methods of configuration support "auto configuration". This works by
reporting only elements on the ElkM1 that have a "Name" configured.
So, for example, if counter #11 on the panel was configured with
the name "Test counter" then this element would show up in Home Assistant. If
an element is being used but does not have a name configured then
it will not appear in Home Assistant through the auto-configuration feature.
```yaml
# Example configuration.yaml entry
@ -401,6 +412,16 @@ elkm1:
enabled: false
```
## Events
The ElkM1 integration supports the following event: `elkm1.keypad_key_pressed`.
The event is generated whenever a key is pressed on an ElkM1 keypad.
The `event_data` contains the following:
- `keypad_id`: The number of the keypad that reported the keypress.
- `key_name`: The name of the key that was pressed.
- `key`: The number of the key that was pressed.
## Services
Besides the standard Home Assistant services for Climate, Light, Scene, Sensor,
@ -409,7 +430,14 @@ and Switch the ElkM1 integration offers these additional services:
- `elkm1.alarm_arm_home_instant`
- `elkm1.alarm_arm_night_instant`
- `elkm1.alarm_arm_vacation`
- `elkm1.alarm_bypass`
- `elkm1.alarm_clear_bypass`
- `elkm1.alarm_display_message`
- `elkm1.sensor_counter_refresh`
- `elkm1.sensor_counter_set`
- `elkm1.sensor_zone_bypass`
- `elkm1.sensor_zone_trigger`
- `elkm1.set_time`
- `elkm1.speak_phrase`
- `elkm1.speak_word`
@ -423,6 +451,16 @@ respectively.
| `entity_id` | yes | ElkM1 area which to arm.
| `code` | no | Alarm code to arm the system (4 or 6 digits).
### Services `elkm1.alarm_bypass` and `elkm1.alarm_clear_bypass`
For all zones associated with the specified alarm panel these services respectively
bypass or clear the bypass the zones.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | ElkM1 area which to bypass or clear bypass.
| `code` | no | Alarm code to bypass the alarm panel (4 or 6 digits).
### Service `elkm1.alarm_display_message`
Display text on an area's keypads.
@ -436,6 +474,52 @@ Display text on an area's keypads.
| `line1` | yes | Up to 16 characters of text (truncated if too long). Default blank.
| `line2` | yes | Up to 16 characters of text (truncated if too long). Default blank.
### Service `elkm1.sensor_counter_refresh`
Refresh the value of a counter. Note that under certain conditions the
panel does not automatically send a new value under certain
conditions. This service retrieves the current counter value.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | ElkM1 counter to refresh.
### Service `elkm1.sensor_counter_set`
Set counter to value.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | ElkM1 counter to refresh.
| `value` | no | Value to set the counter to Can be 0-65536.
### Service `elkm1.sensor_zone_bypass`
Bypass a zone. Note that the only mechanism ElkM1 offers to clear the bypass
is to clear all the bypassed zones in a given alarm panel (area).
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | ElkM1 zone which to bypass.
| `code` | no | Alarm code to bypass the zone (4 or 6 digits).
### Service `elkm1.sensor_zone_trigger`
Cause a zone on the panel to trigger. This command creates a virtual momentary
open condition on the zone as if the EOL hardwired loop had been physically opened.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | ElkM1 zone which to trigger.
### Service `elkm1.set_time`
Set the time on the panel. Uses the current time on the instance of Home Assistant.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `prefix` | yes | Prefix to identify panel when multiple panels configured.
### Service `elkm1.speak_phrase`
Speak a phrase. The list of phrases is defined in the ElkM1 ASCII Protocol documentation.

View File

@ -23,4 +23,4 @@ An ESPHome device can be set up via the **Integrations** menu: **Configuration**
* Complete the dialog box and click `SUBMIT`.
* **Host**: If the device is called `livingroom` in ESPHome, the hostname would be `livingroom.local`
* **Port**: The default port is `6053`
* If the node has a password set, Home Assistant prompt for it.
* If the node has a password set, Home Assistant prompt for it.

View File

@ -4,7 +4,7 @@ description: Instructions on how to setup Fan devices within Home Assistant.
ha_category:
- Fan
ha_release: 0.27
ha_iot_class: ~
ha_iot_class:
ha_quality_scale: internal
ha_domain: fan
---

View File

@ -114,7 +114,3 @@ fan:
type: [string, list]
default: ['low', 'medium', 'high']
{% endconfiguration %}
### Working without entities
If you use a template that depends on the current time or some other non-deterministic result not sourced from entities, the template won't repeatedly update but will only update when the state of a referenced entity updates. For ways to deal with this issue, see [Working without entities](/integrations/binary_sensor.template/#working-without-entities) in the Template Binary Sensor integration.

View File

@ -4,7 +4,7 @@ description: Offers a frontend to Home Assistant.
ha_category:
- Other
ha_release: 0.7
ha_iot_class: ~
ha_iot_class:
ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/frontend'

View File

@ -6,7 +6,7 @@ ha_category:
logo: geo_location.png
ha_release: 0.78
ha_domain: geo_location
ha_iot_class: ~
ha_iot_class:
---
Geolocation aware entities are typically related to events in the real world in the vicinity of Home Assistant's location, like for example weather events, bush fires or earthquakes.

View File

@ -5,8 +5,6 @@ ha_category:
- Text-to-speech
ha_release: 0.35
ha_iot_class: Cloud Push
ha_codeowners:
- '@awarecan'
ha_domain: google_translate
---

View File

@ -0,0 +1,24 @@
---
title: Gree Climate
description: Instructions on how to integrate Gree Smart devices within Home Assistant.
ha_category:
- Climate
ha_release: 0.117
ha_iot_class: Local Polling
ha_config_flow: true
ha_codeowners:
- '@cmroche'
ha_domain: gree
---
The Gree integration allows you to control a [Gree Smart HVAC](http://global.gree.com/).
## Configuration
Go to the integrations page in your configuration and click on **new integration** -> **Gree**.
Gree Smart compatible devices are detected and added automatically.
## Supported models
Any Gree Smart device working with the Gree+ app should be supported, including non-Gree branded devices, including some sold by Trane.

View File

@ -97,4 +97,4 @@ It is possible to create a group that the system cannot calculate a group state.
Groups with entities from unsupported domains will always have an unknown state.
These groups can still be in templates with the `expand()` directive, called using the
`homeassistant.turn_on` and `homeassistant.turn_off` services, etc.
`homeassistant.turn_on` and `homeassistant.turn_off` services, etc.

View File

@ -39,6 +39,14 @@ Disable the device's onboard access point.
Enable the device's onboard access point.
### `guardian.pair_sensor`
Add a new paired sensor to the valve controller.
| Service Data Attribute | Optional | Description |
| ---------------------- | -------- | ------------------------------------------------ |
| `uid` | yes | The unique device ID on the bottom of the sensor.|
### `guardian.reboot`
Reboot the device.
@ -47,6 +55,14 @@ Reboot the device.
Fully (and irrecoverably) reset all valve diagnostics.
### `guardian.unpair_sensor`
Remove a paired sensor from the valve controller.
| Service Data Attribute | Optional | Description |
| ---------------------- | -------- | ------------------------------------------------ |
| `uid` | yes | The unique device ID on the bottom of the sensor.|
### `guardian.upgrade_firmware`
Upgrade the device firmware.
@ -56,3 +72,15 @@ Upgrade the device firmware.
| `url` | yes | The URL of the server hosting the firmware file. |
| `port` | yes | The port on which the firmware file is served. |
| `filename` | yes | The firmware filename. |
*Note:* not all service calls are available on all Guardian valve controller firmwares.
Please ensure you upgrade your valve controller to the latest firmware before opening
bugs related to non-working service calls.
## Paired Sensor Notes
When a paired sensor is first added to the valve controller, it may return inaccurate or
nonsensical values for several of its attributes, such as `battery` and `temperature`. This
is due to the sensor never having communicated its data to the valve controller and can
be fixed by moving the sensor around (so that it beeps, indicating that data has been
sent to the valve controller).

View File

@ -6,6 +6,8 @@ ha_category:
ha_release: 0.23
ha_iot_class: Local Push
ha_domain: hdmi_cec
ha_codeowners:
- '@newAM'
---
The `hdmi_cec` integration provides services that allow selecting the active device, powering on all devices, setting all devices to standby and creates switch entities for HDMI devices. Devices are defined in the configuration file by associating HDMI port number and a device name. Connected devices that provide further HDMI ports, such as sound-bars and AVRs are also supported. Devices are listed from the perspective of the CEC-enabled Home Assistant device. Any connected device can be listed, regardless of whether it supports CEC. Ideally the HDMI port number on your device will map correctly the CEC physical address. If it does not, use `cec-client` (part of the `libcec` package) to listen to traffic on the CEC bus and discover the correct numbers.

View File

@ -8,7 +8,7 @@ ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'
ha_domain: history
ha_iot_class: ~
ha_iot_class:
---
The `history` integration will track everything that is going on within Home

View File

@ -87,6 +87,11 @@ homekit:
description: The local network IP address. Only necessary if the default from Home Assistant does not work.
required: false
type: string
mode:
description: HomeKit can expose an entity via a bridge, or a single entity as an accessory which is needed for Television Media Players. ([Accessory mode](#accessory-mode))
required: false
type: string
default: '`bridge`'
safe_mode:
description: Only set this parameter if you encounter issues during pairing. ([Safe Mode](#safe-mode))
required: false
@ -297,6 +302,16 @@ If you create a HomeKit integration via the UI (i.e., **Configuration** >> **Int
It is recommended to only edit a HomeKit instance in the UI that was created in the UI, and likewise, only edit a HomeKit instance in YAML that was created in YAML.
### Accessory mode
When exposing a Television media player (a `media_player` with device class `tv`) to HomeKit, `mode` must be set to `accessory`, and the include filter should be setup to only include the `media_player` entity. This can be accomplished in the UI with the following steps.
1. Create a new bridge via the UI (i.e., **Configuration** >> **Integrations**)
2. Before pairing the bridge, access the options for the bridge.
3. Change the mode to `accessory`
4. Select the `media_player` entity with the `tv` device class.
5. Complete the options flow and pair as normal.
## Disable Auto Start
Depending on your setup, it might be necessary to disable `Auto Start` for all accessories to be available for `HomeKit`. Only those entities that are fully set up when the `HomeKit` integration is started, can be added. To start `HomeKit` when `auto_start: false`, you can call the service `homekit.start`.

View File

@ -382,6 +382,27 @@ action:
WEEK_PROGRAM_POINTER: 1
```
Set the week program of a wall thermostat with explicit `rx_mode` (BidCos-RF only):
```yaml
...
action:
service: homematic.put_paramset
data:
interface: wireless
address: LEQ1234567
paramset_key: MASTER
rx_mode: WAKEUP
paramset:
WEEK_PROGRAM_POINTER: 1
```
BidCos-RF devices have an optional parameter for put_paramset which defines the way the configuration data is sent to the device.
`rx_mode` `BURST`, which is the default value, will wake up every device when submitting the configuration data and hence makes all devices use some battery. It is instant, i.e. the data is sent almost immediately.
`rx_mode` `WAKEUP` will send the configuration data only after a device submitted updated values to CCU, which usually happens every 3 minutes. It will not wake up every device and thus saves devices battery.
Manually set lock on KeyMatic devices:
```yaml

View File

@ -23,7 +23,7 @@ There is currently support for the following platforms within Home Assistant:
- Presence detection - device tracker for connected devices
- Notifications - via SMS
- Sensors - device, network, signal, SMS count, and traffic information
- Sensors - device, network, signal, SMS count, traffic, and battery information
- Switch - mobile data on/off
- Binary sensor - mobile and Wi-Fi connection status, SMS storage full/not

View File

@ -9,7 +9,7 @@ ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'
- '@Shulyaka'
ha_iot_class: ~
ha_iot_class:
---
The `humidifier` integration is built for the controlling and monitoring of humidifiers, dehumidifiers, and hygrostat devices.

View File

@ -102,14 +102,19 @@ precision:
description: Set this to specify the time precision sent to influxdb. Setting a coarser precision allows InfluxDb to compress your data better. If not set, defaults to ns.
required: false
default: ns
measurement_attr:
type: string
description: "State object attribute(s) to use as measurement name. Possible values: `unit_of_measurement`, `domain__device_class` or `entity_id`."
required: false
default: unit_of_measurement
default_measurement:
type: string
description: Measurement name to use when an entity doesn't have a unit.
description: Measurement name to use when the measurement_attr state attribute does not exist, e.g. when an entity doesn't have a unit.
required: false
default: uses the entity id of the entity
override_measurement:
type: string
description: Measurement name to use instead of a unit or default measurement. This will store all data points in a single measurement.
description: Measurement name to use instead of measurement_attr or default measurement. This will store all data points in a single measurement.
required: false
exclude:
type: list

View File

@ -4,7 +4,7 @@ description: Instructions on how to integrate the Input Boolean integration into
ha_category:
- Automation
ha_release: 0.11
ha_iot_class: ~
ha_iot_class:
ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'

View File

@ -4,7 +4,7 @@ description: Instructions on how to integrate the Input Datetime integration int
ha_category:
- Automation
ha_release: 0.55
ha_iot_class: ~
ha_iot_class:
ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'

View File

@ -4,7 +4,7 @@ description: Instructions on how to integrate the Input Number integration into
ha_category:
- Automation
ha_release: 0.55
ha_iot_class: ~
ha_iot_class:
ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'

View File

@ -4,7 +4,7 @@ description: Instructions on how to integrate the Input Select integration into
ha_category:
- Automation
ha_release: 0.13
ha_iot_class: ~
ha_iot_class:
ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'

View File

@ -4,7 +4,7 @@ description: Instructions on how to integrate the Input Text integration into Ho
ha_category:
- Automation
ha_release: 0.53
ha_iot_class: ~
ha_iot_class:
ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'

View File

@ -6,7 +6,7 @@ ha_category:
ha_release: pre 0.7
ha_quality_scale: internal
ha_domain: light
ha_iot_class: ~
ha_iot_class:
---
This integration allows you to track and control various light bulbs. Read the integration documentation for your particular light hardware to learn how to enable it.

View File

@ -146,10 +146,6 @@ with this equivalent that returns `true`/`false` and never gives an unknown
result:
{% raw %}`{{ is_state('switch.source', 'on') }}`{% endraw %}
### Working without entities
If you use a template that depends on the current time or some other non-deterministic result not sourced from entities, the template won't repeatedly update but will only update when the state of a referenced entity updates. For ways to deal with this issue, see [Working without entities](/integrations/binary_sensor.template/#working-without-entities) in the Template Binary Sensor integration.
## Examples
In this section you will find some real-life examples of how to use this light.

View File

@ -6,7 +6,7 @@ ha_category:
ha_release: 0.9
ha_quality_scale: internal
ha_domain: lock
ha_iot_class: ~
ha_iot_class:
---
Keeps track which locks are in your environment, their state and allows you to control them.

View File

@ -79,10 +79,6 @@ lock:
If you are using the state of a platform that takes extra time to load, the Template Lock may get an `unknown` state during startup. This results in error messages in your log file until that platform has completed loading. If you use `is_state()` function in your template, you can avoid this situation. For example, you would replace {% raw %}`{{ is_state('switch.source', 'on') }}`{% endraw %} with this equivalent that returns `true`/`false` and never gives an unknown result: {% raw %}`{{ is_state('switch.source', 'on') }}`{% endraw %}
### Working without entities
If you use a template that depends on the current time or some other non-deterministic result not sourced from entities, the template won't repeatedly update but will only update when the state of a referenced entity updates. For ways to deal with this issue, see [Working without entities](/integrations/binary_sensor.template/#working-without-entities) in the Template Binary Sensor integration.
## Examples
In this section, you find some real-life examples of how to use this lock.

View File

@ -5,7 +5,7 @@ ha_category:
- History
ha_release: 0.7
ha_domain: logbook
ha_iot_class: ~
ha_iot_class:
---
<img src='/images/screenshots/logbook.png' style='margin-left:10px; float: right;' height="100" />

View File

@ -85,7 +85,7 @@ After setup, shades will appear in Home Assistant using an `entity_id` based on
For more information on working with shades in Home Assistant, see the [Covers component](/integrations/cover/).
Available services: `cover.open_cover`, `cover.close_cover` and `cover.set_cover_position`. Cover `position` ranges from `0` for fully closed to `100` for fully open.
Available services: `cover.open_cover`, `cover.close_cover`, `cover.stop_cover` and `cover.set_cover_position`. Cover `position` ranges from `0` for fully closed to `100` for fully open.
## Light
@ -95,7 +95,7 @@ For non-dimmable lights or switched loads, see the switch section on this page.
For more information on working with lights in Home Assistant, see the [Lights component](/integrations/light/).
Available services: `light.turn_on`, `light.turn_off` and `light.toggle`. The `light.turn_on` service supports attributes `brightness` and `brightness_pct`.
Available services: `light.turn_on`, `light.turn_off` and `light.toggle`. The `light.turn_on` service supports attributes `brightness`, `brightness_pct` and `transition`.
## Scene

View File

@ -3,7 +3,7 @@ title: Mailbox
description: Instructions on how to setup your mailboxes with Home Assistant.
ha_release: 0.51
ha_domain: mailbox
ha_iot_class: ~
ha_iot_class:
---
Mailboxes provide a list of messages with short information about each. Mailbox messages appear on a separate panel in the frontend.

View File

@ -6,7 +6,7 @@ ha_category:
ha_release: 0.56
ha_quality_scale: internal
ha_domain: map
ha_iot_class: ~
ha_iot_class:
---
This offers a map on the frontend to display the location of tracked devices. To set up tracked devices, look at the [device tracker](/integrations/device_tracker/) documentation. This integration is by default enabled, unless you've disabled or removed the [`default_config:`](https://www.home-assistant.io/integrations/default_config/) line from your configuration. If that is the case, the following example shows you how to enable this integration manually:

View File

@ -6,7 +6,7 @@ ha_category:
ha_release: 0.7
ha_quality_scale: internal
ha_domain: media_player
ha_iot_class: ~
ha_iot_class:
---
Interacts with media players on your network.
@ -14,17 +14,17 @@ Interacts with media players on your network.
## Services
### Media control services
Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`, `volume_set`, `volume_mute`, `media_play_pause`, `media_play`, `media_pause`, `media_stop`, `media_next_track`, `media_previous_track`, `clear_playlist`, `shuffle_set`, `play_media`, `select_source`, `select_sound_mode`
Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`, `volume_set`, `volume_mute`, `media_play_pause`, `media_play`, `media_pause`, `media_stop`, `media_next_track`, `media_previous_track`, `clear_playlist`, `shuffle_set`, `repeat_set`, `play_media`, `select_source`, `select_sound_mode`
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ------------------------------------------------ |
| `entity_id` | no | Target a specific media player. To target all media players, use `all`. |
| `entity_id` | yes | Target a specific media player. To target all media players, use `all`. |
#### Service `media_player.volume_mute`
| Service data attribute | Optional | Description |
|------------------------|----------|--------------------------------------------------|
| `entity_id` | no | Target a specific media player. To target all media players, use `all`. |
| `entity_id` | yes | Target a specific media player. To target all media players, use `all`. |
| `is_volume_muted` | no | True/false for mute/unmute |
#### Service `media_player.volume_set`
@ -38,14 +38,14 @@ Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`,
| Service data attribute | Optional | Description |
|------------------------|----------|--------------------------------------------------------|
| `entity_id` | no | Target a specific media player. To target all media players, use `all`. |
| `entity_id` | yes | Target a specific media player. To target all media players, use `all`. |
| `seek_position` | no | Position to seek to. The format is platform dependent. |
#### Service `media_player.play_media`
| Service data attribute | Optional | Description |
| -----------------------| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `entity_id` | no | Target a specific media player. To target all media players, use `all`. |
| `entity_id` | yes | Target a specific media player. To target all media players, use `all`. |
| `media_content_id` | no | A media identifier. The format of this is integration dependent. For example, you can provide URLs to Sonos and Cast but only a playlist ID to iTunes. |
| `media_content_type` | no | A media type. Must be one of `music`, `tvshow`, `video`, `episode`, `channel` or `playlist`. For example, to play music you would set `media_content_type` to `music`. |
@ -53,7 +53,7 @@ Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`,
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ---------------------------------------------------- |
| `entity_id` | no | Target a specific media player. To target all media players, use `all`. |
| `entity_id` | yes | Target a specific media player. To target all media players, use `all`. |
| `source` | no | Name of the source to switch to. Platform dependent. |
#### Service `media_player.select_sound_mode`
@ -62,7 +62,7 @@ Currently only supported on [Denon AVR](/integrations/denonavr/) and [Songpal](
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ---------------------------------------------------- |
| `entity_id` | no | Target a specific media player. For example `media_player.marantz`|
| `entity_id` | yes | Target a specific media player. For example `media_player.marantz`|
| `sound_mode` | no | Name of the sound mode to switch to. Platform dependent.|
#### Service `media_player.shuffle_set`
@ -71,9 +71,16 @@ Currently only supported on [Sonos](/integrations/sonos), [Spotify](/integration
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ---------------------------------------------------- |
| `entity_id` | no | Target a specific media player. For example `media_player.spotify`|
| `entity_id` | yes | Target a specific media player. For example `media_player.spotify`|
| `shuffle` | no | `true`/`false` for enabling/disabling shuffle |
#### Service `media_player.repeat_set`
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ---------------------------------------------------- |
| `entity_id` | yes | Target a specific media player. For example `media_player.kitchen`|
| `repeat` | no | `off`/`all`/`one` for setting repeat mode |
### Device Class
The way media players are displayed in the frontend can be modified in the [customize section](/getting-started/customizing-devices/). The following device classes are supported for media players:

View File

@ -111,4 +111,4 @@ Some information about the capabilities might be found on the [Neato Developer P
| `category` | yes | Whether to use a persistent map or not for cleaning (i.e., No go lines): 2 for no map, 4 for map. Default to using map if not set (and fallback to no map if no map is found). |
| `zone` | yes | Only supported on the Botvac D7. Name of the zone to clean from the Neato app. Use unique names for the zones to avoid the wrong zone from running. Defaults to no zone i.e., complete house cleanup. |
[botvac-connected]: https://neatorobotics.com/products
[botvac-connected]: https://neatorobotics.com/products

View File

@ -12,37 +12,65 @@ ha_release: 0.7
ha_config_flow: true
ha_codeowners:
- '@awarecan'
- '@allenporter'
ha_domain: nest
---
The Nest integration is the main integration to integrate all [Nest](https://nest.com/) related platforms. To connect Nest, you will have to [sign up for a developer account](https://developers.nest.com/products) and get a `client_id` and `client_secret`.
The `nest` integration allows you to access all supported [Google Nest](https://store.google.com/us/category/connected_home?) devices. There are two APIs:
1. New [Device Access](https://developers.google.com/nest/device-access) program and [Smart Device Management](https://developers.google.com/nest/device-access/api) (SDM) API.
1. Legacy [Works With Nest](https://developers.nest.com/) API. This API does not accept new users, but existing users can keep using it.
<div class='note warning'>
The two APIs support different features and devices. The SDM API integration is currently under development and does not yet support everything in the API either.
</div>
There is currently support for the following device types within Home Assistant:
- [Binary Sensor](#binary-sensor)
- [Camera](#camera)
- [Climate](#climate)
- [Sensor](#sensor)
- [Binary Sensor](#binary-sensor-legacy-api-only) (Legacy API Only)
- [Camera](#camera) (Both APIs)
- [Climate](#climate-legacy-api-only) (Legacy API Only)
- [Sensor](#sensor) (Both APIs)
### Setting up developer account
## Device Access: Developer Account Setup
You will need to follow the instructions in [Device Access Registration](https://developers.google.com/nest/device-access/registration), which includes the following steps in the
Quick Start Guide:
- Accept the Terms of Service.
- Pay a fee (currently US$5).
- Register in the Device Access Console to get a `project_id`.
- Authorize your Google Account and create OAuth credentials to get a `client_id` and `client_secret`.
- Enable pubsub events in the Device Access Console (creates a topic).
- Create a pull subscription to get a `subscriber_id` ("Subscription ID" in Google Cloud Console).
<div class='note warning'>
It is currently not possible to share/be invited to a home with a G-Suite account. Make sure that you pay the fee with an account that has access to your devices.
</div>
New users are not currently able to set up a Works With Nest Developer account due to the change announced by Google. We will reach out to Nest to see if we can become a partner so that users joining Home Assistant after [August 2019](/blog/2019/05/08/nest-data-bye-bye/) can still use Nest. In the future we will add documentation on how to setup a Works With Google account and configure your Nest integration.
Additionally, Home Assistant must be configured with a URL (e.g., external exposed [`http`](/integrations/http/), Nabu Casa, etc). When setting up the OAuth credentials, make sure the Home Assistant URL is in the list of *Authorized redirect URIs*, so the redirect back to Home Assistant can get an OAuth authorization code.
Follow all of the instructions in [Device Access: Quick Start Guide](https://developers.google.com/nest/device-access/get-started) carefully as it is easy to make a configuration mistake that is difficult to debug. It is recommended to exercise the entire guide, including the command to test out the API, to make sure that it is working before configuring Home Assistant.
It may be easiest to create a [Pub/Sub subscription](https://console.cloud.google.com/cloudpubsub/subscription/list) from the Google Cloud console. Make sure to use the *topic name* from the device access console and a unique subscription ID. Note the message retention is how long messages will queue while offline, so keep that short (e.g., under an hour) to avoid a potentially large backlog of updates.
## Works With Nest: Developer Account Setup (Legacy)
<div class='note warning'>
New users cannot set up a "Works With Nest Developer" account and instead should use the Device Access program. The instructions below only apply if you already have an account.
</div>
1. Visit [Nest Developers](https://developers.nest.com/), and sign in. Create an account if you don't have one already.
2. Fill in account details:
* The "Company Information" can be anything. We recommend using your name.
3. Submit changes
4. Click "[Products](https://developers.nest.com/products)" at top of page.
4. Click "[Products](https://developers.nest.com/products)" at the top of page.
5. Click "[Create New Product](https://developers.nest.com/products/new)"
6. Fill in details:
* Product name must be unique. We recommend [email] - Home Assistant.
* The description, users, URLs can all be anything you want.
* Leave the "Redirect URI" Field blank
7. For permissions check every box and if it's an option select the read/write option. Note: there are important permissions under the "Other Permissions" category. If you are only adding a thermostat, do not just select the permissions under "Thermostat". You still need to check the boxes under "Other Permissions" in order to give you access to features like away mode, ETA, structure read/write, and postal code.
7. For permissions, check every box and if it's an option, select the read/write option. Note: there are important permissions under the "Other Permissions" category. If you are only adding a thermostat, do not just select the permissions under "Thermostat". You still need to check the boxes under "Other Permissions" to give you access to features like away mode, ETA, structure read/write, and postal code.
* The description requires a specific format to be accepted.
* Use "[Home Assistant] [Edit] [For Home Automation]" as the description as it is not super important.
8. Click "Create Product"
@ -51,13 +79,16 @@ There is currently support for the following device types within Home Assistant:
Connecting to the Nest Developer API requires outbound port 9553 on your firewall. The configuration will fail if this is not accessible.
### Configuration
## Configuration
```yaml
# Example configuration.yaml entry
nest:
client_id: CLIENT_ID
client_secret: CLIENT_SECRET
# Fields required by Device Access (SDM) API. Otherwise, use legacy API.
project_id: PROJECT_ID
subscriber_id: SUBSCRIBER_ID # ("Subscription ID" in Google Cloud Console)
```
```yaml
@ -72,20 +103,43 @@ nest:
{% configuration %}
client_id:
description: Your Nest developer client ID.
description: Your Device Access or Nest developer client ID.
required: true
type: string
client_secret:
description: Your Nest developer client secret.
description: Your Device Access or Nest developer client secret.
required: true
type: string
project_id:
description: Your Device Access Project ID. This enables the SDM API.
required: false
type: string
subscriber_id:
description: Your Pub/sub Subscription ID used to receive events. This is required to use the SDM API.
type: string
required: false
structure:
description: The structure or structures you would like to include devices from. If not specified, this will include all structures in your Nest account.
description: The structure or structures you would like to include devices from. If not specified, this will include all structures in your Nest account. Not currently supported by the SDM API.
required: false
type: list
{% endconfiguration %}
### Service `set_away_mode`
## Device Setup (SDM API)
Once your developer account is set up and `nest` has been configured, you need to connect devices with the following steps:
1. From the Home Assistant front-end, navigate to **Configuration** then **Integrations**. Under **Set up a new integration** locate 'Nest'.
1. You should get redirected to Google to choose an account. This should be the same developer account you configured above.
1. The *Google Nest permissions* screen will allow you to choose which devices to configure.
1. You will get redirected back to another account selection page.
1. Confirm you want to allow persistent access to Home Assistant.
## Services (Legacy API Only)
They Legacy API supports additional services for home/away/eta that are not
supported by the SDM API.
### Service `set_away_mode` (Legacy API Only)
You can use the service `nest/set_away_mode` to set the structure(s) to "Home" or "Away".
@ -118,7 +172,7 @@ script:
- Apartment
```
### Service `set_eta`
### Service `set_eta` (Legacy API Only)
You can use the service `nest/set_eta` to set or update the estimated time of arrival window. Calling this service will automatically set the structure(s) to "Away". Structures must have an associated Nest thermostat in order to use ETA function.
@ -156,7 +210,7 @@ script:
- Apartment
```
### Service `cancel_eta`
### Service `cancel_eta` (Legacy API Only)
You can use the service `nest/cancel_eta` to cancel an existing estimated time of arrival window. Structures must have an associated Nest thermostat in order to use ETA function.
@ -189,7 +243,7 @@ script:
- Apartment
```
### Troubleshooting
## Troubleshooting (Legacy API Only)
- If you're getting [rickrolled](https://www.youtube.com/watch?v=dQw4w9WgXcQ) instead of being able to see your Nest cameras, you may not have set up your developer account's permissions correctly. Go back through and make sure you've selected read/write under every category that it's an option.
@ -201,17 +255,17 @@ You must have the [Nest component](/integrations/nest/) configured to use the pl
</div>
## Binary Sensor
### Binary Sensor (Legacy API Only)
The `nest` binary sensor platform lets you monitor various states of your [Nest](https://nest.com) devices.
<div class='note'>
You must have the [Nest component](/integrations/nest/) configured to use these sensors. The binary sensors will be setup if the `nest` integration is configured and the required configuration for the `nest binary sensor` is set.
You must have the [Nest component](/integrations/nest/) configured to use these sensors. The binary sensors will be set up if the `nest` integration is configured and the required configuration for the `nest binary sensor` is set.
</div>
## Configuration
#### Configuration
To enable binary sensors and customize which sensors are setup, you can extend the [Nest component](/integrations/nest/) configuration in your `configuration.yaml` file with the following settings:
@ -224,7 +278,7 @@ nest:
- 'target'
```
By default all binary sensors for your available Nest devices will be monitored. Leave `monitored_conditions` blank to disable all binary sensors for the [Nest component](/integrations/nest/).
By default, all binary sensors for your available Nest devices will be monitored. Leave `monitored_conditions` blank to disable all binary sensors for the [Nest component](/integrations/nest/).
{% configuration %}
monitored_conditions:
@ -251,19 +305,19 @@ The following conditions are available by device:
- person\_detected
- sound\_detected
## Camera
### Camera (Legacy API Only)
The `nest` platform allows you to watch still frames from a video stream (not live stream) of your [Nest](https://nest.com/camera/meet-nest-cam/) camera in Home Assistant.
<div class='note'>
The `nest` camera will automatically be setup when you do.
The `nest` camera will automatically be set up when you do.
</div>
Nest Camera supports the `camera.turn_on` and `camera.turn_off` services since the 0.75 release.
## Climate
### Climate (Legacy API Only)
The `nest` climate platform lets you control a thermostat from [Nest](https://nest.com).
@ -275,17 +329,18 @@ Please note due to limitations with the European Nest Thermostat E, integration
<img src='/images/screenshots/nest-thermostat-card.png' />
</p>
## Sensor
### Sensor
The `nest` sensor platform lets you monitor sensors connected to your [Nest](https://nest.com) devices.
The `nest` sensor platform lets you monitor sensors connected to your [Nest](https://nest.com) devices. The SDM API supports these sensor traits:
- [Temperature](https://developers.google.com/nest/device-access/traits/device/temperature)
- [Humidity](https://developers.google.com/nest/device-access/traits/device/humidity)
<div class='note'>
The sensors will be setup if the `nest` integration is configured and the required configuration for the `nest sensor` is set.
The SDM API will monitor all devices automatically once configured. The Legacy API has additional configuration for `nest sensor`.
</div>
## Configuration
#### Configuration
To enable sensors and customize which sensors are setup, you can extend the [Nest component](/integrations/nest/) configuration in your `configuration.yaml` file with the following settings:
@ -298,7 +353,7 @@ nest:
- 'target'
```
By default all sensors for your available Nest devices will be monitored. Leave `monitored_conditions` blank to disable all sensors for the [Nest component](/integrations/nest/).
By default all, sensors for your available Nest devices will be monitored. Leave `monitored_conditions` blank to disable all sensors for the [Nest component](/integrations/nest/).
{% configuration %}
monitored_conditions:
@ -325,7 +380,7 @@ The following conditions are available by device:
- `color_status`: `gray`, `green`, `yellow` or `red`. Indicates device status by color in the Nest app UI. It is an aggregate condition for battery+smoke+CO states, and reflects the actual color indicators displayed in the Nest app.
- Nest Camera: none
## Security State
### Security State (Legacy Only)
<div class='note warning'>

View File

@ -8,7 +8,7 @@ ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'
ha_domain: notify
ha_iot_class: ~
ha_iot_class:
---
The `notify` integration makes it possible to send notifications to a wide variety of platforms. To use it you have to setup at least one notification target (notifier), check the [integrations list](/integrations/#notifications) for one that fits your use case.

View File

@ -0,0 +1,51 @@
---
title: "Notify using TTS"
description: "Instructions on how to set up a Notify integration using TTS service and media_player within Home Assistant."
ha_category:
- Notifications
ha_release: 0.117
ha_iot_class: Local Push
ha_quality_scale: internal
ha_domain: notify
---
The notify TTS platform lets you use the TTS integration [Service Say](/integrations/tts/#service-say) and a [media_player](/integrations/media_player) to alert you of important events. This integration provides a simple interface to use in your automations and alerts.
In order to use this integration, you must already have a TTS platform installed and configured, and a media_player working with the TTS platform.
To enable this platform in your installation, consider the following example using [google_translate](/integrations/google_translate/) and an example `media_player.living_room`.
In your `configuration.yaml` file type:
```yaml
tts:
- platform: google_translate
service_name: google_say
notify:
- platform: tts
name: in_the_living_room
tts_service: tts.google_say
media_player: media_player.living_room
```
Please note that the `tts_service` parameter, must match the `service_name` defined in the TTS integration.
{% configuration %}
name:
description: The name of the notify service.
required: true
type: string
tts_service:
description: "The `service_name` of a TTS platform."
required: true
type: string
media_player:
description: "The `entity_id` of a media_player."
required: true
type: string
language:
description: "The `language` to be passed to the TTS `Service Say`"
required: false
type: string
{% endconfiguration %}

View File

@ -8,7 +8,7 @@ ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'
ha_domain: onboarding
ha_iot_class: ~
ha_iot_class:
---
This integration creates the endpoints for the onboarding that is built into Home Assistant. There are no configuration options for this integration directly.

View File

@ -7,6 +7,7 @@ ha_release: 0.12
ha_iot_class: Local Polling
ha_codeowners:
- '@garbled1'
- '@epenet'
ha_domain: onewire
---
@ -34,7 +35,7 @@ Notes:
- The TAI-8570 Pressure Sensor is based on a 1-wire composite device by AAG Electronica. It contains, above 1-wire components, also a barometer, hygrometer and illuminance sensors. This onewire platform can read and present values from that device.
- Each 1-wire component data sheet describes the different properties the component provides. The owfs software adds some extra tools to make it easier for DIY implementers to use the component. By hobbyists, it is quite common to use DS2438 Smart Battery Monitor as a multipurpose measurement node that can place temperature, humidity and luminosity on the 1-wire bus by just adding some standard components to the DS2438. For different component types, there are ready-made algorithms implemented in owfs. Those are exposed by the owfs software and can be read by this platform. The B1-R1-A/pressure is exposed as a barometric pressure sensor. S2-R1-A/illuminance is presented as an illuminance sensor. For a more detailed description of these properties, refer to the [owfs documentation](https://owfs.org/index_php_page_ds2438.html).
- Each 1-wire component data sheet describes the different properties the component provides. The [owfs software](https://github.com/owfs/owfs) adds some extra tools to make it easier for DIY implementers to use the component. By hobbyists, it is quite common to use DS2438 Smart Battery Monitor as a multipurpose measurement node that can place temperature, humidity and luminosity on the 1-wire bus by just adding some standard components to the DS2438. For different component types, there are ready-made algorithms implemented in owfs. Those are exposed by the owfs software and can be read by this platform. The B1-R1-A/pressure is exposed as a barometric pressure sensor. S2-R1-A/illuminance is presented as an illuminance sensor. For a more detailed description of these properties, refer to the [owfs documentation](https://owfs.org/index_php_page_ds2438.html).
For this component, the more basic quantities temperature, VAD, VDD and IAD is exported as separate sensors.
- Hobbyboards is a company that has been selling DIY boards of different kinds. The company has been away from the market for some time, so no reference to the boards can be made. This platform has an implementation for some of those.
@ -44,9 +45,9 @@ Notes:
The 1-Wire bus can be connected directly to the IO pins of Raspberry Pi or by using a dedicated interface adapter, for example
[DS9490R](https://datasheets.maximintegrated.com/en/ds/DS9490-DS9490R.pdf) or adapters based on [DS2482-100](https://datasheets.maximintegrated.com/en/ds/DS2482-100.pdf) that can be directly attached to the IO pins on the Raspberry Pi.
It is also possible for this platform to interface with a remote 1-wire host over a network connection using ofws and owserver.
It is also possible for this platform to interface with a remote 1-wire host over a network connection using owfs and owserver.
## Raspberry Pi set up
### Raspberry Pi set up
In order to setup 1-Wire support on Raspberry Pi, you'll need to edit `/boot/config.txt`. This file can not be edited through ssh. You have to put your SD card to a PC, and edit the file directly.
To edit `/boot/config.txt` on the Home Assistant Operating System, use [this documentation](https://developers.home-assistant.io/docs/operating-system/debugging.html) to enable SSH and edit `/mnt/boot/config.txt` via `vi`.
@ -81,28 +82,14 @@ You can read about further parameters in this documentation: [Raspberry Pi Tutor
When using the GPIO pins on Raspberry Pi directly as a 1-wire bus, the description above uses two kernel modules. `1w_gpio`, that implements the 1-wire protocol, and `1w_therm`, that understands the DS18B20 (family 28) components inner structure and reports temperature.
There is no support for other device types (families) and hence this onewire platform only supports temperature measurements from family 28 devices.
## Raspberry Pi checking connected devices via ssh
### Raspberry Pi checking connected devices via ssh
If you set up ssh, you can check the connected one-wire devices in the following folder: /sys/bus/w1/devices
The device IDs begin with `28-`.
## Interface adapter setup
### owserver
`owsever` on Linux hosts is part of the [owfs 1-Wire file system](https://owfs.org/). When a 1-wire interface adapter is used, you can access sensors on a remote or local Linux host that is running `owserver`. `owserver` by default runs on port 4304. Use the `host` option to specify the host or IP of the remote server, and the optional `port` option to change the port from the default.
### owfs - (Soon to be deprecated)
It is also possible to use `owfs`, the filesystem portion of the package, to access 1-wire sensors but not advised as it will be deprecated in an upcoming release. See this [pull request](https://github.com/home-assistant/core/pull/42041) for more information.
The [owfs project page on GitHub](https://github.com/owfs/owfs) says:
> Despite the project name, the owfs package itself is **NOT** recommended for any real use, it has well known issues with races etc.
If you still choose to use `owfs`, the `mount_dir` option must be configured to correspond to a directory, where owfs device tree has been mounted. On systems where Home Assistant runs in a Docker container `owfs` cannot escape that environment and hence cannot populate the `mount_dir`. Use the `owserver` method on these systems instead.
`owserver` on Linux hosts is part of the [owfs 1-Wire file system](https://owfs.org/). When a 1-wire interface adapter is used, you can access sensors on a remote or local Linux host that is running `owserver`. `owserver` by default runs on port 4304. Use the `host` option to specify the host or IP of the remote server, and the optional `port` option to change the port from the default.
## Configuration
@ -119,10 +106,6 @@ names:
description: ID and friendly name of your sensors.
required: false
type: string
mount_dir:
description: Location of device tree if owfs driver used.
required: false
type: string
host:
description: Remote or localhost running owserver.
required: false

View File

@ -66,6 +66,15 @@ this operation.
| ---------------------- | -------- | -------------------------------------------------- |
| `instance_id` | no | The OZW Instance/Controller to use, defaults to 1. |
### Service `ozw.cancel_command`
This service will cancel a pending command. Typically used if the add or remove node
services have been called but no node was added or removed.
| Service Data Attribute | Required | Description |
| ---------------------- | -------- | -------------------------------------------------- |
| `instance_id` | no | The OZW Instance/Controller to use, defaults to 1. |
### Service `ozw.set_usercode`
This service will set the usercode to X at code slot Y.
@ -98,7 +107,24 @@ LED colors on switches.
| `instance_id` | no | The OZW Instance/Controller to use, defaults to 1. |
| `node_id` | yes | Node id of the device to set configuration parameter to (integer). |
| `parameter` | yes | Parameter number to set (integer). |
| `value` | yes | Value to set for parameter. (String or integer value for list, string for bool parameters, integer for others). |
| `value` | yes | Value to set for parameter. (String or integer value for list, string or boolean for bool parameters, list of dicts for bitset parameters (see example below), integer for others). |
#### Example BitSet service call
Here is an example of what to send to the service for a BitSet parameter:
```yaml
node_id: 4
parameter: 5
value:
- position: 1
value: true
- label: Humidity
value: false
- position: 3
value: false
```
## Events

View File

@ -6,8 +6,6 @@ ha_category:
ha_release: 0.17
ha_iot_class: Local Polling
ha_domain: panasonic_viera
ha_codeowners:
- '@joogps'
ha_config_flow: true
---

View File

@ -8,7 +8,7 @@ ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/frontend'
ha_domain: panel_custom
ha_iot_class: ~
ha_iot_class:
---
The `panel_custom` support allows you to add additional panels to your Home Assistant frontend. The panels are listed in the sidebar if wished and can be highly customized. See the developer documentation on [instructions how to build your own panels](https://developers.home-assistant.io/docs/frontend/custom-ui/creating-custom-panels/).

View File

@ -70,6 +70,15 @@ Plays a song, album, artist, playlist, TV show/season/episode, movie, or video o
Required fields within the `media_content_id` payloads are marked as such, others are optional.
<div class='note info'>
Refer to these links if casting to non-Plex players:
- [Chromecast](/integrations/cast/#plex)
- [Sonos](/integrations/plex#sonos-playback)
</div>
#### Music
| Service data attribute | Description |

View File

@ -0,0 +1,37 @@
---
title: Profiler
description: Profile Home Assistant.
ha_category:
- Utility
ha_release: 0.117
ha_quality_scale: internal
ha_domain: profiler
ha_codeowners:
- '@bdraco'
ha_config_flow: true
---
The Profiler integration provides a profile which is a set of statistics that identifies how much time each part of Home Assistant is taking. It can help track down a performance issue or provide insight about a misbehaving integration.
## Configuration
To add `Profiler` to your installation, go to **Configuration** >> **Integrations** in the UI, click the button with `+` sign and from the list of integrations select **Profiler**.
### Service `profiler.start`
Start the profiler for the specified number of seconds.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `seconds` | yes | The number of seconds to run the profile. Defaults to 60.0
When the profile is complete, Profiler will generate a Python `cprof` and a `callgrind.out` file in your configuration directory. The exact path to these files will appear in a persistent notification so they can be easily located and copied to your desktop.
The `cprof` file can be viewed with:
[SnakeViz](https://jiffyclub.github.io/snakeviz/)
[Gprof2dot](https://github.com/jrfonseca/gprof2dot)
Additionally, the profiler will generate a `callgrind.out` file that can be viewed with:
[kcachegrind](https://kcachegrind.github.io/) or qcachegrind

View File

@ -7,7 +7,7 @@ ha_category:
ha_release: 0.13
ha_quality_scale: internal
ha_domain: proximity
ha_iot_class: ~
ha_iot_class:
---
The `proximity` integration allows you to monitor the proximity of devices to a particular [zone](/integrations/zone/) and the direction of travel. The result is an entity created in Home Assistant which maintains the proximity data.

View File

@ -6,7 +6,6 @@ ha_category:
- Notifications
ha_iot_class: Cloud Push
ha_release: 0.39
ha_iot_class: Cloud Push
ha_domain: pushsafer
---

View File

@ -84,14 +84,56 @@ The `rachio` switch platform allows you to toggle zones and schedules connected
Once configured, a switch will be added for every zone that is enabled on every controller in the account provided and a switch to start or stop every schedule on a controller. There will also be a switch to toggle each controller's standby mode, as well as to activate a 24 hour rain delay on the device.
## Service
## Services
Rachio has one service that allows for setting the moisture percentage of a zone or group of zones. As Rachio only uses moisture levels for zones in a Flex Daily schedule, this service is only available when at least one zone is part of a Flex Daily schedule.
### Service `rachio.start_multiple_zone_schedule`
Allows a list of zones to be passed with a corresponding list of durations to create a custom schedule directly from Home Assistant.
<div class='note'>
It is not currently possible to have zones from multiple controllers in the same custom schedule.
</div>
Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | no | List of zones to run. Will be run in the order listed.
| `duration` | no | Duration in minutes to run the zones. If a list of durations is provided, each duration will apply to the corresponding zone listed above. Alternatively, one duration can be provided and will be used for all zones.
### Examples
```yaml
#Example sctipt to start multiple zones with individual duration for each zone.
script:
run_grass_zones:
sequence:
- service: rachio.start_multiple_zone_schedule
data:
entity_id:
- switch.front_yard_west
- switch.front_yard_east
- switch.side_yard_west
duration: 20, 15, 10
```
```yaml
#Example sctipt to start multiple zones with one duration for all zones.
script:
run_grass_zones:
sequence:
- service: rachio.start_multiple_zone_schedule
data:
entity_id:
- switch.front_yard_west
- switch.front_yard_east
- switch.side_yard_west
duration: 20
```
### Service `rachio.set_zone_moisture_percent`
Set the zone moisture percentage for a zone or group of zones.
Rachio allows for setting the moisture percentage of a zone or group of zones. As Rachio only uses moisture levels for zones in a Flex Daily schedule, this service is only available when at least one zone is part of a Flex Daily schedule.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String, list or group of zones to set moisture percentage.

View File

@ -22,47 +22,10 @@ There is currently support for the following device types within Home Assistant:
- Sensor
- [Switch](#switch)
## Base Configuration
## Configuration
To connect to your RainMachine device, add the following to your `configuration.yaml` file:
```yaml
rainmachine:
controllers:
- ip_address: 192.168.1.100
password: YOUR_PASSWORD
```
{% configuration %}
ip_address:
description: The IP address or hostname of your RainMachine unit.
required: false
type: string
password:
description: Your RainMachine password.
required: true
type: string
port:
description: The TCP port used by your unit for the REST API.
required: false
type: integer
default: 8080
ssl:
description: Whether communication with the local device should occur over HTTPS.
required: false
type: boolean
default: true
scan_interval:
description: The frequency (in seconds) between data updates.
required: false
type: integer
default: 60
zone_run_time:
description: The default number of seconds that a zone should run when turned on.
required: false
type: integer
default: 600
{% endconfiguration %}
This integration can be configured via the Home Assistant UI by navigating to
**Configuration** -> **Integrations**.
## Services

View File

@ -3,7 +3,7 @@ title: Remote
description: Instructions on how to setup your remotes with Home Assistant.
ha_release: 0.34
ha_domain: remote
ha_iot_class: ~
ha_iot_class:
---
Keeps track which remotes are in your environment, their state and allows you to control them.

View File

@ -10,13 +10,15 @@ ha_category:
- Sensor
ha_iot_class: Local Push
ha_release: pre 0.7
ha_config_flow: true
ha_codeowners:
- '@danielhiversen'
- '@elupus'
- '@RobBie1221'
ha_domain: rfxtrx
---
The `rfxtrx` integration supports RFXtrx devices by [RFXCOM](http://www.rfxcom.com), which communicate in the frequency range of 433.92 MHz.
The RFXtrx integration supports RFXtrx devices by [RFXCOM](http://www.rfxcom.com), which communicate in the frequency range of 433.92 MHz.
There is currently support for the following device types within Home Assistant:
@ -26,96 +28,319 @@ There is currently support for the following device types within Home Assistant:
- [Sensor](#sensors)
- [Binary Sensor](#binary-sensors)
To enable RFXtrx in your installation, something like the following to your `configuration.yaml` file.
## Configuration
*Direct serial connection*
To add RFXtrx integration go to **Configuration** >> **Integrations** and find the integration in the list. Choose between **Serial** or **Network**. For network configure host and port. For serial, a list of detected devices is presented. Choose the RFXCOM device or select **Enter Manually** to fill in the USB path manually.
To receive debug logging from the RFXCOM device, add the following lines to `configuration.yaml`:
```yaml
# Example configuration.yaml entry for local serial device
rfxtrx:
device: /dev/ttyUSB0
logger:
log:
RFXtrx: debug
```
*Network connection*
## Supported protocols
```yaml
# Example configuration.yaml entry for TCP connected device using ser2net
rfxtrx:
host: 192.168.0.2
port: 50000
Not all protocols as advertised are enabled on the initial setup of your transceiver. Enabling all protocols is not recommended either. Your 433.92 product not showing in the logs? Visit the RFXtrx website to [download RFXmgmr](http://www.rfxcom.com/epages/78165469.sf/en_GB/?ViewObjectPath=%2FShops%2F78165469%2FCategories%2FDownloads) and enable the required protocol.
## ser2net
You can host your device on another computer by setting up ser2net and example configuration for ser2net looks like this and then using host/port in your Home Assistant configuration.
```text
50000:raw:0:/dev/ttyUSB0:38400 8DATABITS NONE 1STOPBIT
```
*Network connection with multiple devices*
## Settings options
```yaml
# Example configuration with several devices
rfxtrx:
host: 192.168.0.2
port: 50000
devices:
# Siemens/LightwaveRF Shutter
0b1100ce3213c7f210010f70:
# RFY Shutter
071a00000a000101:
To configure options for RFXtrx integration go to **Configuration** >> **Integrations** and press **Options** on the RFXtrx card.
# Light 1
0b11000f10e9e5660b010f70:
# Light TV
0b1100100f29e5660c010f70:
<img src='/images/integrations/rfxtrx/options.png' />
# Binary Sensor
0913000022670e013b70:
### Automatic add
# Binary Sensor with data bits setup
0913000022670e013b70:
device_class: opening
data_bits: 4
command_on: 0xe
command_off: 0x7
In the options menu, select *Enable automatic add* to enable automatic addition of detected devices. This is the easiest way to detect binary sensors, sensors or switches from a physical device. Once automatic add is enabled, newly detected devices are automatically added and can be found by clicking devices on the RFXtrx integration card.
# Switch 1
0b1100ce3213c7f210010f70:
# Switch 2
0b11000a02ef2gf210010f50:
# Switch 3
0b1111e003af16aa10000060:
fire_event: true
#### Covers
# Sensor
0a52080000301004d240259:
The RFXtrx integration supports Siemens/LightwaveRF and RFY roller shutters that communicate in the frequency range of 433.92 MHz.
#### Lights
The RFXtrx integration support lights that communicate in the frequency range of 433.92 MHz.
Make sure you trigger a dimming command to get switches detected as lights otherwise, they will show up as switches.
#### Switches
The RFXtrx integration support switches that communicate in the frequency range of 433.92 MHz.
#### Sensors
The RFXtrx integration support sensors that communicate in the frequency range of 433.92 MHz.
Also, several switches and other devices will also expose sensor entities with battery status as well as the signal level.
#### Binary Sensors
The RFXtrx integration support binary sensors that communicate in the frequency range of 433.92 MHz. The RFXtrx binary sensor integration provides support for them. Many cheap sensors available on the web today are based on a particular RF chip called *PT-2262*. Depending on the running firmware on the RFXcom box, some of them may be recognized under the X10 protocol, but most of them are recognized under the *Lighting4* protocol. The RFXtrx binary sensor integration provides some special options for them, while other RFXtrx protocols should work too.
### Add a device by event code
To manually add a device, in the options window, an event code can be added in the field *Enter event code to add*.
See [Generate codes](#generate-codes) how to generate event codes.
#### RFY
The [RFXtrx433e](http://www.rfxcom.com/RFXtrx433E-USB-43392MHz-Transceiver/en) is required for RFY support, however, it does not support receive for the RFY protocol - as such devices cannot be automatically added. Instead, configure the device in the [rfxmngr](http://www.rfxcom.com/downloads.htm) tool. Make a note of the assigned ID and Unit Code and then add a device to the configuration with the following id `071a0000[id][unit_code]`. E.g., if the id was `0a` `00` `01`, and the unit code was `01` then the fully qualified id would be `071a00000a000101`, if you set your id/code to single digit in the rfxmngr, e.g., id: `1` `02` `04` and unit code: `1` you will need to add `0` before, so `102031` becomes `071a000001020301`.
#### Convert switch event to dimming event
To convert a standard switch to a light, use the [Light Switch](/integrations/light.switch/) component.
To convert a switch to a dimmable light, make sure the event contains a dimming command. You can usually convert a command by changing one byte.
<img src='/images/integrations/rfxtrx/switch_light.png' />
Copy the event code from the state attribute of the switch, which shows up on the bottom of the window when clicking on the switch entity. Examples of byte changes:
*ARC:*<br>
0b11000248bc0cfe09 **01** 0f70<br>
0b11000248bc0cfe09 **02** 0f70
*LightwaveRF:*<br>
0a14000101f20302 **01** 0080<br>
0a14000101f20302 **10** 0080
*Waveman:*<br>
710030e4102 **01** 50<br>
710030e4102 **02** 50
### Configure device options
To configure device options, select a device from the list under *Select device to configure*. After pressing *Submit* a window with device options are presented based on the device type.
<div class='note warning'>
If a device is missing from the list, close the options window and either make sure the device sents a command or manually re-add the device by event code.
</div>
#### Signal repetitions
Because the RFXtrx device sends its actions via radio and from most receivers it's impossible to know if the signal was received or not. Therefore you can configure the RFXtrx device to try to send each signal repeatedly.
#### Device events
To enable device events, use the checkbox *Enable device event*. See [Events](#events) for more information about device events.
#### Off Delay
Binary sensors have only two states - "on" and "off". Many door or window opening sensors will send a signal each time the door/window is open or closed. However, depending on their hardware or on their purpose, some sensors are only able to signal their "on" state:
- Most motion sensors send a signal each time they detect motion. They stay "on" for a few seconds and go back to sleep, ready to signal other motion events. Usually, they do not send a signal when they go back to sleep.
- Some doorbells may also only send "on" signals when their toggle switch is pressed, but no "off" signal when the switch is released.
For those devices, use the *off_delay* parameter. It defines a delay after, which a device will go back to an "Off" state. That "Off" state will be fired internally by Home Assistant, just as if the device fired it by itself. If a motion sensor can only send signals once every 5 seconds, sets the *off_delay* parameter to *seconds: 5*.
#### Options for PT-2262 devices under the Lighting4 protocol
When a data packet is transmitted by a PT-2262 device using the Lighting4 protocol, there is no way to automatically extract the device identifier and the command from the packet. Each device has its own id/command length combination and the field lengths are not included in the data. One device that sends 2 different commands will be seen as 2 devices on Home Assistant. For such cases, the following options are available in order to circumvent the problem:
- **data_bits**
- **command_on**
- **command_off**
Let's try to add a new PT-2262 sensor using the "automatic_add" option and have a look at Home Assistant system log.
Have your sensor trigger the "On" state for the first time.
Some messages will appear:
```text
INFO (Thread-6) [homeassistant.components.binary_sensor.rfxtrx] Added binary sensor 0913000022670e013970 (Device_id: 22670e Class: LightingDevice Sub: 0)
```
*Use remote to enable scene (using event_data)*
Here the sensor has the id *22670e*.
Now have your sensor trigger the "Off" state and look for the following message in the Home Assistant log. You should see that your device has been detected as a *new* device when triggering its "Off" state:
```text
INFO (Thread-6) [homeassistant.components.binary_sensor.rfxtrx] Added binary sensor 09130000226707013d70 (Device_id: 226707 Class: LightingDevice Sub: 0)
```
Here the device id is *226707*, which is almost similar to the *22670e* we had on the "On" event a few seconds ago.
From those two values, you can guess that the actual id of your device is *22670*, and that *e* and *7* are commands for "On" and "Off" states respectively. As one hexadecimal digit uses 4 bits, we can conclude that the device is using 4 data bits.
So, here is the actual configuration section for the binary sensor:
```yaml
rfxtrx:
host: 192.168.0.2
port: 50000
devices:
# Light 1
0b1100ce3213c7f210010f70:
# LIght 2
0b11000a02ef2gf210010f50:
# Keychain remote
0b1111e003af16aa10000060:
fire_event: true
data_bits: 4
command_on: 0xe
command_off: 0x7
```
The *automatic_add* option makes the RFXtrx binary sensor integration calculate
and display the configuration options for you in the Home Assistant logs:
```text
INFO (Thread-6) [homeassistant.components.rfxtrx] rfxtrx: found possible device 226707 for 22670e with the following configuration:
data_bits=4
command_on=0xe
command_off=0x7
INFO (Thread-6) [homeassistant.components.binary_sensor.rfxtrx] Found possible matching deviceid 22670e.
```
This automatic guess should work most of the time, but there is no guarantee on that. You should activate it only when you want to configure your new devices and leave it off otherwise.
#### Replace device
Some battery-powered devices send commands or data with a randomly generated id. When batteries are replaced, the id changes. In order to use the device, it needs to be re-added either through automatic add or manually. This will create a new device. To transfer user-configured names and entity ids of the old device, select the old device in the options menu under *Select device to configure*. In the device options menu, select from the *Select device to replace* menu the new device and press *Submit*. The names and ids of the old device will be transferred to the new device and the old device will be automatically deleted.
### Delete device
To delete device(s) from the configuration, select one or more devices under *Select device to delete*. Press *Submit* to delete the selected devices.
## Events
The RFXtrx integration will signal an event on the reception of messages from and RFXtrx device on the following form. For the signal to be available, the `fire_event` parameter must be set on the device in configuration.
*Signal from a byron doorbell button:*
```yaml
packet_type: 22
sub_type: 0
type_string: "Byron SX"
id_string: "00:90"
data: "0716000100900970"
values:
Sound: 9
Battery numeric: 0
Rssi numeric: 7
```
*Event data from a Nexa wall socket switch:*
```yaml
packet_type: 16
sub_type: 1
type_string: 'ARC'
id_string': 'C3'
data: '0710010143030170'
values':
Command: 'On'
Rssi numeric': 7
```
You can set up automations to react to these events. When you do, don't include more fields than needed. Always include the device identifying fields, `packet_type`, `sub_type` and `id_string`.
So, for example, to trigger an action when somebody presses the doorbell, you would set up an automation with the following trigger:
*Automation trigger:*
```yaml
- platform: event
event_type: rfxtrx_event
event_data:
packet_type: 22
sub_type: 0
id_string: "00:90"
values:
Sound: 9
```
*A more complete example with scene activation:*
```yaml
light:
platform: demo
scene:
name: Livingroom
name: WelcomeScene
entities:
switch.light1: on
switch.light2: on
light.bed_light: on
light.ceiling_lights: off
automation:
- alias: Use remote to enable scene
- alias: Use doorbell button to trigger scene
trigger:
platform: event
event_type: button_pressed
event_data: {"state": "on", "entity_id": "switch.keychain_remote"}
- platform: event
event_type: rfxtrx_event
event_data:
packet_type: 22
sub_type: 0
id_string: "00:90"
values:
Sound: 9
action:
service: scene.turn_on
entity_id: scene.livingroom
entity_id: scene.welcomescene
```
## Services
- `rfxtrx.send`: Send a custom event using the RFXtrx device.
#### Service: Send
Simulate a button being pressed:
```yaml
...
action:
service: rfxtrx.send
data:
event: 0b1111e003af16aa10000060
```
## Generate codes
If you need to generate codes for switches and lights, you can use a template (useful, for example, COCO switches).
- Go to home-assistant-IP:8123/dev-template
- Use the following codes to generate an event:
*Switch: ARC*
{% raw %}
```yaml
0b11000{{ range(100,700) | random | int }}bc0cfe0{{ range(0,10) | random | int }}010f70
```
{% endraw %}
*Light: ARC*
{% raw %}
```yaml
0b11000{{ range(100,700) | random | int }}bc0cfe0{{ range(0,10) | random | int }}020f70
```
{% endraw %}
*Light: Lightwave RF*
{% raw %}
```yaml
0a14000{{ range(100,700) | random | int }}bc0cf{{ range(0,10) | random | int }}100f70
```
{% endraw %}
- Use this code to add a new switch in the options menu.
- Launch your Home Assistant and go to the website.
- Enable learning mode on your switch (i.e., push learn button or plug it in a wall socket)
- Toggle your new switch in the Home Assistant interface
## Configuration import
When RFXtrx integration is configured in `configuration.yaml`, the configuration will be imported once. After import, the configuration can be removed from `configuration.yaml`.
{% configuration %}
device:
description: "The path to your device, e.g., `/dev/serial/by-id/usb-RFXCOM_RFXtrx433_A1Y0NJGR-if00-port0` or `/dev/ttyUSB0`. Required if you are using a locally connected USB device."
@ -184,346 +409,3 @@ automatic_add:
If a device ID consists of only numbers, please make sure to surround it with quotes.
This is a known limitation in YAML, because the device ID will be interpreted as a number otherwise.
</div>
## Supported protocols
Not all protocols as advertised are enabled on the initial setup of your transceiver. Enabling all protocols is not recommended either. Your 433.92 product not showing in the logs? Visit the RFXtrx website to [download RFXmgmr](http://www.rfxcom.com/epages/78165469.sf/en_GB/?ViewObjectPath=%2FShops%2F78165469%2FCategories%2FDownloads) and enable the required protocol.
### ser2net
You can host your device on another computer by setting up ser2net and example configuration for ser2net looks like this and then using host/port in your Home Assistant configuration.
```text
50000:raw:0:/dev/ttyUSB0:38400 8DATABITS NONE 1STOPBIT
```
## Setting up your devices
Once you have set up your [RFXtrx hub](/integrations/rfxtrx/), the easiest way
to find your binary sensors is to enable automatic add in `configuration.yaml`:
```yaml
rfxtrx:
automatic_add: true
host: 192.168.0.2
port: 50000
```
Open your Home Assistant frontend and go to the "states" page.
Then make sure to trigger your sensor. You should see several new entities
appear in the *Current entities* list, by looking at the entities attribute, you can look at the last received event, which can be added to the configuration.
For example: "0913000022670e013b70". Then you should update your configuration to:
```yaml
rfxtrx:
automatic_add: false
host: 192.168.0.2
port: 50000
devices:
0913000022670e013b70:
```
### Covers
The `rfxtrx` platform supports Siemens/LightwaveRF and RFY roller shutters that communicate in the frequency range of 433.92 MHz.
##### RFY
The [RFXtrx433e](http://www.rfxcom.com/RFXtrx433E-USB-43392MHz-Transceiver/en) is required for RFY support, however, it does not support receive for the RFY protocol - as such devices cannot be automatically added. Instead, configure the device in the [rfxmngr](http://www.rfxcom.com/downloads.htm) tool. Make a note of the assigned ID and Unit Code and then add a device to the configuration with the following id `071a0000[id][unit_code]`. E.g., if the id was `0a` `00` `01`, and the unit code was `01` then the fully qualified id would be `071a00000a000101`, if you set your id/code to single digit in the rfxmngr, e.g., id: `1` `02` `04` and unit code: `1` you will need to add `0` before, so `102031` becomes `071a000001020301`.
### Lights
The `rfxtrx` platform support lights that communicate in the frequency range of 433.92 MHz.
Make sure you trigger a dimming command to get switches detected as lights otherwise, they will show up as switches.
#### Convert switch event to dimming event
To convert a standard switch to a light, use the [Light Switch](/integrations/light.switch/) component.
To convert a switch to a dimmable light, make sure the event contain a dimming command. You can usually convert a command by changing one byte.
*ARC:*<br>
0b11000248bc0cfe09 **01** 0f70<br>
0b11000248bc0cfe09 **02** 0f70
*LightwaveRF:*<br>
0a14000101f20302 **01** 0080<br>
0a14000101f20302 **10** 0080
*Waveman:*<br>
710030e4102 **01** 50<br>
710030e4102 **02** 50
### Switches
The `rfxtrx` platform support switches that communicate in the frequency range of 433.92 MHz.
### Sensors
The `rfxtrx` platform support sensors that communicate in the frequency range of 433.92 MHz.
Also, several switches and other devices will also expose sensor entities with battery status as well as the signal level.
### Binary Sensors
The `rfxtrx` platform support binary sensors that
communicate in the frequency range of 433.92 MHz.
The RFXtrx binary sensor integration provides support for them.
Many cheap sensors available on the web today are based on a particular RF chip
called *PT-2262*. Depending on the running firmware on the RFXcom box, some of
them may be recognized under the X10 protocol, but most of them are recognized
under the *Lighting4* protocol. The RFXtrx binary sensor integration provides
some special options for them, while other RFXtrx protocols should work too.
#### Off Delay
Binary sensors have only two states - "on" and "off". Many door or window
opening sensors will send a signal each time the door/window is open or closed.
However, depending on their hardware or on their purpose,
some sensors are only able to signal their "on" state:
- Most motion sensors send a signal each time they detect motion. They stay "on" for a few seconds and go back to sleep, ready to signal other motion events. Usually, they do not send a signal when they go back to sleep.
- Some doorbells may also only send "on" signals when their toggle switch is pressed, but no "off" signal when the switch is released.
For those devices, use the *off_delay* parameter.
It defines a delay after, which a device will go back to an "Off" state.
That "Off" state will be fired internally by Home Assistant, just as if
the device fired it by itself. If a motion sensor can only send signals
once every 5 seconds, sets the *off_delay* parameter to *seconds: 5*.
Example configuration:
```yaml
rfxtrx:
automatic_add: false
host: 192.168.0.2
port: 50000
devices:
091300006ca2c6001080:
device_class: motion
off_delay:
seconds: 5
```
#### Options for PT-2262 devices under the Lighting4 protocol
When a data packet is transmitted by a PT-2262 device using the Lighting4
protocol, there is no way to automatically extract the device identifier and the
command from the packet. Each device has its own id/command length combination
and the field lengths are not included in the data. One device that sends 2
different commands will be seen as 2 devices on Home Assistant. For such cases,
the following options are available in order to circumvent the problem:
- **data_bits** (*Optional*)
- **command_on** (*Optional*)
- **command_off** (*Optional*)
Let's try to add a new PT-2262 sensor using the "automatic_add"
option and have a look at Home Assistant system log.
Have your sensor trigger the "On" state for the first time.
Some messages will appear:
```text
INFO (Thread-6) [homeassistant.components.binary_sensor.rfxtrx] Added binary sensor 0913000022670e013970 (Device_id: 22670e Class: LightingDevice Sub: 0)
```
Here the sensor has the id *22670e*.
Now have your sensor trigger the "Off" state and look for the following
message in the Home Assistant log. You should see that your device
has been detected as a *new* device when triggering its "Off" state:
```text
INFO (Thread-6) [homeassistant.components.binary_sensor.rfxtrx] Added binary sensor 09130000226707013d70 (Device_id: 226707 Class: LightingDevice Sub: 0)
```
Here the device id is *226707*, which is almost similar to
the *22670e* we had on the "On" event a few seconds ago.
From those two values, you can guess that the actual id of your device is
*22670*, and that *e* and *7* are commands for "On" and "Off" states
respectively. As one hexadecimal digit uses 4 bits,
we can conclude that the device is using 4 data bits.
So, here is the actual configuration section for the binary sensor:
```yaml
rfxtrx:
automatic_add: false
host: 192.168.0.2
port: 50000
devices:
0913000022670e013b70:
device_class: opening
data_bits: 4
command_on: 0xe
command_off: 0x7
```
The *automatic_add* option makes the RFXtrx binary sensor integration calculate
and display the configuration options for you in the Home Assistant logs:
```text
INFO (Thread-6) [homeassistant.components.rfxtrx] rfxtrx: found possible device 226707 for 22670e with the following configuration:
data_bits=4
command_on=0xe
command_off=0x7
INFO (Thread-6) [homeassistant.components.binary_sensor.rfxtrx] Found possible matching deviceid 22670e.
```
This automatic guess should work most of the time, but there is
no guarantee on that. You should activate it only when you
want to configure your new devices and leave it off otherwise.
#### Known working devices
The following devices are known to work with the RFXtrx binary sensor component.
There are too many other to list.
- Motion detectors:
- Kerui P817 and P829.
- Chuango PIR-700.
- Door / window sensors:
- Kerui D026 door / window sensor: can trigger on "open" and "close". Has a tamper switch.
- Nexa LMST-606.
## Events
The RFXtrx integration will signal an event on the reception of messages from and RFXtrx device on the following form. For the signal to be available, the `fire_event` parameter must be set on the device in configuration.
*Signal from a byron doorbell button:*
```yaml
packet_type: 22
sub_type: 0
type_string: "Byron SX"
id_string: "00:90"
data: "0716000100900970"
values:
Sound: 9
Battery numeric: 0
Rssi numeric: 7
```
*Event data from a Nexa wall socket switch:*
```yaml
packet_type: 16
sub_type: 1
type_string: 'ARC'
id_string': 'C3'
data: '0710010143030170'
values':
Command: 'On'
Rssi numeric': 7
```
You can setup automations to react to these events. When you do don't include more fields than needed. Always include the device identifying fields, `packet_type`, `sub_type` and `id_string`.
So, for example, to trigger an action when somebody presses the doorbell, you would set up an automation with the following trigger:
*Automation trigger:*
```yaml
- platform: event
event_type: rfxtrx_event
event_data:
packet_type: 22
sub_type: 0
id_string: "00:90"
values:
Sound: 9
```
*A more complete example with scene activation:*
```yaml
light:
platform: demo
scene:
name: WelcomeScene
entities:
light.bed_light: on
light.ceiling_lights: off
automation:
- alias: Use doorbell button to trigger scene
trigger:
- platform: event
event_type: rfxtrx_event
event_data:
packet_type: 22
sub_type: 0
id_string: "00:90"
values:
Sound: 9
action:
service: scene.turn_on
entity_id: scene.welcomescene
```
## Services
- `rfxtrx.send`: Send a custom event using the RFXtrx device.
#### Service: Send
Simulate a button being pressed:
```yaml
...
action:
service: rfxtrx.send
data:
event: 0b1111e003af16aa10000060
```
## Generate codes
If you need to generate codes for switches and lights, you can use a template (useful for example COCO switches).
- Go to home-assistant-IP:8123/dev-template
- Use the follwing codes to generate an event:
*Switch: ARC*
{% raw %}
```yaml
0b11000{{ range(100,700) | random | int }}bc0cfe0{{ range(0,10) | random | int }}010f70
```
{% endraw %}
*Light: ARC*
{% raw %}
```yaml
0b11000{{ range(100,700) | random | int }}bc0cfe0{{ range(0,10) | random | int }}020f70
```
{% endraw %}
*Light: Lightwave RF*
{% raw %}
```yaml
0a14000{{ range(100,700) | random | int }}bc0cf{{ range(0,10) | random | int }}100f70
```
{% endraw %}
- Use this code to add a new switch in your `configuration.yaml`.
- Launch your Home Assistant and go to the website.
- Enable learning mode on your switch (i.e., push learn button or plug it in a wall socket)
- Toggle your new switch in the Home Assistant interface

View File

@ -40,4 +40,4 @@ Roon doesn't use file names or URLs to track media and so the roon integration i
| `media_content_type` | no | A media type. Currently supported are `radio`, `playlist` and `genre` |
For example to play BBC Radio 4 you would set `media_content_type` to `radio` and `media_content_id` to `BBC Radio 4`
For example to play BBC Radio 4 you would set `media_content_type` to `radio` and `media_content_id` to `BBC Radio 4`

View File

@ -0,0 +1,46 @@
---
title: Ruckus Unleashed
description: Instructions on how to integrate your Ruckus Unleashed device into Home Assistant.
ha_category:
- Presence Detection
ha_release: 0.117
ha_iot_class: Local Polling
ha_config_flow: true
ha_codeowners:
- '@gabe565'
ha_domain: ruckus_unleashed
---
This platform allows you to connect to a [Ruckus Unleashed](https://support.ruckuswireless.com/product_families/19-ruckus-unleashed) router.
There is currently support for the following device types within Home Assistant:
- **Presence Detection** - The platform will look at devices connected to the router and will create a `device_tracker` for each discovered device.
## Configuration
To add a Ruckus Unleashed device to your installation, go to **Configuration** -> **Integrations**, click the `+` button, then select **Ruckus** from the list of integrations.
You will have to create a user on the device which is a **Monitoring Admin**. Login to the Ruckus Unleashed admin UI and follow these steps:
- [Create a new role](https://docs.ruckuswireless.com/unleashed/200.1.9.12/t-ConfigUserRoles.html).
- Check **Allow Unleashed Administration**.
- Select the **Monitoring Admin (Monitoring and viewing operation status only)** radio button.
- [Create a new user](https://docs.ruckuswireless.com/unleashed/200.1.9.12/t-AddingNewUsersInternal.html) with the new role.
## Troubleshooting
For this platform to work, the Ruckus Unleashed device will need to be accessible over SSH. If you are having trouble with Home Assistant not connecting, make sure the user you created above can log in to SSH and can run privileged commands.
Terminal:
```bash
ssh <ruckus_ip>
Please login: <username>
Password: <password>
Welcome to Ruckus Unleashed Network Command Line Interface
ruckus> enable
ruckus# exit
Exit ruckus CLI.
```

View File

@ -8,7 +8,7 @@ ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'
ha_domain: scene
ha_iot_class: ~
ha_iot_class:
---
You can create scenes that capture the states you want certain entities to be. For example, a scene can specify that light A should be turned on and light B should be bright red.

View File

@ -8,7 +8,7 @@ ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'
ha_domain: script
ha_iot_class: ~
ha_iot_class:
---
The `script` integration allows users to specify a sequence of actions to be executed by Home Assistant. These are run when you turn the script on. The script integration will create an entity for each script and allow them to be controlled via services.

View File

@ -4,11 +4,10 @@ description: Internal search module for Home Assistant.
ha_category:
- Other
ha_release: 0.105
ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'
ha_domain: search
ha_iot_class: ~
ha_iot_class:
---
The `search` integration is an internally used integration by the

View File

@ -6,7 +6,7 @@ ha_category:
ha_release: 0.7
ha_quality_scale: internal
ha_domain: sensor
ha_iot_class: ~
ha_iot_class:
---
Sensors are gathering information about states and conditions.

View File

@ -109,7 +109,7 @@ registers:
default: int
type: string
structure:
description: "If data_type is custom specify here a double quoted Python struct format string to unpack the value. See Python documentation for details. Ex: >i."
description: "If `data_type` is custom specified a double-quoted Python struct is expected here, to format the string to unpack the value. See Python documentation for details. Example: `>i`."
required: false
type: string
{% endconfiguration %}

View File

@ -17,34 +17,20 @@ The `simplisafe` integration integrates [SimpliSafe home security](https://simpl
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.
- **Lock**: Reports on `Door Locks` and can be used to lock and unlock a lock.
- **CO Detector**: reports on the carbon monoxide sensor status*.
- **Entry Sensor**: reports on the current entry sensor status*.
- **Freeze Sensor**: reports on the freeze sensor temperature*.
- **Lock**: reports on `Door Locks` and can be used to lock and unlock a lock.
- **Motion Sensor**: triggers [events](#events) if the alarm is armed or if secret alerts are enabled in SimpliSafe.
- **Smoke Detector**: reports on the smoke sensor status*.
- **Water Sensor**: reports on water sensor status*.
* Sensor status is only available for SimpliSafe V3 systems and is updated once every 30 seconds, so information displayed in Home Assistant may be delayed.
## Configuration
To enable this component, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
simplisafe:
accounts:
- username: user@email.com
password: password123
```
{% configuration %}
username:
description: The email address of a SimpliSafe account.
required: true
type: string
password:
description: The password of a SimpliSafe account.
required: true
type: string
code:
description: A code to enable or disable the alarm in the frontend. *Under normal operation, the integration doesnt need a SimpliSafe keypad code.*
required: false
type: string
{% endconfiguration %}
This integration can be configured via the Home Assistant UI by navigating to
**Configuration** -> **Integrations**.
## Services

View File

@ -6,7 +6,7 @@ ha_category:
ha_release: 0.7
ha_quality_scale: internal
ha_domain: switch
ha_iot_class: ~
ha_iot_class:
---
Keeps track which switches are in your environment, their state and allows you to control them.

View File

@ -86,10 +86,6 @@ switch:
If you are using the state of a platform that takes extra time to load, the Template Switch may get an `unknown` state during startup. This results in error messages in your log file until that platform has completed loading. If you use `is_state()` function in your template, you can avoid this situation. For example, you would replace {% raw %}`{{ states.switch.source.state == 'on') }}`{% endraw %} with this equivalent that returns `true`/`false` and never gives an unknown result: {% raw %}`{{ is_state('switch.source', 'on') }}`{% endraw %}
### Working without entities
If you use a template that depends on the current time or some other non-deterministic result not sourced from entities, the template won't repeatedly update but will only update when the state of a referenced entity updates. For ways to deal with this issue, see [Working without entities](/integrations/binary_sensor.template/#working-without-entities) in the Template Binary Sensor integration.
## Examples
In this section you find some real-life examples of how to use this switch.

View File

@ -6,7 +6,7 @@ ha_category:
ha_release: 0.87
ha_quality_scale: internal
ha_domain: system_health
ha_iot_class: ~
ha_iot_class:
---
The System Health integration provides an API to offer information on the system and its components. It also allows to run diagnostic tools to diagnose problems.
@ -20,4 +20,4 @@ system_health:
System Health integration data can be viewed at **Configuration** -> **Info**.
Data includes information about your system architecture, operating system and version, Home Assistant installation type and version, Python version, frontend version, the number of [Lovelace Dashboards and Views](/lovelace/dashboards-and-views/) you have, and more.
Data includes information about your system architecture, operating system and version, Home Assistant installation type and version, Python version, frontend version, the number of [Lovelace Dashboards and Views](/lovelace/dashboards-and-views/) you have, and more.

View File

@ -9,7 +9,7 @@ ha_codeowners:
- '@dmulcahey'
ha_domain: tag
ha_quality_scale: internal
ha_iot_class: ~
ha_iot_class:
---
<p class='img'>

View File

@ -0,0 +1,44 @@
---
title: Tasmota (beta)
description: Instructions on how to integrate Tasmota with Home Assistant.
ha_category:
- Binary Sensor
- Light
- Sensor
- Switch
ha_release: '0.117'
ha_iot_class: Local Push
ha_config_flow: true
ha_codeowners:
- '@emontnemery'
ha_domain: tasmota
---
This integration allows you to control Tasmota devices over MQTT.
## Requirements
- MQTT server and the [MQTT integration](/integrations/mqtt/) set up in Home Assistant.
- Tasmota devices flashed with 9.0.0.3 or later
- Tasmota devices configured for native discovery (`SetOption19 0`)
## Limitations
Lights, relays, sensors and switches are supported.
- Lights will be added as Home Assistant `light` entities.
- Relays will be added as Home Assistant `switch` entities, if `SetOption30 = 0`. If `SetOption30 = 1`, relays will be added as `light` entities.
- Sensors will be added as Home Assistant `sensor` entities.
- Switches will be added as Home Assistant `binary_sensor` entities or `automation triggers` depending by the `switchmode` used. To enable them, `switchtopic` needs to be set. If there are no corresponding power device (light, relay, etc.) the `switch` will be added automatically.
- Buttons will be added as Home Assistant `automation triggers` when `SetOption73` is enabled.
## Configuration
This integration can be configured using the integrations in the
Home Assistant frontend.
Menu: **Configuration** -> **Integrations**.
Click on the `+` sign to add an integration and click on **Tasmota (beta)**.
After completing the configuration flow, the Tasmota integration will be
available.

View File

@ -321,7 +321,7 @@ sensor:
The `template` sensors are not limited to use attributes from other entities but can also work with [Home Assistant's template extensions](/docs/configuration/templating/#home-assistant-template-extensions).
This template contains no entities that will trigger an update, so we add in a reference to the `sensor.date` sensor from the [Time & Date](/integrations/time_date/), which will update once a day.
This template contains no entities that will trigger an update but the `now()` will cause it to update every minute:
{% raw %}
@ -333,53 +333,9 @@ sensor:
- platform: template
sensors:
nonsmoker:
value_template: '{{ states('sensor.date') and (( as_timestamp(now()) - as_timestamp(strptime("06.07.2018", "%d.%m.%Y")) ) / 86400 ) | round(2) }}'
value_template: '{{ ( ( as_timestamp(now()) - as_timestamp(strptime("06.07.2018", "%d.%m.%Y")) ) / 86400 ) | round(2) }}'
friendly_name: 'Not smoking'
unit_of_measurement: "Days"
```
{% endraw %}
In this case it is also possible to convert the entity-less template above into one that will be updated automatically:
{% raw %}
````yaml
sensor:
- platform: template
sensors:
nonsmoker:
value_template: "{{ (( as_timestamp(strptime(states('sensor.date'), '%Y-%m-%d')) - as_timestamp(strptime('06.07.2018', '%d.%m.%Y')) ) / 86400 ) | round(2) }}"
friendly_name: 'Not smoking'
unit_of_measurement: "Days"
````
{% endraw %}
Useful entities to choose might be `sensor.date` which update once per day or `sensor.time`, which updates once per minute.
Please note that the resulting template will be evaluated by Home Assistant state engine on every state change of these sensors, which in case of `sensor.time` happens every minute and might have a negative impact on performance.
An alternative to this is to create an interval-based automation that calls the service `homeassistant.update_entity` for the entities requiring updates. This modified example updates every 5 minutes:
{% raw %}
```yaml
sensor:
- platform: template
sensors:
nonsmoker:
value_template: '{{ (( as_timestamp(now()) - as_timestamp(strptime("06.07.2018", "%d.%m.%Y")) ) / 86400 ) | round(2) }}'
friendly_name: 'Not smoking'
unit_of_measurement: "Days"
automation:
- alias: 'nonsmoker_update'
trigger:
- platform: time_pattern
minutes: '/5'
action:
- service: homeassistant.update_entity
entity_id: sensor.nonsmoker
```
{% endraw %}

View File

@ -10,6 +10,7 @@ ha_iot_class: Local Polling
ha_config_flow: true
ha_codeowners:
- '@rytilahti'
- '@thegardenmonkey'
ha_domain: tplink
---

View File

@ -4,7 +4,7 @@ description: Instructions on how to set up Text-to-Speech (TTS) with Home Assist
ha_category:
- Text-to-speech
ha_release: 0.35
ha_iot_class: ~
ha_iot_class:
ha_codeowners:
- '@pvizeli'
ha_domain: tts

View File

@ -6,6 +6,7 @@ ha_category:
- Binary Sensor
- Switch
ha_release: 0.65
ha_config_flow: true
ha_iot_class: Cloud Polling
ha_codeowners:
- '@scop'
@ -25,71 +26,12 @@ Set up your API user credentials in your [UpCloud control panel](https://hub.upc
## Configuration
To integrate your UpCloud servers with Home Assistant, add the following section to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
upcloud:
username: YOUR_API_USERNAME
password: YOUR_API_PASSWORD
```
{% configuration %}
username:
description: Your UpCloud API username.
required: true
type: string
password:
description: Your UpCloud API user password.
required: true
type: string
scan_interval:
description: Update interval in seconds.
required: false
type: integer
default: 60
{% endconfiguration %}
+Go to **Configuration** >> **Integrations** in the UI, click the button with `+` sign and from the list of integrations select **UpCloud**.
## Binary Sensor
The `upcloud` binary sensor platform allows you to monitor your UpCloud servers.
To use your UpCloud servers, you first have to set up your [UpCloud hub](#configuration) and then add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
binary_sensor:
- platform: upcloud
servers:
- 002167b7-4cb1-44b7-869f-e0900ddeeae1
- 00886296-6137-4074-afe3-068e16d89d00
```
{% configuration %}
servers:
description: List of servers you want to monitor.
required: true
type: list
{% endconfiguration %}
A binary sensor entity is set up for all discovered servers.
## Switch
The `upcloud` switch platform allows you to control (start/stop) your UpCloud servers.
To use your UpCloud servers, you first have to set up your [UpCloud hub](#configuration) and then add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
switch:
- platform: upcloud
servers:
- 002167b7-4cb1-44b7-869f-e0900ddeeae1
- 00886296-6137-4074-afe3-068e16d89d00
```
{% configuration %}
servers:
description: List of servers you want to control.
required: true
type: list
{% endconfiguration %}
A switch entity is set up for all discovered servers. You can use the switch to control (start/stop) them.

View File

@ -3,7 +3,7 @@ title: Vacuum
description: Instructions on how to setup and use vacuum's in Home Assistant.
ha_release: 0.51
ha_domain: vacuum
ha_iot_class: ~
ha_iot_class:
---
The `vacuum` integration enables the ability to control home cleaning robots within Home Assistant.

View File

@ -103,10 +103,6 @@ vacuum:
type: [string, list]
{% endconfiguration %}
### Working without entities
If you use a template that depends on the current time or some other non-deterministic result not sourced from entities, the template won't repeatedly update but will only update when the state of a referenced entity updates. For ways to deal with this issue, see [Working without entities](/integrations/template/#working-without-entities) in the Template Sensor integration.
## Examples
### Control vacuum with Harmony Hub

View File

@ -3,7 +3,7 @@ title: Water Heater
description: Instructions on how to setup water heater devices within Home Assistant.
ha_release: 0.81
ha_domain: water_heater
ha_iot_class: ~
ha_iot_class:
---
The `water_heater` integration is built for the controlling and monitoring of hot water heaters.

View File

@ -4,7 +4,7 @@ description: Instructions on how to setup your Weather platforms with Home Assis
ha_category:
- Weather
ha_release: 0.32
ha_iot_class: ~
ha_iot_class:
ha_quality_scale: internal
ha_codeowners:
- '@fabaff'

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