Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion source/_components/demo.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -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`)
Expand Down
8 changes: 6 additions & 2 deletions source/_components/doorbird.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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.

<p class="note info">
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.
Expand Down
125 changes: 125 additions & 0 deletions source/_components/emulated_roku.markdown
Original file line number Diff line number Diff line change
@@ -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.

<p class='note'>
Windows is not supported because Home Assistant uses `ProactorEventLoop` which does not support UDP sockets.
</p>

<p class='note warning'>
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)
</p>

## {% 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`.
28 changes: 23 additions & 5 deletions source/_components/fibaro.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -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/
Expand All @@ -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
Expand All @@ -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 %}

<p class='note'>
Expand Down
2 changes: 1 addition & 1 deletion source/_components/geo_location.geo_json_events.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -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"
---
Expand Down
14 changes: 7 additions & 7 deletions source/_components/geo_location.markdown
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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 |
|---------------------------------------------------|-------------------------------|
Expand All @@ -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:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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"
---
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
---
Expand Down
2 changes: 1 addition & 1 deletion source/_components/geofency.md
Original file line number Diff line number Diff line change
Expand Up @@ -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://<ha_server>/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=<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.
27 changes: 23 additions & 4 deletions source/_components/media_player.nad.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,25 @@ media_player:
```

{% configuration %}
type:
description: Type of communication. Valid types are `RS232`, `Telnet` or `TCP`
required: false
default: RS232
type: string
serial_port:
description: The serial port.
required: true
default: "/dev/ttyUSB0"
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
Expand All @@ -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.
Expand Down
54 changes: 0 additions & 54 deletions source/_components/media_player.nadtcp.markdown

This file was deleted.

2 changes: 1 addition & 1 deletion source/_components/ness_alarm.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ port:
zones:
description: List of zones to add
required: false
type: [integer, list]
type: list
keys:
zone_id:
description: ID of the zone on the alarm system (i.e Zone 1 -> Zone 16).
Expand Down
Loading