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:///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/media_player.nad.markdown b/source/_components/media_player.nad.markdown index 25152678fa7d..0725043437bb 100644 --- a/source/_components/media_player.nad.markdown +++ b/source/_components/media_player.nad.markdown @@ -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 @@ -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 046ba9132160..000000000000 --- 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/ness_alarm.markdown b/source/_components/ness_alarm.markdown index 3033bbff11b2..216c2582aca0 100644 --- a/source/_components/ness_alarm.markdown +++ b/source/_components/ness_alarm.markdown @@ -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). diff --git a/source/_components/sensor.bme680.markdown b/source/_components/sensor.bme680.markdown index 2294195bc1b3..919a3aeec716 100644 --- a/source/_components/sensor.bme680.markdown +++ b/source/_components/sensor.bme680.markdown @@ -186,6 +186,13 @@ group: - sensor.bme680_sensor_air_quality ``` +## {% linkable_title Directions for enabling I2C interface on Hass.io %} +Follow the instructions here to [enable I2C on Hass.io.][enable-i2c-hassio] + +OR + +If you're installing on system that doesn't have Hass.io follow the instructions below. + ## {% linkable_title Directions for installing SMBus support on Raspberry Pi %} Enable I2C interface with the Raspberry Pi configuration utility: @@ -232,3 +239,6 @@ It will output a table like this: ``` So you can see the sensor address that you are looking for is **0x76** (there is another I2C device on that Raspberry Pi). + + +[enable-i2c-hassio]: /hassio/enable_i2c/ diff --git a/source/_components/switch.xiaomi_miio.markdown b/source/_components/switch.xiaomi_miio.markdown index efe0e9c89fdb..eae1e1e8715d 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 ### 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/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index 7a4e57b496a3..432988511808 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -220,10 +220,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/_includes/asides/hassio_navigation.html b/source/_includes/asides/hassio_navigation.html index 6c42ff0ca6d2..f8e6a3debeb6 100644 --- a/source/_includes/asides/hassio_navigation.html +++ b/source/_includes/asides/hassio_navigation.html @@ -19,6 +19,7 @@

Topics

  • {% active_link /hassio/zwave/ Z-Wave %}
  • {% active_link /hassio/external_storage/ External storage %}
  • {% active_link /hassio/run_local/ Execute local things %}
  • +
  • {% active_link /hassio/enable_i2c/ Enable I2C %}
  • diff --git a/source/_lovelace/map.markdown b/source/_lovelace/map.markdown index 2572ba031177..6e82ea9c13d7 100644 --- a/source/_lovelace/map.markdown +++ b/source/_lovelace/map.markdown @@ -28,7 +28,7 @@ entities: type: list geo_location_sources: required: true - description: List of geolocation sources. All current entities with that source will be displayed on the map. See [Geo Location](/components/geo_location/) platform for valid sources. Either this or the `entities` configuration option is required. + description: List of geolocation sources. All current entities with that source will be displayed on the map. See [Geolocation](/components/geo_location/) platform for valid sources. Either this or the `entities` configuration option is required. type: list title: required: false diff --git a/source/hassio/enable_i2c.markdown b/source/hassio/enable_i2c.markdown new file mode 100644 index 000000000000..0c65755633eb --- /dev/null +++ b/source/hassio/enable_i2c.markdown @@ -0,0 +1,40 @@ +--- +layout: page +title: "Enable HassOS i2c" +description: "Instructions on how to enable i2c on a Raspberry PI for Hass.io." +date: 2018-01-11 20:08 +sidebar: true +comments: false +sharing: true +footer: true +--- + +Hass.io is a managed environment, which means you can't use existing methods to enable the I2C bus on a Raspberry Pi. + +If you're attempting to add an external sensor, you will have to enable the I2C interface in the hass.io configuration via the USB Configuration prompt. *note*: this will not work via an ssh connection. + +You will need: +* USB drive +* A way to add files to the USB drive +* A way to connect the drive to your Raspberry Pi + +### Step 1 - Prepare the USB drive. +Connect the USB drive to a device capable of adding and editing files to the USB drive. Format a USB stick with FAT32/EXT4/NTFS and name the drive `CONFIG`. *Do not* skip this step. + +### Step 2 - Add files to enable I2C. +In the root of the USB drive add a folder called /modules. Inside that folder add a text file called `rpi-i2c.conf`. Open that file and add these two lines: +``` +i2c-bcm2708 +i2c-dev +``` + +In the root of the USB drive add a file called `config.txt`. Open that file and add these lines: +``` +dtparam=i2c1=on +dtparam=i2c_arm=on +``` + +### Step 3 - Load the new USB config. +Insert the USB drive into your Raspberry PI. Now go to the admin page http://hassio.local:8123/states, then in the sidebar click Hass.io > System. +Now click `Import from USB`. This will restart your Hass.io instance, and load the new USB configuration. When the service has restarted, you will have an working I2C interface. +