diff --git a/source/_components/alarmdecoder.markdown b/source/_components/alarmdecoder.markdown
index aa1109dbdf7..8cfc24d2152 100644
--- a/source/_components/alarmdecoder.markdown
+++ b/source/_components/alarmdecoder.markdown
@@ -20,7 +20,7 @@ Please visit the [AlarmDecoder website](https://www.alarmdecoder.com/) for furth
There is currently support for the following device types within Home Assistant:
- [Binary Sensor](/components/binary_sensor.alarmdecoder/): Reports on zone status
-- [Sensor](/components/sensor.alarmdecoder/): Emulates an keypad display
+- [Sensor](/components/sensor.alarmdecoder/): Emulates a keypad display
- [Alarm Control Panel](/components/alarm_control_panel.alarmdecoder/): Reports on alarm status, and can be used to arm/disarm the system
This is a fully event-based component. Any event sent by the AlarmDecoder device will be immediately reflected within Home Assistant.
diff --git a/source/_components/binary_sensor.arest.markdown b/source/_components/binary_sensor.arest.markdown
index a03c972e7b8..8b359f464aa 100644
--- a/source/_components/binary_sensor.arest.markdown
+++ b/source/_components/binary_sensor.arest.markdown
@@ -14,7 +14,7 @@ ha_release: 0.9
---
-The `arest` binary sensor platform allows you to get all data from your devices (like Arduinos with a ethernet/wifi connection, the ESP8266, and the Raspberry Pi) running the [aREST](http://arest.io/) RESTful framework.
+The `arest` binary sensor platform allows you to get all data from your devices (like Arduinos with an ethernet/wifi connection, the ESP8266, and the Raspberry Pi) running the [aREST](http://arest.io/) RESTful framework.
To use your aREST binary sensor in your installation, add the following to your `configuration.yaml` file:
diff --git a/source/_components/binary_sensor.gc100.markdown b/source/_components/binary_sensor.gc100.markdown
index 3be8c013046..80d828723bd 100644
--- a/source/_components/binary_sensor.gc100.markdown
+++ b/source/_components/binary_sensor.gc100.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: gc100 Binary Sensor
-description: "Instructions on how to set up an gc100 binary sensor within Home Assistant."
+description: "Instructions on how to set up a gc100 binary sensor within Home Assistant."
date: 2017-10-27 17:26
sidebar: true
comments: false
diff --git a/source/_components/binary_sensor.raspihats.markdown b/source/_components/binary_sensor.raspihats.markdown
index 4815aa2de7b..83f355aaf55 100644
--- a/source/_components/binary_sensor.raspihats.markdown
+++ b/source/_components/binary_sensor.raspihats.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Raspihats Binary Sensor"
-description: "Instructions how to integrate Raspihats add-on boards for Raspberry PI into Home Assistant as a binary_sensor."
+description: "Instructions how to integrate Raspihats add-on boards for Raspberry Pi into Home Assistant as a binary_sensor."
date: 2017-05-01 04:09
sidebar: true
comments: false
@@ -87,4 +87,4 @@ It will output a table like this:
70: -- -- -- -- -- -- -- 77
```
-For more details about the `raspihats` add-on boards for Raspberry PI, visit [raspihats.com](http://www.raspihats.com/).
+For more details about the `raspihats` add-on boards for Raspberry Pi, visit [raspihats.com](http://www.raspihats.com/).
diff --git a/source/_components/binary_sensor.rpi_gpio.markdown b/source/_components/binary_sensor.rpi_gpio.markdown
index 99a7eda5eb4..dbae9b1b8d3 100644
--- a/source/_components/binary_sensor.rpi_gpio.markdown
+++ b/source/_components/binary_sensor.rpi_gpio.markdown
@@ -1,7 +1,7 @@
---
layout: page
-title: "Raspberry PI GPIO Binary Sensor"
-description: "Instructions how to integrate the GPIO sensor capability of a Raspberry PI into Home Assistant."
+title: "Raspberry Pi GPIO Binary Sensor"
+description: "Instructions how to integrate the GPIO sensor capability of a Raspberry Pi into Home Assistant."
date: 2015-08-30 19:00
sidebar: true
comments: false
diff --git a/source/_components/camera.generic.markdown b/source/_components/camera.generic.markdown
index c6f41ac3376..3f99910e1c4 100644
--- a/source/_components/camera.generic.markdown
+++ b/source/_components/camera.generic.markdown
@@ -60,7 +60,7 @@ camera:
### {% linkable_title Local image with Hass.io %}
-You can show an static image with this platform. Just place the image here: `/config/www/your_image.png`
+You can show a static image with this platform. Just place the image here: `/config/www/your_image.png`
```yaml
camera:
diff --git a/source/_components/climate.mqtt.markdown b/source/_components/climate.mqtt.markdown
index 85675df1f62..504610dea47 100644
--- a/source/_components/climate.mqtt.markdown
+++ b/source/_components/climate.mqtt.markdown
@@ -201,7 +201,7 @@ climate:
```
{% endraw %}
-This will parse the incoming `"auto"` as JSON, resulting in `auto`. Obvisouly, in this case you could also just set `value_template: {% raw %}"{{ value_json }}"{% endraw %}`.
+This will parse the incoming `"auto"` as JSON, resulting in `auto`. Obviously, in this case you could also just set `value_template: {% raw %}"{{ value_json }}"{% endraw %}`.
### {% linkable_title Example %}
diff --git a/source/_components/climate.oem.markdown b/source/_components/climate.oem.markdown
index c123b0e0f7b..be9b8cda217 100644
--- a/source/_components/climate.oem.markdown
+++ b/source/_components/climate.oem.markdown
@@ -15,7 +15,7 @@ ha_iot_class: "Local Polling"
This platform supports the ESP82666 based "WiFi MQTT Relay / Thermostat" sold by [OpenEnergyMonitor](https://shop.openenergymonitor.com/wifi-mqtt-relay-thermostat/). The underlying [library](http://oemthermostat.readthedocs.io/) only supports this single relay variant of the [original device](https://harizanov.com/2014/12/wifi-iot-3-channel-relay-board-with-mqtt-and-http-api-using-esp8266/).
-This platform controls the setpoint of the thermostat in it's "manual" mode, therefore there is a configuration option the away setpoint.
+This platform controls the setpoint of the thermostat in its "manual" mode, therefore there is a configuration option the away setpoint.
To set it up, add the following information to your `configuration.yaml` file:
diff --git a/source/_components/cover.mqtt.markdown b/source/_components/cover.mqtt.markdown
index 94cc013f787..f06204cfaa4 100755
--- a/source/_components/cover.mqtt.markdown
+++ b/source/_components/cover.mqtt.markdown
@@ -134,7 +134,7 @@ tilt_max:
type: integer
default: 100
tilt_closed_value:
- description: The value that will be sent on an `close_cover_tilt` command.
+ description: The value that will be sent on a `close_cover_tilt` command.
required: false
type: integer
default: 0
diff --git a/source/_components/cover.rflink.markdown b/source/_components/cover.rflink.markdown
index 5bbe5e2f6ed..1bd3a1a50c7 100644
--- a/source/_components/cover.rflink.markdown
+++ b/source/_components/cover.rflink.markdown
@@ -85,7 +85,7 @@ Device configuration variables:
- **name** (*Optional*): Name for the device, defaults to Rflink ID.
- **aliases** (*Optional*): Alternative Rflink ID's this device is known by.
-- **fire_event** (*Optional*): Fire an `button_pressed` event if this device is turned on or off (default: False).
+- **fire_event** (*Optional*): Fire a `button_pressed` event if this device is turned on or off (default: False).
- **signal_repetitions** (*Optional*): Repeat every Rflink command this number of times (default: 1).
- **fire_event_** (*Optional*): Set default `fire_event` for RFLink switch devices (see below).
- **signal_repetitions** (*Optional*): Set default `signal_repetitions` for RFLink switch devices (see below).
diff --git a/source/_components/device_tracker.icloud.markdown b/source/_components/device_tracker.icloud.markdown
index e98b8271577..74f22f02f6b 100644
--- a/source/_components/device_tracker.icloud.markdown
+++ b/source/_components/device_tracker.icloud.markdown
@@ -50,5 +50,5 @@ To disable the drainage of the battery, a dynamic interval is being used for eac
4 services are available for this component:
- **icloud_update**: This service can be used to ask for an update of a certain iDevice. The `account_name` and `device_name` are optional.
- **icloud_lost_iphone**: This service will play the Lost iPhone sound on a certain iDevice. The `account_name` and `device_name` are optional.
-- **icloud_set_interval**: This service will change the dynamic interval of an iDevice. The `account_name` and `device_name` are optional. If `interval` is used in the service_data, the iDevice will be updated with that new interval. That interval will be fixed until the iDevice changes zone or if this service is called again. If `interval` isn't used in the service_data, the interval for that iDevice will revert back to it's default dynamic interval based on it's current zone, it's distance towards home and it's battery level.
+- **icloud_set_interval**: This service will change the dynamic interval of an iDevice. The `account_name` and `device_name` are optional. If `interval` is used in the service_data, the iDevice will be updated with that new interval. That interval will be fixed until the iDevice changes zone or if this service is called again. If `interval` isn't used in the service_data, the interval for that iDevice will revert back to its default dynamic interval based on its current zone, its distance towards home and its battery level.
- **icloud_reset_account**: This service can be used to reset an iCloud account. This is helpful when not all devices are being found by the component or if you have added a new iDevice to your account. The `account_name` is optional.
diff --git a/source/_components/device_tracker.owntracks.markdown b/source/_components/device_tracker.owntracks.markdown
index 0bd137c0ab7..631d8dc669d 100644
--- a/source/_components/device_tracker.owntracks.markdown
+++ b/source/_components/device_tracker.owntracks.markdown
@@ -96,7 +96,7 @@ iBeacons don't need to be stationary. You could put one on your key ring, or in
When your phone sees a mobile iBeacon that it knows about, it will tell HA the location of that iBeacon. If your phone moves while you are connected to the iBeacon, HA will update the location of the iBeacon. But when your phone loses the connection, HA will stop updating the iBeacon location.
-To use mobile iBeacons with HA, you just set up a region that doesn't match your Zone names. If HA sees an entry event for a iBeacon region that doesn't match a Zone name (say `keys`) - it will start tracking it, calling the device `device_tracker.beacon_keys`).
+To use mobile iBeacons with HA, you just set up a region that doesn't match your Zone names. If HA sees an entry event for an iBeacon region that doesn't match a Zone name (say `keys`) - it will start tracking it, calling the device `device_tracker.beacon_keys`).
This allows you to write zone automations for devices that can't track themselves (for example *alert me if I leave the house and my keys are still at home*). Another example would be *open the gates if my car arrives home*.
diff --git a/source/_components/device_tracker.tado.markdown b/source/_components/device_tracker.tado.markdown
index 446c79131d6..bc1d91b37bc 100644
--- a/source/_components/device_tracker.tado.markdown
+++ b/source/_components/device_tracker.tado.markdown
@@ -12,7 +12,7 @@ ha_category: Presence Detection
ha_release: 0.37
---
-The `tado` device tracker is using the [Tado Smart Thermostat](https://www.tado.com/) and it's support for person presence detection based on smartphone location by geofencing.
+The `tado` device tracker is using the [Tado Smart Thermostat](https://www.tado.com/) and its support for person presence detection based on smartphone location by geofencing.
This tracker uses the Tado API to determine if a mobile device is at home. It tracks all devices in your home that Tado knows about.
diff --git a/source/_components/envisalink.markdown b/source/_components/envisalink.markdown
index 02d0746982c..57deb9f53fb 100644
--- a/source/_components/envisalink.markdown
+++ b/source/_components/envisalink.markdown
@@ -13,7 +13,7 @@ ha_release: 0.23
ha_iot_class: "Local Push"
---
-The `envisalink` component will allow Home Assistant users who own either a DSC or Honeywell alarm panel to leverage their alarm system and it's sensors to provide Home Assistant with rich information about their homes. Connectivity between Home Assistant and the alarm panel is accomplished through a device produced by Eyez On, known as the Envisalink. The Envisalink evl3 and evl4 boards provide a TCP/IP interface to the alarm panel, where it emulates an alarm keypad. This board also exposes a raw TCP/IP based API, upon which this component is built. Currently, the Envisalink version 4 is the latest model. This component supports both the evl3 and the evl4.
+The `envisalink` component will allow Home Assistant users who own either a DSC or Honeywell alarm panel to leverage their alarm system and its sensors to provide Home Assistant with rich information about their homes. Connectivity between Home Assistant and the alarm panel is accomplished through a device produced by Eyez On, known as the Envisalink. The Envisalink evl3 and evl4 boards provide a TCP/IP interface to the alarm panel, where it emulates an alarm keypad. This board also exposes a raw TCP/IP based API, upon which this component is built. Currently, the Envisalink version 4 is the latest model. This component supports both the evl3 and the evl4.
Please visit the [eyezon website](http://www.eyezon.com/) for further information about the evl3 and evl4 boards.
diff --git a/source/_components/hue.markdown b/source/_components/hue.markdown
index 46d8f2cc9f3..40623c9a95a 100644
--- a/source/_components/hue.markdown
+++ b/source/_components/hue.markdown
@@ -103,7 +103,7 @@ More information can be found on the [Philips Hue API documentation](https://www
### {% linkable_title Using Hue Scenes in Home Assistant %}
-The Hue platform has it's own concept of scenes for setting the colors of a group of lights at once. Hue Scenes are very cheap, get created by all kinds of apps (as it is the only way to have 2 or more lights change at the same time), and are rarely deleted. A typical Hue hub might have hundreds of scenes stored in them, many that you've never used, almost all very poorly named.
+The Hue platform has its own concept of scenes for setting the colors of a group of lights at once. Hue Scenes are very cheap, get created by all kinds of apps (as it is the only way to have 2 or more lights change at the same time), and are rarely deleted. A typical Hue hub might have hundreds of scenes stored in them, many that you've never used, almost all very poorly named.
To avoid user interface overload we don't expose scenes directly. Instead there is a hue.hue_activate_scene service which can be used by `automation` or `script` components.
This will have all the bulbs transitioned at once, instead of one at a time using standard scenes in Home Assistant.
diff --git a/source/_components/image_processing.microsoft_face_detect.markdown b/source/_components/image_processing.microsoft_face_detect.markdown
index c15e5baab07..39aecb15340 100644
--- a/source/_components/image_processing.microsoft_face_detect.markdown
+++ b/source/_components/image_processing.microsoft_face_detect.markdown
@@ -13,7 +13,7 @@ featured: false
ha_release: 0.38
---
-The `microsoft_face_detect` image processing platform allows you to use the [Microsoft Face Identify](https://www.microsoft.com/cognitive-services/en-us/) API through Home Assistant. This platform enables you do detect face on camera and fire a event with attributes.
+The `microsoft_face_detect` image processing platform allows you to use the [Microsoft Face Identify](https://www.microsoft.com/cognitive-services/en-us/) API through Home Assistant. This platform enables you do detect face on camera and fire an event with attributes.
Please refer to the [component](/components/microsoft_face/) configuration on how to setup the API key.
diff --git a/source/_components/image_processing.microsoft_face_identify.markdown b/source/_components/image_processing.microsoft_face_identify.markdown
index e600ae36a61..76fb2ad1be0 100644
--- a/source/_components/image_processing.microsoft_face_identify.markdown
+++ b/source/_components/image_processing.microsoft_face_identify.markdown
@@ -13,7 +13,7 @@ featured: false
ha_release: 0.37
---
-The `microsoft_face_identify` image processing platform lets you use [Microsoft Face identify](https://www.microsoft.com/cognitive-services/en-us/) API through Home Assistant. This platform allow you do identify persons on camera and fire a event with identify persons.
+The `microsoft_face_identify` image processing platform lets you use [Microsoft Face identify](https://www.microsoft.com/cognitive-services/en-us/) API through Home Assistant. This platform allow you do identify persons on camera and fire an event with attributes.
Please refer to the [component](/components/microsoft_face/) configuration on how to setup the API key.
diff --git a/source/_components/light.ihc.markdown b/source/_components/light.ihc.markdown
index a289ea942f3..741d2168cd9 100644
--- a/source/_components/light.ihc.markdown
+++ b/source/_components/light.ihc.markdown
@@ -61,5 +61,5 @@ lights:
{% endconfiguration %}
In the example above 12345 is ihc resource id and "tablelight" is the name.
-The IHC resource id can be a light level for dimmers or an boolean output of a relay.
+The IHC resource id can be a light level for dimmers or a boolean output of a relay.
For more information about IHC resource ids see [Manual Setup](/components/ihc/#manual-setup)
diff --git a/source/_components/light.rflink.markdown b/source/_components/light.rflink.markdown
index 0bd73b588ef..ebba128f88a 100644
--- a/source/_components/light.rflink.markdown
+++ b/source/_components/light.rflink.markdown
@@ -50,7 +50,7 @@ Device configuration variables:
- **name** (*Optional*): Name for the device, defaults to Rflink ID.
- **type** (*Optional*): Override automatically detected type of the light device, can be: switchable, dimmable, hybrid or toggle. See 'Light Types' below. (default: Switchable)
- **aliases** (*Optional*): Alternative Rflink ID's this device is known by.
-- **fire_event** (*Optional*): Fire an `button_pressed` event if this device is turned on or off (default: False).
+- **fire_event** (*Optional*): Fire a `button_pressed` event if this device is turned on or off (default: False).
- **signal_repetitions** (*Optional*): Repeat every Rflink command this number of times (default: 1).
- **fire_event_** (*Optional*): Set default `fire_event` for RFLink switch devices (see below).
- **signal_repetitions** (*Optional*): Set default `signal_repetitions` for RFLink switch devices (see below).
@@ -86,7 +86,7 @@ Any on/off command from any alias ID updates the current state of the light. How
Light devices can come in different forms. Some only switch on and off, other support dimming. Dimmable devices might not always respond nicely to repeated `on` command as they turn into a pulsating state until `on` is pressed again (for example KlikAanKlikUit). The RFLink component support three types of lights to make things work in every situation:
-- *Hybrid*: This type sends a `dim` followed by an a `on` command; and `off` commands. This will make dimmable devices turn on at the requested dim level and on/off devices on. One caveat is this type is not compatible with signal repetition as multiple `on` signals will cause dimmers to go into disco mode.
+- *Hybrid*: This type sends a `dim` followed by an an `on` command; and `off` commands. This will make dimmable devices turn on at the requested dim level and on/off devices on. One caveat is this type is not compatible with signal repetition as multiple `on` signals will cause dimmers to go into disco mode.
- *Switchable*: Device type that sends only `on` and `off` commands. It work for both on/off and dimmable type switches. However dimmables might have issues with signal repetition (see above).
- *Dimmable*: Sends only `dim` and `off` commands. This does not work on on/off type devices as they don't understand the `dim` command. For dimmers this does not cause issues with signal repetitions.
- *Toggle*: Device type that sends only `on` commands to turn on or off the device. Some switches like for example Livolo light switches use the same 'on' command to switch on and switch off the lights. If the light is on and 'on' gets sent, the light will turn off and if the light is off and 'on' gets sent, the light will turn on. If the device has an unknown state, it will assume it is off by default.
diff --git a/source/_components/logbook.markdown b/source/_components/logbook.markdown
index 74e493fc9bf..adabef99d19 100644
--- a/source/_components/logbook.markdown
+++ b/source/_components/logbook.markdown
@@ -73,7 +73,7 @@ logbook:
### {% linkable_title Exclude Events %}
-Entities customized as hidden are excluded from the logbook by default, but sometimes you want to show the entity in the UI and not in the logbook. For instance you use the `sensor.date`to show the current date in the UI, but you do not want an logbook entry for that sensor every day.
+Entities customized as hidden are excluded from the logbook by default, but sometimes you want to show the entity in the UI and not in the logbook. For instance you use the `sensor.date`to show the current date in the UI, but you do not want a logbook entry for that sensor every day.
To exclude these entities just add them to the `exclude` > `entities` list in the configuration of the logbook.
To exclude all events from a whole domain add it to the `exclude` > `domain` list. For instance you use the `sun` domain only to trigger automations on the `azimuth attribute, then you possible are not interested in the logbook entries for sun rise and sun set.
diff --git a/source/_components/mailbox.markdown b/source/_components/mailbox.markdown
index 88ff203523f..28f4d77f436 100644
--- a/source/_components/mailbox.markdown
+++ b/source/_components/mailbox.markdown
@@ -10,7 +10,7 @@ ha_version: 0.51
footer: true
---
-Mailboxes provide an list of messages with short information about each. Mailbox messages appear on a separate panel in the frontend.
+Mailboxes provide a list of messages with short information about each. Mailbox messages appear on a separate panel in the frontend.
Home Assistant currently supports only the [Asterisk Voicemail](/component/mailbox.asterisk_mbox) mailbox.
diff --git a/source/_components/media_player.cast.markdown b/source/_components/media_player.cast.markdown
index 63271c16760..c97f391dab8 100644
--- a/source/_components/media_player.cast.markdown
+++ b/source/_components/media_player.cast.markdown
@@ -15,7 +15,7 @@ ha_iot_class: "Local Polling"
---
-Google Cast devices like Android TVs and Chromecasts will be automatically discovered if you enable [the discovery component]({{site_root}}/components/discovery/). There is a issue where Chromecasts can only be discovered if your device is connected to the same subnet as your Chromecast.
+Google Cast devices like Android TVs and Chromecasts will be automatically discovered if you enable [the discovery component]({{site_root}}/components/discovery/). There is an issue where Chromecasts can only be discovered if your device is connected to the same subnet as your Chromecast.
The Chromecast platform can also be forced to load by adding the following lines to your `configuration.yaml`:
diff --git a/source/_components/media_player.gstreamer.markdown b/source/_components/media_player.gstreamer.markdown
index c77e8c40496..288ef12120c 100644
--- a/source/_components/media_player.gstreamer.markdown
+++ b/source/_components/media_player.gstreamer.markdown
@@ -58,7 +58,7 @@ If you're running Home Assistant in a virtual environment, you'll need to symlin
ln -s /path/to/your/installation/of/gi /path/to/your/venv/lib/python3.4/site-packages
```
-On a Raspberry PI, you may need to add the Home Assistant user to the `audio` group:
+On a Raspberry Pi, you may need to add the Home Assistant user to the `audio` group:
```bash
sudo usermod -a -G audio
Use of the Yahoo Weather API should not exceed reasonable request volume. Access is limited to 2000 signed calls per day.
diff --git a/source/_components/switch.gc100.markdown b/source/_components/switch.gc100.markdown
index 9fcf7217b66..59649d72d15 100644
--- a/source/_components/switch.gc100.markdown
+++ b/source/_components/switch.gc100.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: gc100 Switch
-description: "Instructions on how to set up an gc100 switch within Home Assistant."
+description: "Instructions on how to set up a gc100 switch within Home Assistant."
date: 2017-10-27 17:26
sidebar: true
comments: false
diff --git a/source/_components/switch.raspihats.markdown b/source/_components/switch.raspihats.markdown
index b2fa067e130..23f7afb96f6 100644
--- a/source/_components/switch.raspihats.markdown
+++ b/source/_components/switch.raspihats.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Raspihats Switch"
-description: "Instructions 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
@@ -89,4 +89,4 @@ It will output a table like this:
70: -- -- -- -- -- -- -- 77
```
-For more details about the Raspihats add-on boards for Raspberry PI, visit [raspihats.com](http://www.raspihats.com/).
+For more details about the Raspihats add-on boards for Raspberry Pi, visit [raspihats.com](http://www.raspihats.com/).
diff --git a/source/_components/switch.rflink.markdown b/source/_components/switch.rflink.markdown
index fc7ab2b7a9f..08b5e614585 100644
--- a/source/_components/switch.rflink.markdown
+++ b/source/_components/switch.rflink.markdown
@@ -50,7 +50,7 @@ Device configuration variables:
- **name** (*Optional*): Name for the device, defaults to RFLink ID.
- **aliases** (*Optional*): Alternative RFLink ID's this device is known by.
-- **fire_event** (*Optional*): Fire an `button_pressed` event if this device is turned on or off (default: False).
+- **fire_event** (*Optional*): Fire a `button_pressed` event if this device is turned on or off (default: False).
- **signal_repetitions** (*Optional*): Repeat every RFLink command this number of times (default: 1)
- **group** (*Optional*): Allow switch to respond to group commands (ALLON/ALLOFF). (default: yes)
- **group_aliases** (*Optional*): `aliases` which only respond to group commands.
diff --git a/source/_components/switch.rpi_gpio.markdown b/source/_components/switch.rpi_gpio.markdown
index 2e1d74786d1..192bb82544e 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 how to integrate the GPIO of a Raspberry PI into Home Assistant as a switch."
+title: "Raspberry Pi GPIO 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
diff --git a/source/_components/updater.markdown b/source/_components/updater.markdown
index 4a5b9777b35..b87d554bb91 100644
--- a/source/_components/updater.markdown
+++ b/source/_components/updater.markdown
@@ -11,7 +11,7 @@ logo: home-assistant.png
ha_category: Other
---
-The `updater` component will check daily for new releases. It will show a badge in the frontend if a new version is found. As [Hass.io](/hassio/) has it's own schedule for release it doesn't make sense to use this component on Hass.io.
+The `updater` component will check daily for new releases. It will show a badge in the frontend if a new version is found. As [Hass.io](/hassio/) has its own schedule for release it doesn't make sense to use this component on Hass.io.
The updater component will also collect basic information about the running Home Assistant instance and its environment. The information includes the current Home Assistant version, the time zone, Python version and operating system information. No identifiable information (i.e., IP address, GPS coordinates, etc.) will ever be collected. If you are concerned about your privacy, you are welcome to scrutinize the Python [source code](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/updater.py#L91). For further information about the Updater's data, please check the [detailed overview](/docs/backend/updater/).
diff --git a/source/_components/waterfurnace.markdown b/source/_components/waterfurnace.markdown
index b747ff597a2..9bf884e0c29 100644
--- a/source/_components/waterfurnace.markdown
+++ b/source/_components/waterfurnace.markdown
@@ -64,5 +64,5 @@ 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 it's performance, but a full climate
+from the system to understand its performance, but a full climate
interface won't be implemented.
diff --git a/source/_cookbook/automation_using_timeinterval_inputboolean.markdown b/source/_cookbook/automation_using_timeinterval_inputboolean.markdown
index 499bc7aa5bb..d5edc5e9613 100644
--- a/source/_cookbook/automation_using_timeinterval_inputboolean.markdown
+++ b/source/_cookbook/automation_using_timeinterval_inputboolean.markdown
@@ -10,7 +10,7 @@ footer: true
ha_category: Automation Examples
---
-#### {% linkable_title Change Hue light on interval to random color based on state of a input boolean %}
+#### {% linkable_title Change Hue light on interval to random color based on state of an input boolean %}
_Note, Philips Hue is currently the only light platform that support the random effect._
diff --git a/source/_cookbook/track_battery_level.markdown b/source/_cookbook/track_battery_level.markdown
index 9de6b14cfb0..b623f46b04e 100644
--- a/source/_cookbook/track_battery_level.markdown
+++ b/source/_cookbook/track_battery_level.markdown
@@ -43,7 +43,7 @@ sensor:
```
{% endraw %}
-The `else` part is used to have the sensor keep it's 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.
+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 %}
diff --git a/source/_docs/asterisk_mbox.markdown b/source/_docs/asterisk_mbox.markdown
index 65c570aab89..fae79de9276 100644
--- a/source/_docs/asterisk_mbox.markdown
+++ b/source/_docs/asterisk_mbox.markdown
@@ -44,7 +44,7 @@ Before beginning make sure that you have the following:
3. Create a configuration file for the server
- As the `asterisk` user create a `asterisk_mbox.ini` file (You can place this in any directory you choose, but the rommended location is `/etc/asterisk/asterisk_mbox.ini`)
+ As the `asterisk` user create an `asterisk_mbox.ini` file (You can place this in any directory you choose, but the rommended location is `/etc/asterisk/asterisk_mbox.ini`)
```ini
[default]
diff --git a/source/_docs/configuration/state_object.markdown b/source/_docs/configuration/state_object.markdown
index 72e62321477..c9ee1f94036 100644
--- a/source/_docs/configuration/state_object.markdown
+++ b/source/_docs/configuration/state_object.markdown
@@ -27,7 +27,7 @@ Field | Description
`state.last_changed` | Time the state changed. This is not updated when there are only updated attributes. Example: `2017-10-28 08:13:36.715874+00:00`.
`state.attributes` | A dictionary with extra attributes related to the current state.
-The attributes of an entity are optional. There are a few attributes that are used by Home Assistant for representing the entity in a specific way. Each component will also have it's own attributes to represent extra state data about the entity. For example, the light component has attributes for the current brightness and color of the light. When an attribute is not available, Home Assistant will not write it to the state.
+The attributes of an entity are optional. There are a few attributes that are used by Home Assistant for representing the entity in a specific way. Each component will also have its own attributes to represent extra state data about the entity. For example, the light component has attributes for the current brightness and color of the light. When an attribute is not available, Home Assistant will not write it to the state.
When using templates, attributes will be available by their name. For example `state.attributes.assumed_state`.
diff --git a/source/_docs/ecosystem/appdaemon/api.markdown b/source/_docs/ecosystem/appdaemon/api.markdown
index 384dab6d3a9..48c8d994ba3 100755
--- a/source/_docs/ecosystem/appdaemon/api.markdown
+++ b/source/_docs/ecosystem/appdaemon/api.markdown
@@ -22,13 +22,13 @@ import homeassistant.appapi as appapi
class MotionLights(appapi.AppDaemon):
```
-When configured as an app in the config file (more on that later) the lifecycle of the App begins. It will be instantiated as an object by AppDaemon, and immediately, it will have a call made to it's `initialize()` function - this function must appear as part of every app:
+When configured as an app in the config file (more on that later) the lifecycle of the App begins. It will be instantiated as an object by AppDaemon, and immediately, it will have a call made to its `initialize()` function - this function must appear as part of every app:
```python
def initialize(self):
```
-The initialize function allows the app to register any callbacks it might need for responding to state changes, and also any setup activities. When the `initialize()` function returns, the App will be dormant until any of it's callbacks are activated.
+The initialize function allows the app to register any callbacks it might need for responding to state changes, and also any setup activities. When the `initialize()` function returns, the App will be dormant until any of its callbacks are activated.
There are several circumstances under which `initialize()` might be called:
@@ -93,7 +93,7 @@ class = NewApp
When AppDaemon sees the following configuration it will expect to find a class called `NewApp` defined in a module called `new.py` in the apps subdirectory. Apps can be placed at the root of the Apps directory or within a subdirectory, an arbitrary depth down - wherever the App is, as long as it is in some subdirectory of the Apps dir, or in the Apps dir itself, AppDaemon will find it. There is no need to include information about the path, just the name of the file itself (without the `.py`) is sufficient. If names in the subdirectories overlap, AppDir will pick one of them but the exact choice it will make is undefined.
-When starting the system for the first time or when reloading an App or Module, the system will log the fact in it's main log. It is often the case that there is a problem with the class, maybe a syntax error or some other problem. If that is the case, details will be output to the error log allowing the user to remedy the problem and reload.
+When starting the system for the first time or when reloading an App or Module, the system will log the fact in its main log. It is often the case that there is a problem with the class, maybe a syntax error or some other problem. If that is the case, details will be output to the error log allowing the user to remedy the problem and reload.
## {% linkable_title Steps to writing an App %}
@@ -154,7 +154,7 @@ Callback constraints are a feature of AppDaemon that removes the need for repeti
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.
-For example, the presence callback constraint can be added to an App by adding a parameter to it's configuration like this:
+For example, the presence callback constraint can be added to an App by adding a parameter to its configuration like this:
```ini
[some_app]
@@ -565,7 +565,7 @@ self.cancel_listen_state(self.office_light_handle)
### {% linkable_title info_listen_state() %}
-Get information on state a callback from it's handle.
+Get information on state a callback from its handle.
#### {% linkable_title Synopsis %}
@@ -909,7 +909,7 @@ self.cancel_timer(handle)
### {% linkable_title info_timer() %}
-Get information on a scheduler event from it's handle.
+Get information on a scheduler event from its handle.
#### {% linkable_title Synopsis %}
@@ -944,7 +944,7 @@ All of the scheduler calls above support 2 additional optional arguments, `rando
- `random_start` - start of range of the random time
- `random_end` - end of range of the random time
-`random_start` must always be numerically lower than `random_end`, they can be negative to denote a random offset before and event, or positive to denote a random offset after an event. The event would be a an absolute or relative time or sunrise/sunset depending on which scheduler call you use and these values affect the base time by the spcified amount. If not specified, they will default to `0`.
+`random_start` must always be numerically lower than `random_end`, they can be negative to denote a random offset before and event, or positive to denote a random offset after an event. The event would be an absolute or relative time or sunrise/sunset depending on which scheduler call you use and these values affect the base time by the spcified amount. If not specified, they will default to `0`.
For example:
@@ -1463,7 +1463,7 @@ self.cancel_listen_event(handle)
### {% linkable_title info_listen_event() %}
-Get information on an event callback from it's handle.
+Get information on an event callback from its handle.
#### {% linkable_title Synopsis %}
@@ -1552,7 +1552,7 @@ The custom event `MODE_CHANGE` would be subscribed to with:
self.listen_event(self.mode_event, "MODE_CHANGE")
```
-Home Assistant can send these events in a variety of other places - within automations, and also directly from Alexa intents. Home Assistant can also listen for custom events with it's automation component. This can be used to signal from AppDaemon code back to Home Assistant. Here is a sample automation:
+Home Assistant can send these events in a variety of other places - within automations, and also directly from Alexa intents. Home Assistant can also listen for custom events with its automation component. This can be used to signal from AppDaemon code back to Home Assistant. Here is a sample automation:
```yaml
automation:
@@ -2058,7 +2058,7 @@ OK, time travel sadly isn't really possible but it can be very useful when testi
### {% linkable_title Choosing a Start Time %}
-Internally, AppDaemon keeps track of it's own time relative to when it was started. This make is possible to start AppDaemon with a different start time and date to the current time. For instance to test that sunset App, start AppDaemon at a time just before sunset and see if it works as expected. To do this, simply use the "-s" argument on AppDaemon's command line. e,g,:
+Internally, AppDaemon keeps track of its own time relative to when it was started. This make is possible to start AppDaemon with a different start time and date to the current time. For instance to test that sunset App, start AppDaemon at a time just before sunset and see if it works as expected. To do this, simply use the "-s" argument on AppDaemon's command line. e,g,:
```bash
$ appdaemon -s "2016-06-06 19:16:00"
diff --git a/source/_docs/ecosystem/appdaemon/reboot.markdown b/source/_docs/ecosystem/appdaemon/reboot.markdown
index 1ccdd8773a9..2eba9f75a6c 100644
--- a/source/_docs/ecosystem/appdaemon/reboot.markdown
+++ b/source/_docs/ecosystem/appdaemon/reboot.markdown
@@ -10,4 +10,4 @@ footer: true
redirect_from: /ecosystem/appdaemon/reboot/
---
-To run `AppDaemon` at reboot, I have provided a sample init script in the `./scripts` directory. These have been tested on a Raspberry PI - your mileage may vary on other systems. There is also a sample Systemd script.
+To run `AppDaemon` at reboot, I have provided a sample init script in the `./scripts` directory. These have been tested on a Raspberry Pi - your mileage may vary on other systems. There is also a sample Systemd script.
diff --git a/source/_docs/ecosystem/appdaemon/tutorial.markdown b/source/_docs/ecosystem/appdaemon/tutorial.markdown
index 6eee88e98b0..6a9998bced3 100755
--- a/source/_docs/ecosystem/appdaemon/tutorial.markdown
+++ b/source/_docs/ecosystem/appdaemon/tutorial.markdown
@@ -23,14 +23,14 @@ So given the importance of Automation, what should Automation allow us to do? I
- Is it open and expandable?
- Does it run locally without any reliance on the cloud?
-In my opinion, Home Assistant accomplishes the majority of these very well with a combination of Automations, Scripts and Templates, and it's Restful API.
+In my opinion, Home Assistant accomplishes the majority of these very well with a combination of Automations, Scripts and Templates, and its Restful API.
So why `AppDaemon`? AppDaemon is not meant to replace Home Assistant Automations and Scripts, rather complement them. For a lot of things, automations work well and can be very succinct. However, there is a class of more complex automations for which they become harder to use, and appdeamon then comes into its own. It brings quite a few things to the table:
- 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
-- Dynamic - AppDaemon has been designed from the start to enable the user to make changes without requiring a restart of Home Assistant, thanks to it's 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.
+- 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
- All the power of Python - use any of Python's libraries, create your own modules, share variables, refactor and re-use code, create a single app to do everything, or multiple apps for individual tasks - nothing is off limits!
diff --git a/source/_docs/ecosystem/backup/backup_usb.markdown b/source/_docs/ecosystem/backup/backup_usb.markdown
index 279c76c3bda..6bd62768830 100644
--- a/source/_docs/ecosystem/backup/backup_usb.markdown
+++ b/source/_docs/ecosystem/backup/backup_usb.markdown
@@ -103,7 +103,7 @@ Change below path to where you placed the `usb_backup.sh` and run the following
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.
-If your drive is on `/dev/sda1`, you could add a entry to your `/etc/fstab` like so:
+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
diff --git a/source/_docs/ecosystem/certificates/lets_encrypt.markdown b/source/_docs/ecosystem/certificates/lets_encrypt.markdown
index b2ca1f4bea6..ee9cb80892f 100644
--- a/source/_docs/ecosystem/certificates/lets_encrypt.markdown
+++ b/source/_docs/ecosystem/certificates/lets_encrypt.markdown
@@ -241,7 +241,7 @@ In cases where your ISP blocks port 80 you will need to change the port forward
Now SSH in to the device your Home Assistant is running on.
-If you're running the 'standard' setup on a Raspberry Pi the chances are you just logged in as the 'pi' user. If not, you may have logged in as the Home Assistant user. There are commands below that require the Home Assistant user to be on the `sudoers` list. If you are not using the 'standard' pi setup it is presumed you will know how to get your Home Assistant user on the `sudoers` list before continuing. If you are running the 'standard' pi setup, from your 'pi' user issue the following command (where `hass` is the Home Assistant user):
+If you're running the 'standard' setup on a Raspberry Pi the chances are you just logged in as the 'pi' user. If not, you may have logged in as the Home Assistant user. There are commands below that require the Home Assistant user to be on the `sudoers` list. If you are not using the 'standard' Pi setup it is presumed you will know how to get your Home Assistant user on the `sudoers` list before continuing. If you are running the 'standard' Pi setup, from your 'pi' user issue the following command (where `hass` is the Home Assistant user):
```
$ sudo adduser hass sudo
diff --git a/source/_docs/ecosystem/hass-configurator.markdown b/source/_docs/ecosystem/hass-configurator.markdown
index d88d4a2d7fe..c9fac261ec8 100644
--- a/source/_docs/ecosystem/hass-configurator.markdown
+++ b/source/_docs/ecosystem/hass-configurator.markdown
@@ -109,7 +109,7 @@ Since the configurator script on its own is no service, you will have to take so
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-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.
+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.
diff --git a/source/_docs/installation/hassbian/integrations.markdown b/source/_docs/installation/hassbian/integrations.markdown
index e48f9e35367..5658ce712eb 100644
--- a/source/_docs/installation/hassbian/integrations.markdown
+++ b/source/_docs/installation/hassbian/integrations.markdown
@@ -28,8 +28,8 @@ Just follow the component pages for each on how to add them to your Home Assista
- [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 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/scripts.markdown b/source/_docs/scripts.markdown
index c0c23fe63ca..f630d283d4d 100644
--- a/source/_docs/scripts.markdown
+++ b/source/_docs/scripts.markdown
@@ -155,7 +155,7 @@ The following automation shows how to raise a custom event called `event_light_t
```
{% endraw %}
-The following automation shows how to capture the custom event `event_light_turned_on`, and retrieve corresponsing `entity_id` that was passed as the event data.
+The following automation shows how to capture the custom event `event_light_turned_on`, and retrieve corresponding `entity_id` that was passed as the event data.
{% raw %}
```yaml
diff --git a/source/_docs/z-wave/control-panel.markdown b/source/_docs/z-wave/control-panel.markdown
index f204afed4f6..06c9bd741b4 100644
--- a/source/_docs/z-wave/control-panel.markdown
+++ b/source/_docs/z-wave/control-panel.markdown
@@ -52,7 +52,7 @@ Battery powered devices need to be awake before you can use the Z-Wave control p
This is a dropdown where you can select all the entities of this node. Once selected you can then use:
* **Refresh Entity** to refresh just that entity's values
-* **Entity Attributes** to display the attributes of that entity (eg it's friendly name, the ID of the node, etc)
+* **Entity Attributes** to display the attributes of that entity (eg its friendly name, the ID of the node, etc)
Here you can mark a device as requiring polling so the controller is aware of changes because the device doesn't send updates itself. Do see the information on [polling here](/docs/z-wave/devices/#polling), since excessive polling can break your Z-Wave network.
diff --git a/source/_docs/z-wave/entities.markdown b/source/_docs/z-wave/entities.markdown
index b5a597b4ebf..d3c856d8352 100644
--- a/source/_docs/z-wave/entities.markdown
+++ b/source/_docs/z-wave/entities.markdown
@@ -147,7 +147,7 @@ binary_sensor:
- **254**: Deep sleep
- **255**: Case open
-If your device has an `burglar` entity, but not a `binary_sensor` equivalent, you can use a [template binary sensor](/components/binary_sensor.template/) to create one:
+If your device has a `burglar` entity, but not a `binary_sensor` equivalent, you can use a [template binary sensor](/components/binary_sensor.template/) to create one:
```
binary_sensor:
diff --git a/source/_docs/z-wave/services.markdown b/source/_docs/z-wave/services.markdown
index 61c2ff7a860..0a6499d2d4e 100644
--- a/source/_docs/z-wave/services.markdown
+++ b/source/_docs/z-wave/services.markdown
@@ -15,7 +15,7 @@ The `zwave` component exposes multiple services to help maintain the network. Al
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| add_node | Put the Z-Wave controller in inclusion mode. Allows you to add a new device to the Z-Wave network. |
| add_node_secure | Put the Z-Wave controller in secure inclusion mode. Allows you to add a new device with secure communications to the Z-Wave network. |
-| cancel_command | Cancels a running Z-Wave command. If you have started a add_node or remove_node command, and decide you are not going to do it, then this must be used to stop the inclusion/exclusion command. |
+| cancel_command | Cancels a running Z-Wave command. If you have started an add_node or remove_node command, and decide you are not going to do it, then this must be used to stop the inclusion/exclusion command. |
| change_association | Add or remove an association in the Z-Wave network |
| heal_network | Tells the controller to "heal" the Z-Wave network. Basically asks the nodes to tell the controller all of their neighbors so the controller can refigure out optimal routing. |
| heal_node | Tells the controller to "heal" a specific node on the network. Requires `node_id` field. You can also force return route update with `return_routes` field.
diff --git a/source/_posts/2015-08-09-mqtt-raspberry-pi-squeezebox-asuswrt-support.markdown b/source/_posts/2015-08-09-mqtt-raspberry-pi-squeezebox-asuswrt-support.markdown
index 7c810aee00d..14d83f62020 100644
--- a/source/_posts/2015-08-09-mqtt-raspberry-pi-squeezebox-asuswrt-support.markdown
+++ b/source/_posts/2015-08-09-mqtt-raspberry-pi-squeezebox-asuswrt-support.markdown
@@ -1,7 +1,7 @@
---
layout: post
-title: "MQTT, Rasperry PI, Logitech Squeezebox and ASUSWRT routers now supported"
-description: "New support for MQTT, Rasperry PI GPIO, Logitech Squeezebox and ASUSWRT routers"
+title: "MQTT, Rasperry Pi, Logitech Squeezebox and ASUSWRT routers now supported"
+description: "New support for MQTT, Rasperry Pi GPIO, Logitech Squeezebox and ASUSWRT routers"
date: 2015-08-09 18:01 0000
date_formatted: "August 9, 2015"
author: Paulus Schoutsen
@@ -10,7 +10,7 @@ comments: true
categories: Release-Notes
---
-It's time for the August release and there is some serious good stuff this time. The core of Home Assistant has gone some serious clean up and a bump in test coverage thanks to [@balloob](https://github.com/balloob). If you're a developer, make sure you read up on [the deprecation notices](https://github.com/home-assistant/home-assistant/pull/251). [@fabaff](https://github.com/fabaff) did another great round of documentating all the various components.
+It's time for the August release and there is some serious good stuff this time. The core of Home Assistant has gone some serious clean up and a bump in test coverage thanks to [@balloob](https://github.com/balloob). If you're a developer, make sure you read up on [the deprecation notices](https://github.com/home-assistant/home-assistant/pull/251). [@fabaff](https://github.com/fabaff) did another great round of documenting all the various components.
__MQTT Support__
diff --git a/source/_components/sensor.vera.markdown b/source/_components/sensor.vera.markdown
index bd32fdd408e..c1e7b16a374 100644
--- a/source/_components/sensor.vera.markdown
+++ b/source/_components/sensor.vera.markdown
@@ -17,7 +17,7 @@ The `vera` platform allows you to get data from your [Vera](http://getvera.com/)
They will be automatically discovered if the vera component is loaded.
-Please note that some vera sensors (such as _motion_ and _flood_ sensors) are _armable_ which means that vera will send alerts (email messages to txts) when they are _armed_ an change state.
+Please note that some vera sensors (such as _motion_ and _flood_ sensors) are _armable_ which means that vera will send alerts (email messages to txts) when they are _armed_ and change state.
Home Assistant will display the state of these sensors regardless of the _armed_ state.
diff --git a/source/_components/sensor.yr.markdown b/source/_components/sensor.yr.markdown
index 362c3aaedbf..35813cb4598 100644
--- a/source/_components/sensor.yr.markdown
+++ b/source/_components/sensor.yr.markdown
@@ -14,7 +14,7 @@ ha_iot_class: "Cloud Polling"
---
-The `yr` platform uses [YR.no](http://www.yr.no/) as an source for current meteorological data for your location. The
+The `yr` platform uses [YR.no](http://www.yr.no/) as a source for current meteorological data for your location. The
weather forecast is delivered by the Norwegian Meteorological Institute and the NRK.
To add YR to your installation, add the following to your `configuration.yaml` file:
diff --git a/source/_components/sensor.yweather.markdown b/source/_components/sensor.yweather.markdown
index 7ac041c1cb1..0f9bcd7a859 100644
--- a/source/_components/sensor.yweather.markdown
+++ b/source/_components/sensor.yweather.markdown
@@ -14,7 +14,7 @@ ha_iot_class: "Cloud Polling"
---
-The `yweather` platform uses [Yahoo Weather](https://www.yahoo.com/news/weather/) as an source for current meteorological data. The `forecast` will show you the condition for 5 days, 0 is the current day. You can use only `weather`, `temp_min`, and `temp_max` with forecast. It's important to note that a yweather sensor will only show ONE days forecast at a time so to show multiple days forecasts, you will need to use the 'name:' option and give each sensor a unique name.
+The `yweather` platform uses [Yahoo Weather](https://www.yahoo.com/news/weather/) as a source for current meteorological data. The `forecast` will show you the condition for 5 days, 0 is the current day. You can use only `weather`, `temp_min`, and `temp_max` with forecast. It's important to note that a yweather sensor will only show ONE days forecast at a time so to show multiple days forecasts, you will need to use the 'name:' option and give each sensor a unique name.
The big new addition in this release is the support for the MQTT protocol by [@fabaff](https://github.com/fabaff) with some help from [@balloob](https://github.com/balloob). It will now be possible to integrate any IoT device that talks via MQTT. For the initial release we support connecting Home Assistant to a broker (no TLS yet). Components can now subscribe and publish to MQTT topics ([see the example][mqtt-example]) and also support for the automation component [has been added][mqtt-automation]. For more information, see [the MQTT component page][mqtt-component].
@@ -33,8 +33,8 @@ mqtt:
-__Raspberry PI GPIO Support__
-
[@gbarba](https://github.com/gbarba) has contributed support to use the general purpose input and output pins on a Raspberry PI as switches inside Home Assistant.
+__Raspberry Pi GPIO Support__
+
[@gbarba](https://github.com/gbarba) has contributed support to use the general purpose input and output pins on a Raspberry Pi as switches inside Home Assistant.
```yaml
# Example configuration.yaml entry
diff --git a/source/_posts/2016-02-09-Smarter-Smart-Things-with-MQTT-and-Home-Assistant.markdown b/source/_posts/2016-02-09-Smarter-Smart-Things-with-MQTT-and-Home-Assistant.markdown
index 33ada39515d..2420da03999 100644
--- a/source/_posts/2016-02-09-Smarter-Smart-Things-with-MQTT-and-Home-Assistant.markdown
+++ b/source/_posts/2016-02-09-Smarter-Smart-Things-with-MQTT-and-Home-Assistant.markdown
@@ -198,7 +198,7 @@ Here is the final sequence of events:
There are a lot of stops along the way for these events, but each piece is a simple translation layer to shuttle the events between systems.
### Future Improvements
-- **Raspberry pi**: There is a lot of interest in getting this running on the Raspberry Pi. It only requires binaries compiled for ARM, so we plan to get ARM-compatible versions of the containers going at some point.
+- **Raspberry Pi**: There is a lot of interest in getting this running on the Raspberry Pi. It only requires binaries compiled for ARM, so we plan to get ARM-compatible versions of the containers going at some point.
- **Authentication for MQTT**: At the moment, the MQTT bridge doesn't understand how to authenticate to MQTT, so only unauthenticated MQTT is supported. This is mitigated to some degree if you use our Docker Compose config, because MQTT's port is not actually shared publicly.
- **Authentication for MQTT Bridge**: Right now the bridge expects that anyone subscribing is the SmartThings hub. This could use proper authentication.
diff --git a/source/_posts/2016-04-07-static-website.markdown b/source/_posts/2016-04-07-static-website.markdown
index a4ec4f90b1f..e7bb788ce9b 100644
--- a/source/_posts/2016-04-07-static-website.markdown
+++ b/source/_posts/2016-04-07-static-website.markdown
@@ -25,7 +25,7 @@ In the past the buzz word "Smart mirror" was used a couple of times in our [chat
There are plenty of ways to achieve this...[RESTful API](/developers/rest_api/), [Python API](/developers/python_api/), or one of the [history components](/components/#history). If it is to be a web page I'm using the [MQTT Eventstream component](/components/mqtt_eventstream/) and [mqttws31.js](http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.javascript.git/tree/src).
-The [HBMQTT](https://pypi.python.org/pypi/hbmqtt) broker provides websockets support for MQTT and mqttws31.js included in web page gives you access to the MQTT messages. It's a matter of minutes. OK, it took a little longer because I'm not a Javascript guy to create the software part that will show details about your environment. The source is available at [https://github.com/fabaff/home-assistant-display](https://github.com/fabaff/home-assistant-display) and the screenshot above shows the result. I guess that every person who is familiar with Javascript would be able to reduce the amount of code and to make it more flexible. Well, it's a only prototype and showcase to include an image in this blog post.
+The [HBMQTT](https://pypi.python.org/pypi/hbmqtt) broker provides websockets support for MQTT and mqttws31.js included in web page gives you access to the MQTT messages. It's a matter of minutes. OK, it took a little longer because I'm not a Javascript guy to create the software part that will show details about your environment. The source is available at [https://github.com/fabaff/home-assistant-display](https://github.com/fabaff/home-assistant-display) and the screenshot above shows the result. I guess that every person who is familiar with Javascript would be able to reduce the amount of code and to make it more flexible. Well, it's only a prototype and showcase to include an image in this blog post.
I hope that this little article could give you an idea of extending Home Assistant in an unconventional way.
diff --git a/source/_posts/2016-04-09-onkyo-panasonic-gtfs-and-config-validation.markdown b/source/_posts/2016-04-09-onkyo-panasonic-gtfs-and-config-validation.markdown
index 33c8d3e97c5..d2067b9be87 100644
--- a/source/_posts/2016-04-09-onkyo-panasonic-gtfs-and-config-validation.markdown
+++ b/source/_posts/2016-04-09-onkyo-panasonic-gtfs-and-config-validation.markdown
@@ -10,7 +10,7 @@ comments: true
categories: Release-Notes
---
-Another awesome release ready to hit your homes. YAML can be hard for beginners and more experienced automators. So to help catch those pesky errors that sneak into your files we've been hard at work to introduce config validation! Especially huge thanks to [@jaharkes] for his hard work on this. Config validation is still in it's early stages. More common platforms and components have been added but we didn't do everything yet.
+Another awesome release ready to hit your homes. YAML can be hard for beginners and more experienced automators. So to help catch those pesky errors that sneak into your files we've been hard at work to introduce config validation! Especially huge thanks to [@jaharkes] for his hard work on this. Config validation is still in its early stages. More common platforms and components have been added but we didn't do everything yet.
When we encounter an invalid config we will now write a warning to your logs. You can see those in the frontend by clicking on the last developer tool. We're looking into options to make it more clear - it is a work in progress.
diff --git a/source/_posts/2016-04-21-bluetooth-lg-webos-tvs-and-roombas.markdown b/source/_posts/2016-04-21-bluetooth-lg-webos-tvs-and-roombas.markdown
index 72b13a6c8a7..af96dc1778f 100644
--- a/source/_posts/2016-04-21-bluetooth-lg-webos-tvs-and-roombas.markdown
+++ b/source/_posts/2016-04-21-bluetooth-lg-webos-tvs-and-roombas.markdown
@@ -13,7 +13,7 @@ og_image: /images/blog/2016-04-release-18/social.png
It's time for 0.18. This release cycle is 2 days shorter than usual as I'll be traveling to Europe. This also means that it can take some more time before you get feedback on PRs.
-Since the last release we have moved all Home Assistant source code etc into it's own [organization on GitHub](https://github.com/home-assistant). We're growing up! This sadly did cause us to have to move all Docker images. Check the breaking changes section for more info.
+Since the last release we have moved all Home Assistant source code etc into its own [organization on GitHub](https://github.com/home-assistant). We're growing up! This sadly did cause us to have to move all Docker images. Check the breaking changes section for more info.
diff --git a/source/_posts/2016-05-26-ibeacons-how-to-track-things-that-cant-track-themselves-part-ii.markdown b/source/_posts/2016-05-26-ibeacons-how-to-track-things-that-cant-track-themselves-part-ii.markdown
index 579cde5579f..89a0a442cc1 100644
--- a/source/_posts/2016-05-26-ibeacons-how-to-track-things-that-cant-track-themselves-part-ii.markdown
+++ b/source/_posts/2016-05-26-ibeacons-how-to-track-things-that-cant-track-themselves-part-ii.markdown
@@ -122,7 +122,7 @@ script:
### {% linkable_title Using both types of iBeacons at the same time %}
-Of course you can use both fixed and mobile beacons at the same time. I want my gates to open when I arrive home in the car - so I use an iBeacon in the car so that I can track the car, and a iBeacon on my drive so that a location update is triggered when I arrive. I've been experimenting with a high power beacon in a waterproof box on my drive which seems to work well to notice when I get home.
+Of course you can use both fixed and mobile beacons at the same time. I want my gates to open when I arrive home in the car - so I use an iBeacon in the car so that I can track the car, and an iBeacon on my drive so that a location update is triggered when I arrive. I've been experimenting with a high power beacon in a waterproof box on my drive which seems to work well to notice when I get home.
diff --git a/source/_posts/2016-07-30-custom-frontend-panels--jupyter-notebooks--directv.markdown b/source/_posts/2016-07-30-custom-frontend-panels--jupyter-notebooks--directv.markdown
index 48a43201b78..93bec4b2156 100644
--- a/source/_posts/2016-07-30-custom-frontend-panels--jupyter-notebooks--directv.markdown
+++ b/source/_posts/2016-07-30-custom-frontend-panels--jupyter-notebooks--directv.markdown
@@ -12,7 +12,7 @@ categories: Release-Notes
When Home Assistant started the focus has always been on making a great developer experience. Allowing anyone to add support for their favorite devices to Home Assistant easily. This focus has been a great success since we now have 339 components and platforms!
-Starting with this release, we are extending our extensibility to the frontend. Starting this release, any component can [add it's own page to the frontend][custom-panels]. Examples of this today are the map, logbook and history. We are looking forward to all the crazy panels you'll come up with!
+Starting with this release, we are extending our extensibility to the frontend. Starting this release, any component can [add its own page to the frontend][custom-panels]. Examples of this today are the map, logbook and history. We are looking forward to all the crazy panels you'll come up with!
We have also seen an exciting trend of people starting to visualize their Internet of Things data using [Jupyter] Notebooks, which are a great way to create and share documents that contain code, visualizations, and explanatory text. In case you missed it, the [blog] post by [@kireyeu] shows an advanced usecase while our [Notebooks][jupyter-notebooks] in the [Home Assistant Notebooks repository][jupyter-repo] cover the basics.
diff --git a/source/_posts/2016-08-16-we-have-apps-now.markdown b/source/_posts/2016-08-16-we-have-apps-now.markdown
index 535a88e0365..6edf3f8f4b2 100644
--- a/source/_posts/2016-08-16-we-have-apps-now.markdown
+++ b/source/_posts/2016-08-16-we-have-apps-now.markdown
@@ -26,14 +26,14 @@ So given the importance of Automation, what should Automation allow us to do? I
- Is it open and expandable?
- Does it run locally without any reliance on the cloud?
-In my opinion, Home Assistant accomplishes the majority of these very well with a combination of Automations, Scripts and Templates, and it's Restful API.
+In my opinion, Home Assistant accomplishes the majority of these very well with a combination of Automations, Scripts and Templates, and its Restful API.
So why `AppDaemon`? `AppDaemon` is not meant to replace Home Assistant Automations and Scripts, rather complement them. For a lot of things, automations work well and can be very succinct. However, there is a class of more complex automations for which they become harder to use, and appdeamon then comes into its own. It brings quite a few things to the table:
- 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
-- Dynamic - `AppDaemon` has been designed from the start to enable the user to make changes without requiring a restart of Home Assistant, thanks to it's 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 without 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.
+- 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 without 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
- All the power of Python - use any of Python's libraries, create your own modules, share variables, refactor and re-use code, create a single app to do everything, or multiple apps for individual tasks - nothing is off limits!
diff --git a/source/_posts/2016-10-08-hassbian-rest-digital-ocean.markdown b/source/_posts/2016-10-08-hassbian-rest-digital-ocean.markdown
index a7386785f15..1c4f4ea6a63 100644
--- a/source/_posts/2016-10-08-hassbian-rest-digital-ocean.markdown
+++ b/source/_posts/2016-10-08-hassbian-rest-digital-ocean.markdown
@@ -36,7 +36,7 @@ With the [statistics sensor][stats-sensor] we would like to introduce a new sens