From e96375e09e8c9684a55ac1ad220199a8f809ea3d Mon Sep 17 00:00:00 2001 From: Juha Niemi Date: Fri, 27 Jul 2018 12:16:25 +0300 Subject: [PATCH] Add documentation page for FutureNow Lights (#5875) * P5 brand logo * Documentation page for FutureNow light component * Documentation page for FutureNow light component * Documentation page for FutureNow light component * Documentation update to reflect code fine-tunes. Separated an extended configuration example. --- source/_components/light.futurenow.markdown | 97 ++++++++++++++++++++ source/images/supported_brands/p5.png | Bin 0 -> 25860 bytes 2 files changed, 97 insertions(+) create mode 100644 source/_components/light.futurenow.markdown create mode 100644 source/images/supported_brands/p5.png diff --git a/source/_components/light.futurenow.markdown b/source/_components/light.futurenow.markdown new file mode 100644 index 00000000000..fac13214fca --- /dev/null +++ b/source/_components/light.futurenow.markdown @@ -0,0 +1,97 @@ +--- +layout: page +title: "P5 FutureNow Lights" +description: "Instructions on how to set up P5 FutureNow relay/dimmer units as lights within Home Assistant." +date: 2018-07-24 15:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: p5.png +ha_category: Light +ha_release: 0.75 +--- + +The `futurenow` light platform allows you to use [P5](http://www.p5.hu) FutureNow relay/dimmer units as lights. Currently supported units: +* [FutureNow FNIP-6x2AD](http://www.p5.hu/index.php/products/ethernet-modules/265-fnip-6x2ad) dimmer unit (outputs only) +* [FutureNow FNIP-8x10A](http://www.p5.hu/index.php/products/ethernet-modules/263-fnip-8x10a) relay unit (outputs only) + +### {% linkable_title Configuration Sample %} + +To use your FutureNow units, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +light: + - platform: futurenow + driver: FNIP6x10ad + host: 192.168.1.101 + port: 7078 + devices: + 5: + name: Dimmer Channel 5 + dimmable: true +``` + +{% configuration %} +driver: + description: "Type of the device. Currently `FNIP6x10ad` or `FNIP8x10a`." + required: true + type: string +host: + description: "The IP address or hostname of your unit, e.g., `192.168.1.101`." + required: true + type: string +port: + description: "The TCP port, as set in the unit's settings. Default is `7078`." + required: true + type: string +devices: + description: "List of output channels to set up as lights." + required: true + type: map + keys: + channel_number: + description: "Output's (light) properties." + required: true + type: map + keys: + name: + description: "The name of the light." + required: true + type: string + dimmable: + description: "Set to `true` to enable dimming (FNIP6x10ad only)." + required: false + type: boolean + default: false +{% endconfiguration %} + +### {% linkable_title Extended Configuration Sample %} + +The following example `configuration.yaml` has two different FutureNow units with multiple channels: + +```yaml +# Example configuration.yaml entry +light: + - platform: futurenow + driver: FNIP6x10ad + host: 192.168.1.101 + port: 7078 + devices: + 5: + name: Dimmer Channel 5 + 6: + name: Dimmer Channel 6 + dimmable: true + + - platform: futurenow + driver: FNIP8x10a + host: 192.168.1.102 + port: 7078 + devices: + 1: + name: Relay Channel 1 + 2: + name: Relay Channel 2 +``` diff --git a/source/images/supported_brands/p5.png b/source/images/supported_brands/p5.png new file mode 100644 index 0000000000000000000000000000000000000000..318776899298748dadaa6f258f6aed45d207f67e GIT binary patch literal 25860 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

IdpXK~GGq#_#*}#-jzKnD{(Qt5c~Q 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