mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-22 16:56:50 +00:00
- Merged upstream
- Added some improvements to the google assistant howto
This commit is contained in:
commit
19ed7ddea1
@ -1 +1 @@
|
||||
2.4.1
|
||||
2.4.3
|
||||
|
@ -15,6 +15,7 @@
|
||||
<meta name="HandheldFriendly" content="True">
|
||||
<meta name="MobileOptimized" content="320">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="theme-color" content="#038FC7">
|
||||
|
||||
{% capture canonical %}{{ site.url }}{% if site.permalink contains '.html' %}{{ page.url }}{% else %}{{ page.url | remove:'index.html' | strip_slash }}{% endif %}{% endcapture %}
|
||||
<link rel="canonical" href="{{ canonical }}">
|
||||
|
@ -68,8 +68,8 @@ GEM
|
||||
method_source (~> 0.8.1)
|
||||
slop (~> 3.4)
|
||||
public_suffix (3.0.0)
|
||||
rack (1.6.8)
|
||||
rack-protection (1.5.3)
|
||||
rack (1.6.9)
|
||||
rack-protection (1.5.5)
|
||||
rack
|
||||
rake (10.5.0)
|
||||
rb-fsevent (0.10.2)
|
||||
|
7
Rakefile
7
Rakefile
@ -60,6 +60,13 @@ task :generate do
|
||||
abort("Generating CSS failed") unless success
|
||||
success = system "jekyll build"
|
||||
abort("Generating site failed") unless success
|
||||
if ENV["CONTEXT"] != 'production'
|
||||
File.open("#{public_dir}robots.txt", 'w') do |f|
|
||||
f.write "User-agent: *\n"
|
||||
f.write "Disallow: /\n"
|
||||
end
|
||||
end
|
||||
public_dir
|
||||
end
|
||||
|
||||
desc "Watch the site and regenerate when it changes"
|
||||
|
@ -139,14 +139,14 @@ social:
|
||||
|
||||
# Home Assistant release details
|
||||
current_major_version: 0
|
||||
current_minor_version: 64
|
||||
current_patch_version: 0
|
||||
date_released: 2018-02-26
|
||||
current_minor_version: 65
|
||||
current_patch_version: 5
|
||||
date_released: 2018-03-14
|
||||
|
||||
# Either # or the anchor link to latest release notes in the blog post.
|
||||
# Must be prefixed with a # and have double quotes around it.
|
||||
# Major release:
|
||||
patch_version_notes: "#release-0641---february-27"
|
||||
patch_version_notes: "#release-0655---march-14"
|
||||
# Minor release (Example #release-0431---april-25):
|
||||
|
||||
# Date we moved to Discourse for comments
|
||||
|
@ -11,10 +11,6 @@ footer: true
|
||||
|
||||
Setup and manage a [Dnsmasq](http://thekelleys.org.uk/dnsmasq/doc.html) DNS server. This allows you to manipulate DNS requests. For example, you can have your Home Assistant domain resolve with an internal address inside your network.
|
||||
|
||||
<p class='note info'>
|
||||
`interface` options are for resinos based installation. On other system you can set it to `""`, for listen on every interface.
|
||||
</p>
|
||||
|
||||
```json
|
||||
{
|
||||
"defaults": ["8.8.8.8", "8.8.4.4"],
|
||||
@ -23,8 +19,7 @@ Setup and manage a [Dnsmasq](http://thekelleys.org.uk/dnsmasq/doc.html) DNS serv
|
||||
],
|
||||
"hosts": [
|
||||
{"host": "home.mydomain.io", "ip": "192.168.1.10"}
|
||||
],
|
||||
"interface": "eth1"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
@ -33,4 +28,3 @@ Configuration variables:
|
||||
- **defaults** (*Required*): A list of DNS servers to forward default requests to.
|
||||
- **forwards** (*Optional*): A list of domains that will forward to a specific server.
|
||||
- **hosts** (*Optional*): A list of hosts to resolve statically.
|
||||
- **interface** (*Optional*): If an interface is set, it listens only on this interface. Needs to be set for ResinOS. Normally is `eth0` for ethernet wired connection and `wlan0` for wireless connection.
|
||||
|
@ -14,7 +14,7 @@ featured: false
|
||||
You should not use this if you are also using the [DuckDNS add-on]. The DuckDNS add-on has integrated Let's Encrypt support.
|
||||
</p>
|
||||
|
||||
Setup and manage a [Let's Encrypt](https://letsencrypt.org/) certificate. This addon will create a certificate on the first run and will auto-renew if the certificate is within 30 days of expiration.
|
||||
Setup and manage a [Let's Encrypt](https://letsencrypt.org/) certificate. This addon will create a certificate on the first run and will auto-renew if the certificate is within 30 days of expiration. This add-on uses port 80 to verify the certificate request. You will need to stop all other add-ons that also use this port.
|
||||
|
||||
```json
|
||||
{
|
||||
|
@ -15,13 +15,23 @@ In the `http` section of the `configuration.yaml` file remove `ssl_certificate`
|
||||
|
||||
```json
|
||||
{
|
||||
"domain": "home.example.com"
|
||||
"domain": "home.example.com",
|
||||
"certfile": "fullchain.pem",
|
||||
"keyfile": "privkey.pem",
|
||||
"customize": {
|
||||
"active": false,
|
||||
"default": "nginx_proxy_default*.conf",
|
||||
"servers": "nginx_proxy/*.conf"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **domain** (*Required*): Domain they will proxy run with it.
|
||||
- **certfile** (*Required*): Certificate file to use in the /ssl dir.
|
||||
- **keyfile** (*Required*): Private key file to use in the /ssl dir.
|
||||
- **customize** (*Optional*): If true, additional NGINX configuration files for the default server and additional servers are read from files in the /share dir specified by the `default` and `servers` variables.
|
||||
|
||||
<p class='note'>
|
||||
It is possible to deactivate port 80 if you need this for things like `emulate_hue`. Remove the host port from Network option of this add-on.
|
||||
|
@ -12,57 +12,5 @@ ha_release: 0.51
|
||||
ha_category: Alarm
|
||||
---
|
||||
|
||||
The `egardia` platform enables the ability to control an [Egardia](http://egardia.com/)/[Woonveilig](http://woonveilig.nl) control panel. These alarm panels are known under different brand names across the world, including Woonveilig in the Netherlands. This was tested on the GATE-01, GATE-02 and GATE-03 versions of the Egardia/Woonveilig platform.
|
||||
|
||||
You will need to know the IP of your alarm panel on your local network. Test if you can login to the panel by browsing to the IP address and log in using your Egardia/Woonveilig account.
|
||||
|
||||
To enable the integration with your alarm panel, add the following lines to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
alarm_control_panel:
|
||||
- platform: egardia
|
||||
host: YOUR_HOST
|
||||
username: YOUR_USERNAME
|
||||
password: YOUR_PASSWORD
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **host** (*Required*): The local IP address of the Egardia/Woonveilig alarm panel.
|
||||
- **username** (*Required*): Username for the Egardia/Woonveilig account.
|
||||
- **password** (*Required*): Password for Egardia/Woonveilig account.
|
||||
- **version** (*Optional*): The version of the Egardia system. `GATE-01`, `GATE-02` and `GATE-03` are currently supported. Defaults to `GATE-01`.
|
||||
- **port** (*Optional*): The port of the alarm panel. Defaults to 80.
|
||||
- **name** (*Optional*): Name to use for the alarm panel. Defaults to `Egardia`.
|
||||
- **report_server_enabled** (*Optional*): Enable reporting by server. Defaults to `False`.
|
||||
- **report_server_port** (*Optional*): Port of the Egardia server. Defaults to 52010.
|
||||
- **report_server_codes** list (*Optional*): List of codes for the different states.
|
||||
|
||||
Note that this basic configuration will only enable you to read the armed/armed away/disarmed status of your alarm and will **not** update the status if the alarm is triggered. This is because of how Egardia built their system. The alarm triggers normally go through their servers.
|
||||
You can change this, however, using the following procedure. This is a more advanced configuration.
|
||||
|
||||
1. Log in into your alarm system's control panel. You will need to access http://[IP of your control panel]. You know this already since you need it in the basic configuration from above. Log in to the control panel with your Egardia/Woonveilig username and password.
|
||||
1. Once logged in, go to *System Settings*, *Report* and change the Server Address for your primary server to the IP or hostname of your Home Assistant machine. You can leave the port number set to 52010 or change it to anything you like. **Make sure to change the settings of the primary server otherwise the messages will not come through. Note that this will limit (or fully stop) the number of alarm messages you will get through Egardia's / Woonveilig services.** Maybe, that is just what you want. Make sure to save your settings by selecting 'OK'.
|
||||
1. On your Home Assistant machine run `$ sudo python3 egardiaserver.py`. Refer to the [python-egardia repository](https://github.com/jeroenterheerdt/python-egardia) for detailed documentation on parameters. This will receive status codes from your alarm control panel and display them. You will need the codes to include in your configuration.yaml. Make sure to change the status of your alarm to all states (disarm, arm, home) by all means possible (all users, remotes, web login, app) as well as trigger the alarm in all ways possible to get 100% coverage. **Before triggering the alarm it might be good to disable the siren temporarily (can be done in Panel Settings).**
|
||||
1. Once you have the codes, update your `configuration.yaml`:
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
alarm_control_panel:
|
||||
- platform: egardia
|
||||
host: YOUR_HOST
|
||||
username: YOUR_USERNAME
|
||||
password: YOUR_PASSWORD
|
||||
report_server_enabled: True
|
||||
report_server_port: PORT_OF_EGARDIASERVER (optional, defaults to 52010)
|
||||
report_server_codes:
|
||||
arm: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX
|
||||
disarm: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX
|
||||
home: XXXXXXXXXXXXXXXX
|
||||
triggered: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX
|
||||
ignore: XXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
Note that for *triggered*, *arm* and *disarm* multiple codes can be entered since each sensor triggers with a different code and each user of the system has its own arm and disarm codes. Also note that your system will do regular system checks which will be reported as well. Since Home Assistant provides no way of handling them properly, you can enter those codes as *ignore* (again, multiple codes can be used here). The egardia component will ignore these codes and continue returning the old status if it receives any of the codes that are listed as ignore. This is useful for example when you have armed your alarm at night: normally a system check will occur at least once during the night and if that code is not specified anywhere Home Assistant will set the status of the alarm to its default, which is unarmed. This is in fact wrong. Listing the code as ignore changes this behavior and Home Assistant will continue to show the status the alarm is in (disarm, arm, home, triggered) even when system checks occur.
|
||||
|
||||
5. Test your setup and enjoy. The component will update if the alarm status changes, including triggers. You can use this to build your own automations and send notifications as you wish. *Note*: previous versions required a separate egardiaserver to be set up. This is no longer necessary and corresponding system services can be removed (using systemctl).
|
||||
The `egardia` platform allows you to integrate your [Egardia](http://www.egardia.com)/[Woonveilig](http://www.woonveilig.nl) alarm control panel in Home Assistant.
|
||||
You will need to set up your [Egardia hub](/components/egardia/).
|
||||
|
20
source/_components/binary_sensor.bmw_connected_drive.markdown
Executable file
20
source/_components/binary_sensor.bmw_connected_drive.markdown
Executable file
@ -0,0 +1,20 @@
|
||||
---
|
||||
layout: page
|
||||
title: "BMW connected drive"
|
||||
description: "Instructions on how to setup your BMW connected drive account with Home Assistant."
|
||||
date: 2018-02-22 23:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: bmw.png
|
||||
ha_category: Binary Sensor
|
||||
ha_release: 0.66
|
||||
---
|
||||
|
||||
|
||||
The `bmw_connected_drive` platform allows you to import data on your BMW into Home Assistant.
|
||||
|
||||
The binary sensors will be automatically configured if 'bmw_connected_drive' component is configured.
|
||||
|
||||
For more configuration information see the [bmw_connected_drive component](/components/bmw_connected_drive/) documentation.
|
19
source/_components/binary_sensor.egardia.markdown
Normal file
19
source/_components/binary_sensor.egardia.markdown
Normal file
@ -0,0 +1,19 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Egardia Binary Sensor"
|
||||
description: "Instructions how to integrate Egardia / Woonveilig binary sensors into Home Assistant."
|
||||
date: 2018-03-02 09:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: egardia.png
|
||||
ha_release: 0.65
|
||||
ha_category: Binary Sensor
|
||||
ha_iot_class: "Polling"
|
||||
---
|
||||
|
||||
The `egardia` platform allows you to get data from your [Egardia](http://www.egardia.com)/[Woonveilig](http://www.woonveilig.nl) binary sensors from within Home Assistant.
|
||||
Currently only door contacts are supported. IR sensors are not supported and will probably never be since their status cannot be read outside of the alarm control panel. Smoke sensors and others might be added but currently are not supported.
|
||||
|
||||
You will need to set up your [Egardia hub](/components/egardia/).
|
@ -17,6 +17,10 @@ The Hikvision Binary Sensor is a platform that parses the event stream of a [Hik
|
||||
|
||||
The platform will automatically add all sensors to Home Assistant that are configured within the camera/nvr interface to "Notify the surveillance center" as a trigger. If you would like to hide a sensor type you can do so by either unchecking "Notify the surveillance center" in the camera configuration or by using the "ignored" customize option detailed below.
|
||||
|
||||
<p class='note'>
|
||||
In order for the sensors to work the hikvision user must have the 'Remote: Notify Surveillance Center / Trigger Alarm Output' permission which can be enabled from the user managment section of the web interace. Also the 'WEB Authentication' needs to be set to 'digest/basic' in the security / authentication section.
|
||||
</p>
|
||||
|
||||
For example, if you configure a camera with the name "Front Porch" that has motion detection and line crossing events enabled to notify the surveillance center the following binary sensors will be added to Home Assistant:
|
||||
|
||||
```
|
||||
|
@ -23,7 +23,7 @@ binary_sensor:
|
||||
- platform: trend
|
||||
sensors:
|
||||
solar_angle:
|
||||
entity_id: sun.sun
|
||||
entity_id: sensor.cpu_speed
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
@ -59,7 +59,7 @@ binary_sensor:
|
||||
- platform: trend
|
||||
sensors:
|
||||
sun_rising:
|
||||
entity_id: sun.sun
|
||||
entity_id: sensor.cpu_speed
|
||||
```
|
||||
|
||||
This example creates two sensors to indicate whether the temperature is rising or falling at a rate of at least 3 degrees an hour, and collects samples over a two hour period:
|
||||
|
@ -22,8 +22,7 @@ To enable this component in your installation, add the following to your
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
bmw_connected_drive:
|
||||
mycar:
|
||||
name: Car 1
|
||||
name:
|
||||
username: USERNAME_BMW_CONNECTED_DRIVE
|
||||
password: PASSWORD_BMW_CONNECTED_DRIVE
|
||||
country: COUNTRY_BMW_CONNECTED_DRIVE
|
||||
|
@ -13,11 +13,11 @@ ha_release: "0.60"
|
||||
---
|
||||
|
||||
|
||||
The `caldav` platform allows you to connect to your WebDav calendar and generate binary sensors. A different sensor will be created for each individual calendar, or you can specify custom calendars which match a criteria you define (more on that below). These sensors will be `on` if you have an on going event in that calendar or `off` if the event is later in time, or if there is no event at all. The WebDav calendar get updated roughly every 10 minutes.
|
||||
The `caldav` platform allows you to connect to your WebDav calendar and generate binary sensors. A different sensor will be created for each individual calendar, or you can specify custom calendars which match a criteria you define (more on that below). These sensors will be `on` if you have an on going event in that calendar or `off` if the event is later in time, or if there is no event at all. The WebDav calendar get updated roughly every 15 minutes.
|
||||
|
||||
### {% linkable_title Prerequisites %}
|
||||
|
||||
You need to have a CalDav server and eventually credentials for it. This component was tested against [Baikal](http://sabre.io/baikal/) but any component complying with the RFC4791 should work.
|
||||
You need to have a CalDav server and credentials for it. This component was tested against [Baikal](http://sabre.io/baikal/) but any component complying with the RFC4791 should work. [Nextcloud](https://nextcloud.com/) and [Owncloud](https://owncloud.org/) work fine.
|
||||
|
||||
You might need some additional system packages to compile the Python caldav library. On a Debian based system, install them by:
|
||||
|
||||
@ -29,13 +29,51 @@ $ sudo apt-get install libxml2-dev libxslt1-dev zlib1g-dev
|
||||
|
||||
To integrate a WebDav calendar in Home Assistant, add the following section to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry for baikal
|
||||
calendar:
|
||||
- platform: caldav
|
||||
username: john.doe@test.com
|
||||
password: !secret caldav
|
||||
url: https://baikal.my-server.net/cal.php/calendars/john.doe@test.com/default
|
||||
```
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry for nextcloud, calendars will be found automatically
|
||||
calendar:
|
||||
- platform: caldav
|
||||
username: john.doe
|
||||
password: !secret caldav
|
||||
url: https://nextcloud.example.com/remote.php/dav
|
||||
```
|
||||
|
||||
This example will generate default binary sensors for each calendar you have in your account. Those calendars will be `on` when there is an ongoing event and `off` if not. Events that last a whole day are ignored in those calendars. You have to setup custom calendars in order to take them into account or for advanced event filtering.
|
||||
|
||||
|
||||
### {% linkable_title Custom calendars %}
|
||||
|
||||
You have the possibility to create multiple binary sensors for events that match certain conditions.
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
calendar:
|
||||
- platform: caldav
|
||||
username: john.doe@test.com
|
||||
password: !secret caldav
|
||||
url: https://baikal.my-server.net/cal.php/calendars/john.doe@test.com/default
|
||||
custom_calendars:
|
||||
- name: 'HomeOffice'
|
||||
calendar: 'Agenda'
|
||||
search: 'HomeOffice'
|
||||
- name: 'WarmupFlat'
|
||||
calendar: 'Agenda'
|
||||
search: 'Warmup'
|
||||
```
|
||||
|
||||
This will create two binary sensors for the calendar name Agenda: "HomeOffice" and "WarmupFlat". Those sensors will be `on` if there is an ongoing event matching the regular expression specified in `search`. In custom calendars, events that last a whole day are taken into account.
|
||||
|
||||
Please note that when you configure custom calendars, the default ones are not created anymore.
|
||||
|
||||
{% configuration %}
|
||||
url:
|
||||
required: true
|
||||
@ -51,7 +89,7 @@ password:
|
||||
type: string
|
||||
calendars:
|
||||
required: false
|
||||
description: List of the calendars to filter. Empty or absent means no filtering.
|
||||
description: List of the calendars to filter. Empty or absent means no filtering, i.e. all calendars will be added.
|
||||
type: list
|
||||
custom_calendars:
|
||||
required: false
|
||||
@ -68,7 +106,7 @@ custom_calendars:
|
||||
type: string
|
||||
search:
|
||||
required: true
|
||||
pending_charges: Regular expression for filtering the events
|
||||
description: Regular expression for filtering the events based on the content of their summary, description or location.
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
||||
@ -83,17 +121,49 @@ custom_calendars:
|
||||
- **start_time**: Start time of event.
|
||||
- **end_time**: End time of event.
|
||||
|
||||
### {% linkable_title Sensor attributes %}
|
||||
### {% linkable_title Examples %}
|
||||
|
||||
All events of the calendars "private" and "holidays". Note that all day events are not included.
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
# Example configuration.yaml entry for nextcloud
|
||||
calendar:
|
||||
- platform: caldav
|
||||
url: https://baikal.my-server.net/cal.php/calendars/john.doe@test.com/default
|
||||
username: john.doe@test.com
|
||||
url: https://nextcloud.example.com/remote.php/dav
|
||||
username: 'me'
|
||||
password: !secret caldav
|
||||
calendars:
|
||||
- private
|
||||
- holidays
|
||||
```
|
||||
|
||||
Full example with automation to wake up to music if not holiday. Prerequisite: you have a calendar named "work" where you create calendar entries containing "Holiday".
|
||||
|
||||
Custom calendar names are built from the main calendar + name of the custom calendar.
|
||||
|
||||
```yaml
|
||||
# configuration.yaml
|
||||
calendar:
|
||||
- platform: caldav
|
||||
url: https://nextcloud.example.com/remote.php/dav
|
||||
username: 'me'
|
||||
password: !secret caldav
|
||||
custom_calendars:
|
||||
- name: 'HomeOffice'
|
||||
calendar: 'Agenda'
|
||||
search: 'HomeOffice'
|
||||
- name: holiday
|
||||
calendar: work
|
||||
search: 'Holiday'
|
||||
|
||||
# automations.yaml
|
||||
- id: wakeup
|
||||
alias: worktime wakeup
|
||||
trigger:
|
||||
platform: time
|
||||
at: 06:40:00
|
||||
action:
|
||||
- service: media_player.media_play
|
||||
entity_id: media_player.bedroom
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: calendar.work_holiday
|
||||
state: 'off'
|
||||
|
||||
```
|
||||
|
@ -30,9 +30,12 @@ Configuration variables:
|
||||
- **name** (*Optional*): Override the name of your camera.
|
||||
- **username** (*Optional*): The username for the camera.
|
||||
- **password** (*Optional*): The password for the camera.
|
||||
- **port** (*Optional*): The port for the camera. This defaults to 5000
|
||||
- **port** (*Optional*): The port for the camera. This defaults to 5000.
|
||||
- **profile** (*Optional*): Video profile that will be used to obtain the stream. This defaults to 0. More details below.
|
||||
- **extra_arguments** (*Optional*): Extra options to pass to `ffmpeg`, e.g. image quality or video filter options. More details in [FFmpeg component](/components/ffmpeg).
|
||||
|
||||
Most of the Onvif cameras support more than one audio/video Profile. Each profile provides different image quality. Usually, the first profile has the highest quality, and it is the profile used by default. However, you may want to use a lower quality image. One of the reasons may be that your hardware isn't able to render the highest quality image in real-time - especially when running on Raspberry Pi. Therefore you can choose which profile do you want to use by setting in config `profile` variable.
|
||||
|
||||
### {% linkable_title Service `camera.onvif_ptz` %}
|
||||
|
||||
If your ONVIF camera supports PTZ, you will be able to pan, tilt or zoom your camera.
|
||||
|
90
source/_components/camera.proxy.markdown
Normal file
90
source/_components/camera.proxy.markdown
Normal file
@ -0,0 +1,90 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Camera Proxy"
|
||||
description: "Instructions how to integrate a camera proxy within Home Assistant."
|
||||
date: 2018-03-08 19:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
ha_category: Camera
|
||||
ha_release: 0.65
|
||||
---
|
||||
|
||||
|
||||
The `proxy` camera platform allows you to pass another camera's output through post-processing routines and generate a new camera with the post-processed output.
|
||||
|
||||
The current post-processing supports resizing the image/MJPEG as well as limiting the maximum refresh rate.
|
||||
|
||||
The current proxy capabilities are intended to reduce the camera bandwidth for slower internet connections.
|
||||
|
||||
To enable this camera in your installation, you must first have an existing working camera configured in Home Assistant. Next, add the following to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
camera:
|
||||
- platform: proxy
|
||||
entity_id: camera.<existingcamera>
|
||||
max_stream_width: 360
|
||||
max_image_width: 720
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
entity_id:
|
||||
description: The ID of another Home Assistant camera to post-process.
|
||||
required: true
|
||||
type: string
|
||||
name:
|
||||
description: This parameter allows you to override the name of your camera.
|
||||
required: false
|
||||
type: string
|
||||
max_image_width:
|
||||
description: The maximum width of single images taken from the camera (aspect ratio will be maintained).
|
||||
required: false
|
||||
type: integer
|
||||
max_stream_width:
|
||||
description: The maximum width of the MJPEG stream from the camera (aspect ratio will be maintained).
|
||||
required: false
|
||||
type: integer
|
||||
image_quality:
|
||||
description: The quality level used for resulting JPEG for snapshots.
|
||||
required: false
|
||||
type: integer
|
||||
default: 75
|
||||
stream_quality:
|
||||
description: The quality level used for resulting MJPEG streams.
|
||||
required: false
|
||||
type: integer
|
||||
default: 75
|
||||
image_refresh_rate:
|
||||
description: The minimum time in seconds between generating successive image snapshots.
|
||||
required: false
|
||||
type: float
|
||||
force_resize:
|
||||
description: Resize the image even if the resulting image would take up more bandwidth than the original.
|
||||
required: false
|
||||
type: boolean
|
||||
cache_images:
|
||||
description: Preserve the last image and re-send in the case the camera is not responding.
|
||||
required: false
|
||||
type: boolean
|
||||
{% endconfiguration %}
|
||||
|
||||
|
||||
## {% linkable_title Examples %}
|
||||
|
||||
Example of using a Camera proxy along with a Foscam camera:
|
||||
|
||||
```yaml
|
||||
camera:
|
||||
- platform: foscam
|
||||
ip: 192.168.1.10
|
||||
username: foscam_camera
|
||||
password: camera_password
|
||||
name: mycamera
|
||||
- platform: proxy
|
||||
entity_id: camera.mycamera
|
||||
max_stream_width: 360
|
||||
max_image_width: 480
|
||||
image_refresh_rate: 5.0
|
||||
```
|
@ -46,12 +46,12 @@ automation:
|
||||
at: "20:00:00"
|
||||
action:
|
||||
- service: climate.set_operation_mode
|
||||
entity_id: climate.remotec_zxt120_heating_1_id
|
||||
data:
|
||||
entity_id: climate.remotec_zxt120_heating_1_id
|
||||
operation_mode: Heat
|
||||
- service: climate.set_temperature
|
||||
entity_id: climate.remotec_zxt120_heating_1_39
|
||||
data:
|
||||
entity_id: climate.remotec_zxt120_heating_1_39
|
||||
temperature: 24
|
||||
```
|
||||
|
||||
@ -65,8 +65,8 @@ automation:
|
||||
at: "21:00:00"
|
||||
action:
|
||||
- service: climate.set_operation_mode
|
||||
entity_id: climate.remotec_zxt120_heating_1_id
|
||||
data:
|
||||
entity_id: climate.remotec_zxt120_heating_1_id
|
||||
operation_mode: 'Off'
|
||||
```
|
||||
|
||||
|
43
source/_components/cover.group.markdown
Normal file
43
source/_components/cover.group.markdown
Normal file
@ -0,0 +1,43 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Cover Group"
|
||||
description: "Instructions how to setup grouped covers in Home Assistant."
|
||||
date: 2018-02-11 10:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
ha_category: Cover
|
||||
ha_release: 0.66
|
||||
ha_iot_class: "Local Push"
|
||||
logo: home-assistant.png
|
||||
---
|
||||
|
||||
The `group` platform can create a cover that combines several cover entities into one.
|
||||
|
||||
To enable `Cover Groups` in your installation, add the following to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
cover:
|
||||
- platform: group
|
||||
entities:
|
||||
- cover.hall_window
|
||||
- cover.living_room_window
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
name:
|
||||
description: Name to use in the frontend.
|
||||
required: false
|
||||
type: string
|
||||
default: "Cover Group"
|
||||
entities:
|
||||
description: List of all cover entities you want to control.
|
||||
required: true
|
||||
type: [string | list]
|
||||
{% endconfiguration %}
|
||||
|
||||
## {% linkable_title Functionality %}
|
||||
|
||||
It works best if you group covers with the same supported features together (like support for `open`/`close`/`stop`/`position`/`tilt controls`), but is not limited to it. In case you have bundled covers with different features together, the controls will only affect those covers that support the actions.
|
@ -32,9 +32,11 @@ deconz:
|
||||
#### {% linkable_title Supported Device types %}
|
||||
|
||||
- [Zigbee Lights](/components/light.deconz/)
|
||||
- [Consumption Sensors](/components/sensor.deconz/)
|
||||
- [Humidity Sensors](/components/sensor.deconz/)
|
||||
- [Light Level Sensors](/components/sensor.deconz/)
|
||||
- [OpenClose Detectors](/components/binary_sensor.deconz/)
|
||||
- [Power Sensors](/components/sensor.deconz/)
|
||||
- [Presence Detectors](/components/binary_sensor.deconz/)
|
||||
- [Pressure Sensors](/components/sensor.deconz/)
|
||||
- [Switches (Remote Controls)](/components/sensor.deconz/)
|
||||
|
@ -39,7 +39,7 @@ After the launch, go to **General Options**. Enable **Start on bootup** and **St
|
||||
GPSLogger Settings
|
||||
</p>
|
||||
|
||||
Go to **Logging details** and disable **Log to GPX**. **Log to KML**, and **Log to NMEA**. Enable **Log to custom URL**.
|
||||
Go to **Logging details** and disable **Log to GPX**, **Log to KML** and **Log to NMEA**. Enable **Log to custom URL**.
|
||||
|
||||
<p class='img'>
|
||||
<img width='300' src='/images/components/gpslogger/logging-details.png' />
|
||||
|
@ -79,6 +79,7 @@ Valid values for ignore are:
|
||||
* `sabnzbd`: SABnzbd downloader
|
||||
* `samsung_tv`: Samsung TVs
|
||||
* `sonos`: Sonos speakers
|
||||
* `songpal` : Songpal
|
||||
* `tellduslive`: Telldus Live
|
||||
* `wink`: Wink Hub
|
||||
* `yamaha`: Yamaha media player
|
||||
|
@ -42,3 +42,29 @@ This will download the file from the given URL.
|
||||
| `subdir` | yes | Download into subdirectory of **download_dir** |
|
||||
| `filename` | yes | Determine the filename. |
|
||||
| `overwrite` | yes | Whether to overwrite the file or not, defaults to `false`. |
|
||||
|
||||
### {% linkable_title Download Status Events %}
|
||||
|
||||
When a download finished successfully, Home Assistant will emit a 'downloader_download_completed' event to the event bus which you can use to write automations against.
|
||||
In case download failed another event 'downloader_download_failed' is emitted to indicate that the download did not complete successfully.
|
||||
|
||||
Along with the event the following payload parameters are available:
|
||||
|
||||
| Parameter | Description |
|
||||
|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `url` | The `url` that was requested.|
|
||||
| `filename` | The `name` of the file that was being downloaded.|
|
||||
|
||||
#### Example Automation:
|
||||
|
||||
```yaml
|
||||
- alias: Download Failed Notification
|
||||
trigger:
|
||||
platform: event
|
||||
event_type: downloader_download_failed
|
||||
action:
|
||||
service: persistent_notification.create
|
||||
data_template:
|
||||
message: "{{trigger.event.data.filename}} download failed"
|
||||
title: "Download Failed"
|
||||
```
|
||||
|
117
source/_components/egardia.markdown
Normal file
117
source/_components/egardia.markdown
Normal file
@ -0,0 +1,117 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Egardia"
|
||||
description: "Instructions how to setup Egardia / Woonveilig within Home Assistant."
|
||||
date: 2018-03-13 09:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
ha_category: Hub
|
||||
ha_release: 0.65
|
||||
logo: egardia.png
|
||||
---
|
||||
|
||||
The `egardia` platform enables the ability to control an [Egardia](http://egardia.com/)/[Woonveilig](http://woonveilig.nl) control panel. These alarm panels are known under different brand names across the world, including Woonveilig in the Netherlands. This was tested on the WL-1716, GATE-01, GATE-02 and GATE-03 versions of the Egardia/Woonveilig platform. Not only will you integrate your alarm control panel, supported sensors (door contacts at this moment) will be added automatically (hidden by default).
|
||||
|
||||
You will need to know the IP of your alarm panel on your local network. Test if you can login to the panel by browsing to the IP address and log in using your Egardia/Woonveilig account.
|
||||
|
||||
## {% linkable_title Basic configuration %}
|
||||
|
||||
To enable the integration with your alarm panel, add the following lines to your `configuration.yaml` file:
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
egardia:
|
||||
host: YOUR_HOST
|
||||
username: YOUR_USERNAME
|
||||
password: YOUR_PASSWORD
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
host:
|
||||
description: The local IP address of the Egardia/Woonveilig alarm panel.
|
||||
required: true
|
||||
type: string
|
||||
username:
|
||||
description: Username for the Egardia/Woonveilig account.
|
||||
required: true
|
||||
type: string
|
||||
password:
|
||||
description: Password for Egardia/Woonveilig account.
|
||||
required: true
|
||||
type: string
|
||||
version:
|
||||
description: The version of the Egardia system. `GATE-01`, `GATE-02` and `GATE-03` are currently supported.
|
||||
required: false
|
||||
type: string
|
||||
default: 'GATE-01'
|
||||
port:
|
||||
description: The port of the alarm panel.
|
||||
required: false
|
||||
type: int
|
||||
default: 80
|
||||
report_server_enabled:
|
||||
description: Enable reporting by server.
|
||||
required: false
|
||||
type: string
|
||||
default: false
|
||||
report_server_port:
|
||||
description: Port of the Egardia server.
|
||||
required: false
|
||||
type: int
|
||||
default: 52010
|
||||
report_server_codes:
|
||||
description: Map of list of codes for the different states.
|
||||
required: false
|
||||
type: map
|
||||
keys:
|
||||
arm:
|
||||
description: List of codes for the 'arm' state.
|
||||
required: false
|
||||
type: list
|
||||
disarm:
|
||||
description: List of codes for the 'disarm' state.
|
||||
required: false
|
||||
type: list
|
||||
armhome:
|
||||
description: List of codes for the 'armhome' state.
|
||||
required: false
|
||||
type: list
|
||||
triggered:
|
||||
description: List of codes for the 'triggered' state.
|
||||
required: false
|
||||
type: list
|
||||
ignore:
|
||||
description: List of codes that will be ignored.
|
||||
required: false
|
||||
type: list
|
||||
{% endconfiguration %}
|
||||
|
||||
Note that this basic configuration will only enable you to read the armed/armed away/disarmed status of your alarm and will **not** update the status if the alarm is triggered. This is because of how Egardia built their system. The alarm triggers normally go through their servers.
|
||||
You can change this, however, using the following procedure. This is a more advanced (and more useful) configuration.
|
||||
|
||||
## {% linkable_title Advanced configuration %}
|
||||
|
||||
1. Log in to your alarm system's control panel. You will need to access http://[IP of your control panel]. You know this already since you need it in the basic configuration from above. Log in to the control panel with your Egardia/Woonveilig username and password.
|
||||
2. Once logged in, go to *System Settings*, *Report* and change the Server Address for your primary server to the IP or hostname of your Home Assistant machine. You can leave the port number set to 52010 or change it to anything you like. **Make sure to change the settings of the primary server otherwise the messages will not come through. Note that this will limit (or fully stop) the number of alarm messages you will get through Egardia's / Woonveilig services.** Maybe, that is just what you want. Make sure to save your settings by selecting 'OK'.
|
||||
3. The Egardia component relies on capturing the status codes that your alarm emits when something happens (status change or trigger). These codes will be unique for every situation - i.e. the code emitted by the alarm when a sensor is triggered is unique to that sensor. Also, if you have multiple users or remotes, each remote has unique codes that are emitted by the alarm when status is changed using that remote or by that user. For the Egardia component to work correctly you will need to capture the codes. To do this, on your Home Assistant machine run `$ sudo python3 egardiaserver.py`. Refer to the [python-egardia repository](https://github.com/jeroenterheerdt/python-egardia) for detailed documentation on parameters. This will receive status codes from your alarm control panel and display them. Record the codes shown as well as the status they relate to (see step 4 below). Make sure to change the status of your alarm to all states (disarm, arm, home) by all means possible (all users, remotes, web login, app) as well as trigger the alarm in all ways possible to get 100% coverage of all the codes the alarm system generates. You will need to run this script once and stop it once you have captured all the possible codes. Also, if you ever add users, remotes or sensors to your alarm system, make sure to re-run the script to capture the extra codes so you can update your configuration (see step 4 below). **For comfort, before triggering the alarm it might be good to disable the siren temporarily (can be done in Panel Settings).**
|
||||
4. Once you have the codes, update your `configuration.yaml`:
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
egardia:
|
||||
host: YOUR_HOST
|
||||
username: YOUR_USERNAME
|
||||
password: YOUR_PASSWORD
|
||||
report_server_enabled: True
|
||||
report_server_port: PORT_OF_EGARDIASERVER (optional, defaults to 52010)
|
||||
report_server_codes:
|
||||
arm: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX
|
||||
disarm: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX
|
||||
armhome: XXXXXXXXXXXXXXXX
|
||||
triggered: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX
|
||||
ignore: XXXXXXXXXXXXXXXX
|
||||
```
|
||||
|
||||
Note that for all code groups (*arm*,*disarm*, etc) multiple codes can be entered since each sensor triggers with a different code and each user of the system has its own arm and disarm codes. Also note that your system will do regular system checks which will be reported as well. Since Home Assistant provides no way of handling them properly, you can enter those codes as *ignore* (again, multiple codes can be used here). The egardia component will ignore these codes and continue returning the old status if it receives any of the codes that are listed as ignore. This is useful for example when you have armed your alarm at night: normally a system check will occur at least once during the night and if that code is not specified anywhere Home Assistant will set the status of the alarm to its default, which is unarmed. This is in fact wrong. Listing the code as ignore changes this behavior and Home Assistant will continue to show the status the alarm is in (disarm, arm, home, triggered) even when system checks occur.
|
||||
|
||||
5. Test your setup and enjoy. The component will update if the alarm status changes, including triggers. You can use this to build your own automations and send notifications as you wish. *Note*: previous versions required a separate egardiaserver to be set up. This is no longer necessary and corresponding system services can be removed (using systemctl).
|
@ -71,6 +71,15 @@ name:
|
||||
|
||||
## {% linkable_title Platform Services %}
|
||||
|
||||
### {% linkable_title Service `fan.set_speed` %}
|
||||
|
||||
Set the fan speed/operation mode.
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
|---------------------------|----------|---------------------------------------------------------------------|
|
||||
| `entity_id` | yes | Only act on a specific air purifier. Else targets all. |
|
||||
| `speed` | no | Fan speed. Valid values are 'Auto', 'Silent', 'Favorite' and 'Idle' |
|
||||
|
||||
### {% linkable_title Service `fan.xiaomi_miio_set_buzzer_on` %}
|
||||
|
||||
Turn the buzzer on.
|
||||
|
@ -41,7 +41,6 @@ google_assistant:
|
||||
aliases:
|
||||
- bright lights
|
||||
- entry lights
|
||||
type: light
|
||||
light.living_room:
|
||||
expose: false
|
||||
room: living room
|
||||
@ -68,7 +67,7 @@ agent_user_id:
|
||||
required: false
|
||||
type: string
|
||||
api_key:
|
||||
description: An API Key generated for the project from [Google Console](https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview) which allows you to update devices without unlinking and relinking an account (see setup below). If not provided then the request_sync service is not exposed.
|
||||
description: An API Key generated for the project from [Google Console](https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview) which allows you to update devices without unlinking and relinking an account (see step 9 below). If not provided then the `google_assistant.request_sync` service is not exposed. It is recommended to set up this configuration key as it also allows the usage of the following command, "Ok Google, sync my devices". Once you have setup this componenet you will need to call this service (or command) each time you add a new device that you wish to control via the Google Assistant integration.
|
||||
required: false
|
||||
type: string
|
||||
expose_by_default:
|
||||
@ -102,10 +101,6 @@ entity_config:
|
||||
description: Aliases that can also be used to refer to this entity
|
||||
required: false
|
||||
type: list
|
||||
type:
|
||||
description: Override how Google Assistant interprets the domain of the entity. For example, set to `light` for a switch entity to have it be handled as a light.
|
||||
required: false
|
||||
type: string
|
||||
room:
|
||||
description: Allows for associating this device to a Room in Google Assistant. This is currently non-functional, but will be enabled in the near future.
|
||||
required: false
|
||||
@ -115,15 +110,16 @@ entity_config:
|
||||
### {% linkable_title Available domains %}
|
||||
Currently, the following domains are available to be used with Google Assistant, listed with their default types:
|
||||
|
||||
- group = switch (on/off)
|
||||
- scene = scene (on)
|
||||
- script = scene (on)
|
||||
- switch = switch (on/off)
|
||||
- fan = switch (on/off)
|
||||
- light = light (on/off/brightness/rgb color/color temp)
|
||||
- cover = switch (on/off/set position (brightness) )
|
||||
- media_player = switch (on/off/set volume (brightness) )
|
||||
- climate = thermostat (temperature setting)
|
||||
- group (on/off)
|
||||
- input boolean (on/off)
|
||||
- scene (on)
|
||||
- script (on)
|
||||
- switch (on/off)
|
||||
- fan (on/off)
|
||||
- light (on/off/brightness/rgb color/color temp)
|
||||
- cover (on/off/set position (via set brightness))
|
||||
- media_player (on/off/set volume (via set brightness))
|
||||
- climate (temperature setting)
|
||||
|
||||
It's very important that you use very long strings for `client_id` and `access_token`. Those are essentially the credentials to your Home Assistant instance. You can generate them with the following command:
|
||||
|
||||
@ -139,7 +135,7 @@ If you're not using Linux, you can use sites such as [this one](https://www.brow
|
||||
a. Add/Import project
|
||||
b. Click on `BUILD` on the `Smart home` card
|
||||
c. Type in your home assistant url: `https://[YOUR HOME ASSISTANT URL:PORT]/api/google_assistant`, replace the `[YOUR HOME ASSISTANT URL:PORT]` with the domain / ip address and the port under which your Home Assistant is reachable.
|
||||
d. Click `Done`
|
||||
d. Click `Done`. Then click on `Overview`, which will lead you to the app details screen.
|
||||
2. You'll need to fill out most of the information on that page, but none of it really matters since you won't be addressing the App directly, only through the Smart Home functionality built into Google Assistant.
|
||||
3. The final item on that page `Account linking` is required for your app to interact with Home Assistant.
|
||||
a. Grant type: `Implicit`
|
||||
@ -159,7 +155,7 @@ If you're not using Linux, you can use sites such as [this one](https://www.brow
|
||||
9. If you want to use the `google_assistant.request_sync` service, to update devices without unlinking and relinking, in Home Assistant, then enable Homegraph API for your project:
|
||||
a. Go to the [cloud console](https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview)
|
||||
b. Select your project and click Enable Homegraph API
|
||||
c. Go to Credentials and select API Key from Create Credentials
|
||||
c. Go to Credentials, which you can find on the left navigation bar under the key icon, and select API Key from Create Credentials
|
||||
d. Note down the generated API Key and use this in the configuration
|
||||
|
||||
### {% linkable_title Troubleshooting the request_sync service %}
|
||||
|
@ -12,7 +12,7 @@ ha_release: 0.64
|
||||
logo: apple-homekit.png
|
||||
---
|
||||
|
||||
The `HomeKit` component allows you to forward entities from Home Assistant to Apple `HomeKit`, so they could be controlled from Apple `Home` app and `Siri`.
|
||||
The `HomeKit` component allows you to forward entities from Home Assistant to Apple `HomeKit`, so they could be controlled from Apple `Home` app and `Siri`. Please make sure that you have read the [considerations](#considerations) listed below to save you some trouble later.
|
||||
|
||||
{% configuration %}
|
||||
homekit:
|
||||
@ -20,18 +20,55 @@ The `HomeKit` component allows you to forward entities from Home Assistant to Ap
|
||||
required: true
|
||||
type: map
|
||||
keys:
|
||||
pincode:
|
||||
description: Pin code required during setup of HomeKit Home Assistant accessory. The format needs to be 'XXX-XX-XXX' where X is a number between 0 and 9.
|
||||
auto_start:
|
||||
description: Flag if the HomeKit Server should start automatically after the Home Assistant Core Setup is done. ([Disable Auto Start](#disable-auto-start))
|
||||
required: false
|
||||
type: string
|
||||
default: '"123-45-678"'
|
||||
type: boolean
|
||||
default: true
|
||||
port:
|
||||
description: Port for the HomeKit extension.
|
||||
required: false
|
||||
type: int
|
||||
default: 51826
|
||||
default: 51827
|
||||
filter:
|
||||
description: Filter entities to available in the `Home` app. ([Configure Filter](#configure-filter))
|
||||
required: false
|
||||
type: map
|
||||
keys:
|
||||
include_domains:
|
||||
description: Domains to be included.
|
||||
required: false
|
||||
type: list
|
||||
include_entities:
|
||||
description: Entities to be included.
|
||||
required: false
|
||||
type: list
|
||||
exclude_domains:
|
||||
description: Domains to be excluded.
|
||||
required: false
|
||||
type: list
|
||||
exclude_entities:
|
||||
description: Entities to be excluded.
|
||||
required: false
|
||||
type: list
|
||||
entity_config:
|
||||
description: Configuration for specific entities. All subordinate keys are the corresponding entity ids to the domains, e.g. `alarm_control_panel.alarm`.
|
||||
required: false
|
||||
type: map
|
||||
keys:
|
||||
alarm_control_panel:
|
||||
description: Additional options for `alarm_control_panel` entities.
|
||||
required: false
|
||||
type: map
|
||||
keys:
|
||||
code:
|
||||
description: Code to arm or disarm the alarm in the frontend.
|
||||
required: false
|
||||
type: string
|
||||
default: ''
|
||||
{% endconfiguration %}
|
||||
|
||||
|
||||
## {% linkable_title Setup %}
|
||||
|
||||
To enable the `HomeKit` component in Home Assistant, add the following to your configuration file:
|
||||
@ -39,25 +76,108 @@ To enable the `HomeKit` component in Home Assistant, add the following to your c
|
||||
```yaml
|
||||
# Example for HomeKit setup
|
||||
homekit:
|
||||
pincode: '123-45-678'
|
||||
```
|
||||
|
||||
<p class='note'>It is not recommended to choose '123-45-678' as your pin code!</p>
|
||||
|
||||
After Home Assistant has started, all supported entities (see the [list](#supported-components) below which components are already integrated) will be exposed to `HomeKit`. To add them:
|
||||
1. Open the `Home` App.
|
||||
2. Choose `Add Accessory` and then `Don't Have a Code or Can't Scan?`.
|
||||
3. The `Home Assistant` Bridge should be listed there. Select it and follow the instructions to complete setup.
|
||||
After Home Assistant has started, the entities specified by the filter are exposed to `HomeKit` if the are [supported](#supported-components). To add them:
|
||||
1. Open the Home Assistant frontend. A new card will display the `pin code`.
|
||||
1. Open the `Home` app.
|
||||
2. Choose `Add Accessory`, than select `Don't Have a Code or Can't Scan?` and enter the `pin code`.
|
||||
4. Confirm the you are adding an `Uncertified Accessory` by clicking on `Add Anyway`.
|
||||
5. Follow the setup be clicking on `Next` and lastly `Done` in the top right hand corner.
|
||||
6. The `Home Assistant` Bridge and the Accessories should now be listed in the `Home` app.
|
||||
|
||||
After the setup is completed you should be able to control your Home Assistant components through `Home` and `Siri`.
|
||||
|
||||
|
||||
## {% linkable_title Considerations %}
|
||||
|
||||
|
||||
### {% linkable_title Accessory ID %}
|
||||
|
||||
Currently this component uses the `entity_id` to generate a unique `accessory id (aid)` for `HomeKit`. The `aid` is used to identify a device and save all configurations made for it. This however means that if you decide to change an `entity_id` all configurations for this accessory made in the `Home` app will be lost.
|
||||
|
||||
### {% linkable_title Persistence Storage %}
|
||||
|
||||
Unfortunately `HomeKit` doesn't support any kind of persistence storage, only the configuration for accessories that are added to the `Home Assistant Bridge` are kept. To avoid problems it is recommended to use an automation to always start `HomeKit` with at least the same entities setup. If for some reason some entities are not setup, their config will be deleted. (State unknown or similar will not cause any issues.)
|
||||
|
||||
A common situation might be if you decide to disable parts of the configuration for testing. Please make sure to disable `auto start` and `turn off` the `Start HomeKit` automation (if you have one).
|
||||
|
||||
|
||||
## {% linkable_title Disable Auto Start %}
|
||||
|
||||
Depending on your individual setup, it might be necessary to disable `Auto Start` for all accessories to be available for `HomeKit`. Only those entities that are fully setup when the `HomeKit` component is started, can be added. To start `HomeKit` when `auto_start: False`, you can call the service `homekit.start`.
|
||||
|
||||
This can be automated using an `automation`.
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
# Example for Z-Wave
|
||||
homekit:
|
||||
auto_start: False
|
||||
|
||||
automation:
|
||||
- alias: 'Start HomeKit'
|
||||
trigger:
|
||||
- platform: event
|
||||
event_type: zwave.network_ready
|
||||
action:
|
||||
- service: homekit.start
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
# Example using a delay after start of Home Assistant
|
||||
homekit:
|
||||
auto_start: False
|
||||
|
||||
automation:
|
||||
- alias: 'Start HomeKit'
|
||||
trigger:
|
||||
- platform: homeassistant
|
||||
event: start
|
||||
action:
|
||||
- delay: 00:05 # Waits 5 minutes
|
||||
- service: homekit.start
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
|
||||
## {% linkable_title Configure Filter %}
|
||||
|
||||
To limit which entities are being exposed to `HomeKit`, you can use the `filter` parameter. By default no entity will be excluded. Keep in mind though that only supported components can be added.
|
||||
|
||||
|
||||
## {% linkable_title Supported Components %}
|
||||
|
||||
The following components are currently supported:
|
||||
|
||||
| Component | Type Name | Description |
|
||||
| --------- | --------- | ----------- |
|
||||
| cover | Window | All covers that support `set_cover_position`. |
|
||||
| alarm_control_panel | SecuritySystem | All security systems. |
|
||||
| climate | Thermostat | All climate devices. |
|
||||
| cover | WindowCovering | All covers that support `set_cover_position`. |
|
||||
| light | Light | Support for `on / off`, `brightness` and `rgb_color`. |
|
||||
| sensor | TemperatureSensor | All sensors that have `Celsius` and `Fahrenheit` as their `unit_of_measurement`. |
|
||||
| sensor | HumiditySensor | All sensors that have `%` as their `unit_of_measurement` |
|
||||
| switch / remote / input_boolean / script | Switch | All represented as switches. |
|
||||
|
||||
<p class='note'>Currently only devices that are setup when Home Assistant is starting can be exposed to `HomeKit`. This means that especially `Z-Wave` components are currently not supported, since they will be setup afterwards. We are working on a solution for this problem.</p>
|
||||
|
||||
## {% linkable_title Error reporting %}
|
||||
|
||||
If you encounter any issues or bug and want to report them on `GitHub`, please follow these steps to make it easier for others to help and get your issue solved.
|
||||
|
||||
1. Enable debugging mode:
|
||||
```yaml
|
||||
logger:
|
||||
default: warning
|
||||
logs:
|
||||
homeassistant.components.homekit: debug
|
||||
```
|
||||
2. Reproduce the bug / problem you have encountered.
|
||||
3. Stop Home Assistant and copy the log from the log file. That is necessary since some errors only get logged, when Home Assistant is being shutdown.
|
||||
4. Follow this link: [home-assistant/issues/new](https://github.com/home-assistant/home-assistant/issues/new?labels=component: homekit) and open a new issue.
|
||||
5. Fill out all fields and especially include the following information:
|
||||
- The configuration entries for `homekit` and the `component` that is causing the issue.
|
||||
- The log / traceback you have generated before.
|
||||
- Screenshots of the failing entity in the `states` panel.
|
||||
|
@ -36,3 +36,7 @@ Configuration variables:
|
||||
- **entity_id** (*Required*): A camera entity id to get picture from.
|
||||
- **name** (*Optional*): This parameter allows you to override the name of your `image_processing` entity.
|
||||
- **faces** array (*Required*): List of faces sources.
|
||||
|
||||
<p class='note'>
|
||||
If the platform fails to load because it could not install its requirement, install cmake: `sudo apt-get install cmake`.
|
||||
</p>
|
||||
|
@ -23,7 +23,7 @@ The default InfluxDB configuration doesn't enforce authentication. If you have i
|
||||
influxdb:
|
||||
```
|
||||
|
||||
You will still need to create a database named `home_assistant` via InfluxDB's web interface or command line. For instructions how to create a database check the [InfluxDB documentation](https://docs.influxdata.com/influxdb/latest/introduction/getting_started/#creating-a-database) relevant to the version you have installed.
|
||||
You will still need to create a database named `home_assistant` via InfluxDB's command line interface. For instructions on how to create a database check the [InfluxDB documentation](https://docs.influxdata.com/influxdb/latest/introduction/getting_started/#creating-a-database) relevant to the version you have installed.
|
||||
|
||||
Configuration variables:
|
||||
|
||||
|
@ -8,12 +8,12 @@ comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
ha_category: Light
|
||||
ha_iot_class: "Local Polling"
|
||||
ha_iot_class: "Cloud Polling"
|
||||
logo: leviton.png
|
||||
ha_release: 0.51
|
||||
---
|
||||
|
||||
Support for [Leviton Decora Wi-Fi](http://www.leviton.com/en/products/lighting-controls/decora-smart-with-wifi) dimmers/switches.
|
||||
Support for [Leviton Decora Wi-Fi](http://www.leviton.com/en/products/lighting-controls/decora-smart-with-wifi) dimmers/switches via the MyLeviton API.
|
||||
|
||||
Supported devices (tested):
|
||||
|
||||
|
48
source/_components/light.group.markdown
Normal file
48
source/_components/light.group.markdown
Normal file
@ -0,0 +1,48 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Light Group"
|
||||
description: "Instructions for how to setup light groups within Home Assistant."
|
||||
date: 2018-02-23 11:41
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
ha_category: Light
|
||||
ha_release: 0.65
|
||||
ha_iot_class: "Local Push"
|
||||
logo: home-assistant.png
|
||||
---
|
||||
|
||||
The group light platform lets you combine multiple lights into one entity. All child lights of a light group can still be used as usual, but controlling the state of the grouped light will forward the command to each child light.
|
||||
|
||||
To enable this platform in your installation, add the following to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
light:
|
||||
- platform: group
|
||||
name: Kitchen Lights
|
||||
entities:
|
||||
- light.kitchen_ceiling_lights
|
||||
- light.kitchen_under_cabinet_lights
|
||||
- light.kitchen_spot_lights
|
||||
- light.pendant_lights
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
name:
|
||||
description: The name of the light group. Defaults to "Light Group".
|
||||
required: false
|
||||
type: string
|
||||
entities:
|
||||
description: A list of entities to be included in the light group.
|
||||
required: true
|
||||
type: string list
|
||||
{% endconfiguration %}
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/components/light/group.png'>
|
||||
Example of the light group "Kitchen Lights".
|
||||
</p>
|
||||
|
||||
The supported features of all lights will be added together. For example, if you have one RGB light in a group of otherwise brightness-only lights, the light group will be shown with a color picker.
|
@ -90,3 +90,16 @@ When starting Home Assistant, the last recorded state will be shown. This might
|
||||
If you control your LimitlessLED lights via the MiLight mobile application or other means while Home Assistant is running, Home Assistant can not track those changes and you may observe obsolete information.
|
||||
|
||||
This lack of synchronization is due to a LimitlessLED limitation.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/screenshots/limitlessled_assumed_state.png' />
|
||||
</p>
|
||||
|
||||
Because LimitlessLED lights may have an obsolete state, Home Assistant shows the power switch as two buttons rather than a toggle. This ensures that the power can be set with a single click even if the assumed state is wrong. You can change to use the power toggle with [Customize](/docs/configuration/customizing-devices/):
|
||||
|
||||
```yaml
|
||||
homeassistant:
|
||||
customize_domain:
|
||||
light:
|
||||
assumed_state: false
|
||||
```
|
||||
|
@ -13,7 +13,7 @@ ha_version: 0.53
|
||||
ha_iot_class: "Local Polling"
|
||||
---
|
||||
|
||||
The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philips LED Ball Lamp and Xiaomi Philips LED Ceiling Lamp.
|
||||
The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philips LED Ball Lamp, Xiaomi Philips LED Ceiling Lamp and Xiaomi Philips Eyecare Lamp 2.
|
||||
|
||||
Currently, the supported features are `on`, `off`, `set_cct` (colortemp) , `set_bright` (brightness).
|
||||
|
||||
@ -28,12 +28,34 @@ light:
|
||||
name: Xiaomi Philips Smart LED Ball
|
||||
host: 192.168.130.67
|
||||
token: YOUR_TOKEN
|
||||
model: philips.light.bulb
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
- **host** (*Required*): The IP of your light.
|
||||
- **token** (*Required*): The API token of your light.
|
||||
- **name** (*Optional*): The name of your light.
|
||||
- **model** (*Optional*): The model of your light. Valid values are `philips.light.bulb`, `philips.light.sread1`, `philips.light.ceiling` and `philips.light.zyceiling`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available.
|
||||
|
||||
{% configuration %}
|
||||
host:
|
||||
description: The IP address of your device.
|
||||
required: true
|
||||
type: string
|
||||
token:
|
||||
description: The API token of your device.
|
||||
required: true
|
||||
type: string
|
||||
name:
|
||||
description: The name of your device.
|
||||
required: false
|
||||
type: string
|
||||
default: Xiaomi Philips Light
|
||||
model:
|
||||
description: The model of your device.
|
||||
required: false
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
||||
## {% linkable_title Platform Services %}
|
||||
|
||||
@ -43,5 +65,14 @@ Set one of the 4 available fixed scenes.
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
|---------------------------|----------|-------------------------------------------------------|
|
||||
| `entity_id` | yes | Only act on specific light. Else targets all. |
|
||||
| `entity_id` | yes | Only act on a specific light. Else targets all. |
|
||||
| `scene` | no | Scene, between 1 and 4. |
|
||||
|
||||
### {% linkable_title Service `light.xiaomi_miio_set_delayed_turn_off` %}
|
||||
|
||||
Delayed turn off.
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
|---------------------------|----------|-------------------------------------------------------|
|
||||
| `entity_id` | yes | Only act on a specific light. Else targets all. |
|
||||
| `time_period` | no | Time period for the delayed turn off. |
|
||||
|
20
source/_components/lock.bmw_connected_drive.markdown
Executable file
20
source/_components/lock.bmw_connected_drive.markdown
Executable file
@ -0,0 +1,20 @@
|
||||
---
|
||||
layout: page
|
||||
title: "BMW connected drive"
|
||||
description: "Instructions on how to setup your BMW connected drive account with Home Assistant."
|
||||
date: 2018-02-22 23:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: bmw.png
|
||||
ha_category: Lock
|
||||
ha_release: 0.66
|
||||
---
|
||||
|
||||
|
||||
The `bmw_connected_drive` platform allows you to import data on your BMW into Home Assistant.
|
||||
|
||||
The lock will be automatically configured if 'bmw_connected_drive' component is configured.
|
||||
|
||||
For more configuration information see the [bmw_connected_drive component](/components/bmw_connected_drive/) documentation.
|
61
source/_components/media_player.channels.markdown
Normal file
61
source/_components/media_player.channels.markdown
Normal file
@ -0,0 +1,61 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Channels"
|
||||
description: "Instructions on how to integrate Channels into Home Assistant."
|
||||
date: 2018-03-06 11:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: channels.png
|
||||
ha_category: Media Player
|
||||
ha_release: 0.65.0
|
||||
ha_iot_class: "Local Polling"
|
||||
---
|
||||
|
||||
|
||||
The Channels platform allows you to control [Channels](https://getchannels.com/) from Home Assistant. Play, pause, seek, or skip commercials on an instance of Channels that is running on your network.
|
||||
|
||||
Your favorite channels will appear as sources in the Source List in Home Assistant.
|
||||
|
||||
To add Channels to your installation, add the following to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
media_player:
|
||||
- platform: channels
|
||||
name: Family Room Channels
|
||||
host: 192.168.1.50
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **host** (*Required*): The IP of the device running Channels, e.g., 192.168.1.50
|
||||
- **port** (*Optional*): The port where Channels is accessible, defaults to 57000.
|
||||
- **name** (*Optional*): The name of the Channels instance in Home Assistant, eg. Family Room Channels. Defaults to Channels.
|
||||
|
||||
### {% linkable_title Service `channels_seek_forward` %}
|
||||
|
||||
Seek forward by the number of seconds currently set in settings on the instance of Channels.
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
| ---------------------- | -------- | ----------- |
|
||||
| `entity_id` | no | String that points at `entity_id` of Channels app.
|
||||
|
||||
|
||||
### {% linkable_title Service `channels_seek_backward` %}
|
||||
|
||||
Seek backward by the number of seconds currently set in settings on the instance of Channels.
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
| ---------------------- | -------- | ----------- |
|
||||
| `entity_id` | no | String that points at `entity_id` of Channels app.
|
||||
|
||||
### {% linkable_title Service `channels_seek_by` %}
|
||||
|
||||
Seek forward or backward by a provided number of seconds.
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
| ---------------------- | -------- | ----------- |
|
||||
| `entity_id` | no | String that points at `entity_id` of Channels app.
|
||||
| `seconds` | no | Number of seconds to seek in the timeline by. Negative seconds seeks backwards.
|
@ -20,7 +20,7 @@ Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`,
|
||||
| ---------------------- | -------- | ------------------------------------------------ |
|
||||
| `entity_id` | yes | Target a specific media player. Defaults to all. |
|
||||
|
||||
#### {% linkable_title Service `media_player/volume_mute` %}
|
||||
#### {% linkable_title Service `media_player.volume_mute` %}
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
|------------------------|----------|--------------------------------------------------|
|
||||
@ -34,14 +34,14 @@ Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`,
|
||||
| `entity_id` | yes | Target a specific media player. Defaults to all. |
|
||||
| `volume_level` | no | Float for volume level |
|
||||
|
||||
#### {% linkable_title Service `media_player/media_seek` %}
|
||||
#### {% linkable_title Service `media_player.media_seek` %}
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
|------------------------|----------|--------------------------------------------------------|
|
||||
| `entity_id` | yes | Target a specific media player. Defaults to all. |
|
||||
| `seek_position` | no | Position to seek to. The format is platform dependent. |
|
||||
|
||||
#### {% linkable_title Service `media_player/play_media` %}
|
||||
#### {% linkable_title Service `media_player.play_media` %}
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
| -----------------------| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
@ -49,14 +49,14 @@ Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`,
|
||||
| `media_content_id` | no | A media identifier. The format of this is component dependent. For example, you can provide URLs to Sonos and Cast but only a playlist ID to iTunes. |
|
||||
| `media_content_type` | no | A media type. Must be one of `music`, `tvshow`, `video`, `episode`, `channel` or `playlist`. For example, to play music you would set `media_content_type` to `music`. |
|
||||
|
||||
#### {% linkable_title Service `media_player/select_source` %}
|
||||
#### {% linkable_title Service `media_player.select_source` %}
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
| ---------------------- | -------- | ---------------------------------------------------- |
|
||||
| `entity_id` | yes | Target a specific media player. Defaults to all. |
|
||||
| `source` | no | Name of the source to switch to. Platform dependent. |
|
||||
|
||||
#### {% linkable_title Service `media_player/shuffle_set` %}
|
||||
#### {% linkable_title Service `media_player.shuffle_set` %}
|
||||
|
||||
Currently only supported on [Spotify](/components/media_player.spotify/), [MPD](/components/media_player.mpd/), [Kodi](/components/media_player.kodi/), [Squeezebox](/components/media_player.squeezebox/) and [Universal](/components/media_player.universal/).
|
||||
|
||||
|
@ -30,3 +30,4 @@ Configuration variables:
|
||||
- **host** (*Required*): IP address of TV.
|
||||
- **name** (*Optional*): The name you would like to give to the Philips TV.
|
||||
- **turn_on_action** (*Optional*): A script that will be executed to turn on the TV (can be used with wol).
|
||||
- **api_version** (*Optional*): The JointSpace API version of your Philips TV, defaults to `1`. This is an experimental option and not all the functionalities are guaranteed to work with API versions different from `1`.
|
||||
|
@ -57,6 +57,7 @@ Currently known supported models:
|
||||
- K5579 (port must be set to 8001, On/Off, Forward/Backward, Volume control, but no Play button)
|
||||
- K6500AF (port must be set to 8001)
|
||||
- KS8005 (port must be set to 8001, and `pip3 install websocket-client` must be executed)
|
||||
- KU6020 (port must be set to 8001, and `pip3 install websocket-client` must be executed)
|
||||
- KU6290 (port must be set to 8001)
|
||||
- KU7000 (port must be set to 8001)
|
||||
- MU6170UXZG (port must be set to 8001, and `pip3 install websocket-client` must be executed)
|
||||
|
68
source/_components/media_player.songpal.markdown
Normal file
68
source/_components/media_player.songpal.markdown
Normal file
@ -0,0 +1,68 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Sony SongPal compatible devices"
|
||||
description: "Instructions how to integrate Sony Songpal devices into Home Assistant."
|
||||
date: 2018-02-03 09:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: sony.png
|
||||
ha_category: Media Player
|
||||
ha_iot_class: "Local Polling"
|
||||
ha_release: 0.65
|
||||
---
|
||||
|
||||
The `songpal` platform allows you to control Sony's Songpal ("[Audio Control API](https://developer.sony.com/develop/audio-control-api/)") compatible devices such as soundbars, AV receivers and wireless speakers from Home Assistant.
|
||||
|
||||
Even when the API officially supports only a few devices (HT-ST5000, HT-MT500, HT-CT800, SRS-ZR5 and STR-DN1080), it has also been confirmed to work on others. [The list of supported devices](http://vssupport.sony.net/en_ww/device.html) from Sony's Songpal website lists devices which are likely to be compatible with this platform.
|
||||
|
||||
If the platform works with your non-listed device, or you encounter bugs, please feel free to [report them upstream](https://github.com/rytilahti/python-songpal).
|
||||
|
||||
A few notes:
|
||||
|
||||
- The quick start-up mode has to be enabled in order to turn the device on.
|
||||
- Supports currently only one output terminal, i.e. the volume control works only on the first volume controller as reported by the backend library.
|
||||
- Some devices, e.g. HT-XT3, do not support decreasing the volume step-by-step correctly.
|
||||
- Feel free to improve the available services!
|
||||
|
||||
## {% linkable_title Configuration %}
|
||||
|
||||
The platform will be loaded automatically by discovery component. If you want to manually configure it, add the following to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
media_player:
|
||||
- platform: songpal
|
||||
name: my soundbar
|
||||
endpoint: http://IP_ADDRESS:10000/sony
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
name:
|
||||
description: The name to display for this device.
|
||||
required: false
|
||||
type: string
|
||||
endpoint:
|
||||
description: API endpoint of the device.
|
||||
required: true
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
||||
See [python-songpal's documentation](https://github.com/rytilahti/python-songpal#locating-the-endpoint) how to get your API endpoint.
|
||||
|
||||
## {% linkable_title Services %}
|
||||
|
||||
In addition to the general [media player services](https://home-assistant.io/components/media_player/#services), the following services are provided:
|
||||
|
||||
### {% linkable_title Service `media_player/songpal_set_sound_setting` %}
|
||||
|
||||
For a list of available settings and their values use [`songpal sound`](https://github.com/rytilahti/python-songpal#sound-settings) command.
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
|------------------------|----------|--------------------------------------------------|
|
||||
| `entity_id` | yes | Target entity, leave unset for all devices |
|
||||
| `name` | no | Configuration variable, e.g. `nightmode` |
|
||||
| `value` | no | New configuration value, e.g. `on` |
|
||||
|
||||
|
||||
|
63
source/_components/notify.stride.markdown
Normal file
63
source/_components/notify.stride.markdown
Normal file
@ -0,0 +1,63 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Stride"
|
||||
description: "Instructions how to add Stride notifications to Home Assistant."
|
||||
date: 2018-03-14 15:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: stride.png
|
||||
ha_category: Notifications
|
||||
ha_release: 0.66
|
||||
---
|
||||
|
||||
The `stride` platform allows you to send notifications from Home Assistant to [Stride](https://stride.com/).
|
||||
|
||||
You need to obtain a [Stride API token](https://developer.atlassian.com/cloud/stride/security/authentication/#using-room-tokens) to be able to send notifications. When creating the token, you'll see a section labeled "Use this conversation URL to post messages" - it will look something like "https://api.atlassian.com/site/55872e9f-047e-a619-b32c-19d37fbc6038/conversation/26c98c26-0ffd-a11e-3a55-1b397cb71fe0/message". The first set of numbers and letters (`55872e9f-047e-a619-b32c-19d37fbc6038`) is the Cloud ID, and the second set (`26c98c26-0ffd-a11e-3a55-1b397cb71fe0`) is the Room ID.
|
||||
|
||||
To enable the Stride notification in your installation, add the following to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
notify:
|
||||
- platform: stride
|
||||
cloudid: CLOUD-ID
|
||||
token: TOKEN
|
||||
room: ROOM-ID
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
name:
|
||||
description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`.
|
||||
required: false
|
||||
default: notify
|
||||
type: string
|
||||
cloudid:
|
||||
description: The Stride Cloud ID to use for sending Stride notification.
|
||||
required: true
|
||||
type: string
|
||||
token:
|
||||
description: The Stride API token to use for sending Stride notifications.
|
||||
required: true
|
||||
type: string
|
||||
room:
|
||||
description: The default room to post to if no room is explicitly specified when sending the notification.
|
||||
required: true
|
||||
type: string
|
||||
panel:
|
||||
description: Setting panel will override the default panel type (`None`) for the notification. By default not setting this will post to Stride without using a panel type. Valid options are 'None', 'info', 'note', 'tip', 'warning'.
|
||||
required: false
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
||||
### {% linkable_title Stride service data %}
|
||||
|
||||
The following attributes can be placed `data` for extended functionality.
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
| ---------------------- | -------- | ----------- |
|
||||
| `room` | yes | (int) Same usage as in configuration.yaml. Overrides any setting set in configuration.yaml.
|
||||
| `panel` | yes | (str) Same usage as in configuration.yaml. Overrides any setting set in configuration.yaml.
|
||||
|
||||
To use notifications, please see the [getting started with automation page](/getting-started/automation/).
|
@ -15,7 +15,7 @@ ha_release: 0.25
|
||||
|
||||
The `panel_iframe` support allows you to add additional panels to your Home Assistant frontend. The panels are listed in the sidebar and can contain external resources like the web frontend of your router, your monitoring system, or your media server.
|
||||
|
||||
<p class='note warning'>If you are accessing home Assistant over HTTPS using SSL, you cannot access HTTP sites through an iframe panel.</p>
|
||||
<p class='note warning'>If you are accessing Home Assistant over HTTPS using SSL, you cannot access HTTP sites through an iframe panel.</p>
|
||||
|
||||
To enable Panel iFrames in your installation, add the following to your `configuration.yaml` file:
|
||||
|
||||
|
@ -67,5 +67,3 @@ Choose <img src='/images/screenshots/developer-tool-services-icon.png' alt='serv
|
||||
}
|
||||
```
|
||||
This will create the notification entry shown above.
|
||||
|
||||
NOTE: if you have defined a ```default_view:``` in your ```Groups:``` configuration you will need to include ```persistent_notification.<notification_id>``` e.g. ```persistent_notification.1234``` as per the example above, to your Groups configuration, in order to see the notification after creating it.
|
||||
|
@ -156,14 +156,29 @@ If the `recorder` component is activated then some components support `restore_s
|
||||
| PostgreSQL | `postgresql://scott:tiger@SERVER_IP/DB_NAME` |
|
||||
| MS SQL Server | `mssql+pymssql://user:pass@SERVER_IP/DB_NAME?charset=utf8` |
|
||||
|
||||
+<p class='note'>
|
||||
+If you are running a database server instance on the same server as Home Assistant then you must ensure that this service starts before Home Assistant. For a Linux instance running Systemd (Raspberry Pi, Debian, Ubuntu and others) then you should edit the file /etc/systemd/system/home-assistant@homeassistant.service as root (e.g. sudo nano /etc/systemd/system/home-assistant@homeassistant.service) and add the service - for PostgreSQL:
|
||||
+```
|
||||
+[Unit]
|
||||
+Description=Home Assistant
|
||||
+After=network.target postgresql.service
|
||||
+```
|
||||
+</p>
|
||||
<p class='note'>
|
||||
If you use MariaDB 10 you need to add port 3307 to the SERVER_IP, e.g., `mysql://user:password@SERVER_IP:3307/DB_NAME?charset=utf8`.
|
||||
|
||||
+If you are running a database server instance on the same server as Home Assistant then you must ensure that this service starts before Home Assistant. For a Linux instance running Systemd (Raspberry Pi, Debian, Ubuntu and others) then you should edit the service file.
|
||||
|
||||
```bash
|
||||
$ sudo nano /etc/systemd/system/home-assistant@homeassistant.service
|
||||
```
|
||||
|
||||
and add the service for PostgreSQL:
|
||||
|
||||
```
|
||||
[Unit]
|
||||
Description=Home Assistant
|
||||
After=network.target postgresql.service
|
||||
```
|
||||
|
||||
Save the file then reload `systemctl`:
|
||||
|
||||
```bash
|
||||
$ sudo systemctl daemon-reload
|
||||
```
|
||||
</p>
|
||||
|
||||
## {% linkable_title Installation notes %}
|
||||
|
||||
|
@ -9,7 +9,7 @@ sharing: true
|
||||
footer: true
|
||||
logo: dark_sky.png
|
||||
ha_category: Weather
|
||||
featured: true
|
||||
featured: false
|
||||
ha_release: "0.30"
|
||||
redirect_from: /components/sensor.forecast/
|
||||
ha_iot_class: "Cloud Polling"
|
||||
|
@ -13,7 +13,7 @@ ha_iot_class: "Local Polling"
|
||||
ha_release: 0.64
|
||||
---
|
||||
|
||||
Component for displaying the size of a file. Note that paths must be added to [whitelist_external_dirs](https://home-assistant.io/docs/configuration/basic/).
|
||||
Component for displaying the size in MB of a file. Note that paths must be added to [whitelist_external_dirs](https://home-assistant.io/docs/configuration/basic/).
|
||||
Add to your config:
|
||||
|
||||
```yaml
|
||||
|
@ -36,6 +36,7 @@ Configuration variables:
|
||||
|
||||
- **monitored_resources** (*Optional*): Resource to monitor. Defaults to `activities/steps`.
|
||||
- **clock_format** (*Optional*): Format to use for `sleep/startTime` resource. Accepts `12H` or `24H`. Defaults to `24H`.
|
||||
- **unit_system** (*Optional*): Unit system to use for measurements. Accepts `default`, `metric`, `en_US` or `en_GB`. Defaults to `default`.
|
||||
|
||||
Below is the list of resources that you can add to `monitored_resources`. One sensor is exposed for every resource.
|
||||
|
||||
|
@ -13,7 +13,7 @@ ha_iot_class: "Local Polling"
|
||||
ha_release: 0.64
|
||||
---
|
||||
|
||||
Sensor for monitoring the contents of a folder. Note that folder paths must be added to [whitelist_external_dirs](https://home-assistant.io/docs/configuration/basic/). Optionally a [wildcard filter]((http://tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm)) can be applied to the files considered within the folder. The state of the sensor is the size in MB of files within the folder that meet the filter criteria. The number of filtered files in the folder and total size in bytes of those files are exposed as attributes.
|
||||
Sensor for monitoring the contents of a folder. Note that folder paths must be added to [whitelist_external_dirs](https://home-assistant.io/docs/configuration/basic/). Optionally a [wildcard filter](https://docs.python.org/3.6/library/fnmatch.html) can be applied to the files considered within the folder. The state of the sensor is the size in MB of files within the folder that meet the filter criteria. The number of filtered files in the folder and total size in bytes of those files are exposed as attributes.
|
||||
|
||||
To enable the `folder` sensor in your installation, add the following to your `configuration.yaml` file:
|
||||
|
||||
|
51
source/_components/sensor.foobot.markdown
Normal file
51
source/_components/sensor.foobot.markdown
Normal file
@ -0,0 +1,51 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Foobot Air Quality Monitor"
|
||||
description: "Instructions on how to setup Foobot Air Quality sensor in Home Assistant."
|
||||
date: 2018-02-14 06:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: foobot.png
|
||||
ha_category: Health
|
||||
ha_release: 0.66
|
||||
ha_iot_class: "Cloud Polling"
|
||||
---
|
||||
|
||||
The `foobot` sensor platform will fetch air quality data from your or yours [Foobot device(s)](https://foobot.io/features/).
|
||||
|
||||
This sensor requires an API token. Please obtain one at [Foobot API site](https://api.foobot.io/apidoc/index.html).
|
||||
|
||||
## {% linkable_title Configuring the Platform %}
|
||||
|
||||
To enable this sensor, add the following lines to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
sensor:
|
||||
- platform: foobot
|
||||
token: FOOBOT_SECRET_KEY
|
||||
username: FOOBOT_USERNAME
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
token:
|
||||
description: The token for the Foobot API.
|
||||
required: true
|
||||
type: string
|
||||
username:
|
||||
description: Your Foobot username, used to fetch devices associated with an account.
|
||||
required: true
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
||||
## {% linkable_title Available Metrics %}
|
||||
|
||||
Every ten minutes, it'll fetch the last ten minutes average of the following measurements:
|
||||
|
||||
* Temperature
|
||||
* Humidity
|
||||
* Co2
|
||||
* VOC
|
||||
* PM2.5
|
||||
* [Index](https://help.foobot.io/hc/en-us/articles/204814371-What-does-central-number-mean-)
|
@ -58,6 +58,9 @@ sensor:
|
||||
- 'process_thread'
|
||||
- 'process_sleeping'
|
||||
- 'cpu_temp'
|
||||
- 'docker_active'
|
||||
- 'docker_cpu_use'
|
||||
- 'docker_memory_use'
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
@ -81,5 +84,8 @@ Configuration variables:
|
||||
- **process_thread**: Number of threads
|
||||
- **process_sleeping**: Number of sleeping processes
|
||||
- **cpu_temp**: CPU Temperature (may not available on all platforms)
|
||||
- **docker_active**: Count of active Docker containers
|
||||
- **docker_cpu_use**: Total CPU usage in percent of Docker containers
|
||||
- **docker_memory_use**: Total memory used of Docker containers
|
||||
|
||||
Not all platforms are able to provide all metrics. For instance `cpu_temp` is requires installing and configuring `lmsensors` in Ubuntu, and may not be available at all in other platforms.
|
||||
|
@ -82,6 +82,32 @@ json_attributes:
|
||||
|
||||
In this section you find some real life examples of how to use this sensor.
|
||||
|
||||
### {% linkable_title JSON attributes configuration %}
|
||||
|
||||
The example sensor below shows a configuration example which uses JSON in the state topic to add extra attributes. It also makes use of the availability topic. Attributes can then be extracted in [Templates](configuration/templating/#attributes); Example to extract data from the sensor below {% raw %}'{{ states.sensor.bs_client_name.attributes.ClientName }}'{% endraw %}.
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
# Example configuration.yml entry
|
||||
sensor:
|
||||
- platform: mqtt
|
||||
state_topic: "HUISHS/BunnyShed/NodeHealthJSON"
|
||||
name: "BS RSSI"
|
||||
unit_of_measurement: "dBm"
|
||||
value_template: '{{ value_json.RSSI }}'
|
||||
availability_topic: "HUISHS/BunnyShed/status"
|
||||
payload_available: "online"
|
||||
payload_not_available: "offline"
|
||||
json_attributes:
|
||||
- ClientName
|
||||
- IP
|
||||
- MAC
|
||||
- RSSI
|
||||
- HostName
|
||||
- ConnectedSSID
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
### {% linkable_title Get battery level %}
|
||||
|
||||
If you are using the [Owntracks](/components/device_tracker.owntracks/) and enable the reporting of the battery level then you can use a MQTT sensor to keep track of your battery. A regular MQTT message from Owntracks looks like this:
|
||||
|
@ -30,7 +30,7 @@ liking):
|
||||
```yaml
|
||||
sensor:
|
||||
platform: pollen
|
||||
zip_code: ZIP_CODE
|
||||
zip_code: "00544"
|
||||
monitored_conditions:
|
||||
- allergy_average_forecasted
|
||||
- allergy_average_historical
|
||||
@ -42,15 +42,20 @@ sensor:
|
||||
|
||||
{% configuration %}
|
||||
zip_code:
|
||||
description: the U.S. ZIP code to gather data for
|
||||
description: the U.S. ZIP code to gather data for (as a quoted string)
|
||||
required: true
|
||||
type: int
|
||||
type: string
|
||||
monitored_conditions:
|
||||
description: the metric types to monitor; valid values are specified below
|
||||
required: true
|
||||
type: list
|
||||
{% endconfiguration %}
|
||||
|
||||
<p class='note warning'>
|
||||
It is important to ensure the ZIP code is quoted if it starts with a 0. Unquoted
|
||||
ZIP codes that start with 0 will cause errors.
|
||||
</p>
|
||||
|
||||
## {% linkable_title Available Metrics %}
|
||||
|
||||
The following metrics can be monitored:
|
||||
|
@ -126,7 +126,7 @@ sensor:
|
||||
resource: https://elen.nu/timpriser-pa-el-for-elomrade-se3-stockholm/
|
||||
name: Electricity price
|
||||
select: ".elspot-content"
|
||||
value_template: '{{ value.split(" ")[0] }}'
|
||||
value_template: '{{ ((value.split(" ")[0]) | replace (",", ".")) }}'
|
||||
unit_of_measurement: "öre/kWh"
|
||||
```
|
||||
{% endraw %}
|
||||
|
@ -16,12 +16,13 @@ ha_iot_class: "Cloud Polling"
|
||||
|
||||
The `speedtest` sensor component uses the [Speedtest.net](https://speedtest.net/) web service to measure network bandwidth performance.
|
||||
|
||||
By default, it will run every hour. The user can change the update frequency in the configuration by defining the minute, hour, and day for a speedtest to run. For the `server_id` check the list of [available servers](https://www.speedtest.net/speedtest-servers.php).
|
||||
By default, it will run every hour. The user can change the update frequency in the configuration by defining the minute, hour, and day for a speed test to run. For the `server_id` check the list of [available servers](https://www.speedtest.net/speedtest-servers.php).
|
||||
|
||||
To add a Speedtest.net sensor to your installation, add the following to your `configuration.yaml` file:
|
||||
|
||||
Once per hour, on the hour (default):
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
sensor:
|
||||
@ -31,32 +32,63 @@ sensor:
|
||||
- download
|
||||
- upload
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **monitored_conditions** array (*Required*): Sensors to display in the frontend.
|
||||
- **ping**: Reaction time in ms of your connection (how fast you get a response after you've sent out a request).
|
||||
- **download**: Download speed in Mbps.
|
||||
- **upload**: Upload speed in Mbps.
|
||||
- **server_id** (*Optional*): Specify the speedtest server to perform test against.
|
||||
- **minute** (*Optional*): Specify the minute(s) of the hour to schedule the speedtest. Use a list for multiple entries. Default is 0.
|
||||
- **hour** (*Optional*): Specify the hour(s) of the day to schedule the speedtest. Use a list for multiple entries. Default is None.
|
||||
- **day** (*Optional*): Specify the day(s) of the month to schedule the speedtest. Use a list for multiple entries. Default is None.
|
||||
- **manual** (*Optional*): True or False to turn manual mode on or off. Manual mode will disable scheduled speedtests.
|
||||
{% configuration %}
|
||||
monitored_conditions:
|
||||
description: Sensors to display in the frontend.
|
||||
required: true
|
||||
type: list
|
||||
keys:
|
||||
ping:
|
||||
description: Reaction time in ms of your connection (how fast you get a response after you've sent out a request).
|
||||
download:
|
||||
description: Download speed (Mbit/s)
|
||||
upload:
|
||||
description: Upload speed (Mbit/s)
|
||||
server_id:
|
||||
description: Specify the speed test server to perform the test against.
|
||||
required: false
|
||||
type: int
|
||||
day:
|
||||
description: Specify the day(s) of the month to schedule the speed test. Use a list for multiple entries.
|
||||
required: false
|
||||
type: [int, list]
|
||||
hour:
|
||||
description: Specify the hour(s) of the day to schedule the speed test. Use a list for multiple entries.
|
||||
required: false
|
||||
type: [int, list]
|
||||
minute:
|
||||
description: Specify the minute(s) of the hour to schedule the speed test. Use a list for multiple entries.
|
||||
required: false
|
||||
type: [int, list]
|
||||
default: 0
|
||||
second:
|
||||
description: Specify the second(s) of the minute to schedule the speed test. Use a list for multiple entries.
|
||||
required: false
|
||||
type: [int, list]
|
||||
default: 0
|
||||
manual:
|
||||
description: True or False to turn manual mode on or off. Manual mode will disable scheduled speed tests.
|
||||
required: false
|
||||
type: bool
|
||||
default: false
|
||||
{% endconfiguration %}
|
||||
|
||||
This component uses [speedtest-cli](https://github.com/sivel/speedtest-cli) to gather network performance data from Speedtest.net. Please be aware of the potential [inconsistencies](https://github.com/sivel/speedtest-cli#inconsistency) that this component may display.
|
||||
|
||||
When Home Assistant first starts up, the values of the speedtest will show as `Unknown`. You can use the service `sensor.update_speedtest` to run a manual speedtest and populate the data or just wait for the next regularly scheduled test. You can turn on manual mode to disable the scheduled speedtests.
|
||||
When Home Assistant first starts up, the values of the speed test will show as `Unknown`. You can use the service `sensor.update_speedtest` to run a manual speed test and populate the data or just wait for the next regularly scheduled test. You can turn on manual mode to disable the scheduled speed tests.
|
||||
|
||||
|
||||
## {% linkable_title Examples %}
|
||||
|
||||
In this section you find some real life examples of how to use this sensor.
|
||||
In this section, you find some real-life examples of how to use this sensor.
|
||||
|
||||
### {% linkable_title Run periodically %}
|
||||
|
||||
Every half hour of every day:
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
sensor:
|
||||
@ -69,11 +101,13 @@ sensor:
|
||||
- download
|
||||
- upload
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
### {% linkable_title Run at a specific time %}
|
||||
|
||||
Everyday at 12:30AM, 6:30AM, 12:30PM, 6:30PM:
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
sensor:
|
||||
@ -89,29 +123,33 @@ sensor:
|
||||
- download
|
||||
- upload
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
### {% linkable_title Using as a trigger in an automation %}
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
automation:
|
||||
- alias: 'Internet Speed Glow Connect Great'
|
||||
trigger:
|
||||
platform: template
|
||||
value_template: '{% raw %}{{ states.sensor.speedtest_download.state|float > 10}}{% endraw %}'
|
||||
action:
|
||||
service: shell_command.green
|
||||
- alias: 'Internet Speed Glow Connect Poor'
|
||||
trigger:
|
||||
platform: template
|
||||
value_template: '{% raw %}{{ states.sensor.speedtest_download.state| float < 10 }}{% endraw %}'
|
||||
action:
|
||||
service: shell_command.red
|
||||
- alias: "Internet Speed Glow Connect Great"
|
||||
trigger:
|
||||
- platform: template
|
||||
value_template: "{{ states('sensor.speedtest_download')|float > 10 }}"
|
||||
action:
|
||||
- service: shell_command.green
|
||||
|
||||
- alias: "Internet Speed Glow Connect Poor"
|
||||
trigger:
|
||||
- platform: template
|
||||
value_template: "{{ states('sensor.speedtest_download')|float < 10 }}"
|
||||
action:
|
||||
- service: shell_command.red
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
## {% linkable_title Notes %}
|
||||
|
||||
- When running on Raspberry Pi, just note that the maximum speed is limited by its 100 Mbit/s LAN adapter.
|
||||
- Entries under `monitored_conditions` only control what entities are available under home-assistant, it does not disable the condition from running.
|
||||
- If ran frequently, this component has the capability of using a very large amount of data. Frequent updates should be avoided on bandwidth capped connections.
|
||||
- While running, network usage is fully utilized. This may have a negative affect on other devices in use the network such as gaming consoles or streaming boxes.
|
||||
- Entries under `monitored_conditions` only control what entities are available in Home Assistant, it does not disable the condition from running.
|
||||
- If ran frequently, this component has the ability to use a considerable amount of data. Frequent updates should be avoided on bandwidth-capped connections.
|
||||
- While running, your network capacity is fully utilized. This may have a negative effect on other devices in use the network such as gaming consoles or streaming boxes.
|
||||
|
@ -8,13 +8,13 @@ comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
ha_category: Sensor
|
||||
ha_release: 0.64
|
||||
ha_release: 0.65
|
||||
ha_iot_class: "Cloud Polling"
|
||||
---
|
||||
|
||||
The `spotcrime` sensor allows one to track reported incidents occurring in a given area. Incidents include anything reported to [Spot Crime](http://spotcrime.com). Your regional emergency services may or may not report data. The sensor defaults to counting incidents within one day, but can be customized via configuration.yaml.
|
||||
|
||||
## Configuration
|
||||
You will need to request an API key from [Spotcrime](mailto:pyrrhus@spotcrime.com).
|
||||
|
||||
To enable this sensor, add the following lines to your `configuration.yaml`. Your `radius` should be of sufficient size to capture incidents in your area. 0.01 = 1 mile.
|
||||
|
||||
@ -23,23 +23,39 @@ sensor:
|
||||
- platform: spotcrime
|
||||
name: <any name>
|
||||
radius: <your radius>
|
||||
days: <your days>
|
||||
api_key: <"your_api_key_here">
|
||||
```
|
||||
|
||||
Configuration options for the Crime Reports Sensor:
|
||||
{% configuration %}
|
||||
name:
|
||||
description: Name the sensor what you'd like.
|
||||
required: true
|
||||
type: string
|
||||
radius:
|
||||
description: Radius you'd like to search within. 0.01 = 1 mile.
|
||||
required: true
|
||||
type: float
|
||||
api_key:
|
||||
description: The API key to access the service.
|
||||
required: true
|
||||
type: string
|
||||
days:
|
||||
description: Number of days you'd like see to crime statistics for.
|
||||
required: false
|
||||
type: int
|
||||
include:
|
||||
description: Event types you want statistics for.
|
||||
required: false
|
||||
type: list
|
||||
exclude:
|
||||
description: Event types to ignore statistics for.
|
||||
required: false
|
||||
type: list
|
||||
{% endconfiguration %}
|
||||
|
||||
- **name** (*Required*): Name the sensor whatever you want.
|
||||
- **radius** (*Required*): Radius in miles.
|
||||
- **days** (*Optional*): Defaults to 1 day.
|
||||
- **latitude** (*Optional*): Defaults to your home zone latitude.
|
||||
- **longitude** (*Optional*): Defaults to your home zone longitude.
|
||||
- **include** (*Optional*): List of incident types to include.
|
||||
- **exclude** (*Optional*): List of incident types to exclude.
|
||||
## {% linkable_title Notes %}
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
### Incident Types
|
||||
### {% linkable_title Incident Types %}
|
||||
|
||||
You can explicitly include or exclude incident types. Specifying `include`s restricts the incidents to those types. Specifying `exclude`s will return all incident types except those specified.
|
||||
|
||||
@ -55,6 +71,6 @@ These incident types are available:
|
||||
- Vandalism
|
||||
- Other
|
||||
|
||||
### Events
|
||||
### {% linkable_title Events %}
|
||||
|
||||
The `crimealerts` sensor fires a `crimealerts_incident` event when a new incident is detected, including the type, time, and location of the incident.
|
||||
|
@ -16,7 +16,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.
|
||||
|
||||
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 recoder component on startup.
|
||||
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.
|
||||
|
||||
To enable the statistics sensor, add the following lines to your `configuration.yaml`:
|
||||
|
@ -14,7 +14,7 @@ ha_release: pre 0.7
|
||||
---
|
||||
|
||||
|
||||
The `worldclock` sensor platform simple displays the current time in a different time zone
|
||||
The `worldclock` sensor platform simply displays the current time in a different time zone
|
||||
|
||||
To enable this sensor in your installation, add the following to your `configuration.yaml` file:
|
||||
|
||||
|
55
source/_components/sensor.xiaomi_miio.markdown
Normal file
55
source/_components/sensor.xiaomi_miio.markdown
Normal file
@ -0,0 +1,55 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Xiaomi Air Quality Monitor"
|
||||
description: "Instructions how to integrate your Xiaomi Mi Air Quality Monitor within Home Assistant."
|
||||
date: 2018-02-28 08:35
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: xiaomi.png
|
||||
ha_category: Sensor
|
||||
ha_version: 0.66
|
||||
ha_iot_class: "Local Polling"
|
||||
---
|
||||
|
||||
The `xiaomi_miio` sensor platform is observing your Xiaomi Mi Air Quality Monitor (PM2.5) and reporting the air quality index.
|
||||
|
||||
Currently, the supported features are:
|
||||
|
||||
* Air Quality Index (AQI)
|
||||
* Attributes
|
||||
- power
|
||||
- charging
|
||||
- battery
|
||||
- time_stat
|
||||
|
||||
Please follow the instructions on [Retrieving the Access Token](/components/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token.
|
||||
|
||||
To add a Xiaomi Mi Air Quality Monitor to your installation, add the following to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
sensor:
|
||||
# Example configuration.yaml entry
|
||||
sensor:
|
||||
- platform: xiaomi_miio
|
||||
name: Xiaomi Air Quality Monitor
|
||||
host: 192.168.130.73
|
||||
token: YOUR_TOKEN
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
host:
|
||||
description: The IP address of your miio device.
|
||||
required: true
|
||||
type: string
|
||||
token:
|
||||
description: The API token of your miio device.
|
||||
required: true
|
||||
type: string
|
||||
name:
|
||||
description: The name of your miio device.
|
||||
required: false
|
||||
type: string
|
||||
default: Xiaomi Miio Sensor
|
||||
{% endconfiguration %}
|
36
source/_components/switch.vesync.markdown
Normal file
36
source/_components/switch.vesync.markdown
Normal file
@ -0,0 +1,36 @@
|
||||
---
|
||||
layout: page
|
||||
title: "VeSync Switch"
|
||||
description: "Instructions on how to set up Etekcity VeSync switches within Home Assistant."
|
||||
date: 2018-03-09 02:11
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: vesync.png
|
||||
ha_category: Switch
|
||||
ha_release: 0.66
|
||||
---
|
||||
|
||||
The `vesync` switch platform enabled integration with Etekcity VeSync smart switches.
|
||||
|
||||
To use your VeSync switches, you must first register your switches with the VeSync app. Once registration is complete you must add the following to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
switch:
|
||||
- platform: vesync
|
||||
username: username
|
||||
password: password
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
username:
|
||||
description: Username needed to log in to VeSync.
|
||||
required: true
|
||||
type: string
|
||||
password:
|
||||
description: Password needed to log in to VeSync.
|
||||
required: true
|
||||
type: string
|
||||
{% endconfiguration %}
|
16
source/_components/switch.volvooncall.markdown
Normal file
16
source/_components/switch.volvooncall.markdown
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Volvo On Call"
|
||||
description: "Instructions for how to integrate Volvo On Call into Home Assistant."
|
||||
date: 2016-10-02 17:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: volvo.png
|
||||
ha_category: Presence Detection
|
||||
ha_release: "0.30"
|
||||
---
|
||||
|
||||
|
||||
Integrates Volvo on Call into Home Assistant. See the [main component](/components/volvooncall/) for configuration instructions.
|
@ -13,12 +13,38 @@ ha_version: 0.56
|
||||
ha_iot_class: "Local Polling"
|
||||
---
|
||||
|
||||
The `xiaomi_miio` switch platform allows you to control the state of your Xiaomi Smart WiFi Socket aka Plug or Xiaomi Smart Power Strip.
|
||||
|
||||
Currently, the supported features are `on`, `off`. If the device provides the current load, it will be reported.
|
||||
The `xiaomi_miio` switch platform allows you to control the state of your Xiaomi Smart WiFi Socket aka Plug, Xiaomi Smart Power Strip and Xiaomi Chuangmi Plug V1.
|
||||
|
||||
Please follow the instructions on [Retrieving the Access Token](/components/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token to use in the `configuration.yaml` file.
|
||||
|
||||
## Features
|
||||
|
||||
### Xiaomi Smart WiFi Socket
|
||||
|
||||
* Power (on, off)
|
||||
* Attributes
|
||||
- Temperature
|
||||
|
||||
### Xiaomi Chuangmi Plug V1
|
||||
|
||||
* Power (on, off)
|
||||
* USB (on, off)
|
||||
* Attributes
|
||||
- Temperature
|
||||
|
||||
### Xiaomi Smart Power Strip
|
||||
|
||||
* Power (on, off)
|
||||
* Wifi LED (on, off)
|
||||
* Power Price (0...999)
|
||||
* Power Mode (green, normal) (Power Strip V1 only)
|
||||
* Attributes
|
||||
- Temperature
|
||||
- Current
|
||||
- Load power
|
||||
- Wifi LED
|
||||
- Mode (Power Strip V1 only)
|
||||
|
||||
To add a plug to your installation, add the following to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
@ -35,7 +61,7 @@ Configuration variables:
|
||||
- **host** (*Required*): The IP of your miio device.
|
||||
- **token** (*Required*): The API token of your miio device.
|
||||
- **name** (*Optional*): The name of your miio device.
|
||||
- **model** (*Optional*): The model of your miio device. Valid values are chuangmi.plug.v1`, `qmi.powerstrip.v1`, `zimi.powerstrip.v2`, `chuangmi.plug.m1` and `chuangmi.plug.v2`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available.
|
||||
- **model** (*Optional*): The model of your miio device. Valid values are `chuangmi.plug.v1`, `qmi.powerstrip.v1`, `zimi.powerstrip.v2`, `chuangmi.plug.m1` and `chuangmi.plug.v2`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available.
|
||||
|
||||
{% configuration %}
|
||||
host:
|
||||
@ -56,3 +82,39 @@ model:
|
||||
required: false
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
||||
## {% linkable_title Platform Services %}
|
||||
|
||||
### {% linkable_title Service `switch.xiaomi_miio_set_wifi_led_on` %} (Power Strip only)
|
||||
|
||||
Turn the wifi led on.
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
|---------------------------|----------|---------------------------------------------------------|
|
||||
| `entity_id` | yes | Only act on a specific air purifier. Else targets all. |
|
||||
|
||||
### {% linkable_title Service `switch.xiaomi_miio_set_wifi_led_off` %} (Power Strip only)
|
||||
|
||||
Turn the wifi led off.
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
|---------------------------|----------|---------------------------------------------------------|
|
||||
| `entity_id` | yes | Only act on a specific air purifier. Else targets all. |
|
||||
|
||||
### {% linkable_title Service `switch.xiaomi_miio_set_power_price` %} (Power Strip)
|
||||
|
||||
Set the power price.
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
|---------------------------|----------|---------------------------------------------------------|
|
||||
| `entity_id` | yes | Only act on a specific air purifier. Else targets all. |
|
||||
| `price` | no | Power price, between 0 and 999. |
|
||||
|
||||
### {% linkable_title Service `switch.xiaomi_miio_set_power_mode` %} (Power Strip V1 only)
|
||||
|
||||
Set the power mode.
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
|---------------------------|----------|---------------------------------------------------------------|
|
||||
| `entity_id` | yes | Only act on a specific xiaomi miio entity. Else targets all. |
|
||||
| `mode` | no | Power mode, valid values are 'normal' and 'green' |
|
||||
|
@ -32,6 +32,8 @@ Install the latest version of [PhantomJS]( http://phantomjs.org/download.html).
|
||||
Don't use apt-get to install PhantomJS. This version is not compatible.
|
||||
</p>
|
||||
|
||||
If you use the PhantomJS option, specify `driver: phantomjs` in your `usps` configuration.
|
||||
|
||||
|
||||
### Chrome
|
||||
|
||||
@ -60,6 +62,7 @@ Configuration options for the USPS component:
|
||||
|
||||
- **username** (*Required*): The username to access the MyUSPS service.
|
||||
- **password** (*Required*): The password for the given username.
|
||||
- **driver** (*Required*): Specify if you're using `phantomjs` or `chrome`.
|
||||
- **name** (*Optional*): Prefix for sensor names (defaults to "USPS")
|
||||
|
||||
<p class='note warning'>
|
||||
|
@ -13,8 +13,7 @@ ha_release: 0.51
|
||||
ha_iot_class: "Local Polling"
|
||||
---
|
||||
|
||||
The `xiaomi miio` vacuum platform allows you to control the state of your
|
||||
[Xiaomi Mi Robot Vacuum](http://www.mi.com/roomrobot/).
|
||||
The `xiaomi miio` vacuum platform allows you to control the state of your [Xiaomi Mi Robot Vacuum](http://www.mi.com/roomrobot/).
|
||||
|
||||
Currently supported features are:
|
||||
|
||||
@ -50,10 +49,7 @@ Configuration variables:
|
||||
|
||||
## {% linkable_title Platform Services %}
|
||||
|
||||
In addition to [all of the services provided by the `vacuum` component]
|
||||
]) (`turn_on`, `turn_off`, `start_pause`, `stop`, `return_to_home`, `locate`,
|
||||
`set_fan_speed` and `send_command`), the `xiaomi` platform introduces specific
|
||||
services to access the remote control mode of the robot. These are:
|
||||
In addition to all of the services provided by the `vacuum` component (`turn_on`, `turn_off`, `start_pause`, `stop`, `return_to_home`, `locate`, `set_fan_speed` and `send_command`), the `xiaomi` platform introduces specific services to access the remote control mode of the robot. These are:
|
||||
|
||||
- `xiaomi_remote_control_start`
|
||||
- `xiaomi_remote_control_stop`
|
||||
@ -62,8 +58,7 @@ services to access the remote control mode of the robot. These are:
|
||||
|
||||
### {% linkable_title Service `vacuum.xiaomi_remote_control_start` %}
|
||||
|
||||
Start the remote control mode of the robot. You can then move it with
|
||||
`remote_control_move`; when done, call `remote_control_stop`.
|
||||
Start the remote control mode of the robot. You can then move it with `remote_control_move`; when done, call `remote_control_stop`.
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
|---------------------------|----------|-------------------------------------------------------|
|
||||
@ -79,8 +74,7 @@ Exit the remote control mode of the robot.
|
||||
|
||||
### {% linkable_title Service `vacuum.xiaomi_remote_control_move` %}
|
||||
|
||||
Remote control the robot. Please ensure you first set it in remote control
|
||||
mode with `remote_control_start`.
|
||||
Remote control the robot. Please ensure you first set it in remote control mode with `remote_control_start`.
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
|---------------------------|----------|-------------------------------------------------------|
|
||||
@ -102,9 +96,8 @@ Enter remote control mode, make one move, stop, and exit remote control mode.
|
||||
|
||||
## {% linkable_title Attributes %}
|
||||
|
||||
In addition to [all of the attributes provided by the `vacuum` component](https://home-assistant.io/components/vacuum/#attributes),
|
||||
(`battery_icon`, `cleaned_area`, `fan_speed`, `fan_speed_list`, `status`, and
|
||||
`params`), the `xiaomi` platform introduces specific attributes. These are:
|
||||
In addition to [all of the attributes provided by the `vacuum` component](/components/vacuum/#attributes),
|
||||
(`battery_icon`, `cleaned_area`, `fan_speed`, `fan_speed_list`, `status`, and `params`), the `xiaomi` platform introduces specific attributes. These are:
|
||||
|
||||
- `cleaning_time`
|
||||
- `do_not_disturb`
|
||||
@ -132,12 +125,45 @@ The following table shows the units of measurement for each attribute:
|
||||
## {% linkable_title Retrieving the Access Token %}
|
||||
|
||||
<p class='note'>
|
||||
This token (32 hexadecimal characters) is required for the Xiaomi Mi Robot
|
||||
Vacuum, Xiaomi Philips Lights and Xiaomi IR Remote. The Xiaomi Gateway uses another security
|
||||
method and requires a `key` (16 alphanumeric chars), which can be obtained
|
||||
easily via a hidden menu item at the Mi-Home app.
|
||||
As per [python-miio issue 185](https://github.com/rytilahti/python-miio/issues/185) the Mi-Home app no longer stores the token within the database (it's retrieved from Xiaomi servers from version 5.0.31+). Currently the only known fix is to uninstall, then install a downgraded version of the apk. Apkmirror is a trusted source for older versions of the app. [Mi-Home version 5.0.0](https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-0-release/) is confirmed as working for the following Android methods.
|
||||
|
||||
This token (32 hexadecimal characters) is required for the Xiaomi Mi Robot Vacuum, Xiaomi Philips Lights and Xiaomi IR Remote. The Xiaomi Gateway uses another security method and requires a `key` (16 alphanumeric chars), which can be obtained
|
||||
easily via a hidden menu item at the Mi-Home app or using the `miio` command line tool.
|
||||
</p>
|
||||
|
||||
#### {% linkable_title Miio command line tool %}
|
||||
|
||||
You can install the command line tool with:
|
||||
|
||||
```bash
|
||||
$ npm install -g miio
|
||||
```
|
||||
|
||||
Discovering devices on current network
|
||||
|
||||
```bash
|
||||
$ miio discover
|
||||
```
|
||||
|
||||
This will list devices that are connected to the same network as your computer. Let it run for a while so it has a chance to reach all devices, as it might take a minute or two for all devices to answer.
|
||||
|
||||
The commands outputs each device on this format:
|
||||
|
||||
```text
|
||||
Device ID: 48765421
|
||||
Model info: zhimi.airpurifier.m1
|
||||
Address: 192.168.100.9
|
||||
Token: token-as-hex-here via auto-token
|
||||
Support: At least basic
|
||||
```
|
||||
|
||||
The information output is:
|
||||
|
||||
* __Device ID__ - the unique identifier of the device, does not change if the device is reset.
|
||||
* __Model ID__ - the model id if it could be determined, this indicates what type of device it is
|
||||
* __Address__ - the IP that the device has on the network
|
||||
* __Token__ - the token of the device or ??? if it could not be automatically determined
|
||||
|
||||
#### {% linkable_title Windows and Android %}
|
||||
|
||||
To fetch the token follow these instructions depending on your mobile phone platform.
|
||||
@ -204,7 +230,7 @@ To fetch the token follow these instructions depending on your mobile phone plat
|
||||
3. Get ADB f.e. `apt-get install android-tools-adb`
|
||||
4. `adb devices` should list your device
|
||||
5. `adb root` (does work for development builds only: ones with `ro.debuggable=1`)
|
||||
6. `adb shell`
|
||||
6. `adb shell` (for those using Magisk based root the previous command won't work. After entering a shell, type `su` to enter the root shell)
|
||||
7. `echo "select name,localIP,token from devicerecord;" | sqlite3 /data/data/com.xiaomi.smarthome/databases/miio2.db` returns a list of all registered devices including IP address and token.
|
||||
|
||||
#### {% linkable_title iOS %}
|
||||
|
@ -7,6 +7,7 @@ sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
featured: true
|
||||
logo: dark_sky.png
|
||||
ha_category: Weather
|
||||
ha_release: 0.61
|
||||
|
@ -22,6 +22,7 @@ weblink:
|
||||
entities:
|
||||
- name: Router
|
||||
url: http://192.168.1.1/
|
||||
icon: mdi:router-wireless
|
||||
- name: Home Assistant
|
||||
url: https://home-assistant.io
|
||||
- name: Grafana
|
||||
|
@ -8,6 +8,6 @@ comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
ha_category: Example configuration.yaml
|
||||
ha_external_link: https://github.com/GreenTurtwig/personal-home-automation/tree/master/Home%20Assistant
|
||||
ha_external_link: https://github.com/GreenTurtwig/personal-home-automation/blob/master/configuration.yaml
|
||||
---
|
||||
|
||||
|
@ -28,7 +28,7 @@ Configuration variables:
|
||||
- **longitude** (*Optional*): Longitude of your location required to calculate the time the sun rises and sets.
|
||||
- **elevation** (*Optional*): Altitude above sea level in meters. Impacts weather/sunrise data.
|
||||
- **unit_system** (*Optional*): `metric` for Metric, `imperial` for Imperial.
|
||||
- **time_zone** (*Optional*): Pick yours from here: http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
- **time_zone** (*Optional*): Pick yours from here: [http://en.wikipedia.org/wiki/List_of_tz_database_time_zones](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
|
||||
- **name** (*Optional*): Name of the location where Home Assistant is running.
|
||||
- **customize** (*Optional*): [Customize](/docs/configuration/customizing-devices/) entities.
|
||||
- **customize_domain** (*Optional*): [Customize](/docs/configuration/customizing-devices/) all entities in a domain.
|
||||
|
@ -18,7 +18,7 @@ Home Assistant contains a few built-in events that are used to coordinate betwee
|
||||
Event `homeassistant_start` is fired when all components from the configuration have been intitialized. This is the event that will start the timer firing off `time_changed` events.
|
||||
|
||||
<p class='note warning'>
|
||||
Starting 0.42, it is no longer possible to listen for event `homeassistant_start`. Use the 'homeassistant' [platform](docs/automation/trigger) instead.
|
||||
Starting 0.42, it is no longer possible to listen for event `homeassistant_start`. Use the 'homeassistant' [platform](/docs/automation/trigger) instead.
|
||||
</p>
|
||||
|
||||
### {% linkable_title Event `homeassistant_stop` %}
|
||||
|
@ -7,7 +7,6 @@ sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
redirect_from: /getting-started/basic/#remote-access
|
||||
---
|
||||
|
||||
If you're interested in logging in to Home Assistant while away, you'll have to make your instance remotely accessible. Remember to follow the [securing checklist](/docs/configuration/securing/) before doing this.
|
||||
|
@ -43,22 +43,38 @@ The best way to show what AppDaemon does is through a few simple examples.
|
||||
|
||||
### {% linkable_title Sunrise/Sunset Lighting %}
|
||||
|
||||
Lets start with a simple App to turn a light on every night at sunset and off every morning at sunrise. Every App when first started will have its `initialize()` function called which gives it a chance to register a callback for AppDaemons's scheduler for a specific time. In this case we are using `run_at_sunrise()` and `run_at_sunset()` to register 2 separate callbacks. The argument `0` is the number of seconds offset from sunrise or sunset and can be negative or positive. For complex intervals it can be convenient to use Python's `datetime.timedelta` class for calculations. When sunrise or sunset occurs, the appropriate callback function, `sunrise_cb()` or `sunset_cb()` is called which then makes a call to Home Assistant to turn the porch light on or off by activating a scene. The variables `args["on_scene"]` and `args["off_scene"]` are passed through from the configuration of this particular App, and the same code could be reused to activate completely different scenes in a different version of the App.
|
||||
Lets start with a simple App to turn a light on every night fifteen
|
||||
minutes (900 seconds) before sunset and off every morning at sunrise.
|
||||
Every App when first started will have its ``initialize()`` function
|
||||
called which gives it a chance to register a callback for AppDaemons's
|
||||
scheduler for a specific time. In this case we are using
|
||||
`run_at_sunrise()` and `run_at_sunset()` to register 2 separate
|
||||
callbacks. The named argument `offset` is the number of seconds offset
|
||||
from sunrise or sunset and can be negative or positive (it defaults to
|
||||
zero). For complex intervals it can be convenient to use Python's
|
||||
`datetime.timedelta` class for calculations. In the example below,
|
||||
when sunrise or just before sunset occurs, the appropriate callback
|
||||
function, `sunrise_cb()` or `before_sunset_cb()` is called which
|
||||
then makes a call to Home Assistant to turn the porch light on or off by
|
||||
activating a scene. The variables `args["on_scene"]` and
|
||||
`args["off_scene"]` are passed through from the configuration of this
|
||||
particular App, and the same code could be reused to activate completely
|
||||
different scenes in a different version of the App.
|
||||
|
||||
```python
|
||||
import homeassistant.appapi as appapi
|
||||
import appdaemon.plugins.hass.hassapi as hass
|
||||
|
||||
class OutsideLights(appapi.AppDaemon):
|
||||
class OutsideLights(hass.Hass):
|
||||
|
||||
def initialize(self):
|
||||
self.run_at_sunrise(self.sunrise_cb, 0)
|
||||
self.run_at_sunset(self.sunset_cb, 0)
|
||||
|
||||
def sunrise_cb(self, kwargs):
|
||||
self.turn_on(self.args["off_scene"])
|
||||
def initialize(self):
|
||||
self.run_at_sunrise(self.sunrise_cb)
|
||||
self.run_at_sunset(self.before_sunset_cb, offset=-900)
|
||||
|
||||
def sunrise_cb(self, kwargs):
|
||||
self.turn_on(self.args["off_scene"])
|
||||
|
||||
def sunset_cb(self, kwargs):
|
||||
self.turn_on(self.args["on_scene"])
|
||||
def before_sunset_cb(self, kwargs):
|
||||
self.turn_on(self.args["on_scene"])
|
||||
|
||||
```
|
||||
|
||||
|
@ -9,11 +9,12 @@ sharing: true
|
||||
footer: true
|
||||
---
|
||||
|
||||
Backing up your Home Assistant configuration to USB drive. A good plus side is that you don't need to mask all your passwords since the backup is locally at your home/residence.
|
||||
This will step you through the process of setting up a backup of your Home Assistant configuration to a USB device. This is a good method if you don't want to mask all of your passwords since the backup is kept locally at your home/residence.
|
||||
|
||||
### {% linkable_title Requirements %}
|
||||
First you need a USB drive. Once you have one you need to prepare it to be used on your device.
|
||||
Once connected you want to format/work with the drive. To know what path it is in, you can check with `dmesg`.
|
||||
|
||||
First, you need a USB drive. It should be formatted properly for your device and connected to your device before beginning. Any type of partition will work, but Linux filesystems are preferred so that you can set permissions.
|
||||
Once connected you want to mount the drive. To find the path where it is located, you can use the `dmesg` command.
|
||||
|
||||
```bash
|
||||
# dmesg | grep sd
|
||||
@ -32,16 +33,17 @@ Once connected you want to format/work with the drive. To know what path it is i
|
||||
[726259.209004] sd 0:0:0:0: [sda] Attached SCSI removable disk
|
||||
```
|
||||
|
||||
Here we see we have a drive on `/dev/sda1`. We assume you created a partition on the drive to start with. This can be any type of partition. Preferred is a Linux filesystem type so you can set permissions!
|
||||
The device here is `sda` and our partition is `sda1`. So our partition is located here `/dev/sda1`.
|
||||
|
||||
Mount the drive (as root) to `/media`
|
||||
|
||||
```bash
|
||||
# mount /dev/sda1 /media/
|
||||
# sudo mount /dev/sda1 /media/
|
||||
```
|
||||
|
||||
### {% linkable_title Prepare USB Stick %}
|
||||
Change into it and create a folder called `hassbackup` and change the ownership to the user that runs Home Assistant. In my case group and user are both `homeassistant`.
|
||||
### {% linkable_title Prepare the USB Device %}
|
||||
|
||||
Change to the `/media` directory and create a folder called `hassbackup`. Change the ownership to the user that runs Home Assistant. In this example case, the user and group are both `homeassistant`.
|
||||
|
||||
```bash
|
||||
# cd /media/
|
||||
@ -54,11 +56,10 @@ drwxr-xr-x 22 root root 4096 Mar 22 18:37 ..
|
||||
drwxr-xr-x 2 homeassistant homeassistant 4096 Apr 29 10:36 hassbackup
|
||||
drwx------ 2 root root 16384 Apr 29 10:18 lost+found
|
||||
```
|
||||
You can ignore 'lost+found'.
|
||||
|
||||
### {% linkable_title Install Dependency %}
|
||||
|
||||
In order to preserve space on your drive we use zip. Install that too.
|
||||
The script in the next section uses zip to preserve space on your drive. So we will install zip next.
|
||||
|
||||
```bash
|
||||
/media# apt-get install zip
|
||||
@ -68,9 +69,9 @@ Building dependency tree
|
||||
Setting up zip (3.0-8) ...
|
||||
```
|
||||
|
||||
### {% linkable_title Install and run script %}
|
||||
### {% linkable_title Download and Run Script %}
|
||||
|
||||
Become the `homeassistant` user and place the following [script](https://gist.github.com/riemers/041c6a386a2eab95c55ba3ccaa10e7b0) to a place of your liking.
|
||||
Become the `homeassistant` user (or whatever user runs Home Assistant). Change to whatever directory you would like the [script](https://gist.github.com/riemers/041c6a386a2eab95c55ba3ccaa10e7b0) placed into and run the following command.
|
||||
|
||||
```bash
|
||||
# wget https://gist.githubusercontent.com/riemers/041c6a386a2eab95c55ba3ccaa10e7b0/raw/86727d4e72e9757da4f68f1c9d784720e72d0e99/usb_backup.sh
|
||||
@ -82,7 +83,7 @@ Make the downloaded script executable.
|
||||
# chmod +x usb_backup.sh
|
||||
```
|
||||
|
||||
Open up the file and change the paths you want to use, then simply run the `./usb_backup.sh`.
|
||||
Edit the script file using your preferred text editor (use nano if you are not advanced). Change the paths to reflect your configuration, then simply run `./usb_backup.sh`.
|
||||
|
||||
```bash
|
||||
$ .homeassistant/extraconfig/shell_code/usb_backup.sh
|
||||
@ -91,26 +92,27 @@ $ .homeassistant/extraconfig/shell_code/usb_backup.sh
|
||||
[i] Keeping all files no prunning set
|
||||
```
|
||||
|
||||
### {% linkable_title Crontab %}
|
||||
In order for this to automatically make a backup every night at 3 am, you can add a crontab for it as the `homeassistant` user.
|
||||
Change below path to where you placed the `usb_backup.sh` and run the following line.
|
||||
### {% linkable_title Set Up Crontab %}
|
||||
|
||||
To automatically backup your configuration on a schedule, you can add a crontab for it as the `homeassistant` user.
|
||||
Change the path below to the directory where you placed the `usb_backup.sh` and run the following line. This will backup every night at 3 am.
|
||||
|
||||
```bash
|
||||
(crontab -l 2>/dev/null; echo "0 3 * * * /home/homeassistant/.homeassistant/extraconfig/shell_code/usb_backup.sh") | crontab -
|
||||
```
|
||||
|
||||
### {% linkable_title Auto mount %}
|
||||
### {% linkable_title Auto Mount the USB Device %}
|
||||
|
||||
This does not automatically mount your USB drive at boot. You need to do that manually or add a line to your `/etc/fstab` file.
|
||||
NOTE: This does not automatically mount your USB drive at boot. You will need to manually mount your drive after each boot or add a line to your `/etc/fstab` file.
|
||||
|
||||
If your drive is on `/dev/sda1`, you could add an entry to your `/etc/fstab` like so:
|
||||
|
||||
```text
|
||||
/dev/sda1 /media ext4 defaults,noatime 0 1
|
||||
```
|
||||
|
||||
Manual step to mount the USB drive:
|
||||
To manually mount a USB drive located at `/dev/sda1`, run the following line:
|
||||
|
||||
```bash
|
||||
# mount /dev/sda1 /media
|
||||
```
|
||||
|
||||
Alternatively, auto-mount the drive by adding the following entry to your `/etc/fstab`:
|
||||
|
||||
```text
|
||||
/dev/sda1 /media ext4 defaults,noatime 0 1
|
||||
```
|
||||
|
@ -14,13 +14,17 @@ Using NGINX as a proxy for Home Assistant allows you to serve Home Assistant sec
|
||||
|
||||
### {% linkable_title 1. Get a domain name forwarded to your IP %}
|
||||
|
||||
Chances are, you have a dynamic IP Address (your ISP changes your address periodically). If this is true, you can use a Dynamic DNS service to obtain a domain and set it up to update with you IP. If you purchase your own domain name, you will be able to easily get a trusted SSL certificate later.
|
||||
Chances are, you have a dynamic IP address (your ISP changes your address periodically). If this is true, you can use a Dynamic DNS service to obtain a domain and set it up to update with you IP. If you purchase your own domain name, you will be able to easily get a trusted SSL certificate later.
|
||||
|
||||
|
||||
### {% linkable_title 2 Install nginx on your server %}
|
||||
|
||||
This will vary depending on your OS. Check out Google for this. After installing, ensure that NGINX is not running.
|
||||
|
||||
<p class='note'>
|
||||
You will at least need nginx >= 1.3.13, as WebSocket support is required for the reverse proxy.
|
||||
</p>
|
||||
|
||||
### {% linkable_title 3. Obtain an SSL certificate %}
|
||||
|
||||
There are two ways of obtaining an SSL certificate.
|
||||
@ -28,7 +32,7 @@ There are two ways of obtaining an SSL certificate.
|
||||
#### {% linkable_title Using Let's Encrypt %}
|
||||
If you purchased your own domain, you can use https://letsencrypt.org/ to obtain a free, publicly trusted SSL certificate. This will allow you to work with services like IFTTT. Download and install per the instructions online and get a certificate using the following command.
|
||||
|
||||
```
|
||||
```bash
|
||||
$ sudo ./letsencrypt-auto certonly --standalone -d example.com -d www.example.com
|
||||
```
|
||||
|
||||
@ -75,14 +79,13 @@ $ sudo ln ../sites-available/hass default
|
||||
|
||||
Double check this configuration to ensure all settings are correct and start nginx.
|
||||
|
||||
|
||||
### {% linkable_title 8. Port forwarding. %}
|
||||
|
||||
Forward ports 443 and 80 to your server on your router. Do not forward port 8123.
|
||||
|
||||
### {% linkable_title NGINX Config %}
|
||||
|
||||
```
|
||||
```text
|
||||
map $http_upgrade $connection_upgrade {
|
||||
default upgrade;
|
||||
'' close;
|
||||
|
@ -14,7 +14,7 @@ redirect_from: /getting-started/installation/
|
||||
Beginners should check our [Getting started guide](/getting-started/) first. This is for users that require advanced installations.
|
||||
</p>
|
||||
|
||||
Home Assistant provides multiple ways to be installed. A requirement is that you have [Python 3.5+](https://www.python.org/downloads/) installed.
|
||||
Home Assistant provides multiple ways to be installed. A requirement is that you have [Python 3.5.3 or later](https://www.python.org/downloads/) installed.
|
||||
|
||||
<div class="text-center hass-option-cards" markdown="0">
|
||||
<a class='option-card' href='/getting-started/'>
|
||||
|
@ -21,10 +21,10 @@ $ sudo pacman -S python-pip
|
||||
and Home Assistant itself.
|
||||
|
||||
```bash
|
||||
$ pip3 install homeassistant
|
||||
$ pip3 install --user homeassistant
|
||||
```
|
||||
|
||||
Home Assistant is part of the [AUR](https://aur.archlinux.org/packages/home-assistant/). This means that it can be installed with `pacaur`:
|
||||
Home Assistant is part of the [AUR](https://aur.archlinux.org/packages/home-assistant/). This means that it can be installed with `pacaur`. This package is often broken or outdated:
|
||||
|
||||
```bash
|
||||
$ pacaur -S home-assistant
|
||||
|
@ -11,6 +11,8 @@ footer: true
|
||||
|
||||
[armbian](https://www.armbian.com) runs on a wide-variety of [ARM development boards](https://www.armbian.com/download/). Currently there are around 50 boards supported inclusive the OrangePi family, Cubieboard, Pine64, and Odroid.
|
||||
|
||||
Python 3.5.3 or later is required.
|
||||
|
||||
Setup Python and `pip`
|
||||
|
||||
```bash
|
||||
|
@ -9,9 +9,9 @@ sharing: true
|
||||
footer: true
|
||||
---
|
||||
|
||||
To run Python 3.x on [CentOS](https://www.centos.org/) or RHEL (Red Hat Enterprise Linux), [Software Collections](https://www.softwarecollections.org/en/scls/rhscl/rh-python34/) needs to be activated first.
|
||||
To run Python 3.x on [CentOS](https://www.centos.org/) or RHEL (Red Hat Enterprise Linux), [Software Collections](https://www.softwarecollections.org/en/scls/rhscl/rh-python36/) needs to be activated first.
|
||||
|
||||
There are effort in progress to bring Python 3.4 to [Extra Packages for Enterprise Linux (EPEL)](https://fedoraproject.org/wiki/EPEL) which will allow you to follow the [Fedora Instructions](/docs/installation/fedora/).
|
||||
You must install Python 3.5.3 or later. Software Collections version of Python 3.5 is 3.5.1 so this guide uses Python 3.6.
|
||||
|
||||
### {% linkable_title Using Software Collections %}
|
||||
|
||||
@ -21,21 +21,21 @@ First of all install the software collection repository as root. For example, on
|
||||
$ yum install centos-release-scl
|
||||
```
|
||||
|
||||
Then install the Python 3.5 package:
|
||||
Then install the Python 3.6 package:
|
||||
|
||||
```bash
|
||||
$ yum install rh-python35
|
||||
$ yum install rh-python36
|
||||
```
|
||||
|
||||
Once installed, switch to your `homeassistant` user (if you've set one up), enable the software collection and check that it has set up the new version of Python:
|
||||
|
||||
```bash
|
||||
$ scl enable rh-python35 bash
|
||||
$ scl enable rh-python36 bash
|
||||
$ python --version
|
||||
Python 3.5.1
|
||||
Python 3.6.3
|
||||
```
|
||||
|
||||
You will be in a command shell set up with Python 3.5 as your default version. The virtualenv and pip commands will be correct for this version, so you can now create a virtual environment and install Home Assistant following the main [instructions](https://home-assistant.io/docs/installation/virtualenv/#step-4-set-up-the-virtualenv).
|
||||
You will be in a command shell set up with Python 3.6 as your default version. The virtualenv and pip commands will be correct for this version, so you can now create a virtual environment and install Home Assistant following the main [instructions](https://home-assistant.io/docs/installation/virtualenv/#step-4-set-up-the-virtualenv).
|
||||
|
||||
You will need to enable the software collection each time you log on before you activate your virtual environment.
|
||||
|
||||
@ -55,7 +55,7 @@ User=homeassistant
|
||||
Environment=VIRTUAL_ENV="/srv/homeassistant"
|
||||
Environment=PATH="$VIRTUAL_ENV/bin:$PATH"
|
||||
# ExecStart using software collection:
|
||||
ExecStart=/usr/bin/scl enable rh-python35 -- /srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant"
|
||||
ExecStart=/usr/bin/scl enable rh-python36 -- /srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant"
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
@ -20,14 +20,16 @@ $ docker run -d --name="home-assistant" -v /path/to/your/config:/config -v /etc/
|
||||
|
||||
### {% linkable_title macOS %}
|
||||
|
||||
When using `boot2docker` on macOS you are unable to map the local time to your Docker container. Use `-e "TZ=America/Los_Angeles"` instead of `-v /etc/localtime:/etc/localtime:ro`. Replace "America/Los_Angeles" with [your timezone](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
|
||||
When using `docker-ce` (or `boot2docker`) on macOS, you are unable to map the local timezone to your Docker container ([Docker issue](https://github.com/docker/for-mac/issues/44)). Instead of `-v /etc/localtime:/etc/localtime:ro`, just pass in the timezone environment variable when you launch the container, ex: `-e "TZ=America/Los_Angeles"`. Replace "America/Los_Angeles" with [your timezone](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
|
||||
|
||||
Additionally, if your expectation is that you will be able to browse directly to `http://localhost:8123` on your macOS host, then you will also need to replace the `--net=host` switch with `-p 8123:8123`. This is currently the only way to forward ports on to your actual host (macOS) machine instead of the virtual machine inside `xhyve`. More detail on this can be found in [the docker forums](https://forums.docker.com/t/should-docker-run-net-host-work/14215/10).
|
||||
If you wish to browse directly to `http://localhost:8123` from your macOS host, meaning forward ports directly to the container, replace the `--net=host` switch with `-p 8123:8123`. More detail can be found in [the docker forums](https://forums.docker.com/t/should-docker-run-net-host-work/14215/10).
|
||||
|
||||
```bash
|
||||
$ docker run -d --name="home-assistant" -v /path/to/your/config:/config -e "TZ=America/Los_Angeles" -p 8123:8123 homeassistant/home-assistant
|
||||
```
|
||||
|
||||
Alternatively, `docker-compose` works with any recent release of `docker-ce` on macOS. Note that (further down this page) we provide an example `docker-compose.yml` however it differs from the `docker run` example above. To make the .yml directives match, you would need to make _two_ changes: first add the equivalent `ports:` directive, then _remove_ the `network_mode: host` section. This is because `Port mapping is incompatible with network_mode: host:`. More details can be found at [Docker networking docs] (https://docs.docker.com/engine/userguide/networking/#default-networks). Note also the `/dev/tty*` device name used by your Arduino etc. devices will differ from the Linux example, so the compose `mount:` may require updates.
|
||||
|
||||
### {% linkable_title Windows %}
|
||||
|
||||
When running Home Assistant in Docker on Windows, you may have some difficulty getting ports to map for routing (since the `--net=host` switch actually applies to the hypervisor's network interface). To get around this, you will need to add port proxy ipv4 rules to your local Windows machine, like so (Replacing '192.168.1.10' with whatever your Windows IP is, and '10.0.50.2' with whatever your Docker container's IP is):
|
||||
@ -160,7 +162,8 @@ As the docker command becomes more complex, switching to `docker-compose` can be
|
||||
```yaml
|
||||
version: '3'
|
||||
services:
|
||||
web:
|
||||
homeassistant:
|
||||
container_name: home-assistant
|
||||
image: homeassistant/home-assistant
|
||||
volumes:
|
||||
- /path/to/your/config:/config
|
||||
@ -188,7 +191,8 @@ or in a `docker-compose.yml` file:
|
||||
```yaml
|
||||
version: '3'
|
||||
services:
|
||||
web:
|
||||
homeassistant:
|
||||
container_name: home-assistant
|
||||
image: homeassistant/home-assistant
|
||||
volumes:
|
||||
- /path/to/your/config:/config
|
||||
|
@ -12,7 +12,7 @@ redirect_from: /docs/hassbian/installation/
|
||||
|
||||
The easiest way to install Home Assistant on your Raspberry Pi is by using HASSbian: a Raspberry Pi image with Home Assistant built-in. The image will install the latest version of Home Assistant on initial boot (~10 minutes).
|
||||
|
||||
1. [Download the Hassbian image][image-download] (364 MB)
|
||||
1. [Download the Hassbian image][image-download]
|
||||
2. Use [Etcher][etcher] to flash the image to your SD card
|
||||
3. Ensure your Raspberry Pi has wired access to the internet for the entire process or configure your wireless network settings **before proceeding to step 4**.
|
||||
4. Insert SD card to Raspberry Pi and turn it on. Initial installation of Home Assistant will take about 5 minutes.
|
||||
|
@ -11,7 +11,7 @@ footer: true
|
||||
|
||||
[macOS](http://www.apple.com/macos/) is available by default on Apple computer. If you run a different operating system, please refer to the other section of the documentation.
|
||||
|
||||
To run Home Assistant on macOS you need to install Python first. Download Python from https://www.python.org/downloads/mac-osx/ and follow the instructions of the installer.
|
||||
To run Home Assistant on macOS you need to install Python first. Download Python 3.5.3 or later from https://www.python.org/downloads/mac-osx/ and follow the instructions of the installer.
|
||||
|
||||
Open a terminal and install Home Assistant.
|
||||
|
||||
|
@ -12,6 +12,16 @@ redirect_from: /getting-started/installation-raspberry-pi/
|
||||
|
||||
This installation of Home Assistant requires the Raspberry Pi to run [Raspbian Lite](https://www.raspberrypi.org/downloads/raspbian/). The installation will be installed in a [Virtual Environment](/docs/installation/virtualenv) with minimal overhead. Instructions assume this is a new installation of Raspbian Lite.
|
||||
|
||||
You must have Python 3.5.3 or later installed, which is the case for Raspbian Stretch.
|
||||
|
||||
<p class='note'>
|
||||
Although these installation steps specifically mention a Raspberry Pi, you can go ahead and proceed on any Linux install as well. This guide is also referred to as the "Advanced Guide" for a virtual environment install.
|
||||
</p>
|
||||
|
||||
<p class='note warning'>
|
||||
Please remember to ensure you're using an [appropriate power supply](https://www.raspberrypi.org/help/faqs/#powerReqs) with your Pi. Mobile chargers may not be suitable, since some are designed to only provide the full power with that manufacturer's handsets. USB ports on your computer also will not supply enough power and must not be used.
|
||||
</p>
|
||||
|
||||
Connect to the Raspberry Pi over SSH. Default password is `raspberry`.
|
||||
You will need to enable SSH access. The Raspberry Pi website has instructions [here](https://www.raspberrypi.org/documentation/remote-access/ssh/).
|
||||
|
||||
@ -61,7 +71,13 @@ $ cd /srv/homeassistant
|
||||
$ python3 -m venv .
|
||||
$ source bin/activate
|
||||
```
|
||||
Once you have activated the virtual environment you will notice the prompt change and then you can install Home Assistant.
|
||||
Once you have activated the virtual environment (notice the prompt change) you will need to run the following command to install a required python package.
|
||||
|
||||
```bash
|
||||
(homeassistant) homeassistant@raspberrypi:/srv/homeassistant $ python3 -m pip install wheel
|
||||
```
|
||||
|
||||
Once you have installed the required python package it is now time to install Home Assistant!
|
||||
|
||||
```bash
|
||||
(homeassistant) homeassistant@raspberrypi:/srv/homeassistant $ pip3 install homeassistant
|
||||
@ -79,3 +95,15 @@ When you run the `hass` command for the first time, it will download, install an
|
||||
</p>
|
||||
|
||||
If you want setup `hass` as a daemon and autostart it on boot please refer to [Autostart Home Assistant](/docs/autostart/).
|
||||
|
||||
### {% linkable_title Updating %}
|
||||
|
||||
To update to the latest version of Home Assistant follow these simple steps:
|
||||
|
||||
```bash
|
||||
$ sudo su -s /bin/bash homeassistant
|
||||
$ source /srv/homeassistant/bin/activate
|
||||
$ pip3 install --upgrade homeassistant
|
||||
```
|
||||
|
||||
Once the last command executes restart the Home Assistant service to apply the latest updates. Please keep in mind that some updates may take longer to boot up than others. If Home Assistant fails to start make sure you check the **Breaking Changes** from the [Release Notes](https://github.com/home-assistant/home-assistant/releases).
|
||||
|
@ -26,7 +26,7 @@ Running these commands will:
|
||||
|
||||
Using the Synology webadmin:
|
||||
|
||||
- Install python3 using the Synology Package Center
|
||||
- Install python3 using the Synology Package Center (be aware, this provides 3.5.1, which is not compatible with Home Assistant 0.65.0 or later)
|
||||
- Create homeassistant user and add to the "users" group
|
||||
|
||||
SSH onto your synology & login as admin or root
|
||||
@ -57,11 +57,15 @@ Use PIP to install Homeassistant package
|
||||
# ./python3 -m pip install homeassistant
|
||||
```
|
||||
|
||||
<p class='note'>
|
||||
Until Synology offer an updated version of Python, Home Assistant 0.64 is the most recent version that will be able to be installed. You can manually specify the version of Home Assistant to install, for example to install version 0.64.3 you would do `./python3 -m pip install homeassistant==0.64.3`
|
||||
</p>
|
||||
|
||||
Create homeassistant config directory & switch to it
|
||||
|
||||
```bash
|
||||
# mkdir /volume1/homeassistant
|
||||
# chown /volume1/homeassistant homeassistant
|
||||
# chown homeassistant /volume1/homeassistant
|
||||
# chmod 755 /volume1/homeassistant
|
||||
# cd /volume1/homeassistant
|
||||
```
|
||||
|
@ -10,12 +10,16 @@ footer: true
|
||||
redirect_from: /getting-started/installation-virtualenv/
|
||||
---
|
||||
|
||||
If you already have Python 3.5 or later installed, you can easily give Home Assistant a spin.
|
||||
If you already have Python 3.5.3 or later installed, you can easily give Home Assistant a spin.
|
||||
|
||||
It's recommended when installing Python packages that you use a [virtual environment](https://docs.python.org/3.5/library/venv.html#module-venv). This will make sure that your Python installation and Home Assistant installation won't impact one another. The following steps will work on most unix like systems.
|
||||
|
||||
_(If you're on a Debian based system, you will need to install Python virtual environment support using `apt-get install python3-pip python3-venv`.)_
|
||||
|
||||
<p class='Note'>
|
||||
It is recommended to use the [advanced guide](/docs/installation/raspberry-pi/) which allows for the installation to run as a `homeassistant` user. The steps below may be shorter but some users find difficulty when applying updates and may run into issues.
|
||||
</p>
|
||||
|
||||
### {% linkable_title Install %}
|
||||
|
||||
1. Create a virtual environment in your current directory:
|
||||
|
@ -8,7 +8,6 @@ comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: mqtt.png
|
||||
redirect_from: /components/mqtt/#picking-a-broker
|
||||
---
|
||||
|
||||
The MQTT component needs you to run an MQTT broker for Home Assistant to connect to. There are four options, each with various degrees of ease of setup and privacy.
|
||||
|
@ -8,7 +8,6 @@ comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: mqtt.png
|
||||
redirect_from: /components/mqtt/#discovery
|
||||
---
|
||||
|
||||
The discovery of MQTT devices will enable one to use MQTT devices with only minimal configuration effort on the side of Home Assistant. The configuration is done on the device itself and the topic used by the device. Similar to the [HTTP binary sensor](/components/binary_sensor.http/) and the [HTTP sensor](/components/sensor.http/). The basic idea is that the device itself adds its configuration into your `configuration.yaml` automatically. To prevent multiple identical entries if a device reconnects a unique identifier is necessary. Two parts are required on the device side: The configuration topic which contains the necessary device type and unique identifier and the remaining device configuration without the device type.
|
||||
@ -44,7 +43,7 @@ The discovery topic need to follow a specific format:
|
||||
|
||||
- `<component>`: One of the supported components, eg. `binary_sensor`.
|
||||
- `<node_id>`: (*Optional*) id of the node providing the topic.
|
||||
- `<object_id>`: The ID of the device. This will become the `entity_id` in Home Assistant.
|
||||
- `<object_id>`: "The ID of the device. This is only to allow for separate topics for each device and is not used for the `entity_id`."
|
||||
- `<>`: The topic `config` or `state` which defines the current action.
|
||||
|
||||
The payload will be checked like an entry in your `configuration.yaml` file if a new device is added. This means that missing variables will be filled with the platform's default values. All configuration variables which are *required* must be present in the initial payload send to `/config`.
|
||||
|
@ -8,7 +8,6 @@ comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: mqtt.png
|
||||
redirect_from: /components/mqtt/#logging
|
||||
---
|
||||
|
||||
The [logger](/components/logger/) component allow the logging of received MQTT messages.
|
||||
|
@ -8,7 +8,6 @@ comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: mqtt.png
|
||||
redirect_from: /components/mqtt/#processing-json
|
||||
---
|
||||
|
||||
The MQTT [switch](/components/switch.mqtt/) and [sensor](/components/sensor.mqtt/) platforms support processing JSON over MQTT messages and parsing them using JSONPath. JSONPath allows you to specify where in the JSON the value resides that you want to use. The following examples will always return the value `100`.
|
||||
|
@ -8,7 +8,6 @@ comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: mqtt.png
|
||||
redirect_from: /components/mqtt/#publish-service
|
||||
---
|
||||
|
||||
The MQTT component will register the service `publish` which allows publishing messages to MQTT topics. There are two ways of specifying your payload. You can either use `payload` to hard-code a payload or use `payload_template` to specify a [template](/topics/templating/) that will be rendered to generate the payload.
|
||||
|
@ -8,7 +8,6 @@ comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: mqtt.png
|
||||
redirect_from: /components/mqtt/#testing-your-setup
|
||||
---
|
||||
|
||||
The `mosquitto` broker package ships commandline tools (often as `*-clients` package) to send and receive MQTT messages. As an alternative have a look at [hbmqtt_pub](http://hbmqtt.readthedocs.org/en/latest/references/hbmqtt_pub.html) and [hbmqtt_sub](http://hbmqtt.readthedocs.org/en/latest/references/hbmqtt_sub.html) which are provided by HBMQTT. For sending test messages to a broker running on localhost check the example below:
|
||||
|
@ -28,6 +28,21 @@ condition:
|
||||
below: '20'
|
||||
```
|
||||
|
||||
If you do not want to combine AND and OR conditions, you can also just list them sequentially, by default all conditions have to be true.
|
||||
The following configuration works the same as the one listed above:
|
||||
|
||||
```yaml
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: 'device_tracker.paulus'
|
||||
state: 'home'
|
||||
- condition: numeric_state
|
||||
entity_id: 'sensor.temperature'
|
||||
below: '20'
|
||||
```
|
||||
|
||||
Currently you need to format your conditions like this to be able to edit them using the [automations editor](/docs/automation/editor/).
|
||||
|
||||
### {% linkable_title OR condition %}
|
||||
|
||||
Test multiple conditions in 1 condition statement. Passes if any embedded condition is valid.
|
||||
|
@ -7,7 +7,6 @@ sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
redirect_from: /docs/tools/scripts/#benchmark
|
||||
---
|
||||
|
||||
For testing the performance of Home Assistant the Benchmark script runs until you exit using Control+C.
|
||||
|
@ -7,7 +7,6 @@ sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
redirect_from: /docs/tools/scripts/#configuration-check
|
||||
---
|
||||
|
||||
Test any changes to your `configuration.yaml` file before launching Home Assistant. This script allows you to test changes without the need to restart Home Assistant.
|
||||
|
@ -7,7 +7,6 @@ sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
redirect_from: /docs/configuration/secrets/#storing-passwords-securely-in-aws
|
||||
---
|
||||
|
||||
Using [Credstash](https://github.com/fugue/credstash) is an alternative way to `secrets.yaml`. They can be managed from the command line via the credstash script.
|
||||
|
@ -7,7 +7,6 @@ sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
redirect_from: /components/influxdb/#data-migration
|
||||
---
|
||||
|
||||
<p class='note warning'>
|
||||
|
@ -7,7 +7,6 @@ sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
redirect_from: /docs/tools/scripts/#existence-of-configuration
|
||||
---
|
||||
|
||||
This script checks if the `configuration.yaml` file exists. If the file is not available, one is created.
|
||||
|
@ -7,7 +7,6 @@ sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
redirect_from: /components/influxdb/#data-import-script
|
||||
---
|
||||
|
||||
If you want to import all the recorded data from your recorder database you can use the data import script. It will read all your state_change events from the database and add them as data-points to the InfluxDB. You can specify the source database either by pointing the `--config` option to the config directory which includes the default SQLite database or by giving a sqlalchemy connection URI with `--uri`.
|
||||
|
@ -7,7 +7,6 @@ sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
redirect_from: /docs/configuration/secrets/#storing-passwords-in-a-keyring-managed-by-your-os
|
||||
---
|
||||
|
||||
Using [Keyring](https://github.com/jaraco/keyring) is an alternative way to `secrets.yaml`. The secrets can be managed from the command line via the `keyring` script.
|
||||
|
@ -82,10 +82,8 @@ This will display the Z-Wave related information about the node:
|
||||
* **lastResponseRTT** The Round Trip Time of the response to the last request
|
||||
* **manufacturer_name** The name of the manufacturer, as supplied by OpenZWave
|
||||
* **max_baud_rate** The maximum bandwidth the device supports, most modern devices will support 40,000 or higher
|
||||
* **new_entity_id** In 0.47, Home Assistant introduced a new naming convention for entities, this shows the new naming convention
|
||||
* **node_id** The unique node ID of this node
|
||||
* **node_name** The base name of this node, this is used to build the entity ID of all entities of this node
|
||||
* **old_entity_id** If `new_entity_ids: false` has been configured, then this is the entity_id that will be used. Support for this will be removed in the future
|
||||
* **product_name** The product name of the device, as supplied by OpenZWave
|
||||
* **query_stage** The query stage for this device (see [here](/docs/z-wave/query-stage/) for details)
|
||||
* **receivedCnt** The number of messages received from the device
|
||||
|
@ -39,7 +39,7 @@ The key improvements are:
|
||||
|
||||
### {% linkable_title Z-Wave Security 2 %}
|
||||
|
||||
From 2 April 2017 all newly approved Z-Wave devices will have to support the Security 2 (S2) framework. At the time of writing this (September 2017) OpenZWave does not support the S2 framework.
|
||||
From 2 April 2017 all newly approved Z-Wave devices will have to support the Security 2 (S2) framework. At the time of writing this (March 2018) OpenZWave does not support the S2 framework.
|
||||
|
||||
## {% linkable_title Device power %}
|
||||
|
||||
|
@ -43,7 +43,7 @@ On Raspberry Pi you will need to enable the serial interface in the `raspi-confi
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
zwave:
|
||||
usb_path: /dev/ttyUSB0
|
||||
usb_path: /dev/ttyACM0
|
||||
```
|
||||
|
||||
{% configuration zwave %}
|
||||
@ -77,11 +77,6 @@ debug:
|
||||
required: false
|
||||
type: boolean
|
||||
default: False
|
||||
new_entity_ids:
|
||||
description: Switch to new entity_id generation.
|
||||
required: false
|
||||
type: boolean
|
||||
default: True
|
||||
device_config / device_config_domain / device_config_glob:
|
||||
description: This attribute contains node-specific override values. (For releases prior to 0.39 this variable is called **customize**) See [Customizing devices and services](/docs/configuration/customizing-devices/) for the format.
|
||||
required: false
|
||||
|
@ -78,7 +78,14 @@
|
||||
<li>{% active_link /developers/frontend_add_more_info/ Add More Info Dialog %}</li>
|
||||
<li>{% active_link /developers/frontend_creating_custom_panels/ Add Custom Panels %}</li>
|
||||
<li>{% active_link /developers/frontend_creating_custom_ui/ Add Custom UI %}</li>
|
||||
<li>{% active_link /developers/frontend_translation/ Translation %}</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
{% active_link /developers/internationalization/ Internationalization %}
|
||||
<ul>
|
||||
<li>{% active_link /developers/internationalization/backend_localization/ Backend Localization %}</li>
|
||||
<li>{% active_link /developers/internationalization/custom_component_localization/ Custom Component Localization %}</li>
|
||||
<li>{% active_link /developers/internationalization/translation/ Translation %}</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
|
@ -7,7 +7,7 @@
|
||||
<div class="credit">
|
||||
Contact us at <a href='mailto:hello@home-assistant.io'>hello@home-assistant.io</a> (no support!).<br>
|
||||
Website powered by <a href='http://jekyllrb.com/'>Jekyll</a> and the <a href='https://github.com/coogie/oscailte'>Oscalite theme</a>.<br />
|
||||
Hosted by <a href='https://pages.github.com/'>GitHub</a> and served by <a href='https://cloudflare.com'>CloudFlare</a>.
|
||||
Hosted by <a href='https://www.netlify.com/'>Netlify</a>.
|
||||
</div>
|
||||
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a><br /><span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">home-assistant.io</span> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>.
|
||||
</div>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user