diff --git a/README.markdown b/README.markdown index d3ff8d6b586..e055c8e3369 100644 --- a/README.markdown +++ b/README.markdown @@ -9,7 +9,7 @@ This is the source for the [Home-Assistant.io website](https://home-assistant.io ## Setup -Setting up to contribute to documentation and the process for submitting pull requests is [explained here](https://home-assistant.io/developers/website/). +Setting up to contribute to documentation and the process for submitting pull requests is [explained here](https://home-assistant.io/developers/documentation/). ## Site preview diff --git a/_config.yml b/_config.yml index daebb5427a8..cbea8a327f2 100644 --- a/_config.yml +++ b/_config.yml @@ -139,9 +139,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 54 +current_minor_version: 55 current_patch_version: 0 -date_released: 2017-09-23 +date_released: 2017-10-07 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/sass/inuitcss/README.md b/sass/inuitcss/README.md index 3a9ba747017..77155d091d9 100644 --- a/sass/inuitcss/README.md +++ b/sass/inuitcss/README.md @@ -180,7 +180,7 @@ stone, and you are encouranged to override and experiment with them. It is tempting to modify their vaules in the inuit.css submodule but this is **not** the correct method for modifying inuit.css, and in doing so you will prevent yourself from being able to update inuit.css’ core library. The correct -proceedure is to redefine that variable in `_vars.scss` found in the inuit.css +procedure is to redefine that variable in `_vars.scss` found in the inuit.css web template. Let’s take an example… In inuit.css’ `_defaults.scss` we find the following: diff --git a/source/_addons/configurator.markdown b/source/_addons/configurator.markdown index 52cffaf06bc..f15c9b197ae 100644 --- a/source/_addons/configurator.markdown +++ b/source/_addons/configurator.markdown @@ -28,7 +28,7 @@ Screenshot of the HASS Configurator. - Upload and download files. - Stage and commit changes in Git repositories, create and switch between branches, push to remotes. - Lists of available triggers, events, entities, conditions and services. Selected element gets inserted into the editor at the last cursor position. -- Restart Home Assitant directly with the click of a button. Reloading groups, automations etc. can be done as well. An API-password is required. +- Restart Home Assistant directly with the click of a button. Reloading groups, automations etc. can be done as well. An API-password is required. - SSL support. - Optional authentication and IP filtering for added security. - Direct links to Home Assistant documentation and icons. diff --git a/source/_addons/dhcp_server.markdown b/source/_addons/dhcp_server.markdown index d603d40819c..884a5432fac 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. Normaly is `eth0` for ethernet wired connection and `wlan0` for wireless connection. + - **interface** (*Required*): Inteface 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/_addons/dnsmasq.markdown b/source/_addons/dnsmasq.markdown index a7b6dee257a..586a035f8f5 100644 --- a/source/_addons/dnsmasq.markdown +++ b/source/_addons/dnsmasq.markdown @@ -33,4 +33,4 @@ Configuration variables: - **defaults** (*Required*): A list of dns server to forward default requests. - **forwards** (*Optional*): A list of domains that will forward to a specific server. - **hosts** (*Optional*): A list of hosts to resolve it static. -- **interface** (*Optional*): If a interface is set, it listen only on this interface. Need to set for resinos. Normaly is `eth0` for ethernet wired connection and `wlan0` for wireless connection. +- **interface** (*Optional*): If a interface is set, it listen only on this interface. Need to set for resinos. Normally is `eth0` for ethernet wired connection and `wlan0` for wireless connection. diff --git a/source/_addons/mariadb.markdown b/source/_addons/mariadb.markdown index 6101d25df6a..d04dc3c474c 100644 --- a/source/_addons/mariadb.markdown +++ b/source/_addons/mariadb.markdown @@ -9,7 +9,7 @@ sharing: true footer: true --- -Set up a [mariadb](https://mariadb.org/) SQL server. It support multible database, users and permission. If you want only connect from inside use `core-mariadb` as host address. +Set up a [mariadb](https://mariadb.org/) SQL server. It supports multiple databases, users and permission settings. If you want to only connect from inside home assistant use `core-mariadb` as the host address. ```json { diff --git a/source/_addons/rpc_shutdown.markdown b/source/_addons/rpc_shutdown.markdown new file mode 100644 index 00000000000..ba1fe46ebee --- /dev/null +++ b/source/_addons/rpc_shutdown.markdown @@ -0,0 +1,40 @@ +--- +layout: page +title: "RPC Shutdown" +description: "Simple way for remote windows shutdowns." +date: 2017-09-25 14:00 +sidebar: true +comments: false +sharing: true +footer: true +--- + +Allow to shutdown a computer with a service call from Home-Assistant. + +```json +{ + "computers": [ + { + "alias": "test-pc", + "address": "192.168.0.1", + "credentials": "user%password" + } + ] +} +``` + +- **computers** (*Required*): A list of computer object to shutdown from Home-Assistant. +- **computers/alias** (*Required*): Set a alias for this record and that is the name for the input. +- **computers/address** (*Required*): IP address or netbios name of the computer for shutdown. +- **computers/credentials** (*Required*): Credentials for logging into computer. Use a `%` as delimiter of username and password. + +## {% linkable_title Home Assistant %} + +Use the following inside Home Assistant service call to use it: + +```yaml +service: hassio.addon_stdin +data: + addon: core_rpc_shutdown + input: test-pc +``` diff --git a/source/_addons/samba.markdown b/source/_addons/samba.markdown index e434e6f15ee..f6aff2fd92d 100644 --- a/source/_addons/samba.markdown +++ b/source/_addons/samba.markdown @@ -38,4 +38,4 @@ Configuration variables: - **map** (*Optional*): Control which folder will be expose. `config` is for Home Assistant configuration folder. `addons` for local custom repositiory. `share` is a folder that can access from add-ons and Home Assistant too. `backup` for access to snapshot files. `ssl` for certificate storage, be careful with this option! Defaults all to `true`, except for `ssl`. - **username** (*Optional*): The username for logging in if guest login is not used. - **password** (*Optional*): Password for `username`. An empty password is not supported. -- **interface** (*Optional*): Interface on that will start the share. Normaly is `eth0` for ethernet wired connection and `wlan0` for wireless connection. +- **interface** (*Optional*): Interface on that will start the share. Normally is `eth0` for ethernet wired connection and `wlan0` for wireless connection. diff --git a/source/_components/alexa.markdown b/source/_components/alexa.markdown index 361271a28a2..d97bf68ae1b 100644 --- a/source/_components/alexa.markdown +++ b/source/_components/alexa.markdown @@ -33,7 +33,7 @@ The built-in Alexa component allows you to integrate Home Assistant into Alexa/A ### {% linkable_title Requirements %} -Amazon requires the endpoint of a skill to be hosted via SSL. Self-signed certificates are OK because our skills will only run in development mode. Read more on [our blog][blog-lets-encrypt] about how to set up encryption for Home Assistant. When running Hass.io, using the [Let's Encrypt](/addons/lets_encrypt/) the and [Duck DNS](/addons/duckdns/) add-ons is the easiest method. If you are unable to get HTTPS up and running, consider using [this AWS Lambda proxy for Alexa skills](https://community.home-assistant.io/t/aws-lambda-proxy-custom-alexa-skill-when-you-dont-have-https/5230). +Amazon requires the endpoint of a skill to be hosted via SSL. Self-signed certificates are OK because our skills will only run in development mode. Read more on [our blog][blog-lets-encrypt] about how to set up encryption for Home Assistant. When running Hass.io, using the [Let's Encrypt](/addons/lets_encrypt/) and [Duck DNS](/addons/duckdns/) add-ons is the easiest method. If you are unable to get HTTPS up and running, consider using [this AWS Lambda proxy for Alexa skills](https://community.home-assistant.io/t/aws-lambda-proxy-custom-alexa-skill-when-you-dont-have-https/5230). Additionally, note that at the time of this writing, your Alexa skill endpoint *must* accept requests over port 443 (Home Assistant default to 8123). There are two ways you can handle this: diff --git a/source/_components/binary_sensor.wink.markdown b/source/_components/binary_sensor.wink.markdown index 1203e764394..862a6b258ec 100644 --- a/source/_components/binary_sensor.wink.markdown +++ b/source/_components/binary_sensor.wink.markdown @@ -25,7 +25,7 @@ The requirement is that you have setup [Wink](/components/wink/). - Window/Door sensors - Motion sensors - Ring Door bells (No hub required) -- Liquid presense sensors +- Liquid presence sensors - Z-wave lock key codes - Lutron connected bulb remote buttons - Wink Relay buttons and presence detection diff --git a/source/_components/cover.rflink.markdown b/source/_components/cover.rflink.markdown index d7dfab6e5bc..5bbe5e2f6ed 100644 --- a/source/_components/cover.rflink.markdown +++ b/source/_components/cover.rflink.markdown @@ -12,17 +12,18 @@ ha_category: Cover ha_release: 0.55 --- -The `rflink` component support devices that use [RFLink gateway firmware](http://www.nemcon.nl/blog2/), for example, the [Nodo RFLink Gateway](https://www.nodo-shop.nl/nl/21-rflink-gateway). RFLink gateway is an Arduino firmware that allows two-way communication with a multitude of RF wireless devices using cheap hardware (Arduino + transceiver). + +The `rflink` cover platform supports devices that use [RFLink gateway firmware](http://www.nemcon.nl/blog2/), for example, the [Nodo RFLink Gateway](https://www.nodo-shop.nl/nl/21-rflink-gateway). RFLink gateway is an Arduino firmware that allows two-way communication with a multitude of RF wireless devices using cheap hardware (Arduino + transceiver). First, you have to set up your [rflink hub](/components/rflink/). + After configuring the RFLink hub covers will be automatically discovered and added. Except the Somfy RTS devices. -### {% setting up a Somfy RTS device%} +### {% linkable_title Setting up a Somfy RTS device %} -You have to add the Somfy RTS manually with the supplied RFlinkLoader (Windows Only) +You have to add the Somfy RTS manually with the supplied RFlinkLoader (Windows only). -Press the Learn button on the original Somfy remote -enter the following code within 3 seconds. Your blinds will go up and down shortly +Press the Learn button on the original Somfy remote enter the following code within 3 seconds. Your blinds will go up and down shortly: ```` 10;RTS;02FFFF;0412;3;PAIR; @@ -53,7 +54,7 @@ RTS Record: 14 Address: FFFFFF RC: FFFF RTS Record: 15 Address: FFFFFF RC: FFFF ```` -After configuring the RFLink Somfy RTS you have to add the cover to the configuration like any other RFlink device. +After configuring the RFLink Somfy RTS you have to add the cover to the `configuration.yaml` file like any other RFlink device. RFLink cover ID's are composed of: protocol, id, and gateway. For example: `RTS_0100F2_0`. @@ -63,16 +64,16 @@ Assigning a name to a cover: ```yaml # Example configuration.yaml entry -- platform: rflink - devices: - RTS_0100F2_0: - name: SunShade - bofumotor_455201_0f: - name: Sovrumsgardin +cover: + - platform: rflink + devices: + RTS_0100F2_0: + name: SunShade + bofumotor_455201_0f: + name: Sovrumsgardin ``` - -### Configuration variables: +Configuration variables: - **automatic_add** (*Optional*): Automatically add new/unconfigured devices to Home Assistant if detected (default: True). - **devices** (*Optional*): A list of devices with their name to use in the frontend. @@ -80,7 +81,7 @@ Assigning a name to a cover: - **fire_event** (*Optional*): Set default `fire_event` for Rflink switch devices (see below). - **signal_repetitions** (*Optional*): Set default `signal_repetitions` for Rflink switch devices (see below). -### Device configuration variables: +Device configuration variables: - **name** (*Optional*): Name for the device, defaults to Rflink ID. - **aliases** (*Optional*): Alternative Rflink ID's this device is known by. diff --git a/source/_components/emulated_hue.markdown b/source/_components/emulated_hue.markdown index 7d3dfd9dfdd..a78b478dba4 100644 --- a/source/_components/emulated_hue.markdown +++ b/source/_components/emulated_hue.markdown @@ -96,7 +96,7 @@ homeassistant: customize: light.bedroom_light: # Don't allow light.bedroom_light to be controlled by the emulated Hue bridge - emulated_hue: false + emulated_hue_hidden: false light.office_light: # Address light.office_light as "back office light" emulated_hue_name: "back office light" @@ -104,7 +104,7 @@ homeassistant: The following are attributes that can be applied in the `customize` section: -- **emulated_hue** (*Optional*): Whether or not the entity should be exposed by the emulated Hue bridge. The default value for this attribute is controlled by the `expose_by_default` option. +- **emulated_hue_hidden** (*Optional*): Whether or not the entity should be exposed by the emulated Hue bridge. Adding `emulated_hue_hidden: false` will expose the entity to Alexa. The default value for this attribute is controlled by the `expose_by_default` option. - **emulated_hue_name** (*Optional*): The name that the emulated Hue will use. The default for this is the entity's friendly name. ### {% linkable_title Troubleshooting %} diff --git a/source/_components/ffmpeg.markdown b/source/_components/ffmpeg.markdown index c62deb7d9c8..56fd9779aed 100644 --- a/source/_components/ffmpeg.markdown +++ b/source/_components/ffmpeg.markdown @@ -18,7 +18,7 @@ You need the `ffmpeg` binary in your system path. On Debian 8 or Raspbian (Jessi

-If you are using [Hass.io](/hassio/) then just move forward to the configuration as all requirements are already fullfilled. +If you are using [Hass.io](/hassio/) then just move forward to the configuration as all requirements are already fulfilled.

To set it up, add the following information to your `configuration.yaml` file: diff --git a/source/_components/image_processing.opencv.markdown b/source/_components/image_processing.opencv.markdown index 29df3a06d84..db6bfd2d5cb 100644 --- a/source/_components/image_processing.opencv.markdown +++ b/source/_components/image_processing.opencv.markdown @@ -15,7 +15,7 @@ ha_release: 0.47 [OpenCV](http://www.opencv.org) is an open source computer vision image and video processing library. -Some pre-defined classifiers can be found here: https://github.com/opencv/opencv/tree/master/data +Some pre-defined classifiers can be found [here](https://github.com/opencv/opencv/tree/master/data). To setup OpenCV with Home Assistant, add the following section to your `configuration.yaml` file: @@ -34,7 +34,7 @@ image_processing: - **source** array (*Required*): List of image sources. - **entity_id** (*Required*): A camera entity id to get picture from. - **name** (*Optional*): This parameter allows you to override the name of your `image_processing` entity. -- **classifier** (*Optional*): Dictionary of name to path to the classifier xml file. If this field is not provided, a face classifier will be downloaded from OpenCV's github repo. +- **classifier** (*Optional*): Dictionary of name to path to the classifier xml file. If this field is not provided, a face classifier will be downloaded from OpenCV's Github repo. **classifier** may also be defined as a dictionary of names to classifier configurations: @@ -50,4 +50,4 @@ image_processing: - **scale** (*Optional*): The scale to perform when processing, this is a `float` value that must be greater than or equal to `1.0`, default is `1.1`. - **neighbors** (*Optional*): The minimum number of neighbors required for a match, default is `4`. The higher this number, the more picky the matching will be; lower the number, the more false positives you may experience. -If you would like to see the regions that OpenCV has detected, add this opencv camera to your config's custom_components/camera directory: [https://gist.github.com/Teagan42/bf4b941b34a79a3e184e149ff1efd82f](https://gist.github.com/Teagan42/bf4b941b34a79a3e184e149ff1efd82f) +If you would like to see the regions that OpenCV has detected, add this OpenCV camera to your config's `custom_components/camera` directory: [https://gist.github.com/Teagan42/bf4b941b34a79a3e184e149ff1efd82f](https://gist.github.com/Teagan42/bf4b941b34a79a3e184e149ff1efd82f) diff --git a/source/_components/input_datetime.markdown b/source/_components/input_datetime.markdown index 528c3c846c3..f9351f09848 100644 --- a/source/_components/input_datetime.markdown +++ b/source/_components/input_datetime.markdown @@ -9,7 +9,7 @@ sharing: true footer: true logo: home-assistant.png ha_category: Automation -ha_release: TODO +ha_release: 0.55 --- The `input_datetime` component allows the user to define date and time values that can be controlled via the frontend and can be used within automations and templates. diff --git a/source/_components/input_number.markdown b/source/_components/input_number.markdown index eba24e1383a..3a5202960ba 100644 --- a/source/_components/input_number.markdown +++ b/source/_components/input_number.markdown @@ -10,6 +10,7 @@ footer: true logo: home-assistant.png ha_category: Automation ha_release: 0.16 +redirect_from: /components/input_slider/ --- The `input_number` component allows the user to define values that can be controlled via the frontend and can be used within conditions of automation. The frontend can display a slider, or a numeric input box. Changes to the slider or numeric input box generate state events. These state events can be utilized as `automation` triggers as well. @@ -43,6 +44,8 @@ Configuration variables: - **initial** (*Optional*): Initial value when Home Assistant starts. Defaults to 0. - **step** (*Optional*): Step value for the slider. Defaults to 1. - **mode** (*Optional*): Can specify `box`, or `slider`. Defaults to `slider`. + - **unit_of_measurement** (*Optional*): Unit of measurement in which the value of the slider is expressed in. + - **icon** (*Optional*): Icon to display in front of the box/slider in the frontend. Refer to the [Customizing devices](https://home-assistant.io/docs/configuration/customizing-devices/#possible-values) page for possible values. ## {% linkable_title Automation Examples %} diff --git a/source/_components/light.decora.markdown b/source/_components/light.decora.markdown index 8c561dea8dc..a9298102a28 100644 --- a/source/_components/light.decora.markdown +++ b/source/_components/light.decora.markdown @@ -33,7 +33,7 @@ Configuration variables: - **devices** array (*Required*): A list of lights to use. - **[mac address]** (*Required*): The bluetooth address of the switch. - **name** (*Optional*): The custom name to use in the frontend. - - **api_key** (*Required*): The API key to acces the device. + - **api_key** (*Required*): The API key to access the device.

If you get an error looking like this: diff --git a/source/_components/lock.nello.markdown b/source/_components/lock.nello.markdown index feb220cf9cd..53f2e26e79b 100644 --- a/source/_components/lock.nello.markdown +++ b/source/_components/lock.nello.markdown @@ -46,7 +46,7 @@ Every time someone rings the bell, a `nello_bell_ring` event will be fired. Field | Description ----- | ----------- `address` | Postal address of the lock. -`date` | Date when the event occured. +`date` | Date when the event occurred. `description` | Human readable string describing the event. `location_id` | Nello ID of the location where the bell has been rung. `short_id` | Shorter Nello ID. diff --git a/source/_components/media_extractor.markdown b/source/_components/media_extractor.markdown index 3deb105407e..114d70f3fe7 100644 --- a/source/_components/media_extractor.markdown +++ b/source/_components/media_extractor.markdown @@ -41,20 +41,29 @@ media_extractor: music: bestaudio[ext=mp3] ``` -This configuration sets query for all service calls like: ```{"entity_id": "media_player.my_sonos", "media_content_id": "https://soundcloud.com/bruttoband/brutto-11", "media_content_type": "music"}``` to 'bestaudio' with mp3 extention. +This configuration sets query for all service calls like to 'bestaudio' with the mp3 extension: + +```json +{ + "entity_id": "media_player.my_sonos", + "media_content_id": "https://soundcloud.com/bruttoband/brutto-11", + "media_content_type": "music" +} +``` Query examples with explanations: - * **bestvideo** - best video only stream - * **best** - best video + audio stream - * **bestaudio[ext=m4a]** - best audio stream with m4a extension - * **worst** - worst video + audio stream - * **bestaudio[ext=m4a]/bestaudio[ext=ogg]/bestaudio** - best m4a audio, otherwise best ogg audio and only then any best audio + + * **bestvideo**: Best video only stream + * **best**: Best video + audio stream + * **bestaudio[ext=m4a]**: Best audio stream with m4a extension + * **worst**: Worst video + audio stream + * **bestaudio[ext=m4a]/bestaudio[ext=ogg]/bestaudio**: Best m4a audio, otherwise best ogg audio and only then any best audio More info about queries [here](https://github.com/rg3/youtube-dl#format-selection) ### {% linkable_title Use the service %} -Go to the "Developer Tools," then to "Call Service," and choose `media_extractor/play_media` from the list of available services. Fill the "Service Data" field as shown in the example below and hit "CALL SERVICE." +Use service developer tool icon **Services** from the **Developer Tools**. Choose `media_extractor` from the dropdown menu **Domain** and `play_media` from **Service**, enter something like the JSON sample from above into the **Service Data** field, and hit **CALL SERVICE**. This will download the file from the given URL. diff --git a/source/_components/media_player.frontier_silicon.markdown b/source/_components/media_player.frontier_silicon.markdown index 618feacb0ec..0c6a5843fa9 100644 --- a/source/_components/media_player.frontier_silicon.markdown +++ b/source/_components/media_player.frontier_silicon.markdown @@ -43,7 +43,7 @@ Configuration variables: - **port** (*Optional*): The port number. Defaults to 80. - **password** (*Optional*): PIN code of the Internet Radio. Defaults to 1234. -Some models use a seperate port (2244) for API access, this can be verified by visiting http://[host]:[port]/device. +Some models use a separate port (2244) for API access, this can be verified by visiting http://[host]:[port]/device. In case your device (friendly name) is called *badezimmer*, an example automation can look something like this: diff --git a/source/_components/notify.discord.markdown b/source/_components/notify.discord.markdown index 2a102d073f7..657b94e84e5 100644 --- a/source/_components/notify.discord.markdown +++ b/source/_components/notify.discord.markdown @@ -14,7 +14,7 @@ ha_release: 0.37 The [Discord service](https://discordapp.com/) is a platform for the notify component. This allows components to send messages to the user using Discord. -In order to get a token you need to go to the [Discord My Apps page](https://discordapp.com/developers/applications/me) and create a new application. Once the application is ready, create a [bot](https://discordapp.com/developers/docs/topics/oauth2#bots) user (**Create a Bot User**) and activate **Require OAuth2 Code Grant**. Retreive the **Client ID** and the (hidden) **Token** of your bot for later. +In order to get a token you need to go to the [Discord My Apps page](https://discordapp.com/developers/applications/me) and create a new application. Once the application is ready, create a [bot](https://discordapp.com/developers/docs/topics/oauth2#bots) user (**Create a Bot User**) and activate **Require OAuth2 Code Grant**. Retrieve the **Client ID** and the (hidden) **Token** of your bot for later. When setting up the application you can use this [icon](https://home-assistant.io/demo/favicon-192x192.png). diff --git a/source/_components/recorder.markdown b/source/_components/recorder.markdown index 0061083e0f6..4eeeb72ee8b 100644 --- a/source/_components/recorder.markdown +++ b/source/_components/recorder.markdown @@ -2,7 +2,7 @@ layout: page title: "Recorder" description: "Instructions how to configure the data recorder for Home Assistant." -date: 2016-05-21 09:00 +date: 2017-09-24 09:00 sidebar: true comments: false sharing: true @@ -27,7 +27,8 @@ recorder: Configuration variables: -- **purge_days** (*Optional*): Delete events and states older than x days. The purge task runs every 2 days, starting from when Home Assistant is started if you restart your instance more frequently than the purge will never take place. +- **purge_interval** (*Optional*): (days) Enable scheduled purge of older events and states. The purge task runs every x days, starting from when Home Assistant is started. If you restart your instance more frequently, than the purge will never take place. You can use [service](#service) call `recorder.purge` when needed. +- **purge_keep_days** (*Required with `purge_interval`*): Specify number of history days to keep in recorder database after purge. - **exclude** (*Optional*): Configure which components should be excluded from recordings. - **entities** (*Optional*): The list of entity ids to be excluded from recordings. - **domains** (*Optional*): The list of domains to be excluded from recordings. @@ -42,7 +43,8 @@ Define domains and entities to `exclude` (aka. blacklist). This is convenient wh ```yaml # Example configuration.yaml entry with exclude recorder: - purge_days: 5 + purge_interval: 2 + purge_keep_days: 5 db_url: sqlite:///home/user/.homeassistant/test exclude: domains: @@ -85,6 +87,19 @@ recorder: If you only want to hide events from e.g. your history, take a look at the [`history` component](/components/history/). Same goes for logbook. But if you have privacy concerns about certain events or neither want them in history or logbook, you should use the `exclude`/`include` options of the `recorder` component, that they aren't even in your database. That way you can save storage and keep the database small by excluding certain often-logged events (like `sensor.last_boot`). +### {% linkable_title Service `purge` %} + +Call the service `recorder.purge` to start purge task, which deletes events and states older than x days, according to `keep_days` service data (*Required*) + +Automation [action](https://home-assistant.io/getting-started/automation-action/) example: + +```yaml +action: + service: recorder.purge + data: + keep_days: 5 +``` + ## Custom database engines | Database engine | `db_url` | @@ -109,14 +124,14 @@ Not all Python bindings for the chosen database engine can be installed directly For MariaDB you may have to install a few dependencies. On the Python side we use the `mysqlclient`: ```bash -$ sudo apt-get install libmariadbclient-dev +$ sudo apt-get install libmariadbclient-dev libssl-dev $ pip3 install mysqlclient ``` For MySQL you may have to install a few dependencies. You can choose between `pymysql` and `mysqlclient`: ```bash -$ sudo apt-get install default-libmysqlclient-dev +$ sudo apt-get install default-libmysqlclient-dev libssl-dev $ pip3 install mysqlclient ``` diff --git a/source/_components/sensor.airvisual.markdown b/source/_components/sensor.airvisual.markdown index 69c69336d67..76d829f4d88 100644 --- a/source/_components/sensor.airvisual.markdown +++ b/source/_components/sensor.airvisual.markdown @@ -132,7 +132,7 @@ AQI | Status | Description 201 - 300 | **Very unhealthy** | Health warnings of emergency conditions. The entire population is more likely to be affected 301+ | **Hazardous** | Health alert: everyone may experience more serious health effects -### Air Polution Level +### Air Pollution Level **Description:** This sensor displays the associated `Status` (from the above table) for the current AQI. diff --git a/source/_components/sensor.dweet.markdown b/source/_components/sensor.dweet.markdown index fca99cbf474..bc3c710f53e 100644 --- a/source/_components/sensor.dweet.markdown +++ b/source/_components/sensor.dweet.markdown @@ -70,7 +70,7 @@ $ python3 {'thing': 'ha-sensor', 'created': '2015-12-10T09:46:08.559Z', 'content': {'humiditiy': 81, 'temperature': 23}} ``` -Recieve the latest dweet. +Receive the latest dweet. ```bash >>> dweepy.get_latest_dweet_for('ha-sensor') diff --git a/source/_components/sensor.vera.markdown b/source/_components/sensor.vera.markdown index 8bb59976248..bd32fdd408e 100644 --- a/source/_components/sensor.vera.markdown +++ b/source/_components/sensor.vera.markdown @@ -17,7 +17,7 @@ The `vera` platform allows you to get data from your [Vera](http://getvera.com/) They will be automatically discovered if the vera component is loaded. -Please note that some vera sensors (such as _motion_ and _flood_ sensors) are _armable_ which means that vera will send alerts (email messages ot txts) when they are _armed_ an change state. +Please note that some vera sensors (such as _motion_ and _flood_ sensors) are _armable_ which means that vera will send alerts (email messages to txts) when they are _armed_ an change state. Home Assistant will display the state of these sensors regardless of the _armed_ state. diff --git a/source/_components/thethingsnetwork.markdown b/source/_components/thethingsnetwork.markdown index 239cae319f0..65211c241d6 100644 --- a/source/_components/thethingsnetwork.markdown +++ b/source/_components/thethingsnetwork.markdown @@ -21,7 +21,7 @@ The Things network support various integrations to make the data available: |---|---| | [MQTT](https://www.thethingsnetwork.org/docs/applications/mqtt/) | | | [Storage](https://www.thethingsnetwork.org/docs/applications/storage/) | [`thethingsnetwork`](/component/sensor.thethingsnetwork/) | -| [HTTP](https://www.thethingsnetwork.org/docs/applications/http/} | | +| [HTTP](https://www.thethingsnetwork.org/docs/applications/http/) | | ### {% linkable_title Setup %} diff --git a/source/_components/tts.yandextts.markdown b/source/_components/tts.yandextts.markdown index 057dbf86adf..18693965e7e 100644 --- a/source/_components/tts.yandextts.markdown +++ b/source/_components/tts.yandextts.markdown @@ -29,7 +29,7 @@ Configuration variables: - **language** (*Optional*): The language to use. Defaults to `en-US`. Supported `en-US`, `ru-RU`, `uk-UK`, `tr-TR`. - **codec** (*Optional*): Audio codec. Default is `mp3`. Supported us `mp3`, `wav`, `opus`. - **voice** (*Optional*): Speaker voice. Default is `zahar`. Supported female voices are `jane`, `oksana`, `alyss`, `omazh` and male voices are `zahar` and `ermil`. -- **emotion** (*Optional*): Speaker emotional intonation. Default is `neutral`. Also supported are `good` (freindly) and `evil` (angry) +- **emotion** (*Optional*): Speaker emotional intonation. Default is `neutral`. Also supported are `good` (friendly) and `evil` (angry) - **speed** (*Optional*): Speech speed. Default value is `1`. Highest speed is `3` and lowest `0,1` Please check the [API documentation](https://tech.yandex.com/speechkit/cloud/doc/guide/concepts/tts-http-request-docpage/) for details. It seems that the English version of documentation is outdated. You could request an API key [by email](https://tech.yandex.com/speechkit/cloud/) or [online](https://developer.tech.yandex.ru/). diff --git a/source/_components/upnp.markdown b/source/_components/upnp.markdown index a4211cf660e..fb538ef183b 100644 --- a/source/_components/upnp.markdown +++ b/source/_components/upnp.markdown @@ -23,13 +23,34 @@ To integrate this into Home Assistant, add the following section to your `config ```yaml # Example configuration.yaml entry with custom external portal upnp: - external_port: 80 + ports: + hass: 8000 + 8080: 8080 ``` If you which to have the statistics without having port mapping done through IGD, add the option **port_mapping**. Configuration variables: -- **external_port** (*Optional*): Expose Home Assistant to the internet over this TCP port. Defaults to Home Assistant configured port. -- **port_mapping** (*Optional*): Disables port mapping maintains the network statistics sensors) -- **unit** (*Optional*): UPnP sensors unit. Valid units are 'Bytes', 'KBytes', 'MBytes' and 'GBytes'. +{% configuration binary_sensor.template %} + ports: + description: Map of ports to map from internal to external. Pass 'hass' as internal port to use the port Home Assistant runs on. + required: false + type: map + default: open same port on external router as that HASS runs locally and forwards it. + port_mapping: + description: If the component should try to map ports. + required: false + type: boolean + default: false + units: + description: Define the units used for the UPNP sensor. Possible values are Bytes, KBytes, MBytes, GBytes. + required: false + type: string + default: Mbytes + local_ip: + description: The local IP address of the computer running Home Assistant. + required: false + type: string + default: Try to auto-detect IP of host. +{% endconfiguration %} diff --git a/source/_cookbook/sonos_say.markdown b/source/_cookbook/sonos_say.markdown index 6c73f0e1bb6..80a928d7a4a 100644 --- a/source/_cookbook/sonos_say.markdown +++ b/source/_cookbook/sonos_say.markdown @@ -51,6 +51,6 @@ automation: data: sonos_entity: media_player.office volume: 0.5 - message: 'Your husband comming home!' + message: 'Your husband coming home!' delay: '00:00:05' ``` diff --git a/source/_data/glossary.yml b/source/_data/glossary.yml new file mode 100644 index 00000000000..a0edf13014e --- /dev/null +++ b/source/_data/glossary.yml @@ -0,0 +1,17 @@ +- topic: Platform + description: A platform makes the connection to a specific software or hardware platform. The `pushbullet` platform works with the service from pushbullet.com. +- topic: Component + description: "The components provide the core logic for the functionality in Home Assistant. Like `notify` provides sending notifications." +- topic: Service + description: "[Services](/docs/scripts/service-calls/) are called to perform actions." +- topic: Event + description: When somethings happen. +- topic: Entity + description: An entity is the representation of a single device, unit or web service. +- topic: Device + description: "Usually this is a physical unit which can do or observe something." +- topic: hass + description: "Often used abbreviation for Home Assistant." +- topic: Discovery + description: The automatic setup of zeroconf/mDNS and uPnP devices after they are discovered. + diff --git a/source/_docs/autostart/init.d.markdown b/source/_docs/autostart/init.d.markdown index abe1ccb6ff1..96f0509059b 100644 --- a/source/_docs/autostart/init.d.markdown +++ b/source/_docs/autostart/init.d.markdown @@ -46,7 +46,7 @@ If HA does not start, check the log file output for errors at `/var/opt/homeassi ### {% linkable_title Extra: Running commands before hass executes %} -If any commands need to run before executing hass (like loading a virutal environment), put them in PRE_EXEC. This command must end with a semicolon. +If any commands need to run before executing hass (like loading a virtual environment), put them in PRE_EXEC. This command must end with a semicolon. ### {% linkable_title Daemon script %} diff --git a/source/_docs/autostart/systemd.markdown b/source/_docs/autostart/systemd.markdown index 60ad4084fc6..c2b40858d95 100644 --- a/source/_docs/autostart/systemd.markdown +++ b/source/_docs/autostart/systemd.markdown @@ -16,14 +16,14 @@ Newer linux distributions are trending towards using `systemd` for managing daem $ ps -p 1 -o comm= ``` -If the preceding command returns the string `systemd`, you are likely using `systemd`. +If the preceding command returns the string `systemd`, continue with the instructions below. -If you want Home Assistant to be launched automatically, an extra step is needed to setup `systemd`. A service file is needed to control Home Assistant with `systemd`. The template below should be created using a text editor. Note, root permissions via `sudo` will likely be needed. The following should be noted to modify the template: +A service file is needed to control Home Assistant with `systemd`. The template below should be created using a text editor. Note, root permissions via `sudo` will likely be needed. The following should be noted to modify the template: - `ExecStart` contains the path to `hass` and this may vary. Check with `whereis hass` for the location. -- If running Home Assistant in a Python virtual environment or a Docker container, please skip to section below. - For most systems, the file is `/etc/systemd/system/home-assistant@[your user].service` with [your user] replaced by the user account that Home Assistant will run as - normally `homeassistant`. In particular, this is the case for Ubuntu 16.04. - If unfamiliar with command-line text editors, `sudo nano -w [filename]` can be used with `[filename]` replaced with the full path to the file. Ex. `sudo nano -w /etc/systemd/system/home-assistant@[your user].service`. After text entered, press CTRL-X then press Y to save and exit. +- If you're running Home Assistant in a Python virtual environment or a Docker container, please skip to the appropriate template listed below. ``` [Unit] @@ -78,6 +78,8 @@ ExecStopPost=/usr/bin/docker rm -f home-assistant-%i WantedBy=multi-user.target ``` +### Next Steps + You need to reload `systemd` to make the daemon aware of the new configuration. ```bash diff --git a/source/_docs/autostart/upstart.markdown b/source/_docs/autostart/upstart.markdown index 3db73e5591f..b627ab3806e 100644 --- a/source/_docs/autostart/upstart.markdown +++ b/source/_docs/autostart/upstart.markdown @@ -35,7 +35,7 @@ Upstart will launch init scripts that are located in the directory `/etc/init.d/ # # Installation: # 1) If any commands need to run before executing hass (like loading a -# virutal environment), put them in PRE_EXEC. This command must end with +# virtual environment), put them in PRE_EXEC. This command must end with # a semicolon. # 2) Set RUN_AS to the username that should be used to execute hass. # 3) Copy this script to /etc/init.d/ diff --git a/source/_docs/configuration/customizing-devices.markdown b/source/_docs/configuration/customizing-devices.markdown index 23411246de3..ad9e3b96971 100644 --- a/source/_docs/configuration/customizing-devices.markdown +++ b/source/_docs/configuration/customizing-devices.markdown @@ -61,7 +61,7 @@ homeassistant: | `homebridge_name` | Name of the entity in `HomeBridge`. | `hidden` | Set to `true` to hide the entity. | `homebridge_hidden` | Set to `true` to hide the entity from `HomeBridge`. -| `emulated_hue` | Set to `false` to hide the entity from emulated_hue. +| `emulated_hue_hidden` | Set to `true` to hide the entity from `emulated_hue`. | `entity_picture` | Url to use as picture for entity. | `icon` | Any icon from [MaterialDesignIcons.com](http://MaterialDesignIcons.com). Prefix name with `mdi:`, ie `mdi:home`. | `assumed_state` | For switches with an assumed state two buttons are shown (turn off, turn on) instead of a switch. By setting `assumed_state` to `false` you will get the default switch icon. diff --git a/source/_docs/configuration/events.markdown b/source/_docs/configuration/events.markdown index 852758dcba2..6ad5aa152d9 100644 --- a/source/_docs/configuration/events.markdown +++ b/source/_docs/configuration/events.markdown @@ -27,8 +27,8 @@ Event `state_changed` is fired when a state changes. Both `old_state` and `new_s Field | Description ----- | ----------- `entity_id` | Entity ID of the changed entity. Example: `light.kitchen` -`old_state` | The previous state of the entity before it changed. This field is ommitted if the entity is new. -`new_state` | The new state of the entity. This field is ommitted if the entity is removed from the state machine. +`old_state` | The previous state of the entity before it changed. This field is omitted if the entity is new. +`new_state` | The new state of the entity. This field is omitted if the entity is removed from the state machine. ### {% linkable_title Event `time_changed` %} @@ -68,11 +68,11 @@ Field | Description ### {% linkable_title Event `platform_discovered` %} -Event `platform_discovered` is fired when a new platform has been discovered by the discovery component. +Event `platform_discovered` is fired when a new platform has been discovered by the [`discovery`](/components/discovery/) component. Field | Description ----- | ----------- -`service` | The service that is discovered. Example: `zwave`. +`service` | The platform that is discovered. Example: `zwave`. `discovered` | Dictionary containing discovery information. Example: `{ "host": "192.168.1.10", "port": 8889}`. diff --git a/source/_docs/configuration/packages.markdown b/source/_docs/configuration/packages.markdown index 39f231e832d..09feb26aabd 100644 --- a/source/_docs/configuration/packages.markdown +++ b/source/_docs/configuration/packages.markdown @@ -24,7 +24,7 @@ homeassistant: The package configuration can include: `switch`, `light`, `automation`, `groups` or the majority of the Home Assistant components. -It can be specified inline or in a seperate YAML file using `!include`. +It can be specified inline or in a separate YAML file using `!include`. Inline example, main `configuration.yaml`: diff --git a/source/_docs/configuration/platform_options.markdown b/source/_docs/configuration/platform_options.markdown index 0d7945d3d10..544c651e4b7 100644 --- a/source/_docs/configuration/platform_options.markdown +++ b/source/_docs/configuration/platform_options.markdown @@ -10,7 +10,7 @@ footer: true redirect_from: /topics/platform_options/ --- -Any component that is based on the entity component allows various extra options to be set per platform. +Some components or platforms (those that are based on the [entity](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/helpers/entity.py) class) allows various extra options to be set. ### {% linkable_title Entity namespace %} @@ -25,7 +25,7 @@ light: ### {% linkable_title Scan Interval %} -Platforms that require polling will be polled in an interval specified by the main component. For example a light will check every 30 seconds for a changed state. It is possible to overwrite this scan interval for any platform that is being polled by specifying a `scan_interval` config key. In the example below we setup the Philips Hue lights but tell Home Assistant to poll the devices every 10 seconds instead of the default 30 seconds. +Platforms that require polling will be polled in an interval specified by the main component. For example a light will check every 30 seconds for a changed state. It is possible to overwrite this scan interval for any platform that is being polled by specifying a `scan_interval` configuration key. In the example below we setup the Philips Hue lights but tell Home Assistant to poll the devices every 10 seconds instead of the default 30 seconds. ```yaml # Example configuration.yaml entry to poll Hue lights every 10 seconds. diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index f05886a35a2..50fb0abf4ca 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -51,7 +51,7 @@ script: {% endif %}{% endraw %} ``` -[Jinja2](http://jinja.pocoo.org/) supports a width variety of operations: +[Jinja2](http://jinja.pocoo.org/) supports a wide variety of operations: - [Mathematical operation](http://jinja.pocoo.org/docs/dev/templates/#math) - [Comparisons](http://jinja.pocoo.org/docs/dev/templates/#comparisons) diff --git a/source/_docs/configuration/yaml.markdown b/source/_docs/configuration/yaml.markdown index 94d1cef2ae6..bba05d53e76 100644 --- a/source/_docs/configuration/yaml.markdown +++ b/source/_docs/configuration/yaml.markdown @@ -28,10 +28,15 @@ notify: The basics of YAML syntax are block collections and mappings containing key-value pairs. Each item in a collection starts with a `-` while mappings have the format `key: value`. If you specify duplicate keys, the last value for a key is used. This is somewhat similar to a Hashtable or more specifically a dictionary in Python. These can be nested as well. -Note that indentation (just like in Python) is an important part of specifying relationships using YAML. Things that are indented are nested "inside" things that are one level higher. So in the above example, `platform: pushbullet` is a property of (nested inside) the `notify` component. +Note that indentation is an important part of specifying relationships using YAML. Things that are indented are nested "inside" things that are one level higher. So in the above example, `platform: pushbullet` is a property of (nested inside) the `notify` component. + Getting the right indentation can be tricky if you're not using an editor with a fixed width font. Tabs are not allowed to be used for indentation. Convention is to use 2 spaces for each level of indentation. -You can use the online service [YAMLLint](http://www.yamllint.com/) to check if your YAML syntax is correct before loading it into Home Assistant which will save you some time. If you do so, be aware that this is a third-party service and is not maintained by the Home Assistant community. *Please pay attention on not storing private data (passwords, api-keys, etc.) directly in that file.* -Private data can be stored in a [seperate file](/docs/configuration/secrets/) or in [environmental variables](/docs/configuration/yaml/#using-environment-variables), which circumvents this problem of security. + +You can use the online service [YAMLLint](http://www.yamllint.com/) to check if your YAML syntax is correct before loading it into Home Assistant which will save you some time. If you do so, be aware that this is a third-party service and is not maintained by the Home Assistant community. + +

+Please pay attention on not storing private data (passwords, API keys, etc.) directly in your `configuration.yaml` file. Private data can be stored in a [separate file](/docs/configuration/secrets/) or in [environmental variables](/docs/configuration/yaml/#using-environment-variables), which circumvents this problem of security. +

Text following a `#` are comments and are ignored by the system. diff --git a/source/_docs/ecosystem/appdaemon.markdown b/source/_docs/ecosystem/appdaemon.markdown index cfa7ddc50d6..1ee29133933 100755 --- a/source/_docs/ecosystem/appdaemon.markdown +++ b/source/_docs/ecosystem/appdaemon.markdown @@ -24,7 +24,7 @@ AppDaemon is not meant to replace Home Assistant Automations and Scripts, rather - Durable variables and state - Variables can be kept between events to keep track of things like the number of times a motion sensor has been activated, or how long it has been since a door opened. - All the power of Python - use any of Python's libraries, create your own modules, share variables, refactor and re-use code, create a single App to do everything, or multiple Apps for individual tasks - nothing is off limits! -It is in fact a testament to Home Assistant's open nature that a component like `AppDaemon` can be integrated so neatly and closely that it acts in all ways like an extension of the system, not a second class citizen. Part of the strength of Home Assistant's underlying design is that it makes no assumptions whatsoever about what it is controlling, reacting to, or reporting state on. This is made achievable in part by the great flexibility of Python as a programming environment for Home Assistant, and carrying that forward has enabled me to use the same philosophy for `AppDaemon` - it took surprisingly little code to be able to respond to basic events and call services in a completely open ended manner. The bulk of the work after that was adding additonal functions to make things that were already possible easier. +It is in fact a testament to Home Assistant's open nature that a component like `AppDaemon` can be integrated so neatly and closely that it acts in all ways like an extension of the system, not a second class citizen. Part of the strength of Home Assistant's underlying design is that it makes no assumptions whatsoever about what it is controlling, reacting to, or reporting state on. This is made achievable in part by the great flexibility of Python as a programming environment for Home Assistant, and carrying that forward has enabled me to use the same philosophy for `AppDaemon` - it took surprisingly little code to be able to respond to basic events and call services in a completely open ended manner. The bulk of the work after that was adding additional functions to make things that were already possible easier. # How it Works diff --git a/source/_docs/ecosystem/appdaemon/api.markdown b/source/_docs/ecosystem/appdaemon/api.markdown index 792fca55dee..1bc4daacb34 100755 --- a/source/_docs/ecosystem/appdaemon/api.markdown +++ b/source/_docs/ecosystem/appdaemon/api.markdown @@ -495,7 +495,7 @@ Note: `old` and `new` can be used singly or together. ##### {% linkable_title duration = (optional) %} -If duration is supplied as a parameter, the callback will not fire unless the state listened for is maintained for that number of seconds. This makes the most sense if a specific attribute is specified (or the default os `state` is used), an in conjunction with the `old` or `new` parameters, or both. When the callback is called, it is supplied with the values of `entity`, `attr`, `old` and `new` that were current at the time the actual event occured, since the assumption is that none of them have changed in the intervening period. +If duration is supplied as a parameter, the callback will not fire unless the state listened for is maintained for that number of seconds. This makes the most sense if a specific attribute is specified (or the default os `state` is used), an in conjunction with the `old` or `new` parameters, or both. When the callback is called, it is supplied with the values of `entity`, `attr`, `old` and `new` that were current at the time the actual event occurred, since the assumption is that none of them have changed in the intervening period. ```python def my_callback(self, **kwargs): @@ -643,7 +643,7 @@ Delay, in seconds before the callback is invoked. ##### {% linkable_title \*\*kwargs %} -Arbitary keyword parameters to be provided to the callback function when it is invoked. +Arbitrary keyword parameters to be provided to the callback function when it is invoked. #### {% linkable_title Examples %} @@ -677,7 +677,7 @@ A Python `time` object that specifies when the callback will occur. If the time ##### {% linkable_title \*\*kwargs %} -Arbitary keyword parameters to be provided to the callback function when it is invoked. +Arbitrary keyword parameters to be provided to the callback function when it is invoked. #### {% linkable_title Examples %} @@ -715,7 +715,7 @@ A Python `datetime` object that specifies when the callback will occur. ##### {% linkable_title \*\*kwargs %} -Arbitary keyword parameters to be provided to the callback function when it is invoked. +Arbitrary keyword parameters to be provided to the callback function when it is invoked. #### {% linkable_title Examples %} @@ -754,7 +754,7 @@ A Python `time` object that specifies when the callback will occur. If the time ##### {% linkable_title \*\*kwargs %} -Arbitary keyword parameters to be provided to the callback function when it is invoked. +Arbitrary keyword parameters to be provided to the callback function when it is invoked. #### {% linkable_title Examples %} @@ -792,7 +792,7 @@ A Python `time` object that specifies when the callback will occur, the hour com ##### {% linkable_title \*\*kwargs %} -Arbitary keyword parameters to be provided to the callback function when it is invoked. +Arbitrary keyword parameters to be provided to the callback function when it is invoked. #### {% linkable_title Examples %} @@ -829,7 +829,7 @@ A Python `time` object that specifies when the callback will occur, the hour and ##### {% linkable_title \*\*kwargs %} -Arbitary keyword parameters to be provided to the callback function when it is invoked. +Arbitrary keyword parameters to be provided to the callback function when it is invoked. #### {% linkable_title Examples %} @@ -871,7 +871,7 @@ After the initial callback has occurred, another will occur every `repeat` secon ##### {% linkable_title \*\*kwargs %} -Arbitary keyword parameters to be provided to the callback function when it is invoked. +Arbitrary keyword parameters to be provided to the callback function when it is invoked. #### {% linkable_title Examples %} @@ -944,7 +944,7 @@ All of the scheduler calls above support 2 additional optional arguments, `rando - `random_start` - start of range of the random time - `random_end` - end of range of the random time -`random_start` must always be numerically lower than `random_end`, they can be negative to denote a random offset before and event, or positive to denote a random offset after an event. The event would be a an absolute or relative time or sunrise/sunset depending on whcih scheduler call you use and these values affect the base time by the spcified amount. If not specified, they will default to `0`. +`random_start` must always be numerically lower than `random_end`, they can be negative to denote a random offset before and event, or positive to denote a random offset after an event. The event would be a an absolute or relative time or sunrise/sunset depending on which scheduler call you use and these values affect the base time by the spcified amount. If not specified, they will default to `0`. For example: @@ -987,7 +987,7 @@ The time in seconds that the callback should be delayed after sunrise. A negativ ##### {% linkable_title \*\*kwargs %} -Arbitary keyword parameters to be provided to the callback function when it is invoked. +Arbitrary keyword parameters to be provided to the callback function when it is invoked. #### {% linkable_title Examples %} @@ -1030,7 +1030,7 @@ The time in seconds that the callback should be delayed after sunrise. A negativ ##### {% linkable_title \*\*kwargs %} -Arbitary keyword parameters to be provided to the callback function when it is invoked. +Arbitrary keyword parameters to be provided to the callback function when it is invoked. #### {% linkable_title Examples %} diff --git a/source/_docs/ecosystem/appdaemon/configuration.markdown b/source/_docs/ecosystem/appdaemon/configuration.markdown index 81bbaea6b7a..1dca0e72bbd 100644 --- a/source/_docs/ecosystem/appdaemon/configuration.markdown +++ b/source/_docs/ecosystem/appdaemon/configuration.markdown @@ -36,7 +36,7 @@ class = HelloWorld - `logfile` (optional) is the path to where you want `AppDaemon` to keep its main log. When run from the command line this is not used - log messages come out on the terminal. When running as a daemon this is where the log information will go. In the example above I created a directory specifically for AppDaemon to run from, although there is no reason you can't keep it in the `appdaemon` directory of the cloned repository. If `logfile = STDOUT`, output will be sent to stdout instead of stderr when running in the foreground, if not specified, output will be sent to STDOUT. - `errorfile` (optional) is the name of the logfile for errors - this will usually be errors during compilation and execution of the apps. If `errorfile = STDERR` errors will be sent to stderr instead of a file, if not specified, output will be sent to STDERR. - `app_dir` (optional) is the directory the apps are placed in. If not specified, AppDaemon will look first in `~/.homeassistant` then `/etc/appdaemon` for a subdirectory named `apps` -- `threads` - the number of dedicated worker threads to create for running the apps. Note, this will bear no resembelance to the number of apps you have, the threads are re-used and only active for as long as required to tun a particular callback or initialization, leave this set to 10 unless you experience thread starvation +- `threads` - the number of dedicated worker threads to create for running the apps. Note, this will bear no resemblance to the number of apps you have, the threads are re-used and only active for as long as required to tun a particular callback or initialization, leave this set to 10 unless you experience thread starvation - `latitude`, `longitude`, `elevation`, `timezone` - should all be copied from your Home Assistant configuration file - `cert_path` (optional) - path to root CA cert directory - use only if you are using self signed certs. diff --git a/source/_docs/ecosystem/appdaemon/tutorial.markdown b/source/_docs/ecosystem/appdaemon/tutorial.markdown index 8ce668ec7c5..6eee88e98b0 100755 --- a/source/_docs/ecosystem/appdaemon/tutorial.markdown +++ b/source/_docs/ecosystem/appdaemon/tutorial.markdown @@ -35,7 +35,7 @@ So why `AppDaemon`? AppDaemon is not meant to replace Home Assistant Automations - Durable variables and state - variables can be kept between events to keep track of things like the number of times a motion sensor has been activated, or how long it has been since a door opened - All the power of Python - use any of Python's libraries, create your own modules, share variables, refactor and re-use code, create a single app to do everything, or multiple apps for individual tasks - nothing is off limits! -It is in fact a testament to Home Assistant's open nature that a component like `AppDaemon` can be integrated so neatly and closely that it acts in all ways like an extension of the system, not a second class citizen. Part of the strength of Home Assistant's underlying design is that it makes no assumptions whatever about what it is controlling or reacting to, or reporting state on. This is made achievable in part by the great flexibility of Python as a programming environment for Home Assistant, and carrying that forward has enabled me to use the same philosophy for `AppDaemon` - it took surprisingly little code to be able to respond to basic events and call services in a completely open ended manner - the bulk of the work after that was adding additonal functions to make things that were already possible easier. +It is in fact a testament to Home Assistant's open nature that a component like `AppDaemon` can be integrated so neatly and closely that it acts in all ways like an extension of the system, not a second class citizen. Part of the strength of Home Assistant's underlying design is that it makes no assumptions whatever about what it is controlling or reacting to, or reporting state on. This is made achievable in part by the great flexibility of Python as a programming environment for Home Assistant, and carrying that forward has enabled me to use the same philosophy for `AppDaemon` - it took surprisingly little code to be able to respond to basic events and call services in a completely open ended manner - the bulk of the work after that was adding additional functions to make things that were already possible easier. ## {% linkable_title How it Works %} diff --git a/source/_docs/ecosystem/appdaemon/windows.markdown b/source/_docs/ecosystem/appdaemon/windows.markdown index a903f37f424..4d2e7daeaa8 100755 --- a/source/_docs/ecosystem/appdaemon/windows.markdown +++ b/source/_docs/ecosystem/appdaemon/windows.markdown @@ -19,4 +19,4 @@ AppDaemon can be installed exactly as per the instructions for every other versi ## {% linkable_title Windows Under the Linux Subsystem %} -Windows 10 now supports a full Linux bash environment that is capable of running Python. This is essentially an Ubuntu distribution and works extremely well. It is possible to run AppDaemon in exactly the same way as for Linux distributions, and none of the above Windows Caveats apply to this version. This is the reccomended way to run AppDaemon in a Windows 10 and later environment. +Windows 10 now supports a full Linux bash environment that is capable of running Python. This is essentially an Ubuntu distribution and works extremely well. It is possible to run AppDaemon in exactly the same way as for Linux distributions, and none of the above Windows Caveats apply to this version. This is the recommended way to run AppDaemon in a Windows 10 and later environment. diff --git a/source/_docs/ecosystem/backup/backup_dropbox.markdown b/source/_docs/ecosystem/backup/backup_dropbox.markdown index 750360f09a1..e0d73368990 100644 --- a/source/_docs/ecosystem/backup/backup_dropbox.markdown +++ b/source/_docs/ecosystem/backup/backup_dropbox.markdown @@ -18,7 +18,7 @@ You need two parts in order to get it working correctly. Become the user that run Home Assistant. -- A seperate Python script that syncs a specific folder. Which can be found [here](https://gist.github.com/riemers/31e3350041fd3e47e489cbc811209d6f) +- A separate Python script that syncs a specific folder. Which can be found [here](https://gist.github.com/riemers/31e3350041fd3e47e489cbc811209d6f) - The excellent [dropbox uploader script](https://github.com/andreafabrizi/Dropbox-Uploader/blob/master/dropbox_uploader.sh) you can grab the .sh file only. Download those files to a folder of your liking, after that edit both files and change paths accordingly. @@ -46,7 +46,7 @@ Do note, this will **backup your passwords to Dropbox**. ### {% linkable_title Automate the backup %} -So you just made a full backup, next time you want it to be done automaticly. Since your database can change and so do other files over time. +So you just made a full backup, next time you want it to be done automatically. Since your database can change and so do other files over time. Add it to your crontab, edit the **path/to** part. ```bash diff --git a/source/_docs/ecosystem/backup/backup_github.markdown b/source/_docs/ecosystem/backup/backup_github.markdown index 0a0bf9e5ffc..ed4eb998ad9 100644 --- a/source/_docs/ecosystem/backup/backup_github.markdown +++ b/source/_docs/ecosystem/backup/backup_github.markdown @@ -30,7 +30,7 @@ Some best practices to consider before putting your configuration on GitHub: - Extensive use of [secrets.yaml](https://home-assistant.io/topics/secrets/) to hide sensitive information like usernames, passwords, device information, and location - Exclusion of some files, including `secrets.yaml` and device-specific information using a [`.gitignore`](https://git-scm.com/docs/gitignore) file -- Regularly commiting your configuration to GitHub to make sure that your backup is up to date +- Regularly committing your configuration to GitHub to make sure that your backup is up to date - Use a README.md to document your configuration and include screenshots of your Home Assistant GUI ### {% linkable_title Step 1: Installing and Initializing Git %} @@ -127,7 +127,7 @@ git push origin master exit ``` -Every time you run this script, you will be prompted for a comment to describe the change(s) that you are commiting. This comment will be displayed beside each changed file on GitHub and will be stored after each commit. You will also be asked to enter your GitHub username and password (or ssh key passphrase if you use [GitHub with ssh](https://help.github.com/categories/ssh/)). +Every time you run this script, you will be prompted for a comment to describe the change(s) that you are committing. This comment will be displayed beside each changed file on GitHub and will be stored after each commit. You will also be asked to enter your GitHub username and password (or ssh key passphrase if you use [GitHub with ssh](https://help.github.com/categories/ssh/)). ### {% linkable_title Step 7: Configuration file testing %} @@ -162,7 +162,7 @@ home_elevation: 0 ### {% linkable_title Extra commands %} -You can enter these commands to get a list of the files in your local git repository and a status of files that have changed but not commited yet: +You can enter these commands to get a list of the files in your local git repository and a status of files that have changed but not committed yet: ```bash diff --git a/source/_docs/ecosystem/backup/backup_usb.markdown b/source/_docs/ecosystem/backup/backup_usb.markdown index 047bc0c70b9..279c76c3bda 100644 --- a/source/_docs/ecosystem/backup/backup_usb.markdown +++ b/source/_docs/ecosystem/backup/backup_usb.markdown @@ -101,7 +101,7 @@ Change below path to where you placed the `usb_backup.sh` and run the following ### {% linkable_title Auto mount %} -This does not automaticly mount your USB drive at boot. You need to do that manually or add a line to your `/etc/fstab` file. +This does not automatically mount your USB drive at boot. You need to do that manually or add a line to your `/etc/fstab` file. If your drive is on `/dev/sda1`, you could add a entry to your `/etc/fstab` like so: diff --git a/source/_docs/ecosystem/certificates/lets_encrypt.markdown b/source/_docs/ecosystem/certificates/lets_encrypt.markdown index a88c559a248..c248bec61d7 100644 --- a/source/_docs/ecosystem/certificates/lets_encrypt.markdown +++ b/source/_docs/ecosystem/certificates/lets_encrypt.markdown @@ -24,7 +24,7 @@ This guide was added by mf_social on 16/03/2017 and was valid at the time of wri * You are not currently running anything on port 80 on your network (you'd know if you were). * If you are not using Home Assistant on a Debian/Raspian/Hassbian system you will be able to convert any of the terminology I use in to the correct syntax for your system. * You understand that this is a 'guide' covering the general application of these things to the general masses and there are things outside of the scope of it, and it does not cover every eventuality (although I have made some notes where people may stumble). Also, I have used some turns of phrase to make it easier to understand for the novice reader which people of advanced knowledge may say is innacurate. My goal here is to get you through this guide with a satisfactory outcome and have a decent understanding of what you are doing and why, not to teach you advanced internet communication protocols. - * Each step presumes you have fully completed the previous step succesfully, so if you did an earlier step following a different guide, please ensure that you have not missed anything out that may affect the step you have jumped to, and ensure that you adapt any commands to take in to account different file placements from other guides. + * Each step presumes you have fully completed the previous step successfully, so if you did an earlier step following a different guide, please ensure that you have not missed anything out that may affect the step you have jumped to, and ensure that you adapt any commands to take in to account different file placements from other guides. Steps we will take: @@ -358,11 +358,11 @@ If you were previously using a webapp on your phone/tablet to access your Home A https://home-assistant.io/docs/frontend/mobile/ ``` -All done? Accessing your Home Assistant from across the world with your DuckDNS URL and a lovely secure logo on your browser? Ace! Now let's clean up our port forwards so that we are only exposing the parts of our network that are absolutely neccesary to the outside world. +All done? Accessing your Home Assistant from across the world with your DuckDNS URL and a lovely secure logo on your browser? Ace! Now let's clean up our port forwards so that we are only exposing the parts of our network that are absolutely necessary to the outside world. ### {% linkable_title 6 - Clean up port forwards %} -In step 2 we created a port forwarding rule called `ha_test`. This opens port 8123 to the world, and is no longer neccessary. +In step 2 we created a port forwarding rule called `ha_test`. This opens port 8123 to the world, and is no longer necessary. Go to your router's configuration pages and delete the `ha_test` rule. @@ -402,7 +402,7 @@ $ sudo apt-get install ssl-cert-check ```

-In cases where, for whatever reason, apt-get installing is not appropriate for your installation you can fetch the ssl-cert-check script from `http://prefetch.net/code/ssl-cert-check` bearing in mind that you will have to modify the command in the sensor code below to run the script from wherever you put it, modify permission if neccessary and so on. +In cases where, for whatever reason, apt-get installing is not appropriate for your installation you can fetch the ssl-cert-check script from `http://prefetch.net/code/ssl-cert-check` bearing in mind that you will have to modify the command in the sensor code below to run the script from wherever you put it, modify permission if necessary and so on.

To set up a senor add the following to your `configuration.yaml` (remembering to correct the URL for your DuckDNS): @@ -433,7 +433,7 @@ If you are a TWO-RULE person (from step 6), you can automatically renew your cer There are a number of options for automating the renewal process: #### Option 1: -Your certificate can be renewed as a 'cron job' - cron jobs are background tasks run by the computer at specified intervals (and are totally independant of Home Assistant). Defining cron is outside of the scope of this guide but you will have had dealings with `crontab` when setting up DuckDNS in step 3 +Your certificate can be renewed as a 'cron job' - cron jobs are background tasks run by the computer at specified intervals (and are totally independent of Home Assistant). Defining cron is outside of the scope of this guide but you will have had dealings with `crontab` when setting up DuckDNS in step 3 To set a cron job to run the script at regular intervals: diff --git a/source/_docs/ecosystem/hass-configurator.markdown b/source/_docs/ecosystem/hass-configurator.markdown index 6ec4d11b8e0..bca0a948ee6 100644 --- a/source/_docs/ecosystem/hass-configurator.markdown +++ b/source/_docs/ecosystem/hass-configurator.markdown @@ -42,7 +42,7 @@ There are no dependencies on Python modules that are not part of the standard li ### {% linkable_title Configuration %} Near the top of the configurator.py-file you will find some global variables you can change to customize the configurator. If you are unfamiliar with Python: when setting variables of the type _string_, you have to write that within quotation marks. The default settings are fine for just checking out the configurator quickly. With more customized setups you should change some settings though. -To keep your settings across updates it is also possible to save settings in an external file. In that case copy [settings.conf](https://github.com/danielperna84/hass-configurator/blob/master/settings.conf) whereever you like and append the full path to the file to the command when starting the configurator. E.g. `sudo .configurator.py /home/homeassistant/.homeassistant/mysettings.conf`. This file is in JSON format. So make sure it has a valid syntax (you can set the editor to JSON to get syntax highlighting for the settings). The major difference to the settings in the py-file is, that `None` becomes `null`. +To keep your settings across updates it is also possible to save settings in an external file. In that case copy [settings.conf](https://github.com/danielperna84/hass-configurator/blob/master/settings.conf) wherever you like and append the full path to the file to the command when starting the configurator. E.g. `sudo .configurator.py /home/homeassistant/.homeassistant/mysettings.conf`. This file is in JSON format. So make sure it has a valid syntax (you can set the editor to JSON to get syntax highlighting for the settings). The major difference to the settings in the py-file is, that `None` becomes `null`. #### LISTENIP (string) The IP the service is listening on. By default it is binding to `0.0.0.0`, which is every interface on the system. diff --git a/source/_docs/ecosystem/ios/location.markdown b/source/_docs/ecosystem/ios/location.markdown index 54d61da2e71..596a4b93a4b 100644 --- a/source/_docs/ecosystem/ios/location.markdown +++ b/source/_docs/ecosystem/ios/location.markdown @@ -12,7 +12,7 @@ redirect_from: /ecosystem/ios/location/ ## {% linkable_title Location tracking when outside a Home Assistant zone %} -Home Assistant for iOS receives _significant location updates_ from iOS. Whenever an update is received, it is sent to Home Assistant. Roughly, an update is received everytime that your device transfers to a new cellular tower, a significant amount of time has passed (usually a couple hours) or a connection state changes and the system notices your location recently changed. +Home Assistant for iOS receives _significant location updates_ from iOS. Whenever an update is received, it is sent to Home Assistant. Roughly, an update is received every time that your device transfers to a new cellular tower, a significant amount of time has passed (usually a couple hours) or a connection state changes and the system notices your location recently changed. Apple [defines][apple-location-programming-guide] significant significant-change location updates as: diff --git a/source/_docs/ecosystem/scenegen.markdown b/source/_docs/ecosystem/scenegen.markdown index 2d9265a1701..3cf1e1b03c8 100644 --- a/source/_docs/ecosystem/scenegen.markdown +++ b/source/_docs/ecosystem/scenegen.markdown @@ -90,7 +90,7 @@ This output can be cut and pasted into your configuration.yaml file as required Scenegen supports all documented effects for lights including transitions and flash effects, however generally it is easier to run scenegen to get the basic setup and add any effects manually later. -Note that depending on the type of light there may be a delay in actually setting up its parameters and Home Assistant actually recieving that state. For instance, if you set a scene up with the Hue App, Home Assistant won't see those changes for up to 10 seconds. Turning on a ZWave light might not be seen for an entire poll interval. For this reason, its good practice to wait for a while after the scene is setup before running scenegen. Alternatively, perform all setup using the Home Assistant frontend and it will instantly have the required state for capture. +Note that depending on the type of light there may be a delay in actually setting up its parameters and Home Assistant actually receiving that state. For instance, if you set a scene up with the Hue App, Home Assistant won't see those changes for up to 10 seconds. Turning on a ZWave light might not be seen for an entire poll interval. For this reason, its good practice to wait for a while after the scene is setup before running scenegen. Alternatively, perform all setup using the Home Assistant frontend and it will instantly have the required state for capture. ## {% linkable_title Advanced Usage %} diff --git a/source/_docs/glossary.markdown b/source/_docs/glossary.markdown new file mode 100644 index 00000000000..7f7437b49ed --- /dev/null +++ b/source/_docs/glossary.markdown @@ -0,0 +1,20 @@ +--- +layout: page +title: "Glossary" +description: "Home Assistant's Glossary." +date: 2017-10-08 08:30 +sidebar: true +comments: false +sharing: true +footer: true +--- + +{% assign entries = site.data.glossary | sort: 'topic' %} + + diff --git a/source/_docs/installation/hassbian/installation.markdown b/source/_docs/installation/hassbian/installation.markdown index 1b7ad202053..81ce2e02add 100644 --- a/source/_docs/installation/hassbian/installation.markdown +++ b/source/_docs/installation/hassbian/installation.markdown @@ -14,12 +14,14 @@ The easiest way to install Home Assistant on your Raspberry Pi is by using HASSb 1. [Download the Hassbian image][image-download] (364 MB) 2. Use [Etcher][etcher] to flash the image to your SD card - 3. Ensure your Raspberry Pi has wired access to the internet for the entire process or configure your wireless network (details below). + 3. Ensure your Raspberry Pi has wired access to the internet for the entire process or configure your wireless network settings **before proceeding to step 4**. 4. Insert SD card to Raspberry Pi and turn it on. Initial installation of Home Assistant will take about 5 minutes. These instructions are also available as a [video](https://www.youtube.com/watch?v=iIz6XqDwHEk). Additional information is available in this [video](https://www.youtube.com/watch?v=tCGlQSsQ-Mc). -After initial boot an installer will run in the background and takes around 15 minutes to complete, after it has finished you can reach Home Assistant in your browser at [http://hassbian.local:8123]. If you want to login via SSH, the default username is `pi` and password is `raspberry` (please change this by running `passwd`). The Home Assistant configuration is located at `/home/homeassistant/.homeassistant/`. +After initial boot an installer will run in the background and takes around 15 minutes to complete, after it has finished, you will be prompted to login: `hassbian login:`. Installation is complete at this point. The default username is `pi` and the password is `raspberry`. + +Open a browser on a device that's connected to the same WiFi network as your Raspberry Pi and point it to Home Assistant at [http://hassbian.local:8123]. If you want to login via SSH, the default username is `pi` and password is `raspberry` (please change this by running `passwd`). The Home Assistant configuration is located at `/home/homeassistant/.homeassistant/`. If you find that the web page is not reachable after 30 minutes or so, check that you have files in `/home/homeassistant/.homeassistant/`, if there are no files in this location then run the installer manually using this command: `sudo systemctl start install_homeassistant.service`. @@ -45,6 +47,7 @@ network={ psk="YOUR_PASSWORD" } ``` +You may need to adjust the country code depending upon where you are. A list of codes can be found [here](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements). ### {% linkable_title Technical Details %} diff --git a/source/_docs/installation/raspberry-pi-all-in-one.markdown b/source/_docs/installation/raspberry-pi-all-in-one.markdown index bff307a8b50..3d805901a87 100644 --- a/source/_docs/installation/raspberry-pi-all-in-one.markdown +++ b/source/_docs/installation/raspberry-pi-all-in-one.markdown @@ -13,7 +13,7 @@ The [Raspberry Pi All-In-One Installer](https://github.com/home-assistant/fabric The only requirement is that you have a Raspberry Pi with a fresh installation of [Raspbian](https://www.raspberrypi.org/downloads/raspbian/) connected to your network.

-Note that as of 2016-11-30 SSH is disabled by default in the official Raspbian images. Adding an empty file called `ssh` to `/boot/` or the FAT32 partition will enable it. More information is on the Raspberry Pi Foundation [Blog](https://www.raspberrypi.org/blog/page/2/?fish#a-security-update-for-raspbian-pixel). +Note that as of 2016-11-30 SSH is disabled by default in the official Raspbian images. Adding an empty file called `ssh` to `/boot/` on the FAT32 partition will enable it. More information is on the Raspberry Pi Foundation [Blog](https://www.raspberrypi.org/blog/page/2/?fish#a-security-update-for-raspbian-pixel).

Irrespective of whether you use SSH to connect to the Pi from another computer or not, you need SSH to install Home Assistant. So go ahead and enable SSH. @@ -62,7 +62,7 @@ To upgrade the All-In-One setup manually: * Login to Raspberry Pi `ssh pi@your_raspberry_pi_ip` * Change to homeassistant user `sudo su -s /bin/bash homeassistant` -* Change to virtual enviroment `source /srv/homeassistant/homeassistant_venv/bin/activate` +* Change to virtual environment `source /srv/homeassistant/homeassistant_venv/bin/activate` * Update Home Assistant `pip3 install --upgrade homeassistant` * Type `exit` to logout the hass user and return to the `pi` user. @@ -70,7 +70,7 @@ To upgrade the All-In-One setup manually: **If you deployed Home Assistant via the AiO installer prior to December 2016** * Login to Raspberry Pi `ssh pi@your_raspberry_pi_ip` * Change to homeassistant user `sudo su -s /bin/bash hass` -* Change to virtual enviroment `source /srv/hass/hass_venv/bin/activate` +* Change to virtual environment `source /srv/hass/hass_venv/bin/activate` * Update Home Assistant `pip3 install --upgrade homeassistant` * Type `exit` to logout the hass user and return to the `pi` user. diff --git a/source/_docs/installation/raspberry-pi.markdown b/source/_docs/installation/raspberry-pi.markdown index 713cde495cc..23d9396ad9e 100644 --- a/source/_docs/installation/raspberry-pi.markdown +++ b/source/_docs/installation/raspberry-pi.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Manual installation on a Raspberry Pi" -description: "Instructions to install Home Assistant on a Raspberry Pi runnning Raspbian Lite." +description: "Instructions to install Home Assistant on a Raspberry Pi running Raspbian Lite." date: 2016-09-05 16:00 sidebar: true comments: false diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index 13eaa390dbf..98daf5e74ea 100644 --- a/source/_docs/mqtt/discovery.markdown +++ b/source/_docs/mqtt/discovery.markdown @@ -88,7 +88,7 @@ $ mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/switch/irrigation/set" -m Setting up a sensor with multiple measurement values requires multiple consecutive configuration topic submissions. - Configuration topic no1: `homeassistant/sensor/sensorBedroomT/config` -- Configuration payload no1: `{"device_class": "sensor", "name": "Temperature", "state_topic": "homeassistant/sensor/sensorBedroom/state", "unit_of_measurement": "°C", "value_template": "{{ value_json.temperature}}" }` +- Configuration payload no1: `{"device_class": "sensor", "name": "Temperature", "state_topic": "homeassistant/sensor/sensorBedroom/state", "unit_of_measurement": "°C", "value_template": "{% raw %}{{ value_json.temperature}}{% endraw %}" }` - Configuration topic no2: `homeassistant/sensor/sensorBedroomH/config` -- Configuration payload no2: `{"device_class": "sensor", "name": "Humidity", "state_topic": "homeassistant/sensor/sensorBedroom/state", "unit_of_measurement": "%", "value_template": "{{ value_json.humidity}}" }` +- Configuration payload no2: `{"device_class": "sensor", "name": "Humidity", "state_topic": "homeassistant/sensor/sensorBedroom/state", "unit_of_measurement": "%", "value_template": "{% raw %}{{ value_json.humidity}}{% endraw %}" }` - Common state payload: `{ "temperature": 23.20, "humidity": 43.70 }` diff --git a/source/_docs/scripts.markdown b/source/_docs/scripts.markdown index 3f7106a35a5..4a732d0cbec 100644 --- a/source/_docs/scripts.markdown +++ b/source/_docs/scripts.markdown @@ -77,7 +77,7 @@ delay: {% raw %}'00:{{ states.input_number.minute_delay.state | int }}:00'{% end ``` ### {% linkable_title Wait %} -Wait until some things are complete. We support at the moment `wait_template` for waiting until a condition is `true`, see also on [Template-Trigger](/docs/automation/trigger/#template-trigger). The Timeout has same syntax as `delay`. If you set a Timeout for 1 minute and the condition is not satified within that minute, the script will continue. +Wait until some things are complete. We support at the moment `wait_template` for waiting until a condition is `true`, see also on [Template-Trigger](/docs/automation/trigger/#template-trigger). It is possible to set a timeout after which the script will abort its execution if the condition is not satisfied. Timeout has the same syntax as `delay`. ```yaml # wait until media player have stop the playing diff --git a/source/_docs/tools/scripts.markdown b/source/_docs/tools/scripts.markdown index 0b85a53f8f2..a0b96505e3f 100644 --- a/source/_docs/tools/scripts.markdown +++ b/source/_docs/tools/scripts.markdown @@ -19,7 +19,7 @@ Test any changes to your `configuration.yaml` file before launching Home Assista $ hass --script check_config ``` -### {% linkable_title Existance of configuration %} +### {% linkable_title Existence of configuration %} This script checks if the `configuration.yaml` file exists. If the file is not available, one is created. @@ -47,7 +47,7 @@ $ hass --script benchmark async_million_events ### {% linkable_title Old scripts %} -Usally those scripts were only used when a massive update happend and was announced in the release notes. +Usually those scripts were only used when a massive update happened and was announced in the release notes. - `db_migrator`: Migrate an existing SQLite database to the new schema. - `influxdb_migrator`: Convert an old InfluxDB to the new format. diff --git a/source/_faq/documentation-tool.markdown b/source/_faq/documentation-tool.markdown index 2f700707a2e..15357cae46a 100644 --- a/source/_faq/documentation-tool.markdown +++ b/source/_faq/documentation-tool.markdown @@ -11,4 +11,4 @@ ha_category: Documentation --- -Why are you not using tools X for the documentation? Because the current solution works for us and we see no additional value in using a seperate publishing platform. +Why are you not using tools X for the documentation? Because the current solution works for us and we see no additional value in using a separate publishing platform. diff --git a/source/_faq/missing-documentation.markdown b/source/_faq/missing-documentation.markdown index 329dc05f6a7..a37bde635d2 100644 --- a/source/_faq/missing-documentation.markdown +++ b/source/_faq/missing-documentation.markdown @@ -13,4 +13,4 @@ ha_category: Documentation Home Assistant is a FAST moving open source project. This means occasionally the official documentation will not be 100% current or complete. Since this is an open source volunteer project, we would encourage anyone who finds gaps in the documentation to click the `edit this page on Github` link in the top right and submit any corrections/enhancements they may find useful. -In the absence of information, many users find it beneficial to look at other people's configurations to find examples of what they want to accomplish in thier own configurations. The easiest way to find these configurations is through this [Github search](https://github.com/search?q=topic%3Ahome-assistant-config&type=Repositories). +In the absence of information, many users find it beneficial to look at other people's configurations to find examples of what they want to accomplish in their own configurations. The easiest way to find these configurations is through this [Github search](https://github.com/search?q=topic%3Ahome-assistant-config&type=Repositories). diff --git a/source/_includes/asides/developers_navigation.html b/source/_includes/asides/developers_navigation.html index 59ac235352c..632f09c5afd 100644 --- a/source/_includes/asides/developers_navigation.html +++ b/source/_includes/asides/developers_navigation.html @@ -91,6 +91,7 @@ +
  • + {% active_link /developers/documentation/ Website/Documentation %} + +
  • {% active_link /developers/helpers/ Online helpers %}
  • -
  • {% active_link /developers/website/ Website/Documentation %}
  • {% active_link /developers/releasing/ Releasing %}
  • {% active_link /developers/maintenance/ Maintenance %}
  • diff --git a/source/_includes/asides/docs_navigation.html b/source/_includes/asides/docs_navigation.html index c113f371a5a..cd1fb5c0601 100644 --- a/source/_includes/asides/docs_navigation.html +++ b/source/_includes/asides/docs_navigation.html @@ -3,7 +3,8 @@

    Topics