Spelling fixes (#4532)

* Spelling fixes

* "It's" -> "its" fixes

* Fix capitalization of "Pi" in "Raspberry Pi"

"Pi", not "PI" or "pi".
This commit is contained in:
Ville Skyttä 2018-01-28 23:28:56 +02:00 committed by Franck Nijhof
parent 2216828c53
commit b39bd81c6e
85 changed files with 111 additions and 111 deletions

View File

@ -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: There is currently support for the following device types within Home Assistant:
- [Binary Sensor](/components/binary_sensor.alarmdecoder/): Reports on zone status - [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 - [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. This is a fully event-based component. Any event sent by the AlarmDecoder device will be immediately reflected within Home Assistant.

View File

@ -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: To use your aREST binary sensor in your installation, add the following to your `configuration.yaml` file:

View File

@ -1,7 +1,7 @@
--- ---
layout: page layout: page
title: gc100 Binary Sensor 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 date: 2017-10-27 17:26
sidebar: true sidebar: true
comments: false comments: false

View File

@ -1,7 +1,7 @@
--- ---
layout: page layout: page
title: "Raspihats Binary Sensor" 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 date: 2017-05-01 04:09
sidebar: true sidebar: true
comments: false comments: false
@ -87,4 +87,4 @@ It will output a table like this:
70: -- -- -- -- -- -- -- 77 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/).

View File

@ -1,7 +1,7 @@
--- ---
layout: page layout: page
title: "Raspberry PI GPIO Binary Sensor" title: "Raspberry Pi GPIO Binary Sensor"
description: "Instructions how to integrate the GPIO sensor capability of a Raspberry PI into Home Assistant." description: "Instructions how to integrate the GPIO sensor capability of a Raspberry Pi into Home Assistant."
date: 2015-08-30 19:00 date: 2015-08-30 19:00
sidebar: true sidebar: true
comments: false comments: false

View File

@ -60,7 +60,7 @@ camera:
### {% linkable_title Local image with Hass.io %} ### {% 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 ```yaml
camera: camera:

View File

@ -201,7 +201,7 @@ climate:
``` ```
{% endraw %} {% 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 %} ### {% linkable_title Example %}

View File

@ -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 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: To set it up, add the following information to your `configuration.yaml` file:

View File

@ -134,7 +134,7 @@ tilt_max:
type: integer type: integer
default: 100 default: 100
tilt_closed_value: 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 required: false
type: integer type: integer
default: 0 default: 0

View File

@ -85,7 +85,7 @@ Device configuration variables:
- **name** (*Optional*): Name for the device, defaults to Rflink ID. - **name** (*Optional*): Name for the device, defaults to Rflink ID.
- **aliases** (*Optional*): Alternative Rflink ID's this device is known by. - **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). - **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). - **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). - **signal_repetitions** (*Optional*): Set default `signal_repetitions` for RFLink switch devices (see below).

View File

@ -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: 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_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_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. - **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.

View File

@ -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. 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*. 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*.

View File

@ -12,7 +12,7 @@ ha_category: Presence Detection
ha_release: 0.37 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. 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.

View File

@ -13,7 +13,7 @@ ha_release: 0.23
ha_iot_class: "Local Push" 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. Please visit the [eyezon website](http://www.eyezon.com/) for further information about the evl3 and evl4 boards.

View File

@ -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 %} ### {% 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. 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. This will have all the bulbs transitioned at once, instead of one at a time using standard scenes in Home Assistant.

View File

@ -13,7 +13,7 @@ featured: false
ha_release: 0.38 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. Please refer to the [component](/components/microsoft_face/) configuration on how to setup the API key.

View File

@ -13,7 +13,7 @@ featured: false
ha_release: 0.37 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. Please refer to the [component](/components/microsoft_face/) configuration on how to setup the API key.

View File

@ -61,5 +61,5 @@ lights:
{% endconfiguration %} {% endconfiguration %}
In the example above 12345 is ihc resource id and "tablelight" is the name. 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) For more information about IHC resource ids see [Manual Setup](/components/ihc/#manual-setup)

View File

@ -50,7 +50,7 @@ Device configuration variables:
- **name** (*Optional*): Name for the device, defaults to Rflink ID. - **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) - **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. - **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). - **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). - **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). - **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: 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). - *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. - *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. - *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.

View File

@ -73,7 +73,7 @@ logbook:
### {% linkable_title Exclude Events %} ### {% 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 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. 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.

View File

@ -10,7 +10,7 @@ ha_version: 0.51
footer: true 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. Home Assistant currently supports only the [Asterisk Voicemail](/component/mailbox.asterisk_mbox) mailbox.

View File

@ -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`: The Chromecast platform can also be forced to load by adding the following lines to your `configuration.yaml`:

View File

@ -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 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 ```bash
sudo usermod -a -G audio <ha_user> sudo usermod -a -G audio <ha_user>
@ -68,7 +68,7 @@ sudo usermod -a -G audio <ha_user>
### {% linkable_title Using with TTS %} ### {% linkable_title Using with TTS %}
To play TTS on your local computer (for example, if you have speakers attached to your Raspberry PI: To play TTS on your local computer (for example, if you have speakers attached to your Raspberry Pi:
```yaml ```yaml
media_player: media_player:

View File

@ -52,7 +52,7 @@ Configuration variables:
have your receiver switched off. have your receiver switched off.
- In some cases, auto-discovery fails due to a known bug in the - In some cases, auto-discovery fails due to a known bug in the
receiver's firmware. It is possible to manually specify the receiver's firmware. It is possible to manually specify the
receiver's IP address or via it's hostname (if it is discoverable by receiver's IP address or via its hostname (if it is discoverable by
your DNS) then. your DNS) then.
### {% linkable_title Supported operations %} ### {% linkable_title Supported operations %}

View File

@ -12,7 +12,7 @@ ha_category: Voice
ha_release: 0.53 ha_release: 0.53
--- ---
[Mycroft](https://mycroft.ai) is a open source voice assistant that allows you to send notifications and more to Mycroft from Home Assistant. [Mycroft](https://mycroft.ai) is an open source voice assistant that allows you to send notifications and more to Mycroft from Home Assistant.
```yaml ```yaml
# Example configuration.yaml entry # Example configuration.yaml entry

View File

@ -16,7 +16,7 @@ ha_release: 0.56
The `clickatell` platform uses [Clickatell](https://clickatell.com) to deliver SMS notifications from Home Assistant. The `clickatell` platform uses [Clickatell](https://clickatell.com) to deliver SMS notifications from Home Assistant.
### Get your Clickatell API Credentials ### Get your Clickatell API Credentials
Go to your [Clickatell SMS Platform Portal](https://portal.clickatell.com/#/) section and create a new SMS integration. There are three screens of information required to creater an integration. Please ensure the following: Go to your [Clickatell SMS Platform Portal](https://portal.clickatell.com/#/) section and create a new SMS integration. There are three screens of information required to create an integration. Please ensure the following:
1. Give the new Integration an identification name. 1. Give the new Integration an identification name.
2. Ensure it is set for 'production' use. 2. Ensure it is set for 'production' use.

View File

@ -250,7 +250,7 @@ You will receive an event named `html5_notification.closed` when the notificatio
### {% linkable_title Making notifications work with NGINX proxy %} ### {% linkable_title Making notifications work with NGINX proxy %}
If you use [NGINX](/ecosystem/nginx/) as an proxy with authentication in front of your Home Assistant instance, you may have trouble with receiving events back to Home Assistant. It's because of authentication token that cannot be passed through the proxy. If you use [NGINX](/ecosystem/nginx/) as a proxy with authentication in front of your Home Assistant instance, you may have trouble with receiving events back to Home Assistant. It's because of authentication token that cannot be passed through the proxy.
To solve the issue put additional location into your nginx site's configuration: To solve the issue put additional location into your nginx site's configuration:

View File

@ -15,7 +15,7 @@ ha_release: 0.39
The [Pushsafer service](https://www.pushsafer.com/) is a platform for the notify component. This allows you to send messages to the user using Pushsafer. The [Pushsafer service](https://www.pushsafer.com/) is a platform for the notify component. This allows you to send messages to the user using Pushsafer.
In order to get an private or alias key you need to go to the [Pushsafer website](https://www.pushsafer.com) and register. In order to get a private or alias key you need to go to the [Pushsafer website](https://www.pushsafer.com) and register.
To use Pushsafer notifications, add the following to your `configuration.yaml` file: To use Pushsafer notifications, add the following to your `configuration.yaml` file:

View File

@ -1,7 +1,7 @@
--- ---
layout: page layout: page
title: "Raspihats" title: "Raspihats"
description: "Instructions how to integrate Raspihats add-on boards for Raspberry PI into Home Assistant." description: "Instructions how to integrate Raspihats add-on boards for Raspberry Pi into Home Assistant."
date: 2017-05-01 04:06 date: 2017-05-01 04:06
sidebar: true sidebar: true
comments: false comments: false

View File

@ -135,7 +135,7 @@ If you find a device is recognized differently, with different protocols or the
### {% linkable_title Technical Overview %} ### {% linkable_title Technical Overview %}
- The`rflink` Python module is a asyncio transport/protocol which is setup to fire a callback for every (valid/supported) packet received by the RFLink gateway. - The`rflink` Python module is an asyncio transport/protocol which is setup to fire a callback for every (valid/supported) packet received by the RFLink gateway.
- This component uses this callback to distribute 'rflink packet events' over [Home Assistant's event bus](https://home-assistant.io/docs/configuration/events/) which can be subscribed to by entities/platform implementations. - This component uses this callback to distribute 'rflink packet events' over [Home Assistant's event bus](https://home-assistant.io/docs/configuration/events/) which can be subscribed to by entities/platform implementations.
- The platform implementation takes care of creating new devices (if enabled) for unseen incoming packet ID's. - The platform implementation takes care of creating new devices (if enabled) for unseen incoming packet ID's.
- Device entities take care of matching to the packet ID, interpreting and performing actions based on the packet contents. Common entity logic is maintained in this main component. - Device entities take care of matching to the packet ID, interpreting and performing actions based on the packet contents. Common entity logic is maintained in this main component.

View File

@ -1,7 +1,7 @@
--- ---
layout: page layout: page
title: "Raspberry PI GPIO" title: "Raspberry Pi GPIO"
description: "Instructions how to integrate the GPIO capability of a Raspberry PI into Home Assistant." description: "Instructions how to integrate the GPIO capability of a Raspberry Pi into Home Assistant."
date: 2016-08-30 19:00 date: 2016-08-30 19:00
sidebar: true sidebar: true
comments: false comments: false

View File

@ -56,7 +56,7 @@ Configuration variables:
- **port** (*Optional*): The port on which the ETHM module listens for clients using integration protocol. Default: `7094` - **port** (*Optional*): The port on which the ETHM module listens for clients using integration protocol. Default: `7094`
- **partition** (*Optional*): The partition to operate on. Integra can support multiple partitions, this platform only supports one. Default: `1` - **partition** (*Optional*): The partition to operate on. Integra can support multiple partitions, this platform only supports one. Default: `1`
- **arm_home_mode** (*Optional*): The mode in which arm Satel Integra when 'arm home' is used. Possible options are `1`,`2` or `3`, default being `1`. For more information on what are the differences between them, please refer to Satel Integra manual. - **arm_home_mode** (*Optional*): The mode in which arm Satel Integra when 'arm home' is used. Possible options are `1`,`2` or `3`, default being `1`. For more information on what are the differences between them, please refer to Satel Integra manual.
- **zones** (*Optional*): This module does not discover currently which zones are actually in use, so it will only monitor the ones defined in the config. For each zone, a proper ID must be given as well as it's name (does not need to match the one specified in Satel Integra alarm). For more information on the available zone types, take a look at the [Binary Sensor](/components/binary_sensor.alarmdecoder/) docs. *Note: If no zones are specified, Home Assistant will not load any binary_sensor components.* - **zones** (*Optional*): This module does not discover currently which zones are actually in use, so it will only monitor the ones defined in the config. For each zone, a proper ID must be given as well as its name (does not need to match the one specified in Satel Integra alarm). For more information on the available zone types, take a look at the [Binary Sensor](/components/binary_sensor.alarmdecoder/) docs. *Note: If no zones are specified, Home Assistant will not load any binary_sensor components.*
List of all zone IDs can be taken from DloadX program. List of all zone IDs can be taken from DloadX program.

View File

@ -14,7 +14,7 @@ ha_iot_class: "Local Polling"
--- ---
The `arduino` sensor platform allows you to get an numerical values from an analog input pin of an [Arduino](https://www.arduino.cc/) board. Usually the value is between 0 and 1024. The `arduino` sensor platform allows you to get numerical values from an analog input pin of an [Arduino](https://www.arduino.cc/) board. Usually the value is between 0 and 1024.
To enable an Arduino sensor with Home Assistant, add the following section to your `configuration.yaml` file: To enable an Arduino sensor with Home Assistant, add the following section to your `configuration.yaml` file:

View File

@ -14,7 +14,7 @@ ha_iot_class: "Cloud Polling"
--- ---
The `buienradar` platform uses [buienradar.nl](http://buienradar.nl/) as an 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). 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).
The selected weather station will provide all weather data, with the exception of the forecasted precipitation. The forecasted precipitation data will be retrieved from buienradar using your actual gps-location (and not the location of the nearest weather station). The selected weather station will provide all weather data, with the exception of the forecasted precipitation. The forecasted precipitation data will be retrieved from buienradar using your actual gps-location (and not the location of the nearest weather station).

View File

@ -131,7 +131,7 @@ DSMR is a standard to which Dutch smartmeters must comply. It specifies that the
The contents of this telegram differ between version but they generally consist of lines with 'obis' (Object Identification System, a numerical ID for a value) followed with the value and unit. The contents of this telegram differ between version but they generally consist of lines with 'obis' (Object Identification System, a numerical ID for a value) followed with the value and unit.
This module sets up a asynchronous reading loop using the `dsmr_parser` module which waits for a complete telegram, parser it and puts it on an async queue as a dictionary of `obis`/object mapping. The numeric value and unit of each value can be read from the objects attributes. Because the `obis` are know for each DSMR version the Entities for this component are create during bootstrap. This module sets up an asynchronous reading loop using the `dsmr_parser` module which waits for a complete telegram, parser it and puts it on an async queue as a dictionary of `obis`/object mapping. The numeric value and unit of each value can be read from the objects attributes. Because the `obis` are know for each DSMR version the Entities for this component are create during bootstrap.
Another loop (DSMR class) is setup which reads the telegram queue, stores/caches the latest telegram and notifies the Entities that the telegram has been updated. Another loop (DSMR class) is setup which reads the telegram queue, stores/caches the latest telegram and notifies the Entities that the telegram has been updated.

View File

@ -20,7 +20,7 @@ Depending on the operating system you're running, you have to configure the prop
- On [Hass.io](https://home-assistant.io/hassio/installation/): Miflora will work out of the box. - On [Hass.io](https://home-assistant.io/hassio/installation/): Miflora will work out of the box.
- On other Linux systems: - On other Linux systems:
- Prefered solution: Install the `bluepy` library (via pip). When using a virtual environment, make sure to use install the library in the right one. - Preferred solution: Install the `bluepy` library (via pip). When using a virtual environment, make sure to use install the library in the right one.
   - Fallback solution: Install `gatttool` via your package manager. Depending on the distribution, the package name might be: `bluez`, `bluetooth`, `bluez-deprecated`    - Fallback solution: Install `gatttool` via your package manager. Depending on the distribution, the package name might be: `bluez`, `bluetooth`, `bluez-deprecated`
- Windows and MacOS are currently not supported by the [miflora library](https://github.com/open-homeautomation/miflora/). - Windows and MacOS are currently not supported by the [miflora library](https://github.com/open-homeautomation/miflora/).

View File

@ -37,7 +37,7 @@ If Home Assistant (`hass`) runs with another user (e.g. `homeassistant` on Hassb
Depending on what's plugged into your USB ports, the name found above may change. You can lock in a name, such as `/dev/modem`, by following [these instructions](http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/). Depending on what's plugged into your USB ports, the name found above may change. You can lock in a name, such as `/dev/modem`, by following [these instructions](http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/).
When the sensor detects a new call, it's state changes to 'ring' for each ring and 'callerid' when caller id information is received. It returns to 'idle' once ringing stops. The state event includes an attribute payload that includes the time of the call, name and number. When the sensor detects a new call, its state changes to 'ring' for each ring and 'callerid' when caller id information is received. It returns to 'idle' once ringing stops. The state event includes an attribute payload that includes the time of the call, name and number.
Some example automations: Some example automations:
```yaml ```yaml

View File

@ -14,7 +14,7 @@ ha_iot_class: "Cloud Polling"
--- ---
The `openweathermap` platform uses [OpenWeatherMap](http://openweathermap.org/) as an source for current meteorological data for your location. The `forecast` will show you the condition in 3 h. The `openweathermap` platform uses [OpenWeatherMap](http://openweathermap.org/) as a source for current meteorological data for your location. The `forecast` will show you the condition in 3 h.
You need an API key which is free but requires a [registration](http://home.openweathermap.org/users/sign_up). You need an API key which is free but requires a [registration](http://home.openweathermap.org/users/sign_up).

View File

@ -22,7 +22,7 @@ It required that you enable the HTTP feature in the `/etc/supervisord.conf` conf
port=127.0.0.1:9001 port=127.0.0.1:9001
``` ```
After a restart of `supervisord` you should be able to access the web interface. If needed then this could be added as a [iFrame panel](/components/panel_iframe/). After a restart of `supervisord` you should be able to access the web interface. If needed then this could be added as an [iFrame panel](/components/panel_iframe/).
<p class='img'> <p class='img'>
<img src='{{site_root}}/images/screenshots/supervisor.png' /> <img src='{{site_root}}/images/screenshots/supervisor.png' />

View File

@ -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. 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. Home Assistant will display the state of these sensors regardless of the _armed_ state.

View File

@ -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. 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: To add YR to your installation, add the following to your `configuration.yaml` file:

View File

@ -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.
<p class='note warning'> <p class='note warning'>
Use of the Yahoo Weather API should not exceed reasonable request volume. Access is limited to 2000 signed calls per day. Use of the Yahoo Weather API should not exceed reasonable request volume. Access is limited to 2000 signed calls per day.

View File

@ -1,7 +1,7 @@
--- ---
layout: page layout: page
title: gc100 Switch 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 date: 2017-10-27 17:26
sidebar: true sidebar: true
comments: false comments: false

View File

@ -1,7 +1,7 @@
--- ---
layout: page layout: page
title: "Raspihats Switch" 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 date: 2017-05-15 04:20
sidebar: true sidebar: true
comments: false comments: false
@ -89,4 +89,4 @@ It will output a table like this:
70: -- -- -- -- -- -- -- 77 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/).

View File

@ -50,7 +50,7 @@ Device configuration variables:
- **name** (*Optional*): Name for the device, defaults to RFLink ID. - **name** (*Optional*): Name for the device, defaults to RFLink ID.
- **aliases** (*Optional*): Alternative RFLink ID's this device is known by. - **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) - **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** (*Optional*): Allow switch to respond to group commands (ALLON/ALLOFF). (default: yes)
- **group_aliases** (*Optional*): `aliases` which only respond to group commands. - **group_aliases** (*Optional*): `aliases` which only respond to group commands.

View File

@ -1,7 +1,7 @@
--- ---
layout: page layout: page
title: "Raspberry PI GPIO Switch" title: "Raspberry Pi GPIO Switch"
description: "Instructions 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 date: 2015-08-07 14:00
sidebar: true sidebar: true
comments: false comments: false

View File

@ -11,7 +11,7 @@ logo: home-assistant.png
ha_category: Other 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/). 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/).

View File

@ -64,5 +64,5 @@ every polling cycle.
While this is communicating with a thermostat, geothermal systems While this is communicating with a thermostat, geothermal systems
operate most efficiently when setbacks are not used, and the home is operate most efficiently when setbacks are not used, and the home is
kept at a constant temperature. It remains useful to collect the data 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. interface won't be implemented.

View File

@ -10,7 +10,7 @@ footer: true
ha_category: Automation Examples 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._ _Note, Philips Hue is currently the only light platform that support the random effect._

View File

@ -43,7 +43,7 @@ sensor:
``` ```
{% endraw %} {% 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 %} ### {% linkable_title Android and iOS Devices %}

View File

@ -44,7 +44,7 @@ Before beginning make sure that you have the following:
3. Create a configuration file for the server 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 ```ini
[default] [default]

View File

@ -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.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. `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`. When using templates, attributes will be available by their name. For example `state.attributes.assumed_state`.

View File

@ -22,13 +22,13 @@ import homeassistant.appapi as appapi
class MotionLights(appapi.AppDaemon): 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 ```python
def initialize(self): 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: 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 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 %} ## {% 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. 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 ```ini
[some_app] [some_app]
@ -565,7 +565,7 @@ self.cancel_listen_state(self.office_light_handle)
### {% linkable_title info_listen_state() %} ### {% 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 %} #### {% linkable_title Synopsis %}
@ -909,7 +909,7 @@ self.cancel_timer(handle)
### {% linkable_title info_timer() %} ### {% 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 %} #### {% 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_start` - start of range of the random time
- `random_end` - end 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: For example:
@ -1463,7 +1463,7 @@ self.cancel_listen_event(handle)
### {% linkable_title info_listen_event() %} ### {% 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 %} #### {% 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") 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 ```yaml
automation: 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 %} ### {% 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 ```bash
$ appdaemon -s "2016-06-06 19:16:00" $ appdaemon -s "2016-06-06 19:16:00"

View File

@ -10,4 +10,4 @@ footer: true
redirect_from: /ecosystem/appdaemon/reboot/ 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.

View File

@ -23,14 +23,14 @@ So given the importance of Automation, what should Automation allow us to do? I
- Is it open and expandable? - Is it open and expandable?
- Does it run locally without any reliance on the cloud? - 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: 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 - 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. - 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 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 - 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 - 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! - 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!

View File

@ -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. 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 ```text
/dev/sda1 /media ext4 defaults,noatime 0 1 /dev/sda1 /media ext4 defaults,noatime 0 1

View File

@ -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. Now SSH in to the device your Home Assistant is running on.
<p class='note'> <p class='note'>
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 $ sudo adduser hass sudo

View File

@ -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: 1. Fork the process into the background with the command:
`nohup sudo ./configurator.py &` `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. 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/). 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. 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.

View File

@ -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/). - [DHT Sensor](/components/sensor.dht/).
- [Raspberry Pi Cover](/components/cover.rpi_gpio/). - [Raspberry Pi Cover](/components/cover.rpi_gpio/).
- [Raspberry PI GPIO Binary Sensor](/components/binary_sensor.rpi_gpio/). - [Raspberry Pi GPIO Binary Sensor](/components/binary_sensor.rpi_gpio/).
- [Raspberry PI GPIO Switch](/components/switch.rpi_gpio/). - [Raspberry Pi GPIO Switch](/components/switch.rpi_gpio/).
- [Raspberry Pi RF Switch](/components/switch.rpi_rf/). - [Raspberry Pi RF Switch](/components/switch.rpi_rf/).
### {% linkable_title Raspberry Pi Camera %} ### {% linkable_title Raspberry Pi Camera %}

View File

@ -155,7 +155,7 @@ The following automation shows how to raise a custom event called `event_light_t
``` ```
{% endraw %} {% 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 %} {% raw %}
```yaml ```yaml

View File

@ -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: 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 * **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. 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.

View File

@ -147,7 +147,7 @@ binary_sensor:
- **254**: Deep sleep - **254**: Deep sleep
- **255**: Case open - **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: binary_sensor:

View File

@ -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 | 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. | | 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 | | 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_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. | 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.

View File

@ -1,7 +1,7 @@
--- ---
layout: post layout: post
title: "MQTT, Rasperry PI, Logitech Squeezebox and ASUSWRT routers now supported" title: "MQTT, Rasperry Pi, Logitech Squeezebox and ASUSWRT routers now supported"
description: "New support for MQTT, Rasperry PI GPIO, Logitech Squeezebox and ASUSWRT routers" description: "New support for MQTT, Rasperry Pi GPIO, Logitech Squeezebox and ASUSWRT routers"
date: 2015-08-09 18:01 0000 date: 2015-08-09 18:01 0000
date_formatted: "August 9, 2015" date_formatted: "August 9, 2015"
author: Paulus Schoutsen author: Paulus Schoutsen
@ -10,7 +10,7 @@ comments: true
categories: Release-Notes 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__ __MQTT Support__
<img src='/images/supported_brands/mqtt.png' style='border:none; box-shadow: none; float: right;' height='50' /> 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]. <img src='/images/supported_brands/mqtt.png' style='border:none; box-shadow: none; float: right;' height='50' /> 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:
<!--more--> <!--more-->
__Raspberry PI GPIO Support__ __Raspberry Pi GPIO Support__
<img src='/images/supported_brands/raspberry-pi.png' style='border:none; box-shadow: none; float: right;' height='50' /> [@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. <img src='/images/supported_brands/raspberry-pi.png' style='border:none; box-shadow: none; float: right;' height='50' /> [@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 ```yaml
# Example configuration.yaml entry # Example configuration.yaml entry

View File

@ -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. 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 ### 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**: 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. - **Authentication for MQTT Bridge**: Right now the bridge expects that anyone subscribing is the SmartThings hub. This could use proper authentication.

View File

@ -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). 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. I hope that this little article could give you an idea of extending Home Assistant in an unconventional way.

View File

@ -10,7 +10,7 @@ comments: true
categories: Release-Notes 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. 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.

View File

@ -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. 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.
<a href='/demo/'><img src='/images/blog/2016-04-release-18/media_player.png' style='box-shadow: none; border: 0;' /></a> <a href='/demo/'><img src='/images/blog/2016-04-release-18/media_player.png' style='box-shadow: none; border: 0;' /></a>

View File

@ -122,7 +122,7 @@ script:
### {% linkable_title Using both types of iBeacons at the same time %} ### {% 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.
<p class='img'> <p class='img'>
<img width='300' src='http://bluesensenetworks.com/wp-content/uploads/2015/02/BlueBar-Beacon-Long-Range.jpg'> <img width='300' src='http://bluesensenetworks.com/wp-content/uploads/2015/02/BlueBar-Beacon-Long-Range.jpg'>

View File

@ -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! 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. 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.

View File

@ -26,14 +26,14 @@ So given the importance of Automation, what should Automation allow us to do? I
- Is it open and expandable? - Is it open and expandable?
- Does it run locally without any reliance on the cloud? - 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: 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 - 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. - 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 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 - 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 - 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! - 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!

View File

@ -36,7 +36,7 @@ With the [statistics sensor][stats-sensor] we would like to introduce a new sens
<img src='{{site_root}}/images/screenshots/stats-sensor.png' /> <img src='{{site_root}}/images/screenshots/stats-sensor.png' />
</p> </p>
As the results are processed on-the-fly you still need to use the data from your database for a in-depth analysis of your stored information. Check the latest [notebook] for doing statistics with your Home Assistant database. As the results are processed on-the-fly you still need to use the data from your database for an in-depth analysis of your stored information. Check the latest [notebook] for doing statistics with your Home Assistant database.
### {% linkable_title REST! We don't... %} ### {% linkable_title REST! We don't... %}

View File

@ -152,7 +152,7 @@ Bugfix: [@balloob], [@fabaff], [@freol35241], [@pvizeli], [@Danielhiversen], [@t
- Due to massive improvements of the [Wink][wink] integration, the names of your binary sensors will change and new devices can show up. - Due to massive improvements of the [Wink][wink] integration, the names of your binary sensors will change and new devices can show up.
- The [MySensors][mysensors] component now requires all persistence file paths to be set if any is set by the user. This is to avoid name conflicts for the paths. If no path is set Home Assistant will set all paths for you. - The [MySensors][mysensors] component now requires all persistence file paths to be set if any is set by the user. This is to avoid name conflicts for the paths. If no path is set Home Assistant will set all paths for you.
- The [Sonos][sonos] service `sonos_group_players` was removed. Use now `sonos_join` for this function. - The [Sonos][sonos] service `sonos_group_players` was removed. Use now `sonos_join` for this function.
- TTS cache have change for the last time. Files use now also a option hash as part of the name. If you want to use the cache, it need to be renamed or cleared, new created. E. g. `HASH_LANG_PLATFORM.xxx` -> `HASH_LANG_OPTIONS_PLATFORM.xxx`, replace *OPTIONS* with `-` on exiting platforms. - TTS cache have change for the last time. Files use now also an option hash as part of the name. If you want to use the cache, it need to be renamed or cleared, new created. E. g. `HASH_LANG_PLATFORM.xxx` -> `HASH_LANG_OPTIONS_PLATFORM.xxx`, replace *OPTIONS* with `-` on exiting platforms.
### {% linkable_title If you need help... %} ### {% linkable_title If you need help... %}
...don't hesitate to use our [Forum](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. ...don't hesitate to use our [Forum](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks.

View File

@ -26,7 +26,7 @@ Next, we attach a `ffmpeg_noise` binary sensor to our IP camera. The sensor has
We change the platform name for binary sensor in 0.38 from `ffmpeg` to `ffmpeg_noise`. Also all service going to component and was rename from `binary_sensor.ffmpeg_xy` to `ffmpeg.xy`. We change the platform name for binary sensor in 0.38 from `ffmpeg` to `ffmpeg_noise`. Also all service going to component and was rename from `binary_sensor.ffmpeg_xy` to `ffmpeg.xy`.
</p> </p>
On Raspbian Jessie, you can setup [FFmpeg](/components/ffmpeg) and install a [icecast2](http://icecast.org/) server using: On Raspbian Jessie, you can setup [FFmpeg](/components/ffmpeg) and install an [icecast2](http://icecast.org/) server using:
```bash ```bash
$ sudo echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list $ sudo echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list
@ -35,7 +35,7 @@ $ sudo apt-get -t jessie-backports install ffmpeg
$ sudo apt-get install icecast2 $ sudo apt-get install icecast2
``` ```
We setup a icecast mount point for our babyphone and update `/etc/icecast2/icecast.xml`: We setup an icecast mount point for our babyphone and update `/etc/icecast2/icecast.xml`:
``` ```
<mount> <mount>
@ -93,7 +93,7 @@ automation:
entity_id: binary_sensor.ffmpeg_noise entity_id: binary_sensor.ffmpeg_noise
``` ```
### {% linkable_title Trigger a alarm %} ### {% linkable_title Trigger an alarm %}
Now we can make a lot stuff. Here is a simple example of an automation what should be possible with Sonos speakers. Now we can make a lot stuff. Here is a simple example of an automation what should be possible with Sonos speakers.

View File

@ -71,9 +71,9 @@ So starting this release, we had to make some breaking changes to right the wron
[**Update: the online tool can be found here.**](https://jsfiddle.net/balloob/d2e56q6f/74/) [**Update: the online tool can be found here.**](https://jsfiddle.net/balloob/d2e56q6f/74/)
#### Customize has been reverted to it's original config #### Customize has been reverted to its original config
The old customize is back. The options to match by domain or using glob have been moved to it's own options. It will now look like this: The old customize is back. The options to match by domain or using glob have been moved to its own options. It will now look like this:
```yaml ```yaml
homeassistant: homeassistant:

View File

@ -63,7 +63,7 @@ Experiencing issues introduced by this release? Please report them in our [issue
## {% linkable_title Breaking Changes %} ## {% linkable_title Breaking Changes %}
- history_graph component: If your component used `history.get_significant_states` function then you need to adjust the string `entitity_id` parameter has been changed to a list of strings `entity_ids` parameter. ([@andrey-git] - [#9472]) ([history_graph docs]) (breaking change) - history_graph component: If your component used `history.get_significant_states` function then you need to adjust the string `entity_id` parameter has been changed to a list of strings `entity_ids` parameter. ([@andrey-git] - [#9472]) ([history_graph docs]) (breaking change)
- UPNP component: The `external_port` configuration option was removed. ([@balloob] - [#9560]) ([upnp docs]) (breaking change) - UPNP component: The `external_port` configuration option was removed. ([@balloob] - [#9560]) ([upnp docs]) (breaking change)
- New Wink services: pair new device, rename, delete and add new lock key code. All device attributes that are multi-words are now separated by "_" and no longer " ". ([@w1ll1am23] - [#9303]) ([wink docs]) ([binary_sensor.wink docs]) ([lock.wink docs]) (breaking change) - New Wink services: pair new device, rename, delete and add new lock key code. All device attributes that are multi-words are now separated by "_" and no longer " ". ([@w1ll1am23] - [#9303]) ([wink docs]) ([binary_sensor.wink docs]) ([lock.wink docs]) (breaking change)
- TP-Link Switch: Attribute names now uses underscores and unnecessary capitalization was removed. ([@djchen] - [#9607]) ([switch.tplink docs]) (breaking change) - TP-Link Switch: Attribute names now uses underscores and unnecessary capitalization was removed. ([@djchen] - [#9607]) ([switch.tplink docs]) (breaking change)

View File

@ -195,4 +195,4 @@ sensor:
state_topic: "home/ttn/garden_temp" state_topic: "home/ttn/garden_temp"
``` ```
This solution is not production-ready, scalable or stable but it could fill the gape till Home Assistant is able to connect to multiple MQTT brokers. If you have multiple devices relay all messages to your local broker and add an configuration variable to `mqtt_ttn` sensor which allows you to select the device. This solution is not production-ready, scalable or stable but it could fill the gape till Home Assistant is able to connect to multiple MQTT brokers. If you have multiple devices relay all messages to your local broker and add a configuration variable to `mqtt_ttn` sensor which allows you to select the device.

View File

@ -27,7 +27,7 @@ The most amazing part? It is super easy to set up!
## {% linkable_title Setting up Tor %} ## {% linkable_title Setting up Tor %}
Our [documentation](/docs/ecosystem/tor/) provides an detailed guide about seting up a [Tor's Hidden Service](https://www.torproject.org/docs/hidden-services.html.en). The setup is straight-forward: Our [documentation](/docs/ecosystem/tor/) provides a detailed guide about setting up a [Tor's Hidden Service](https://www.torproject.org/docs/hidden-services.html.en). The setup is straight-forward:
1. Install Tor. On a Debian-based system: `$ sudo apt-get install tor`. On Fedora: `$ sudo dnf install tor` 1. Install Tor. On a Debian-based system: `$ sudo apt-get install tor`. On Fedora: `$ sudo dnf install tor`
2. Modify Tor's main configuration file `/etc/tor/torrc` to include the following lines: 2. Modify Tor's main configuration file `/etc/tor/torrc` to include the following lines:

View File

@ -33,4 +33,4 @@ Not all existing platforms follow the requirements in this checklist. This canno
### {% linkable_title 3. Component/platform communication %} ### {% linkable_title 3. Component/platform communication %}
1. If you need to share global data with platforms, use the dictionary `hass.data`. `hass.data[DATA_XY]` while `XY` is the component is preferred over `hass.data[DOMAIN]`. 1. If you need to share global data with platforms, use the dictionary `hass.data`. `hass.data[DATA_XY]` while `XY` is the component is preferred over `hass.data[DOMAIN]`.
2. If the component fetches data that causes it's related platform entities to update, you can notify them using the dispatcher code in `homeassistant.helpers.dispatcher`. 2. If the component fetches data that causes its related platform entities to update, you can notify them using the dispatcher code in `homeassistant.helpers.dispatcher`.

View File

@ -14,7 +14,7 @@ There are different ways to communication between add-ons inside Home Assistant.
## {% linkable_title Network %} ## {% linkable_title Network %}
We use a internal network. That allow to speak with every add-on or from Home Assistant to add-on by name or alias. Only the add-ons which runs on the host network are a bit limited. They can speak with all internal add-ons over their name but all other add-on can't address the add-on in question with its name. But using an alias work well. Thus the name/alias is used to communicate inside Hass.io. The name have the following format `{REPO}-{SLUG}`, e.g. `local-xy` or `3283fh-myaddon`. We use an internal network. That allow to speak with every add-on or from Home Assistant to add-on by name or alias. Only the add-ons which runs on the host network are a bit limited. They can speak with all internal add-ons over their name but all other add-on can't address the add-on in question with its name. But using an alias work well. Thus the name/alias is used to communicate inside Hass.io. The name have the following format `{REPO}-{SLUG}`, e.g. `local-xy` or `3283fh-myaddon`.
Use `hassio` to speak with the internal API. Use `hassio` to speak with the internal API.

View File

@ -140,7 +140,7 @@ The config for an add-on is stored in `config.json`.
### {% linkable_title Options / Schema %} ### {% linkable_title Options / Schema %}
The `options` dictionary contains all available options and their default value. Set the default value to `null` if the value is required to be given by the user before the add-on can start, and it show it inside default values. Only nested arrays and dictionaries are supported with a deep of two size. If you want make a option optional, put `?` to the end of data type, otherwise it will be a required value. The `options` dictionary contains all available options and their default value. Set the default value to `null` if the value is required to be given by the user before the add-on can start, and it show it inside default values. Only nested arrays and dictionaries are supported with a deep of two size. If you want make an option optional, put `?` to the end of data type, otherwise it will be a required value.
```json ```json
{ {

View File

@ -10,7 +10,7 @@ footer: true
redirect_from: /hassio/addon_repository/ redirect_from: /hassio/addon_repository/
--- ---
An add-on repository can contain one or more add-ons. Each add-on is stored in it's own unique folder. To be indentified as a repository, the repository must contain a configuration file. An add-on repository can contain one or more add-ons. Each add-on is stored in its own unique folder. To be indentified as a repository, the repository must contain a configuration file.
Check the [Example add-on repository](https://github.com/home-assistant/hassio-addons-example) for further details. Check the [Example add-on repository](https://github.com/home-assistant/hassio-addons-example) for further details.

View File

@ -16,7 +16,7 @@ Right now add-ons will work with images that are stored on Docker Hub (using `im
## {% linkable_title Local build %} ## {% linkable_title Local build %}
You can build an try the addon on your developer machine also. Move all addon stuff into a temp folder. If you use `FROM $BUILD_FROM` you need set a base image with build args. Normally you can use follow base images: You can build and try the addon on your developer machine also. Move all addon stuff into a temp folder. If you use `FROM $BUILD_FROM` you need set a base image with build args. Normally you can use follow base images:
- armhf: `homeassistant/armhf-base:latest` - armhf: `homeassistant/armhf-base:latest`
- aarch64: `homeassistant/aarch64-base:latest` - aarch64: `homeassistant/aarch64-base:latest`

View File

@ -35,7 +35,7 @@ If you are not using the [`frontend`](/components/frontend/) in your setup then
1. Server can send results of previous commands. 1. Server can send results of previous commands.
1. Client or server disconnects session. 1. Client or server disconnects session.
During the command phase, the client attaches a unique identifier to each message. The server will add this identifier to each message so that the client can link each message to it's origin. During the command phase, the client attaches a unique identifier to each message. The server will add this identifier to each message so that the client can link each message to its origin.
## {% linkable_title Message format %} ## {% linkable_title Message format %}

View File

@ -9,7 +9,7 @@ sharing: true
footer: true footer: true
--- ---
The goal of this getting started guide is to install Hass.io on a Raspberry Pi 3. Hass.io is our own all in one solution that turns your Raspberry PI into the ultimate home automation hub. The goal of this getting started guide is to install Hass.io on a Raspberry Pi 3. Hass.io is our own all in one solution that turns your Raspberry Pi into the ultimate home automation hub.
Follow this guide if you want to easily get started with Home Assistant, or if you have no or little Linux experience. For advanced users, check our [alternative installation methods](/docs/installation/). Follow this guide if you want to easily get started with Home Assistant, or if you have no or little Linux experience. For advanced users, check our [alternative installation methods](/docs/installation/).