Merge branch 'rc' into current
1
.gitignore
vendored
@ -20,3 +20,4 @@ source/.jekyll-metadata
|
||||
/.vs/slnx.sqlite-journal
|
||||
/.vs/VSWorkspaceState.json
|
||||
.vscode
|
||||
*.suo
|
||||
|
@ -141,9 +141,9 @@ social:
|
||||
|
||||
# Home Assistant release details
|
||||
current_major_version: 0
|
||||
current_minor_version: 77
|
||||
current_patch_version: 3
|
||||
date_released: 2018-09-03
|
||||
current_minor_version: 78
|
||||
current_patch_version: 0
|
||||
date_released: 2018-09-15
|
||||
|
||||
# Either # or the anchor link to latest release notes in the blog post.
|
||||
# Must be prefixed with a # and have double quotes around it.
|
||||
|
@ -18,6 +18,7 @@ Load and update configuration files for Home Assistant from a [Git](https://git-
|
||||
"git_branch": "master",
|
||||
"git_command": "pull",
|
||||
"git_remote": "origin",
|
||||
"git_prune": "false",
|
||||
"repeat": {
|
||||
"active": false,
|
||||
"interval": 300
|
||||
@ -38,8 +39,9 @@ Load and update configuration files for Home Assistant from a [Git](https://git-
|
||||
```
|
||||
|
||||
- **repository** (*Required*): Git URL to your repository (make sure to use double quotes). You have to add `.git` to your GitHub repository URL (see example configuration)
|
||||
- **git_branch** (*Required*): Branch name of the Git repo, leave this as 'master' if you are unsure.
|
||||
- **git_branch** (*Required*): Branch name of the Git repo. If left empty, the currently checked out branch will be updated. Leave this as 'master' if you are unsure.
|
||||
- **git_remote** (*Required*): Name of the tracked repository. Leave this as `origin` if you are unsure.
|
||||
- **git_prune** (*Required*): If set to true, the add-on will cleanup branches that are deleted on the remote repository, but still have cached entries on the local machine. Leave this as `false` if you are unsure.
|
||||
- **git_command** (*Required*): Must be either `pull` or `reset`. Leave this as `pull` if you are unsure.
|
||||
|
||||
* **pull**: Incorporates changes from a remote repository into the current branch. Will preserve any local changes to tracked files.
|
||||
|
@ -0,0 +1,60 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Yale Smart Alarm Control"
|
||||
description: "Instructions on how to integrate Yale Smart Alarms into Home Assistant."
|
||||
date: 2018-09-01 11:11
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
ha_category: Alarm
|
||||
ha_release: 0.78
|
||||
---
|
||||
|
||||
The `yale_smart_alarm` platform provides connectivity with the Yale Smart Alarm systems and Smart Hub through Yale's API.
|
||||
|
||||
This platform supports the following services: `alarm_arm_away`, `alarm_arm_home`, `alarm_arm_night` (duplicate of home) and `alarm_disarm`.
|
||||
Currently only one alarm is supported.
|
||||
|
||||
|
||||
To enable, add the following lines to your `configuration.yaml`:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
alarm_control_panel:
|
||||
- platform: yale_smart_alarm
|
||||
username: YOUR_USERNAME
|
||||
password: YOUR_PASSWORD
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **name** (*Optional*): Name of device in Home Assistant.
|
||||
- **username** (*Required*): Username used to sign into the Yale app/web client.
|
||||
- **password** (*Required*): Password used to sign into the Yale app/web client.
|
||||
- **area_id** (*Optional*): Area ID of the device when talking to Yale's API if required ('1' by default).
|
||||
|
||||
Automation example:
|
||||
|
||||
```yaml
|
||||
automation:
|
||||
- alias: "Alarm: Disarmed Daytime"
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: alarm_control_panel.yale_smart_alarm
|
||||
to: 'disarmed'
|
||||
condition:
|
||||
condition: sun
|
||||
before: sunset
|
||||
action:
|
||||
service: scene.turn_on
|
||||
entity_id: scene.OnDisarmedDaytime
|
||||
- alias: "Alarm: Armed Away"
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: alarm_control_panel.yale_smart_alarm
|
||||
to: 'armed_away'
|
||||
action:
|
||||
service: scene.turn_on
|
||||
entity_id: scene.OnArmedAway
|
||||
```
|
@ -15,6 +15,8 @@ ha_iot_class: "Local Polling"
|
||||
|
||||
In addition to the [APCUPSd Sensor](/components/sensor.apcupsd/) devices, you may also create a device which is simply "on" when the UPS status is online and "off" at all other times.
|
||||
|
||||
## {% linkable_title Configuration %}
|
||||
|
||||
To enable this sensor, you first have to set up [apcupsd](/components/apcupsd/), and add the following lines to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
@ -23,6 +25,10 @@ binary_sensor:
|
||||
- platform: apcupsd
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **name** (*Optional*): Name to use in the front end.
|
||||
{% configuration %}
|
||||
name:
|
||||
description: Name to use in the frontend.
|
||||
required: false
|
||||
type: string
|
||||
default: UPS Online Status
|
||||
{% endconfiguration %}
|
||||
|
@ -15,26 +15,24 @@ ha_iot_class: "Local Polling"
|
||||
|
||||
The `knx` sensor platform allows you to monitor [KNX](http://www.knx.org) binary sensors.
|
||||
|
||||
## {% linkable_title Configuration %}
|
||||
|
||||
The `knx` component must be configured correctly, see [KNX Component](/components/knx).
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
binary_sensor:
|
||||
- platform: knx
|
||||
name: "Entrance.Motion.Sensor"
|
||||
address: '6/0/2'
|
||||
device_class: 'motion'
|
||||
#significant_bit: 2
|
||||
#reset_after: 100
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **address** (*Required*): KNX group address of the binary sensor.
|
||||
- **name** (*Optional*): A name for this device used within Home Assistant.
|
||||
- **address**: KNX group address of the binary sensor.
|
||||
- **device_class** (Optional): HASS device class e.g., "motion".
|
||||
- **significant_bit** (Optional): Specify which significant bit of the KNX value should be used. Default is 1.
|
||||
- **reset_after** (Optional): Reset back to OFF state after specified milliseconds.
|
||||
- **device_class** (*Optional*): HASS device class e.g., "motion".
|
||||
- **significant_bit** (*Optional*): Specify which significant bit of the KNX value should be used. Default is 1.
|
||||
- **reset_after** (*Optional*): Reset back to OFF state after specified milliseconds.
|
||||
|
||||
You can also attach actions to binary sensors (e.g., to switch on a light when a switch was pressed). In this example, one light is switched on when the button was pressed once and two others when the button was pressed a second time.
|
||||
|
||||
|
@ -25,11 +25,9 @@ The `push` camera can as an example be used with [motionEye](https://github.com/
|
||||
|
||||
In motionEye, under **File Storage -> Run A Command** type in:
|
||||
```bash
|
||||
curl -X POST -F "image=@%f" http://my.hass.server.com:8123/api/camera_push/camera.push_camera
|
||||
curl -X POST -F "image=@%f" http://my.hass.server.com:8123/api/camera_push/camera.push_camera?token=12345678
|
||||
```
|
||||
|
||||
Please take note that you might need to add `-H "x-ha-access: YOUR_PASSWORD"` if you have API authentication enabled.
|
||||
|
||||
Optionally configure motionEye to save only motion triggered images by going into **Still Images -> Capture Mode** and setting **Motion Triggered**. Tune your preferences under **Motion Detection**.
|
||||
|
||||
In this setup, you can configure the push camera to continuously replay the last motion triggered event using a configuration such as:
|
||||
@ -40,6 +38,7 @@ camera:
|
||||
name: MotionEye Outdoor
|
||||
buffer: 3
|
||||
timeout: 5
|
||||
token: 12345678
|
||||
```
|
||||
|
||||
## {% linkable_title Configuration %}
|
||||
@ -51,6 +50,7 @@ To enable this camera in your installation, add the following to your `configura
|
||||
camera:
|
||||
- platform: push
|
||||
name: My Push Camera
|
||||
token: 12345678
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
@ -69,6 +69,10 @@ timeout:
|
||||
required: false
|
||||
default: 5 seconds
|
||||
type: time
|
||||
token:
|
||||
description: User provided token acting as access control, should be a large string (more then 8 chars). Required if you can't use HA new auth system (0.77).
|
||||
required: false
|
||||
type: string
|
||||
field:
|
||||
description: HTTP POST field containing the image file
|
||||
required: false
|
||||
|
@ -1,86 +0,0 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Xiaomi Cameras"
|
||||
description: "Instructions on how to integrate a video feed (via FFmpeg) as a camera within Home Assistant."
|
||||
date: 2018-06-20 13:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: xiaomi.png
|
||||
ha_category: Camera
|
||||
ha_release: 0.72
|
||||
ha_iot_class: "Local Polling"
|
||||
---
|
||||
|
||||
The `Xiaomi` camera platform allows you to utilize Xiaomi Cameras within Home Assistant.
|
||||
|
||||
To successfully implement this platform, the Home Assistant host should be capable of multiple simultaneous reads. For every concurrent Home Assistant user, a connection will be made to the camera every 10 seconds. This should normally not be a problem.
|
||||
|
||||
## {% linkable_title Preparing the Device %}
|
||||
|
||||
### {% linkable_title Installing Alternative Firmware %}
|
||||
|
||||
In order to integrate the camera with Home Assistant, it is necessary to install a custom firmware on the device. Instructions for doing so can be found for each models.
|
||||
|
||||
* [Yi 720p](https://github.com/fritz-smh/yi-hack)
|
||||
* [Yi Home 17CN / 27US / 47US / 1080p Home / Dome / 1080p Dome](https://github.com/shadow-1/yi-hack-v3)
|
||||
* [Xiaofang 1080p Camera](https://github.com/samtap/fang-hacks)
|
||||
|
||||
Once installed, please ensure that you have enabled FTP.
|
||||
|
||||
<p class='note warning'>
|
||||
Currently, version 0.1.4-beta2 of the custom firmware is the highest supported. Firmwares higher than this version use [Pure-FTPd](https://www.pureftpd.org/project/pure-ftpd), which has a bug that prevents FFmpeg from correctly rendering video files.
|
||||
</p>
|
||||
|
||||
<p class='note warning'>
|
||||
Hassbian users: don't forget to install ffmpeg support on your platform, otherwise, you'll not see video.
|
||||
</p>
|
||||
|
||||
<p class='note warning'>
|
||||
The live stream writing by the camera is not an supported format when the hass reads through FTP for Yi 720p and Xiaofang Cameras, so this component retrives the video which was saved 1 minute earlier.
|
||||
</p>
|
||||
|
||||
<p class='note warning'>
|
||||
If you enabled RTSP server, you can connect to your camera via other Home Assistant camera platforms. However, this RTSP server disables the ability to use the supremely-useful Mi Home app. In order to maintain both Home Assistant compatibility _and_ the native app, this platform retrieves videos via FTP.
|
||||
</p>
|
||||
|
||||
## {% linkable_title Configuring the Platform %}
|
||||
|
||||
To enable the platform, add the following lines to your`configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
camera:
|
||||
- platform: xiaomi
|
||||
name: Camera
|
||||
host: '192.168.1.100'
|
||||
model: 'yi'
|
||||
password: my_password_123
|
||||
```
|
||||
|
||||
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 `/tmp/sd/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).
|
||||
|
||||
## {% linkable_title Image quality %}
|
||||
|
||||
Any option supported by [`ffmpeg` camera](/components/camera.ffmpeg/) can be utilized via the `ffmpeg_arguments` configuration parameter.
|
||||
|
||||
One particularly useful adjustment deals with video size. Since Yi videos are fairly large (especially on the 1080p cameras), the following configuration will bring them down to a manageable size:
|
||||
|
||||
```yaml
|
||||
camera:
|
||||
- platform: xiaomi
|
||||
name: My Camera
|
||||
host: '192.168.1.100'
|
||||
model: 'xiaofang'
|
||||
password: my_password_123
|
||||
path: /home/camera/feed
|
||||
ffmpeg_arguments: '-vf scale=800:450'
|
||||
```
|
@ -62,7 +62,7 @@ Configuration variables:
|
||||
- **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 `/tmp/sd/record`.
|
||||
- **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).
|
||||
|
||||
|
65
source/_components/climate.opentherm_gw.markdown
Normal file
@ -0,0 +1,65 @@
|
||||
---
|
||||
layout: page
|
||||
title: "OpenTherm Gateway"
|
||||
description: "Control your OpenTherm Gateway from Home Assistant."
|
||||
date: 2018-08-29 16:23
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: opentherm.png
|
||||
ha_category: Climate
|
||||
ha_release: 0.78
|
||||
ha_iot_class: "Local Push"
|
||||
---
|
||||
|
||||
|
||||
The `opentherm_gw` climate platform is used to control the [OpenTherm Gateway](http://otgw.tclcode.com/) from Home Assistant.
|
||||
|
||||
# {% linkable_title Configuration %}
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
climate:
|
||||
- platform: opentherm_gw
|
||||
device: /dev/ttyUSB0
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
device:
|
||||
description: "Path to OpenTherm Gateway device as supported by [PySerial](https://pythonhosted.org/pyserial/url_handlers.html)."
|
||||
required: true
|
||||
type: string
|
||||
name:
|
||||
description: The name for the device within Home Assistant.
|
||||
required: false
|
||||
type: string
|
||||
default: OpenTherm Gateway
|
||||
precision:
|
||||
description: "The desired precision for this device. Can be used to match your actual thermostat's precision. Supported values are `0.1`, `0.5` and `1.0`."
|
||||
required: false
|
||||
type: float
|
||||
default: "`0.5` for Celsius and `1.0` for Fahrenheit."
|
||||
floor_temperature:
|
||||
description: Some thermostats round all temperatures down to the lower value according to their precision. Default behaviour for Home Assistant is to round temperatures to the nearest value. Set this to `True` to override Home Assistant and round to the lower value according to the configured `precision`.
|
||||
required: false
|
||||
type: boolean
|
||||
{% endconfiguration %}
|
||||
|
||||
<p class='note'>
|
||||
The OpenTherm protocol is based on polling. The thermostat sends requests to the boiler at specific intervals. As a result, it may take some time for changes to propagate between Home Assistant and the thermostat.
|
||||
</p>
|
||||
|
||||
# {% linkable_title Example %}
|
||||
|
||||
A full configuration example with the OpenTherm Gateway connected to a remote host running `ser2net` looks like the one below.
|
||||
|
||||
```yaml
|
||||
# Full example configuration.yaml entry
|
||||
climate:
|
||||
- platform: opentherm_gw
|
||||
device: socket://otgw.example.org:2345
|
||||
name: Thermostat
|
||||
precision: 0.5
|
||||
floor_temperature: True
|
||||
```
|
22
source/_components/cover.insteon.markdown
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Insteon Cover"
|
||||
description: "Instructions on how to setup the Insteon cover locally within Home Assistant."
|
||||
date: 2018-08-20 16:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: insteon.png
|
||||
ha_category: Cover
|
||||
ha_iot_class: "Local Push"
|
||||
ha_version: 0.78
|
||||
---
|
||||
|
||||
The `insteon` cover platform lets you control your [Open/Close Micro Module]
|
||||
through an INSTEON Modem (PLM and Hub) device connected directly to your system
|
||||
on a USB, serial port or TCPIP connection. To add support, set up the primary
|
||||
[insteon] component.
|
||||
|
||||
[insteon]: /components/insteon/
|
||||
[Open/Close Micro Module]: https://www.insteon.com/open-close-micro-module/
|
@ -29,7 +29,7 @@ See [deCONZ wiki](https://github.com/dresden-elektronik/deconz-rest-plugin/wiki/
|
||||
|
||||
Home Assistant will automatically discover deCONZ presence on your network, if `discovery:` is present in your `configuration.yaml` file.
|
||||
|
||||
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 **Menu** -> **Settings** -> **Unlock Gateway** 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.
|
||||
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:
|
||||
|
||||
@ -79,16 +79,16 @@ logger:
|
||||
|
||||
## {% linkable_title Device services %}
|
||||
|
||||
Available services: `configure`.
|
||||
Available services: `configure` and `deconz.refresh_devices`.
|
||||
|
||||
#### {% linkable_title Service `deconz.configure` %}
|
||||
|
||||
Set attribute of device in Deconz using [Rest API](http://dresden-elektronik.github.io/deconz-rest-doc/rest/).
|
||||
Set attribute of device in deCONZ using [Rest API](http://dresden-elektronik.github.io/deconz-rest-doc/rest/).
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
|-----------|----------|-------------|
|
||||
| `field` | No | String representing a specific device in deCONZ. |
|
||||
| `entity` | No | String representing a specific HASS entity of a device in deCONZ. |
|
||||
| `entity` | No | String representing a specific Home Assistant entity of a device in deCONZ. |
|
||||
| `data` | No | Data is a JSON object with what data you want to alter. |
|
||||
|
||||
Field and entity are exclusive, i.e you can only use one in a request.
|
||||
@ -99,9 +99,15 @@ Field and entity are exclusive, i.e you can only use one in a request.
|
||||
|
||||
{ "field": "/config", "data": {"permitjoin": 60} }
|
||||
|
||||
#### {% linkable_title Service `deconz.refresh_devices` %}
|
||||
|
||||
Refresh with devices added to deCONZ after Home Assistants latest restart.
|
||||
|
||||
Note: deCONZ automatically signals Home Assistant when new sensors are added, but other devices must at this point in time (deCONZ v2.05.35) be added manually using this service or a restart of Home Assistant.
|
||||
|
||||
## {% linkable_title Remote control devices %}
|
||||
|
||||
Remote controls (ZHASwitch category) will be not be exposed as a regular entity, 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 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.
|
||||
|
||||
Typical values for switches, the event codes are 4 numbers where the first and last number are of interest here.
|
||||
|
||||
|
@ -22,6 +22,7 @@ Available demo platforms:
|
||||
- [Climate](/components/climate/) (`climate`)
|
||||
- [Cover](/components/cover/) (`cover`)
|
||||
- [Fan](/components/fan/) (`fan`)
|
||||
- [Geo Location](/components/geo_location/) (`geo_location`)
|
||||
- [Image Processing](/components/image_processing/) (`image_processing`)
|
||||
- [Light](/components/light/) (`light`)
|
||||
- [Lock](/components/lock/) (`lock`)
|
||||
|
@ -80,5 +80,8 @@ See the [device tracker component page](/components/device_tracker/) for instruc
|
||||
| coolant_temperature | Temperature of the coolant [1] |
|
||||
| power_voltage | Power voltage measured by the hardware [1] |
|
||||
| distance_from_home | How far is your vehicle located from your Home Assistant Home location |
|
||||
| current_max_speed | The maximum speed on the road the device is currently on (if available) |
|
||||
| current_address | Object with address information the device is currently on. This resolves to the closest address to the coordinates of the device. |
|
||||
|
||||
|
||||
[1] Only available on certain cars and hardware revisions.
|
16
source/_components/geo_location.markdown
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Geo Location"
|
||||
description: "Instructions on how to integrate geo location aware platforms into Home Assistant."
|
||||
date: 2018-08-27 08:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
ha_category: Other
|
||||
ha_release: "0.78"
|
||||
---
|
||||
|
||||
Geo Location aware entities are typically related to events in the real world in the vicinity of Home Assistant's location, like for example weather events, bush fires or earthquakes.
|
||||
|
||||
Entities can have associated geo location coordinates (latitude and longitude) so that they are displayed on the map. The distance from the entity's coordinates to Home Assistant's location can be used for filtering.
|
132
source/_components/habitica.markdown
Normal file
@ -0,0 +1,132 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Habitica"
|
||||
description: "Instructions on enabling Habitica support for your Home Assistant"
|
||||
date: 2018-08-09 00:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: habitica.png
|
||||
ha_category: Hub
|
||||
ha_version: 0.78
|
||||
ha_iot_class: "Cloud Polling"
|
||||
---
|
||||
|
||||
This component allows you to monitor and manage your Habitica profile. This component exposes the [Habitica's API](https://habitica.com/apidoc/) as a Home Assistant service. It supports multiple users and allows you to automate checking out your habits and daily tasks or casting magics using Home Assistant.
|
||||
This component enables usage of [`sensor.habitica` platform.](/components/sensor.habitica/)
|
||||
To use the component you should use this example configuration:
|
||||
|
||||
```yaml
|
||||
# Minimum viable configuration.yaml entry
|
||||
habitica:
|
||||
- api_user: 'REPLACE_ME_WITH_YOUR_USER_ID'
|
||||
api_key: 'REPLACE_ME_WITH_YOUR_API_KEY'
|
||||
```
|
||||
|
||||
You can specify several users, providing `api_user` and `api_key` for each.
|
||||
At runtime you will be able to use API for each respective user by their Habitica's username.
|
||||
You can override this by passing `name` key, this value will be used instead of the username.
|
||||
If you are hosting your own instance of Habitica, you can specify a URL to it in `url` key.
|
||||
|
||||
{% configuration %}
|
||||
api_user:
|
||||
description: "Habitica's API user ID. This value can be grabbed from [account setting](https://habitica.com/user/settings/api)"
|
||||
required: true
|
||||
type: string
|
||||
api_key:
|
||||
description: "Habitica's API password (token). This value can be grabbed from [account setting](https://habitica.com/user/settings/api) by pressing 'Show API token'"
|
||||
required: true
|
||||
type: string
|
||||
name:
|
||||
description: "Override for Habitica's username. Will be used for service calls"
|
||||
required: false
|
||||
type: string
|
||||
default: Deduced at startup
|
||||
url:
|
||||
description: "URL to your Habitica instance, if you are hosting your own"
|
||||
required: false
|
||||
type: string
|
||||
default: http://habitica.com
|
||||
sensors:
|
||||
description: List of sensors to generate for this user. If you don't specify this entry then the default (all sensors) will be generated. If you specify this entry empty then no sensors will be generated.
|
||||
required: false
|
||||
type: list
|
||||
default: all (`name`, `hp`, `maxHealth`, `mp`, `maxMP`, `exp`, `toNextLevel`, `lvl`, `gp`, `class`)
|
||||
{% endconfiguration %}
|
||||
|
||||
### {% linkable_title API Service Parameters %}
|
||||
|
||||
The API is exposed to Home Assistant as a service called `habitica.api_call`. To call it you should specify this keys in service data:
|
||||
|
||||
| Service data attribute | Required | Type | Description |
|
||||
|----------------------|--------|--------|----------------|
|
||||
| `name` | yes | string | Habitica's username as per `configuration.yaml` entry. |
|
||||
| `path` | yes | [string] | Items from API URL in form of an array with method attached at the end. See the example below. |
|
||||
| `args` | no | map | Any additional json or url parameter arguments. See the example below and [apidoc](https://habitica.com/apidoc/). |
|
||||
|
||||
A successful call to this service will fire an event `habitica_api_call_success`.
|
||||
|
||||
| Event data attribute | Type | Description |
|
||||
|----------------------|--------|----------------|
|
||||
| `name` | string | Copied from service data attribute. |
|
||||
| `path` | [string] | Copied from service data attribute. |
|
||||
| `data` | map | Deserialized `data` field of JSON object Habitica's server returned in response to api call. For more info see [docs](https://habitica.com/apidoc/). |
|
||||
|
||||
#### Let's consider some examples on how to call the service.
|
||||
|
||||
For example, let's say that there is a configured `habitica` platform for user `xxxNotAValidNickxxx` with their respective `api_user` and `api_key`.
|
||||
Let's create a new task (a todo) for this user via Home Assistant. There is an [API call](https://habitica.com/apidoc/#api-Task-CreateUserTasks) for this purpose.
|
||||
To create a new task one should hit `https://habitica.com/api/v3/tasks/user` endpoint with `POST` request with a json object with task properties.
|
||||
So let's call the API on `habitica.api_call`.
|
||||
* The `name` key becomes `xxxNotAValidNickxxx`.
|
||||
* The `path` key is trickier.
|
||||
* Remove 'https://habitica.com/api/v3/' at the beginning of the endpoint URL.
|
||||
* Split the remaining on slashes (/) and **append the lowercase method** at the end.
|
||||
* You should get `["tasks", "user", "post"]`. To get a better idea of the API you are recommended to try all of the API calls in IPython console [using this package](https://github.com/ASMfreaK/habitipy/blob/master/README.md).
|
||||
* The `args` key is more or less described in the [docs](https://habitica.com/apidoc/).
|
||||
|
||||
Combining all together:
|
||||
call `habitica.api_call` with data
|
||||
```
|
||||
{
|
||||
"name": "xxxNotAValidNickxxx",
|
||||
"path": ["tasks", "user", "post"],
|
||||
"args": {"text": "Use API from Home Assistant", "type": "todo"}
|
||||
}
|
||||
```
|
||||
|
||||
This call will create a new todo on `xxxNotAValidNickxxx`'s account with text `Use API from Home Assistant` like this:
|
||||
|
||||

|
||||
|
||||
Also an event `habitica_api_call_success` will be fired with the following data:
|
||||
```
|
||||
{
|
||||
"name": "xxxNotAValidNickxxx",
|
||||
"path": ["tasks", "user", "post"],
|
||||
"data": {
|
||||
"challenge": {},
|
||||
"group": {"approval": {"required": false,
|
||||
"approved": false,
|
||||
"requested": false},
|
||||
"assignedUsers": [],
|
||||
"sharedCompletion": "recurringCompletion"},
|
||||
"completed": false,
|
||||
"collapseChecklist": false,
|
||||
"type": "todo",
|
||||
"notes": "",
|
||||
"tags": [],
|
||||
"value": 0,
|
||||
"priority": 1,
|
||||
"attribute": "str",
|
||||
"text": "Use API from Home Assistant",
|
||||
"checklist": [],
|
||||
"reminders": [],
|
||||
"_id": "NEW_TASK_UUID",
|
||||
"createdAt": "2018-08-09T18:03:27.759Z",
|
||||
"updatedAt": "2018-08-09T18:03:27.759Z",
|
||||
"userId": "xxxNotAValidNickxxx's ID",
|
||||
"id": "NEW_TASK_UUID"}
|
||||
}
|
||||
```
|
@ -1,7 +1,7 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Insteon"
|
||||
description: "Instructions on how to setup an Insteon Modem (PLM or Hub) locally within Home Assistant."
|
||||
description: "Instructions on how to set up an Insteon Modem (PLM or Hub) locally within Home Assistant."
|
||||
date: 2018-08-20 16:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
@ -18,19 +18,20 @@ linked INSTEON devices to be used within Home Assistant as binary sensors,
|
||||
lights, fans, sensors and switches. Device support is provided by the
|
||||
underlying [insteonplm] package. It is known to work with the [2413U] USB and
|
||||
[2412S] RS242 flavors of PLM and the [2448A7] USB stick. It has also been
|
||||
tested to work with the [2245] Hub.
|
||||
tested to work with the [2242] and [2245] Hubs.
|
||||
|
||||
[insteonplm]: https://github.com/nugget/python-insteonplm
|
||||
[2413U]: https://www.insteon.com/powerlinc-modem-usb
|
||||
[2412S]: https://www.insteon.com/powerlinc-modem-serial
|
||||
[2448A7]: https://www.smarthome.com/insteon-2448a7-portable-usb-adapter.html
|
||||
[2245]: https://www.insteon.com/insteon-hub/
|
||||
[2242]: https://www.insteon.com/support-knowledgebase/2014/9/26/insteon-hub-owners-manual
|
||||
|
||||
|
||||
### {% linkable_title INSTEON Modem configuration %}
|
||||
|
||||
To setup a Powerline Modem (PLM) device such as the [2413U], use the following
|
||||
configuration:
|
||||
To set up an INSTEON Powerline Modem (PLM) device such as the [2413U], use the
|
||||
following configuration:
|
||||
|
||||
```yaml
|
||||
# PLM configuration variables
|
||||
@ -38,15 +39,26 @@ insteon:
|
||||
port: SERIAL_PORT
|
||||
```
|
||||
|
||||
To setup an INSTEON Hub such as the [2245], use the following configuration:
|
||||
To set up an INSTEON Hub model [2245], use the following configuration:
|
||||
|
||||
```yaml
|
||||
# Hub configuration variables
|
||||
# Hub 2245 configuration variables
|
||||
insteon:
|
||||
host: HOST
|
||||
ip_port: IP_PORT
|
||||
username: USERNAME
|
||||
password: PASSWORD
|
||||
hub_version: 2
|
||||
```
|
||||
|
||||
To set up an INSTEON Hub model [2242], use the following configuration:
|
||||
|
||||
```yaml
|
||||
# Hub 2242 configuration variables
|
||||
insteon:
|
||||
host: HOST
|
||||
ip_port: IP_PORT
|
||||
hub_version: 1
|
||||
```
|
||||
|
||||
Addtional configuration items are available:
|
||||
@ -71,14 +83,23 @@ insteon:
|
||||
```
|
||||
Configuration variables:
|
||||
- **port** (*Required for PLM setup*): The serial or USB port for your device,
|
||||
e.g., `/dev/ttyUSB0`
|
||||
- **host** (*Required for Hub setup*): The host name or IP address of the Hub
|
||||
- **ip_port** (*Optional for Hub setup*): The IP port number of the Hub.
|
||||
(default value is 25105)
|
||||
- **username** (*Required for Hub setup*): The username to login to the local
|
||||
Hub
|
||||
- **password** (*Required for Hub setup*): The password to login to the local
|
||||
Hub
|
||||
e.g., `/dev/ttyUSB0` or `COM3`
|
||||
- **host** (*Required for Hub setup*): The host name or IP address of the Hub.
|
||||
- **ip_port** (*Optional for Hub setup*): The IP port number of the Hub. For
|
||||
Hub model [2245] (i.e. Hub version 2) the default port is 25105. For the Hub
|
||||
model [2242] (i.e. Hub version 1) the default port is 9761. Use the Insteon
|
||||
app to find the port number for your specific Hub.
|
||||
- **username** (*Required for Hub version 2 setup*): The username to login in
|
||||
to the local Hub. This is required for Hub [2245] (i.e. Hub version 2) setup.
|
||||
You can find your Hub username on the bottom of the Hub or you can use the
|
||||
Insteon app.
|
||||
- **password** (*Required for Hub version 2 setup*): The password to login in
|
||||
to the local Hub. This is required for Hub [2245] (i.e. Hub version 2) setup.
|
||||
You can find your Hub password on the bottom of the Hub or you can use the
|
||||
Insteon app.
|
||||
- **hub_version** (*Required for Hub version 1 setup*): The Hub version number
|
||||
where model [2242] is Hub version 1 and model [2245] is Hub version 2.
|
||||
(Default is 2)
|
||||
- **device_override** (*Optional*): Override the default device definition
|
||||
- *ADDRESS* is found on the device itself in the form 1A.2B.3C or 1a2b3c
|
||||
- *CATEGORY* is found in the back of the device's User Guide in the form of
|
||||
@ -92,16 +113,16 @@ Configuration variables:
|
||||
- *UNITCODE* is the X10 unit code values 1 - 16
|
||||
- *PLATFORM* is the Home Assistant Platform to associate the device with.
|
||||
The following platforms are supported
|
||||
- binary_sensor: Used for on/off devices or keypad buttons that are read only.
|
||||
- binary_sensor: Used for on/off devices or keypad buttons that are read-only.
|
||||
- light: Used for dimmable X10 devices
|
||||
- switch: Used for On/Off X10 devices
|
||||
- *STEPS* is the number of dim/bright steps the device supports. Used for
|
||||
dimmable X10 devices only. Default value is 22.
|
||||
- **x10_all_units_off** (*Optional*): Creates an binary_sensor that responds
|
||||
- **x10_all_units_off** (*Optional*): Creates a binary_sensor that responds
|
||||
to the X10 standard command for All Units Off.
|
||||
- **x10_all_lights_on** (*Optional*): Creates an binary_sensor that responds
|
||||
- **x10_all_lights_on** (*Optional*): Creates a binary_sensor that responds
|
||||
to the X10 standard command for All Lights On
|
||||
- **x10_all_lights_off** (*Optional*): Creates an binary_sensor that responds
|
||||
- **x10_all_lights_off** (*Optional*): Creates a binary_sensor that responds
|
||||
to the X10 standard command for All Lights Off
|
||||
|
||||
### {% linkable_title Autodiscovery %}
|
||||
@ -111,27 +132,27 @@ per device. Subsequent startups will occur much quicker using cached device
|
||||
information. If a device is not recognized during autodiscovery, you can add
|
||||
the device to the **device_override** configuration.
|
||||
|
||||
In order for a device to be discovered it must be linked to the INSTEON Modem
|
||||
In order for a device to be discovered, it must be linked to the INSTEON Modem
|
||||
as either a responder or a controller.
|
||||
|
||||
### {% linkable_title Linking Devices to the INSTEON Modem %}
|
||||
|
||||
In order for any two Insteon devices to talk with one another, they must be
|
||||
linked. For an overview of device linking please read the Insteon page on
|
||||
linked. For an overview of device linking, please read the Insteon page on
|
||||
[understanding linking]. The Insteon Modem module supports All-Linking through
|
||||
[Development Tools] service calls. The following services are available:
|
||||
|
||||
- **insteon.add_all_link**: Puts the Insteon Modem (IM) into All-Linking
|
||||
mode. The IM can be set as as controller or a responder. If the IM is a
|
||||
controler, put the IM into linking mode then press the SET button on the
|
||||
device. If the IM is a responer, press the SET button on the device then
|
||||
mode. The IM can be set as a controller or a responder. If the IM is a
|
||||
controller, put the IM into linking mode then press the SET button on the
|
||||
device. If the IM is a responder, press the SET button on the device then
|
||||
put the IM into linking mode.
|
||||
- **insteon.delete_all_link**: Tells the Insteon Modem (IM) to remove an
|
||||
All-Link record from the All-Link Database of the IM and a device. Once the IM
|
||||
is set to delete the link, press the SET button on the corresponding device
|
||||
to complete the process.
|
||||
- **insteon.load_all_link_database**: Load the All-Link Database for a
|
||||
device. WARNING - Loading a device All-Link database may take a LONG time and
|
||||
device. WARNING - Loading a device All-Link database may take a LONG time and
|
||||
may need to be repeated to obtain all records.
|
||||
- **insteon.print_all_link_database**: Print the All-Link Database for a
|
||||
device. Requires that the All-Link Database is loaded first.
|
||||
@ -174,7 +195,7 @@ devices.
|
||||
|
||||
INSTEON devices are added to Home Assistant using the platform(s) that make the
|
||||
most sense given the model and features of the hardware. The features of the
|
||||
INSTEON device are built into the Home Assistant platform. Changing the
|
||||
INSTEON devices are built into the Home Assistant platform. Changing the
|
||||
platform is not recommended. There are two primary uses for the
|
||||
**device_override** feature.
|
||||
- Devices that do not respond during autodiscovery. This is common for battery
|
||||
@ -185,7 +206,7 @@ platform is not recommended. There are two primary uses for the
|
||||
### {% linkable_title Example Configuration with Options%}
|
||||
|
||||
```yaml
|
||||
# Full example of insteon configuration with customizations and overrides
|
||||
# Full example of Insteon configuration with customizations and overrides
|
||||
|
||||
homeassistant:
|
||||
customize:
|
||||
@ -205,7 +226,7 @@ insteon:
|
||||
|
||||
### {% linkable_title What NOT to do %}
|
||||
|
||||
Insteon Modem is a top level component and device discovery will identify
|
||||
Insteon Modem is a top-level component and device discovery will identify
|
||||
the Home Assistant platform the device belongs in. As such, do not
|
||||
declare Insteon devices in other platforms. For example, this configuration
|
||||
will NOT work:
|
||||
@ -224,19 +245,18 @@ events. The following events are available:
|
||||
- **insteon.button_on**
|
||||
- **address**: (required) The Insteon device address in lower case without
|
||||
dots (e.g. 1a2b3c)
|
||||
- **button**: (Optional) The button id in lower case. For an 4 button remote
|
||||
the values are a to d. For an 8 button remote the values are a to g. For
|
||||
a one button remote this field is not used.
|
||||
- **button**: (Optional) The button id in lower case. For a 4-button remote
|
||||
the values are `a` to `d`. For an 8 button remote the values are `a` to `g`. For
|
||||
a one-button remote this field is not used.
|
||||
- **insteon.button_of**
|
||||
- **address**: (required) The Insteon device address in lower case without
|
||||
dots (e.g. 1a2b3c)
|
||||
- **button**: (Optional) The button id in lower case. For an 4 button remote
|
||||
the values are a to d. For an 8 button remote the values are a to g. For
|
||||
a one button remote this field is not used.
|
||||
- **button**: (Optional) The button id in lower case. For a 4-button remote
|
||||
the values are a to d. For an 8 button remote the values are `a` to `g`. For
|
||||
a one-button remote this field is not used.
|
||||
|
||||
This allows the mini-remotes to be configured as
|
||||
|
||||
Here is an example of how to use these events for automations:
|
||||
This allows the mini-remotes to be configured as triggers for automations. Here
|
||||
is an example of how to use these events for automations:
|
||||
|
||||
```
|
||||
automation:
|
||||
@ -276,8 +296,8 @@ The INSTEON Hub has three known issues that are inherent to the design of the
|
||||
Hub:
|
||||
|
||||
1. If you see multiple error messages in the log file stating the Hub
|
||||
connection is closed and reconnection has failed, this generally requires
|
||||
the Hub to be restarted in order to reconnect.
|
||||
connection is closed, and reconnection has failed, this generally requires
|
||||
the Hub to be restarted to reconnect.
|
||||
|
||||
2. You cannot use both Home Assistant and the INSTEON app. If you do, the
|
||||
changes made in the app will not appear in Home Assistant. Changes made in
|
||||
|
@ -13,6 +13,6 @@ ha_iot_class: "Local Polling"
|
||||
ha_version: 0.36
|
||||
---
|
||||
|
||||
The `insteon_local` component is depreciated and has been replaced by the [Insteon] component.
|
||||
The `insteon_local` component is depreciated and has been replaced by the [insteon] component.
|
||||
|
||||
[Insteon] /component/insteon
|
||||
[insteon]: /component/insteon
|
||||
|
@ -13,7 +13,6 @@ ha_iot_class: "Local Push"
|
||||
ha_version: 0.39
|
||||
---
|
||||
|
||||
The `insteon_plm` component is depreciated and has been replaced by the [Insteon] component.
|
||||
|
||||
[Insteon] /component/insteon
|
||||
The `insteon_plm` component is depreciated and has been replaced by the [insteon] component.
|
||||
|
||||
[insteon]: /component/insteon
|
||||
|
@ -23,7 +23,7 @@ The component currently supports the following device types in Home Assistant:
|
||||
|
||||
This component requires the [`discovery`](https://www.home-assistant.io/components/discovery) component to be enabled.
|
||||
|
||||
## {% linkable_title Configuration %}
|
||||
### {% linkable_title Configuration %}
|
||||
|
||||
A `konnected` section must be present in the `configuration.yaml` file that specifies the Konnected devices on the network and the sensors or actuators attached to them:
|
||||
|
||||
@ -62,7 +62,7 @@ devices:
|
||||
type: list
|
||||
keys:
|
||||
id:
|
||||
description: The MAC address of the WiFi module with colons/punctuation removed. You must use the full 12-character MAC address with lower case letters. This is visible in the device's WiFi SSID and hostname.
|
||||
description: The MAC address of the NodeMCU WiFi module with colons/punctuation removed, for example `68c63a8bcd53`. You can usually find the mac address in your router's client list. Or, check the home-assistant.log for log messages from automatically discovered devices.
|
||||
required: true
|
||||
type: string
|
||||
binary_sensors:
|
||||
@ -118,14 +118,14 @@ devices:
|
||||
- Either **pin** or **zone** is required for each actuator or sensor. Do not use both in the same definition.
|
||||
- Pin `D8` or the `out` zone will only work when activation is set to high (the default).
|
||||
|
||||
## {% linkable_title Full Configuration %}
|
||||
### {% linkable_title Extended Configuration %}
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
konnected:
|
||||
access_token: REPLACE_ME_WITH_A_RANDOM_STRING
|
||||
devices:
|
||||
- id: 8bcd53
|
||||
- id: 6001948bcd53
|
||||
binary_sensors:
|
||||
- zone: 1
|
||||
type: door
|
||||
@ -149,7 +149,7 @@ konnected:
|
||||
momentary: 65
|
||||
pause: 55
|
||||
repeat: -1
|
||||
- id: 438a38
|
||||
- id: 5ccf7f438a38
|
||||
binary_sensors:
|
||||
- pin: 1
|
||||
type: motion
|
||||
@ -179,3 +179,16 @@ Konnected runs on an ESP8266 board with the NodeMCU firmware. It is commonly use
|
||||
| 5 | D7 | 7 | GPIO13 |
|
||||
| 6 | RX | 9 | GPIO3 |
|
||||
| ALARM or OUT | D8 | 8 | GPIO15 |
|
||||
|
||||
### {% linkable_title Revision History %}
|
||||
|
||||
#### 0.77
|
||||
* Added support for momentary and beep/blink switches. [[#15973](https://github.com/home-assistant/home-assistant/pull/15973)]
|
||||
* Decouple entity initialization from discovery, enabling devices to recover faster after a Home Assistant reboot. [[#16146](https://github.com/home-assistant/home-assistant/pull/16146)]
|
||||
* **Breaking change:** Device `id` in `configuration.yaml` must now be the full 12-character device MAC address. Previously, omitting the first 6 characters was allowed.
|
||||
|
||||
#### 0.72
|
||||
* Adds `api_host` configuration option [[#14896](https://github.com/home-assistant/home-assistant/pull/14896)]
|
||||
|
||||
#### 0.70
|
||||
* Initial release
|
||||
|
@ -35,6 +35,10 @@ name:
|
||||
required: false
|
||||
type: string
|
||||
default: MQTT Light
|
||||
unique_id:
|
||||
description: An ID that uniquely identifies this light. If two lights have the same unique ID, Home Assistant will raise an exception.
|
||||
required: false
|
||||
type: string
|
||||
command_topic:
|
||||
description: The MQTT topic to publish commands to change the switch state.
|
||||
required: true
|
||||
|
@ -79,3 +79,26 @@ List of source names:
|
||||
- multi-ch
|
||||
- xm
|
||||
- sirius
|
||||
|
||||
### {% linkable_title Example `play_media` script %}
|
||||
|
||||
The `play_media` function can be used in script to play radio station by preset number.
|
||||
Not working for NET radio.
|
||||
|
||||
```yaml
|
||||
# Example play_media script
|
||||
#
|
||||
script:
|
||||
radio1:
|
||||
alias: "Radio 1"
|
||||
sequence:
|
||||
- service: media_player.turn_on
|
||||
data:
|
||||
entity_id: media_player.onkyo
|
||||
- service: media_player.play_media
|
||||
data:
|
||||
entity_id: media_player.onkyo
|
||||
media_content_type: "radio"
|
||||
media_content_id: "1"
|
||||
|
||||
```
|
||||
|
@ -35,7 +35,7 @@ Configuration variables:
|
||||
|
||||
### {% linkable_title Setting up the bot %}
|
||||
|
||||
Bots can only send messages to servers. To add the bot to a server you are an admin on, get the details of the bot from the [Discord My Apps page](https://discordapp.com/developers/applications/me).
|
||||
Bots can only send messages to servers or attach local available images. To add the bot to a server you are an admin on, get the details of the bot from the [Discord My Apps page](https://discordapp.com/developers/applications/me).
|
||||
|
||||
<p class='img'>
|
||||
<img src='{{site_root}}/images/screenshots/discord-bot.png' />
|
||||
@ -69,7 +69,12 @@ This channel ID has to be used as the target when calling the notification servi
|
||||
"target": [
|
||||
"1234567890",
|
||||
"0987654321"
|
||||
]
|
||||
],
|
||||
"data": {
|
||||
"images": [
|
||||
"/tmp/garage_cam.jpg"
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -12,7 +12,6 @@ ha_category: Notifications
|
||||
ha_release: 0.39
|
||||
---
|
||||
|
||||
|
||||
The [Pushsafer service](https://www.pushsafer.com/) is a platform for the notify component. This allows you to send messages to the user using Pushsafer.
|
||||
|
||||
In order to get a private or alias key you need to go to the [Pushsafer website](https://www.pushsafer.com) and register.
|
||||
@ -90,6 +89,10 @@ Message to two devices and one device group with formatted text and local image.
|
||||
"url": "https://www.home-assistant.io/",
|
||||
"urltitle": "Open Home Assistant",
|
||||
"time2live": "10",
|
||||
"priority": "2",
|
||||
"retry": "60",
|
||||
"expire": "600",
|
||||
"answer": "1",
|
||||
"picture1": {
|
||||
"path":"C:\\Users\\Kevin\\AppData\\Roaming\\.homeassistant\\image-760-testimage.jpg"
|
||||
}
|
||||
|
@ -15,6 +15,8 @@ ha_iot_class: "Local Polling"
|
||||
|
||||
The `apcupsd` sensor platform allows you to monitor a UPS (battery backup) by using data from the [apcaccess](http://linux.die.net/man/8/apcaccess) command.
|
||||
|
||||
## {% linkable_title Configuration %}
|
||||
|
||||
To use this sensor platform, you first have to set up [apcupsd](/components/apcupsd/), and add the following to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
@ -24,14 +26,6 @@ sensor:
|
||||
resources:
|
||||
- bcharge
|
||||
- linev
|
||||
- loadpct
|
||||
- nominv
|
||||
- nompower
|
||||
- numxfers
|
||||
- outputv
|
||||
- status
|
||||
- timeleft
|
||||
- tonbatt
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
@ -64,37 +58,7 @@ MAXTIME : 0 Seconds
|
||||
MAXLINEV : 249.6 Volts
|
||||
MINLINEV : 244.4 Volts
|
||||
OUTPUTV : 218.4 Volts
|
||||
SENSE : High
|
||||
DWAKE : 0 Seconds
|
||||
DSHUTD : 180 Seconds
|
||||
DLOWBATT : 2 Minutes
|
||||
LOTRANS : 196.0 Volts
|
||||
HITRANS : 253.0 Volts
|
||||
RETPCT : 15.0 Percent
|
||||
ITEMP : 30.6 C
|
||||
ALARMDEL : Low Battery
|
||||
BATTV : 27.6 Volts
|
||||
LINEFREQ : 50.0 Hz
|
||||
LASTXFER : High line voltage
|
||||
NUMXFERS : 0
|
||||
TONBATT : 0 Seconds
|
||||
CUMONBATT: 0 Seconds
|
||||
XOFFBATT : N/A
|
||||
SELFTEST : NO
|
||||
STESTI : 336
|
||||
STATFLAG : 0x0500000A
|
||||
DIPSW : 0x00
|
||||
REG1 : 0x00
|
||||
REG2 : 0x00
|
||||
REG3 : 0x00
|
||||
MANDATE : 07/13/99
|
||||
SERIALNO : GS9888761008
|
||||
BATTDATE : 13/11/15
|
||||
NOMOUTV : 230 Volts
|
||||
NOMBATTV : 24.0 Volts
|
||||
EXTBATTS : 0
|
||||
FIRMWARE : 70.11.I
|
||||
END APC : 2016-02-09 17:13:46 +0000
|
||||
[...]
|
||||
```
|
||||
|
||||
Use the (case insensitive) values from the left hand column:
|
||||
@ -105,5 +69,5 @@ sensor:
|
||||
resources:
|
||||
- linev
|
||||
- loadpct
|
||||
- itemp
|
||||
- timeleft
|
||||
```
|
||||
|
@ -108,6 +108,7 @@ Configuration variables:
|
||||
- **apparent_temperature_low**: Today's overnight expected apparent low temperature.
|
||||
- **precip_intensity_max**: Today's expected maximum intensity of precipitation.
|
||||
- **uv_index**: The current UV index.
|
||||
- **moon_phase**: The fractional part of the lunation number during the given day.
|
||||
- **units** (*Optional*): Specify the unit system. Default to `si` or `us` based on the temperature preference in Home Assistant. Other options are `auto`, `us`, `si`, `ca`, `uk` and `uk2`.
|
||||
`auto` will let Dark Sky decide the unit system based on location.
|
||||
- **update_interval** (*Optional*): Minimum time interval between updates. Default is 2 minutes. Supported formats:
|
||||
|
@ -23,33 +23,44 @@ To enable this sensor, add the following lines to your `configuration.yaml` file
|
||||
# Example configuration.yaml entry
|
||||
sensor:
|
||||
- platform: enphase_envoy
|
||||
ip_address: ENVOY_LOCAL_IP_ADDRESS
|
||||
```
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
sensor:
|
||||
- platform: enphase_envoy
|
||||
ip_address: LOCAL_IP_FOR_ENVOY
|
||||
monitored_conditions:
|
||||
- production
|
||||
- consumption
|
||||
- lifetime_production
|
||||
- lifetime_consumption
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
ip_address:
|
||||
description: The local IP Address of your Envoy
|
||||
required: true
|
||||
description: The local IP Address of your Envoy. Leave blank to search for it, but this may not always be reliable.
|
||||
required: false
|
||||
type: string
|
||||
monitored_conditions:
|
||||
description: The list of conditions to monitor
|
||||
description: The list of conditions to monitor.
|
||||
required: false
|
||||
type: list
|
||||
keys:
|
||||
production:
|
||||
description: The power in W being produced by the solar panels
|
||||
description: The power in W being produced by the solar panels.
|
||||
daily_production:
|
||||
description: The energy in Wh produced that day
|
||||
7_days_production:
|
||||
description: The energy in Wh produced the last 7 days
|
||||
description: The energy in Wh produced that day.
|
||||
seven_days_production:
|
||||
description: The energy in Wh produced the last 7 days.
|
||||
lifetime_production:
|
||||
description: The energy in Wh produced in the lifetime of the Envoy
|
||||
description: The energy in Wh produced in the lifetime of the Envoy.
|
||||
consumption:
|
||||
description: The power in W being consumed in the whole house
|
||||
description: The power in W being consumed in the whole house.
|
||||
daily_consumption:
|
||||
description: The energy in Wh consumed that day
|
||||
7_days_consumption:
|
||||
description: The energy in Wh consumed the last 7 days
|
||||
description: The energy in Wh consumed that day.
|
||||
seven_days_consumption:
|
||||
description: The energy in Wh consumed the last 7 days.
|
||||
lifetime_consumption:
|
||||
description: The energy in Wh consumed in the lifetime of the Envoy
|
||||
description: The energy in Wh consumed in the lifetime of the Envoy.
|
||||
{% endconfiguration %}
|
||||
|
@ -13,7 +13,6 @@ ha_iot_class: "Cloud Polling"
|
||||
ha_release: "0.51"
|
||||
---
|
||||
|
||||
|
||||
The `geizhals` sensor will give you the best price of a product from [Geizhals](https://geizhals.de) or related site. With this information can be used in e.g., automations to notify you when a price drops.
|
||||
|
||||
To enable this sensor, add the following lines to your `configuration.yaml` file:
|
||||
@ -23,16 +22,16 @@ To enable this sensor, add the following lines to your `configuration.yaml` file
|
||||
sensor:
|
||||
- platform: geizhals
|
||||
name: qc35
|
||||
product_id: 1453021
|
||||
product_id: 1696985
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **name** (*Required*): The internal name of the product in Home Assistant.
|
||||
- **product_id** (*Required*): ID of the product. Get the ID from the geizhals website of your chosen product by clicking on the *Price History* tab, e.g., [here](https://geizhals.de/?phist=1453021). The URL of this site reveals the ID, e.g., <https://geizhals.de/?phist=1453021> with `product_id: 1453021`.
|
||||
- **product_id** (*Required*): ID of the product. Get the ID from the Geizhals website of your chosen product by opening the *Price History* in a new browser tab (right-click on the price history > open in new tab).
|
||||
The URL of this site reveals the ID, e.g. `https://geizhals.de/?phist=1696985` with a `product_id` of `1696985`.
|
||||
- **description** (*Optional*): The name of the product in the front end.
|
||||
- **domain** (*Optional*): Domain which should be used for the request. Set this to `geizhals.at`, `geizhals.eu`, `geizhals.de`, `skinflint.co.uk` or `cenowarka.pl`. Defaults to `geizhals.de`.
|
||||
- **regex** (*Optional*): Regular expression to parse the price. Default: `\D\s(\d*)[\,|\.](\d*)`.
|
||||
- **locale** (*Optional*): Localisation which should be used for the request. Set this to `AT`, `EU`, `DE`, `UK` or `PL`. Defaults to `DE`.
|
||||
|
||||
#### {% linkable_title Extended example %}
|
||||
|
||||
@ -41,8 +40,7 @@ Configuration variables:
|
||||
sensor:
|
||||
- platform: geizhals
|
||||
name: qc35
|
||||
product_id: 1453021
|
||||
product_id: 1696985
|
||||
description: "Bose QC35"
|
||||
domain: 'geizhals.de'
|
||||
regex: '\D\s(\d*)[\,|\.](\d*)'
|
||||
locale: "DE"
|
||||
```
|
||||
|
21
source/_components/sensor.habitica.markdown
Normal file
@ -0,0 +1,21 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Habitica Sensor"
|
||||
description: "Instructions on enabling Habitica support for your Home Assistant"
|
||||
date: 2018-08-09 00:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: habitica.png
|
||||
ha_category: Sensor
|
||||
ha_iot_class: "Cloud Polling"
|
||||
ha_version: 0.78
|
||||
---
|
||||
|
||||
The `habitica` sensor platform allows you to view and monitor your player data from [Habitica](https://habitica.com/) in Home Assistant.
|
||||
|
||||
<p class='note'>
|
||||
You must have the [`habitica` component](/components/habitica/)
|
||||
configured to use this platform. After configuring that component, sensors specified there will automatically appear.
|
||||
</p>
|
@ -70,13 +70,10 @@ sensor:
|
||||
- **name** (*Optional*): The name displayed in the frontend.
|
||||
- **force_update** (*Optional*): Sends update events even if the value hasn't changed.
|
||||
- **median** (*Optional*): Sometimes the sensor measurements show spikes. Using this parameter, the poller will report the median of the last 3 (you can also use larger values) measurements. This filters out single spikes. Median: 5 will also filter double spikes. If you never have problems with spikes, `median: 1` will work fine.
|
||||
- **timeout** (*Optional*): Define the timeout value in seconds when polling (defaults to 10 if not defined)
|
||||
- **retries** (*Optional*): Define the number of retries when polling (defaults to 2 if not defined)
|
||||
- **cache_value** (*Optional*): Define cache expiration value in seconds (defaults to 1200 if not defined)
|
||||
- **adapter** (*Optional*): Define the Bluetooth adapter to use (defaults to hci0). Run `hciconfig` to get a list of available adapters.
|
||||
|
||||
<p class='note warning'>
|
||||
By default the sensor is only polled once every 20 minutes. So, if you set `median: 3` it will take _at least_ 40 minutes before the sensor will report a value after a Home Assistant restart. Since the values usually change very slowly, this usually isn't a big problem. Keep in mind though that reducing polling intervals will have a negative effect on the battery life.
|
||||
By default the sensor is only polled once every 20 minutes (`scan_interval` is 1200 seconds by default). On a Home Assistant restart sensor will report initial value. If you set `median: 3`, it will take _at least_ 40 minutes before the sensor will report an average value. Keep in mind though that reducing polling intervals will have a negative effect on the battery life.
|
||||
</p>
|
||||
|
||||
A full configuration example could look like the one below:
|
||||
|
@ -13,7 +13,6 @@ ha_iot_class: "Local Polling"
|
||||
ha_release: "0.22"
|
||||
---
|
||||
|
||||
|
||||
The `snmp` sensor platform displays information available through the [Simple Network Management Protocol (SNMP)](https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol). SNMP uses a tree-like hierarchy where each node is an object, and is mainly supported by network-oriented devices such as routers, modems, and printers.
|
||||
|
||||
To enable this sensor in your installation, add the following to your `configuration.yaml` file:
|
||||
@ -26,28 +25,107 @@ sensor:
|
||||
baseoid: 1.3.6.1.4.1.2021.10.1.3.1
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
{% configuration %}
|
||||
host:
|
||||
description: The IP address of your host, eg. `192.168.1.32`.
|
||||
required: true
|
||||
type: string
|
||||
default: 'localhost'
|
||||
baseoid:
|
||||
description: The OID where the information is located. It's advised to use the numerical notation.
|
||||
required: true
|
||||
type: string
|
||||
port:
|
||||
description: The SNMP port of your host.
|
||||
required: Option
|
||||
type: string
|
||||
default: '161'
|
||||
community:
|
||||
description: "The SNMP community which is set for the device for SNMP v1 and v2c. Most devices have a default community set to `public` with read-only permission (which is sufficient)."
|
||||
required: false
|
||||
type: string
|
||||
default: 'public'
|
||||
username:
|
||||
description: Username to use for authentication.
|
||||
required: false
|
||||
type: string
|
||||
default: ''
|
||||
auth_key:
|
||||
description: Authentication key to use for SNMP v3.
|
||||
required: false
|
||||
type: string
|
||||
default: no key
|
||||
auth_protocol:
|
||||
description: Authentication protocol to use for SNMP v3.
|
||||
required: false
|
||||
type: string
|
||||
default: 'none'
|
||||
priv_key:
|
||||
description: Privacy key to use for SNMP v3.
|
||||
required: false
|
||||
type: string
|
||||
default: no key
|
||||
priv_protocol:
|
||||
description: Privacy protocol to use for SNMP v3.
|
||||
required: false
|
||||
type: string
|
||||
default: 'none'
|
||||
version:
|
||||
description: "Version of SNMP protocol, `1`, `2c` or `3`. Version `2c` or higher is needed to read data from 64-bit counters."
|
||||
required: false
|
||||
type: string
|
||||
default: '1'
|
||||
name:
|
||||
description: Name of the SNMP sensor.
|
||||
required: false
|
||||
type: string
|
||||
unit_of_measurement:
|
||||
description: Defines the unit of measurement of the sensor, if any.
|
||||
required: false
|
||||
type: string
|
||||
value_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to parse the value."
|
||||
required: false
|
||||
type: template
|
||||
accept_errors:
|
||||
description: "Determines whether the sensor should start and keep working even if the SNMP host is unreachable or not responding. This allows the sensor to be initialized properly even if, for example, your printer is not on when you start Home Assistant."
|
||||
required: false
|
||||
type: string
|
||||
default: false
|
||||
default_value:
|
||||
description: "Determines what value the sensor should take if `accept_errors` is set and the host is unreachable or not responding. If not set, the sensor will have value `unknown` in case of errors."
|
||||
required: false
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
||||
- **host** (*Required*): The IP address of your host, eg. `192.168.1.32`.
|
||||
- **baseoid** (*Required*): The OID where the information is located. It's advised to use the numerical notation.
|
||||
- **port** (*Option*): The SNMP port of your host. Defaults to `161`.
|
||||
- **community** (*Optional*): The SNMP community which is set for the device. Most devices have a default community set to `public` with read-only permission (which is sufficient).
|
||||
- **version** (*Optional*) version of SNMP protocol, `1` or `2c`. Defaults to `1`. Version `2c` is needed to read data from 64-bit counters.
|
||||
- **name** (*Optional*): Name of the SNMP sensor.
|
||||
- **unit_of_measurement** (*Optional*): Defines the unit of measurement of the sensor, if any.
|
||||
- **value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to parse the value.
|
||||
- **accept_errors** (*Optional*): Determines whether the sensor should start and keep working even if the SNMP host is unreachable or not responding. This allows the sensor to be initialized properly even if, for example, your printer is not on when you start Home Assistant. Defaults to `false`.
|
||||
- **default_value** (*Optional*): Determines what value the sensor should take if `accept_errors` is set and the host is unreachable or not responding. If not set, the sensor will have value `unknown` in case of errors.
|
||||
Valid values for auth_protocol:
|
||||
|
||||
- **none**
|
||||
- **hmac-md5**
|
||||
- **hmac-sha**
|
||||
- **hmac128-sha224**
|
||||
- **hmac192-sha256**
|
||||
- **hmac256-sha384**
|
||||
- **hmac384-sha512**
|
||||
|
||||
Valid values for priv_protocol:
|
||||
|
||||
- **none**
|
||||
- **des**
|
||||
- **3des-ede**
|
||||
- **aes-cfb-128**
|
||||
- **aes-cfb-192**
|
||||
- **aes-cfb-256**
|
||||
|
||||
## {% linkable_title Finding OIDs %}
|
||||
|
||||
OIDs may vary on different systems because they are vendor-specific. Beside the device's manual, the [OID Repository](http://www.oid-info.com/) is a good place to start if you are looking for OIDs. As an example, the following OIDs are for the load of a Linux systems.
|
||||
OIDs may vary on different systems because they are vendor-specific. Besides the device's manual, the [OID Repository](http://www.oid-info.com/) is a good place to start if you are looking for OIDs. As an example, the following OIDs are for the load of a Linux system.
|
||||
|
||||
- 1 minute Load: `1.3.6.1.4.1.2021.10.1.3.1`
|
||||
- 5 minute Load: `1.3.6.1.4.1.2021.10.1.3.2`
|
||||
- 15 minute Load: `1.3.6.1.4.1.2021.10.1.3.3`
|
||||
|
||||
There is a large amount of tools available to work with SNMP. `snmpwalk` let you easily retrieve the value of a OID.
|
||||
There is a large amount of tools available to work with SNMP. `snmpwalk` let you easily retrieve the value of an OID.
|
||||
|
||||
```bash
|
||||
$ snmpwalk -Os -c public -v 2c 192.168.1.32 1.3.6.1.4.1.2021.10.1.3.1
|
||||
@ -58,10 +136,11 @@ laLoad.1 = STRING: 0.19
|
||||
|
||||
### {% linkable_title Printer uptime minutes %}
|
||||
|
||||
According to the most common SNMP standard, the uptime of a device is accessible under OID `1.3.6.1.2.1.1.3.0`. The value represented using a format called `TimeTicks`, in units of hundredth of a second.
|
||||
According to the most common SNMP standard, the uptime of a device is accessible under OID `1.3.6.1.2.1.1.3.0`. The value represented using a format called `TimeTicks`, in units of hundredths of a second.
|
||||
|
||||
To create a sensor that displays the uptime for your printer in minutes, you can use this configuration:
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
sensor:
|
||||
@ -71,8 +150,9 @@ sensor:
|
||||
baseoid: 1.3.6.1.2.1.1.3.0
|
||||
accept_errors: true
|
||||
unit_of_measurement: 'minutes'
|
||||
value_template: {% raw %}'{{((value | int) / 6000) | int}}'{% endraw %}
|
||||
value_template: '{{((value | int) / 6000) | int}}'
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
The `accept_errors` option will allow the sensor to work even if the printer is not on when Home Assistant is first started: the sensor will just display a `-` instead of a minute count.
|
||||
|
||||
|
@ -14,7 +14,7 @@ ha_release: "0.30"
|
||||
---
|
||||
|
||||
|
||||
The `statistics` sensor platform consumes the state from other sensors. Besides the maximum and the minimum values, the total, mean, median, variance and the standard deviation are also available as attributes. If it's a binary sensor then only state changes are counted.
|
||||
The `statistics` sensor platform consumes the state from other sensors. It exports the `mean` value as state and the following values as attributes: `count`, `mean`, `median`, `stdev`, `variance`, `total`, `min`, `max`, `min_age`, `max_age`, `change`, `average_change` and `change_rate`. If it's a binary sensor then only state changes are counted.
|
||||
|
||||
If you are running the [recorder](/components/recorder/) component, on startup the data is read from the database. So after a restart of the platform, you will immediately have data available. If you're using the [history](/components/history/) component, this will automatically also start the `recorder` component on startup.
|
||||
If you are *not* running the `recorder` component, it can take time till the sensor starts to work because a couple of attributes need more than one value to do the calculation.
|
||||
@ -43,6 +43,7 @@ Configuration variables:
|
||||
- **name** (*Optional*): Name of the sensor to use in the frontend. Defaults to `Stats`.
|
||||
- **sampling_size** (*Optional*): Size of the sampling. If the limit is reached then the values are rotated. Defaults to `20`.
|
||||
- **max_age** (*Optional*): Maximum age of measurements. Setting this to a time interval will cause older values to be discarded.
|
||||
- **precision** (*Optional*): Defines the precision of the calculated values, through the argument of round(). Defaults to `2`.
|
||||
|
||||
<p class='img'>
|
||||
<img src='{{site_root}}/images/screenshots/stats-sensor.png' />
|
||||
|
@ -10,13 +10,15 @@ footer: true
|
||||
logo: trafikverket.png
|
||||
ha_category: Weather
|
||||
ha_release: 0.66.0
|
||||
ha_iot_class: "Cloud Polling"
|
||||
---
|
||||
|
||||
Showing weather information for air and road temperature provided by [Trafikverket](https://www.trafikverket.se/) in Sweden.
|
||||
Showing weather information provided by [Trafikverket](https://www.trafikverket.se/) weather stations in Sweden.
|
||||
|
||||
|
||||
Potential use cases:
|
||||
- Get weather data in general
|
||||
- You live near a weather station and want to know the current temperature at home
|
||||
- Get weather data in general.
|
||||
- You live near a weather station and want to know the current weather conditions at home.
|
||||
- Setup automations for your car heating system. If the road is frozen along the way to work, you might want the car heating system to start earlier.
|
||||
|
||||
##### {% linkable_title Configuration %}
|
||||
@ -29,31 +31,48 @@ sensor:
|
||||
name: Trafikverket Road WeatherStation Kungälv
|
||||
api_key: eXXcbXXXacXXXXc39XX3aXXX4aXX46XX
|
||||
station: Kungälv
|
||||
type: road
|
||||
monitored_conditions:
|
||||
- air_temp
|
||||
- road_temp
|
||||
- humidity
|
||||
- precipitation
|
||||
- wind_direction
|
||||
- wind_direction_text
|
||||
- wind_speed
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
name:
|
||||
description: Unique name of the device in the frontend.
|
||||
description: Your unique name of the device in the frontend.
|
||||
required: true
|
||||
type: string
|
||||
api_key:
|
||||
description: API key from Trafikverket.
|
||||
description: Your personal API key from Trafikverket.
|
||||
required: true
|
||||
type: string
|
||||
station:
|
||||
description: Name of the weather station.
|
||||
description: Name of the weather station from Trafikverket.
|
||||
required: true
|
||||
type: string
|
||||
type:
|
||||
description: Defines which temperature you want (`air` or `road`).
|
||||
monitored_conditions:
|
||||
description: Specify what measurement data to retreive from the weather station.
|
||||
required: true
|
||||
type: string
|
||||
scan_interval:
|
||||
description: How frequently to query for new data (in seconds).
|
||||
required: false
|
||||
type: int
|
||||
default: 300
|
||||
type: map
|
||||
keys:
|
||||
air_temp:
|
||||
description: Air temperature.
|
||||
road_temp:
|
||||
description: The temperature in the road.
|
||||
humidity:
|
||||
description: Relative humidity.
|
||||
precipitation:
|
||||
description: Type of precipitation (Swedish text).
|
||||
wind_direction:
|
||||
description: Wind direction in degrees.
|
||||
wind_direction_text:
|
||||
description: Rough wind direction in twelve variants (Swedish text).
|
||||
wind_speed:
|
||||
description: Average wind speed during the last 10 minutes.
|
||||
{% endconfiguration %}
|
||||
|
||||
##### {% linkable_title Obtaining API key %}
|
||||
@ -76,11 +95,31 @@ sensor:
|
||||
name: Trafikverket Road WeatherStation Kungälv
|
||||
api_key: eXXcbXXXacXXXXc39XX3aXXX4aXX46XX
|
||||
station: Kungälv
|
||||
type: road
|
||||
monitored_conditions:
|
||||
- air_temp
|
||||
- road_temp
|
||||
- humidity
|
||||
- precipitation
|
||||
- wind_direction
|
||||
- wind_direction_text
|
||||
- wind_speed
|
||||
- platform: trafikverket_weatherstation
|
||||
name: Trafikverket Air WeatherStation Lanna
|
||||
api_key: eXXcbXXXacXXXXc39XX3aXXX4aXX46XX
|
||||
station: Lanna
|
||||
type: air
|
||||
monitored_conditions:
|
||||
- air_temp
|
||||
- road_temp
|
||||
- humidity
|
||||
scan_interval: 600
|
||||
- platform: trafikverket_weatherstation
|
||||
name: Trafikverket Precipitation WeatherStation Nöbbele
|
||||
api_key: eXXcbXXXacXXXXc39XX3aXXX4aXX46XX
|
||||
station: Nöbbele
|
||||
monitored_conditions:
|
||||
- air_temp
|
||||
- road_temp
|
||||
- humidity
|
||||
- precipitation
|
||||
scan_interval: 600
|
||||
```
|
||||
|
@ -16,6 +16,10 @@ ha_iot_class: "Cloud Polling"
|
||||
|
||||
The `twitch` platform will allow you to monitor [Twitch](http://www.twitch.tv/) channel status from within Home Assistant and setup automation based on the information.
|
||||
|
||||
## {% linkable_title Setup %}
|
||||
|
||||
Create a new app at "Register Your Application" in the [Twitch developer portal](https://glass.twitch.tv/console/apps). Then get the **Client ID** for the new app.
|
||||
|
||||
## {% linkable_title Configuration %}
|
||||
|
||||
To use Twitch with your installation, add the following to your `configuration.yaml` file:
|
||||
@ -24,12 +28,17 @@ To use Twitch with your installation, add the following to your `configuration.y
|
||||
# Example configuration.yaml entry
|
||||
sensor:
|
||||
platform: twitch
|
||||
client_id: YOUR_TWITCH_CLIENT_ID
|
||||
channels:
|
||||
- channel1
|
||||
- channel2
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
clientid:
|
||||
description: Your Twitch client ID.
|
||||
required: true
|
||||
type: string
|
||||
channels:
|
||||
description: List of channels.
|
||||
required: true
|
||||
|
18
source/_components/sensor.velbus.markdown
Normal file
@ -0,0 +1,18 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Velbus Sensor"
|
||||
description: "Instructions how to integrate Velbus sensors into Home Assistant."
|
||||
date: 2018-08-22 06:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: velbus.png
|
||||
ha_category: Sensor
|
||||
ha_iot_class: "Local Push"
|
||||
ha_release: 0.78
|
||||
---
|
||||
|
||||
The `velbus` sensor allows you to control [Velbus](http://www.velbus.eu) connected temperature sensors.
|
||||
|
||||
For hub configuration, see [the Velbus component](/components/velbus/).
|
79
source/_components/sensor.volkszaehler.markdown
Normal file
@ -0,0 +1,79 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Volkszaehler"
|
||||
description: "Instructions on how to integrate Volkszaehler sensors into Home Assistant."
|
||||
date: 2018-08-25 08:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: volkszaehler.png
|
||||
ha_category: System Monitor
|
||||
ha_iot_class: "Local Polling"
|
||||
ha_release: 0.78
|
||||
---
|
||||
|
||||
The `volkszaehler` sensor platform is consuming the system information provided by the [Volkszaehler](https://wiki.volkszaehler.org/) API.
|
||||
|
||||
## {% linkable_title Configuration %}
|
||||
|
||||
To enable the Volkszaehler sensor, add the following lines to your `configuration.yaml`:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
sensor:
|
||||
- platform: volkszaehler
|
||||
uuid: DEVICE_UUID
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
uuid:
|
||||
description: The UUID of the device to track.
|
||||
required: true
|
||||
type: string
|
||||
host:
|
||||
description: The IP address of the host where Volkszaehler is running.
|
||||
required: false
|
||||
type: string
|
||||
default: localhost
|
||||
port:
|
||||
description: The port where Volkszaehler is listening.
|
||||
required: false
|
||||
type: int
|
||||
default: 80
|
||||
name:
|
||||
description: The prefix for the sensors.
|
||||
required: false
|
||||
type: string
|
||||
default: Volkszaehler
|
||||
monitored_conditions:
|
||||
description: Entries to monitor.
|
||||
required: false
|
||||
type: map
|
||||
default: average
|
||||
keys:
|
||||
average:
|
||||
description: The average power.
|
||||
consumption:
|
||||
description: The power consumption.
|
||||
max:
|
||||
description: The maximum power.
|
||||
min:
|
||||
description: The minimum power.
|
||||
{% endconfiguration %}
|
||||
|
||||
## {% linkable_title Full examples %}
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
sensor:
|
||||
- platform: volkszaehler
|
||||
host: demo.volkszaehler.org
|
||||
uuid: '57acbef0-88a9-11e4-934f-6b0f9ecd95a8'
|
||||
monitored_conditions:
|
||||
- average
|
||||
- consumption
|
||||
- min
|
||||
- max
|
||||
```
|
||||
|
@ -38,17 +38,17 @@ $ sudo apt-get update
|
||||
$ sudo apt-get install -y snips-platform-voice
|
||||
```
|
||||
|
||||
Note: if the keyserver pgp.mit.edu is down try to use another one in the 4th line , like pgp.surfnet.nl:
|
||||
Note that if the keyserver pgp.mit.edu is down then try to use another one in the 4th line, like pgp.surfnet.nl:
|
||||
|
||||
```bash
|
||||
sudo apt-key adv --keyserver pgp.surfnet.nl --recv-keys D4F50CDCA10A2849
|
||||
$ sudo apt-key adv --keyserver pgp.surfnet.nl --recv-keys D4F50CDCA10A2849
|
||||
```
|
||||
|
||||
### {% linkable_title Creating an assistant %}
|
||||
|
||||
Head over to the [Snips Console](https://console.snips.ai) to create your assistant. Launch the training and download by clicking on the "Download Assistant" button.
|
||||
|
||||
The next step is to get the assistant to work on your device. Unzip and copy the assistant folder that you downloaded from the web console to the path. Assuming your downloaded assistant folder is on your desktop, just run:
|
||||
The next step is to get the assistant to work on your device. Unzip and copy the `assistant` folder that you downloaded from the web console to the path. Assuming your downloaded `assistant` folder is on your desktop, just run:
|
||||
|
||||
```bash
|
||||
$ scp -r ~/Desktop/assistant pi@<raspi_hostname.local_or_IP>:/home/pi/.
|
||||
@ -68,7 +68,7 @@ Then, move the assistant to the right folder:
|
||||
(pi) $ sudo mv /home/pi/assistant /usr/share/snips/assistant
|
||||
```
|
||||
|
||||
Note: if you already have an assistant installed and wish to replace it, start by removing the previous one, and then move the new one in its place:
|
||||
Note that if you already have an assistant installed and wish to replace it then start by removing the previous one and then move the new one in its place:
|
||||
|
||||
```bash
|
||||
(pi) $ sudo rm -r /usr/share/snips/assistant
|
||||
@ -161,22 +161,28 @@ In the `data_template` block, we have access to special variables, corresponding
|
||||
|
||||
### {% linkable_title Special slots %}
|
||||
|
||||
Two special values for slots are populated with the siteId the intent originated from and the probability value for the intent.
|
||||
Several special values for slots are populated with the `siteId `the intent originated from and the probability value for the intent, the `sessionId` generate by the dialogue manager, and `slote_name` raw which will contain the raw, uninterpreted text of the slot value.
|
||||
|
||||
In the above example, the slots are plain strings. However, snips has a duration builtin value used for setting timers and this will be parsed to a seconds value.
|
||||
In the above example, the slots are plain strings. However, Snips has a duration builtin value used for setting timers and this will be parsed to a seconds value.
|
||||
|
||||
In this example if we had an intent triggered with 'Set a timer for five minutes', `duration:` would equal 300 and `duration_raw:` would be set to 'five minutes'. The duration can be easily used to trigger Home Assistant events and the `duration_raw:` could be used to send a human readable response or alert.
|
||||
|
||||
In this example if we had an intent triggered with 'Set a timer for five minutes', duration would equal 300 and duration_raw would be set to 'five minutes'. The duration can be easily used to trigger HA events, and the duration_raw could be used to send a human readable response or alert.
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
SetTimer:
|
||||
speech:
|
||||
type: plain
|
||||
text: weather
|
||||
text: 'Set a timer'
|
||||
action:
|
||||
service: script.set_timer
|
||||
data_template:
|
||||
name: "{{ timer_name }}"
|
||||
duration: "{{ timer_duration }}"
|
||||
siteId: "{{ site_id }}"
|
||||
sessionId: "{{ session_id }}"
|
||||
duration_raw: "{{ raw_value }}"
|
||||
probability: "{{ probability }}"
|
||||
```
|
||||
{% endraw %}
|
||||
@ -185,7 +191,7 @@ SetTimer:
|
||||
|
||||
### {% linkable_title Sending TTS Notifications %}
|
||||
|
||||
You can send TTS notifications to Snips using the snips.say and snips.say_action services. Say_action starts a session and waits for user response, "Would you like me to close the garage door?", "Yes, close the garage door".
|
||||
You can send TTS notifications to Snips using the `snips.say` and `snips.say_action` services. `say_action` starts a session and waits for user response, "Would you like me to close the garage door?", "Yes, close the garage door".
|
||||
|
||||
#### {% linkable_title Service `snips.say` %}
|
||||
|
||||
@ -240,9 +246,7 @@ intent_script:
|
||||
|
||||
##### {% linkable_title Intiating a query %}
|
||||
|
||||
Here is a more complex example. The automation is triggered if the garage door is open for more than 10 minutes.
|
||||
Snips will then ask you if you want to close it and if you respond with something like "Close the garage door" it
|
||||
will do so. Unfortunately there is no builtin support for yes and no responses.
|
||||
Here is a more complex example. The automation is triggered if the garage door is open for more than 10 minutes. Snips will then ask you if you want to close it and if you respond with something like "Close the garage door" it will do so. Unfortunately there is no builtin support for yes and no responses.
|
||||
|
||||
```yaml
|
||||
automation:
|
||||
|
@ -15,7 +15,7 @@ ha_release: 0.57
|
||||
|
||||
The `snmp` switch platform allows you to control SNMP-enabled equipment.
|
||||
|
||||
Currently, only SNMP OIDs that accept integer values are supported. SNMP v1 and v2c are supported. SNMP v3 is **not** supported.
|
||||
Currently, only SNMP OIDs that accept integer values are supported. SNMP v1, v2c and v3 are supported.
|
||||
|
||||
To use an SNMP switch in your installation:
|
||||
|
||||
@ -27,30 +27,123 @@ switch:
|
||||
baseoid: 1.3.6.1.4.1.19865.1.2.1.4.0
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **baseoid** (*Required*): The SNMP BaseOID which to poll for the state of the switch.
|
||||
- **command_oid** (*Optional*): The SNMP OID which to set in order to turn the switch on and off, if different from `baseoid`.
|
||||
- **host** (*Optional*): The IP/host which to control. Defaults to `localhost`.
|
||||
- **port** (*Optional*): The port on which to communicate. Defaults to `161`.
|
||||
- **community** (*Optional*): community string to use for authentication. Defaults to `private`.
|
||||
- **version** (*Optional*): SNMP version to use - either `1` or `2c`. Defaults to `1`.
|
||||
- **payload_on** (*Optional*): What return value represents an `On` state for the switch. The same value is used in writes to turn on the switch if `command_payload_on` is not set. Defaults to `1`.
|
||||
- **payload_off** (*Optional*): What return value represents an `Off` state for the switch. The same value is used in writes to turn off the switch if `command_payload_off` is not set. Defaults to `0`.
|
||||
- **command_payload_on** (*Optional*): The value to write to turn on the switch, if different from `payload_on`.
|
||||
- **command_payload_off** (*Optional*): The value to write to turn off the switch, if different from `payload_off`.
|
||||
{% configuration %}
|
||||
baseoid:
|
||||
description: The SNMP BaseOID which to poll for the state of the switch.
|
||||
required: true
|
||||
type: string
|
||||
command_oid:
|
||||
description: The SNMP OID which to set in order to turn the switch on and off, if different from `baseoid`.
|
||||
required: false
|
||||
type: string
|
||||
host:
|
||||
description: The IP/host which to control.
|
||||
required: false
|
||||
type: string
|
||||
default: 'localhost'
|
||||
port:
|
||||
description: The port on which to communicate.
|
||||
required: false
|
||||
type: string
|
||||
default: '161'
|
||||
community:
|
||||
description: community string to use for authentication (SNMP v1 and v2c).
|
||||
required: false
|
||||
type: string
|
||||
default: 'private'
|
||||
username:
|
||||
description: Username to use for authentication.
|
||||
required: false
|
||||
type: string
|
||||
default: ''
|
||||
auth_key:
|
||||
description: Authentication key to use for SNMP v3.
|
||||
required: false
|
||||
type: string
|
||||
default: no key
|
||||
auth_protocol:
|
||||
description: Authentication protocol to use for SNMP v3.
|
||||
required: false
|
||||
type: string
|
||||
default: 'none'
|
||||
priv_key:
|
||||
description: Privacy key to use for SNMP v3.
|
||||
required: false
|
||||
type: string
|
||||
default: no key
|
||||
priv_protocol:
|
||||
description: Privacy protocol to use for SNMP v3.
|
||||
required: false
|
||||
type: string
|
||||
default: 'none'
|
||||
version:
|
||||
description: SNMP version to use - either `1`, `2c` or `3`.
|
||||
required: false
|
||||
type: string
|
||||
default: '1'
|
||||
payload_on:
|
||||
description: What return value represents an `On` state for the switch. The same value is used in writes to turn on the switch if `command_payload_on` is not set.
|
||||
required: false
|
||||
type: string
|
||||
default: '1'
|
||||
payload_off:
|
||||
description: What return value represents an `Off` state for the switch. The same value is used in writes to turn off the switch if `command_payload_off` is not set.
|
||||
required: false
|
||||
type: string
|
||||
default: '0'
|
||||
command_payload_on:
|
||||
description: The value to write to turn on the switch, if different from `payload_on`.
|
||||
required: false
|
||||
type: string
|
||||
command_payload_off:
|
||||
description: The value to write to turn off the switch, if different from `payload_off`.
|
||||
required: false
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
||||
You should check with your device's vendor to find out the correct BaseOID and what values turn the switch on and off.
|
||||
|
||||
A complete example:
|
||||
Valid values for auth_protocol:
|
||||
|
||||
- **none**
|
||||
- **hmac-md5**
|
||||
- **hmac-sha**
|
||||
- **hmac128-sha224**
|
||||
- **hmac192-sha256**
|
||||
- **hmac256-sha384**
|
||||
- **hmac384-sha512**
|
||||
|
||||
Valid values for priv_protocol:
|
||||
|
||||
- **none**
|
||||
- **des**
|
||||
- **3des-ede**
|
||||
- **aes-cfb-128**
|
||||
- **aes-cfb-192**
|
||||
- **aes-cfb-256**
|
||||
|
||||
Complete examples:
|
||||
|
||||
```yaml
|
||||
switch:
|
||||
- platform: snmp
|
||||
name: SNMP switch
|
||||
name: SNMP v1 switch
|
||||
host: 192.168.0.2
|
||||
community: private
|
||||
baseoid: 1.3.6.1.4.1.19865.1.2.1.4.0
|
||||
payload_on: 1
|
||||
payload_off: 0
|
||||
|
||||
- platform: snmp
|
||||
name: SNMP v3 switch
|
||||
host: 192.168.0.3
|
||||
version: '3'
|
||||
username: 'myusername'
|
||||
auth_key: 'myauthkey'
|
||||
auth_protocol: 'hmac-sha'
|
||||
priv_key: 'myprivkey'
|
||||
priv_protocol: 'aes-cfb-128'
|
||||
baseoid: 1.3.6.1.4.1.19865.1.2.1.4.0
|
||||
payload_on: 1
|
||||
payload_off: 0
|
||||
```
|
||||
|
35
source/_components/switch.switchbot.markdown
Normal file
@ -0,0 +1,35 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Switchbot"
|
||||
description: "Instructions on how to set up Switchbot switches."
|
||||
date: 2018-09-03 22:41
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: switchbot.png
|
||||
ha_category: Switch
|
||||
ha_release: 0.78
|
||||
ha_iot_class: "Local Polling"
|
||||
---
|
||||
|
||||
This `Switchbot` switch platform allow you to control Switchbot [devices]( https://www.switch-bot.com/).
|
||||
|
||||
To enable it, add the following lines to your `configuration.yaml`:
|
||||
|
||||
```yaml
|
||||
switch:
|
||||
- platform: switchbot
|
||||
mac: 'cb:25:0b......'
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
mac:
|
||||
description: Device MAC address.
|
||||
required: true
|
||||
type: string
|
||||
name:
|
||||
description: The name used to display the switch in the frontend.
|
||||
required: false
|
||||
type: string
|
||||
{% endconfiguration %}
|
36
source/_components/switch.switchmate.markdown
Normal file
@ -0,0 +1,36 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Switchmate"
|
||||
description: "Instructions on how to set up Switchmate switches."
|
||||
date: 2018-08-17 22:41
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: switchmate-logo-rgb.png
|
||||
ha_category: Switch
|
||||
ha_release: 0.78
|
||||
ha_iot_class: "Local Polling"
|
||||
---
|
||||
|
||||
This `Switchmate` switch platform allows you to control Switchmate [devices]( https://www.mysimplysmarthome.com/products/switchmate-switches/).
|
||||
|
||||
To enable it, add the following lines to your `configuration.yaml`:
|
||||
|
||||
```yaml
|
||||
switch:
|
||||
- platform: switchmate
|
||||
mac: 'cb:25:0b......'
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
mac:
|
||||
description: Device MAC address.
|
||||
required: true
|
||||
type: string
|
||||
name:
|
||||
description: The name used to display the switch in the frontend.
|
||||
required: false
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
@ -10,11 +10,11 @@ footer: true
|
||||
ha_release: 0.35
|
||||
---
|
||||
|
||||
Text-to-speech (TTS) enables Home Assistant to speak to you.
|
||||
Text-to-Speech (TTS) enables Home Assistant to speak to you.
|
||||
|
||||
## {% linkable_title Configuring a `tts` platform %}
|
||||
|
||||
To get started, add the following lines to your `configuration.yaml` (example for google):
|
||||
To get started, add the following lines to your `configuration.yaml` (example for Google):
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry for google tts service
|
||||
@ -23,28 +23,66 @@ tts:
|
||||
```
|
||||
|
||||
<p class='note'>
|
||||
Depending on your setup, you might need to set a base URL (`base_url`) inside the [http component](/components/http/).
|
||||
Depending on your setup, you might need to set a base URL (`base_url`) inside the [http component](/components/http/) or in the parameters of this component.
|
||||
</p>
|
||||
|
||||
The following optional parameters can be used with any platform. However, the TTS component will only look for global settings under the configuration of the first configured platform:
|
||||
|
||||
| Parameter | Default | Description |
|
||||
|---------------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `cache` | True | Allow TTS to cache voice file to local storage. |
|
||||
| `cache_dir` | tts | Folder name or path to a folder for caching files. |
|
||||
| `time_memory` | 300 | Time to hold the voice data inside memory for fast play on a media player. Minimum is 60 s and the maximum 57600 s (16 hours). |
|
||||
{% configuration %}
|
||||
cache:
|
||||
description: Allow TTS to cache voice file to local storage.
|
||||
required: false
|
||||
type: boolean
|
||||
default: True
|
||||
cache_dir:
|
||||
description: Folder name or path to a folder for caching files.
|
||||
required: false
|
||||
type: string
|
||||
default: tts
|
||||
time_memory:
|
||||
description: Time to hold the voice data inside memory for fast play on a media player. Minimum is 60 s and the maximum 57600 s (16 hours).
|
||||
required: false
|
||||
type: int
|
||||
default: 300
|
||||
base_url:
|
||||
description: A base URL to use *instead* of the one set in the [http component](/components/http/). It is used as-is by the `tts` component. In particular, you need to include the protocol scheme `http://` or `https://` and the correct port number. They will not be automatically added for you.
|
||||
required: false
|
||||
type: string
|
||||
default: value of ``http.base_url``
|
||||
{% endconfiguration %}
|
||||
|
||||
The extended example from above would look like the following sample:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry for google tts service
|
||||
# Example configuration.yaml entry for Google TTS service
|
||||
tts:
|
||||
- platform: google
|
||||
cache: true
|
||||
cache_dir: /tmp/tts
|
||||
time_memory: 300
|
||||
base_url: http://192.168.0.10:8123
|
||||
```
|
||||
|
||||
## {% linkable_title When do you need to set `base_url` here? %}
|
||||
|
||||
The general answer is "whenever the global `base_url` set in [http component](/components/http/) is not adequate to allow the `say` service to run". The `say` service operates by generating a media file that contains the speech corresponding to the text passed to the service. Then the `say` service sends a message to the media device with a URL pointing to the file. The device fetches the media file at the URL and plays the media. Some combinations of a media device, network configuration and Home Assistant configuration can make it so that the device cannot fetch the media file.
|
||||
|
||||
The following sections describe some of the problems encountered with media devices.
|
||||
|
||||
### {% linkable_title Self-signed certificates %}
|
||||
|
||||
This problem occurs when your Home Assistant instance is configured to be accessed through SSL, and you are using a self-signed certificate.
|
||||
|
||||
The `tts` service will send an `https://` URL to the media device, which will check the certificate, and reject it. So it won't play your file. If you could make the device accept your certificate, it would play the file. However, many media devices do not allow changing settings to accept self-signed certificates. Ultimately, your option may be to serve files to the device as `http://` rather than `https://`. To do this, you *could* change the `base_url` setting in [http component](/components/http/), but that would turn off SSL for all services that use `base_url`. Instead, setting a `base_url` for the `tts` service allows turning off SSL only for this component.
|
||||
|
||||
### {% linkable_title Google cast devices %}
|
||||
|
||||
The Google cast devices (Google Home, Chromecast, etc.) present the following problems:
|
||||
|
||||
* They [reject self-signed certificates](#self-signed-certificates).
|
||||
|
||||
* They do not work with URLs that contain hostnames established by local naming means. Let's say your Home Assistant instance is running on a machine made known locally as `ha`. All your machines on your local network are able to access it as `ha`. However, try as you may, your cast device won't download the media files from your `ha` machine. That's because your cast device ignores your local naming setup. In this example, the `say` service creates a URL like `http://ha/path/to/media.mp3` (or `https://...` if you are using SSL). Setting a `base_url` that contains the IP address of your server works around this issue. By using an IP address, the cast device does not have to resolve the hostname.
|
||||
|
||||
## {% linkable_title Service say %}
|
||||
|
||||
The `say` service support `language` and on some platforms also `options` for set, i.e., *voice, motion, speed, etc*. The text for speech is set with `message`.
|
||||
|
@ -36,3 +36,13 @@ Send a _magic packet_ to wake up a device with 'Wake-On-LAN' capabilities.
|
||||
|---------------------------|----------|-------------------------------------------------------|
|
||||
| `mac` | no | MAC address of the device to wake up. |
|
||||
| `broadcast_address` | yes | Optional broadcast IP where to send the magic packet. |
|
||||
|
||||
|
||||
Sample service data:
|
||||
|
||||
```json
|
||||
{
|
||||
"mac":"00:40:13:ed:f1:32"
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -67,10 +67,19 @@ Delays are useful for temporarily suspending your script and start it at a later
|
||||
```yaml
|
||||
# Waits 1 minute
|
||||
- delay:
|
||||
# supports milliseconds, seconds, minutes, hours, days
|
||||
# Supports milliseconds, seconds, minutes, hours, days
|
||||
minutes: 1
|
||||
```
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
# Waits however many seconds input_number.second_delay is set to
|
||||
- delay:
|
||||
# Supports milliseconds, seconds, minutes, hours, days
|
||||
seconds: "{{ states('input_number.second_delay') }}"
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
# Waits however many minutes input_number.minute_delay is set to
|
||||
@ -85,14 +94,14 @@ Wait until some things are complete. We support at the moment `wait_template` fo
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
# wait until media player have stop the playing
|
||||
# Wait until media player have stop the playing
|
||||
- wait_template: "{{ is_state('media_player.floor', 'stop') }}"
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
# wait for sensor to trigger or 1 minute before continuing to execute.
|
||||
# Wait for sensor to trigger or 1 minute before continuing to execute.
|
||||
- wait_template: "{{ is_state('binary_sensor.entrance', 'on') }}"
|
||||
timeout: '00:01:00'
|
||||
continue_on_timeout: 'true'
|
||||
@ -125,7 +134,7 @@ You can also get the script to abort after the timeout by using `continue_on_tim
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
# wait until a valve is < 10 or continue after 1 minute.
|
||||
# Wait until a valve is < 10 or continue after 1 minute.
|
||||
- wait_template: "{{ states.climate.kitchen.attributes.valve|int < 10 }}"
|
||||
timeout: '00:01:00'
|
||||
continue_on_timeout: 'false'
|
||||
|
461
source/_posts/2018-09-15-release-78.markdown
Normal file
@ -0,0 +1,461 @@
|
||||
---
|
||||
layout: post
|
||||
title: "0.78: More auth, Switchmate, Yale Smart Alarm, OpenTherm"
|
||||
description: "We're 5! We got some great new auth stuff in this release and support for Switchmate, Yale Smart Alarm and OpenTherm."
|
||||
date: 2018-09-17 00:01:00
|
||||
date_formatted: "September 17, 2018"
|
||||
author: Paulus Schoutsen
|
||||
author_twitter: balloob
|
||||
comments: true
|
||||
categories: Release-Notes
|
||||
og_image: /images/blog/2018-09-0.78/social.png
|
||||
---
|
||||
|
||||
<a href='/components/#version/0.78'><img src='/images/blog/2018-09-0.78/components.png' style='border: 0;box-shadow: none;'></a>
|
||||
|
||||
It's time for a new release and oh boy, what a time to be alive! Today marks our 5th (!!!) anniversary. That's 5 years we've been bringing privacy focused and locally controlled home automation to your home. Happy birthday to us.
|
||||
|
||||
This release includes two new features for the auth system. The first one is long-lived access tokens. These are tokens that don't expire and can be used in your scripts instead of API password. Instructions on how to create and use them can be found on your profile.
|
||||
|
||||
Also on your profile page is a new list of existing refresh tokens. These are all the tokens that are currently active for your account. If you ran into issues that the remember login dialog didn't show, you might have a lot. Don't worry, you can delete them all.
|
||||
|
||||
## {% linkable_title New Platforms %}
|
||||
|
||||
- Add temperature sensors to the velbus component ([@Cereal2nd] - [#16203]) ([velbus docs]) ([sensor.velbus docs]) (new-platform)
|
||||
- Add Volkszaehler sensor ([@fabaff] - [#16188]) ([sensor.volkszaehler docs]) (new-platform)
|
||||
- Switchmate ([@Danielhiversen] - [#15535]) ([switch.switchmate docs]) (new-platform)
|
||||
- Add support for Habitica ([@ASMfreaK] - [#15744]) ([habitica docs]) ([sensor.habitica docs]) (new-platform)
|
||||
- Geo Location component ([@exxamalte] - [#15953]) ([feedreader docs]) ([geo_location docs]) (new-platform)
|
||||
- Add Cover to the Insteon component ([@teharris1] - [#16215]) ([insteon docs]) ([cover.insteon docs]) (new-platform)
|
||||
- switchbot ([@Danielhiversen] - [#16396]) ([switch.switchbot docs]) (new-platform)
|
||||
- Add Yale Smart Alarm component ([@domwillcode] - [#16377]) ([alarm_control_panel.yale_smart_alarm docs]) (new-platform)
|
||||
- Add OpenTherm Gateway climate platform ([@mvn23] - [#16299]) ([climate.opentherm_gw docs]) (new-platform)
|
||||
|
||||
## {% linkable_title If you need help... %}
|
||||
|
||||
...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks.
|
||||
|
||||
## {% linkable_title Reporting Issues %}
|
||||
|
||||
Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template.
|
||||
|
||||
<!--more-->
|
||||
|
||||
## {% linkable_title Breaking Changes %}
|
||||
|
||||
- Trafikverket weather: Instead of having multiple sensor configurations per station, add only one configuration per station and select the type of measurement data to subscribe to using monitored_conditions.
|
||||
The configuration value type should no longer be used. ([@endor-force] - [#15935]) ([sensor.trafikverket_weatherstation docs]) (breaking change)
|
||||
- Geizhals: config has changed. Remove domain and regex, specify locale instead: `AT`, `EU`, `DE`, `UK` or `PL`. ([@JulianKahnert] - [#15990]) ([sensor.geizhals docs]) (breaking change)
|
||||
- Update to EnvoyReader 0.2, support for more hardware. Change keys in monitored_conditions from `7_days_production` and `7_days_consumption` to `seven_days_production` and `seven_days_consumption` ([@jesserizzo] - [#16212]) ([sensor.enphase_envoy docs]) (breaking change)
|
||||
- Fix Mi Flora median calculation. Removed `retries` and `timeout` config parameters, they were not used for several months. Replaced `cache_value` config with `scan_interval` to fix a bug in the PR. ([@PaulAnnekov] - [#16085]) ([sensor.miflora docs]) (breaking change)
|
||||
- Twitch now requires a `client_id` and so the platform got updated. ([@ioangogo] - [#16428]) ([sensor.twitch docs]) (breaking change)
|
||||
- The radiotherm `fan` and `mode` state attributes were updated to reflect the real-time fan and mode states of the thermostat, rather than the overall selected state (automatic, mostly). The mode attributes still contain the selected modes (fan on/auto, heat/cool/auto). ([@cpw] - [#15031]) ([climate.radiotherm docs]) (breaking change)
|
||||
|
||||
## {% linkable_title Beta Fixes %}
|
||||
|
||||
- Replace api_password in Camera.Push ([@dgomes] - [#16339]) ([camera.push docs]) (beta fix)
|
||||
- Fail fetch auth providers if onboarding required ([@balloob] - [#16454]) ([auth docs]) (beta fix)
|
||||
- Fix insteon Hub v1 support ([@teharris1] - [#16472]) ([insteon docs]) (beta fix)
|
||||
- bugfix - incorrect camera type and missing sensors when multiple netatmo cameras ([@vikramgorla] - [#16490]) ([netatmo docs]) (beta fix)
|
||||
- Fix arlo intilization when no base station available ([@zellux] - [#16529]) ([arlo docs]) (beta fix)
|
||||
- Long-lived access token ([@awarecan] - [#16453]) ([auth docs]) (beta fix)
|
||||
- Fix typo ([@balloob] - [#16556]) (beta fix)
|
||||
- Fix invalid state ([@balloob] - [#16558]) (beta fix)
|
||||
- Add websocket commands for refresh tokens ([@balloob] - [#16559]) ([auth docs]) (beta fix)
|
||||
- Return if refresh token is current used one in WS API ([@awarecan] - [#16575]) ([auth docs]) ([websocket_api docs]) (beta fix)
|
||||
- Track refresh token last usage information ([@awarecan] - [#16408]) ([auth docs]) (beta fix)
|
||||
- Increasing python-websockets' version number ([@zoe1337] - [#16578]) ([media_player.webostv docs]) (beta fix)
|
||||
- Add retry limit for chromecast connection ([@awarecan] - [#16471]) ([media_player.cast docs]) (beta fix)
|
||||
- Fix broken bluetooth tracker ([@awarecan] - [#16589]) ([device_tracker docs]) (beta fix)
|
||||
- Rewrite bluetooth le ([@pvizeli] - [#16592]) ([device_tracker docs]) (beta fix)
|
||||
|
||||
## {% linkable_title All changes %}
|
||||
|
||||
- Add 'moon_phase' to Dark Sky sensor ([@fabaff] - [#16179]) ([sensor.darksky docs])
|
||||
- Zoneminder SSL fix ([@djm300] - [#16157]) ([zoneminder docs])
|
||||
- update python-velbus library version ([@thomasdelaet] - [#16194]) ([velbus docs])
|
||||
- MQTT: Log transmitted as well as received messages ([@smurfix] - [#16195]) ([mqtt docs])
|
||||
- Upgrade sqlalchemy to 1.2.11 ([@fabaff] - [#16192]) ([sensor.sql docs])
|
||||
- Add battery warning, rssi level and check for availability ([@fucm] - [#16193]) ([sensor.tahoma docs])
|
||||
- Inconsistent entity_id when multiple sensors ([@grea09] - [#16205]) ([sensor.dnsip docs])
|
||||
- Add temperature sensors to the velbus component ([@Cereal2nd] - [#16203]) ([velbus docs]) ([sensor.velbus docs]) (new-platform)
|
||||
- Rewrite of Trafikverket weather - Multiple sensor types supported ([@endor-force] - [#15935]) ([sensor.trafikverket_weatherstation docs]) (breaking change)
|
||||
- Add device_tracker.bluetooth_update service ([@kariudo] - [#15252]) ([device_tracker docs])
|
||||
- Fix geizhals price parsing ([@JulianKahnert] - [#15990]) ([sensor.geizhals docs]) (breaking change)
|
||||
- Add Volkszaehler sensor ([@fabaff] - [#16188]) ([sensor.volkszaehler docs]) (new-platform)
|
||||
- openalpr flag `WITH_TEST` should be `WITH_TESTS` ([@vrih] - [#16218])
|
||||
- Upgrade alpha_vantage to 2.1.0 ([@fabaff] - [#16217]) ([sensor.alpha_vantage docs])
|
||||
- Store devices as dict instead of list ([@Kane610] - [#16229])
|
||||
- Improve package loadable ([@balloob] - [#16237])
|
||||
- Switchmate ([@Danielhiversen] - [#15535]) ([switch.switchmate docs]) (new-platform)
|
||||
- Add support for discrete states to MyQ cover ([@schmittx] - [#16251]) ([cover.myq docs])
|
||||
- bump version ([@dgomes] - [#16262]) ([upnp docs])
|
||||
- Replace Authorization by Authentication ([@cgtobi] - [#16259]) ([hangouts docs])
|
||||
- Add device info to Chromecast ([@balloob] - [#16261]) ([media_player.cast docs])
|
||||
- Add device info for sonos ([@balloob] - [#16263]) ([media_player.sonos docs])
|
||||
- Add device info Nest ([@balloob] - [#16265]) ([climate.nest docs])
|
||||
- Add Hue device info ([@balloob] - [#16267]) ([hue docs]) ([light.hue docs])
|
||||
- Nest Thermostat has software version ([@awarecan] - [#16275]) ([climate.nest docs])
|
||||
- Add support for Habitica ([@ASMfreaK] - [#15744]) ([habitica docs]) ([sensor.habitica docs]) (new-platform)
|
||||
- Fix so that entities are properly unloaded with config entry ([@Kane610] - [#16281]) ([deconz docs]) ([binary_sensor.deconz docs]) ([light.deconz docs]) ([scene.deconz docs]) ([sensor.deconz docs]) ([switch.deconz docs])
|
||||
- Geo Location component ([@exxamalte] - [#15953]) ([feedreader docs]) ([geo_location docs]) (new-platform)
|
||||
- Bump songpal dependency ([@rytilahti] - [#16297]) ([media_player.songpal docs])
|
||||
- Use asterisk_mbox 0.5.0 client ([@PhracturedBlue] - [#16296]) ([asterisk_mbox docs])
|
||||
- Upgrade Adafruit-DHT to 1.3.4 ([@thomaslian] - [#16327]) ([sensor.dht docs])
|
||||
- Add unique ID ([@schmittx] - [#16323]) ([cover.myq docs])
|
||||
- Add Cover to the Insteon component ([@teharris1] - [#16215]) ([insteon docs]) ([cover.insteon docs]) (new-platform)
|
||||
- Fix missing humidity sensor ([@danielperna84] - [#16337]) ([homematic docs])
|
||||
- Support Sonos Beam HDMI input ([@phil65] - [#16340]) ([media_player.sonos docs])
|
||||
- Make last_seen attribute a timezone aware datetime in UTC ([@pnbruckner] - [#16348]) ([device_tracker docs])
|
||||
- Handle netatmo exception ([@Danielhiversen] - [#16344]) ([sensor.netatmo docs])
|
||||
- Add support for sound_mode for Yamaha rxv media_player ([@Joshi425] - [#16352]) ([media_player.yamaha docs])
|
||||
- Add unique_id to MQTT Light ([@bieniu] - [#16303]) ([light.mqtt docs])
|
||||
- Update to EnvoyReader 0.2, support for more hardware ([@jesserizzo] - [#16212]) ([sensor.enphase_envoy docs]) (breaking change)
|
||||
- Snips: Added special slot values, session_id and slotname_raw ([@tschmidty69] - [#16185]) ([snips docs])
|
||||
- Upgrade hbmqtt to 0.9.4 ([@awarecan] - [#16356]) ([mqtt docs])
|
||||
- Upgrade Sphinx to 1.7.7 ([@fabaff] - [#16359])
|
||||
- Upgrade qnapstats to 0.2.7 ([@fabaff] - [#16360]) ([sensor.qnap docs])
|
||||
- Upgrade mutagen to 1.41.1 ([@fabaff] - [#16361]) ([tts docs])
|
||||
- Upgrade shodan to 1.10.0 ([@fabaff] - [#16363]) ([sensor.shodan docs])
|
||||
- Upgrade to youtube_dl to 2018.09.01 ([@fabaff] - [#16365]) ([media_extractor docs])
|
||||
- Added 'nomapnt', 'outcurnt', 'loadapnt' fields ([@MarcSN311] - [#16176]) ([sensor.apcupsd docs])
|
||||
- Generic Thermostat: add support for climate.turn_on/climate.turn_off ([@aronsky] - [#16080]) ([climate.generic_thermostat docs])
|
||||
- Add support for Tahoma Lighting Receiver on/off io ([@fucm] - [#15925]) ([tahoma docs]) ([switch.tahoma docs])
|
||||
- Update discord.py ([@htotoo] - [#16248]) ([notify docs])
|
||||
- Upgrade python-telegram-bot to 11.0.0 ([@fabaff] - [#16373]) ([telegram_bot docs])
|
||||
- Upgrade attrs to 18.2.0 ([@fabaff] - [#16372])
|
||||
- Update server.py ([@awarecan] - [#16375]) ([mqtt docs])
|
||||
- add_entities for switchmate ([@Danielhiversen] - [#16368]) ([switch.switchmate docs])
|
||||
- Support for playing radio preset by Onkyo media_player ([@pszafer] - [#16258]) ([cover.mqtt docs]) ([media_player.onkyo docs])
|
||||
- Bug fix for Tibber ([@Danielhiversen] - [#16397]) ([sensor.tibber docs])
|
||||
- zha: Bump to zigpy 0.2.0/bellows 0.7.0 ([@rcloran] - [#16404]) ([zha docs])
|
||||
- Fix SystemMonitor IP address sensor ([@ReneNulschDE] - [#16394]) ([sensor.systemmonitor docs])
|
||||
- add ExpressBus icon key to sensor.mvg ([@9R] - [#16387]) ([sensor.mvglive docs])
|
||||
- Device and entity registry remove config entry on unload ([@Kane610] - [#16247])
|
||||
- Add config flow for OpenUV ([@bachya] - [#16159]) ([openuv docs]) ([binary_sensor.openuv docs]) ([sensor.openuv docs])
|
||||
- Service to load new deCONZ devices without restart ([@Kane610] - [#16308]) ([deconz docs])
|
||||
- Delegate mqtt topic match validation to the paho mqtt client ([@rohankapoorcom] - [#16403]) ([mqtt docs])
|
||||
- Clean up dlink and some bug fix ([@Danielhiversen] - [#16346]) ([switch.dlink docs])
|
||||
- Implement correct state for RFlink cover ([@nudded] - [#16304]) ([cover.rflink docs])
|
||||
- Fix Mi Flora median calculation ([@PaulAnnekov] - [#16085]) ([sensor.miflora docs]) (breaking change)
|
||||
- Add context to scripts and automations ([@balloob] - [#16415]) ([automation docs]) ([script docs]) ([automation.event docs]) ([automation.homeassistant docs]) ([automation.numeric_state docs]) ([automation.state docs]) ([automation.template docs]) ([automation.zone docs])
|
||||
- Fix openuv.config_flow unit test ([@awarecan] - [#16419])
|
||||
- Upgrade sense library to 0.4.2 ([@kbickar] - [#16429]) ([sensor.sense docs])
|
||||
- switchbot ([@Danielhiversen] - [#16396]) ([switch.switchbot docs]) (new-platform)
|
||||
- Fix camera proxy to not require api_password to function ([@PhracturedBlue] - [#16450]) ([camera docs]) ([camera.proxy docs])
|
||||
- Upgrade shodan to 1.10.1 ([@fabaff] - [#16460]) ([sensor.shodan docs])
|
||||
- Upgrade Sphinx to 1.7.8 ([@fabaff] - [#16459])
|
||||
- update rfxtrx lib ([@Danielhiversen] - [#16463]) ([rfxtrx docs])
|
||||
- Added Twitch v5 support to the twitch platform ([@ioangogo] - [#16428]) ([sensor.twitch docs]) (breaking change)
|
||||
- Fix waze_travel_time component startup ([@tsvi] - [#16465]) ([sensor.waze_travel_time docs])
|
||||
- Update license to official GitHub template ([@OverloadUT] - [#16470])
|
||||
- Add Yale Smart Alarm component ([@domwillcode] - [#16377]) ([alarm_control_panel.yale_smart_alarm docs]) (new-platform)
|
||||
- Update radiotherm ([@cpw] - [#15031]) ([climate.radiotherm docs]) (breaking change)
|
||||
- Support SNMPv3 and asyncio in snmp switch ([@mtdcr] - [#14754]) ([switch.snmp docs])
|
||||
- Fix GitHub change to resolve conflicts ([@fabaff] - [#16477]) ([switch.snmp docs])
|
||||
- Add OpenTherm Gateway climate platform ([@mvn23] - [#16299]) ([climate.opentherm_gw docs]) (new-platform)
|
||||
- Support SNMPv3 and asyncio in snmp sensor ([@mtdcr] - [#14753]) ([sensor.snmp docs])
|
||||
- Add rate of change to statistics sensor ([@flo-wer] - [#15632]) ([sensor.statistics docs])
|
||||
- Restore status attribute for xiaomi_vacuum ([@tamasv] - [#16366]) ([vacuum docs]) ([vacuum.xiaomi_miio docs])
|
||||
- Check if API key is valid and users available ([@fabaff] - [#16494]) ([sensor.lastfm docs])
|
||||
- Update name legacy api password ([@balloob] - [#16455])
|
||||
- Fix Netgear LTESensor docstring ([@scop] - [#16501]) ([sensor.netgear_lte docs])
|
||||
- Update pyHS100 to 0.3.3 ([@amelchio] - [#16502]) ([light.tplink docs]) ([switch.tplink docs])
|
||||
- Move voluptuous-serialize to core requirement ([@awarecan] - [#16507]) ([config docs])
|
||||
- adds listener for OnAVStart and OnAVChange ([@tadly] - [#16495]) ([media_player.kodi docs])
|
||||
- Order imports ([@fabaff] - [#16515])
|
||||
- Upgrade aiohttp to 3.4.4 ([@awarecan] - [#16486])
|
||||
- Add a base_url configuration setting to tts. ([@lddubeau] - [#16478]) ([tts docs])
|
||||
- Upgrade youtube_dl to 2018.09.10 ([@fabaff] - [#16534]) ([media_extractor docs])
|
||||
- Upgrade keyring to 15.0.0 ([@fabaff] - [#16536])
|
||||
- Updates documentation repo URL in PR template ([@frenck] - [#16537])
|
||||
- Replace api_password in Camera.Push ([@dgomes] - [#16339]) ([camera.push docs]) (beta fix)
|
||||
- Fail fetch auth providers if onboarding required ([@balloob] - [#16454]) ([auth docs]) (beta fix)
|
||||
- Fix insteon Hub v1 support ([@teharris1] - [#16472]) ([insteon docs]) (beta fix)
|
||||
- bugfix - incorrect camera type and missing sensors when multiple netatmo cameras ([@vikramgorla] - [#16490]) ([netatmo docs]) (beta fix)
|
||||
- Fix arlo intilization when no base station available ([@zellux] - [#16529]) ([arlo docs]) (beta fix)
|
||||
- Long-lived access token ([@awarecan] - [#16453]) ([auth docs]) (beta fix)
|
||||
- Fix typo ([@balloob] - [#16556]) (beta fix)
|
||||
- Fix invalid state ([@balloob] - [#16558]) (beta fix)
|
||||
- Add websocket commands for refresh tokens ([@balloob] - [#16559]) ([auth docs]) (beta fix)
|
||||
- Return if refresh token is current used one in WS API ([@awarecan] - [#16575]) ([auth docs]) ([websocket_api docs]) (beta fix)
|
||||
- Track refresh token last usage information ([@awarecan] - [#16408]) ([auth docs]) (beta fix)
|
||||
- Increasing python-websockets' version number ([@zoe1337] - [#16578]) ([media_player.webostv docs]) (beta fix)
|
||||
- Add retry limit for chromecast connection ([@awarecan] - [#16471]) ([media_player.cast docs]) (beta fix)
|
||||
- Fix broken bluetooth tracker ([@awarecan] - [#16589]) ([device_tracker docs]) (beta fix)
|
||||
- Rewrite bluetooth le ([@pvizeli] - [#16592]) ([device_tracker docs]) (beta fix)
|
||||
|
||||
[#14753]: https://github.com/home-assistant/home-assistant/pull/14753
|
||||
[#14754]: https://github.com/home-assistant/home-assistant/pull/14754
|
||||
[#15031]: https://github.com/home-assistant/home-assistant/pull/15031
|
||||
[#15252]: https://github.com/home-assistant/home-assistant/pull/15252
|
||||
[#15535]: https://github.com/home-assistant/home-assistant/pull/15535
|
||||
[#15632]: https://github.com/home-assistant/home-assistant/pull/15632
|
||||
[#15744]: https://github.com/home-assistant/home-assistant/pull/15744
|
||||
[#15925]: https://github.com/home-assistant/home-assistant/pull/15925
|
||||
[#15935]: https://github.com/home-assistant/home-assistant/pull/15935
|
||||
[#15953]: https://github.com/home-assistant/home-assistant/pull/15953
|
||||
[#15990]: https://github.com/home-assistant/home-assistant/pull/15990
|
||||
[#16080]: https://github.com/home-assistant/home-assistant/pull/16080
|
||||
[#16085]: https://github.com/home-assistant/home-assistant/pull/16085
|
||||
[#16157]: https://github.com/home-assistant/home-assistant/pull/16157
|
||||
[#16159]: https://github.com/home-assistant/home-assistant/pull/16159
|
||||
[#16176]: https://github.com/home-assistant/home-assistant/pull/16176
|
||||
[#16179]: https://github.com/home-assistant/home-assistant/pull/16179
|
||||
[#16185]: https://github.com/home-assistant/home-assistant/pull/16185
|
||||
[#16188]: https://github.com/home-assistant/home-assistant/pull/16188
|
||||
[#16192]: https://github.com/home-assistant/home-assistant/pull/16192
|
||||
[#16193]: https://github.com/home-assistant/home-assistant/pull/16193
|
||||
[#16194]: https://github.com/home-assistant/home-assistant/pull/16194
|
||||
[#16195]: https://github.com/home-assistant/home-assistant/pull/16195
|
||||
[#16203]: https://github.com/home-assistant/home-assistant/pull/16203
|
||||
[#16205]: https://github.com/home-assistant/home-assistant/pull/16205
|
||||
[#16212]: https://github.com/home-assistant/home-assistant/pull/16212
|
||||
[#16215]: https://github.com/home-assistant/home-assistant/pull/16215
|
||||
[#16217]: https://github.com/home-assistant/home-assistant/pull/16217
|
||||
[#16218]: https://github.com/home-assistant/home-assistant/pull/16218
|
||||
[#16229]: https://github.com/home-assistant/home-assistant/pull/16229
|
||||
[#16237]: https://github.com/home-assistant/home-assistant/pull/16237
|
||||
[#16247]: https://github.com/home-assistant/home-assistant/pull/16247
|
||||
[#16248]: https://github.com/home-assistant/home-assistant/pull/16248
|
||||
[#16251]: https://github.com/home-assistant/home-assistant/pull/16251
|
||||
[#16258]: https://github.com/home-assistant/home-assistant/pull/16258
|
||||
[#16259]: https://github.com/home-assistant/home-assistant/pull/16259
|
||||
[#16261]: https://github.com/home-assistant/home-assistant/pull/16261
|
||||
[#16262]: https://github.com/home-assistant/home-assistant/pull/16262
|
||||
[#16263]: https://github.com/home-assistant/home-assistant/pull/16263
|
||||
[#16265]: https://github.com/home-assistant/home-assistant/pull/16265
|
||||
[#16267]: https://github.com/home-assistant/home-assistant/pull/16267
|
||||
[#16275]: https://github.com/home-assistant/home-assistant/pull/16275
|
||||
[#16281]: https://github.com/home-assistant/home-assistant/pull/16281
|
||||
[#16296]: https://github.com/home-assistant/home-assistant/pull/16296
|
||||
[#16297]: https://github.com/home-assistant/home-assistant/pull/16297
|
||||
[#16299]: https://github.com/home-assistant/home-assistant/pull/16299
|
||||
[#16303]: https://github.com/home-assistant/home-assistant/pull/16303
|
||||
[#16304]: https://github.com/home-assistant/home-assistant/pull/16304
|
||||
[#16308]: https://github.com/home-assistant/home-assistant/pull/16308
|
||||
[#16323]: https://github.com/home-assistant/home-assistant/pull/16323
|
||||
[#16327]: https://github.com/home-assistant/home-assistant/pull/16327
|
||||
[#16337]: https://github.com/home-assistant/home-assistant/pull/16337
|
||||
[#16339]: https://github.com/home-assistant/home-assistant/pull/16339
|
||||
[#16340]: https://github.com/home-assistant/home-assistant/pull/16340
|
||||
[#16344]: https://github.com/home-assistant/home-assistant/pull/16344
|
||||
[#16346]: https://github.com/home-assistant/home-assistant/pull/16346
|
||||
[#16348]: https://github.com/home-assistant/home-assistant/pull/16348
|
||||
[#16352]: https://github.com/home-assistant/home-assistant/pull/16352
|
||||
[#16356]: https://github.com/home-assistant/home-assistant/pull/16356
|
||||
[#16359]: https://github.com/home-assistant/home-assistant/pull/16359
|
||||
[#16360]: https://github.com/home-assistant/home-assistant/pull/16360
|
||||
[#16361]: https://github.com/home-assistant/home-assistant/pull/16361
|
||||
[#16363]: https://github.com/home-assistant/home-assistant/pull/16363
|
||||
[#16365]: https://github.com/home-assistant/home-assistant/pull/16365
|
||||
[#16366]: https://github.com/home-assistant/home-assistant/pull/16366
|
||||
[#16368]: https://github.com/home-assistant/home-assistant/pull/16368
|
||||
[#16372]: https://github.com/home-assistant/home-assistant/pull/16372
|
||||
[#16373]: https://github.com/home-assistant/home-assistant/pull/16373
|
||||
[#16375]: https://github.com/home-assistant/home-assistant/pull/16375
|
||||
[#16377]: https://github.com/home-assistant/home-assistant/pull/16377
|
||||
[#16387]: https://github.com/home-assistant/home-assistant/pull/16387
|
||||
[#16394]: https://github.com/home-assistant/home-assistant/pull/16394
|
||||
[#16396]: https://github.com/home-assistant/home-assistant/pull/16396
|
||||
[#16397]: https://github.com/home-assistant/home-assistant/pull/16397
|
||||
[#16403]: https://github.com/home-assistant/home-assistant/pull/16403
|
||||
[#16404]: https://github.com/home-assistant/home-assistant/pull/16404
|
||||
[#16408]: https://github.com/home-assistant/home-assistant/pull/16408
|
||||
[#16415]: https://github.com/home-assistant/home-assistant/pull/16415
|
||||
[#16419]: https://github.com/home-assistant/home-assistant/pull/16419
|
||||
[#16428]: https://github.com/home-assistant/home-assistant/pull/16428
|
||||
[#16429]: https://github.com/home-assistant/home-assistant/pull/16429
|
||||
[#16450]: https://github.com/home-assistant/home-assistant/pull/16450
|
||||
[#16453]: https://github.com/home-assistant/home-assistant/pull/16453
|
||||
[#16454]: https://github.com/home-assistant/home-assistant/pull/16454
|
||||
[#16455]: https://github.com/home-assistant/home-assistant/pull/16455
|
||||
[#16459]: https://github.com/home-assistant/home-assistant/pull/16459
|
||||
[#16460]: https://github.com/home-assistant/home-assistant/pull/16460
|
||||
[#16463]: https://github.com/home-assistant/home-assistant/pull/16463
|
||||
[#16465]: https://github.com/home-assistant/home-assistant/pull/16465
|
||||
[#16470]: https://github.com/home-assistant/home-assistant/pull/16470
|
||||
[#16471]: https://github.com/home-assistant/home-assistant/pull/16471
|
||||
[#16472]: https://github.com/home-assistant/home-assistant/pull/16472
|
||||
[#16477]: https://github.com/home-assistant/home-assistant/pull/16477
|
||||
[#16478]: https://github.com/home-assistant/home-assistant/pull/16478
|
||||
[#16486]: https://github.com/home-assistant/home-assistant/pull/16486
|
||||
[#16490]: https://github.com/home-assistant/home-assistant/pull/16490
|
||||
[#16494]: https://github.com/home-assistant/home-assistant/pull/16494
|
||||
[#16495]: https://github.com/home-assistant/home-assistant/pull/16495
|
||||
[#16501]: https://github.com/home-assistant/home-assistant/pull/16501
|
||||
[#16502]: https://github.com/home-assistant/home-assistant/pull/16502
|
||||
[#16507]: https://github.com/home-assistant/home-assistant/pull/16507
|
||||
[#16515]: https://github.com/home-assistant/home-assistant/pull/16515
|
||||
[#16529]: https://github.com/home-assistant/home-assistant/pull/16529
|
||||
[#16534]: https://github.com/home-assistant/home-assistant/pull/16534
|
||||
[#16536]: https://github.com/home-assistant/home-assistant/pull/16536
|
||||
[#16537]: https://github.com/home-assistant/home-assistant/pull/16537
|
||||
[#16556]: https://github.com/home-assistant/home-assistant/pull/16556
|
||||
[#16558]: https://github.com/home-assistant/home-assistant/pull/16558
|
||||
[#16559]: https://github.com/home-assistant/home-assistant/pull/16559
|
||||
[#16575]: https://github.com/home-assistant/home-assistant/pull/16575
|
||||
[#16578]: https://github.com/home-assistant/home-assistant/pull/16578
|
||||
[#16589]: https://github.com/home-assistant/home-assistant/pull/16589
|
||||
[#16592]: https://github.com/home-assistant/home-assistant/pull/16592
|
||||
[@9R]: https://github.com/9R
|
||||
[@ASMfreaK]: https://github.com/ASMfreaK
|
||||
[@Cereal2nd]: https://github.com/Cereal2nd
|
||||
[@Danielhiversen]: https://github.com/Danielhiversen
|
||||
[@Joshi425]: https://github.com/Joshi425
|
||||
[@JulianKahnert]: https://github.com/JulianKahnert
|
||||
[@Kane610]: https://github.com/Kane610
|
||||
[@MarcSN311]: https://github.com/MarcSN311
|
||||
[@OverloadUT]: https://github.com/OverloadUT
|
||||
[@PaulAnnekov]: https://github.com/PaulAnnekov
|
||||
[@PhracturedBlue]: https://github.com/PhracturedBlue
|
||||
[@ReneNulschDE]: https://github.com/ReneNulschDE
|
||||
[@amelchio]: https://github.com/amelchio
|
||||
[@aronsky]: https://github.com/aronsky
|
||||
[@awarecan]: https://github.com/awarecan
|
||||
[@bachya]: https://github.com/bachya
|
||||
[@balloob]: https://github.com/balloob
|
||||
[@bieniu]: https://github.com/bieniu
|
||||
[@cgtobi]: https://github.com/cgtobi
|
||||
[@cpw]: https://github.com/cpw
|
||||
[@danielperna84]: https://github.com/danielperna84
|
||||
[@dgomes]: https://github.com/dgomes
|
||||
[@djm300]: https://github.com/djm300
|
||||
[@domwillcode]: https://github.com/domwillcode
|
||||
[@endor-force]: https://github.com/endor-force
|
||||
[@exxamalte]: https://github.com/exxamalte
|
||||
[@fabaff]: https://github.com/fabaff
|
||||
[@flo-wer]: https://github.com/flo-wer
|
||||
[@frenck]: https://github.com/frenck
|
||||
[@fucm]: https://github.com/fucm
|
||||
[@grea09]: https://github.com/grea09
|
||||
[@htotoo]: https://github.com/htotoo
|
||||
[@ioangogo]: https://github.com/ioangogo
|
||||
[@jesserizzo]: https://github.com/jesserizzo
|
||||
[@kariudo]: https://github.com/kariudo
|
||||
[@kbickar]: https://github.com/kbickar
|
||||
[@lddubeau]: https://github.com/lddubeau
|
||||
[@mtdcr]: https://github.com/mtdcr
|
||||
[@mvn23]: https://github.com/mvn23
|
||||
[@nudded]: https://github.com/nudded
|
||||
[@phil65]: https://github.com/phil65
|
||||
[@pnbruckner]: https://github.com/pnbruckner
|
||||
[@pszafer]: https://github.com/pszafer
|
||||
[@pvizeli]: https://github.com/pvizeli
|
||||
[@rcloran]: https://github.com/rcloran
|
||||
[@rohankapoorcom]: https://github.com/rohankapoorcom
|
||||
[@rytilahti]: https://github.com/rytilahti
|
||||
[@schmittx]: https://github.com/schmittx
|
||||
[@scop]: https://github.com/scop
|
||||
[@smurfix]: https://github.com/smurfix
|
||||
[@tadly]: https://github.com/tadly
|
||||
[@tamasv]: https://github.com/tamasv
|
||||
[@teharris1]: https://github.com/teharris1
|
||||
[@thomasdelaet]: https://github.com/thomasdelaet
|
||||
[@thomaslian]: https://github.com/thomaslian
|
||||
[@tschmidty69]: https://github.com/tschmidty69
|
||||
[@tsvi]: https://github.com/tsvi
|
||||
[@vikramgorla]: https://github.com/vikramgorla
|
||||
[@vrih]: https://github.com/vrih
|
||||
[@zellux]: https://github.com/zellux
|
||||
[@zoe1337]: https://github.com/zoe1337
|
||||
[alarm_control_panel.yale_smart_alarm docs]: /components/alarm_control_panel.yale_smart_alarm/
|
||||
[arlo docs]: /components/arlo/
|
||||
[asterisk_mbox docs]: /components/asterisk_mbox/
|
||||
[auth docs]: /components/auth/
|
||||
[automation docs]: /components/automation/
|
||||
[automation.event docs]: /docs/automation/trigger/#event-trigger
|
||||
[automation.homeassistant docs]: /docs/automation/trigger/#home-assistant-trigger
|
||||
[automation.numeric_state docs]: /docs/automation/trigger/#numeric-state-trigger
|
||||
[automation.state docs]: /docs/automation/trigger/#state-trigger
|
||||
[automation.template docs]: /docs/automation/trigger/#template-trigger
|
||||
[automation.zone docs]: /docs/automation/trigger/#zone-trigger
|
||||
[binary_sensor.deconz docs]: /components/binary_sensor.deconz/
|
||||
[binary_sensor.openuv docs]: /components/binary_sensor.openuv/
|
||||
[camera docs]: /components/camera/
|
||||
[camera.proxy docs]: /components/camera.proxy/
|
||||
[camera.push docs]: /components/camera.push/
|
||||
[climate.generic_thermostat docs]: /components/climate.generic_thermostat/
|
||||
[climate.nest docs]: /components/climate.nest/
|
||||
[climate.opentherm_gw docs]: /components/climate.opentherm_gw/
|
||||
[climate.radiotherm docs]: /components/climate.radiotherm/
|
||||
[config docs]: /components/config/
|
||||
[cover.insteon docs]: /components/cover.insteon/
|
||||
[cover.mqtt docs]: /components/cover.mqtt/
|
||||
[cover.myq docs]: /components/cover.myq/
|
||||
[cover.rflink docs]: /components/cover.rflink/
|
||||
[deconz docs]: /components/deconz/
|
||||
[device_tracker docs]: /components/device_tracker/
|
||||
[feedreader docs]: /components/feedreader/
|
||||
[geo_location docs]: /components/geo_location/
|
||||
[habitica docs]: /components/habitica/
|
||||
[hangouts docs]: /components/hangouts/
|
||||
[homematic docs]: /components/homematic/
|
||||
[hue docs]: /components/hue/
|
||||
[insteon docs]: /components/insteon/
|
||||
[light.deconz docs]: /components/light.deconz/
|
||||
[light.hue docs]: /components/light.hue/
|
||||
[light.mqtt docs]: /components/light.mqtt/
|
||||
[light.tplink docs]: /components/light.tplink/
|
||||
[media_extractor docs]: /components/media_extractor/
|
||||
[media_player.cast docs]: /components/media_player.cast/
|
||||
[media_player.kodi docs]: /components/media_player.kodi/
|
||||
[media_player.onkyo docs]: /components/media_player.onkyo/
|
||||
[media_player.songpal docs]: /components/media_player.songpal/
|
||||
[media_player.sonos docs]: /components/media_player.sonos/
|
||||
[media_player.webostv docs]: /components/media_player.webostv/
|
||||
[media_player.yamaha docs]: /components/media_player.yamaha/
|
||||
[mqtt docs]: /components/mqtt/
|
||||
[netatmo docs]: /components/netatmo/
|
||||
[notify docs]: /components/notify/
|
||||
[openuv docs]: /components/openuv/
|
||||
[rfxtrx docs]: /components/rfxtrx/
|
||||
[scene.deconz docs]: /components/scene.deconz/
|
||||
[script docs]: /components/script/
|
||||
[sensor.alpha_vantage docs]: /components/sensor.alpha_vantage/
|
||||
[sensor.apcupsd docs]: /components/sensor.apcupsd/
|
||||
[sensor.darksky docs]: /components/sensor.darksky/
|
||||
[sensor.deconz docs]: /components/sensor.deconz/
|
||||
[sensor.dht docs]: /components/sensor.dht/
|
||||
[sensor.dnsip docs]: /components/sensor.dnsip/
|
||||
[sensor.enphase_envoy docs]: /components/sensor.enphase_envoy/
|
||||
[sensor.geizhals docs]: /components/sensor.geizhals/
|
||||
[sensor.habitica docs]: /components/sensor.habitica/
|
||||
[sensor.lastfm docs]: /components/sensor.lastfm/
|
||||
[sensor.miflora docs]: /components/sensor.miflora/
|
||||
[sensor.mvglive docs]: /components/sensor.mvglive/
|
||||
[sensor.netatmo docs]: /components/sensor.netatmo/
|
||||
[sensor.netgear_lte docs]: /components/sensor.netgear_lte/
|
||||
[sensor.openuv docs]: /components/sensor.openuv/
|
||||
[sensor.qnap docs]: /components/sensor.qnap/
|
||||
[sensor.sense docs]: /components/sensor.sense/
|
||||
[sensor.shodan docs]: /components/sensor.shodan/
|
||||
[sensor.snmp docs]: /components/sensor.snmp/
|
||||
[sensor.sql docs]: /components/sensor.sql/
|
||||
[sensor.statistics docs]: /components/sensor.statistics/
|
||||
[sensor.systemmonitor docs]: /components/sensor.systemmonitor/
|
||||
[sensor.tahoma docs]: /components/sensor.tahoma/
|
||||
[sensor.tibber docs]: /components/sensor.tibber/
|
||||
[sensor.trafikverket_weatherstation docs]: /components/sensor.trafikverket_weatherstation/
|
||||
[sensor.twitch docs]: /components/sensor.twitch/
|
||||
[sensor.velbus docs]: /components/sensor.velbus/
|
||||
[sensor.volkszaehler docs]: /components/sensor.volkszaehler/
|
||||
[sensor.waze_travel_time docs]: /components/sensor.waze_travel_time/
|
||||
[snips docs]: /components/snips/
|
||||
[switch.deconz docs]: /components/switch.deconz/
|
||||
[switch.dlink docs]: /components/switch.dlink/
|
||||
[switch.snmp docs]: /components/switch.snmp/
|
||||
[switch.switchbot docs]: /components/switch.switchbot/
|
||||
[switch.switchmate docs]: /components/switch.switchmate/
|
||||
[switch.tahoma docs]: /components/switch.tahoma/
|
||||
[switch.tplink docs]: /components/switch.tplink/
|
||||
[tahoma docs]: /components/tahoma/
|
||||
[telegram_bot docs]: /components/telegram_bot/
|
||||
[tts docs]: /components/tts/
|
||||
[upnp docs]: /components/upnp/
|
||||
[vacuum docs]: /components/vacuum/
|
||||
[vacuum.xiaomi_miio docs]: /components/vacuum.xiaomi_miio/
|
||||
[velbus docs]: /components/velbus/
|
||||
[websocket_api docs]: /components/websocket_api/
|
||||
[zha docs]: /components/zha/
|
||||
[zoneminder docs]: /components/zoneminder/
|
BIN
source/images/blog/2018-09-release-0.78/components.png
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
source/images/screenshots/habitica_new_task.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
source/images/supported_brands/habitica.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
source/images/supported_brands/opentherm.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
source/images/supported_brands/switchbot.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
source/images/supported_brands/switchmate-logo-rgb.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
source/images/supported_brands/volkszaehler.png
Normal file
After Width: | Height: | Size: 1.5 KiB |