From 8fec55fd04009a0efd95e7a3aeae2d0eb878b23b Mon Sep 17 00:00:00 2001 From: pbalogh77 Date: Wed, 21 Nov 2018 09:54:45 +0100 Subject: [PATCH] Fibaro initial support (#7493) * Fibaro initial support * :arrow_up: ha_release 0.83 * Update based on reviewer comments * :fire: Removes optional configuration from example config --- .../_components/binary_sensor.fibaro.markdown | 18 ++++++ source/_components/fibaro.markdown | 56 ++++++++++++++++++ source/images/supported_brands/fibaro.png | Bin 0 -> 25677 bytes 3 files changed, 74 insertions(+) create mode 100644 source/_components/binary_sensor.fibaro.markdown create mode 100644 source/_components/fibaro.markdown create mode 100644 source/images/supported_brands/fibaro.png diff --git a/source/_components/binary_sensor.fibaro.markdown b/source/_components/binary_sensor.fibaro.markdown new file mode 100644 index 00000000000..56c0e7086e2 --- /dev/null +++ b/source/_components/binary_sensor.fibaro.markdown @@ -0,0 +1,18 @@ +--- +layout: page +title: "Fibaro Binary Sensor" +description: "Instructions on how to integrate Fibaro binary sensors into Home Assistant." +date: 2018-11-14 23:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: fibaro.png +ha_category: Binary Sensor +ha_iot_class: "Local Push" +ha_release: 0.83 +--- + +The `fibaro` platform allows you to get data from your [Fibaro](http://fibaro.com/) binary sensors connected to your Fibaro HCL or HC2 from within Home Assistant. + +They will be automatically discovered if the `fibaro` component is loaded. diff --git a/source/_components/fibaro.markdown b/source/_components/fibaro.markdown new file mode 100644 index 00000000000..d7a69c04e73 --- /dev/null +++ b/source/_components/fibaro.markdown @@ -0,0 +1,56 @@ +--- +layout: page +title: "Fibaro" +description: "Instructions on how to setup Fibaro Z-Wave hubs (HCL and HC2) and configure devices within Home Assistant." +date: 2018-11-14 20:04 +sidebar: true +comments: false +sharing: true +footer: true +logo: fibaro.png +ha_category: Hub +ha_release: 0.83 +ha_iot_class: "Local Push" +--- + +The [Fibaro](http://fibaro.com) hub is a controller mainly connecting to Z-Wave devices. + +Switches, Lights (including Dimmers), Locks, Sensors, Binary sensors and Covers are supported - and will be automatically added when HA connects to your Fibaro controller. + +## {% linkable_title Configuration %} + +To use Fibaro devices in your installation, add the following to your configuration.yaml file using the IP and port number of your Fibaro controller: + +```yaml +fibaro: + url: http://192.168.1.161/api/ + username: your_username + password: your_password +``` + +{% configuration %} +url: + description: The URL for your Fibaro HomeCenter device. + required: true + type: url +username: + description: The username for your Fibaro account. + required: true + type: string +password: + description: The password for your Fibaro account. + required: true + type: string +plugins: + description: Whether to import plugin-generated devices from Fibaro HomeCenter, such as Netatmo and Sonos devices, etc. Default is false. + required: false + type: bool +{% endconfiguration %} + +

+ It is recommended to assign a static IP address to your Fibaro Controller. This ensures that it won't change IP addresses, so you won't have to change the 'url' if the controller reboots and comes up with a different IP address. See your router's manual for details on how to set this up. If you need the MAC address of your Fibaro, check the label on the bottom. +

+ +### {% linkable_title Using Z-Wave devices in automation %} + +If you want to use a Z-Wave device from the Fibaro controller in Home Assistant automation, you'll need the entity id. In the Home Assistant UI you'll find all entities listed under the service developer tool icon icon of the Developer Tools section. Look for entities that contain 'Fibaro Device Id' in their attributes, and you'll find the entity id on the left. diff --git a/source/images/supported_brands/fibaro.png b/source/images/supported_brands/fibaro.png new file mode 100644 index 0000000000000000000000000000000000000000..438b2087d03cbf905fbf38fe29d6b9ff43488477 GIT binary patch literal 25677 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