diff --git a/Gemfile.lock b/Gemfile.lock index 5fc8a009c40..4a9684644f8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -109,5 +109,8 @@ DEPENDENCIES sinatra (~> 1.4.2) stringex (~> 1.4) +RUBY VERSION + ruby 2.4.1p111 + BUNDLED WITH 1.15.4 diff --git a/_config.yml b/_config.yml index 3c544f2b400..3f5b224ff88 100644 --- a/_config.yml +++ b/_config.yml @@ -139,12 +139,12 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 57 -current_patch_version: 3 -date_released: 2017-11-11 +current_minor_version: 58 +current_patch_version: 0 +date_released: 2017-11-18 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. # Major release: -patch_version_notes: "#release-0573---november-11" +patch_version_notes: "#" # Minor release (Example #release-0431---april-25): diff --git a/source/_components/alarm_control_panel.spc.markdown b/source/_components/alarm_control_panel.spc.markdown index 673e687fa3b..78e7066f00e 100644 --- a/source/_components/alarm_control_panel.spc.markdown +++ b/source/_components/alarm_control_panel.spc.markdown @@ -18,3 +18,19 @@ The `spc` alarm control panel platform allows you to control your [Vanderbilt SP The requirement is that you have setup your [SPC hub](/components/spc/). +The `changed_by` attribute enables one to be able to take different actions depending on who armed/disarmed the alarm in [automation](/getting-started/automation/). + +```yaml +automation: + - alias: Alarm status changed + trigger: + - platform: state + entity_id: alarm_control_panel.alarm_1 + action: + - service: notify.notify + data_template: + message: > + {% raw %}Alarm changed from {{ trigger.from_state.state }} + to {{ trigger.to_state.state }} + by {{ trigger.to_state.attributes.changed_by }}{% endraw %} +``` diff --git a/source/_components/alexa.markdown b/source/_components/alexa.markdown index 179fb4076c1..bccf44f2e77 100644 --- a/source/_components/alexa.markdown +++ b/source/_components/alexa.markdown @@ -135,6 +135,13 @@ Custom slot type for scene support. The names must exactly match the scene names (minus underscores - amazon discards them anyway and we later map them back in with the template). +In the new Alexa Skills Kit, you can also create synonyms for slot type values, which can be used in place of the base value in utterances. Synonyms will be replaced with their associated slot value in the intent request sent to the Alexa API endpoint, but only if there are not multiple synonym matches. Otherwise, the value of the synonym that was spoken will be used. + +
+
+Custom slot values with synonyms.
+
+The following examples assume a subscription that has an ID of `123456` and a label of `Web Server` +
+ +Minimal `configuration.yaml` (produces `binary_sensor.vultr_web_server`): + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: vultr + subscription: 123456 +``` + +{% configuration %} +subscription: + description: The subscription you want to monitor, this can be found in the URL when viewing a server. + required: true + type: string +name: + description: The name you want to give this binary sensor. + required: false + default: "Vultr {subscription label}" + type: string +{% endconfiguration %} + + +Full `configuration.yaml` (produces `binary_sensor.totally_awesome_server`): + +```yaml +binary_sensor: + - platform: vultr + name: totally_awesome_server + subscription: 12345 +``` + diff --git a/source/_components/climate.knx.markdown b/source/_components/climate.knx.markdown index 1c740bba30c..b5b59a01e36 100644 --- a/source/_components/climate.knx.markdown +++ b/source/_components/climate.knx.markdown @@ -25,10 +25,11 @@ To use your KNX thermostats in your installation, add the following lines to you climate: - platform: knx name: HASS-Kitchen.Temperature - temperature_address: '6/2/1' - setpoint_address: '5/1/2' - target_temperature_address: '5/1/1' - operation_mode_address: '5/1/3' + temperature_address: '5/1/1' + setpoint_shift_address: '5/1/2' + setpoint_shift_state_address: '5/1/3' + target_temperature_address: '5/1/4' + operation_mode_address: '5/1/5' ``` Alternatively, if your device has dedicated binary group addresses for frost/night/comfort mode: @@ -38,12 +39,13 @@ Alternatively, if your device has dedicated binary group addresses for frost/nig climate: - platform: knx name: HASS-Kitchen.Temperature - temperature_address: '6/2/1' - setpoint_address: '5/1/2' - target_temperature_address: '5/1/1' - operation_mode_frost_protection_address: '5/1/3' - operation_mode_night_address: '5/1/4' - operation_mode_comfort_address: '5/1/5' + temperature_address: '5/1/1' + setpoint_shift_address: '5/1/2' + setpoint_shift_state_address: '5/1/3' + target_temperature_address: '5/1/4' + operation_mode_frost_protection_address: '5/1/5' + operation_mode_night_address: '5/1/6' + operation_mode_comfort_address: '5/1/7' ``` Configuration variables: @@ -51,7 +53,16 @@ Configuration variables: - **name** (*Optional*): A name for this device used within Home Assistant. - **temperature_address**: KNX group address for reading current room temperature from KNX bus. - **target_temperature_address**: KNX group address for reading current target temperature from KNX bus. -- **setpoint_address**: KNX group address for basis setpoint + +The `knx` component sets the desired target temperature by modifying the setpoint_shift. The module provides the following configuration options: + +* **setpoint_shift_address**: (*Optional*) KNX address for setpoint_shift +* **setpoint_shift_state_address**: (*Optional*) Explicit KNX address for reading setpoint_shift. +* **setpoint_shift_step**: (*Optional*) Defines for step size in Kelvin for each step of setpoint_shift. Default is 0.5 K. +* **setpoint_shift_min**: (*Optional*) Minimum value of setpoint shift. Default is "-6". +* **setpoint_shift_max**: (*Optional*) Maximum value of setpoint shift. Default is "6". + +The operation modes may be controlled with the following directives: - **operation_mode_address** (*Optional*): KNX address for operation mode (Frost protection/night/comfort). - **operation_mode_state_address** (*Optional*): Explicit KNX address for reading operation mode @@ -63,5 +74,3 @@ Configuration variables: - **operation_mode_comfort_address** (*Optional*): KNX address for switching on/off comfort mode. `operation_mode_frost_protection_address` / `operation_mode_night_address` / `operation_mode_comfort_address` are not necessary if `operation_mode_address` was specified. - - diff --git a/source/_components/device_tracker.hitron_coda.markdown b/source/_components/device_tracker.hitron_coda.markdown new file mode 100644 index 00000000000..fecdc2fd5ed --- /dev/null +++ b/source/_components/device_tracker.hitron_coda.markdown @@ -0,0 +1,44 @@ +--- +layout: page +title: "Hitron CODA Routers" +description: "Instructions on how to integrate Hitron CODA Routers into Home Assistant." +date: 2017-10-03 15:40 +sidebar: true +comments: false +sharing: true +footer: true +logo: hitron.png +ha_category: Presence Detection +ha_release: 0.58 +--- + +This component offers presence detection by examining devices connected to a [Rogers Hitron CODA](https://www.rogers.com/customer/support/article/wi-fi-password-hitron-coda4582-cgn3amr-cgnm3552-cgn3acr-cgn3) +Router. + +To use a Hitron router in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +device_tracker: + - platform: hitron_coda + host: !secret router_ip + username: !secret router_username + password: !secret router_password +``` + +{% configuration %} +host: + description: The IP address of your router, e.g., `192.168.0.1`. + required: true + type: string +username: + description: The username to login into the router (user should have read access to the web interface of the router). Usually "cusadmin". + required: true + type: string +password: + description: The password for the specified username. Usually your WiFi password. + required: true + type: string +{% endconfiguration %} + +See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. diff --git a/source/_components/device_tracker.tile.markdown b/source/_components/device_tracker.tile.markdown new file mode 100644 index 00000000000..0db52dfefe6 --- /dev/null +++ b/source/_components/device_tracker.tile.markdown @@ -0,0 +1,46 @@ +--- +layout: page +title: "Tile" +description: "Instructions how to use Tile to track devices in Home Assistant." +date: 2017-11-08 20:40:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: tile.png +ha_release: 0.58 +ha_category: Presence Detection +ha_iot_class: "Cloud Polling" +--- + +The `tile` platform allows Home Assistant to utilize [Tile® Bluetooth trackers](https://www.thetileapp.com). +The official Tile mobile app handles the actual tracking of Tile devices using +the mobile device's Bluetooh and GPS. + +To integrate Tile into Home Assistant, add the following section to your +`configuration.yaml` file: + +```yaml +device_tracker: + - platform: tile + username: email@address.com + password: MY_PASSWORD_123 + monitored_variables: + - TILE + - PHONE +``` + +{% configuration %} + username: + description: the email address for the Tile account + required: true + type: string + password: + description: the password for the Tile account + required: true + type: string + monitored_variables: + description: the Tile types to monitor; valid values are `TILE` and `PHONE` (default is for all types to be included) + required: false + type: list +{% endconfiguration %} \ No newline at end of file diff --git a/source/_components/downloader.markdown b/source/_components/downloader.markdown index c616cc40688..53063587d69 100644 --- a/source/_components/downloader.markdown +++ b/source/_components/downloader.markdown @@ -38,7 +38,7 @@ This will download the file from the given URL. | Service data attribute | Optional | Description | | ---------------------- | -------- | ---------------------------------------------- | -| `url` | no | The url of the file to download. | +| `url` | no | The URL of the file to download. | | `subdir` | yes | Download into subdirectory of **download_dir** | | `filename` | yes | Determine the filename. | - +| `overwrite` | yes | Whether to overwrite the file or not, defaults to `false`. | diff --git a/source/_components/frontend.markdown b/source/_components/frontend.markdown index ee89044b2ed..40274f80623 100644 --- a/source/_components/frontend.markdown +++ b/source/_components/frontend.markdown @@ -19,6 +19,11 @@ frontend: ``` {% configuration %} + javascript_version: + description: "Version of the JavaScript to serve to clients. Options: `es5` - transpiled so old browsers understand it. `latest` - not transpiled, so will work on recent browsers only. `auto` - select a version according to the browser user-agent. The value in the config can be overiden by putting `es5` or `latest` in the URL. For example `http://localhost:8123/states?es5` " + required: false + type: string + default: es5 themes: description: Allow to define different themes. See below for further details. required: false diff --git a/source/_components/google_assistant.markdown b/source/_components/google_assistant.markdown index 23c1ce73397..15a3730096b 100644 --- a/source/_components/google_assistant.markdown +++ b/source/_components/google_assistant.markdown @@ -28,6 +28,8 @@ google_assistant: project_id: someproject-2d0b8 client_id: [long URL safe random string] access_token: [a different long URL safe random string] + agent_user_id: [a string to identify user] + api_key: [an API Key generated for the Google Actions project] exposed_domains: - switch - light @@ -43,6 +45,8 @@ google_assistant: * *project_id* (Required): Project ID from the Google Developer console (looks like `words-2ab12`) * *client_id* (Required): A long random URL safe string (no spaces or special characters) that will be used for Implicit OAuth. * *access_token* (Required): Another different long random URL safe string. +* *agent_user_id* (Optional): A string to identify the user, e.g., email address. If not provided, the component will generate one. +* *api_key* (Optional): An API Key generated for the project from Google Console. See setup below. If not provided then the request_sync service is not exposed * *exposed_domains* (Optional): An array of Home Assistant domains to expose to Google Assistant. Options include: - `switch` - `light` @@ -123,3 +127,10 @@ homeassistant: 2. Under the gear icon, click `Permissions` 3. Click `Add`, type the new user's e-mail address and choose `Project -> Editor` role 4. Have the new user go to [developer console](https://console.actions.google.com/) and repeat steps starting from point 7. +11. If you want to use the request_sync service in Home Assistant, then Enable Homegraph API for your project: + 1. Go to https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview + 2. Select your project and click Enable Homegraph API + 3. Go to Credentials and select API Key from Create Credentials + 4. Note down the generated API Key and use this in the configuration + +*Note:* The request_sync service requires that the initial sync from Google includes the agent_user_id. If not, the service will log an error that reads something like "Request contains an invalid argument". If this happens, then unlink the account from Home Control and relink. diff --git a/source/_components/knx.markdown b/source/_components/knx.markdown index b813ac3aee4..b48642e7ce5 100644 --- a/source/_components/knx.markdown +++ b/source/_components/knx.markdown @@ -18,6 +18,10 @@ The [KNX](http://www.knx.org) integration for Home Assistant allows you to conne The component requires a local KNX/IP interface like the [Weinzierl 730](http://www.weinzierl.de/index.php/en/all-knx/knx-devices-en/knx-ip-interface-730-en). Through this, it will send and receive commands to and from other devices to the KNX bus. ++ Please note, the `knx` platform does not support Windows and needs at least python version 3.5. +
+ There is currently support for the following device types within Home Assistant: - [Binary Sensor](/components/binary_sensor.knx) diff --git a/source/_components/linode.markdown b/source/_components/linode.markdown index fa55f1e6b87..623132c0448 100644 --- a/source/_components/linode.markdown +++ b/source/_components/linode.markdown @@ -15,14 +15,19 @@ ha_iot_class: "Cloud Polling" The `linode` component allows you to access the information about your [Linode](https://linode.com) systems from Home Assistant. -Obtain your API key from Linode account. +Obtain your oAuth2 Access Token from Linode account. +*It is recommended to assign a static IP address to your Lutron Smart Bridge. This ensures that it won't change IP address, so you won't have to change the `host` if it reboots and comes up with a different IP address. diff --git a/source/_components/media_player.universal.markdown b/source/_components/media_player.universal.markdown index 1d19ddadcf6..48d46311e67 100644 --- a/source/_components/media_player.universal.markdown +++ b/source/_components/media_player.universal.markdown @@ -51,18 +51,26 @@ Configuration variables: - **name** (*Required*): The name to assign the player - **children** (*Required*): Ordered list of child media players this entity will control +- **state_template** (*Optional*): A [template](/topics/templating/) can be specified to render the state of the media player. This way, the state could depend on entities different from media players, like Switches or Input Booleans. - **commands** (*Optional*): Commands to be overwritten. Possible entries are *turn_on*, *turn_off*, *select_source*, *volume_set*, *volume_up*, *volume_down*, and *volume_mute*. - **attributes** (*Optional*): Attributes that can be overwritten. Possible entries are *is_volume_muted*, *state*, *source*, *source_list, and *volume_level*. The values should be an entity id and state attribute separated by a bar (\|). If the entity id's state should be used, then only the entity id should be provided. -The universal media player will primarily imitate one of its *children*. The first child in the list that is active (not idle/off) will be controlled the universal media player. The universal media player will also inherit its state from the first active child. Entities in the *children* list must be media players. +The Universal Media Player will primarily imitate one of its *children*. The Universal Media Player will control the first child on the list that is active (not idle/off). The Universal Media Player will also inherit its state from the first active child if a `state_template` is not provided. Entities in the *children* list must be media players, but the state template can contain any entity. -It is recommended that the command *turn_on*, the command *turn_off*, and the attribute *state* all be provided together. The *state* attribute indicates if the Media Player is on or off. If *state* indicates the media player is off, this status will take precedent over the states of the children. If all the children are idle/off and *state* is on, the universal media player's state will be on. +It is recommended that the command *turn_on*, the command *turn_off*, and the attribute *state* all be provided together. The *state* attribute indicates if the Media Player is on or off. If *state* indicates the media player is off, this status will take precedence over the states of the children. If all the children are idle/off and *state* is on, the Universal Media Player's state will be on. It is also recommended that the command *volume_up*, the command *volume_down*, the command *volume_mute*, and the attribute *is_volume_muted* all be provided together. The attribute *is_volume_muted* should return either True or the on state when the volume is muted. The *volume_mute* service should toggle the mute setting. When providing *select_source* as a command, it is recommended to also provide the attributes *source*, and *source_list*. The *source* attribute is the currently select source, while the *source_list* attribute is a list of all available sources. -Below is an example configuration. +## {% linkable_title Usage examples %} + +#### {% linkable_title Chromecast & Kodi control with switches %} + +In this example, a switch is available to control the power of the television. Switches are also available to turn the volume up, turn the volume down, and mute the audio. These could be command line switches or any other entity in Home Assistant. The *turn_on* and *turn_off* commands will be redirected to the television, and the volume commands will be redirected to an audio receiver. The *select_source* command will be passed directly to an A/V receiver. + +The children are a Chromecast and a Kodi player. If the Chromecast is playing, the Universal Media Player will reflect its status. If the Chromecast is idle and Kodi is playing, the Universal Media player will change to reflect its status. + ```yaml media_player: @@ -112,6 +120,107 @@ media_player: ``` -In this example, a switch is available to control the power of the television. Switches are also available to turn the volume up, turn the volume down, and mute the audio. These could be command line switches or any other entity in Home Assistant. The *turn_on* and *turn_off* commands will be redirected to the television and the volume commands will be redirected to an audio receiver. The *select_source* command will be passed directly to an A/V receiver. +#### {% linkable_title Kodi CEC-TV control %} -The children are a Chromecast and a Kodi player. If the Chromecast is playing, the Universal Media Player will reflect its status. If the Chromecast is idle and Kodi is playing, the Universal Media player will change to reflect its status. +In this example, a [Kodi Media Player](/components/media_player.kodi/) runs in a CEC capable device (OSMC/OpenElec running in a Raspberry Pi 24/7, for example), and, with the JSON-CEC Kodi addon installed, it can turn on and off the attached TV. + +We store the state of the attached TV in a hidden [Input Boolean](/components/input_boolean/), so we can differentiate the TV being on or off, while Kodi is always 'idle', and use the Universal Media Player to render its state with a template. We can hide the Kodi Media Player too, and only show the universal one, which now can differentiate between the 'idle' and the 'off' state (being the second when it is idle and the TV is off). + +Because the Input Boolean used to store the TV state is only changing when using the Home Assistant `turn_on` and `turn_off` actions, and Kodi could be controlled by so many ways, we also define some automations to update this Input Boolean when needed. + +In an Apple HomeKit scene, we can now expose this Universal Media Player as an on/off switch in Homebridge, and, that way, use Siri to turn on and off the TV. + +The complete yaml config is: + +```yaml +homeassistant: + customize: + input_boolean.kodi_tv_state: + hidden: true + homebridge_hidden: true + media_player.kodi: + hidden: true + homebridge_hidden: true + media_player.kodi_tv: + friendly_name: Kodi + homebridge_name: Kodi + homebridge_media_player_switch: on_off + +input_boolean: + kodi_tv_state: + +media_player: +- platform: universal + name: Kodi TV + state_template: > + {% raw %}{% if (is_state('media_player.kodi', 'idle') and (is_state('input_boolean.kodi_tv_state', 'off') %} + off + {% else %} + {{ states('media_player.kodi') }} + {% endif %}{% endraw %} + children: + - media_player.kodi + commands: + turn_on: + service: media_player.turn_on + data: + entity_id: media_player.kodi + turn_off: + service: media_player.turn_off + data: + entity_id: media_player.kodi + attributes: + is_volume_muted: media_player.kodi|is_volume_muted + volume_level: media_player.kodi|volume_level + +- platform: kodi + name: Kodi + host: 192.168.1.10 + turn_on_action: + - service: input_boolean.turn_on + data: + entity_id: input_boolean.kodi_tv_state + - service: media_player.kodi_call_method + data: + entity_id: media_player.kodi + method: Addons.ExecuteAddon + addonid: script.json-cec + params: + command: activate + turn_off_action: + - service: input_boolean.turn_off + data: + entity_id: input_boolean.kodi_tv_state + - service: media_player.media_stop + data: + entity_id: media_player.kodi + - service: media_player.kodi_call_method + data: + entity_id: media_player.kodi + method: Addons.ExecuteAddon + addonid: script.json-cec + params: + command: standby + +automation: +- alias: Turn on the TV when Kodi is activated + trigger: + platform: state + entity_id: media_player.kodi_tv + from: 'off' + to: 'playing' + action: + - service: media_player.turn_on + entity_id: media_player.kodi_tv + +- alias: Turn off the TV when Kodi is in idle > 15 min + trigger: + platform: state + entity_id: media_player.kodi_tv + to: 'idle' + for: + minutes: 15 + action: + - service: media_player.turn_off + entity_id: media_player.kodi_tv +``` diff --git a/source/_components/mqtt_statestream.markdown b/source/_components/mqtt_statestream.markdown index 1fa88b4469f..5b7b832fe91 100644 --- a/source/_components/mqtt_statestream.markdown +++ b/source/_components/mqtt_statestream.markdown @@ -32,6 +32,12 @@ Configuration variables: Default is false. - **publish_timestamps** (*Optional*): Publish the last_changed and last_updated timestamps for the entity. Default is false. +- **exclude** (*Optional*): Configure which components should be excluded from recordings. See *Include/Exclude* section below for details. + - **entities** (*Optional*): The list of entity ids to be excluded from recordings. + - **domains** (*Optional*): The list of domains to be excluded from recordings. +- **include** (*Optional*): Configure which components should be included in recordings. If set, all other entities will not be recorded. + - **entities** (*Optional*): The list of entity ids to be included from recordings. + - **domains** (*Optional*): The list of domains to be included from recordings. ## Operation @@ -44,6 +50,56 @@ For example, with the example configuration above, if an entity called 'light.ma If that entity also has an attribute called `brightness`, the component will also publish the value of that attribute to `homeassistant/light/master_bedroom_dimmer/brightness`. -All states and attributes are passed through JSON serialization before publishing. **Please note** that this causes strings to be quoted (e.g., the string 'on' will be published as '"on"'). You can access the JSON deserialized values (as well as unquoted strings) at many places by using `value_json` instead of `value`. +All states and attributes are passed through JSON serialization before publishing. **Please note** that this causes strings to be quoted (e.g., the string 'on' will be published as '"on"'). You can access the JSON deserialized values (as well as unquoted strings) at many places by using `value_json` instead of `value`. The last_updated and last_changed values for the entity will be published to `homeassistant/light/master_bedroom_dimmer/last_updated` and `homeassistant/light/master_bedroom_dimmer/last_changed`, respectively. The timestamps are in ISO 8601 format - for example, `2017-10-01T23:20:30.920969+00:00`. + +## Include/exclude + +The **exclude** and **include** configuration variables can be used to filter the items that are published to MQTT. + +1\. If neither **exclude** or **include** are specified, all entities are published. + +2\. If only **exclude** is specified, then all entities except the ones listed are published. + +```yaml +# Example of excluding entities +mqtt_statestream: + base_topic: homeassistant + exclude: + domains: + - switch + entities: + - sensor.nopublish +``` +In the above example, all entities except for *switch.x* and *sensor.nopublish* will be published to MQTT. + +3\. If only **include** is specified, then only the specified entries are published. + +```yaml +# Example of excluding entities +mqtt_statestream: + base_topic: homeassistant + include: + domains: + - sensor + entities: + - lock.important +``` +In this example, only *sensor.x* and *lock.important* will be published. + +4\. If both **include** and **exclude** are specified then all entities specified by **include** are published except for the ones +specified by **exclude**. + +```yaml +# Example of excluding entities +mqtt_statestream: + base_topic: homeassistant + include: + domains: + - sensor + exclude: + entities: + - sensor.noshow +``` +In this example, all sensors except for *sensor.noshow* will be published. diff --git a/source/_components/notify.telegram.markdown b/source/_components/notify.telegram.markdown index 7df967d6289..ac89f6f23c7 100644 --- a/source/_components/notify.telegram.markdown +++ b/source/_components/notify.telegram.markdown @@ -156,6 +156,35 @@ homeassistant: ```
+### {% linkable_title Video support %} + +```yaml +... +action: + service: notify.NOTIFIER_NAME + data: + title: Send a video + message: That's an example that sends a video. + data: + video: + - url: http://192.168.1.28/camera.mp4 + username: admin + password: secrete + - file: /tmp/video.mp4 + caption: Video Title xy + - url: http://somebla.ie/video.mp4 + caption: I.e. for a Title +``` + +Configuration variables: + +- **url** or **file** (*Required*): For local or remote path to a video. +- **caption** (*Optional*): The title of the video. +- **username** (*Optional*): Username for a URL which require HTTP authentication. +- **password** (*Optional*): Username for a URL which require HTTP authentication. +- **authentication** (*Optional*): Set to 'digest' to use HTTP digest authentication, defaults to 'basic'. +- **keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom keyboard. +- **inline_keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. ### {% linkable_title Document support %} diff --git a/source/_components/recorder.markdown b/source/_components/recorder.markdown index e4fbca17b5f..6531fdf71a0 100644 --- a/source/_components/recorder.markdown +++ b/source/_components/recorder.markdown @@ -27,7 +27,7 @@ recorder: Configuration variables: -- **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-purge) call `recorder.purge` when needed. +- **purge_interval** (*Optional*): (days) Enable scheduled purge of older events and states. The purge task runs every x days from when the `recorder component` is first enabled. If a scheduled purge is missed (e.g. if Home Assistant was not running) then the schedule will resume soon after Home Assistant restarts. You can use [service](#service-purge) call `recorder.purge` when required without impacting the purge schedule. - **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. diff --git a/source/_components/remote.harmony.markdown b/source/_components/remote.harmony.markdown index 41cc37cdc53..03813d77cb8 100755 --- a/source/_components/remote.harmony.markdown +++ b/source/_components/remote.harmony.markdown @@ -9,7 +9,7 @@ sharing: true footer: true logo: logitech.png ha_category: Remote -ha_iot_class: "Local Polling" +ha_iot_class: "Local Push" ha_release: "0.34" --- @@ -54,7 +54,7 @@ Configuration variables: - **host** (*Optional*): The Harmony device's IP address. Leave empty for the IP to be discovered automatically. - **port** (*Optional*): The Harmony device's port. Defaults to 5222. - **activity** (*Optional*): Activity to use when turnon service is called without any data. -- **scan_interval** (*Optional*): Amount in seconds in between polling for device's current activity. Defaults to 30 seconds. +- **delay_secs** (*Optional*): Default duration in seconds between sending commands to a device. Configuration file: @@ -67,7 +67,7 @@ Upon startup one file will be written to your Home Assistant configuration direc Supported services: - **Turn Off**: Turn off all devices that were switched on from the start of the current activity.s -- **Turn On**: Start an activity, will start the default activity from configuration.yaml if no activity is specified. The specified activity can either be the activity name or the activity ID from the configuration file written to your [Home Assistant configuration directory](/docs/configuration/). The service will respond faster if the activity ID is passed instead of the name. +- **Turn On**: Start an activity, will start the default activity from configuration.yaml if no activity is specified. The specified activity can either be the activity name or the activity ID from the configuration file written to your [Home Assistant configuration directory](/docs/configuration/). - **Send Command**: Send a single command or a set of commands to one device, device ID and available commands are written to the configuration file at startup. You can optionally specify the number of times you wish to repeat the command(s) and delay you want between repeated command(s). - **Sync**: Synchronizes the Harmony device with the Harmony web service if any changes are made from the web portal or app. diff --git a/source/_components/sensor.arlo.markdown b/source/_components/sensor.arlo.markdown index 72fc0ae36bb..309795f7952 100644 --- a/source/_components/sensor.arlo.markdown +++ b/source/_components/sensor.arlo.markdown @@ -26,6 +26,7 @@ sensor: - last_capture - total_cameras - battery_level + - signal_strength ``` Configuration variables: @@ -35,5 +36,6 @@ Configuration variables: - **last_capture**: Return the timestamp from the last video captured by your Arlo camera. - **total_cameras**: Return the number of recognized and active cameras linked on your Arlo account. - **battery_level**: Return the battery level of your Arlo camera. + - **signal_strength**: Return the wireless signal strength of your Arlo camera. If no **monitored_conditions** are specified, all of above will be enabled by default. diff --git a/source/_components/sensor.lacrosse.markdown b/source/_components/sensor.lacrosse.markdown new file mode 100644 index 00000000000..d024d174403 --- /dev/null +++ b/source/_components/sensor.lacrosse.markdown @@ -0,0 +1,99 @@ +--- +layout: page +title: "LaCrosse Sensor" +description: "Instructions how to integrate LaCrosse sensor data received from Jeelink into Home Assistant." +date: 2017-10-29 15:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: Sensor +ha_release: 0.58 +ha_iot_class: "Local Polling" +--- + +The `lacrosse` sensor platform is using the data provided by a [Jeelink](https://www.digitalsmarties.net/products/jeelink) USB dongle or this [Arduino sketch](https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/36_LaCrosse-LaCrosseITPlusReader.zip). + +#### {% linkable_title Tested Devices %} + +- Technoline TX 29 IT (temperature only) +- Technoline TX 29 DTH-IT (including humidity) + +## {% 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. + +```bash +$ sudo pylacrosse -D /dev/ttyUSB0 scan +``` +To use your `lacrosse` compatible sensor in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: lacrosse + sensors: + sensor_identifier: + type: SENSOR_TYPE + id: SENSOR_ID +``` + +{% configuration %} + device: + description: The serial baudrate. + required: true + type: string + default: /dev/ttyUSB0 + baud: + description: The serial baudrate. + required: true + type: int + default: 57600 + sensors: + description: A list of your sensors. + required: true + type: map + keys: + name: + description: The name of the sensor. + required: false + type: string + type: + description: "The type of the sensor. Options: `battery`, `humidity`, `temperature`" + required: true + type: string + id: + description: The LaCrosse Id of the sensor. + required: true + type: int +{% endconfiguration %} + + +## {% linkable_title Examples %} + +To setup a lacrosse sensor with multiple sensors, add the following to your `configuration.yaml` file: + +{% raw %} +```yaml +# Example configuration.yaml entry +sensor: + - platform: lacrosse + device: /dev/ttyUSB0 + baud: 57600 + sensors: + kitchen_humidity: + name: Kitchen Humidity + type: humidity + id: 72 + kitchen_temperature: + name: Kitchen Temperature + type: temperature + id: 72 + kitchen_lacrosse_battery: + name: Kitchen Sensor Battery + type: battery + id: 72 +``` +{% endraw %} + diff --git a/source/_components/sensor.modbus.markdown b/source/_components/sensor.modbus.markdown index fd3b7157560..70cbfb494c2 100644 --- a/source/_components/sensor.modbus.markdown +++ b/source/_components/sensor.modbus.markdown @@ -49,13 +49,15 @@ Configuration variables: - **name** (*Required*): Name of the sensor. - **slave** (*Required*): The number of the slave (Optional for tcp and upd Modbus). - **register** (*Required*): Register number. - - **register_type** (*Optional*): Modbus register type (holding, input), default holding + - **register_type** (*Optional*): Modbus register type (holding, input), default holding. - **unit_of_measurement** (*Optional*): Unit to attach to value. - **count** (*Optional*): Number of registers to read. - - **scale** (*Optional*): Scale factor (output = scale * value + offset), default 1 - - **offset** (*Optional*): Final offset (output = scale * value + offset), default 0 - - **precision** (*Optional*): Number of valid decimals, default 0 - - **data_type** (*Optional*): Response representation (int, float). If float selected, value will be converted to IEEE 754 floating point format. default int + - **reverse_order** (*Optional*): Reverse the order of registers when count >1, default False. + - **scale** (*Optional*): Scale factor (output = scale * value + offset), default 1. + - **offset** (*Optional*): Final offset (output = scale * value + offset), default 0. + - **precision** (*Optional*): Number of valid decimals, default 0. + - **data_type** (*Optional*): Response representation (int, uint, float, custom). If float selected, value will be converted to IEEE 754 floating point format. Default int. + - **structure** (*Optional*): If data_type is custom specify here a double quoted python struct format string to unpack the value. See python documentation for details. Ex: ">i". It's possible to change the default 30 seconds scan interval for the sensor updates as shown in the [Platform options](/docs/configuration/platform_options/#scan-interval) documentation. @@ -72,7 +74,6 @@ sensor: slave: 10 register: 0 register_type: holding - update_interval: 2.5 unit_of_measurement: °C count: 1 scale: 0.1 diff --git a/source/_components/sensor.pyload.markdown b/source/_components/sensor.pyload.markdown new file mode 100644 index 00000000000..4ad24e38938 --- /dev/null +++ b/source/_components/sensor.pyload.markdown @@ -0,0 +1,39 @@ +--- +layout: page +title: "pyLoad Sensor" +description: "Instructions how to integrate pyLoad download sensor within Home Assistant." +date: 2017-10-23 09:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: pyload.png +ha_category: Downloading +ha_release: 0.58 +ha_iot_class: "Local Polling" +--- + + +The `pyload` platform allows you to monitor your downloads with [pyLoad](https://pyload.net/) from within Home Assistant and setup automation based on the information. + +To enable this sensor, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: pyload +``` + +Configuration variables: + +- **host** (*Optional*): This is the IP address of your pyLoad download manager, eg. 192.168.0.100. Defaults to `localhost`. +- **port** (*Optional*): The port your pyLoad interface uses. Defaults to 8000. +- **name** (*Optional*): The name to use when displaying this pyLoad instance. +- **username** (*Optional*): Your pyLoad username. +- **password** (*Optional*): Your pyLoad password. + +If everything is setup correctly, the download speed will show up in the frontend. + +
+
+
+Note that the `station_id` is referred to the train's **departing station**. If a train number does not match with the station id, no data will be returned to the sensor. +
+ +Then add the data to your `configuration.yaml` file as shown in the example: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: viaggiatreno + train_id: 12279 + station_id: S08409 +``` + +{% configuration %} +train_id: + description: The ID of the train. + required: true + type: int +station_id: + description: The ID of the starting station. + required: true + type: int +train_name: + description: The name of the sensor. Defaults to 'Train+In a future implementation, the station name could be used to automatically search best-matching station id, without the need to specify it. +
+ +The public timetables are coming from [ViaggiaTreno](http://viaggiatreno.it). + ++Instructions (in Italian) for the API are available at: +https://github.com/bluviolin/TrainMonitor/wiki/API-del-sistema-Viaggiatreno +
diff --git a/source/_components/sensor.vultr.markdown b/source/_components/sensor.vultr.markdown new file mode 100644 index 00000000000..5aa03c73931 --- /dev/null +++ b/source/_components/sensor.vultr.markdown @@ -0,0 +1,76 @@ +--- +layout: page +title: "Vultr Sensor" +description: "Instructions on how to integrate Vultr sensor within Home Assistant." +date: 2017-10-17 21:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: vultr.png +ha_release: "0.58" +ha_category: System Monitor +ha_iot_class: "Cloud Polling" +--- + + +The `vultr` sensor platform will allow you to view current bandwidth usage and pending charges against your [Vultr](https://www.vultr.com/) subscription. + +To use this sensor, you must set up your [Vultr hub](/components/vultr/). + ++The following examples assume a subscription that has an ID of `123456` and a label of `Web Server` +
+ +Minimal `configuration.yaml` (produces `sensor.vultr_web_server_current_bandwidth_used` and `sensor.vultr_web_server_pending_charges`): + +```yaml +sensor: + - platform: vultr + subscription: 123456 +``` + +{% configuration %} +subscription: + description: The Vultr subscription to monitor, this can be found in the URL when viewing a subscription. + required: true + type: string +name: + description: The name to give this sensor. + required: false + default: "Vultr {Vultr subscription label} {monitored condition name}" + type: string +monitored_conditions: + description: List of items you want to monitor for each subscription. + required: false + detault: All conditions + type: list + keys: + current_bandwidth_used: + description: The current (invoice period) bandwidth usage in Gigabytes (GB). + temperature: + pending_charges: The current (invoice period) charges that have built up for this subscription. Value is in US Dollars (US$). +{% endconfiguration %} + +Full `configuration.yaml` using `{}` to format condition name (produces `sensor.server_current_bandwidth_used` and `sensor.server_pending_charges`): + +```yaml +sensor: + - platform: vultr + name: Server {} + subscription: 123456 + monitored_conditions: + - current_bandwidth_used + - pending_charges +``` + +Custom `configuration.yaml` with only one condition monitored (produces `sensor.web_server_bandwidth`): +```yaml +sensor: + - platform: vultr + name: Web Server Bandwidth + subscription: 123456 + monitored_conditions: + - current_bandwidth_used +``` + diff --git a/source/_components/switch.hikvision.markdown b/source/_components/switch.hikvisioncam.markdown similarity index 100% rename from source/_components/switch.hikvision.markdown rename to source/_components/switch.hikvisioncam.markdown diff --git a/source/_components/switch.modbus.markdown b/source/_components/switch.modbus.markdown index d664731534e..bac21bbd812 100644 --- a/source/_components/switch.modbus.markdown +++ b/source/_components/switch.modbus.markdown @@ -14,7 +14,7 @@ ha_iot_class: "Local Push" --- -The `modbus` switch platform allows you to control [Modbus](http://www.modbus.org/) coils. +The `modbus` switch platform allows you to control [Modbus](http://www.modbus.org/) coils or registers. To use your Modbus switches in your installation, add the following to your `configuration.yaml` file: @@ -30,11 +30,28 @@ switch: - name: Switch2 slave: 2 coil: 14 + registers: + - name: Register1 + slave: 1 + register: 11 + command_on: 1 + command_off: 0 ``` Configuration variables: -- **coils** (*Optional*): A list of relevant coils to read from/write to +- **coils** (*Optional*): A list of relevant coils to read from/write to. - **slave** (*Required*): The number of the slave (can be omitted for tcp and udp Modbus). - - **name** (*Required*): Name of the sensor - - **coil** (*Required*): Coil number + - **name** (*Required*): Name of the switch. + - **coil** (*Required*): Coil number. +- **registers** (*Optional*): A list of relevant registers to read from/write to. + - **slave** (*Required*): The number of the slave (can be omitted for tcp and udp Modbus). + - **name** (*Required*): Name of the switch. + - **register** (*Required*): Register number. + - **command_on** (*Required*): Value to write to turn on the switch. + - **command_off** (*Required*): Value to write to turn off the switch. + - **verify_state** (*Optional*): Define if is possible to readback the status of the switch. (default: True) + - **verify_register** (*Optional*): Register to readback. (default: same as register) + - **register_type** (*Optional*): Modbus register type: holding or input. (default: holding) + - **state_on** (*Optional*): Register value when switch is on. (default: same as command_on) + - **state_off** (*Optional*): Register value when switch is off. (default: same as command_off) diff --git a/source/_components/switch.rainbird.markdown b/source/_components/switch.rainbird.markdown index 44134393a61..5a8598c3021 100644 --- a/source/_components/switch.rainbird.markdown +++ b/source/_components/switch.rainbird.markdown @@ -1,46 +1,46 @@ ---- -layout: page -title: "Rain Bird Switch" -description: "Instructions on how to integrate your Rain Bird LNK WiFi Module as Switches within Home Assistant." -date: 2017-08-25 12:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: rainbird.png -ha_category: Hub -ha_release: 0.57 -ha_iot_class: "Local Polling" ---- - -This `rainbird` switch platform allows interacting with [LNK WiFi](http://www.rainbird.com/landscape/products/controllers/LNK-WiFi.htm) module of the Rain Bird Irrigation system in Home Assistant. - -To enable stations as switches inside Home Assistant, add the following to your `configuration.yaml` file: - -```yaml -switch: - platform: rainbird - host: '1.1.1.1' - password: 'secretpassword' - sprinkler_1: - zone: 1 - friendly_name: "Front sprinklers" - trigger_time: 20 - scan_interval: 10 - sprinkler_2: - friendly_name: "Back sprinklers" - zone: 2 - trigger_time: 20 - scan_interval: 10 -``` - -Configuration variables: - -- **stickip** (*Required*): The IP address of your LNK WiFi Module. -- **password** (*Required*): The password for accessing the module. -- **zone** (*Required*): Station zone identifier. -- **friendly_name** (*Optional*): Just a friendly name for the station. -- **trigger_time** (*Required*): The default duration to sprinkle the zone. -- **scan_interval** (*Optional*): How fast to refresh the switch. - -Please note that due to the implementation of the API within the LNK Module, there is a concurrency issue. For example, the Rain Bird app will give connection issues (like already a connection active). +--- +layout: page +title: "Rain Bird Switch" +description: "Instructions on how to integrate your Rain Bird LNK WiFi Module as Switches within Home Assistant." +date: 2017-08-25 12:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: rainbird.png +ha_category: Hub +ha_release: 0.57 +ha_iot_class: "Local Polling" +--- + +This `rainbird` switch platform allows interacting with [LNK WiFi](http://www.rainbird.com/landscape/products/controllers/LNK-WiFi.htm) module of the Rain Bird Irrigation system in Home Assistant. + +To enable stations as switches inside Home Assistant, add the following to your `configuration.yaml` file: + +```yaml +switch: + platform: rainbird + host: '1.1.1.1' + password: 'secretpassword' + sprinkler_1: + zone: 1 + friendly_name: "Front sprinklers" + trigger_time: 20 + scan_interval: 10 + sprinkler_2: + friendly_name: "Back sprinklers" + zone: 2 + trigger_time: 20 + scan_interval: 10 +``` + +Configuration variables: + +- **stickip** (*Required*): The IP address of your LNK WiFi Module. +- **password** (*Required*): The password for accessing the module. +- **zone** (*Required*): Station zone identifier. +- **friendly_name** (*Optional*): Just a friendly name for the station. +- **trigger_time** (*Required*): The default duration to sprinkle the zone. +- **scan_interval** (*Optional*): How fast to refresh the switch. + +Please note that due to the implementation of the API within the LNK Module, there is a concurrency issue. For example, the Rain Bird app will give connection issues (like already a connection active). diff --git a/source/_components/switch.raspihats.markdown b/source/_components/switch.raspihats.markdown index 674f2f99e49..b2fa067e130 100644 --- a/source/_components/switch.raspihats.markdown +++ b/source/_components/switch.raspihats.markdown @@ -45,4 +45,48 @@ Configuration variables: - **invert_logic** (*Optional*): Inverts the output logic, default is `False`. - **initial_state** (*Optional*): Initial state, default is `None`, can also be `True` or `False`. `None` means no state is forced on the corresponding digital output when this switch is instantiated. + +## {% linkable_title Directions for installing smbus support on Raspberry Pi %} + +Enable I2c interface with the Raspberry Pi configuration utility: + +```bash +# pi user environment: Enable i2c interface +$ sudo raspi-config +``` + +Select `Interfacing options->I2C` choose `+The following examples assume a subscription that has an ID of `123456` and a label of `Web Server` +
+ +Minimal `configuration.yaml` (produces `switch.vultr_web_server`): + +```yaml +# Example configuration.yaml entry +switch: + - platform: vultr + subscription: 123456 +``` + +{% configuration %} +subscription: + description: List of droplets you want to control. + required: true + type: string +name: + description: The name you want to give this switch. + required: false + default: "Vultr {subscription label}" + type: string +{% endconfiguration %} + + +Full `configuration.yaml` (produces `switch.amazing_server`): + +```yaml +switch: + - platform: vultr + name: Amazing Server + subscription: 123456 +``` + + diff --git a/source/_components/system_log.markdown b/source/_components/system_log.markdown new file mode 100644 index 00000000000..fae6692223e --- /dev/null +++ b/source/_components/system_log.markdown @@ -0,0 +1,37 @@ +--- +layout: page +title: "System Log" +description: "Summary of errors and warnings in Home Assistant during runtime." +date: 2017-11-11 18:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: Other +ha_release: 0.58 +--- + +The `system_log` component stores information about all logged errors and warnings in Home Assistant. All collected information is accessible directly in the frontend, just navigate to the `Info` section under `Developer Tools`. In order to not overload Home Assistant with log data, only the 50 last errors and warnings will be stored. Older entries are automatically discarded from the log. It is possible to change the amount of stored log entries using the parameter `max_entries`. + +This component is automatically loaded by the `frontend` (so no need to do anything if you are using the frontend). If you are not doing so, or if you wish to change a parameter, add the following section to your `configuration.yaml` file: + +```yaml +system_log: + max_entries: MAX_ENTRIES +``` + +{% configuration %} +max_entries: + description: Number of entries to store (older entries are discarded). + required: false + type: int + default: 50 +{% endconfiguration %} + +## {% linkable_title Services %} + +### {% linkable_title Service `clear` %} + +To manually clear the system log, call this service. + diff --git a/source/_components/telegram_bot.markdown b/source/_components/telegram_bot.markdown index c4d93c43bc5..be2dcff5e5c 100644 --- a/source/_components/telegram_bot.markdown +++ b/source/_components/telegram_bot.markdown @@ -52,6 +52,23 @@ Send a photo. | `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` | | `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` | + +#### {% linkable_title Service `telegram_bot/send_video` %} +Send a video. + +| Service data attribute | Optional | Description | +|---------------------------|----------|--------------------------------------------------| +| `url` | no | Remote path to a video. | +| `file` | no | Local path to a video. | +| `caption` | yes | The title of the video. | +| `username` | yes | Username for a URL which requires HTTP basic authentication. | +| `password` | yes | Password for a URL which requires HTTP basic authentication. | +| `authentication` | yes | Define which authentication method to use. Set to `digest` to use HTTP digest authentication. Defaults to `basic`. | +| `target` | yes | An array of pre-authorized chat_ids to send the notification to. Defaults to the first allowed chat_id. | +| `disable_notification` | yes | True/false to send the message silently. iOS users and web users will not receive a notification. Android users will receive a notification with no sound. Defaults to False. | +| `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` | +| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` | + #### {% linkable_title Service `telegram_bot/send_document` %} Send a document. diff --git a/source/_components/tellstick.markdown b/source/_components/tellstick.markdown index a26638c0521..652e77a15c4 100644 --- a/source/_components/tellstick.markdown +++ b/source/_components/tellstick.markdown @@ -24,4 +24,6 @@ tellstick: Configuration variables: - **signal_repetitions** (*Optional*): Because the tellstick sends its actions via radio and from most receivers it's impossible to know if the signal was received or not. Therefore you can configure the switch and light to try to send each signal repeatedly. +- **host** (*Optional*): If you run tellstick on a other server or with a hass.io add-on. +- **port** (*Optional*): If needed with host config option. diff --git a/source/_components/vultr.markdown b/source/_components/vultr.markdown new file mode 100644 index 00000000000..187ddaab3f3 --- /dev/null +++ b/source/_components/vultr.markdown @@ -0,0 +1,40 @@ +--- +layout: page +title: "Vultr" +description: "Instructions on how to integrate Vultr within Home Assistant." +date: 2017-10-17 21:00 +sidebar: true +comments: false +sharing: true +footer: true +featured: false +ha_category: Hub +ha_release: "0.58" +logo: vultr.png +ha_iot_class: "Cloud Polling" +--- + + +The `vultr` component allows you to access information about and interact with your [Vultr](https://www.vultr.com) subscriptions (Virtual Private Servers) from Home Assistant. + +Obtain your API key from your [Vultr Account](https://my.vultr.com/settings/#settingsapi). + ++Ensure you allow the public IP of Home Assistant under the Access Control heading. +
+ +To integrate your Vultr subscriptions with Home Assistant, add the following section to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +vultr: + api_key: ABCDEFG12345 +``` + +{% configuration %} +api_key: + description: Your Vultr API key. + required: true + type: string +{% endconfiguration %} + diff --git a/source/_docs/ecosystem/ios/notifications/actions.markdown b/source/_docs/ecosystem/ios/notifications/actions.markdown index 7ed22d6c33c..df7caf240c0 100644 --- a/source/_docs/ecosystem/ios/notifications/actions.markdown +++ b/source/_docs/ecosystem/ios/notifications/actions.markdown @@ -141,3 +141,4 @@ Notes: * `textInput` will only exist if `behavior` was set to `textInput`. * `actionData` is a dictionary with parameters passed in the `action_data` dictionary of the `push` dictionary in the original notification. +* When adding or updating push categories be sure to update push settings within the Home Assistant iOS app. This can be found within the app at **Settings** (gear icon) > **Notification Settings**. diff --git a/source/_docs/installation/hassbian/upgrading.markdown b/source/_docs/installation/hassbian/upgrading.markdown index 0ba2173e832..7ef479edcb7 100644 --- a/source/_docs/installation/hassbian/upgrading.markdown +++ b/source/_docs/installation/hassbian/upgrading.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Upgrading Hassbian" -description: "Instructions how to upgrade Hasbian to the latest version." +description: "Instructions how to upgrade Hassbian to the latest version." date: 2016-09-26 21:00 sidebar: true comments: false diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index 98daf5e74ea..e9139095d75 100644 --- a/source/_docs/mqtt/discovery.markdown +++ b/source/_docs/mqtt/discovery.markdown @@ -16,6 +16,7 @@ The discovery of MQTT devices will enable one to use MQTT devices with only mini Supported by MQTT discovery: - [Binary sensors](/components/binary_sensor.mqtt/) +- [Covers](/components/cover.mqtt/) - [Fans](/components/fan.mqtt/) - [Lights](/components/light.mqtt/) - [Sensors](/components/sensor.mqtt/) diff --git a/source/_docs/z-wave/control-panel.markdown b/source/_docs/z-wave/control-panel.markdown index 613b4fc29fa..b3eb7f50e8c 100644 --- a/source/_docs/z-wave/control-panel.markdown +++ b/source/_docs/z-wave/control-panel.markdown @@ -28,6 +28,7 @@ Here is where you [include and exclude](/docs/z-wave/adding/) Z-Wave devices fro * **Stop Network** stops the Z-Wave network * **Soft Reset** tells the controller to do a "soft reset." This is not supposed to lose any data, but different controllers can behave differently to a "soft reset" command, and may cause the Z-Wave network to hang. * **Test Network** tells the controller to send no-op commands to each node and measure the time for a response. In theory, this can also bring back nodes which have been marked "presumed dead". +* **Save Config** Saves the current cache of the network to zwcfg_[home_id].xml ## {% linkable_title Z-Wave Node Management %} @@ -38,6 +39,10 @@ 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) + +* **Test Node** sends no_op test messages to the node. This could in theory bring back a dead node. +Battery powered devices need to be awake before you can use the Z-Wave control panel to update their settings. How to wake your device is device specific, and some devices will stay awake for only a couple of seconds. Please refer to the manual of your device for more details.
@@ -107,4 +112,5 @@ Underneath that you can select any supported configuration parameter to see the ## {% linkable_title OZW Log %} +If you want to only retrieve some lines at the end of the log, you can specify that with the selection field. Max is the last 1000 lines and minimum is 0 which equals the whole log. If this is not specified, you will retrieve the whole log. Select **Refresh** to display the log if you need it to check activities. diff --git a/source/_docs/z-wave/services.markdown b/source/_docs/z-wave/services.markdown index 84ff12b01f1..61c2ff7a860 100644 --- a/source/_docs/z-wave/services.markdown +++ b/source/_docs/z-wave/services.markdown @@ -18,6 +18,7 @@ The `zwave` component exposes multiple services to help maintain the network. Al | cancel_command | Cancels a running Z-Wave command. If you have started a add_node or remove_node command, and decide you are not going to do it, then this must be used to stop the inclusion/exclusion command. | | change_association | Add or remove an association in the Z-Wave network | | heal_network | Tells the controller to "heal" the Z-Wave network. Basically asks the nodes to tell the controller all of their neighbors so the controller can refigure out optimal routing. | +| heal_node | Tells the controller to "heal" a specific node on the network. Requires `node_id` field. You can also force return route update with `return_routes` field. | print_config_parameter | Prints Z-Wave node's config parameter value to the (console) log. | | print_node | Print all states of Z-Wave node. | | refresh_entity | Refresh the Z-Wave entity by refreshing dependent values. | @@ -33,6 +34,7 @@ The `zwave` component exposes multiple services to help maintain the network. Al | start_network | Starts the Z-Wave network. | | stop_network | Stops the Z-Wave network. | | test_network | Tells the controller to send no-op commands to each node and measure the time for a response. In theory, this can also bring back nodes which have been marked "presumed dead." | +| test_node | Tells the controller to send no-op command(s) to a specific node. Requires `node_id` field. You can specify amount of test_messages to send by specifying it with `messages` field. In theory, this could bring back nodes marked as "presumed dead" The `soft_reset` and `heal_network` commands can be used as part of an automation script to help keep a Z-Wave network running reliably as shown in the example below. By default, Home Assistant will run a `heal_network` at midnight. This is a configuration option for the `zwave` component. The option defaults to `true` but can be disabled by setting `autoheal` to false. If you're having issues with your Z-Wave network, try disabling this automation. diff --git a/source/_posts/2019-09-16-hassbian-1.3-a-bit-of-a-stretch.markdown b/source/_posts/2017-09-16-hassbian-1.3-a-bit-of-a-stretch.markdown similarity index 100% rename from source/_posts/2019-09-16-hassbian-1.3-a-bit-of-a-stretch.markdown rename to source/_posts/2017-09-16-hassbian-1.3-a-bit-of-a-stretch.markdown diff --git a/source/_posts/2019-09-25-new-hassio-build-system.markdown b/source/_posts/2017-09-25-new-hassio-build-system.markdown similarity index 100% rename from source/_posts/2019-09-25-new-hassio-build-system.markdown rename to source/_posts/2017-09-25-new-hassio-build-system.markdown diff --git a/source/_posts/2017-11-18-release-58.markdown b/source/_posts/2017-11-18-release-58.markdown new file mode 100644 index 00000000000..197e267cdfd --- /dev/null +++ b/source/_posts/2017-11-18-release-58.markdown @@ -0,0 +1,486 @@ +--- +layout: post +title: "0.58: More translations, faster frontend, system log" +description: "We now have 445 translators helping out and the frontend is receiving some polishing." +date: 2017-11-18 04:00:00 +date_formatted: "November 18, 2017" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2017-11-0.58/languages.png +--- + ++The Hass.io release of 0.58 will be delayed by a couple of days because Pascal is moving this weekend. +
+ +## {% 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. + +Talking about our translators, we now have 445 people with an account to help with translations. Not bad for 3 weeks! + +And because more translations is more better, [@robbiet480] has added the iOS app to Lokalise, our translation management platform. The iOS app is currently supported in 7 different languages. + +[Learn more about how to help with translations](https://home-assistant.io/blog/2017/11/05/frontend-translations/) + +## {% linkable_title Frontend improvements continue %} + +Thanks to [@Andrey-git] we now are able to serve the frontend in modern JavaScript. Leveraging modern JavaScript makes the frontend faster to load and run. For now it's opt-in but we're looking into making it opt-out in the future. The ES5 version of the frontend will remain available for older devices. + +To try it once, add `?latest` to your Home Assistant bookmark. To make it the default on your installation, update your config to look like this: + +``` +frontend: + javascript_version: latest +``` + ++For Custom UI users: your custom UI will need to be updated before it can work with the new version of the frontend. +
+ +### {% linkable_title System log enhanced %} + +Our about screen that shows the error logs has gained a nice upgrade by [@postlund]. Now the 50 latest exceptions will be displayed with the option to get more information. + +
+
+ Screenshot of the about screen showing the system log.
+