diff --git a/source/_addons/dhcp_server.markdown b/source/_addons/dhcp_server.markdown index 884a5432fac..1f0df69183c 100644 --- a/source/_addons/dhcp_server.markdown +++ b/source/_addons/dhcp_server.markdown @@ -47,7 +47,7 @@ Configuration variables:  - **range_end** (*Required*): End address for dhcp leases.  - **broadcast** (*Required*): Network broadcast address.  - **gateway** (*Required*): A List of gateways. - - **interface** (*Required*): Inteface on that will be listen. Normally is `eth0` for ethernet wired connection and `wlan0` for wireless connection. + - **interface** (*Required*): Interface on that will be listen. Normally is `eth0` for ethernet wired connection and `wlan0` for wireless connection. - **hosts** (*Optional*): A list of fixed IPs for devices. - **name** (*Required*): Name/hostname of your device.  - **mac** (*Required*): Mac address of your device. diff --git a/source/_components/binary_sensor.bbb_gpio.markdown b/source/_components/binary_sensor.bbb_gpio.markdown index fbe724abf1f..b7236d54684 100644 --- a/source/_components/binary_sensor.bbb_gpio.markdown +++ b/source/_components/binary_sensor.bbb_gpio.markdown @@ -33,7 +33,7 @@ Configuration variables: - **pins** array (*Required*): Array of used pins. - **pin_name** (*Required*): Pin numbers and corresponding names. - **name** (*Required*): Friendly name to use for the frontend. - - **bouncetime** (*Optional*): Debounce time for reading input pin defined in miliseconds [ms]. Defaults to `50 ms`. + - **bouncetime** (*Optional*): Debounce time for reading input pin defined in milliseconds [ms]. Defaults to `50 ms`. - **invert_logic** (*Optional*): If `true`, inverts the input logic to ACTIVE LOW. Default is `false` (ACTIVE HIGH). - **pull_mode** (*Optional*): Type of internal pull resistor connected to input. Options are `UP` - pull-up resistor and `DOWN` - pull-down resistor. Defaults to `UP`. diff --git a/source/_components/binary_sensor.ping.markdown b/source/_components/binary_sensor.ping.markdown index 613e64316b1..d8d8ec310ba 100644 --- a/source/_components/binary_sensor.ping.markdown +++ b/source/_components/binary_sensor.ping.markdown @@ -37,6 +37,17 @@ The sensor exposes the different round trip times values measured by `ping` as a - `round trip time min` - `round trip time max` +The default polling interval is 5 minutes. As many components [based on the entity class](/docs/configuration/platform_options), it is possible to overwrite this scan interval by specifying a `scan_interval` configuration key (value in seconds). In the example below we setup the `ping` binary sensor to poll the devices every 30 seconds. + +```yaml +# Example configuration.yaml entry to ping host 192.168.0.1 with 2 packets every 30 seconds. +binary_sensor: + - platform: ping + host: 192.168.0.1 + count: 2 + scan_interval: 30 +``` +

When run on Windows systems, the round trip time attributes are rounded to the nearest millisecond and the mdev value is unavailable.

diff --git a/source/_components/binary_sensor.xiaomi_aqara.markdown b/source/_components/binary_sensor.xiaomi_aqara.markdown index a317550cbf8..a43874ff551 100644 --- a/source/_components/binary_sensor.xiaomi_aqara.markdown +++ b/source/_components/binary_sensor.xiaomi_aqara.markdown @@ -30,7 +30,7 @@ The requirement is that you have setup the [`xiaomi aqara` component](/component | Smoke Detector | smoke | JTYJ-GD-01LM/BW | on, off | | | | | Gas Leak Detector | natgas | JTQJ-BF-01LM/BW | on, off | | | | | Water Leak Sensor | sensor_wleak.aq1 | SJCGQ11LM | on, off | | | | -| Button (1st gen) | switch | WXKG01LM | on (thru long_click_press), off | `click`| `click_type`| `long_click_press`, `long_click_release`, `hold`, `single`, `double` | +| Button (1st gen) | switch | WXKG01LM | on (through long_click_press), off | `click`| `click_type`| `long_click_press`, `long_click_release`, `hold`, `single`, `double` | | Button (2nd gen) | sensor_switch.aq2 | WXKG11LM | off (always) | `click` | `click_type` | `single`, `double` | | Aqara Wireless Switch (Single) | 86sw1 | WXKG03LM | off (always) | `click` | `click_type` | `single` | | Aqara Wireless Switch (Double) | 86sw2 | WXKG02LM | off (always) | `click` | `click_type` | `single`, `both` | diff --git a/source/_components/binary_sensor.zigbee.markdown b/source/_components/binary_sensor.zigbee.markdown index 213721cb65d..233ebb2a91a 100644 --- a/source/_components/binary_sensor.zigbee.markdown +++ b/source/_components/binary_sensor.zigbee.markdown @@ -13,7 +13,7 @@ ha_release: 0.12 ha_iot_class: "Local Polling" --- -A `zigbee` binary sensor in this context is a device connected to one of the digital input pins on a [ZigBee](http://www.zigbee.org/) module. The states reported by such a device are limited to `on` or `off`. By default, a binary sensor is considered `on` when the ZigBee device's digital input pin is held 'high' and considered `off` when it is held `low`. This behaviour can be inverted by setting the `on_state` configuration variable to `low`. +A `zigbee` binary sensor in this context is a device connected to one of the digital input pins on a [ZigBee](http://www.zigbee.org/) module. The states reported by such a device are limited to `on` or `off`. By default, a binary sensor is considered `on` when the ZigBee device's digital input pin is held 'high' and considered `off` when it is held `low`. This behavior can be inverted by setting the `on_state` configuration variable to `low`. To enable a digital input pin as binary sensor in your installation, add the following lines to your `configuration.yaml`: diff --git a/source/_components/climate.ecobee.markdown b/source/_components/climate.ecobee.markdown index 4c06cbbf90b..e8711168e7b 100644 --- a/source/_components/climate.ecobee.markdown +++ b/source/_components/climate.ecobee.markdown @@ -240,7 +240,7 @@ For 'temp', the current temperature is taken as the target temperature. When None is provided as parameter, the hold_mode is turned off. It is not possible to set a vacation hold; such hold has to be defined on the thermostat directly. However, a vacation hold can be -cancelled. +canceled. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | diff --git a/source/_components/device_tracker.bluetooth_le_tracker.markdown b/source/_components/device_tracker.bluetooth_le_tracker.markdown index a9a47e20a81..03b844f6673 100644 --- a/source/_components/device_tracker.bluetooth_le_tracker.markdown +++ b/source/_components/device_tracker.bluetooth_le_tracker.markdown @@ -30,7 +30,7 @@ $ sudo apt install bluetooth libbluetooth-dev pkg-config libboost-python-dev lib Before you get started with this platform, please note that: - This platform is incompatible with Windows - - This platform requires access to the bluetooth stack, see [Rootless Setup section](#rootless-setup) for further infomation + - This platform requires access to the bluetooth stack, see [Rootless Setup section](#rootless-setup) for further information To use the Bluetooth tracker in your installation, add the following to your `configuration.yaml` file: @@ -52,7 +52,7 @@ Some BTLE devices (e.g. fitness trackers) are only visible to the devices that t ## {% linkable_title Rootless Setup %} -Normaly accessing the Bluetooth stack is reserved for root, but running programs that are networked as root is a bad security wise. To allow non-root access to the Bluetooth stack we can give Python 3 the missing capabilities to access the Bluetooth stack. Quite like setting the setuid bit (see [Stack Exchange](http://unix.stackexchange.com/questions/96106/bluetooth-le-scan-as-non-root) for more information). +Normally accessing the Bluetooth stack is reserved for root, but running programs that are networked as root is a bad security wise. To allow non-root access to the Bluetooth stack we can give Python 3 the missing capabilities to access the Bluetooth stack. Quite like setting the setuid bit (see [Stack Exchange](http://unix.stackexchange.com/questions/96106/bluetooth-le-scan-as-non-root) for more information). ```bash $ sudo apt-get install libcap2-bin diff --git a/source/_components/device_tracker.gpslogger.markdown b/source/_components/device_tracker.gpslogger.markdown index 909d620aae9..34465aec4f8 100644 --- a/source/_components/device_tracker.gpslogger.markdown +++ b/source/_components/device_tracker.gpslogger.markdown @@ -68,14 +68,14 @@ Add the above URL after you modified it with your settings into the **URL** fiel - Use the domain that Home Assistant is available on the internet or the public IP address. Can be a local IP address if you are using a VPN setup. - Only remove `[Port]` if your Home Assistant instance is using port 80. Otherwise set it to 8123. - For Home Assistant only the above URL, as written, will work - do not add or remove any parameters. -- Make sure to include your [API password](/components/http/) if you have configured a password. Add `&api_password=[Your pasword]` to the end of the URL. +- Make sure to include your [API password](/components/http/) if you have configured a password. Add `&api_password=[Your password]` to the end of the URL. - You can change the name of your device name by replacing `&device=%SER` with `&device=[Devicename]`. -If your battery drains fast then you can tune the performence of GPSLogger under **Performance** -> **Location providers** +If your battery drains fast then you can tune the performance of GPSLogger under **Performance** -> **Location providers**

Performance

-A request can be forced from the app to test if everything is working fine. A succesful request will update the `known_devices.yaml` file with the device's serial number. +A request can be forced from the app to test if everything is working fine. A successful request will update the `known_devices.yaml` file with the device's serial number. diff --git a/source/_components/frontend.markdown b/source/_components/frontend.markdown index 92c0e8d8dd4..4ba9e004cd3 100644 --- a/source/_components/frontend.markdown +++ b/source/_components/frontend.markdown @@ -39,11 +39,11 @@ frontend: required: true type: [list, string] extra_html_url: - description: "List of addtional [resources](/developers/frontend_creating_custom_ui/) to load in `latest` javascript mode." + description: "List of additional [resources](/developers/frontend_creating_custom_ui/) to load in `latest` javascript mode." required: false type: list extra_html_url_es5: - description: "List of addtional [resources](/developers/frontend_creating_custom_ui/) to load in `es5` javascript mode." + description: "List of additional [resources](/developers/frontend_creating_custom_ui/) to load in `es5` javascript mode." required: false type: list development_repo: diff --git a/source/_components/group.markdown b/source/_components/group.markdown index 9a515fafc6f..8f781722d23 100644 --- a/source/_components/group.markdown +++ b/source/_components/group.markdown @@ -118,7 +118,7 @@ group: - group.all_scripts ``` -## {% linkable_title Group behaviour %} +## {% linkable_title Group behavior %} When any member of a group is `on` then the group will also be `on`. Similarly with a device tracker, when any member of the group is `home` then the group is `home`. diff --git a/source/_components/hive.markdown b/source/_components/hive.markdown index 8f760b08c76..fbe0d5b17ff 100644 --- a/source/_components/hive.markdown +++ b/source/_components/hive.markdown @@ -49,7 +49,7 @@ The Hive Home Assistant platform currently supports the following Hive devices: - Hive Active Heating (including hot water and Hive Multizone) - Hive Active Light Dimmable - Hive Active Light Cool to Warm White -- Hive Active Light Colour Changing +- Hive Active Light Color Changing - Hive Active Plug - Hive Window or Door Sensor - Hive Motion Sensor diff --git a/source/_components/image_processing.markdown b/source/_components/image_processing.markdown index e74ef6ec5c8..6f010ebad29 100644 --- a/source/_components/image_processing.markdown +++ b/source/_components/image_processing.markdown @@ -22,7 +22,7 @@ If you are running Home Assistant over SSL or from within a container, you will Alpr entities attribute have a vehicle counter `vehicles` and all found plates as `plates`. -This event is trigger after OpenALPR found a new licence plate. +This event is trigger after OpenALPR found a new license plate. ```yaml # Example configuration.yaml automation entry diff --git a/source/_components/input_datetime.markdown b/source/_components/input_datetime.markdown index 4b9d9ae568a..73371143576 100644 --- a/source/_components/input_datetime.markdown +++ b/source/_components/input_datetime.markdown @@ -68,7 +68,7 @@ A datetime input entity's state exports several attributes that can be useful in | --------- | ----------- | | `has_time` | `true` if this entity has a time. | `has_date` | `true` if this entity has a date. -| `year`
`month`
`day` | The year, month and day of the date.
(only availabel if `has_date: true`) +| `year`
`month`
`day` | The year, month and day of the date.
(only available if `has_date: true`) | `hour`
`minute`
`second` | The hour, minute and second of the time.
(only available if `has_time: true`) | `timestamp` | A timestamp representing the time held in the input.
If `has_date: true`, this is the UNIX timestamp of the date / time held by the input. Otherwise if only `has_time: true`, this is the number of seconds since midnight representing the time held by the input. diff --git a/source/_components/input_number.markdown b/source/_components/input_number.markdown index 32829baeff4..348053d8eec 100644 --- a/source/_components/input_number.markdown +++ b/source/_components/input_number.markdown @@ -51,7 +51,7 @@ input_number: required: true type: float max: - description: Maxium value. + description: Maximum value. required: true type: float name: diff --git a/source/_components/knx.markdown b/source/_components/knx.markdown index ff8c0786fcc..4fd471efeb0 100644 --- a/source/_components/knx.markdown +++ b/source/_components/knx.markdown @@ -82,7 +82,7 @@ knx: - **fire_event** (*Optional*): If set to True, platform will write all received KNX messages to event bus - **fire_event_filter** (*Optional*): If `fire_event` is set `fire_event_filter` has to be specified. `fire_event_filter` defines a list of patterns for filtering KNX addresses. Only telegrams which match this pattern are sent to the HOme Assistant event bus. -- **state_updater** (*Optional*): The component will collect the current state of each configured device from the KNX bus to display it correctly within Home-Assistant. Set this option to False to prevent this behaviour. +- **state_updater** (*Optional*): The component will collect the current state of each configured device from the KNX bus to display it correctly within Home-Assistant. Set this option to False to prevent this behavior. - **time_address** (*Optional*): Broadcast current local time to KNX bus with configured group address. ### {% linkable_title Services %} diff --git a/source/_components/light.hive.markdown b/source/_components/light.hive.markdown index 89f55459fb0..78daeb5641c 100644 --- a/source/_components/light.hive.markdown +++ b/source/_components/light.hive.markdown @@ -19,7 +19,7 @@ The 'hive' light component integrates your Hive lights into Home Assistant, enab The Hive light component supports the following Hive products: - **Hive Active Light Dimmable** - **Hive Active Light Cool to Warm White** -- **Hive Active Light Colour Changing** +- **Hive Active Light Color Changing**

diff --git a/source/_components/light.yeelight.markdown b/source/_components/light.yeelight.markdown index 2d836c596a9..b098d007d59 100644 --- a/source/_components/light.yeelight.markdown +++ b/source/_components/light.yeelight.markdown @@ -61,8 +61,7 @@ This component is tested to work with the following models. If you have a differ - **YLDP03YL**: LED Bulb (Color) - E26 - **YLDD01YL**: Lightstrip (Color) - **YLDD02YL**: Lightstrip (Color) - - +- **MJCTD01YL**: Xiaomi Mijia Bedside Lamp - WIFI Version! diff --git a/source/_components/light.zigbee.markdown b/source/_components/light.zigbee.markdown index 5730043d1eb..a7d8529551e 100644 --- a/source/_components/light.zigbee.markdown +++ b/source/_components/light.zigbee.markdown @@ -13,7 +13,7 @@ ha_release: 0.12 ha_iot_class: "Local Polling" --- -A ZigBee light in this context is a light connected to one of the digital output pins on a ZigBee module. It can simply be switched on and off. By default, a light is considered `on` when the ZigBee device's digital output is held `high` and considered `off` when it is held `low`. This behaviour can be inverted by setting the `on_state` configuration variable to `low`. +A ZigBee light in this context is a light connected to one of the digital output pins on a ZigBee module. It can simply be switched on and off. By default, a light is considered `on` when the ZigBee device's digital output is held `high` and considered `off` when it is held `low`. This behavior can be inverted by setting the `on_state` configuration variable to `low`. To configure a digital output pin as light, add the following to your `configuration.yaml` file: diff --git a/source/_components/lirc.markdown b/source/_components/lirc.markdown index ffe675ea0c4..6d379e04ca3 100644 --- a/source/_components/lirc.markdown +++ b/source/_components/lirc.markdown @@ -34,7 +34,7 @@ The configuration is slightly different : - The former single `lirc` service is replaced with the three systemd services `lircd.service`, `lircmd.service` and `irexec.service`. There is no counterpart to the 0.9.0 `lirc` service which covered all of these. Using a separate transmitter device requires yet another service. - 0.9.4 defaults to using systemd for controlling the services. This is not just start/stop functionality, systemd is used to implement new features and to address shortcomings in 0.9.0. However, traditional systemV scripts are also installed and could be used although this is less tested and not really documented. -For more infomation have a look at `/usr/share/doc/lirc/README.Debian.gz` where the update process is explained when you have updated from jessie to stretch. +For more information have a look at `/usr/share/doc/lirc/README.Debian.gz` where the update process is explained when you have updated from jessie to stretch.

### {% linkable_title Configuring LIRC %} diff --git a/source/_components/media_player.denonavr.markdown b/source/_components/media_player.denonavr.markdown index 9d9e50da1d4..31ad2b01604 100644 --- a/source/_components/media_player.denonavr.markdown +++ b/source/_components/media_player.denonavr.markdown @@ -67,6 +67,6 @@ A few notes: - Additional option the control Denon AVR receivers with a builtin web server is using the HTTP interface with denonavr platform. - denonavr platform supports some additional functionalities like album covers, custom input source names and auto discovery. -- Marantz receivers seem to a have quite simliar interface. Thus if you own one, give it a try. +- Marantz receivers seem to a have quite similar interface. Thus if you own one, give it a try. [Denon]: /components/media_player.denon/ diff --git a/source/_components/media_player.yamaha.markdown b/source/_components/media_player.yamaha.markdown index 049b33a832d..bfe7c81c9c1 100644 --- a/source/_components/media_player.yamaha.markdown +++ b/source/_components/media_player.yamaha.markdown @@ -61,7 +61,7 @@ Configuration variables: volume control and source selection. Playback controls, for instance play and stop are available for sources that supports it. - The `play_media` service is implemented for `NET RADIO` source - only. The `media_id` is a `>` separted string of the menu path on + only. The `media_id` is a `>` separated string of the menu path on the vtuner service. For instance `Bookmarks>Internet>WAMC 90.3 FM`. ### {% linkable_title Example configuration %} diff --git a/source/_components/namecheapdns.markdown b/source/_components/namecheapdns.markdown index 3331080fa93..4f68adb4606 100644 --- a/source/_components/namecheapdns.markdown +++ b/source/_components/namecheapdns.markdown @@ -16,7 +16,7 @@ ha_release: 0.56 With the `namecheapdns` component you can automatically update your dynamic DNS entry at [namecheapdns](https://www.namecheap.com/store/domains/freedns/).

-Namecheap only supports IPv4 adresses to update. +Namecheap only supports IPv4 addresses to update.

To use the component in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/notify.facebook.markdown b/source/_components/notify.facebook.markdown index 209fe6c827d..0bdb62c8a7b 100644 --- a/source/_components/notify.facebook.markdown +++ b/source/_components/notify.facebook.markdown @@ -50,7 +50,7 @@ automation: - '+919784516314' ``` -You can also send messages to users that do not have stored their phone number with Facebook, but this requires a bit more work. The Messenger platform uses page specific user IDs instead of a global user ID. You will need to enable a webhook for the "messages" event in Facebook's developer console. Once a user writes a message to a page, that webhook will then receive the user's page specifc ID as part of the webhook's payload. Below is a simple PHP script that reacts to the message "get my id" and sends a reply containing the user's ID: +You can also send messages to users that do not have stored their phone number with Facebook, but this requires a bit more work. The Messenger platform uses page specific user IDs instead of a global user ID. You will need to enable a webhook for the "messages" event in Facebook's developer console. Once a user writes a message to a page, that webhook will then receive the user's page specific ID as part of the webhook's payload. Below is a simple PHP script that reacts to the message "get my id" and sends a reply containing the user's ID: ```php now() - 1h` diff --git a/source/_components/sensor.lacrosse.markdown b/source/_components/sensor.lacrosse.markdown index c9005581f75..f5abbb4a053 100644 --- a/source/_components/sensor.lacrosse.markdown +++ b/source/_components/sensor.lacrosse.markdown @@ -22,7 +22,7 @@ The `lacrosse` sensor platform is using the data provided by a [Jeelink](https:/ ## {% linkable_title Setup %} -Since the sensor change their ID after each powercycle/battery change you can check what sensor IDs are availble by using the command-line tool `pylacrosse` from the pylacrosse package. +Since the sensor change their ID after each powercycle/battery change you can check what sensor IDs are available by using the command-line tool `pylacrosse` from the pylacrosse package. ```bash $ sudo pylacrosse -d /dev/ttyUSB0 scan diff --git a/source/_components/sensor.linux_battery.markdown b/source/_components/sensor.linux_battery.markdown index 08c9fca5864..13fc3d3e2f6 100644 --- a/source/_components/sensor.linux_battery.markdown +++ b/source/_components/sensor.linux_battery.markdown @@ -13,7 +13,7 @@ ha_release: 0.28 ha_iot_class: "Local Polling" --- -The `linux_battery` sensor platform is using the information stored in `/sys/class/power_supply/` on your local Linux system to display details about the current state of your battery. +The `linux_battery` sensor platform is using the information stored in `/sys/class/power_supply/` on your local Linux system to display details about the current state of your battery. To setup a battery sensor to your installation, add the following to your `configuration.yaml` file: @@ -23,8 +23,20 @@ sensor: - platform: linux_battery ``` -Configuration variables: - -- **name** (*Optional*): Friendly name to use for the frontend. Default to "Battery". -- **battery** (*Optional*): Number of the battery. Default to `1`. - +{% configuration %} +name: + description: Friendly name to use for the frontend. + required: false + default: Battery + type: string +battery: + description: Number of the battery. + required: false + default: 1 + type: integer +system: + description: "The local system type. Support `linux` and `android`." + required: false + default: linux + type: string +{% endconfiguration %} diff --git a/source/_components/sensor.london_air.markdown b/source/_components/sensor.london_air.markdown index d20d33fc715..d5c9bad344c 100644 --- a/source/_components/sensor.london_air.markdown +++ b/source/_components/sensor.london_air.markdown @@ -16,7 +16,7 @@ ha_release: 0.52 The `london_air` component [queries](http://api.erg.kcl.ac.uk/AirQuality/Hourly/MonitoringIndex/GroupName=London/Json) the London air quality [data feed](https://www.londonair.org.uk/LondonAir/API/) provided by Kings College London. A single sensor will be added for each `location` ([local authority district or borough](https://en.wikipedia.org/wiki/List_of_London_boroughs)) specified in the configuration file. The state of each sensor is the overall air quality in that borough. Note that only 28 of the 32 boroughs have data available. -Boroughs can have multiple monitoring sites at different geographical positions within the borough, and each of those sites can monitor up to six different kinds of pollutant. The pollutants are described [here](http://api.erg.kcl.ac.uk/AirQuality/Information/Species/Json) and are Carbon Monoxide ([CO2](http://www.londonair.org.uk/LondonAir/guide/WhatIsCO.aspx)), Nitrogen Dioxide ([NO2](http://www.londonair.org.uk/LondonAir/guide/WhatIsNO2.aspx)), Ozone ([O3](http://www.londonair.org.uk/LondonAir/guide/WhatIsO3.aspx)), Sulphur Dioxide ([SO2](http://www.londonair.org.uk/LondonAir/guide/WhatIsSO2.aspx)), PM2.5 & PM10 [particulates](http://www.londonair.org.uk/LondonAir/guide/WhatIsPM.aspx). The `latitude` and `longitude` of each site is accessible through a `data` attribute of the sensor, as are details about the pollutants monitored at that site. The `sites` attribute of a sensor displays how many monitoring sites that sensor covers. The `updated` attribute of a sensor states when the data was last published. Nominally data is published hourly, but in my experience this can vary. To limit the number of requests made by the sensor, a single API request is made every 30 minutes. +Boroughs can have multiple monitoring sites at different geographical positions within the borough, and each of those sites can monitor up to six different kinds of pollutant. The pollutants are described [here](http://api.erg.kcl.ac.uk/AirQuality/Information/Species/Json) and are Carbon Monoxide ([CO2](http://www.londonair.org.uk/LondonAir/guide/WhatIsCO.aspx)), Nitrogen Dioxide ([NO2](http://www.londonair.org.uk/LondonAir/guide/WhatIsNO2.aspx)), Ozone ([O3](http://www.londonair.org.uk/LondonAir/guide/WhatIsO3.aspx)), Sulfur Dioxide ([SO2](http://www.londonair.org.uk/LondonAir/guide/WhatIsSO2.aspx)), PM2.5 & PM10 [particulates](http://www.londonair.org.uk/LondonAir/guide/WhatIsPM.aspx). The `latitude` and `longitude` of each site is accessible through a `data` attribute of the sensor, as are details about the pollutants monitored at that site. The `sites` attribute of a sensor displays how many monitoring sites that sensor covers. The `updated` attribute of a sensor states when the data was last published. Nominally data is published hourly, but in my experience this can vary. To limit the number of requests made by the sensor, a single API request is made every 30 minutes. To add sensors to Home-assistant for all possible areas/boroughs add the following to your `configuration.yaml` file: diff --git a/source/_components/sensor.nederlandse_spoorwegen.markdown b/source/_components/sensor.nederlandse_spoorwegen.markdown index b4745a3fb65..b9a14e66056 100644 --- a/source/_components/sensor.nederlandse_spoorwegen.markdown +++ b/source/_components/sensor.nederlandse_spoorwegen.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Nederlandse Spoorwegen" -description: "Instructions how to integrate timetable data for travelling by train in the Netherlands within Home Assistant." +description: "Instructions how to integrate timetable data for traveling by train in the Netherlands within Home Assistant." date: 2017-10-25 13:35 sidebar: true comments: false @@ -40,10 +40,10 @@ Configuration variables: - **email** (*Required*): The email address you used to request the API password. - **password** (*Required*): The API password provided by the Nederlandse Spoorwegen. -- **routes** array (*Required*): List of travelling routes. +- **routes** array (*Required*): List of traveling routes. - **name** (*Required*): Name of the route. - **from** (*Required*): The start station. - - **to** (*Required*): Direction of the travelling. + - **to** (*Required*): Direction of the traveling. - **via** (*Optional*): Optional other station you wish to visit in between. The data are coming from [Nederlandse Spoorwegen](https://www.ns.nl/). diff --git a/source/_components/sensor.onewire.markdown b/source/_components/sensor.onewire.markdown index aaa616d8dab..045c7e22800 100644 --- a/source/_components/sensor.onewire.markdown +++ b/source/_components/sensor.onewire.markdown @@ -28,7 +28,7 @@ Supported devices: The 1-Wire bus can be connected directly to the IO pins of Raspberry Pi or using dedicated interface adapter (e.g [DS9490R](https://datasheets.maximintegrated.com/en/ds/DS9490-DS9490R.pdf)). #### Raspberry Pi setup -In order ot setup 1-Wire support on Raspberry Pi, you'll need to edit `/boot/config.txt` following [this documentation](https://www.waveshare.com/wiki/Raspberry_Pi_Tutorial_Series:_1-Wire_DS18B20_Sensor#Enable_1-Wire). Don't use the `mount_dir` option. +In order to setup 1-Wire support on Raspberry Pi, you'll need to edit `/boot/config.txt` following [this documentation](https://www.waveshare.com/wiki/Raspberry_Pi_Tutorial_Series:_1-Wire_DS18B20_Sensor#Enable_1-Wire). Don't use the `mount_dir` option. #### Interface adapter setup When an interface adapter is used, sensors can be accessed on Linux hosts via [owfs 1-Wire file system](http://owfs.org/). When using an interface adapter and the owfs, the `mount_dir` option must be configured to correspond a directory, where owfs device tree has been mounted. diff --git a/source/_components/sensor.pvoutput.markdown b/source/_components/sensor.pvoutput.markdown index fe2d9b8e09e..b36ded0c286 100644 --- a/source/_components/sensor.pvoutput.markdown +++ b/source/_components/sensor.pvoutput.markdown @@ -14,7 +14,7 @@ ha_iot_class: "Cloud Polling" --- -The `pvoutput` sensor platform consumes informations from [PVOutput](http://pvoutput.org/) which were uploaded by your solar photovoltaic (PV) system. +The `pvoutput` sensor platform consumes information from [PVOutput](http://pvoutput.org/) which were uploaded by your solar photovoltaic (PV) system. To add PVOutput details to your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/sensor.rest.markdown b/source/_components/sensor.rest.markdown index c496c7a0e0e..7d8c7513134 100644 --- a/source/_components/sensor.rest.markdown +++ b/source/_components/sensor.rest.markdown @@ -196,7 +196,7 @@ sensor: User-Agent: Home Assistant REST sensor ``` -### {% linkable_title Fetch multiple JSON values and present them as attibutes %} +### {% linkable_title Fetch multiple JSON values and present them as attributes %} [JSON Test](http://www.jsontest.com) returns the current time, date and milliseconds since epoch from [http://date.jsontest.com/](http://date.jsontest.com/). diff --git a/source/_components/sensor.scrape.markdown b/source/_components/sensor.scrape.markdown index 41e77ec52be..06d1cd80424 100644 --- a/source/_components/sensor.scrape.markdown +++ b/source/_components/sensor.scrape.markdown @@ -102,7 +102,7 @@ sensor: ### {% linkable_title Get the latest podcast episode file URL %} -If you want to get the file URL for the latest episode of your [favourite podcast](https://hasspodcast.io/), so you can pass it on to a compatible media player. +If you want to get the file URL for the latest episode of your [favorite podcast](https://hasspodcast.io/), so you can pass it on to a compatible media player. ```yaml # Example configuration.yaml entry diff --git a/source/_components/sensor.swiss_public_transport.markdown b/source/_components/sensor.swiss_public_transport.markdown index bb4a265bc3a..8b3ac28b09b 100644 --- a/source/_components/sensor.swiss_public_transport.markdown +++ b/source/_components/sensor.swiss_public_transport.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Swiss Public Transport" -description: "Instructions how to integrate timetable data for travelling in Switzerland within Home Assistant." +description: "Instructions how to integrate timetable data for traveling in Switzerland within Home Assistant." date: 2015-06-02 21:45 sidebar: true comments: false diff --git a/source/_components/sensor.vasttrafik.markdown b/source/_components/sensor.vasttrafik.markdown index 787e5b237ae..a5aad007bda 100644 --- a/source/_components/sensor.vasttrafik.markdown +++ b/source/_components/sensor.vasttrafik.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Västtrafik Public Transport" -description: "Instructions how to integrate timetable data for travelling in Sweden within Home Assistant." +description: "Instructions how to integrate timetable data for traveling in Sweden within Home Assistant." date: 2016-10-05 08:45 sidebar: true comments: false @@ -14,7 +14,7 @@ ha_release: "0.30" --- -The `vasttrafik` sensor will provide you travelling details for the larger Göteborg area in Sweden from the [Västtrafik](https://vasttrafik.se/) public transportation service. +The `vasttrafik` sensor will provide you traveling details for the larger Göteborg area in Sweden from the [Västtrafik](https://vasttrafik.se/) public transportation service. You must create an application [here](https://developer.vasttrafik.se/portal/#/applications) to obtain a `key` and a `secret`. @@ -34,10 +34,10 @@ Configuration variables: - **key** (*Required*): The API key to access your Västtrafik account. - **secret** (*Required*): The API secret to access your Västtrafik account. -- **departures** array (*Required*): List of travelling routes. +- **departures** array (*Required*): List of traveling routes. - **name** (*Optional*): Name of the route. - **from** (*Required*): The start station. - - **heading** (*Optional*): Direction of the travelling. + - **heading** (*Optional*): Direction of the traveling. - **delay** (*Optional*): Delay in minutes. Defaults to 0. The data are coming from [Västtrafik](https://vasttrafik.se/). diff --git a/source/_components/switch.zigbee.markdown b/source/_components/switch.zigbee.markdown index 58bb428b79e..cbdd87bdfe4 100644 --- a/source/_components/switch.zigbee.markdown +++ b/source/_components/switch.zigbee.markdown @@ -13,7 +13,7 @@ ha_release: 0.12 ha_iot_class: "Local Polling" --- -A ZigBee switch in this context is a device connected to one of the digital output pins on a ZigBee module. It can simply be switched on and off. By default, a switch is considered `on` when the ZigBee device's digital output is held `high` and considered `off` when it is held `low`. This behaviour can be inverted by setting the `on_state` configuration variable to `low`. +A ZigBee switch in this context is a device connected to one of the digital output pins on a ZigBee module. It can simply be switched on and off. By default, a switch is considered `on` when the ZigBee device's digital output is held `high` and considered `off` when it is held `low`. This behavior can be inverted by setting the `on_state` configuration variable to `low`. To configure a digital output pin as switch, add the following to your `configuration.yaml` file: diff --git a/source/_components/timer.markdown b/source/_components/timer.markdown index b04e480aca9..7cb9984ee82 100644 --- a/source/_components/timer.markdown +++ b/source/_components/timer.markdown @@ -14,7 +14,7 @@ ha_release: 0.57 The `timer` component aims to simplify automations based on (dynamic) durations. -When a timer finishes or gets cancelled the corresponding events are fired. This allows you to differentiate if a timer has switched from `active` to `idle` because the given duration has elapsed or it has been cancelled. To control timers in your automations you can use the services mentioned below. When calling the `start` service on a timer that is already running, it resets the duration it will need to finish and restart the timer without triggering any events. This for example makes it easy to create timed lights that get triggered by motion. +When a timer finishes or gets canceled the corresponding events are fired. This allows you to differentiate if a timer has switched from `active` to `idle` because the given duration has elapsed or it has been canceled. To control timers in your automations you can use the services mentioned below. When calling the `start` service on a timer that is already running, it resets the duration it will need to finish and restart the timer without triggering any events. This for example makes it easy to create timed lights that get triggered by motion.

With the current implementation timers don't persist over restarts. After a restart they will be idle again, together with their initial configuration. @@ -42,7 +42,7 @@ Pick an icon that you can find on [materialdesignicons.com](https://materialdesi | Event | Description | | --------------- | ----------- | -| timer.cancelled | Fired when a timer has been cancelled | +| timer.cancelled | Fired when a timer has been canceled | | timer.finished | Fired when a timer has completed | ## {% linkable_title Services %} @@ -67,7 +67,7 @@ Pause a running timer. This will retain the remaining duration for later continu #### {% linkable_title Service `timer.cancel` %} -Cancel an active timer. This resets the duration to the last known initial value without firing the `timer.finished` event. If no `entity_id` is given all active timers will be cancelled. +Cancel an active timer. This resets the duration to the last known initial value without firing the `timer.finished` event. If no `entity_id` is given all active timers will be canceled. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | diff --git a/source/_components/volvooncall.markdown b/source/_components/volvooncall.markdown index 20b8fc51106..09664ef231c 100644 --- a/source/_components/volvooncall.markdown +++ b/source/_components/volvooncall.markdown @@ -62,7 +62,7 @@ Configuration variables: - **username** (*Required*): The username associated with your Volvo On Call account. - **password** (*Required*): The password for your given Volvo On Call account. - **region** (*Optional*): The region where the Volvo is registered. Needs to be set for users in North America or China. -- **service_url** (*Optional*): The service URL to use for Volvo On Call. Normally not neccessary to specify. +- **service_url** (*Optional*): The service URL to use for Volvo On Call. Normally not necessary to specify. - **name** (*Optional*): Make it possible to provide a name for the vehicles. - **resources** (*Optional*): A list of resources to display (defaults to all available). - **scandinavian_miles** (*Optional*): If set to yes, Scandinavian miles ("mil") are used for distances and fuel range (defaults to no). diff --git a/source/_components/wink.markdown b/source/_components/wink.markdown index adfb85cf36b..e1d617a9e33 100644 --- a/source/_components/wink.markdown +++ b/source/_components/wink.markdown @@ -46,7 +46,7 @@ wink: ### {% linkable_title Full oauth authentication (legacy). %} -This should be used for users that obtained their client_id and client_secret via email from Wink support prior to [developer.wink.com's](https://developer.wink.com) existance. +This should be used for users that obtained their client_id and client_secret via email from Wink support prior to [developer.wink.com's](https://developer.wink.com) existence. ```yaml diff --git a/source/_cookbook/turn_on_light_for_10_minutes_when_motion_detected.markdown b/source/_cookbook/turn_on_light_for_10_minutes_when_motion_detected.markdown index 34a244aaa57..65f5cb6b590 100644 --- a/source/_cookbook/turn_on_light_for_10_minutes_when_motion_detected.markdown +++ b/source/_cookbook/turn_on_light_for_10_minutes_when_motion_detected.markdown @@ -10,7 +10,7 @@ footer: true ha_category: Automation Examples --- -#### {% linkable_title Turn on lights with a resettable off timer %} +#### {% linkable_title Turn on lights with a resetable off timer %} This recipe will turn on a light when there is motion and turn off the light when ten minutes has passed without any motion events. diff --git a/source/_data/glossary.yml b/source/_data/glossary.yml index e66face48b2..d68d4c26ca5 100644 --- a/source/_data/glossary.yml +++ b/source/_data/glossary.yml @@ -39,7 +39,7 @@ - topic: Cookbook description: "The [Cookbook](/cookbook/) contains a set of configuration examples of Home Assistant from the community." - topic: Packages - description: "[Packages](/docs/configuration/packages/) allow you to bundle different component configuations together." + description: "[Packages](/docs/configuration/packages/) allow you to bundle different component configurations together." - topic: Customize description: "[Customization](/docs/configuration/customizing-devices/) allows you to overwrite the default parameter of your devices in the configuration." - topic: Zone diff --git a/source/_docs/automation/editor.markdown b/source/_docs/automation/editor.markdown index 8db389733c4..b0f16e14450 100644 --- a/source/_docs/automation/editor.markdown +++ b/source/_docs/automation/editor.markdown @@ -43,6 +43,13 @@ Don't forget to save your new automation rule. In order for your saved automatio ## {% linkable_title Updating your configuration to use the editor %} +First check that you have activated the configuration editor. + +```yaml +# Activate the configuration editor +config: +``` + The automation editor reads and writes to the file `automations.yaml` in your [configuration](/docs/configuration/) folder. Make sure that you have set up the automation component to read from it: ```yaml diff --git a/source/_docs/autostart/init.d.markdown b/source/_docs/autostart/init.d.markdown index dba77396779..db3ff12fee1 100644 --- a/source/_docs/autostart/init.d.markdown +++ b/source/_docs/autostart/init.d.markdown @@ -14,7 +14,7 @@ Home Assistant can run as a daemon within init.d with the script below. ### {% linkable_title 1. Copy script %} -Copy either the deamon script or the Python environment scrip at the end of this page to `/etc/init.d/hass-daemon` depending on your installation. +Copy either the daemon script or the Python environment scrip at the end of this page to `/etc/init.d/hass-daemon` depending on your installation. After that, set the script to be executable: @@ -85,7 +85,8 @@ PRE_EXEC="" # Typically /usr/bin/hass HASS_BIN="hass" RUN_AS="USER" -PID_FILE="/var/run/hass.pid" +PID_DIR="/var/run" +PID_FILE="$PID_DIR/hass.pid" CONFIG_DIR="/var/opt/homeassistant" LOG_DIR="/var/log/homeassistant" LOG_FILE="$LOG_DIR/home-assistant.log" @@ -93,11 +94,7 @@ FLAGS="-v --config $CONFIG_DIR --pid-file $PID_FILE --log-file $LOG_FILE --daemo start() { - if [ ! -d "$PID_DIR" ]; then - echo "It seems you did not run" - echo -e "\tservice hass-daemon install" - return 1 - fi + create_piddir if [ -f $PID_FILE ] && kill -0 $(cat $PID_FILE) 2> /dev/null; then echo 'Service already running' >&2 return 1 @@ -217,11 +214,7 @@ LOG_FILE="$LOG_DIR/home-assistant.log" FLAGS="-v --config $CONFIG_DIR --pid-file $PID_FILE --log-file $LOG_FILE --daemon" start() { - if [ ! -d "$PID_DIR" ]; then - echo "It seems you did not run" - echo -e "\tservice hass-daemon install" - return 1 - fi + create_piddir if [ -f $PID_FILE ] && kill -0 $(cat $PID_FILE) 2> /dev/null; then echo 'Service already running' >&2 return 1 diff --git a/source/_docs/configuration/basic.markdown b/source/_docs/configuration/basic.markdown index 99614cefc1f..77e8359eba1 100644 --- a/source/_docs/configuration/basic.markdown +++ b/source/_docs/configuration/basic.markdown @@ -37,7 +37,7 @@ Configuration variables: ### {% linkable_title Password protecting the web interface %} -First, you'll want to add a password for the Home Assistant web interface. Use your favourite text editor to open `configuration.yaml` and edit the `http` section: +First, you'll want to add a password for the Home Assistant web interface. Use your favorite text editor to open `configuration.yaml` and edit the `http` section: ```yaml http: diff --git a/source/_docs/configuration/group_visibility.markdown b/source/_docs/configuration/group_visibility.markdown index 0ec91f0f6b9..acd352a07d5 100644 --- a/source/_docs/configuration/group_visibility.markdown +++ b/source/_docs/configuration/group_visibility.markdown @@ -14,7 +14,7 @@ After filling Home Assistant with all your precious home automation devices, you ## {% linkable_title Changing visibility of a group %} -To change visibility of a group, use the service `group.set_visibility`, pass the group name as `entity_id` and use `visible` to decide wheter the group should be shown or hidden. +To change visibility of a group, use the service `group.set_visibility`, pass the group name as `entity_id` and use `visible` to decide whether the group should be shown or hidden. ```yaml service: group.set_visibility diff --git a/source/_docs/configuration/packages.markdown b/source/_docs/configuration/packages.markdown index 584014521f4..7e5016be995 100644 --- a/source/_docs/configuration/packages.markdown +++ b/source/_docs/configuration/packages.markdown @@ -81,7 +81,7 @@ Components inside packages can only specify platform entries using configuration ### {% linkable_title Create a packages folder %} -One way to organise packages would be to create a folder named "packages" in your Home Assistant configuration directory. In the packages directory you can store any number of packages in a YAML file. This entry in your `configuration.yaml` will load all packages: +One way to organize packages would be to create a folder named "packages" in your Home Assistant configuration directory. In the packages directory you can store any number of packages in a YAML file. This entry in your `configuration.yaml` will load all packages: ```yaml homeassistant: diff --git a/source/_docs/ecosystem/appdaemon/api.markdown b/source/_docs/ecosystem/appdaemon/api.markdown index 1bc4daacb34..384dab6d3a9 100755 --- a/source/_docs/ecosystem/appdaemon/api.markdown +++ b/source/_docs/ecosystem/appdaemon/api.markdown @@ -39,7 +39,7 @@ There are several circumstances under which `initialize()` might be called: - Following a change in the status of Daylight Savings Time - Following a restart of Home Assistant -In every case, the App is responsible for recreating any state it might need as if it were the first time it was ever started. If `initialize()` is called, the app can safely assume that it is either being loaded for the first time, or that all callbacks and timers have been cancelled. In either case, the APP will need to recreate them. Depending upon the application it may be desirable for the App to establish state such as whether or not a particular light is on, within the `initialize()` function to ensure that everything is as expected or to make immediate remedial action (e.g. turn off a light that might have been left on by mistake when the app was restarted). +In every case, the App is responsible for recreating any state it might need as if it were the first time it was ever started. If `initialize()` is called, the app can safely assume that it is either being loaded for the first time, or that all callbacks and timers have been canceled. In either case, the APP will need to recreate them. Depending upon the application it may be desirable for the App to establish state such as whether or not a particular light is on, within the `initialize()` function to ensure that everything is as expected or to make immediate remedial action (e.g. turn off a light that might have been left on by mistake when the app was restarted). After the `initialize()` function is in place, the rest of the app consists of functions that are called by the various callback mechanisms, and any additional functions the user wants to add as part of the program logic. Apps are able to subscribe to 2 main classes of events: @@ -539,7 +539,7 @@ self.handle = self.listen_state(self.my_callback, "light.office_1", new = "on", ### {% linkable_title cancel_listen_state() %} -Cancel a `listen_state()` callback. This will mean that the App will no longer be notified for the specific state change that has been cancelled. Other state changes will continue to be monitored. +Cancel a `listen_state()` callback. This will mean that the App will no longer be notified for the specific state change that has been canceled. Other state changes will continue to be monitored. #### {% linkable_title Synopsis %} @@ -1317,7 +1317,7 @@ self.select_option("input_select.mode", "Day") ### {% linkable_title notify() %} -This is a convenience function for the `notify.notify` service. It will send a notification to your defualt notification service. If you have more than one, use `call_service()` to call the specific notification service you require instead. +This is a convenience function for the `notify.notify` service. It will send a notification to your default notification service. If you have more than one, use `call_service()` to call the specific notification service you require instead. #### {% linkable_title Synopsis %} @@ -1534,7 +1534,7 @@ The name of the event that caused the callback, e.g. `"MODE_CHANGE"` or `call_se A dictionary containing any additional information associated with the event. -### {% linkable_title Use of Events for Signalling between Home Assistant and AppDaemon %} +### {% linkable_title Use of Events for Signaling between Home Assistant and AppDaemon %} Home Assistant allows for the creation of custom events and existing components can send and receive them. This provides a useful mechanism for signaling back and forth between Home Assistant and AppDaemon. For instance, if you would like to create a UI Element to fire off some code in Home Assistant, all that is necessary is to create a script to fire a custom event, then subscribe to that event in AppDaemon. The script would look something like this: @@ -1701,7 +1701,7 @@ time() #### {% linkable_title Returns %} -A localised Python time object representing the current AppDaemon time. +A localized Python time object representing the current AppDaemon time. #### {% linkable_title Parameters %} @@ -1725,7 +1725,7 @@ date() #### {% linkable_title Returns %} -A localised Python time object representing the current AppDaemon date. +A localized Python time object representing the current AppDaemon date. #### {% linkable_title Parameters %} @@ -1749,7 +1749,7 @@ datetime() #### {% linkable_title Returns %} -A localised Python datetime object representing the current AppDaemon date and time. +A localized Python datetime object representing the current AppDaemon date and time. #### {% linkable_title Parameters %} @@ -1764,7 +1764,7 @@ now = self.datetime() ### {% linkable_title convert_utc() %} -Home Assistant provides timestamps of several different sorts that may be used to gain additional insight into state changes. These timestamps are in UTC and are coded as ISO 8601 Combined date and time strings. `convert_utc()` will accept one of these strings and convert it to a localised Python datetime object representing the timestamp +Home Assistant provides timestamps of several different sorts that may be used to gain additional insight into state changes. These timestamps are in UTC and are coded as ISO 8601 Combined date and time strings. `convert_utc()` will accept one of these strings and convert it to a localized Python datetime object representing the timestamp #### {% linkable_title Synopsis %} @@ -1774,7 +1774,7 @@ convert_utc(utc_string) #### {% linkable_title Returns %} -`convert_utc(utc_string)` returns a localised Python datetime object representing the timestamp. +`convert_utc(utc_string)` returns a localized Python datetime object representing the timestamp. #### {% linkable_title Parameters %} @@ -2072,7 +2072,7 @@ Note the timestamps in the log - AppDaemon believes it is now just before sunset ### {% linkable_title Speeding things up %} -Some Apps need to run for periods of a day or two for you to test all aspects. This can be time consuming, but Time Travel can also help here in two ways. The first is by speeding up time. To do this, simply use the `-t` option on the command line. This specifies the amount of time a second lasts while time travelling. The default of course is 1 second, but if you change it to `0.1` for instance, AppDaemon will work 10x faster. If you set it to `0`, AppDaemon will work as fast as possible and, depending in your hardware, may be able to get through an entire day in a matter of minutes. Bear in mind however, due to the threaded nature of AppDaemon, when you are running with `-t 0` you may see actual events firing a little later than expected as the rest of the system tries to keep up with the timer. To set the tick time, start AppDaemon as follows: +Some Apps need to run for periods of a day or two for you to test all aspects. This can be time consuming, but Time Travel can also help here in two ways. The first is by speeding up time. To do this, simply use the `-t` option on the command line. This specifies the amount of time a second lasts while time traveling. The default of course is 1 second, but if you change it to `0.1` for instance, AppDaemon will work 10x faster. If you set it to `0`, AppDaemon will work as fast as possible and, depending in your hardware, may be able to get through an entire day in a matter of minutes. Bear in mind however, due to the threaded nature of AppDaemon, when you are running with `-t 0` you may see actual events firing a little later than expected as the rest of the system tries to keep up with the timer. To set the tick time, start AppDaemon as follows: ```bash $ appdaemon -t 0.1 @@ -2105,4 +2105,4 @@ $ appdaemon -s "2016-06-06 19:16:00" -s "2016-06-06 20:16:00" -t 0 ### {% linkable_title A Note on Times %} -Some Apps you write may depend on checking times of events relative to the current time. If you are time travelling this will not work if you use standard python library calls to get the current time and date etc. For this reason, always use the AppDamon supplied `time()`, `date()` and `datetime()` calls, documented earlier. These calls will consult with AppDaemon's internal time rather than the actual time and give you the correct values. +Some Apps you write may depend on checking times of events relative to the current time. If you are time traveling this will not work if you use standard python library calls to get the current time and date etc. For this reason, always use the AppDamon supplied `time()`, `date()` and `datetime()` calls, documented earlier. These calls will consult with AppDaemon's internal time rather than the actual time and give you the correct values. diff --git a/source/_docs/ecosystem/backup/backup_github.markdown b/source/_docs/ecosystem/backup/backup_github.markdown index 8c8c9ad7b35..db4ab29626d 100644 --- a/source/_docs/ecosystem/backup/backup_github.markdown +++ b/source/_docs/ecosystem/backup/backup_github.markdown @@ -133,7 +133,7 @@ Every time you run this script, you will be prompted for a comment to describe t [Travis CI](https://travis-ci.org) is a continuous integration testing system that runs every time the code in your repository is updated and allows you to validate that your code works on a fresh install. -- [Authorise Travis CI](https://travis-ci.org/auth) to have access to your github repos. +- [Authorize Travis CI](https://travis-ci.org/auth) to have access to your github repos. - Create the build script that travis will run to test your repo. - Create a dummy secrets.yaml for Travis. diff --git a/source/_docs/ecosystem/certificates/lets_encrypt.markdown b/source/_docs/ecosystem/certificates/lets_encrypt.markdown index 2841c355031..b2ca1f4bea6 100644 --- a/source/_docs/ecosystem/certificates/lets_encrypt.markdown +++ b/source/_docs/ecosystem/certificates/lets_encrypt.markdown @@ -88,7 +88,7 @@ Type the following command to list your network interfaces: $ ifconfig ``` -You will receive an ouput similar to the image below: +You will receive an output similar to the image below:

diff --git a/source/_docs/ecosystem/ios/notifications/actions.markdown b/source/_docs/ecosystem/ios/notifications/actions.markdown index df7caf240c0..eb66feb66f3 100644 --- a/source/_docs/ecosystem/ios/notifications/actions.markdown +++ b/source/_docs/ecosystem/ios/notifications/actions.markdown @@ -32,7 +32,7 @@ In advance of sending a notification: When sending a notification: -1. Send a notification with `data.push.category` set to a pre-defined notification category identifer. +1. Send a notification with `data.push.category` set to a pre-defined notification category identifier. 2. Push notification delivered to device 3. User opens notification. 3. Action tapped diff --git a/source/_docs/frontend/browsers.markdown b/source/_docs/frontend/browsers.markdown index 6ad520acfc1..611b8586ae5 100644 --- a/source/_docs/frontend/browsers.markdown +++ b/source/_docs/frontend/browsers.markdown @@ -12,7 +12,7 @@ redirect_from: /getting-started/browsers/ Home Assistant requires a web browser to show the frontend and supports all major modern browsers. We don't test the web interface against all available browsers but this page tracks different browsers on various operating systems and should help you to pick a browser which works. The "Release" column contains the release number which were tested. This doen't mean that older or newer releases not work. -If a browser is listed as working but you are still having problems, it is possible that some add-on or extension may be the problem. Some add-ons or extenstion are known to cause issue with the frontend, but it's not possible to test them all. If you are having issues with the frontend displaying correctly, you should disable all your add-ons or extensions and enable them one at a time. +If a browser is listed as working but you are still having problems, it is possible that some add-on or extension may be the problem. Some add-ons or extension are known to cause issue with the frontend, but it's not possible to test them all. If you are having issues with the frontend displaying correctly, you should disable all your add-ons or extensions and enable them one at a time. We would appreciate if you help to keep this page up-to-date and add feedback. diff --git a/source/_docs/installation/docker.markdown b/source/_docs/installation/docker.markdown index 0b327c90076..63212564d60 100644 --- a/source/_docs/installation/docker.markdown +++ b/source/_docs/installation/docker.markdown @@ -40,7 +40,7 @@ This will let you access your Home Assistant portal from http://localhost:8123, ### {% linkable_title Synology NAS %} -As Synology within DSM now supports Docker (with a neat UI), you can simply install Home Assistant using docker without the need for command-line. For details about the package (including compatability-information, if your NAS is supported), see https://www.synology.com/en-us/dsm/app_packages/Docker +As Synology within DSM now supports Docker (with a neat UI), you can simply install Home Assistant using docker without the need for command-line. For details about the package (including compatibility-information, if your NAS is supported), see https://www.synology.com/en-us/dsm/app_packages/Docker The steps would be: * Install "Docker" package on your Synology NAS diff --git a/source/_docs/installation/hassbian/customization.markdown b/source/_docs/installation/hassbian/customization.markdown index dd33b47401c..adc479f6d46 100644 --- a/source/_docs/installation/hassbian/customization.markdown +++ b/source/_docs/installation/hassbian/customization.markdown @@ -15,7 +15,7 @@ The tool is available by running `hassbian-config`. ### Install scripts To view the available packages run `hassbian-config show` and `sudo hassbian-config install PACKAGENAME`. - - Install Hue. Configures the Python executable to allow usage of low numbered ports for use with Emulated Hue component thats used with Amazon Echo, Google Home and Mycroft.ai. + - Install Hue. Configures the Python executable to allow usage of low numbered ports for use with Emulated Hue component that's used with Amazon Echo, Google Home and Mycroft.ai. - Install MariaDB. This script installs MariaDB and it's dependencies for use with the recorder component in Home Assistant. No database or database user is created during this setup and will need to be created manually. - Install Mosquitto MQTT server. Installs the latest Mosquitto package and client tools from the Mosquitto projects official repository. Now includes websocket support. - Install Libcec. Adds local [HDMI CEC support][cec]. *This scipt is currently brooken upstream since it currently doesn't build properly for Python >3.4* diff --git a/source/_docs/installation/vagrant.markdown b/source/_docs/installation/vagrant.markdown index 8616b286fb3..66b48d09cb1 100644 --- a/source/_docs/installation/vagrant.markdown +++ b/source/_docs/installation/vagrant.markdown @@ -30,7 +30,7 @@ $ cd home-assistant/virtualization/vagrant ```

-The following instructions will assume you changed your working directory to be `home-assistant/virtualization/vagrant`. This is mandatory because Vagrant will look for informations about the running VM inside that folder and won't work otherwise +The following instructions will assume you changed your working directory to be `home-assistant/virtualization/vagrant`. This is mandatory because Vagrant will look for information about the running VM inside that folder and won't work otherwise

diff --git a/source/_docs/installation/virtualenv.markdown b/source/_docs/installation/virtualenv.markdown index a851a8eb78f..51ab71aa141 100644 --- a/source/_docs/installation/virtualenv.markdown +++ b/source/_docs/installation/virtualenv.markdown @@ -65,7 +65,7 @@ _(If you're on a Debian based system, you will need to install Python virtual en ### {% linkable_title Notes %} - In the future, if you want to start Home Assistant manually again, follow step 2, 3 and 5. -- It's recommanded to run Home Assistant as a dedicated user. +- It's recommended to run Home Assistant as a dedicated user.

Looking for more advanced guides? Check our [Rasbian guide](/docs/installation/raspberry-pi/) or the [other installation guides](/docs/installation/). diff --git a/source/_docs/scripts.markdown b/source/_docs/scripts.markdown index d61ee449b8d..c0c23fe63ca 100644 --- a/source/_docs/scripts.markdown +++ b/source/_docs/scripts.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Script Syntax" -description: "Documention for the Home Assistant Script Syntax." +description: "Documentation for the Home Assistant Script Syntax." date: 2016-04-24 08:30 +0100 sidebar: true comments: false @@ -124,16 +124,51 @@ event_data: entity_id: device_tracker.paulus domain: light ``` + You can also use event_data_template to fire an event with custom data. This could be used to pass data to another script awaiting an event trigger. -``` + +{% raw %} +```yaml event: MY_EVENT event_data_template: name: myEvent customData: "{{ myCustomVariable }}" ``` +{% endraw %} +### {% linkable_title Raise and Consume Custom Events %} +The following automation shows how to raise a custom event called `event_light_turned_on` with `entity_id` as the event data. The action part could be inside a script or an automation. + +{% raw %} +```yaml +- alias: Fire Event + trigger: + platform: state + entity_id: switch.kitchen + to: 'on' + action: + event: event_light_state_changed + event_data: + state: "on" +``` +{% 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. + +{% raw %} +```yaml +- alias: Capture Event + trigger: + platform: event + event_type: event_light_state_changed + action: + - service: notify.notify + data_template: + message: "kitchen light is turned {{ trigger.event.data.state }}" +``` +{% endraw %} [Script component]: /components/script/ [automations]: /getting-started/automation-action/ diff --git a/source/_docs/z-wave/adding.markdown b/source/_docs/z-wave/adding.markdown index 04c01cc9271..e2a34934bad 100644 --- a/source/_docs/z-wave/adding.markdown +++ b/source/_docs/z-wave/adding.markdown @@ -16,7 +16,7 @@ To add (include) a non-secure Z-Wave [device](/docs/z-wave/devices/) to your sys 1. Go to the [Z-Wave control panel](/docs/z-wave/control-panel/) in the Home Assistant frontend 2. Click the **Add Node** button in the *Z-Wave Network Management* card - this will place the controller in inclusion mode 3. Activate your device to be included by following the instructions provided with the device -4. With the device in its final location, run a *Heal* +4. With the device in its final location, run a *Heal Network* Don't use this for [secure devices](https://home-assistant.io/docs/z-wave/adding/#adding-secure-devices), since this is likely to limit the features the device supports. @@ -63,6 +63,7 @@ After defining your network key, follow these steps to add (include) a secure Z- 1. Go to the [Z-Wave control panel](/docs/z-wave/control-panel/) in the Home Assistant frontend 2. Click the **Add Node Secure** button in the *Z-Wave Network Management* card - this will place the controller in inclusion mode 3. Activate your device to be included by following the instructions provided with the device +4. With the device in its final location, run a *Heal Network* ## {% linkable_title Removing Devices %} @@ -71,4 +72,4 @@ To remove (exclude) a Z-Wave device from your system: 1. Go to the Z-Wave control panel in the Home Assistant frontend 2. Click the **Remove Node** button in the *Z-Wave Network Management* card - this will place the controller in exclusion mode 3. Activate your device to be excluded by following the instructions provided with the device -4. With the device in its final location, run a *Heal* +4. Run a *Heal Network* so all the other nodes learn about its removal diff --git a/source/_docs/z-wave/control-panel.markdown b/source/_docs/z-wave/control-panel.markdown index c33375f242b..f204afed4f6 100644 --- a/source/_docs/z-wave/control-panel.markdown +++ b/source/_docs/z-wave/control-panel.markdown @@ -39,7 +39,7 @@ Here is where you [include and exclude](/docs/z-wave/adding/) Z-Wave devices fro * **Rename Node** sets a node's name - this won't happen immediately, and requires you to restart Home Assistant (not reboot) to set the new name -* **Heal Node** starts healing of the node.(Update neighbour list and update return routes) +* **Heal Node** starts healing of the node.(Update neighbor list and update return routes) * **Test Node** sends no_op test messages to the node. This could in theory bring back a dead node. @@ -114,7 +114,7 @@ Underneath that you can select any supported configuration parameter to see the ## {% linkable_title Node user codes %} -If your node has user codes, you can set and delete them. The format is raw hex Ascii code. Bellow the input you will see your actual code. For normal nodes this is as follows: +If your node has user codes, you can set and delete them. The format is raw hex Ascii code. Below the input you will see your actual code. For normal nodes this is as follows: ```yaml \x30 = 0 \x31 = 1 diff --git a/source/_docs/z-wave/device-specific.markdown b/source/_docs/z-wave/device-specific.markdown index 30e6bef26d5..218268bac58 100644 --- a/source/_docs/z-wave/device-specific.markdown +++ b/source/_docs/z-wave/device-specific.markdown @@ -29,7 +29,7 @@ Home Assistant stores logs from Z-Wave in `OZW_log.txt` in the Home Assistant co ### {% linkable_title Aeotec Z-Stick %} -It's totally normal for your Z-Wave stick to cycle through its LEDs (Yellow, Blue and Red) while plugged into your system. If you don't like this behaviour it can be turned off. +It's totally normal for your Z-Wave stick to cycle through its LEDs (Yellow, Blue and Red) while plugged into your system. If you don't like this behavior it can be turned off. Use the following example commands from a terminal session on your Pi where your Z-Wave stick is connected. diff --git a/source/_docs/z-wave/installation.markdown b/source/_docs/z-wave/installation.markdown index d5bdbae4c98..1846468f829 100644 --- a/source/_docs/z-wave/installation.markdown +++ b/source/_docs/z-wave/installation.markdown @@ -10,6 +10,14 @@ footer: true redirect_from: /getting-started/z-wave-installation/ --- +The first time you enable the Z-Wave component it will install the Z-Wave drivers (python-openzwave). This can take up to half an hour on slow machines like Raspberry Pi. + +Installing the drivers might require some extra packages to be installed. Check your platform below. + +## {% linkable_title Platform specific installation instructions %} + +### {% linkable_title Linux (except Hass.io) %} + On Linux platforms (other than Hass.io) there is one dependency you will need to have installed ahead of time (included in `systemd-devel` on Fedora/RHEL systems): ```bash @@ -18,19 +26,17 @@ $ sudo apt-get install libudev-dev On Python 3.6 you may also have to install libpython3.6-dev, and possibly python3.6-dev. -When installing on macOS you may have to also run the command below ahead of time, replace "x.x" with the version of Python (`$ python3 --version`) you have installed. +### {% linkable_title macOS %} + +When installing on macOS you may have to also run the command below ahead of time, replace "x.x" with the version of Python (`$ python3 --version`) you have installed. ```bash $ sudo /Applications/Python\ x.x/Install\ Certificates.command ``` -

-The installation of python-openzwave happens when you first enable the Z-Wave component, and can take half an hour or more on a Raspberry Pi. -

+### {% linkable_title Raspberry Pi %} -

-On Raspberry Pi you will need to enable the serial interface in the raspbi-config tool before you can add Z-Wave to Home Assistant. -

+On Raspberry Pi you will need to enable the serial interface in the `raspbi-config` tool before you can add Z-Wave to Home Assistant. ## {% linkable_title Configuration %} @@ -41,7 +47,7 @@ zwave: ``` {% configuration zwave %} -usb_path: +usb_path: description: The port where your device is connected to your Home Assistant host. required: false type: string @@ -51,7 +57,7 @@ network_key: required: false type: string default: None -config_path: +config_path: description: The path to the Python OpenZWave configuration files. required: false type: string @@ -76,11 +82,11 @@ new_entity_ids: required: false type: boolean default: True -device_config: +device_config: description: This attribute contains node-specific override values. (For releases prior to 0.39 this variable is called **customize**) See [Customizing devices and services](/docs/configuration/customizing-devices/) for the format. required: false type: string, list - keys: + keys: ignored: description: Ignore this entity completely. It won't be shown in the Web Interface and no events are generated for it. required: false @@ -163,16 +169,10 @@ To enable Z-Wave, plug your Z-Wave USB stick into your Raspberry Pi 3 and add th ```yaml zwave: - usb_path: /dev/ttyAMA0 + usb_path: /dev/ttyACM0 ``` -For some devices the `/dev/ttyAMA0` device is not detected by udev and is therefore not mapped by Docker. To explicitly set this device for mapping to Home-Assistant, execute the following command using the ssh add-on: - -```bash -$ curl -d '{"devices": ["ttyAMA0"]}' http://hassio/homeassistant/options -``` - -After that, you need to change `usb_path` to `/dev/ttyAMA0`. +Depending on your Z-Wave device it may instead be `/dev/ttyAMA0` (eg Razberry board) or `/dev/ttyUSB0` (eg HUBUZB-1). ### {% linkable_title RancherOS %} @@ -202,7 +202,7 @@ Ensure you keep a backup of this key. If you have to rebuild your system and don ## {% linkable_title First Run %} -The (compilation and) installation of python-openzwave happens when you first enable the Z-Wave component, and can take half an hour or more on a Raspbery Pi. When you upgrade Home Assistant and python-openzwave is also upgraded, this will also result in a delay while the new version is compiled and installed. +The (compilation and) installation of python-openzwave happens when you first enable the Z-Wave component, and can take half an hour or more on a Raspberry Pi. When you upgrade Home Assistant and python-openzwave is also upgraded, this will also result in a delay while the new version is compiled and installed. The first run after adding a device is when the `zwave` component will take time to initialize the entities, some entities may appear with incomplete names. Running a network heal may speed up this process. diff --git a/source/_includes/asides/developers_navigation.html b/source/_includes/asides/developers_navigation.html index 34f1de46476..0f42206817a 100644 --- a/source/_includes/asides/developers_navigation.html +++ b/source/_includes/asides/developers_navigation.html @@ -95,6 +95,7 @@
  • {% active_link /developers/hassio/addon_communication/ Communication %}
  • {% active_link /developers/hassio/addon_testing/ Local Testing %}
  • {% active_link /developers/hassio/addon_publishing/ Publishing %}
  • +
  • {% active_link /developers/hassio/addon_presentation/ Presentation %}
  • {% active_link /developers/hassio/addon_repository/ Repositories %}
  • diff --git a/source/_posts/2015-02-07-looking-at-the-past.markdown b/source/_posts/2015-02-07-looking-at-the-past.markdown index dad5e30306d..bac7154ca78 100644 --- a/source/_posts/2015-02-07-looking-at-the-past.markdown +++ b/source/_posts/2015-02-07-looking-at-the-past.markdown @@ -15,7 +15,7 @@ Ever since the launch of Home Assistant you have been able to track the state of * Recorder component that will record every event to a SQLite database * History component that will query and aggregate the recorded events -By adding this view into the past, we are adding an extra dimension into the state of your house. This brings great new possibilities for future features. The focus of todays release is on getting the recording component to you to start recording and getting some data. To show what is being recorded a view has been added that shows the last 24 hours of your house. Expect more extensive tools to explore your history in the future. +By adding this view into the past, we are adding an extra dimension into the state of your house. This brings great new possibilities for future features. The focus of today's release is on getting the recording component to you to start recording and getting some data. To show what is being recorded a view has been added that shows the last 24 hours of your house. Expect more extensive tools to explore your history in the future. Adding history to the UI was a challenge on itself because the old UI did not support easy navigation. So to add to the awesomeness of this release, Home Assistant also got a face lift. diff --git a/source/_posts/2015-03-08-new-logo.markdown b/source/_posts/2015-03-08-new-logo.markdown index 4fb3fd2a17c..4280e6be47b 100644 --- a/source/_posts/2015-03-08-new-logo.markdown +++ b/source/_posts/2015-03-08-new-logo.markdown @@ -7,7 +7,7 @@ date_formatted: March 8, 2015 author: Paulus Schoutsen author_twitter: balloob comments: true -categories: Organisation +categories: Organization --- It is well known that you are either a good programmer or a good designer. It's rare you'll meet someone that is both. That's why it wasn't surprising to anyone that the logo that I made was mediocre — at best. Luckily, [Jeremy Geltman](http://jeremygeltman.com/) has come to the rescue and contributed a brand new logo for Home Assistant. diff --git a/source/_posts/2015-09-11-different-ways-to-use-mqtt-with-home-assistant.markdown b/source/_posts/2015-09-11-different-ways-to-use-mqtt-with-home-assistant.markdown index 37fe00d6ce9..54b9c76e49b 100644 --- a/source/_posts/2015-09-11-different-ways-to-use-mqtt-with-home-assistant.markdown +++ b/source/_posts/2015-09-11-different-ways-to-use-mqtt-with-home-assistant.markdown @@ -132,7 +132,7 @@ char* deviceId = "sensor01"; // Name of the sensor char* stateTopic = "home-assistant/sensor01/brightness"; // MQTT topic where values are published int sensorPin = A0; // Pin to which the sensor is connected to char buf[4]; // Buffer to store the sensor value -int updateInterval = 1000; // Interval in miliseconds +int updateInterval = 1000; // Interval in milliseconds // MQTT server settings IPAddress mqttServer(192, 168, 0, 12); diff --git a/source/_posts/2015-09-18-monitoring-with-glances-and-home-assistant.markdown b/source/_posts/2015-09-18-monitoring-with-glances-and-home-assistant.markdown index 9e6b903c4c6..9753a074adb 100644 --- a/source/_posts/2015-09-18-monitoring-with-glances-and-home-assistant.markdown +++ b/source/_posts/2015-09-18-monitoring-with-glances-and-home-assistant.markdown @@ -11,7 +11,7 @@ og_image: /images/supported_brands/glances.png --- -Inspried by a [feature requests](https://github.com/home-assistant/home-assistant/issues/310) I started looking into the available options to do monitoring of remote hosts. The feature request is about displaying system information in a similar way than the [systemmonitor](/components/sensor.systemmonitor/) sensor does it for the local system. After a while I started to think that it would be a nice addition for a small home network where no full-blown system monitoring setup is present. +Inspired by a [feature requests](https://github.com/home-assistant/home-assistant/issues/310) I started looking into the available options to do monitoring of remote hosts. The feature request is about displaying system information in a similar way than the [systemmonitor](/components/sensor.systemmonitor/) sensor does it for the local system. After a while I started to think that it would be a nice addition for a small home network where no full-blown system monitoring setup is present. diff --git a/source/_posts/2016-04-17-updated-documentation.markdown b/source/_posts/2016-04-17-updated-documentation.markdown index e0e956e4f0e..e3ef6cf9a03 100644 --- a/source/_posts/2016-04-17-updated-documentation.markdown +++ b/source/_posts/2016-04-17-updated-documentation.markdown @@ -1,7 +1,7 @@ --- layout: post title: "Updated documentation" -description: "We have reorganised our documentation which should make it easier to get started and develop for Home Assistant." +description: "We have reorganized our documentation which should make it easier to get started and develop for Home Assistant." date: 2016-04-17 23:09:00 UTC date_formatted: "April 17, 2016" author: Paulus Schoutsen @@ -14,7 +14,7 @@ One of the main complaints that we receive is something along the lines "I read Our documentation has been going through various phases. Initially it was just the README in our GitHub repository. I discovered Jekyll and GitHub pages in December 2014 and created home-assistant.io. I more or less broke the README in 5 pages and [called it a website]. Back then we had a whopping [11 components](https://github.com/home-assistant/home-assistant.io/blob/86bb2df430ce267ab2123d51592d3f068ae509b5/source/components/index.markdown). -As Home Assistant grew, so did our documentation. [Fabian Affolter](https://github.com/fabaff) does an amazing job in making sure there is at least a documentation stub for each new feature that lands. And that's quite a feat given our [frequent releases](https://home-assistant.io/blog/categories/release-notes/)! But despite all the efforts, the documentation outgrew our existing documentation organisation. +As Home Assistant grew, so did our documentation. [Fabian Affolter](https://github.com/fabaff) does an amazing job in making sure there is at least a documentation stub for each new feature that lands. And that's quite a feat given our [frequent releases](https://home-assistant.io/blog/categories/release-notes/)! But despite all the efforts, the documentation outgrew our existing documentation organization. Today it has been almost 1.5 years since we started the website. We now have [264 components and platforms] under our belt and have been honored with 1.5 million page views ✨. And hopefully we now also have documentation that our community deserves. diff --git a/source/_posts/2016-04-19-to-infinity-and-beyond.markdown b/source/_posts/2016-04-19-to-infinity-and-beyond.markdown index e8b0e0ffd2d..5ee06d15e8f 100644 --- a/source/_posts/2016-04-19-to-infinity-and-beyond.markdown +++ b/source/_posts/2016-04-19-to-infinity-and-beyond.markdown @@ -7,10 +7,10 @@ date_formatted: "April 19, 2016" author: Paulus Schoutsen author_twitter: balloob comments: true -categories: Organisation +categories: Organization --- -After 2.5 years I think we can proudly say: Home Assistant is a success. I write _we_ because Home Assistant is no longer a one-person side project. It has become the side project of many people who spend countless hours on making Home Assistant the best home automation software out there. To acknowledge this we migrated the repositories from being under my name to be under our own [organisation on GitHub][gh-ha]. +After 2.5 years I think we can proudly say: Home Assistant is a success. I write _we_ because Home Assistant is no longer a one-person side project. It has become the side project of many people who spend countless hours on making Home Assistant the best home automation software out there. To acknowledge this we migrated the repositories from being under my name to be under our own [organization on GitHub][gh-ha]. On our journey we've reached many noteworthy milestones: diff --git a/source/_posts/2016-04-21-bluetooth-lg-webos-tvs-and-roombas.markdown b/source/_posts/2016-04-21-bluetooth-lg-webos-tvs-and-roombas.markdown index 14794081d8a..72b13a6c8a7 100644 --- a/source/_posts/2016-04-21-bluetooth-lg-webos-tvs-and-roombas.markdown +++ b/source/_posts/2016-04-21-bluetooth-lg-webos-tvs-and-roombas.markdown @@ -11,9 +11,9 @@ categories: Release-Notes 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 travelling 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 [organisation 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 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. diff --git a/source/_posts/2016-04-30-ibeacons-part-1-making-presence-detection-work-better.markdown b/source/_posts/2016-04-30-ibeacons-part-1-making-presence-detection-work-better.markdown index 0c39c255a18..465e5278a2b 100644 --- a/source/_posts/2016-04-30-ibeacons-part-1-making-presence-detection-work-better.markdown +++ b/source/_posts/2016-04-30-ibeacons-part-1-making-presence-detection-work-better.markdown @@ -20,7 +20,7 @@ The reason I started using iBeacons was to improve presence detection (and I thi When you use OwnTracks in standard _major move_ mode (which is kind to your phone battery) it sometimes fails to update when you’d like it to. In my case I found that it would often send a location update as I was on my way home, but then not update when I got home. The result would be that Home Assistant would think I was 500M away from home, and take quite a while to notice I was home. It would also mean that the automation that should turn on my lights when I got home didn’t work very well! There were a few times when my phone location updated at 2am and turned the lights on for me. Fortunately my wife is very patient! -Luckily, OwnTracks supports iBeacons so I could use them to make presence detection more reliable. When OwnTracks sees a beacon it recognises, it will send an update. This means that if you put a beacon at your front door - OwnTracks will see it within a few seconds of you arriving home - and send an update saying it has seen this iBeacon. +Luckily, OwnTracks supports iBeacons so I could use them to make presence detection more reliable. When OwnTracks sees a beacon it recognizes, it will send an update. This means that if you put a beacon at your front door - OwnTracks will see it within a few seconds of you arriving home - and send an update saying it has seen this iBeacon. @@ -31,7 +31,7 @@ To do this you first need to set up [MQTT] and [OwnTracks] in Home assistant - a [MQTT]: /components/mqtt/#picking-a-broker [OwnTracks]: /components/device_tracker.owntracks/ -You then have to (A) tell Home Assistant where the beacon is located and (B) tell OwnTracks to recognise the beacon. +You then have to (A) tell Home Assistant where the beacon is located and (B) tell OwnTracks to recognize the beacon. #### {% linkable_title A. Tell Home Assistant where your beacon is located %} diff --git a/source/_posts/2016-06-23-usb-webcams-and-home-assistant.markdown b/source/_posts/2016-06-23-usb-webcams-and-home-assistant.markdown index 8f5471887de..e2d4a191b4c 100644 --- a/source/_posts/2016-06-23-usb-webcams-and-home-assistant.markdown +++ b/source/_posts/2016-06-23-usb-webcams-and-home-assistant.markdown @@ -35,7 +35,7 @@ crw-rw----+ 1 root video 81, 0 Jun 23 08:05 /dev/video0 crw-rw----+ 1 root video 81, 1 Jun 23 08:36 /dev/video1 ``` -We need an additional software part to handle the cameras. [motion](http://lavrsen.dk/foswiki/bin/view/Motion/WebHome) is capable of monitoring the video signal from USB and network cameras, do motion detection, and other nifty stuff like saving images, add text, or basic image manipulations. Make sure that you have the [RPM Fusion respository](http://rpmfusion.org/) enabled. +We need an additional software part to handle the cameras. [motion](http://lavrsen.dk/foswiki/bin/view/Motion/WebHome) is capable of monitoring the video signal from USB and network cameras, do motion detection, and other nifty stuff like saving images, add text, or basic image manipulations. Make sure that you have the [RPM Fusion repository](http://rpmfusion.org/) enabled. ```bash $ sudo dnf -y install motion diff --git a/source/_posts/2016-07-19-visualizing-your-iot-data.markdown b/source/_posts/2016-07-19-visualizing-your-iot-data.markdown index a0f865a8cbc..ca2f337a3da 100644 --- a/source/_posts/2016-07-19-visualizing-your-iot-data.markdown +++ b/source/_posts/2016-07-19-visualizing-your-iot-data.markdown @@ -103,7 +103,7 @@ plt.xlabel('Time line') plt.savefig('sensor.png') ``` -Creating a connection to the database and executing a query is similar to the ways already seen. The return values from the query are splitted into two lists. The time stamps must be converted in an value which is accepted by matplotlib and then the graph is generated and saved as image. +Creating a connection to the database and executing a query is similar to the ways already seen. The return values from the query are split into two lists. The time stamps must be converted in an value which is accepted by matplotlib and then the graph is generated and saved as image.

    diff --git a/source/_posts/2016-07-30-custom-frontend-panels--jupyter-notebooks--directv.markdown b/source/_posts/2016-07-30-custom-frontend-panels--jupyter-notebooks--directv.markdown index 46c2678eb16..48a43201b78 100644 --- a/source/_posts/2016-07-30-custom-frontend-panels--jupyter-notebooks--directv.markdown +++ b/source/_posts/2016-07-30-custom-frontend-panels--jupyter-notebooks--directv.markdown @@ -12,7 +12,7 @@ categories: Release-Notes When Home Assistant started the focus has always been on making a great developer experience. Allowing anyone to add support for their favorite devices to Home Assistant easily. This focus has been a great success since we now have 339 components and platforms! -Starting with this release, we are extending our extensability 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 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! We have also seen an exciting trend of people starting to visualize their Internet of Things data using [Jupyter] Notebooks, which are a great way to create and share documents that contain code, visualizations, and explanatory text. In case you missed it, the [blog] post by [@kireyeu] shows an advanced usecase while our [Notebooks][jupyter-notebooks] in the [Home Assistant Notebooks repository][jupyter-repo] cover the basics. diff --git a/source/_posts/2016-08-07-optimizing-the-home-assistant-mobile-web-app.markdown b/source/_posts/2016-08-07-optimizing-the-home-assistant-mobile-web-app.markdown index e9a892b4925..3633c42b506 100644 --- a/source/_posts/2016-08-07-optimizing-the-home-assistant-mobile-web-app.markdown +++ b/source/_posts/2016-08-07-optimizing-the-home-assistant-mobile-web-app.markdown @@ -22,7 +22,7 @@ And thus started my journey to take a critical look at how the Home Assistant ap I hope this list can be useful to other people, as a guide for optimizing their own apps or for avoiding pitfalls when building a new one. -The first thing to do is to measure. The Home Assistant front end is a mobile web app, so we shouldn’t measure this on a machine with 8 cores and gigabytes of ram but instead measure on devices you expect a mobile web app to run: phones. Below are two timelines recorded with Home Assistant 0.18.2 (pre-optimizations) and Google Chrome 53. **On my Mac the app starts in 1400 miliseconds and on my Nexus 5x in ~6500 miliseconds (~4.5 times slower!).** +The first thing to do is to measure. The Home Assistant front end is a mobile web app, so we shouldn’t measure this on a machine with 8 cores and gigabytes of ram but instead measure on devices you expect a mobile web app to run: phones. Below are two timelines recorded with Home Assistant 0.18.2 (pre-optimizations) and Google Chrome 53. **On my Mac the app starts in 1400 milliseconds and on my Nexus 5x in ~6500 milliseconds (~4.5 times slower!).**

    Timeline of loading the front end in Home Assistant 0.18.2

    -Although the app takes 6500 milliseconds to load on my phone, it would perform well afterwards. Still, that initial load is unacceptable. You expect to open an app on your phone and be able to use it, quickly. After I applied all the changes described below, I managed to reduce startup time to 900 miliseconds (-35%) on my Mac and 2400 miliseconds (-63%) on my Nexus 5x. [Check out the demo here.][demo] +Although the app takes 6500 milliseconds to load on my phone, it would perform well afterwards. Still, that initial load is unacceptable. You expect to open an app on your phone and be able to use it, quickly. After I applied all the changes described below, I managed to reduce startup time to 900 milliseconds (-35%) on my Mac and 2400 milliseconds (-63%) on my Nexus 5x. [Check out the demo here.][demo]

    diff --git a/source/_posts/2017-11-12-tor.markdown b/source/_posts/2017-11-12-tor.markdown index 32b35415987..612faf1ffc2 100644 --- a/source/_posts/2017-11-12-tor.markdown +++ b/source/_posts/2017-11-12-tor.markdown @@ -27,7 +27,7 @@ The most amazing part? It is super easy to set up! ## {% linkable_title Setting up Tor %} -Our [documentation](/docs/ecosystem/tor/) provides an detailled 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 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: 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: diff --git a/source/_posts/2017-11-18-release-58.markdown b/source/_posts/2017-11-18-release-58.markdown index 80d8a664c1a..e930abae6f6 100644 --- a/source/_posts/2017-11-18-release-58.markdown +++ b/source/_posts/2017-11-18-release-58.markdown @@ -19,7 +19,7 @@ The Hass.io release of 0.58 will be delayed by a couple of days because Pascal i ## {% linkable_title Translation update %} -Translations are up and running in full speed. Shortly after the last release we got our translation pipeline figured out. [@armills] and [@c727] are doing an amazing job managing this project. We've doubled the number of supported languages to 42 and the amount of keys to translate went from 8 to 130. Our translaters are on top of their game and 79% is already translated. +Translations are up and running in full speed. Shortly after the last release we got our translation pipeline figured out. [@armills] and [@c727] are doing an amazing job managing this project. We've doubled the number of supported languages to 42 and the amount of keys to translate went from 8 to 130. Our translators are on top of their game and 79% is already translated. Talking about our translators, we now have 445 people with an account to help with translations. Not bad for 3 weeks! diff --git a/source/_posts/2017-12-03-release-59.markdown b/source/_posts/2017-12-03-release-59.markdown index 98c4d669b2f..b68a0dede91 100644 --- a/source/_posts/2017-12-03-release-59.markdown +++ b/source/_posts/2017-12-03-release-59.markdown @@ -27,14 +27,14 @@ With the Dominos Pizza integration made by [@wardcraigj] your home is now taking

    ## {% linkable_title Shopping list tweaks %} -[@balloob] has refreshed the shopping list UI to make it more usable. It's now possible to add items by typing, instead of just voice. Also editting has been made easier. +[@balloob] has refreshed the shopping list UI to make it more usable. It's now possible to add items by typing, instead of just voice. Also editing has been made easier. ## {% linkable_title Entity picker %} [@balloob] improved the way if you want to pick an entity. In the automation editor, the script editor and the service section of the Developer Tools it's much easier to identify the right one! The automation editor will only suggest relevant entities.

    Screenshot of the Entity Picker. - Screenshot of the of the Enitity Picker. + Screenshot of the of the Entity Picker.

    ## {% linkable_title Hass.io Add-ons %} diff --git a/source/developers/architecture.markdown b/source/developers/architecture.markdown index 422777573b4..c92361a4fc2 100644 --- a/source/developers/architecture.markdown +++ b/source/developers/architecture.markdown @@ -16,7 +16,7 @@ For more information about each part in this overview, diff --git a/source/developers/development_guidelines.markdown b/source/developers/development_guidelines.markdown index d5fa2359e1c..c8b384eb3eb 100644 --- a/source/developers/development_guidelines.markdown +++ b/source/developers/development_guidelines.markdown @@ -25,9 +25,9 @@ The maximum line length comes directly from the [PEP8 style guide](https://www.p Those points may require that you adjust your IDE or editor settings. -## {% linkable_title Our recommandations %} +## {% linkable_title Our recommendations %} -For some cases [PEPs](https://www.python.org/dev/peps/) don't make a statement. This section covers our recommendations about the code style. Those points were collected from the exisiting code and based on what contributors and developers were using the most. This is basically a majority decision, thus you may not agree with it. But we would like to encourage you follow those recommandations to keep the code unified. +For some cases [PEPs](https://www.python.org/dev/peps/) don't make a statement. This section covers our recommendations about the code style. Those points were collected from the existing code and based on what contributors and developers were using the most. This is basically a majority decision, thus you may not agree with it. But we would like to encourage you follow those recommendations to keep the code unified. ### {% linkable_title Quotes %} diff --git a/source/developers/development_submitting.markdown b/source/developers/development_submitting.markdown index 919e20706b9..b1439e4551e 100644 --- a/source/developers/development_submitting.markdown +++ b/source/developers/development_submitting.markdown @@ -39,7 +39,7 @@ Submit your improvements, fixes, and new features to Home Assistant one at a tim * On GitHub, navigate to the main page of the Home Assistant repository. * In the "Branch" menu, choose the branch that contains your commits (from your fork). * To the right of the Branch menu, click **New pull request**. - * Use the base branch dropdown menu to select the branch you'd like to merge your changes into, then use the compare branch drop-down menu to choose the topic branch you made your changes in. Make sure the Home Assistant branch matches with your forked branch (`dev`) else you will propose ALL committs between branches. + * Use the base branch dropdown menu to select the branch you'd like to merge your changes into, then use the compare branch drop-down menu to choose the topic branch you made your changes in. Make sure the Home Assistant branch matches with your forked branch (`dev`) else you will propose ALL commits between branches. * Type a title and complete the provided description for your pull request. * Click **Create pull request**. diff --git a/source/developers/development_validation.markdown b/source/developers/development_validation.markdown index 89d6984e64b..51fef2d39b1 100644 --- a/source/developers/development_validation.markdown +++ b/source/developers/development_validation.markdown @@ -11,7 +11,7 @@ footer: true The `configuration.yaml` file contains the configuration options for components and platforms. We use [voluptuous](https://pypi.python.org/pypi/voluptuous) to make sure that the configuration provided by the user is valid. Some entries are optional or could be required to set up a platform or a component. Others must be a defined type or from an already-defined list. -We test the configuration to ensure that users have a great experience and minimise notifications if something is wrong with a platform or component setup before Home Assistant runs. +We test the configuration to ensure that users have a great experience and minimize notifications if something is wrong with a platform or component setup before Home Assistant runs. Besides [voluptuous](https://pypi.python.org/pypi/voluptuous) default types, many custom types are available. For an overview, take a look at the [config_validation.py](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/helpers/config_validation.py) helper. diff --git a/source/developers/documentation/standards.markdown b/source/developers/documentation/standards.markdown index c859c4db6ab..47ae4eab73c 100644 --- a/source/developers/documentation/standards.markdown +++ b/source/developers/documentation/standards.markdown @@ -66,4 +66,4 @@ redirect_from: /getting-started/android/ --- ``` -Adding a redirect also applies if you move content around in the [documention](/docs/). +Adding a redirect also applies if you move content around in the [documentation](/docs/). diff --git a/source/developers/hassio/addon_config.markdown b/source/developers/hassio/addon_config.markdown index 031dbabb3fc..005c8a0cd83 100644 --- a/source/developers/hassio/addon_config.markdown +++ b/source/developers/hassio/addon_config.markdown @@ -12,10 +12,15 @@ redirect_from: /hassio/addon_config/ Each add-on is stored in a folder. The file structure looks like this: -``` +```text addon_name/ - Dockerfile + build.json + CHANGELOG.md config.json + Dockerfile + icon.png + logo.png + README.md run.sh ``` diff --git a/source/developers/hassio/addon_development.markdown b/source/developers/hassio/addon_development.markdown index 40680cd1415..ec1f3f96748 100644 --- a/source/developers/hassio/addon_development.markdown +++ b/source/developers/hassio/addon_development.markdown @@ -14,11 +14,10 @@ Add-ons for Hass.io allow the user to extend the functionality around Home Assis Under the hood, add-ons are Docker images published in [Docker Hub](https://hub.docker.com/). Developers can create [GitHub](https://github.com) repositories that contain multiple references to add-ons for easy sharing with the community. -
      -
    1. Tutorial: Making your first add-on
    2. -
    3. Configuration
    4. -
    5. Communication
    6. -
    7. Local Testing
    8. -
    9. Publishing
    10. -
    11. Repositories
    12. -
    +1. [Tutorial: Making your first add-on](/developers/hassio/addon_tutorial/) +1. [Configuration](/developers/hassio/addon_config/) +1. [Communication](/developers/hassio/addon_communication/) +1. [Local Testing](/developers/hassio/addon_testing/) +1. [Publishing](/developers/hassio/addon_publishing/) +1. [Presentation](/developers/hassio/addon_presentation/) +1. [Repositories](/developers/hassio/addon_repository/) diff --git a/source/developers/hassio/addon_presentation.markdown b/source/developers/hassio/addon_presentation.markdown new file mode 100644 index 00000000000..413dd0489dc --- /dev/null +++ b/source/developers/hassio/addon_presentation.markdown @@ -0,0 +1,49 @@ +--- +layout: page +title: "Presenting your add-on" +description: "Details on how to present your Hass.io add-on." +date: 2018-01-24 22:15 +sidebar: true +comments: false +sharing: true +footer: true +--- + +If you decide to share your add-on to the public, paying attention to details is recommended. Of course, your add-on should have a proper name and description, but Hass.io also gives you some other tools to present your add-on even nicer. + +## {% linkable_title Adding documentation %} + +Good documentation helps the consumer of your add-on to understand its usage, explains configuration options, points users in the right direction in the case they have questions or issues, and contains the license under which the add-on was published. + +This file containing the documentation is usually referred to as the "README", which is generally published as the `README.md` file. + +Take a look at other projects for inspiration. For example, see the `README.md` of the [Community Hass.io Add-ons: Homebridge](https://github.com/hassio-addons/addon-homebridge/blob/master/README.md) add-on. + +In future versions of Hass.io, the `README.md` file will be displayed in the Home Assistant frontend. + +## {% linkable_title Add-on icon & logo %} + +A picture is worth a thousand words. Therefore, your add-on can be improved by adding a proper image icon and logo. Those images are used when showing your add-on in the Home Assistant Hass.io panel and which will significantly improve the visual representation of your add-on. + +Requirements for the logo of your add-on: + +- The logo must be in the Portable Network Graphics format (`.png`). +- The filename must be `logo.png`. +- It is recommended to keep the logo size around 250x100px. You may choose to use a different size or aspect ratio as you seem fit for your add-on. + +Requirements for the icon of your add-on: + +- The icon must be in the Portable Network Graphics format (`.png`). +- The filename must be `icon.png`. +- The aspect ratio of the icon must be 1x1 (square). +- It is recommended to use an icon size of 128x128px. + +## {% linkable_title Keeping a changelog %} + +It is likely you are going to release newer versions of your add-on in the future. In case that happens, the users of your add-on would see an upgrade notice and probably want to know what changes were made in the latest version. + +A changelog is a file which contains a curated, chronologically ordered list of notable changes for each version of your add-on and is generally published as the `CHANGELOG.md` file. + +If you are in need of a guide on keeping a changelog, we would recommend checking the [keep a changelog](http://keepachangelog.com) website. They have developed a standard that is used by many opensource projects around the world. + +In future versions of Hass.io, the `CHANGELOG.md` file will be displayed in the Home Assistant frontend. diff --git a/source/developers/hassio/addon_repository.markdown b/source/developers/hassio/addon_repository.markdown index 3ad7da57fe1..645fb1cf819 100644 --- a/source/developers/hassio/addon_repository.markdown +++ b/source/developers/hassio/addon_repository.markdown @@ -10,7 +10,7 @@ footer: true 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 it's 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. diff --git a/source/developers/multiple_instances.markdown b/source/developers/multiple_instances.markdown index ffdfd6b5053..f366abe19a6 100644 --- a/source/developers/multiple_instances.markdown +++ b/source/developers/multiple_instances.markdown @@ -11,7 +11,7 @@ footer: true # {% linkable_title This has been deprecated and is no longer supported. %} -Home Assistant supports running multiple synchronised instances using a master-slave model. Whenever `events.fire` or `states.set` is called on the slave it will forward it to the master. The master will replicate all events and changed states to its slaves. +Home Assistant supports running multiple synchronized instances using a master-slave model. Whenever `events.fire` or `states.set` is called on the slave it will forward it to the master. The master will replicate all events and changed states to its slaves.

    diff --git a/source/developers/rest_api.markdown b/source/developers/rest_api.markdown index 5691a89977b..ec232cac97f 100644 --- a/source/developers/rest_api.markdown +++ b/source/developers/rest_api.markdown @@ -517,7 +517,7 @@ Requires a JSON object that represents the API to cancel forwarding to. } ``` -It will return a message if event forwarding was cancelled successfully. +It will return a message if event forwarding was canceled successfully. ```json {