From ac342c9c84171e299f08197d0a248b8fe85a4b19 Mon Sep 17 00:00:00 2001 From: tetienne Date: Tue, 18 Jun 2019 21:16:09 +0100 Subject: [PATCH] Somfy open api (#9625) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * CREATE documentation for new Somfy component - See home-assistant/home-assistant#19548 * UPDATE ha_release * UPDATE ha_release to 0.95 * UPDATE ha_release to 0.95 * MERGE cover documentation within main one * UPDATE No more notification, use Integrations * :pencil2: Tweak * :pencil2: Tweaks * REMOVE qa scale --- source/_components/somfy.markdown | 64 +++++++++++++++++++++++ source/images/supported_brands/somfy.png | Bin 0 -> 18831 bytes 2 files changed, 64 insertions(+) create mode 100644 source/_components/somfy.markdown create mode 100644 source/images/supported_brands/somfy.png diff --git a/source/_components/somfy.markdown b/source/_components/somfy.markdown new file mode 100644 index 00000000000..6a7d4a5fad2 --- /dev/null +++ b/source/_components/somfy.markdown @@ -0,0 +1,64 @@ +--- +layout: page +title: "Somfy" +description: "Instructions on how to set up the Somfy hub within Home Assistant." +date: 2019-06-07 12:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: somfy.png +ha_category: + - Hub +ha_iot_class: Cloud Polling +ha_release: 0.95 +--- + +The Somfy component will allow users to integrate their Somfy devices into Home Assistant using the [official API](https://developer.somfy.com/somfy-open-api/apis), unlike the [tahoma](/components/tahoma/) component. + +### {% linkable_title Setting up developer account %} + +To connect Somfy, you need to set up a developer account. + +1. Visit [https://developer.somfy.com](https://developer.somfy.com). +2. Log in using your Somfy credentials. +3. Open the *My Apps* menu. +4. Add a new App: + - App Name: Home Assistant + - Callback URL: `/auth/somfy/callback` + - Description: Home Assistant instance + - Product: Somfy Open API +5. Once Home Assistant restarted, go to Configuration>Integrations. +6. Select the Somfy integration. + +### {% linkable_title Configuration %} + +```yaml +# Example configuration.yaml entry +somfy: + client_id: CONSUMER_KEY + client_secret: CONSUMER_SECRET +``` + +{% configuration %} +client_id: + description: Your Somfy consumer key. + required: true + type: string +client_secret: + description: Your Somfy consumer secret. + required: true + type: string +{% endconfiguration %} + +### {% linkable_title Potential duplicate with the Tahoma component %} + +If you use the [tahoma](/component/tahoma) component, you will have to exclude the covers added by this one. Otherwise, they will be added twice. + +```yaml +# Example configuration.yaml entry +tahoma: + username: YOUR_USERNAME + password: YOUR_PASSWORD + exclude: ['rts:RollerShutterRTSComponent','rts:CurtainRTSComponent','rts:BlindRTSComponent','rts:VenetianBlindRTSComponent','rts:DualCurtainRTSComponent','rts:ExteriorVenetianBlindRTSComponent','io:ExteriorVenetianBlindIOComponent','io:RollerShutterUnoIOComponent','io:RollerShutterWithLowSpeedManagementIOComponent','io:RollerShutterVeluxIOComponent','io:RollerShutterGenericIOComponent','io:WindowOpenerVeluxIOComponent','io:VerticalExteriorAwningIOComponent','io:HorizontalAwningIOComponent'] +``` diff --git a/source/images/supported_brands/somfy.png b/source/images/supported_brands/somfy.png new file mode 100644 index 0000000000000000000000000000000000000000..f9ef2a55ae0a029db2354d7dc301673b80b99027 GIT binary patch literal 18831 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 literal 0 HcmV?d00001