diff --git a/source/_components/demo.markdown b/source/_components/demo.markdown index 8eccea14537a..1107426877f6 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/doorbird.markdown b/source/_components/doorbird.markdown index b8b3050ae9e0..610549f2966a 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 000000000000..3465330d6828 --- /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 1e503e324d94..aff4ccdc4161 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 2144a0c6bcd1..f9a347490c49 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"
---
diff --git a/source/_components/geo_location.markdown b/source/_components/geo_location.markdown
index 6540d5d20008..a7cfd900c8a0 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 5879a583c043..c576a6919d77 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"
---
diff --git a/source/_components/geo_location.usgs_earthquakes_feed.markdown b/source/_components/geo_location.usgs_earthquakes_feed.markdown
index c101a2f6697c..b841fb4b47f6 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
---
diff --git a/source/_components/geofency.md b/source/_components/geofency.md
index bff78c983275..7b270b15d2f5 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://Topics