diff --git a/_config.yml b/_config.yml index a664cf4ab37..c2f323a8ff4 100644 --- a/_config.yml +++ b/_config.yml @@ -143,9 +143,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 85 -current_patch_version: 1 -date_released: 2019-01-11 +current_minor_version: 86 +current_patch_version: 0 +date_released: 2019-01-23 # 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/source/_components/alarm_control_panel.arlo.markdown b/source/_components/alarm_control_panel.arlo.markdown index ddc28e0fdb6..6f21a5269de 100644 --- a/source/_components/alarm_control_panel.arlo.markdown +++ b/source/_components/alarm_control_panel.arlo.markdown @@ -37,6 +37,11 @@ away_mode_name: required: false type: string default: "`Armed` mode in Arlo" +night_mode_name: + description: "Arlo base station does not have a built-in night mode. You can map one of your custom modes to Home Assistant's night mode by setting the name of the custom mode in this configuration variable. The name of the custom mode should match eactly as you set it up in the Arlo app." + required: false + type: string + default: "`Armed` mode in Arlo" {% endconfiguration %} ## {% linkable_title Examples %} diff --git a/source/_components/alarm_control_panel.homekit_controller.markdown b/source/_components/alarm_control_panel.homekit_controller.markdown new file mode 100644 index 00000000000..ae24f556192 --- /dev/null +++ b/source/_components/alarm_control_panel.homekit_controller.markdown @@ -0,0 +1,16 @@ +--- +layout: page +title: "HomeKit Alarm Control Panel" +description: "Instructions how to setup HomeKit security systems within Home Assistant." +date: 2018-12-27 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: apple-homekit.png +ha_category: Alarm Control Panel +ha_iot_class: "Local Polling" +ha_release: 0.86 +--- + +To get your HomeKit security system working with Home Assistant, follow the instructions for the general [HomeKit controller component](/components/homekit_controller/). diff --git a/source/_components/asuswrt.markdown b/source/_components/asuswrt.markdown index 486ec51086a..4a9b09e1cb5 100644 --- a/source/_components/asuswrt.markdown +++ b/source/_components/asuswrt.markdown @@ -63,6 +63,20 @@ require_ip: required: false type: boolean default: true +sensors: + description: List of enabled sensors + required: false + type: list + default: all (`upload`, `download`, `upload_speed`, `download_speed`) + keys: + "upload": + description: TX upload sensor + "download": + description: RX download sensor + "download_speed": + description: download mbit/s sensor + "upload_speed": + description: upload mbit/s sensor {% endconfiguration %}

diff --git a/source/_components/cover.homekit_controller.markdown b/source/_components/cover.homekit_controller.markdown new file mode 100644 index 00000000000..d641ac746a9 --- /dev/null +++ b/source/_components/cover.homekit_controller.markdown @@ -0,0 +1,16 @@ +--- +layout: page +title: "HomeKit Cover" +description: "Instructions how to setup HomeKit covers within Home Assistant." +date: 2019-1-8 5:30 +sidebar: true +comments: false +sharing: true +footer: true +logo: apple-homekit.png +ha_category: Cover +ha_iot_class: "Local Polling" +ha_release: 0.86 +--- + +To get your HomeKit garage door openers, windows, or window coverings working with Home Assistant, follow the instructions for the general [HomeKit controller component](/components/homekit_controller/). diff --git a/source/_components/demo.markdown b/source/_components/demo.markdown index 8eccea14537..1107426877f 100644 --- a/source/_components/demo.markdown +++ b/source/_components/demo.markdown @@ -24,7 +24,7 @@ Available demo platforms: - [Climate](/components/climate/) (`climate`) - [Cover](/components/cover/) (`cover`) - [Fan](/components/fan/) (`fan`) -- [Geo Location](/components/geo_location/) (`geo_location`) +- [Geolocation](/components/geo_location/) (`geo_location`) - [Image Processing](/components/image_processing/) (`image_processing`) - [Light](/components/light/) (`light`) - [Lock](/components/lock/) (`lock`) diff --git a/source/_components/device_tracker.gpslogger.markdown b/source/_components/device_tracker.gpslogger.markdown index c512698bedf..01dc20046d5 100644 --- a/source/_components/device_tracker.gpslogger.markdown +++ b/source/_components/device_tracker.gpslogger.markdown @@ -1,73 +1,19 @@ --- layout: page -title: "GPSLogger" +title: "GPSLogger Device Tracker" description: "Instructions on how to use GPSLogger to track devices in Home Assistant." date: 2016-11-25 15:00 sidebar: true comments: false sharing: true footer: true +logo: gpslogger.png ha_category: Presence Detection ha_release: 0.34 --- -The `gpslogger` device tracker platform allows you to detect presence using [GPSLogger](http://code.mendhak.com/gpslogger/). GPSLogger is an open source app for [Android](https://play.google.com/store/apps/details?id=com.mendhak.gpslogger) that allows users to set up a `GET` request to update GPS coordinates. This can be configured with Home Assistant to update your location. +The `gpslogger` device tracker platform allows you to detect presence using [GPSLogger](http://code.mendhak.com/gpslogger/). -## {% linkable_title Configuration %} - -GPSLogger uses long-lived access tokens for authentication. These are setup [under your profile](/docs/authentication/#your-account-profile) and configured in the GPSLogger application on your smartphone as explained below. - -```yaml -# Example configuration.yaml entry -device_tracker: - - platform: gpslogger -``` - -## {% linkable_title Setup on your smartphone %} - -Install [GPSLogger for Android](https://play.google.com/store/apps/details?id=com.mendhak.gpslogger) on your device. - -After the launch, go to **General Options**. Enable **Start on bootup** and **Start on app launch**. - -

- - GPSLogger Settings +

+You must have the [GPSLogger component](/components/gpslogger/) configured to use this device tracker.

- -Go to **Logging details** and disable **Log to GPX**, **Log to KML** and **Log to NMEA**. Enable **Log to custom URL**. - -

- - Logging Details -

- -Right after enabling, the app will take you to the **Log to custom URL** settings. - -

- - Log to custom URL details -

- -The relevant endpoint is: `/api/gpslogger` - -```text -https://YOUR.DNS.HOSTNAME:PORT/api/gpslogger?latitude=%LAT&longitude=%LON&device=%SER&accuracy=%ACC&battery=%BATT&speed=%SPD&direction=%DIR&altitude=%ALT&provider=%PROV&activity=%ACT -``` - -Add the above URL after you modified it with your settings into the **URL** field. Remove the line breaks as they are only there to make the URL readable here. - -- It's HIGHLY recommended to use SSL/TLS. -- Use the domain that Home Assistant is available on the internet (or the public IP address if you have a static IP address). This can be a local IP address if you are using an always on VPN from your mobile device to your home network. -- Only remove `PORT` if your Home Assistant instance is using port 443. Otherwise set it to the port you're using. -- For Home Assistant only the above URL, as written, will work - do not add, remove, or change the order of any of the parameters. -- Add `Authorization: Bearer LLAT` to the HTTP Headers setting (replace `LLAT` with your Long Lived Access Token). -- You can change the name of your device name by replacing `&device=%SER` with `&device=DEVICE_NAME`. - -If your battery drains too fast then you can tune the performance of GPSLogger under **Performance** -> **Location providers** - -

- - Performance -

- -A request can be forced from the app to test if everything is working fine. A successful request will update the `known_devices.yaml` file with the device's serial number. diff --git a/source/_components/device_tracker.locative.markdown b/source/_components/device_tracker.locative.markdown index 0d7b04f075e..2eb43bd3a6f 100644 --- a/source/_components/device_tracker.locative.markdown +++ b/source/_components/device_tracker.locative.markdown @@ -9,6 +9,7 @@ sharing: true footer: true logo: locative.png ha_category: Presence Detection +ha_iot_class: "Cloud Push" ---

@@ -17,23 +18,8 @@ Locative is no longer under active development. See https://blog.locative.io/bye This platform allows you to detect presence using [Locative](https://my.locative.io/). Locative is an open source app for [iOS](https://github.com/LocativeHQ/ios-app) and [Android](https://github.com/LocativeHQ/Locative-Android) that allows users to set up a `GET` or `POST` request when a geofence is entered or exited. This can be configured with Home Assistant to update your location. -To integrate Locative in Home Assistant, add the following section to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -device_tracker: - - platform: locative -``` - -Install on your smartphone: - -- [Android](https://play.google.com/store/apps/details?id=io.locative.app) -- [iOS](https://itunes.apple.com/us/app/geofancy/id725198453) - -To configure Locative, you must set up the app to send a `GET` request to your Home Assistant server at `http:///api/locative`. Make sure to include the API password if you have configured a password in Home Assistant (add `?api_password=` to the end of the URL). When you enter or exit a geofence, Locative will send a `GET` request to that URL, updating Home Assistant. You are not able to specify a device name in Locative. Instead, you will need to look in your known_devices.yaml file for a new device that Locative will have created on it's first `GET`. If you had been or are using Owntracks as well, you will need to update the device name used in the Owntracks setup with the name that Locative generated. - -

- +

+You must have the [Locative component](/components/locative/) configured to use this device tracker.

When you enter a geofence, your location name in Home Assistant will be set to the name of the geofence in Locative. When you exit a geofence, your location name in Home Assistant will be set to "not home". diff --git a/source/_components/doorbird.markdown b/source/_components/doorbird.markdown index b8b3050ae9e..610549f2966 100644 --- a/source/_components/doorbird.markdown +++ b/source/_components/doorbird.markdown @@ -72,6 +72,9 @@ devices: description: Monitor doorbell events. motion: description: Monitor motion events (Motion monitoring must be enabled on the doorstation via DoorBird app). + relay: + description: Monitor relay events. This event is fired even if a relay is not physically connected to the door station. Can be used to lock/unlock any smart lock present in Home Assistant via the Doorbird app. + {% endconfiguration %} The configuration above is also used by the following platforms: @@ -99,11 +102,12 @@ doorbird: monitored_conditions: - doorbell - motion + - relay ``` -## {% linkable_title Motion and Doorbell Events %} +## {% linkable_title Events %} -Home Assistant will fire an event any time a `monitored_condition` happens on a doorstation. Event names are created using the format `doorbird_{station}_{event}` (Examples: `doorbird_side_entry_button`, `doorbird_side_entry_motion`). You can verify the assigned event names in the Home Assistant log file. +Home Assistant will fire an event any time a `monitored_condition` happens on a doorstation. Event names are created using the format `doorbird_{station}_{event}` (Examples: `doorbird_side_entry_button`, `doorbird_side_entry_motion`). You can verify the assigned event names in the Available Events list on the Events developer view.

Home Assistant will register the monitored conditions with the device as schedule entries that correspond to favorites on startup. If you remove monitored conditions from your configuration, Home Assistant will attempt to remove these items from the device. However, in some cases, such as if the IP address of the machine running Home Assistant changes or if the device is renamed in your configuration, this will not work correctly and some data will be left in device storage. diff --git a/source/_components/emulated_roku.markdown b/source/_components/emulated_roku.markdown new file mode 100644 index 00000000000..3465330d682 --- /dev/null +++ b/source/_components/emulated_roku.markdown @@ -0,0 +1,125 @@ +--- +layout: page +title: "Emulated Roku" +description: "Instructions on how to set up Emulated Roku within Home Assistant." +date: 2019-01-10 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: Hub +ha_release: 0.86.0 +ha_iot_class: "Local Push" +--- + +This component integrates an emulated Roku API into Home Assistant, +so remotes such as Harmony and Android apps can connect to it through WiFi as it were a Roku player. +Home Assistant will see key presses and app launches as Events, which you can use as triggers for automations. +Multiple Roku servers may be started if you run out of buttons by specifying multiple server entries. + +

+Windows is not supported because Home Assistant uses `ProactorEventLoop` which does not support UDP sockets. +

+ +

+This component opens an unauthenticated API on the host, allowing anything on the local network to access +your Home Assistant instance through the automations you create with emulated Roku as the trigger. +Using a proxy with whitelist for IP addresses is recommended. (set `advertise_ip` to the proxy's ip or DNS name) +

+ +## {% linkable_title Configuration %} + +The component is configurable through the frontend. (**Configuration** -> **Integrations** -> **Emulated Roku**) + +If you wish to configure advanced options, you can add the following entry in `configuration.yaml`. + +```yaml +# Example configuration.yaml entry +emulated_roku: + servers: + - name: Home Assistant + listen_port: 8060 +``` + +{% configuration %} +name: + description: Name of the Roku that will be displayed as the serial number in Harmony. + required: true + type: string +listen_port: + description: The port the Roku API will run on. This can be any free port on your system. + required: true + type: integer +host_ip: + description: The IP address that your Home Assistant installation is running on. If you do not specify this option, the component will attempt to determine the IP address on its own. + required: false + type: string +advertise_ip: + description: If you need to override the IP address or DNS name used for UPnP discovery. (For example, using network isolation in Docker or using a proxy) + required: false + type: string +advertise_port: + description: If you need to override the advertised UPnP port. + required: false + type: integer +upnp_bind_multicast: + description: Whether or not to bind the UPnP (SSDP) listener to the multicast address (239.255.255.250) or instead to the (unicast) host_ip address specified above (or automatically determined). The default is true, which will work in most situations. In special circumstances, like running in a FreeBSD or FreeNAS jail, you may need to disable this. + required: false + type: boolean + default: true +{% endconfiguration %} + +After starting up, you can check if the emulated Roku is reachable at the specified ports on your Home Assistant instance (eg.: `http://192.168.1.101:8060/`). + +## {% linkable_title Events %} + +### {% linkable_title Event `roku_command` %} + +All Roku commands are sent as `roku_command` events. + +Field | Description +----- | ----------- +`source_name` | Name of the emulated Roku instance that sent the event. Only required when using multiple instances to filter event sources. +`type` | The type of the event that was called on the API. +`key` | the code of the pressed key when the command `type` is `keypress`, `keyup` or `keydown`. +`app_id` | the id of the app that was launched when command `type` is `launch`. + +The available keys are listed here: +[Roku key codes](https://sdkdocs.roku.com/display/sdkdoc/External+Control+API#ExternalControlAPI-KeypressKeyValues) + +## {% linkable_title Automations %} + +The following is an example implementation of an automation: +```yaml +# Example automation +- id: amp_volume_up + alias: Increase amplifier volume + trigger: + - platform: event + event_type: roku_command + event_data: + source_name: Home Assistant + type: keypress + key: Fwd + action: + - service: media_player.volume_up + entity_id: media_player.amplifier +``` + +## {% linkable_title Troubleshooting %} + +If you change your advertised IP or ports, you will have to re-add the emulated Roku in your app. +When using Harmony, the app should auto-discover any changes via UPnP discovery (if `name` is unchanged) once it detects that the device is unreachable. +Alternatively, you can trigger the 'Fix' page by pressing a button on the unreachable device's remote in the app and wait ~10 seconds, then click 'Fix it'. + +Known limitations: +* Some Android remotes send key up/down events instead of key presses. +* Functionality other than key presses and app launches are not implemented yet. +* App ids are limited between 1-10. (The emulated API reports 10 dummy apps) +* Harmony uses UPnP discovery (UPnP is not needed after pairing), which might not work in Docker. You can: + * Change Docker to host networking temporarily, then revert after pairing. + * Run the `advertise.py` helper script from the emulated_roku library directly somewhere else and point it to the emulated Roku API. +* Harmony cannot launch apps as it uses IR instead of the WiFi API and will not display the custom dummy app list. +* Home control buttons cannot be assigned to emulated Roku on the Harmony Hub Companion remote as they are limited to Hue (and possibly other APIs) within Harmony. +* Harmony will not set the name of the added emulated Roku device to the specified `name`. diff --git a/source/_components/fibaro.markdown b/source/_components/fibaro.markdown index 1e503e324d9..aff4ccdc416 100644 --- a/source/_components/fibaro.markdown +++ b/source/_components/fibaro.markdown @@ -2,14 +2,14 @@ layout: page title: "Fibaro" description: "Instructions on how to setup Fibaro Z-Wave hubs (HCL and HC2) and configure devices within Home Assistant." -date: 2018-11-14 20:04 +date: 2019-01-10 20:04 sidebar: true comments: false sharing: true footer: true logo: fibaro.png ha_category: Hub -ha_release: 0.83 +ha_release: "0.83" ha_iot_class: "Local Push" redirect_from: - /components/scene.fibaro/ @@ -25,12 +25,25 @@ To use Fibaro devices in your installation, add the following to your `configura ```yaml fibaro: - url: http://192.168.1.161/api/ - username: your_username - password: your_password + gateways: + - url: http://192.168.1.161/api/ + username: your_username + password: your_password + device_config: + light_device_name_123: + color: false + white_value: false + reset_color: true + binary_device_name_123: + device_class: "garage_door" + icon: mdi:open ``` {% configuration %} +gateways: + description: List of gateway configurations. + requires: true + type: list url: description: The URL for your Fibaro HomeCenter device. required: true @@ -48,6 +61,11 @@ plugins: required: false type: bool default: false +device_config: + description: Lists device specific parameter or behaviour overrides. + required: false + type: list + default: None {% endconfiguration %}

diff --git a/source/_components/geo_location.geo_json_events.markdown b/source/_components/geo_location.geo_json_events.markdown index 2144a0c6bcd..f17703b0f99 100644 --- a/source/_components/geo_location.geo_json_events.markdown +++ b/source/_components/geo_location.geo_json_events.markdown @@ -8,7 +8,7 @@ comments: false sharing: true footer: true logo: geo_location.png -ha_category: Geo Location +ha_category: Geolocation ha_iot_class: "Cloud Polling" ha_release: "0.79" --- @@ -39,8 +39,8 @@ url: radius: description: The distance in kilometers around the Home Assistant's coordinates in which events are considered. required: false - type: string - default: 20km + type: float + default: 20.0 latitude: description: Latitude of the coordinates around which events are considered. required: false @@ -53,6 +53,17 @@ longitude: default: Longitude defined in your `configuration.yaml` {% endconfiguration %} +## {% linkable_title State Attributes %} + +The following state attributes are available for each entity in addition to the standard ones: + +| Attribute | Description | +|-------------|-------------| +| latitude | Latitude of the event. | +| longitude | Longitude of the event. | +| source | `geo_json_events` to be used in conjunction with `geo_location` automation trigger. | +| external_id | The external ID used in the feed to identify the event in the feed. | + ## {% linkable_title Advanced Configuration Example %} When integrating several GeoJSON feeds, it may be useful to distinguish the entities of different feeds. The easiest way to do that is by defining an [`entity_namespace`](/docs/configuration/platform_options/#entity-namespace/) for each platform which will prefix each entity ID with the defined value. diff --git a/source/_components/geo_location.markdown b/source/_components/geo_location.markdown index 6540d5d2000..a7cfd900c8a 100644 --- a/source/_components/geo_location.markdown +++ b/source/_components/geo_location.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "Geo Location" -description: "Instructions on how to integrate geo location aware platforms into Home Assistant." +title: "Geolocation" +description: "Instructions on how to integrate geolocation aware platforms into Home Assistant." date: 2018-08-27 08:00 sidebar: true comments: false @@ -11,13 +11,13 @@ logo: geo_location.png ha_release: "0.78" --- -Geo Location aware entities are typically related to events in the real world in the vicinity of Home Assistant's location, like for example weather events, bush fires or earthquakes. +Geolocation aware entities are typically related to events in the real world in the vicinity of Home Assistant's location, like for example weather events, bush fires or earthquakes. -Entities can have associated geo location coordinates (latitude and longitude) so that they are displayed on the map. The distance from the entity's coordinates to Home Assistant's location can be used for filtering. +Entities can have associated geolocation coordinates (latitude and longitude) so that they are displayed on the map. The distance from the entity's coordinates to Home Assistant's location can be used for filtering. -## {% linkable_title Geo Location trigger %} +## {% linkable_title Geolocation trigger %} -The [Geo Location trigger](/docs/automation/trigger/#geo-location-trigger) can be used in automations triggered by Geo Location entities appearing in or disappearing from zones. The following value must be used as `source` of the trigger depending on which platform is managing the entities: +The [Geolocation trigger](/docs/automation/trigger/#geolocation-trigger) can be used in automations triggered by Geolocation entities appearing in or disappearing from zones. The following value must be used as `source` of the trigger depending on which platform is managing the entities: | Platform | Source | |---------------------------------------------------|-------------------------------| @@ -27,7 +27,7 @@ The [Geo Location trigger](/docs/automation/trigger/#geo-location-trigger) can b Conditions can be used to further filter entities, for example by inspecting their state attributes. -## {% linkable_title Geo Location notification example %} +## {% linkable_title Geolocation notification example %} The following example automation creates a notification on the screen when a fire classified as 'Bush Fire' is reported within a predefined bush fire alert zone: diff --git a/source/_components/geo_location.nsw_rural_fire_service_feed.markdown b/source/_components/geo_location.nsw_rural_fire_service_feed.markdown index 5879a583c04..6212e4873ee 100644 --- a/source/_components/geo_location.nsw_rural_fire_service_feed.markdown +++ b/source/_components/geo_location.nsw_rural_fire_service_feed.markdown @@ -8,7 +8,7 @@ comments: false sharing: true footer: true logo: nsw-rural-fire-service.png -ha_category: Geo Location +ha_category: Geolocation ha_iot_class: "Cloud Polling" ha_release: "0.81" --- @@ -44,7 +44,7 @@ radius: description: The distance in kilometers around Home Assistant's coordinates in which incidents are included. required: false type: float - default: 20km + default: 20.0 categories: description: List of incident category names found in the feed. Only incidents from the feed that match any of these categories are included. Valid categories are 'Emergency Warning', 'Watch and Act', 'Advice', 'Not Applicable'. required: false @@ -70,6 +70,7 @@ The following state attributes are available for each entity in addition to the |--------------------|-------------| | latitude | Latitude of the incident. | | longitude | Longitude of the incident. | +| source | `nsw_rural_fire_service_feed` to be used in conjunction with `geo_location` automation trigger. | | external_id | The external ID used in the feed to identify the incident in the feed. | | category | One of 'Emergency Warning', 'Watch and Act', 'Advice', 'Not Applicable'. | | location | Location details of where the incident takes place. | diff --git a/source/_components/geo_location.usgs_earthquakes_feed.markdown b/source/_components/geo_location.usgs_earthquakes_feed.markdown index c101a2f6697..e853fbc6699 100644 --- a/source/_components/geo_location.usgs_earthquakes_feed.markdown +++ b/source/_components/geo_location.usgs_earthquakes_feed.markdown @@ -8,7 +8,7 @@ comments: false sharing: true footer: true logo: us-geological-survey.png -ha_category: Geo Location +ha_category: Geolocation ha_iot_class: "Cloud Polling" ha_release: 0.84 --- @@ -52,7 +52,7 @@ radius: description: The distance in kilometers around Home Assistant's coordinates in which seismic events are included. required: false type: float - default: 50 + default: 50.0 latitude: description: Latitude of the coordinates around which events are considered. required: false diff --git a/source/_components/geofency.md b/source/_components/geofency.md index bff78c98327..7b270b15d2f 100644 --- a/source/_components/geofency.md +++ b/source/_components/geofency.md @@ -41,4 +41,4 @@ geofency: - keys ``` -To configure Geofency, you must configure (via the Webhook feature) to send a POST request to your Home Assistant server at `http:///api/geofency`. Use the default POST format, and make sure to include the API password if you have configured a password in Home Assistant (add `?api_password=` to the end of the URL). Make sure to enable the 'Update Geo-Position' functionality for mobile beacons. +To configure Geofency, you must set it up via the integrations panel in the configuration screen. You must then configure the iOS app (via the Webhook feature) to send a POST request to your Home Assistant server at the webhook URL provided by the integration during setup. Use the default POST format. Make sure to enable the 'Update Geo-Position' functionality for mobile beacons. diff --git a/source/_components/gpslogger.md b/source/_components/gpslogger.md new file mode 100644 index 00000000000..d458c5d55a7 --- /dev/null +++ b/source/_components/gpslogger.md @@ -0,0 +1,71 @@ +--- +layout: page +title: "GPSLogger" +description: "Instructions on how to use GPSLogger to track devices in Home Assistant." +date: 2016-11-25 15:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: gpslogger.png +ha_category: Presence Detection +ha_release: 0.86 +ha_iot_class: "Cloud Push" +--- + +This component sets up integration with [GPSLogger](http://code.mendhak.com/gpslogger/). GPSLogger is an open source app for [Android](https://play.google.com/store/apps/details?id=com.mendhak.gpslogger) that allows users to set up a `POST` request to update GPS coordinates. This can be configured with Home Assistant to update your location. + +Enabling this component will automatically enable the [GPSLogger Device Tracker](/components/device_tracker.gpslogger/). + +## {% linkable_title Configuration %} + +To configure GPSLogger, you must set it up via the integrations panel in the configuration screen. This will give you the webhook URL to use during mobile device configuration (below). + +## {% linkable_title Setup on your smartphone %} + +Install [GPSLogger for Android](https://play.google.com/store/apps/details?id=com.mendhak.gpslogger) on your device. + +After the launch, go to **General Options**. Enable **Start on bootup** and **Start on app launch**. + +

+ + GPSLogger Settings +

+ +Go to **Logging details** and disable **Log to GPX**, **Log to KML** and **Log to NMEA**. Enable **Log to custom URL**. + +

+ + Logging Details +

+ +Right after enabling, the app will take you to the **Log to custom URL** settings. + +

+ + Log to custom URL details +

+ +The relevant endpoint starts with: `/api/webhook/` and ends with a unique sequence of characters. This is provided by the integrations panel in the configuration screen (configured above). + +```text +https://YOUR.DNS.HOSTNAME:PORT/api/webook/WEBHOOK_ID?latitude=%LAT&longitude=%LON&device=%SER&accuracy=%ACC&battery=%BATT&speed=%SPD&direction=%DIR&altitude=%ALT&provider=%PROV&activity=%ACT +``` + +Add the above URL after you modified it with your settings into the **URL** field. Remove the line breaks as they are only there to make the URL readable here. + +- Make sure to check the `Use POST method` checkbox. +- It's HIGHLY recommended to use SSL/TLS. +- Use the domain that Home Assistant is available on the internet (or the public IP address if you have a static IP address). This can be a local IP address if you are using an always on VPN from your mobile device to your home network. +- Only remove `PORT` if your Home Assistant instance is using port 443. Otherwise set it to the port you're using. +- For Home Assistant only the above URL, as written, will work - do not add, remove, or change the order of any of the parameters. +- You can change the name of your device name by replacing `&device=%SER` with `&device=DEVICE_NAME`. + +If your battery drains too fast then you can tune the performance of GPSLogger under **Performance** -> **Location providers** + +

+ + Performance +

+ +A request can be forced from the app to test if everything is working fine. A successful request will update the `known_devices.yaml` file with the device's serial number. diff --git a/source/_components/greeneye_monitor.markdown b/source/_components/greeneye_monitor.markdown index 596751358d5..b303f8014bc 100644 --- a/source/_components/greeneye_monitor.markdown +++ b/source/_components/greeneye_monitor.markdown @@ -22,7 +22,7 @@ Configure your GEM(s) to produce binary-format packets (for example, "Bin32 NET" greeneye_monitor: port: 8000 monitors: - - serial_number: YOUR_SERIAL_NUMBER + - serial_number: "YOUR_SERIAL_NUMBER" channels: - number: 1 name: total_power @@ -53,9 +53,9 @@ monitors: type: list keys: serial_number: - description: The last five digits (omitting leading zeroes) of your GEM serial number. + description: Your 8-digit GEM serial number, as it appears in the UI. required: true - type: integer + type: string channels: description: The list of channels that should appear in Home Assistant for this monitor. Data from other channels will be ignored. required: false diff --git a/source/_components/homekit_controller.markdown b/source/_components/homekit_controller.markdown index daa9e79b71e..1992d84b1d8 100644 --- a/source/_components/homekit_controller.markdown +++ b/source/_components/homekit_controller.markdown @@ -22,8 +22,11 @@ ha_iot_class: "Local Polling" There is currently support for the following device types within Home Assistant: +- [Alarm Control Panel](/components/alarm_control_panel.homekit_controller/) - [Climate](/components/climate.homekit_controller/) +- [Cover](/components/cover.homekit_controller/) - [Light](/components/light.homekit_controller/) +- [Lock](/components/lock.homekit_controller/) - [Switch](/components/switch.homekit_controller/) The component will be automatically configured if the [`discovery:`](/components/discovery/) component is enabled and an enable entry added for HomeKit: diff --git a/source/_components/lifx.markdown b/source/_components/lifx.markdown index a630595c4dd..65cd60bfc75 100644 --- a/source/_components/lifx.markdown +++ b/source/_components/lifx.markdown @@ -111,14 +111,14 @@ Run an effect that does nothing, thereby stopping any other effect that might be ## {% linkable_title Advanced configuration %} -There are some manual configuration options available. These should only be needed if you have more than one network interface and automatic configuration does not find your LIFX devices. +There are some manual configuration options available. These are only needed with unusual network setups where automatic configuration does not find your LIFX devices. ```yaml # Example configuration.yaml entry lifx: light: - server: IP_ADDRESS - broadcast: IP_ADDRESS + - server: IP_ADDRESS + broadcast: IP_ADDRESS ``` {% configuration %} @@ -127,7 +127,7 @@ server: required: false type: string broadcast: - description: The broadcast address for discovering lights. + description: The broadcast address for discovering lights. Can also set this to the IP address of a bulb to skip discovery. required: false type: string {% endconfiguration %} diff --git a/source/_components/locative.md b/source/_components/locative.md new file mode 100644 index 00000000000..93f8d43e5d8 --- /dev/null +++ b/source/_components/locative.md @@ -0,0 +1,40 @@ +--- +layout: page +title: "Locative" +description: "Instructions on how to use Locative to track devices in Home Assistant." +date: 2015-10-13 19:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: locative.png +ha_category: Presence Detection +ha_release: 0.86 +ha_iot_class: "Cloud Push" +--- + +

+Locative is no longer under active development. See https://blog.locative.io/bye-everyone-df01871fe949 +

+ +This platform allows you to detect presence using [Locative](https://my.locative.io/). Locative is an open source app for [iOS](https://github.com/LocativeHQ/ios-app) and [Android](https://github.com/LocativeHQ/Locative-Android) that allows users to set up a `GET` or `POST` request when a geofence is entered or exited. This can be configured with Home Assistant to update your location. + +To integrate Locative in Home Assistant, add the following section to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +locative: +``` + +Install on your smartphone: + +- [Android](https://play.google.com/store/apps/details?id=io.locative.app) +- [iOS](https://itunes.apple.com/us/app/geofancy/id725198453) + +To configure Locative, you must set it up via the integrations panel in the configuration screen. You must set up the app to send a POST request to your Home Assistant server at the webhook URL provided by the integration during setup. When you enter or exit a geofence, Locative will send the appropriate request to that URL, updating Home Assistant. You are not able to specify a device name in Locative. Instead, you will need to look in your known_devices.yaml file for a new device that Locative will have created on it's first `GET`. If you had been or are using Owntracks as well, you will need to update the device name used in the Owntracks setup with the name that Locative generated. + +

+ +

+ +When you enter a geofence, your location name in Home Assistant will be set to the name of the geofence in Locative. When you exit a geofence, your location name in Home Assistant will be set to "not home". diff --git a/source/_components/lock.homekit_controller.markdown b/source/_components/lock.homekit_controller.markdown new file mode 100644 index 00000000000..399acb61c73 --- /dev/null +++ b/source/_components/lock.homekit_controller.markdown @@ -0,0 +1,16 @@ +--- +layout: page +title: "HomeKit Lock" +description: "Instructions how to setup HomeKit locks within Home Assistant." +date: 2019-1-8 7:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: apple-homekit.png +ha_category: Lock +ha_iot_class: "Local Polling" +ha_release: 0.86 +--- + +To get your HomeKit lock working with Home Assistant, follow the instructions for the general [HomeKit controller component](/components/homekit_controller/). diff --git a/source/_components/media_player.nad.markdown b/source/_components/media_player.nad.markdown index 25152678fa7..0725043437b 100644 --- a/source/_components/media_player.nad.markdown +++ b/source/_components/media_player.nad.markdown @@ -25,11 +25,25 @@ media_player: ``` {% configuration %} -serial_port: - description: The serial port. - required: true - default: "/dev/ttyUSB0" +type: + description: Type of communication. Valid types are `RS232`, `Telnet` or `TCP` + required: false + default: RS232 type: string +serial_port: + description: The serial port. (for `RS232` type only) + required: false + default: /dev/ttyUSB0 + type: string +host: + description: The IP address of your amplifier. (for `TCP` and `Telnet` types) + required: false + type: string +port: + description: The port number of the device. (for `Telnet` type only) + required: false + default: 53 + type: integer name: description: Name of the device. required: false @@ -46,9 +60,14 @@ max_volume: default: -20 type: integer sources: - description: A list of mappings from source to source name. Valid sources are `1 to 10`. + description: A list of mappings from source to source name. Valid sources are `1 to 10`. (for `RS232` and `Telnet` types) required: false type: [list, string] +volume_step: + description: The amount in dB you want to increase the volume with when pressing volume up/down. (for `TCP` type only) + required: false + default: 4 + type: integer {% endconfiguration %} The min_volume and max_volume are there to protect you against misclicks on the slider so you will not blow up your speakers when you go from -92dB to +20dB. You can still force it to go higher or lower than the values set with the plus and minus buttons. diff --git a/source/_components/media_player.nadtcp.markdown b/source/_components/media_player.nadtcp.markdown deleted file mode 100644 index 046ba913216..00000000000 --- a/source/_components/media_player.nadtcp.markdown +++ /dev/null @@ -1,54 +0,0 @@ ---- -layout: page -title: "NAD tcp" -description: "Instructions on how to integrate the NAD D 7050 or C338 digital amplifiers into Home Assistant." -date: 2017-06-07 20:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: nad.png -ha_category: Media Player -ha_release: 0.47 -ha_iot_class: "Local Polling" ---- - -The `nadtcp` platform allows you to control the D7050 and C338 from Home Assistant via WiFi. Note that it has only been tested with the D 7050. - -To add a NAD amplifier to your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -media_player: - - platform: nadtcp - host: 192.168.0.112 -``` - -{% configuration %} -host: - description: The IP address of your amplifier. - required: true - type: string -name: - description: Name of the device. - required: false - default: NAD amplifier - type: string -min_volume: - description: Minimum volume in dB to use with the slider. - required: false - default: -60 - type: integer -max_volume: - description: Maximum volume in dB to use with the slider. - required: false - default: -10 - type: integer -volume_step: - description: The amount in dB you want to increase the volume with when pressing volume up/down. - required: false - default: 4 - type: integer -{% endconfiguration %} - -The maximum volume level of the D 7050 amplifier is +10 db, minimum is -90. diff --git a/source/_components/media_player.roku.markdown b/source/_components/media_player.roku.markdown index d301898db11..af72795a3a7 100644 --- a/source/_components/media_player.roku.markdown +++ b/source/_components/media_player.roku.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "Roku" +title: "Roku Media Player" description: "Instructions on how to integrate Roku into Home Assistant." date: 2016-05-16 20:0+0000 sidebar: true @@ -13,19 +13,4 @@ ha_release: "0.20" ha_iot_class: "Local Polling" --- -The [Roku](http://www.roku.com/) media players will be automatically discovered if you enable the [discovery component](/components/discovery/). - -The `roku` media player platform can also be forced to load by adding the following lines to your `configuration.yaml`: - -```yaml -# Example configuration.yaml entry -media_player: - - platform: roku -``` - -{% configuration %} -host: - description: The IP address or the hostname of the device. Use only if you don't want to scan for devices. - required: false - type: string -{% endconfiguration %} +To set up the `roku` media player platform, please follow the instructions on the [Roku Component page](/components/roku/). diff --git a/source/_components/notify.discord.markdown b/source/_components/notify.discord.markdown index 01fca89820b..6f296ea538e 100644 --- a/source/_components/notify.discord.markdown +++ b/source/_components/notify.discord.markdown @@ -18,7 +18,7 @@ In order to get a token you need to go to the [Discord My Apps page](https://dis Retreive the **Client ID** from the information section and the (hidden) **Token** of your bot for later. -When setting up the application you can use this [icon](/demo/favicon-192x192.png). +When setting up the application you can use this [icon](/images/favicon-192x192-full.png). To use Discord notifications, add the following to your `configuration.yaml` file: @@ -79,7 +79,7 @@ This channel ID has to be used as the target when calling the notification servi "0987654321" ], "data": { - "images": [ + "images": [ "/tmp/garage_cam.jpg" ] } diff --git a/source/_components/notify.group.markdown b/source/_components/notify.group.markdown index b4eb9b5e3a4..a81cc3d6ce0 100644 --- a/source/_components/notify.group.markdown +++ b/source/_components/notify.group.markdown @@ -58,6 +58,6 @@ An example on how to use it in an automation: action: service: notify.NAME_OF_NOTIFIER_GROUP data: - message: "The sun is {% if is_state('sun.sun', 'above_horizon') %}up{% else %}down{% endif %}!" + message: "{% raw %}The sun is {% if is_state('sun.sun', 'above_horizon') %}up{% else %}down{% endif %}{% endraw %}!" ``` {% endraw %} diff --git a/source/_components/notify.html5.markdown b/source/_components/notify.html5.markdown index 524b92ac9db..84f4338db7d 100644 --- a/source/_components/notify.html5.markdown +++ b/source/_components/notify.html5.markdown @@ -196,6 +196,22 @@ data: If no URL or actions are provided, interacting with a notification will open your Home Assistant in the browser. You can use relative URLs to refer to Home Assistant, i.e. `/map` would turn into `https://192.168.1.2:8123/map`. +### {% linkable_title Dismiss %} + +You can dismiss notifications by using service notify.html5_dismiss like so: + +```json +{ + "target": ["my phone"], + "data": { + "tag": "notification_tag" + } +} +``` + +If no target is provided, it dismisses for all. +If no tag is provided, it dismisses all notifications. + ### {% linkable_title Automating notification events %} During the lifespan of a single push notification, Home Assistant will emit a few different events to the event bus which you can use to write automations against. diff --git a/source/_components/openuv.markdown b/source/_components/openuv.markdown index 8cdd5dbbb90..10ef2e1a6ac 100644 --- a/source/_components/openuv.markdown +++ b/source/_components/openuv.markdown @@ -13,19 +13,26 @@ ha_release: 0.76 ha_iot_class: "Cloud Polling" --- -The `openuv` component displays UV and Ozone data from [openuv.io](http://openuv.io). +The `openuv` component displays UV and Ozone data from +[openuv.io](http://openuv.io). ## {% linkable_title Generating an API Key %} -To generate an API key, [simply log in to the OpenUV website](https://www.openuv.io/auth/google). +To generate an API key, +[simply log in to the OpenUV website](https://www.openuv.io/auth/google).

-The "Limited" plan (which is what new users are given by default) is limited to 50 API requests per day. In order to leave a buffer, the `openuv` component queries the API every 30 minutes by default. This value can be modifed (via the `scan_interval` key), but please note that over-running the API will require you to upgrade to a paid plan (and may disable your access in the meantime). +Beginning February 1, 2019, the "Limited" plan (which is what new users are +given by default) is limited to 50 API requests per day. Because different +API plans and locations will have different requirements, the `openuv` +component does not automatically query the API for new data after it initially +loads. To request new data, the `update_data` service may be used.

## {% linkable_title Configuration %} -To retrieve data from OpenUV, add the following to your `configuration.yaml` file: +To retrieve data from OpenUV, add the following to your `configuration.yaml` +file: ```yaml openuv: @@ -37,11 +44,6 @@ api_key: description: The OpenUV API key. required: true type: string -scan_interval: - description: the frequency (in seconds) between data updates. - required: false - type: integer - default: 1800 binary_sensors: description: The binary sensor-related configuration options. required: false @@ -88,11 +90,15 @@ sensors: description: The approximate exposure time for skin type VI. {% endconfiguration %} -The approximate number of minutes of a particular skin type can be exposed to the sun before burning/tanning starts is based on the [Fitzpatrick scale](https://en.wikipedia.org/wiki/Fitzpatrick_scale). +The approximate number of minutes of a particular skin type can be exposed to +the sun before burning/tanning starts is based on the +[Fitzpatrick scale](https://en.wikipedia.org/wiki/Fitzpatrick_scale). -## {% linkable_title Full example %} +## {% linkable_title Full Configuration Example %} -To configure additional functionality, add configuration options beneath a `binary_sensor` and/or `sensor` key within the `openuv` section of the `configuration.yaml` file as below: +To configure additional functionality, add configuration options beneath a +`binary_sensor` and/or `sensor` key within the `openuv` section of the +`configuration.yaml` file as below: ```yaml openuv: @@ -115,5 +121,51 @@ openuv: ```

-The above guidelines constitute estimates and are intended to help informed decision making. They should not replace analysis, advice or diagnosis from a trained medical professional. +The above guidelines constitute estimates and are intended to help informed +decision making. They should not replace analysis, advice or diagnosis from a +trained medical professional.

+ +## {% linkable_title Services %} + +### {% linkable_title `openuv.update_data` %} + +Perform an on-demand update of OpenUV data. + +## {% linkable_title Examples of Updating Data %} + +One method to retrieve data every 30 minutes and still leave plenty of API key +usage is to only retrieve data during the daytime: + +```yaml +automation: + - alias: Update OpenUV every 30 minutes during the daytime + trigger: + platform: time + minutes: "/30" + seconds: 00 + condition: + condition: and + conditions: + - condition: sun + after: sunrise + - condition: sun + before: sunset + action: + service: openuv.update_data +``` + +Another method (useful when monitoring locations other than the HASS latitude +and longitude, in locations where there is a large amount of sunlight per day, +etc.) might be to simply query the API less often: + +```yaml +automation: + - alias: Update OpenUV every hour (24 of 50 calls per day) + trigger: + platform: time + minutes: "/60" + seconds: 00 + action: + service: openuv.update_data +``` diff --git a/source/_components/remote.harmony.markdown b/source/_components/remote.harmony.markdown index 02a098eb5db..b7a2ae8387e 100644 --- a/source/_components/remote.harmony.markdown +++ b/source/_components/remote.harmony.markdown @@ -182,6 +182,24 @@ data: delay_secs: 0.6 ``` +### {% linkable_title Service `remote.harmony_change_channel` %} + +Sends the change channel command to the Harmony HUB + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | no | Only act on a specific remote, else target all. +| `channel` | no | Channel number to change to + +A typical service call for changing the channel would be:: + +```yaml +service: remote.change_channel +data: + entity_id: remote.tv_room + channel: 200 +``` + ### {% linkable_title Service `remote.harmony_sync` %} Force synchronization between the Harmony device and the Harmony cloud. diff --git a/source/_components/remote.roku.markdown b/source/_components/remote.roku.markdown new file mode 100644 index 00000000000..38a31283611 --- /dev/null +++ b/source/_components/remote.roku.markdown @@ -0,0 +1,60 @@ +--- +layout: page +title: "Roku Remote" +description: "Instructions on how to integrate Roku into Home Assistant." +date: 2018-10-17 20:0+0000 +sidebar: true +comments: false +sharing: true +footer: true +logo: roku.png +ha_category: Remote +ha_release: 0.86 +ha_iot_class: "Local Polling" +--- + +The `roku` remote platform allows you to send remote control buttons to a Roku device. It is automatically set up when a Roku is configured; please see [Roku Component page](/components/roku/) for configuration details. + +At the moment, the following buttons are supported: + +- back +- backspace +- channel_down +- channel_up +- down +- enter +- find_remote +- forward +- home +- info +- input_av1 +- input_hdmi1 +- input_hdmi2 +- input_hdmi3 +- input_hdmi4 +- input_tuner +- left +- literal +- play +- power +- replay +- reverse +- right +- search +- select +- up +- volume_down +- volume_mute +- volume_up + +A typical service call for pressing several buttons looks like this. + +```yaml +service: remote.send_command +data: + entity_id: remote.roku + command: + - left + - left + - select +``` \ No newline at end of file diff --git a/source/_components/roku.markdown b/source/_components/roku.markdown new file mode 100644 index 00000000000..b3d7aacb057 --- /dev/null +++ b/source/_components/roku.markdown @@ -0,0 +1,37 @@ +--- +layout: page +title: "Roku" +description: "Instructions how to integrate Roku devices into Home Assistant." +date: 2018-10-17 20:47 +sidebar: true +comments: false +sharing: true +footer: true +logo: roku.png +ha_category: Hub +ha_iot_class: "Local Polling" +ha_release: 0.86 +--- + +The [Roku](http://www.roku.com/) component allows integration of Roku [media players](/components/media_player.roku) and [remotes](/components/remote.roku/) which will be automatically discovered if you enable the [discovery component](/components/discovery/). + +The `roku` component can also be forced to load by adding the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +roku: + - host: 192.168.1.100 +``` + +{% configuration %} +host: + description: Set the IP address of the Roku device. Use only if you don't want to autodiscover devices. + required: false + type: string +{% endconfiguration %} + +## {% linkable_title Services %} + +### {% linkable_title Service `roku_scan` %} + +Scans the local network for Rokus. All found devices are presented as a persistent notification. diff --git a/source/_components/sensor.asuswrt.markdown b/source/_components/sensor.asuswrt.markdown index 8c091b166e2..50fc69e1a7a 100644 --- a/source/_components/sensor.asuswrt.markdown +++ b/source/_components/sensor.asuswrt.markdown @@ -13,8 +13,6 @@ ha_iot_class: "Local Polling" ha_release: 0.83 --- -The `asuswrt` platform allows you to get data from your [ASUSWRT](http://event.asus.com/2013/nw/ASUSWRT/) sensors from within Home Assistant. - -The sensor platform will be automatically configured if Asuswrt component is configured. +The `asuswrt` sensor platform allows you to get upload and download data from your [ASUSWRT](http://event.asus.com/2013/nw/ASUSWRT/) within Home Assistant. For more configuration information see the [Asuswrt component](/components/asuswrt/) documentation. diff --git a/source/_components/sensor.imap_email_content.markdown b/source/_components/sensor.imap_email_content.markdown index 706b10b3e25..32fbc95a500 100644 --- a/source/_components/sensor.imap_email_content.markdown +++ b/source/_components/sensor.imap_email_content.markdown @@ -9,7 +9,7 @@ sharing: true footer: true logo: smtp.png ha_category: Mailbox -ha_iot_class: "Local Polling" +ha_iot_class: "Cloud Push" ha_release: 0.25 --- @@ -28,6 +28,7 @@ sensor: port: 993 username: USERNAME password: PASSWORD + folder: senders: - example@gmail.com ``` @@ -54,6 +55,11 @@ password: description: Password for the IMAP server. required: true type: string +password: + description: Folder to get mails from. + required: false + default: INBOX + type: string senders: description: A list of sender email addresses that are allowed to report state via email. Only emails received from these addresses will be processed. required: true diff --git a/source/_components/sensor.markdown b/source/_components/sensor.markdown index a3cc2019987..791be58a734 100644 --- a/source/_components/sensor.markdown +++ b/source/_components/sensor.markdown @@ -23,6 +23,7 @@ The way these sensors are displayed in the frontend can be modified in the [cust - **illuminance**: The current light level in lx or lm. - **temperature**: Temperature in °C or °F. - **pressure**: Pressure in hPa or mbar. +- **timestamp**: Datetime object or timestamp string.

diff --git a/source/_components/sensor.nest.markdown b/source/_components/sensor.nest.markdown index 801198eb46b..fe730b1a341 100644 --- a/source/_components/sensor.nest.markdown +++ b/source/_components/sensor.nest.markdown @@ -51,12 +51,12 @@ The following conditions are available by device: - operation\_mode - temperature - target - - hvac\_state: The currently active state of the HVAC system, `heating`, `cooling`, or `off`. + - hvac\_state: The currently active state of the HVAC system, `heat`, `cool` or `off` (previously `heating`, `cooling` or `off`). - Nest Protect: - - co\_status: `Ok`, `Warning`, or `Emergency` - - smoke\_status: `Ok`, `Warning`, or `Emergency` + - co\_status: `Ok`, `Warning` or `Emergency` + - smoke\_status: `Ok`, `Warning` or `Emergency` - battery\_health: `Ok` or `Replace` - - color\_status: `gray`, `green`, `yellow`, or `red`. Indicates device status by color in the Nest app UI. It is an aggregate condition for battery+smoke+CO states, and reflects the actual color indicators displayed in the Nest app. + - color\_status: `gray`, `green`, `yellow` or `red`. Indicates device status by color in the Nest app UI. It is an aggregate condition for battery+smoke+CO states, and reflects the actual color indicators displayed in the Nest app. - Nest Camera: none ## {% linkable_title Security State %} diff --git a/source/_components/sensor.postnl.markdown b/source/_components/sensor.postnl.markdown index 0510b0dd14b..fdbd5ec8f1f 100644 --- a/source/_components/sensor.postnl.markdown +++ b/source/_components/sensor.postnl.markdown @@ -15,7 +15,7 @@ ha_iot_class: "Cloud Polling" The `postnl` platform allows one to track deliveries by [PostNL](https://www.postnl.nl) (Dutch Postal Services). To use this sensor, you need a [PostNL Account](https://jouw.postnl.nl). It is possible to add multiple accounts to your Home Assistant configuration. -The sensor value shows the number of packages to be delivered. Each of the packages is available as an attribute. +The sensor value shows the number of packages to be delivered. The packages are available in the shipments attribute. ## {% linkable_title Configuration %} diff --git a/source/_components/sensor.rest.markdown b/source/_components/sensor.rest.markdown index 8a9dfa32bb0..e029e264698 100644 --- a/source/_components/sensor.rest.markdown +++ b/source/_components/sensor.rest.markdown @@ -52,6 +52,12 @@ name: required: false type: string default: REST Sensor +device_class: + description: > + The [type/class](/components/sensor/) of + the sensor to set the icon in the frontend. + required: false + type: string value_template: description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the value." required: false diff --git a/source/_components/sensor.sma.markdown b/source/_components/sensor.sma.markdown index 6365675c6e4..8ce932e4d38 100644 --- a/source/_components/sensor.sma.markdown +++ b/source/_components/sensor.sma.markdown @@ -29,7 +29,7 @@ sensor: password: YOUR_SMA_PASSWORD sensors: current_consumption: [total_consumption] - current_power: + pv_power: total_yield: ``` @@ -59,29 +59,47 @@ group: type: string sensors: description: A dictionary of sensors that will be added. The value of the dictionary can include a list of sensor names that will be used as attributes. - required: true + required: false + default: All sensors type: map keys: - current_power: - description: Current power (W). - current_consumption: - description: Power that you are currently drawing, depending on your installation it can be a combination of the inverter and the grid (W). + pv_power: + description: Current power generated by the inverter (W). + pv_gen_meter: + description: Total kWh generated to date (kWh) total_yield: description: Total power yield from solar installation (kWh). + daily_yield: + description: The yield for today (Wh) + + current_consumption: + description: Power that you are currently drawing, depending on your installation it can be a combination of the inverter and the grid (W). total_consumption: description: Total power consumption (kWh). - grid_voltage: - description: The grid voltage (V) - pv_power: - description: PV Power (W) - daily_yield: - description: daily_yield (Wh) - power_supplied: + + grid_power_supplied: description: Power supplied (W) - power_absorbed: + grid_power_absorbed: description: Power absorbed (W) + grid_total_yield: + description: Total power fom the grid (kWh) + grid_total_absorbed: + description: Total power supplied to the grid + + grid_power: + description: Power supplied by the grid (W) + frequency: + description: Grid frequency (W) + voltage_l1: + description: Voltage for phase 1 (V) + voltage_l2: + description: Voltage for phase 2 (V) + voltage_l2: + description: Voltage for phase 3 (V) + status: - description: Status of the solar plant. + description: Status of the solar plant. + your-custom-sensor: description: Any sensor name defined in the `custom:` section custom: @@ -123,4 +141,4 @@ Example: factor: 1000 ``` -Over time more sensors will be added as standard sensors to the [pysma library](https://github.com/kellerza/pysma/blob/master/pysma/__init__.py#L59). Feel free to submit additional sensors on that repository. +Over time more sensors will be added as standard sensors to the [pysma library](https://github.com/kellerza/pysma/blob/master/pysma/__init__.py#L100). Feel free to submit additional sensors on that repository. diff --git a/source/_components/switch.xiaomi_miio.markdown b/source/_components/switch.xiaomi_miio.markdown index e2f8d92b3b7..0b88bcf5294 100644 --- a/source/_components/switch.xiaomi_miio.markdown +++ b/source/_components/switch.xiaomi_miio.markdown @@ -21,7 +21,7 @@ Please follow the instructions on [Retrieving the Access Token](/components/vacu ### {% linkable_title Xiaomi Smart WiFi Socket %} -Supported models: `chuangmi.plug.m1`, `chuangmi.plug.v2`, `chuangmi.plug.hmi205` +Supported models: `chuangmi.plug.m1`, `chuangmi.plug.m3`, `chuangmi.plug.v2`, `chuangmi.plug.hmi205` - Power (on, off) - Attributes @@ -78,7 +78,7 @@ name: type: string default: Xiaomi Miio Switch model: - description: The model of your miio device. Valid values are `chuangmi.plug.v1`, `qmi.powerstrip.v1`, `zimi.powerstrip.v2`, `chuangmi.plug.m1`, `chuangmi.plug.v2`, `chuangmi.plug.v3` and `chuangmi.plug.hmi205`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available. + description: The model of your miio device. Valid values are `chuangmi.plug.v1`, `qmi.powerstrip.v1`, `zimi.powerstrip.v2`, `chuangmi.plug.m1`, `chuangmi.plug.m3`, `chuangmi.plug.v2`, `chuangmi.plug.v3` and `chuangmi.plug.hmi205`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available. required: false type: string {% endconfiguration %} diff --git a/source/_components/vacuum.neato.markdown b/source/_components/vacuum.neato.markdown index 9ed678cfb61..3b38389171b 100644 --- a/source/_components/vacuum.neato.markdown +++ b/source/_components/vacuum.neato.markdown @@ -32,3 +32,4 @@ Currently supported services are: - `stop` - `return_to_base` - `locate` +- `spot_clean` diff --git a/source/_components/zha.markdown b/source/_components/zha.markdown index 7d353f91ac0..c3a1069360a 100644 --- a/source/_components/zha.markdown +++ b/source/_components/zha.markdown @@ -32,6 +32,9 @@ Known working Zigbee radio modules: - [Elelabs Zigbee Raspberry Pi Shield](https://elelabs.com/products/elelabs_zigbee_shield.html) - XBee Zigbee based radios (via the [zigpy-xbee](https://github.com/zigpy/zigpy-xbee) library for zigpy) - Digi XBee Series 2C (S2C) modules +- Dresden-Elektronik deCONZ based Zigbee radios (via the [zigpy-deconz](https://github.com/zigpy/zigpy-deconz) library for zigpy) + - [ConBee USB adapter from Dresden-Elektronik](https://www.dresden-elektronik.de/conbee/) + - [RaspBee Raspberry Pi Shield from Dresden-Elektronik](https://www.dresden-elektronik.de/raspbee/) ## {% linkable_title Configuration %} diff --git a/source/_components/zoneminder.markdown b/source/_components/zoneminder.markdown index a5f49f7082a..d8d934df811 100644 --- a/source/_components/zoneminder.markdown +++ b/source/_components/zoneminder.markdown @@ -21,7 +21,7 @@ The ZoneMinder component sets up the integration with your [ZoneMinder](https:// ```yaml # Example configuration.yaml entry zoneminder: - host: ZM_HOST + - host: ZM_HOST ``` {% configuration %} @@ -64,13 +64,13 @@ password: ```yaml # Example configuration.yaml entry zoneminder: - host: ZM_HOST - path: ZM_PATH - path_zms: ZM_PATH_ZMS - ssl: true - verify_ssl: true - username: YOUR_USERNAME - password: YOUR_PASSWORD + - host: ZM_HOST + path: ZM_PATH + path_zms: ZM_PATH_ZMS + ssl: true + verify_ssl: true + username: YOUR_USERNAME + password: YOUR_PASSWORD ``` ### {% linkable_title Service %} @@ -79,6 +79,7 @@ Once loaded, the `zoneminder` platform will expose a service (`set_run_state`) t | Service data attribute | Optional | Description | |:-----------------------|:---------|:----------------------------------| +| `id` | no | Host of the ZoneMinder instance. | | `name` | no | Name of the new run state to set. | For example, if your ZoneMinder instance was configured with a run state called "Home", you could write an [automation](/getting-started/automation/) that changes ZoneMinder to the "Home" run state by including the following [action](/getting-started/automation-action/): @@ -87,5 +88,6 @@ For example, if your ZoneMinder instance was configured with a run state called action: service: zoneminder.set_run_state data: + id: ZM_HOST name: Home ``` diff --git a/source/_cookbook/configuration_yaml_by_patatman.markdown b/source/_cookbook/configuration_yaml_by_patatman.markdown new file mode 100644 index 00000000000..1b45e974202 --- /dev/null +++ b/source/_cookbook/configuration_yaml_by_patatman.markdown @@ -0,0 +1,12 @@ +--- +layout: page +title: "Configuration.yaml by patatman" +description: "" +date: 2019-01-13 21:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Example configuration.yaml +ha_external_link: https://github.com/patatman/patatman-homeassistant-config +--- diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index 5719edb7848..6a084964d8c 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -173,33 +173,40 @@ Rendering templates with time (`now()`) is dangerous as trigger templates only u ### {% linkable_title Time trigger %} -Time can be triggered in many ways. The most common is to specify `at` and trigger at a specific point in time each day. Alternatively, you can also match if the hour, minute or second of the current time has a specific value. You can prefix the value with a `/` to match whenever the value is divisible by that number. You cannot use `at` together with hour, minute or second. +The time trigger is configured to run once at a specific point in time each day. ```yaml automation: trigger: platform: time + # Military time format. This trigger will fire at 3:32 PM + at: '15:32:00' +``` + +### {% linkable_title Time pattern trigger %} + +With the time pattern trigger, you can match if the hour, minute or second of the current time matches a specific value. You can prefix the value with a `/` to match whenever the value is divisible by that number. You can specify `*` to match any value. + +```yaml +automation: + trigger: + platform: time_pattern # Matches every hour at 5 minutes past whole minutes: 5 - seconds: 00 automation 2: trigger: - platform: time - # When 'at' is used, you cannot also match on hour, minute, seconds. - # Military time format. - at: '15:32:00' + platform: time_pattern + # Trigger once per minute during the hour of 3 + hours: '3' + minutes: '*' automation 3: trigger: - platform: time + platform: time_pattern # You can also match on interval. This will match every 5 minutes minutes: '/5' - seconds: 00 ``` -

- Remember that if you are using matching to include both `minutes` and `seconds`. Without `seconds`, your automation will trigger 60 times during the matching minute. -

As mentioned in the Sun trigger section, sunrise is a different day than any time prior to midnight. If you want to trigger an action with a large enough amount of time before sunrise that it precedes midnight, this must be accounted for properly. One way is to convert the sunrise time to a timestamp (seconds since 1 Jan 1970). Then do the same for the offset desired (in seconds). This is done with the _as_timestamp_ method explained in the [Templating - Home Assistant template extensions](/docs/configuration/templating/#home-assistant-template-extensions) section. @@ -231,10 +238,10 @@ automation: event: enter # or "leave" ``` -### {% linkable_title Geo Location trigger %} +### {% linkable_title Geolocation trigger %} -Geo Location triggers can trigger when an entity is appearing in or disappearing from a zone. Entities that are created by a [Geo Location](/components/geo_location/) platform support reporting GPS coordinates. -Because entities are generated and removed by these platforms automatically, the entity id normally cannot be predicted. Instead, this trigger requires the definition of a `source` which is directly linked to one of the Geo Location platforms. +Geolocation triggers can trigger when an entity is appearing in or disappearing from a zone. Entities that are created by a [Geolocation](/components/geo_location/) platform support reporting GPS coordinates. +Because entities are generated and removed by these platforms automatically, the entity id normally cannot be predicted. Instead, this trigger requires the definition of a `source` which is directly linked to one of the Geolocation platforms. ```yaml automation: diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index cf3d015bb32..a7931e22cf0 100644 --- a/source/_docs/mqtt/discovery.markdown +++ b/source/_docs/mqtt/discovery.markdown @@ -24,6 +24,7 @@ Supported by MQTT discovery: - [Locks](/components/lock.mqtt/) - [Sensors](/components/sensor.mqtt/) - [Switches](/components/switch.mqtt/) +- [Vacuums](/components/vacuum.mqtt/) To enable MQTT discovery, add the following to your `configuration.yaml` file: @@ -86,12 +87,25 @@ Supported abbreviations: 'bri_scl': 'brightness_scale', 'bri_stat_t': 'brightness_state_topic', 'bri_val_tpl': 'brightness_value_template', + 'bat_lev_t': 'battery_level_topic', + 'bat_lev_tpl': 'battery_level_template', + 'chrg_t': 'charging_topic', + 'chrg_tpl': 'charging_template', 'clr_temp_cmd_t': 'color_temp_command_topic', 'clr_temp_stat_t': 'color_temp_state_topic', 'clr_temp_val_tpl': 'color_temp_value_template', + 'cln_t': 'cleaning_topic', + 'cln_tpl': 'cleaning_template', 'cmd_t': 'command_topic', 'curr_temp_t': 'current_temperature_topic', 'dev_cla': 'device_class', + 'dock_t': 'docked_topic', + 'dock_tpl': 'docked_template', + 'err_t': 'error_topic', + 'err_tpl': 'error_template', + 'fanspd_t': 'fan_speed_topic', + 'fanspd_tpl': 'fan_speed_template', + 'fanspd_lst': 'fan_speed_list', 'fx_cmd_t': 'effect_command_topic', 'fx_list': 'effect_list', 'fx_stat_t': 'effect_state_topic', @@ -141,6 +155,7 @@ Supported abbreviations: 'rgb_cmd_t': 'rgb_command_topic', 'rgb_stat_t': 'rgb_state_topic', 'rgb_val_tpl': 'rgb_value_template', + 'send_cmd_t': 'send_command_topic', 'send_if_off': 'send_if_off', 'set_pos_tpl': 'set_position_template', 'set_pos_t': 'set_position_topic', @@ -154,6 +169,7 @@ Supported abbreviations: 'stat_open': 'state_open', 'stat_t': 'state_topic', 'stat_val_tpl': 'state_value_template', + 'sup_feat': 'supported_features', 'swing_mode_cmd_t': 'swing_mode_command_topic', 'swing_mode_stat_tpl': 'swing_mode_state_template', 'swing_mode_stat_t': 'swing_mode_state_topic', @@ -213,7 +229,7 @@ $ mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/binary_sensor/garden/stat Delete the sensor by sending an empty message. ```bash -$ mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/binary_sensor/garden/state" -m '' +$ mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/binary_sensor/garden/config" -m '' ``` Setting up a switch is similar but requires a `command_topic` as mentioned in the [MQTT switch documentation](/components/switch.mqtt/). diff --git a/source/_includes/asides/about.html b/source/_includes/asides/about.html index 5d672861adc..e4a12f32618 100644 --- a/source/_includes/asides/about.html +++ b/source/_includes/asides/about.html @@ -5,7 +5,7 @@ Home Assistant is an open-source home automation platform running on Python 3. Track and control all devices at home and automate control.
  • Get started with Home Assistant
  • -
  • Try the online demo
  • +
  • Try the online demo
  • diff --git a/source/_includes/custom/footer.html b/source/_includes/custom/footer.html index 911b66602cd..d82ba666e56 100644 --- a/source/_includes/custom/footer.html +++ b/source/_includes/custom/footer.html @@ -1,7 +1,7 @@