From b753bf7eba3a8d2c9ca1d3a660f9707073cfb572 Mon Sep 17 00:00:00 2001 From: Flavio Castelli Date: Sun, 31 Jan 2016 23:59:10 +0100 Subject: [PATCH 01/34] Add documentation about SCSGate Signed-off-by: Flavio Castelli --- source/_components/light.scsgate.markdown | 29 ++++++++++++++++ .../rollershutter.scsgate.markdown | 30 +++++++++++++++++ source/_components/scsgate.markdown | 33 +++++++++++++++++++ source/_components/switch.scsgate.markdown | 29 ++++++++++++++++ 4 files changed, 121 insertions(+) create mode 100644 source/_components/light.scsgate.markdown create mode 100644 source/_components/rollershutter.scsgate.markdown create mode 100644 source/_components/scsgate.markdown create mode 100644 source/_components/switch.scsgate.markdown diff --git a/source/_components/light.scsgate.markdown b/source/_components/light.scsgate.markdown new file mode 100644 index 00000000000..9100c6c418e --- /dev/null +++ b/source/_components/light.scsgate.markdown @@ -0,0 +1,29 @@ +--- +layout: component +title: "SCSGate light" +description: "Instructions how to integrate SCSGate lights into Home Assistant." +date: 2016-01-31 19:30 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Light +--- + +The SCSGate device can control lights of the BTicino MyHome system. + +To enable SCSGate lights in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +light: + platform: scsgate + devices: + living_room: + name: Living Room + scs_id: XXXXX +``` + +Configuration variables: + +- **devices** (*Required*): A list of devices with their name to use in the frontend. diff --git a/source/_components/rollershutter.scsgate.markdown b/source/_components/rollershutter.scsgate.markdown new file mode 100644 index 00000000000..cc45deaf1f6 --- /dev/null +++ b/source/_components/rollershutter.scsgate.markdown @@ -0,0 +1,30 @@ +--- +layout: component +title: "SCSGate Rollershutter" +description: "Instructions how to integrate SCSGate motorized devices into Home Assistant." +date: 2016-01-31 22:16 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Rollershutter +--- +The SCSGate device can control motirized roller shutters connected to the BTicino MyHome system. + +To enable SCSGate roller shutters in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +rollershutter: + platform: scsgate + devices: + living_room: + name: Living Room + scs_id: XXXXX +``` + +Configuration variables: + +- **devices** (*Required*): A list of devices with their name to use in the frontend. + +**Known limitation:** it is not possible to know the current state of the roller shutter. diff --git a/source/_components/scsgate.markdown b/source/_components/scsgate.markdown new file mode 100644 index 00000000000..809afd3e8a9 --- /dev/null +++ b/source/_components/scsgate.markdown @@ -0,0 +1,33 @@ +--- +layout: component +title: "SCSGate" +description: "Instructions how to integrate SCSGate into Home Assistant." +date: 2016-01-31 19:20 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Hub +--- + +The SCSGate component support the [SCSGate](https://translate.google.com/translate?hl=en&sl=it&tl=en&u=http%3A%2F%2Fguidopic.altervista.org%2Feibscsgt%2Finterface.html) device. This a homebrew device allows to interact with the MyHome system from BTicino/Legrande. + +To enable SCSGate in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +scsgate: + device: PATH_TO_DEVICE +``` + +Configuration variables: + +- **device** (*Required*): The path to your device, e.g. `/dev/ttyACM0` + +### How to find the scs_id for your devices + +The SCSGate component relies on the [scsgate](https://github.com/flavio/scsgate) python module. + +This module provides also a command line tool called `scs-monitor`. This program can be used to find the IDs of your lights, switches and roller shutters and produce the YAML snippet to insert into your `configuration.yaml` file. + +For more information checkout [this](http://scsgate.readthedocs.org/en/latest/?badge=latest#creation-of-a-home-assistant-configuration-file) section of `scsgate`'s documentation. diff --git a/source/_components/switch.scsgate.markdown b/source/_components/switch.scsgate.markdown new file mode 100644 index 00000000000..c68bef07832 --- /dev/null +++ b/source/_components/switch.scsgate.markdown @@ -0,0 +1,29 @@ +--- +layout: component +title: "SCSGate switch" +description: "Instructions how to integrate SCSGate switches into Home Assistant." +date: 2016-01-31 22:15 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Switch +--- + +The SCSGate device can control switches of the BTicino MyHome system. + +To enable SCSGate switches in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + platform: scsgate + devices: + living_room: + name: Living Room + scs_id: XXXXX +``` + +Configuration variables: + +- **devices** (*Required*): A list of devices with their name to use in the frontend. From 71b492e48c3751a07475c473f40cee7c6b46da56 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 1 Feb 2016 20:59:34 +0100 Subject: [PATCH 02/34] Add initial samsung tv docs --- .../media_player.samsungtv.markdown | 25 ++++++++++++++++++ source/images/supported_brands/samsung.png | Bin 0 -> 18271 bytes 2 files changed, 25 insertions(+) create mode 100644 source/_components/media_player.samsungtv.markdown create mode 100644 source/images/supported_brands/samsung.png diff --git a/source/_components/media_player.samsungtv.markdown b/source/_components/media_player.samsungtv.markdown new file mode 100644 index 00000000000..faf86d88176 --- /dev/null +++ b/source/_components/media_player.samsungtv.markdown @@ -0,0 +1,25 @@ +--- +layout: component +title: "Samsung TV" +description: "Instructions how to integrate a Samsung TV in Home Assistant." +date: 2016-02-01 19:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: samsung.png +ha_category: Media Player +featured: false +--- + +The `samsungtv` platform allows you to control an [Samsung TV](http://www.samsung.com). + + +To add an Samsung TV to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +media_player: + platform: samsungtv +``` + diff --git a/source/images/supported_brands/samsung.png b/source/images/supported_brands/samsung.png new file mode 100644 index 0000000000000000000000000000000000000000..fe36a9500b0d4559b001a2cd13bce86ef8a5b930 GIT binary patch literal 18271 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 literal 0 HcmV?d00001 From fd84689e5659bea6e1569a12595d989078d457cc Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 2 Feb 2016 23:50:12 +0100 Subject: [PATCH 03/34] Add weblink component docs --- source/_components/weblink.markdown | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 source/_components/weblink.markdown diff --git a/source/_components/weblink.markdown b/source/_components/weblink.markdown new file mode 100644 index 00000000000..93cd2135c69 --- /dev/null +++ b/source/_components/weblink.markdown @@ -0,0 +1,26 @@ +--- +layout: component +title: "Weblink" +description: "Instructions how to setup Links within Home Assistant." +date: 2016-02-02 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: +ha_category: Other +--- + +The `weblinks` component allows you to display links in the Home Assistant frontend. + +To use this component in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +weblink: + entities: + - name: Router + url: http://192.168.1.1/ + - name: Home Assistant + url: https://home-assistant.io +``` From 4953d85f9e4bba67b557d10bf80370bbda753b92 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 3 Feb 2016 00:22:19 +0100 Subject: [PATCH 04/34] Add input_select docs --- source/_components/input_select.markdown | 44 ++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 source/_components/input_select.markdown diff --git a/source/_components/input_select.markdown b/source/_components/input_select.markdown new file mode 100644 index 00000000000..7e75b21a53e --- /dev/null +++ b/source/_components/input_select.markdown @@ -0,0 +1,44 @@ +--- +layout: component +title: "Input Select" +description: "Instructions how to integrate the Input Select component into Home Assistant." +date: 2016-02-02 17:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: Automation +--- + +The `input_select` component allows the user to define a list of values that can be selected via the frontend and can be used within conditions of automation. + +To enable this platform, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +input_select: + who_cooks: + name: Who cooks today + options: + - Paulus + - Anne Therese + initial: Anne Therese + icon: mdi:panda + living_room_preset: + options: + - Visitors + - Visitors with kids + - Home Alone +``` + +Configuration variables: + +- **[alias]** (*Required*): Alias for the input. +- **name** (*Optional*): Friendly name of the input. +- **options** array (*Optional*): List of options to choose from +- **initial** (*Optional*): Initial value when Home Assistant starts. +- **icon** (*Optional*): Icon for entry. + +Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`. + From 1ee558a8d879c85d2311d2a686c5f12b9b915a15 Mon Sep 17 00:00:00 2001 From: Philip Lundrigan Date: Wed, 3 Feb 2016 17:35:14 -0700 Subject: [PATCH 05/34] Add ssl parameters to Influx docs --- source/_components/influxdb.markdown | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/_components/influxdb.markdown b/source/_components/influxdb.markdown index 7f1973087ec..5c4a6c708bf 100644 --- a/source/_components/influxdb.markdown +++ b/source/_components/influxdb.markdown @@ -23,6 +23,8 @@ influxdb: database: DB_TO_STORE_EVENTS username: MY_USERNAME password: MY_PASSWORD + ssl: true + verify_ssl: true ``` Configuration variables: @@ -32,4 +34,5 @@ Configuration variables: - **database** (*Optional*): Name of the database to use. Defaults to `home_assistant`. The database must already exist. - **username** (*Optional*): The username of the database user. - **password** (*Optional*): The password for the database user account. - +- **ssl** (*Optional*): Use https instead of http to connect. Defaults to false. +- **verify_ssl** (*Optional*): Verify SSL certificate for https request. Defaults to false. From 3c701a9f950adb3f0f7ed8655f87ab73bd96ba9b Mon Sep 17 00:00:00 2001 From: Lukas Hetzenecker Date: Thu, 4 Feb 2016 13:12:48 +0100 Subject: [PATCH 06/34] ZWave: Documentation for PR #1110 --- source/_components/zwave.markdown | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/source/_components/zwave.markdown b/source/_components/zwave.markdown index 1ec9fad3d4f..4a9c53e8c70 100644 --- a/source/_components/zwave.markdown +++ b/source/_components/zwave.markdown @@ -33,15 +33,40 @@ $ pip3 install "cython<0.23" zwave: usb_path: /dev/ttyUSB0 config_path: /usr/local/share/python-openzwave/config + polling_interval: 10000 + customize: + sensor.greenwave_powernode_6_port_energy_10: + polling_intensity: 1 ``` Configuration variables: - **usb_path** (*Required*): The port where your device is connected to your Home Assistant host. - **config_path** (*Optional*): The path to the Python Open Z-Wave configuration files. +- **polling_interval** (*Optional*): The time period in milliseconds between polls of a nodes value. +- **customize** (*Optional*): This attribute contains node-specific override values: + - **polling_intensity** (*Optional*): Enables polling of a value and sets the frequency of polling (0=none, 1=every time through the list, 2-every other time, etc) To find the path of your Z-Wave stick, run: ```bash $ ls /dev/ttyUSB* ``` + +#### Events + +Some devices can also trigger scene activation events, which can be used in automation scripts (for example the press of a button on a wall switch): + +```yaml +# Example configuration.yaml automation entry +automation: + - alias: Turn on Desk light + trigger: + platform: event + event_type: zwave.scene_activated + event_data: + entity_id: zwaveme_zme_wallcs_secure_wall_controller_8 + scene_id: 11 +``` + +The *entity_id* and *scene_id* of all triggered events can be seen in the console output. From 39f826a989ec37fa96c8032ecedc86bb882c4f3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20H=C3=B8yer=20Iversen?= Date: Fri, 5 Feb 2016 15:09:10 +0100 Subject: [PATCH 07/34] Update mqtt_eventstream.markdown Do not need both Others and Other as a category --- source/_components/mqtt_eventstream.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/mqtt_eventstream.markdown b/source/_components/mqtt_eventstream.markdown index a208bdae3e7..d4e209c46e7 100644 --- a/source/_components/mqtt_eventstream.markdown +++ b/source/_components/mqtt_eventstream.markdown @@ -8,7 +8,7 @@ comments: false sharing: true footer: true logo: mqtt.png -ha_category: Others +ha_category: Other --- The `mqtt_eventstream` components two Home Assistant instances via MQTT. From a649e05e384bbc974a4bed1d5d4d520b8b1dc634 Mon Sep 17 00:00:00 2001 From: miniconfig Date: Fri, 5 Feb 2016 20:11:54 -0500 Subject: [PATCH 08/34] Added documentation for Splunk --- source/_components/splunk.markdown | 32 ++++++++++++++++++++++ source/images/supported_brands/splunk.png | Bin 0 -> 43000 bytes 2 files changed, 32 insertions(+) create mode 100644 source/_components/splunk.markdown create mode 100644 source/images/supported_brands/splunk.png diff --git a/source/_components/splunk.markdown b/source/_components/splunk.markdown new file mode 100644 index 00000000000..6089883a02d --- /dev/null +++ b/source/_components/splunk.markdown @@ -0,0 +1,32 @@ +--- +layout: component +title: "Splunk" +description: "Record events in Splunk." +date: 2016-02-05 15:31 +sidebar: true +comments: false +sharing: true +footer: true +logo: splunk.png +ha_category: "History" +--- + +The `splunk` component makes it possible to log all state changes to an external [Splunk](http://splunk.com/) database using Splunk's HTTP Event Collector feature. You can either use this alone, or with the HomeAssistant for Splunk [app](https://github.com/miniconfig/splunk-homeassistant). Since the HEC feature is new to Splunk, you will need to use at least version 6.3. + +To use the `splunk` component in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +splunk: + host: SPLUNK_HOST_IP_ADDRESS_OR_HOST_NAME + port: 8088 + token: B4415DFF-683C-5C6C-3994-4F6D4A5DB03A + SSL: True +``` + +Configuration variables: + +- **host** (*Optional*): IP address or host name of your Splunk host, eg. http://192.168.1.10. Will default to `localhost` if not supplied. +- **port** (*Optional*): Port to use. Defaults to 8088. +- **token** (*Required*): The HTTP Event Collector Token already created in your Splunk instance. +- **SSL** (*Optional*): Use https instead of http to connect. Defaults to False. diff --git a/source/images/supported_brands/splunk.png b/source/images/supported_brands/splunk.png new file mode 100644 index 0000000000000000000000000000000000000000..3f30171db7b51b12052e9bb3b6af4f6ab94b2d74 GIT binary patch literal 43000 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 literal 0 HcmV?d00001 From c15b695252bf37c68dddd44ca715bf782153875b Mon Sep 17 00:00:00 2001 From: Harald Nagel Date: Wed, 3 Feb 2016 20:02:34 -0700 Subject: [PATCH 09/34] Add documentation for the BloomSky components. --- source/_components/bloomsky.markdown | 27 ++++++++++++ source/_components/camera.bloomsky.markdown | 23 +++++++++++ source/_components/sensor.bloomsky.markdown | 43 ++++++++++++++++++++ source/images/supported_brands/bloomsky.png | Bin 0 -> 9061 bytes 4 files changed, 93 insertions(+) create mode 100644 source/_components/bloomsky.markdown create mode 100644 source/_components/camera.bloomsky.markdown create mode 100644 source/_components/sensor.bloomsky.markdown create mode 100644 source/images/supported_brands/bloomsky.png diff --git a/source/_components/bloomsky.markdown b/source/_components/bloomsky.markdown new file mode 100644 index 00000000000..26a92128a7f --- /dev/null +++ b/source/_components/bloomsky.markdown @@ -0,0 +1,27 @@ +--- +layout: component +title: "BloomSky" +description: "Instructions how to integrate the BloomSky within Home Assistant." +date: 2016-02-03 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: bloomsky.png +ha_category: Hub +--- + + +The `bloomsky` component allows you to access your [BloomSky](http://www.insteon.com/) weather station's [sensors](/components/sensor.bloomsky) and [camera](/components/camera.bloomsky) from Home Assistant. + +To integrate your BloomSky hub with Home Assistant, add the following section to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +bloomsky: + api_key: YOUR_API_KEY +``` + +Configuration variables: + +- **api_key** *Required*: Your BloomSky API key, obtained from your [BloomSky dashboard](https://dashboard.bloomsky.com) (click `developers` in the bottom left of the screen) diff --git a/source/_components/camera.bloomsky.markdown b/source/_components/camera.bloomsky.markdown new file mode 100644 index 00000000000..07939a0ac9b --- /dev/null +++ b/source/_components/camera.bloomsky.markdown @@ -0,0 +1,23 @@ +--- +layout: component +title: "BloomSky" +description: "Instructions how to integrate the BloomSky camera within Home Assistant." +date: 2016-02-03 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: bloomsky.png +ha_category: Camera +--- + + +The `bloomsky` camera component allows you to view the current photo created by the camera in the [BloomSky](https://www.bloomsky.com) weather station. This can work in concert with [BloomSky sensors](/components/sensor.bloomsky). + +To enable this camera in your installation, set up the [BloomSky component](/components/bloomsky) with your API key and add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +camera: + platform: bloomsky +``` diff --git a/source/_components/sensor.bloomsky.markdown b/source/_components/sensor.bloomsky.markdown new file mode 100644 index 00000000000..34d820e230a --- /dev/null +++ b/source/_components/sensor.bloomsky.markdown @@ -0,0 +1,43 @@ +--- +layout: component +title: "BloomSky" +description: "Instructions how to integrate the BloomSky sensors within Home Assistant." +date: 2016-02-03 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: bloomsky.png +ha_category: Sensor +--- + + +The `bloomsky` sensor component allows you to view the measurements made by sensors in the [BloomSky](https://www.bloomsky.com) weather station. This can work in concert with the [BloomSky camera](/components/camera.bloomsky). + +To enable these sensors in your installation, set up the [BloomSky component](/components/bloomsky) with your API key add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + platform: bloomsky + monitored_conditions: + - Temperature + - Humidity + - Rain + - Pressure + - UVIndex + - Luminance + - Night +``` + +Configuration variables: + +- **api_key** *Required*: Your BloomSky API key, obtained from your [BloomSky dashboard](https://dashboard.bloomsky.com) (click `developers` in the bottom left of the screen) +- **monitored_conditions** *Required*: The sensors that you wish to monitor on all of your devices. Select from these options: + - Humidity + - Luminance + - Night + - Pressure + - Rain + - Temperature + - UVIndex diff --git a/source/images/supported_brands/bloomsky.png b/source/images/supported_brands/bloomsky.png new file mode 100644 index 0000000000000000000000000000000000000000..3332684dd3350c55d937331de20f4e2056069294 GIT binary patch literal 9061 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 literal 0 HcmV?d00001 From 11c4357a90143cf91bba99cc5e3b5e31584d1ac2 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 6 Feb 2016 08:20:09 +0100 Subject: [PATCH 10/34] Little tweaks --- source/_components/camera.bloomsky.markdown | 2 +- source/_components/sensor.bloomsky.markdown | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/source/_components/camera.bloomsky.markdown b/source/_components/camera.bloomsky.markdown index 07939a0ac9b..b293c241223 100644 --- a/source/_components/camera.bloomsky.markdown +++ b/source/_components/camera.bloomsky.markdown @@ -1,6 +1,6 @@ --- layout: component -title: "BloomSky" +title: "BloomSky Camera" description: "Instructions how to integrate the BloomSky camera within Home Assistant." date: 2016-02-03 20:00 sidebar: true diff --git a/source/_components/sensor.bloomsky.markdown b/source/_components/sensor.bloomsky.markdown index 34d820e230a..f5944f79470 100644 --- a/source/_components/sensor.bloomsky.markdown +++ b/source/_components/sensor.bloomsky.markdown @@ -1,6 +1,6 @@ --- layout: component -title: "BloomSky" +title: "BloomSky Sensor" description: "Instructions how to integrate the BloomSky sensors within Home Assistant." date: 2016-02-03 20:00 sidebar: true @@ -32,8 +32,7 @@ sensor: Configuration variables: -- **api_key** *Required*: Your BloomSky API key, obtained from your [BloomSky dashboard](https://dashboard.bloomsky.com) (click `developers` in the bottom left of the screen) -- **monitored_conditions** *Required*: The sensors that you wish to monitor on all of your devices. Select from these options: +- **monitored_conditions** array *Required*: The sensors that you wish to monitor on all of your devices. Select from these options: - Humidity - Luminance - Night From 261b2d9e078c9c931bba14eb6c7bfa4df22e9866 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 7 Feb 2016 10:09:17 +0100 Subject: [PATCH 11/34] Add switch template docs --- source/_components/switch.template.markdown | 62 +++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 source/_components/switch.template.markdown diff --git a/source/_components/switch.template.markdown b/source/_components/switch.template.markdown new file mode 100644 index 00000000000..d8224861c9e --- /dev/null +++ b/source/_components/switch.template.markdown @@ -0,0 +1,62 @@ +--- +layout: component +title: "Template switch" +description: "Instructions how to integrate Template switches into Home Assistant." +date: 2016-02-07 07:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Switch +--- + +The `template` platform supports switches which breaks out `turn_on` and the `turn_off` service. + +To enable Template switches in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + platform: template + switches: + test_switch: + friendly_name: 'Slow script' + value_template: '{% raw %}{{ states.script.slow.state }}{% endraw %}' + turn_on: + service: script.turn_on + entity_id: script.slow + turn_off: + service: script.turn_off + entity_id: script.slow +``` + +Configuration variables: + +- **switches** array (*Required*): List of your switches. + - **friendly_name** (*Optional*): Name to use in the Frontend. + - **value_template** (*Optional*): Defines a [template](/getting-started/templating/) to extract a value from the payload. + - **turn_on** (*Required*): Contains the `service` and the `entity_id` which are involved. + - **turn_off** (*Required*): Contains the `service` and the `entity_id` which are involved. + +## {% linkable_title Examples %} + +In this section you find some real life examples of how to use this sensor. + +### {% linkable_title Sun angle %} + +This example shows how a skylight with a sensor which shows if it's open or closed and two momentary switches to operate the open and close is handled. + +```yaml +switch: + - platform: template + switches: + skylight: + value_template: "{% raw %}{{ states.sensor.skylight == 'tripped' }}{% endraw %}" + turn_on: + service: switch.turn_on + entity_id: switch.skylight_open + turn_off: + service: switch.turn_on + entity_id: switch.skylight_close +``` + From 7c09ce2162f3570bd9a66068e8fcec34398cf9c3 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 7 Feb 2016 11:48:44 +0100 Subject: [PATCH 12/34] Add ubiquiti docs --- source/_components/camera.uvc.markdown | 33 ++++++++++++++++++ source/_components/sensor.mfi.markdown | 35 ++++++++++++++++++++ source/_components/switch.mfi.markdown | 35 ++++++++++++++++++++ source/images/supported_brands/ubiquiti.png | Bin 0 -> 16067 bytes 4 files changed, 103 insertions(+) create mode 100644 source/_components/camera.uvc.markdown create mode 100644 source/_components/sensor.mfi.markdown create mode 100644 source/_components/switch.mfi.markdown create mode 100644 source/images/supported_brands/ubiquiti.png diff --git a/source/_components/camera.uvc.markdown b/source/_components/camera.uvc.markdown new file mode 100644 index 00000000000..9e76fa421f0 --- /dev/null +++ b/source/_components/camera.uvc.markdown @@ -0,0 +1,33 @@ +--- +layout: component +title: "UniFi Video Camera" +description: "Instructions how to integrate UVC cameras within Home Assistant." +date: 2016-02-07 10:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: ubiquiti.png +ha_category: Camera +--- + + +The `uvc` component allows you to integrate [UniFi Video Camera (UVC)](https://www.ubnt.com/unifi-video/unifi-video-camera/) into Home Assistant. + +To enable a UVC camera in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +camera: + platform: uvc + nvr: IP_ADDRESS + port: PORT + key: APIKEY +``` + +Configuration variables: + +- **nvr** *Optional*: The IP or hostname of the NVR (Network Video Recorder) server. +- **port** *Optional*: The port number to use for accessing the NVR. +- **key** *Required*: The API key available from the NVR web interface. + diff --git a/source/_components/sensor.mfi.markdown b/source/_components/sensor.mfi.markdown new file mode 100644 index 00000000000..7eeaf2517c3 --- /dev/null +++ b/source/_components/sensor.mfi.markdown @@ -0,0 +1,35 @@ +--- +layout: component +title: "mFi Sensor" +description: "Instructions how to integrate mFi sensors within Home Assistant." +date: 2016-02-07 10:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: ubiquiti.png +ha_category: Sensor +--- + + +The `mfi` sensor platform to allow you to monitor [mFi mPort interface and sensors](https://www.ubnt.com/mfi/mport/). + +To add this platform to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + platform: mfi + host: IP_ADDRESS + port: PORT + username: USERNAME + password: PASSWORD +``` + +Configuration variables: + +- **host** (*Required*): The IP address or hostname of your mFi controller. +- **port** (*Optional*): The port of your mFi controller. Defaults to 6443. +- **username** (*Required*): The mFi admin username. +- **password** (*Required*): The mFi admin user's password. + diff --git a/source/_components/switch.mfi.markdown b/source/_components/switch.mfi.markdown new file mode 100644 index 00000000000..a67385b7cba --- /dev/null +++ b/source/_components/switch.mfi.markdown @@ -0,0 +1,35 @@ +--- +layout: component +title: "mFi Switch" +description: "Instructions how to integrate mFi switches within Home Assistant." +date: 2016-02-07 10:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: ubiquiti.png +ha_category: Switch +--- + + +The `mfi` switch platform to allow you to control [mFi Controllable Power Outlets](https://www.ubnt.com/mfi/mpower/). + +To add this platform to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + platform: mfi + host: IP_ADDRESS + port: PORT + username: USERNAME + password: PASSWORD +``` + +Configuration variables: + +- **host** (*Required*): The IP address or hostname of your mFi controller. +- **port** (*Optional*): The port of your mFi controller. Defaults to 6443. +- **username** (*Required*): The mFi admin username. +- **password** (*Required*): The mFi admin user's password. + diff --git a/source/images/supported_brands/ubiquiti.png b/source/images/supported_brands/ubiquiti.png new file mode 100644 index 0000000000000000000000000000000000000000..363b4a617ae1eaca070e9f3d96b1094f7f4bfc13 GIT binary patch literal 16067 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 yOdQ Date: Sun, 7 Feb 2016 12:21:47 +0100 Subject: [PATCH 13/34] Add proximity docs --- source/_components/proximity.markdown | 57 +++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 source/_components/proximity.markdown diff --git a/source/_components/proximity.markdown b/source/_components/proximity.markdown new file mode 100644 index 00000000000..1156a9c30d3 --- /dev/null +++ b/source/_components/proximity.markdown @@ -0,0 +1,57 @@ +--- +layout: component +title: "Proximity" +description: "Instructions how to setup Proximity monitoring within Home Assistant." +date: 2016-02-07 10:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: Organization +--- + +The `proximity` component allows you to monitor the proximity of devices to a particular [zone](/components/zone/) and the direction of travel. The result is an entity created in Home Assistant which maintains the proximity data. + +This component is useful to reduce the number of automation rules required when wanting to perform automations based on locations outside a particular zone. The [zone](/components/automation/#zone-trigger) and [state](/components/automation/#state-trigger) based triggers allow similar control but the number of rules grows exponentially when factors such as direction of travel need to be taken into account. + +Some examples of its use include: + +- Increase thermostat temperature as you near home +- Decrease temperature the further away from home you travel + +The Proximity entity which is created has the following values: + +- `state`: Distance from the monitored zone (in km) +- `dir_of_travel`: Direction of the closest device to the monitoed zone. Values are: + - 'not set' + - 'arrived' + - 'towards' + - 'away_from' + - 'unknown' + - 'stationary' +- `dist_to_zone`: Distance from the monitored zone (in km) + +To enable this component in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +proximity: + zone: home + ignored_zones: + - twork + - elschool + devices: + - device_tracker.nwaring_nickmobile + - device_tracker.eleanorsiphone + - device_tracker.tsiphone + tolerance: 50 +``` + +Configuration variables: + +- **zone** (*Optional*): The zone to which this component is measuring the distance to. Default is the home zone. +- **ignored_zones** array (*Optional*): Where proximity is not calculated for a device (either the device being monitored or ones being compared (e.g. work or school). +- **devices** array (*Optional*): A list of devices to compare location against to check closeness to the configured zone. +- **tollerance** (*Optional*): The tolerance used to calculate the direction of travel in metres to filter out small GPS coordinate changes. + From 224b5b6d9b9ee06ee9d9106470a7b5d9a8e33aed Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 7 Feb 2016 12:23:02 +0100 Subject: [PATCH 14/34] Add unit --- source/_components/proximity.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/proximity.markdown b/source/_components/proximity.markdown index 1156a9c30d3..dc97118b46d 100644 --- a/source/_components/proximity.markdown +++ b/source/_components/proximity.markdown @@ -53,5 +53,5 @@ Configuration variables: - **zone** (*Optional*): The zone to which this component is measuring the distance to. Default is the home zone. - **ignored_zones** array (*Optional*): Where proximity is not calculated for a device (either the device being monitored or ones being compared (e.g. work or school). - **devices** array (*Optional*): A list of devices to compare location against to check closeness to the configured zone. -- **tollerance** (*Optional*): The tolerance used to calculate the direction of travel in metres to filter out small GPS coordinate changes. +- **tollerance** (*Optional*): The tolerance used to calculate the direction of travel in meters (m) to filter out small GPS coordinate changes. From 8d5e213d89280ad8f2384e586e64dae0998b113c Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 7 Feb 2016 12:35:57 +0100 Subject: [PATCH 15/34] Add nx584 docs --- .../alarm_control_panel.nx584.markdown | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 source/_components/alarm_control_panel.nx584.markdown diff --git a/source/_components/alarm_control_panel.nx584.markdown b/source/_components/alarm_control_panel.nx584.markdown new file mode 100644 index 00000000000..af5e200755a --- /dev/null +++ b/source/_components/alarm_control_panel.nx584.markdown @@ -0,0 +1,27 @@ +--- +layout: component +title: "NX584 Alarm Control Panel" +description: "Instructions how to integrate NX584 into Home Assistant." +date: 2016-02-07 10:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Alarm +--- + +The `nx584` platform is consuming the information provided by a [Alarm.com](https://www.alarm.com/). + +To enable this, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +alarm_control_panel: + platform: nx584 + host: IP_ADDRESS +``` + +Configuration variables: + +- **host** (*Optional*): The IP address of the pynx584 backend server. Defaults to `localhost:5007`. + From 29e29c04c8d247e5694a54fb01c1488dc24267a2 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 7 Feb 2016 12:39:48 +0100 Subject: [PATCH 16/34] Add more details from PR --- source/_components/alarm_control_panel.nx584.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/alarm_control_panel.nx584.markdown b/source/_components/alarm_control_panel.nx584.markdown index af5e200755a..da1818af1c5 100644 --- a/source/_components/alarm_control_panel.nx584.markdown +++ b/source/_components/alarm_control_panel.nx584.markdown @@ -10,7 +10,7 @@ footer: true ha_category: Alarm --- -The `nx584` platform is consuming the information provided by a [Alarm.com](https://www.alarm.com/). +The `nx584` platform is consuming the information provided by a NetworX-based alarm panels and should work for any such panel equipped with a NX584 serial interface module like Caddx, GE, or Interlogix. This includes NX-4/6/8/8E, where the NX8E has this interface built-in. To enable this, add the following lines to your `configuration.yaml`: From 6411868bb669d1cc0efc148d67acd47488fd59b6 Mon Sep 17 00:00:00 2001 From: R1chardTM Date: Sun, 7 Feb 2016 22:47:58 +0100 Subject: [PATCH 17/34] Create automation_using_timeinterval_inputboolean.markdown --- ...n_using_timeinterval_inputboolean.markdown | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 source/_cookbook/automation_using_timeinterval_inputboolean.markdown diff --git a/source/_cookbook/automation_using_timeinterval_inputboolean.markdown b/source/_cookbook/automation_using_timeinterval_inputboolean.markdown new file mode 100644 index 00000000000..22f9185db5b --- /dev/null +++ b/source/_cookbook/automation_using_timeinterval_inputboolean.markdown @@ -0,0 +1,42 @@ +--- +layout: page +title: "Automation example using time interval and input boolean" +description: "Automation example using time interval and input boolean." +date: 2016-02-07 22:35 +sidebar: false +comments: false +sharing: true +footer: true +--- + +#### {% linkable_title Change Hue light on interval to random color based on state of a input boolean %} + +_Note, Philips Hue is currently the only light platform that support the random effect._ + +```yaml +input_boolean: + loop_livingcolors: + name: Loop LivingColors + initial: off + icon: mdi:spotlight + +automation: +# Changes Hue light every two minutes to random color if input boolean is set to on +- alias: 'Set LivingColors to random color' + trigger: + - platform: time + minutes: '/2' + seconds: 0 + condition: + - platform: input_boolean + entity_id: input_boolean.loop_livingcolors + state: on + action: + service: light.turn_on + entity_id: + - light.woonkamer_livingcolors + data: + effect: random + transition: 5 + brightness: 255 +``` From 476b472254d6c02a3e860228393908df45ff5376 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 7 Feb 2016 14:26:16 -0800 Subject: [PATCH 18/34] Fix components after reorg --- source/_components/alarm_control_panel.nx584.markdown | 2 +- source/_components/bloomsky.markdown | 2 +- source/_components/camera.bloomsky.markdown | 2 +- source/_components/camera.uvc.markdown | 2 +- source/_components/input_select.markdown | 2 +- source/_components/light.scsgate.markdown | 2 +- source/_components/media_player.samsungtv.markdown | 2 +- source/_components/proximity.markdown | 2 +- source/_components/rollershutter.scsgate.markdown | 2 +- source/_components/scsgate.markdown | 2 +- source/_components/sensor.bloomsky.markdown | 2 +- source/_components/sensor.mfi.markdown | 2 +- source/_components/splunk.markdown | 2 +- source/_components/switch.mfi.markdown | 2 +- source/_components/switch.scsgate.markdown | 2 +- source/_components/switch.template.markdown | 2 +- source/_components/weblink.markdown | 2 +- .../automation_using_timeinterval_inputboolean.markdown | 9 +++++---- 18 files changed, 22 insertions(+), 21 deletions(-) diff --git a/source/_components/alarm_control_panel.nx584.markdown b/source/_components/alarm_control_panel.nx584.markdown index da1818af1c5..860436fc21a 100644 --- a/source/_components/alarm_control_panel.nx584.markdown +++ b/source/_components/alarm_control_panel.nx584.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "NX584 Alarm Control Panel" description: "Instructions how to integrate NX584 into Home Assistant." date: 2016-02-07 10:00 diff --git a/source/_components/bloomsky.markdown b/source/_components/bloomsky.markdown index 26a92128a7f..7b326baf8a4 100644 --- a/source/_components/bloomsky.markdown +++ b/source/_components/bloomsky.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "BloomSky" description: "Instructions how to integrate the BloomSky within Home Assistant." date: 2016-02-03 20:00 diff --git a/source/_components/camera.bloomsky.markdown b/source/_components/camera.bloomsky.markdown index b293c241223..4a7e9f4b8bb 100644 --- a/source/_components/camera.bloomsky.markdown +++ b/source/_components/camera.bloomsky.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "BloomSky Camera" description: "Instructions how to integrate the BloomSky camera within Home Assistant." date: 2016-02-03 20:00 diff --git a/source/_components/camera.uvc.markdown b/source/_components/camera.uvc.markdown index 9e76fa421f0..84583a0a05a 100644 --- a/source/_components/camera.uvc.markdown +++ b/source/_components/camera.uvc.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "UniFi Video Camera" description: "Instructions how to integrate UVC cameras within Home Assistant." date: 2016-02-07 10:00 diff --git a/source/_components/input_select.markdown b/source/_components/input_select.markdown index 7e75b21a53e..b8e574b91f8 100644 --- a/source/_components/input_select.markdown +++ b/source/_components/input_select.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Input Select" description: "Instructions how to integrate the Input Select component into Home Assistant." date: 2016-02-02 17:00 diff --git a/source/_components/light.scsgate.markdown b/source/_components/light.scsgate.markdown index 9100c6c418e..1a684ee06c4 100644 --- a/source/_components/light.scsgate.markdown +++ b/source/_components/light.scsgate.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "SCSGate light" description: "Instructions how to integrate SCSGate lights into Home Assistant." date: 2016-01-31 19:30 diff --git a/source/_components/media_player.samsungtv.markdown b/source/_components/media_player.samsungtv.markdown index faf86d88176..1c96733e92c 100644 --- a/source/_components/media_player.samsungtv.markdown +++ b/source/_components/media_player.samsungtv.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Samsung TV" description: "Instructions how to integrate a Samsung TV in Home Assistant." date: 2016-02-01 19:00 diff --git a/source/_components/proximity.markdown b/source/_components/proximity.markdown index dc97118b46d..b42a218d441 100644 --- a/source/_components/proximity.markdown +++ b/source/_components/proximity.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Proximity" description: "Instructions how to setup Proximity monitoring within Home Assistant." date: 2016-02-07 10:00 diff --git a/source/_components/rollershutter.scsgate.markdown b/source/_components/rollershutter.scsgate.markdown index cc45deaf1f6..7028bbd4d06 100644 --- a/source/_components/rollershutter.scsgate.markdown +++ b/source/_components/rollershutter.scsgate.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "SCSGate Rollershutter" description: "Instructions how to integrate SCSGate motorized devices into Home Assistant." date: 2016-01-31 22:16 diff --git a/source/_components/scsgate.markdown b/source/_components/scsgate.markdown index 809afd3e8a9..545833b8476 100644 --- a/source/_components/scsgate.markdown +++ b/source/_components/scsgate.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "SCSGate" description: "Instructions how to integrate SCSGate into Home Assistant." date: 2016-01-31 19:20 diff --git a/source/_components/sensor.bloomsky.markdown b/source/_components/sensor.bloomsky.markdown index f5944f79470..08a9852e086 100644 --- a/source/_components/sensor.bloomsky.markdown +++ b/source/_components/sensor.bloomsky.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "BloomSky Sensor" description: "Instructions how to integrate the BloomSky sensors within Home Assistant." date: 2016-02-03 20:00 diff --git a/source/_components/sensor.mfi.markdown b/source/_components/sensor.mfi.markdown index 7eeaf2517c3..c7dcc96257a 100644 --- a/source/_components/sensor.mfi.markdown +++ b/source/_components/sensor.mfi.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "mFi Sensor" description: "Instructions how to integrate mFi sensors within Home Assistant." date: 2016-02-07 10:00 diff --git a/source/_components/splunk.markdown b/source/_components/splunk.markdown index 6089883a02d..12c81cc4ab9 100644 --- a/source/_components/splunk.markdown +++ b/source/_components/splunk.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Splunk" description: "Record events in Splunk." date: 2016-02-05 15:31 diff --git a/source/_components/switch.mfi.markdown b/source/_components/switch.mfi.markdown index a67385b7cba..353a6d6a2c0 100644 --- a/source/_components/switch.mfi.markdown +++ b/source/_components/switch.mfi.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "mFi Switch" description: "Instructions how to integrate mFi switches within Home Assistant." date: 2016-02-07 10:00 diff --git a/source/_components/switch.scsgate.markdown b/source/_components/switch.scsgate.markdown index c68bef07832..234f02247ac 100644 --- a/source/_components/switch.scsgate.markdown +++ b/source/_components/switch.scsgate.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "SCSGate switch" description: "Instructions how to integrate SCSGate switches into Home Assistant." date: 2016-01-31 22:15 diff --git a/source/_components/switch.template.markdown b/source/_components/switch.template.markdown index d8224861c9e..847a47a26eb 100644 --- a/source/_components/switch.template.markdown +++ b/source/_components/switch.template.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Template switch" description: "Instructions how to integrate Template switches into Home Assistant." date: 2016-02-07 07:00 diff --git a/source/_components/weblink.markdown b/source/_components/weblink.markdown index 93cd2135c69..5dbcec2d1b4 100644 --- a/source/_components/weblink.markdown +++ b/source/_components/weblink.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Weblink" description: "Instructions how to setup Links within Home Assistant." date: 2016-02-02 20:00 diff --git a/source/_cookbook/automation_using_timeinterval_inputboolean.markdown b/source/_cookbook/automation_using_timeinterval_inputboolean.markdown index 22f9185db5b..966a1a63eee 100644 --- a/source/_cookbook/automation_using_timeinterval_inputboolean.markdown +++ b/source/_cookbook/automation_using_timeinterval_inputboolean.markdown @@ -1,12 +1,13 @@ --- layout: page -title: "Automation example using time interval and input boolean" -description: "Automation example using time interval and input boolean." -date: 2016-02-07 22:35 -sidebar: false +title: "Using time interval and input boolean" +description: "Automation to get a random color every 2 minutes that can be turned on/off." +date: 2016-02-07 22:35 +0800 +sidebar: true comments: false sharing: true footer: true +ha_category: Automation Examples --- #### {% linkable_title Change Hue light on interval to random color based on state of a input boolean %} From d8f34ea658932e60d0fc81f99077436b9f2536bd Mon Sep 17 00:00:00 2001 From: Dan Smith Date: Sun, 7 Feb 2016 22:00:22 +0000 Subject: [PATCH 19/34] Update honeywell thermostat docs for US devices --- .../_components/thermostat.honeywell.markdown | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/source/_components/thermostat.honeywell.markdown b/source/_components/thermostat.honeywell.markdown index 554b224734d..59b8f4f3e2d 100644 --- a/source/_components/thermostat.honeywell.markdown +++ b/source/_components/thermostat.honeywell.markdown @@ -2,7 +2,7 @@ layout: page title: "Honeywell Thermostat" description: "Instructions how to integrate Honeywell thermostats within Home Assistant." -date: 2015-11-09 17:15 +date: 2016-02-07 22:01 sidebar: true comments: false sharing: true @@ -23,8 +23,23 @@ thermostat: password: YOUR_PASSWORD ``` +If you are using a Honeywell thermostat in the US, you also need to provide the thermostat identifier: + +```yaml + id: IDENT +``` + Configuration variables: - **username** (*Required*: The username of an user with access. - **password** (*Required*): The password for your given admin account. - **away_temperature** (*optional*): Heating setpoint when away mode is on. If omitted it defaults to 16.0 deg C. +- **id** (*optional*): Thermostat identifier + +To find your thermostat identifier, log into your account, choose a thermostat (if applicable) and then look at the URL. It should look something like this: + +``` +https://mytotalconnectcomfort.com/portal/Device/Control/1234567 +``` + +In this case, the identifier is `1234567`. From ac3863dad4769b2c8fb74b9e1c88f02827053587 Mon Sep 17 00:00:00 2001 From: Dan Smith Date: Sun, 7 Feb 2016 22:26:01 +0000 Subject: [PATCH 20/34] Update nx584 alarm platform docs Adds a logo and clarifies some things. --- .../alarm_control_panel.nx584.markdown | 8 +++++--- source/images/supported_brands/networx.png | Bin 0 -> 4184 bytes 2 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 source/images/supported_brands/networx.png diff --git a/source/_components/alarm_control_panel.nx584.markdown b/source/_components/alarm_control_panel.nx584.markdown index 860436fc21a..12a07029947 100644 --- a/source/_components/alarm_control_panel.nx584.markdown +++ b/source/_components/alarm_control_panel.nx584.markdown @@ -7,10 +7,12 @@ sidebar: true comments: false sharing: true footer: true +logo: networx.png ha_category: Alarm --- -The `nx584` platform is consuming the information provided by a NetworX-based alarm panels and should work for any such panel equipped with a NX584 serial interface module like Caddx, GE, or Interlogix. This includes NX-4/6/8/8E, where the NX8E has this interface built-in. +The `nx584` platform provides integration with GE, Caddx, Interlogix (and other brands) alarm panels that support the NX584 interface module (or have it built in). Supported panels include NX4/6/8/8E. Actual integration is done through [pynx584](http://github.com/kk7ds/pynx584) which is required for this to work. + To enable this, add the following lines to your `configuration.yaml`: @@ -18,10 +20,10 @@ To enable this, add the following lines to your `configuration.yaml`: # Example configuration.yaml entry alarm_control_panel: platform: nx584 - host: IP_ADDRESS + host: ADDRESS ``` Configuration variables: -- **host** (*Optional*): The IP address of the pynx584 backend server. Defaults to `localhost:5007`. +- **host** (*Optional*): This is the host connection string (host:port) for the nx584 server process. If unset, it is assumed to be `localhost:5007`, which will work if the server process is running on the same system as home-assistant. diff --git a/source/images/supported_brands/networx.png b/source/images/supported_brands/networx.png new file mode 100644 index 0000000000000000000000000000000000000000..560e4c96062f8e8f0b297fb4c7dbc71918763c0d GIT binary patch literal 4184 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 literal 0 HcmV?d00001 From 0379b23e431c0a88910c8d28730232f0cd33de81 Mon Sep 17 00:00:00 2001 From: R1chardTM Date: Mon, 8 Feb 2016 22:49:01 +0100 Subject: [PATCH 21/34] Fix automation script in cookbook Fix automation example 'Using time interval and input boolean' in cookbook. --- ...ion_using_timeinterval_inputboolean.markdown | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/source/_cookbook/automation_using_timeinterval_inputboolean.markdown b/source/_cookbook/automation_using_timeinterval_inputboolean.markdown index 966a1a63eee..4842721b389 100644 --- a/source/_cookbook/automation_using_timeinterval_inputboolean.markdown +++ b/source/_cookbook/automation_using_timeinterval_inputboolean.markdown @@ -22,20 +22,19 @@ input_boolean: icon: mdi:spotlight automation: -# Changes Hue light every two minutes to random color if input boolean is set to on +# Changes Hue light to random color based on state of a input boolean - alias: 'Set LivingColors to random color' trigger: - - platform: time - minutes: '/2' - seconds: 0 + platform: time + minutes: '/2' + seconds: 0 condition: - - platform: input_boolean - entity_id: input_boolean.loop_livingcolors - state: on + platform: state + entity_id: input_boolean.loop_livingcolors + state: 'on' action: service: light.turn_on - entity_id: - - light.woonkamer_livingcolors + entity_id: light.woonkamer_livingcolors data: effect: random transition: 5 From 391d0a73bbc69e3bfe3e495bc6f10b221ed3d4d2 Mon Sep 17 00:00:00 2001 From: R1chardTM Date: Mon, 8 Feb 2016 22:51:17 +0100 Subject: [PATCH 22/34] Update automation_using_timeinterval_inputboolean.markdown --- .../automation_using_timeinterval_inputboolean.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_cookbook/automation_using_timeinterval_inputboolean.markdown b/source/_cookbook/automation_using_timeinterval_inputboolean.markdown index 4842721b389..02c3cd1a443 100644 --- a/source/_cookbook/automation_using_timeinterval_inputboolean.markdown +++ b/source/_cookbook/automation_using_timeinterval_inputboolean.markdown @@ -22,7 +22,7 @@ input_boolean: icon: mdi:spotlight automation: -# Changes Hue light to random color based on state of a input boolean +# Changes Hue light every two minutes to random color if input boolean is set to on - alias: 'Set LivingColors to random color' trigger: platform: time From 4fcec32a88ba71e1fd1ff1825c0b1fb4625249d7 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 9 Feb 2016 07:52:39 -0800 Subject: [PATCH 23/34] Update template switch docs --- source/_components/switch.template.markdown | 97 +++++++++++++++------ 1 file changed, 69 insertions(+), 28 deletions(-) diff --git a/source/_components/switch.template.markdown b/source/_components/switch.template.markdown index 847a47a26eb..ab789f34b9e 100644 --- a/source/_components/switch.template.markdown +++ b/source/_components/switch.template.markdown @@ -10,53 +10,94 @@ footer: true ha_category: Switch --- -The `template` platform supports switches which breaks out `turn_on` and the `turn_off` service. +The `template` platform creates switches that combine components. + +For example, if you have a garage door with a toggle switch that operates the motor and a sensor that allows you know whether the door is open or closed, you can combine these into a switch that knows whether the garage door is open or closed. + +This can simplify the gui, and make it easier to write automations. You can mark the components you have combined as `hidden` so they don't appear themselves. To enable Template switches in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry switch: - platform: template - switches: - test_switch: - friendly_name: 'Slow script' - value_template: '{% raw %}{{ states.script.slow.state }}{% endraw %}' - turn_on: - service: script.turn_on - entity_id: script.slow - turn_off: - service: script.turn_off - entity_id: script.slow + platform: template + switches: + skylight: + friendly_name: 'Skylight' + value_template: {% raw %}'{{ states.sensor.skylight.state }}'{% endraw %} + turn_on: + service: switch.turn_on + entity_id: switch.skylight_open + turn_off: + service: switch.turn_on + entity_id: switch.skylight_close ``` Configuration variables: - **switches** array (*Required*): List of your switches. - **friendly_name** (*Optional*): Name to use in the Frontend. - - **value_template** (*Optional*): Defines a [template](/getting-started/templating/) to extract a value from the payload. - - **turn_on** (*Required*): Contains the `service` and the `entity_id` which are involved. - - **turn_off** (*Required*): Contains the `service` and the `entity_id` which are involved. + - **value_template** (*Required*): Defines a [template](/getting-started/templating/) to set the state of the switch. + - **turn_on** (*Required*): Defines an [action](/getting-started/automation/) to run when the switch is turned on. + - **turn_off** (*Required*): Defines an [action](/getting-started/automation/) to run when the switch is turned off. ## {% linkable_title Examples %} -In this section you find some real life examples of how to use this sensor. +In this section you find some real life examples of how to use this switch. -### {% linkable_title Sun angle %} +### {% linkable_title Copy switch %} -This example shows how a skylight with a sensor which shows if it's open or closed and two momentary switches to operate the open and close is handled. +This example shows a switch that copies another switch. ```yaml switch: - - platform: template - switches: - skylight: - value_template: "{% raw %}{{ states.sensor.skylight == 'tripped' }}{% endraw %}" - turn_on: - service: switch.turn_on - entity_id: switch.skylight_open - turn_off: - service: switch.turn_on - entity_id: switch.skylight_close + platform: template + switches: + copy: + value_template: {% raw %}'{{ states.switch.source.state }}'{% endraw %} + turn_on: + service: switch.turn_on + entity_id: switch.source + turn_off: + service: switch.turn_off + entity_id: switch.source +```` + +### {% linkable_title Toggle switch %} + +This example shows a switch that takes its state from a sensor, and toggles a switch. + +```yaml +switch: + platform: template + switches: + blind: + friendly_name: 'Blind' + value_template: {% raw %}'{{ state }}'{% endraw %} + turn_on: + service: switch.toggle + entity_id: switch.blind_toggle + turn_off: + service: switch.toggle + entity_id: switch.blind_toggle ``` +### {% linkable_title Sensor and two switches %} + +This example shows a switch that takes its state from a sensor, and uses two momentary switches to control a device. + +```yaml +switch: + platform: template + switches: + skylight: + friendly_name: 'Skylight' + value_template: {% raw %}'{{ states.sensor.skylight.state }}'{% endraw %} + turn_on: + service: switch.turn_on + entity_id: switch.skylight_open + turn_off: + service: switch.turn_on + entity_id: switch.skylight_close +``` From 5978fb78d2b373141f1c834839002eba71377a3b Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 9 Feb 2016 21:16:23 -0800 Subject: [PATCH 24/34] Update sensor.dht.markdown --- source/_components/sensor.dht.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_components/sensor.dht.markdown b/source/_components/sensor.dht.markdown index 6b535d2cf67..271be938f13 100644 --- a/source/_components/sensor.dht.markdown +++ b/source/_components/sensor.dht.markdown @@ -21,6 +21,7 @@ sensor: platform: dht sensor: DHT22 pin: 23 + name: Living Room monitored_conditions: - temperature - humidity @@ -30,6 +31,7 @@ Configuration variables: - **sensor** (*Required*): The sensor type, supported devices are DHT11, DHT22, and AM2302 - **pin** (*Required*): The pin the sensor is connected to. +- **name** (*Optional*): The name of the sensor - **monitored_conditions** array: Conditions to monitor. - **temperature**: - **humidity**: From 80ca6b43d1773bd1d64c12919dbe4cb1b26ee304 Mon Sep 17 00:00:00 2001 From: Flyte Date: Wed, 10 Feb 2016 18:52:41 +0000 Subject: [PATCH 25/34] Add apcupsd component documentation --- source/_components/apcupsd.markdown | 35 +++++++ .../binary_sensor.apcupsd.markdown | 22 ++++ source/_components/sensor.apcupsd.markdown | 94 ++++++++++++++++++ source/images/supported_brands/apcupsd.png | Bin 0 -> 7774 bytes 4 files changed, 151 insertions(+) create mode 100644 source/_components/apcupsd.markdown create mode 100644 source/_components/binary_sensor.apcupsd.markdown create mode 100644 source/_components/sensor.apcupsd.markdown create mode 100644 source/images/supported_brands/apcupsd.png diff --git a/source/_components/apcupsd.markdown b/source/_components/apcupsd.markdown new file mode 100644 index 00000000000..16deab840ef --- /dev/null +++ b/source/_components/apcupsd.markdown @@ -0,0 +1,35 @@ +--- +layout: page +title: "APCUPSd" +description: "Instructions on how to integrate APCUPSd status with Home Assistant." +date: 2016-02-10 17:11 +sidebar: true +comments: false +sharing: true +footer: true +logo: apcupsd.png +ha_category: Hub +--- + +[APCUPSd](http://www.apcupsd.org/) status information can be integrated into Home Assistant when the Network Information Server (NIS) [is configured](http://www.apcupsd.org/manual/manual.html#nis-server-client-configuration-using-the-net-driver). + +Create an `apcupsd` section in your configuration, optionally containing the following parameters: + +- **host**: The hostname/IP address on which the APCUPSd NIS is being served. Default: `localhost` +- **port**: The port on which the APCUPSd NIS is listening. Default: `3551` + +#### Example + +Use defaults: + +```yaml +apcupsd: +``` + +Set parameters: + +```yaml +apcupsd: + host: 192.168.1.10 + port: 1234 +``` diff --git a/source/_components/binary_sensor.apcupsd.markdown b/source/_components/binary_sensor.apcupsd.markdown new file mode 100644 index 00000000000..7e346559ae0 --- /dev/null +++ b/source/_components/binary_sensor.apcupsd.markdown @@ -0,0 +1,22 @@ +--- +layout: page +title: APCUPSd Binary Sensor +description: "Instructions on how to set up an APCUPSd binary sensor within Home Assistant." +date: 2016-02-10 18:47 +sidebar: true +comments: false +sharing: true +footer: true +logo: apcupsd.png +ha_category: Binary Sensor +--- + +In addition to the [APCUPSd Sensor](/components/sensor.apcupsd/) devices, you may also create a device which is simply `on` when the UPS status is `ONLINE` and `off` at all other times. + +#### Example + +```yaml +binary_sensor: + - name: UPS Online + platform: apcupsd +``` diff --git a/source/_components/sensor.apcupsd.markdown b/source/_components/sensor.apcupsd.markdown new file mode 100644 index 00000000000..2a1d18741d3 --- /dev/null +++ b/source/_components/sensor.apcupsd.markdown @@ -0,0 +1,94 @@ +--- +layout: page +title: APCUPSd Sensor +description: "Instructions on how to set up APCUPSd sensors within Home Assistant." +date: 2016-02-10 18:28 +sidebar: true +comments: false +sharing: true +footer: true +logo: apcupsd.png +ha_category: Sensor +--- + +Any of the lines of output from the [apcaccess](http://linux.die.net/man/8/apcaccess) command can be used as a sensor device in Home Assistant. In order to create a sensor for a value, create an entity within a `sensor` section of your configuration. The following parameters may be used: + +- **name** (*Required*): The name you'd like to give the sensor in Home Assistant. +- **platform** (*Required*): Set to `apcupsd`. +- **type** (*Required*): The label for the value you'd like to track based on the output of `apcaccess`. Refer to the examples for ideas. + +#### Example + +Given the following output from `apcaccess`: + +```yaml +APC : 001,051,1149 +DATE : 2016-02-09 17:13:31 +0000 +HOSTNAME : localhost +VERSION : 3.14.12 (29 March 2014) redhat +UPSNAME : netrack +CABLE : Custom Cable Smart +DRIVER : APC Smart UPS (any) +UPSMODE : Stand Alone +STARTTIME: 2016-02-09 16:06:47 +0000 +MODEL : SMART-UPS 1400 +STATUS : TRIM ONLINE +LINEV : 247.0 Volts +LOADPCT : 13.0 Percent +BCHARGE : 100.0 Percent +TIMELEFT : 104.0 Minutes +MBATTCHG : 5 Percent +MINTIMEL : 3 Minutes +MAXTIME : 0 Seconds +MAXLINEV : 249.6 Volts +MINLINEV : 244.4 Volts +OUTPUTV : 218.4 Volts +SENSE : High +DWAKE : 0 Seconds +DSHUTD : 180 Seconds +DLOWBATT : 2 Minutes +LOTRANS : 196.0 Volts +HITRANS : 253.0 Volts +RETPCT : 15.0 Percent +ITEMP : 30.6 C +ALARMDEL : Low Battery +BATTV : 27.6 Volts +LINEFREQ : 50.0 Hz +LASTXFER : High line voltage +NUMXFERS : 0 +TONBATT : 0 Seconds +CUMONBATT: 0 Seconds +XOFFBATT : N/A +SELFTEST : NO +STESTI : 336 +STATFLAG : 0x0500000A +DIPSW : 0x00 +REG1 : 0x00 +REG2 : 0x00 +REG3 : 0x00 +MANDATE : 07/13/99 +SERIALNO : GS9888761008 +BATTDATE : 13/11/15 +NOMOUTV : 230 Volts +NOMBATTV : 24.0 Volts +EXTBATTS : 0 +FIRMWARE : 70.11.I +END APC : 2016-02-09 17:13:46 +0000 +``` + +Use the (case insensitive) values from the left hand column as your `type`: + +```yaml +sensor: + - name: Mains Voltage + platform: apcupsd + type: linev + + - name: UPS Load + platform: apcupsd + type: loadpct + + - name: UPS Temperature + platform: apcupsd + type: itemp +``` diff --git a/source/images/supported_brands/apcupsd.png b/source/images/supported_brands/apcupsd.png new file mode 100644 index 0000000000000000000000000000000000000000..8fbad5a0fa8a8e7ff40982cb9981105bc6c20d69 GIT binary patch literal 7774 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 literal 0 HcmV?d00001 From 9faff8210371181e86b897babd49cd806a72d6e9 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 10 Feb 2016 20:55:42 -0800 Subject: [PATCH 26/34] Update mysensors.markdown --- source/_components/mysensors.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/_components/mysensors.markdown b/source/_components/mysensors.markdown index e5a6c9a84e3..abb9c28030b 100644 --- a/source/_components/mysensors.markdown +++ b/source/_components/mysensors.markdown @@ -24,8 +24,10 @@ mysensors: gateways: - port: '/dev/ttyUSB0' persistence_file: 'path/mysensors.json' + baud_rate: 38400 - port: '/dev/ttyACM1' persistence_file: 'path/mysensors2.json' + baud_rate: 115200 debug: true persistence: true version: '1.5' @@ -38,6 +40,7 @@ Configuration variables: - **persistence** (*Optional*): Enable or disable local persistence of sensor information. If this is disabled, then each sensor will need to send presentation messages after Home Assistant starts. Default is true. - **persistence_file** (*Optional*): Path to a file to save sensor information. The file extension determines the file type. Currently supported file types are 'pickle' and 'json'. - **version** (*Optional*): Specifies the MySensors protocol version to use. Supports 1.4 and 1.5. Default is 1.4. +- **baud_rate** (*Optional*): Specifies baud rate of the connected gateway. If you are using an original Arduino the port will be named `ttyACM*`. The exact number can be determined with the command shown below. From cf79add04d2b3a43eb913152ea833b8439492d6e Mon Sep 17 00:00:00 2001 From: Dan Smith Date: Thu, 11 Feb 2016 15:14:38 +0000 Subject: [PATCH 27/34] Update honeywell docs to indicate region instead of thermostat id In #1196, we replaced the need for specifying the thermostat id with just the region to indicate which type of interface we should use. --- .../_components/thermostat.honeywell.markdown | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/source/_components/thermostat.honeywell.markdown b/source/_components/thermostat.honeywell.markdown index 59b8f4f3e2d..03fa233019a 100644 --- a/source/_components/thermostat.honeywell.markdown +++ b/source/_components/thermostat.honeywell.markdown @@ -21,12 +21,7 @@ thermostat: platform: honeywell username: YOUR_USERNAME password: YOUR_PASSWORD -``` - -If you are using a Honeywell thermostat in the US, you also need to provide the thermostat identifier: - -```yaml - id: IDENT + region: REGION ``` Configuration variables: @@ -34,12 +29,4 @@ Configuration variables: - **username** (*Required*: The username of an user with access. - **password** (*Required*): The password for your given admin account. - **away_temperature** (*optional*): Heating setpoint when away mode is on. If omitted it defaults to 16.0 deg C. -- **id** (*optional*): Thermostat identifier - -To find your thermostat identifier, log into your account, choose a thermostat (if applicable) and then look at the URL. It should look something like this: - -``` -https://mytotalconnectcomfort.com/portal/Device/Control/1234567 -``` - -In this case, the identifier is `1234567`. +- **region** (*optional*): Region identifier (either 'eu' or 'us'). Defaults to 'eu' if not provided. From e3a375fc1739043aa86c55f65e9554f487c5cb6d Mon Sep 17 00:00:00 2001 From: Dan Smith Date: Thu, 11 Feb 2016 17:52:06 +0000 Subject: [PATCH 28/34] Update WeMo documentation for static configurations --- source/_components/switch.wemo.markdown | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source/_components/switch.wemo.markdown b/source/_components/switch.wemo.markdown index 1e9560f77ee..9541f7e73b1 100644 --- a/source/_components/switch.wemo.markdown +++ b/source/_components/switch.wemo.markdown @@ -21,3 +21,17 @@ They will be automatically discovered if the discovery component is enabled. switch: platform: wemo ``` + +Alternately, wemos that are not discoverable can be statically configured. If you have WeMo devices on subnets other than where Home Assistant is running, and/or devices in a remote location reachable over a VPN, you will need to manually configure them. This is also useful if you wish to disable discovery for some wemos, even if they are local. Example static configuration: + +```yaml +switch: + platform: wemo + static: + - 192.168.1.23 + - 192.168.52.172 +``` + +Any WeMo devices that are not statically configured but reachable via discovery will still be added automatically. + +Note that if you use this, you may want to configure your router (or whatever runs your DHCP server) to force your WeMo devices to use a static IP address. Check the DHCP section of your router configuration for this ability. \ No newline at end of file From 078826b06749f5a92903e7f210b9160ae3517963 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 12 Feb 2016 07:49:12 +0100 Subject: [PATCH 29/34] Update verisure docs for locks --- source/_components/lock.verisure.markdown | 18 ++++++++++++++++++ source/_components/verisure.markdown | 9 ++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 source/_components/lock.verisure.markdown diff --git a/source/_components/lock.verisure.markdown b/source/_components/lock.verisure.markdown new file mode 100644 index 00000000000..185e066f3b3 --- /dev/null +++ b/source/_components/lock.verisure.markdown @@ -0,0 +1,18 @@ +--- +layout: page +title: "Verisure Lock" +description: "Instructions how to setup the Verisure locks within Home Assistant." +date: 2016-02-12 06:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: wink.png +ha_category: Lock +--- + + +The Verisure lock platform allows you to control your [Verisure](https://www.verisure.com/) locks. + +The requirement is that you have setup your [Verisure hub](/components/verisure/). + diff --git a/source/_components/verisure.markdown b/source/_components/verisure.markdown index 8730ec8382f..cd1d84f3a31 100644 --- a/source/_components/verisure.markdown +++ b/source/_components/verisure.markdown @@ -17,9 +17,10 @@ Home Assistant has support to integrate your [Verisure](https://www.verisure.com We support: - * Smartplugs - * Reading from thermometers and hygrometers integrated in various devices - * Reading alarm status + * Smartplugs + * Reading from thermometers and hygrometers integrated in various devices + * Reading alarm status + * Locks To integrate Verisure with Home Assistant, add the following section to your `configuration.yaml` file: @@ -32,6 +33,7 @@ verisure: hygrometers: 0 smartplugs: 1 thermometers: 0 + locks: 0 code_digits: 4 ``` @@ -42,6 +44,7 @@ Configuration variables: - **alarm** (*Optional*): Set to 1 to show alarm, 0 to disable. Default 1. - **hygrometers** (*Optional*): Set to 1 to show hygrometers, 0 to disable. Default 1. - **smartplugs** (*Optional*): Set to 1 to show smartplugs, 0 to disable. Default 1. +- **locls** (*Optional*): Set to 1 to show locks, 0 to disable. Default 1. - **thermometers** (*Optional*): Set to 1 to show thermometers, 0 to disable. Default 1. - **code_digits** (*Optional*): Number of digits in PIN code. Default 4. From 4ddb97c5520e214cbcd0b5415e162a6aae197c78 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 12 Feb 2016 08:15:09 +0100 Subject: [PATCH 30/34] Add rest notify docs --- source/_components/notify.rest.markdown | 40 +++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 source/_components/notify.rest.markdown diff --git a/source/_components/notify.rest.markdown b/source/_components/notify.rest.markdown new file mode 100644 index 00000000000..27752b6bbe6 --- /dev/null +++ b/source/_components/notify.rest.markdown @@ -0,0 +1,40 @@ +--- +layout: page +title: "REST" +description: "Instructions how to add RESTful notifications to Home Assistant." +date: 2016-02-12 07:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Notifications +--- + + +The `rest` notification platform allows you to deliver [RESTful](https://en.wikipedia.org/wiki/Representational_state_transfer) notifications from Home Assistant to another party. + +To enable the REST notification in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +notify: + name: NOTIFIER_NAME + platform: rest + resource: http://IP_ADDRESS/ENDPOINT + method: GET + message_param_name: MESSAGE_PARAMETER_NAME + title_param_name: TITLE_PARAMETER_NAME + target_param_name: TARGET_PARAMETER_NAME +``` + +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 recieve the value. +- **method** (*Optional*): The method of the request. Default is GET. +- **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. + +To use notifications, please see the [getting started with automation page]({{site_root}}/components/automation/). + From 6b756d7b79ec4e2ebba4a45aa2cba6631e7792b1 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 12 Feb 2016 08:20:50 +0100 Subject: [PATCH 31/34] Add garage door docs --- source/_components/garage_door.markdown | 12 ++++++++++++ source/_components/garage_door.wink.markdown | 18 ++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 source/_components/garage_door.markdown create mode 100644 source/_components/garage_door.wink.markdown diff --git a/source/_components/garage_door.markdown b/source/_components/garage_door.markdown new file mode 100644 index 00000000000..a52f22244a3 --- /dev/null +++ b/source/_components/garage_door.markdown @@ -0,0 +1,12 @@ +--- +layout: page +title: "Garage door" +description: "Instructions how to integrate Garage doors into Home Assistant." +date: 2016-02-12 07:00 +sidebar: true +comments: false +sharing: true +footer: true +--- + +Home Assistant can give you an interface to control any garage door. diff --git a/source/_components/garage_door.wink.markdown b/source/_components/garage_door.wink.markdown new file mode 100644 index 00000000000..423ada3af92 --- /dev/null +++ b/source/_components/garage_door.wink.markdown @@ -0,0 +1,18 @@ +--- +layout: page +title: "Wink Garage door" +description: "Instructions how to setup the Wink garage doors within Home Assistant." +date: 2016-02-12 07:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: wink.png +ha_category: Garage Door +--- + + +The Wink garage door platform allows you to control your [Wink](http://www.wink.com/) enabled garage door. + +The requirement is that you have setup your [Wink hub](/components/light.wink/). + From 0fca778fded098cb6a51e1815adadff43401f6ff Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 12 Feb 2016 08:40:42 +0100 Subject: [PATCH 32/34] Update --- source/developers/credits.markdown | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/source/developers/credits.markdown b/source/developers/credits.markdown index f905195ab22..0a636ef9aee 100644 --- a/source/developers/credits.markdown +++ b/source/developers/credits.markdown @@ -32,12 +32,16 @@ This page contains a list of people who have contributed in one way or another t - [Carlo Costanzo](https://github.com/CCOSTAN) - [Chris Mulder](https://github.com/chrisvis) - [Daniel Iversen](https://github.com/danielhiversen) +- [Dan Smith](https://github.com/kk7ds) - [Daren Lord](https://github.com/Xorso) - [Dean Galvin](https://github.com/FreekingDean) - [Edwin Smulders](https://github.com/Dutchy-) +- [Ellis Percival](https://github.com/flyte) +- [Eric Rolf](https://github.com/xrolfex) - [ettisan](https://github.com/ettisan) - [Fabian Affolter](https://github.com/fabaff) - [Finbarr Brady](https://github.com/fbradyirl) +- [Flavio Castelli](https://github.com/flavio) - [Geoff Norton](https://github.com/kangaroo) - [goir](https://github.com/goir) - [gottsman](https://github.com/gottsman) @@ -60,6 +64,7 @@ This page contains a list of people who have contributed in one way or another t - [Julien Danjou](https://github.com/jd) - [kennedyshead](https://github.com/kennedyshead) - [kixam](https://github.com/kixam) +- [Lukas Hetzenecker](https://github.com/lukas-hetzenecker) - [Magnus Knutas](https://github.com/MagnusKnutas) - [MakeMeASandwich](https://github.com/MakeMeASandwich) - [Markus Stenberg](https://github.com/fingon) @@ -71,6 +76,7 @@ This page contains a list of people who have contributed in one way or another t - [molobrakos](https://github.com/molobrakos) - [Moon Shot](https://github.com/moonshot) - [Nick Touran](https://github.com/partofthething) +- [Nick Waring](https://github.com/nickwaring) - [Nolan Gilley](https://github.com/nkgilley) - [Oliver van Porten](https://github.com/mcdeck)) - [Pascal Bach](https://github.com/bachp) @@ -85,9 +91,12 @@ This page contains a list of people who have contributed in one way or another t - [Ryan Kraus](https://github.com/rmkraus) - [Ryan Turner](https://github.com/ryanturner) - [sander76](https://github.com/sander76) +- [Sean Dague](https://github.com/sdague) - [sfam](https://github.com/sfam) - [Stefan Jonasson](https://github.com/stefan-jonasson) +- [St. John Johnson](https://github.com/stjohnjohnson) - [TangoAlpha](https://github.com/TangoAlpha) +- [Theb-1](https://github.com/Theb-1) - [Theodor Lindquist](https://github.com/theolind) - [toddeye](https://github.com/toddeye) - [Tom Duijf](https://github.com/tomduijf) From 78b510165db1b8e79750d05bc03652c22a09d5a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Per=20Sandstr=C3=B6m?= Date: Fri, 12 Feb 2016 22:13:38 +0100 Subject: [PATCH 33/34] kodi host and port in config --- source/_components/media_player.kodi.markdown | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/_components/media_player.kodi.markdown b/source/_components/media_player.kodi.markdown index b2e95c22e75..b32df727b43 100644 --- a/source/_components/media_player.kodi.markdown +++ b/source/_components/media_player.kodi.markdown @@ -21,7 +21,8 @@ To add Kodi to your installation, add the following to your `configuration.yaml` # Example configuration.yaml entry media_player: platform: kodi - url: http://192.168.0.123/jsonrpc + host: 192.168.0.123 + port: 8080 name: Kodi user: USERNAME password: PASSWORD @@ -30,6 +31,8 @@ media_player: Configuration variables: - **url** *Required*: The URL of the XBMC/Kodi JSON-RPC API, eg. http://192.168.0.123/jsonrpc +- **host** *Required*: The host name or address of the device +- **port** *Required*: The port number, default 8080 - **name** *Optional*: The name of the device used in the frontend. - **username** *Optional*: The XBMC/Kodi HTTP username. - **password** *Optional*: The XBMC/Kodi HTTP password. From 55122e63b1f4a5affa2fed037ea574fe7c364551 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 12 Feb 2016 19:38:19 -0800 Subject: [PATCH 34/34] Update media_player.kodi.markdown --- source/_components/media_player.kodi.markdown | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/source/_components/media_player.kodi.markdown b/source/_components/media_player.kodi.markdown index b32df727b43..e95acad3631 100644 --- a/source/_components/media_player.kodi.markdown +++ b/source/_components/media_player.kodi.markdown @@ -30,8 +30,7 @@ media_player: Configuration variables: -- **url** *Required*: The URL of the XBMC/Kodi JSON-RPC API, eg. http://192.168.0.123/jsonrpc -- **host** *Required*: The host name or address of the device +- **host** *Required*: The host name or address of the device that is running XBMC/Kodi - **port** *Required*: The port number, default 8080 - **name** *Optional*: The name of the device used in the frontend. - **username** *Optional*: The XBMC/Kodi HTTP username.