` equals the `name:` property in the switch configuration.
@@ -38,7 +36,7 @@ Configuration variables:
- **lights** (*Required*) array: List of light entities.
- **name** (*Optional*): The name to use when displaying this switch.
- **start_time** (*Optional*): The start time. Default to sunrise.
-- **stop_time** (*Optional*): The stop time. Defaults to dusk.
+- **stop_time** (*Optional*): The stop time. Defaults to 22:00.
- **start_colortemp** (*Optional*): The color temperature at the start. Defaults to `4000`.
- **sunset_colortemp** (*Optional*): The sun set color temperature. Defaults to `3000`.
- **stop_colortemp** (*Optional*): The color temperature at the end. Defaults to `1900`.
diff --git a/source/_components/switch.fritzbox.markdown b/source/_components/switch.fritzbox.markdown
deleted file mode 100644
index 83657be0c8..0000000000
--- a/source/_components/switch.fritzbox.markdown
+++ /dev/null
@@ -1,31 +0,0 @@
----
-layout: page
-title: "Fritzbox Switch"
-description: "Instructions on how to integrate the AVM Fritzbox switch."
-date: 2017-11-12 17:10
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: avm.png
-ha_category: Switch
-ha_release: 0.68
-ha_iot_class: "Local Polling"
----
-
-
-To get AVM Fritzbox switch follow the instructions for the general [Fritzbox](/components/fritzbox/).
-
-
-### {% linkable_title Attributes %}
-
-The are several attributes that can be useful for automations and templates.
-
-| Attribute | Description |
-| --------- | ----------- |
-| `device_locked` | The state of the key lock at the device.
-| `locked` | The state of the lock for configuring the device via the app or the Fritzbox web interface.
-| `temperature_unit` | The unit of the temperature sensor (only available if the device support temperature sensor).
-| `temperature` | The current temperature sensor reading (only available if the device supports temperature sensor).
-| `total_consumption` | The total power consumption since the beginning of operation (only available if the device supports power meter function).
-| `total_consumption_unit` | The unit of the total_consumption (only available if the device supports power meter function).
diff --git a/source/_components/switch.fritzdect.markdown b/source/_components/switch.fritzdect.markdown
index 380deebdaf..b0d3b2ee3c 100644
--- a/source/_components/switch.fritzdect.markdown
+++ b/source/_components/switch.fritzdect.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "AVM FRITZ!DECT Switch"
-description: "Instructions on how to integrate your AVM FRITZ!DECT switches into Home Assistant."
+description: "Instructions how to integrate your AVM FRITZ!DECT switches into Home Assistant."
date: 2017-01-24 21:00
sidebar: true
comments: false
@@ -23,7 +23,7 @@ Supported devices (tested):
Supported Firmwares (tested):
- FRITZ!OS: 06.80 / FRITZ!DECT: 03.83
-- FRITZ!OS: 06.98-51288 (Beta) / FRITZ!DECT: 03.87
+- FRITZ!OS: 06.60 / FRITZ!DECT: 03.83
To use your AVM FRITZ!DECT switch(es) in your installation, add the following to your `configuration.yaml` file:
@@ -35,23 +35,12 @@ switch:
password: YOUR_PASSWORD
```
-{% configuration %}
-username:
- description: The username for your Fritz!Box.
- required: true
- type: string
-password:
- description: The password for your Fritz!Box.
- required: true
- type: string
-host:
- description: The IP address/hostname of your Fritz!Box.
- required: false
- type: string
- default: fritz.box
-{% endconfiguration %}
+Configuration variables:
+
+- **username** (*Required*): The username for your Fritz!Box.
+- **password** (*Required*): The password for your Fritz!Box.
+- **host** (*Optional*): The IP address/hostname of your Fritz!Box. Defaults to `fritz.box`.
-It is recommended to create a dedicated user for Home Assistant and only allow access to "Smart Home".
If this component throws an error when starting home-assistant you should check if all actors are plugged in and connected to the FritzBox. Inactive actors that are not deleted from FritzBox configuration might lead to errors.
diff --git a/source/_components/switch.hikvisioncam.markdown b/source/_components/switch.hikvisioncam.markdown
index 64fc873989..85249cd681 100644
--- a/source/_components/switch.hikvisioncam.markdown
+++ b/source/_components/switch.hikvisioncam.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Hikvision Camera Switch"
-description: "Instructions on how to integrate Hikvision camera switches into Home Assistant."
+description: "Instructions how to integrate Hikvision camera switches into Home Assistant."
date: 2015-06-10 22:54
sidebar: true
comments: false
diff --git a/source/_components/switch.hive.markdown b/source/_components/switch.hive.markdown
index e4ea483797..8f7d867722 100644
--- a/source/_components/switch.hive.markdown
+++ b/source/_components/switch.hive.markdown
@@ -14,11 +14,10 @@ ha_iot_class: "Cloud Polling"
---
-The `hive` switch platform integrates your Hive plugs into Home Assistant, enabling control of your devices.
+The 'hive' switch component integrates your Hive plugs into Home Assistant, enabling control of your devices.
-The platform supports the following Hive products:
-
-- Hive Active Plug
+The Hive switch component supports the following Hive products:
+- **Hive Active Plug**
diff --git a/source/_components/switch.homekit_controller.markdown b/source/_components/switch.homekit_controller.markdown
deleted file mode 100644
index 43bf3be57b..0000000000
--- a/source/_components/switch.homekit_controller.markdown
+++ /dev/null
@@ -1,16 +0,0 @@
----
-layout: page
-title: "HomeKit Switch"
-description: "Instructions on how to setup HomeKit switches within Home Assistant."
-date: 2017-03-19 21:08
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: apple-homekit.png
-ha_category: Light
-ha_iot_class: "Local Polling"
-ha_release: 0.68
----
-
-To get your HomeKit switches working with Home Assistant, follow the instructions for the general [HomeKit controller component](/components/homekit_controller/).
diff --git a/source/_components/switch.homematic.markdown b/source/_components/switch.homematic.markdown
index 7902ae4974..3e3fd7e878 100644
--- a/source/_components/switch.homematic.markdown
+++ b/source/_components/switch.homematic.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Homematic Switch"
-description: "Instructions on how to integrate Homematic switches within Home Assistant."
+description: "Instructions how to integrate Homematic switches within Home Assistant."
date: 2016-06-28 08:30
sidebar: true
comments: false
diff --git a/source/_components/switch.hook.markdown b/source/_components/switch.hook.markdown
index fbfeef75b4..3ba23b8c19 100644
--- a/source/_components/switch.hook.markdown
+++ b/source/_components/switch.hook.markdown
@@ -20,44 +20,23 @@ In short, Hook is an RF to Wi-Fi bridge, controlling devices that receive comman
Hook provides a simple [REST API](https://app.swaggerhub.com/api/rahilj/GetHook_RestAPI/v1). This Home Assistant component reads in devices that have been set up in the official app.
-## {% linkable_title Configuration %}
-
Configure with either your username/password or your API token for the official app.
-To enable this platform in your installation, add the following to your `configuration.yaml` file:
-
```yaml
# Example configuration.yaml entry
switch:
- - platform: hook
- username: YOUR_E_MAIL_ADDRESS
- password: YOUR_HOOK
+ - platform: hook
+ username:
+ password: !secret hook
```
-
Or
-
```yaml
# Example configuration.yaml entry
switch:
- - platform: hook
- token: YOUR_API_TOKEN
+ - platform: hook
+ token:
```
-{% configuration %}
-username:
- description: The email address associated with your Hook Smart Home Hub.
- required: true
- type: string
-password:
- description: The password for your Hook Smart Home Hub.
- required: true
- type: string
-token:
- description: The API token for your Hook Smart Home Hub.
- required: true
- type: string
-{% endconfiguration %}
-
Extra debug logging is available, if you need it.
```yaml
diff --git a/source/_components/switch.ihc.markdown b/source/_components/switch.ihc.markdown
index 67abf63932..011ef33a02 100644
--- a/source/_components/switch.ihc.markdown
+++ b/source/_components/switch.ihc.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "IHC Switch"
-description: "Instructions on how to integrate IHC switches within Home Assistant."
+description: "Instructions how to integrate IHC switches within Home Assistant."
date: 2017-11-27 13:35
sidebar: true
comments: false
diff --git a/source/_components/switch.insteon_local.markdown b/source/_components/switch.insteon_local.markdown
index 8a3c3f9360..0d8c71aa8d 100644
--- a/source/_components/switch.insteon_local.markdown
+++ b/source/_components/switch.insteon_local.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Insteon (Local) Switch"
-description: "Instructions on how to setup the Insteon Hub switches locally within Home Assistant."
+description: "Instructions how to setup the Insteon Hub switches locally within Home Assistant."
date: 2016-12-18 08:00
sidebar: true
comments: false
diff --git a/source/_components/switch.insteon_plm.markdown b/source/_components/switch.insteon_plm.markdown
index 8843679bb0..2e32a56160 100644
--- a/source/_components/switch.insteon_plm.markdown
+++ b/source/_components/switch.insteon_plm.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Insteon PLM Switch"
-description: "Instructions on how to setup the Insteon PLM switches locally within Home Assistant."
+description: "Instructions how to setup the Insteon PLM switches locally within Home Assistant."
date: 2017-02-19 17:00
sidebar: true
comments: false
@@ -13,7 +13,7 @@ ha_iot_class: "Local Push"
ha_version: 0.39
---
-The `insteon_plm` switch platform lets you control your on/off switches through
+The `insteon_plm` switch platform lets you control your switches through
an INSTEON PowerLinc Modem (PLM) device connected directly to your system on a
USB or serial port. To add support, set up the primary [insteon_plm]
component.
diff --git a/source/_components/switch.isy994.markdown b/source/_components/switch.isy994.markdown
index eacf1a002d..e5b4249dd6 100644
--- a/source/_components/switch.isy994.markdown
+++ b/source/_components/switch.isy994.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "ISY994 Switch"
-description: "Instructions on how to integrate ISY994 switch into Home Assistant."
+description: "Instructions how to integrate ISY994 switch into Home Assistant."
date: 2016-09-03 23:00
sidebar: true
comments: false
diff --git a/source/_components/switch.kankun.markdown b/source/_components/switch.kankun.markdown
index 919b798f9d..03c5a217ed 100644
--- a/source/_components/switch.kankun.markdown
+++ b/source/_components/switch.kankun.markdown
@@ -15,7 +15,7 @@ ha_iot_class: "Local Polling"
The `kankun` switch platform allows you to toggle customized Kankun SP3 Wifi switches. Switches are
modified to include the [json.cgi](https://github.com/homedash/kankun-json/blob/master/cgi-bin/json.cgi)
-script to provide an HTTP API. Details of the necessary modifications can be found
+script to provide a HTTP API. Details of the necessary modifications can be found
[here](http://www.homeautomationforgeeks.com/openhab_http.shtml#kankun) (be sure to install the JSON version
of the script as linked above).
diff --git a/source/_components/switch.litejet.markdown b/source/_components/switch.litejet.markdown
index 34f90d9bad..22c4d9d65f 100644
--- a/source/_components/switch.litejet.markdown
+++ b/source/_components/switch.litejet.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "LiteJet Switch"
-description: "Instructions on how to setup the LiteJet switches within Home Assistant."
+description: "Instructions how to setup the LiteJet switches within Home Assistant."
date: 2016-10-26 13:00
sidebar: true
comments: false
diff --git a/source/_components/switch.lutron_caseta.markdown b/source/_components/switch.lutron_caseta.markdown
index 100e044b1b..428006a56f 100644
--- a/source/_components/switch.lutron_caseta.markdown
+++ b/source/_components/switch.lutron_caseta.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Lutron Caseta Switch"
-description: "Instructions on how to setup the Lutron Caseta switches within Home Assistant."
+description: "Instructions how to setup the Lutron Caseta switches within Home Assistant."
date: 2017-04-30 09:00
sidebar: true
comments: false
diff --git a/source/_components/switch.markdown b/source/_components/switch.markdown
index 54fb891d5c..73a98c47c1 100644
--- a/source/_components/switch.markdown
+++ b/source/_components/switch.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Switches"
-description: "Instructions on how to setup your switches with Home Assistant."
+description: "Instructions how to setup your switches with Home Assistant."
date: 2015-01-24 14:39
sidebar: true
comments: false
diff --git a/source/_components/switch.mfi.markdown b/source/_components/switch.mfi.markdown
index f82e580257..62f6ed84d2 100644
--- a/source/_components/switch.mfi.markdown
+++ b/source/_components/switch.mfi.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "mFi Switch"
-description: "Instructions on how to integrate mFi switches within Home Assistant."
+description: "Instructions how to integrate mFi switches within Home Assistant."
date: 2016-02-07 10:00
sidebar: true
comments: false
@@ -15,17 +15,15 @@ ha_iot_class: "Local Polling"
The `mfi` switch platform to allow you to control [mFi Controllable Power Outlets](https://www.ubnt.com/mfi/mpower/).
-## {% linkable_title Configuration %}
-
To add this platform to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
switch:
- platform: mfi
- host: IP_ADDRESS_OF_SWITCH
- username: YOUR_USERNAME
- password: YOUR_PASSWORD
+ host: IP_ADDRESS
+ username: USERNAME
+ password: PASSWORD
```
Configuration variables:
diff --git a/source/_components/switch.mochad.markdown b/source/_components/switch.mochad.markdown
index a1d7569ec1..383e91bacd 100644
--- a/source/_components/switch.mochad.markdown
+++ b/source/_components/switch.mochad.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Mochad Switch"
-description: "Instructions on how to integrate X10 Mochad switches into Home Assistant."
+description: "Instructions how to integrate X10 Mochad switches into Home Assistant."
date: 2016-10-20 21:13
sidebar: true
comments: false
@@ -14,12 +14,10 @@ ha_release: 0.32
The `mochad` switch platform lets you control an X10 enabled switch device.
-## {% linkable_title Configuration %}
-
To enable this sensor, you first have to set up the [mochad component](/components/mochad/) and then add the following to your `configuration.yaml` file:
```yaml
-# Example configuration.yaml entry
+# Example configuration.yml entry
switch:
- platform: mochad
devices:
@@ -33,5 +31,3 @@ Configuration variables:
- **name** (*Optional*): The name of the switch. Default is: x10_switch_dev_*address*.
- **comm_type** (*Optional*): pl (powerline) or rf (radio frequency). Default is pl.
-
-
diff --git a/source/_components/switch.modbus.markdown b/source/_components/switch.modbus.markdown
index 3bf176c125..bac21bbd81 100644
--- a/source/_components/switch.modbus.markdown
+++ b/source/_components/switch.modbus.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Modbus Switch"
-description: "Instructions on how to integrate Modbus switches into Home Assistant."
+description: "Instructions how to integrate Modbus switches into Home Assistant."
date: 2015-08-30 23:38
sidebar: true
comments: false
@@ -16,12 +16,10 @@ ha_iot_class: "Local Push"
The `modbus` switch platform allows you to control [Modbus](http://www.modbus.org/) coils or registers.
-## {% linkable_title Configuration %}
-
To use your Modbus switches in your installation, add the following to your `configuration.yaml` file:
```yaml
-# Example configuration.yaml entry
+# Example configuration.yml entry
switch:
platform: modbus
slave: 1
diff --git a/source/_components/switch.mqtt.markdown b/source/_components/switch.mqtt.markdown
index 295ae106db..17430c9c8f 100644
--- a/source/_components/switch.mqtt.markdown
+++ b/source/_components/switch.mqtt.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "MQTT Switch"
-description: "Instructions on how to integrate MQTT switches into Home Assistant."
+description: "Instructions how to integrate MQTT switches into Home Assistant."
date: 2015-08-30 23:38
sidebar: true
comments: false
@@ -15,8 +15,6 @@ ha_iot_class: depends
The `mqtt` switch platform lets you control your MQTT enabled switches.
-## {% linkable_title Configuration %}
-
In an ideal scenario, the MQTT device will have a `state_topic` to publish state changes. If these messages are published with a `RETAIN` flag, the MQTT switch will receive an instant state update after subscription, and will start with the correct state. Otherwise, the initial state of the switch will be `false` / `off`.
When a `state_topic` is not available, the switch will work in optimistic mode. In this mode, the switch will immediately change state after every command. Otherwise, the switch will wait for state confirmation from the device (message from `state_topic`).
@@ -26,7 +24,7 @@ Optimistic mode can be forced, even if the `state_topic` is available. Try to en
To enable this switch in your installation, add the following to your `configuration.yaml` file:
```yaml
-# Example configuration.yaml entry
+# Example configuration.yml entry
switch:
- platform: mqtt
command_topic: "home/bedroom/switch1/set"
@@ -38,10 +36,6 @@ name:
required: false
type: string
default: MQTT Switch
-icon:
- description: Icon for the switch (e.g. `mdi:radiator`).
- required: false
- type: string
state_topic:
description: The MQTT topic subscribed to receive state updates.
required: false
@@ -108,7 +102,7 @@ In this section you will find some real life examples of how to use this sensor.
The example below shows a full configuration for a switch.
```yaml
-# Example configuration.yaml entry
+# Example configuration.yml entry
switch:
- platform: mqtt
name: "Bedroom Switch"
@@ -142,7 +136,7 @@ The configuration will look like the example below:
{% raw %}
```yaml
-# Example configuration.yaml entry
+# Example configuration.yml entry
switch:
- platform: mqtt
name: bathroom
diff --git a/source/_components/switch.mysensors.markdown b/source/_components/switch.mysensors.markdown
index a0fffa84e3..d383e68b7d 100644
--- a/source/_components/switch.mysensors.markdown
+++ b/source/_components/switch.mysensors.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "MySensors Switch"
-description: "Instructions on how to integrate MySensors switches into Home Assistant."
+description: "Instructions how to integrate MySensors switches into Home Assistant."
date: 2016-10-01 15:00 +0200
sidebar: true
comments: false
diff --git a/source/_components/switch.mystrom.markdown b/source/_components/switch.mystrom.markdown
index 924087adcd..6fafcbbb78 100644
--- a/source/_components/switch.mystrom.markdown
+++ b/source/_components/switch.mystrom.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "myStrom Switch"
-description: "Instructions on how to integrate myStrom switches into Home Assistant."
+description: "Instructions how to integrate myStrom switches into Home Assistant."
date: 2015-11-25 22:00
sidebar: true
comments: false
diff --git a/source/_components/switch.neato.markdown b/source/_components/switch.neato.markdown
index 2f0e1e8d1e..b45fa7f5f2 100644
--- a/source/_components/switch.neato.markdown
+++ b/source/_components/switch.neato.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Neato Robotics Switch"
-description: "Instructions on how to integrate a Neato Botvac Connected switch within Home Assistant."
+description: "Instructions how to integrate a Neato Botvac Connected switch within Home Assistant."
date: 2016-10-19 17:10
sidebar: true
comments: false
diff --git a/source/_components/switch.netio.markdown b/source/_components/switch.netio.markdown
index f5c4a9742f..57f5a5abdb 100644
--- a/source/_components/switch.netio.markdown
+++ b/source/_components/switch.netio.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Netio Switch"
-description: "Instructions on how to integrate Netio switches into Home Assistant."
+description: "Instructions how to integrate Netio switches into Home Assistant."
date: 2016-09-02 19:00
sidebar: true
comments: false
diff --git a/source/_components/switch.orvibo.markdown b/source/_components/switch.orvibo.markdown
index 656bcd4a22..30516626df 100644
--- a/source/_components/switch.orvibo.markdown
+++ b/source/_components/switch.orvibo.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Orvibo Switch"
-description: "Instructions on how to integrate Orvibo sockets within Home Assistant."
+description: "Instructions how to integrate Orvibo sockets within Home Assistant."
date: 2015-11-15 18:15
sidebar: true
comments: false
diff --git a/source/_components/switch.pilight.markdown b/source/_components/switch.pilight.markdown
index ca2c837986..8c803184a4 100644
--- a/source/_components/switch.pilight.markdown
+++ b/source/_components/switch.pilight.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Pilight Switch"
-description: "Instructions on how to have switches using 433 MHz connected to a computer running pilight."
+description: "Instructions how to have switches using 433 MHz connected to a computer running pilight."
date: 2015-06-10 22:41
sidebar: true
comments: false
@@ -19,8 +19,6 @@ Additionally, RF commands can be defined that trigger this switch to turn on and
To be really sure that Home Assistant knows the actual state of your device it is recommended to use the RF remote with codes unknown to any of your 433 MHz devices. Thus you use the remote to trigger this switch to send the correct RF code to the device.
-## {% linkable_title Configuration %}
-
To define a Pilight switch, add the following lines to your `configuration.yaml`:
```yaml
diff --git a/source/_components/switch.pulseaudio_loopback.markdown b/source/_components/switch.pulseaudio_loopback.markdown
index 6248f9910e..138dd949bc 100644
--- a/source/_components/switch.pulseaudio_loopback.markdown
+++ b/source/_components/switch.pulseaudio_loopback.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "PulseAudio Loopback Switch"
-description: "Instructions on how to use Pulseaudio loopback modules to build a flexible whole-home audio system."
+description: "Instructions how to use Pulseaudio loopback modules to build a flexible whole-home audio system."
date: 2016-03-22 21:00:00
sidebar: true
comments: false
diff --git a/source/_components/switch.qwikswitch.markdown b/source/_components/switch.qwikswitch.markdown
index 805e47d5fe..9b07aa24d0 100644
--- a/source/_components/switch.qwikswitch.markdown
+++ b/source/_components/switch.qwikswitch.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "QwikSwitch Switch"
-description: "Instructions on how to integrate QwikSwitch relays into Home Assistant."
+description: "Instructions how to integrate QwikSwitch relays into Home Assistant."
date: 2016-05-04 00:00
sidebar: true
comments: false
diff --git a/source/_components/switch.rachio.markdown b/source/_components/switch.rachio.markdown
index 9208a2d475..e04bb7da70 100644
--- a/source/_components/switch.rachio.markdown
+++ b/source/_components/switch.rachio.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Rachio Switch"
-description: "Instructions on how to use Rachio switches with Home Assistant."
+description: "Instructions how to use Rachio switches with Home Assistant."
date: 2017-05-29 09:00
sidebar: true
comments: false
diff --git a/source/_components/switch.rainbird.markdown b/source/_components/switch.rainbird.markdown
index 673c4d1928..eee1d471b9 100644
--- a/source/_components/switch.rainbird.markdown
+++ b/source/_components/switch.rainbird.markdown
@@ -15,24 +15,20 @@ ha_iot_class: "Local Polling"
This `rainbird` switch platform allows interacting with [LNK WiFi](http://www.rainbird.com/landscape/products/controllers/LNK-WiFi.htm) module of the Rain Bird Irrigation system in Home Assistant.
-## {% linkable_title Configuration %}
-
Once you have enabled the [Rain Bird component](/components/rainbird), add the following to your `configuration.yaml` file:
```yaml
switch:
- - platform: rainbird
- switches:
- sprinkler_1:
- zone: 1
- friendly_name: "Front sprinklers"
- trigger_time: 10
- scan_interval: 10
- sprinkler_2:
- friendly_name: "Back sprinklers"
- zone: 2
- trigger_time: 20
- scan_interval: 10
+ sprinkler_1:
+ zone: 1
+ friendly_name: "Front sprinklers"
+ trigger_time: 20
+ scan_interval: 10
+ sprinkler_2:
+ friendly_name: "Back sprinklers"
+ zone: 2
+ trigger_time: 20
+ scan_interval: 10
```
Configuration variables:
diff --git a/source/_components/switch.raincloud.markdown b/source/_components/switch.raincloud.markdown
index 2e2af72de8..e5cbc2d070 100644
--- a/source/_components/switch.raincloud.markdown
+++ b/source/_components/switch.raincloud.markdown
@@ -25,7 +25,7 @@ switch:
Configuration variables:
-- **watering_minutes** (*Optional*): Value in minutes to watering your garden via frontend. Defaults to 15. The values allowed are: 5, 10, 15, 30, 45, 60.
+- **watering_minutes** (*Optional*): Value in minutes to watering your garden via frontend. Defaults to 15.
- **monitored_conditions** array (*Optional*): Conditions to display in the frontend. If not specified, all conditions below will be enabled by default. The following conditions can be monitored.
- **auto_watering**: Toggle the watering scheduled per zone.
- **manual_watering**: Toggle manually the watering per zone. It will inherent the value in minutes specified on the RainCloud hub component.
diff --git a/source/_components/switch.rainmachine.markdown b/source/_components/switch.rainmachine.markdown
index f37ce0fbd5..1b85b03aa4 100644
--- a/source/_components/switch.rainmachine.markdown
+++ b/source/_components/switch.rainmachine.markdown
@@ -13,24 +13,77 @@ ha_iot_class: "Cloud Polling"
ha_release: 0.51
---
-The `rainmachine` switch platform allows you to control programs and zones
-within a [RainMachine smart Wi-Fi sprinkler controller](http://www.rainmachine.com/).
+The `rainmachine` switch platform allows you to control programs and zones within
+a [RainMachine smart Wi-Fi sprinkler controller](http://www.rainmachine.com/).
-
-You must have the [RainMachine component](https://www.home-assistant.io/components/rainmachine/)
-configured to use this switch. After configuring that component, switches will
-automatically appear.
-
+## {% linkable_title Configuring the Platform %}
+
+The platform allows for either local (i.e., directly across the LAN) or remote
+(i.e., through RainMachine's cloud API) access; the route you choose will
+dictate what your configuration should look like.
+
+For local access, specify the IP address/hostname of your RainMachine unit
+, your RainMachine password, and optionally, the device's HTTP port:
+
+```yaml
+switch:
+ platform: rainmachine
+ ip_address: 192.168.1.100
+ password: my_password_123
+```
+
+For remote access, specify your RainMachine username/email and password:
+
+```yaml
+switch:
+ platform: rainmachine
+ email: user@host.com
+ password: my_password_123
+```
+
+Configuration Variables:
+
+- **ip_address** (*Optional*): the IP address of your RainMachine unit; cannot be
+used with the `email` parameter
+- **email** (*Optional*): your RainMachine username/email; cannot be used with the
+`ip_address` parameter
+- **password** (*Required*): your RainMachine password
+- **port** (*Optional*): the TCP port used by your unit for the REST API (default: 8080)
+- **ssl** (*Optional*): whether communication with the local device should occur
+over HTTPS (default: true)
+- **zone_run_time** (*Optional*): the number of seconds that a zone should run when
+turned on (default: 600)
## {% linkable_title Controlling Your Device %}
-After Home Assistant loads, new switches will be added for every enabled
-program and zone. These work as expected:
+After Home Assistant loads, you will see new switches for every enabled program
+and zone. These work as expected:
- Program On/Off: starts/stops a program
- Zone On/Off: starts/stops a zone (using the `zone_run_time` parameter to
determine how long to run for)
-Programs and zones are linked. While a program is running, you will see both
-the program and zone switches turned on; turning either one off will turn the
-other one off (just like in the web app).
+Programs and zones are linked. If a program is running its final zone, you will
+see both the program and zone switches turned on; turning either one off will
+turn the other one off (just like in the web app).
+
+## {% linkable_title Weblink %}
+
+If you would like to see and control more detailed information, create an [iFrame](/components/panel_iframe/) that renders the RainMachine web app:
+
+```yaml
+panel_iframe:
+ rainmachine:
+ title: RainMachine
+ url: "https://my.rainmachine.com/s//ui/"
+ icon: mdi:water-pump
+```
+
+You can find `` by logging into [https://my.rainmachine.com](https://my.rainmachine.com ) and taking note of the URL.
+
+## {% linkable_title For Awareness %}
+
+The remote RainMachine API currently has two broken operations (i.e., they return
+error codes): starting a program and stopping a program. Please note that
+starting/stopping programs with the remote API is disabled until RainMachine
+can fix the issue.
diff --git a/source/_components/switch.raspihats.markdown b/source/_components/switch.raspihats.markdown
index f31a33edaa..23f7afb96f 100644
--- a/source/_components/switch.raspihats.markdown
+++ b/source/_components/switch.raspihats.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Raspihats Switch"
-description: "Instructions on how to integrate Raspihats add-on boards for Raspberry Pi into Home Assistant as a switch."
+description: "Instructions how to integrate Raspihats add-on boards for Raspberry Pi into Home Assistant as a switch."
date: 2017-05-15 04:20
sidebar: true
comments: false
diff --git a/source/_components/switch.rest.markdown b/source/_components/switch.rest.markdown
index 65f0afcd3e..776882cd54 100644
--- a/source/_components/switch.rest.markdown
+++ b/source/_components/switch.rest.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "RESTful Switch"
-description: "Instructions on how to integrate REST switches into Home Assistant."
+description: "Instructions how to integrate REST switches into Home Assistant."
date: 2015-09-14 19:10
sidebar: true
comments: false
@@ -13,9 +13,8 @@ ha_release: 0.7.6
ha_iot_class: "Local Polling"
---
-The `rest` switch platform allows you to control a given endpoint that supports a [RESTful API](https://en.wikipedia.org/wiki/Representational_state_transfer). The switch can get the state via GET and set the state via POST on a given REST resource.
-## {% linkable_title Configuration %}
+The `rest` switch platform allows you to control a given endpoint that supports a [RESTful API](https://en.wikipedia.org/wiki/Representational_state_transfer). The switch can get the state via GET and set the state via POST on a given REST resource.
To enable this switch, add the following lines to your `configuration.yaml` file:
@@ -31,16 +30,17 @@ resource:
description: The resource or endpoint that contains the value.
required: true
type: string
+ default: string
method:
description: "The method of the request. Supported `post` or `put`."
required: false
type: string
- default: post
+ default: POST
name:
description: Name of the REST Switch.
required: false
type: string
- default: REST Switch
+ default: REST Binary Switch
timeout:
description: Timeout for the request.
required: false
@@ -68,10 +68,6 @@ password:
description: The password for accessing the REST endpoint.
required: false
type: string
-headers:
- description: The headers for the request.
- required: false
- type: list, string
{% endconfiguration %}
@@ -82,23 +78,21 @@ Make sure that the URL matches exactly your endpoint or resource.
### {% linkable_title Switch with templated value %}
-This example shows a switch that uses a [template](/topics/templating/) to allow Home Assistant to determine its state. In this example, the REST endpoint returns this JSON response with true indicating the switch is on.
+This example shows a switch that uses a [template](/topics/templating/) to allow Home Assistant to determine its state. In this example the REST endpoint returns this JSON response with true indicating the switch is on.
```json
{"is_active": "true"}
```
-{% raw %}
+
```yaml
switch:
- platform: rest
resource: http://IP_ADDRESS/led_endpoint
body_on: '{"active": "true"}'
body_off: '{"active": "false"}'
- is_on_template: '{{ value_json.is_active }}'
- headers:
- Content-Type: application/json
+ is_on_template: '{% raw %}{{value_json.is_active}}{% endraw %}'
```
-{% endraw %}
`body_on` and `body_off` can also depend on the state of the system. For example, to enable a remote temperature sensor tracking on a radio thermostat, one has to send the current value of the remote temperature sensor. This can be achieved by using the template `{% raw %}'{"rem_temp":{{states.sensor.bedroom_temp.state}}}'{% endraw %}`.
+
diff --git a/source/_components/switch.rflink.markdown b/source/_components/switch.rflink.markdown
index ee42e8bbd7..08b5e61458 100644
--- a/source/_components/switch.rflink.markdown
+++ b/source/_components/switch.rflink.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "RFLink Switch"
-description: "Instructions on how to integrate RFLink switches into Home Assistant."
+description: "Instructions how to integrate RFLink switches into Home Assistant."
date: 2016-01-04
sidebar: true
comments: false
diff --git a/source/_components/switch.rfxtrx.markdown b/source/_components/switch.rfxtrx.markdown
index 52b58ab4a6..434a4c4563 100644
--- a/source/_components/switch.rfxtrx.markdown
+++ b/source/_components/switch.rfxtrx.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "RFXtrx Switch"
-description: "Instructions on how to integrate RFXtrx switches into Home Assistant."
+description: "Instructions how to integrate RFXtrx switches into Home Assistant."
date: 2015-10-08 10:15
sidebar: true
comments: false
diff --git a/source/_components/switch.rpi_gpio.markdown b/source/_components/switch.rpi_gpio.markdown
index 5b3a888e24..192bb82544 100644
--- a/source/_components/switch.rpi_gpio.markdown
+++ b/source/_components/switch.rpi_gpio.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Raspberry Pi GPIO Switch"
-description: "Instructions on how to integrate the GPIO of a Raspberry Pi into Home Assistant as a switch."
+description: "Instructions how to integrate the GPIO of a Raspberry Pi into Home Assistant as a switch."
date: 2015-08-07 14:00
sidebar: true
comments: false
@@ -35,10 +35,6 @@ Configuration variables:
For more details about the GPIO layout, visit the Wikipedia [article](https://en.wikipedia.org/wiki/Raspberry_Pi#GPIO_connector) about the Raspberry Pi.
-
-Note that a pin managed by HASS is expected to be exclusive to HASS.
-
-
A common question is what does Port refer to, this number is the actual GPIO # not the pin #.
For example, if you have a relay connected to pin 11 its GPIO # is 17.
diff --git a/source/_components/switch.rpi_pfio.markdown b/source/_components/switch.rpi_pfio.markdown
index 30498f7d99..d8e77e79fa 100644
--- a/source/_components/switch.rpi_pfio.markdown
+++ b/source/_components/switch.rpi_pfio.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "PiFace Digital I/O Switch"
-description: "Instructions on how to integrate the PiFace Digital I/O module into Home Assistant as a switch."
+description: "Instructions how to integrate the PiFace Digital I/O module into Home Assistant as a switch."
date: 2016-05-08 15:00
sidebar: true
comments: false
diff --git a/source/_components/switch.rpi_rf.markdown b/source/_components/switch.rpi_rf.markdown
index b9813ceb56..2d412034f5 100644
--- a/source/_components/switch.rpi_rf.markdown
+++ b/source/_components/switch.rpi_rf.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Raspberry Pi RF Switch"
-description: "Instructions on how to integrate devices controlled via codes sent with low-cost GPIO RF modules on a Raspberry Pi into Home Assistant as a switch."
+description: "Instructions how to integrate devices controlled via codes sent with low-cost GPIO RF modules on a Raspberry Pi into Home Assistant as a switch."
date: 2016-05-10 09:00
sidebar: true
comments: false
diff --git a/source/_components/switch.scsgate.markdown b/source/_components/switch.scsgate.markdown
index 35e1f6b7f8..07ff2d6005 100644
--- a/source/_components/switch.scsgate.markdown
+++ b/source/_components/switch.scsgate.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "SCSGate Switch"
-description: "Instructions on how to integrate SCSGate switches into Home Assistant."
+description: "Instructions how to integrate SCSGate switches into Home Assistant."
date: 2016-01-31 22:15
sidebar: true
comments: false
diff --git a/source/_components/switch.smappee.markdown b/source/_components/switch.smappee.markdown
deleted file mode 100644
index 0576738e51..0000000000
--- a/source/_components/switch.smappee.markdown
+++ /dev/null
@@ -1,20 +0,0 @@
----
-layout: page
-title: "Smappee Switch"
-description: "Instructions on how to integrate Smappee Comfort Plug into Home Assistant."
-date: 2018-02-26 08:37
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: smappee.png
-ha_release: "0.64"
-ha_category: Switch
-ha_iot_class: "Local Push"
----
-
-[Smappee](https://www.smappee.com/) controller for energy monitoring and Comport plug switches.
-
-Comport Plugs will be automatically added when you connect to the Smappee controller.
-
-For more configuration information see the [Smappee component](/components/smappee/) documentation.
diff --git a/source/_components/switch.tahoma.markdown b/source/_components/switch.tahoma.markdown
deleted file mode 100644
index a7c3338fee..0000000000
--- a/source/_components/switch.tahoma.markdown
+++ /dev/null
@@ -1,17 +0,0 @@
----
-layout: page
-title: "Tahoma Switch"
-description: "Instructions on how to integrate Tahoma switches into Home Assistant."
-date: 2017-07-18 12:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: tahoma.png
-ha_category: Sensor
-ha_release: 0.59
----
-
-The `tahoma` switch platform lets you see switches added to your Tahoma Box in Home Assistant.
-
-Switches will be added automatically. Please refer to the [component](/components/tahoma/) configuration on how to setup Tahoma.
diff --git a/source/_components/switch.tellduslive.markdown b/source/_components/switch.tellduslive.markdown
index 1cfa2c6fc8..4477289a87 100644
--- a/source/_components/switch.tellduslive.markdown
+++ b/source/_components/switch.tellduslive.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Telldus Live Switch"
-description: "Instructions on how to integrate Telldus Live switches into Home Assistant."
+description: "Instructions how to integrate Telldus Live switches into Home Assistant."
date: 2016-01-17 15:49
sidebar: true
comments: false
diff --git a/source/_components/switch.tellstick.markdown b/source/_components/switch.tellstick.markdown
index 9de976af4b..9c1ed88d73 100644
--- a/source/_components/switch.tellstick.markdown
+++ b/source/_components/switch.tellstick.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "TellStick Switch"
-description: "Instructions on how to integrate TellStick switches into Home Assistant."
+description: "Instructions how to integrate TellStick switches into Home Assistant."
date: 2015-08-06 19:00
sidebar: true
comments: false
@@ -15,7 +15,7 @@ ha_iot_class: "Assumed State"
This `tellstick` switch platform allows you to control [TellStick](http://www.telldus.se/products/tellstick) devices.
-To use your TellStick device, you first have to set up your [Tellstick hub](/components/tellstick/) and then add the following to your `configuration.yaml` file:
+To use your TellStick device, you first have to set up your [Tellstick hub](https://home-assistant.io/components/tellstick/) and then add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
diff --git a/source/_components/switch.telnet.markdown b/source/_components/switch.telnet.markdown
index ef1345cd5b..bffd8e78fb 100644
--- a/source/_components/switch.telnet.markdown
+++ b/source/_components/switch.telnet.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Telnet Switch"
-description: "Instructions on how to integrate telnet switches into Home Assistant."
+description: "Instructions how to integrate telnet switches into Home Assistant."
date: 2017-08-10 19:19
sidebar: true
comments: false
@@ -39,6 +39,6 @@ Configuration variables:
- **port** (*Optional*): Port to connect to. Default is 23 if not defined.
- **command_on** (*Required*): Command to turn device on.
- **command_off** (*Required*): Command to turn device off.
- - **command_state** (*Optional*): Command to determine the state of the switch. If not defined the switch will assume successful state changes.
- - **value_template** (*Optional*): The template evaluating to `true` will indicate that the switch is on.
+ - **command_state** (*Required*): Command to determine the state of the switch. If not defined the switch will assume successful state changes.
+ - **value_template** (*Required*): The template evaluating to `true` will indicate that the switch is on.
- **name** (*Optional*): The name used to display the switch in the frontend.
diff --git a/source/_components/switch.template.markdown b/source/_components/switch.template.markdown
index cfcb54d092..86d0e95e57 100644
--- a/source/_components/switch.template.markdown
+++ b/source/_components/switch.template.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Template Switch"
-description: "Instructions on how to integrate Template Switches into Home Assistant."
+description: "Instructions how to integrate Template Switches into Home Assistant."
date: 2016-02-07 07:00
sidebar: true
comments: false
@@ -55,10 +55,6 @@ switch:
description: Name to use in the frontend.
required: false
type: string
- entity_id:
- description: A list of entity IDs so the switch only reacts to state changes of these entities. This can be used if the automatic analysis fails to find all relevant entities.
- required: false
- type: [string, list]
value_template:
description: Defines a template to set the state of the switch.
required: true
@@ -75,10 +71,6 @@ switch:
description: Defines a template for the icon of the switch.
required: false
type: template
- entity_picture_template:
- description: Defines a template for the picture of the switch.
- required: false
- type: template
{% endconfiguration %}
## {% linkable_title Considerations %}
diff --git a/source/_components/switch.tesla.markdown b/source/_components/switch.tesla.markdown
index 2ded4d7d10..a8c63ede4e 100644
--- a/source/_components/switch.tesla.markdown
+++ b/source/_components/switch.tesla.markdown
@@ -13,7 +13,7 @@ ha_iot_class: "Cloud Push"
ha_release: 0.54
---
-The `Tesla` platform allows you to control your [Tesla](https://www.tesla.com/) charger (enable/disable charging, max range switch) from within Home Assistant.
+The `Tesla` platform allows you to control your [Tesla](https://www.tesla.com/) charger (enable/disable charging) from within Home Assistant.
The switch platform will be automatically configured if Tesla component is configured.
diff --git a/source/_components/switch.thinkingcleaner.markdown b/source/_components/switch.thinkingcleaner.markdown
index 30a937f212..8be94f7992 100644
--- a/source/_components/switch.thinkingcleaner.markdown
+++ b/source/_components/switch.thinkingcleaner.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Thinking Cleaner Switch"
-description: "Instructions on how to integrate a ThinkingCleaner switches within Home Assistant."
+description: "Instructions how to integrate a ThinkingCleaner switches within Home Assistant."
date: 2016-04-10 17:24
sidebar: true
comments: false
diff --git a/source/_components/switch.toon.markdown b/source/_components/switch.toon.markdown
index 744622da78..af4e197850 100644
--- a/source/_components/switch.toon.markdown
+++ b/source/_components/switch.toon.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Toon Smart Plugs"
-description: "Instructions on how to integrate Toon smart plugs within Home Assistant."
+description: "Instructions how to integrate Toon smart plugs within Home Assistant."
date: 2017-10-22 12:00
sidebar: true
comments: false
diff --git a/source/_components/switch.tplink.markdown b/source/_components/switch.tplink.markdown
index da0083120b..5839ff2cef 100644
--- a/source/_components/switch.tplink.markdown
+++ b/source/_components/switch.tplink.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "TP-Link Switch"
-description: "Instructions on how to integrate TP-Link switches into Home Assistant."
+description: "Instructions how to integrate TP-Link switches into Home Assistant."
date: 2016-07-13 08:00
sidebar: true
comments: false
diff --git a/source/_components/switch.transmission.markdown b/source/_components/switch.transmission.markdown
index 888f1470a0..3c9ef39bfa 100644
--- a/source/_components/switch.transmission.markdown
+++ b/source/_components/switch.transmission.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Transmission Switch"
-description: "Instructions on how to integrate Transmission within Home Assistant."
+description: "Instructions how to integrate Transmission within Home Assistant."
date: 2015-06-02 09:00
sidebar: true
comments: false
diff --git a/source/_components/switch.upcloud.markdown b/source/_components/switch.upcloud.markdown
deleted file mode 100644
index 98f45d0e68..0000000000
--- a/source/_components/switch.upcloud.markdown
+++ /dev/null
@@ -1,34 +0,0 @@
----
-layout: page
-title: UpCloud Switch
-description: Instructions on how to set up UpCloud switches within Home Assistant.
-date: 2018-01-28 20:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: upcloud.png
-ha_category: Switch
-ha_release: 0.65
-ha_iot_class: Cloud Polling
----
-
-The `upcloud` switch platform allows you to control (start/stop) your UpCloud servers.
-
-To use your UpCloud servers, you first have to set up your [UpCloud hub](/components/upcloud/) and then add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: upcloud
- servers:
- - 002167b7-4cb1-44b7-869f-e0900ddeeae1
- - 00886296-6137-4074-afe3-068e16d89d00
-```
-
-{% configuration %}
-servers:
- description: List of servers you want to control.
- required: true
- type: list
-{% endconfiguration %}
diff --git a/source/_components/switch.vera.markdown b/source/_components/switch.vera.markdown
index e515a8d74c..09dc61b109 100644
--- a/source/_components/switch.vera.markdown
+++ b/source/_components/switch.vera.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Vera Switch"
-description: "Instructions on how to integrate Vera switches into Home Assistant."
+description: "Instructions how to integrate Vera switches into Home Assistant."
date: 2015-10-20 21:00
sidebar: true
comments: false
diff --git a/source/_components/switch.verisure.markdown b/source/_components/switch.verisure.markdown
index c84b3739f8..4169abe98d 100644
--- a/source/_components/switch.verisure.markdown
+++ b/source/_components/switch.verisure.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Verisure SmartPlug"
-description: "Instructions on how to setup the Verisure SmartPlug within Home Assistant."
+description: "Instructions how to setup the Verisure SmartPlug within Home Assistant."
date: 2016-02-15 22:00
sidebar: true
comments: false
diff --git a/source/_components/switch.vesync.markdown b/source/_components/switch.vesync.markdown
deleted file mode 100644
index b02f476e93..0000000000
--- a/source/_components/switch.vesync.markdown
+++ /dev/null
@@ -1,47 +0,0 @@
----
-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 enables integration with Etekcity VeSync smart switches.
-
-VeSync switches are low-cost wifi smart plugs that offer energy monitoring and work with popular voice assistants.
-
-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: YOUR_USERNAME
- password: YOUR_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 %}
-
-### {% linkable_title Exposed Attributes %}
-
-VeSync switches will expose the following details.
-
-| Attribute | Description | Example |
-| ------------------- | ------------------------------------------------------------------- | --------------- |
-| `current_power_w` | The present power consumption of the switch in watts. | 100 |
-| `today_energy_kwh` | The kilowatt hours used by the switch during the previous 24 hours. | 0.12 |
diff --git a/source/_components/switch.volvooncall.markdown b/source/_components/switch.volvooncall.markdown
deleted file mode 100644
index f4de42f501..0000000000
--- a/source/_components/switch.volvooncall.markdown
+++ /dev/null
@@ -1,16 +0,0 @@
----
-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.
diff --git a/source/_components/switch.wake_on_lan.markdown b/source/_components/switch.wake_on_lan.markdown
index 161cfcd1b5..6fc7699fa7 100644
--- a/source/_components/switch.wake_on_lan.markdown
+++ b/source/_components/switch.wake_on_lan.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Wake on LAN Switch"
-description: "Instructions on how to integrate a wake on lan switch."
+description: "Instructions how to integrate a wake on lan switch."
date: 2016-03-18 18:00
sidebar: true
comments: false
@@ -15,8 +15,6 @@ ha_iot_class: "Local Polling"
The `wake_on_lan` (WOL) switch platform allows you to turn on a [WOL](https://en.wikipedia.org/wiki/Wake-on-LAN) enabled computer.
-## {% linkable_title Configuration %}
-
The WOL switch can only turn on your computer and monitor the state. There is no universal way to turn off a computer remotely. The `turn_off` variable is there to help you call a script when you have figured out how to remotely turn off your computer.
See below for suggestions on how to do this.
@@ -25,7 +23,7 @@ See below for suggestions on how to do this.
To enable this switch in your installation, add the following to your `configuration.yaml` file:
```yaml
-# Example configuration.yaml entry
+# Example configuration.yml entry
switch:
- platform: wake_on_lan
mac_address: "00-01-02-03-04-05"
@@ -44,8 +42,7 @@ Configuration variables:
Here are some real life examples of how to use the **turn_off** variable.
### {% linkable_title Suspending Linux %}
-
-Suggested recipe for letting the `turn_off` script suspend a Linux computer (the **target**)
+Suggested recipe for letting the turn_off script suspend a Linux computer (the **target**)
from Home Assistant running on another Linux computer (the **server**).
1. On the **server**, log in as the user account Home Assistant is running under. (I'm using `hass` in this example)
diff --git a/source/_components/switch.wemo.markdown b/source/_components/switch.wemo.markdown
index 6bca30af1a..7b6a4ae901 100644
--- a/source/_components/switch.wemo.markdown
+++ b/source/_components/switch.wemo.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Belkin WeMo Switch"
-description: "Instructions on how to integrate Belkin WeMo switches into Home Assistant."
+description: "Instructions how to integrate Belkin WeMo switches into Home Assistant."
date: 2016-02-20 00:47
sidebar: true
comments: false
diff --git a/source/_components/switch.wink.markdown b/source/_components/switch.wink.markdown
index 9a02607792..085aba3a38 100644
--- a/source/_components/switch.wink.markdown
+++ b/source/_components/switch.wink.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Wink Switch"
-description: "Instructions on how to setup the Wink switches within Home Assistant."
+description: "Instructions how to setup the Wink switches within Home Assistant."
date: 2015-01-20 22:36
sidebar: true
comments: false
diff --git a/source/_components/switch.xiaomi_aqara.markdown b/source/_components/switch.xiaomi_aqara.markdown
index 0306ba2921..f207229bee 100644
--- a/source/_components/switch.xiaomi_aqara.markdown
+++ b/source/_components/switch.xiaomi_aqara.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Xiaomi Switch"
-description: "Instructions on how to setup the Xiaomi switch within Home Assistant."
+description: "Instructions how to setup the Xiaomi switch within Home Assistant."
date: 2017-07-21 16:34
sidebar: true
comments: false
diff --git a/source/_components/switch.xiaomi_miio.markdown b/source/_components/switch.xiaomi_miio.markdown
index 6124437209..f8d03291d0 100644
--- a/source/_components/switch.xiaomi_miio.markdown
+++ b/source/_components/switch.xiaomi_miio.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Xiaomi Smart WiFi Socket and Smart Power Strip"
-description: "Instructions on how to integrate your Xiaomi Smart WiFi Socket aka Plug or Xiaomi Smart Power Strip within Home Assistant."
+description: "Instructions how to integrate your Xiaomi Smart WiFi Socket aka Plug or Xiaomi Smart Power Strip within Home Assistant."
date: 2017-08-26 10:18
sidebar: true
comments: false
@@ -13,38 +13,12 @@ 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, Xiaomi Smart Power Strip and Xiaomi Chuangmi Plug V1.
+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.
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
@@ -54,67 +28,9 @@ switch:
name: Original Xiaomi Mi Smart WiFi Socket
host: 192.168.130.59
token: YOUR_TOKEN
- model: chuangmi.plug.m1
```
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.
-
-{% 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 Miio Switch
-model:
- description: The model of your device.
- 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 xiaomi miio switch entity. 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 xiaomi miio switch entity. 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 xiaomi miio switch entity. 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 switch entity. Else targets all. |
-| `mode` | no | Power mode, valid values are 'normal' and 'green' |
+- **host** (*Required*): The IP of your plug.
+- **token** (*Required*): The API token of your plug.
+- **name** (*Optional*): The name of your plug.
diff --git a/source/_components/switch.zwave.markdown b/source/_components/switch.zwave.markdown
index 9525daed35..2ae97b2180 100644
--- a/source/_components/switch.zwave.markdown
+++ b/source/_components/switch.zwave.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Z-Wave Switch"
-description: "Instructions on how to setup the Z-Wave switches within Home Assistant."
+description: "Instructions how to setup the Z-Wave switches within Home Assistant."
date: 2015-11-15 13:00
sidebar: true
comments: false
diff --git a/source/_components/system_log.markdown b/source/_components/system_log.markdown
index ef3ba0f5ed..fae6692223 100644
--- a/source/_components/system_log.markdown
+++ b/source/_components/system_log.markdown
@@ -12,7 +12,7 @@ ha_category: Other
ha_release: 0.58
---
-The `system_log` component stores information about all logged errors and warnings in Home Assistant. All collected information is accessible directly in the frontend, just navigate to the `Info` section under `Developer Tools`. In order to not overload Home Assistant with log data, only the 50 last errors and warnings will be stored. Older entries are automatically discarded from the log. It is possible to change the number of stored log entries using the parameter `max_entries`.
+The `system_log` component stores information about all logged errors and warnings in Home Assistant. All collected information is accessible directly in the frontend, just navigate to the `Info` section under `Developer Tools`. In order to not overload Home Assistant with log data, only the 50 last errors and warnings will be stored. Older entries are automatically discarded from the log. It is possible to change the amount of stored log entries using the parameter `max_entries`.
This component is automatically loaded by the `frontend` (so no need to do anything if you are using the frontend). If you are not doing so, or if you wish to change a parameter, add the following section to your `configuration.yaml` file:
@@ -35,66 +35,3 @@ max_entries:
To manually clear the system log, call this service.
-## {% linkable_title Events %}
-
-Errors and warnings are posted as the event `system_log_event`, so it is possible to write automations that trigger whenever a warning or error occurs. The following information is included in each event:
-
-| Field | Description |
-|------------------------------------------------------------------------------------------|
-| `level` | Either `WARNING` or `ERROR` depending on severity. |
-| `source` | File that triggered the error, e.g., `core.py` or `media_player/yamaha.py`. |
-| `exception` | Full stack trace if available, otherwise empty string. |
-| `message` | Descriptive message of the error, e.g., "Error handling request". |
-| `timestamp` | Unix timestamp with as a double, e.g., 1517241010.237416. |
-
-Live examples of these events can be found in the Home Assistant log file or by just looking in the system log. An example could, for instance, look like this:
-
-
-
-The message ("Unable to find service..."), source (`core.py`) and level (`WARNING`) can easily be extracted from the image. Exact timestamp and stack trace is shown if the entry is selected.
-
-## {% linkable_title Examples %}
-
-Here are some examples using the events posted by `system_log`.
-
-### {% linkable_title Counting Number of Warnings %}
-
-This will create a `counter` that increases every time a warning is logged:
-
-```yaml
-counter:
- warning_counter:
- name: Warnings
- icon: mdi:alert
-
-automation:
- - alias: Count warnings
- trigger:
- platform: event
- event_type: system_log_event
- event_data:
- level: WARNING
- action:
- service: counter.increment
- entity_id: counter.warning_counter
-```
-
-### {% linkable_title Conditional Messages %}
-
-This automation will create a persistent notification whenever an error or warning is logged that has the word "service" in the message:
-
-```yaml
-automation:
- - alias: Create notifications for "service" errors
- trigger:
- platform: event
- event_type: system_log_event
- condition:
- condition: template
- value_template: {% raw %}'{{ "service" in trigger.event.data.message }}'{% endraw %}
- action:
- service: persistent_notification.create
- data_template:
- title: Something bad happened
- message: {% raw %}'{{ trigger.event.data.message }}'{% endraw %}
-```
diff --git a/source/_components/tahoma.markdown b/source/_components/tahoma.markdown
index f41f3936cc..3d092af3fb 100644
--- a/source/_components/tahoma.markdown
+++ b/source/_components/tahoma.markdown
@@ -14,7 +14,7 @@ ha_iot_class: "Cloud Polling"
---
-The `Tahoma` component platform is used as an interface to the [tahomalink.com](https://www.tahomalink.com) website. It adds covers, scenes and a sun sensor from the Tahoma platform.
+The `Tahoma` component platform is used as an interface to the [tahomalink.com](https://www.tahomalink.com) website. It adds actually covers and the sun sensor from tahoma platform.
To use your Tahoma devices in your installation, add the following to your `configuration.yaml` file:
diff --git a/source/_components/telegram_bot.markdown b/source/_components/telegram_bot.markdown
index 32397d0fbe..be2dcff5e5 100644
--- a/source/_components/telegram_bot.markdown
+++ b/source/_components/telegram_bot.markdown
@@ -19,27 +19,24 @@ This component creates notification services to send, or edit previously sent, m
If you don't need to receive messages, you can use the [broadcast](/components/telegram_bot.broadcast/) platform instead.
-## {% linkable_title Notification services %}
-
-Available services: `send_message`, `send_photo`, `send_document`, `send_location`, `send_sticker`, `edit_message`, `edit_replymarkup`, `edit_caption` and `answer_callback_query`.
-
-### {% linkable_title Service `telegram_bot.send_message` %}
+### {% linkable_title Notification services %}
+Available services: `send_message`, `send_photo`, `send_document`, `send_location`, `edit_message`, `edit_replymarkup`, `edit_caption`, `answer_callback_query`.
+#### {% linkable_title Service `telegram_bot/send_message` %}
Send a notification.
| Service data attribute | Optional | Description |
|---------------------------|----------|--------------------------------------------------|
| `message` | no | Message body of the notification. |
| `title` | yes | Optional title for your notification. Will be composed as '%title\n%message'. |
-| `target` | yes | An array of pre-authorized chat_ids or user_ids to send the notification to. Defaults to the first allowed chat_id. |
+| `target` | yes | An array of pre-authorized chat_ids to send the notification to. Defaults to the first allowed chat_id. |
| `parse_mode` | yes | Parser for the message text: `html` or `markdown`. |
| `disable_notification` | yes | True/false for send the message silently. iOS users and web users will not receive a notification, Android users will receive a notification with no sound. Defaults to False. |
| `disable_web_page_preview`| yes | True/false for disable link previews for links in the message. |
| `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` |
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
-### {% linkable_title Service `telegram_bot.send_photo` and `telegram_bot.send_sticker` %}
-
+#### {% linkable_title Service `telegram_bot/send_photo` %}
Send a photo.
| Service data attribute | Optional | Description |
@@ -47,16 +44,16 @@ Send a photo.
| `url` | no | Remote path to an image. |
| `file` | no | Local path to an image. |
| `caption` | yes | The title of the image. |
-| `username` | yes | Username for a URL which requires HTTP basic authentication. |
-| `password` | yes | Password for a URL which requires HTTP basic authentication. |
+| `username` | yes | Username for a URL which require HTTP basic authentication. |
+| `password` | yes | Password for a URL which require HTTP basic authentication. |
| `authentication` | yes | Define which authentication method to use. Set to `digest` to use HTTP digest authentication. Defaults to `basic`. |
-| `target` | yes | An array of pre-authorized chat_ids or user_ids to send the notification to. Defaults to the first allowed chat_id. |
+| `target` | yes | An array of pre-authorized chat_ids to send the notification to. Defaults to the first allowed chat_id. |
| `disable_notification` | yes | True/false for send the message silently. iOS users and web users will not receive a notification, Android users will receive a notification with no sound. Defaults to False. |
| `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` |
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
-### {% linkable_title Service `telegram_bot.send_video` %}
+#### {% linkable_title Service `telegram_bot/send_video` %}
Send a video.
| Service data attribute | Optional | Description |
@@ -67,13 +64,12 @@ Send a video.
| `username` | yes | Username for a URL which requires HTTP basic authentication. |
| `password` | yes | Password for a URL which requires HTTP basic authentication. |
| `authentication` | yes | Define which authentication method to use. Set to `digest` to use HTTP digest authentication. Defaults to `basic`. |
-| `target` | yes | An array of pre-authorized chat_ids or user_ids to send the notification to. Defaults to the first allowed chat_id. |
+| `target` | yes | An array of pre-authorized chat_ids to send the notification to. Defaults to the first allowed chat_id. |
| `disable_notification` | yes | True/false to send the message silently. iOS users and web users will not receive a notification. Android users will receive a notification with no sound. Defaults to False. |
| `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` |
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
-### {% linkable_title Service `telegram_bot.send_document` %}
-
+#### {% linkable_title Service `telegram_bot/send_document` %}
Send a document.
| Service data attribute | Optional | Description |
@@ -81,29 +77,27 @@ Send a document.
| `url` | no | Remote path to a document. |
| `file` | no | Local path to a document. |
| `caption` | yes | The title of the document. |
-| `username` | yes | Username for a URL which requires HTTP basic authentication. |
-| `password` | yes | Password for a URL which requires HTTP basic authentication. |
+| `username` | yes | Username for a URL which require HTTP basic authentication. |
+| `password` | yes | Password for a URL which require HTTP basic authentication. |
| `authentication` | yes | Define which authentication method to use. Set to `digest` to use HTTP digest authentication. Defaults to `basic`. |
-| `target` | yes | An array of pre-authorized chat_ids or user_ids to send the notification to. Defaults to the first allowed chat_id. |
+| `target` | yes | An array of pre-authorized chat_ids to send the notification to. Defaults to the first allowed chat_id. |
| `disable_notification` | yes | True/false for send the message silently. iOS users and web users will not receive a notification, Android users will receive a notification with no sound. Defaults to False. |
| `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` |
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
-### {% linkable_title Service `telegram_bot.send_location` %}
-
+#### {% linkable_title Service `telegram_bot/send_location` %}
Send a location.
| Service data attribute | Optional | Description |
|---------------------------|----------|--------------------------------------------------|
| `latitude` | no | The latitude to send. |
| `longitude` | no | The longitude to send. |
-| `target` | yes | An array of pre-authorized chat_ids or user_ids to send the notification to. Defaults to the first allowed chat_id. |
+| `target` | yes | An array of pre-authorized chat_ids to send the notification to. Defaults to the first allowed chat_id. |
| `disable_notification` | yes | True/false for send the message silently. iOS users and web users will not receive a notification, Android users will receive a notification with no sound. Defaults to False. |
| `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` |
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
-### {% linkable_title Service `telegram_bot.edit_message` %}
-
+#### {% linkable_title Service `telegram_bot/edit_message` %}
Edit a previously sent message in a conversation.
| Service data attribute | Optional | Description |
@@ -116,8 +110,7 @@ Edit a previously sent message in a conversation.
| `disable_web_page_preview`| yes | True/false for disable link previews for links in the message. |
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
-### {% linkable_title Service `telegram_bot.edit_caption` %}
-
+#### {% linkable_title Service `telegram_bot/edit_caption` %}
Edit the caption of a previously sent message.
| Service data attribute | Optional | Description |
@@ -128,9 +121,8 @@ Edit the caption of a previously sent message.
| `disable_web_page_preview`| yes | True/false for disable link previews for links in the message. |
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
-### {% linkable_title Service `telegram_bot.edit_replymarkup` %}
-
-Edit the inline keyboard of a previously sent message.
+#### {% linkable_title Service `telegram_bot/edit_replymarkup` %}
+Edit the inline keyboard of a previusly sent message.
| Service data attribute | Optional | Description |
|---------------------------|----------|--------------------------------------------------|
@@ -139,8 +131,7 @@ Edit the inline keyboard of a previously sent message.
| `disable_web_page_preview`| yes | True/false for disable link previews for links in the message. |
| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` |
-### {% linkable_title Service `telegram_bot.answer_callback_query` %}
-
+#### {% linkable_title Service `telegram_bot/answer_callback_query` %}
Respond to a callback query originated by clicking on an online keyboard button. The answer will be displayed to the user as a notification at the top of the chat screen or as an alert.
| Service data attribute | Optional | Description |
@@ -149,7 +140,7 @@ Respond to a callback query originated by clicking on an online keyboard button.
| `callback_query_id` | no | Unique id of the callback response. In the `telegram_callback` event data: `{{ trigger.event.data.id }}` |
| `show_alert` | yes | True/false for show a permanent notification. Defaults to False. |
-### {% linkable_title Service `telegram_bot.delete_message` %}
+#### {% linkable_title Service `telegram_bot/delete_message` %}
Delete a previously sent message in a conversation.
| Service data attribute | Optional | Description |
@@ -157,12 +148,12 @@ Delete a previously sent message in a conversation.
| `message_id` | no | Id of the message to delete. When answering a callback from a pressed button, the id of the origin message is in: `{{ trigger.event.data.message.message_id }}`. You can use `"last"` to refer to the last message sent to `chat_id`. |
| `chat_id` | no | The chat_id where to delete the message. |
-## {% linkable_title `telegram` notification platform %}
+### {% linkable_title `Telegram` notification platform %}
-The [`telegram` notification platform](/components/notify.telegram/) requires the `telegram_bot` component to work with, and it's designed to generate a customized shortcut (`notify.USERNAME`) to send notifications (messages, photos, documents and locations) to a particular `chat_id` with the old syntax, allowing backward compatibility.
+
+The [Telegram notification platform](/components/notify.telegram/) requires the `telegram_bot` component to work with, and it's designed to generate a customized shortcut (`notify.USERNAME`) to send notifications (messages, photos, documents and locations) to a particular `chat_id` with the old syntax, allowing backward compatibility.
The required yaml configuration now reduces to:
-
```yaml
notify:
- name: NOTIFIER_NAME
@@ -170,7 +161,8 @@ notify:
chat_id: USER_CHAT_ID
```
-## {% linkable_title Event triggering %}
+### {% linkable_title Event triggering %}
+
A command looks like `/thecommand`, or `/othercommand with some args`.
@@ -197,7 +189,7 @@ chat_id: ""
chat: ""
```
-If the message is sent from a [press from an inline button](https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating), for example, a callback query is received, and Home Assistant will fire a `telegram_callback` event with:
+if the message is sent from a [press from an inline button](https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating), for example, a callback query is received, and Home Assistant will fire a `telegram_callback` event with:
```yaml
data: ""
@@ -212,6 +204,7 @@ chat_id: ""
### {% linkable_title Configuration samples %}
+
Simple ping pong example.
```yaml
@@ -228,7 +221,7 @@ action:
message: 'pong'
```
-An example that shows keyboard interaction with `notify.telegram`
+Example that show keyboard interaction with `notify.telegram`
```yaml
trigger:
@@ -263,9 +256,8 @@ action:
entity_id: switch.vision_zm1601eu5_battery_operated_siren_switch_9_0
```
-An example to show the use of event_data in action:
+An example to show the use of event_data in the action:
-{% raw %}
```yaml
- alias: 'Kitchen Telegram Speak'
trigger:
@@ -277,21 +269,17 @@ An example to show the use of event_data in action:
- service: notify.kitchen_echo
data_template:
message: >
- Message from {{ trigger.event.data["from_first"] }}. {% for state in trigger.event.data["args"] %} {{ state }} {% endfor %}
+ Message from {% raw %}{{ trigger.event.data["from_first"] }}. {% for state in trigger.event.data["args"] %} {{ state }} {% endfor %}{% endraw %}
```
-{% endraw %}
### {% linkable_title Sample automations with callback queries and inline keyboards %}
-A quick example to show some of the callback capabilities of inline keyboards with a dumb automation consisting in a simple repeater of normal text that presents an inline keyboard with 3 buttons: 'EDIT', 'NO' and 'REMOVE BUTTON':
-
+Quick example to show some of the callback capabilities of inline keyboards with a dumb automation consisting in a simple repeater of normal text that presents an inline keyboard with 3 buttons: 'EDIT', 'NO' and 'REMOVE BUTTON':
- Pressing 'EDIT' changes the sent message.
- Pressing 'NO' only shows a brief notification (answering the callback query).
- Pressing 'REMOVE BUTTON' changes the inline keyboard removing that button.
Text repeater:
-
-{% raw %}
```yaml
- alias: 'Telegram bot that repeats text'
hide_entity: true
@@ -302,18 +290,15 @@ Text repeater:
- service: telegram_bot.send_message
data_template:
title: '*Dumb automation*'
- target: '{{ trigger.event.data.user_id }}'
- message: 'You said: {{ trigger.event.data.text }}'
+ target: {% raw %}'{{ trigger.event.data.user_id }}'{% endraw %}
+ message: 'You said: {% raw %}{{ trigger.event.data.text }}{% endraw %}'
disable_notification: true
inline_keyboard:
- "Edit message:/edit_msg, Don't:/do_nothing"
- "Remove this button:/remove button"
```
-{% endraw %}
Message editor:
-
-{% raw %}
```yaml
- alias: 'Telegram bot that edits the last sent message'
hide_entity: true
@@ -330,22 +315,19 @@ Message editor:
show_alert: true
- service: telegram_bot.edit_message
data_template:
- message_id: '{{ trigger.event.data.message.message_id }}'
- chat_id: '{{ trigger.event.data.chat_id }}'
+ message_id: {% raw %}'{{ trigger.event.data.message.message_id }}'{% endraw %}
+ chat_id: {% raw %}'{{ trigger.event.data.user_id }}'{% endraw %}
title: '*Message edit*'
inline_keyboard:
- "Edit message:/edit_msg, Don't:/do_nothing"
- "Remove this button:/remove button"
message: >
- Callback received from {{ trigger.event.data.from_first }}.
- Message id: {{ trigger.event.data.message.message_id }}.
- Data: {{ trigger.event.data.data }}
+ {% raw %}Callback received from {% raw %}{{ trigger.event.data.from_first }}{% endraw %}.
+ Message id: {% raw %}{{ trigger.event.data.message.message_id }}{% endraw %}.
+ Data: {% raw %}{{ trigger.event.data.data }}{% endraw %}
```
-{% endraw %}
Keyboard editor:
-
-{% raw %}
```yaml
- alias: 'Telegram bot that edits the keyboard'
hide_entity: true
@@ -357,20 +339,17 @@ Keyboard editor:
action:
- service: telegram_bot.answer_callback_query
data_template:
- callback_query_id: '{{ trigger.event.data.id }}'
+ callback_query_id: {% raw %}'{{ trigger.event.data.id }}'{% endraw %}
message: 'Callback received for editing the inline keyboard!'
- service: telegram_bot.edit_replymarkup
data_template:
message_id: 'last'
- chat_id: '{{ trigger.event.data.chat_id }}'
+ chat_id: {% raw %}'{{ trigger.event.data.user_id }}'{% endraw %}
inline_keyboard:
- "Edit message:/edit_msg, Don't:/do_nothing"
```
-{% endraw %}
Only acknowledges the 'NO' answer:
-
-{% raw %}
```yaml
- alias: 'Telegram bot that simply acknowledges'
hide_entity: true
@@ -382,10 +361,9 @@ Only acknowledges the 'NO' answer:
action:
- service: telegram_bot.answer_callback_query
data_template:
- callback_query_id: '{{ trigger.event.data.id }}'
+ callback_query_id: {% raw %}'{{ trigger.event.data.id }}'{% endraw %}
message: 'OK, you said no!'
```
-{% endraw %}
For a more complex usage of the `telegram_bot` capabilities, using [AppDaemon](/docs/ecosystem/appdaemon/tutorial/) is advised.
@@ -422,7 +400,7 @@ class TelegramBotEventListener(appapi.AppDaemon):
assert event_id == 'telegram_callback'
data_callback = payload_event['data']
callback_id = payload_event['id']
- chat_id = payload_event['chat_id']
+ user_id = payload_event['user_id']
# keyboard = ["Edit message:/edit_msg, Don't:/do_nothing",
# "Remove this button:/remove button"]
keyboard = [[("Edit message", "/edit_msg"),
@@ -442,7 +420,7 @@ class TelegramBotEventListener(appapi.AppDaemon):
title = '*Message edit*'
msg = 'Callback received from %s. Message id: %s. Data: ``` %s ```'
self.call_service('telegram_bot/edit_message',
- chat_id=chat_id,
+ chat_id=user_id,
message_id=msg_id,
title=title,
message=msg % (user, msg_id, data_callback),
@@ -458,7 +436,7 @@ class TelegramBotEventListener(appapi.AppDaemon):
# Edit the keyboard
new_keyboard = keyboard[:1]
self.call_service('telegram_bot/edit_replymarkup',
- chat_id=chat_id,
+ chat_id=user_id,
message_id='last',
inline_keyboard=new_keyboard)
diff --git a/source/_components/tellduslive.markdown b/source/_components/tellduslive.markdown
index 42968880ba..735593a0b1 100644
--- a/source/_components/tellduslive.markdown
+++ b/source/_components/tellduslive.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Telldus Live"
-description: "Instructions on how to integrate Telldus Live into Home Assistant."
+description: "Instructions how to integrate Telldus Live into Home Assistant."
date: 2016-01-17 16:00
sidebar: true
comments: false
@@ -21,7 +21,7 @@ If you are upgrading from 0.58 or older, you need to remove all Telldus configur
Home Assistant will automatically discover the presence of a Tellstick Net or Tellstick ZNet on your local network if the [discovery]({{site_root}}/components/discovery/) component is enabled. When discovery and the key exchange with Telldus Live have been completed, you will be presented with an option to integrate with the cloud or local API for direct communication with your hardware in your LAN. Local API supports only one device at this stage. Local API is only supported with the Znet Lite products, the older hardware (such as Tellstick Net) does not support local API.
-To manually integrate your Telldus Live with Home Assistant, e.g., if your device is on another network or in another location, add the following section to your `configuration.yaml` file:
+To manually integrate your Telldus Live with Home Assistant, e.g. if your device is on another network or in another location, add the following section to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
diff --git a/source/_components/tellstick.markdown b/source/_components/tellstick.markdown
index 4f9e03870d..de69aaffc3 100644
--- a/source/_components/tellstick.markdown
+++ b/source/_components/tellstick.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "TellStick"
-description: "Instructions on how to integrate your TellStick into Home Assistant."
+description: "Instructions how to integrate your TellStick into Home Assistant."
date: 2015-03-28 13:06
sidebar: true
comments: false
@@ -30,6 +30,6 @@ tellstick:
Configuration variables:
- **signal_repetitions** (*Optional*): Because the tellstick sends its actions via radio and from most receivers it's impossible to know if the signal was received or not. Therefore you can configure the switch and light to try to send each signal repeatedly.
-- **host** (*Optional*): If you run tellstick on another server or with a hass.io add-on.
+- **host** (*Optional*): If you run tellstick on a other server or with a hass.io add-on.
- **port** (*Optional*): If needed with host config option. Must be port pair, for example `[50800, 50801]`.
diff --git a/source/_components/tesla.markdown b/source/_components/tesla.markdown
index 8673396fc6..4cc5dbd85d 100644
--- a/source/_components/tesla.markdown
+++ b/source/_components/tesla.markdown
@@ -18,19 +18,19 @@ The `Tesla` component offers integration with the [Tesla](https://auth.tesla.com
This component provides the following platforms:
- Binary sensors - such as parking and charger connection.
- - Sensors - such as Battery level, Inside/Outside temperature, odometer, and estimated range.
+ - Sensors - such as Battery level, Inside/Outside temperature.
- Device tracker - to track location of your car
- Lock - Door lock. Enables you to control Tesla's door lock
- Climate - HVAC control. Allow you to control (turn on/off, set target temperature) your Tesla's HVAC system.
- - Switch - Charger and max range switch. Allow you to start/stop charging and set max range charging.
+ - Switch - Charger switch. Allow you to start/stop charging.
To use Tesla in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
tesla:
- username: YOUR_E_MAIL_ADDRESS
- password: YOUR_PASSWORD
+ username: email
+ password: password
```
Configuration variables:
diff --git a/source/_components/thethingsnetwork.markdown b/source/_components/thethingsnetwork.markdown
index 328022f6cc..65211c241d 100644
--- a/source/_components/thethingsnetwork.markdown
+++ b/source/_components/thethingsnetwork.markdown
@@ -20,7 +20,7 @@ The Things network support various integrations to make the data available:
| The Things Network Integration | Home Assistant platform |
|---|---|
| [MQTT](https://www.thethingsnetwork.org/docs/applications/mqtt/) | |
-| [Storage](https://www.thethingsnetwork.org/docs/applications/storage/) | [`thethingsnetwork`](/components/sensor.thethingsnetwork/) |
+| [Storage](https://www.thethingsnetwork.org/docs/applications/storage/) | [`thethingsnetwork`](/component/sensor.thethingsnetwork/) |
| [HTTP](https://www.thethingsnetwork.org/docs/applications/http/) | |
### {% linkable_title Setup %}
diff --git a/source/_components/thingspeak.markdown b/source/_components/thingspeak.markdown
index 2336a59747..d8da23a931 100644
--- a/source/_components/thingspeak.markdown
+++ b/source/_components/thingspeak.markdown
@@ -12,8 +12,8 @@ ha_category: "History"
ha_release: 0.32
---
-The `thingspeak` components makes Home Assistant communicate with the [ThingSpeak API](https://thingspeak.com/).
-For now, it records exactly one entity at once, which is great for testing purposes. For long-time storage you should rely on the [InfluxDB component](/components/influxdb/).
+The `thingspeak` components makes Home Assistant communicate with the [ThingSpeak API](https://thingspeak.com/).
+For now, it records exactly one entity at once, which is great for testing purposes. For long-time storage you should rely on the [InfluxDB component](https://home-assistant.io/components/influxdb/).
You will have to create a [new channel](https://thingspeak.com/channels/new) on ThingSpeak and grab your Write API Key from the "API Keys" tab of the channel you want to use.
diff --git a/source/_components/timer.markdown b/source/_components/timer.markdown
index eb6db877f3..61ff400aea 100644
--- a/source/_components/timer.markdown
+++ b/source/_components/timer.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Timer"
-description: "Instructions on how to integrate timers into Home Assistant."
+description: "Instructions how to integrate timers into Home Assistant."
date: 2017-10-23 06:00
sidebar: true
comments: false
@@ -107,29 +107,30 @@ timer:
```yaml
# Example automations.yaml entry
-- alias: Timerswitch
- id: 'Timerstart'
- # Timer is started when the switch pumprun is set to on.
- trigger:
- - platform: state
- entity_id: switch.pumprun
- to: 'on'
- action:
+- action:
- service: timer.start
entity_id: timer.test
+ alias: Timerswitch
+ id: 'Timerstart'
+
+# Timer is started when the switch pumprun is set to on.
+ trigger:
+ platform: state
+ entity_id: switch.pumprun
+ to: 'on'
# When timer is stopped, the time run out, another message is sent
-- alias: Timerstop
- id: 'Timerstop'
- trigger:
- - platform: event
- event_type: timer.finished
- event_data:
- entity_id: timer.test
- action:
+- action:
- service: notify.nma
data:
message: "Timer stop"
+ alias: Timerstop
+ id: 'Timerstop'
+ trigger:
+ platform: event
+ event_type: timer.finished
+ event_data:
+ entity_id: timer.test
```
### {% linkable_title Control a timer from the frontend %}
diff --git a/source/_components/toon.markdown b/source/_components/toon.markdown
index e516db9ce8..08c38f9ace 100644
--- a/source/_components/toon.markdown
+++ b/source/_components/toon.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Toon"
-description: "Instructions on how to integrate Toon within Home Assistant."
+description: "Instructions how to integrate Toon within Home Assistant."
date: 2017-10-22 12:00
sidebar: true
comments: false
diff --git a/source/_components/tts.amazon_polly.markdown b/source/_components/tts.amazon_polly.markdown
index 8be1fdc0a5..465a5abea1 100644
--- a/source/_components/tts.amazon_polly.markdown
+++ b/source/_components/tts.amazon_polly.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Amazon Polly"
-description: "Instructions on how to setup Amazon Polly with Home Assistant."
+description: "Instructions how to setup Amazon Polly with Home Assistant."
date: 2017-01-28 09:00
sidebar: true
comments: false
@@ -15,8 +15,6 @@ ha_release: 0.37
The `amazon_polly` text-to-speech platform that works with [Amazon Polly](https://aws.amazon.com/polly/) to create the spoken output.
Polly is a paid service via Amazon Web Services. There is a [free tier](https://aws.amazon.com/polly/pricing/) for the first 12 months and then a charge per million characters afterwards.
-## {% linkable_title Configuration %}
-
To get started, add the following lines to your `configuration.yaml` (example for Amazon Polly):
```yaml
@@ -25,62 +23,33 @@ tts:
- platform: amazon_polly
aws_access_key_id: AWS_ACCESS_KEY_ID
aws_secret_access_key: AWS_SECRET_ACCESS_KEY
+ profile_name: AWS_PROFILE
+ region_name: 'us-east-1'
+ voice: Joanna
```
-{% configuration %}
-aws_access_key_id:
- description: "Your AWS Access Key ID. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`."
- required: true
- type: string
-aws_secret_access_key:
- description: "Your AWS Secret Access Key. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`."
- required: true
- type: string
-profile_name:
- description: A credentials profile name. For more information, please see the [boto3 Documentation](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file) for more information.
- required: false
- type: string
-region_name:
- description: "The region identifier to connect to. The default is `us-east-1`. See the [AWS Regions and Endpoints Reference](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region) for available regions."
- required: false
- type: string or list
-name:
- description: "Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`."
- required: false
- type: string
-text_type:
- description: "Specify wherever to use text (default) or ssml markup by default."
- required: false
- type: string
- default: text
-voice:
- description: "Voice name to be used. See the [Amazon Documentation](http://docs.aws.amazon.com/polly/latest/dg/voicelist.html) for available voices."
- required: false
- type: string
-output_format:
- description: "Override the default output format, e.g., `mp3`, `ogg_vorbis` or `pcm`."
- required: false
- type: string
- default: mp3
-sample_rate:
- description: "Override the default sample rate, defaults to 22050 for MP3 and Ogg Vorbis, 16000 for pcm."
- required: false
- type: string
-{% endconfiguration %}
+Configuration variables:
+| Parameter | Value | Description |
+|---------------------|----------|-------------|
+| `aws_access_key_id` | Required | Your AWS Access Key ID. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name` |
+| `aws_secret_access_key` | Required | Your AWS Secret Access Key. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`. |
+| `profile_name` | Optional | A credentials profile name. For more information, please see the [boto3 Documentation](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file) for more information. |
+| `region_name` | Optional | The region identifier to connect to. The default is `us-east-1`. |
+| `name` | Optional | Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. |
+| `text_type` | text/ssml | text or ssml: Specify wherever to use text (default) or ssml markup by default. |
+| `voice` | Optional | Voice name to be used. See the [Amazon Documentation](http://docs.aws.amazon.com/polly/latest/dg/voicelist.html) for available voices. |
+| `output_format` | mp3/ogg_vorbis/pcm | Override the default output format, defaults to MP3. |
+| `sample_rate` | 8000/16000/22050 | Override the default sample rate, defaults to 22050 for MP3 and Ogg Vorbis, 16000 for pcm. |
-## {% linkable_title Usage %}
-
+## Usage
Say to all `media_player` device entities:
-
```yaml
- service: tts.amazon_polly_say
data_template:
message: 'Hello from Amazon Polly'
```
-
or
-
```yaml
- service: tts.amazon_polly_say
data_template:
diff --git a/source/_components/tts.baidu.markdown b/source/_components/tts.baidu.markdown
index 47ba6f0ad8..e8499742fd 100644
--- a/source/_components/tts.baidu.markdown
+++ b/source/_components/tts.baidu.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Baidu Text-to-Speech"
-description: "Instructions on how to setup Baidu TTS with Home Assistant."
+description: "Instructions how to setup Baidu TTS with Home Assistant."
date: 2017-11-21 09:00
sidebar: true
comments: false
diff --git a/source/_components/tts.google.markdown b/source/_components/tts.google.markdown
index 1b0468c87d..cbed90dada 100644
--- a/source/_components/tts.google.markdown
+++ b/source/_components/tts.google.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Google Text-to-Speech"
-description: "Instructions on how to setup Google Text-to-Speech with Home Assistant."
+description: "Instructions how to setup Google Text-to-Speech with Home Assistant."
date: 2016-12-13 07:00
sidebar: true
comments: false
diff --git a/source/_components/tts.markdown b/source/_components/tts.markdown
index 5fc0d8de47..7a2733ebbc 100644
--- a/source/_components/tts.markdown
+++ b/source/_components/tts.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Text-to-Speech (TTS)"
-description: "Instructions on how to setup Text-to-Speech (TTS) with Home Assistant."
+description: "Instructions how to setup Text-to-Speech (TTS) with Home Assistant."
date: 2016-12-13 07:00
sidebar: true
comments: false
@@ -22,17 +22,13 @@ tts:
- platform: google
```
-
-Depending on your setup, you might need to set a base URL (`base_url`) inside the [http component](/components/http/).
-
-
-The following optional parameters can be used with any platform. However, the TTS component will only look for global settings under the configuration of the first configured platform:
+The following optional parameters can be used with any platform. However the TTS component will only look for global settings under the configuration of the first configured platform:
| Parameter | Default | Description |
|---------------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `cache` | True | Allow TTS to cache voice file to local storage. |
-| `cache_dir` | tts | Folder name or path to a folder for caching files. |
-| `time_memory` | 300 | Time to hold the voice data inside memory for fast play on a media player. Minimum is 60 s and the maximum 57600 s (16 hours). |
+| `cache_dir` | tts | Folder name or path to folder for caching files. |
+| `time_memory` | 300 | Time to hold the voice data inside memory for fast play on media player. Minimum is 60 s and the maximum 57600 s (16 hours). |
The extended example from above would look like the following sample:
@@ -45,9 +41,13 @@ tts:
time_memory: 300
```
+
+If you are running Home Assistant over SSL or from within a container, you will have to setup a base URL (`base_url`) inside the [http component](/components/http/).
+
+
## {% linkable_title Service say %}
-The `say` service support `language` and on some platforms also `options` for set, i.e., *voice, motion, speed, etc*. The text for speech is set with `message`.
+The `say` service support `language` and on some platforms also `options` for set i.e. *voice, motion, speed, etc*. The text for speech is set with `message`.
Say to all `media_player` device entities:
@@ -88,33 +88,3 @@ data_template:
## {% linkable_title Cache %}
The component has two caches. Both caches can be controlled with the `cache` option in the platform configuration or the service call `say`. A long time cache will be located on the file system. The in-memory cache for fast responses to media players will be auto-cleaned after a short period.
-
-## {% linkable_title REST Api %}
-
-#### {% linkable_title POST /api/tts_get_url %}
-
-Returns an URL to the generated TTS file. Platform and message are required.
-
-```json
-{
- "plaform": "amazon_polly",
- "message": "I am speaking now"
-}
-```
-
-The return code is 200 if the file is generated. The message body will contain a JSON object with the URL.
-
-```json
-{
- "url": "http://127.0.0.1:8123/api/tts_proxy/265944c108cbb00b2a621be5930513e03a0bb2cd_en_-_demo.mp3"
-}
-```
-
-Sample `curl` command:
-
-```bash
-$ curl -X POST -H "x-ha-access: YOUR_PASSWORD" \
- -H "Content-Type: application/json" \
- -d '{"message": "I am speaking now", "platform": "amazon_polly"}' \
- http://localhost:8123/api/tts_get_url
-```
diff --git a/source/_components/tts.marytts.markdown b/source/_components/tts.marytts.markdown
index 7b13da9906..42fff710e1 100644
--- a/source/_components/tts.marytts.markdown
+++ b/source/_components/tts.marytts.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "MaryTTS"
-description: "Instructions on how to setup MaryTTS with Home Assistant."
+description: "Instructions how to setup MaryTTS with Home Assistant."
date: 2017-04-08 16:49
sidebar: true
comments: false
diff --git a/source/_components/tts.microsoft.markdown b/source/_components/tts.microsoft.markdown
index bb68917616..036dfed524 100644
--- a/source/_components/tts.microsoft.markdown
+++ b/source/_components/tts.microsoft.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Microsoft Text-to-Speech"
-description: "Instructions on how to setup Microsoft Text-to-Speech with Home Assistant."
+description: "Instructions how to setup Microsoft Text-to-Speech with Home Assistant."
date: 2017-11-07 12:00
sidebar: true
comments: false
diff --git a/source/_components/tts.picotts.markdown b/source/_components/tts.picotts.markdown
index 5525c0b8ec..411cc11c4c 100644
--- a/source/_components/tts.picotts.markdown
+++ b/source/_components/tts.picotts.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Pico Text-to-Speech"
-description: "Instructions on how to setup Pico Text-to-Speech with Home Assistant."
+description: "Instructions how to setup Pico Text-to-Speech with Home Assistant."
date: 2017-01-03 16:00
sidebar: true
comments: false
diff --git a/source/_components/tts.voicerss.markdown b/source/_components/tts.voicerss.markdown
index 99e6b5d685..612ae41082 100644
--- a/source/_components/tts.voicerss.markdown
+++ b/source/_components/tts.voicerss.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "VoiceRSS"
-description: "Instructions on how to setup VoiceRSS TTS with Home Assistant."
+description: "Instructions how to setup VoiceRSS TTS with Home Assistant."
date: 2016-12-13 07:00
sidebar: true
comments: false
diff --git a/source/_components/tts.yandextts.markdown b/source/_components/tts.yandextts.markdown
index af30eacea7..18693965e7 100644
--- a/source/_components/tts.yandextts.markdown
+++ b/source/_components/tts.yandextts.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Yandex TTS"
-description: "Instructions on how to setup Yandex SpeechKit TTS with Home Assistant."
+description: "Instructions how to setup Yandex SpeechKit TTS with Home Assistant."
date: 2017-01-17 03:04
sidebar: true
comments: false
diff --git a/source/_components/twilio.markdown b/source/_components/twilio.markdown
index ed3752a9e2..299a91f019 100644
--- a/source/_components/twilio.markdown
+++ b/source/_components/twilio.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Twilio"
-description: "Instructions on how to add Twilio notifications to Home Assistant."
+description: "Instructions how to add Twilio notifications to Home Assistant."
date: 2016-05-14 14:14
sidebar: true
comments: false
@@ -32,4 +32,4 @@ Configuration variables:
- **auth_token** (*Required*): Your Twilio AUTH TOKEN which can be found in your [console](https://www.twilio.com/console). It should be directly under where you found the `account_sid`.
### {% linkable_title Usage %}
-After configuring the base Twilio component, add and configure either or both of the [twilio SMS](/components/notify.twilio_sms/) and [twilio Phone](/components/notify.twilio_call) components to utilize the notification functionality.
+After configuring the base Twilio component, add and configure either or both of the [twilio SMS](https://home-assistant.io/components/notify.twilio_sms/) and [twilio Phone](https://home-assistant.io/components/notify.twilio_call) components to utilize the notification functionality.
diff --git a/source/_components/upcloud.markdown b/source/_components/upcloud.markdown
deleted file mode 100644
index dcb15e41fc..0000000000
--- a/source/_components/upcloud.markdown
+++ /dev/null
@@ -1,44 +0,0 @@
----
-layout: page
-title: UpCloud
-description: Instructions on how to integrate UpCloud within Home Assistant.
-date: 2018-01-28 20:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: Hub
-ha_release: 0.65
-logo: upcloud.png
-ha_iot_class: Cloud Polling
----
-
-
-The `upcloud` component allows you to access the information about your [UpCloud](https://www.upcloud.com/) servers from Home Assistant.
-
-Set up your API user credentials in your [UpCloud control panel](https://my.upcloud.com/).
-
-To integrate your UpCloud servers with Home Assistant, add the following section to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-upcloud:
- username: YOUR_API_USERNAME
- password: YOUR_API_PASSWORD
-```
-
-{% configuration %}
-username:
- description: Your UpCloud API username.
- required: true
- type: string
-password:
- description: Your UpCloud API user password.
- required: true
- type: string
-scan_interval:
- description: Update interval in seconds.
- required: false
- type: int
- default: 60
-{% endconfiguration %}
diff --git a/source/_components/usps.markdown b/source/_components/usps.markdown
index 3a7c9a06ab..6f92cc8e77 100644
--- a/source/_components/usps.markdown
+++ b/source/_components/usps.markdown
@@ -16,37 +16,6 @@ ha_iot_class: "Cloud Polling"
The `usps` platform allows one to track deliveries and inbound mail from the [US Postal Service (USPS)](https://www.usps.com/).
In addition to having a USPS account, you will need to complete the "Opt-In" process for packages by clicking "Get Started Now" on [this page](https://my.usps.com/mobileWeb/pages/intro/start.action). You must also "Opt-In" to [Informed Delivery](https://informeddelivery.usps.com/box/pages/intro/start.action) to see inbound mail.
-## Prerequisites
-
-This component requires that a headless-capable web browser is installed on your system - either PhantomJS or Google Chrome. Preferably use Chrome if your operating system supports it, since PhantomJS is deprecated.
-
-
- If you are using a Raspberry Pi, you must use PhantomJS.
-
-
-### PhantomJS
-
-Install the latest version of [PhantomJS]( http://phantomjs.org/download.html). Ensure the executable is on your `PATH`. `phantomjs --version` should work and report the correct version. This is the default option and requires no further configuration.
-
-
- Don't use apt-get to install PhantomJS. This version is not compatible.
-
-
-If you use the PhantomJS option, specify `driver: phantomjs` in your `usps` configuration.
-
-
-### Chrome
-
-Install Chrome 59 or greater (preferably the most recent). Install the latest [Chromedriver](https://sites.google.com/a/chromium.org/chromedriver/downloads). Ensure both executables are on your `PATH`. `google-chrome --version` and `chromedriver --version` should work and report the correct version.
-
-OS-specific instructions:
-- [Ubuntu 16](https://gist.github.com/ziadoz/3e8ab7e944d02fe872c3454d17af31a5) (Selenium server portion *not* necessary)
-- [RHEL/Centos 7](https://stackoverflow.com/a/46686621)
-
-If you use the Chrome option, specify `driver: chrome` in your `usps` configuration.
-
-## Configuration
-
To enable this component, add the following lines to your `configuration.yaml`:
```yaml
@@ -62,7 +31,6 @@ 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")
diff --git a/source/_components/vacuum.dyson.markdown b/source/_components/vacuum.dyson.markdown
index b482899130..4ac3d49e5e 100644
--- a/source/_components/vacuum.dyson.markdown
+++ b/source/_components/vacuum.dyson.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Dyson 360 Eye"
-description: "Instructions on how to integrate your Dyson Eye 360 vacuum robot within Home Assistant."
+description: "Instructions how to integrate your Dyson Eye 360 vacuum robot within Home Assistant."
date: 2017-08-06 10:30
sidebar: true
comments: false
diff --git a/source/_components/vacuum.markdown b/source/_components/vacuum.markdown
index c626a39934..51b0adc667 100644
--- a/source/_components/vacuum.markdown
+++ b/source/_components/vacuum.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Vacuum cleaner robots"
-description: "Instructions on how to setup a botvac in Home Assistant."
+description: "Instructions how to setup a botvac in Home Assistant."
date: 2017-07-28 15:00
sidebar: true
comments: false
@@ -27,7 +27,7 @@ Available services: `turn_on`, `turn_off`, `start_pause`, `stop`, `return_to_hom
Before calling one of these services, make sure your botvac platform supports it.
-#### {% linkable_title Service `vacuum.turn_on` %}
+#### {% linkable_title Service `vacuum/turn_on` %}
Start a new cleaning task.
@@ -35,7 +35,7 @@ Start a new cleaning task.
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
-#### {% linkable_title Service `vacuum.turn_off` %}
+#### {% linkable_title Service `vacuum/turn_off` %}
Stop the current cleaning task and return to the dock.
@@ -43,7 +43,7 @@ Stop the current cleaning task and return to the dock.
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
-#### {% linkable_title Service `vacuum.start_pause` %}
+#### {% linkable_title Service `vacuum/start_pause` %}
Start, pause or resume a cleaning task.
@@ -51,7 +51,7 @@ Start, pause or resume a cleaning task.
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
-#### {% linkable_title Service `vacuum.stop` %}
+#### {% linkable_title Service `vacuum/stop` %}
Stop the current activity of the botvac.
@@ -59,7 +59,7 @@ Stop the current activity of the botvac.
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
-#### {% linkable_title Service `vacuum.return_to_home` %}
+#### {% linkable_title Service `vacuum/return_to_home` %}
Tell the botvac to return home.
@@ -67,7 +67,7 @@ Tell the botvac to return home.
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
-#### {% linkable_title Service `vacuum.locate` %}
+#### {% linkable_title Service `vacuum/locate` %}
Locate the vacuum cleaner robot.
@@ -75,7 +75,7 @@ Locate the vacuum cleaner robot.
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
-#### {% linkable_title Service `vacuum.clean_spot` %}
+#### {% linkable_title Service `vacuum/clean_spot` %}
Tell the vacuum cleaner to do a spot clean-up.
@@ -83,7 +83,7 @@ Tell the vacuum cleaner to do a spot clean-up.
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
-#### {% linkable_title Service `vacuum.set_fanspeed` %}
+#### {% linkable_title Service `vacuum/set_fanspeed` %}
Set the fan speed of the botvac. The `fanspeed` can be a label, as `balanced` or `turbo`, or be a number; it depends on the `vacuum` platform.
@@ -92,7 +92,7 @@ Set the fan speed of the botvac. The `fanspeed` can be a label, as `balanced` or
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
| `fanspeed` | no | Platform dependent vacuum cleaner fan speed, with speed steps, like 'medium', or by percentage, between 0 and 100. |
-#### {% linkable_title Service `vacuum.send_command` %}
+#### {% linkable_title Service `vacuum/send_command` %}
Send a platform-specific command to the vacuum cleaner.
diff --git a/source/_components/vacuum.mqtt.markdown b/source/_components/vacuum.mqtt.markdown
index 1777c7cd89..65ed9679ce 100644
--- a/source/_components/vacuum.mqtt.markdown
+++ b/source/_components/vacuum.mqtt.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "MQTT Vacuum"
-description: "Instructions on how to integrate your MQTT enabled Vacuum within Home Assistant."
+description: "Instructions how to integrate your MQTT enabled Vacuum within Home Assistant."
date: 2017-09-11 20:26
sidebar: true
comments: false
diff --git a/source/_components/vacuum.neato.markdown b/source/_components/vacuum.neato.markdown
index b670457369..2c0ed93464 100644
--- a/source/_components/vacuum.neato.markdown
+++ b/source/_components/vacuum.neato.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Neato Robotics Vacuum"
-description: "Instructions on how to integrate a Neato Botvac Connected Vacuum within Home Assistant."
+description: "Instructions how to integrate a Neato Botvac Connected Vacuum within Home Assistant."
date: 2017-10-18 16:11
sidebar: true
comments: false
diff --git a/source/_components/vacuum.roomba.markdown b/source/_components/vacuum.roomba.markdown
index bf28b11035..32c1393eb2 100644
--- a/source/_components/vacuum.roomba.markdown
+++ b/source/_components/vacuum.roomba.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "iRobot Roomba"
-description: "Instructions on how to integrate your Wi-Fi enabled Roomba within Home Assistant."
+description: "Instructions how to integrate your Wi-Fi enabled Roomba within Home Assistant."
date: 2017-08-04 20:43
sidebar: true
comments: false
diff --git a/source/_components/vacuum.xiaomi_miio.markdown b/source/_components/vacuum.xiaomi_miio.markdown
index 9fa8cbe3da..4abc27588c 100644
--- a/source/_components/vacuum.xiaomi_miio.markdown
+++ b/source/_components/vacuum.xiaomi_miio.markdown
@@ -13,7 +13,8 @@ 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:
@@ -49,22 +50,26 @@ 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`
- `xiaomi_remote_control_move`
- `xiaomi_remote_control_move_step`
-### {% linkable_title Service `vacuum.xiaomi_remote_control_start` %}
+### {% 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 |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific robot; default targets all |
-### {% linkable_title Service `vacuum.xiaomi_remote_control_stop` %}
+### {% linkable_title Service `vacuum/xiaomi_remote_control_stop` %}
Exit the remote control mode of the robot.
@@ -72,18 +77,20 @@ Exit the remote control mode of the robot.
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific robot; default targets all |
-### {% linkable_title Service `vacuum.xiaomi_remote_control_move` %}
+### {% 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 |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific robot; default targets all |
| `velocity` | no | Speed: between -0.29 and 0.29 |
| `rotation` | no | Rotation: between -179 degrees and 179 degrees |
-| `duration` | no | The number of milliseconds that the robot should move for |
+| `duration` | no | The number of seconds that the robot should move for |
-### {% linkable_title Service `vacuum.xiaomi_remote_control_move_step` %}
+
+### {% linkable_title Service `vacuum/xiaomi_remote_control_move_step` %}
Enter remote control mode, make one move, stop, and exit remote control mode.
@@ -92,12 +99,13 @@ Enter remote control mode, make one move, stop, and exit remote control mode.
| `entity_id` | yes | Only act on specific robot; default targets all |
| `velocity` | no | Speed: between -0.29 and 0.29. |
| `rotation` | no | Rotation: between -179 degrees and 179 degrees. |
-| `duration` | no | The number of milliseconds that the robot should move for |
+| `duration` | no | The number of seconds that the robot should move for |
## {% linkable_title Attributes %}
-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:
+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:
- `cleaning_time`
- `do_not_disturb`
@@ -125,45 +133,12 @@ The following table shows the units of measurement for each attribute:
## {% linkable_title Retrieving the Access Token %}
-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, Mi Robot 2 (Roborock) 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.
+This token (32 hexadecimal characters) is required for the Xiaomi Mi Robot
+Vacuum and Xiaomi Philips Lights. 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.
-#### {% 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.
@@ -197,13 +172,13 @@ To fetch the token follow these instructions depending on your mobile phone plat
1. Configure the robot with the Mi-Home app.
2. Enable developer mode, USB debugging and plug the Android phone into the computer.
-3. Get ADB e.g., `apt-get install android-tools-adb` or `apt-get install adb`
+3. Get ADB e.g. `apt-get install android-tools-adb` or `apt-get install adb`
4. `adb devices` should list your device. Consult ADB manual if necessary.
-5. Issue a backup command via adb: `adb backup -noapk com.xiaomi.smarthome -f backup.ab` (set a password if prompted on your phone). Some devices may required single quotes in the command `adb backup '-noapk com.xiaomi.smarthome -f backup.ab'`
+5. Issue a backup command via adb: `adb backup -noapk com.xiaomi.smarthome -f backup.ab` (set a password if prompted on your phone)
6. Download the 'ADB Backup Extractor' from [here](https://sourceforge.net/projects/adbextractor/files/latest/download)
7. Extract the data from the backup: `java -jar Android\ Backup\ Utilities/Android\ Backup\ Extractor/android-backup-extractor-20171005-bin/abe.jar unpack backup.ab unpacked.tar` (enter the password, if prompted)
8. Untar the unpacked data: `tar -xvf unpacked.tar`
-9. `sqlite3 apps/com.xiaomi.smarthome/db/miio2.db 'select token from devicerecord where name like "%Vacuum%";'` returns the token for your Xiaomi vacuum bot.
+9. `sqlite3 apps/com.xiaomi.smarthome/db/miio2.db 'select token from devicerecord where name = "Mi Robot Vacuum";'` returns the token for your Xiaomi vacuum bot.
#### {% linkable_title Linux and Android (rooted!) %}
@@ -230,7 +205,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` (for those using Magisk based root the previous command won't work. After entering a shell, type `su` to enter the root shell)
+6. `adb 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 %}
@@ -245,7 +220,7 @@ To fetch the token follow these instructions depending on your mobile phone plat
8. Install [DB Browser for SQLite](http://sqlitebrowser.org/).
9. Open DB Browser and load the `.sqlite` file you saved from your backup.
10. Click on the `Execute SQL` tab.
-11. Input and run this query: `SELECT ZTOKEN FROM ZDEVICE WHERE ZNAME LIKE "%Vacuum%"`
+11. Input and run this query: `SELECT ZTOKEN FROM ZDEVICE WHERE ZNAME = "Mi Robot Vacuum"`
12. Copy the returned 32-digit hexadecimal string to your clipboard.
13. Open `Terminal` and execute this command: `echo '0: ' | xxd -r -p | openssl enc -d -aes-128-ecb -nopad -nosalt -K 00000000000000000000000000000000`
14. Use the resulting string as your token.
diff --git a/source/_components/vera.markdown b/source/_components/vera.markdown
index 1dfa965fb4..264f39157f 100644
--- a/source/_components/vera.markdown
+++ b/source/_components/vera.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Vera"
-description: "Instructions on how to setup Vera Z-Wave hubs and configure devices within Home Assistant."
+description: "Instructions how to setup Vera Z-Wave hubs and configure devices within Home Assistant."
date: 2015-03-23 20:04
sidebar: true
comments: false
diff --git a/source/_components/verisure.markdown b/source/_components/verisure.markdown
index 7eac9bad58..d73c9c9e49 100644
--- a/source/_components/verisure.markdown
+++ b/source/_components/verisure.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Verisure"
-description: "Instructions on how to setup Verisure devices within Home Assistant."
+description: "Instructions how to setup Verisure devices within Home Assistant."
date: 2015-08-17 20:28
sidebar: true
comments: false
@@ -45,4 +45,4 @@ Configuration variables:
- **mouse** (*Optional*): Set to 1 to show mouse detectors, 0 to disable. Default 1.
- **door_window** (*Optional*): Set to 1 to show door and window sensors, 0 to disable. Default 1.
- **code_digits** (*Optional*): Number of digits in PIN code. Default 4.
-- **giid** (*Optional*): The GIID of your installation (If you have more then one alarm system). To find the GIID for your systems run 'python verisure.py EMAIL PASSWORD installations'
+- **giid** (*Optional*): The GIID of your installation (If you have more then one alarm system).
diff --git a/source/_components/volvooncall.markdown b/source/_components/volvooncall.markdown
index 6482d372cc..09664ef231 100644
--- a/source/_components/volvooncall.markdown
+++ b/source/_components/volvooncall.markdown
@@ -21,8 +21,8 @@ To use Volvo On Call in your installation, add the following to your `configurat
```yaml
# Example configuration.yaml entry
volvooncall:
- username: YOUR_USERNAME
- password: YOUR_PASSWORD
+ username: username
+ password: password
```
Users registered with Volvo in North America or China will need to specify a region:
@@ -30,18 +30,15 @@ Users registered with Volvo in North America or China will need to specify a reg
```yaml
# North America
volvooncall:
- username: YOUR_USERNAME
- password: YOUR_PASSWORD
+ username: username
+ password: password
region: na
```
-
-or
-
```yaml
# China
volvooncall:
- username: YOUR_USERNAME
- password: YOUR_PASSWORD
+ username: username
+ password: password
region: cn
```
@@ -50,8 +47,8 @@ A more advanced example for setting the vehicle name and selecting what resource
```yaml
# Example configuration.yaml entry
volvooncall:
- username: YOUR_USERNAME
- password: YOUR_PASSWORD
+ username: username
+ password: password
name:
abc123: 'Batmobile'
resources:
diff --git a/source/_components/wake_on_lan.markdown b/source/_components/wake_on_lan.markdown
index 2f7b1d4532..a6bd3291ac 100644
--- a/source/_components/wake_on_lan.markdown
+++ b/source/_components/wake_on_lan.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Wake on LAN"
-description: "Instructions on how to setup the Wake on LAN component in Home Assistant."
+description: "Instructions how to setup the Wake on LAN component in Home Assistant."
date: 2017-07-8 15:00
sidebar: true
comments: false
diff --git a/source/_components/waterfurnace.markdown b/source/_components/waterfurnace.markdown
index 2555b1fb80..9bf884e0c2 100644
--- a/source/_components/waterfurnace.markdown
+++ b/source/_components/waterfurnace.markdown
@@ -13,11 +13,12 @@ ha_release: 0.62
ha_iot_class: "Cloud Polling"
---
-The `waterfurnace` component communicates with the WaterFurnace Symphony website's WebSocket to show you many of the sensors in your
-system. While not an official API, this is the same backend the Symphony website is based on, and should be reasonably stable.
+The `waterfurnace` component communicates with the WaterFurnace
+Symphony website's WebSocket to show you many of the sensors in your
+system. While not an official API, this is the same backend the
+Symphony website is based on, and should be reasonably stable.
The sensors provided include:
-
- Thermostat Setpoint
- Thermostat Current Temp
- Leaving Air Temp
@@ -27,37 +28,41 @@ The sensors provided include:
- Total system power (in Watts)
- Furnace Mode
-## {% linkable_title Configuration %}
-
To use Waterfurnace in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
waterfurnace:
- username: YOUR_USERNAME
- password: YOUR_PASSWORD
+ username: you@example.com
+ password: secr3tpassword
unit: 0123456789AB
```
{% configuration %}
username:
- description: The email address for your Symphony WaterFurnace account
- required: true
- type: string
+ description: The email address for your Symphony WaterFurnace account
+ required: true
+ type: string
password:
- description: The password for your Symphony WaterFurnace account
- required: true
- type: string
+ description: The password for your Symphony WaterFurnace account
+ required: true
+ type: string
unit:
- description: The unit serial number for your WaterFurnace
- required: true
- type: string
+ description: The unit serial number for your WaterFurnace
+ required: true
+ type: string
{% endconfiguration %}
#### {% linkable_title Limitations %}
-The WebSocket interface used by this module requires active polling, otherwise the server side shuts down the connection. By default, this polling is happening every 10 seconds. All sensors are updated during every polling cycle.
-
-While this is communicating with a thermostat, geothermal systems operate most efficiently when setbacks are not used, and the home is kept at a constant temperature. It remains useful to collect the data from the system to understand its performance, but a full climate interface won't be implemented.
+The WebSocket interface used by this module requires active polling,
+otherwise the server side shuts down the connection. By default, this
+polling is happening every 10 seconds. All sensors are updated during
+every polling cycle.
+While this is communicating with a thermostat, geothermal systems
+operate most efficiently when setbacks are not used, and the home is
+kept at a constant temperature. It remains useful to collect the data
+from the system to understand its performance, but a full climate
+interface won't be implemented.
diff --git a/source/_components/weather.bom.markdown b/source/_components/weather.bom.markdown
index fe26c58337..3a9d64c81a 100644
--- a/source/_components/weather.bom.markdown
+++ b/source/_components/weather.bom.markdown
@@ -15,12 +15,9 @@ ha_iot_class: "Cloud Polling"
The `bom` weather platform uses the [Australian Bureau of Meteorology (BOM)](http://www.bom.gov.au) as a source for current (half-hourly) meteorological data.
-## {% linkable_title Configuration %}
-
To add the BOM weather platform to your installation, add the following to your `configuration.yaml` file:
```yaml
-# Example configuration.yaml entry
weather:
- platform: bom
```
diff --git a/source/_components/weather.buienradar.markdown b/source/_components/weather.buienradar.markdown
index 0b4ef3f0db..9cfb72d10c 100644
--- a/source/_components/weather.buienradar.markdown
+++ b/source/_components/weather.buienradar.markdown
@@ -1,7 +1,7 @@
---
layout: page
-title: "Buienradar"
-description: "Instructions on how to integrate buienradar.nl weather within Home Assistant."
+title: "Buienradar Weather"
+description: "Instructions how to integrate buienradar.nl weather within Home Assistant."
date: 2017-05-15 14:00
sidebar: true
comments: false
@@ -14,11 +14,8 @@ ha_iot_class: "Cloud Polling"
---
The `buienradar` platform uses [buienradar.nl](http://buienradar.nl/) as a source for current meteorological data for your location. The weather forecast is delivered by Buienradar, who provides a web service that provides detailed weather information for users in The Netherlands.
-
The relevant weather station used will be automatically selected based on the location specified in the Home Assistant configuration (or in the Buienradar weather/sensor component). A map of all available weather stations can be found [here](https://www.google.com/maps/d/embed?mid=1NivHkTGQUOs0dwQTnTMZi8Uatj0).
-## {% linkable_title Configuration %}
-
To add the Buienradar weather to your installation, add the following to your `configuration.yaml` file:
```yaml
@@ -29,7 +26,7 @@ weather:
Configuration variables:
-- **name** (*Optional*): You can specify a name of the component, but do not have to. If you specify a name, the weather component will get an entity name of `weather.[name]`; if no name is specified, it will try to set its name to `weather.BR_[stationname]`. However at the moment in time, the entity is created, no data has been retrieved yet, so the entity will get named `weather.BR_unknown_station`. Later the station name will be known and get updated, but the entity name remains.
+- **name** (*Optional*): You can specify a name of the component, but do not have to. If you specify a name, the weather component will get an entity name of 'weather.[name]'; if no name is specified, it will try to set its name to 'weather.BR_[stationname]'. However at the moment in time, the entity is created, no data has been retrieved yet, so the entity will get named 'weather.BR_unknown_station'. Later the station name will be known and get updated, but the entity name remains.
- **latitude** (*Optional*): Latitude to use for selection of data source location. Longitude and latitude will be taken from Home Assistant configuration but can be overridden/changed in this component to select a different location for Buienradar.
- **longitude**(*Optional*): Longitude to use for selection of data source location. Longitude and latitude will be taken from Home Assistant configuration but can be overridden/changed in this component to select a different location for Buienradar.
- **forecast** (*Optional*): 'True' to add a temperature forecast, 'False' to suppress it.
diff --git a/source/_components/weather.darksky.markdown b/source/_components/weather.darksky.markdown
index 6a3b1ad138..0352ef6074 100644
--- a/source/_components/weather.darksky.markdown
+++ b/source/_components/weather.darksky.markdown
@@ -1,27 +1,29 @@
---
layout: page
title: "Dark Sky"
-description: "Instructions on how to integrate Dark Sky within Home Assistant."
+description: "Instructions how to integrate Dark Sky within Home Assistant."
date: 2016-09-29 09:00
sidebar: true
comments: false
sharing: true
footer: true
-featured: true
logo: dark_sky.png
ha_category: Weather
ha_release: 0.61
ha_iot_class: "Cloud Polling"
---
-The `darksky` platform uses the [Dark Sky](https://darksky.net/) web service as a source for meteorological data for your location.
+The `darksky` platform uses the [Dark Sky](https://darksky.net/) web service as
+a source for meteorological data for your location.
-## {% linkable_title Configuration %}
-
-You need an API key which is free but requires [registration](https://darksky.net/dev/register). The free tier allows up to 1000 calls per day, this platform updates at most every 3 minutes, using up to 480 of those calls.
+You need an API key which is free but requires
+[registration](https://darksky.net/dev/register). The free tier allows up to
+1000 calls per day, this platform updates at most every 3 minutes, using up to
+480 of those calls.
-[Dark Sky](https://darksky.net/dev/) will charge you $0.0001 per API call if you enter your credit card details and create more than 1000 calls per day.
+[Dark Sky](https://darksky.net/dev/) will charge you $0.0001 per API call if you
+enter your credit card details and create more than 1000 calls per day.
To add Dark Sky to your installation, add the following to your `configuration.yaml` file:
diff --git a/source/_components/weather.ecobee.markdown b/source/_components/weather.ecobee.markdown
index 33f1983ecd..0f32830963 100644
--- a/source/_components/weather.ecobee.markdown
+++ b/source/_components/weather.ecobee.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Ecobee Weather"
-description: "Instructions on how to setup the Ecobee weather within Home Assistant."
+description: "Instructions how to setup the Ecobee weather within Home Assistant."
date: 2017-11-29 21:00
sidebar: true
comments: false
diff --git a/source/_components/weather.markdown b/source/_components/weather.markdown
index c256cae2a8..f082409139 100644
--- a/source/_components/weather.markdown
+++ b/source/_components/weather.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Weather"
-description: "Instructions on how to setup your Weather platforms with Home Assistant."
+description: "Instructions how to setup your Weather platforms with Home Assistant."
date: 2016-09-28 14:00
sidebar: true
comments: false
@@ -13,22 +13,4 @@ The `weather` platforms are gathering meteorological information from web servic
Home Assistant currently supports free web services and such which require a registration. Please check the sidebar for a full list of supported `weather` platforms.
-## {% linkable_title Condition mapping %}
-
-The `weather` platform only knows the below listed conditions. The reason for this is that for these conditions is an icon from [Material Design Icons](https://materialdesignicons.com/) available and mapped in the [frontend](https://github.com/home-assistant/home-assistant-polymer/blob/master/src/cards/ha-weather-card.html#L77).
-
-- 'cloudy'
-- 'fog'
-- 'hail'
-- 'lightning'
-- 'lightning-rainy'
-- 'partlycloudy'
-- 'pouring'
-- 'rainy'
-- 'snowy'
-- 'snowy-rainy'
-- 'sunny'
-- 'windy'
-- 'windy-variant'
-- 'exceptional':
diff --git a/source/_components/weather.metoffice.markdown b/source/_components/weather.metoffice.markdown
index df624d2a9c..5875121806 100644
--- a/source/_components/weather.metoffice.markdown
+++ b/source/_components/weather.metoffice.markdown
@@ -15,12 +15,9 @@ ha_iot_class: "Cloud Polling"
The `metoffice` weather platform uses the Met Office's [DataPoint API][datapoint] for weather data.
-## {% linkable_title Configuration %}
-
To add the Met Office weather platform to your installation, you'll need to register for a free API key at the link above and then add the following to your `configuration.yaml` file:
```yaml
-# Example configuration.yaml entry
weather:
- platform: metoffice
api_key: YOUR_API_KEY
diff --git a/source/_components/weather.openweathermap.markdown b/source/_components/weather.openweathermap.markdown
index 53f7e9a348..9c0a24f447 100644
--- a/source/_components/weather.openweathermap.markdown
+++ b/source/_components/weather.openweathermap.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "OpenWeatherMap"
-description: "Instructions on how to integrate OpenWeatherMap within Home Assistant."
+description: "Instructions how to integrate OpenWeatherMap within Home Assistant."
date: 2016-09-29 09:00
sidebar: true
comments: false
@@ -15,8 +15,6 @@ ha_iot_class: "Cloud Polling"
The `openweathermap` weather platform uses [OpenWeatherMap](http://openweathermap.org/) as a source for current meteorological data for your location.
-## {% linkable_title Configuration %}
-
You need an API key which is free but requires a [registration](http://home.openweathermap.org/users/sign_up).
To add OpenWeatherMap to your installation, add the following to your `configuration.yaml` file:
diff --git a/source/_components/weather.yweather.markdown b/source/_components/weather.yweather.markdown
index 27bbda8214..e087503679 100644
--- a/source/_components/weather.yweather.markdown
+++ b/source/_components/weather.yweather.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Yahoo Weather"
-description: "Instructions on how to integrate Yahoo Weather within Home Assistant."
+description: "Instructions how to integrate Yahoo Weather within Home Assistant."
date: 2016-07-06 9:06
sidebar: true
comments: false
@@ -19,8 +19,6 @@ The `yweather` platform uses [Yahoo Weather](https://www.yahoo.com/news/weather/
Use of the Yahoo Weather API should not exceed reasonable request volume. Access is limited to 2000 signed calls per day.
-## {% linkable_title Configuration %}
-
The `woeid` (Where On Earth ID) for your location, as shown in the example below. You can find your WOEID by copying the numeric digits at the end of the URL for your location at [Yahoo Weather](https://www.yahoo.com/news/weather/). If you don't add a WOEID, it will be generated from Home Assistant's latitude and longitude.
To add Yahoo Weather to your installation, add the following to your `configuration.yaml` file:
diff --git a/source/_components/weather.zamg.markdown b/source/_components/weather.zamg.markdown
index b3112d97ea..89cc25bca8 100644
--- a/source/_components/weather.zamg.markdown
+++ b/source/_components/weather.zamg.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "ZAMG Weather"
-description: "Instructions on how to integrate ZAMG sensors within Home Assistant."
+description: "Instructions how to integrate ZAMG sensors within Home Assistant."
date: 2016-12-06 08:00
sidebar: true
comments: false
@@ -17,8 +17,6 @@ The `zamg` platform uses meteorological details published by the Austrian weathe
Only observations for capital cities are publicly available. You can check the list of stations in [CSV format](http://www.zamg.ac.at/ogd).
-## {% linkable_title Configuration %}
-
To add ZAMG to your installation, add the following to your `configuration.yaml` file:
```yaml
diff --git a/source/_components/weblink.markdown b/source/_components/weblink.markdown
index ebc44a1eb9..4d4d5b9cc8 100644
--- a/source/_components/weblink.markdown
+++ b/source/_components/weblink.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Weblink"
-description: "Instructions on how to setup Links within Home Assistant."
+description: "Instructions how to setup Links within Home Assistant."
date: 2016-02-02 20:00
sidebar: true
comments: false
@@ -22,26 +22,13 @@ weblink:
entities:
- name: Router
url: http://192.168.1.1/
- icon: mdi:router-wireless
- name: Home Assistant
- url: https://www.home-assistant.io
- - name: Grafana
- url: /grafana
+ url: https://home-assistant.io
```
+Configuration variables:
-{% configuration %}
-name:
- description: Text for the link.
- required: true
- type: string
-url:
- description: The URL (absolute URL or absolute path) for the link.
- required: true
- type: string
-icon:
- description: Icon for entry.
- required: false
- type: string
-{% endconfiguration %}
+- **name** (*Required*): Text for the link.
+- **url** (*Required*): The URL for the link.
+- **icon** (*Optional*): Icon for entry.
Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`.
diff --git a/source/_components/websocket_api.markdown b/source/_components/websocket_api.markdown
index 5cb8e926d0..4eff8a8a3f 100644
--- a/source/_components/websocket_api.markdown
+++ b/source/_components/websocket_api.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Websocket API"
-description: "Instructions on how to setup the WebSocket API within Home Assistant."
+description: "Instructions how to setup the WebSocket API within Home Assistant."
date: 2018-01-21 08:00
sidebar: true
comments: false
diff --git a/source/_components/wemo.markdown b/source/_components/wemo.markdown
index ab0f345bf7..96821a0032 100644
--- a/source/_components/wemo.markdown
+++ b/source/_components/wemo.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Belkin WeMo"
-description: "Instructions on how to integrate Belkin WeMo devices into Home Assistant."
+description: "Instructions how to integrate Belkin WeMo devices into Home Assistant."
date: 2016-02-20 00:41
sidebar: true
comments: false
diff --git a/source/_components/wink.markdown b/source/_components/wink.markdown
index cf62b8d380..e1d617a9e3 100644
--- a/source/_components/wink.markdown
+++ b/source/_components/wink.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Wink"
-description: "Instructions on how to setup the Wink hub within Home Assistant."
+description: "Instructions how to setup the Wink hub within Home Assistant."
date: 2015-01-20 22:36
sidebar: true
comments: false
diff --git a/source/_components/xiaomi_aqara.markdown b/source/_components/xiaomi_aqara.markdown
index 1fd18f55c2..c5cdbcc788 100644
--- a/source/_components/xiaomi_aqara.markdown
+++ b/source/_components/xiaomi_aqara.markdown
@@ -18,9 +18,6 @@ The `xiaomi_aqara` component allows you to integrate [Xiaomi](http://www.mi.com/
#### {% linkable_title Supported Devices %}
-- Xiaomi Aqara Gateway (lumi.gateway.v2, lumi.gateway.v3)
-- Aqara Air Conditioning Companion (lumi.acpartner.v3)
-- Aqara Intelligent Door Lock (lock.aq1)
- Temperature and Humidity Sensor (1st and 2nd generation)
- Motion Sensor (1st and 2nd generation)
- Door and Window Sensor (1st and 2nd generation)
@@ -45,8 +42,8 @@ The `xiaomi_aqara` component allows you to integrate [Xiaomi](http://www.mi.com/
- Gateway Radio
- Gateway Button
-- Xiaomi Mi Air Conditioning Companion (lumi.acpartner.v2)
-- Aqara Intelligent Air Conditioner Controller Hub (lumi.acpartner.v1)
+- Aqara Air Conditioning Companion
+- Aqara Intelligent Air Conditioner Controller Hub
- Decoupled mode of the Aqara Wall Switches (Single & Double)
- Additional alarm events of the Gas and Smoke Detector: Analog alarm, battery fault alarm (smoke detector only), sensitivity fault alarm, I2C communication failure
@@ -168,6 +165,12 @@ Stops a playing ringtone immediately.
#### {% linkable_title Service `xiaomi_aqara.add_device` %}
+| Service data attribute | Optional | Description |
+|---------------------------|----------|-------------------------------------------------------|
+| `gw_mac` | no | MAC address of the Xiaomi Aqara Gateway |
+
+#### {% linkable_title Service `xiaomi_aqara.add_device` %}
+
Enables the join permission of the Xiaomi Aqara Gateway for 30 seconds. A new device can be added afterwards by pressing the pairing button once.
| Service data attribute | Optional | Description |
diff --git a/source/_components/zabbix.markdown b/source/_components/zabbix.markdown
index e463083999..0bc2fe72cb 100644
--- a/source/_components/zabbix.markdown
+++ b/source/_components/zabbix.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Zabbix"
-description: "Instructions on how to integrate Zabbix into Home Assistant."
+description: "Instructions how to integrate Zabbix into Home Assistant."
date: 2016-12-13 22:57
sidebar: true
comments: false
diff --git a/source/_components/zha.markdown b/source/_components/zha.markdown
index 0e769fc6a4..2e4a749b97 100644
--- a/source/_components/zha.markdown
+++ b/source/_components/zha.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Zigbee Home Automation"
-description: "Instructions on how to integrate your Zigbee Home Automation within Home Assistant."
+description: "Instructions how to integrate your Zigbee Home Automation within Home Assistant."
date: 2017-02-22 19:59
sidebar: true
comments: false
@@ -18,18 +18,14 @@ integration for Home Assistant allows you to connect many off-the-shelf ZigBee d
There is currently support for the following device types within Home Assistant:
-- [Binary Sensor](../binary_sensor.zha) (e.g., motion and door sensors)
-- [Sensor](../sensor.zha) (e.g., temperature sensors)
+- [Binary Sensor](../binary_sensor.zha) (e.g. motion and door sensors)
+- [Sensor](../sensor.zha) (e.g. temperature sensors)
- [Light](../light.zha)
- [Switch](../switch.zha)
-- [Fan](../fan.zha)
Known working ZigBee radios:
-- Nortek/GoControl Z-Wave & Zigbee USB Adapter - Model HUSBZB-1
-- XBee Series 2C
-- [Elelabs ZigBee USB Adapter](https://elelabs.com/products/elelabs_usb_adapter.html)
-- [Elelabs ZigBee Raspberry Pi Shield](https://elelabs.com/products/elelabs_zigbee_shield.html)
+- Nortek/GoControl Z-Wave & Zigbee USB Adaptor - Model HUSBZB-1
To configure the component, a `zha` section must be present in the `configuration.yaml`,
and the path to the serial device for the radio and path to the database which will persist your network data is required.
@@ -43,9 +39,7 @@ zha:
Configuration variables:
- - **radio_type** (*Optional*): One of `ezsp` (default) or `xbee`
- **usb_path** (*Required*): Path to the serial device for the radio.
- - **baud_rate** (*Optional*): Baud rate of the serial device.
- **database_path** (*Required*): Path to the database which will keep persistent network data.
To add new devices to the network, call the `permit` service on the `zha` domain, and then follow the device instructions for doing a scan or factory reset. In case you want to add Philips Hue bulbs that have previously been added to another bridge, have a look at: [https://github.com/vanviegen/hue-thief/](https://github.com/vanviegen/hue-thief/)
diff --git a/source/_components/zone.markdown b/source/_components/zone.markdown
index c97d06657f..00d4f7e664 100644
--- a/source/_components/zone.markdown
+++ b/source/_components/zone.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Zone"
-description: "Instructions on how to setup zones within Home Assistant."
+description: "Instructions how to setup zones within Home Assistant."
date: 2015-10-04 09:23
sidebar: true
comments: false
diff --git a/source/_components/zoneminder.markdown b/source/_components/zoneminder.markdown
index 0ebf5fbafc..0f3bccbb94 100644
--- a/source/_components/zoneminder.markdown
+++ b/source/_components/zoneminder.markdown
@@ -39,6 +39,6 @@ zoneminder:
path: ZM_PATH
path_zms: ZM_PATH_ZMS
ssl: False
- username: YOUR_USERNAME
- password: YOUR_PASSWORD
+ username: USERNAME
+ password: PASSWORD
```
diff --git a/source/_components/zwave.markdown b/source/_components/zwave.markdown
index 9dd4811b3e..316c2d3bd1 100644
--- a/source/_components/zwave.markdown
+++ b/source/_components/zwave.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Z-Wave"
-description: "Instructions on how to integrate your existing Z-Wave within Home Assistant."
+description: "Instructions how to integrate your existing Z-Wave within Home Assistant."
date: 2016-02-27 19:59
sidebar: true
comments: false
diff --git a/source/_cookbook/automation_flashing_lights.markdown b/source/_cookbook/automation_flashing_lights.markdown
index 5a55323eac..df14121307 100644
--- a/source/_cookbook/automation_flashing_lights.markdown
+++ b/source/_cookbook/automation_flashing_lights.markdown
@@ -97,14 +97,6 @@ script:
service: homeassistant.turn_off
data:
entity_id: switch.REL1
- - alias: loop_room1
- service: script.turn_on
- data:
- entity_id: script.flash_loop
-
- flash_loop:
- alias: Flash loop
- sequence:
- delay:
# time for flash light off
seconds: 1
diff --git a/source/_cookbook/automation_kodi_dynamic_input_select.markdown b/source/_cookbook/automation_kodi_dynamic_input_select.markdown
index 9fc1bbd3f9..040d4f1284 100644
--- a/source/_cookbook/automation_kodi_dynamic_input_select.markdown
+++ b/source/_cookbook/automation_kodi_dynamic_input_select.markdown
@@ -12,7 +12,7 @@ ha_category: Automation Examples
This requires a [Kodi](/components/media_player.kodi/) media player, and consists of commands that perform queries in the Kodi library, and a selection box (`input_select`) that shows the available options. By clicking the commands, the selection box is updated, and when selecting an option, Kodi plays the media.
-Option filling is done in an [AppDaemon](/docs/ecosystem/appdaemon/tutorial/) app, which listens for events that are triggered with the results of the Kodi JSONRPC API queries when scripts run. This application also listens to the selection box and calls the play media service with the corresponding parameters.
+Option filling is done in an [AppDaemon](https://home-assistant.io/docs/ecosystem/appdaemon/tutorial/) app, which listens for events that are triggered with the results of the Kodi JSONRPC API queries when scripts run. This application also listens to the selection box and calls the play media service with the corresponding parameters.
The media player yaml config:
diff --git a/source/_cookbook/configuration_yaml_by_apocrathia.markdown b/source/_cookbook/configuration_yaml_by_apocrathia.markdown
deleted file mode 100644
index 6ac2ccd329..0000000000
--- a/source/_cookbook/configuration_yaml_by_apocrathia.markdown
+++ /dev/null
@@ -1,12 +0,0 @@
----
-layout: page
-title: "Configuration.yaml by Apocrathia"
-description: ""
-date: 2018-05-02 12:40
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: Example configuration.yaml
-ha_external_link: https://github.com/Apocrathia/home-assistant-config/
----
diff --git a/source/_cookbook/configuration_yaml_by_greenturtwig.markdown b/source/_cookbook/configuration_yaml_by_greenturtwig.markdown
index a5bc7c5b18..dcb11f8454 100644
--- a/source/_cookbook/configuration_yaml_by_greenturtwig.markdown
+++ b/source/_cookbook/configuration_yaml_by_greenturtwig.markdown
@@ -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/blob/master/configuration.yaml
+ha_external_link: https://github.com/GreenTurtwig/personal-home-automation/tree/master/Home%20Assistant
---
diff --git a/source/_cookbook/configuration_yaml_by_gummientchen.markdown b/source/_cookbook/configuration_yaml_by_gummientchen.markdown
deleted file mode 100644
index 3205562886..0000000000
--- a/source/_cookbook/configuration_yaml_by_gummientchen.markdown
+++ /dev/null
@@ -1,12 +0,0 @@
----
-layout: page
-title: "Configuration.yaml by Gummientchen"
-description: ""
-date: 2018-03-23 09:13
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: Example configuration.yaml
-ha_external_link: https://github.com/Gummientchen/Home-AssistantConfig
----
diff --git a/source/_cookbook/custom_panel_using_react.markdown b/source/_cookbook/custom_panel_using_react.markdown
index e526487b0c..800f2f3378 100644
--- a/source/_cookbook/custom_panel_using_react.markdown
+++ b/source/_cookbook/custom_panel_using_react.markdown
@@ -20,7 +20,7 @@ This is a [React](https://facebook.github.io/react/) implementation of [TodoMVC]
Download the source [here](https://github.com/home-assistant/example-custom-config/blob/master/panels/react.html). Copy the file to `/panels/` (you might have to create the directory if it doesn't exist).
-Create an entry for the panel in your `configuration.yaml` file to enable it.
+Create a entry for the panel in your `configuration.yaml` file to enable it.
```yaml
panel_custom:
diff --git a/source/_cookbook/dim_lights_when_playing_media.markdown b/source/_cookbook/dim_lights_when_playing_media.markdown
index a53c90d9f0..e0c19c45d3 100644
--- a/source/_cookbook/dim_lights_when_playing_media.markdown
+++ b/source/_cookbook/dim_lights_when_playing_media.markdown
@@ -12,7 +12,7 @@ ha_category: Automation Examples
Like it how the lights dim up/down at the movies? Do it at home as well!
-This example uses the [media player](/components/media_player/), [lights](/components/light/) (transitions) and the [sun](/components/sun/) component. We'll use actions to detect media player state changes and [scenes](/components/scene/) to control multiple lights and transition between scenes.
+This example uses the [media player](https://home-assistant.io/components/media_player/), [lights](https://home-assistant.io/components/light/) (transitions) and the [sun](https://home-assistant.io/components/sun/) component. We'll use actions to detect media player state changes and [scenes](https://home-assistant.io/components/scene/) to control multiple lights and transition between scenes.
#### {% linkable_title Scenes %}
One scene for normal light, one for when movies are on. A 2 second transition gives a nice 'feel' to the switch.
diff --git a/source/_cookbook/sonos_say.markdown b/source/_cookbook/sonos_say.markdown
index fd4b04b402..80a928d7a4 100644
--- a/source/_cookbook/sonos_say.markdown
+++ b/source/_cookbook/sonos_say.markdown
@@ -12,7 +12,7 @@ ha_category: Automation Examples
#### {% linkable_title Sonos say script to speak with text-to-speech %}
-This script allows you to use [TTS](/components/#text-to-speech) on Sonos.
+This script allows you to use [TTS](https://home-assistant.io/components/#text-to-speech) on Sonos.
```yaml
script:
@@ -46,7 +46,7 @@ automation:
trigger:
- platform: state
entity_id: input_boolean.mytest
- action:
+ action:
- service: script.sonos_say
data:
sonos_entity: media_player.office
@@ -54,14 +54,3 @@ automation:
message: 'Your husband coming home!'
delay: '00:00:05'
```
-Note that this example uses the `voicerss` text-to-speech platform. There are many platforms that can be used. The one installed by default with Home Assistant is Google TTS. This appears in your `configuration.yaml` file as:
-
-```
- tts:
- - platform: google
-```
-
-If you want to use this TTS engine, change the line in the example provided to:
-```
-- service: tts.google_say
-```
diff --git a/source/_cookbook/track_battery_level.markdown b/source/_cookbook/track_battery_level.markdown
index 13eca37354..b623f46b04 100644
--- a/source/_cookbook/track_battery_level.markdown
+++ b/source/_cookbook/track_battery_level.markdown
@@ -12,7 +12,7 @@ ha_category: Automation Examples
### {% linkable_title iOS Devices %}
-If you have a device running iOS (iPhone, iPad, etc), The [iCloud](/components/device_tracker.icloud/) is gathering various details about your device including the battery level. To display it in the Frontend use a [template sensor](/components/sensor.template/). You can also the `battery` [sensor device class](/components/sensor/#device-class) to dynamically change the icon with the battery level.
+If you have a device running iOS (iPhone, iPad, etc), The [iCloud](/components/device_tracker.icloud/) is gathering various details about your device including the battery level. To display it in the Frontend use a [template sensor](/components/sensor.template/). You can also use the icon template option to create a dynamic icon that changes with the battery level.
{% raw %}
```yaml
@@ -21,6 +21,8 @@ sensor:
sensors:
battery_iphone:
friendly_name: iPhone Battery
+ # "entity_id:" ensures that this sensor will only update when your device tracker does.
+ entity_id: device_tracker.iphone
unit_of_measurement: '%'
value_template: >-
{%- if states.device_tracker.iphone.attributes.battery %}
@@ -28,10 +30,21 @@ sensor:
{% else %}
{{ states.sensor.battery_iphone.state }}
{%- endif %}
- device_class: battery
+ icon_template: >
+ {% set battery_level = states.sensor.battery_iphone.state|default(0)|int %}
+ {% set battery_round = (battery_level / 10) |int * 10 %}
+ {% if battery_round >= 100 %}
+ mdi:battery
+ {% elif battery_round > 0 %}
+ mdi:battery-{{ battery_round }}
+ {% else %}
+ mdi:battery-alert
+ {% endif %}
```
{% endraw %}
+The `else` part is used to have the sensor keep its last state if the newest [iCloud](/components/device_tracker.icloud/) update doesn't have any battery state in it (which happens sometimes). Otherwise the sensor will be blank.
+
### {% linkable_title Android and iOS Devices %}
While running the [Owntracks](/components/device_tracker.owntracks/) device tracker you can retrieve the battery level with a MQTT sensor. Replace username with your MQTT username (for the embedded MQTT it's simply homeassistant), and deviceid with the set Device ID in Owntracks.
@@ -44,6 +57,5 @@ sensor:
name: "Battery Tablet"
unit_of_measurement: "%"
value_template: '{{ value_json.batt }}'
- device_class: battery
```
{% endraw %}
diff --git a/source/_docs/asterisk_mbox.markdown b/source/_docs/asterisk_mbox.markdown
index c5f3d7cbd7..fae79de927 100644
--- a/source/_docs/asterisk_mbox.markdown
+++ b/source/_docs/asterisk_mbox.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Asterisk Voicemail Server Installation"
-description: "Instructions on how to integrate your existing Asterisk voicemail within Home Assistant."
+description: "Instructions how to integrate your existing Asterisk voicemail within Home Assistant."
date: 2017-06-30 18:30
sidebar: true
comments: false
diff --git a/source/_docs/automation.markdown b/source/_docs/automation.markdown
index e50db5d9bf..8eb4124183 100644
--- a/source/_docs/automation.markdown
+++ b/source/_docs/automation.markdown
@@ -47,12 +47,14 @@ State changes can be used as the source of triggers and the current state can be
Actions are all about calling services. To explore the available services open the
Services developer tool. Services allow to change anything. For example turn on a light, run a script or enable a scene. Each service has a domain and a name. For example the service `light.turn_on` is capable of turning on any light in your system. Services can be passed parameters to for example tell which device to turn on or what color to use.
-You have to set an initial state in your automations in order for Home Assistant to enable them upon restart.
+
+As of version 0.42 you have to set an initial state in your automations in order for Home Assistant to restore them upon restart.
```text
-automation:
- alias: Automation Name
initial_state: True
trigger:
...
```
+
+
diff --git a/source/_docs/automation/action.markdown b/source/_docs/automation/action.markdown
index 0df212be7c..ce9d7c9e05 100644
--- a/source/_docs/automation/action.markdown
+++ b/source/_docs/automation/action.markdown
@@ -22,12 +22,13 @@ automation:
event: sunset
action:
service: light.turn_on
+ entity_id:
+ - light.kitchen
+ - light.living_room
data:
brightness: 150
rgb_color: [255, 0, 0]
- entity_id:
- - light.kitchen
- - light.living_room
+
automation 2:
# Notify me on my mobile phone of an event
trigger:
diff --git a/source/_docs/automation/condition.markdown b/source/_docs/automation/condition.markdown
index cae9f96a97..78f396fa67 100644
--- a/source/_docs/automation/condition.markdown
+++ b/source/_docs/automation/condition.markdown
@@ -17,7 +17,6 @@ The available conditions for an automation are the same as for the script syntax
Example of using condition:
```yaml
-automation:
- alias: 'Enciende Despacho'
trigger:
platform: state
diff --git a/source/_docs/automation/editor.markdown b/source/_docs/automation/editor.markdown
index 31bced2ddb..b0f16e1445 100644
--- a/source/_docs/automation/editor.markdown
+++ b/source/_docs/automation/editor.markdown
@@ -9,7 +9,7 @@ sharing: true
footer: true
---
-In Home Assistant 0.45 we introduced the first version of our automation editor. If you just created a new configuration with Home Assistant, then you're all set! Go to the UI and enjoy.
+In Home Assistant 0.45 we introduced the first version of our automation editor. If you just created a new configuration with Home Assistant then you're all set! Go to the UI and enjoy.
From the UI choose **Configuration** which is located in the sidebar, then click on **Automation** to go to the automation editor. Press the **+** sign in the lower right corner to get started. This example is based on the manual steps described in the [Getting started section](/getting-started/automation/) for a [`random` sensor](/components/sensor.random/).
@@ -19,7 +19,7 @@ Choose a meaningful name for your automation rules.
-If the value of the sensor is greater than 10, then the automation rule should apply.
+If the value of the sensor is greater than 10 then the automation rule should apply.
@@ -39,20 +39,18 @@ As "Service Data" we want a simple text that is shown as part of the notificatio
}
```
-Don't forget to save your new automation rule. For your saved automation rule to come into effect, you will need to go to the **Configuration** page and click on **Reload Automation**.
+Don't forget to save your new automation rule. In order for your saved automation rule to come into effect you will need to go to the **Configuration** page and click on **Reload Automation**.
## {% linkable_title Updating your configuration to use the editor %}
-First, check that you have activated the configuration editor.
+First check that you have activated the configuration editor.
```yaml
# Activate the configuration editor
config:
```
-The automation editor reads and writes to the file `automations.yaml` in the root of your [configuration](/docs/configuration/) folder.
-Currently, both the name of this file and its location are fixed.
-Make sure that you have set up the automation component to read from it:
+The automation editor reads and writes to the file `automations.yaml` in your [configuration](/docs/configuration/) folder. Make sure that you have set up the automation component to read from it:
```yaml
# Configuration.yaml example
@@ -67,19 +65,9 @@ automation old:
platform: ...
```
-You can use the `automation:` and `automation old:` sections at the same time:
- - `automation old:` to keep your manual designed automations
- - `automation:` to save the automation created by the online editor
-
-```yaml
-automation: !include automations.yaml
-automation old: !include_dir_merge_list automations
-```
-
-
## {% linkable_title Migrating your automations to `automations.yaml` %}
-If you want to migrate your old automations to use the editor, you'll have to copy them to `automations.yaml`. Make sure that `automations.yaml` remains a list! For each automation that you copy over, you'll have to add an `id`. This can be any string as long as it's unique.
+If you want to migrate your old automations to use the editor, you'll have to copy them to `automations.yaml`. Make sure that `automations.yaml` remains a list! For each automation that you copy over you'll have to add an `id`. This can be any string as long as it's unique.
For example, the below automation will be triggered when the sun goes from below the horizon to above the horizon. Then, if the temperature is between 17 and 25 degrees, a light will be turned on.
diff --git a/source/_docs/automation/examples.markdown b/source/_docs/automation/examples.markdown
index 2e2ade256f..9e28e0b3e7 100644
--- a/source/_docs/automation/examples.markdown
+++ b/source/_docs/automation/examples.markdown
@@ -38,7 +38,6 @@ automation:
after: '16:00:00'
before: '23:00:00'
action:
- # With a single service call, we don't need a '-' before service - though you can if you want to
service: homeassistant.turn_on
entity_id: group.living_room
@@ -77,9 +76,9 @@ automation:
event_data:
entity_id: binary_sensor.cube_158d000103a3de
action:
- service_template: notify.pushover
- data_template:
- title: "Cube event detected"
- message: "Cube has triggered this event: {{ trigger.event }}"
+ - service_template: notify.pushover
+ data_template:
+ title: "Cube event detected"
+ message: "Cube has triggered this event: {{ trigger.event }}"
```
{% endraw %}
diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown
index 748ff6313d..140fd421ae 100644
--- a/source/_docs/automation/trigger.markdown
+++ b/source/_docs/automation/trigger.markdown
@@ -33,7 +33,7 @@ automation:
### {% linkable_title Home Assistant trigger %}
-Triggers when Home Assistant starts up or shuts down.
+Use this platform to trigger when Home Assistant starts up and shuts down.
```yaml
automation:
@@ -56,7 +56,7 @@ automation:
```
### {% linkable_title Numeric state trigger %}
-Triggers when numeric value of an entity's state crosses a given threshold. On state change of a specified entity, attempts to parse the state as a number and triggers once if value is changing from above to below or from below to above the given threshold.
+On state change of a specified entity, attempts to parse the state as a number and triggers once if value is changing from above to below a threshold, or from below to above the given threshold.
```yaml
automation:
@@ -78,13 +78,12 @@ automation:
Listing above and below together means the numeric_state has to be between the two values.
-In the example above, a numeric_state that goes to 17.1-24.9 (from 17 or below, or 25 or above)
-would fire this trigger.
+In the example above, a numeric_state that is 17.1-24.9 would fire this trigger.
### {% linkable_title State trigger %}
-Triggers when the state of a given entity changes. If only entity_id is given trigger will activate for all state changes, even if only state attributes change.
+Triggers when the state of tracked entities change. If only entity_id given will match all state changes, even if only state attributes change.
```yaml
automation:
@@ -108,7 +107,7 @@ automation:
### {% linkable_title Sun trigger %}
-Triggers when the sun is setting or rising. An optional time offset can be given to have it trigger a set time before or after the sun event (i.e. 45 minutes before sunset, when dusk is setting in).
+Trigger when the sun is setting or rising. An optional time offset can be given to have it trigger for example 45 minutes before sunset, when dusk is setting in.
```yaml
automation:
@@ -183,7 +182,7 @@ automation 3:
### {% linkable_title Zone trigger %}
-Zone triggers can trigger when an entity is entering or leaving the zone. For zone automation to work, you need to have setup a device tracker platform that supports reporting GPS coordinates. This includes [GPS Logger](/components/device_tracker.gpslogger/), the [OwnTracks platform](/components/device_tracker.owntracks/), and the [iCloud platform](/components/device_tracker.icloud/).
+Zone triggers can trigger when an entity is entering or leaving the zone. For zone automation to work, you need to have setup a device tracker platform that supports reporting GPS coordinates. Currently this is limited to the [OwnTracks platform](/components/device_tracker.owntracks/) as well as the [iCloud platform](/components/device_tracker.icloud/).
```yaml
automation:
diff --git a/source/_docs/autostart.markdown b/source/_docs/autostart.markdown
index 48ca9fb411..95e9608adc 100644
--- a/source/_docs/autostart.markdown
+++ b/source/_docs/autostart.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Autostart Home Assistant"
-description: "Instructions on how to setup Home Assistant to launch on start."
+description: "Instructions how to setup Home Assistant to launch on start."
date: 2015-9-1 22:57
sidebar: true
comments: false
diff --git a/source/_docs/autostart/macos.markdown b/source/_docs/autostart/macos.markdown
index 56e6b27c3f..0a1b6ea134 100644
--- a/source/_docs/autostart/macos.markdown
+++ b/source/_docs/autostart/macos.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Autostart on macOS"
-description: "Instructions on how to setup Home Assistant to launch on Apple macOS."
+description: "Instructions how to setup Home Assistant to launch on Apple macOS."
date: 2015-9-1 22:57
sidebar: true
comments: false
diff --git a/source/_docs/autostart/synology.markdown b/source/_docs/autostart/synology.markdown
index f19f15ab73..2d97b91e57 100644
--- a/source/_docs/autostart/synology.markdown
+++ b/source/_docs/autostart/synology.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Autostart on Synology NAS boot"
-description: "Instructions on how to setup Home Assistant to launch on boot on Synology NAS."
+description: "Instructions how to setup Home Assistant to launch on boot on Synology NAS."
date: 2015-9-1 22:57
sidebar: true
comments: false
diff --git a/source/_docs/autostart/systemd.markdown b/source/_docs/autostart/systemd.markdown
index 17211e5ed9..e1e1b6b466 100644
--- a/source/_docs/autostart/systemd.markdown
+++ b/source/_docs/autostart/systemd.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Autostart using systemd"
-description: "Instructions on how to setup Home Assistant to launch on boot using systemd."
+description: "Instructions how to setup Home Assistant to launch on boot using systemd."
date: 2015-9-1 22:57
sidebar: true
comments: false
@@ -21,7 +21,7 @@ If the preceding command returns the string `systemd`, continue with the instruc
A service file is needed to control Home Assistant with `systemd`. The template below should be created using a text editor. Note, root permissions via `sudo` will likely be needed. The following should be noted to modify the template:
- `ExecStart` contains the path to `hass` and this may vary. Check with `whereis hass` for the location.
-- For most systems, the file is `/etc/systemd/system/home-assistant@[your user].service` with [your user] replaced by the user account that Home Assistant will run as (normally `homeassistant`). In particular, this is the case for Ubuntu 16.04.
+- For most systems, the file is `/etc/systemd/system/home-assistant@[your user].service` with [your user] replaced by the user account that Home Assistant will run as (normally `homeassistant`). In particular, this is the case for Ubuntu 16.04.
- If unfamiliar with command-line text editors, `sudo nano -w [filename]` can be used with `[filename]` replaced with the full path to the file. Ex. `sudo nano -w /etc/systemd/system/home-assistant@[your user].service`. After text entered, press CTRL-X then press Y to save and exit.
- If you're running Home Assistant in a Python virtual environment or a Docker container, please skip to the appropriate template listed below.
@@ -41,7 +41,7 @@ WantedBy=multi-user.target
### {% linkable_title Python virtual environment %}
-If you've setup Home Assistant in `virtualenv` following our [Python installation guide](/getting-started/installation-virtualenv/) or [manual installation guide for Raspberry Pi](/getting-started/installation-raspberry-pi/), the following template should work for you. If Home Assistant install is not located at `/srv/homeassistant`, please modify the `ExecStart=` line appropriately.
+If you've setup Home Assistant in `virtualenv` following our [Python installation guide](https://home-assistant.io/getting-started/installation-virtualenv/) or [manual installation guide for Raspberry Pi](https://home-assistant.io/getting-started/installation-raspberry-pi/), the following template should work for you. If Home Assistant install is not located at `/srv/homeassistant`, please modify the `ExecStart=` line appropriately.
```
[Unit]
@@ -80,7 +80,7 @@ WantedBy=multi-user.target
### Next Steps
-You need to reload `systemd` to make the daemon aware of the new configuration.
+You need to reload `systemd` to make the daemon aware of the new configuration.
```bash
$ sudo systemctl --system daemon-reload
diff --git a/source/_docs/autostart/upstart.markdown b/source/_docs/autostart/upstart.markdown
index c77660a84d..b627ab3806 100644
--- a/source/_docs/autostart/upstart.markdown
+++ b/source/_docs/autostart/upstart.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Autostart using Upstart"
-description: "Instructions on how to setup Home Assistant to launch on boot using Upstart."
+description: "Instructions how to setup Home Assistant to launch on boot using Upstart."
date: 2015-9-1 22:57
sidebar: true
comments: false
diff --git a/source/_docs/configuration.markdown b/source/_docs/configuration.markdown
index 2d0dc0f027..0b7a7138ca 100644
--- a/source/_docs/configuration.markdown
+++ b/source/_docs/configuration.markdown
@@ -11,8 +11,6 @@ footer: true
When launched for the first time, Home Assistant will write a default configuration file enabling the web interface and device discovery. It can take up to a minute for your devices to be discovered and appear in the user interface.
-The web interface can be found at `http://ip.ad.dre.ss:8123/` - for example if your Home Assistant system has the IP address `192.168.0.40` then you'll find the web interface as `http://192.168.0.40:8123/`.
-
The location of the folder differs between operating systems:
| OS | Path |
@@ -26,12 +24,12 @@ If you want to use a different folder for configuration, use the config command
Inside your configuration folder is the file `configuration.yaml`. This is the main file that contains components to be loaded with their configurations. Throughout the documentation you will find snippets that you can add to your configuration file to enable functionality.
- You will have to restart Home Assistant for most changes to `configuration.yaml` to take effect. You can load changes to [automations](/docs/automation/), [customize](/docs/configuration/customizing-devices/), [groups](/components/group/), and [scripts](/components/script/) without restarting.
+ You will have to restart Home Assistant for changes to `configuration.yaml` to take effect.
If you run into trouble while configuring Home Assistant, have a look at the [configuration troubleshooting page](/getting-started/troubleshooting-configuration/) and at the [configuration.yaml examples](/cookbook/#example-configurationyaml).
- Test any changes to your configuration files from the command line with `hass --script check_config`. This script allows you to test changes without the need to restart Home Assistant. Remember to run this as the user you run Home Assistant as.
+ Test any changes to your configuration files from the command line with `hass --script check_config`. This script allows you to test changes without the need to restart Home Assistant.
diff --git a/source/_docs/configuration/basic.markdown b/source/_docs/configuration/basic.markdown
index 3ac38b00a2..77e8359eba 100644
--- a/source/_docs/configuration/basic.markdown
+++ b/source/_docs/configuration/basic.markdown
@@ -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](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
- **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.
diff --git a/source/_docs/configuration/customizing-devices.markdown b/source/_docs/configuration/customizing-devices.markdown
index a76c1ed2aa..71b8a2f561 100644
--- a/source/_docs/configuration/customizing-devices.markdown
+++ b/source/_docs/configuration/customizing-devices.markdown
@@ -71,15 +71,14 @@ homeassistant:
### {% linkable_title Device Class %}
-Device class is currently supported by the following components:
+Device class is currently supported by the following platforms:
* [Binary Sensor](/components/binary_sensor/)
-* [Sensor](/components/sensor/)
* [Cover](/components/cover/)
### {% linkable_title Reloading customize %}
-Home Assistant offers a service to reload the core configuration while Home Assistant is running called `homeassistant.reload_core_config`. This allows you to change your customize section and see it being applied without having to restart Home Assistant. To call this service, go to the
service developer tools, select the service `homeassistant.reload_core_config` and click "CALL SERVICE".
+Home Assistant offers a service to reload the core configuration while Home Assistant is running called `homeassistant/reload_core_config`. This allows you to change your customize section and see it being applied without having to restart Home Assistant. To call this service, go to the
service developer tools, select the service `homeassistant/reload_core_config` and click "Call Service".
New customize information will be applied the next time the state of the entity gets updated.
diff --git a/source/_docs/configuration/entity-registry.markdown b/source/_docs/configuration/entity-registry.markdown
deleted file mode 100644
index 6c75ad8dfe..0000000000
--- a/source/_docs/configuration/entity-registry.markdown
+++ /dev/null
@@ -1,58 +0,0 @@
----
-layout: page
-title: "Entity Registry"
-description: "The entity registry contains."
-date: 2016-04-20 06:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
----
-
-
-This is a new and experimental feature of Home Assistant.
-
-
-Starting with version 0.63, Home Assistant keeps a registry of known entities.
-The entity registry makes sure that entities get unique identifiers and allow
-customizing the identifiers and names of these entities.
-
-As this is still a very new part of Home Assistant, changes will require a
-restart of Home Assistant to take effect. A config user interface will be added
-in a future version.
-
-
-An entity needs to have a unique ID to be registered in the entity registry.
-Not all integrations currently provide a unique id for their entities.
-
-
-The entity registry is stored in `/entity_registry.yaml`. As a user,
-you are unable to add entries, only update them. Here is an example file:
-
-```
-climate.downstairs_virtual:
- platform: nest
- unique_id: EPoMyWkpNyoYu3pGlmGxabcdefghijkl
- name: Downstairs thermostat
-light.study_ceiling:
- platform: hue
- unique_id: f0:fe:6b:00:14:00:00:00-00
- disabled_by: user
-```
-
-As a user, you can change the `entity_id` and add the `name` and `disabled_by`
-value to each entry.
-
- - The value of `name` will override the name of the entity as given by the
- integration.
-
- _Added in Home Assistant 0.64._
- - The key `disabled_by` can either be `hass` or `user`. This functionality
- is even more experimental than the whole entity registry itself and might
- cause integrations to fail and might be removed in the future.
-
- _Added in Home Assistant 0.64._
-
-{% linkable_title Supported Components %}
-
-At the moment, only the following components are supported: Z-Wave, Hue, Nest, LIFX, Sonos, Apple TV
diff --git a/source/_docs/configuration/events.markdown b/source/_docs/configuration/events.markdown
index ff0bcd3514..6ad5aa152d 100644
--- a/source/_docs/configuration/events.markdown
+++ b/source/_docs/configuration/events.markdown
@@ -17,10 +17,6 @@ Home Assistant contains a few built-in events that are used to coordinate betwee
### {% linkable_title Event `homeassistant_start` %}
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.
-
- Starting 0.42, it is no longer possible to listen for event `homeassistant_start`. Use the 'homeassistant' [platform](/docs/automation/trigger) instead.
-
-
### {% linkable_title Event `homeassistant_stop` %}
Event `homeassistant_stop` is fired when Home Assistant is shutting down. It should be used to close any open connection or release any resources.
diff --git a/source/_docs/configuration/group_visibility.markdown b/source/_docs/configuration/group_visibility.markdown
index 0ea062deb9..acd352a07d 100644
--- a/source/_docs/configuration/group_visibility.markdown
+++ b/source/_docs/configuration/group_visibility.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Group Visibility"
-description: "Instructions on how to change group visibility using automations."
+description: "Instructions how to change group visibility using automations."
date: 2016-10-29 13:00
sidebar: true
comments: false
diff --git a/source/_docs/configuration/packages.markdown b/source/_docs/configuration/packages.markdown
index 7c95fa719e..7e5016be99 100644
--- a/source/_docs/configuration/packages.markdown
+++ b/source/_docs/configuration/packages.markdown
@@ -10,9 +10,9 @@ footer: true
redirect_from: /topics/packages/
---
-Packages in Home Assistant provides a way to bundle different component's configuration together. We already learned about the two configuration styles (specifying platforms entries together or individually) on the [adding devices](/docs/configuration/devices/) page. Both of these configuration methods require you to create the component key in the main `configuration.yaml` file. With packages we have a way to include different components, or different configuration parts using any of the `!include` directives introduced in [splitting the configuration](/docs/configuration/splitting_configuration).
+Packages in Home Assistant provides a way to bundle different component's configuration together. We were already introduced to the two configuration styles (specifying platforms entries together or individually) on the [adding devices](/docs/configuration/devices/) page. Both of these configuration methods require you to create the component key in the main `configuration.yaml` file. With packages we have a way to include different components, or parts of configuration using any of the `!include` directives introduced in [splitting the configuration](/docs/configuration/splitting_configuration).
-Packages are configured under the core `homeassistant/packages` in the configuration and take the format of a package name (no spaces, all lower case) followed by a dictionary with the package config. For example, package `pack_1` would be created as:
+Packages are configured under the core `homeassistant/packages` in the configuration and take the format of a packages name (no spaces, all lower case) followed by a dictionary with the package config. For example, package `pack_1` would be created as:
```yaml
homeassistant:
@@ -22,7 +22,7 @@ homeassistant:
...package configuration here...
```
-The package configuration can include: `switch`, `light`, `automation`, `groups`, or most other Home Assistant components.
+The package configuration can include: `switch`, `light`, `automation`, `groups` or the majority of the Home Assistant components.
It can be specified inline or in a separate YAML file using `!include`.
@@ -63,7 +63,7 @@ light:
There are some rules for packages that will be merged:
-1. Component names may only use the basic form (e.g., `switch`, but not `switch 1` or `switch aa`).
+1. Component names may only use the basic form (e.g. `switch`, but not `switch 1` or `switch aa`).
2. Platform based components (`light`, `switch`, etc) can always be merged.
3. Components where entities are identified by a key that will represent the entity_id (`{key: config}`) need to have unique 'keys' between packages and the main configuration file.
@@ -81,7 +81,7 @@ Components inside packages can only specify platform entries using configuration
### {% linkable_title Create a packages folder %}
-One way to organize packages is to create a folder named "packages" in your Home Assistant configuration directory. In the packages directory you can store any number of packages in a YAML file. This entry in your `configuration.yaml` will load all packages:
+One way to organize packages would be to create a folder named "packages" in your Home Assistant configuration directory. In the packages directory you can store any number of packages in a YAML file. This entry in your `configuration.yaml` will load all packages:
```yaml
homeassistant:
diff --git a/source/_docs/configuration/remote.markdown b/source/_docs/configuration/remote.markdown
index a323ff1c98..bd0d0ba60b 100644
--- a/source/_docs/configuration/remote.markdown
+++ b/source/_docs/configuration/remote.markdown
@@ -7,6 +7,7 @@ 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.
@@ -15,7 +16,7 @@ The most common approach is to set up port forwarding from your router to port 8
A problem with making a port accessible is that some Internet Service Providers only offer dynamic IPs. This can cause you to lose access to Home Assistant while away. You can solve this by using a free Dynamic DNS service like [DuckDNS](https://www.duckdns.org/).
-Remember: Just putting a port up is not secure. You should definitely consider encrypting your traffic if you are accessing your Home Assistant installation remotely. For details please check the [set up encryption using Let's Encrypt](/blog/2015/12/13/setup-encryption-using-lets-encrypt/) blog post, or this [detailed guide](/docs/ecosystem/certificates/lets_encrypt/) to using Let's Encrypt with HA.
+Remember: Just putting a port up is not secure. You should definitely consider encrypting your traffic if you are accessing your Home Assistant installation remotely. For details please check the [set up encryption using Let's Encrypt](/blog/2015/12/13/setup-encryption-using-lets-encrypt/) blog post, or this [detailed guide](https://home-assistant.io/docs/ecosystem/certificates/lets_encrypt/) to using Let's Encrypt with HA.
Protect your communication with a [self-signed certificate](/cookbook/tls_self_signed_certificate/) between your client and the Home Assistant instance.
diff --git a/source/_docs/configuration/securing.markdown b/source/_docs/configuration/securing.markdown
index fa6e91f8d3..24ec0aa4f0 100644
--- a/source/_docs/configuration/securing.markdown
+++ b/source/_docs/configuration/securing.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Securing"
-description: "Instructions on how to secure your Home Assistant installation."
+description: "Instructions how to secure your Home Assistant installation."
date: 2016-10-06 06:00
sidebar: true
comments: false
@@ -14,10 +14,10 @@ One major advantage of Home Assistant is that it's not dependent on cloud servic
### {% linkable_title Checklist %}
-- [Protect your web interface with a password](/getting-started/basic/#password-protecting-the-web-interface)
+- [Protect your web interface with a password](https://home-assistant.io/getting-started/basic/#password-protecting-the-web-interface)
- Secure your host. Sources could be [Red Hat Enterprise Linux 7 Security Guide](https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/pdf/Security_Guide/Red_Hat_Enterprise_Linux-7-Security_Guide-en-US.pdf), [CIS Red Hat Enterprise Linux 7 Benchmark](https://benchmarks.cisecurity.org/tools2/linux/CIS_Red_Hat_Enterprise_Linux_7_Benchmark_v1.0.0.pdf), or the [Securing Debian Manual](https://www.debian.org/doc/manuals/securing-debian-howto/index.en.html).
- Restrict network access to your devices. Set `PermitRootLogin no` in your sshd config (usually `/etc/ssh/sshd_config`) and to use SSH keys for authentication instead of passwords.
-- Don't run Home Assistant as root – consider the Principle of Least Privilege.
+- Don't run Home Assistant as root – consider the Principle of Least Privilege.
- Keep your [secrets](/topics/secrets/) safe.
If you want to allow remote access, consider these additional points:
diff --git a/source/_docs/configuration/splitting_configuration.markdown b/source/_docs/configuration/splitting_configuration.markdown
index ec0d021ea5..3a1a9b6e53 100644
--- a/source/_docs/configuration/splitting_configuration.markdown
+++ b/source/_docs/configuration/splitting_configuration.markdown
@@ -10,9 +10,9 @@ footer: true
redirect_from: /topics/splitting_configuration/
---
-So you've been using Home Assistant for a while now and your [configuration.yaml file brings people to tears](/cookbook/configuration_yaml_from_bassclarinetl2/) or you simply want to start off with the distributed approach, here's how to "split the configuration.yaml" into more manageable (read: humanly readable) pieces.
+So you've been using Home Assistant for a while now and your [configuration.yaml file brings people to tears](https://home-assistant.io/cookbook/configuration_yaml_from_bassclarinetl2/) or you simply want to start off with the distributed approach, here's how to "split the configuration.yaml" into more manageable (read: humanly readable) pieces.
-First off, several community members have sanitized (read: without api keys/passwords etc) versions of their configurations available for viewing, you can see a list of them [here](/cookbook/#example-configurationyaml).
+First off, several community members have sanitized (read: without api keys/passwords etc) versions of their configurations available for viewing, you can see a list of them [here](https://home-assistant.io/cookbook/#example-configurationyaml).
As commenting code doesn't always happen, please read on for the details.
diff --git a/source/_docs/configuration/state_object.markdown b/source/_docs/configuration/state_object.markdown
index fdb99ea075..c9ee1f9403 100644
--- a/source/_docs/configuration/state_object.markdown
+++ b/source/_docs/configuration/state_object.markdown
@@ -37,7 +37,7 @@ Attribute | Description
`icon` | Icon to use for the entity in the frontend. Example: `mdi:home`.
`hidden` | Boolean if the entity should not be shown in the frontend. Example: `true`.
`entity_picture` | URL to a picture that should be used instead of showing the domain icon. Example: `http://example.com/picture.jpg`.
-`assumed_state` | Boolean if the current state is an assumption. [More info](/blog/2016/02/12/classifying-the-internet-of-things/#classifiers) Example: `True`.
+`assumed_state` | Boolean if the current state is an assumption. [More info](https://home-assistant.io/blog/2016/02/12/classifying-the-internet-of-things/#classifiers) Example: `True`.
`unit_of_measurement` | The unit of measurement the state is expressed in. Used for grouping graphs or understanding the entity. Example: `°C`.
When an attribute contains spaces, you can retrieve it like this: `states.sensor.livingroom.attributes["Battery numeric"]`.
diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown
index dfcd8bddce..a0d56a158a 100644
--- a/source/_docs/configuration/templating.markdown
+++ b/source/_docs/configuration/templating.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Templating"
-description: "Instructions on how to use the templating feature of Home Assistant."
+description: "Instructions how to use the templating feature of Home Assistant."
date: 2015-12-12 12:00
sidebar: true
comments: false
@@ -43,13 +43,12 @@ script:
msg_who_is_home:
sequence:
- service: notify.notify
- data_template:
- message: >
- {% raw %}{% if is_state('device_tracker.paulus', 'home') %}
- Ha, Paulus is home!
- {% else %}
- Paulus is at {{ states('device_tracker.paulus') }}.
- {% endif %}{% endraw %}
+ message: >
+ {% raw %}{% if is_state('device_tracker.paulus', 'home') %}
+ Ha, Paulus is home!
+ {% else %}
+ Paulus is at {{ states('device_tracker.paulus') }}.
+ {% endif %}{% endraw %}
```
[Jinja2](http://jinja.pocoo.org/) supports a wide variety of operations:
@@ -68,7 +67,6 @@ Home Assistant adds extensions to allow templates to access all of the current s
- `states.sensor.temperature` returns the state object for `sensor.temperature`.
- `states('device_tracker.paulus')` will return the state string (not the object) of the given entity or `unknown` if it doesn't exist.
- `is_state('device_tracker.paulus', 'home')` will test if the given entity is specified state.
-- `state_attr('device_tracker.paulus', 'battery')` will return the value of the attribute or None if it doesn't exist.
- `is_state_attr('device_tracker.paulus', 'battery', 40)` will test if the given entity is specified state.
- `now()` will be rendered as current time in your time zone.
- For specific values: `now().second`, `now().minute`, `now().hour`, `now().day`, `now().month`, `now().year`, `now().weekday()` and `now().isoweekday()`
@@ -80,25 +78,14 @@ Home Assistant adds extensions to allow templates to access all of the current s
- `float` will format the output as float.
- `strptime(string, format)` will parse a string to a datetime based on a [format][strp-format].
- `log(value, base)` will take the logarithm of the input. When the base is omitted, it defaults to `e` - the natural logarithm. Can also be used as a filter.
-- `sin(value)` will return the sine of the input. Can be used as a filter.
-- `cos(value)` will return the cosine of the input. Can be used as a filter.
-- `tan(value)` will return the tangent of the input. Can be used as a filter.
-- `sqrt(value)` will return the square root of the input. Can be used as a filter.
-- `e` mathematical constant, approximately 2.71828.
-- `pi` mathematical constant, approximately 3.14159.
-- `tau` mathematical constant, approximately 6.28318.
- Filter `round(x)` will convert the input to a number and round it to `x` decimals.
- Filter `timestamp_local` will convert an UNIX timestamp to local time/data.
- Filter `timestamp_utc` will convert an UNIX timestamp to UTC time/data.
- Filter `timestamp_custom(format_string, local_boolean)` will convert an UNIX timestamp to a custom format, the use of a local timestamp is default, supporting [Python format options](https://docs.python.org/3/library/time.html#time.strftime).
-- Filter `max` will obtain the largest item in a sequence.
+- Filter `max` will obtain the larget item in a sequence.
- Filter `min` will obtain the smallest item in a sequence.
-- Filter `regex_match(string, find, ignorecase=FALSE)` will match the find expression at the beginning of the string using regex.
-- Filter `regex_search(string, find, ignorecase=FALSE)` will match the find expression anywhere in the string using regex.
-- Filter `regex_replace(string, find='', replace='', ignorecase=False)` will replace the find expression with the replace string using regex.
-- Filter `regex_findall_index(string, find='', index=0, ignorecase=False)` will find all regex matches of find in string and return the match at index (findall returns an array of matches).
-[strp-format]: https://docs.python.org/3.6/library/datetime.html#strftime-and-strptime-behavior
+[strp-format]: https://docs.python.org/3.4/library/datetime.html#strftime-and-strptime-behavior
If your template uses an `entity_id` that begins with a number (example: `states.device_tracker.2008_gmc`) you must use a bracket syntax to avoid errors caused by rendering the `entity_id` improperly. In the example given, the correct syntax for the device tracker would be: `states.device_tracker['2008_gmc']`
@@ -126,7 +113,7 @@ The next two statements result in same value if state exists. The second one wil
### {% linkable_title Attributes %}
-Print an attribute if state is defined. Both will return the same thing but the last one you can specify entity_id from a variable.
+Print an attribute if state is defined
```text
{% raw %}{% if states.device_tracker.paulus %}
@@ -136,18 +123,6 @@ Print an attribute if state is defined. Both will return the same thing but the
{% endif %}{% endraw %}
```
-With strings
-
-```text
-{% raw %}{% set tracker_name = "paulus"%}
-
-{% if states("device_tracker." + tracker_name) != "unknown" %}
- {{ state_attr("device_tracker." + tracker_name, "battery")}}
-{% else %}
- ??
-{% endif %}{% endraw %}
-```
-
### {% linkable_title Sensor states %}
Print out a list of all the sensor states.
@@ -281,10 +256,6 @@ The following overview contains a couple of options to get the needed values:
{% raw %}{{ float(value_json) * (2**10) }}{% endraw %}
{% raw %}{{ value_json | log }}{% endraw %}
{% raw %}{{ log(1000, 10) }}{% endraw %}
-{% raw %}{{ sin(pi / 2) }}{% endraw %}
-{% raw %}{{ cos(tau) }}{% endraw %}
-{% raw %}{{ tan(pi) }}{% endraw %}
-{% raw %}{{ sqrt(e) }}{% endraw %}
# Timestamps
{% raw %}{{ value_json.tst | timestamp_local }}{% endraw %}
diff --git a/source/_docs/configuration/troubleshooting.markdown b/source/_docs/configuration/troubleshooting.markdown
index 0d867a2622..f1b88fe876 100644
--- a/source/_docs/configuration/troubleshooting.markdown
+++ b/source/_docs/configuration/troubleshooting.markdown
@@ -20,7 +20,7 @@ Whenever a component or configuration option results in a warning, it will be st
When a component does not show up, many different things can be the case. Before you try any of these steps, make sure to look at the `home-assistant.log` file and see if there are any errors related to your component you are trying to set up.
-If you have incorrect entries in your configuration files you can use the [`check_config`](/docs/tools/check_config/) script to assist in identifying them: `hass --script check_config`. If you need to provide the path for your configuration you can do this using the `-c` argument like this: `hass --script check_config -c /path/to/your/config/dir`.
+If you have incorrect entries in your configuration files you can use the `check_config` script to assist in identifying them: `hass --script check_config`.
#### {% linkable_title Problems with the configuration %}
diff --git a/source/_docs/configuration/yaml.markdown b/source/_docs/configuration/yaml.markdown
index 68503dab96..9398ec30bd 100644
--- a/source/_docs/configuration/yaml.markdown
+++ b/source/_docs/configuration/yaml.markdown
@@ -93,15 +93,3 @@ lights: !include lights.yaml
```
More information about this feature can also be found at [splitting configuration](/docs/configuration/splitting_configuration/).
-
-## {% linkable_title Common Issues %}
-
-### {% linkable_title found character '\t' %}
-
-If you see the following message:
-
-```
-found character '\t' that cannot start any token
-```
-
-This means that you've mistakenly entered a tab character, instead of spaces.
diff --git a/source/_docs/ecosystem/apache.markdown b/source/_docs/ecosystem/apache.markdown
index 92c27eb51a..ae0c192511 100644
--- a/source/_docs/ecosystem/apache.markdown
+++ b/source/_docs/ecosystem/apache.markdown
@@ -35,10 +35,10 @@ To be able to access to your Home Assistant instance by using https://home.examp
ServerName home.example.org
ProxyPreserveHost On
ProxyRequests off
- ProxyPass /api/websocket ws://localhost:8123/api/websocket
- ProxyPassReverse /api/websocket ws://localhost:8123/api/websocket
ProxyPass / http://localhost:8123/
ProxyPassReverse / http://localhost:8123/
+ ProxyPass /api/websocket ws://localhost:8123/api/websocket
+ ProxyPassReverse /api/websocket ws://localhost:8123/api/websocket
RewriteEngine on
RewriteCond %{HTTP:Upgrade} =websocket [NC]
diff --git a/source/_docs/ecosystem/appdaemon.markdown b/source/_docs/ecosystem/appdaemon.markdown
index f327433108..76edbc1dd5 100755
--- a/source/_docs/ecosystem/appdaemon.markdown
+++ b/source/_docs/ecosystem/appdaemon.markdown
@@ -76,7 +76,7 @@ class FlashyMotionLights(appapi.AppDaemon):
This is starting to get a little more complex in Home Assistant automations, requiring an automation rule and two separate scripts.
-Now let's extend this with a somewhat artificial example to show something that is simple in AppDaemon but very difficult if not impossible using automations. Let's warn someone inside the house that there has been motion outside by flashing a lamp on and off ten times. We are reacting to the motion as before by turning on the light and setting a timer to turn it off again, but in addition, we set a 1-second timer to run `flash_warning()`, which, when called, toggles the inside light and sets another timer to call itself a second later. To avoid re-triggering forever, it keeps a count of how many times it has been activated and bails out after ten iterations.
+Now let's extend this with a somewhat artificial example to show something that is simple in AppDaemon but very difficult if not impossible using automations. Let's warn someone inside the house that there has been motion outside by flashing a lamp on and off ten times. We are reacting to the motion as before by turning on the light and setting a timer to turn it off again, but in addition, we set a 1-second timer to run `flash_warning()`, which, when called, toggles the inside light and sets another timer to call itself a second later. To avoid re-triggering forever, it keeps a count of how many times it has been activated and bales out after ten iterations.
```python
import appdaemon.appapi as appapi
diff --git a/source/_docs/ecosystem/appdaemon/api.markdown b/source/_docs/ecosystem/appdaemon/api.markdown
index 923505b262..48c8d994ba 100755
--- a/source/_docs/ecosystem/appdaemon/api.markdown
+++ b/source/_docs/ecosystem/appdaemon/api.markdown
@@ -39,7 +39,7 @@ There are several circumstances under which `initialize()` might be called:
- Following a change in the status of Daylight Savings Time
- Following a restart of Home Assistant
-In every case, the App is responsible for recreating any state it might need as if it were the first time it was ever started. If `initialize()` is called, the app can safely assume that it is either being loaded for the first time, or that all callbacks and timers have been canceled. In either case, the APP will need to recreate them. Depending upon the application it may be desirable for the App to establish state such as whether or not a particular light is on, within the `initialize()` function to ensure that everything is as expected or to make immediate remedial action (e.g., turn off a light that might have been left on by mistake when the app was restarted).
+In every case, the App is responsible for recreating any state it might need as if it were the first time it was ever started. If `initialize()` is called, the app can safely assume that it is either being loaded for the first time, or that all callbacks and timers have been canceled. In either case, the APP will need to recreate them. Depending upon the application it may be desirable for the App to establish state such as whether or not a particular light is on, within the `initialize()` function to ensure that everything is as expected or to make immediate remedial action (e.g. turn off a light that might have been left on by mistake when the app was restarted).
After the `initialize()` function is in place, the rest of the app consists of functions that are called by the various callback mechanisms, and any additional functions the user wants to add as part of the program logic. Apps are able to subscribe to 2 main classes of events:
@@ -150,7 +150,7 @@ light = light.garage
## {% linkable_title Callback Constraints %}
-Callback constraints are a feature of AppDaemon that removes the need for repetition of some common coding checks. Many Apps will wish to process their callbacks only when certain conditions are met, e.g., someone is home, and it's after sunset. These kinds of conditions crop up a lot, and use of callback constraints can significantly simplify the logic required within callbacks.
+Callback constraints are a feature of AppDaemon that removes the need for repetition of some common coding checks. Many Apps will wish to process their callbacks only when certain conditions are met, e.g. someone is home, and it's after sunset. These kinds of conditions crop up a lot, and use of callback constraints can significantly simplify the logic required within callbacks.
Put simply, callback constraints are one or more conditions on callback execution that can be applied to an individual App. An App's callbacks will only be executed if all of the constraints are met. If a constraint is absent it will not be checked for.
@@ -194,7 +194,7 @@ constrain_input_boolean = input_boolean.enable_motion_detection,off
```
### {% linkable_title input_select %}
-The input_select constraint prevents callbacks unless the specified input_select is set to one or more of the nominated (comma separated) values. This is useful to allow certain Apps to be turned on and off according to some flag, e.g., a house mode flag.
+The input_select constraint prevents callbacks unless the specified input_select is set to one or more of the nominated (comma separated) values. This is useful to allow certain Apps to be turned on and off according to some flag, e.g. a house mode flag.
```ini
# Single value
@@ -272,7 +272,7 @@ Any other attributes such as brightness for a lamp will only be present if the e
Also bear in mind that some attributes such as brightness for a light, will not be present when the light is off.
-In most cases, the attribute `state` has the most important value in it, e.g., for a light or switch this will be `on` or `off`, for a sensor it will be the value of that sensor. Many of the AppDaemon API calls and callbacks will implicitly return the value of state unless told to do otherwise.
+In most cases, the attribute `state` has the most important value in it, e.g. for a light or switch this will be `on` or `off`, for a sensor it will be the value of that sensor. Many of the AppDaemon API calls and callbacks will implicitly return the value of state unless told to do otherwise.
### {% linkable_title get_state() %}
@@ -294,9 +294,9 @@ All parameters are optional, and if `get_state()` is called with no parameters i
##### {% linkable_title entity %}
-This is the name of an entity or device type. If just a device type is provided, e.g., `light` or `binary_sensor`, `get_state()` will return a dictionary of all devices of that type, indexed by the entity_id, containing all the state for each entity.
+This is the name of an entity or device type. If just a device type is provided, e.g. `light` or `binary_sensor`, `get_state()` will return a dictionary of all devices of that type, indexed by the entity_id, containing all the state for each entity.
-If a fully qualified `entity_id` is provided, `get_state()` will return the state attribute for that entity, e.g., `on` or `off` for a light.
+If a fully qualified `entity_id` is provided, `get_state()` will return the state attribute for that entity, e.g. `on` or `off` for a light.
##### {% linkable_title attribute %}
@@ -345,11 +345,11 @@ set_state(entity_id, **kwargs)
##### {% linkable_title entity_id %}
-Entity id for which the state is to be set, e.g., `light.office_1`.
+Entity id for which the state is to be set, e.g. `light.office_1`.
##### {% linkable_title values %}
-A list of keyword values to be changed or added to the entities state. e.g., `state = "off"`. Note that any optional attributes such as colors for bulbs etc, need to reside in a dictionary called `attributes`; see the example.
+A list of keyword values to be changed or added to the entities state. e.g. `state = "off"`. Note that any optional attributes such as colors for bulbs etc, need to reside in a dictionary called `attributes`; see the example.
#### {% linkable_title Examples %}
@@ -461,7 +461,7 @@ handle = listen_state(callback, entity = None, **kwargs)
#### {% linkable_title Returns %}
-A unique identifier that can be used to cancel the callback if required. Since variables created within object methods are local to the function they are created in, and in all likelihood the cancellation will be invoked later in a different function, it is recommended that handles are stored in the object namespace, e.g., `self.handle`.
+A unique identifier that can be used to cancel the callback if required. Since variables created within object methods are local to the function they are created in, and in all likelihood the cancellation will be invoked later in a different function, it is recommended that handles are stored in the object namespace, e.g. `self.handle`.
#### {% linkable_title Parameters %}
@@ -473,9 +473,9 @@ Function to be invoked when the requested state change occurs. It must conform t
##### {% linkable_title entity %}
-This is the name of an entity or device type. If just a device type is provided, e.g., `light` or `binary_sensor`, `listen_state()` will subscribe to state changes of all devices of that type. If a fully qualified `entity_id` is provided, `listen_state()` will listen for state changes for just that entity.
+This is the name of an entity or device type. If just a device type is provided, e.g. `light` or `binary_sensor`, `listen_state()` will subscribe to state changes of all devices of that type. If a fully qualified `entity_id` is provided, `listen_state()` will listen for state changes for just that entity.
-When called, AppDaemon will supply the callback function, in old and new, with the state attribute for that entity, e.g., `on` or `off` for a light.
+When called, AppDaemon will supply the callback function, in old and new, with the state attribute for that entity, e.g. `on` or `off` for a light.
##### {% linkable_title attribute (optional) %}
@@ -949,11 +949,11 @@ All of the scheduler calls above support 2 additional optional arguments, `rando
For example:
```python
-# Run a callback in 2 minutes minus a random number of seconds between 0 and 60, e.g., run between 60 and 120 seconds from now
+# Run a callback in 2 minutes minus a random number of seconds between 0 and 60, e.g. run between 60 and 120 seconds from now
self.handle = self.run_in(callback, 120, random_start = -60, **kwargs)
-# Run a callback in 2 minutes plus a random number of seconds between 0 and 60, e.g., run between 120 and 180 seconds from now
+# Run a callback in 2 minutes plus a random number of seconds between 0 and 60, e.g. run between 120 and 180 seconds from now
self.handle = self.run_in(callback, 120, random_end = 60, **kwargs)
-# Run a callback in 2 minutes plus or minus a random number of seconds between 0 and 60, e.g., run between 60 and 180 seconds from now
+# Run a callback in 2 minutes plus or minus a random number of seconds between 0 and 60, e.g. run between 60 and 180 seconds from now
self.handle = self.run_in(callback, 120, random_start = -60, random_end = 60, **kwargs)
```
@@ -1150,11 +1150,11 @@ None
##### {% linkable_title service %}
-The service name, e.g., `light.turn_on`.
+The service name, e.g. `light.turn_on`.
##### {% linkable_title \*\*kwargs %}
-Each service has different parameter requirements. This argument allows you to specify a comma separated list of keyword value pairs, e.g., `entity_id = light.office_1`. These parameters will be different for every service and can be discovered using the developer tools. Most if not all service calls require an `entity_id` however, so use of the above example is very common with this call.
+Each service has different parameter requirements. This argument allows you to specify a comma separated list of keyword value pairs, e.g. `entity_id = light.office_1`. These parameters will be different for every service and can be discovered using the developer tools. Most if not all service calls require an `entity_id` however, so use of the above example is very common with this call.
#### {% linkable_title Examples %}
@@ -1187,7 +1187,7 @@ None
##### {% linkable_title entity_id %}
-Fully qualified entity_id of the thing to be turned on, e.g., `light.office_lamp` or ```scene.downstairs_on```
+Fully qualified entity_id of the thing to be turned on, e.g. `light.office_lamp` or ```scene.downstairs_on```
##### {% linkable_title \*\*kwargs %}
@@ -1219,7 +1219,7 @@ None
##### {% linkable_title entity_id %}
-Fully qualified entity_id of the thing to be turned off, e.g., `light.office_lamp` or `scene.downstairs_on`.
+Fully qualified entity_id of the thing to be turned off, e.g. `light.office_lamp` or `scene.downstairs_on`.
#### {% linkable_title Examples %}
@@ -1246,7 +1246,7 @@ None
##### {% linkable_title entity_id %}
-Fully qualified entity_id of the thing to be toggled, e.g., `light.office_lamp` or `scene.downstairs_on`.
+Fully qualified entity_id of the thing to be toggled, e.g. `light.office_lamp` or `scene.downstairs_on`.
#### {% linkable_title Examples %}
@@ -1273,7 +1273,7 @@ None
##### {% linkable_title entity_id %}
-Fully qualified entity_id of the input_number to be changed, e.g., `input_number.alarm_hour`.
+Fully qualified entity_id of the input_number to be changed, e.g. `input_number.alarm_hour`.
##### {% linkable_title value %}
@@ -1303,7 +1303,7 @@ None
##### {% linkable_title entity_id %}
-Fully qualified entity_id of the input_select to be changed, e.g., `input_select.mode`.
+Fully qualified entity_id of the input_select to be changed, e.g. `input_select.mode`.
##### {% linkable_title value %}
@@ -1385,7 +1385,7 @@ A standard Python object reference.
#### {% linkable_title event_name %}
-Name of the event that was called, e.g., `call_service`.
+Name of the event that was called, e.g. `call_service`.
#### {% linkable_title data %}
@@ -1422,7 +1422,7 @@ Name of the event to subscribe to. Can be a standard Home Assistant event such a
One or more keyword value pairs representing App specific parameters to supply to the callback. If the keywords match values within the event data, they will act as filters, meaning that if they don't match the values, the callback will not fire.
-As an example of this, a Minimote controller when activated will generate an event called `zwave.scene_activated`, along with 2 pieces of data that are specific to the event - `entity_id` and `scene`. If you include keyword values for either of those, the values supplied to the `listen_event()` call must match the values in the event or it will not fire. If the keywords do not match any of the data in the event they are simply ignored.
+As an example of this, a Minimote controller when activated will generate an event called `zwave.scene_activated`, along with 2 pieces of data that are specific to the event - `entity_id` and `scene`. If you include keyword values for either of those, the values supplied to the `listen_event()1 call must match the values in the event or it will not fire. If the keywords do not match any of the data in the event they are simply ignored.
Filtering will work with any event type, but it will be necessary to figure out the data associated with the event to understand what values can be filtered on. This can be achieved by examining Home Assistant's logfiles when the event fires.
@@ -1528,7 +1528,7 @@ def service(self, event_name, data):
#### {% linkable_title event_name %}
-The name of the event that caused the callback, e.g., `"MODE_CHANGE"` or `call_service`.
+The name of the event that caused the callback, e.g. `"MODE_CHANGE"` or `call_service`.
#### {% linkable_title data %}
@@ -1617,7 +1617,7 @@ A string representing the location of the tracker.
##### {% linkable_title tracker_id %}
-Fully qualified entity_id of the device tracker to query, e.g., `device_tracker.andrew`.
+Fully qualified entity_id of the device tracker to query, e.g. `device_tracker.andrew`.
#### {% linkable_title Examples %}
@@ -1871,7 +1871,7 @@ self.log("{} ({}) is {}".format(tracker, self.friendly_name(tracker), self.get_
### {% linkable_title split_entity() %}
-`split_entity()` will take a fully qualified entity id of the form `light.hall_light` and split it into 2 values, the device and the entity, e.g., `light` and `hall_light`.
+`split_entity()` will take a fully qualified entity id of the form `light.hall_light` and split it into 2 values, the device and the entity, e.g. `light` and `hall_light`.
#### {% linkable_title Synopsis %}
@@ -1925,7 +1925,7 @@ MyApp.turn_light_on()
### {% linkable_title split_device_list() %}
-`split_device_list()` will take a comma separated list of device types (or anything else for that matter) and return them as an iterable list. This is intended to assist in use cases where the App takes a list of entities from an argument, e.g., a list of sensors to monitor. If only one entry is provided, an iterable list will still be returned to avoid the need for special processing.
+`split_device_list()` will take a comma separated list of device types (or anything else for that matter) and return them as an iterable list. This is intended to assist in use cases where the App takes a list of entities from an argument, e.g. a list of sensors to monitor. If only one entry is provided, an iterable list will still be returned to avoid the need for special processing.
#### {% linkable_title Synopsis %}
@@ -1941,7 +1941,7 @@ A list of split devices with 1 or more entries.
```python
for sensor in self.split_device_list(self.args["sensors"]):
- do something for each sensor, e.g., make a state subscription
+ do something for each sensor, e.g. make a state subscription
```
diff --git a/source/_docs/ecosystem/appdaemon/tutorial.markdown b/source/_docs/ecosystem/appdaemon/tutorial.markdown
index 28f325dfa0..6a9998bced 100755
--- a/source/_docs/ecosystem/appdaemon/tutorial.markdown
+++ b/source/_docs/ecosystem/appdaemon/tutorial.markdown
@@ -12,7 +12,7 @@ redirect_from: /ecosystem/appdaemon/tutorial/
## {% linkable_title Another Take on Automation %}
-If you haven't yet read Paulus' excellent Blog entry on [Perfect Home Automation](/blog/2016/01/19/perfect-home-automation/) I would encourage you to take a look. As a veteran of several Home Automation systems with varying degrees success, it was this article more than anything else that convinced me that Home Assistant had the right philosophy behind it and was on the right track. One of the most important points made is that being able to control your lights from your phone, 9 times out of 10 is harder than using a lightswitch - where Home Automation really comes into its own is when you start removing the need to use a phone or the switch - the "Automation" in Home Automation. A surprisingly large number of systems out there miss this essential point and have limited abilities to automate anything which is why a robust and open system such as Home Assistant is such an important part of the equation in bring this all together in the vast and chaotic ecosystem that is the "Internet of Things".
+If you haven't yet read Paulus' excellent Blog entry on [Perfect Home Automation](https://home-assistant.io/blog/2016/01/19/perfect-home-automation/) I would encourage you to take a look. As a veteran of several Home Automation systems with varying degrees success, it was this article more than anything else that convinced me that Home Assistant had the right philosophy behind it and was on the right track. One of the most important points made is that being able to control your lights from your phone, 9 times out of 10 is harder than using a lightswitch - where Home Automation really comes into its own is when you start removing the need to use a phone or the switch - the "Automation" in Home Automation. A surprisingly large number of systems out there miss this essential point and have limited abilities to automate anything which is why a robust and open system such as Home Assistant is such an important part of the equation in bring this all together in the vast and chaotic ecosystem that is the "Internet of Things".
So given the importance of Automation, what should Automation allow us to do? I am a pragmatist at heart so I judge individual systems by the ease of accomplishing a few basic but representative tasks:
@@ -29,7 +29,7 @@ So why `AppDaemon`? AppDaemon is not meant to replace Home Assistant Automations
- New paradigm - some problems require a procedural and/or iterative approach, and `AppDaemon` Apps are a much more natural fit for this. Recent enhancements to Home Assistant scripts and templates have made huge strides, but for the most complex scenarios, Apps can do things that Automations can't
- Ease of use - AppDaemon's API is full of helper functions that make programming as easy and natural as possible. The functions and their operation are as "Pythonic" as possible, experienced Python programmers should feel right at home.
-- Reuse - write a piece of code once and instantiate it as an app as many times as you need with different parameters e.g., a motion light program that you can use in 5 different places around your home. The code stays the same, you just dynamically add new instances of it in the config file
+- Reuse - write a piece of code once and instantiate it as an app as many times as you need with different parameters e.g. a motion light program that you can use in 5 different places around your home. The code stays the same, you just dynamically add new instances of it in the config file
- Dynamic - AppDaemon has been designed from the start to enable the user to make changes without requiring a restart of Home Assistant, thanks to its loose coupling. However, it is better than that - the user can make changes to code and AppDaemon will automatically reload the code, figure out which Apps were using it and restart them to use the new code with out the need to restart `AppDaemon` itself. It is also possible to change parameters for an individual or multiple apps and have them picked up dynamically, and for a final trick, removing or adding apps is also picked up dynamically. Testing cycles become a lot more efficient as a result.
- Complex logic - Python's If/Else constructs are clearer and easier to code for arbitrarily complex nested logic
- Durable variables and state - variables can be kept between events to keep track of things like the number of times a motion sensor has been activated, or how long it has been since a door opened
@@ -43,38 +43,22 @@ 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 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.
+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.
```python
- import appdaemon.plugins.hass.hassapi as hass
+import homeassistant.appapi as appapi
- class OutsideLights(hass.Hass):
+class OutsideLights(appapi.AppDaemon):
- def initialize(self):
- self.run_at_sunrise(self.sunrise_cb)
- self.run_at_sunset(self.before_sunset_cb, offset=-900)
+ 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 sunrise_cb(self, kwargs):
- self.turn_on(self.args["off_scene"])
-
- def before_sunset_cb(self, kwargs):
- self.turn_on(self.args["on_scene"])
+ def sunset_cb(self, kwargs):
+ self.turn_on(self.args["on_scene"])
```
@@ -91,12 +75,12 @@ class FlashyMotionLights(appapi.AppDaemon):
def initialize(self):
self.listen_state(self.motion, "binary_sensor.drive", new = "on")
-
+
def motion(self, entity, attribute, old, new, kwargs):
if self.sun_down():
self.turn_on("light.drive")
self.run_in(self.light_off, 60)
-
+
def light_off(self, kwargs):
self.turn_off("light.drive")
```
@@ -112,17 +96,17 @@ class MotionLights(appapi.AppDaemon):
def initialize(self):
self.listen_state(self.motion, "binary_sensor.drive", new = "on")
-
+
def motion(self, entity, attribute, old, new, kwargs):
if self.self.sun_down():
self.turn_on("light.drive")
self.run_in(self.light_off, 60)
self.flashcount = 0
self.run_in(self.flash_warning, 1)
-
+
def light_off(self, kwargs):
self.turn_off("light.drive")
-
+
def flash_warning(self, kwargs):
self.toggle("light.living_room")
self.flashcount += 1
@@ -138,7 +122,7 @@ I have spent the last few weeks moving all of my (fairly complex) automations ov
Some people will maybe look at all of this and say "what use is this, I can already do all of this", and that is fine, as I said this is an alternative not a replacement, but I am hopeful that for some users this will seem a more natural, powerful and nimble way of building potentially very complex automations.
-If this has whet your appetite, feel free to give it a try.
+If this has whet your appetite, feel free to give it a try.
Happy Automating!
diff --git a/source/_docs/ecosystem/backup/backup_dropbox.markdown b/source/_docs/ecosystem/backup/backup_dropbox.markdown
index 6baa2cbc9a..e0d7336899 100644
--- a/source/_docs/ecosystem/backup/backup_dropbox.markdown
+++ b/source/_docs/ecosystem/backup/backup_dropbox.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Configuration Backup to Dropbox"
-description: "Instructions on how backup your Home Assistant configuration to Dropbox"
+description: "Instructions how backup your Home Assistant configuration to Dropbox"
date: 2017-04-24 18:00
sidebar: true
comments: false
@@ -10,7 +10,7 @@ footer: true
redirect_from: /cookbook/dropboxbackup/
---
-Backing up and regularly syncing your Home Assistant configuration to [Dropbox](http://dropbox.com) similar to [Github Backup](/docs/ecosystem/backup/backup_github/)
+Backing up and regularly syncing your Home Assistant configuration to [Dropbox](http://dropbox.com) similar to [Github Backup](https://home-assistant.io/docs/ecosystem/backup/backup_github/)
### {% linkable_title Requirements %}
diff --git a/source/_docs/ecosystem/backup/backup_github.markdown b/source/_docs/ecosystem/backup/backup_github.markdown
index 278d3fc20c..db4ab29626 100644
--- a/source/_docs/ecosystem/backup/backup_github.markdown
+++ b/source/_docs/ecosystem/backup/backup_github.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Configuration Backup to GitHub"
-description: "Instructions on how backup your Home Assistant configuration to GitHub"
+description: "Instructions how backup your Home Assistant configuration to GitHub"
date: 2017-01-05 18:00
sidebar: true
comments: false
@@ -28,21 +28,21 @@ This will not create a full backup of your Home Assistant files or your OS. In a
Some best practices to consider before putting your configuration on GitHub:
-- Extensive use of [secrets.yaml](/topics/secrets/) to hide sensitive information like usernames, passwords, device information, and location
+- Extensive use of [secrets.yaml](https://home-assistant.io/topics/secrets/) to hide sensitive information like usernames, passwords, device information, and location
- Exclusion of some files, including `secrets.yaml` and device-specific information using a [`.gitignore`](https://git-scm.com/docs/gitignore) file
- Regularly committing your configuration to GitHub to make sure that your backup is up to date
- Use a README.md to document your configuration and include screenshots of your Home Assistant GUI
### {% linkable_title Step 1: Installing and Initializing Git %}
-In order to put your configuration on GitHub, you must install the git package on your Home Assistant server (instructions below will work on Raspberry Pi, Ubunutu, or any Debian-based system) *note: this isn't required in Hass.io, it's included as default so proceed to step 2*:
+In order to put your configuration on GitHub, you must install the git package on your Home Assistant server (instructions below will work on Raspberry Pi, Ubunutu, or any Debian-based system):
```bash
$ sudo apt-get update
$ sudo apt-get install git
```
-### {% linkable_title Step 2: Creating %} `.gitignore`
+### {% linkable_title Step 2: Creating %} `.gitignore`
Before creating and pushing your Home Assistant configuration to GitHub, please make sure to follow the `secrets.yaml` best practice mentioned above and scrub your configuration for any passwords or sensitive information.
diff --git a/source/_docs/ecosystem/backup/backup_usb.markdown b/source/_docs/ecosystem/backup/backup_usb.markdown
index cc07a0b079..6bd6276883 100644
--- a/source/_docs/ecosystem/backup/backup_usb.markdown
+++ b/source/_docs/ecosystem/backup/backup_usb.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Configuration Backup to USB drive"
-description: "Instructions on how backup your Home Assistant configuration to USB drive"
+description: "Instructions how backup your Home Assistant configuration to USB drive"
date: 2017-04-29 08:00
sidebar: true
comments: false
@@ -9,12 +9,11 @@ sharing: true
footer: true
---
-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.
+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.
### {% linkable_title Requirements %}
-
-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.
+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`.
```bash
# dmesg | grep sd
@@ -33,17 +32,16 @@ Once connected you want to mount the drive. To find the path where it is located
[726259.209004] sd 0:0:0:0: [sda] Attached SCSI removable disk
```
-The device here is `sda` and our partition is `sda1`. So our partition is located here `/dev/sda1`.
+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!
Mount the drive (as root) to `/media`
```bash
-# sudo mount /dev/sda1 /media/
+# mount /dev/sda1 /media/
```
-### {% 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`.
+### {% 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`.
```bash
# cd /media/
@@ -56,10 +54,11 @@ 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 %}
-The script in the next section uses zip to preserve space on your drive. So we will install zip next.
+In order to preserve space on your drive we use zip. Install that too.
```bash
/media# apt-get install zip
@@ -69,9 +68,9 @@ Building dependency tree
Setting up zip (3.0-8) ...
```
-### {% linkable_title Download and Run Script %}
+### {% linkable_title Install and run script %}
-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.
+Become the `homeassistant` user and place the following [script](https://gist.github.com/riemers/041c6a386a2eab95c55ba3ccaa10e7b0) to a place of your liking.
```bash
# wget https://gist.githubusercontent.com/riemers/041c6a386a2eab95c55ba3ccaa10e7b0/raw/86727d4e72e9757da4f68f1c9d784720e72d0e99/usb_backup.sh
@@ -83,7 +82,7 @@ Make the downloaded script executable.
# chmod +x 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`.
+Open up the file and change the paths you want to use, then simply run the `./usb_backup.sh`.
```bash
$ .homeassistant/extraconfig/shell_code/usb_backup.sh
@@ -92,27 +91,26 @@ $ .homeassistant/extraconfig/shell_code/usb_backup.sh
[i] Keeping all files no prunning set
```
-### {% 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.
+### {% 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.
```bash
(crontab -l 2>/dev/null; echo "0 3 * * * /home/homeassistant/.homeassistant/extraconfig/shell_code/usb_backup.sh") | crontab -
```
-### {% linkable_title Auto Mount the USB Device %}
+### {% linkable_title Auto mount %}
-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.
+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.
-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`:
+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:
+
+```bash
+# mount /dev/sda1 /media
+```
diff --git a/source/_docs/ecosystem/certificates/lets_encrypt.markdown b/source/_docs/ecosystem/certificates/lets_encrypt.markdown
index 1239eb550a..ee9cb80892 100644
--- a/source/_docs/ecosystem/certificates/lets_encrypt.markdown
+++ b/source/_docs/ecosystem/certificates/lets_encrypt.markdown
@@ -10,11 +10,11 @@ footer: true
---
-If you are using Hass.io or Hassbian, do not use this guide. Instead, use the [DuckDNS add-on](/addons/duckdns/) for Hass.io or the [DuckDNS suite](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/duckdns.md) for Hassbian to automatically maintain a subdomain including HTTPS certificates via Let's Encrypt.
+If you are using Hass.io, do not use this guide. Instead, use the [DuckDNS add-on](/addons/duckdns/) to automatically maintain a subdomain including HTTPS certificates via Let's Encrypt.
-
-Before exposing your Home Assistant instance to the outside world it is ESSENTIAL that you have set a password following the advice on the [http](/docs/configuration/basic/) page.
+
+Before exposing your Home Assistant instance to the outside world it is ESSENTIAL that you have set a password following the advice on the [http](https://home-assistant.io/docs/configuration/basic/) page.
@@ -22,16 +22,16 @@ This guide was added by mf_social on 16/03/2017 and was valid at the time of wri
* You can access your Home Assistant instance across your local network, and access the device that it is on via SSH from your local network.
* You know the internal IP address of your router and can access your router's configuration pages.
- * You have already set up a password for your Home Assistant instance, following the advice on this page: [http](/docs/configuration/basic/)
+ * You have already set up a password for your Home Assistant instance, following the advice on this page: [http](https://home-assistant.io/docs/configuration/basic/)
* You want to access your Home Assistant instance when you are away from home (ie, not connected to your local network) and secure it with a TLS/SSL certificate.
* You have a basic understanding of the phrases I have used so far.
* You are not currently running anything on port 80 on your network (you'd know if you were).
* If you are not using Home Assistant on a Debian/Raspian/Hassbian system you will be able to convert any of the terminology I use in to the correct syntax for your system.
* You understand that this is a 'guide' covering the general application of these things to the general masses and there are things outside of the scope of it, and it does not cover every eventuality (although I have made some notes where people may stumble). Also, I have used some turns of phrase to make it easier to understand for the novice reader which people of advanced knowledge may say is innacurate. My goal here is to get you through this guide with a satisfactory outcome and have a decent understanding of what you are doing and why, not to teach you advanced internet communication protocols.
* Each step presumes you have fully completed the previous step successfully, so if you did an earlier step following a different guide, please ensure that you have not missed anything out that may affect the step you have jumped to, and ensure that you adapt any commands to take in to account different file placements from other guides.
-
+
Steps we will take:
-
+
- 0 - Gain a basic level of understanding around IP addresses, port numbers and port forwarding
- 1 - Set your device to have a static IP address
- 2 - Set up port forwarding without TLS/SSL and test connection
@@ -42,48 +42,48 @@ Steps we will take:
- 7 - Set up a sensor to monitor the expiry date of the certificate
- 8 - Set up an automatic renewal of the TLS/SSL certificate
- 9 - Set up an alert to warn us if something went wrong
-
+
### {% linkable_title 0 - Gain a basic level of understanding around IP addresses, port numbers and port forwarding %}
-
+
An IP address is a bit like a phone number. When you access your Home Assistant instance you type something similar to 192.168.0.200:8123 in to your address bar of your browser. The bit before the colon is the IP address (in this case 192.168.0.200) and the bit after is the port number (in this case 8123). When you SSH in to the device running Home Assistant you will use the same IP address, and you will use port 22. You may not be aware that you are using port 22, but if you are using Putty look in the box next to where you type the IP address, you will see that it has already selected port 22 for you.
-
+
So, if an IP address is like a phone number, a port number is like an extension number. An analogy would be if you phone your local doctors on 192-1680-200 and the receptionist answers, you ask to speak to Dr. Smith and she will put you through to extension 8123, which is the phone Dr. Smith is sitting at. The doctors surgery is the device your Home Assistant is running on, Dr. Smith is your Home Assistant. Thusly, your Home Assistant instance is 'waiting for your call' on port 8123, at the device IP 192.168.0.200 .
-
+
Now, to speak to the outside world your connection goes through a router. Your router will have two IP addresses. One is the internal network number, most likely 192.168.0.1 in my example, and an external IP address that incoming traffic is sent to. In the example of calling the doctors, the external IP is your telephone number's area code.
-
+
So, when we want to connect to our Home Assistant instance from outside our network we will need to call the correct extension number, at the correct phone number, in the correct area code.
-
+
We will be looking for a system to run like this (in this example I will pretend our external IP is 12.12.12.12):
-
+
```text
Outside world -> 12.12.12.12:8123 -> your router -> 192.168.0.200:8123
```
Sounds simple? It really is except for two small, but easy to overcome, complications:
-
+
* IP addresses are often dynamically allocated, so they can change.
* Because of the way the internet works you cannot chain IP addresses together to get from where you are, to where you want to go.
-
+
To get around the issue of changing IP addresses we must remember that there are two IP addresses affected. Your external one (which we will 'call' to get on to your network from the internet) and your internal one (192.168.0.200 in the example I am currently using).
-
+
So, we can use a static IP to ensure that whenever our device running Home Assistant connects to our router it always uses the same address. This way our internal IP never changes. This is covered in step 1 below.
-
+
We then have no control over our external IP, as our Service Provider will give us a new one at random intervals. To fix this we will use a service called DuckDNS which will give us a name for our connection (something like examplehome.duckdns.org) and behind the scenes will continue to update your external IP. So no matter how many times the IP address changes, typing examplehome.duckdns.org in to our browser will convert to the correct, up-to-date, IP address. This is covered in step 3 below.
-
+
To get around the issue of not being able to chain the IP addresses together (I can't say I want to call 12:12:12:12 and be put through to 192.168.0.200, and then be put through to extension 8123) we use port forwarding. Port forwarding is the process of telling your router which device to allow the outside connection to speak to. In the doctors surgery example, port forwarding is the receptionist. This takes a call from outside, and forwards it to the correct extension number inside. It is important to note that port forwarding can forward an incoming request for one port to a different port on your internal network if you so choose, and we will be doing this later on. The end result being that when we have our TSL/SSL certificate our incoming call will be requesting port 443 (because that is the SSL port, like the SSH port is always 22), but our port forwarding rule will forward this to our HA instance on port 8123. When this guide is completed we will run something like this:
-
+
```text
Outside world -> https://examplehome.duckdns.org -> 12.12.12.12:443 -> your router -> 192.168.0.200:8123
```
So, let's make it happen...
### {% linkable_title 1 - Set your device to have a static IP address %}
-
+
Whenever a device is connected to a network it has an IP address. This IP address is often dynamically assigned to the device on connection. This means there are occasions where the IP address you use to access Home Assistant, or SSH in to the device running Home Assistant, may change. Setting a static IP address means that the device will always be on the same address.
-
+
SSH in to your system running Home Assistant and login.
-
+
Type the following command to list your network interfaces:
-
+
```bash
$ ifconfig
```
@@ -94,17 +94,17 @@ You will receive an output similar to the image below:
Screenshot
-
+
Make a note of the interface name and the IP address you are currently on. In the picture it is the wireless connection that is highlighted, but with your setup it may be the wired one (eth0 or similar), make sure you get the correct information.
-
+
Then type the following command to open the text file that controls your network connection:
-```bash
+```bash
$ sudo nano /etc/dhcpcd.conf
```
At the bottom of the file add the following lines:
-
+
```text
interface wlan0 <----- or the interface you just wrote down.
@@ -113,7 +113,7 @@ static routers=192.168.0.1 <---- Your router's IP address
static domain_name_servers=192.168.0.1 <---- Your router's IP address
```
-It is important to note that the first three bytes of your static IP address and your router's IP address should be the same, eg:
+It is important to note that the first three bits of your static IP address and your router's IP address should be the same, eg:
```text
Router: 192.168.0.1
@@ -195,17 +195,13 @@ In the domains section pick a name for your subdomain, this can be anything you
The URL you will be using later to access your Home Assistant instance from outside will be the subdomain you picked, followed by duckdns.org . For our example we will say our URL is examplehome.duckdns.org
-Set up Home Assistant to keep your DuckDNS URL and external IP address in sync. In your `configuration.yaml` file add the following:
+On the top left of duckdns.org select the install option. Then pick your operating system from the list. In our example we will use a Raspberry Pi. In the dropdown box select the URL you just created.
-```yaml
-duckdns:
- domain: examplehome
- access_token: abcdefgh-1234-abcd-1234-abcdefgh
-```
+Duckdns.org will now generate personalised instructions for you to follow so that your device can update their website every time your IP address changes. Carefully follow the instructions given on duckdns.org to set up your device.
-The access token is available on your DuckDNS page. Restart Home Assistant after the change.
+At the end of the instructions DuckDNS will suggest you set up port forwarding. No need, we have already done this in step 2.
-What you have now done is set up DuckDNS so that whenever you type examplehome.duckdns.org in to your browser it will convert that to your router's external IP address. Your external IP address will always be up to date because Homeassistant will update DuckDNS every time it changes.
+What you have now done is set up DuckDNS so that whenever you type examplehome.duckdns.org in to your browser it will convert that to your router's external IP address. Your external IP address will always be up to date because your device running Home Assistant will update DuckDNS every time it changes.
Now type your new URL in to your address bar on your browser with port 8123 on the end:
@@ -255,7 +251,7 @@ $ sudo adduser hass sudo
If you did not already log in as the user that currently runs Home Assistant, change to that user (usually `hass` or `homeassistant` - you may have used a command similar to this in the past):
```bash
-$ sudo su -s /bin/bash hass
+$ sudo su -s /bin/bash hass
```
Make sure you are in the home directory for the Home Assistant user:
@@ -276,7 +272,7 @@ $ chmod a+x certbot-auto
You might need to stop Home Assistant before continuing with the next step. You can do this via the Web-UI or use the following command if you are running on Hassbian:
```text
-$ sudo systemctl stop home-assistant@homeassistant.service
+$ sudo systemctl stop home-assistant@homeassistant.service
```
You can restart Home Assistant after the next step using the same command and replacing `stop` with `start`.
@@ -340,8 +336,8 @@ http:
ssl_key: /etc/letsencrypt/live/examplehome.duckdns.org/privkey.pem
base_url: examplehome.duckdns.org
```
-
-You may wish to set up other options for the [http](/components/http/) component at this point, these extra options are beyond the scope of this guide.
+
+You may wish to set up other options for the [http](https://home-assistant.io/components/http/) component at this point, these extra options are beyond the scope of this guide.
Save the changes to configuration.yaml. Restart Home Assistant.
@@ -367,7 +363,11 @@ https://YOUR-HA-IP:8123
Some cases such as this are where your router does not allow 'loopback' or where there is a problem with incoming connections due to technical failure. In these cases you can still use your internal connection and safely ignore the warnings.
-If you were previously using a webapp on your phone/tablet to access your Home Assistant you should delete the old one and create a new one with the new address. The old one will no longer work as it is not keyed to your new, secure URL. Instructions for creating your new webapp can be found [here](/docs/frontend/mobile/).
+If you were previously using a webapp on your phone/tablet to access your Home Assistant you should delete the old one and create a new one with the new address. The old one will no longer work as it is not keyed to your new, secure URL. Instructions for creating your new webapp can be found here:
+
+```text
+https://home-assistant.io/docs/frontend/mobile/
+```
All done? Accessing your Home Assistant from across the world with your DuckDNS URL and a lovely secure logo on your browser? Ace! Now let's clean up our port forwards so that we are only exposing the parts of our network that are absolutely necessary to the outside world.
@@ -387,11 +387,11 @@ You are now part of one of two groups:
* If you have BOTH rules you are able to set up auto renewals of your certificates using port 80 and the standard http challenge, as performed above.
* If you only have one, you are still able to set up auto renewals of your certificates, but will have to specify additional options when renewing that will temporarily stop Home Assistant and use port 8123 for certificate renewal.
-
+
Please remember whether you are a ONE-RULE person or a BOTH-RULE person for step 8!
-
+
Let's Encrypt certificates only last for 90 days. When they have less than 30 days left they can be renewed. Renewal is a simple process.
-
+
Move on to step 7 to see how to monitor your certificates expiry date, and be ready to renew your certificate when the time comes.
### {% linkable_title 7 - Set up a sensor to monitor the expiry date of the certificate %}
@@ -402,9 +402,9 @@ Setting a sensor to read the number of days left on your TLS/SSL certificate bef
* You can set automations based on the number of days left
* You can set alerts to notify you if your certificate has not been renewed and is coming close to expiry.
* If you cannot set up automatic renewals due to your ISP blocking port 80, you will have timely reminders to complete the process manually.
-
+
If you do not wish to set up a sensor you can skip straight to step 8 to learn how to update your certificates.
-
+
The sensor will rely on a command line program that needs to be installed on your device running Home Assistant. SSH in to the device and run the following commands:
```bash
@@ -442,33 +442,33 @@ If you are a ONE-RULE person (from step 6), you can automatically renew your cer
If you are a TWO-RULE person (from step 6), you can automatically renew your certificate using a `http-01` challenge and port 80.
There are a number of options for automating the renewal process:
-
+
#### Option 1:
Your certificate can be renewed as a 'cron job' - cron jobs are background tasks run by the computer at specified intervals (and are totally independent of Home Assistant). Defining cron is outside of the scope of this guide but you will have had dealings with `crontab` when setting up DuckDNS in step 3
-
+
To set a cron job to run the script at regular intervals:
-
+
* SSH in to your device running Home Assistant.
* Change to your Home Assistant user (command similar to):
-
+
```bash
$ sudo su -s /bin/bash hass
```
-
+
* Open the crontab:
-
+
```bash
$ crontab -e
```
-
+
* If you are a TWO-RULE Person: Scroll to the bottom of the file and paste in the following line
-
+
```text
30 2 * * 1 ~/certbot/certbot-auto renew --quiet --no-self-upgrade --standalone --preferred-challenges http-01
```
* If you are a ONE-RULE Person: Scroll to the bottom of the file and paste in the following line
-
+
```text
30 2 * * 1 ~/certbot/certbot-auto renew --quiet --no-self-upgrade --standalone --preferred-challenges tls-sni-01 --tls-sni-01-port 8123 --pre-hook "sudo systemctl stop home-assistant@homeassistant.service" --post-hook "sudo systemctl start home-assistant@homeassistant.service"
```
@@ -478,17 +478,17 @@ $ crontab -e
3. We define pre-hooks and post-hooks that stop our Home Assistant service before certbot runs, freeing port 8123 for certificate renewal, and restart Home Assistant after renewal is complete.
* Save the file and exit
-
-
+
+
#### Option 2:
You can set an automation in Home Assistant to run the certbot renewal script.
-
+
Add the following sections to your configuration.yaml if you are a TWO-RULE person
-```yaml
-shell_command:
+```yaml
+shell_command:
renew_ssl: ~/certbot/certbot-auto renew --quiet --no-self-upgrade --standalone --preferred-challenges http-01
-
+
automation:
- alias: 'Auto Renew SSL Cert'
trigger:
@@ -502,34 +502,34 @@ If you are a ONE-RULE person, replace the `certbot-auto` command above with `~/c
#### Option 3:
You can manually update the certificate when your certificate is less than 30 days to expiry.
-
-To manually update:
-
+
+To manually update:
+
* SSH in to your device running Home Assistant.
* Change to your Home Assistant user (command similar to):
-
+
```bash
$ su - s /bin/bash hass
```
-
+
* Change to your certbot folder
-
+
```bash
$ cd ~/certbot/
```
* Run the renewal command
-
+
```bash
$ ./certbot-auto renew --quiet --no-self-upgrade --standalone --preferred-challenges http-01
```
* If you are a ONE-RULE person, replace the `certbot-auto` command above with `~/certbot/certbot-auto renew --quiet --no-self-upgrade --standalone --preferred-challenges tls-sni-01 --tls-sni-01-port 8123 --pre-hook "sudo systemctl stop home-assistant@homeassistant.service" --post-hook "sudo systemctl start home-assistant@homeassistant.service"`
-
+
So, now were all set up. We have our secured, remotely accessible Home Assistant instance and we're on track for keeping our certificates up to date. But what if something goes wrong? What if the automation didn't fire? What if the cron job forgot to run? What if the dog ate my homework? Read on to set up an alert so you can be notified in plenty of time if you need to step in and sort out any failures.
-
+
### {% linkable_title 9 - Set up an alert to warn us if something went wrong. %}
-
+
We set up our automatic renewal of our certificates and whatever method we used the certificate should be renewed on or around 30 days before it expires. But what if a week later it still hasn't been? This alert will go off if the expiry time on the certificate gets down to 21 days. This will give you 3 weeks to fix the problem, get your new certificate installed and get another 90 days of secure Home Assistant connections in play.
In your `configuration.yaml` add the following automation, adding your preferred notification platform where appropriate:
@@ -538,15 +538,15 @@ In your `configuration.yaml` add the following automation, adding your preferred
automation:
- alias: 'SSL expiry notification'
trigger:
- platform: numeric_state
- entity_id: sensor.ssl_cert_expiry
- below: 21
- action:
- service: notify.[your_notification_preference]
- data:
- message: 'Warning - SSL certificate expires in 21 days and has not been automatically renewed'
+ platform: numeric_state
+ entity_id: sensor.ssl_cert_expiry
+ below: 21
+ action:
+ service: notify.[your_notification_preference]
+ data:
+ message: 'Warning - SSL certificate expires in 21 days and has not been automatically renewed'
```
-
+
If you receive this warning notification, follow the steps for a manual update from step 8. Any error messages received at that point can be googled and resolved. If the manual update goes without a hitch there may be something wrong with your chosen method for automatic updates, and you can start troubleshooting from there.
So, that's it. We've taken a Home Assistant instance that was only reachable on the local network, made it accessible from the internet, secured it, and set up a system to ensure that it always stays secure. Well done, go and treat yourself to a cookie!
diff --git a/source/_docs/ecosystem/certificates/tls_self_signed_certificate.markdown b/source/_docs/ecosystem/certificates/tls_self_signed_certificate.markdown
index 2aab9deb6d..53736e0693 100644
--- a/source/_docs/ecosystem/certificates/tls_self_signed_certificate.markdown
+++ b/source/_docs/ecosystem/certificates/tls_self_signed_certificate.markdown
@@ -11,8 +11,8 @@ redirect_from: /cookbook/tls_self_signed_certificate/
---
If your Home Assistant instance is only accessible from your local network you can still protect the communication between your browsers and the frontend with SSL/TLS.
-[Let's encrypt]({{site_root}}/blog/2017/09/27/effortless-encryption-with-lets-encrypt-and-duckdns/) will only work if you have a DNS entry and remote access is allowed.
-The solution is to use a self-signed certificate. As you most likely don't have a certification authority (CA) your browser will complain about the security. If you have a CA then this will not be an issue.
+[Let's encrypt]({{site_root}}/blog/2015/12/13/setup-encryption-using-lets-encrypt/) will only work if you have a DNS entry and remote access is allowed.
+The solution is to use a self-signed certificate. As you most likely don't have a certification authority (CA) your browser will conplain about the security. If you have a CA then this will not be an issue.
To create a certificate locally, you need the [OpenSSL](https://www.openssl.org/) command-line tool.
diff --git a/source/_docs/ecosystem/hadashboard.markdown b/source/_docs/ecosystem/hadashboard.markdown
index 87c06d166d..226b6906d9 100755
--- a/source/_docs/ecosystem/hadashboard.markdown
+++ b/source/_docs/ecosystem/hadashboard.markdown
@@ -10,7 +10,7 @@ footer: true
redirect_from: /ecosystem/hadashboard/
---
-HADashboard is a modular, skinnable dashboard for [Home Assistant](/) that is intended to be wall mounted, and is optimized for distance viewing.
+HADashboard is a modular, skinnable dashboard for [Home Assistant](https://home-assistant.io/) that is intended to be wall mounted, and is optimized for distance viewing.
diff --git a/source/_docs/ecosystem/hass-configurator.markdown b/source/_docs/ecosystem/hass-configurator.markdown
index 3087d6b6b2..c9fac261ec 100644
--- a/source/_docs/ecosystem/hass-configurator.markdown
+++ b/source/_docs/ecosystem/hass-configurator.markdown
@@ -12,7 +12,7 @@ redirect_from: /ecosystem/hass-configurator/
### {% linkable_title Configuration UI for Home Assistant %}
-Since there currently is no nice way to edit the yaml-files Home Assistant is using through the frontend, here is a small webapp that hopefully makes the configuration easier. It is a customized and embedded [Ace editor](https://ace.c9.io/), which has syntax highlighting for yaml, the format used for Home Assistants configuration files. There is an integrated file browser to select whatever file you want to edit. When you're done with editing the file, click the save-button and it will replace the original.
+Since there currently is no nice way to edit the yaml-files Home Assistant is using through the frontend, here is a small webapp that hopefully makes the configuration easier. It is a customized and embedded [Ace editor](https://ace.c9.io/), which has syntax highlighting for yaml, the format used for Home Assistants configuration files. There is an integrated file browser to select whatever file you want to edit. When you're done with editing the file, click the save-button and it will replace the original.
Essentially this is a browser-based alternative to modifying your configuration through SSH, Windows + SMB, Github etc..
@@ -38,7 +38,7 @@ This tool allows you to browse your filesystem and modify files. So be careful w
Consider running the configurator as a user with limited privileges to limit possible damage.
### {% linkable_title Installation (Linux, OS X) %}
-There are no dependencies on Python modules that are not part of the standard library. And all the fancy JavaScript libraries are loaded from CDN (which means this doesn't work when you're offline).
+There are no dependencies on Python modules that are not part of the standard library. And all the fancy JavaScript libraries are loaded from CDN (which means this doesn't work when you're offline).
- Copy [configurator.py](https://github.com/danielperna84/hass-configurator/blob/master/configurator.py) to your Home Assistant configuration directory (e.g `/home/homeassistant/.homeassistant`): `wget https://raw.githubusercontent.com/danielperna84/hass-configurator/master/configurator.py`
- Make it executable: `sudo chmod 755 configurator.py`
- (Optional) Set the `GIT` variable in configurator.py to `True` if [GitPython](https://gitpython.readthedocs.io/) is installed on your system. This is required if you want to make use of the Git integration.
@@ -46,8 +46,8 @@ There are no dependencies on Python modules that are not part of the standard li
- To terminate the process do the usual `CTRL+C`, maybe once or twice
### {% linkable_title Configuration %}
-Near the top of the `configurator.py`-file you will find some global variables you can change to customize the configurator. If you are unfamiliar with Python: when setting variables of the type _string_, you have to write that within quotation marks. The default settings are fine for just checking out the configurator quickly. With more customized setups you should change some settings though.
-To keep your settings across updates it is also possible to save settings in an external file. In that case copy [settings.conf](https://github.com/danielperna84/hass-configurator/blob/master/settings.conf) wherever you like and append the full path to the file to the command when starting the configurator. e.g., `sudo .configurator.py /home/homeassistant/.homeassistant/mysettings.conf`. This file is in JSON format. So make sure it has a valid syntax (you can set the editor to JSON to get syntax highlighting for the settings). The major difference to the settings in the py-file is, that `None` becomes `null`.
+Near the top of the `configurator.py`-file you will find some global variables you can change to customize the configurator. If you are unfamiliar with Python: when setting variables of the type _string_, you have to write that within quotation marks. The default settings are fine for just checking out the configurator quickly. With more customized setups you should change some settings though.
+To keep your settings across updates it is also possible to save settings in an external file. In that case copy [settings.conf](https://github.com/danielperna84/hass-configurator/blob/master/settings.conf) wherever you like and append the full path to the file to the command when starting the configurator. E.g. `sudo .configurator.py /home/homeassistant/.homeassistant/mysettings.conf`. This file is in JSON format. So make sure it has a valid syntax (you can set the editor to JSON to get syntax highlighting for the settings). The major difference to the settings in the py-file is, that `None` becomes `null`.
#### LISTENIP (string)
The IP the service is listening on. By default it is binding to `0.0.0.0`, which is every interface on the system.
@@ -66,22 +66,22 @@ Set credentials in the form of `"username:password"` if authentication should be
#### ALLOWED_NETWORKS (list)
Limit access to the configurator by adding allowed IP addresses / networks to the list, e.g `ALLOWED_NETWORKS = ["192.168.0.0/24", "172.16.47.23"]`
#### BANNED_IPS (list)
-List of statically banned IP addresses, e.g., `BANNED_IPS = ["1.1.1.1", "2.2.2.2"]`
+List of statically banned IP addresses, e.g. `BANNED_IPS = ["1.1.1.1", "2.2.2.2"]`
#### BANLIMIT (integer)
Ban IPs after `n` failed login attempts. Restart the service to reset banning. The default of `0` disables this feature. `CREDENTIALS` has to be set for this to work.
#### IGNORE_PATTERN (list)
-Files and folders to ignore in the UI, e.g., `IGNORE_PATTERN = [".*", "*.log", "__pycache__"]`.
+Files and folders to ignore in the UI, e.g. `IGNORE_PATTERN = [".*", "*.log", "__pycache__"]`.
#### DIRSFIRST (bool)
If set to `True`, directories will be displayed at the top of the filebrowser.
#### GIT (bool)
Set this variable to `True` to enable Git integration. This feature requires [GitPython](https://gitpython.readthedocs.io)
to be installed on the system that is running the configurator. For technical reasons this feature can not be enabled with the static settings file.
-
-__Note regarding `ALLOWED_NETWORKS`, `BANNED_IPS` and `BANLIMIT`__:
+
+__Note regarding `ALLOWED_NETWORKS`, `BANNED_IPS` and `BANLIMIT`__:
The way this is implemented works in the following order:
1. (Only if `CREDENTIALS` is set) Check credentials
- - Failure: Retry `BANLIMIT` times, after that return error 420 (unless you try again without any authentication headers set, e.g., private tab of your browser)
+ - Failure: Retry `BANLIMIT` times, after that return error 420 (unless you try again without any authentication headers set, e.g. private tab of your browser)
- Success: Continue
2. Check if client IP address is in `BANNED_IPS`
- Yes: Return error 420
@@ -91,7 +91,7 @@ The way this is implemented works in the following order:
- Yes: Continue and display UI of configurator
### {% linkable_title Embedding into Home Assistant %}
-Home Assistant has the [panel_iframe](/components/panel_iframe/) component. With this it is possible to embed the configurator directly into Home Assistant, allowing you to modify your configuration through the Home Assistant frontend.
+Home Assistant has the [panel_iframe](https://home-assistant.io/components/panel_iframe/) component. With this it is possible to embed the configurator directly into Home Assistant, allowing you to modify your configuration through the Home Assistant frontend.
An example configuration would look like this:
```yaml
@@ -107,11 +107,11 @@ Be careful when setting up port forwarding to the configurator while embedding i
### {% linkable_title Daemonizing / Keeping the configurator running %}
Since the configurator script on its own is no service, you will have to take some extra steps to keep it running. Here are five options (for Linux), but there are more, depending on your usecase.
-1. Fork the process into the background with the command:
+1. Fork the process into the background with the command:
`nohup sudo ./configurator.py &`
-2. If your system is using systemd (that's usually what you'll find on a Raspberry Pi), there's a [template file](https://github.com/danielperna84/hass-configurator/blob/master/hass-configurator.systemd) you can use and then apply the same process to integrate it as mentioned in the [Home Assistant documentation](/docs/autostart/systemd/). If you use this method you have to set the `BASEPATH` variable according to your environment.
-3. If you have [supervisor](http://supervisord.org/) running on your system, [hass-poc-configurator.supervisor](https://github.com/danielperna84/hass-configurator/blob/master/hass-configurator.supervisor) would be an example configuration you could use to control the configurator.
-4. A tool called [tmux](https://tmux.github.io/), which should be pre-installed with [HASSbian](/docs/hassbian/).
+2. If your system is using systemd (that's usually what you'll find on a Raspberry Pi), there's a [template file](https://github.com/danielperna84/hass-configurator/blob/master/hass-poc-configurator.systemd) you can use and then apply the same process to integrate it as mentioned in the [Home Assistant documentation](https://home-assistant.io/docs/autostart/systemd/). If you use this method you have to set the `BASEPATH` variable according to your environment.
+3. If you have [supervisor](http://supervisord.org/) running on your system, [hass-poc-configurator.supervisor](https://github.com/danielperna84/hass-configurator/blob/master/hass-poc-configurator.supervisor) would be an example configuration you could use to control the configurator.
+4. A tool called [tmux](https://tmux.github.io/), which should be pre-installed with [HASSbian](https://home-assistant.io/docs/hassbian/).
5. A tool called [screen](http://ss64.com/bash/screen.html) (alternative to tmux). If it's not already installed on your system, you can do `sudo apt-get install screen` or `sudo yum install screen` to get it. When it's installed, start a screen session by executing `screen`. Then navigate to your Home Assistant directory and start the configurator like described above. Put the screen session into the background by pressing `CTRL+A` and then `CTRL+D`. It is now safe to disconnect from your SSH session.
To resume the screen session, log in to your machine and execute `screen -r`.
diff --git a/source/_docs/ecosystem/ios.markdown b/source/_docs/ecosystem/ios.markdown
index 027fe50323..6959ade8f1 100644
--- a/source/_docs/ecosystem/ios.markdown
+++ b/source/_docs/ecosystem/ios.markdown
@@ -21,7 +21,7 @@ The app is available on the iOS App Store in every country that Apple supports.
-## {% linkable_title Basic requirements %}
+## Basic requirements
* iOS device running at least iOS 9, but iOS 10 is greatly preferred.
* Home Assistant 0.42.4 or higher for push notification support.
@@ -33,7 +33,7 @@ Loading the `ios` component will also load the [`device_tracker`][device-tracker
## {% linkable_title Setup %}
-### {% linkable_title Automated Setup %}
+### Automated Setup
The `ios` component will automatically be loaded under the following circumstances:
@@ -44,7 +44,7 @@ Automated discovery and component loading only happens at first install of the a
After the first automated setup you need to add `ios:` to your configuration so that the component loads by default even after restarting Home Assistant.
-### {% linkable_title Manual Setup %}
+### Manual Setup
You may also manually load the `ios` component by adding the following to your configuration:
diff --git a/source/_docs/ecosystem/ios/integration.markdown b/source/_docs/ecosystem/ios/integration.markdown
index b6c27dd437..3bd3791ebb 100644
--- a/source/_docs/ecosystem/ios/integration.markdown
+++ b/source/_docs/ecosystem/ios/integration.markdown
@@ -18,7 +18,7 @@ Query parameters are passed as a dictionary in the call.
Example: `homeassistant://call_service/device_tracker.see?entity_id=device_tracker.entity`
## Fire event
-You can create an [event trigger](/docs/automation/trigger/#event-trigger) and fire the event.
+You can create an [event trigger](https://home-assistant.io/docs/automation/trigger/#event-trigger) and fire the event.
Example: `homeassistant://fire_event/custom_event?entity_id=MY_CUSTOM_EVENT`
diff --git a/source/_docs/ecosystem/ios/notifications.markdown b/source/_docs/ecosystem/ios/notifications.markdown
index c1eee576e3..a4a025907c 100644
--- a/source/_docs/ecosystem/ios/notifications.markdown
+++ b/source/_docs/ecosystem/ios/notifications.markdown
@@ -12,7 +12,7 @@ redirect_from: /ecosystem/ios/notifications/
The `ios` notify platform enables sending push notifications to the Home Assistant iOS app.
-The 'ios' component will automatically load the notify service.
+The 'ios' component will automatically load the notify service.
The service component can be called using `service: notify.ios_`.
Your device ID can be found in the `ios.conf` file in your configuration folder. The file is compressed JSON. You can view it easier by copying the file contents and pasting them into [JSONLint](http://jsonlint.com).
@@ -21,4 +21,4 @@ In this example, the device ID is `robbiet480_7plus`, so the notify service to u
{"devices":{"robbiet480_7plus":{"app":{"bundleIdentifer":"io.robbie.HomeAssistant","versionNumber":1,"buildNumber":53},"pushSounds":[],"permissions":["location"],"deviceId":"robbiet480_7plus","device":{"type":"iPhone 7 Plus","systemName":"iOS","systemVersion":"10.3","permanentID":"AB9F02FE-6AC6-47B8-ADEB-5DD87B489156","localizedModel":"iPhone","name":"Robbie's iPhone 7 Plus","model":"iPhone"},"battery":{"state":"Full","level":100},"pushToken":"SECRET","pushId":"SECRET"}}}
```
-You can find more information in the [Basic Notifications](/docs/ecosystem/ios/notifications/basic/) documentation and the [Actionable Notifications](/docs/ecosystem/ios/notifications/actions/) documentation.
+You can find more information in the [Basic Notifications](https://home-assistant.io/docs/ecosystem/ios/notifications/basic/) documentation and the [Actionable Notifications](https://home-assistant.io/docs/ecosystem/ios/notifications/actions/) documentation.
diff --git a/source/_docs/ecosystem/ios/notifications/basic.markdown b/source/_docs/ecosystem/ios/notifications/basic.markdown
index 7e0a5e9288..5f8d723745 100644
--- a/source/_docs/ecosystem/ios/notifications/basic.markdown
+++ b/source/_docs/ecosystem/ios/notifications/basic.markdown
@@ -36,7 +36,6 @@ automation:
action:
service: notify.ios_
data:
- title: "Smart Home Alerts"
message: "Something happened at home!"
data:
push:
@@ -54,14 +53,13 @@ automation
action:
service: notify.ios_
data:
- title: "Smart Home Alerts"
message: "Something happened at home!"
data:
subtitle: "Subtitle goes here"
```
### {% linkable_title Sending notifications to multiple phones %}
-To send notifications to multiple phones, create a [notification group](/components/notify.group/):
+To send notifications to multiple phones, create a [notification group](https://home-assistant.io/components/notify.group/):
```yaml
notify:
- name: NOTIFIER_NAME
diff --git a/source/_docs/ecosystem/nginx.markdown b/source/_docs/ecosystem/nginx.markdown
index 46ae6152d1..24e4c7e084 100644
--- a/source/_docs/ecosystem/nginx.markdown
+++ b/source/_docs/ecosystem/nginx.markdown
@@ -14,17 +14,13 @@ 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.
-
-You will at least need nginx >= 1.3.13, as WebSocket support is required for the reverse proxy.
-
-
### {% linkable_title 3. Obtain an SSL certificate %}
There are two ways of obtaining an SSL certificate.
@@ -32,7 +28,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
```
@@ -79,13 +75,14 @@ $ 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;
diff --git a/source/_docs/ecosystem/scenegen.markdown b/source/_docs/ecosystem/scenegen.markdown
index 37d2534b08..3cf1e1b03c 100644
--- a/source/_docs/ecosystem/scenegen.markdown
+++ b/source/_docs/ecosystem/scenegen.markdown
@@ -10,7 +10,7 @@ footer: true
redirect_from: /ecosystem/scenegen/
---
-Scenegen is a scene generation tool for [Home Assistant](/) home automation software. It creates scenes by example, by reading the current states of devices and outputting a corresponding scene. Scenegen is written in python using Home Assistant's RESTFul API so can be run from anywhere. It currently supports lights and switches only.
+Scenegen is a scene generation tool for [Home Assistant](https://home-assistant.io/) home automation software. It creates scenes by example, by reading the current states of devices and outputting a corresponding scene. Scenegen is written in python using Home Assistant's RESTFul API so can be run from anywhere. It currently supports lights and switches only.
## {% linkable_title Installation %}
diff --git a/source/_docs/ecosystem/synology.markdown b/source/_docs/ecosystem/synology.markdown
index c5c436da58..099ea41ef0 100644
--- a/source/_docs/ecosystem/synology.markdown
+++ b/source/_docs/ecosystem/synology.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Synology"
-description: "Instructions on how to get Home Assistant up and running on Synology"
+description: "Instructions how to get Home Assistant up and running on Synology"
release_date: 2016-12-07 15:00:00 -0500
sidebar: true
comments: false
diff --git a/source/_docs/frontend/browsers.markdown b/source/_docs/frontend/browsers.markdown
index 2454f5989a..611b8586ae 100644
--- a/source/_docs/frontend/browsers.markdown
+++ b/source/_docs/frontend/browsers.markdown
@@ -37,7 +37,7 @@ We would appreciate if you help to keep this page up-to-date and add feedback.
| Browser | Release | State | Comments |
| :-------------------- |:---------------|:-----------|:-------------------------|
-| [Firefox] | 59.0 | works | |
+| [Firefox] | 57.0 | works | |
| [Midori] | 0.5.11 | works | |
| [Chromium] | 63.0.3239.108 | works | |
| [Conkeror] | 1.0.2 | works | |
diff --git a/source/_docs/frontend/mobile.markdown b/source/_docs/frontend/mobile.markdown
index d7342115b7..3a2c1af740 100644
--- a/source/_docs/frontend/mobile.markdown
+++ b/source/_docs/frontend/mobile.markdown
@@ -10,7 +10,7 @@ footer: true
redirect_from: /getting-started/mobile/
---
-Home Assistant has [a companion app for iOS](/docs/ecosystem/ios/).
+Home Assistant has [a companion app for iOS](https://home-assistant.io/docs/ecosystem/ios/).
On both Android and iOS, you can add the Home Assistant "web app" to your homescreen as if it was native (Home Assistant leverages the W3C [manifest.json](https://w3c.github.io/manifest/) support).
diff --git a/source/_docs/installation.markdown b/source/_docs/installation.markdown
index 16380e6837..4b54abe2d3 100644
--- a/source/_docs/installation.markdown
+++ b/source/_docs/installation.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Installation of Home Assistant"
-description: "Instructions on how to install Home Assistant to launch on start."
+description: "Instructions how to install Home Assistant to launch on start."
date: 2017-02-15 08:00
sidebar: true
comments: false
@@ -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.
-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.
+Home Assistant provides multiple ways to be installed. A requirement is that you have [Python 3.5+](https://www.python.org/downloads/) installed.
diff --git a/source/_docs/installation/archlinux.markdown b/source/_docs/installation/archlinux.markdown
index 3e13bd2691..09ae89b4dd 100644
--- a/source/_docs/installation/archlinux.markdown
+++ b/source/_docs/installation/archlinux.markdown
@@ -21,10 +21,10 @@ $ sudo pacman -S python-pip
and Home Assistant itself.
```bash
-$ pip3 install --user homeassistant
+$ pip3 install homeassistant
```
-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:
+Home Assistant is part of the [AUR](https://aur.archlinux.org/packages/home-assistant/). This means that it can be installed with `pacaur`:
```bash
$ pacaur -S home-assistant
diff --git a/source/_docs/installation/armbian.markdown b/source/_docs/installation/armbian.markdown
index 5f16fc5bc0..e54d67acb8 100644
--- a/source/_docs/installation/armbian.markdown
+++ b/source/_docs/installation/armbian.markdown
@@ -11,8 +11,6 @@ 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
diff --git a/source/_docs/installation/centos.markdown b/source/_docs/installation/centos.markdown
index aadd8dbf93..b427d83d39 100644
--- a/source/_docs/installation/centos.markdown
+++ b/source/_docs/installation/centos.markdown
@@ -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-python36/) 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-python34/) needs to be activated first.
-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.
+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/).
### {% linkable_title Using Software Collections %}
@@ -21,27 +21,27 @@ First of all install the software collection repository as root. For example, on
$ yum install centos-release-scl
```
-Then install the Python 3.6 package:
+Then install the Python 3.5 package:
```bash
-$ yum install rh-python36
+$ yum install rh-python35
```
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-python36 bash
+$ scl enable rh-python35 bash
$ python --version
-Python 3.6.3
+Python 3.5.1
```
-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](/docs/installation/virtualenv/#step-4-set-up-the-virtualenv).
+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 need to enable the software collection each time you log on before you activate your virtual environment.
### {% linkable_title Systemd with Software Collections %}
-To autostart Home Assistant using systemd follow the main [instructions](/docs/autostart/systemd/) and adjust the template as follows:
+To autostart Home Assistant using systemd follow the main [instructions](https://home-assistant.io/docs/autostart/systemd/) and adjust the template as follows:
```
[Unit]
@@ -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-python36 -- /srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant"
+ExecStart=/usr/bin/scl enable rh-python35 -- /srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant"
[Install]
WantedBy=multi-user.target
diff --git a/source/_docs/installation/docker.markdown b/source/_docs/installation/docker.markdown
index 4245f1069c..63212564d6 100644
--- a/source/_docs/installation/docker.markdown
+++ b/source/_docs/installation/docker.markdown
@@ -10,7 +10,7 @@ footer: true
redirect_from: /getting-started/installation-docker/
---
-Installation with Docker is straightforward. Adjust the following command so that `/path/to/your/config/` points at the folder where you want to store your configuration and run it:
+Installation with Docker is straightforward. Adjust the following command so that `/path/to/your/config/` points at the folder where you want to store your config and run it:
### {% linkable_title Linux %}
@@ -18,27 +18,16 @@ Installation with Docker is straightforward. Adjust the following command so tha
$ docker run -d --name="home-assistant" -v /path/to/your/config:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/home-assistant
```
-### {% linkable_title Raspberry Pi 3 (Raspbian) %}
-
-```bash
-$ docker run -d --name="home-assistant" -v /path/to/your/config:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/raspberrypi3-homeassistant:0.XX.x
-```
-
-The Docker container for Raspberry Pi 3 does not have a 'latest' tag so the version number must be specified explicitly, i.e. 0.68.0. This goes for both CLI and Docker Compose.
-
-
### {% linkable_title macOS %}
-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, e.g, `-e "TZ=America/Los_Angeles"`. Replace "America/Los_Angeles" with [your timezone](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
+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).
-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).
+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).
```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):
@@ -60,7 +49,7 @@ The steps would be:
* Wait for some time until your NAS has pulled the image
* Move to the "Image"-section of the Docker-app
* Click on "Launch"
-* Choose a container-name you want (e.g., "homeassistant")
+* Choose a container-name you want (e.g. "homeassistant")
* Click on "Advanced Settings"
* Set "Enable auto-restart" if you like
* Within "Volume" click on "Add Folder" and choose either an existing folder or add a new folder. The "mount point" has to be "/config", so that Home Assistant will use it for the configs and logs.
@@ -87,69 +76,6 @@ Remark: to restart your Home Assistant within Synology NAS, you just have to do
If you want to use a USB Bluetooth adapter or Z-Wave USB Stick with Home Assistant on Synology Docker these instructions do not correctly configure the container to access the USB devices. To configure these devices on your Synology Docker Home Assistant you can follow the instructions provided [here](https://philhawthorne.com/installing-home-assistant-io-on-a-synology-diskstation-nas/) by Phil Hawthorne.
-### {% linkable_title QNAP NAS %}
-
-As QNAP within QTS now supports Docker (with a neat UI), you can simply install Home Assistant using docker without the need for command-line. For details about the package (including compatibility-information, if your NAS is supported), see https://www.qnap.com/solution/container_station/en/index.php
-
-The steps would be:
-
- - Install "Container Station" package on your Qnap NAS
- - Launch Container Station and move to "Create Container"-section
- - Search image "homeassistant/home-assistant" with Docker hub and click on "Install"
- - Choose "latest" version and click next
- - Choose a container-name you want (e.g., "homeassistant")
- - Click on "Advanced Settings"
- - Within "Shared Folders" click on "Volume from host" > "Add" and choose either an existing folder or add a new folder. The "mount point has to be `/config`, so that Home Assistant will use it for the configuration and logs.
- - Within "Network" and select Network Mode to "Host"
- - To ensure that Home Assistant displays the correct timezone go to the "Environment" tab and click the plus sign then add `variable` = `TZ` & `value` = `Europe/London` choosing [your correct timezone](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
- - Click on "Create"
- - Wait for some time until your NAS has created the container
- - Your Home Assistant within Docker should now run and will serve the web interface from port 8123 on your Docker host (this will be your Qnap NAS IP address - for example `http://192.xxx.xxx.xxx:8123`)
-
-Remark: To update your Home Assistant on your Docker within Qnap NAS, you just remove container and image and do steps again (Don't remove "config" folder).
-
-If you want to use a USB Bluetooth adapter or Z-Wave USB stick with Home Assistant on Qnap Docker, follow those steps:
-
-#### {% linkable_title Z-Wave %}
-
- - Connect to your NAS over SSH
- - Load cdc-acm kernel module(when nas restart need to run this command)
- `insmod /usr/local/modules/cdc-acm.ko`
- - Find USB devices attached. Type command:
- `ls /dev/tty*`
- The above command should show you any USB devices plugged into your NAS. If you have more than one, you may get multiple items returned. Like : `ttyACM0`
-
- - Run Docker command:
- `docker run --name home-assistant --net=host --privileged -itd -v /share/CACHEDEV1_DATA/Public/homeassistant/config:/config -e variable=TZ -e value=Europe/London --device /dev/ttyACM0 homeassistant/home-assistant`
-
- `-v` is your config path
- `-e` is set timezone
-
- - Edit `configuration.yaml`
-
-```yaml
-zwave:
- usb_path: /dev/ttyACM0
-```
-
-That will tell Home Assistant where to look for our Z-wave radio.
-
-#### {% linkable_title Bluetooth %}
-
- - Connect to your NAS over SSH
- - Run Docker command:
- `docker run --name home-assistant --net=host --privileged -itd -v /share/CACHEDEV1_DATA/Public/homeassistant/config:/config -e variable=TZ -e value=Europe/London -v /dev/bus/usb:/dev/bus/usb -v /var/run/dbus:/var/run/dbus homeassistant/home-assistant`
-
- First `-v` is your config path
- `-e` is set timezone
-
- - Edit the `configuration.yaml` file
-
-```yaml
-device_tracker:
- - platform: bluetooth_tracker
-```
-
### {% linkable_title Restart %}
If you change the configuration you have to restart the server. To do that you have 2 options.
@@ -164,8 +90,7 @@ As the docker command becomes more complex, switching to `docker-compose` can be
```yaml
version: '3'
services:
- homeassistant:
- container_name: home-assistant
+ web:
image: homeassistant/home-assistant
volumes:
- /path/to/your/config:/config
@@ -182,12 +107,10 @@ $ docker-compose up -d
### {% linkable_title Exposing Devices %}
-In order to use Z-Wave, ZigBbee or other components that require access to devices, you need to map the appropriate device into the container. Ensure the user that is running the container has the correct privileges to access the `/dev/tty*` file, then add the device mapping to your docker command:
+In order to use z-wave, zigbee or other components that require access to devices, you need to map the appropriate device into the container. Ensure the user that is running the container has the correct privileges to access the `/dev/tty*` file, then add the device mapping to your docker command:
```bash
-$ docker run -d --name="home-assistant" -v /path/to/your/config:/config \
- -v /etc/localtime:/etc/localtime:ro --device /dev/ttyUSB0:/dev/ttyUSB0 \
- --net=host homeassistant/home-assistant
+$ docker run -d --name="home-assistant" -v /path/to/your/config:/config -v /etc/localtime:/etc/localtime:ro --device /dev/ttyUSB0:/dev/ttyUSB0 --net=host homeassistant/home-assistant
```
or in a `docker-compose.yml` file:
@@ -195,8 +118,7 @@ or in a `docker-compose.yml` file:
```yaml
version: '3'
services:
- homeassistant:
- container_name: home-assistant
+ web:
image: homeassistant/home-assistant
volumes:
- /path/to/your/config:/config
diff --git a/source/_docs/installation/hassbian.markdown b/source/_docs/installation/hassbian.markdown
index bc20ad6359..a9177f3ab1 100644
--- a/source/_docs/installation/hassbian.markdown
+++ b/source/_docs/installation/hassbian.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Hassbian"
-description: "Instructions to flash the Home Assistant Hassbian image on a Raspberry Pi."
+description: "Instructions to flash the Home Assistant HASSbian image on a Raspberry Pi."
date: 2016-09-26 21:00
sidebar: true
comments: false
@@ -10,7 +10,7 @@ footer: true
redirect_from: /getting-started/hassbian/
---
-Hassbian is our customized operating system for the Raspberry Pi Zero, 2,3 and 3B+. It is one of the easiest ways of installing Home Assistant.
+Hassbian is our customized operating system for the Raspberry Pi 3. It is the easiest way of installing Home Assistant.
- [Install Hassbian][install]
- [Customize your installation][customize]
diff --git a/source/_docs/installation/hassbian/common-tasks.markdown b/source/_docs/installation/hassbian/common-tasks.markdown
index edf92d8ace..6fddcd360b 100644
--- a/source/_docs/installation/hassbian/common-tasks.markdown
+++ b/source/_docs/installation/hassbian/common-tasks.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Common tasks on Hassbian"
-description: "Instructions on how to do common tasks on Hassbian."
+description: "Instructions how to do common tasks on Hassbian."
date: 2016-09-26 21:00
sidebar: true
comments: false
@@ -11,7 +11,7 @@ redirect_from: /docs/hassbian/common-tasks/
---
### {% linkable_title Login to the Raspberry Pi %}
-To login to your Raspberry Pi running Hassbian you're going to be using a ssh client. Depending on your platform there are several alternatives for doing this. Linux and Max OS generally have a ssh client installed. Windows users are recommended to download and install the ssh client [Putty][ssh-putty].
+To login to your Raspberry Pi running HASSbian you're going to be using a ssh client. Depending on your platform there are several alternatives for doing this. Linux and Max OS generally have a ssh client installed. Windows users are recommended to download and install the ssh client [Putty][ssh-putty].
Connect to the Raspberry Pi over ssh. Default user name is `pi` and password is `raspberry`.
Linux and Mac OS users execute the following command in a terminal.
@@ -28,22 +28,22 @@ Optionally, starting with Windows 10 anniversary update, you can use the built-i
Log in as the `pi` account and execute the following commands:
```bash
-$ sudo systemctl stop home-assistant@homeassistant.service
+$ sudo systemctl stop home-assistant@homeassistant.service
```
Replace `stop` with `start` or `restart` to get the desired functionality.
-To get the current state of the `homeassistant.service` replace `stop` with `status`.
+To get the current state of the `homeassistant.service` replace `stop` with `status`.
### {% linkable_title Update Home Assistant %}
-You can use `hassbian-config` to automate the process by running `sudo hassbian-config upgrade homeassistant`
+You can also use `hassbian-config` to automate the process by running `sudo hassbian-config upgrade home-assistant`
Log in as the `pi` account and execute the following commands:
```bash
-$ sudo systemctl stop home-assistant@homeassistant.service
+$ sudo systemctl stop home-assistant@homeassistant.service
$ sudo su -s /bin/bash homeassistant
$ source /srv/homeassistant/bin/activate
$ pip3 install --upgrade homeassistant
@@ -53,12 +53,12 @@ $ sudo systemctl start home-assistant@homeassistant.service
This will in order do the following:
-- Stop the Home Assistant service running on Hassbian
+- Stop the Home Assistant service running on HASSbian
- Open a shell as the `homeassistant` user running the Homeassistant service and that has ownership over the Home Assistant installation.
- Change into the virtual Python environment at `/srv/homeassistant/` containing the Home Assistant installation.
- Upgrade the Home Assistant installation to the latest release.
- Exit the shell and return to the `pi` user.
-- Start the Home Assistant service.
+- Restart the Home Assistant service.
### {% linkable_title Manually launch Home Assistant %}
Log in as the `pi` account and execute the following commands:
diff --git a/source/_docs/installation/hassbian/customization.markdown b/source/_docs/installation/hassbian/customization.markdown
index e1c968a0c4..adc479f6d4 100644
--- a/source/_docs/installation/hassbian/customization.markdown
+++ b/source/_docs/installation/hassbian/customization.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Customization"
-description: "Instructions to flash the Home Assistant Hassbian image on a Raspberry Pi."
+description: "Instructions to flash the Home Assistant HASSbian image on a Raspberry Pi."
date: 2016-09-26 21:00
sidebar: true
comments: false
@@ -10,34 +10,26 @@ footer: true
redirect_from: /docs/hassbian/customization/
---
-To allow you to customize your installation further, we have included a tool called `hassbian-config`. This tool comes with a set of suites that can easily be installed or upgraded for easier customization of your Home Assistant installation.
-The tool is available by running `hassbian-config`.
+To allow you to customize your installation further, we have included a tool called `hassbian-config`. This tool comes with a set of packages that can easily be installed or upgraded for easier customization of your Home Assistant installation.
+The tool is available by running `hassbian-config`.
### Install scripts
-To view the available suites run `hassbian-config show` or have a look at the [hassbian-scripts repository][hassbian-repo].
-These are some of the available suites:
- - [AppDaemon](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/appdaemon.md)
- - [Duck DNS](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/duckdns.md) _This can also be configured to generate Let's Encrypt SSL certificates_
- - [Homebridge](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/homebridge.md)
- - [Mosquitto](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/mosquitto.md)
- - [Samba](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/samba.md)
- - [Webterminal](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/webterminal.md)
- - Various database engines.
- - [MariaDB](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/mariadb.md)
- - [PostgreSQL](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/postgresql.md)
- - [MS SQL](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/mssql.md)
+To view the available packages run `hassbian-config show` and `sudo hassbian-config install PACKAGENAME`.
+ - Install Hue. Configures the Python executable to allow usage of low numbered ports for use with Emulated Hue component that's used with Amazon Echo, Google Home and Mycroft.ai.
+ - Install MariaDB. This script installs MariaDB and it's dependencies for use with the recorder component in Home Assistant. No database or database user is created during this setup and will need to be created manually.
+ - Install Mosquitto MQTT server. Installs the latest Mosquitto package and client tools from the Mosquitto projects official repository. Now includes websocket support.
+ - Install Libcec. Adds local [HDMI CEC support][cec]. *This scipt is currently brooken upstream since it currently doesn't build properly for Python >3.4*
+ - Install Samba. Allows anyone on your network to edit your configuration from any computer. This share is unsecured and it's usage is not recommended if you share your network with others.
+ - Install Tradfri. Installs dependencies for using IKEA Trådfri.
+ - Install Duck DNS auto renewal. This script adds a cron job to auto update the WAN IP address for the defined domain. Before running this script you should already have an Duck DNS account. During the installation you will be asked to supply your domain name and the token for your account.
+ - Install a web terminal for easy access to ssh in any web browser. This script installs a web terminal called 'shellinabox' on your system that gives you SSH access in your web browser.
- To install any of them simply run `sudo hassbian-config install SUITE`.
-
-### Upgrade scripts
-To view the available suites run `hassbian-config show` or have a look at the [hassbian-scripts repository][hassbian-repo].
-These are some of the available suites:
-- [AppDaemon](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/appdaemon.md)
-- [Hassbian](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/hassbian.md)
-- [Home Assistant](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/homeassistant.md)
-- [hassbian-config (hassbian-sctipts)](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/hassbian_config.md)
-
-To upgrade any of them simply run `sudo hassbian-config upgrade SUITE`.
+#### Upgrade scripts
+To view the available packages run `hassbian-config show` and `sudo hassbian-config upgrade PACKAGENAME`.
+- Upgrade your Home Assistant installation.
+- Upgrade your HASSbian installation.
+- Upgrade HASSbian-scripts.
+- Upgrade HASSbian-scripts from dev branch.
For more information about this tool have a look at the [hassbian-scripts repository][hassbian-repo].
diff --git a/source/_docs/installation/hassbian/installation.markdown b/source/_docs/installation/hassbian/installation.markdown
index c6e73879ef..3c4acb26e9 100644
--- a/source/_docs/installation/hassbian/installation.markdown
+++ b/source/_docs/installation/hassbian/installation.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Installing Hassbian"
-description: "Instructions to flash the Home Assistant Hassbian image on a Raspberry Pi."
+description: "Instructions to flash the Home Assistant HASSbian image on a Raspberry Pi."
date: 2016-09-26 21:00
sidebar: true
comments: false
@@ -10,23 +10,22 @@ footer: true
redirect_from: /docs/hassbian/installation/
---
-One of the easiest ways to install Home Assistant on your Raspberry Pi Zero, 2 ,3 and 3B+ 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).
+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]
+ 1. [Download the Hassbian image][image-download] (364 MB)
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](#wireless-network) **before proceeding to step 4**.
- 4. Insert SD card to Raspberry Pi and turn it on. Initial installation of Home Assistant will take about 10 minutes.
+ 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.
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.
-These instructions are also available as a [video](https://www.youtube.com/watch?v=iIz6XqDwHEk).
-Additional information is available in this [video](https://www.youtube.com/watch?v=tCGlQSsQ-Mc).
+These instructions are also available as a [video](https://www.youtube.com/watch?v=iIz6XqDwHEk). Additional information is available in this [video](https://www.youtube.com/watch?v=tCGlQSsQ-Mc).
-After initial boot an installer will run in the background, this will download and install the newest version of [hassbian-config](https://github.com/home-assistant/hassbian-scripts) and Home-Assistant, this takes around 10 minutes to complete, after it has finished, you will be prompted to login: `hassbian login:`. Installation is complete at this point. The default username is `pi` and the password is `raspberry`.
+After initial boot an installer will run in the background and takes around 15 minutes to complete, after it has finished, you will be prompted to login: `hassbian login:`. Installation is complete at this point. The default username is `pi` and the password is `raspberry`.
-Open a browser on a device that's connected to the same network as your Raspberry Pi and point it to Home Assistant at [http://hassbian.local:8123]. If you want to login via SSH, the default username is `pi` and password is `raspberry` (please change this by running `passwd`). The Home Assistant configuration is located at `/home/homeassistant/.homeassistant/`.
+Open a browser on a device that's connected to the same WiFi network as your Raspberry Pi and point it to Home Assistant at [http://hassbian.local:8123]. If you want to login via SSH, the default username is `pi` and password is `raspberry` (please change this by running `passwd`). The Home Assistant configuration is located at `/home/homeassistant/.homeassistant/`.
If you find that the web page is not reachable after 30 minutes or so, check that you have files in `/home/homeassistant/.homeassistant/`, if there are no files in this location then run the installer manually using this command: `sudo systemctl start install_homeassistant.service`.
@@ -36,7 +35,7 @@ The following extras are included on the image:
- GPIO pins are ready to use.
- Bluetooth is ready to use (supported models only, no Bluetooth LE).
- SSH server is enabled.
- - A tool called [`hassbian-config`](https://github.com/home-assistant/hassbian-scripts#hassbian-scripts).
+ - A tool called [`hassbian-config`](https://github.com/home-assistant/hassbian-scripts#hassbian-config-hassbian-config).
### {% linkable_title Wireless Network %}
@@ -64,3 +63,4 @@ You may need to adjust the country code depending upon where you are. A list of
[etcher]: https://etcher.io/
[http://hassbian.local:8123]: http://hassbian.local:8123
[wifi-setup]: https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md
+
diff --git a/source/_docs/installation/hassbian/integrations.markdown b/source/_docs/installation/hassbian/integrations.markdown
index d6f7a3fd0c..5658ce712e 100644
--- a/source/_docs/installation/hassbian/integrations.markdown
+++ b/source/_docs/installation/hassbian/integrations.markdown
@@ -26,11 +26,11 @@ For more details about the GPIO layout, visit the [documentation](https://www.ra
Permission have been given to the `homeassistant` user to use the GPIO pins and all of the following components should require no underlying changes to work.
Just follow the component pages for each on how to add them to your Home Assistant installation.
- - [DHT Sensor](/components/sensor.dht/)
- - [Raspberry Pi Cover](/components/cover.rpi_gpio/)
- - [Raspberry Pi GPIO Binary Sensor](/components/binary_sensor.rpi_gpio/)
- - [Raspberry Pi GPIO Switch](/components/switch.rpi_gpio/)
- - [Raspberry Pi RF Switch](/components/switch.rpi_rf/)
+ - [DHT Sensor](/components/sensor.dht/).
+ - [Raspberry Pi Cover](/components/cover.rpi_gpio/).
+ - [Raspberry Pi GPIO Binary Sensor](/components/binary_sensor.rpi_gpio/).
+ - [Raspberry Pi GPIO Switch](/components/switch.rpi_gpio/).
+ - [Raspberry Pi RF Switch](/components/switch.rpi_rf/).
### {% linkable_title Raspberry Pi Camera %}
diff --git a/source/_docs/installation/hassbian/upgrading.markdown b/source/_docs/installation/hassbian/upgrading.markdown
index d7e094c16a..7ef479edcb 100644
--- a/source/_docs/installation/hassbian/upgrading.markdown
+++ b/source/_docs/installation/hassbian/upgrading.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Upgrading Hassbian"
-description: "Instructions on how to upgrade Hassbian to the latest version."
+description: "Instructions how to upgrade Hassbian to the latest version."
date: 2016-09-26 21:00
sidebar: true
comments: false
@@ -10,7 +10,7 @@ footer: true
redirect_from: /docs/hassbian/upgrading/
---
-Hassbian is based on Raspbian and uses the same repositories. Any changes to Raspbian will be reflected in Hassbian. To update and upgrade system packages and installed software (excluding Home Assistant) do the following.
+HASSbian is based on Raspbian and uses the same repositories. Any changes to Raspbian will be reflected in HASSbian. To update and upgrade system packages and installed software (excluding Home Assistant) do the following.
Log in as the `pi` account and execute the following commands:
```bash
@@ -18,9 +18,10 @@ $ sudo apt-get update
$ sudo apt-get -y upgrade
```
+
#### {% linkable_title Updating Home Assistant %}
-You can use `hassbian-config` to automate the process by running `sudo hassbian-config upgrade homeassistant`
+You can also use `hassbian-config` to automate the process by running `sudo hassbian-config upgrade home-assistant`
To update the Home Assistant installation execute the following command as the `pi` user.
diff --git a/source/_docs/installation/macos.markdown b/source/_docs/installation/macos.markdown
index 51292c43ab..25b3706db7 100644
--- a/source/_docs/installation/macos.markdown
+++ b/source/_docs/installation/macos.markdown
@@ -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 3.5.3 or later 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 from https://www.python.org/downloads/mac-osx/ and follow the instructions of the installer.
Open a terminal and install Home Assistant.
diff --git a/source/_docs/installation/raspberry-pi-all-in-one.markdown b/source/_docs/installation/raspberry-pi-all-in-one.markdown
index f983bb9d0b..6039ffed44 100644
--- a/source/_docs/installation/raspberry-pi-all-in-one.markdown
+++ b/source/_docs/installation/raspberry-pi-all-in-one.markdown
@@ -9,5 +9,5 @@ redirect_from: /getting-started/installation-raspberry-pi-all-in-one/
---
- The All-In-One Installer is deprecated, you will have problems updating Home Assistant in 2018. Please move to another [installation method](/getting-started/).
+ The All-In-One Installer is deprecated, you will have problems updating Home Assistant in 2018. Please move to another [installation method](https://home-assistant.io/getting-started/).
diff --git a/source/_docs/installation/raspberry-pi.markdown b/source/_docs/installation/raspberry-pi.markdown
index c272e97dbf..178ad0abdf 100644
--- a/source/_docs/installation/raspberry-pi.markdown
+++ b/source/_docs/installation/raspberry-pi.markdown
@@ -12,16 +12,6 @@ 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.
-
-
-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.
-
-
-
-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.
-
-
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/).
@@ -49,10 +39,10 @@ $ sudo apt-get install python3 python3-venv python3-pip
```
Add an account for Home Assistant called `homeassistant`.
-Since this account is only for running Home Assistant the extra arguments of `-rm` is added to create a system account and create a home directory. The arguments `-G dialout` adds the user to the `dialout` group. This is required for using Z-Wave and Zigbee controllers.
+Since this account is only for running Home Assistant the extra arguments of `-rm` is added to create a system account and create a home directory.
```bash
-$ sudo useradd -rm homeassistant -G dialout
+$ sudo useradd -rm homeassistant
```
Next we will create a directory for the installation of Home Assistant and change the owner to the `homeassistant` account.
@@ -71,13 +61,7 @@ $ cd /srv/homeassistant
$ python3 -m venv .
$ source bin/activate
```
-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!
+Once you have activated the virtual environment you will notice the prompt change and then you can install Home Assistant.
```bash
(homeassistant) homeassistant@raspberrypi:/srv/homeassistant $ pip3 install homeassistant
@@ -95,15 +79,3 @@ When you run the `hass` command for the first time, it will download, install an
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).
diff --git a/source/_docs/installation/synology.markdown b/source/_docs/installation/synology.markdown
index 454dcd8858..9edf9fbb00 100644
--- a/source/_docs/installation/synology.markdown
+++ b/source/_docs/installation/synology.markdown
@@ -10,10 +10,6 @@ footer: true
redirect_from: /getting-started/installation-synology/
---
-
-Synology only provide Python 3.5.1, which is not compatible with Home Assistant 0.65.0 or later. 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`
-
-
There are 2 alternatives, when using Home Assistant on Synology NAS:
1. using Docker
2. directly running on DSM
@@ -55,21 +51,21 @@ Install PIP (Python's package management system)
# ./python3 -m ensurepip
```
-Use PIP to install Homeassistant package 0.64.3
+Use PIP to install Homeassistant package
```bash
-# ./python3 -m pip install homeassistant==0.64.3
+# ./python3 -m pip install homeassistant
```
Create homeassistant config directory & switch to it
```bash
# mkdir /volume1/homeassistant
-# chown homeassistant /volume1/homeassistant
+# chown /volume1/homeassistant homeassistant
# chmod 755 /volume1/homeassistant
# cd /volume1/homeassistant
```
-Hint: alternatively you can also create a "Shared Folder" via Synology WebUI (e.g., via "File Station") - this has the advantage that the folder is visible via "File Station".
+Hint: alternatively you can also create a "Shared Folder" via Synology WebUI (e.g. via "File Station") - this has the advantage that the folder is visible via "File Station".
Create hass-daemon file using the following code (edit the variables in uppercase if necessary)
diff --git a/source/_docs/installation/updating.markdown b/source/_docs/installation/updating.markdown
index a9884322b6..a23aa31b27 100644
--- a/source/_docs/installation/updating.markdown
+++ b/source/_docs/installation/updating.markdown
@@ -11,14 +11,10 @@ redirect_from: /getting-started/updating/
---
-The upgrade process differs depending on the installation you have, so please review the documentation that is specific to your install [Hass.io](/hassio/), [Hassbian](/docs/installation/hassbian/common-tasks/#update-home-assistant), [Vagrant](/docs/installation/vagrant/), or [Virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant).
+The upgrade process differs depending on the installation you have, so please review the documentation that is specific to your install [Hass.io](/hassio/), [HASSbian](/docs/hassbian/common-tasks/#update-home-assistant), [Vagrant](/docs/installation/vagrant/), or [Virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant).
-Check what's new in the latest version and potentially impacts your system in [Home Assistant release notes](https://github.com/home-assistant/home-assistant/releases). It is good practice to review these release notes and pay close attention to the **Breaking Changes** that are listed there. If you haven't done an update for a while, you should also check previous release notes as they can also contain relevant **Breaking Changes**. **Breaking Changes** may require configuration updates for your components. If you missed this and Home Assistant refuses to start, check the log file in the [configuration](/docs/configuration/) directory, e.g., `.homeassistant/home-assistant.log`, for details about broken components.
-
-
-To avoid permission errors, the upgrade must be run as the same user as the installation was completed, again review the documentation specific to your install [Hass.io](/hassio/), [Hassbian](/docs/hassbian/installation/), [Vagrant](/docs/installation/vagrant/), or [Virtualenv](/docs/installation/virtualenv).
-
+View what's new in the latest version and potential impacts on your system [here](https://github.com/home-assistant/home-assistant/releases).
The default way to update Home Assistant to the latest release, when available, is:
@@ -26,13 +22,11 @@ The default way to update Home Assistant to the latest release, when available,
$ pip3 install --upgrade homeassistant
```
-For a Docker container, simply pull the latest one:
+After updating, you must restart Home Assistant for the changes to take effect. This means that you will have to restart `hass` itself or the [autostarting](/docs/autostart/) daemon (if applicable). Startup can take considerable amount of time (i.e. minutes) depending on your device. This is because all requirements are updated as well.
-```bash
-$ sudo docker pull homeassistant/home-assistant:latest
-```
-
-After updating, you must start/restart Home Assistant for the changes to take effect. This means that you will have to restart `hass` itself or the [autostarting](/docs/autostart/) daemon (if applicable). Startup can take considerable amount of time (i.e. minutes) depending on your device. This is because all requirements are updated as well.
+
+To avoid permission errors, the upgrade must be run as the same user as the installation was completed, again review the documentation specific to your install [Hass.io](/hassio/), [HASSbian](/docs/hassbian/installation/), [Vagrant](/docs/installation/vagrant/), or [Virtualenv](/docs/installation/virtualenv).
+
[BRUH automation](http://www.bruhautomation.com) has created [a tutorial video](https://www.youtube.com/watch?v=tuG2rs1Cl2Y) explaining how to upgrade Home Assistant.
@@ -46,7 +40,7 @@ $ pip3 install homeassistant==0.XX.X
#### {% linkable_title Run the development version %}
-If you want to stay on the bleeding-edge Home Assistant development branch, you can upgrade to `dev`.
+If you want to stay on the bleeding-edge Home Assistant development branch, you can upgrade to `dev`.
The "dev" branch is likely to be unstable. Potential consequences include loss of data and instance corruption.
diff --git a/source/_docs/installation/virtualenv.markdown b/source/_docs/installation/virtualenv.markdown
index 7c56772af7..51ab71aa14 100644
--- a/source/_docs/installation/virtualenv.markdown
+++ b/source/_docs/installation/virtualenv.markdown
@@ -10,16 +10,12 @@ footer: true
redirect_from: /getting-started/installation-virtualenv/
---
-If you already have Python 3.5.3 or later installed, you can easily give Home Assistant a spin.
+If you already have Python 3.5 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`.)_
-
-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.
-
-
### {% linkable_title Install %}
1. Create a virtual environment in your current directory:
@@ -74,12 +70,3 @@ It is recommended to use the [advanced guide](/docs/installation/raspberry-pi/)
Looking for more advanced guides? Check our [Rasbian guide](/docs/installation/raspberry-pi/) or the [other installation guides](/docs/installation/).
-
-### {% linkable_title After upgrading Python %}
-
-If you've upgraded Python (for example, you were running 3.5.2 and now you've installed 3.5.4) then you'll need to build a new virtual environment. Simply rename your existing virtual environment directory:
-
-```bash
-$ mv homeassistant homeassistant.old
-```
-Then follow the [Install](/docs/installation/virtualenv/#install) steps again, being sure to use the newly installed version of Python.
diff --git a/source/_docs/mqtt/birth_will.markdown b/source/_docs/mqtt/birth_will.markdown
index 8ba1aa593a..afce8a592f 100644
--- a/source/_docs/mqtt/birth_will.markdown
+++ b/source/_docs/mqtt/birth_will.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "MQTT Birth and Last will"
-description: "Instructions on how to setup MQTT birth and last will messages within Home Assistant."
+description: "Instructions how to setup MQTT birth and last will messages within Home Assistant."
date: 2015-08-07 18:00
sidebar: true
comments: false
diff --git a/source/_docs/mqtt/broker.markdown b/source/_docs/mqtt/broker.markdown
index 87406a5873..a5f9e9ba70 100644
--- a/source/_docs/mqtt/broker.markdown
+++ b/source/_docs/mqtt/broker.markdown
@@ -1,13 +1,14 @@
---
layout: page
title: "MQTT Brokers"
-description: "Instructions on how to setup MQTT brokers for Home Assistant."
+description: "Instructions how to setup MQTT brokers for Home Assistant."
date: 2015-08-07 18:00
sidebar: true
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.
@@ -62,7 +63,7 @@ mqtt:
{% configuration %}
broker:
required: false
- description: The IP address or hostname of your MQTT broker, e.g., 192.168.1.32.
+ description: The IP address or hostname of your MQTT broker, e.g. 192.168.1.32.
type: string
port:
required: false
@@ -98,23 +99,14 @@ tls_insecure:
type: boolean
tls_version:
required: false
- description: "TLS/SSL protocol version to use. Available options are: `'auto'`, `'1.0'`, `'1.1'`, `'1.2'`. Make sure to put quotes around the value. Defaults to `'auto'`."
+ description: "TLS/SSL protocol version to use. Available options are: `auto`, `1.0`, `1.1`, `1.2`. Defaults to `auto`."
type: string
{% endconfiguration %}
There is an issue with the Mosquitto package included in Ubuntu 14.04 LTS. Specify `protocol: 3.1` in your MQTT configuration to work around this issue.
-If you get this error `AttributeError: module 'ssl' has no attribute 'PROTOCOL_TLS'` then you need to set `tls_version: '1.2'`.
-
-
-
-If you are running a Mosquitto instance on the same server as Home Assistant then you must ensure that the Mosquitto 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 mosquitto service:
-```
-[Unit]
-Description=Home Assistant
-After=network.target mosquitto.service
-```
+If you get this error `AttributeError: module 'ssl' has no attribute 'PROTOCOL_TLS'` then you need to set `tls_version: 1.2`.
diff --git a/source/_docs/mqtt/certificate.markdown b/source/_docs/mqtt/certificate.markdown
index 252e0a5160..bf410b916a 100644
--- a/source/_docs/mqtt/certificate.markdown
+++ b/source/_docs/mqtt/certificate.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "MQTT Certificate"
-description: "Instructions on how to setup MQTT with a certificate in Home Assistant."
+description: "Instructions how to setup MQTT with a certificate in Home Assistant."
date: 2015-08-07 18:00
sidebar: true
comments: false
diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown
index 27b588f015..0fa7a45c04 100644
--- a/source/_docs/mqtt/discovery.markdown
+++ b/source/_docs/mqtt/discovery.markdown
@@ -1,13 +1,14 @@
---
layout: page
title: "MQTT Discovery"
-description: "Instructions on how to setup MQTT Discovery within Home Assistant."
+description: "Instructions how to setup MQTT Discovery within Home Assistant."
date: 2015-08-07 18:00
sidebar: true
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.
@@ -15,7 +16,6 @@ The discovery of MQTT devices will enable one to use MQTT devices with only mini
Supported by MQTT discovery:
- [Binary sensors](/components/binary_sensor.mqtt/)
-- [Cameras](/components/camera.mqtt/)
- [Covers](/components/cover.mqtt/)
- [Fans](/components/fan.mqtt/)
- [Lights](/components/light.mqtt/)
@@ -43,8 +43,8 @@ The discovery topic need to follow a specific format:
```
- ``: One of the supported components, eg. `binary_sensor`.
-- `` (*Optional*): ID of the node providing the topic.
-- ``: The ID of the device. This is only to allow for separate topics for each device and is not used for the `entity_id`.
+- ``: (*Optional*) id of the node providing the topic.
+- ``: The ID of the device. This will become the `entity_id` in Home Assistant.
- `<>`: 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`.
@@ -56,9 +56,8 @@ The `` level can be used by clients to only subscribe to their own (com
The following firmware for ESP8266, ESP32 and Sonoff unit has built-in support for MQTT discovery:
- [Sonoff-Tasmota](https://github.com/arendst/Sonoff-Tasmota) (starting with 5.11.1e)
-- [esphomeyaml](https://esphomelib.com/esphomeyaml/index.html)
+- [esphomelib](https://github.com/OttoWinter/esphomelib)
- [ESPurna](https://github.com/xoseperez/espurna)
-- [Arilux AL-LC0X LED controllers](https://github.com/mertenats/Arilux_AL-LC0X)
### {% linkable_title Examples %}
diff --git a/source/_docs/mqtt/logging.markdown b/source/_docs/mqtt/logging.markdown
index d4deaf4f48..08b84f5277 100644
--- a/source/_docs/mqtt/logging.markdown
+++ b/source/_docs/mqtt/logging.markdown
@@ -1,13 +1,14 @@
---
layout: page
title: "MQTT Logging"
-description: "Instructions on how to setup MQTT Logging within Home Assistant."
+description: "Instructions how to setup MQTT Logging within Home Assistant."
date: 2015-08-07 18:00
sidebar: true
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.
diff --git a/source/_docs/mqtt/processing_json.markdown b/source/_docs/mqtt/processing_json.markdown
index 8afb951f8e..b10558655c 100644
--- a/source/_docs/mqtt/processing_json.markdown
+++ b/source/_docs/mqtt/processing_json.markdown
@@ -1,13 +1,14 @@
---
layout: page
title: "Processing JSON"
-description: "Instructions on how to process the MQTT payload."
+description: "Instructions how to process the MQTT payload."
date: 2015-08-07 18:00
sidebar: true
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`.
diff --git a/source/_docs/mqtt/service.markdown b/source/_docs/mqtt/service.markdown
index 941d79e7b7..0b3e778fdf 100644
--- a/source/_docs/mqtt/service.markdown
+++ b/source/_docs/mqtt/service.markdown
@@ -1,13 +1,14 @@
---
layout: page
title: "MQTT Publish service"
-description: "Instructions on how to setup the MQTT Publish service within Home Assistant."
+description: "Instructions how to setup the MQTT Publish service within Home Assistant."
date: 2015-08-07 18:00
sidebar: true
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.
diff --git a/source/_docs/mqtt/testing.markdown b/source/_docs/mqtt/testing.markdown
index e6c87bdbfc..3cc565d051 100644
--- a/source/_docs/mqtt/testing.markdown
+++ b/source/_docs/mqtt/testing.markdown
@@ -1,13 +1,14 @@
---
layout: page
title: "MQTT Testing"
-description: "Instructions on how to test your MQTT setup."
+description: "Instructions how to test your MQTT setup."
date: 2015-08-07 18:00
sidebar: true
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:
diff --git a/source/_docs/scripts.markdown b/source/_docs/scripts.markdown
index ef490f4de2..5c39a604ab 100644
--- a/source/_docs/scripts.markdown
+++ b/source/_docs/scripts.markdown
@@ -21,8 +21,7 @@ script:
sequence:
# This is written using the Script Syntax
- service: light.turn_on
- data:
- entity_id: light.ceiling
+ entity_id: light.ceiling
- service: notify.notify
data:
message: 'Turned on the ceiling light!'
@@ -33,11 +32,11 @@ script:
The most important one is the action to call a service. This can be done in various ways. For all the different possibilities, have a look at the [service calls page].
```yaml
-- alias: Bedroom lights on
- service: light.turn_on
- data:
- entity_id: group.bedroom
- brightness: 100
+alias: Bedroom lights on
+service: light.turn_on
+data:
+ entity_id: group.bedroom
+ brightness: 100
```
### {% linkable_title Test a Condition %}
@@ -45,9 +44,9 @@ The most important one is the action to call a service. This can be done in vari
While executing a script you can add a condition to stop further execution. When a condition does not return `true`, the script will finish. There are many different conditions which are documented at the [conditions page].
```yaml
-- condition: state
- entity_id: device_tracker.paulus
- state: 'home'
+condition: state
+entity_id: device_tracker.paulus
+state: 'home'
```
### {% linkable_title Delay %}
@@ -56,53 +55,46 @@ Delays are useful for temporarily suspending your script and start it at a later
```yaml
# Waits 1 hour
-- delay: '01:00'
+delay: 01:00
```
```yaml
# Waits 1 minute, 30 seconds
-- delay: '00:01:30'
+delay: 00:01:30
```
```yaml
# Waits 1 minute
-- delay:
- # supports milliseconds, seconds, minutes, hours, days
- minutes: 1
+delay:
+ # supports milliseconds, seconds, minutes, hours, days
+ minutes: 1
```
-{% raw %}
```yaml
# Waits however many minutes input_number.minute_delay is set to
# Valid formats include HH:MM and HH:MM:SS
-- delay: "00:{{ states('input_number.minute_delay')|int }}:00"
+delay: {% raw %}'00:{{ states.input_number.minute_delay.state | int }}:00'{% endraw %}
```
-{% endraw %}
-
### {% linkable_title Wait %}
Wait until some things are complete. We support at the moment `wait_template` for waiting until a condition is `true`, see also on [Template-Trigger](/docs/automation/trigger/#template-trigger). It is possible to set a timeout after which the script will abort its execution if the condition is not satisfied. Timeout has the same syntax as `delay`.
-{% raw %}
```yaml
# wait until media player have stop the playing
-- wait_template: "{{ is_state('media_player.floor', 'stop') }}"
+wait_template: {% raw %}"{{ states.media_player.floor.state == 'stop' }}"{% endraw %}
```
-{% endraw %}
-{% raw %}
```yaml
-# wait until a valve is < 10 or abort after 1 minute.
-- wait_template: "{{ states.climate.kitchen.attributes.valve|int < 10 }}"
- timeout: '00:01:00'
+# wait until a valve is < 10 or abort after 1 minutes.
+wait_template: {% raw %}"{{ states.climate.kitchen.attributes.valve < 10 }}"{% endraw %}
+timeout: 00:01:00
```
-{% endraw %}
When using `wait_template` within an automation `trigger.entity_id` is supported for `state`, `numeric_state` and `template` triggers, see also [Available-Trigger-Data](/docs/automation/templating/#available-trigger-data).
{% raw %}
```yaml
-- wait_template: "{{ is_state('trigger.entity_id', 'on') }}"
+wait_template: "{{ is_state(trigger.entity_id, 'on') }}"
```
{% endraw %}
@@ -110,13 +102,13 @@ It is also possible to use dummy variables, e.g., in scripts, when using `wait_t
{% raw %}
```yaml
-# Service call, e.g., from an automation.
-- service: script.do_something
- data_template:
- dummy: input_boolean.switch
+# Service call, e.g. from an automation.
+service: script.do_something
+data_template:
+ dummy: "{{ input_boolean.switch }}"
# Inside the script
-- wait_template: "{{ is_state(dummy, 'off') }}"
+wait_template: "{{ is_state(dummy, 'off') }}"
```
{% endraw %}
@@ -125,12 +117,12 @@ It is also possible to use dummy variables, e.g., in scripts, when using `wait_t
This action allows you to fire an event. Events can be used for many things. It could trigger an automation or indicate to another component that something is happening. For instance, in the below example it is used to create an entry in the logbook.
```yaml
-- event: LOGBOOK_ENTRY
- event_data:
- name: Paulus
- message: is waking up
- entity_id: device_tracker.paulus
- domain: light
+event: LOGBOOK_ENTRY
+event_data:
+ name: Paulus
+ message: is waking up
+ entity_id: device_tracker.paulus
+ domain: light
```
You can also use event_data_template to fire an event with custom data. This could be used to pass data to another script awaiting
@@ -138,10 +130,10 @@ an event trigger.
{% raw %}
```yaml
-- event: MY_EVENT
- event_data_template:
- name: myEvent
- customData: "{{ myCustomVariable }}"
+event: MY_EVENT
+event_data_template:
+ name: myEvent
+ customData: "{{ myCustomVariable }}"
```
{% endraw %}
@@ -153,13 +145,13 @@ The following automation shows how to raise a custom event called `event_light_s
```yaml
- alias: Fire Event
trigger:
- - platform: state
- entity_id: switch.kitchen
- to: 'on'
+ platform: state
+ entity_id: switch.kitchen
+ to: 'on'
action:
- - event: event_light_state_changed
- event_data:
- state: 'on'
+ event: event_light_state_changed
+ event_data:
+ state: "on"
```
{% endraw %}
@@ -169,8 +161,8 @@ The following automation shows how to capture the custom event `event_light_stat
```yaml
- alias: Capture Event
trigger:
- - platform: event
- event_type: event_light_state_changed
+ platform: event
+ event_type: event_light_state_changed
action:
- service: notify.notify
data_template:
diff --git a/source/_docs/scripts/conditions.markdown b/source/_docs/scripts/conditions.markdown
index 5ca5b9c756..3314e0f427 100644
--- a/source/_docs/scripts/conditions.markdown
+++ b/source/_docs/scripts/conditions.markdown
@@ -28,24 +28,9 @@ 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.
+Test multiple conditions in 1 condition statement. Passes if any embedded conditions is valid.
```yaml
condition:
@@ -119,26 +104,16 @@ condition:
The sun condition can test if the sun has already set or risen when a trigger occurs. The `before` and `after` keys can only be set to `sunset` or `sunrise`. They have a corresponding optional offset value (`before_offset`, `after_offset`) that can be added, similar to the [sun trigger][sun_trigger].
-[sun_trigger]: /docs/automation/trigger/#sun-trigger
+[sun_trigger]: /getting-started/automation-trigger/#sun-trigger
```yaml
condition:
condition: sun
after: sunset
- # Optional offset value - in this case it must from -1 hours relative to sunset, or after
+ # Optional offset value
after_offset: "-1:00:00"
```
-```yaml
-condition:
- condition: or # 'when dark' condition: either after sunset or before sunrise
- conditions:
- - condition: sun
- after: sunset
- - condition: sun
- before: sunrise
-```
-
Here is a truth table to clarify the parameters with and without offset:
| command | night | at sunrise | daytime | at sunset |
diff --git a/source/_docs/scripts/service-calls.markdown b/source/_docs/scripts/service-calls.markdown
index ab73aad529..b1b1833340 100644
--- a/source/_docs/scripts/service-calls.markdown
+++ b/source/_docs/scripts/service-calls.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Service Calls"
-description: "Instructions on how to call services in Home Assistant."
+description: "Instructions how to call services in Home Assistant."
date: 2016-03-12 12:00 -0800
sidebar: true
comments: false
diff --git a/source/_docs/tools/benchmark.markdown b/source/_docs/tools/benchmark.markdown
index 04ac884068..c95894489e 100644
--- a/source/_docs/tools/benchmark.markdown
+++ b/source/_docs/tools/benchmark.markdown
@@ -7,6 +7,7 @@ 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.
diff --git a/source/_docs/tools/check_config.markdown b/source/_docs/tools/check_config.markdown
index b09ea5b17c..f3a926783e 100644
--- a/source/_docs/tools/check_config.markdown
+++ b/source/_docs/tools/check_config.markdown
@@ -7,6 +7,7 @@ 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.
@@ -15,23 +16,3 @@ Test any changes to your `configuration.yaml` file before launching Home Assista
$ hass --script check_config
```
-The script has further options like checking configuration files which are not located in the default directory or showing your secrets for debugging.
-
-```bash
-$ hass --script check_config -h
-usage: hass [-h] [--script {check_config}] [-c CONFIG] [-i [INFO]] [-f] [-s]
-
-Check Home Assistant configuration.
-
-optional arguments:
- -h, --help show this help message and exit
- --script {check_config}
- -c CONFIG, --config CONFIG
- Directory that contains the Home Assistant
- configuration
- -i [INFO], --info [INFO]
- Show a portion of the config
- -f, --files Show used configuration files
- -s, --secrets Show secret information
-```
-
diff --git a/source/_docs/tools/credstash.markdown b/source/_docs/tools/credstash.markdown
index 023ee23998..0d419a104f 100644
--- a/source/_docs/tools/credstash.markdown
+++ b/source/_docs/tools/credstash.markdown
@@ -7,6 +7,7 @@ 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.
diff --git a/source/_docs/tools/db_migrator.markdown b/source/_docs/tools/db_migrator.markdown
index 68127935ae..bdce8d1ab0 100644
--- a/source/_docs/tools/db_migrator.markdown
+++ b/source/_docs/tools/db_migrator.markdown
@@ -7,6 +7,7 @@ sidebar: true
comments: false
sharing: true
footer: true
+redirect_from: /components/influxdb/#data-migration
---
diff --git a/source/_docs/tools/dev-tools.markdown b/source/_docs/tools/dev-tools.markdown
index 99ce3e7cf7..88e282683c 100644
--- a/source/_docs/tools/dev-tools.markdown
+++ b/source/_docs/tools/dev-tools.markdown
@@ -9,7 +9,7 @@ sharing: true
footer: true
---
-The frontend contains a section called "Developer Tools".
+The frontend contains a section called "Developer Tools".
@@ -63,7 +63,7 @@ For ex: Changing the `light.bedroom` state from `off` to `on` does not turn on t
This Events section is as basic as it can get. It does only one thing – fires events on the event bus.
To fire an event, simply type the name of the event, and pass the event data in JSON format.
-For ex: To fire a custom event, enter the `event_type` as `event_light_state_changed` and the event data JSON as
+For ex: To fire a custom event, enter the `event_type` as `event_light_state_changed` and the event data JSON as
```json
{ "state":"on" }
@@ -83,20 +83,19 @@ If there is an automation that handles that event, it will be automatically trig
{% linkable_title Template Editor %}
-The Template Editor provides a way to test the template code quickly. When the Template Editor page is loaded, it comes with a sample template code that illustrates how the code can be written and tested.
+The Template Editor provides a way to test the template code quickly. When the Template Editor page is loaded, it comes with a sample template code that illustrates how the code can be written and tested.
-It has two sections, code goes on the left hand side, and the output is shown on the right hand side. The code can be removed and replaced, and when the page is loaded/refreshed, the default sample code will be loaded back.
+It has two sections, code goes on the left hand side, and the output is shown on the right hand side. The code can be removed and replaced, and when the page is loaded/refreshed, the default sample code will be loaded back.
It is a good practice to test the template code in the template editor prior to putting it in automations and scripts.
-For more information about jinja2, visit [jinja2 documentation](http://jinja.pocoo.org/docs/dev/templates/), and also read templating document [here](/topics/templating/)
+For more information about jinja2, visit [jinja2 documentation](http://jinja.pocoo.org/docs/dev/templates/), and also read templating document [here](https://home-assistant.io/topics/templating/)
{% linkable_title mqtt %}
-This section is only visible if the MQTT component is configured. To configure MQTT, add `mqtt:` to the `configuration.yaml` file. For more information, refer to the [mqtt](/components/mqtt/) component.
-
-Even though MQTT in general provides deeper functionality, the developer tools section of MQTT is limited to publishing messages to a given topic. It supports templates for the payload. To publish a message, simply specify the topic name and the payload and click “PUBLISH” button.
+This section is only visible if the MQTT is configured. To configure MQTT, add `mqtt:` to the `configuration.yaml` file. For more information, refer to [mqtt]( https://home-assistant.io/components/mqtt/)
+Even though MQTT in general provides deeper functionality, the developer tools section of MQTT is limited to publishing messages to a given topic. It supports templates for the payload. To publish a message, simply specify the topic name and the payload and click “PUBLISH” button.
{% linkable_title Info %}
diff --git a/source/_docs/tools/ensure_config.markdown b/source/_docs/tools/ensure_config.markdown
index 596c44d571..c953939856 100644
--- a/source/_docs/tools/ensure_config.markdown
+++ b/source/_docs/tools/ensure_config.markdown
@@ -7,6 +7,7 @@ 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.
diff --git a/source/_docs/tools/hass.markdown b/source/_docs/tools/hass.markdown
index 73e0bd68cd..3ba0896f35 100644
--- a/source/_docs/tools/hass.markdown
+++ b/source/_docs/tools/hass.markdown
@@ -39,7 +39,6 @@ optional arguments:
specified days
--log-file LOG_FILE Log file to write to. If not set, CONFIG/home-
assistant.log is used
- --log-no-color Disable color logs
--runner On restart exit with code 100
--script ... Run one of the embedded scripts
--daemon Run Home Assistant as daemon
diff --git a/source/_docs/tools/influxdb_import.markdown b/source/_docs/tools/influxdb_import.markdown
index 8ff3d85e7b..b8bea1046c 100644
--- a/source/_docs/tools/influxdb_import.markdown
+++ b/source/_docs/tools/influxdb_import.markdown
@@ -7,6 +7,7 @@ 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`.
diff --git a/source/_docs/tools/keyring.markdown b/source/_docs/tools/keyring.markdown
index be4f2634a0..6434337b39 100644
--- a/source/_docs/tools/keyring.markdown
+++ b/source/_docs/tools/keyring.markdown
@@ -7,6 +7,7 @@ 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.
diff --git a/source/_docs/z-wave.markdown b/source/_docs/z-wave.markdown
index 6ee6a284fa..c6a68fb3c6 100644
--- a/source/_docs/z-wave.markdown
+++ b/source/_docs/z-wave.markdown
@@ -37,9 +37,3 @@ There are 12 different regions for Z-Wave devices, which relates to the frequenc
You'll now need to connect your [controller](/docs/z-wave/controllers/), [configure](/docs/z-wave/installation) the Z-Wave component, then [add some devices](/docs/z-wave/adding) using the [control panel](/docs/z-wave/control-panel). [This explains](/docs/z-wave/devices/) about devices, and how [entities are named](/docs/z-wave/entities).
You can get more information on the [available services](/docs/z-wave/services/) and [events](/docs/z-wave/events/), what the [query stages](/docs/z-wave/query-stage) of battery powered devices are, as well as details on configuring [specific devices](/docs/z-wave/device-specific/).
-
-## {% linkable_title Instant status updates %}
-
-When you toggle a switch or control a light locally you may find that it takes some time for that to be reflected in Home Assistant. That's because Lutron had patents on the status updates using the *Hail* command class, the traditional way of allowing devices to tell the controller that something happened locally. The same result can be achieved through the *Association* command class, or *Central Scene* command class (though, *Central Scene* isn't [fully supported](https://github.com/OpenZWave/open-zwave/pull/1125) in OpenZWave).
-
-If you search [the Z-Wave products database](http://products.z-wavealliance.org/) for your product and it lists one of those in the **Controlled** command classes (not the **Supported** command classes), then your device will be able to report state changes when they happen. If it doesn't then updates may either happen eventually, or you may need to (carefully) [enable polling](https://www.home-assistant.io/docs/z-wave/control-panel/#entities-of-this-node).
diff --git a/source/_docs/z-wave/adding.markdown b/source/_docs/z-wave/adding.markdown
index b6fb1f7b3d..e2a34934ba 100644
--- a/source/_docs/z-wave/adding.markdown
+++ b/source/_docs/z-wave/adding.markdown
@@ -18,7 +18,7 @@ To add (include) a non-secure Z-Wave [device](/docs/z-wave/devices/) to your sys
3. Activate your device to be included by following the instructions provided with the device
4. With the device in its final location, run a *Heal Network*
-Don't use this for [secure devices](/docs/z-wave/adding/#adding-secure-devices), since this is likely to limit the features the device supports.
+Don't use this for [secure devices](https://home-assistant.io/docs/z-wave/adding/#adding-secure-devices), since this is likely to limit the features the device supports.
Don't use the OpenZWave control panel (OZWCP), **or the physical button on a controller**, to add or remove devices. Many devices will only send the information about their capabilities at the time you include them. If you use the OpenZWave control panel, or the button on a device, then Home Assistant won't have that information. Using the physical button on a controller will also result in a non-security inclusion being performed, which may limit the features the device supports.
diff --git a/source/_docs/z-wave/control-panel.markdown b/source/_docs/z-wave/control-panel.markdown
index ee08d772d8..06c9bd741b 100644
--- a/source/_docs/z-wave/control-panel.markdown
+++ b/source/_docs/z-wave/control-panel.markdown
@@ -32,16 +32,12 @@ Here is where you [include and exclude](/docs/z-wave/adding/) Z-Wave devices fro
## {% linkable_title Z-Wave Node Management %}
-
-Since 0.63 and the new experimental [entity registry](/docs/configuration/entity-registry/) **Rename Node** no longer changes the entity id for anything other than the `zwave.` entity for the node (it does change the default *friendly_name* attribute for all the entities). See [this issue](https://github.com/home-assistant/home-assistant/issues/12430).
-
-
* **Refresh Node** refreshes the information on the node and its entities. If used on a battery powered device, the device will first need to wake for this to work.
* **Remove Failed Node** will remove a failed node from the network. The node needs to be on the controller's Failed Node List (marked as `is_failed: true`), otherwise this command will fail.
* **Replace Failed Node** will replace a failed device with another. If the node is not in the controller's Failed Node List, or the node responds, this command will fail.
* **Print Node** prints all state of Z-Wave node to the console log
-* **Rename Node** sets the name of the `zwave` entity - this won't happen immediately, and requires you to restart Home Assistant (not reboot) to set the new name. Other entities of a device are renamed using the [entity registry](/docs/configuration/entity-registry/).
+* **Rename Node** sets a node's name - this won't happen immediately, and requires you to restart Home Assistant (not reboot) to set the new name
* **Heal Node** starts healing of the node.(Update neighbor list and update return routes)
@@ -82,8 +78,10 @@ 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
@@ -108,16 +106,6 @@ You can use this to enable one device to directly control another. This is prima
There may be multiple groups, that are used for different purposes. The manual of your device will explain what each group is for.
-#### {% linkable_title Broadcast group %}
-
-Some Z-Wave devices may associate themselves with the broadcast group (group 255). You'll be able to tell if this has happened if opening a door (or triggering a motion sensor) causes lights to come on, and closing the door (or the motion sensor going clear) causes lights to run off. There's no way to clear this from the control panel, but you can use the `zwave.change_association` service:
-
-```json
-{"association": "remove", "node_id": 3, "group": 1, "target_node_id": 255}
-```
-
-That would remove the broadcast group from association group 1 of the device with node_id 3.
-
### {% linkable_title Node config options %}
You can set the *wakeup* interval (in seconds) of the device, this is shown for all devices that can be battery powered, even if they are currently mains powered. The wakeup interval only applies when those devices are battery powered.
@@ -142,20 +130,6 @@ If your node has user codes, you can set and delete them. The format is raw hex
Some non compliant device like tag readers, have implemented to use raw hex code.
Please refer to a hex ascii table to set your code. Example: http://www.asciitable.com/
-Here is a small Python program than will take numbers on the command line and print the correct sequence for compliant devices:
-
-```python
-#! /usr/bin/python3
-import sys
-
-translations = {}
-
-for x in range(0, 10):
- translations["%s" % x] = "\\x3%s" % x
-
-for c in sys.argv[1]:
- print(translations[c], end='')
-```
## {% linkable_title OZW Log %}
diff --git a/source/_docs/z-wave/controllers.markdown b/source/_docs/z-wave/controllers.markdown
index 7a0952abcc..941f8d1eea 100644
--- a/source/_docs/z-wave/controllers.markdown
+++ b/source/_docs/z-wave/controllers.markdown
@@ -27,7 +27,7 @@ You need to have a [supported Z-Wave USB stick or module](https://github.com/Ope
| ZWave.me UZB1 | ✓ | | |
- If you're using Hass.io or running HASS in a Docker container, it's recommended to use a USB stick, not a module. Passing a module through Docker is more complicated than passing a USB stick through.
+ If you're using Hass.io, it's recommended to use a USB stick, not a module. Passing a module through Docker is more complicated than passing a USB stick through.
## {% linkable_title Stick Alternatives %}
diff --git a/source/_docs/z-wave/devices.markdown b/source/_docs/z-wave/devices.markdown
index 92d43f0094..13d2966b4f 100644
--- a/source/_docs/z-wave/devices.markdown
+++ b/source/_docs/z-wave/devices.markdown
@@ -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 (March 2018) 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 (September 2017) OpenZWave does not support the S2 framework.
## {% linkable_title Device power %}
diff --git a/source/_docs/z-wave/installation.markdown b/source/_docs/z-wave/installation.markdown
index b3fc38d817..b110e34863 100644
--- a/source/_docs/z-wave/installation.markdown
+++ b/source/_docs/z-wave/installation.markdown
@@ -36,14 +36,14 @@ $ sudo /Applications/Python\ x.x/Install\ Certificates.command
### {% linkable_title Raspberry Pi %}
-On Raspberry Pi you will need to enable the serial interface in the `raspi-config` tool before you can add Z-Wave to Home Assistant.
+On Raspberry Pi you will need to enable the serial interface in the `raspbi-config` tool before you can add Z-Wave to Home Assistant.
## {% linkable_title Configuration %}
```yaml
# Example configuration.yaml entry
zwave:
- usb_path: /dev/ttyACM0
+ usb_path: /dev/ttyUSB0
```
{% configuration zwave %}
@@ -53,7 +53,7 @@ usb_path:
type: string
default: /zwaveusbstick
network_key:
- description: The 16-byte network key in the form `"0x01, 0x02..."` used in order to connect securely to compatible devices. It is recommended that a network key is configured as security enabled devices may not function correctly if they are not added securely.
+ description: The 16-byte network key in the form `"0x01, 0x02..."` used in order to connect securely to compatible devices.
required: false
type: string
default: None
@@ -77,7 +77,12 @@ debug:
required: false
type: boolean
default: False
-device_config / device_config_domain / device_config_glob:
+new_entity_ids:
+ description: Switch to new entity_id generation.
+ required: false
+ type: boolean
+ default: True
+device_config:
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
type: string, list
@@ -135,7 +140,7 @@ Or, if there is no result, try to find detailed USB connection info with:
$ dmesg | grep USB
```
-If Home Assistant (`hass`) runs with another user (e.g., *homeassistant* on Hassbian) give access to the stick with:
+If Home Assistant (`hass`) runs with another user (e.g. *homeassistant* on Hassbian) give access to the stick with:
```bash
$ sudo usermod -a -G dialout homeassistant
@@ -205,7 +210,7 @@ The first run after adding a device is when the `zwave` component will take time
### {% linkable_title Component could not be set up %}
-Sometimes the device may not be accessible and you'll get an error message upon startup about not being able to set up Z-Wave. Run the following command for your device path (here we're using `/dev/ttyAMA0` for our Razberry board):
+Sometimes the device may not be accessible and you'll get an error message upon startup about not being able to set up Z-Wave. Run the following command for your device path:
```bash
$ ls -l /dev/ttyAMA0
@@ -224,18 +229,6 @@ $ sudo chgrp dialout /dev/ttyAMA0
$ sudo chmod g+rw /dev/ttyAMA0
```
-Check too that the account you're running Home Assistant as is in the `dialout` group. For instance, if you're using `homeassistant`:
-
-```bash
-$ groups homeassistant
-```
-
-That should include `dialout`, if it doesn't then:
-
-```bash
-$ sudo usermod -G dialout homeassistant
-```
-
### {% linkable_title Device path changes %}
If your device path changes when you restart, see [this guide](http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/) on fixing it.
diff --git a/source/_docs/z-wave/query-stage.markdown b/source/_docs/z-wave/query-stage.markdown
index 7112cd055b..2037963e45 100644
--- a/source/_docs/z-wave/query-stage.markdown
+++ b/source/_docs/z-wave/query-stage.markdown
@@ -9,10 +9,6 @@ sharing: true
footer: true
---
-When the Z-Wave mesh is first started, the controller will go through all the following stages for every device on the mesh. This is a slow process, and to complete requires that the devices be awake. While devices that are mains or USB powered are always awake, battery-powered devices spend most of their time asleep. Because of this, you can expect that after startup your battery powered devices will spend time in `Initializing (CacheLoad)` - how long depends on the device.
-
-Your devices will still function normally while marked as `Initializing`.
-
| Stage | Description |
|------------------------|--------------------------------------------------------------------|
| None | Query process hasn't started for this node |
@@ -21,7 +17,7 @@ Your devices will still function normally while marked as `Initializing`.
| WakeUp | Start wake up process if a sleeping node |
| ManufacturerSpecific1 | Retrieve manufacturer name and product ids if ProtocolInfo lets us |
| NodeInfo | Retrieve info about supported, controlled command classes |
-| NodePlusInfo | Retrieve Z-Wave+ info and update device classes |
+| NodePlusInfo | Retrieve ZWave+ info and update device classes |
| SecurityReport | Retrieve a list of Command Classes that require Security |
| ManufacturerSpecific2 | Retrieve manufacturer name and product ids |
| Versions | Retrieve version information |
diff --git a/source/_docs/z-wave/services.markdown b/source/_docs/z-wave/services.markdown
index b6c420a91b..0a6499d2d4 100644
--- a/source/_docs/z-wave/services.markdown
+++ b/source/_docs/z-wave/services.markdown
@@ -29,7 +29,7 @@ The `zwave` component exposes multiple services to help maintain the network. Al
| remove_failed_node | Remove a failed node from the network. The Node should be on the controller's Failed Node List, otherwise this command will fail. |
| replace_failed_node | Replace a failed device with another. If the node is not in the controller's Failed Node List, or the node responds, this command will fail. |
| reset_node_meters | Reset a node's meter values. Only works if the node supports this. |
-| set_config_parameter | Lets the user set a config parameter to a node. NOTE: Use the parameter option's `label` string as the `value` for list parameters (e.g., `"value": "Off"`). For all other parameters use the relevant integer `value` (e.g., `"value": 1`). |
+| set_config_parameter | Lets the user set a config parameter to a node. NOTE: Use the parameter option's `label` string as the `value` for list parameters (e.g. `"value": "Off"`). For all other parameters use the relevant integer `value` (e.g. `"value": 1`). |
| soft_reset | Tells the controller to do a "soft reset." This is not supposed to lose any data, but different controllers can behave differently to a "soft reset" command. |
| start_network | Starts the Z-Wave network. |
| stop_network | Stops the Z-Wave network. |
diff --git a/source/_faq/ha-vs-hassio.markdown b/source/_faq/ha-vs-hassio.markdown
deleted file mode 100644
index 41e373cfee..0000000000
--- a/source/_faq/ha-vs-hassio.markdown
+++ /dev/null
@@ -1,17 +0,0 @@
----
-layout: page
-title: "Home Assistant vs. Hass.io"
-description: "Home Assistant vs. Hass.io"
-date: 2018-02-12 09:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: Installation
----
-
-Home Assistant is a Python program, in simple words. It can be run various operating system and provide the ability to track, control and automate your devices. When people talking about Home Assistant they usually refer to a standalone [installation method](/docs/installation/).
-
-[Hass.io](/hassio/) is a combination of Home Assistant and tools which allows one to run it easily on a Raspberry Pi and other platforms without setting up an operating system first. Hass.io is an all-in one-solution and has a management user interface that can be used from the Home Assistant frontend. This interface is not present in a standalone setup of Home Assistant.
-
-Be aware that add-ons are only available in Hass.io, due to the way Hass.io is installed.
diff --git a/source/_faq/pip3.markdown b/source/_faq/pip3.markdown
index 9b4fe56e02..cb957a7cf4 100644
--- a/source/_faq/pip3.markdown
+++ b/source/_faq/pip3.markdown
@@ -10,7 +10,7 @@ ha_category: Installation
---
-This utility should have been installed as part of the Python 3 installation. Check if Python 3 is installed by running `python3 --version`. If it is not installed, [download it here](https://www.python.org/getit/).
+This utility should have been installed as part of the Python 3.4 installation. Check if Python 3.4 is installed by running `python3 --version`. If it is not installed, [download it here](https://www.python.org/getit/).
If you are able to successfully run `python3 --version` but not `pip3`, install Home Assistant by running the following command instead:
diff --git a/source/_includes/asides/cloud_navigation.html b/source/_includes/asides/cloud_navigation.html
deleted file mode 100644
index 93a7baf70e..0000000000
--- a/source/_includes/asides/cloud_navigation.html
+++ /dev/null
@@ -1,14 +0,0 @@
-
- About Home Assistant
-
- -
- The Home Assistant Cloud is a cloud-based service provided to supporters of the Home Assistant project.
-
- -
- {% active_link /cloud/ Introduction %}
-
- -
- {% active_link /cloud/ Amazon Alexa %}
-
-
-
diff --git a/source/_includes/asides/developers_navigation.html b/source/_includes/asides/developers_navigation.html
new file mode 100644
index 0000000000..0f42206817
--- /dev/null
+++ b/source/_includes/asides/developers_navigation.html
@@ -0,0 +1,135 @@
+
+ {% include edit_github.html %}
+
+
+
Development Guide
+
+
+
diff --git a/source/_includes/asides/docs_navigation.html b/source/_includes/asides/docs_navigation.html
index b956865e7a..add2fd1bbc 100644
--- a/source/_includes/asides/docs_navigation.html
+++ b/source/_includes/asides/docs_navigation.html
@@ -3,7 +3,7 @@
Topics