Merge branch 'current' into next

This commit is contained in:
Paulus Schoutsen 2018-10-05 18:00:02 +02:00
commit 0a11f461d4
302 changed files with 3806 additions and 1410 deletions

View File

@ -142,13 +142,13 @@ social:
# Home Assistant release details
current_major_version: 0
current_minor_version: 79
current_patch_version: 0
date_released: 2018-09-28
current_patch_version: 3
date_released: 2018-10-02
# 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-0793---october-2"
# Minor release (Example #release-0431---april-25):
# Date we moved to Discourse for comments

View File

@ -4,6 +4,7 @@ module Jekyll
'action' => '/docs/scripts/',
'device_class' => '/components/%{component}/#device-class',
'template' => '/docs/configuration/templating/',
'icon' => '/docs/configuration/customizing-devices/#icon',
}
def initialize(tag_name, text, tokens)

View File

@ -15,9 +15,14 @@ Allows you to shut down a Windows computer with a service call from Home Assista
{
"computers": [
{
"alias": "test-pc",
"alias": "test-pc-1",
"address": "192.168.0.1",
"credentials": "user%password"
},
{
"alias": "test-pc-2",
"address": "192.168.0.2",
"credentials": "user%password"
}
]
}
@ -38,3 +43,7 @@ data:
addon: core_rpc_shutdown
input: test-pc
```
<p class='note'>
The `user` specified in the credentials should be an applicable user listed in `C:/Users`. This may differ from the username used to login to Windows. Depending on your settings and privileges within Windows, changes to the firewall, UAC (User Account Control) and registry settings may be required to allow this add-on to remotely shut down your computer. There are many guides available online on how to adjust these settings.
</p>

View File

@ -13,7 +13,7 @@ footer: true
The Snips add-on depends on the Mosquitto add on to bridge to Home Assistant, so make sure that is installed.
HomeAssistant comes with certain Intents builtin to handle common tasks. A complete list of Intents can be found in this wiki [Hass Snips Bundle](https://github.com/tschmidty69/hass-snips-bundle-intents/wiki).
Home Assistant comes with certain Intents builtin to handle common tasks. A complete list of Intents can be found in this wiki [Hass Snips Bundle](https://github.com/tschmidty69/hass-snips-bundle-intents/wiki).
The Snips addon by default comes with an assistant that allows you to turn on lights or switches, open covers, or add and list items to a shopping list if that component is enabled.
@ -25,7 +25,7 @@ Open garage door
What is on my shopping list
```
To get started creating your own configuration, follow [their tutorial](https://snips.gitbook.io/documentation/console) to create an assistant and download the training data. You can also add the HomeAssistant Skill to your assistant to enable the built-in intents, and add or create your own intents to do more complex tasks.
To get started creating your own configuration, follow [their tutorial](https://snips.gitbook.io/documentation/console) to create an assistant and download the training data. You can also add the Home Assistant Skill to your assistant to enable the built-in intents, and add or create your own intents to do more complex tasks.
Now install and activate the [Samba](/addons/samba/) add-on so you can upload your training data. Connect to the "share" Samba share and copy your assistant over. Name the file `assistant.zip` or whatever you have configured in the configuration options.
@ -114,4 +114,3 @@ searchWeatherForecast:
Now just restart HassIO and ask it what the weather is like.
[their tutorial]: https://github.com/snipsco/snips-platform-documentation/wiki/2.-Create-an-assistant-using-an-existing-bundle

View File

@ -13,9 +13,12 @@ ha_release: 0.52
ha_iot_class: "Cloud Push"
---
The `abode` component will allow users to integrate their Abode Home Security systems into Home Assistant and use its alarm system and sensors to automate their homes.
The `abode` component will allow users to integrate their Abode Home Security
systems into Home Assistant and use its alarm system and sensors to automate
their homes.
Please visit the [Abode website](https://goabode.com/) for further information about Abode Security.
Please visit the [Abode website](https://goabode.com/) for further information
about Abode Security.
There is currently support for the following device types within Home Assistant:
@ -30,7 +33,8 @@ There is currently support for the following device types within Home Assistant:
## {% linkable_title Configuration %}
To use Abode devices in your installation, add the following `abode` section to your `configuration.yaml` file:
To use Abode devices in your installation,
add the following `abode` section to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@ -38,7 +42,7 @@ abode:
username: abode_username
password: abode_password
name: Abode Alarm System
polling: False
polling: false
exclude:
- 'ZW:0000000034'
- 'RF:00000011'
@ -60,23 +64,30 @@ name:
required: false
type: string
polling:
description: Enable polling if cloud push updating is less reliable. Will update the devices once every 30 seconds.
description: >
Enable polling if cloud push updating is less reliable.
Will update the devices once every 30 seconds.
required: false
type: boolean
default: false
exclude:
description: A list of devices to exclude from Home Assistant by their Abode `device_id` or `automation_id`, found within the component attributes.
description: >
A list of devices to exclude from Home Assistant by their Abode `device_id`
or `automation_id`, found within the component attributes.
required: false
type: list
lights:
description: A list of switch devices that Home Assistant should treat as lights by the switches Abode `device_id`, found within the component attributes.
description: >
A list of switch devices that Home Assistant should treat as lights by the
switches Abode `device_id`, found within the component attributes.
required: false
type: list
{% endconfiguration %}
## {% linkable_title Events %}
There are a number of events that can be triggered from Abode. They are grouped into the below events:
There are a number of events that can be triggered from Abode.
They are grouped into the below events:
- **abode_alarm**: Fired when an alarm event is triggered from Abode. This includes Smoke, CO, Panic, and Burglar alarms.
- **abode_alarm_end**: Fired when an alarm end event is triggered from Abode.
@ -99,13 +110,16 @@ Field | Description
`date` | The date of the event in the format `MM/DD/YYYY`.
`time` | The time of the event in the format `HH:MM AM`.
There is a unique list of known event_codes that can be found [here](https://github.com/MisterWil/abodepy/files/1262019/timeline_events.txt).
There is a unique list of known event_codes that can be found
[here](https://github.com/MisterWil/abodepy/files/1262019/timeline_events.txt).
## {% linkable_title Services %}
### {% linkable_title Service `change_setting` %}
Change settings on your Abode system. For a full list of settings and valid values, consult the [AbodePy settings section](https://github.com/MisterWil/abodepy/blob/master/README.rst#settings).
Change settings on your Abode system.
For a full list of settings and valid values, consult the
[AbodePy settings section](https://github.com/MisterWil/abodepy/blob/master/README.rst#settings).
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |

View File

@ -32,7 +32,7 @@ ads:
port:
required: true
description: The port that runs the AMS server on the device, typically this would be 801 or 851.
type: int
type: integer
ip_address:
required: false
description: The IP address of the ADS device, if not set the first 4 bytes of the device id will be used.

View File

@ -24,9 +24,22 @@ alarm_control_panel:
password: YOUR_PASSWORD
```
Configuration variables:
- **username** (*Required*): Username for the Alarm.com account.
- **password** (*Required*): Password for Alarm.com account.
- **name** (*Optional*): The name of the alarm. Default is 'Alarm.com'.
- **code** (*Optional*): Specifies a code to enable or disable the alarm in the frontend.
{% configuration %}
username:
description: Username for the Alarm.com account.
required: true
type: string
password:
description: Password for the Alarm.com account.
required: true
type: string
name:
description: The name of the alarm.
required: false
default: Alarm.com
type: string
code:
description: Specifies a code to enable or disable the alarm in the frontend.
required: false
type: int
{% endconfiguration %}

View File

@ -24,7 +24,15 @@ alarm_control_panel:
- platform: concord232
```
Configuration variables:
- **host** (*Optional*): The host where the concord232 server process is running. Defaults to localhost.
- **port** (*Optional*): The port where the Alarm panel is listening. Defaults to 5007.
{% configuration %}
host:
description: The host where the concord232 server process is running.
required: false
default: localhost
type: string
port:
description: The port where the Alarm panel is listening.
required: false
default: 5007
type: integer
{% endconfiguration %}

View File

@ -10,10 +10,11 @@ footer: true
logo: home-assistant.png
ha_category: Alarm
ha_release: 0.7.6
ha_qa_scale: internal
---
This platform enables you to set manual alarms in Home Assistant.
The `manual` alarm control panel platform enables you to set manual alarms in Home Assistant.
```yaml
# Example configuration.yaml entry

View File

@ -94,7 +94,7 @@ alarm_control_panel:
## {% linkable_title Examples %}
Refer to the [Manual Alarm Control page](/components/alarm_control_panel.manual/#examples) for some real life examples of how to use this panel.
Refer to the [Manual Alarm Control page](/components/alarm_control_panel.manual/#examples) for some real-life examples of how to use this panel.
## {% linkable_title MQTT Control %}

View File

@ -12,7 +12,7 @@ ha_release: 0.24
ha_category: Alarm
---
The `simplisafe` platform enables the ability to control a SimpliSafe control panel. [simplisafe.com](http://simplisafe.com/).
The `simplisafe` platform enables the ability to control a [SimpliSafe](http://simplisafe.com/) control panel.
To enable this, add the following lines to your `configuration.yaml`:
@ -24,10 +24,21 @@ alarm_control_panel:
password: YOUR_PASSWORD
```
Configuration variables:
- **username** (*Required*): Username for the SimpliSafe account.
- **password** (*Required*): Password for SimpliSafe account.
- **name** (*Optional*): The name of the alarm. Default is the SimpliSafe alarm id.
- **code** (*Optional*): Specifies a code to enable or disable the alarm in the frontend.
{% configuration %}
username:
description: Username for the SimpliSafe account.
required: true
type: string
password:
description: Password for SimpliSafe account.
required: true
type: string
name:
description: The name of the alarm. Default is the SimpliSafe alarm id.
required: false
type: string
code:
description: Specifies a code to enable or disable the alarm in the frontend.
required: false
type: string
{% endconfiguration %}

View File

@ -10,19 +10,28 @@ footer: true
logo: home-assistant.png
ha_category: Automation
ha_release: 0.38
ha_qa_scale: internal
---
The `alert` component is designed to notify you when problematic issues arise. For example, if the garage door is left open, the `alert` component can be used remind you of this by sending you repeating notifications at customizable intervals. This is also used for low battery sensors, water leak sensors, or any condition that may need your attention.
The `alert` component is designed to notify you when problematic issues arise.
For example, if the garage door is left open, the `alert` component can be used
remind you of this by sending you repeating notifications at customizable
intervals. This is also used for low battery sensors,
water leak sensors, or any condition that may need your attention.
Alerts will add an entity to the front end only when they are firing. This entity allows you to silence an alert until it is resolved.
Alerts will add an entity to the front end only when they are firing.
This entity allows you to silence an alert until it is resolved.
<p class='note warning'>
When using the `alert` component, it is important that the time zone used for Home Assistant and the underlying operating system match. Failing to do so may result in multiple alerts being sent at the same time (such as when Home Assistant is set to the `America/Detroit` time zone but the operating system uses `UTC`).
When using the `alert` component, it is important that the time zone used for Home Assistant and the underlying operating system match.
Failing to do so may result in multiple alerts being sent at the same time (such as when Home Assistant is set to the `America/Detroit` time zone but the operating system uses `UTC`).
</P>
### {% linkable_title Basic Example %}
The `alert` component makes use of any of the `notifications` components. To setup the `alert` component, first, you must setup a `notification` component. Then, add the following to your configuration file:
The `alert` component makes use of any of the `notifications` components. To
setup the `alert` component, first, you must setup a `notification` component.
Then, add the following to your configuration file:
```yaml
# Example configuration.yaml entry
@ -39,20 +48,65 @@ alert:
- ryans_phone
- kristens_phone
```
Configuration variables:
- **name** (*Required*): The friendly name of the alert.
- **done_message** (*Optional*): A message sent after an alert transitions from `on` to `off`. Is only sent if an alert notification was sent for transitioning from `off` to `on`.
- **entity_id** (*Required*): The ID of the entity to watch.
- **state** (*Optional*): The problem condition for the entity. Defaults to `on`.
- **repeat** (*Required*): Number of minutes before the notification should be repeated. Can be either a number or a list of numbers.
- **can_acknowledge** (*Optional*): Allows the alert to be unacknowledgeable. Defaults to `true`.
- **skip_first** (*Optional*): Controls whether the notification should be sent immediately or after the first delay. Defaults to `false`.
- **notifiers** (*Required*): List of `notification` components to use for alerts.
{% configuration %}
name:
description: The friendly name of the alert.
required: true
type: string
done_message:
description: >
A message sent after an alert transitions from `on` to `off`. Is only sent
if an alert notification was sent for transitioning from `off` to `on`.
required: false
type: string
entity_id:
description: The ID of the entity to watch.
required: true
type: string
state:
description: The problem condition for the entity.
required: false
type: string
default: on
repeat:
description: >
Number of minutes before the notification should be repeated.
Can be either a number or a list of numbers.
required: true
type: [int, list]
can_acknowledge:
description: Allows the alert to be unacknowledgeable.
required: false
type: boolean
default: true
skip_first:
description: >
Controls whether the notification should be
sent immediately or after the first delay.
required: false
type: boolean
default: false
notifiers:
description: "List of `notification` components to use for alerts."
required: true
type: list
{% endconfiguration %}
In this example, the garage door status (`input_boolean.garage_door`) is watched and this alert will be triggered when its status is equal to `on`. This indicates that the door has been opened. Because the `skip_first` option was set to `True`, the first notification will not be delivered immediately. However, every 30 minutes, a notification will be delivered until either `input_boolean.garage_door` no longer has a state of `on` or until the alert is acknowledged using the Home Assistant frontend.
In this example, the garage door status (`input_boolean.garage_door`) is watched
and this alert will be triggered when its status is equal to `on`.
This indicates that the door has been opened. Because the `skip_first` option
was set to `True`, the first notification will not be delivered immediately.
However, every 30 minutes, a notification will be delivered until either
`input_boolean.garage_door` no longer has a state of `on` or until the alert is
acknowledged using the Home Assistant frontend.
For notifiers that require other parameters (such as `twilio_sms` which requires you specify a `target` parameter when sending the notification), you can use the `group` notification to wrap them for an alert. Simply create a `group` notification type with a single notification member (such as `twilio_sms`) specifying the required parameters other than `message` provided by the `alert` component:
For notifiers that require other parameters (such as `twilio_sms` which requires
you specify a `target` parameter when sending the notification), you can use the
`group` notification to wrap them for an alert.
Simply create a `group` notification type with a single notification member
(such as `twilio_sms`) specifying the required parameters other than `message`
provided by the `alert` component:
```yaml
- platform: group
@ -77,7 +131,13 @@ freshwater_temp_alert:
### {% linkable_title Complex Alert Criteria %}
By design, the `alert` component only handles very simple criteria for firing. That is, it only checks if a single entity's state is equal to a value. At some point, it may be desirable to have an alert with a more complex criteria. Possibly, when a battery percentage falls below a threshold. Maybe you want to disable the alert on certain days. Maybe the alert firing should depend on more than one input. For all of these situations, it is best to use the alert in conjunction with a `Template Binary Sensor`. The following example does that.
By design, the `alert` component only handles very simple criteria for firing.
That is, it only checks if a single entity's state is equal to a value. At some
point, it may be desirable to have an alert with a more complex criteria.
Possibly, when a battery percentage falls below a threshold. Maybe you want to
disable the alert on certain days. Maybe the alert firing should depend on more
than one input. For all of these situations, it is best to use the alert in
conjunction with a `Template Binary Sensor`. The following example does that.
```yaml
binary_sensor:
@ -97,11 +157,16 @@ alert:
- kristens_phone
```
This example will begin firing as soon as the entity `sensor.motion`'s `battery` attribute falls below 15. It will continue to fire until the battery attribute raises above 15 or the alert is acknowledged on the frontend.
This example will begin firing as soon as the entity `sensor.motion`'s `battery`
attribute falls below 15. It will continue to fire until the battery attribute
raises above 15 or the alert is acknowledged on the frontend.
### {% linkable_title Dynamic Notification Delay Times %}
It may be desirable to have the delays between alert notifications dynamically change as the alert continues to fire. This can be done by setting the `repeat` configuration key to a list of numbers rather than a single number. Altering the first example would look like the following.
It may be desirable to have the delays between alert notifications dynamically
change as the alert continues to fire. This can be done by setting the `repeat`
configuration key to a list of numbers rather than a single number.
Altering the first example would look like the following.
```yaml
# Example configuration.yaml entry
@ -121,4 +186,8 @@ alert:
- kristens_phone
```
Now the first message will be sent after a 15 minute delay, the second will be sent 30 minutes after that, and a 60 minute delay will fall between every following notification. For example, if the garage door opens at 2:00, a notification will be sent at 2:15, 2:45, 3:45, 4:45, etc., continuing every 60 minutes.
Now the first message will be sent after a 15 minute delay, the second will be
sent 30 minutes after that, and a 60 minute delay will fall between every
following notification.
For example, if the garage door opens at 2:00, a notification will be
sent at 2:15, 2:45, 3:45, 4:45, etc., continuing every 60 minutes.

View File

@ -13,11 +13,13 @@ ha_iot_class: "Local Polling"
ha_release: 0.49
---
The `amcrest` camera platform allows you to integrate your [Amcrest](https://amcrest.com/) IP camera in Home Assistant.
The `amcrest` camera platform allows you to integrate your
[Amcrest](https://amcrest.com/) IP camera in Home Assistant.
## {% linkable_title Configuration %}
To enable your camera in your installation, add the following to your `configuration.yaml` file:
To enable your camera in your installation,
add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@ -41,31 +43,114 @@ amcrest:
- ptz_preset
```
Configuration variables:
{% configuration %}
host:
description: >
The IP address or hostname of your camera.
If using a hostname, make sure the DNS works as expected.
required: true
type: string
username:
description: The username for accessing your camera.
required: true
type: string
password:
description: The password for accessing your camera.
required: true
type: string
name:
description: >
This parameter allows you to override the name of your camera. In the case of multi-camera setups,
this is highly recommended as camera id number will be randomly changed at each reboot if a name is not allocated.
required: false
type: string
default: Amcrest Camera
port:
description: The port that the camera is running on.
required: false
type: integer
default: 80
resolution:
description: >
This parameter allows you to specify the camera resolution.
For a high resolution (1080/720p), specify the option `high`.
For VGA resolution (640x480p), specify the option `low`.
required: false
type: string
default: high
stream_source:
description: >
The data source for the live stream. `mjpeg` will use the camera's native
MJPEG stream, whereas `snapshot` will use the camera's snapshot API to
create a stream from still images. You can also set the `rtsp` option to
generate the streaming via RTSP protocol.
required: false
type: string
default: snapshot
ffmpeg_arguments:
description: >
Extra options to pass to ffmpeg, e.g.,
image quality or video filter options.
required: false
type: string
authentication:
description: >
Defines which authentication method to use only when **stream_source**
is **mjpeg**. Currently, *aiohttp* only support *basic*.
required: false
type: string
default: basic
scan_interval:
description: Defines the update interval of the sensor in seconds.
required: false
type: integer
default: 10
sensors:
description: >
Conditions to display in the frontend.
The following conditions can be monitored:
required: false
type: list
default: None
keys:
motion_detector:
description: "Return `true`/`false` when a motion is detected."
sdcard:
description: Return the SD card usage by reporting the total and used space.
ptz_preset:
description: >
Return the number of PTZ preset positions
configured for the given camera.
switches:
description: >
Switches to display in the frontend.
The following switches can be monitored:
required: false
type: list
default: None
keys:
motion_detection:
description: Enable/disable motion detection setting.
motion_recording:
description: Enable/disable recording on motion detection setting.
{% endconfiguration %}
- **host** (*Required*): The IP address or hostname of your camera. If using a hostname, make sure the DNS works as expected.
- **username** (*Required*): The username for accessing your camera.
- **password** (*Required*): The password for accessing your camera.
- **name** (*Optional*): This parameter allows you to override the name of your camera. The default is "Amcrest Camera". In the case of multi-camera setups, this is highly recommended as camera id number will be randomly changed at each reboot if a name is not allocated.
- **port** (*Optional*): The port that the camera is running on. The default is 80.
- **resolution** (*Optional*): This parameter allows you to specify the camera resolution. For a high resolution (1080/720p), specify the option `high`. For VGA resolution (640x480p), specify the option `low`. If omitted, it defaults to *high*.
- **stream_source** (*Optional*): The data source for the live stream. `mjpeg` will use the camera's native MJPEG stream, whereas `snapshot` will use the camera's snapshot API to create a stream from still images. You can also set the `rtsp` option to generate the streaming via RTSP protocol. If omitted, it defaults to *snapshot*.
- **ffmpeg_arguments**: (*Optional*): Extra options to pass to ffmpeg, e.g., image quality or video filter options.
- **authentication**: (*Optional*): Defines which authentication method to use only when **stream_source** is **mjpeg**. Currently, *aiohttp* only support *basic*. It defaults to *basic*.
- **scan_interval** (*Optional*): Defines the update interval of the sensor in seconds. The default is 10 seconds.
- **sensors** array (*Optional*): Conditions to display in the frontend. By default, *none* of the conditions are enabled. The following conditions can be monitored.
- **motion_detector**: Return True/False when a motion is detected
- **sdcard**: Return the SD card usage by reporting the total and used space
- **ptz_preset**: Return the number of PTZ preset positions configured for the given camera
- **switches** array (*Optional*): Switches to display in the frontend. By default, *none* of the switches are shown. The following switches can be monitored.
- **motion_detection**: Enable/disable motion detection setting
- **motion_recording**: Enable/disable recording on motion detection setting
**Note:** Amcrest cameras with newer firmware no longer have the ability to
stream `high` definition video with MJPEG encoding. You may need to use `low`
resolution stream or the `snapshot` stream source instead. If the quality seems
too poor, lower the `Frame Rate (FPS)` and max out the `Bit Rate` settings in
your camera's configuration manager. If you defined the *stream_source* to
**mjpeg**, make sure your camera supports *Basic* HTTP authentication.
Newer Amcrest firmware may not work, then **rtsp** is recommended instead.
**Note:** Amcrest cameras with newer firmware no longer have the ability to stream `high` definition video with MJPEG encoding. You may need to use `low` resolution stream or the `snapshot` stream source instead. If the quality seems too poor, lower the `Frame Rate (FPS)` and max out the `Bit Rate` settings in your camera's configuration manager. If you defined the *stream_source* to **mjpeg**, make sure your camera supports *Basic* HTTP authentication. Newer Amcrest firmware may not work, then **rtsp** is recommended instead.
**Note:** If you set the `stream_source` option to `rtsp`,
make sure to follow the steps mentioned at [FFMPEG](/components/ffmpeg/)
documentation to install the `ffmpeg`.
**Note:** If you set the `stream_source` option to `rtsp`, make sure to follow the steps mentioned at
[FFMPEG](/components/ffmpeg/) documentation to install the `ffmpeg`.
Finish its configuration by visiting the
[Amcrest sensor page](/components/sensor.amcrest/) or
[Amcrest camera page](/components/camera.amcrest/).
Finish its configuration by visiting the [Amcrest sensor page](/components/sensor.amcrest/) or [Amcrest camera page](/components/camera.amcrest/).
To check if your Amcrest camera is supported/tested, visit the [supportability matrix](https://github.com/tchellomello/python-amcrest#supportability-matrix) link from the `python-amcrest` project.
To check if your Amcrest camera is supported/tested, visit the
[supportability matrix](https://github.com/tchellomello/python-amcrest#supportability-matrix)
link from the `python-amcrest` project.

View File

@ -32,7 +32,7 @@ host:
port:
description: The port on which the APCUPSd NIS is listening.
required: false
type: int
type: integer
default: 3551
{% endconfiguration %}

View File

@ -9,6 +9,7 @@ sharing: true
footer: true
logo: home-assistant.png
ha_category: "Other"
ha_qa_scale: internal
---
The `api` component exposes a RESTful API and allows one to interact with a Home Assistant instance that is running headless. This component depends on the [`http` component](/components/http/).

View File

@ -38,7 +38,7 @@ password:
scan_interval:
description: How frequently to query for new data. Defaults to 60 seconds.
required: false
type: int
type: integer
{% endconfiguration %}
It is recommended to create a dedicated user on Arlo website to be used within Home Assistant and then share your Arlo cameras.

View File

@ -49,7 +49,7 @@ password:
timeout:
description: Timeout to wait for connections.
required: false
type: int
type: integer
default: 10
{% endconfiguration %}

View File

@ -10,6 +10,7 @@ footer: true
logo: home-assistant.png
ha_category: Other
ha_release: 0.73
ha_qa_scale: internal
---
This component creates the endpoints for the [authentication system](/docs/authentication/) that is built into Home Assistant. There are no configuration options for this component directly as it relies on the auth system in the core.

View File

@ -12,7 +12,8 @@ ha_category: Automation
ha_qa_scale: internal
---
Please see the [docs section](/docs/automation/) for in-depth documentation on how to use the automation component.
Please see the [docs section](/docs/automation/) for in-depth
documentation on how to use the automation component.
Starting with 0.28 your automation rules can be controlled with the frontend.
@ -20,12 +21,16 @@ Starting with 0.28 your automation rules can be controlled with the frontend.
<img src='{{site_root}}/images/screenshots/automation-switches.png' />
</p>
This allows one to reload the automation without restarting Home Assistant itself. If you don't want to see the automation rule in your frontend use `hide_entity: True` to hide it. You can also use `initial_state: 'off'` so that the automation is not automatically turned on after a Home Assistant reboot.
This allows one to reload the automation without restarting Home Assistant
itself. If you don't want to see the automation rule in your frontend use
`hide_entity: true` to hide it.
You can also use `initial_state: 'off'` so that the automation
is not automatically turned on after a Home Assistant reboot.
```yaml
automation:
- alias: Door alarm
hide_entity: True
hide_entity: true
initial_state: 'off'
trigger:
- platform: state

View File

@ -90,3 +90,7 @@ Send a command using [Vapix](https://www.axis.com/support/developer-support/vapi
| `action` | yes | What type of call. Default is `update`. |
Response to call can be subscribed to on event `vapix_call_response`
## {% linkable_title Troubleshooting discovery %}
If a `169.x.x.x` address is discovered. On your camera, go to **System Options** -> **Advanced** -> **Plain Config**. Change the drop-down box to `network` and click `Select Group`. If `Network Interface I0 ZeroConf` contains the `169.x.x.x` IP address, unchecked the box next to `Enabled` for this section and click `Save`.

View File

@ -28,11 +28,20 @@ binary_sensor:
pin: 8
```
Configuration variables:
- **resource** (*Required*): IP address and schema of the device that is exposing an aREST API, e.g., http://192.168.1.10.
- **pin** (*Required*): Number of the pin to monitor.
- **name** (*Optional*): Let you overwrite the name of the device. By default *name* from the device is used.
{% configuration %}
resource:
description: IP address and schema of the device that is exposing an aREST API, e.g., http://192.168.1.10.
required: true
type: string
pin:
description: Number of the pin to monitor.
required: true
type: integer
name:
description: Let you overwrite the name of the device. By default *name* from the device is used.
required: false
type: string
{% endconfiguration %}
Accessing the URL http://IP_ADDRESS/digital/PIN_NUMBER should give you the state of the pin inside a JSON response as `return_value`.

View File

@ -11,6 +11,7 @@ logo: home-assistant.png
ha_category: Utility
ha_iot_class: "Local Polling"
ha_release: 0.53
ha_qa_scale: internal
---

View File

@ -40,7 +40,7 @@ Configuration variables:
## {% linkable_title Examples %}
In this section you find some real life examples of how to use this sensor.
In this section you find some real-life examples of how to use this sensor.
### {% linkable_title SickRage %}

View File

@ -24,7 +24,7 @@ The following sensor types are supported:
The `entity_id` name will be `binary_sensor.device_name`, where `device_name` is defined in deCONZ.
#### {% linkable_title Verified to be supported binary sensors %}
#### {% linkable_title Verified supported binary sensors %}
- Open/Close Detection
- Xiaomi Smart Home Security Door & Window Contact Sensor

View File

@ -13,9 +13,17 @@ ha_iot_class: "Local Push"
ha_release: 0.35
---
The `flic` platform allows you to connect with multiple [flic](https://flic.io) smart buttons.
The `flic` platform allows you to receive click events from [flic](https://flic.io) smart buttons.
The platform does not directly interact with the buttons, but communicates with the flic service that manages the buttons. The service can run on the same instance as Home Assistant or any other reachable machine. For setup instructions visit the GitHub repository of the service for [Linux](https://github.com/50ButtonsEach/fliclib-linux-hci), [OS X](https://github.com/50ButtonsEach/flic-service-osx) or [Windows](https://github.com/50ButtonsEach/fliclib-windows).
The platform does not directly interact with the buttons, *but communicates with a flic service* that manages the buttons. The service can run on the same instance as Home Assistant or any other reachable machine.
#### {% linkable_title Service setup %}
If you are using Hass.io, you can run the service locally by [installing](https://www.home-assistant.io/hassio/installing_third_party_addons/) the flicd add-on from [pschmitt's repository](https://github.com/pschmitt/hassio-addons). On a Hass.io installation that's not yet based on HassOS, you also need to install the [bluetooth add-on](/addons/bluetooth_bcm43xx/).
For instructions on how to install the service manually, visit the GitHub repository of the service for [Linux](https://github.com/50ButtonsEach/fliclib-linux-hci), [OS X](https://github.com/50ButtonsEach/flic-service-osx) or [Windows](https://github.com/50ButtonsEach/fliclib-windows).
#### {% linkable_title Configuration %}
To use your flic buttons in your installation, add the following to your `configuration.yaml` file:
@ -25,19 +33,39 @@ binary_sensor:
- platform: flic
```
Configuration variables:
- **host** (*Optional*): The IP or hostname of the flic service server. Defaults to `localhost`.
- **port** (*Optional*): The port of the flic service. Defaults to `5551`.
- **discovery** (*Optional*): If `true` then the component is configured to constantly scan for new buttons. Defaults to `true`.
- **ignored_click_types**: List of click types whose occurrence should not trigger a `flic_click` event. Click types are `single`, `double`, and `hold`.
- **timeout** (*Optional*): Maximum time in seconds an event can be queued locally on a button before discarding the event. Defaults to 3.
{% configuration %}
host:
description: The IP or hostname of the flic service server.
required: false
type: string
default: localhost
port:
description: The port of the flic service.
required: false
type: integer
default: 5551
discovery:
description: If `true` then the component is configured to constantly scan for new buttons.
required: false
type: boolean
default: true
ignored_click_types:
description: List of click types whose occurrence should not trigger a `flic_click` event. Click types are `single`, `double`, and `hold`.
required: false
type: list
timeout:
description: The maximum time in seconds an event can be queued locally on a button before discarding the event.
required: false
type: integer
default: 3
{% endconfiguration %}
#### {% linkable_title Discovery %}
If discovery is enabled, you can add a new button by pressing it for at least 7 seconds. The button will be paired with the flic service and added to Home Assistant. Otherwise, you have to manually pair it with the flic service. The Home Assistant platform will not scan for new buttons and will only connect to buttons already paired.
#### {% linkable_title Timeout %}
When the flic button is triggered while disconnected from flic service, it will queue all events and try to connect and transmit them as soon as possible. The timeout variable can be used to stop events from triggering if too much time passed between the action and the notification in Home Assistant.
#### {% linkable_title Events %}
@ -47,7 +75,7 @@ The flic component fires `flic_click` events on the bus. You can capture the eve
```yaml
# Example configuration.yaml automation entry
automation:
- alias: Turn on lights in living room if flic is pressed once
- alias: Turn on lights in the living room when flic is pressed once
trigger:
platform: event
event_type: flic_click
@ -55,7 +83,7 @@ automation:
button_name: flic_81e4ac74b6d2
click_type: single
action:
service: homeassistant.turn_off
service: homeassistant.turn_on
entity_id: group.lights_livingroom
```
@ -66,6 +94,22 @@ Event data:
- **click_type**: The type of click. Possible values are `single`, `double` and `hold`.
- **queued_time**: The amount of time this event was queued on the button, in seconds.
To help detect and debug flic button clicks, you can use this automation that send a notification on very click type of every button. This example uses the [HTML5 push notification platform](/components/notify.html5/). Visit the [notification component page](/components/notify/) for more information on setting up notifications.
```yaml
automation:
- alias: FLIC Html5 notify on every click
hide_entity: false
trigger:
platform: event
event_type: flic_click
action:
- service_template: notify.html5
data_template:
title: "flic click"
message: {% raw %}"flic {{ trigger.event.data.button_name }} was {{ trigger.event.data.click_type }} clicked"{% endraw %}
```
##### {% linkable_title Ignoring Click Types %}
For some purposes it might make sense to exclude a specific click type from triggering click events. For example when ignoring double clicks, pressing the button twice fast results in two `single` instead of a `double` click event. This is very useful for applications where you want to click fast.

View File

@ -13,22 +13,36 @@ ha_release: 0.35
ha_iot_class: "Local Push"
---
The Hikvision Binary Sensor is a platform that parses the event stream of a [Hikvision IP Camera or NVR](http://www.hikvision.com/) and presents the camera/nvr events to Home Assistant as binary sensors with either an "off" or "on" state.
The Hikvision Binary Sensor is a platform that parses the event stream of a
[Hikvision IP Camera or NVR](http://www.hikvision.com/) and presents the
camera/nvr events to Home Assistant as binary sensors with either an "off" or
"on" state.
The platform will automatically add all sensors to Home Assistant that are configured within the camera/nvr interface to "Notify the surveillance center" as a trigger. If you would like to hide a sensor type you can do so by either unchecking "Notify the surveillance center" in the camera configuration or by using the "ignored" customize option detailed below.
The platform will automatically add all sensors to Home Assistant that are
configured within the camera/nvr interface to "Notify the surveillance center"
as a trigger. If you would like to hide a sensor type you can do so by either
unchecking "Notify the surveillance center" in the camera configuration or by
using the "ignored" customize option detailed below.
<p class='note'>
In order for the sensors to work the hikvision user must have the 'Remote: Notify Surveillance Center/Trigger Alarm Output' permission which can be enabled from the user management section of the web interface. Also the 'WEB Authentication' needs to be set to 'digest/basic' in the security/authentication section.
In order for the sensors to work the hikvision user must have the 'Remote: Notify Surveillance Center/Trigger Alarm Output' permission which can be enabled from the user management section of the web interface.
Also the 'WEB Authentication' needs to be set to 'digest/basic' in the security/authentication section.
</p>
For example, if you configure a camera with the name "Front Porch" that has motion detection and line crossing events enabled to notify the surveillance center the following binary sensors will be added to Home Assistant:
For example, if you configure a camera with the name "Front Porch" that has
motion detection and line crossing events enabled to notify the surveillance
center the following binary sensors will be added to Home Assistant:
```text
binary_sensor.front_porch_motion
binary_sensor.front_port_line_crossing
```
When used with a NVR device the sensors will be appended with the channel number they represent. For example, if you configure an NVR with the name "Home" that supports 2 cameras with motion detection and line crossing events enabled to notify the surveillance center the following binary sensors will be added to Home Assistant:
When used with a NVR device the sensors will be appended with the channel number
they represent. For example,
if you configure an NVR with the name "Home" that supports 2 cameras with
motion detection and line crossing events enabled to notify the surveillance
center the following binary sensors will be added to Home Assistant:
```text
binary_sensor.home_motion_1
@ -37,7 +51,8 @@ binary_sensor.home_line_crossing_1
binary_sensor.home_line_crossing_2
```
This platform should work with all Hikvision cameras and nvrs, and has been confirmed to work with the following models:
This platform should work with all Hikvision cameras and nvrs,
and has been confirmed to work with the following models:
- DS-2CD3132-I
- DS-2CD2232-I5
@ -46,7 +61,8 @@ This platform should work with all Hikvision cameras and nvrs, and has been conf
- DS-2CD2142FWD-I
- DS-2CD2155FWD-IS
To enable this sensor, the following lines are required in your `configuration.yaml` file:
To enable this sensor,
add the following lines are required in your `configuration.yaml` file:
```yaml
binary_sensor:
@ -56,17 +72,56 @@ binary_sensor:
password: pass
```
Configuration options for a Hikvision Sensor:
- **host** (*Required*): The IP address of the camera you would like to connect to.
- **username** (*Required*): The username to authenticate with.
- **password** (*Required*): The password to authenticate with.
- **name** (*Optional*): The name you'd like to give the camera in Home Assistant, defaults to name defined in the camera.
- **port** (*Optional*): The port to connect to the camera on, defaults to 80.
- **ssl** (*Optional*): True if you want to connect with https. Be sure to set the port also.
- **customize** (*Optional*): This attribute contains sensor-specific override values. Only sensor name needs defined:
- **ignored** (*Optional*): Ignore this sensor completely. It won't be shown in the Web Interface and no events are generated for it.
- **delay** (*Optional*): Specify the delay to wait after a sensor event ends before notifying Home Assistant. This is useful to catch multiple quick trips in one window without the state toggling on and off. The default delay is 5 seconds.
{% configuration %}
host:
description: The IP address of the camera you would like to connect to.
required: true
type: string
username:
description: The username to authenticate with.
required: true
type: string
password:
description: The password to authenticate with.
required: true
type: string
name:
description: >
The name you would like to give the camera in Home Assistant,
defaults to name defined in the camera.
required: false
type: string
port:
description: The port to connect to the camera on.
required: false
type: integer
default: 80
ssl:
description: "`true` if you want to connect with https. Be sure to set the port also."
required: false
type: boolean
customize:
description: >
This attribute contains sensor-specific override values.
Only sensor name needs defined:
required: false
type: map
keys:
ignored:
description: >
Ignore this sensor completely. It won't be shown in
the Web Interface and no events are generated for it.
required: false
type: boolean
delay:
description: >
Specify the delay to wait after a sensor event ends before notifying
Home Assistant in seconds. This is useful to catch multiple quick trips
in one window without the state toggling on and off.
required: false
type: integer
default: 5
{% endconfiguration %}
Supported sensor/event types are:
@ -87,36 +142,38 @@ Supported sensor/event types are:
- Face Detection
- Scene Change Detection
Example of a configuration in your `configuration.yaml` that utilizes the customize options for a camera:
Example of a configuration in your `configuration.yaml`
that utilizes the customize options for a camera:
```yaml
binary_sensor:
- platform: hikvision
host: 192.168.X.X
port: 80
ssl: False
ssl: false
username: user
password: pass
customize:
motion:
delay: 30
line_crossing:
ignored: True
ignored: true
```
Example of a configuration in your `configuration.yaml` that utilizes the customize options for a nvr:
Example of a configuration in your `configuration.yaml`
that utilizes the customize options for a nvr:
```yaml
binary_sensor:
- platform: hikvision
host: 192.168.X.X
port: 80
ssl: False
ssl: false
username: user
password: pass
customize:
motion_1:
delay: 30
field_detection_2:
ignored: True
ignored: true
```

View File

@ -60,7 +60,7 @@ $ curl -X GET -H "x-ha-access: YOUR_PASSWORD" \
## {% linkable_title Examples %}
In this section you find some real life examples of how to use this sensor. Beside `curl`.
In this section you'll find some real-life examples of how to use this sensor, besides `curl`, which was shown earlier.
### {% linkable_title Using Python request module %}

View File

@ -13,19 +13,22 @@ ha_release: 0.62
ha_iot_class: "Local Push"
---
Before you can use the IHC Binary Sensor platform, you must setup the [IHC Component](/components/ihc/)
Before you can use the IHC Binary Sensor platform,
you must setup the [IHC Component](/components/ihc/).
When auto setup is enabled the following products will be found in the IHC project and setup as binary sensors:
When auto setup is enabled the following products will
be found in the IHC project and setup as binary sensors:
* Dataline magnet contacts
* Dataline Pir sensors
* Dataline Pir sensors with twilight detection
* Dataline Pir alarm sensor
* Dataline smoke detector
* Dataline gas detector
* Dataline light sensor
- Dataline magnet contacts
- Dataline Pir sensors
- Dataline Pir sensors with twilight detection
- Dataline Pir alarm sensor
- Dataline smoke detector
- Dataline gas detector
- Dataline light sensor
To manually configure IHC Binary Sensors insert this section in your configuration:
To manually configure IHC Binary Sensors
insert this section in your configuration:
```yaml
binary_sensor:
@ -48,22 +51,24 @@ binary_sensors:
id:
description: The IHC resource id.
required: true
type: int
type: integer
inverting:
description: If True the sensor will be inverted.
required: false
type: bool
type: boolean
default: false
name:
description: The name of the component
required: false
type: string
type:
description: The binary sensor type. See [Home Assistant binary sensor](/components/binary_sensor/) for available types.
description: >
The binary sensor type.
See [Home Assistant binary sensor](/components/binary_sensor/)
for available types.
required: false
type: string
{% endconfiguration %}
The resource id should be an id of a boolean IHC resource.
For more information about IHC resource ids see [Manual Setup](/components/ihc/#manual-setup)
The resource id should be an id of a boolean IHC resource. For more information
about IHC resource ids see [Manual Setup](/components/ihc/#manual-setup).

View File

@ -13,11 +13,16 @@ ha_release: 0.36
redirect_from: /components/sensor.iss/
---
The `iss` platform uses the [Open Notify API](http://open-notify.org/Open-Notify-API/ISS-Location-Now/) to let you know if the station is above your home location. This means that ISS is 10° above the horizon of your home.
The `iss` platform uses the
[Open Notify API](http://open-notify.org/Open-Notify-API/ISS-Location-Now/)
to let you know if the station is above your home location.
This means that ISS is 10° above the horizon of your home.
You can check in the attributes of the sensor to see the timestamp for the next rise of the station, its current coordinates, and the number of people in space.
You can check in the attributes of the sensor to see the timestamp for the next
rise of the station, its current coordinates, and the number of people in space.
To add ISS binary sensor to your installation, add the following to your `configuration.yaml` file:
To add ISS binary sensor to your installation,
add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@ -34,13 +39,14 @@ show_on_map:
{% endconfiguration %}
<p class='note warning'>
If you set `show_on_map` `True` then the location attributes are named `latitude` and `longitude`. The default name of the location attributes is `lat` and `long` to avoid showing them on the map.
If you set `show_on_map: true` then the location attributes are named `latitude` and `longitude`.
The default name of the location attributes is `lat` and `long` to avoid showing them on the map.
</p>
### {% linkable_title Show position on map with camera platform %}
The [generic camera platform](/components/camera.mjpeg/) offers the possibility to show the location of the ISS on Google Maps.
The [generic camera platform](/components/camera.mjpeg/) offers
the possibility to show the location of the ISS on Google Maps.
{% raw %}
```yaml

View File

@ -13,15 +13,32 @@ ha_release: 0.9
ha_iot_class: "depends"
---
The `mqtt` binary sensor platform uses an MQTT message payload to set the binary sensor to one of two states: `on` or `off`.
The `mqtt` binary sensor platform uses an MQTT message payload
to set the binary sensor to one of two states: `on` or `off`.
The binary sensor state will be updated only after a new message is published on `state_topic` matching `payload_on` or `payload_off`. If these messages are published with the `retain` flag set, the binary sensor will receive an instant state update after subscription and Home Assistant will display the correct state on startup. Otherwise, the initial state displayed in Home Assistant will be `unknown`.
The binary sensor state will be updated only after a new message is published on
`state_topic` matching `payload_on` or `payload_off`.
If these messages are published with the `retain` flag set,
the binary sensor will receive an instant state update after subscription and
Home Assistant will display the correct state on startup.
Otherwise, the initial state displayed in Home Assistant will be `unknown`.
## {% linkable_title Configuration %}
The `mqtt` binary sensor platform optionally supports an `availability_topic` to receive online and offline messages (birth and LWT messages) from the MQTT device. During normal operation, if the MQTT cover device goes offline (i.e., publishes `payload_not_available` to `availability_topic`), Home Assistant will display the binary sensor as `unavailable`. If these messages are published with the `retain` flag set, the binary sensor will receive an instant update after subscription and Home Assistant will display the correct availability state of the binary sensor when Home Assistant starts up. If the `retain` flag is not set, Home Assistant will display the binary sensor as `unavailable` when Home Assistant starts up. If no `availability_topic` is defined, Home Assistant will consider the MQTT device to be available.
The `mqtt` binary sensor platform optionally supports an `availability_topic` to
receive online and offline messages (birth and LWT messages) from the MQTT
device. During normal operation, if the MQTT cover device goes offline
(i.e., publishes `payload_not_available` to `availability_topic`), Home
Assistant will display the binary sensor as `unavailable`. If these messages are
published with the `retain` flag set, the binary sensor will receive an instant
update after subscription and Home Assistant will display the correct
availability state of the binary sensor when Home Assistant starts up.
If the `retain` flag is not set, Home Assistant will display the binary sensor
as `unavailable` when Home Assistant starts up. If no `availability_topic`
is defined, Home Assistant will consider the MQTT device to be available.
To use an MQTT binary sensor in your installation, add the following to your `configuration.yaml` file:
To use an MQTT binary sensor in your installation,
add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@ -51,7 +68,11 @@ payload_off:
type: string
default: "OFF"
availability_topic:
description: "The MQTT topic subscribed to receive birth and LWT messages from the MQTT device. If `availability_topic` is not defined, the binary sensor availability state will always be `available`. If `availability_topic` is defined, the binary sensor availability state will be `unavailable` by default."
description: >
The MQTT topic subscribed to receive birth and LWT messages from the MQTT
device. If `availability_topic` is not defined, the binary sensor availability
state will always be `available`. If `availability_topic` is defined,
the binary sensor availability state will be `unavailable` by default.
required: false
type: string
payload_available:
@ -70,32 +91,41 @@ qos:
type: integer
default: 0
unique_id:
description: "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception."
description: >
An ID that uniquely identifies this sensor. If two sensors have
the same unique ID, Home Assistant will raise an exception.
required: false
type: string
device_class:
description: "The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend."
description: >
The [type/class](/components/binary_sensor/) of
the sensor to set the icon in the frontend.
required: false
type: string
value_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload."
description: >
Defines a [template](/docs/configuration/templating/#processing-incoming-data)
to extract a value from the payload.
required: false
type: string
force_update:
description: Sends update events even if the value hasn't changed. Useful if you want to have meaningful value graphs in history.
description: >
Sends update events even if the value has not changed.
Useful if you want to have meaningful value graphs in history.
reqired: false
type: boolean
default: False
default: false
{% endconfiguration %}
## {% linkable_title Examples %}
In this section, you will find some real-life examples of how to use this sensor.
### {% linkable_title Full configuration %}
To test, you can use the command line tool `mosquitto_pub` shipped with `mosquitto` or the `mosquitto-clients` package to send MQTT messages. To set the state of the binary sensor manually:
To test, you can use the command line tool `mosquitto_pub` shipped with
`mosquitto` or the `mosquitto-clients` package to send MQTT messages.
To set the state of the binary sensor manually:
```bash
$ mosquitto_pub -h 127.0.0.1 -t home-assistant/window/contact -m "OFF"
@ -123,7 +153,14 @@ binary_sensor:
### {% linkable_title Get the state of a device with ESPEasy %}
Assuming that you have flashed your ESP8266 unit with [ESPEasy](https://github.com/letscontrolit/ESPEasy). Under "Config" is a name ("Unit Name:") set for your device (here it's "bathroom"). A configuration for a "Controller" for MQTT with the protocol "OpenHAB MQTT" is present and the entries ("Controller Subscribe:" and "Controller Publish:") are adjusted to match your needs. In this example, the topics are prefixed with "home". Also, add a "Switch Input" in the "Devices" tap with the name "switch" and "button" as value.
Assuming that you have flashed your ESP8266 unit with
[ESPEasy](https://github.com/letscontrolit/ESPEasy).
Under "Config" is a name ("Unit Name:") set for your device
(here it's "bathroom"). A configuration for a "Controller" for MQTT with the
protocol "OpenHAB MQTT" is present and the entries ("Controller Subscribe:" and
"Controller Publish:") are adjusted to match your needs.
In this example, the topics are prefixed with "home". Also, add a "Switch Input"
in the "Devices" tap with the name "switch" and "button" as value.
As soon as the unit is online, you will get the state of the attached button.

View File

@ -14,13 +14,19 @@ ha_release: 0.31
### {% linkable_title Basic Configuration %}
The `netatmo` binary sensor platform is consuming the information provided by a [Netatmo](https://www.netatmo.com) camera. This component allows you to get the latest event seen by the camera.
The `netatmo` binary sensor platform is consuming the information provided by a
[Netatmo](https://www.netatmo.com) camera.
This component allows you to get the latest event seen by the camera.
To enable the Netatmo binary sensor, you have to set up [netatmo](/components/netatmo/), this will use discovery to add your binary sensor.
To enable the Netatmo binary sensor, you have to set up
[netatmo](/components/netatmo/),
this will use discovery to add your binary sensor.
### {% linkable_title Advanced configuration %}
If you want to select a specific sensor, set discovery to False for [netatmo](/components/netatmo/) and add the following lines to your `configuration.yaml`:
If you want to select a specific sensor,
set discovery to `false` for [netatmo](/components/netatmo/)
and add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
@ -41,20 +47,36 @@ binary_sensor:
- Outdoor vehicle
```
Configuration variables:
{% configuration %}
home:
description: Will use the cameras of this home only.
required: false
type: string
timeout:
description: >
The Welcome/Presence binary sensors will
stay on for X seconds after detection.
required: false
type: integer
default: 90
cameras:
description: List of cameras entity IDs to display.
required: false
type: list
welcome_sensors:
description: >
List of monitored conditions. Possible values are
'Someone known', 'Someone unknown' and 'Motion'.
required: false
type: list
presence_sensors:
description: >
List of monitored conditions. Possible values are 'Outdoor motion',
'Outdoor human', 'Outdoor animal' and 'Outdoor vehicle'.
required: false
type: list
{% endconfiguration %}
- **home** (*Optional*): Will use the cameras of this home only.
- **timeout** (*Optional*): The Welcome/Presence binary sensors will stay on for X seconds after detection. (default: 90)
- **cameras** array (*Optional*): Cameras to use. Multiple entities allowed.
- 'camera_name': Name of the camera to display.
- **welcome_sensors** array (*Optional*): List of monitored conditions.
- 'Someone known'
- 'Someone unknown'
- 'Motion'
- **presence_sensors** array (*Optional*): List of monitored conditions.
- 'Outdoor motion'
- 'Outdoor human'
- 'Outdoor animal'
- 'Outdoor vehicle'
If **home** and **cameras** is not provided, all cameras will be used. If multiple cameras are available then each monitored conditions will create a specific sensor for each camera
If **home** and **cameras** is not provided, all cameras will be used.
If multiple cameras are available then each monitored conditions
will create a specific sensor for each camera

View File

@ -13,11 +13,16 @@ ha_release: 0.44
ha_iot_class: "Local Polling"
---
The `pilight` binary sensor platform implement the [pilight hub](/components/pilight/) binary sensor functionality. Two type of Pilight binary sensor configuration available. A normal sensor which send the on and off state cyclical and a trigger sensor which send only a trigger when an event happened (for example lots of cheap PIR motion detector).
The `pilight` binary sensor platform implement the
[pilight hub](/components/pilight/) binary sensor functionality.
Two type of Pilight binary sensor configuration available. A normal sensor which
send the on and off state cyclical and a trigger sensor which send only a
trigger when an event happened (for example lots of cheap PIR motion detector).
## {% linkable_title Configuration %}
To enable a Pilight binary sensor in your installation, add the following to your `configuration.yaml` file:
To enable a Pilight binary sensor in your installation,
add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@ -26,15 +31,41 @@ binary_sensor:
variable: 'state'
```
Configuration variables:
- **variable** (*Required*): The variable name in the data stream that defines the sensor value.
- **payload** (*Required*): Message payload identifiers. Only if all identifiers are matched the sensor value is set.
- **name** (*Optional*): Name of the sensor.
- **payload_on** (*Optional*): Variable `on` value. The component will recognize this as logical '1'.
- **payload_off** (*Optional*): Variable `off` value. The component will recognize this as logical '0'.
- **disarm_after_trigger:** (*Optional*): Configure sensor as trigger type.
- **reset_delay_sec** (*Optional*): Seconds before the sensor is disarmed if `disarm_after_trigger` is set to true. Default is 30 seconds.
{% configuration %}
variable:
description: The variable name in the data stream that defines the sensor value.
required: true
type: string
payload:
description: >
Message payload identifiers.
Only if all identifiers are matched the sensor value is set.
required: true
type: string
name:
description: Name of the sensor.
required: false
type: string
payload_on:
description: "Variable `on` value. The component will recognize this as logical '1'."
required: false
type: string
payload_off:
description: "Variable `off` value. The component will recognize this as logical '0'."
required: false
type: string
disarm_after_trigger:
description: Configure sensor as trigger type.
required: false
type: boolean
reset_delay_sec:
description: >
Seconds before the sensor is disarmed if
`disarm_after_trigger` is set to true.
required: false
type: integer
default: 30
{% endconfiguration %}
A full configuration example could look like this:

View File

@ -10,6 +10,7 @@ footer: true
logo: home-assistant.png
ha_category: Network
ha_release: 0.43
ha_qa_scale: internal
---
@ -25,12 +26,22 @@ binary_sensor:
- platform: ping
host: 192.168.0.1
```
Configuration variables:
- **host** (*Required*): The IP address or hostname of the system you want to track.
- **count** (*Optional*): Number of packets to send. Defaults to 5.
- **name** (*Optional*): Let you overwrite the name of the device. Defaults to `Ping Binary sensor`.
{% configuration %}
host:
description: The IP address or hostname of the system you want to track.
required: true
type: string
count:
description: Number of packets to send.
required: false
type: integer
default: 5
name:
description: Let you overwrite the name of the device.
required: false
type: string
default: "`Ping Binary sensor`"
{% endconfiguration %}
The sensor exposes the different round trip times values measured by `ping` as attributes:

View File

@ -11,10 +11,10 @@ logo: home-assistant.png
ha_category: Utility
ha_iot_class: "Local Polling"
ha_release: 0.57
ha_qa_scale: internal
---
The `random` binary sensor platform is creating random states (`True`, 1, `on` or `False`, 0, `off`). This can be useful if you want to test automation rules. It generates a new state every time it is polled.
The `random` binary sensor platform is creating random states (`true`, 1, `on` or `false`, 0, `off`). This can be useful if you want to test automation rules. It generates a new state every time it is polled.
## {% linkable_title Configuration %}
@ -33,5 +33,3 @@ name:
type: string
{% endconfiguration %}
See the [entity component options](/docs/configuration/platform_options/) to control how often the main component polls the random binary sensor. The default is 30 seconds.

View File

@ -13,10 +13,15 @@ ha_release: "0.10"
ha_iot_class: "Local Polling"
---
The `rest` binary sensor platform is consuming a given endpoint which is exposed
by a
[RESTful API](https://en.wikipedia.org/wiki/Representational_state_transfer)
of a device, an application, or a web service.
The binary sensor has support for GET and POST requests.
The `rest` binary sensor platform is consuming a given endpoint which is exposed by a [RESTful API](https://en.wikipedia.org/wiki/Representational_state_transfer) of a device, an application, or a web service. The binary sensor has support for GET and POST requests.
The JSON messages can contain different values like `1`, `"1"`, `TRUE`, `true`, `on`, or `open`. If the value is nested then use a [template](/docs/configuration/templating/#processing-incoming-data).
The JSON messages can contain different values like `1`, `"1"`,
`TRUE`, `true`, `on`, or `open`. If the value is nested then use a
[template](/docs/configuration/templating/#processing-incoming-data).
```json
{
@ -28,7 +33,8 @@ The JSON messages can contain different values like `1`, `"1"`, `TRUE`, `true`,
}
```
To enable this sensor, add the following lines to your `configuration.yaml` file for a GET request:
To enable this sensor,
add the following lines to your `configuration.yaml` file for a GET request:
```yaml
# Example configuration.yaml entry
@ -64,11 +70,15 @@ name:
type: string
default: REST Binary Sensor
device_class:
description: "The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend."
description: >
The [type/class](/components/binary_sensor/) of
the sensor to set the icon in the frontend.
required: false
type: string
value_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the value."
description: >
Defines a [template](/docs/configuration/templating/#processing-incoming-data)
to extract the value.
required: false
type: template
payload:
@ -79,9 +89,9 @@ verify_ssl:
description: Verify the certification of the endpoint.
required: false
type: boolean
default: True
default: true
authentication:
description: Type of the HTTP authentication. `basic` or `digest`.
description: "Type of the HTTP authentication. `basic` or `digest`."
required: false
type: string
username:
@ -104,11 +114,13 @@ Make sure that the URL exactly matches your endpoint or resource.
## {% linkable_title Examples %}
In this section you find some real life examples of how to use this sensor.
In this section you find some real-life examples of how to use this sensor.
### {% linkable_title aREST sensor %}
Instead of using an [aREST](/components/binary_sensor.arest/) binary sensor, you could retrieve the value of a device supporting aREST directly with a REST binary sensor.
Instead of using an [aREST](/components/binary_sensor.arest/) binary sensor,
you could retrieve the value of a device supporting
aREST directly with a REST binary sensor.
```yaml
binary_sensor:
@ -136,7 +148,8 @@ binary_sensor:
Content-Type: application/json
```
The headers will contain all relevant details. This will also give you the ability to access endpoints that are protected by tokens.
The headers will contain all relevant details. This will also give
you the ability to access endpoints that are protected by tokens.
```bash
Content-Length: 1024

View File

@ -11,23 +11,35 @@ logo: rfxtrx.png
ha_category: Binary Sensor
---
The `rfxtrx` platform support binary sensors that communicate in the frequency range of 433.92 MHz. The rfxtrx binary sensor component provides support for them.
The `rfxtrx` platform support binary sensors that
communicate in the frequency range of 433.92 MHz.
The rfxtrx binary sensor component 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 component provides some special options for them, while other rfxtrx protocols should work too.
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 component provides
some special options for them, while other rfxtrx protocols should work too.
# Setting up your devices
Once you have set up your [rfxtrx hub](/components/rfxtrx/), the easiest way to find your binary sensors is to add this to your `configuration.yaml`:
Once you have set up your [rfxtrx hub](/components/rfxtrx/), the easiest way
to find your binary sensors is to add this to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
binary_sensor:
platform: rfxtrx
automatic_add: True
automatic_add: true
```
Open your local home-assistant web UI and go to the "states" page. Then make sure to trigger your sensor. You should see a new entity appear in the *Current entities* list, starting with "binary_sensor." and some hexadecimal digits. Those hexadecimal digits are your device id.
Open your Home Assistant frontend and go to the "states" page.
Then make sure to trigger your sensor. You should see a new entity
appear in the *Current entities* list, starting with "binary_sensor."
and some hexadecimal digits. Those hexadecimal digits are your device id.
For example: "binary_sensor.0913000022670e013b70". Here your device id is `0913000022670e013b70`. Then you should update your configuration to:
For example: "binary_sensor.0913000022670e013b70". Here your device id
is `0913000022670e013b70`. Then you should update your configuration to:
```yaml
# Example configuration.yaml entry
@ -45,7 +57,8 @@ Configuration variables:
- **off_delay** (*Optional*): For sensors that only sends 'On' state updates, this variable sets a delay after which the sensor state will be updated back to 'Off'.
<p class='note warning'>
This component and the [rfxtrx switch](/components/switch/rfxtrx/) can steal each other's devices when setting the `automatic_add` configuration parameter to `true`. Set `automatic_add` only when you have some devices to add to your installation, otherwise leave it to `False`.
This component and the [rfxtrx switch](/components/switch/rfxtrx/) can steal each other's devices when setting the `automatic_add` configuration parameter to `true`.
Set `automatic_add` only when you have some devices to add to your installation, otherwise leave it to `false`.
</p>
<p class='note warning'>
@ -53,12 +66,19 @@ If a device ID consists of only numbers, please make sure to surround it with qu
This is a known limitation in YAML, because the device ID will be interpreted as a number otherwise.
</p>
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:
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*.
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:
@ -66,7 +86,7 @@ Example configuration:
# Example configuration.yaml entry
binary_sensor:
platform: rfxtrx
automatic_add: True
automatic_add: true
devices:
091300006ca2c6001080:
name: motion_hall
@ -77,15 +97,22 @@ binary_sensor:
## 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 fields 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:
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 fields 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*): Defines how many bits are used for commands inside the data packets sent by the device.
- **command_on** (*Optional*): Defines the data bits value that is sent by the device upon an 'On' command.
- **command_off** (*Optional*): Defines the data bits value that is sent by the device upon an 'Off' command.
Let's try to add a new PT-2262 sensor using the "automatic_add" option and have a look at Home Assistant system log.
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:
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)
@ -93,21 +120,27 @@ INFO (Thread-6) [homeassistant.components.binary_sensor.rfxtrx] Added binary sen
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:
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.
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.
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
platform: rfxtrx
automatic_add: True
automatic_add: true
devices:
0913000022670e013b70:
name: window_room2
@ -117,7 +150,8 @@ devices:
command_off: 0x7
```
The *automatic_add* option makes the rfxtrx binary sensor component calculate and display the configuration options for you in the Home Assistant logs:
The *automatic_add* option makes the rfxtrx binary sensor component 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:
@ -127,12 +161,14 @@ 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.
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.
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.

View File

@ -11,6 +11,7 @@ ha_category: Binary Sensor
ha_release: 0.12
ha_iot_class: "Local Push"
logo: home-assistant.png
ha_qa_scale: internal
---
The `template` platform supports sensors which breaks out the `state` and
@ -93,7 +94,7 @@ result:
## {% linkable_title Examples %}
In this section you find some real life examples of how to use this sensor.
In this section you find some real-life examples of how to use this sensor.
### {% linkable_title Sensor Threshold %}

View File

@ -11,6 +11,7 @@ logo: home-assistant.png
ha_category: Utility
ha_iot_class: "Local Polling"
ha_release: 0.34
ha_qa_scale: internal
---

View File

@ -11,13 +11,19 @@ ha_category: Utility
logo: home-assistant.png
ha_release: 0.28
ha_iot_class: "Local Push"
ha_qa_scale: internal
---
The `trend` platform allows you to create sensors which show the trend of numeric `state` or`state_attributes` from other entities. This sensor requires at least two updates of the underlying sensor to establish a trend. Thus it can take some time to show an accurate state. It can be useful as part of automations, where you want to base an action on a trend.
The `trend` platform allows you to create sensors which show the trend of
numeric `state` or`state_attributes` from other entities. This sensor requires
at least two updates of the underlying sensor to establish a trend.
Thus it can take some time to show an accurate state. It can be useful
as part of automations, where you want to base an action on a trend.
## {% linkable_title Configuration %}
To enable Trend binary sensors in your installation, add the following to your `configuration.yaml` file:
To enable Trend binary sensors in your installation,
add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@ -28,31 +34,80 @@ binary_sensor:
entity_id: sensor.cpu_speed
```
Configuration variables:
- **sensors** array (*Required*): List of your sensors.
- **entity_id** (*Required*): The entity that this sensor tracks.
- **attribute** (*Optional*): The attribute of the entity that this sensor tracks. If no attribute is specified then the sensor will track the state.
- **device_class** (*Optional*): The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend.
- **friendly_name** (*Optional*): Name to use in the Frontend.
- **invert** (*Optional*): Invert the result. A `true` value would mean descending rather than ascending. Defaults to `False`
- **max_samples** (*Optional*): Limit the maximum number of stored samples. Defaults to `2`.
- **min_gradient** (*Optional*): The minimum rate at which the observed value must be changing for this sensor to switch on. The gradient is measured in sensor units per second. Defaults to `0.0`
- **sample_duration** (*Optional*): The duration **in seconds** to store samples for. Samples older than this value will be discarded. Defaults to `0`
{% configuration %}
sensors:
description: List of your sensors.
required: true
type: map
keys:
entity_id:
description: The entity that this sensor tracks.
required: true
type: string
attribute:
description: >
The attribute of the entity that this sensor tracks.
If no attribute is specified then the sensor will track the state.
required: false
type: string
device_class:
description: >
The [type/class](/components/binary_sensor/) of
the sensor to set the icon in the frontend.
required: false
type: string
friendly_name:
description: Name to use in the Frontend.
required: false
type: string
invert:
description: >
Invert the result. A `true` value would
mean descending rather than ascending.
required: false
type: boolean
default: false
max_samples:
description: Limit the maximum number of stored samples.
required: false
type: integer
default: 2
min_gradient:
description: >
The minimum rate at which the observed value
must be changing for this sensor to switch on.
The gradient is measured in sensor units per second.
required: false
type: string
default: 0.0
sample_duration:
description: >
The duration **in seconds** to store samples for.
Samples older than this value will be discarded.
required: false
type: integer
default: 0
{% endconfiguration %}
## {% linkable_title Using Multiple Samples %}
If the optional `sample_duration` and `max_samples` parameters are specified then multiple samples can be stored and used to detect long-term trends.
If the optional `sample_duration` and `max_samples` parameters are specified
then multiple samples can be stored and used to detect long-term trends.
Each time the state changes, a new sample is stored along with the sample time. Samples older than `sample_duration` seconds will be discarded.
Each time the state changes, a new sample is stored along with the sample time.
Samples older than `sample_duration` seconds will be discarded.
A trend line is then fitted to the available samples, and the gradient of this line is compared to `min_gradient` to determine the state of the trend sensor. The gradient is measured in sensor units per second - so if you want to know when the temperature is falling by 2 degrees per hour, use a gradient of (-2) / (60 x 60) = -0.00055
A trend line is then fitted to the available samples, and the gradient of this
line is compared to `min_gradient` to determine the state of the trend sensor.
The gradient is measured in sensor units per second - so if you want to know
when the temperature is falling by 2 degrees per hour,
use a gradient of (-2) / (60 x 60) = -0.00055
The current number of stored samples is displayed on the States page.
## {% linkable_title Examples %}
In this section you find some real life examples of how to use this sensor.
In this section you find some real-life examples of how to use this sensor.
This example indicates `true` if the sun is still rising:
@ -65,8 +120,9 @@ binary_sensor:
attribute: elevation
```
This example creates two sensors to indicate whether the temperature is rising or falling at a rate of at least 3 degrees an hour, and collects samples over a two hour period:
This example creates two sensors to indicate whether the temperature is
rising or falling at a rate of at least 3 degrees an hour,
and collects samples over a two hour period:
```yaml
binary_sensor:

View File

@ -15,6 +15,8 @@ ha_release: 0.68
To get your [wirelesstag.net](http://wirelesstag.net) binary sensors working within Home Assistant, please follow the instructions for the general [WirelessTag component](/components/wirelesstag).
## {% linkable_title Configuration %}
To enable tags set up with your [wirelesstag.net](http://wirelesstag.net) account, add the following to your `configuration.yaml` file:
```yaml
@ -24,25 +26,34 @@ binary_sensor:
monitored_conditions:
- presence
- door
- low_battery
- battery
```
{% configuration %}
monitored_conditions:
description: The conditions types to monitor; valid values are specified below
required: true
type: list
monitored_conditions:
description: The conditions types to monitor.
required: true
type: list
keys:
presence:
description: On means in range, Off means out of range.
motion:
description: On when a movement was detected, Off when clear.
door:
description: On when a door is open, Off when the door is closed.
cold:
description: On means temperature become too cold, Off means normal.
heat:
description: On means hot, Off means normal.
dry:
description: On means too dry (humidity), Off means normal.
wet:
description: On means too wet (humidity), Off means normal.
light:
description: On means light detected, Off means no light.
moisture:
description: On means moisture detected (wet), Off means no moisture (dry).
battery:
description: On means tag battery is low, Off means normal.
{% endconfiguration %}
The following conditions can be monitored:
* (`presence`): On means in range, Off means out of range.
* (`motion`): On when a movement was detected, Off when clear.
* (`door`): On when a door is open, Off when the door is closed.
* (`cold`): On means temperature become too cold, Off means normal.
* (`heat`): On means hot, Off means normal.
* (`dry`): On means too dry (humidity), Off means normal.
* (`wet`): On means too wet (humidity), Off means normal.
* (`light`): On means light detected, Off means no light.
* (`moisture`): On means moisture detected (wet), Off means no moisture (dry).
* (`low_battery`): On means tag battery is low, Off means normal.

View File

@ -11,15 +11,22 @@ logo: home-assistant.png
ha_category: Utility
ha_iot_class: "Local Polling"
ha_release: 0.41
ha_qa_scale: internal
---
The `workday` binary sensor indicates, whether the current day is a workday or not. It allows specifying, which days of the week counts as workdays and also uses the python module [holidays](https://pypi.python.org/pypi/holidays) to incorporate information about region-specific public holidays.
The `workday` binary sensor indicates, whether the current day is a workday or
not. It allows specifying, which days of the week counts as workdays and also
uses the python module [holidays](https://pypi.python.org/pypi/holidays)
to incorporate information about region-specific public holidays.
## {% linkable_title Configuration %}
Check the [country list](https://github.com/dr-prodigy/python-holidays#available-countries) for available province.
Check the
[country list](https://github.com/dr-prodigy/python-holidays#available-countries)
for available province.
To enable the `workday` sensor in your installation, add the following to your `configuration.yaml` file:
To enable the `workday` sensor in your installation,
add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@ -29,20 +36,50 @@ binary_sensor:
workdays: [mon, wed, fri]
```
Configuration variables:
{% configuration %}
name:
description: A name for this sensor.
required: false
type: string
default: Workday Sensor
country:
description: >
Country code according to
[holidays](https://pypi.python.org/pypi/holidays/0.9.4) notation.
required: true
type: string
province:
description: >
Province code according to
[holidays](https://pypi.python.org/pypi/holidays/0.9.4) notation.
required: false
type: string
workdays:
description: List of workdays.
required: false
type: list
default: "[mon, tue, wed, thu, fri]"
excludes:
description: List of workday excludes.
required: false
type: list
default: "[sat, sun, holiday]"
days_offset:
description: Set days offset.
required: false
type: integer
default: 0
{% endconfiguration %}
- **name** (*Optional*): A name for this sensor. Defaults to *Workday Sensor*
- **country** (*Required*): Country code according to [holidays](https://pypi.python.org/pypi/holidays/0.9.4) notation.
- **province** (*Optional*): Province code according to [holidays](https://pypi.python.org/pypi/holidays/0.9.4) notation. Defaults to None.
- **workdays** (*Optional*): List of workdays. Defaults to `mon`, `tue`, `wed`, `thu`, `fri`.
- **excludes** (*Optional*): List of workday excludes. Defaults to `sat`, `sun`, `holiday`.
- **days_offset** (*Optional*): Set days offset. Defaults to `0`.
Days are specified as follows: `mon`, `tue`, `wed`, `thu`, `fri`, `sat`, `sun`. The keyword `holiday` is used for public holidays identified by the holidays module.
Days are specified as follows: `mon`, `tue`, `wed`, `thu`, `fri`, `sat`, `sun`.
The keyword `holiday` is used for public
holidays identified by the holidays module.
<p class='note warning'>
If you use the sensor for Norway (`NO`) you need to wrap `NO`in quotes or write the name in full. Otherwise the value is evaluated as `False`.
If you use the sensor for Canada (`CA`) with Ontario (`ON`) as `province:` then you need to wrap `ON` in quotes. Otherwise the value is evaluated as `True` (check the YAML documentation for further details) and the sensor will not work.
If you use the sensor for Norway (`NO`) you need to wrap `NO` in quotes or write the name in full.
Otherwise the value is evaluated as `false`.
If you use the sensor for Canada (`CA`) with Ontario (`ON`) as `province:` then you need to wrap `ON` in quotes.
Otherwise the value is evaluated as `true` (check the YAML documentation for further details) and the sensor will not work.
</p>
Example usage for automation:

View File

@ -25,10 +25,22 @@ binary_sensor:
pin: 0
```
Configuration variables:
- **name** (*Required*): The name you would like to give the binary sensor in Home Assistant.
- **pin** (*Required*): The number identifying which pin to use.
- **address** (*Optional*): The long 64-bit address of the remote ZigBee device whose digital input pin you'd like to sample. Do not include this variable if you want to sample the local ZigBee device's pins.
- **on_state** (*Optional*): Either `high` (default) or `low`, depicting whether the binary sensor is considered `on` when the pin is `high` or `low`.
{% configuration %}
name:
description: The name you would like to give the binary sensor in Home Assistant.
required: true
type: string
pin:
description: The number identifying which pin to use.
required: true
type: integer
address:
description: The long 64-bit address of the remote ZigBee device whose digital input pin you'd like to sample. Do not include this variable if you want to sample the local ZigBee device's pins.
required: false
type: string
on_state:
description: Either `high` or `low`, depicting whether the binary sensor is considered `on` when the pin is `high` or `low`.
required: false
default: high
type: string
{% endconfiguration %}

View File

@ -13,9 +13,11 @@ ha_release: "0.40"
ha_iot_class: "Cloud Polling"
---
The `blink` component lets you view camera images and motion events from [Blink](http://blinkforhome.com) camera and security systems.
The `blink` component lets you view camera images and motion events
from [Blink](http://blinkforhome.com) camera and security systems.
You will need your Blink login information (username, usually you email address, and password) to use this module.
You will need your Blink login information (username, which is
usually your email address, and password) to use this module.
## {% linkable_title Configuration %}

View File

@ -12,10 +12,17 @@ ha_category: Car
ha_release: 0.64
---
The `bmw_connected_drive` component lets you retrieve data on your BMW vehicle from the BMW Connected Drive portal. You need to have a working BMW Connected Drive account, and a Connected Drive enabled vehicle for this to work.
The `bmw_connected_drive` component lets you retrieve data of your BMW vehicle from the BMW Connected Drive portal. You need to have a working BMW Connected Drive account, and a Connected Drive enabled vehicle for this to work.
For compatibility with your BMW vehicle check the [bimmer_connected page](https://github.com/m1n3rva/bimmer_connected) on github.
This component provides the following platforms:
- Binary Sensors: Doors, windows, condition based services, check control messages, parking lights, door lock state, charging status (electric cars) and connections status (electric cars).
- Device tracker: The location of your car.
- Lock: Control the lock of your car.
- Sensors: Mileage, remaining range, remaining fuel, charging time remaing (electric cars), charging status (electric cars), remaing range electric (electric cars).
To enable this component in your installation, add the following to your
`configuration.yaml` file:
@ -25,7 +32,7 @@ bmw_connected_drive:
name:
username: USERNAME_BMW_CONNECTED_DRIVE
password: PASSWORD_BMW_CONNECTED_DRIVE
region: one of "north_america", "china" , "rest_of_world"
region: one of "north_america", "china", "rest_of_world"
```
{% configuration %}
@ -47,7 +54,7 @@ bmw_connected_drive:
required: true
type: string
region:
description: "The region of your Connected Drive account. Please use of these values: `north_america`, `china`, `rest_of_world`"
description: "The region of your Connected Drive account. Please use one of these values: `north_america`, `china`, `rest_of_world`"
required: true
type: string
read_only:
@ -77,15 +84,15 @@ The vehicle is identified via the parameter `vin`.
### {% linkable_title Sound the horn %}
The service `bmw_connected_drive.sound_horn` sounds the horn of the vehicle. Use this feature responsibly, as it might annoy your neighbors. The vehicle is identified via the parameter `vin`.
The service `bmw_connected_drive.sound_horn` sounds the horn of the vehicle. This option is not available in some countries (among which the UK). Use this feature responsibly, as it might annoy your neighbors. The vehicle is identified via the parameter `vin`.
### {% linkable_title Flash the lights %}
The service `bmw_connected_drive.light_flash' flashes the lights of the vehicle. The vehicle is identified via the parameter `vin`.
The service `bmw_connected_drive.light_flash` flashes the lights of the vehicle. The vehicle is identified via the parameter `vin`.
### {% linkable_title Update the state %}
The service `bmw_connected_drive.update_state`fetches the last state of the vehicles of all your accounts from the BMW server. This does *not* trigger an update from the vehicle; it gets the data from the BMW servers. So this service does *not* interact with your vehicles.
The service `bmw_connected_drive.update_state` fetches the last state of the vehicles of all your accounts from the BMW server. This does *not* trigger an update from the vehicle; it gets the data from the BMW servers. So this service does *not* interact with your vehicles.
This service does not require any attributes.

View File

@ -9,6 +9,7 @@ sharing: true
footer: true
logo: home-assistant.png
ha_category: Utility
ha_qa_scale: internal
---

View File

@ -12,14 +12,22 @@ ha_iot_class: "Cloud Polling"
ha_release: "0.60"
---
The `caldav` platform allows you to connect to your WebDav calendar and generate binary sensors. A different sensor will be created for each individual calendar, or you can specify custom calendars which match a criteria you define (more on that below). These sensors will be `on` if you have an on going event in that calendar or `off` if the event is later in time, or if there is no event at all. The WebDav calendar get updated roughly every 15 minutes.
The `caldav` platform allows you to connect to your WebDav calendar and generate
binary sensors. A different sensor will be created for each individual calendar,
or you can specify custom calendars which match a criteria you define (more on
that below). These sensors will be `on` if you have an on going event in that
calendar or `off` if the event is later in time, or if there is no event at all.
The WebDav calendar get updated roughly every 15 minutes.
### {% linkable_title Prerequisites %}
You need to have a CalDav server and credentials for it. This component was tested against [Baikal](http://sabre.io/baikal/) but any component complying with the RFC4791 should work. [Nextcloud](https://nextcloud.com/) and [Owncloud](https://owncloud.org/) work fine.
You need to have a CalDav server and credentials for it. This component was
tested against [Baikal](http://sabre.io/baikal/) but any component complying
with the RFC4791 should work. [Nextcloud](https://nextcloud.com/)
and [Owncloud](https://owncloud.org/) work fine.
You might need some additional system packages to compile the Python caldav library. On a Debian based system, install them by:
You might need some additional system packages to compile the
Python caldav library. On a Debian based system, install them by:
```bash
$ sudo apt-get install libxml2-dev libxslt1-dev zlib1g-dev
@ -27,7 +35,8 @@ $ sudo apt-get install libxml2-dev libxslt1-dev zlib1g-dev
### {% linkable_title Basic Setup %}
To integrate a WebDav calendar in Home Assistant, add the following section to your `configuration.yaml` file:
To integrate a WebDav calendar in Home Assistant,
add the following section to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry for baikal
@ -47,12 +56,16 @@ calendar:
url: https://nextcloud.example.com/remote.php/dav
```
This example will generate default binary sensors for each calendar you have in your account. Those calendars will be `on` when there is an ongoing event and `off` if not. Events that last a whole day are ignored in those calendars. You have to setup custom calendars in order to take them into account or for advanced event filtering.
This example will generate default binary sensors for each calendar you have in
your account. Those calendars will be `on` when there is an ongoing event and
`off` if not. Events that last a whole day are ignored in those calendars.
You have to setup custom calendars in order to take them into account or for
advanced event filtering.
### {% linkable_title Custom calendars %}
You have the possibility to create multiple binary sensors for events that match certain conditions.
You have the possibility to create multiple binary
sensors for events that match certain conditions.
```yaml
# Example configuration.yaml entry
@ -70,9 +83,13 @@ calendar:
search: 'Warmup'
```
This will create two binary sensors for the calendar name Agenda: "HomeOffice" and "WarmupFlat". Those sensors will be `on` if there is an ongoing event matching the regular expression specified in `search`. In custom calendars, events that last a whole day are taken into account.
This will create two binary sensors for the calendar name Agenda: "HomeOffice"
and "WarmupFlat". Those sensors will be `on` if there is an ongoing event
matching the regular expression specified in `search`.
In custom calendars, events that last a whole day are taken into account.
Please note that when you configure custom calendars, the default ones are not created anymore.
Please note that when you configure custom calendars,
the default ones are not created anymore.
{% configuration %}
url:
@ -89,7 +106,9 @@ password:
type: string
calendars:
required: false
description: List of the calendars to filter. Empty or absent means no filtering, i.e. all calendars will be added.
description: >
List of the calendars to filter.
Empty or absent means no filtering, i.e. all calendars will be added.
type: list
custom_calendars:
required: false
@ -106,11 +125,12 @@ custom_calendars:
type: string
search:
required: true
description: Regular expression for filtering the events based on the content of their summary, description or location.
description: >
Regular expression for filtering the events based on
the content of their summary, description or location.
type: string
{% endconfiguration %}
### {% linkable_title Sensor attributes %}
- **offset_reached**: If set in the event title and parsed out will be on/off once the offset in the title in minutes is reached. So the title Very important meeting !!-10 would trigger this attribute to be on 10 minutes before the event starts.
@ -136,9 +156,12 @@ calendar:
- holidays
```
Full example with automation to wake up to music if not holiday. Prerequisite: you have a calendar named "work" where you create calendar entries containing "Holiday".
Full example with automation to wake up to music if not holiday.
Prerequisite: you have a calendar named "work" where
you create calendar entries containing "Holiday".
Custom calendar names are built from the main calendar + name of the custom calendar.
Custom calendar names are built from the
main calendar + name of the custom calendar.
```yaml
# configuration.yaml
@ -165,5 +188,4 @@ calendar:
- condition: state
entity_id: calendar.work_holiday
state: 'off'
```

View File

@ -13,12 +13,17 @@ ha_iot_class: "Cloud Polling"
ha_release: 0.33
---
The `google` calendar platform allows you to connect to your [Google Calendars](https://calendar.google.com) and generate binary sensors. The sensors created can trigger based on any event on the calendar or only for matching events. When you first setup this component it will generate a new configuration file `google_calendars.yaml` that will contain information about all of the calendars you can see.
The `google` calendar platform allows you to connect to your
[Google Calendars](https://calendar.google.com) and generate binary sensors.
The sensors created can trigger based on any event on the calendar or only for
matching events. When you first setup this component it will generate a new
configuration file `google_calendars.yaml` that will contain information about
all of the calendars you can see.
## {% linkable_title Prerequisites %}
Generate a Client ID and Client Secret on [Google Developers Console](https://console.developers.google.com/start/api?id=calendar).
Generate a Client ID and Client Secret on
[Google Developers Console](https://console.developers.google.com/start/api?id=calendar).
1. Follow the wizard using the following information.
1. When it gets to the point of asking _Which API are you using?_ just click cancel.
@ -32,7 +37,8 @@ Generate a Client ID and Client Secret on [Google Developers Console](https://co
## {% linkable_title Configuration %}
To integrate Google Calendar in Home Assistant, add the following section to your `configuration.yaml` file:
To integrate Google Calendar in Home Assistant,
add the following section to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@ -51,7 +57,9 @@ client_secret:
required: true
type: string
track_new_calendar:
description: Will automatically generate a binary sensor when a new calendar is detected. The system scans for new calendars only on startup.
description: >
Will automatically generate a binary sensor when a new calendar
is detected. The system scans for new calendars only on startup.
required: false
type: boolean
default: true
@ -59,7 +67,10 @@ track_new_calendar:
The next steps will require you to have Home Assistant running.
After you have it running complete the Google authentication that pops up. It will give you a URL and a code to enter. This will grant your Home Assistant service access to all the Google Calendars that the account you authenticate with can read. This is a Read-Only view of these calendars.
After you have it running complete the Google authentication that pops up.
It will give you a URL and a code to enter. This will grant your Home Assistant
service access to all the Google Calendars that the account you
authenticate with can read. This is a Read-Only view of these calendars.
## {% linkable_title Calendar Configuration %}
@ -86,23 +97,61 @@ A basic entry for a single calendar looks like:
search: "#UnImportant"
```
Variables:
{% configuration %}
cal_id:
description: The Google *generated* unique id for this calendar.
required: true
type: string
default: "**DO NOT CHANGE THE DEFAULT VALUE**"
entities:
description: Yes, you can have multiple sensors for a calendar!
required: true
type: list
keys:
device_id:
description: >
The name that all your automations/scripts
will use to reference this device.
required: true
type: string
name:
description: What is the name of your sensor that you'll see in the frontend.
required: true
type: string
track:
description: "Should we create a sensor `true` or ignore it `false`?"
required: true
type: boolean
search:
description: If set will only trigger for matched events.
required: false
type: string
offset:
description: >
A set of characters that precede a number in the event title
for designating a pre-trigger state change on the sensor.
required: false
type: string
default: "!!"
ignore_availability:
description: "Should we respect `free`/`busy` flags?"
required: false
type: boolean
default: true
{% endconfiguration %}
- **cal_id**: The Google generated unique id for this calendar. **DO NOT CHANGE**
- **entities**: Yes, you can have multiple sensors for a calendar!
- **device_id**: (*Required*): The name that all your automations/scripts will use to reference this device.
- **name**: (*Required*): What is the name of your sensor that you'll see in the frontend.
- **track**: (*Required*): Should we create a sensor `True` or ignore it `False`?
- **search**: (*Optional*): If set will only trigger for matched events.
- **offset**: (*Optional*): A set of characters that precede a number in the event title for designating a pre-trigger state change on the sensor. (Default: `!!`)
- **ignore_availability**: (*Optional*): Should we respect `free`/`busy` flags? (Defaults to `true`)
From this we will end up with the binary sensors `calendar.test_unimportant` and
`calendar.test_important` which will toggle themselves on/off based on events on
the same calendar that match the search value set for each.
You'll also have a sensor `calendar.test_everything` that will
not filter events out and always show the next event available.
From this we will end up with the binary sensors `calendar.test_unimportant` and `calendar.test_important` which will toggle themselves on/off based on events on the same calendar that match the search value set for each. You'll also have a sensor `calendar.test_everything` that will not filter events out and always show the next event available.
But what if you only wanted it to toggle based on all events? Just leave out the *search* parameter.
But what if you only wanted it to toggle based on all events?
Just leave out the *search* parameter.
<p class='note warning'>
If you use a `#` sign for `search` then wrap the whole search term in quotes. Otherwise everything following the hash sign would be considered a YAML comment.
If you use a `#` sign for `search` then wrap the whole search term in quotes.
Otherwise everything following the hash sign would be considered a YAML comment.
</p>
### {% linkable_title Sensor attributes %}
@ -114,3 +163,28 @@ If you use a `#` sign for `search` then wrap the whole search term in quotes. Ot
- **location**: The event Location.
- **start_time**: Start time of event.
- **end_time**: End time of event.
## {% linkable_title Using calendar in automations %}
A calendar can be used as an external scheduler for special events or reoccurring events instead of hardcoding them in automations.
Trigger as soon as an event starts:
```yaml
trigger:
platform: state
entity_id: calendar.calendar_name
to: 'on'
```
By using specific text in the event title, you can set conditions to initiate particular automation flows on designated events while other events will be ignored.
For example, the actions following this condition will only be executed for events named 'vacation':
{% raw %}
```yaml
condition:
condition: template
value_template: "{{states.calendar.calendar_name.attributes.message == 'vacation' }}"
```
{% endraw %}

View File

@ -48,7 +48,7 @@ Configuration variables:
## {% linkable_title Examples %}
In this section you find some real life examples of how to use this camera platform.
In this section you find some real-life examples of how to use this camera platform.
### {% linkable_title Weather graph from yr.no %}

View File

@ -26,10 +26,16 @@ camera:
file_path: /tmp/image.jpg
```
Configuration variables:
- **file_path** (*Required*): File to serve as the camera.
- **name** (*Optional*): Name of the camera
{% configuration %}
file_path:
description: File to serve as the camera.
required: true
type: string
name:
description: Name of the camera.
required: false
type: string
{% endconfiguration %}
### {% linkable_title Service `camera.local_file_update_file_path` %}

View File

@ -13,10 +13,11 @@ ha_release: pre 0.7
ha_iot_class: "depends"
---
The `mjpeg` camera platform allows you to integrate IP cameras which are capable
to stream their video with MJPEG into Home Assistant.
The `mjpeg` camera platform allows you to integrate IP cameras which are capable to stream their video with MJPEG into Home Assistant.
To enable this camera in your installation, add the following to your `configuration.yaml` file:
To enable this camera in your installation,
add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@ -25,14 +26,33 @@ camera:
mjpeg_url: http://192.168.1.92/mjpeg
```
Configuration variables:
- **mjpeg_url** (*Required*): The URL your camera serves the video on, eg. http://192.168.1.21:2112/
- **still_image_url** (*Optional*): The URL for thumbnail picture if camera support that.
- **name** (*Optional*): This parameter allows you to override the name of your camera.
- **username** (*Optional*): The username for accessing your camera.
- **password** (*Optional*): The password for accessing your camera.
- **authentication** (*Optional*): `basic` (default) or `digest` auth for requests.
{% configuration %}
mjpeg_url:
description: The URL your camera serves the video on, eg. http://192.168.1.21:2112/
required: true
type: string
still_image_url:
description: The URL for thumbnail picture if camera support that.
required: false
type: string
name:
description: This parameter allows you to override the name of your camera.
required: false
type: string
username:
description: The username for accessing your camera.
required: false
type: string
password:
description: The password for accessing your camera.
required: false
type: string
authentication:
description: "`basic` or `digest` auth for requests."
required: false
type: string
default: basic
{% endconfiguration %}
## {% linkable_title Examples %}

View File

@ -26,9 +26,19 @@ camera:
topic: zanzito/shared_locations/my-device
```
Configuration variables:
- **topic** (*Required*): MQTT topic to subscribe to.
- **name** (*Optional*): Name of the camera
- **unique_id** (*Optional*): An ID that uniquely identifies this camera. If two cameras have the same unique ID, Home Assistant will raise an exception.
{% configuration %}
topic:
description: MQTT topic to subscribe to.
required: true
type: string
name:
description: Name of the camera.
required: false
type: string
unique_id:
description: >
An ID that uniquely identifies this camera. If two cameras have the same unique ID
Home Assistant will raise an exception.
required: false
type: string
{% endconfiguration %}

View File

@ -31,7 +31,7 @@ image_width:
description: Set the image width.
required: false
default: 640
type: int
type: integer
name:
description: Name of the camera.
required: false
@ -41,32 +41,32 @@ image_height:
description: Set the image height.
required: false
default: 480
type: int
type: integer
image_quality:
description: Set the image quality (from 0 to 100).
required: false
default: 7
type: int
type: integer
image_rotation:
description: Set image rotation (0-359).
required: false
default: 0
type: int
type: integer
horizontal_flip:
description: Set horizontal flip (0 to disable, 1 to enable).
required: false
default: 0
type: int
type: integer
vertical_flip:
description: Set vertical flip (0 to disable, 1 to enable).
required: false
default: 0
type: int
type: integer
timelapse:
description: Takes a picture every this many milliseconds (thousands of a second) - the default means one picture a second.
required: false
default: 1000
type: int
type: integer
file_path:
description: Save the picture in a custom file path.
required: false

View File

@ -21,7 +21,7 @@ The platform connects to the Unifi NVR software and automatically discovers/adds
It is recommended that you create a new user for this platform in the NVR software and only give the user the permissions it need to operate.
- The API key is found in the specific user's `API Access` tab in the NVR software.
- The API key is found in `User` -> `My account` -> `API Access` in the NVR software.
- The camera password is found in `Settings` -> `Camera Settings` -> `Camera Password` in the NVR software.
### {% linkable_title Configuration %}
@ -44,7 +44,7 @@ nvr:
port:
description: The port number to use for accessing the NVR.
required: false
type: int
type: integer
default: 7080
key:
description: The API key available from the NVR web interface.

View File

@ -53,18 +53,42 @@ camera:
name: Camera
host: '192.168.1.100'
model: 'yi'
password: my_password_123
password: YOUR_PASSWORD
```
Configuration variables:
- **name** (*Required*): A human-friendly name for the camera.
- **host** (*Required*): The IP address or hostname of the camera.
- **model** (*Required*): The model of Xiaomi Camera, currently supporting yi and xiaofang.
- **password** (*Required*): The password to the FTP server on the camera (from above), can be any string as the current firmware doesn't allow setting ftp passwords.
- **path** (*Optional*): The path to the raw MP4 files. Defaults to `/media/mmcblk0p1/record`.
- **username** (*Optional*): The user that can access the FTP server. Defaults to `root`.
- **ffmpeg_arguments** (*Optional*): Extra options to pass to `ffmpeg` (e.g., image quality or video filter options).
{% configuration %}
name:
description: A human-friendly name for the camera.
required: true
type: string
host:
description: The IP address or hostname of the camera.
required: true
type: string
model:
description: The model of Xiaomi Camera, currently supporting yi and xiaofang.
required: true
type: string
password:
description: The password to the FTP server on the camera (from above), can be any string as the current firmware doesn't allow setting ftp passwords.
required: true
type: string
path:
description: The path to the raw MP4 files.
required: false
default: /media/mmcblk0p1/record
type: string
username:
description: The user that can access the FTP server.
required: false
default: root
type: string
ffmpeg_arguments:
description: >
Extra options to pass to `ffmpeg`
required: false
type: string
{% endconfiguration %}
<p class='note'>
The default for `path:` will not work with all cameras. It may be needed that you add that key with the exact path for your device.
@ -82,7 +106,7 @@ camera:
name: My Camera
host: '192.168.1.100'
model: 'xiaofang'
password: my_password_123
password: YOUR_PASSWORD
path: /home/camera/feed
ffmpeg_arguments: '-vf scale=800:450'
```

View File

@ -40,7 +40,7 @@ canary:
timeout:
description: Timeout to wait for connections.
required: false
type: int
type: integer
default: 10
{% endconfiguration %}

View File

@ -15,15 +15,20 @@ ha_iot_class: "Local Polling"
redirect_from: /components/media_player.cast/
---
Google Cast devices like Android TVs and Chromecasts will be automatically discovered if you enable [the discovery component]({{site_root}}/components/discovery/). If you don't have the discovery component enabled, you can enable the Cast component by going to the Integrations page inside the config panel.
Google Cast devices like Android TVs and Chromecasts will be automatically
discovered if you enable [the discovery component](/components/discovery/). If
you don't have the discovery component enabled, you can enable the Cast
component by going to the Integrations page inside the config panel.
## {% linkable_title Advanced use %}
The Cast component has some extra configuration options available for advanced users. You will still need to create a config entry to initialize the Cast component.
For example, Cast devices can only be discovered if they are on the same subnet as Home Assistant. If this is not the case, you want to configure the IP address of the Cast device directly:
The Cast component has some extra configuration options available for advanced
users. You will still need to create a config entry to initialize the Cast
component.
For example, Cast devices can only be discovered if they are on the same subnet
as Home Assistant. If this is not the case,
you want to configure the IP address of the Cast device directly:
```yaml
# Example configuration.yaml entry
@ -32,7 +37,31 @@ cast:
- host: 192.168.1.10
```
Configuration variables:
{% configuration %}
media_player:
description: A list that contains all Cast devices.
required: true
type: list
keys:
host:
description: Use only if you don't want to scan for devices.
required: false
type: string
ignore_cec:
description: >
A list of Chromecasts that should ignore CEC data for determining the
active input. [See the upstream documentation for more information.](https://github.com/balloob/pychromecast#ignoring-cec-data)
required: false
type: list
{% endconfiguration %}
- **host** (*Optional*): Use only if you don't want to scan for devices.
- **ignore_cec** (*Optional*) A list of Chromecasts that should ignore CEC data for determining the active input. [See the upstream documentation for more information.](https://github.com/balloob/pychromecast#ignoring-cec-data)
If you want to manually configure multiple Cast media players, you can define
those as follows:
```yaml
# Example configuration.yaml entry for multiple devices
cast:
media_player:
- host: IP_ADDRESS_DEVICE_1
- host: IP_ADDRESS_DEVICE_2
```

View File

@ -14,7 +14,7 @@ ha_iot_class: "Local Polling"
---
The `generic_thermostat` climate platform is a thermostat implemented in Home Assistant. It uses a sensor and a switch connected to a heater or air conditioning under the hood. When in heater mode, if the measured temperature is cooler then the target temperature, the heater will be turned on and turned off when the required temperature is reached. When in air conditioning mode, if the measured temperature is hotter then the target temperature, the air conditioning will be turned on and turned off when required temperature is reached.
The `generic_thermostat` climate platform is a thermostat implemented in Home Assistant. It uses a sensor and a switch connected to a heater or air conditioning under the hood. When in heater mode, if the measured temperature is cooler then the target temperature, the heater will be turned on and turned off when the required temperature is reached. When in air conditioning mode, if the measured temperature is hotter then the target temperature, the air conditioning will be turned on and turned off when required temperature is reached. One Generic Thermostat entity can only control one switch. If you need to activate two switches, one for a heater and one for an air conditioner, you will need two Generic Thermostat entities.
```yaml
# Example configuration.yaml entry

View File

@ -38,15 +38,15 @@ name:
slave:
description: The number of the slave (Optional for tcp and upd Modbus, use 1).
required: true
type: int
type: integer
target_temp_register:
description: Register number for target temperature (Setpoint).
required: true
type: int
type: integer
current_temp_register:
description: Register number for current temperature (Process value).
required: true
type: int
type: integer
data_type:
description: Response representation (int, uint, float, custom). If float selected, value will converted to IEEE 754 floating point format.
required: false
@ -55,11 +55,11 @@ data_type:
count:
description: Number of registers to read.
required: false
type: int
type: integer
precision:
description: Number of valid decimals.
required: false
type: int
type: integer
default: 0
{% endconfiguration %}

View File

@ -86,6 +86,10 @@ current_temperature_topic:
description: The MQTT topic on which to listen for the current temperature.
required: false
type: string
current_temperature_template:
description: A template with which the value received on `current_temperature_topic` will be rendered.
required: false
type: template
power_command_topic:
description: The MQTT topic to publish commands to change the power state. This is useful if your device has a separate power toggle in addition to mode.
required: false
@ -102,6 +106,11 @@ mode_state_template:
description: A template to render the value received on the `mode_state_topic` with.
required: false
type: template
modes:
description: A list of supported modes.
required: false
default: ['auto', 'off', 'cool', 'heat', 'dry', 'fan_only']
type: list
temperature_command_topic:
description: The MQTT topic to publish commands to change the target temperature.
required: false
@ -126,6 +135,11 @@ fan_mode_state_template:
description: A template to render the value received on the `fan_mode_state_topic` with.
required: false
type: template
fan_modes:
description: A list of supported fan modes.
required: false
default: ['auto', 'low', 'medium', 'high']
type: list
swing_mode_command_topic:
description: The MQTT topic to publish commands to change the swing mode.
required: false
@ -138,6 +152,11 @@ swing_mode_state_template:
description: A template to render the value received on the `swing_mode_state_topic` with.
required: false
type: template
swing_modes:
description: A list of supported swing modes.
required: false
default: ['on', 'off']
type: list
away_mode_command_topic:
description: The MQTT topic to publish commands to change the away mode.
required: false

View File

@ -65,7 +65,7 @@ ssl:
timeout:
description: Number of seconds for API timeout.
required: false
type: int
type: integer
default: 5
humidifier:
description: Report humidity and expose humidifier setpoints.

View File

@ -33,12 +33,12 @@ port:
description: The port of your controller.
required: false
default: 9999
type: int
type: integer
gateway_address:
description: The gateway address for the gateway (Settings in the controller itself).
required: false
default: 1
type: int
type: integer
{% endconfiguration %}

View File

@ -10,6 +10,7 @@ footer: true
logo: home-assistant.png
ha_category: Front end
ha_release: 0.39
ha_qa_scale: internal
---
The `config` component is designed to display panels in the frontend to configure and manage parts of Home Assistant.
@ -21,9 +22,17 @@ To enable the configuration panel, add the following to your `configuration.yaml
config:
```
### {% linkable_title Integrations %}
This section enables you to manage integrations for devices such as Philips Hue and Sonos from within Home Assistant.
### {% linkable_title Users %}
This section enables you to manage your Home Assistant users.
### {% linkable_title General %}
This section enables you to control Home Assistant from within Home Assistant. Check your configuration, reload the core, groups, and automation, and the Home Assistant process itself. With a single mouse click.
This section enables you to control Home Assistant from within Home Assistant. Check your configuration, reload the core, groups, scripts, automations, and the Home Assistant process itself with a single mouse click.
<p class='img'>
<img src='{{site_root}}/images/screenshots/server-management.png' />

View File

@ -9,6 +9,7 @@ sharing: true
footer: true
logo: home-assistant.png
ha_category: Other
ha_qa_scale: internal
---
<p class='note'>

View File

@ -9,6 +9,7 @@ sharing: true
footer: true
logo: home-assistant.png
ha_category: "Voice"
ha_qa_scale: internal
---
The conversation component allows you to converse with Home Assistant. You can either converse by pressing the microphone in the frontend (supported browsers only (no iOS)) or by calling the `conversation/process` service with the transcribed text.

View File

@ -10,6 +10,7 @@ footer: true
logo: home-assistant.png
ha_category: Automation
ha_release: 0.53
ha_qa_scale: internal
---
The `counter` component allows one to count occurrences fired by automations.

View File

@ -41,7 +41,7 @@ Configuration variables:
## {% linkable_title Examples %}
In this section you find some real life examples of how to use this sensor.
In this section you find some real-life examples of how to use this sensor.
### {% linkable_title Full configuration %}

View File

@ -11,6 +11,7 @@ ha_category: Cover
ha_release: 0.66
ha_iot_class: "Local Push"
logo: home-assistant.png
ha_qa_scale: internal
---
The `group` platform can create a cover that combines several cover entities into one.

View File

@ -163,7 +163,7 @@ unique_id:
## {% linkable_title Examples %}
In this section you will find some real life examples of how to use this platform.
In this section you will find some real-life examples of how to use this platform.
### {% linkable_title Full configuration without tilt %}

View File

@ -11,14 +11,17 @@ ha_category: Cover
ha_release: 0.48
ha_iot_class: "Local Push"
logo: home-assistant.png
ha_qa_scale: internal
---
The `template` platform can create covers that combine components and provides the ability to run scripts or invoke services for each of the open, close, stop, position and tilt commands of a cover.
The `template` platform can create covers that combine components and provides
the ability to run scripts or invoke services for each of the open,
close, stop, position and tilt commands of a cover.
## {% linkable_title Configuration %}
To enable Template Covers in your installation, add the following to your
`configuration.yaml` file:
To enable Template Covers in your installation,
add the following to your `configuration.yaml` file:
{% raw %}
```yaml
@ -87,12 +90,12 @@ cover:
optimistic:
description: Force cover position to use [optimistic mode](#optimistic-mode).
required: false
type: bool
type: boolean
default: false
tilt_optimistic:
description: Force cover tilt position to use [optimistic mode](#optimistic-mode).
required: false
type: bool
type: boolean
default: false
tilt_template:
description: Defines a template to get the tilt state of the cover. Legal values are numbers between `0` (closed) and `100` (open).
@ -103,8 +106,8 @@ cover:
## {% linkable_title Considerations %}
If you are using the state of a platform that takes extra time to load, the
Template Cover may get an `unknown` state during startup. This results
in error messages in your log file until that platform has completed loading.
Template Cover 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 %}
@ -114,19 +117,19 @@ result:
## {% linkable_title Optimistic Mode %}
In optimistic mode, the cover position state is maintained internally. This
mode is automatically enabled if neither [`value_template`](#value_template) or
In optimistic mode, the cover position state is maintained internally. This mode
is automatically enabled if neither [`value_template`](#value_template) or
[`position_template`](#position_template) are specified. Note that this is
unlikely to be very reliable without some feedback mechanism, since there is
otherwise no way to know if the cover is moving properly. The cover can be
forced into optimistic mode by using the [`optimistic`](#optimistic)
attribute. There is an equivalent mode for `tilt_position` that is enabled
when [`tilt_template`](#tilt_template) is not specified or when the
forced into optimistic mode by using the [`optimistic`](#optimistic) attribute.
There is an equivalent mode for `tilt_position` that is enabled when
[`tilt_template`](#tilt_template) is not specified or when the
[`tilt_optimistic`](#tilt_optimistic) attribute is used.
## {% linkable_title Examples %}
In this section you will find some real life examples of how to use this cover.
In this section you will find some real-life examples of how to use this cover.
### {% linkable_title Garage Door %}

View File

@ -31,39 +31,7 @@ Home Assistant will automatically discover deCONZ presence on your network, if `
If you don't have the API key, you can generate an API key for deCONZ by using the one-click functionality similar to Philips Hue. Go to **Settings** -> **Gateway** -> **Advanced** -> **Authenticate app** in deCONZ and then use the deCONZ configurator in Home Assistant frontend to create an API key. When you're done setting up deCONZ it will be stored as a config entry.
You can add the following to your `configuration.yaml` file if you are not using the `discovery:` component:
```yaml
# Example configuration.yaml entry
deconz:
host: IP_ADDRESS
```
{% configuration %}
host:
description: The IP address of your deCONZ web server.
required: false
type: string
api_key:
description: The API key to access your deCONZ web server.
required: false
type: string
port:
description: Configure port deCONZ web server is accessible from.
required: false
default: 80
type: int
{% endconfiguration %}
A full configuration could look like this:
```yaml
# Example configuration.yaml entry
deconz:
host: 127.0.0.1
api_key: 0123456789
port: 80
```
You can manually add deCONZ by going to the integrations page.
## {% linkable_title Debugging component %}
@ -107,7 +75,7 @@ Note: deCONZ automatically signals Home Assistant when new sensors are added, bu
## {% linkable_title Remote control devices %}
Remote controls (ZHASwitch category) will be not be exposed as regular entities, but as events named `deconz_event` with a payload of `id` and `event`. Id will be the device name from deCONZ and Event will be the momentary state of the switch. However, a sensor entity will be created that shows the battery level of the switch as reported by deCONZ, named sensor.device_name_battery_level.
Remote controls (ZHASwitch category) will not be exposed as regular entities, but as events named `deconz_event` with a payload of `id` and `event`. Id will be the device name from deCONZ and Event will be the momentary state of the switch. However, a sensor entity will be created that shows the battery level of the switch as reported by deCONZ, named sensor.device_name_battery_level.
Typical values for switches, the event codes are 4 numbers where the first and last number are of interest here.

View File

@ -9,6 +9,7 @@ sharing: true
footer: true
logo: home-assistant.png
ha_category: Automation
ha_qa_scale: internal
---
Home Assistant has a built-in component called `device_sun_light_trigger` to help you automate your lights. The component will:

View File

@ -52,7 +52,7 @@ protocol:
port:
description: SSH port to use.
required: false
type: int
type: integer
default: 22
mode:
description: "The operating mode of the router (`router` or `ap`)."

View File

@ -10,6 +10,7 @@ footer: true
logo: home-assistant.png
ha_category: Network
ha_release: 0.36
ha_qa_scale: internal
---
@ -31,9 +32,15 @@ device_tracker:
hostone: 192.168.2.10
```
Configuration variables:
- **hosts** array (*Required*): List of device names and their corresponding IP address or hostname.
- **count** (*Optional*): Number of packet used for each device (avoid false detection).
{% configuration %}
hosts:
description: List of device names and their corresponding IP address or hostname.
required: true
type: array
count:
description: Number of packet used for each device (avoid false detection).
required: false
type: integer
{% endconfiguration %}
See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked.

View File

@ -12,12 +12,21 @@ ha_category: Presence Detection
ha_release: pre 0.7
---
The `tomato` platform requires an extra config variable called `http_id`. The
value can be obtained by logging in to the Tomato admin interface and search for
`http_id` in the page source code.
The `tomato` platform requires an extra config variable called `http_id`. The value can be obtained by logging in to the Tomato admin interface and search for `http_id` in the page source code.
Because of a limitation in Tomato's API, this platform will only track wireless
devices. If tracking wired devices like a Philips Hue Hub is necessary, it is
possible to use another platform like
[NMAP](/components/device_tracker.nmap_tracker/).
Because of a limitation in Tomato's API, this platform will only track wireless devices. If tracking wired devices like a Philips Hue Hub is necessary, it is possible to use another platform like [Nmap](/components/device_tracker.nmap_tracker/).
Because of a limitation in Tomato's API, this platform will only track wireless devices.
If tracking wired devices like a Philips Hue Hub is necessary,
it is possible to use another platform like [Nmap](/components/device_tracker.nmap_tracker/).
To use this device tracker in your installation, add the following to your `configuration.yaml` file:
To use this device tracker in your installation,
add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@ -32,22 +41,22 @@ device_tracker:
{% configuration %}
host:
description: "The IP address or hostname of your router, e.g., `192.168.1.1` or `rt-ac68u`."
required: false
required: true
type: string
port:
description: "The port number of your router, e.g., `443`."
required: false
type: int
type: integer
default: 80/443 (automatically detected)
ssl:
description: "Whether to connect via `https`."
required: false
type: bool
type: boolean
default: false
verify_ssl:
description: "If SSL verification for https resources needs to be turned off (for self-signed certs, etc.) this can take on boolean values `False` or `True` or you can pass a location on the device where a certificate can be used for verification e.g., `/mnt/NAS/router_cert.pem`."
required: false
type: [string, bool]
type: [string, boolean]
default: true
username:
description: "The username of an user with administrative privileges, usually *admin*."
@ -63,13 +72,17 @@ http_id:
type: string
{% endconfiguration %}
See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked.
See the [device tracker component page](/components/device_tracker/) for
instructions how to configure the people to be tracked.
A description of the API s available in this [Tomato API](http://paulusschoutsen.nl/blog/2013/10/tomato-api-documentation/) blog post.
A description of the API s available in this
[Tomato API](http://paulusschoutsen.nl/blog/2013/10/tomato-api-documentation/)
blog post.
SSL Certificate:
Gathering the SSL Certificate of your router can be accomplished with this (or a similar) command:
Gathering the SSL Certificate of your router can be accomplished with this (or
a similar) command:
```bash
openssl s_client -showcerts -connect 172.10.10.1:443 </dev/null 2>/dev/null | openssl x509 -outform PEM > router_cert.pem
```

View File

@ -9,6 +9,7 @@ sharing: true
footer: true
logo: ubiquiti.png
ha_category: Presence Detection
ha_iot_class: "Local Polling"
ha_release: 0.14
---
@ -45,7 +46,7 @@ host:
port:
description: The port of your controller's web interface
default: 8443
type: int
type: integer
required: false
site_id:
description: For multisite installations, you can specify `site_id` to specify which is used
@ -59,7 +60,7 @@ verify_ssl:
default: true
detection_time:
description: How long since the last seen time before the device is marked away, specified in seconds.
type: int
type: integer
required: false
default: 300
ssid_filter:

View File

@ -9,6 +9,7 @@ sharing: true
footer: true
logo: ubiquiti.png
ha_category: Presence Detection
ha_iot_class: "Local Polling"
ha_release: 0.59
---

View File

@ -1,6 +1,6 @@
---
layout: page
title: "Volvo On Call"
title: "Volvo On Call Device Tracker"
description: "Instructions for how to integrate Volvo On Call into Home Assistant."
date: 2016-10-02 17:00
sidebar: true
@ -13,4 +13,4 @@ ha_release: "0.30"
---
Integrates Volvo on Call into Home Assistant. See the [main component](/components/volvooncall/) for configuration instructions.
Integrates Volvo on Call device tracker into Home Assistant. See the [main component](/components/volvooncall/) for configuration instructions.

View File

@ -12,7 +12,6 @@ ha_category: Presence Detection
ha_release: 0.36
---
The `xiaomi` platform offers presence detection by looking at connected devices to a [Xiaomi](http://miwifi.com) router.
To use an Xiaomi router in your installation, add the following to your `configuration.yaml` file:
@ -25,11 +24,20 @@ device_tracker:
password: YOUR_ADMIN_PASSWORD
```
Configuration variables:
- **host** (*Required*): The IP address of your router, eg. `192.168.0.1`.
- **username** (*Optional*: The admin username. By default `admin`.
- **password** (*Required*): The password for the admin account.
{% configuration %}
host:
description: "The IP address of your router, e.g., `192.168.0.1`."
required: true
type: string
username:
description: The admin username.
required: false
default: admin
type: string
password:
description: The password for the admin account.
required: true
type: string
{% endconfiguration %}
See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked.

View File

@ -9,6 +9,7 @@ sharing: true
footer: true
logo: home-assistant.png
ha_category: Other
ha_qa_scale: internal
---
Home Assistant can discover and automatically configure [zeroconf](https://en.wikipedia.org/wiki/Zero-configuration_networking)/[mDNS](https://en.wikipedia.org/wiki/Multicast_DNS) and [uPnP](https://en.wikipedia.org/wiki/Universal_Plug_and_Play) devices on your network. Currently the `discovery` component can detect:

View File

@ -10,6 +10,7 @@ footer: true
logo: home-assistant.png
ha_category: Downloading
ha_release: pre 0.7
ha_qa_scale: internal
---
The `downloader` component provides a service to download files. It will raise an error and not continue to set itself up when the download directory does not exist. The directory needs to be writable for the user that is running Home Assistant.

View File

@ -22,8 +22,8 @@ To use the component in your installation, add the following to your `configurat
```yaml
# Example configuration.yaml entry
duckdns:
domain: mysubdomain
access_token: abcdefgh
domain: YOUR_SUBDOMAIN
access_token: YOUR_ACCSS_TOKEN
```
{% configuration duckdns %}
@ -36,3 +36,7 @@ duckdns:
required: true
type: string
{% endconfiguration %}
<p class='note'>
If you are running the Hass.io [DuckDNS add-on](/addons/duckdns/) this component is not required. The add-on will keep your IP updated with DuckDNS.
</p>

View File

@ -48,7 +48,7 @@ version:
port:
description: The port of the alarm panel.
required: false
type: int
type: integer
default: 80
report_server_enabled:
description: Enable reporting by server.
@ -58,7 +58,7 @@ report_server_enabled:
report_server_port:
description: Port of the Egardia server.
required: false
type: int
type: integer
default: 52010
report_server_codes:
description: Map of list of codes for the different states.

View File

@ -50,37 +50,54 @@ emulated_hue:
emulated_hue:
```
Configuration variables:
- **type** (*Optional*): The type of assistant which we are emulating. Either `alexa` or `google_home`, defaults to `google_home`. **This configuration option is deprecated and will be removed in a future release. It is no longer necessary to define type.**
- **host_ip** (*Optional*): The IP address that your Home Assistant installation is running on. If you do not specify this option, the component will attempt to determine the IP address on its own.
- **listen_port** (*Optional*): The port the Hue bridge API web server will run on. If not specified, this defaults to 8300. This can be any free port on your system.
- **advertise_ip** (*Optional*): If you need to override the IP address used for UPnP discovery. (For example, using network isolation in Docker)
- **advertise_port** (*Optional*): If you need to specifically override the advertised UPnP port.
- **upnp_bind_multicast** (*Optional*): Whether or not to bind the UPnP (SSDP) listener to the multicast address (239.255.255.250) or instead to the (unicast) host_ip address specified above (or automatically determined). The default is true, which will work for most situations. In special circumstances, like running in a FreeBSD or FreeNAS jail, you may need to disable this.
- **off_maps_to_on_domains** (*Optional*): The domains that maps an "off" command to an "on" command.
For example, if `script` is included in the list, and you ask Alexa to "turn off the *water plants* script," the command will be handled as if you asked her to turn on the script.
If not specified, this defaults to the following list:
- `script`
- `scene`
- **expose_by_default** (*Optional*): Whether or not entities should be exposed via the bridge by default instead of explicitly (see the 'emulated_hue' customization below). If not specified, this defaults to true. Warning: If you have a lot of devices (more than 49 total across all exposed domains), you should be careful with this option. Exposing more devices than Alexa supports can result in it not seeing any of them. If you are having trouble getting any devices to show up, try disabling this, and explicitly exposing just a few devices at a time to see if that fixes it.
- **exposed_domains** (*Optional*): The domains that are exposed by default if `expose_by_default` is set to true. If not specified, this defaults to the following list:
- `switch`
- `light`
- `group`
- `input_boolean`
- `media_player`
- `fan`
- **entities** (*Optional*): Customization for entities.
{% configuration %}
type:
description: The type of assistant which we are emulating. Either `alexa` or `google_home`. **This configuration option is deprecated and will be removed in a future release. It is no longer necessary to define type.**
required: false
type: string
default: google_home
host_ip:
description: The IP address that your Home Assistant installation is running on. If you do not specify this option, the component will attempt to determine the IP address on its own.
required: false
type: string
listen_port:
description: The port the Hue bridge API web server will run on. This can be any free port on your system.
required: false
type: integer
default: 8300
advertise_ip:
description: If you need to override the IP address used for UPnP discovery. (For example, using network isolation in Docker)
required: false
type: string
advertise_port:
description: If you need to specifically override the advertised UPnP port.
required: false
type: integer
upnp_bind_multicast:
description: Whether or not to bind the UPnP (SSDP) listener to the multicast address (239.255.255.250) or instead to the (unicast) host_ip address specified above (or automatically determined). In special circumstances, like running in a FreeBSD or FreeNAS jail, you may need to disable this.
required: false
type: boolean
default: true
off_maps_to_on_domains:
description: The domains that maps an "off" command to an "on" command. For example, if `script` is included in the list, and you ask Alexa to "turn off the *water plants* script," the command will be handled as if you asked her to turn on the script.
required: false
type: list
default: [script, scene]
expose_by_default:
description: "Whether or not entities should be exposed via the bridge by default instead of explicitly (see the emulated_hue customization below). Warning: If you have a lot of devices (more than 49 total across all exposed domains), you should be careful with this option. Exposing more devices than Alexa supports can result in it not seeing any of them. If you are having trouble getting any devices to show up, try disabling this, and explicitly exposing just a few devices at a time to see if that fixes it."
required: false
type: boolean
default: true
exposed_domains:
description: The domains that are exposed by default if `expose_by_default` is set to true.
required: false
type: list
default: [switch, light, group, input_boolean, media_player, fan]
entities:
description: Customization for entities.
required: false
type: list
{% endconfiguration %}
A full configuration sample looks like the one below.

View File

@ -154,7 +154,7 @@ Make sure that your topics match exactly. `some-topic/` and `some-topic` are dif
## {% linkable_title Examples %}
In this section you find some real life examples of how to use this fan.
In this section you find some real-life examples of how to use this fan.
### {% linkable_title Full configuration %}

View File

@ -11,6 +11,7 @@ ha_category: Fan
ha_release: 0.69
ha_iot_class: "Local Push"
logo: home-assistant.png
ha_qa_scale: internal
---
The `template` platform creates fans that combine components and provides the

View File

@ -39,7 +39,7 @@ feedreader:
description: The maximum number of entries to extract from each feed.
required: false
default: 20
type: int
type: integer
{% endconfiguration %}
The following configuration example shows how to configure update interval and maximum number of entries:

View File

@ -11,6 +11,7 @@ logo: home-assistant.png
ha_category: System Monitor
ha_iot_class: "Local Polling"
ha_release: 0.67
ha_qa_scale: internal
---
This component adds [Watchdog](https://pythonhosted.org/watchdog/) file system monitoring, publishing events on the Home Assistant bus on the creation/deletion/modification of files within configured folders. The monitored `event_type` are:

View File

@ -23,10 +23,16 @@ foursquare:
push_secret: "<foursquare push secret>"
```
Configuration variables:
- **access_token** (*Required*): A Foursquare API access token.
- **push_secret** (*Required*): The push secret that Foursquare provides to you in the app dashboard.
{% configuration %}
access_token:
description: A Foursquare API access token.
required: true
type: string
push_secret:
description: The push secret that Foursquare provides to you in the app dashboard.
required: true
type: string
{% endconfiguration %}
#### Getting the access token ####

View File

@ -9,6 +9,7 @@ sharing: true
footer: true
logo: home-assistant.png
ha_category: "Other"
ha_qa_scale: internal
---
This offers the official frontend to control Home Assistant.

View File

@ -27,7 +27,7 @@ To use Google Assistant, your Home Assistant configuration has to be externally
## {% linkable_title Setup %}
You need to create an API Key with the [Google Console](https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview) which allows you to update devices without unlinking and relinking an account (see [below](/#troubleshooting-the-request_sync-service)). If you don't provided it the `google_assistant.request_sync` service is not exposed. It is recommended to set up this configuration key as it also allows the usage of the following command, "Ok Google, sync my devices". Once you have setup this component you will need to call this service (or command) each time you add a new device that you wish to control via the Google Assistant integration.
You need to create an API Key with the [Google Console](https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview) which allows you to update devices without unlinking and relinking an account (see [below](/#troubleshooting-the-request_sync-service)). If you don't provide it the `google_assistant.request_sync` service is not exposed. It is recommended to set up this configuration key as it also allows the usage of the following command, "Ok Google, sync my devices". Once you have setup this component you will need to call this service (or command) each time you add a new device that you wish to control via the Google Assistant integration.
1. Create a new project in the [Actions on Google console](https://console.actions.google.com/).
a. Add/Import project, give it a name
@ -83,10 +83,7 @@ google_assistant:
room: living room
```
Configuration variables:
{% configuration %}
project_id:
description: Project ID from the Google Developer console (looks like `words-2ab12`)
required: true

View File

@ -9,6 +9,7 @@ sharing: true
footer: true
logo: home-assistant.png
ha_category: Organization
ha_qa_scale: internal
---
Groups allow the user to combine multiple entities into one. A group can be promoted to a **view** by setting `view: yes` under the group definition. This will make the group available as a new tab in the frontend.

View File

@ -22,11 +22,13 @@ Configure the integration:
* Enter your **Google Mail Address** and **Password**
* If you secured your account with 2-factor authentication you will be asked for a 2-factor authentication token.
**BEST PRACTICE:** You can't write messages to yourself or get notifications in a group, if "you" write the message. The best way is to create a new Google Hangouts account for this integration.
**IMPORTANT:** If you secured your account with 2-factor authentication: Only verification by app or SMS are supported. There is no support for verification by prompt on your phone.
**IMPORTANT 2:** If you are sure your email and password is correct, but the component says the login is invalid. Wait a few hours and try it again, it might be, that google asks for a captcha which we can't support. Google does not provide official support for using bots with Google Hangouts, that's why we have to work around this.
<p class='note'>
You can't write messages to yourself or get notifications in a group, if "you" write the message. The best way is to create a new Google Hangouts account for this integration.<br>
<br>
If you secured your account with 2-factor authentication: Only verification by app or SMS are supported. There is no support for verification by prompt on your phone.<br>
<br>
If you are sure your email and password are correct, but the component says the login is invalid, wait a few hours and try again. It might be that Google asks for a captcha which we can't support. Google does not provide official support for using bots with Google Hangouts, that's why we have to work around this.
</p>
The authentication token will be generated and stored internally.

View File

@ -10,12 +10,17 @@ footer: true
logo: home-assistant.png
ha_category: History
ha_release: pre 0.7
ha_qa_scale: internal
---
The `history` component will track everything that is going on within Home
Assistant and allows the user to browse through it. It depends on the `recorder`
component for storing the data and uses the same database setting.
If any entities are excluded from being recorded,
no history will be available for these entities.
The `history` component will track everything that is going on within Home Assistant and allows the user to browse through it. It depends on the `recorder` component for storing the data and uses the same database setting. If any entities are excluded from being recorded, no history will be available for these entities.
To enable the history option in your installation, add the following to your `configuration.yaml` file:
To enable the history option in your installation,
add the following to your `configuration.yaml` file:
```yaml
# Basic configuration.yaml entry
@ -29,22 +34,48 @@ history:
</p>
<p class='note'>
Events are saved in a local database. Google Graphs is used to draw the graph. Drawing is happening 100% in your browser. No data is transferred to anyone at any time.
Events are saved in a local database. Google Graphs is used to draw the graph.
Drawing is happening 100% in your browser. No data is transferred to anyone at any time.
</p>
{% configuration %}
exclude:
description: Configure which components should **not** be displayed.
required: false
type: map
keys:
entities:
description: The list of entity ids to be excluded from the history.
required: false
type: list
domains:
description: The list of domains to be excluded from the history.
required: false
type: list
include:
description: Configure which components should be displayed.
required: false
type: map
keys:
entities:
description: The list of entity ids to be included in the history.
required: false
type: list
domains:
description: The list of domains to be included in the history.
required: false
type: list
{% endconfiguration %}
Configuration variables:
Without any `include` or `exclude` configuration the history displays graphs for
every entity (well that's not exactly true - for instance `hidden` entities or
`scenes` are never shown) on a given date. If you are only interested in some
of the entities you have several options:
- **exclude** (*Optional*): Configure which components should **not** be displayed.
- **entities** (*Optional*): The list of entity ids to be excluded from the history.
- **domains** (*Optional*): The list of domains to be excluded from the history.
- **include** (*Optional*): Configure which components should be displayed.
- **entities** (*Optional*): The list of entity ids to be included to the history.
- **domains** (*Optional*): The list of domains to be included to the history.
Without any `include` or `exclude` configuration the history displays graphs for every entity (well that's not exactly true - for instance `hidden` entities or `scenes` are never shown) on a given date. If you are only interested in some of the entities you have several options:
Define domains and entities to `exclude` (aka. blacklist). This is convenient when you are basically happy with the information displayed, but just want to remove some entities or domains. Usually these are entities/domains which do not change (like `weblink`) or rarely change (like `updater` or `automation`).
Define domains and entities to `exclude` (aka. blacklist). This is convenient
when you are basically happy with the information displayed, but just want to
remove some entities or domains. Usually these are entities/domains which do not
change (like `weblink`) or rarely change (like `updater` or `automation`).
```yaml
# Example configuration.yaml entry with exclude
@ -59,7 +90,10 @@ history:
- sensor.date
```
Define domains and entities to display by using the `include` configuration (aka. whitelist). If you have a lot of entities in your system and your `exclude` list is getting too large, it might be better just to define the entities or domains to `include`.
Define domains and entities to display by using the `include` configuration
(aka. whitelist). If you have a lot of entities in your system and your
`exclude` list is getting too large, it might be better just to define the
entities or domains to `include`.
```yaml
# Example configuration.yaml entry with include
@ -71,7 +105,13 @@ history:
- media_player
```
Use the `include` list to define the domains/entities to display, and exclude some of them within the `exclude` list. This makes sense if you, for instance, include the `sensor` domain, but want to exclude some specific sensors. Instead of adding every sensor entity to the `include` `entities` list just include the `sensor` domain and exclude the sensor entities you are not interested in. Note that the order of any `include` `entities` will be displayed as listed in the configuration, otherwise, the display order is arbitrary.
Use the `include` list to define the domains/entities to display, and exclude
some of them within the `exclude` list. This makes sense if you, for instance,
include the `sensor` domain, but want to exclude some specific sensors. Instead
of adding every sensor entity to the `include` `entities` list just include the
`sensor` domain and exclude the sensor entities you are not interested in.
Note that the order of any `include` `entities` will be displayed as listed in
the configuration, otherwise, the display order is arbitrary.
```yaml
# Example configuration.yaml entry with include and exclude
@ -87,9 +127,9 @@ history:
- sensor.date
```
If you'd like the order of display of the sensors to follow the way
they are listed in the included entity list, you can set the flag
`use_include_order` to True.
If you'd like the order of display of the sensors to follow the way they are
listed in the included entity list,
you can set the flag `use_include_order` to true.
```yaml
# Example configuration.yaml entry using specified entity display order
@ -101,10 +141,10 @@ history:
- light.front_porch
```
#### {% linkable_title Implementation details %}
The history is stored in a SQLite database `home-assistant_v2.db` within your configuration directory unless the `recorder` component is set up differently.
The history is stored in a SQLite database `home-assistant_v2.db` within your
configuration directory unless the `recorder` component is set up differently.
- events table is all events except `time_changed` that happened while recorder component was running.
- states table contains all the `new_state` values of `state_changed` events.
@ -116,11 +156,14 @@ The history is stored in a SQLite database `home-assistant_v2.db` within your co
- `last_updated`: timestamp anything has changed (state, attributes)
- `created`: timestamp this entry was inserted into the database
When the `history` component queries the states table it only selects states where the state has changed: `WHERE last_changed=last_updated`
When the `history` component queries the states table it only selects states
where the state has changed: `WHERE last_changed=last_updated`
#### {% linkable_title On dates %}
SQLite databases do not support native dates. That's why all the dates are saved in seconds since the UNIX epoch. Convert them manually using [this site](https://www.epochconverter.com/) or in Python:
SQLite databases do not support native dates. That's why all the dates are saved
in seconds since the UNIX epoch. Convert them manually using
[this site](https://www.epochconverter.com/) or in Python:
```python
from datetime import datetime
@ -129,4 +172,5 @@ datetime.fromtimestamp(1422830502)
#### {% linkable_title API %}
The history information is also available through the [RESTful API](/developers/rest_api/#get-apihistory).
The history information is also available through the
[RESTful API](/developers/rest_api/#get-apihistory).

View File

@ -10,7 +10,9 @@ footer: true
ha_category: History
logo: home-assistant.png
ha_release: "0.55"
ha_qa_scale: internal
---
<p class='img'>
<img src='{{site_root}}/images/screenshots/history_graph.png' />
</p>

View File

@ -41,7 +41,7 @@ password:
scan_interval:
description: The time in minutes between Hive API calls
required: false
type: int
type: integer
default: 2
{% endconfiguration %}

View File

@ -62,7 +62,7 @@ homekit:
port:
description: Port for the HomeKit extension.
required: false
type: int
type: integer
default: 51827
name:
description: Need to be individual for each instance of Home Assistant using the component on the same local network. Between `3` and `25` characters. Alphanumeric and spaces allowed.
@ -310,4 +310,4 @@ filter:
- light
```
Restart Home-Assistant and re-attempt pairing - a persistent status should now correctly appear.
Restart Home Assistant and re-attempt pairing - a persistent status should now correctly appear.

View File

@ -11,10 +11,13 @@ logo: http.png
ha_category: "Other"
---
The `http` component serves all files and data required for the Home Assistant frontend. You only need to add this to your configuration file if you want to change any of the default settings.
The `http` component serves all files and data required for the Home Assistant
frontend. You only need to add this to your configuration file if you want to
change any of the default settings.
<p class='note warning'>
It is HIGHLY recommended that you set the `api_password`, especially if you are planning to expose your installation to the internet.
It is HIGHLY recommended that you set the `api_password`,
especially if you are planning to expose your installation to the internet.
</p>
<p class='note'>
@ -27,27 +30,26 @@ http:
api_password: YOUR_PASSWORD
```
Configuration variables:
{% configuration http %}
{% configuration %}
api_password:
description: Protect Home Assistant with a password.
required: false
type: string
server_host:
description: 'Only listen to incoming requests on specific IP/host (default: bind to `0.0.0.0` which means accept all IPv4 connections). Use `server_host: "::0"` if you want to listen to (and only) IPv6.'
description: "Only listen to incoming requests on specific IP/host. By default it will accept all IPv4 connections. Use `server_host: ::0` if you want to listen to (and only) IPv6."
required: false
type: string
default: 0.0.0.0
server_port:
description: Let you set a port to use.
required: false
type: integer
default: 8123
base_url:
description: "The URL that Home Assistant is available on the internet. For example: `hass-example.duckdns.org:8123`. Defaults to the local IP address. The iOS app finds local installations, if you have an outside URL use this so that you can auto-fill when discovered in the app."
description: "The URL that Home Assistant is available on the internet. For example: `hass-example.duckdns.org:8123`. The iOS app finds local installations, if you have an outside URL use this so that you can auto-fill when discovered in the app."
required: false
type: string
default: The local IP address
default: Your local IP address
ssl_certificate:
description: Path to your TLS/SSL certificate to serve Home Assistant over a secure connection.
required: false
@ -64,15 +66,15 @@ cors_allowed_origins:
description: "A list of origin domain names to allow [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing) requests from. Enabling this will set the `Access-Control-Allow-Origin` header to the Origin header if it is found in the list, and the `Access-Control-Allow-Headers` header to `Origin, Accept, X-Requested-With, Content-type, X-HA-access`. You must provide the exact Origin, i.e. `https://www.home-assistant.io` will allow requests from `https://www.home-assistant.io` but __not__ `http://www.home-assistant.io`."
required: false
type: string, list
trusted_proxies:
description: "List of trusted proxies, consisting of IP addresses or networks, that are allowed to set the `X-Forwarded-For` header. This is required when using `use_x_forwarded_for` because all requests to Home Assistant, regardless of source, will arrive from the reverse proxy IP address. Therefore in a reverse proxy scenario, this option should be set with extreme care."
required: false
type: string, list
use_x_forwarded_for:
description: "Enable parsing of the `X-Forwarded-For` header, passing on the client's correct IP address in proxied setups. You **must** also whitelist trusted proxies using the `trusted_proxies` setting above for this to work. Non-whitelisted requests with this header will be considered IP spoofing attacks, and the header will, therefore, be ignored."
required: false
type: boolean
default: false
trusted_proxies:
description: "List of trusted proxies, consisting of IP addresses or networks, that are allowed to set the `X-Forwarded-For` header. This is required when using `use_x_forwarded_for` because all requests to Home Assistant, regardless of source, will arrive from the reverse proxy IP address. Therefore in a reverse proxy scenario, this option should be set with extreme care."
required: false
type: string, list
trusted_networks:
description: "List of trusted networks, consisting of IP addresses or networks, that are allowed to bypass password protection when accessing Home Assistant. If using a reverse proxy with the `use_x_forwarded_for` and `trusted_proxies` options enabled, requests proxied to Home Assistant with a trusted `X-Forwarded-For` header will appear to come from the IP given in that header instead of the proxy IP."
required: false
@ -83,7 +85,7 @@ ip_ban_enabled:
type: boolean
default: false
login_attempts_threshold:
description: "Number of failed login attempt from single IP after which it will be automatically banned if `ip_ban_enabled` is True. When set to -1 no new automatic bans will be added."
description: "Number of failed login attempt from single IP after which it will be automatically banned if `ip_ban_enabled` is `true`. When set to -1 no new automatic bans will be added."
required: false
type: integer
default: -1
@ -106,7 +108,7 @@ http:
cors_allowed_origins:
- https://google.com
- https://www.home-assistant.io
use_x_forwarded_for: True
use_x_forwarded_for: true
trusted_proxies:
- 127.0.0.1
- ::1
@ -115,36 +117,55 @@ http:
- ::1
- 192.168.0.0/24
- fd00::/8
ip_ban_enabled: True
ip_ban_enabled: true
login_attempts_threshold: 5
```
The [Set up encryption using Let's Encrypt](/blog/2015/12/13/setup-encryption-using-lets-encrypt/) blog post gives you details about the encryption of your traffic using free certificates from [Let's Encrypt](https://letsencrypt.org/).
The [Set up encryption using Let's Encrypt](/blog/2015/12/13/setup-encryption-using-lets-encrypt/)
blog post gives you details about the encryption of your traffic using free
certificates from [Let's Encrypt](https://letsencrypt.org/).
Or use a self signed certificate following the instructions here [Self-signed certificate for SSL/TLS](/docs/ecosystem/certificates/tls_self_signed_certificate/).
Or use a self signed certificate following the instructions here
[Self-signed certificate for SSL/TLS](/docs/ecosystem/certificates/tls_self_signed_certificate/).
## {% linkable_title APIs %}
On top of the `http` component is a [REST API](/developers/rest_api/), [Python API](/developers/python_api/) and [WebSocket API](/developers/websocket_api/) available. There is also support for [Server-sent events](/developers/server_sent_events/).
On top of the `http` component is a [REST API](/developers/rest_api/),
[Python API](/developers/python_api/) and
[WebSocket API](/developers/websocket_api/) available. There is also support for
[Server-sent events](/developers/server_sent_events/).
The `http` platforms are not real platforms within the meaning of the terminology used around Home Assistant. Home Assistant's [REST API](/developers/rest_api/) sends and receives messages over HTTP.
The `http` platforms are not real platforms within the meaning of the
terminology used around Home Assistant. Home Assistant's
[REST API](/developers/rest_api/) sends and receives messages over HTTP.
## {% linkable_title HTTP sensors %}
To use those kind of [sensors](/components/sensor.http/) or [binary sensors](components/binary_sensor.http/) in your installation no configuration in Home Assistant is needed. All configuration is done on the devices themselves. This means that you must be able to edit the target URL or endpoint and the payload. The entity will be created after the first message has arrived.
To use those kind of [sensors](/components/sensor.http/) or
[binary sensors](components/binary_sensor.http/) in your installation no
configuration in Home Assistant is needed. All configuration is done on the
devices themselves. This means that you must be able to edit the target URL or
endpoint and the payload.
The entity will be created after the first message has arrived.
All [requests](/developers/rest_api/#post-apistatesltentity_id) need to be sent to the endpoint of the device and must be **POST**.
All [requests](/developers/rest_api/#post-apistatesltentity_id) need to be sent
to the endpoint of the device and must be **POST**.
## {% linkable_title IP filtering and banning %}
If you want to apply additional IP filtering, and automatically ban brute force attempts, set `ip_ban_enabled` to `True` and the maximum number of attempts. After the first ban, an `ip_bans.yaml` file will be created in the root configuration folder. It will have the banned IP address and time in UTC when it was added:
If you want to apply additional IP filtering, and automatically ban brute force
attempts, set `ip_ban_enabled` to `true` and the maximum number of attempts.
After the first ban, an `ip_bans.yaml` file will be created in the root
configuration folder.
It will have the banned IP address and time in UTC when it was added:
```yaml
127.0.0.1:
banned_at: '2016-11-16T19:20:03'
```
After a ban is added a Persistent Notification is populated to the Home Assistant frontend.
After a ban is added a Persistent Notification is populated to the Home
Assistant frontend.
<p class='note warning'>
Please note, that sources from `trusted_networks` won't be banned automatically.
@ -152,7 +173,11 @@ Please note, that sources from `trusted_networks` won't be banned automatically.
## {% linkable_title Hosting files %}
If you want to use Home Assistant to host or serve static files then create a directory called `www` under the configuration path (`/config` on Hass.io, `.homeassistant` elsewhere). The static files in `www/` can be accessed by the following URL `http://your.domain:8123/local/`, for example `audio.mp3` would be accessed as `http://your.domain:8123/local/audio.mp3`.
If you want to use Home Assistant to host or serve static files then create a
directory called `www` under the configuration path (`/config` on Hass.io,
`.homeassistant` elsewhere). The static files in `www/` can be accessed by the
following URL `http://your.domain:8123/local/`, for example `audio.mp3` would
be accessed as `http://your.domain:8123/local/audio.mp3`.
<p class='note'>
If you've had to create the `www/` folder for the first time, you'll need to restart Home Assistant.

View File

@ -47,3 +47,14 @@ password:
required: true
type: string
{% endconfiguration %}
### {% linkable_title Tested routers %}
Routers we know to be working with this component based on the documentation of used libraries and reports by users:
- Huawei B310s-22
- Huawei B525s-23a
- Huawei E5186s-22a
- Huawei B618
This is not a complete list. The component can probably connect to other Huawei LTE routers running similar firmware.

View File

@ -10,6 +10,7 @@ footer: true
logo: philips_hue.png
ha_category: Hub
ha_iot_class: "Local Polling"
ha_qa_scale: platinum
featured: true
ha_release: "0.60"
ha_qa_scale: platinum
@ -32,12 +33,24 @@ hue:
- host: DEVICE_IP_ADDRESS
```
Configuration variables:
- **host** (*Required*): The IP address of the device, eg. 192.168.1.10. Required if not using the `discovery` component to discover Hue bridges.
- **allow_unreachable** (*Optional*): (true/false) This will allow unreachable bulbs to report their state correctly.
- **filename** (*Optional*): Make this unique if specifying multiple Hue hubs.
- **allow_hue_groups** (*Optional*): (true/false) Enable this to stop Home Assistant from importing the groups defined on the Hue bridge.
{% configuration %}
host:
description: The IP address of the device, eg. 192.168.1.10. Required if not using the `discovery` component to discover Hue bridges.
required: true
type: string
allow_unreachable:
description: This will allow unreachable bulbs to report their state correctly.
required: false
type: boolean
filename:
description: Make this unique if specifying multiple Hue hubs.
required: false
type: string
allow_hue_groups:
description: Enable this to stop Home Assistant from importing the groups defined on the Hue bridge.
required: false
type: boolean
{% endconfiguration %}
## {% linkable_title Examples %}

View File

@ -33,7 +33,7 @@ access_token:
scan_interval:
description: The time interval, in seconds, to poll the Hydrawise cloud.
required: false
type: int
type: integer
default: 30
{% endconfiguration %}

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