mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-15 21:36:52 +00:00
Merge branch 'current' into next
This commit is contained in:
commit
0f9ae72b6a
@ -140,11 +140,11 @@ social:
|
||||
# Home Assistant release details
|
||||
current_major_version: 0
|
||||
current_minor_version: 60
|
||||
current_patch_version: 0
|
||||
date_released: 2017-12-17
|
||||
current_patch_version: 1
|
||||
date_released: 2018-01-06
|
||||
|
||||
# Either # or the anchor link to latest release notes in the blog post.
|
||||
# Must be prefixed with a # and have double quotes around it.
|
||||
# Major release:
|
||||
patch_version_notes: "#"
|
||||
patch_version_notes: "#release-0601---january-6"
|
||||
# Minor release (Example #release-0431---april-25):
|
||||
|
@ -42,7 +42,7 @@ http:
|
||||
ssl_key: /ssl/privkey.pem
|
||||
```
|
||||
|
||||
If you use a other port as `8123` or a SSL proxy, change the port number.
|
||||
If you use a port other than `8123` or an SSL proxy, change the port number accordingly.
|
||||
|
||||
## {% linkable_title Router configuration %}
|
||||
|
||||
|
@ -56,7 +56,7 @@ Use the following configuration in Home Assistant to use it:
|
||||
|
||||
```yaml
|
||||
homematic:
|
||||
interfaces
|
||||
interfaces:
|
||||
BidCoS-RF:
|
||||
host: core-homematic
|
||||
port: 2001
|
||||
|
@ -32,6 +32,8 @@ When the state of the manual alarm changes, Home Assistant will publish one of t
|
||||
- 'pending'
|
||||
- 'triggered'
|
||||
|
||||
To use your panel in your installation, add the following to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
alarm_control_panel:
|
||||
@ -56,7 +58,7 @@ The following configuration variables from the base manual alarm platform are av
|
||||
- **pending_time** (*Optional*): State specific setting for **pending_time** (all states except **disarmed**)
|
||||
- **trigger_time** (*Optional*): State specific setting for **trigger_time** (all states except **triggered**)
|
||||
|
||||
See the documentation for the [manual alarm platform](../alarm_control_panel.manual/) for a description.
|
||||
See the documentation for the [manual alarm platform](/component/alarm_control_panel.manual/) for a description.
|
||||
|
||||
Additionally, the following MQTT configuration variables are also available:
|
||||
|
||||
@ -68,13 +70,11 @@ Additionally, the following MQTT configuration variables are also available:
|
||||
- **payload_arm_away** (*Optional*): The payload to set armed-away mode on this Alarm Panel. Default is "ARM_AWAY".
|
||||
- **payload_arm_night** (*Optional*): The payload to set armed-night mode on this Alarm Panel. Default is "ARM_NIGHT".
|
||||
|
||||
In the config example below:
|
||||
In the configuration example below:
|
||||
|
||||
- the disarmed state never triggers the alarm;
|
||||
|
||||
- the armed_home state will leave no time to leave the building or disarm the alarm;
|
||||
|
||||
- while other states state will give 30 seconds to leave the building before triggering the alarm, and 20 seconds to disarm the alarm when coming back.
|
||||
- The disarmed state never triggers the alarm.
|
||||
- The armed_home state will leave no time to leave the building or disarm the alarm.
|
||||
- While other states state will give 30 seconds to leave the building before triggering the alarm, and 20 seconds to disarm the alarm when coming back.
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
|
@ -56,7 +56,9 @@ In order to connect to the device, you need a *login id*. The easiest way to obt
|
||||
|
||||
### {% linkable_title Scanning for devices %}
|
||||
|
||||
To scan for devices, press the icon in the upper left corner and select the leftmost icon according to the image:
|
||||
Make sure Home Sharing is enabled on the Apple TV.
|
||||
|
||||
To scan for devices and determine the `login_id`, press the icon in the upper left corner and select the leftmost icon according to the image:
|
||||
|
||||
<img src='/images/screenshots/developer-tools.png' />
|
||||
|
||||
@ -78,26 +80,7 @@ Found Apple TVs:
|
||||
Note: You must use 'pair' with devices that have home sharing disabled
|
||||
```
|
||||
|
||||
Just copy and paste the login id from the device you want to add. For more details about `atvremote`, see: [this page](http://pyatv.readthedocs.io/en/master/atvremote.html).
|
||||
|
||||
### {% linkable_title My Apple TV turns on when I restart Home Assistant %}
|
||||
|
||||
The Apple TV will automatically turn on if a request is sent to it, e.g., if a button is pressed, something is streamed to it via AirPlay or if current state (currently playing) is accessed. This is how Apple has designed it, and it will cause problems if you are using HDMI CEC. Every time Home Assistant is started, a new request is sent to the device to figure out what is currently playing. When using CEC, this will wake up your TV and other devices you have configured.
|
||||
|
||||
So, if your TV is randomly turning on, this is probably the reason. As stated, this is by design, and there is no real fix for it. There's also no known way to turn off the Apple TV via the protocol used for communication. You have the following options:
|
||||
|
||||
- Do not use this platform
|
||||
- Disable HDMI CEC on your Apple TV
|
||||
- Use "fake standby"
|
||||
|
||||
The first two points are quite obvious. Fake standby is a concept implemented in this platform that disables all requests to the device and makes it appear as being "off" in the web interface. This will make sure that the device is not woken up, but it will of course not show any information or allow you to control it. It is however easy to turn it on (or off) in the web interface or to use an automation with `turn_on`. To make it more useful, you can write automations that turn it on or off depending on some other device, like the input source on your receiver.
|
||||
|
||||
To put a device into fake standby when starting Home Assistant, add `start_off: true` to your configuration.
|
||||
|
||||
<p class='note warning'>
|
||||
Turning the device on/off in the user interface will *not* turn the physical device on/off according to the description above.
|
||||
</p>
|
||||
|
||||
Just copy and paste the `login_id` from the device you want to add. For more details about `atvremote`, see: [this page](http://pyatv.readthedocs.io/en/master/atvremote.html).
|
||||
|
||||
### {% linkable_title Setting up device authentication %}
|
||||
|
||||
@ -129,6 +112,24 @@ apple_tv:
|
||||
|
||||
Restart Home Assistant, and you should now be able to use `play_url` as before.
|
||||
|
||||
### {% linkable_title My Apple TV turns on when I restart Home Assistant %}
|
||||
|
||||
The Apple TV will automatically turn on if a request is sent to it, e.g., if a button is pressed, something is streamed to it via AirPlay or if current state (currently playing) is accessed. This is how Apple has designed it, and it will cause problems if you are using HDMI CEC. Every time Home Assistant is started, a new request is sent to the device to figure out what is currently playing. When using CEC, this will wake up your TV and other devices you have configured.
|
||||
|
||||
So, if your TV is randomly turning on, this is probably the reason. As stated, this is by design, and there is no real fix for it. There's also no known way to turn off the Apple TV via the protocol used for communication. You have the following options:
|
||||
|
||||
- Do not use this platform
|
||||
- Disable HDMI CEC on your Apple TV
|
||||
- Use "fake standby"
|
||||
|
||||
The first two points are quite obvious. Fake standby is a concept implemented in this platform that disables all requests to the device and makes it appear as being "off" in the web interface. This will make sure that the device is not woken up, but it will of course not show any information or allow you to control it. It is however easy to turn it on (or off) in the web interface or to use an automation with `turn_on`. To make it more useful, you can write automations that turn it on or off depending on some other device, like the input source on your receiver.
|
||||
|
||||
To put a device into fake standby when starting Home Assistant, add `start_off: true` to your configuration.
|
||||
|
||||
<p class='note warning'>
|
||||
Turning the device on/off in the user interface will *not* turn the physical device on/off according to the description above.
|
||||
</p>
|
||||
|
||||
## {% linkable_title Services %}
|
||||
|
||||
### {% linkable_title Service `apple_tv_authenticate` %}
|
||||
|
@ -26,7 +26,7 @@ To successfully implement this platform, the Home Assistant host should be capab
|
||||
|
||||
### {% linkable_title Installing Alternative Firmware %}
|
||||
|
||||
In order to integrate the camera with Home Assitant, it is necessary to install a custom firmware on the device. Instructions for doing so can be found via the [yi-hack-v3 GitHub project](https://github.com/shadow-1/yi-hack-v3).
|
||||
In order to integrate the camera with Home Assistant, it is necessary to install a custom firmware on the device. Instructions for doing so can be found via the [yi-hack-v3 GitHub project](https://github.com/shadow-1/yi-hack-v3).
|
||||
|
||||
Once installed, please ensure that you have enabled FTP and Telnet on your device.
|
||||
|
||||
|
@ -22,6 +22,12 @@ cloud:
|
||||
|
||||
Once activated, go to the configuration panel in Home Assistant and create an account and log in. There is no need to configure your router or expose your instance to the internet in any other way.
|
||||
|
||||
If you are not seeing the **Configuration** panel, make sure you have the following option enabled in your configuration.yaml` file.
|
||||
|
||||
```yaml
|
||||
config:
|
||||
```
|
||||
|
||||
### {% linkable_title Amazon Alexa %}
|
||||
|
||||
The Alexa integration allows users to control the entities via the [Home Assistant Smart Home skill for Alexa][alexa skill]. This means that you can say things like "Alexa, turn on the kitchen light" to control your local instance.
|
||||
@ -82,14 +88,16 @@ alexa:
|
||||
### {% linkable_title Available domains %}
|
||||
Currently, the following domains are available to be used with Alexa:
|
||||
- alert
|
||||
- automation
|
||||
- automation (enables/disables)
|
||||
- cover
|
||||
- light
|
||||
- fan (supports on/off and set speed)
|
||||
- group
|
||||
- input_boolean
|
||||
- light
|
||||
- lock (lock and unlock, but unlock is untested as Amazon has disabled unlock for now)
|
||||
- media_player (play, pause, stop, set volume, adjust volume, next track and previous track)
|
||||
- scene
|
||||
- script (enables/disables)
|
||||
- switch
|
||||
|
||||
[alexa skill]: https://alexa.amazon.com/spa/index.html#skills/dp/B0772J1QKB/?ref=skill_dsk_skb_sr_2
|
||||
|
@ -16,6 +16,10 @@ _This is one of the two ways we support OpenWRT. If you encounter problems, try
|
||||
|
||||
This is a presence detection scanner for OpenWRT using [luci](http://wiki.openwrt.org/doc/techref/luci).
|
||||
|
||||
<p class='note'>
|
||||
This component requires a [workaround](https://github.com/home-assistant/home-assistant/issues/1258#issuecomment-252469880) when using luci with HTTPS and a self-signed certificate.
|
||||
</p>
|
||||
|
||||
Before this scanner can be used you have to install the luci RPC package on OpenWRT:
|
||||
|
||||
```bash
|
||||
|
@ -32,4 +32,5 @@ See the [device tracker component page](/components/device_tracker/) for instruc
|
||||
Also known to be working with the following devices:
|
||||
- Irish Virgin Media Super Hub 3.0
|
||||
- Ziggo Connectbox NL
|
||||
- Unitymedia Connect Box (DE)
|
||||
|
||||
|
@ -91,7 +91,7 @@ Entity Customization Keys:
|
||||
|
||||
### {% linkable_title Setup %}
|
||||
|
||||
1. Install the [gactions CLI](https://developers.google.com/actions/tools/gactions-cli) (you'll use this later) - you can download this anywhere, just remember where you put it for later (and don't forget to run `chmod +x gactions`)
|
||||
1. Download the [gactions CLI](https://developers.google.com/actions/tools/gactions-cli) (you'll use this later) - you can download and run this anywhere and on any machine, just remember where you put it for later (and don't forget to run `chmod +x gactions`to make it executable on mac or linux)
|
||||
2. Create a new file named `project.json` (in the same directory you downloaded `gactions` to) and replace the `[YOUR HOME ASSISTANT URL]` below with the URL you use to access Home Assistant.
|
||||
Note: This must be an HTTPS URL to work.
|
||||
|
||||
@ -120,16 +120,16 @@ Entity Customization Keys:
|
||||
2. Go to Build under the Actions SDK box
|
||||
3. Copy the command that looks like:
|
||||
`gactions update --action_package PACKAGE_NAME --project doctest-2d0b8`
|
||||
4. Replace `PACKAGE_NAME` with `project.json` and run that command from the same directory you saved `project.json` in (you'll need to put `./` before `gactions` so that it reads `./gactions` if you're running on Linux). It should output a URL like `https://console.actions.google.com/project/doctest-2d0b8/overview` - go there.
|
||||
4. Replace `PACKAGE_NAME` with `project.json` and run that command in a console from the same directory you saved `project.json` in (you'll need to put `./` before `gactions` so that it reads `./gactions` if you're running it on Linux or Windows). It should output a URL like `https://console.actions.google.com/project/doctest-2d0b8/overview` - go there.
|
||||
5. You'll need to fill out most of the information on that page, but none of it really matters since you won't be addressing the App directly, only through the Smart Home functionality built into Google Assistant.
|
||||
6. The final item on that page `Account linking` is required for your app to interact with Home Assistant.
|
||||
1. Grant type: `Implicit`
|
||||
2. Client ID: The `client_id` from your Home Assistant configuration above
|
||||
3. Authorization URL (replace with your actual URL): `https://[YOUR HOME ASSISTANT URL]/api/google_assistant/auth`
|
||||
4. Configure your client. Add scopes for `email` and `name`
|
||||
5. Testing instructions: doesn't matter since you won't submit this app
|
||||
7. Back on the main app draft page. Click `Test Draft`. That will take you to the simulator (which won't work) so just close that window.
|
||||
8. If you haven't already added the configuration to `configuration.yaml` and restarted Home Assistant, you'll be unable to continue until you have.
|
||||
3. Authorization URL (replace with your actual URL): `https://[YOUR HOME ASSISTANT URL]/api/google_assistant/auth`. If you have set `api_password:` add this password to the URL `https://[YOUR HOME ASSISTANT URL]/api/google_assistant/auth?api_password=[YOUR API PASSWORD]`)
|
||||
4. Configure your client. Add scopes for `email` and `name`.
|
||||
5. Testing instructions: Enter anything. It doesn't matter since you won't submit this app.
|
||||
7. Back on the main app draft page. Click `Test Draft`. That will take you to the simulator (which won't work so just close that window).
|
||||
8. If you haven't already added the component configuration to `configuration.yaml` and restarted Home Assistant, you'll be unable to continue until you have.
|
||||
8. Open the Google Assistant app and go into `Settings > Home Control`
|
||||
9. Click the `+` sign, and near the bottom, you should have `[test] your app name`. Selecting that should lead to you the screen where you can set rooms for your devices or nicknames for your devices.
|
||||
10. If you want to allow other houshold users to control the devices:
|
||||
|
@ -24,16 +24,34 @@ input_boolean:
|
||||
icon: mdi:car
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
{% configuration %}
|
||||
input_boolean:
|
||||
description: Alias for the input. Multiple entries are allowed.
|
||||
required: true
|
||||
type: map
|
||||
keys:
|
||||
name:
|
||||
description: Friendly name of the input.
|
||||
required: false
|
||||
type: String
|
||||
initial:
|
||||
description: Initial value when Home Assistant starts.
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
icon:
|
||||
description: Icon to display for the component. Refer to the [Customizing devices](/docs/configuration/customizing-devices/#possible-values) page for possible values.
|
||||
required: false
|
||||
type: icon
|
||||
{% endconfiguration %}
|
||||
|
||||
- **[alias]** (*Required*): Alias for the input.
|
||||
- **name** (*Optional*): Friendly name of the input.
|
||||
- **initial** (*Optional*): Initial value when Home Assistant starts. Defaults to `False`.
|
||||
- **icon** (*Optional*): Icon for entry.
|
||||
### {% linkable_title Restore State %}
|
||||
|
||||
Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`.
|
||||
This component supports the `restore_state` function which restores the state after Home Assistant has started to the value it has been before Home Assistant stopped. To use this feature please make sure that the [`recorder`](/components/recorder/) component is enabled and your entity does not have a value set for `initial`. Additional information can be found in the [Restore state](/components/recorder/#restore-state) section of the [`recorder`](/components/recorder/) component documentation.
|
||||
|
||||
Here's an example of an automation using the above input_boolean. This action will only occur if the switch is on.
|
||||
## {% linkable_title Automation Examples %}
|
||||
|
||||
Here's an example of an automation using the above `input_boolean`. This action will only occur if the switch is on.
|
||||
|
||||
```yaml
|
||||
automation:
|
||||
|
@ -33,18 +33,45 @@ input_datetime:
|
||||
has_time: true
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
{% configuration %}
|
||||
input_datetime:
|
||||
description: Alias for the datetime input. Multiple entries are allowed.
|
||||
required: true
|
||||
type: map
|
||||
keys:
|
||||
name:
|
||||
description: Friendly name of the datetime input.
|
||||
required: false
|
||||
type: String
|
||||
has_time:
|
||||
description: Set to `true` if the input should have a time. At least one `has_time` or `has_date` must be defined.
|
||||
required: false
|
||||
type: Boolean
|
||||
default: false
|
||||
has_date:
|
||||
description: Set to `true` if the input should have a date. At least one `has_time` or `has_date` must be defined.
|
||||
required: false
|
||||
type: Boolean
|
||||
default: false
|
||||
initial:
|
||||
description: Set the initial value of this input, depending on `has_time` and `has_date`.
|
||||
required: false
|
||||
type: datetime | time | date
|
||||
default: 1970-01-01 00:00 | 1970-01-01 | 00:00
|
||||
{% endconfiguration %}
|
||||
|
||||
- **[alias]** (*Required*): Alias for the datetime input. Multiple entries are allowed.
|
||||
- **name** (*Optional*): Friendly name of the datetime input.
|
||||
- **has_time** (*Optional*): Set to `true` if this input should have time. Defaults to `false`.
|
||||
- **has_date** (*Optional*): Set to `true` if this input should have a date. Defaults to `false`.
|
||||
- **initial** (*Optional*): Set the initial value of this input. Defaults to '1970-01-01 00:00'. If has_time is `false` this must be just a date (e.g.: '1970-01-01'). If has_date is `false` this must be just a time (e.g.: '15:16').
|
||||
### {% linkable_title Attributes %}
|
||||
|
||||
A datetime input entity's state exports several attributes that can be useful in automations and templates:
|
||||
A datetime input entity's state exports several attributes that can be useful in automations and templates.
|
||||
|
||||
- **has_time**: `true` if this entity has time.
|
||||
- **has_date**: `true` if this entity has a date.
|
||||
- **year**, **month**, **day** (Only available if *has_date* is true): The year, month and day of the date.
|
||||
- **hour**, **minute**, **second** (Only available if *has_time* is true): The hour, minute and second of the time.
|
||||
- **timestamp**: A timestamp representing the time held in the input. If *has_date* is true, this is the UNIX timestamp of the date / time held by the input. Otherwise (i.e., if only *has_time* is true) the number of seconds since midnight representing the time held by the input.
|
||||
| Attribute | Description |
|
||||
| --------- | ----------- |
|
||||
| `has_time` | `true` if this entity has a time.
|
||||
| `has_date` | `true` if this entity has a date.
|
||||
| `year`<br>`month`<br>`day` | The year, month and day of the date.<br>(only availabel if `has_date: true`)
|
||||
| `hour`<br>`minute`<br>`second` | The hour, minute and second of the time.<br>(only available if `has_time: true`)
|
||||
| `timestamp` | A timestamp representing the time held in the input.<br>If `has_date: true`, this is the UNIX timestamp of the date / time held by the input. Otherwise if only `has_time: true`, this is the number of seconds since midnight representing the time held by the input.
|
||||
|
||||
### {% linkable_title Restore State %}
|
||||
|
||||
This component supports the `restore_state` function which restores the state after Home Assistant has started to the value it has been before Home Assistant stopped. To use this feature please make sure that the [`recorder`](/components/recorder/) component is enabled and your entity does not have a value set for `initial`. Additional information can be found in the [Restore state](/components/recorder/#restore-state) section of the [`recorder`](/components/recorder/) component documentation.
|
||||
|
@ -78,11 +78,15 @@ input_number:
|
||||
required: false
|
||||
type: string
|
||||
icon:
|
||||
description: Icon to display in front of the box/slider in the frontend. Refer to the [Customizing devices](https://home-assistant.io/docs/configuration/customizing-devices/#possible-values) page for possible values.
|
||||
description: Icon to display in front of the box/slider in the frontend. Refer to the [Customizing devices](/docs/configuration/customizing-devices/#possible-values) page for possible values.
|
||||
required: false
|
||||
type: icon
|
||||
{% endconfiguration %}
|
||||
|
||||
### {% linkable_title Restore State %}
|
||||
|
||||
This component supports the `restore_state` function which restores the state after Home Assistant has started to the value it has been before Home Assistant stopped. To use this feature please make sure that the [`recorder`](/components/recorder/) component is enabled and your entity does not have a value set for `initial`. Additional information can be found in the [Restore state](/components/recorder/#restore-state) section of the [`recorder`](/components/recorder/) component documentation.
|
||||
|
||||
## {% linkable_title Automation Examples %}
|
||||
|
||||
Here's an example of `input_number` being used as a trigger in an automation.
|
||||
|
@ -33,27 +33,64 @@ input_select:
|
||||
- Home Alone
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **[alias]** array (*Required*): Alias for the input. Multiple entries are allowed..
|
||||
- **name** (*Optional*): Friendly name of the input.
|
||||
- **options** array (*Required*): List of options to choose from.
|
||||
- **initial** (*Optional*): Initial value when Home Assistant starts.
|
||||
- **icon** (*Optional*): Icon for entry.
|
||||
|
||||
Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`.
|
||||
{% configuration %}
|
||||
input_select:
|
||||
description: Alias for the input. Multiple entries are allowed.
|
||||
required: true
|
||||
type: map
|
||||
keys:
|
||||
name:
|
||||
description: Friendly name of the input.
|
||||
required: false
|
||||
type: String
|
||||
options:
|
||||
description: List of options to choose from.
|
||||
required: true
|
||||
type: Array
|
||||
initial:
|
||||
description: Initial value when Home Assistant starts.
|
||||
required: false
|
||||
type: Element of options
|
||||
default: First element of options
|
||||
icon:
|
||||
description: Icon to display for the component. Refer to the [Customizing devices](/docs/configuration/customizing-devices/#possible-values) page for possible values.
|
||||
required: false
|
||||
type: icon
|
||||
{% endconfiguration %}
|
||||
|
||||
<p class='note'>
|
||||
Because YAML defines [booleans](http://yaml.org/type/bool.html) as equivalent, any variations of 'On', 'Yes', 'Y', 'Off', 'No', or 'N' (regardless of case) used as option names will be replaced by True and False unless they are defined in quotation marks.
|
||||
</p>
|
||||
|
||||
### {% linkable_title Restore State %}
|
||||
|
||||
This component supports the `restore_state` function which restores the state after Home Assistant has started to the value it has been before Home Assistant stopped. To use this feature please make sure that the [`recorder`](/components/recorder/) component is enabled and your entity does not have a value set for `initial`. Additional information can be found in the [Restore state](/components/recorder/#restore-state) section of the [`recorder`](/components/recorder/) component documentation.
|
||||
|
||||
### {% linkable_title Services %}
|
||||
|
||||
This components provide three services to modify the state of the `input_select`:
|
||||
This components provide three services to modify the state of the `input_select`.
|
||||
|
||||
- `input_select.select_option`: This can be used to select a specific option. The option is passed as `option` attribute in the service data.
|
||||
- `input_select.select_previous`: Select the previous option.
|
||||
- `input_select.select_next`: Select the next option.
|
||||
| Service | Data | Description |
|
||||
| ------- | ---- | ----------- |
|
||||
| `select_option` | `option` | This can be used to select a specific option.
|
||||
| `set_options` | `options`<br>`entity_id(s)` | Set the options for specific `input_select` entities.
|
||||
| `select_previous` | | Select the previous option.
|
||||
| `select_next` | | Select the next option.
|
||||
|
||||
### {% linkable_title Scenes %}
|
||||
|
||||
To specify a target option in a [Scene](/components/scene/) you have to specify the target as `option` attribute:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
scene:
|
||||
- name: Example1
|
||||
entities:
|
||||
input_select.who_cooks:
|
||||
option: Paulus
|
||||
```
|
||||
|
||||
## {% linkable_title Automation Examples %}
|
||||
|
||||
The following example shows the usage of the `input_select.select_option` service in an automation:
|
||||
|
||||
@ -87,23 +124,10 @@ automation:
|
||||
options: ["Item A", "Item B", "Item C"]
|
||||
```
|
||||
|
||||
### {% linkable_title Scenes %}
|
||||
|
||||
To specify a target option in a [Scene](/components/scene/) you have to specify the target as `option` attribute:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
scene:
|
||||
- name: Example1
|
||||
entities:
|
||||
input_select.who_cooks:
|
||||
option: Paulus
|
||||
```
|
||||
|
||||
Example of `input_select` being used in a bidirectional manner, both being set by and controlled by an MQTT action in an automation.
|
||||
|
||||
```yaml
|
||||
{% raw %}
|
||||
```yaml
|
||||
# Example configuration.yaml entry using 'input_select' in an action in an automation
|
||||
|
||||
# Define input_select
|
||||
@ -129,7 +153,7 @@ input_select:
|
||||
service: input_select.select_option
|
||||
data_template:
|
||||
entity_id: input_select.thermostat_mode
|
||||
option: '{{ trigger.payload }}'
|
||||
option: "{{ trigger.payload }}"
|
||||
|
||||
# This automation script runs when the thermostat mode selector is changed.
|
||||
# It publishes its value to the same MQTT topic it is also subscribed to.
|
||||
@ -142,6 +166,6 @@ input_select:
|
||||
data_template:
|
||||
topic: "thermostatMode"
|
||||
retain: true
|
||||
payload: '{{ states.input_select.thermostat_mode.state }}'
|
||||
{% endraw %}
|
||||
payload: "{{ states('input_select.thermostat_mode') }}"
|
||||
```
|
||||
{% endraw %}
|
||||
|
@ -29,11 +29,38 @@ input_text:
|
||||
pattern: '[a-fA-F0-9]*'
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
{% configuration %}
|
||||
input_text:
|
||||
description: Alias for the input. Multiple entries are allowed.
|
||||
required: true
|
||||
type: map
|
||||
keys:
|
||||
name:
|
||||
description: Friendly name of the text input.
|
||||
required: false
|
||||
type: String
|
||||
min:
|
||||
description: Minimum length for the text value.
|
||||
required: false
|
||||
type: int
|
||||
default: 0
|
||||
max:
|
||||
description: Maximum length for the text value.
|
||||
required: false
|
||||
type: int
|
||||
default: 100
|
||||
initial:
|
||||
description: Initial value when Home Assistant starts.
|
||||
required: false
|
||||
type: String
|
||||
default: empty
|
||||
pattern:
|
||||
description: Regex pattern for client side validation.
|
||||
required: false
|
||||
type: String
|
||||
default: empty
|
||||
{% endconfiguration %}
|
||||
|
||||
- **[alias]** (*Required*): Alias for the text input.
|
||||
- **min** (*Optional*): Minimum length for the text value. Default is `0`.
|
||||
- **max** (*Optional*): Maximum length for the text value. Default is `100`.
|
||||
- **name** (*Optional*): Friendly name of the text input.
|
||||
- **initial** (*Optional*): Initial value when Home Assistant starts. Default is empty string.
|
||||
- **pattern** (*Optional*): Regex pattern for client side validation. Default is empty string, which is treated same as `.*`.
|
||||
### {% linkable_title Restore State %}
|
||||
|
||||
This component supports the `restore_state` function which restores the state after Home Assistant has started to the value it has been before Home Assistant stopped. To use this feature please make sure that the [`recorder`](/components/recorder/) component is enabled and your entity does not have a value set for `initial`. Additional information can be found in the [Restore state](/components/recorder/#restore-state) section of the [`recorder`](/components/recorder/) component documentation.
|
||||
|
@ -17,7 +17,8 @@ Support for [Leviton Decora Wi-Fi](http://www.leviton.com/en/products/lighting-c
|
||||
|
||||
Supported devices (tested):
|
||||
|
||||
- [DW6HD1-BZ](https://www.leviton.com/en/products/dw6hd) (Decora Smart Wi-Fi 600W Dimmer)
|
||||
- [DW6HD1-BZ](https://www.leviton.com/en/products/dw6hd-1bz) (Decora Smart Wi-Fi 600W Dimmer)
|
||||
- [DW15S-1BZ](https://www.leviton.com/en/products/dw15s-1bz) (Decora Smart Wi-Fi 15A Switch)
|
||||
|
||||
To enable these lights, add the following lines to your `configuration.yaml` file:
|
||||
|
||||
|
@ -17,7 +17,7 @@ The `sesame` platform allows you to control your [Sesame](https://candyhouse.co/
|
||||
|
||||
Your Sesame needs to be paired with a mobile device running the app in *virtual station* mode, or a standalone [Wi-Fi Access Point](https://candyhouse.co/collections/frontpage/products/wi-fi-access-point).
|
||||
|
||||
Once you have remote access enabled, add the following to your `configuration.yaml` file:
|
||||
Once you have remote access enabled using one of the above AND the Integration - cloud option enabled on the Sesame app for that lock settings, add the following to your `configuration.yaml` file:
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
lock:
|
||||
|
@ -38,6 +38,7 @@ Configuration variables:
|
||||
Currently known supported models:
|
||||
|
||||
- C7700
|
||||
- D5500
|
||||
- D6500
|
||||
- D7000
|
||||
- D8000
|
||||
@ -64,6 +65,7 @@ Currently known supported models:
|
||||
Currently tested but not working models:
|
||||
|
||||
- J5200 - Unable to see state and unable to control
|
||||
- J5500 - State is always "on" and unable to control (but port 8001 *is* open)
|
||||
- JU7000 - Unable to see state and unable to control (but port 8001 *is* open)
|
||||
- JU7500 - Unable to see state and unable to control
|
||||
- JS9000 - State is always "on" and unable to control (but port 8001 *is* open)
|
||||
|
@ -16,7 +16,7 @@ The `yamaha_musiccast` platform allows you to control [Yamaha MusicCast Receiver
|
||||
|
||||
Supported devices are listed on their [German site](https://de.yamaha.com/de/products/contents/audio_visual/musiccast/products.html).
|
||||
|
||||
To add a Yamaha Network Receiver to your installation, add the following to your `configuration.yaml` file:
|
||||
To add a Yamaha MusicCast Receiver to your installation, add the following to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
@ -27,7 +27,7 @@ media_player:
|
||||
Configuration variables:
|
||||
|
||||
- **host** (*Required*): IP address or hostname of the device
|
||||
- **port** (*Optional*): UDP Port
|
||||
- **port** (*Optional*): UDP source port. If multiple devices are present, specify a different port per device
|
||||
- **interval_seconds** (*Optional*): Polling interval (default: 480 seconds = 8 minutes)
|
||||
|
||||
A few notes:
|
||||
|
@ -37,12 +37,15 @@ Configuration variables:
|
||||
Example Automation:
|
||||
```yaml
|
||||
- service: notify.entity_id
|
||||
data:
|
||||
data:
|
||||
message: "This is the message"
|
||||
title: "Title of message"
|
||||
sound: pianobar
|
||||
priority: 0
|
||||
data:
|
||||
url: "https://home-assistant.io/"
|
||||
sound: pianobar
|
||||
priority: 0
|
||||
```
|
||||
Component specific values in the nested `data` section are optional.
|
||||
|
||||
This is a quote from the Pushover website regarding free/open source apps:
|
||||
|
||||
@ -54,7 +57,7 @@ When setting up the application you can use this [icon](https://home-assistant.i
|
||||
|
||||
To use notifications, please see the [getting started with automation page](/getting-started/automation/).
|
||||
|
||||
When sending a notification, optional parameters can also be set as per the pushover [API documentation](https://pushover.net/api).
|
||||
When sending a notification, optional parameters can also be set as per the pushover [API documentation](https://pushover.net/api).
|
||||
|
||||
Example notification triggered from the Alexa component for an intents is shown below which also uses [Automation Templating](/getting-started/automation-templating/) for the message:
|
||||
|
||||
@ -67,8 +70,9 @@ alexa:
|
||||
service: notify.notify
|
||||
data_template:
|
||||
message: "The location of {% raw %}{{ User }}{% endraw %} has been queried via Alexa."
|
||||
data:
|
||||
title: "Home Assistant"
|
||||
data:
|
||||
title: "Home Assistant"
|
||||
sound: falling
|
||||
device: pixel
|
||||
url: "https://home-assistant.io/"
|
||||
|
@ -25,18 +25,51 @@ To setup the `recorder` component in your installation, add the following to you
|
||||
recorder:
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **purge_interval** (*Optional*): (days) Enable scheduled purge of older events and states. The purge task runs every x days from when the `recorder component` is first enabled. If a scheduled purge is missed (e.g. if Home Assistant was not running) then the schedule will resume soon after Home Assistant restarts. You can use [service](#service-purge) call `recorder.purge` when required without impacting the purge schedule.
|
||||
- **purge_keep_days** (*Required with `purge_interval`*): Specify number of history days to keep in recorder database after purge.
|
||||
- **exclude** (*Optional*): Configure which components should be excluded from recordings.
|
||||
- **entities** (*Optional*): The list of entity ids to be excluded from recordings.
|
||||
- **domains** (*Optional*): The list of domains to be excluded from recordings.
|
||||
- **include** (*Optional*): Configure which components should be included in recordings. If set, all other entities will not be recorded.
|
||||
- **entities** (*Optional*): The list of entity ids to be included from recordings.
|
||||
- **domains** (*Optional*): The list of domains to be included from recordings.
|
||||
- **db_url** (*Optional*): The URL which point to your database.
|
||||
|
||||
{% configuration %}
|
||||
recorder:
|
||||
description: Enables the recorder component. Only allowed once.
|
||||
required: true
|
||||
type: map
|
||||
keys:
|
||||
db_url:
|
||||
description: The URL which points to your database.
|
||||
required: false
|
||||
type: URL
|
||||
purge_interval:
|
||||
description: Enable scheduled purge of older events and states. The purge task runs every `purge_interval` days from when the `recorder component` is first enabled. If a scheduled purge is missed (e.g if Home Assistant was not running), the schedule will resume soon after Home Assistant restarts. You can use the [service](#service-purge) call `purge` when required without impacting the purge schedule. If `purge_interval` is set, `purge_keep_days` needs to be set as well.
|
||||
required: Inclusive
|
||||
type: int
|
||||
purge_keep_days:
|
||||
description: Specify the number of history days to keep in recorder database after purge. If `purge_interval` is set, `purge_keep_days` needs to be set as well.
|
||||
required: Inclusive
|
||||
type: int
|
||||
exclude:
|
||||
description: Configure which components should be excluded
|
||||
required: false
|
||||
type: map
|
||||
keys:
|
||||
domains:
|
||||
description: The list of domains to be excluded from recordings.
|
||||
required: false
|
||||
type: List
|
||||
entities:
|
||||
description: The list of entity ids to be excluded from recordings.
|
||||
required: false
|
||||
type: List
|
||||
include:
|
||||
description: Configure which components should be included in recordings. If set, all other entities will not be recorded.
|
||||
required: false
|
||||
type: map
|
||||
keys:
|
||||
domains:
|
||||
description: The list of domains to be included in the recordings.
|
||||
required: false
|
||||
type: List
|
||||
entities:
|
||||
description: The list of entity ids to be included in the recordings.
|
||||
required: false
|
||||
type: List
|
||||
{% endconfiguration %}
|
||||
|
||||
Define domains and entities to `exclude` (aka. blacklist). This is convenient when you are basically happy with the information recorded, but just want to remove some entities or domains. Usually these are entities/domains which do not change (like `weblink`) or rarely change (`updater` or `automation`).
|
||||
|
||||
@ -100,7 +133,18 @@ action:
|
||||
keep_days: 5
|
||||
```
|
||||
|
||||
## Custom database engines
|
||||
### {% linkable_title Restore State %}
|
||||
|
||||
If the `recorder` component is activated then some components support `restore_state` which will restore the state of the entity after Home Assistant is started to the state before Home Assistant was stopped. Please make sure that you do not exclude the entities for which you want the state to be restored from your recordings. An incomplete list of components that currently support `restore_state`:
|
||||
|
||||
* [`input_boolean`](/components/input_boolean/#restore-state)
|
||||
* [`input_number`](/components/input_number/#restore-state)
|
||||
* [`input_select`](/components/input_select/#restore-state)
|
||||
* [`input_datetime`](/components/input_datetime/#restore-state)
|
||||
* [`input_text`](/components/input_text/#restore-state)
|
||||
|
||||
|
||||
## {% linkable_title Custom database engines %}
|
||||
|
||||
| Database engine | `db_url` |
|
||||
| :---------------|:---------------------------------------------------------|
|
||||
|
@ -23,37 +23,33 @@ Supported units:
|
||||
- Harmony Pro
|
||||
- Harmony Elite
|
||||
|
||||
|
||||
The preferred way to setup the Harmony remote is by enabling the [discovery component](/components/discovery/).
|
||||
|
||||
However, if you want to manually configure the device, you will need to add its settings to your `configuration.yaml`.
|
||||
However, if you want to manually configure the device, you will need to add its settings to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
remote:
|
||||
- platform: harmony
|
||||
name: Bedroom
|
||||
host: 10.168.1.13 # The IP of your hub
|
||||
host: 10.168.1.13
|
||||
```
|
||||
|
||||
You can override some default configuration values on a discovered hub (e.g. the `port` or `activity`) by adding
|
||||
a `configuration.yaml` setting. In this case leave the `host` setting empty so the platform will
|
||||
discover the host IP automatically, but set the `name` in the config to match exactly the name you have
|
||||
set for your Hub so the platform knows what Hub you are trying to configure.
|
||||
You can override some default configuration values on a discovered hub (e.g. the `port` or `activity`) by adding a `configuration.yaml` setting. In this case leave the `host` setting empty so the platform will discover the host IP automatically, but set the `name` in the config to match exactly the name you have set for your Hub so the platform knows what Hub you are trying to configure.
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry with discovery
|
||||
- platform: harmony
|
||||
name: Living Room # This name must match the name you have set on the Hub
|
||||
activity: Watch TV # Overriding the 'activity' setting for this discovered hub
|
||||
name: Living Room
|
||||
activity: Watch TV
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **name** (*Required*): The hub's name to display in the frontend.
|
||||
- **name** (*Required*): The hub's name to display in the frontend. This name must match the name you have set on the Hub.
|
||||
- **host** (*Optional*): The Harmony device's IP address. Leave empty for the IP to be discovered automatically.
|
||||
- **port** (*Optional*): The Harmony device's port. Defaults to 5222.
|
||||
- **activity** (*Optional*): Activity to use when `turn_on` service is called without any data.
|
||||
- **activity** (*Optional*): Activity to use when `turn_on` service is called without any data. Overrides the `activity` setting for this discovered hub.
|
||||
- **delay_secs** (*Optional*): Default duration in seconds between sending commands to a device.
|
||||
|
||||
Configuration file:
|
||||
@ -103,6 +99,7 @@ data:
|
||||
- home
|
||||
- 1
|
||||
- 2
|
||||
device: 4576546
|
||||
delay_secs: 0.6
|
||||
```
|
||||
|
||||
@ -118,20 +115,23 @@ Synchronize the Harmony device with the Harmony web service if any changes are m
|
||||
|
||||
Template sensors can be utilized to display current activity in the frontend.
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
sensor:
|
||||
- platform: template
|
||||
sensors:
|
||||
family_room:
|
||||
value_template: {% raw %}'{{ states.remote.family_room.attributes.current_activity }}'{% endraw %}
|
||||
value_template: '{{ states.remote.family_room.attributes.current_activity }}'
|
||||
friendly_name: 'Family Room'
|
||||
bedroom:
|
||||
value_template: {% raw %}'{{ states.remote.bedroom.attributes.current_activity }}'{% endraw %}
|
||||
value_template: '{{ states.remote.bedroom.attributes.current_activity }}'
|
||||
friendly_name: 'bedroom'
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
The example below shows how to control an `input_boolean` switch using the Harmony remote's current activity. The switch will turn on when the remote's state changes and the Kodi activity is started and off when the remote's state changes and the current activity is PowerOff.
|
||||
The example below shows how to control an `input_boolean` switch using the Harmony remote's current activity. The switch will turn on when the remote's state changes and the Kodi activity is started and off when the remote's state changes and the current activity is "PowerOff".
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
automation:
|
||||
- alias: "Watch TV started from harmony hub"
|
||||
@ -140,7 +140,7 @@ automation:
|
||||
entity_id: remote.family_room
|
||||
condition:
|
||||
condition: template
|
||||
value_template: {% raw %}'{{ trigger.to_state.attributes.current_activity == "Kodi" }}'{% endraw %}
|
||||
value_template: '{{ trigger.to_state.attributes.current_activity == "Kodi" }}'
|
||||
action:
|
||||
service: input_boolean.turn_on
|
||||
entity_id: input_boolean.notify
|
||||
@ -150,8 +150,9 @@ automation:
|
||||
entity_id: remote.family_room
|
||||
condition:
|
||||
condition: template
|
||||
value_template: {% raw %}'{{ trigger.to_state.attributes.current_activity == "PowerOff" }}'{% endraw %}
|
||||
value_template: '{{ trigger.to_state.attributes.current_activity == "PowerOff" }}'
|
||||
action:
|
||||
service: input_boolean.turn_off
|
||||
entity_id: input_boolean.notify
|
||||
````
|
||||
```
|
||||
{% endraw %}
|
||||
|
@ -60,10 +60,12 @@ Each group consists of a name and a list of entity IDs. Entity IDs can be retrie
|
||||
```yaml
|
||||
# Example configuration.yaml entry showing two styles
|
||||
group:
|
||||
living_room: light.table_lamp, switch.ac
|
||||
living_room:
|
||||
entities: light.table_lamp, switch.ac
|
||||
bedroom:
|
||||
- light.bedroom
|
||||
- media_player.nexus_player
|
||||
entities:
|
||||
- light.bedroom
|
||||
- media_player.nexus_player
|
||||
```
|
||||
|
||||
For more details please check the [Group](/components/group/) page.
|
||||
|
@ -15,13 +15,13 @@ og_image: /images/blog/2017-12-0.60/components.png
|
||||
|
||||
The biggest change for 0.60 will be covered in a separate [blog post](/blog/2017/12/17/introducing-home-assistant-cloud/). Thus, we will keep it short here. Just one thing: This is the last release in 2017. We will be back to our bi-weekly release cycle in 2018.
|
||||
|
||||
A big "Thank you" to all people who supported us to make this release possible.
|
||||
A big "Thank you" to all people who supported us to make this release possible.
|
||||
|
||||
## {% linkable_title TwinCAT %}
|
||||
With the brand-new [ADS (automation device specification)][ads docs] component by [@stlehmann] allows you to hook Home Assistant into this fieldbus independent interface which is often used between Beckhoff devices running with TwinCAT.
|
||||
|
||||
## {% linkable_title WebDav calendar %}
|
||||
Thanks to [@maxlaverse] Home Assistant support now [WebDav calendars][calendar.caldav docs].
|
||||
Thanks to [@maxlaverse] Home Assistant support now [WebDav calendars][calendar.caldav docs].
|
||||
|
||||
## {% linkable_title Tracking prices %}
|
||||
With the new [`gearbest` sensor][sensor.gearbest docs] there is now an additional sensor available to track the price of a product.
|
||||
@ -44,6 +44,23 @@ Yahoo! has discontinued their financial service. To fill this gap we have now th
|
||||
- Add a caldav calendar component ([@maxlaverse] - [#10842]) ([calendar.caldav docs]) (new-platform)
|
||||
- Refactor hue to split bridge support from light platform ([@andreacampi] - [#10691]) ([hue docs]) ([light.hue docs]) (breaking change) (new-platform)
|
||||
|
||||
## {% linkable_title Release 0.60.1 - January 6 %}
|
||||
|
||||
- Fix async IO in Sesame lock component. ([@veleek] - [#11054]) ([lock.sesame docs])
|
||||
- Fix webdav calendar schema ([@maxlaverse] - [#11185]) ([calendar.caldav docs])
|
||||
- homematic: add username and password to interface config schema ([@jannau] - [#11214]) ([homematic docs])
|
||||
- Fix webostv select source ([@OddBloke] - [#11227]) ([media_player.webostv docs])
|
||||
- Fix detection of if a negative node is in use ([@OverloadUT] - [#11255]) ([binary_sensor.isy994 docs])
|
||||
- Bugfix homematic available modus ([@pvizeli] - [#11256]) ([homematic docs])
|
||||
- Support multiple Hue bridges with lights of the same id ([@andreacampi] - [#11259]) ([light.hue docs])
|
||||
- Fix inverted sensors on the concord232 binary sensor component ([@CTLS] - [#11261]) ([binary_sensor.concord232 docs])
|
||||
- Fix handling zero values for state_on/state_off ([@ziotibia81] - [#11264]) ([switch.modbus docs])
|
||||
- Fix allday events in custom_calendars ([@maxlaverse] - [#11272]) ([calendar.caldav docs])
|
||||
- Fix unpredictable entity names in concord232 binary_sensor ([@rwa] - [#11292]) ([binary_sensor.concord232 docs])
|
||||
- Fix leak sensors always showing Unknown until Wet ([@OverloadUT] - [#11313]) ([binary_sensor.isy994 docs])
|
||||
- Don't block on sevice call for alexa ([@pvizeli] - [#11358]) ([alexa.smart_home docs])
|
||||
- iOS 10 should be served javascript_version:es5 ([@mnoorenberghe] - [#11387])
|
||||
|
||||
## {% linkable_title If you need help... %}
|
||||
|
||||
...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks.
|
||||
@ -355,3 +372,37 @@ Experiencing issues introduced by this release? Please report them in our [issue
|
||||
[vera docs]: https://home-assistant.io/components/vera/
|
||||
[volvooncall docs]: https://home-assistant.io/components/volvooncall/
|
||||
[xiaomi_aqara docs]: https://home-assistant.io/components/xiaomi_aqara/
|
||||
[#11054]: https://github.com/home-assistant/home-assistant/pull/11054
|
||||
[#11185]: https://github.com/home-assistant/home-assistant/pull/11185
|
||||
[#11214]: https://github.com/home-assistant/home-assistant/pull/11214
|
||||
[#11227]: https://github.com/home-assistant/home-assistant/pull/11227
|
||||
[#11255]: https://github.com/home-assistant/home-assistant/pull/11255
|
||||
[#11256]: https://github.com/home-assistant/home-assistant/pull/11256
|
||||
[#11259]: https://github.com/home-assistant/home-assistant/pull/11259
|
||||
[#11261]: https://github.com/home-assistant/home-assistant/pull/11261
|
||||
[#11264]: https://github.com/home-assistant/home-assistant/pull/11264
|
||||
[#11272]: https://github.com/home-assistant/home-assistant/pull/11272
|
||||
[#11292]: https://github.com/home-assistant/home-assistant/pull/11292
|
||||
[#11313]: https://github.com/home-assistant/home-assistant/pull/11313
|
||||
[#11358]: https://github.com/home-assistant/home-assistant/pull/11358
|
||||
[#11387]: https://github.com/home-assistant/home-assistant/pull/11387
|
||||
[@CTLS]: https://github.com/CTLS
|
||||
[@OddBloke]: https://github.com/OddBloke
|
||||
[@OverloadUT]: https://github.com/OverloadUT
|
||||
[@andreacampi]: https://github.com/andreacampi
|
||||
[@jannau]: https://github.com/jannau
|
||||
[@maxlaverse]: https://github.com/maxlaverse
|
||||
[@mnoorenberghe]: https://github.com/mnoorenberghe
|
||||
[@pvizeli]: https://github.com/pvizeli
|
||||
[@rwa]: https://github.com/rwa
|
||||
[@veleek]: https://github.com/veleek
|
||||
[@ziotibia81]: https://github.com/ziotibia81
|
||||
[alexa.smart_home docs]: https://home-assistant.io/components/alexa.smart_home/
|
||||
[binary_sensor.concord232 docs]: https://home-assistant.io/components/binary_sensor.concord232/
|
||||
[binary_sensor.isy994 docs]: https://home-assistant.io/components/binary_sensor.isy994/
|
||||
[calendar.caldav docs]: https://home-assistant.io/components/calendar.caldav/
|
||||
[homematic docs]: https://home-assistant.io/components/homematic/
|
||||
[light.hue docs]: https://home-assistant.io/components/light.hue/
|
||||
[lock.sesame docs]: https://home-assistant.io/components/lock.sesame/
|
||||
[media_player.webostv docs]: https://home-assistant.io/components/media_player.webostv/
|
||||
[switch.modbus docs]: https://home-assistant.io/components/switch.modbus/
|
||||
|
@ -15,21 +15,22 @@ A checklist of things to do when you're adding a new component.
|
||||
Not all existing platforms follow the requirements in this checklist. This cannot be used as a reason to not follow them!
|
||||
</p>
|
||||
|
||||
### {% linkable_title Requirements %}
|
||||
### {% linkable_title 1. Requirements %}
|
||||
|
||||
1. Requirement version pinned: `REQUIREMENTS = ['phue==0.8.1']`
|
||||
2. We no longer want requirements hosted on GitHub. Please upload to PyPi.
|
||||
3. Requirements should only be imported inside functions. This is necessary because requirements are installed on the fly.
|
||||
|
||||
### {% linkable_title Configuration %}
|
||||
### {% linkable_title 2. Configuration %}
|
||||
|
||||
1. Voluptuous schema present for config validation
|
||||
2. Default parameters specified in voluptuous schema, not in `setup(…)`
|
||||
3. Schema using as many generic config keys as possible from `homeassistant.const`
|
||||
4. If having platforms, have a `PLATFORM_SCHEMA`, otherwise `CONFIG_SCHEMA`.
|
||||
5. If `PLATFORM_SCHEMA`, import base from `homeassistant.helpers.config_validation`
|
||||
4. If your component has platforms, define a `PLATFORM_SCHEMA` instead of a `CONFIG_SCHEMA`.
|
||||
5. If using a `PLATFORM_SCHEMA` to be used with `EntityComponent`, import base from `homeassistant.helpers.config_validation`
|
||||
6. Never depend on users adding things to `customize` to configure behavior inside your component.
|
||||
|
||||
### {% linkable_title Component/platform communication %}
|
||||
### {% linkable_title 3. Component/platform communication %}
|
||||
|
||||
1. If you need to share global data with platforms, use the dictionary `hass.data`. `hass.data[DATA_XY]` while `XY` is the component is preferred over `hass.data[DOMAIN]`.
|
||||
2. If the component fetches data that causes it's related platform entities to update, you can notify them using the dispatcher code in `homeassistant.helpers.dispatcher`.
|
||||
|
@ -27,28 +27,28 @@ Not all existing platforms follow the requirements in this checklist. This canno
|
||||
|
||||
### {% linkable_title 3. Configuration %}
|
||||
|
||||
1. Volutpuous schema present for config validation
|
||||
1. Voluptuous schema present for config validation
|
||||
2. Voluptuous schema extends schema from component<br>(e.g. `light.hue.PLATFORM_SCHEMA` extends `light.PLATFORM_SCHEMA`)
|
||||
3. Default parameters specified in voluptuous schema, not in `setup_platform(…)`
|
||||
4. Schema using as many generic config keys as possible from `homeassistant.const`
|
||||
4. Your `PLATFORM_SCHEMA` should use as many generic config keys as possible from `homeassistant.const`
|
||||
```python
|
||||
import voluptuous as vol
|
||||
|
||||
```python
|
||||
import voluptuous as vol
|
||||
from homeassistant.const import CONF_FILENAME, CONF_HOST
|
||||
from homeassistant.components.light import PLATFORM_SCHEMA
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
|
||||
from homeassistant.const import CONF_FILENAME, CONF_HOST
|
||||
from homeassistant.components.light import PLATFORM_SCHEMA
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
CONF_ALLOW_UNREACHABLE = 'allow_unreachable'
|
||||
DEFAULT_UNREACHABLE = False
|
||||
|
||||
CONF_ALLOW_UNREACHABLE = 'allow_unreachable'
|
||||
DEFAULT_UNREACHABLE = False
|
||||
|
||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
||||
vol.Required(CONF_HOST): cv.string,
|
||||
vol.Optional(CONF_ALLOW_UNREACHABLE,
|
||||
default=DEFAULT_UNREACHABLE): cv.boolean,
|
||||
vol.Optional(CONF_FILENAME): cv.string,
|
||||
})
|
||||
```
|
||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
||||
vol.Required(CONF_HOST): cv.string,
|
||||
vol.Optional(CONF_ALLOW_UNREACHABLE,
|
||||
default=DEFAULT_UNREACHABLE): cv.boolean,
|
||||
vol.Optional(CONF_FILENAME): cv.string,
|
||||
})
|
||||
```
|
||||
5. Never depend on users adding things to `customize` to configure behavior inside your platform.
|
||||
|
||||
### {% linkable_title 4. Setup Platform %}
|
||||
|
||||
@ -66,7 +66,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
||||
### {% linkable_title 6. Communication with devices/services %}
|
||||
|
||||
1. All API specific code has to be part of a third party library hosted on PyPi. Home Assistant should only interact with objects and not make direct calls to the API.
|
||||
|
||||
|
||||
```python
|
||||
# bad
|
||||
status = requests.get(url('/status'))
|
||||
|
@ -120,7 +120,7 @@ The config for an add-on is stored in `config.json`.
|
||||
| auto_uart | no | Default False. Auto mapping all UART/Serial device from host into add-on.
|
||||
| hassio_api | no | This add-on can access to Hass.io REST API. It set the host alias `hassio`.
|
||||
| homeassistant_api | no | This add-on can access to Hass.io Home-Assistant REST API proxy. Use `http://hassio/homeassistant/api`.
|
||||
| privileged | no | Privilege for access to hardware/system. Available access: `NET_ADMIN`, `SYS_ADMIN`, `SYS_RAWIO`, `SYS_TIME`, `SYS_TIME`
|
||||
| privileged | no | Privilege for access to hardware/system. Available access: `NET_ADMIN`, `SYS_ADMIN`, `SYS_RAWIO`, `SYS_TIME`, `SYS_NICE`
|
||||
| map | no | List of maps for additional Hass.io folders. Possible values: `config`, `ssl`, `addons`, `backup`, `share`. Defaults to `ro`, which you can change by adding `:rw` to the end of the name.
|
||||
| environment | no | A dict of environment variable to run add-on.
|
||||
| audio | no | Boolean. Mark this add-on to use internal an audio system. The available environment variables are `ALSA_INPUT` and `ALSA_OUTPUT` which provide internal information to access alsa.
|
||||
|
@ -24,12 +24,6 @@ If you need GPIO on Raspberry Pi 3 for your Z-Wave module, add the following lin
|
||||
dtoverlay=pi3-miniuart-bt
|
||||
```
|
||||
|
||||
For some devices the `/dev/ttyAMA0` device is not detected by udev and is therefore not mapped by Docker. To explicitly set this device for mapping to Home-Assistant, execute the following command using the ssh add-on:
|
||||
|
||||
```bash
|
||||
$ curl -d '{"devices": ["ttyAMA0"]}' http://hassio/homeassistant/options
|
||||
```
|
||||
|
||||
After that, you need to change `usb_path` to `/dev/ttyAMA0` in your `configuration.yaml`.
|
||||
|
||||
```yaml
|
||||
|
Loading…
x
Reference in New Issue
Block a user