From 22a0db3eae73b5b5c29601acd74f31b44bf24cf8 Mon Sep 17 00:00:00 2001 From: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com> Date: Wed, 30 Jan 2019 19:43:30 -0600 Subject: [PATCH 01/68] New component SmartThings and switch platform (#8184) * Added SmartThings component and switch platform documentation. * Minor changes per style guidelines * Embedded switch platform. * :pencil2: Tweaks --- source/_components/smartthings.markdown | 73 ++++++++++++++++++ .../_components/smartthings.switch.markdown | 19 +++++ .../supported_brands/samsung_smartthings.png | Bin 0 -> 7368 bytes 3 files changed, 92 insertions(+) create mode 100644 source/_components/smartthings.markdown create mode 100644 source/_components/smartthings.switch.markdown create mode 100644 source/images/supported_brands/samsung_smartthings.png diff --git a/source/_components/smartthings.markdown b/source/_components/smartthings.markdown new file mode 100644 index 00000000000..961e98c6241 --- /dev/null +++ b/source/_components/smartthings.markdown @@ -0,0 +1,73 @@ +--- +layout: page +title: "SmartThings" +description: "Instructions on setting up Samsung SmartThings within Home Assistant." +date: 2018-01-14 00:00 +sidebar: true +comments: false +sharing: true +footer: true +featured: true +logo: samsung_smartthings.png +ha_category: Hub +ha_release: "" +ha_iot_class: "Cloud Push" +--- + +Samsung SmartThings is integrated into Home Assistant through the SmartThings Cloud API. The SmartThings component is the main component to integrate all SmartThings related platforms. The basic features of this integration include: + +1. Controlling SmartThings devices with pushed state updates from SmartThings. +2. Entities automatically added, removed, or updated when changed in SmartThings (upon Home Assistant restart). +3. Support for multiple SmartThings accounts and locations, each represented as a unique integration in the front-end configuration. +4. No brokers, bridges, or additional dependencies. + +## {% linkable_title Basic requirements %} + +1. A [personal access token](https://account.smartthings.com/tokens) tied to a Samsung or SmartThings account (see below for instructions). +2. Home Assistant setup for [remote access](/docs/configuration/remote/) via a domain name secured with SSL. *Self-signed SSL certificates are not supported by the SmartThings Cloud API.* +3. [`base_url` of the http component](/components/http#base_url) set the URL that Home Assistant is available on the internet. + +## {% linkable_title Setup instructions %} + +### {% linkable_title Create personal access token %} + +1. Log into the [personal access tokens page](https://account.smartthings.com/tokens) and click '[Generate new token](https://account.smartthings.com/tokens/new)' +2. Enter a token name (can be whatever you want), for example, 'Home Assistant' and select the following authorized scopes: + - Devices (all) + - Installed Apps (all) + - Locations (all) + - Apps (all) + - Schedules (all) + - Scenes (all) +3. Click 'Generate token'. When the token is displayed, copy and save it somewhere safe (such as your keystore) as you will not be able to retrieve it again. + +### {% linkable_title Configure Home Assistant %} + +
+The SmartThings component is configured exclusively through the front-end. Manual setup through `configuration.yaml` is not available at this time. +
+ +1. From the Home Assistant front-end, navigate to 'Configuration' then 'Integrations'. Under 'Set up a new integration' locate 'SmartThings' and click 'Configure'. +2. Enter the personal access token created above and click 'Submit' +3. When prompted, install the SmartApp: + 1. Open the SmartThings mobile app. Navigate to 'Automation' and select the 'SmartApps' tab. + 2. Click 'Add a SmartApp', scroll to the bottom, and select 'My Apps', then choose 'Home Assistant'. + 3. Optionally change the display name and press 'Done' + 4. Authorize the app by pressing 'Allow' +4. Return to Home Assistant and click 'Submit'. + ++Advanced: If you have multiple locations in SmartThings, each can be integrated into Home Assistant. Follow the steps above, then for each subsequent location, install the SmartApp and it will automatically add to Home Assistant. This can be completed during step 3 (install SmartApp) above or at any time after that. +
+ +## {% linkable_title Additional information %} + +### Supported capabilities/device mapping + +SmartThings represents devices as a set of [capabilities](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html) and the SmartThings component follows the following rules to represent those as entities in Home Assistant: + +| Capability |Platform +|-------------------|------------------------------------------------------------| +| [switch](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) | [switch](/components/smartthings.switch) + +Support for additional capabilities will be added in the future. diff --git a/source/_components/smartthings.switch.markdown b/source/_components/smartthings.switch.markdown new file mode 100644 index 00000000000..0727e9f4a75 --- /dev/null +++ b/source/_components/smartthings.switch.markdown @@ -0,0 +1,19 @@ +--- +layout: page +title: "SmartThings Switch" +description: "Instructions on setting up Samsung SmartThings switches within Home Assistant." +date: 2018-01-14 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: samsung_smartthings.png +ha_category: Switch +ha_release: "" +ha_iot_class: "Cloud Push" +--- + +The SmartThings switch platform lets you control Samsung SmartThings connected devices that have the [switch capability](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch). + ++Entities for this platform are loaded automatically when you configure the [SmartThings component](/components/smartthings). This platform cannot be manually configured.
\ No newline at end of file diff --git a/source/images/supported_brands/samsung_smartthings.png b/source/images/supported_brands/samsung_smartthings.png new file mode 100644 index 0000000000000000000000000000000000000000..585c1db0d9c0de7b5d7c1ad3f93f7212c73dd306 GIT binary patch literal 7368 zcmV;(95>^MP)+!WM
z)*ThJY8Y4-%)0|tGrSa(u$fypr^Rk7Wmpm@G%MrIOxPlx1it?Lv(*dr!)_IUdBwI@
z@0rSOiY{AsZdUbgJ?!z|qzX-p!;cmk-i52Do
-Entities for this platform are loaded automatically when you configure the [SmartThings component](/components/smartthings). This platform cannot be manually configured.
+Entities for this platform are loaded automatically when you configure the [SmartThings component](/components/smartthings). This platform cannot be manually configured.
-Entities for this platform are loaded automatically when you configure the [SmartThings component](/components/smartthings). This platform cannot be manually configured.
-
-
-
-
+
+
+
+
+Any leading and trailing whitespace is stripped from usernames before they're passed to the configured command. For instance, " hello " will be rewritten to just "hello". +
+ ++For now, meta variables are only respected the first time a particular user is authenticated. Upon subsequent authentications of the same user, the previously created user object with the old values is reused. +
+ ### {% linkable_title Legacy API password %}
From c2d98501f5e7c4030c46822d63a07f0d7028908d Mon Sep 17 00:00:00 2001
From: Markus Jankowski <5650106+SukramJ@users.noreply.github.com>
Date: Thu, 7 Feb 2019 21:15:16 +0100
Subject: [PATCH 16/68] Added components to Homematic IP Overview (#8438)
* Added additional HmIP Components to doc
* Fixed component name
* Added missing star
---
source/_components/homematicip_cloud.markdown | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/source/_components/homematicip_cloud.markdown b/source/_components/homematicip_cloud.markdown
index 42ee4b27e2a..21949240ba3 100644
--- a/source/_components/homematicip_cloud.markdown
+++ b/source/_components/homematicip_cloud.markdown
@@ -64,7 +64,7 @@ authtoken:
- Security zones (*HmIP-SecurityZone*)
- homematicip_cloud.binary_sensor
- - Window and door contact (*HmIP-SWDO*)
+ - Window and door contact (*HmIP-SWDO, HmIP-SWDO-I*)
- Rotary Handle Sensor (*HmIP-SRH*)
- Smoke sensor and alarm (*HmIP-SWSD*)
- Motion detectors (*HmIP-SMI*)
@@ -86,6 +86,8 @@ authtoken:
- Temperature and humidity Sensor with display (*HmIP-STHD*)
- Outdoor temperature and humidity sensor (*HmIP-STHO*)
- Illuminance sensor (*HmIP-SMI, 55*)
+ - Light sensor Outdoor (*HmIP-SLO*)
- homematicip_cloud.switch
- Pluggable Switch and Meter (*HmIP-PSM*)
+ - Full flush Switch and Meter (*HmIP-FSM, HmIP-FSM16*)
From 849ba03af70b93575979d2fcee0eb67a8b43edcd Mon Sep 17 00:00:00 2001
From: Eliseo Martelli
Full configuration details can be found on the main [Spider component](/components/spider/) page.
From 8e2f84510276a52e637df9fd865504c3bc0aff5f Mon Sep 17 00:00:00 2001
From: Aaron Bach
-Please note that the scene component currently only supports one service call per entity to achieve the state. Due to this limitation, you cannot set states belonging to different services. A workaround for this limitation is to write a script, which you then turn on in your scene.
+Please note that the scene component for the most part only supports one service call per entity to achieve the state. Due to this limitation, you cannot set states belonging to different services. A workaround for this limitation is to write a script, which you then turn on in your scene. A few components have direct support for multiple service calls per state, Currently this is the media_player and climate components.
@@ -144,16 +163,36 @@ light:
### {% linkable_title Effects %}
-The FLUX_LED light offers a number of effects which are not included in other lighting packages. These can be selected from the front-end, or sent in the effect field of the light TURN_ON command.
+The Flux Led light offers a number of effects which are not included in other lighting packages. These can be selected from the front-end, or sent in the effect field of the `light.turn_on` command.
-| Effect Name | Description |
-|------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|
-| colorloop | Smoothly transitions through the rainbow |
-| colorjump | Jumps through seven different rainbow colors. |
-| colorstrobe | Strobes each rainbow color in a loop. |
-| random | Chooses a random color by selecting random values for R, G, and B |
-| red_fade, green_fade, blue_fade, yellow_fade, cyan_fade, purple_fade, white_fade | Fades between the color as indicated in the effect name and black. |
-| rg_cross_fade | Fades between red and green. |
-| rb_cross_fade | Fades between red and blue. |
-| gb_cross_fade | Fades between green and blue |
-| red_strobe, green_strobe, blue_strobe, yellow_strobe, cyan_strobe, purple_strobe, white_strobe | Strobes the color indicated by the effect name. |
+| Effect Name | Description |
+|--------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|
+| `colorloop` | Smoothly transitions through the rainbow. |
+| `colorjump` | Jumps through seven different rainbow colors. |
+| `colorstrobe` | Strobes each rainbow color in a loop. |
+| `red_fade`, `green_fade`, `blue_fade`, `yellow_fade`, `cyan_fade`, `purple_fade`, `white_fade` | Fades between the color as indicated in the effect name and black. |
+| `rg_cross_fade` | Fades between red and green. |
+| `rb_cross_fade` | Fades between red and blue. |
+| `gb_cross_fade` | Fades between green and blue. |
+| `red_strobe`, `green_strobe`, `blue_strobe`, `yellow_strobe`, `cyan_strobe`, `purple_strobe`, `white_strobe` | Strobes the color indicated by the effect name. |
+| `random` | Chooses a random color by selecting random values for R, G, and B. |
+| `custom` | Custom effect (if defined, see below). |
+
+Users can define their own custom effect. It consists of three parameters: a list of 1 to 16 colors, speed and type of transition. The controller will transition between the colors in a loop, with sepcified transition and speed. Here is an example of a custom effect that will quickly flash red, yellow, green, cyan, blue, magenta in a loop:
+
+```yaml
+light:
+ - platform: flux_led
+ devices:
+ 192.168.1.10:
+ custom_effect:
+ speed_pct: 100
+ transition: 'strobe'
+ colors:
+ - [255,0,0]
+ - [255,255,0]
+ - [0,255,0]
+ - [0,255,255]
+ - [0,0,255]
+ - [255,0,255]
+```
From 33a45d30a95df5e460fa29c55c800dd3f810db7f Mon Sep 17 00:00:00 2001
From: Matt Snyder
The URLs on the event will be based on the configuration used to connect to your Doorbird device. Ability to connect from outside your network will depend on your configuration.
+ Not filtering domains or entities will send every event to Google PubSub, thus hitting the free tier limit very fast. Be sure to fill in this configuration parameter or have a paid subscription for Google Cloud.
+ ;)D`+-%iMT?mahU*yE
@@ -61,4 +66,4 @@ climate:
- platform: flexit
name: Main A/C
slave: 21
-```
\ No newline at end of file
+```
diff --git a/source/_components/climate.modbus.markdown b/source/_components/climate.modbus.markdown
index 77d62c2cf86..6aa4b250ad6 100644
--- a/source/_components/climate.modbus.markdown
+++ b/source/_components/climate.modbus.markdown
@@ -25,6 +25,7 @@ To use your Modbus thermostat in your installation, add the following to your `c
climate:
- platform: modbus
name: Watlow F4T
+ hub: hub1
slave: 1
target_temp_register: 2782
current_temp_register: 27586
@@ -35,6 +36,11 @@ name:
description: Name of the device
required: true
type: string
+hub:
+ description: The name of the hub.
+ required: false
+ default: default
+ type: string
slave:
description: The number of the slave (Optional for tcp and upd Modbus, use 1).
required: true
diff --git a/source/_components/modbus.markdown b/source/_components/modbus.markdown
index e08cd84e03a..fe3ffbbcd79 100644
--- a/source/_components/modbus.markdown
+++ b/source/_components/modbus.markdown
@@ -28,6 +28,7 @@ For a network connection, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry for a TCP connection
modbus:
+ name: hub1
type: tcp
host: IP_ADDRESS
port: 2020
@@ -46,6 +47,11 @@ port:
description: The network port for the communication.
required: true
type: integer
+name:
+ description: Name for this hub. Must be unique, so it is required when setting up multiple instances.
+ required: false
+ default: default
+ type: string
timeout:
description: Timeout for slave response in seconds.
required: false
@@ -60,6 +66,7 @@ For a serial connection, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry for a serial connection
modbus:
+ name: hub1
type: serial
method: rtu
port: /dev/ttyUSB0
@@ -98,6 +105,11 @@ parity:
description: "The parity for the serial connection; can be `E`, `O` or `N`."
required: true
type: string
+name:
+ description: Name for this hub. Must be unique, so it is required when setting up multiple instances.
+ required: false
+ default: default
+ type: string
timeout:
description: Timeout for slave response in seconds.
required: false
@@ -105,17 +117,36 @@ timeout:
type: integer
{% endconfiguration %}
+### {% linkable_title Multiple connections %}
+
+Multiple connections are possible, add something like the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry for multiple TCP connections
+modbus:
+ - type: tcp
+ host: IP_ADDRESS_1
+ port: 2020
+ hub: hub1
+
+ - type: tcp
+ host: IP_ADDRESS_2
+ port: 501
+ hub: hub2
+```
+
### {% linkable_title Services %}
| Service | Description |
| ------- | ----------- |
-| write_register | Write register. Requires `unit`, `address` and `value` fields. `value` can be either single value or an array |
+| write_register | Write register. Requires `hub`, `unit`, `address` and `value` fields. `value` can be either single value or an array |
#### {% linkable_title Service Data Attributes %}
| Attribute | Description |
| --------- | ----------- |
+| hub | Hub name (defaults to 'default' when omitted) |
| unit | Slave address (set to 255 you talk to Modbus via TCP) |
| address | Address of the Register (e.g., 138) |
| value | An array of 16-bit values. Might need reverse ordering. E.g., to set 0x0004 you might need to set `[4,0]` |
diff --git a/source/_components/sensor.modbus.markdown b/source/_components/sensor.modbus.markdown
index bc6b78b8e30..cc4cd589785 100644
--- a/source/_components/sensor.modbus.markdown
+++ b/source/_components/sensor.modbus.markdown
@@ -26,15 +26,18 @@ sensor:
platform: modbus
registers:
- name: Sensor1
+ hub: hub1
unit_of_measurement: °C
slave: 1
register: 100
- name: Sensor2
+ hub: hub1
unit_of_measurement: mg
slave: 1
register: 110
count: 2
- name: Sensor3
+ hub: hub1
unit_of_measurement: °C
slave: 1
register: 120
@@ -55,6 +58,11 @@ registers:
description: Name of the sensor.
required: true
type: string
+ hub:
+ description: The name of the hub.
+ required: false
+ default: default
+ type: string
slave:
description: The number of the slave (Optional for tcp and upd Modbus).
required: true
@@ -118,6 +126,7 @@ sensor:
scan_interval: 10
registers:
- name: Room_1
+ hub: hub1
slave: 10
register: 0
register_type: holding
diff --git a/source/_components/switch.modbus.markdown b/source/_components/switch.modbus.markdown
index 4e897a296b3..c31dc5c458a 100644
--- a/source/_components/switch.modbus.markdown
+++ b/source/_components/switch.modbus.markdown
@@ -26,6 +26,7 @@ switch:
slave: 1
coils:
- name: Switch1
+ hub: hub1
slave: 1
coil: 13
- name: Switch2
@@ -33,6 +34,7 @@ switch:
coil: 14
registers:
- name: Register1
+ hub: hub1
slave: 1
register: 11
command_on: 1
@@ -45,6 +47,11 @@ coils:
required: false
type: map
keys:
+ hub:
+ description: The name of the hub.
+ required: false
+ default: default
+ type: string
slave:
description: The number of the slave (can be omitted for tcp and udp Modbus).
required: true
@@ -62,6 +69,11 @@ register:
required: false
type: map
keys:
+ hub_name:
+ description: The hub to use.
+ required: false
+ default: default
+ type: string
slave:
description: The number of the slave (can be omitted for tcp and udp Modbus).
required: true
From b3df16f6ee370533543a3f2ee1eab2131c01d037 Mon Sep 17 00:00:00 2001
From: Tony763
+Currently fast.com only supports measuring download bandwidth. If you want to measure bandwidth metrics other then download such as ping and upload, utilize the [speedtest](/components/sensor.speedtest) component.
+
-Currently fast.com only supports measuring download bandwidth. If you want to measure bandwidth metrics other then download such as ping and upload, utilize the [speedtest](/components/sensor.speedtest) component.
-
+This component currently only covers part of the device types supported by the XS1 gateway, unsupported types are simply ignored.
+
+If you are using climate devices the "current temp" sensor will be automatically used by the actuator (if named correctly). To make this work have a look at the actuator description below.
+ |Lj7wxI4gPv-YIUXkSLxjB$>h3b#
zTr+k=b#lM0hh$16bwg-3%o)6pk4WZ~rtq(0X_bBy&NzNF$UvuP8d2~>4<>SV74KMz
zgGRv(@>^<{_dY9-z=l8)>qYS9`L(eG8Mf)LQsl7D)*@Kx=iNl$v0a$*Ej1WgG<~CF
zh(r^PSc%)Vs{u3Wv@$Wj-3@Czf#ky%u9i*vD|P?+@uF#$p9OJ*{P%;hZvgKR-!MPt
z9tq;Pkb0!T#7uR$sKSyVt8yWVFM@*Nd$UdbWg#XtJHz}rP}_$cQw4@vtnAB}IQg!lU8gf6cAd_spFx#%I#cqN(*?5b*qD$azn<~|
z-@|ryDhKQi{VA}!(35>90=W1r8G7P?%|tLv2i|r%oy`i3kUPpCK|Z?!c8A&o>;oyE
z2A}
fy9ftTW_vj!(PttjFW5
zBN$f-l_vcE-j`izGXn8%pou}cC#nY>?fruYF@Ox&1_@wF1`kNP1pbjo&OsY6L~~~j
z{wk3LmY@Vw5$R?S|31K^rCQY16OrO=aW>r!e?}o%Ch*o;9t4bM3UaWiK%n
zjfn4BMXnzf6VnZ~uc+!fa={cwH=x>{wf~0i_8hf}?!JkBSCcaa!&+%~J>c=(=*ck(8sdZ&*9Ic@e*2D#j%|s=8Qxt?5^8T^X%{3pCfr40sJ|P0k@58s
zOG(G67X2a)Mff6$sS_{UXbzu8R${%frC=aEtm?S{zF!NmSA8X+p0JofEvvUZo;9!u
z^S^wLL&1k9tg7}a!+f17ufa
m9udf6iw&aZ@gQvNQr!Uyfzm%+-
ze7MQ@_soA)79dX-cydh|*ty!^
X#7)OyZ-NtuQ4z{)+n8;KL5eu)piongV2`&Go9CpxfcN7N