diff --git a/plugins/environment_variables.rb b/plugins/environment_variables.rb new file mode 100644 index 00000000000..7d9203f1643 --- /dev/null +++ b/plugins/environment_variables.rb @@ -0,0 +1,17 @@ +module Jekyll + class EnvironmentVariablesGenerator < Generator + def generate(site) + # https://www.netlify.com/docs/continuous-deployment/#build-environment-variables + repo_url = ENV['REPOSITORY_URL'] || 'https://github.com/home-assistant/home-assistant.github.io' + + # Rewrite urls if repo url is the ssh format. + if repo_url.start_with? 'git@github.com:' + repo_url = repo_url.sub 'git@github.com:', 'https://github.com/' + end + + # These values will be available as {{ site.NLY_REPOSITORY_URL }} + site.config['NLY_REPOSITORY_URL'] = repo_url + site.config['NLY_HEAD'] = ENV['HEAD'] || 'current' + end + end +end diff --git a/source/_components/amcrest.markdown b/source/_components/amcrest.markdown index fc62783afa0..74c76e70dde 100644 --- a/source/_components/amcrest.markdown +++ b/source/_components/amcrest.markdown @@ -28,6 +28,9 @@ amcrest: sensors: - motion_detector - sdcard + switches: + - motion_detection + - motion_recording - host: IP_ADDRESS_CAMERA_2 username: YOUR_USERNAME @@ -54,6 +57,9 @@ Configuration variables: - **motion_detector**: Return True/False when a motion is detected - **sdcard**: Return the SD card usage by reporting the total and used space - **ptz_preset**: Return the number of PTZ preset positions configured for the given camera +- **switches** array (*Optional*): Switches to display in the frontend. By default, *none* of the switches are shown. The following switches can be monitored. + - **motion_detection**: Enable/disable motion detection setting + - **motion_recording**: Enable/disable recording on motion detection setting **Note:** Amcrest cameras with newer firmware no longer have the ability to stream `high` definition video with MJPEG encoding. You may need to use `low` resolution stream or the `snapshot` stream source instead. If the quality seems too poor, lower the `Frame Rate (FPS)` and max out the `Bit Rate` settings in your camera's configuration manager. If you defined the *stream_source* to **mjpeg**, make sure your camera supports *Basic* HTTP authentication. Newer Amcrest firmware may not work, then **rtsp** is recommended instead. diff --git a/source/_components/binary_sensor.workday.markdown b/source/_components/binary_sensor.workday.markdown index 0d4782bc12a..edc34b5a373 100644 --- a/source/_components/binary_sensor.workday.markdown +++ b/source/_components/binary_sensor.workday.markdown @@ -15,6 +15,10 @@ ha_release: 0.41 The `workday` binary sensor indicates, whether the current day is a workday or not. It allows specifying, which days of the week counts as workdays and also uses the python module [holidays](https://pypi.python.org/pypi/holidays) to incorporate information about region-specific public holidays. +## {% linkable_title Configuration %} + +Check the [country list](https://github.com/dr-prodigy/python-holidays#available-countries) for available province. + To enable the `workday` sensor in your installation, add the following to your `configuration.yaml` file: ```yaml diff --git a/source/_components/bmw_connected_drive.markdown b/source/_components/bmw_connected_drive.markdown index e560ced3c67..fe8cabc71ac 100644 --- a/source/_components/bmw_connected_drive.markdown +++ b/source/_components/bmw_connected_drive.markdown @@ -25,7 +25,7 @@ bmw_connected_drive: name: username: USERNAME_BMW_CONNECTED_DRIVE password: PASSWORD_BMW_CONNECTED_DRIVE - country: COUNTRY_BMW_CONNECTED_DRIVE + region: one of "north_america", "china" , "rest_of_world" ``` {% configuration %} @@ -46,8 +46,8 @@ bmw_connected_drive: description: Your BMW Connected Drive password. required: true type: string - country: - description: "The country of your Connected Drive account. Please use the exact names for the country as listed on the [Connected Drive website](https://www.bmw-connecteddrive.com/)." + region: + description: "The region of your Connected Drive account. Please use of these values: `north_america`, `china`, `rest_of_world`" required: true type: string {% endconfiguration %} diff --git a/source/_components/cover.gogogate2.markdown b/source/_components/cover.gogogate2.markdown new file mode 100644 index 00000000000..bf6d62d37b1 --- /dev/null +++ b/source/_components/cover.gogogate2.markdown @@ -0,0 +1,49 @@ +--- +layout: page +title: "Gogogate2 Cover" +description: "Instructions on how to integrate Gogogate2-Enabled garage door covers into Home Assistant." +date: 2018-03-26 20:02 +sidebar: true +comments: false +sharing: true +footer: true +logo: gogogate2.png +ha_category: Cover +ha_release: 0.67 +ha_iot_class: Local Polling +--- + +The `gogogate2` cover platform lets you control Gogogate2-Enabled garage doors through Home Assistant. Device names in Home Assistant are generated based on the names defined in your Gogogate2 mobile app. + +## {% linkable_title Configuration %} + +To use your Gogogate2 cover in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yml entry +cover: + - platform: gogogate2 + username: email@email.com + password: password + ip_address: 192.168.1.200 +``` + +{% configuration %} +username: + description: Your Gogogate2 account username. + required: true + type: string +password: + description: Your Gogogate2 account password. + required: true + type: string +ip_address: + description: The IP Address of your Gogogate2 device. + required: true + type: string +name: + description: Allows you to override the default name. + default: gogogate2 + required: false + type: string +{% endconfiguration %} diff --git a/source/_components/device_tracker.asuswrt.markdown b/source/_components/device_tracker.asuswrt.markdown index 4d809108e90..7889253ce98 100644 --- a/source/_components/device_tracker.asuswrt.markdown +++ b/source/_components/device_tracker.asuswrt.markdown @@ -19,6 +19,8 @@ The `asuswrt` platform offers presence detection by looking at connected devices This platform is **NOT** available for [Microsoft Windows installations](http://pexpect.readthedocs.io/en/stable/overview.html#pexpect-on-windows).
+### {% linkable_title Configuration %} + To use an ASUSWRT router in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -29,15 +31,44 @@ device_tracker: username: YOUR_ADMIN_USERNAME ``` -Configuration variables: - -- **host** (*Required*): The IP address of your router, eg. `192.168.1.1`. -- **username** (*Required*: The username of an user with administrative privileges, usually `admin`. -- **password** (*Optional*): The password for your given admin account (use this if no SSH key is given). -- **protocol** (*Optional*): The protocol (`ssh` or `telnet`) to use. Defaults to `ssh`. -- **port** (*Optional*): SSH port to use. Defaults to `22`. -- **mode** (*Optional*): The operating mode of the router (`router` or `ap`). Defaults to `router`. -- **ssh_key** (*Optional*): The path to your SSH private key file associated with your given admin account (instead of password). +{% configuration %} +host: + description: "The IP address of your router, eg. `192.168.1.1`." + required: true + type: string +username: + description: "The username of an user with administrative privileges, usually `admin`." + required: true + type: string +password: + description: "The password for your given admin account (use this if no SSH key is given)." + required: false + type: string +protocol: + description: "The protocol (`ssh` or `telnet`) to use." + required: false + type: string + default: ssh +port: + description: SSH port to use. + required: false + type: int + default: 22 +mode: + description: "The operating mode of the router (`router` or `ap`)." + required: false + type: string + default: router +ssh_key: + description: The path to your SSH private key file associated with your given admin account (instead of password). + required: false + type: string +require_ip: + description: If the router is in access point mode. + required: false + type: boolean + default: true +{% endconfiguration %}You need to [enable telnet](https://www.asus.com/support/faq/1005449/) on your router if you choose to use `protocol: telnet`. diff --git a/source/_components/device_tracker.bluetooth_tracker.markdown b/source/_components/device_tracker.bluetooth_tracker.markdown index 0a2a2d06323..45bd09eae3d 100644 --- a/source/_components/device_tracker.bluetooth_tracker.markdown +++ b/source/_components/device_tracker.bluetooth_tracker.markdown @@ -27,6 +27,14 @@ device_tracker: - platform: bluetooth_tracker ``` +{% configuration %} +request_rssi: + description: Performs a request for the "Received signal strength indication" (RSSI) of each tracked device + required: false + type: boolean + default: False +{% endconfiguration %} + In some cases it can be that your device is not discovered. In that case let your phone scan for Bluetooth devices while you restart Home Assistant. Just hit `Scan` on your phone all the time until Home Assistant is fully restarted and the device should appear in `known_devices.yaml`. For additional configuration variables check the [Device tracker page](/components/device_tracker/). diff --git a/source/_components/device_tracker.google_maps.markdown b/source/_components/device_tracker.google_maps.markdown new file mode 100644 index 00000000000..6f2175a6044 --- /dev/null +++ b/source/_components/device_tracker.google_maps.markdown @@ -0,0 +1,46 @@ +--- +layout: page +title: "Google Maps Location Sharing" +description: "Instructions how to use Google Maps Location Sharing to track devices in Home Assistant." +date: 2017-02-12 10:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: google_maps.png +ha_release: 0.67 +ha_category: Presence Detection +ha_iot_class: "Cloud Polling" +--- + +The `google_maps` platform allows you to detect presence using the unofficial API of [Google Maps Location Sharing](https://myaccount.google.com/locationsharing). + +You first need to create an additional Google account and share your location with that account. This platform will use that account to fetch the location of your device(s). You have to setup sharing through the Google Maps app on your mobile phone. You can find more information [here](https://support.google.com/accounts?p=location_sharing). + +This platform will create a file named `google_maps_location_sharing.conf` where it caches your login session. + +
+Since this platform is using an official API with the help of [locationsharinglib](https://github.com/costastf/locationsharinglib), Google seems to block access to your data the first time you've logged in with this component. +This issue can be fixed by logging in with your new account and approving your login on the [Device Activity](https://myaccount.google.com/device-activity) page. +
+ +To integrate Google Maps Location Sharing in Home Assistant, add the following section to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +device_tracker: + platform: google_maps + username: example@gmail.com + password: password +``` + +{% configuration %} +username: + description: The email address for the Google account that has access to your shared location. + required: true + type: string +password: + description: The password for your given username. + required: true + type: string +{% endconfiguration %} diff --git a/source/_components/device_tracker.xiaomi_miio.markdown b/source/_components/device_tracker.xiaomi_miio.markdown new file mode 100644 index 00000000000..dad5feef5df --- /dev/null +++ b/source/_components/device_tracker.xiaomi_miio.markdown @@ -0,0 +1,38 @@ +--- +layout: page +title: "Xiaomi Mi WiFi Repeater 2" +description: "Instructions how to integrate your Xiaomi Mi WiFi Repeater 2 within Home Assistant." +date: 2018-04-01 21:06 +sidebar: true +comments: false +sharing: true +footer: true +logo: xiaomi.png +ha_category: Sensor +ha_version: 0.67 +ha_iot_class: "Local Polling" +--- + +The `xiaomi_miio` device tracker platform is observing your Xiaomi Mi WiFi Repeater 2 and reporting all associated WiFi clients. + +Please follow the instructions on [Retrieving the Access Token](/components/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token. + +To add a Xiaomi Mi Air Quality Monitor to your installation, add the following to your `configuration.yaml` file: + +```yaml +device_tracker: + - platform: xiaomi_miio + host: 192.168.130.73 + token: YOUR_TOKEN +``` + +{% configuration %} +host: + description: The IP address of your miio device. + required: true + type: string +token: + description: The API token of your miio device. + required: true + type: string +{% endconfiguration %} diff --git a/source/_components/doorbird.markdown b/source/_components/doorbird.markdown index bda3a36a7a1..30cd891c002 100644 --- a/source/_components/doorbird.markdown +++ b/source/_components/doorbird.markdown @@ -31,6 +31,7 @@ Configuration variables: - **username** (*Required*): The username of a non-administrator user account on the device. - **password** (*Required*): The password for the user specified. - **doorbell_events** (*Optional*): Setting this to `true` this will register a callback URL with the device so that events can be published to the event bus when the doorbell rings. +- **hass_url_override** (*Optional*): If your DoorBird cannot connect to the machine running Home Assistant because you are using dynamic DNS or some other HTTP configuration, specify the LAN IP of the machine here to force a LAN connection.Enabling `doorbell_events` will delete all other registered push notification services with the device every time Home Assistant starts. This will not affect notifications delivered by the DoorBird mobile app. diff --git a/source/_components/fan.xiaomi_miio.markdown b/source/_components/fan.xiaomi_miio.markdown index 82e95feddf9..8fc9da32112 100644 --- a/source/_components/fan.xiaomi_miio.markdown +++ b/source/_components/fan.xiaomi_miio.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Xiaomi Air Purifier" -description: "Instructions on how to integrate your Xiaomi Air Purifier within Home Assistant." +description: "Instructions on how to integrate your Xiaomi Air Purifier and Xiaomi Air Humidifier within Home Assistant." date: 2017-10-13 12:35 sidebar: true comments: false @@ -13,35 +13,161 @@ ha_version: 0.57 ha_iot_class: "Local Polling" --- -The `xiaomi_miio` fan platform allows you to control the Xiaomi Air Purifier 2, Air Purifier 2S and Air Purifier Pro. +The `xiaomi_miio` fan platform allows you to control the Xiaomi Air Purifier and Xiaomi Air Humidifier. -Currently, the supported features are: +## Features -* On, Off +### Air Purifier 2 et al. + +* Power (on, off) * Operation modes (auto, silent, favorite, idle) * Buzzer (on, off) * Child lock (on, off) * LED (on, off), LED brightness (bright, dim, off) * Favorite Level (0...16) * Attributes - - power - - aqi - - average_aqi - - humidity + - model - temperature + - humidity + - aqi - mode + - filter_hours_used + - filter_life_remaining - favorite_level + - child_lock - led + - motor_speed + - average_aqi + - purify_volume + - learn_mode + - sleep_time + - sleep_mode_learn_count + - extra_features + - turbo_mode_supported + - auto_detect + - use_time + - button_pressed + - buzzer - led_brightness + - sleep_mode + +### Air Purifier Pro (zhimi.airpurifier.v6) + +* Power (on, off) +* Operation modes (auto, silent, favorite) +* Child lock (on, off) +* LED (on, off) +* Favorite Level (0...16) +* Attributes + - model + - temperature + - humidity + - aqi + - mode + - filter_hours_used + - filter_life_remaining + - favorite_level + - child_lock + - led + - motor_speed + - average_aqi + - purify_volume + - learn_mode + - sleep_time + - sleep_mode_learn_count + - extra_features + - turbo_mode_supported + - auto_detect + - use_time + - button_pressed + - filter_rfid_product_id + - filter_rfid_tag + - filter_type + - illuminance + - motor2_speed + - volume + +### Air Purifier V3 (zhimi.airpurifier.v3) + +* Power (on, off) +* Operation modes (auto, silent, favorite, idle, medium, high, strong) +* Child lock (on, off) +* LED (on, off) +* Attributes + - model + - aqi + - mode + - led - buzzer - child_lock - - purify_volume - - filter_life_remaining + - illuminance - filter_hours_used + - filter_life_remaining - motor_speed + - average_aqi + - volume + - motor2_speed + - filter_rfid_product_id + - filter_rfid_tag + - filter_type + - purify_volume + - learn_mode + - sleep_time + - sleep_mode_learn_count + - extra_features + - auto_detect + - use_time + - button_pressed +### Air Humidifier (zhimi.humidifier.v1) -Please follow the instructions on [Retrieving the Access Token](/components/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token. +* On, Off +* Operation modes (silent, medium, high) +* Buzzer (on, off) +* Child lock (on, off) +* LED brightness (bright, dim, off) +* Target humidity (30, 40, 50, 60, 70, 80) +* Attributes + - model + - temperature + - humidity + - mode + - buzzer + - child_lock + - trans_level + - target_humidity + - led_brightness + - button_pressed + - use_time + - hardware_version + +### Air Humidifier CA (zhimi.humidifier.ca1) + +* On, Off +* Operation modes (silent, medium, high, auto) +* Buzzer (on, off) +* Child lock (on, off) +* LED brightness (bright, dim, off) +* Target humidity (30, 40, 50, 60, 70, 80) +* Dry mode (on, off) +* Attributes + - model + - temperature + - humidity + - mode + - buzzer + - child_lock + - trans_level + - target_humidity + - led_brightness + - button_pressed + - use_time + - hardware_version + - speed + - depth + - dry + +Please follow the instructions on [Retrieving the Access Token](/components/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token to use in the `configuration.yaml` file. To add a Xiaomi Air Purifier to your installation, add the following to your `configuration.yaml` file: @@ -67,6 +193,10 @@ name: required: false type: string default: Xiaomi Air Purifier +model: + description: The model of your device. + required: false + type: string {% endconfiguration %} ## {% linkable_title Platform Services %} @@ -80,37 +210,37 @@ Set the fan speed/operation mode. | `entity_id` | yes | Only act on a specific air purifier. Else targets all. | | `speed` | no | Fan speed. Valid values are 'Auto', 'Silent', 'Favorite' and 'Idle' | -### {% linkable_title Service `fan.xiaomi_miio_set_buzzer_on` %} +### {% linkable_title Service `fan.xiaomi_miio_set_buzzer_on` %} (Air Purifier Pro excluded) Turn the buzzer on. -| Service data attribute | Optional | Description | -|---------------------------|----------|-------------------------------------------------------| -| `entity_id` | yes | Only act on a specific air purifier. Else targets all. | +| Service data attribute | Optional | Description | +|---------------------------|----------|---------------------------------------------------------| +| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | -### {% linkable_title Service `fan.xiaomi_miio_set_buzzer_off` %} +### {% linkable_title Service `fan.xiaomi_miio_set_buzzer_off` %} (Air Purifier Pro excluded) Turn the buzzer off. | Service data attribute | Optional | Description | |---------------------------|----------|---------------------------------------------------------| -| `entity_id` | yes | Only act on a specific air purifier. Else targets all. | +| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | -### {% linkable_title Service `fan.xiaomi_miio_set_led_on` %} +### {% linkable_title Service `fan.xiaomi_miio_set_led_on` %} (Air Purifier only) Turn the led on. | Service data attribute | Optional | Description | |---------------------------|----------|---------------------------------------------------------| -| `entity_id` | yes | Only act on a specific air purifier. Else targets all. | +| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | -### {% linkable_title Service `fan.xiaomi_miio_set_led_off` %} +### {% linkable_title Service `fan.xiaomi_miio_set_led_off` %} (Air Purifier only) Turn the led off. | Service data attribute | Optional | Description | |---------------------------|----------|---------------------------------------------------------| -| `entity_id` | yes | Only act on a specific air purifier. Else targets all. | +| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | ### {% linkable_title Service `fan.xiaomi_miio_set_child_lock_on` %} @@ -118,7 +248,7 @@ Turn the child lock on. | Service data attribute | Optional | Description | |---------------------------|----------|---------------------------------------------------------| -| `entity_id` | yes | Only act on a specific air purifier. Else targets all. | +| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | ### {% linkable_title Service `fan.xiaomi_miio_set_child_lock_off` %} @@ -126,23 +256,105 @@ Turn the child lock off. | Service data attribute | Optional | Description | |---------------------------|----------|---------------------------------------------------------| -| `entity_id` | yes | Only act on a specific air purifier. Else targets all. | +| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | -### {% linkable_title Service `fan.xiaomi_miio_set_led_brightness` %} +### {% linkable_title Service `fan.xiaomi_miio_set_led_brightness` %} (Air Purifier Pro excluded) Set the led brightness. Supported values are 0 (Bright), 1 (Dim), 2 (Off). | Service data attribute | Optional | Description | |---------------------------|----------|---------------------------------------------------------| -| `entity_id` | yes | Only act on a specific air purifier. Else targets all. | +| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | | `brightness` | no | Brightness, between 0 and 2. | -### {% linkable_title Service `fan.xiaomi_miio_set_favorite_level` %} +### {% linkable_title Service `fan.xiaomi_miio_set_favorite_level` %} (Air Purifier only) Set the favorite level of the operation mode "favorite". | Service data attribute | Optional | Description | |---------------------------|----------|---------------------------------------------------------| -| `entity_id` | yes | Only act on a specific air purifier. Else targets all. | +| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | | `level` | no | Level, between 0 and 16. | +### {% linkable_title Service `fan.xiaomi_miio_set_auto_detect_on` %} (Air Purifier Pro only) + +Turn the auto detect on. + +| Service data attribute | Optional | Description | +|---------------------------|----------|---------------------------------------------------------| +| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | + +### {% linkable_title Service `fan.xiaomi_miio_set_auto_detect_off` %} (Air Purifier Pro only) + +Turn the auto detect off. + +| Service data attribute | Optional | Description | +|---------------------------|----------|---------------------------------------------------------| +| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | + +### {% linkable_title Service `fan.xiaomi_miio_set_learn_mode_on` %} (Air Purifier 2 only) + +Turn the learn mode on. + +| Service data attribute | Optional | Description | +|---------------------------|----------|---------------------------------------------------------| +| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | + +### {% linkable_title Service `fan.xiaomi_miio_set_learn_mode_off` %} (Air Purifier 2 only) + +Turn the learn mode off. + +| Service data attribute | Optional | Description | +|---------------------------|----------|---------------------------------------------------------| +| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | + +### {% linkable_title Service `fan.xiaomi_miio_set_volume` %} (Air Purifier Pro only) + +Set the sound volume. + +| Service data attribute | Optional | Description | +|---------------------------|----------|---------------------------------------------------------| +| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | +| `volume` | no | Volume, between 0 and 100. | + +### {% linkable_title Service `fan.xiaomi_miio_reset_filter` %} (Air Purifier 2 only) + +Reset the filter lifetime and usage. + +| Service data attribute | Optional | Description | +|---------------------------|----------|---------------------------------------------------------| +| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | + +### {% linkable_title Service `fan.xiaomi_miio_set_extra_features` %} (Air Purifier only) + +Set the extra features. + +| Service data attribute | Optional | Description | +|---------------------------|----------|---------------------------------------------------------| +| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | +| `features` | no | Integer, known values are 0 and 1. | + +### {% linkable_title Service `fan.xiaomi_miio_set_target_humidity` %} (Air Humidifier only) + +Set the target humidity. + +| Service data attribute | Optional | Description | +|---------------------------|----------|-----------------------------------------------------------------| +| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | +| `humidity` | no | Target humidity. Allowed values are 30, 40, 50, 60, 70 and 80 | + +### {% linkable_title Service `fan.xiaomi_miio_set_dry_on` %} (Air Humidifier CA only) + +Turn the dry mode on. + +| Service data attribute | Optional | Description | +|---------------------------|----------|---------------------------------------------------------| +| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | + +### {% linkable_title Service `fan.xiaomi_miio_set_dry_off` %} (Air Humidifier CA only) + +Turn the dry mode off. + +| Service data attribute | Optional | Description | +|---------------------------|----------|---------------------------------------------------------| +| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. | diff --git a/source/_components/folder_watcher.markdown b/source/_components/folder_watcher.markdown new file mode 100644 index 00000000000..ba97e44c636 --- /dev/null +++ b/source/_components/folder_watcher.markdown @@ -0,0 +1,75 @@ +--- +layout: page +title: "folder watcher" +description: "Component for monitoring changes within the filesystem." +date: 2018-03-11 14:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: System Monitor +ha_iot_class: "Local Polling" +ha_release: 0.67 +--- + +This component adds [Watchdog](https://pythonhosted.org/watchdog/) file system monitoring, publishing events on the Home-Assistant bus on the creation/deletion/modification of files. + +To configure the `folder_watcher` component add to you `configuration.yaml` file: + +```yaml +{% raw %} +folder_watcher: + - folder: /config +{% endraw %} +``` + +{% configuration %} +folder: + description: The folder path + required: true + type: string +patterns: + description: Pattern matching to apply + required: false + default: "*" + type: string +{% endconfiguration %} + +## Patterns + +Pattern matching using [fnmatch](https://docs.python.org/3.6/library/fnmatch.html) can be used to limit filesystem monitoring to only files which match the configured patterns. The following example shows the configuration required to only monitor filetypes `.yaml` and `.txt`. + +```yaml +{% raw %} +folder_watcher: + - folder: /config + patterns: + - '*.yaml' + - '*.txt' +{% raw %} +``` + +## Automations + +Automations can be triggered on filesystem event data using a data_template. The following automation will send a notification with the name and folder of new files added to that folder: + +```yaml +{% raw %} +- action: + - data_template: + message: 'Created {{trigger.event.data.file}} in {{trigger.event.data.folder}}' + title: New image captured! + data: + file: "{{trigger.event.data.path}}" + service: notify.pushbullet + alias: New file alert + condition: [] + id: '1520092824697' + trigger: + - event_data: {"event_type":"created"} + event_type: folder_watcher + platform: event +{% endraw %} +``` + diff --git a/source/_components/freedns.markdown b/source/_components/freedns.markdown new file mode 100644 index 00000000000..960d1411d99 --- /dev/null +++ b/source/_components/freedns.markdown @@ -0,0 +1,49 @@ +--- +layout: page +title: "freedns.afraid.org" +description: "Keep your DNS record up to date with FreeDNS." +date: 2018-03-27 21:30 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Utility +ha_release: 0.67 +--- + +With the `freedns` component you can keep your [FreeDNS](https://freedns.afraid.org) record up to date. + +## {% linkable_title Configuration %} + +You need to determine your update URL or your access token. + +1. Head over to the [FreeDNS](https://freedns.afraid.org) website and login to your account. +2. Select the menu "Dynamic DNS" +3. You should now see your update candiates in a table at the bottom of the page. +4. Copy the link target of the "Direct URL". +5. The access token is the part at the end of the link: `https://freedns.afraid.org/dynamic/update.php?YOUR_UPDATE_TOKEN` +6. Either put the token as `access_token` _or_ the whole URL into the `url` attribute. + +To use the component in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +freedns: + access_token: YOUR_TOKEN +``` + +{% configuration %} + access_token: + description: Your access token. This is exclusive to `url`. + required: false + type: string + url: + description: The full update URL. This is exclusive to `access_token`. + required: false + type: string + update_interval: + description: How often to call the update service. + required: false + type: time period + default: 10 minutes +{% endconfiguration %} diff --git a/source/_components/light.mqtt_json.markdown b/source/_components/light.mqtt_json.markdown index 6313b71e3dd..94557772851 100644 --- a/source/_components/light.mqtt_json.markdown +++ b/source/_components/light.mqtt_json.markdown @@ -228,3 +228,5 @@ Home Assistant will then convert its 8bit value in the message to and from the d - [MQTT JSON Light](https://github.com/mertenats/Open-Home-Automation/tree/master/ha_mqtt_rgbw_light_with_discovery) is another implementation for ESP8266 including [MQTT discovery](/docs/mqtt/discovery/). - [esphomelib](https://github.com/OttoWinter/esphomelib) is a library for ESP8266 and ESP32 boards that has many of Home Assistant's MQTT features (like [discovery](/docs/mqtt/discovery/)) pre-implemented and provides high-level abstractions for components such as lights or sensors. + +- [AiLight](https://github.com/stelgenhof/AiLight) is a custom firmware for the Ai-Thinker (and equivalent) RGBW WiFi light bulbs that has an ESP8266 onboard and controlled by the MY9291 LED driver. It implements the [MQTT JSON light](/components/light.mqtt_json/) platform and supports ON/OFF, RGBW colours, brightness, colour temperature, flashing and transitions. Also it includes [MQTT Auto Discovery](/docs/mqtt/discovery/)) and the MQTT Last Will and Testament is enabled as well. \ No newline at end of file diff --git a/source/_components/light.nanoleaf_aurora.markdown b/source/_components/light.nanoleaf_aurora.markdown new file mode 100644 index 00000000000..074bd1c77f1 --- /dev/null +++ b/source/_components/light.nanoleaf_aurora.markdown @@ -0,0 +1,52 @@ +--- +layout: page +title: "Nanoleaf Aurora Light Panel" +description: "Instructions how to integrate Nanoleaf Aurora Light Panels into Home Assistant." +date: 2018-01-04 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: nanoleaf_aurora_light.png +ha_category: Light +ha_iot_class: "Local Polling" +featured: false +ha_release: 0.67 +--- + +### {% linkable_title Configuration Sample %} + +To enable the Aurora lights, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +light: + - platform: aurora + host: 192.168.1.10 + token: xxxxxxxxxxxxxxxxxxxxx +``` + +{% configuration %} +host: + description: IP address or host-name of the device, e.g., 192.168.1.10. + required: true + type: string +token: + description: The *auth* token that you get via *POST* to */api/v1/new* + required: true + type: string +name: + description: Name of the component, make this unique if you have multiple Light Panels + required: false + type: string + default: Aurora +{% endconfiguration %} + +### {% linkable_title Getting The Auth Token %} + +1. Make sure that your Nanoleaf Aurora Panel is fully patched (as of the time of writing the latest version was 2.2.0) +2. Hold down the *ON* button on the Panel for 5 seconds; the LED will start flashing +3. Issue a *POST* request to the API endpoint, e.g., via `$ curl -i -X POST http://192.168.1.155:16021/api/v1/new` +4. The output should include the auth token like *{"auth_token":"xxxxxxxxxxxxxxxxxxxxx"}*, copy the resulting token into your configuration + +If you get a 403 Forbidden message, you probably did not press the *ON* button long enough. The time-frame to get a valid token is only 30 seconds, so you have to be quick to issue the curl request. diff --git a/source/_components/light.yeelight.markdown b/source/_components/light.yeelight.markdown index b2173097532..8ee047b47f5 100644 --- a/source/_components/light.yeelight.markdown +++ b/source/_components/light.yeelight.markdown @@ -35,7 +35,7 @@ light: Configuration variables: -- **ip** (*Required*): IP(s) of your wifi bulbs +- **ip** (*Required*): IP(s) of your Wifi bulbs - **name** (*Optional*): A friendly name for the device. - **transition** (*Optional*, default 350): Smooth transitions over time (in ms). - **use_music_mode** (*Optional*, default False): Enable music mode. @@ -63,4 +63,17 @@ This component is tested to work with the following models. If you have a differ - **YLDD02YL**: Lightstrip (Color) - **MJCTD01YL**: Xiaomi Mijia Bedside Lamp - WIFI Version! - **MJTD01YL**: Xiaomi Mijia Smart LED Desk Lamp (autodiscovery isn't possible because the device doesn't support mDNS due to the small amount of RAM) -- **YLXD02YL**: Yeelight Ceiling Light 4 (Jiaoyue 650) +- **YLXD02YL**: Yeelight Ceiling Light 4 (Jiaoyue 650) +- **YLXD01YL**: Yeelight Smart LED Ceiling Light - Youth Version + + +## {% linkable_title Platform Services %} + +### {% linkable_title Service `light.yeelight_set_mode` %} + +Set a operation mode. + +| Service data attribute | Optional | Description | +|---------------------------|----------|---------------------------------------------------------------------------------------------| +| `entity_id` | yes | Only act on a specific yeelight. Else targets all. | +| `mode` | no | Operation mode. Valid values are 'last', 'normal', 'rgb', 'hsv', 'color_flow', 'moonlight'. | diff --git a/source/_components/lock.homematic.markdown b/source/_components/lock.homematic.markdown index cf51b178481..d536312e2ea 100644 --- a/source/_components/lock.homematic.markdown +++ b/source/_components/lock.homematic.markdown @@ -1,8 +1,8 @@ --- layout: page -title: "Homematic Lock" -description: "Instructions on how to integrate Homematic locks within Home Assistant." -date: 2016-06-28 08:30 +title: "Homematic Lock (KeyMatic)" +description: "Instructions how to integrate Homematic locks (KeyMatic) within Home Assistant." +date: 2018-01-28 03:00 sidebar: true comments: false sharing: true @@ -13,7 +13,6 @@ ha_release: 0.66 ha_iot_class: "Local Push" --- +The `homematic` lock platform lets you observe and control the state of the HomeMatic [Homematic](http://www.homematic.com/) KeyMatic lock through Home Assistant. -The `homematic` lock platform lets you control [Homematic](http://www.homematic.com/) locks through Home Assistant. - -Devices will be configured automatically. Please refer to the [component](/components/homematic/) configuration on how to setup Homematic. \ No newline at end of file +Devices will be configured automatically. Please refer to the [component](/components/homematic/) configuration on how to setup Homematic. diff --git a/source/_components/mercedesme.markdown b/source/_components/mercedesme.markdown index 82f8679f458..db5774c5183 100644 --- a/source/_components/mercedesme.markdown +++ b/source/_components/mercedesme.markdown @@ -23,29 +23,5 @@ This component provides the following platforms: - Device tracker: To track location of your car.
- The component can integrate cars from European and African markets only. -
- -To use Mercedes me in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -mercedesme: - username: YOUR_E_MAIL_ADDRESS - password: YOUR_PASSWORD -``` - -{% configuration %} -username: - description: The email address associated with your Mercedes me account. - required: true - type: string -password: - description: The password for your given Mercedes me account. - required: true - type: string -{% endconfiguration %} - --The requirement `lxml` has to be [installed](http://lxml.de/installation.html) manually `pip install lxml` on some devices. + The component was removed. The vendor disabled the API endpoint and a new API is not available currently.
diff --git a/source/_components/notify.mastodon.markdown b/source/_components/notify.mastodon.markdown new file mode 100644 index 00000000000..2e8327f4c26 --- /dev/null +++ b/source/_components/notify.mastodon.markdown @@ -0,0 +1,52 @@ +--- +layout: page +title: "Mastodon" +description: "Instructions on how to add Instapush notifications to Home Assistant." +date: 2018-03-25 18:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: mastodon.png +ha_category: Notifications +ha_release: 0.67 +--- + + +The `mastodon` platform uses [MAstodon](https://joinmastodon.org/) to delivery notifications from Home Assistant. + +Go to **Preferences** in the Mastodon web interface, then to **Development** and create a new application. + +To add Mastodon to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +notify: + - name: NOTIFIER_NAME + platform: mastodon + access_token: !secret mastodon_access_token + client_id: !secret mastodon_client_id + client_secret: !secret mastodon_client_secret +``` + +{% configuration %} +access_token: + description: Your Mastodon access token. + required: true + type: string +client_id: + description: Your Mastodon client ID + required: true + type: string +client_secret: + description: Your Mastodon client secret. + required: true + type: string +base_url: + description: URL of the Mastodon instance to use. + required: false + type: string + default: https://mastodon.social +{% endconfiguration %} + +To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_components/notify.rest.markdown b/source/_components/notify.rest.markdown index c20e4bc2f51..4d1d83c5813 100644 --- a/source/_components/notify.rest.markdown +++ b/source/_components/notify.rest.markdown @@ -30,6 +30,7 @@ Configuration variables: - **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. - **resource** (*Required*): The resource or endpoint that will receive the value. - **method** (*Optional*): The method of the request. Default is GET. +- **headers** (*Optional*): The headers for the request. - **message_param_name** (*Optional*): Parameter name for the message. Defaults to `message`. - **title_param_name** (*Optional*): Parameter name for the title. Defaults to none. - **target_param_name** (*Optional*): Parameter name for the target. Defaults to none. diff --git a/source/_components/pilight.markdown b/source/_components/pilight.markdown index ab841bbe834..2e7e1b0150b 100644 --- a/source/_components/pilight.markdown +++ b/source/_components/pilight.markdown @@ -24,14 +24,12 @@ To integrate pilight into Home Assistant, add the following section to your `con ```yaml # Example configuration.yaml entry pilight: - host: 127.0.0.1 - port: 5000 ``` Configuration variables: -- **host** (*Required*): The IP address of the computer running the pilight-daemon, e.g., 192.168.1.32. -- **port** (*Required*): The network port to connect to. The usual port is [5000](https://manual.pilight.org/development/api.html). +- **host** (*Optional*): The IP address of the computer running the pilight-daemon, e.g., 192.168.1.32. +- **port** (*Optional*): The network port to connect to. The usual port is [5001](https://manual.pilight.org/development/api.html). - **send_delay** (*Optional*): You can define a send delay as a fraction of seconds if you experience transmission problems when you try to switch multiple switches at once. This can happen when you use a [pilight USB Nano](https://github.com/pilight/pilight-usb-nano) as hardware and switches a whole group of multiple switches on or off. Tested values are between 0.3 and 0.8 seconds depending on the hardware. - **whitelist** (*Optional*): You can define a whitelist to prevent that too many unwanted RF codes (e.g., the neighbors weather station) are put on your HA event bus. All defined subsections have to be matched. A subsection is matched if one of the items are true. diff --git a/source/_components/qwikswitch.markdown b/source/_components/qwikswitch.markdown index cb4d6f3695c..516658404a6 100644 --- a/source/_components/qwikswitch.markdown +++ b/source/_components/qwikswitch.markdown @@ -13,12 +13,9 @@ featured: false ha_release: "0.20" --- +The `qwikswitch` component is the main component to integrate various [QwikSwitch](http://www.qwikswitch.co.za/) devices with Home Assistant. The integration requires the QSUSB Modem device and connects to the QS Mobile application. -The `qwikswitch` component is the main component to integrate various [QwikSwitch](http://www.qwikswitch.co.za/) devices with Home Assistant. - -Loading the `qwikswitch` component automatically adds all devices from the QS Mobile application. QS Mobile controls the QSUSB Modem device. - -Currently QwikSwitch relays and LED dimmers are supported (tested). QwikSwitch relay devices can be [switches](/components/switch.qwikswitch/) or [lights](/components/light.qwikswitch/) in Home-Assistant. If the device name in the QSUSB app ends with ` Switch` it will be created as a switch, otherwise as a light. +The `qwikswitch` component discovers all devices from QS Mobile. Currently, Relays and LED dimmers are discovered in Home Assistant. Relay devices are [lights](/components/light.qwikswitch/) by default, and can be configured as [switches](/components/switch.qwikswitch/). Example configuration: @@ -31,28 +28,45 @@ qwikswitch: Configuration variables: - **url** (*Required*): The URL including the port of your QwikSwitch hub. -- **dimmer_adjust** (*Optional*): A decimal value to adjust the brightness of the dimmer exponentially. Increasing this value allows dimmers that reaches full brightness with low values in QS Mobile to appear more linear in Home Assistant. Recommended values between 1 and 2 and the default is 1. -- **button_events** (*Optional*): A comma separated list of button types that will generate events. Details below. +- **dimmer_adjust** (*Optional*): A decimal value to adjust the brightness of the dimmer exponentially. Increasing this value allows dimmers that reach full brightness with low values in QS Mobile to appear more linear in Home Assistant. Recommended values between 1 and 2 and the default is 1. +- **button_events** (*Optional*): A comma-separated list of button types that will generate events. See [QwikSwitch Events] for detail. +- **switches** (*Optional*): A list of device QS_id's that should be switches, and not lights (i.e. `['@0dev01', '@0dev02']`) +- **sensors** (*Optional*): A dictionary of sensors. In the format of {entity_id: QS_id}. (i.e. `{door_sensor: '@0dev03'}`) -### {% linkable_title QwikSwitch Buttons %} +### {% linkable_title QwikSwitch Events %} -QwikSwitch devices (i.e. transmitter buttons) will fire events on the Home Assistant bus. These events can then be used as triggers for any `automation` action, as follows: +QwikSwitch devices (i.e., transmitter buttons) will fire events on the Home Assistant bus. These events can then be used as triggers for any `automation` action, as follows: ```yaml automation: - - alias: Action - Respond to button press + - alias: Action - Respond to A button press trigger: platform: event event_type: qwikswitch.button.@12df34 ``` -`event_type` names should be in the format **qwikswitch.button.@__ID__**. where **@__ID__** will be captured in the Home Assistant log when pressing the button. Alternatively, you can also get the device ID from the QS Mobile application or using the listen API call by browsing to `http://127.0.0.1:2020/&listen` and then pressing the button. +`event_type` names should be in the format **qwikswitch.button.@_QS_id_**. where **@_QS_id_** will be captured in the Home Assistant log when pressing the button. Alternatively, you can also get the device ID from the QS Mobile application or by using the listen API call by browsing to `http://127.0.0.1:2020/&listen` and then pressing the button. + +The full packet from the QSUSB API will be passed as `data` By default events will be fired if the value in the command (cmd) field of the listen packet equals: - `TOGGLE` - Normal QwikSwitch Transmitter button - `SCENE EXE` - QwikSwitch Scene Transmitter buttons - `LEVEL` - QwikSwitch OFF Transmitter buttons -The list of recognized commands can be extended for Keyfobs, door sensors, and PIR transmitters with the **button_events** configuration option. **button_events** contain a comma separated list of commands that will fire Home Assistant events. By default it is: TOGGLE,SCENE EXE,LEVEL. +The list of recognized commands can be extended for Keyfobs, door sensors, and PIR transmitters with the **button_events** configuration option. **button_events** can be a list or comma separated list of additional commands that will fire Home Assistant events. By default, it is: TOGGLE,SCENE EXE,LEVEL. On some QS Mobile servers button events are only generated for switches added to the QS Mobile application, so it might be best to test button presses through the `/&listen` API + +### {% linkable_title Qwikswitch Sensors %} + +Some Qwikswith devices might support more than one channel per device (i.e. ipmod). The channel can be specified by appending a number to the QS_id. Example sensors configuration: + +```yaml +qwikswitch: + ... + sensors: + door_sensor: '@0dev01' + door2_sensor: '@0dev02.1' + door3_sensor: '@0dev02.2' +``` diff --git a/source/_components/sensor.sql.md b/source/_components/sensor.sql.md index 28ec3797881..e676ca9d43f 100644 --- a/source/_components/sensor.sql.md +++ b/source/_components/sensor.sql.md @@ -37,7 +37,7 @@ sensor: db_url: description: The URL which points to your database. See [supported engines](/components/recorder/#custom-database-engines). required: false - default: Defaults to the recorder db_url. + default: "Defaults to the default recorder `db_url` (not the current `db_url` of recorder)." type: string queries: description: List of your queries. diff --git a/source/_components/sensor.waze_travel_time.markdown b/source/_components/sensor.waze_travel_time.markdown new file mode 100644 index 00000000000..2440930b9f1 --- /dev/null +++ b/source/_components/sensor.waze_travel_time.markdown @@ -0,0 +1,51 @@ +--- +layout: page +title: "Waze Travel Time" +description: "Instructions on how to add Waze travel time to Home Assistant." +date: 2018-01-23 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: waze.png +ha_category: Transport +ha_iot_class: "Cloud Polling" +ha_release: 0.67 +--- + +The `waze_travel_time` sensor provides travel time from the [Waze](https://www.waze.com/). + +Unit system is set to metric system. + +## {% linkable_title Configuration %} + +To use this sensor in your installation, add the following `abode` section to your `configuration.yaml` file: + +```yaml +# Example entry for configuration.yaml +sensor: + - platform: waze_travel_time + origin: Montréal, QC + destination: Québec, QC + region: 'US' +``` + +{% configuration %} +origin: + description: Enter the starting address or the GPS coordinates of the location (GPS coordinates has to be separated by a comma). + required: true + type: string +destination: + description: Enter the destination address or the GPS coordinates of the location (GPS coordinates has to be separated by a comma). + required: true + type: string +region: + description: Choose one of the available regions from 'EU', 'US', 'NA' (equivalent to 'US') or 'IL'. + required: true + type: string +name: + description: A name to display on the sensor. + required: false + default: "Waze Travel Time" + type: string +{% endconfiguration %} diff --git a/source/_components/sensor.xiaomi_miio.markdown b/source/_components/sensor.xiaomi_miio.markdown index 3e30131fff3..65d1f3780fd 100644 --- a/source/_components/sensor.xiaomi_miio.markdown +++ b/source/_components/sensor.xiaomi_miio.markdown @@ -29,7 +29,6 @@ Please follow the instructions on [Retrieving the Access Token](/components/vacu To add a Xiaomi Mi Air Quality Monitor to your installation, add the following to your `configuration.yaml` file: ```yaml -sensor: # Example configuration.yaml entry sensor: - platform: xiaomi_miio diff --git a/source/_components/switch.amcrest.markdown b/source/_components/switch.amcrest.markdown new file mode 100644 index 00000000000..d9ed4564b22 --- /dev/null +++ b/source/_components/switch.amcrest.markdown @@ -0,0 +1,18 @@ +--- +layout: page +title: "Amcrest IP Camera Settings" +description: "Instructions on how to integrate settings for Amcrest IP Camera as switches within Home Assistant." +date: 2018-03-08 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: amcrest.png +ha_category: Switch +ha_release: 0.67 +ha_iot_class: "Local Polling" +--- + +The `amcrest` switch platform lets you control settings of [Amcrest IP Camera](https://home-assistant.io/components/camera.amcrest/) through Home Assistant. + +Switches will be configured automatically. Please refer to the [component](/components/amcrest/) configuration on how to setup. diff --git a/source/_components/switch.tahoma.markdown b/source/_components/switch.tahoma.markdown new file mode 100644 index 00000000000..a7c3338fee4 --- /dev/null +++ b/source/_components/switch.tahoma.markdown @@ -0,0 +1,17 @@ +--- +layout: page +title: "Tahoma Switch" +description: "Instructions on how to integrate Tahoma switches into Home Assistant." +date: 2017-07-18 12:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: tahoma.png +ha_category: Sensor +ha_release: 0.59 +--- + +The `tahoma` switch platform lets you see switches added to your Tahoma Box in Home Assistant. + +Switches will be added automatically. Please refer to the [component](/components/tahoma/) configuration on how to setup Tahoma. diff --git a/source/_components/switch.telnet.markdown b/source/_components/switch.telnet.markdown index 858a0b21b6f..ef1345cd5bf 100644 --- a/source/_components/switch.telnet.markdown +++ b/source/_components/switch.telnet.markdown @@ -39,6 +39,6 @@ Configuration variables: - **port** (*Optional*): Port to connect to. Default is 23 if not defined. - **command_on** (*Required*): Command to turn device on. - **command_off** (*Required*): Command to turn device off. - - **command_state** (*Required*): Command to determine the state of the switch. If not defined the switch will assume successful state changes. - - **value_template** (*Required*): The template evaluating to `true` will indicate that the switch is on. + - **command_state** (*Optional*): Command to determine the state of the switch. If not defined the switch will assume successful state changes. + - **value_template** (*Optional*): The template evaluating to `true` will indicate that the switch is on. - **name** (*Optional*): The name used to display the switch in the frontend. diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index b8752c54ac5..6b3c34b0a0f 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -68,6 +68,7 @@ Home Assistant adds extensions to allow templates to access all of the current s - `states.sensor.temperature` returns the state object for `sensor.temperature`. - `states('device_tracker.paulus')` will return the state string (not the object) of the given entity or `unknown` if it doesn't exist. - `is_state('device_tracker.paulus', 'home')` will test if the given entity is specified state. +- `state_attr('device_tracker.paulus', 'battery')` will return the value of the attribute or None if it doesn't exist. - `is_state_attr('device_tracker.paulus', 'battery', 40)` will test if the given entity is specified state. - `now()` will be rendered as current time in your time zone. - For specific values: `now().second`, `now().minute`, `now().hour`, `now().day`, `now().month`, `now().year`, `now().weekday()` and `now().isoweekday()` @@ -85,6 +86,10 @@ Home Assistant adds extensions to allow templates to access all of the current s - Filter `timestamp_custom(format_string, local_boolean)` will convert an UNIX timestamp to a custom format, the use of a local timestamp is default, supporting [Python format options](https://docs.python.org/3/library/time.html#time.strftime). - Filter `max` will obtain the largest item in a sequence. - Filter `min` will obtain the smallest item in a sequence. +- Filter `regex_match(string, find, ignorecase=FALSE)` will match the find expression at the beginning of the string using regex. +- Filter `regex_search(string, find, ignorecase=FALSE)` will match the find expression anywhere in the string using regex. +- Filter `regex_replace(string, find='', replace='', ignorecase=False)` will replace the find expression with the replace string using regex. +- Filter `regex_findall_index(string, find='', index=0, ignorecase=False)` will find all regex matches of find in string and return the match at index (findall returns an array of matches). [strp-format]: https://docs.python.org/3.6/library/datetime.html#strftime-and-strptime-behavior @@ -114,7 +119,7 @@ The next two statements result in same value if state exists. The second one wil ### {% linkable_title Attributes %} -Print an attribute if state is defined +Print an attribute if state is defined. Both will return the same thing but the last one you can specify entity_id from a variable. ```text {% raw %}{% if states.device_tracker.paulus %} @@ -124,6 +129,18 @@ Print an attribute if state is defined {% endif %}{% endraw %} ``` +With strings + +```text +{% raw %}{% set tracker_name = "paulus"%} + +{% if states("device_tracker." + tracker_name) != "unknown" %} + {{ state_attr("device_tracker." + tracker_name, "battery")}} +{% else %} + ?? +{% endif %}{% endraw %} +``` + ### {% linkable_title Sensor states %} Print out a list of all the sensor states. diff --git a/source/_docs/ecosystem/appdaemon/api.markdown b/source/_docs/ecosystem/appdaemon/api.markdown index 2f8e38c1629..923505b262a 100755 --- a/source/_docs/ecosystem/appdaemon/api.markdown +++ b/source/_docs/ecosystem/appdaemon/api.markdown @@ -1422,7 +1422,7 @@ Name of the event to subscribe to. Can be a standard Home Assistant event such a One or more keyword value pairs representing App specific parameters to supply to the callback. If the keywords match values within the event data, they will act as filters, meaning that if they don't match the values, the callback will not fire. -As an example of this, a Minimote controller when activated will generate an event called `zwave.scene_activated`, along with 2 pieces of data that are specific to the event - `entity_id` and `scene`. If you include keyword values for either of those, the values supplied to the `listen_event()1 call must match the values in the event or it will not fire. If the keywords do not match any of the data in the event they are simply ignored. +As an example of this, a Minimote controller when activated will generate an event called `zwave.scene_activated`, along with 2 pieces of data that are specific to the event - `entity_id` and `scene`. If you include keyword values for either of those, the values supplied to the `listen_event()` call must match the values in the event or it will not fire. If the keywords do not match any of the data in the event they are simply ignored. Filtering will work with any event type, but it will be necessary to figure out the data associated with the event to understand what values can be filtered on. This can be achieved by examining Home Assistant's logfiles when the event fires. diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index 60974c428b0..aaa295dc4ba 100644 --- a/source/_docs/mqtt/discovery.markdown +++ b/source/_docs/mqtt/discovery.markdown @@ -15,6 +15,7 @@ The discovery of MQTT devices will enable one to use MQTT devices with only mini Supported by MQTT discovery: - [Binary sensors](/components/binary_sensor.mqtt/) +- [Cameras](/components/camera.mqtt/) - [Covers](/components/cover.mqtt/) - [Fans](/components/fan.mqtt/) - [Lights](/components/light.mqtt/) diff --git a/source/_docs/tools/dev-tools.markdown b/source/_docs/tools/dev-tools.markdown index c9cc6a4c281..99ce3e7cf7e 100644 --- a/source/_docs/tools/dev-tools.markdown +++ b/source/_docs/tools/dev-tools.markdown @@ -94,7 +94,8 @@ For more information about jinja2, visit [jinja2 documentation](http://jinja.poc {% linkable_title mqtt %} -This section is only visible if the MQTT is configured. To configure MQTT, add `mqtt:` to the `configuration.yaml` file. For more information, refer to [mqtt](/components/mqtt/) +This section is only visible if the MQTT component is configured. To configure MQTT, add `mqtt:` to the `configuration.yaml` file. For more information, refer to the [mqtt](/components/mqtt/) component. + Even though MQTT in general provides deeper functionality, the developer tools section of MQTT is limited to publishing messages to a given topic. It supports templates for the payload. To publish a message, simply specify the topic name and the payload and click “PUBLISH” button. {% linkable_title Info %} diff --git a/source/_includes/edit_github.html b/source/_includes/edit_github.html index f599869c811..b5fa2329b84 100644 --- a/source/_includes/edit_github.html +++ b/source/_includes/edit_github.html @@ -1,4 +1,4 @@ {% assign url_parts = page.url | split: '/' %} {% if page.hide_github_edit != true %} - + {% endif %} diff --git a/source/developers/development_guidelines.markdown b/source/developers/development_guidelines.markdown index edfabb9b26b..7e4088249ce 100644 --- a/source/developers/development_guidelines.markdown +++ b/source/developers/development_guidelines.markdown @@ -78,4 +78,4 @@ _LOGGER.error("No route to device: %s", self._resource) ``` Don't print out wrong API keys, tokens, usernames, or passwords. - +Also note that `_LOGGER.info` is reserved for the core, use `_LOGGER.debug` in anything else. diff --git a/source/images/supported_brands/gogogate2.png b/source/images/supported_brands/gogogate2.png new file mode 100644 index 00000000000..551043f64a5 Binary files /dev/null and b/source/images/supported_brands/gogogate2.png differ diff --git a/source/images/supported_brands/mastodon.png b/source/images/supported_brands/mastodon.png new file mode 100644 index 00000000000..7a156e5b817 Binary files /dev/null and b/source/images/supported_brands/mastodon.png differ diff --git a/source/images/supported_brands/nanoleaf_aurora_light.png b/source/images/supported_brands/nanoleaf_aurora_light.png new file mode 100644 index 00000000000..fb14d4752f1 Binary files /dev/null and b/source/images/supported_brands/nanoleaf_aurora_light.png differ diff --git a/source/images/supported_brands/waze.png b/source/images/supported_brands/waze.png new file mode 100755 index 00000000000..927614e0c88 Binary files /dev/null and b/source/images/supported_brands/waze.png differ