From d4fcdc3860c061341313d596e5c28d499e24e7c2 Mon Sep 17 00:00:00 2001 From: David Bonnes Date: Tue, 18 Jun 2019 18:05:17 +0100 Subject: [PATCH] Add Sensor, BinarySensor to geniushub (#9456) * Initial commit * :pencil2: Tweak * add example automation, tweak text * tweak YAML * restore {% raw %} * tweak text * restore {% raw %} 2 * small tweak to text * :pencil2: Tweaks --- source/_components/geniushub.markdown | 39 +++++++++++++++++++-------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/source/_components/geniushub.markdown b/source/_components/geniushub.markdown index 23aa01aa395..2a007514e5b 100644 --- a/source/_components/geniushub.markdown +++ b/source/_components/geniushub.markdown @@ -17,7 +17,7 @@ ha_release: 0.92 ha_iot_class: Local Polling --- -The `geniushub` integration links Home Assistant with your Genius Hub for controlling its Zones and Devices. Currently, there is no support for Zone schedules. +The `geniushub` integration links Home Assistant with your Genius Hub for controlling its Zones and Devices, and visibility of any Issues. Currently, there is no support for Zone schedules. It uses the [geniushub-client](https://pypi.org/project/geniushub-client/) library. @@ -47,7 +47,24 @@ Each such entity will report back its primary state; in addition, `assigned_zone There are three `Sensor` entities that will indicate the number of **Errors**, **Warnings** and **Information** issues. -Each such entity has a state attribute that will contain a list of any such issues. For example, `error_list`. +Each such entity has a state attribute that will contain a list of any such issues which can be used in automations, etc. For example: + +{% raw %} +```yaml +- alias: GeniusHub Error Alerts + trigger: + platform: numeric_state + entity_id: sensor.errors + above: 0 + action: + - service: notify.pushbullet_notifier + data_template: + title: "Genius Hub has errors" + message: >- + Genius Hub has the following {{ states('sensor.errors') }} errors: + {{ state_attr('sensor.errors', 'error_list') }} +``` +{% endraw %} ### {% linkable_title State Attributes %} @@ -70,7 +87,7 @@ Other properties are available via each entity's state attributes. For example, This data can be accessed in automations, etc. via a value template. For example: {% raw %} -``` +```yaml value_template: "{{ state_attr('water_heater.boiler_h_w', 'status').override.setpoint }}" ``` {% endraw %} @@ -78,7 +95,7 @@ value_template: "{{ state_attr('water_heater.boiler_h_w', 'status').override.set In the specific case of **Radiator** zones with room sensors: {% raw %} -``` +```yaml value_template: "{{ state_attr('climate.main_room', 'status').occupied }}" ``` {% endraw %} @@ -91,7 +108,7 @@ To add your Genius Hub into your Home Assistant installation, add one of the fol - requires a **hub token** obtained from [my.geniushub.co.uk/tokens](https://my.geniushub.co.uk/tokens) - uses the v1 API - which is well-documented - - polls Heat Genius' own servers (so is slower, say 5-10s response time) + - polls Heat Genius' own servers (so is slower, say ~5-10s response time) ```yaml # Example configuration.yaml entry, using a Hub Token @@ -102,8 +119,8 @@ geniushub: ### {% linkable_title Option 2: hub hostname/address with user credentials %} - requires your **username** & **password**, as used with [www.geniushub.co.uk/app](https://www.geniushub.co.uk/app) - - uses the v3 API - results are WIP and may not be what you expect - - polls the hub directly (so is faster, say 1s response time) + - uses the v3 API - unofficial, but there are additional features (e.g., battery levels) + - polls the hub directly (so is faster, say ~1s response time) ```yaml # Example configuration.yaml entry, directly polling the Hub @@ -117,19 +134,19 @@ Note that if a `host` is used instead of `token`, then the `username` and `passw {% configuration %} token: - description: The Hub Token of the Genius Hub + description: The Hub Token of the Genius Hub. required: true type: string host: - description: The hostname/IP address of the Genius Hub + description: The hostname/IP address of the Genius Hub. required: true type: string username: - description: Your Genius Hub username + description: Your Genius Hub username. required: false type: string password: - description: Your Genius Hub password + description: Your Genius Hub password. required: false type: string {% endconfiguration %}