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 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 Date: Thu, 31 Jan 2019 03:48:10 +0100 Subject: [PATCH 02/68] Added documentation for ROVA sensor (#7780) * Added documentation for ROVA sensor * Update source/_components/sensor.rova.markdown Fixed example configuration Co-Authored-By: GidoHakvoort * Update sensor.rova.markdown * Update sensor.rova.markdown * Update sensor.rova.markdown * :pencil2: Tweak * Update sensor.rova.markdown Update ha_release --- source/_components/sensor.rova.markdown | 99 ++++++++++++++++++++++++ source/images/supported_brands/rova.jpg | Bin 0 -> 12391 bytes 2 files changed, 99 insertions(+) create mode 100644 source/_components/sensor.rova.markdown create mode 100644 source/images/supported_brands/rova.jpg diff --git a/source/_components/sensor.rova.markdown b/source/_components/sensor.rova.markdown new file mode 100644 index 00000000000..3ccc888443e --- /dev/null +++ b/source/_components/sensor.rova.markdown @@ -0,0 +1,99 @@ +--- +layout: page +title: "ROVA Sensor" +description: "Instructions on how to integrate ROVA sensor within Home Assistant." +date: 2018-12-08 18:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: rova.jpg +ha_category: Sensor +ha_release: 0.87 +ha_iot_class: "Cloud Polling" +--- + +[ROVA](https://rova.nl) is a waste collection company that operates in the center and east of the Netherlands. The `rova` platform uses an unofficial [ROVA](https://rova.nl) API to allow you to get your waste collection schedule and integrate this in your Home Assistant installation. + +## {% linkable_title Configuration %} + +To use the ROVA sensor in your installation, add the following to your configuration.yaml file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: rova + zip_code: ZIP_CODE + house_number: HOUSE_NUMBER +``` + +{% configuration %} +zip_code: + description: Your zip code. + required: true + type: string +house_number: + description: Your house number. + required: true + type: string +name: + description: Let you overwrite the name of the device in the frontend. + required: false + default: Rova + type: string +monitored_conditions: + description: ROVA information to be monitored. The following collection dates can be monitored. + required: false + type: list + keys: + bio: + description: Upcoming collection date of your biodegradable waste + paper: + description: Upcoming collection date of your paper waste + plastic: + description: upcoming collection date of your plastic waste + residual: + description: Upcoming collection date of your general waste +{% endconfiguration %} + +If no **monitored_conditions** are specified, only **bio** will be enabled. + +### {% linkable_title Full configuration sample %} + +A full configuration entry would look like the sample below. + +```yaml +# Example configuration.yaml entry +sensor: + - platform: rova + zip_code: ZIP_CODE + house_number: HOUSE_NUMBER + name: Rova + monitored_conditions: + - bio + - paper + - plastic + - residual +``` + +To have your Home Assistant installation remind you of upcoming waste collections, combine the `rova` platform with some [Automations](/docs/automation/) and a [notification platform](/components/notify/). + +{% raw %} +```yaml +# Example configuration.yaml entry for Rova waste collection reminder +automation: + - id: rova-garbage-bio-reminder + alias: 'Send Rova Bio waste collection reminder' + hide_entity: true + trigger: + - platform: time + at: '19:00:00' + condition: + - condition: template + value_template: "{% if (as_timestamp(states.sensor.rova_garbage_gft.state) - as_timestamp(now())) < 43200 %}true{% endif %}" + action: + - service: NOTIFICATION_SERVICE + data: + message: 'Reminder: put out biowaste bin' +``` +{% endraw %} diff --git a/source/images/supported_brands/rova.jpg b/source/images/supported_brands/rova.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ead2f2b7cfec7754a7340a5a72bf7c722e7e53b2 GIT binary patch literal 12391 zcmbVy2|QHq+xOTKk?cF!w^XubU$Tcx7`r0-nw>C}P$T;m*_V)IBC=D~$i9tGLS$#G zgE8JSqF=xN`@Em`d7kmP&6)e0bD#U#uXA1BM9@{930R+;16_+0ZA!= zl@;`Kz>=439|$_QS=(Or7P@-&7G?$}rpugHc`mbG z;b3Co73aHhT}VVkgq7!}jKmG;tHL5Tu#4aj5fPDGAfY2ArMtn##CGF<{5k#zB0rBK zh3k!n!w$kF$H61VIc^29ffR@0e@J!XNleyx4#l!h)Zl>)PGL*;r$odwv~=_gT--do zeEcG!V&W1vC6#U|tEj4}Yuwe-H-H!#8CyNDwz0LdckuA^^7ird^ACO&5*qgW1uQl$ zJ|QvbRdPypPHx_t{DQ)_fS$2Z(7nMW(rsSkg`?`|lC<^nXR!AHx2jYaB#^hXV)? zj~pZi+B;CvR0dIjEfXIT^JYIL<`dGCC!o?j8{dD=V$Yn8i`%-&Am)Ya$Ze3WGS$iO z$%gTQ{-GJ7c{6cg|Bn$1(RjYfQ7SRzz?blknZ=`qy`X|;Moqj zfOWy(eq8W?sy~P~JGvit;DmH8&^3PzQ3!K4Tb~bUg`9CL4)(Ab_9>B6wo-;21{07MWBbS^8fNJb>m={h7JEJG3;p`^h zTm5h0dSk`SXZKrju`rPFDJeL-dD)LC63^DxFqXQ5tBX~V_zGaF%mtaav599q1*AX# zu=p|Y?|ZS5zzPA-2oSLJ`iUA5X=3+{eKeOK7f6uGJ2w+I@wdhRk2;kgpB=D>6hJ>0 zRYg3gA|Ctighe)qk11g0!`Pqdr_2R-$tB2KfL$F-{F@2b#{-m}YSam{v75b|2XI4p z{Y(I7?EP!lMXwC7O1!ATCW?sY2^0eyt;G(KbIA2{gvLk9v?!i+{W{He=%6H^z{wd=Lv@#~; zLWTNDw@Ul&3`<*N+K18l=hcd5I;C_SgF@1#%?_azDl*V3#eb8Zo7C+y#)7{HZK|2<&n)a5#eO;T!W2zf{f7I9NR%g#8tCsS|&w-^Q zEZ(JZ5P6hHrO8l#84pm}sGKFxGUnpJ_~SP9)?P3kU++R{&F>M_T5Ok3 z@AO5)CwC?>H!~M-2ETnj)>5(Jf&KA#fVuPjOCo@wsXFkUdLZognHM@UpjBn82k<#@ zSEr)esTYm74Wlkekii^^-bgDbQzW z&Rx_@AMrv`6eEO0>{Md=72Sl#ATNB!e3kT(oQSF*w(2WXs&ghv^;hM_;ZFBT^Gxtr z&X-CA2ySH7IR@vyr@1+1?VPdKYd^iDlKR>i9b!z8QeO5`*94_8bDtnItz?Ok1q2}` z`$_5#d4|SwWKvw)yB*uCUDlf9)J=GJ%d#$MrR080246E)*XIp%9|TRf>$ork=&$#0?`k_c^H8Eza^8(hWo)vdWYj~#;^9fL|t z;gM)vo)>5Z&aRG?Xms?oD)_8vgL`jLQ*B_PMeKmy-BLIYiWTf@(MBW7KSVGW!>_j* z%YFFyduWwoOCzZ%qsfth-vc7MXaS9$kA%`tiTZXDj{ zB)b#~!@$}6tJ-$J2oz=bo$?rz+0*pPm|r-MUUrbV zH~S?*@ECM~wi&ujUxi+TPFtdMFu`KSpfr~D{LM1#j$i^wK;Vd&mOCJsz<4e+UiLNj zGvM{I%Z;ffuHo!o7`CvE&I9*W#8}V!xGYKt&-Xmo7`!Eq%A5qZV{WB82E||=5*qwgziSca?k>>QR8s4>DSYk~d zN*gV73{nVpJzR?V>o}vl@N4+EQq6#_-u9|?pFst!fpGB#g`TA6=b{8s6BV!zu`zGv zeIWP3)m65%@U2oDav2}p0zai6TIUdFPYF-_tgY_i0)|K(gNUX=04M!`IfzS3l-Wkp)uIN_KB*@_Y2;m5W69U2Dsr-M@4U zx@V+**m=%{UPl?T>Th1@?|DSCxvFB!oBVOFEuiR;kIc~u0&>yZ$nd>TDgRJ;*>*Aw zk-^)gK0A!H{~aQZ@3D1JVX_QbckenIpa}-I*T1XvO4u+xIdV)Fa`#ppohiH2GU#Pn zE`E9FV#u_!fC2}G+jyr-dik5>=b47LB4exiEu~m-e0QxI^TF_U`I287V@F# zgL}E+bTx);5;B}(z3rd)+Vv56mk!-S6bvc!%1Z+h*}dadd6fPB8!cejvy#n#H^(oS zOO&v*f8h2!=SsI5C|?R6+%13ShWe^GDUz~da5)KV@9!BRGB!c71VxY^2{=%385^jG z7V+!WNwQL-P1RU5WpHR9OpHmayvHCN*#R_4WctMSCxDxvBisvzpBOkW)cl5_fs^Xo4dzSR4)NVr9R5R08Gb=6@| z$(6gk!Gc#N*#ikY3|gDhUpKaIFKGL3OHZ`0UKEWYr%Jgc=B-*>4j05M!0k4so>o9f zT4g(3SY}y8Hr;=r1)@hVLWV|DZLV*|8N(mAamAyXt{t*BaA-Gu7+zs(sEAg_@1i&K zhrEUrn&tj1PM!)2;XL|gs8rOhv*tBeWlL(1)6dHsveK4hR||>R)Mcy zrX2#l^<86>>izcY<943j4asc2E3N!dV7t9v@nvRNtKuRh8+Te;iK+eeNc+;zj_ zZr-Qm<9vh&sfZtt7PY#UiN~ZABvtk^qxVB0s72H(y?eU(%kRD)(+eWRabHhvPC(Ipe883e;A6aBQ)L! z8iQM0%d@L#%ukLe^yA$nA=9|dX9riCz7&vq{YRwZVg{b0lIccXLZ?$#;hZLB6KNrg zC=8$rIRwbi{*{MdbCGzP zmq^p97igaxlr=q1Qg1DW(Kpfrx&8Jfm$+TFH5awFXAXM@C0 z$yeX><@!Df>X2gaWEDyOVg!*43zy~ozE3kyA%;_<|M`X7cez%_K{Ut4*6oe1l9qzn zCXVFPz^Oe|hm{CPPg+qe>#;eHG-tN#wfkrZRM3HunU#Ugb~`8oR%m2xQm7|LM8WC4iWuLM8}|?s==6A@vYJ;Ehr1&d;+vm76189 zxMk7`(}Cix3;~G5deRypx_-#0xNr=zJMs&6v4BqpRxyf5u zxS2Os^wmPg;TRM|Pfzy4fuXYSTlkUj+J+l zKAh=zVWQR#(fJVP+=CoflP(TC2FYfm`CcylG86P>JSk!=&QEB3hMMKo@&STDVCvK0 zo!t69M#{VCIW(}_2;CnU=QU?~3|kHJQYGwvvL2k@6Rn@mVzH-dzv}Y2WvHTV)qK&p zSTHyJ?pH#c690}+S@MbTXZ1+@rz))C(fL0u_9FbnqB0l9sk0{*cRML?hA-+2k1S?t zJ~yY=6LGoT^$4~pFq>eBJU*fJf|j2_D;-0hCnS}Ov6l? zMQhSI&BMe87`miq7R_~X&!@;Z2C|(k)KzG5F$XMl!jq36DG(Qmw5#U6OTD*mEm#Y^vZ|dciLe z=r^^5mvNL;@ry+3-QnN7NaPq28{J1`Dge8VCvnX5dT>911D|2vr>$0fAV3FdRYe>d zn~Yif2^mh9m1FRPUS0bFQJzu0{yDINW4mw8Y>YUy^5&yd-_IV3M^SuKukx}R-gn7H zp&k|)>c9f+?ujK zdHbfL$RjE`~$-OC5pkl2)MlbQ+(h>qWz{ zf{uhs-!OarbKU&zLvw4M_pG3YN@GS{InvK;*>mhHxI(JEbN+nx^cTaWIUJI908>)YRIA3Q~ z|Kb7bI$1(fp3>U{<=c5$)i+ZG?G_|cQ)KIG3)nt|%Ij3G8x4n6#``5ClY9H9j_$ti z@N%X?GUdXUb;=5ho}u)C-8uN`3jTEJvH5Pqy0Tlk+2~Nr#65GsvU<})Sq;cdo?=rI zTy(nq7#R&Q9tOo zl;6FIf-rI&gQ5cNiH#Xw4asjpSH8j^!?w^Nnq-dyu1!Dk9tlwPMF3d?SLeRwqiY`f zqsW}|Xjk*kZ6k3gNY5)o&~>D1gtb^Y{kzz~o<@VTYKc9UsStYJ?^@G?^hA{)gcW;d z#U4q++i&X2#1H2%bFPz?xFQc|*5G6u zJB1HW4bu-;uT<%5KL#o{ZPQD;HjU#cOFqdt?DdW7vo>*b>CG;odD-0@vfnm!ww*u^M0FXaS?4c^C-rv`1a`1Wb)Ms56p$}2H_S9G7%lp)dY5N z@nDQe_YH+(&;w8E>-1HxL zcRn`nwxGO(P{{KgvKVkm>}^K1;iiU+limYUMhNoQy%gny!FuD$SKN%ROxF`LmN=zs<{}QD^d~qSXLiN zQX=z&1he^b3{gXrQ!MZiNuZ}(FhAIt;6RVJV+tZK%9-lE-5H}n+!WM z)*ThJY8Y4-%)0|tGrSa(u$fypr^Rk7Wmpm@G%MrIOxPlx1it?Lv(*dr!)_IUdBwI@ z@0rSOiY{AsZdUbgJ?!z|qzX-p!;cmk-i52DoPfZ#rs@b-BIT>db^hz znH->B)5XhdoH$#Xzb~(Q2uumYUyCxk!twsAIT+amT3}plh@It{!wkN zmjp3k*`FA3uii10VAVmEGAXk-Y{Vc`;DUS{U5`KJWk>ETFxeVyOsQcI$by_gxE z^gii|>YhpPk$~fLY1~oVk0LJX3BixzWEs1)L9a@BpxS08@{MH=W2A3a?{!d555qA- zePcUWntM$7U6Wvz_(gU*YhTm*vzEm&=ieY|YJRTxK#9GYR{E&JjaV;z=ShTqU$sym zfqdRYP#BxFc#yX=Pa{}HcEmyoRf`r9laQ&!1EI1V4Ziy!0_r+7i$C6)Nu+p!bQoSv>QrkqQkBd z^6hB>J!d+BpHH|fm!?eTK)}@!nW3~$Px?>W7RZu9l{_79DZ1f!wslR9TqHEAV*Ntv zeSFg;5?M`88M*Jcx1PT*EY@Q%fz`Hr~<(xW9~Je}1HOx4pCB^WjHatB?D@q9OAiY^~l zcpf}AAGxq{b(@q{-)v9PIrnh?yA{1$gmqI(2GPyVfqSfqEeE5}=BZ0iCzO%kn?QsZ zPiMf60GelWcB6D*yLf&H92c>Bm6)16&#Ft5u@4_*)h3W<>TAtGXn&|~*4Y<8X`XED zYD+@wlocwGirWY#zz?GCM5}JVP*E!4G>e!FhYKq5b75Y^t|795;szy|Q)RS39d4;= z$9fwrV6Qq3{uMsrVoUF?Hy1l)HOyx(to$%daRBJ-op$Q5jS-+~nYo=)$+jrZ%IDa$ zDdZrxv&Dl6(c{PbmD?}qD>kOH5=#>W+*UGw|HC3Ih4y*9FiloKmFy#7ymBY9uKHJq z{tRqZukt&qzwJ3k>=Rx#@a$>)%D^1-QUFUj)ri&M)vf!I^I{&c`PJMt#0QS;LCiW7 zzTPu^czwE!=Q>oVx1{?!U8SSD>K>?!cRgb8mBftFJj${xe00~n%_JA)oN)VCc_0=6UuEFkXq{&{;oz5OFb2^l5(efNm^|`LkTk~qNHmobK?Y8h{ zInos$p$HeDVf2uiLy=`>!{?>Wys)^v^yl9;+D5Cqaye60a}5v@3lXVNU?~HO7Z`TC z?@R{a-L#Oj%;&!dk8;NAo7z~ZyqsMF8=i=X*+xYJDN@akk zK^c5UjWhm$f79_?!|b%hv)9UlCU@(joacTp>W2w+j0MR!lIUA&zg}|=d-F?*<#{Im z<8z>yG&M;uqA$H4o8{^P{Tkn?_B2-Op2#wWBjitwzytUWoSRu-F^a`*)?_2_sJ!4t zwqMyXsJ{Lf6cNyu;RLCAT-c+TRQ7Y0?TgeNE`QI+PTP!pob23FxvN48HE*{ej%M1L zA(C|IGj`K2t$*HoE7K!ZdkhLq5#Mck>HIZG$QZM8B(ZoG91!hp-7Gz*E3@2kV7bUZ zngAp5)8&;j-^o{X5SUM`N&C9iW@LnIIptml8XWOBZD{S$V^A5ILz2TeePN$(Ie4_u zyQ2m!kE#OlT|3k(LzVr|PVX4Z*JV?JN7ekM@kzvBkV;RG;J~+>IX}l-$#l5|xtzuo?_2EO}^xYrhhCOa& z(r-kraA=pT2(;|T@U+WHB0;o?9>x=i`!w1VT$ndiS?YQ|apfwa4iW;&X0eVee25^n zC0n%t%UDKszYCx4AI-~zRr;$2qe<^iJ6gMCJI=G#r-d!Z2&lH0)0J(srzC!OeqnYm zHfHN)Nw@xJY0A(1T=hJaz7+p=ZB!KyzJ4xcX}*W}(Op?NF&gFRKZYw<;@O0oE5x8- zO_WnQ$*{3W@kF|9-j1KHACcyZsV@%@sR1S%i^C$fMpomFxH}RBhC8MJ_Dx zrcM0Jp42?{14r&Nlg$W}HmzTNTe52_dhJ`!P*A~Alm;^Dc{)?g#%LAoi)}Y6rOWn; zQMH&RCG!D&*Okk|#Woc+@*7=wh74U15N*hUqd|tWla24)Rs#(809!-I<2Xj^sM;$3 zZ*Zb_DeKeFh?MbJ5Bnt2y*jFuDP8kfeB@+v+^tVJUX#U=wrW3;oLnT)k-$bO}Lsk49Gkic<^l#s(HLSR6=f&wu71mkWnF@= z1W-Dk{^!XFh9({zp1;OyL+TaeLMxX86*=MwoeGbB$|wikwDu!CN)`8BW1)|he78m# z@a1pH5Jl)KNha^A;#5bjTxAcD_2rE5WhpWblDw1xgfix8^{#6PC1jd;xm1;NEYEe7 z*(5UYMSGVSd_s#|p;bF-C01#)EKUu_po{YbzBz5id7+2SlqxlK)r<4-`?P4sj-9}3 z?J27R)x%D%+)h7n>#y}g%vmqa73V#0A1zLNVY-CYMfw~0jH80&1SJFCDD2kjwcP)XX|_ z?Ev2lIwdM1ONbQx)ND^n54aD@%H4NswkyBJel6(Ry20{ZrGg|=wwbR@pR4m;a(xgw zD7!E9dK0d-foN%1tvTylxapeJik3s!&D&K5x(mLo zwsU?3Xor1MbHhuLi@Y6FIeET2MHH!NA4*WC?&M=F-ZOq{BWir%JJf_WPrey&u}-Ccy8cprRw2t*Y|Xu z@f>E?m&={=4OOSU80Us}iAZ3uF|yyYbzoac3LkXdk~pYgIgHuJ-Mwwi>&K#Okj)2? zLc8qx;GvTS;rpF56&W7Y+Q#U|@7hh49OV%i0s3a(ty{rbLr(J0~ z++O>Xg_*}pLqoLSc47zdd#f%sU-p=Cb+{^sLFI|iIy$Y7f0>$ z7e_~99#hbbfDVXf+b#Vl^uFh7GlU5TENmWwP+%cw|NUdo`UvYrt|g!|Eytj#w>w<| z!OIDCX-)chV@T(_Kfaa?uDN6mkK41otZlbC9Ag&fYSK7Zx<$sw;ZAoC(QCZ-WT(i? z|3E(c)_H_K}r)t)BI@uGfW!ik(gGDmPWI6hB zdt2=hFL7xWD~^Uxo^U78kLcSQIjAtr$oV!U2eB~T8c^*X^-ySvRCW{XzM@V>#d_{l8c*Pr)_}ViJfMyRXJHX7 zuK-*c9;=2B0DI#Wmd7Gc)Ku*4GV$B!@_^Iaylnu`;xSMu0WlYz2LLjZ&LAv`;{&~uOHqhQV|uG#+~}adMV3E@qJt5t9rZxL?((u8`%)i$#696ZnSzBE4xR!;@H^6 zGYh#(%^&k#?fLy#LeH;E{mKvNBkcxn$>@hF+p14T5L@h|D8~ifv)Cwc5J=O|v~ih9 zpO-}4l~*CD6@AW8{RG-vky-h4REW7=o#G-a{K;KirTFv}4L&C-plkI9Rz&eqS5y8s zLhuCtg+-rWqb;^iu5k)9ItjnP#KqyifqUL(2ox;96M$}=V*dapD^tD7B>0V6nt_3& z2C#Xos)N!Q))I>z#9qaPg|nO@Fadl~${zsa@As?|ER0nDAB^fa>bC?49i+g- zXZTSm-Ty%Ropt*EH{X9?nZE%!C$P8^mYgiM{`*Cq>TL6;C|X>b#K_^lxPV1!o>g$M zO=hYJEaLND+xZuG>vYw>d93^WKfsUwph>YfuD=xVzjf^MAJ0D%a5hZgw{X->ak+Sv zRR7mr|Kr|MI{vK_|JwV1Mb8Oz`7fF>2k+nxf(OR2x&>f+0jw)9aiTCMO5+dUp(3|^ z06t=Yu2fG?)4*IT8?f+H=7Q|VVUVsG-y^`Zfj9Ku5aKh%Tvv6#BIM3Co(sTtbpM4Y hJp~f~g`dXi8ygn1dRlou0np|C=S1d!JnQk-{{yOKfV%(y literal 0 HcmV?d00001 From 554cb8c6e591af1c9690d038de42ee742e652a90 Mon Sep 17 00:00:00 2001 From: choss Date: Thu, 31 Jan 2019 03:58:20 +0100 Subject: [PATCH 03/68] adding documentation for fritz.dect 100 sensor component (#8242) * adding documentation for new sensor component * :pencil2: Tweak * :pencil2: Add HA Release --- source/_components/sensor.fritzbox.markdown | 27 +++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 source/_components/sensor.fritzbox.markdown diff --git a/source/_components/sensor.fritzbox.markdown b/source/_components/sensor.fritzbox.markdown new file mode 100644 index 00000000000..fdf6ca7dcba --- /dev/null +++ b/source/_components/sensor.fritzbox.markdown @@ -0,0 +1,27 @@ +--- +layout: page +title: "Fritzbox temperature sensor" +description: "Instructions on how to integrate the AVM Fritzbox temperature sensor." +date: 2019-01-22 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: avm.png +ha_category: Sensor +ha_release: 0.87 +ha_iot_class: "Local Polling" +--- + +To get AVM Fritzbox temperature sensor (e.g. FRITZ!DECT Repeater 100) follow the instructions for the [Fritzbox component](/components/fritzbox/). + +## {% linkable_title Attributes %} + +The are several attributes that can be useful for automations and templates. + +| Attribute | Description | +| --------- | ----------- | +| `device_locked` | The state of the key lock at the device. +| `locked` | The state of the lock for configuring the device via the app or the Fritzbox web interface. +| `temperature_unit` | The unit of the temperature sensor. +| `temperature` | The current temperature sensor reading. From 0130ec220cfe0801bd709480f50cfda7b12a070f Mon Sep 17 00:00:00 2001 From: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com> Date: Wed, 30 Jan 2019 21:26:48 -0600 Subject: [PATCH 04/68] Add ha_version for SmartThings component and switch (#8355) --- source/_components/smartthings.markdown | 2 +- source/_components/smartthings.switch.markdown | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_components/smartthings.markdown b/source/_components/smartthings.markdown index 961e98c6241..1b17d6fc63a 100644 --- a/source/_components/smartthings.markdown +++ b/source/_components/smartthings.markdown @@ -10,7 +10,7 @@ footer: true featured: true logo: samsung_smartthings.png ha_category: Hub -ha_release: "" +ha_release: "0.87" ha_iot_class: "Cloud Push" --- diff --git a/source/_components/smartthings.switch.markdown b/source/_components/smartthings.switch.markdown index 0727e9f4a75..b7e77915ba6 100644 --- a/source/_components/smartthings.switch.markdown +++ b/source/_components/smartthings.switch.markdown @@ -9,7 +9,7 @@ sharing: true footer: true logo: samsung_smartthings.png ha_category: Switch -ha_release: "" +ha_release: "0.87" ha_iot_class: "Cloud Push" --- From 5cbfb041bbaaddb4baff824a54e2f23cc43b4365 Mon Sep 17 00:00:00 2001 From: Klaas Schoute Date: Thu, 31 Jan 2019 15:29:35 +0100 Subject: [PATCH 05/68] =?UTF-8?q?=F0=9F=9A=9C=20Merges/Redirect=20SmartThi?= =?UTF-8?q?ngs=20component=20pages=20(#8357)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/_components/smartthings.markdown | 11 ++++++++++- .../_components/smartthings.switch.markdown | 19 ------------------- 2 files changed, 10 insertions(+), 20 deletions(-) delete mode 100644 source/_components/smartthings.switch.markdown diff --git a/source/_components/smartthings.markdown b/source/_components/smartthings.markdown index 1b17d6fc63a..e82b4c3c7fc 100644 --- a/source/_components/smartthings.markdown +++ b/source/_components/smartthings.markdown @@ -9,9 +9,14 @@ sharing: true footer: true featured: true logo: samsung_smartthings.png -ha_category: Hub +ha_category: + - Hub + - Switch ha_release: "0.87" ha_iot_class: "Cloud Push" +redirect_from: + - /components/smartthings.switch/ + - /components/switch.smartthings/ --- 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: @@ -21,6 +26,10 @@ Samsung SmartThings is integrated into Home Assistant through the SmartThings Cl 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. +There is currently support for the following device types within Home Assistant: + +- Switch ([SmartThings switch platform](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch)) + ## {% 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). diff --git a/source/_components/smartthings.switch.markdown b/source/_components/smartthings.switch.markdown deleted file mode 100644 index b7e77915ba6..00000000000 --- a/source/_components/smartthings.switch.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -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: "0.87" -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 From d6d49ec6267ec456586c17b0db31ee7f2794e8b2 Mon Sep 17 00:00:00 2001 From: Sander Zumbrink Date: Thu, 31 Jan 2019 16:48:30 +0100 Subject: [PATCH 06/68] Add precision parameter to dsmr sensor (#8106) --- source/_components/sensor.dsmr.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/_components/sensor.dsmr.markdown b/source/_components/sensor.dsmr.markdown index e2220b3a2f2..cc943d821b2 100644 --- a/source/_components/sensor.dsmr.markdown +++ b/source/_components/sensor.dsmr.markdown @@ -64,6 +64,11 @@ sensor: description: "Version of DSMR used by meter. Choices: 2.2, 4, 5. Defaults to 2.2." required: false type: string + precision: + description: Defines the precision of the calculated values, through the argument of round(). + required: false + type: integer + default: 3 {% endconfiguration %} Full configuration examples can be found below: From cfe830d593ca81c8550b7401013cde9fde2d3bd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Fri, 1 Feb 2019 21:18:29 +0100 Subject: [PATCH 07/68] Change documentation for googlehome (#8346) * Initial attempt for googlehome component documentation * Corrected typo in "platform" * Rename file * Move keys to configuration section * Added missing description: * Add quotes * revert 44464ed2 --- .../device_tracker.googlehome.markdown | 48 ------------- source/_components/googlehome.markdown | 69 +++++++++++++++++++ 2 files changed, 69 insertions(+), 48 deletions(-) delete mode 100644 source/_components/device_tracker.googlehome.markdown create mode 100644 source/_components/googlehome.markdown diff --git a/source/_components/device_tracker.googlehome.markdown b/source/_components/device_tracker.googlehome.markdown deleted file mode 100644 index 6389280a22c..00000000000 --- a/source/_components/device_tracker.googlehome.markdown +++ /dev/null @@ -1,48 +0,0 @@ ---- -layout: page -title: "Google Home Bluetooth tracker" -description: "Instructions on how to use Google Home to track devices in Home Assistant." -date: 2018-11-04 00:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: google_home.png -ha_release: 0.83 -ha_category: Presence Detection -ha_iot_class: "Local Polling" ---- - -The `googlehome` platform allows you to detect presence using an [unofficial Google Home API][googlehomeapi]. - -## {% linkable_title Configuration %} - -To integrate Google Home Bluetooth tracker in Home Assistant, add the following section to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -device_tracker: - - platform: googlehome - host: IP_ADDRESS -``` - -{% configuration %} -host: - description: The IP address of the Google Home unit. - required: true - type: string -rssi_threshold: - description: The threshold for the RSSI signal of the device. - required: false - default: -70 - type: integer -{% endconfiguration %} - -## {% linkable_title Usage %} - -Devices will appear in the format `devicetracker._`. Note that dots are removed from the IP and BT MAC addresses. - -After running this component for a little while, you will likely see many devices appear. It's advisable to set the configuration to not discover new devices once the device you want to track have appeared (see [device tracker configuration][devicetrackerconfig] for details). - -[googlehomeapi]: https://rithvikvibhu.github.io/GHLocalApi/ -[devicetrackerconfig]: /components/device_tracker/#configuring-a-device_tracker-platform diff --git a/source/_components/googlehome.markdown b/source/_components/googlehome.markdown new file mode 100644 index 00000000000..5e93eb3e7a9 --- /dev/null +++ b/source/_components/googlehome.markdown @@ -0,0 +1,69 @@ +--- +layout: page +title: "Google Home" +description: "Instructions on how to connect to your Google Home device." +date: 2018-11-04 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: google_home.png +ha_release: 0.88 +ha_category: + - Hub + - Presence Detection +ha_iot_class: "Local Polling" +redirect_from: + - /components/device_tracker.googlehome/ +--- + +The `googlehome` component allows you to connect to your Google Home device using an [unofficial Google Home API][googlehomeapi]. + +This component will set up a [device_tracker](/components/device_tracker/) platform to track nearby bluetooth devices. + +## {% linkable_title Configuration %} + +To integrate the `googlehome` component in Home Assistant, add the following section to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +googlehome: + devices: + - host: IP_ADDRESS +``` + +{% configuration %} +devices: + description: A list of Google Home devices. + required: true + type: list + keys: + host: + description: The IP address of the Google Home device. + required: true + type: string + rssi_threshold: + description: The threshold for the RSSI signal of the device. + required: false + default: -70 + type: integer + device_types: + description: Device types that will be tracked [see device types](#device_types), by default all types are tracked. + required: false + type: list +{% endconfiguration %} + +## {% linkable_title Device types %} + +Device type | Description +-- | -- +1 | Classic - BR/EDR devices +2 | Low Energy - LE-only +3 | Dual Mode - BR/EDR/LE + +## {% linkable_title Notes %} + +Devices will appear in the format `devicetracker._`. Note that dots are removed from the IP and BT MAC addresses. + +[googlehomeapi]: https://rithvikvibhu.github.io/GHLocalApi/ +[devicetrackerconfig]: /components/device_tracker/#configuring-a-device_tracker-platform From 8bad45a3dfc754b862f2d03d7d206b81f1f77627 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Fri, 1 Feb 2019 23:52:33 +0200 Subject: [PATCH 08/68] Add Huawei LTE Notify docs (#7934) * Add Huawei LTE Notify docs * Use recipient instead of target in config * Bump HA release to 0.88 --- source/_components/notify.huawei_lte.markdown | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 source/_components/notify.huawei_lte.markdown diff --git a/source/_components/notify.huawei_lte.markdown b/source/_components/notify.huawei_lte.markdown new file mode 100644 index 00000000000..1baf01ca9a7 --- /dev/null +++ b/source/_components/notify.huawei_lte.markdown @@ -0,0 +1,46 @@ +--- +layout: page +title: "Huawei LTE Notify" +description: "Instructions on how to add Huawei LTE notifications to Home Assistant." +date: 2018-12-23 17:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: huawei.svg +ha_category: Notifications +ha_release: 0.88 +--- + +The `huawei_lte` platform allows you to use a Huawei LTE router for +notifications from Home Assistant. The messages will be sent as SMS +text messages. + +This requires you to have set up the +[Huawei LTE component](/components/huawei_lte/). + +```yaml +# Example configuration.yaml entry +notify: + - platform: huawei_lte + recipient: "+15105550123" +``` + +{% configuration %} +recipient: + description: The phone number of a default recipient or a list with multiple recipients. + required: true + type: string, list +name: + description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`. + required: false + default: notify + type: string +url: + description: The router to use. Not needed if you only have one. + required: false + type: url +{% endconfiguration %} + +To use notifications, please see the +[getting started with automation page](/getting-started/automation/). From 7b0336c7bc90e2f626c6c0e54f9acda123c8340e Mon Sep 17 00:00:00 2001 From: Rohan Kapoor Date: Sat, 2 Feb 2019 07:13:42 -0800 Subject: [PATCH 09/68] Fix platform links when using embedded components (#8379) --- source/_includes/asides/component_navigation.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/_includes/asides/component_navigation.html b/source/_includes/asides/component_navigation.html index d9c4b26c9ce..b6ba66fc146 100644 --- a/source/_includes/asides/component_navigation.html +++ b/source/_includes/asides/component_navigation.html @@ -16,6 +16,8 @@ {%- assign imp_name = file_parts[1] -%} {%- assign parent_name = file_parts[0] -%} {%- assign parent_url = parent_name | prepend: '/components/' | append: '/' -%} + {%- assign embedded_url = imp_name | prepend: '/components/' | append: '/' -%} + {%- assign embedded_component = components | where: 'url', embedded_url | first -%} {%- assign parent_component = components | where: 'url', parent_url | first -%} {%- else -%} {%- assign is_platform = false -%} @@ -59,7 +61,7 @@ {%- if is_platform -%}
{%- endif -%} From c354e5b50fe1255079a0c103d46f906e9c2e1e97 Mon Sep 17 00:00:00 2001 From: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com> Date: Sat, 2 Feb 2019 09:48:00 -0600 Subject: [PATCH 10/68] Add SmartThings Light platform (#8365) * Add SmartThings Light platform docs * Minor tweaks * Specify the classic ST mobile app * Updated ha_version --- source/_components/smartthings.light.markdown | 27 +++++++++++++++++++ source/_components/smartthings.markdown | 7 ++--- 2 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 source/_components/smartthings.light.markdown diff --git a/source/_components/smartthings.light.markdown b/source/_components/smartthings.light.markdown new file mode 100644 index 00000000000..6c9723b2c79 --- /dev/null +++ b/source/_components/smartthings.light.markdown @@ -0,0 +1,27 @@ +--- +layout: page +title: "SmartThings Light" +description: "Instructions on setting up Samsung SmartThings lights within Home Assistant." +date: 2018-01-30 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: samsung_smartthings.png +ha_category: Light +ha_release: "0.87" +ha_iot_class: "Cloud Push" +--- + +The SmartThings light platform lets you control Samsung SmartThings connected devices that have light-control related capabilities. + +| Capability |Light Features +|-------------------|------------------------------------------------------------| +| [`switchLevel`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch-Level) | `brightness` and `transition` +| [`colorControl`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Color-Control) | `color` +| [`colorTemperature`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Color-Temperature) | `color_temp` + +For a SmartThings device to be represented by the light platform, it must have one or more of the capabilities above in addition to the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability. + +

+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/_components/smartthings.markdown b/source/_components/smartthings.markdown index e82b4c3c7fc..e622cf93361 100644 --- a/source/_components/smartthings.markdown +++ b/source/_components/smartthings.markdown @@ -59,7 +59,7 @@ The SmartThings component is configured exclusively through the front-end. Manua 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. + 1. Open the SmartThings Classic 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' @@ -75,8 +75,9 @@ Advanced: If you have multiple locations in SmartThings, each can be integrated 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 +| Capabilities |Platform |-------------------|------------------------------------------------------------| -| [switch](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) | [switch](/components/smartthings.switch) +| `switchLevel`, `colorControl` and `colorTemperature` | [light](/components/smartthings.light) +| `switch` | [switch](/components/smartthings.switch) Support for additional capabilities will be added in the future. From 249087284181f6f8e97475fd71f134c6283b6d37 Mon Sep 17 00:00:00 2001 From: codedmind Date: Tue, 5 Feb 2019 15:23:56 +0000 Subject: [PATCH 11/68] Update utility_meter.markdown (#8409) --- source/_components/utility_meter.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/utility_meter.markdown b/source/_components/utility_meter.markdown index 0007d552880..3e4b5a3b2a3 100644 --- a/source/_components/utility_meter.markdown +++ b/source/_components/utility_meter.markdown @@ -89,7 +89,7 @@ The following configuration shows an example where 2 utility_meters (`daily_ener Both track the same sensor (`sensor.energy`) which continously monitors the energy consumed. 4 different sensors will be created, 2 per utility meter and corresponding to each tariff. -Sensor `sensor.daily_energy_peak`, `sensor.daily_energy_peak`, `sensor.monthly_energy_peak` and `sensor.monthly_energy_offpeak` will automatically be created to track the consumption in each tariff for the given cycle. +Sensor `sensor.daily_energy_peak`, `sensor.daily_energy_offpeak`, `sensor.monthly_energy_peak` and `sensor.monthly_energy_offpeak` will automatically be created to track the consumption in each tariff for the given cycle. `utility_meter.daily_energy` and `utility_meter.monthly_energy` entities will track the current tariff and provide a service to change the tariff. From 3b6dc35fff95fbe61eb648d038635f4894244eb9 Mon Sep 17 00:00:00 2001 From: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com> Date: Tue, 5 Feb 2019 11:13:32 -0600 Subject: [PATCH 12/68] Add SmartThings event and platform docs (#8392) * Conslidated SmartThings platforms docs * Tweaks * Added button event docs * Fixed event table * Clarifications * Clean-up --- source/_components/smartthings.light.markdown | 27 ------ source/_components/smartthings.markdown | 90 ++++++++++++++++--- 2 files changed, 79 insertions(+), 38 deletions(-) delete mode 100644 source/_components/smartthings.light.markdown diff --git a/source/_components/smartthings.light.markdown b/source/_components/smartthings.light.markdown deleted file mode 100644 index 6c9723b2c79..00000000000 --- a/source/_components/smartthings.light.markdown +++ /dev/null @@ -1,27 +0,0 @@ ---- -layout: page -title: "SmartThings Light" -description: "Instructions on setting up Samsung SmartThings lights within Home Assistant." -date: 2018-01-30 00:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: samsung_smartthings.png -ha_category: Light -ha_release: "0.87" -ha_iot_class: "Cloud Push" ---- - -The SmartThings light platform lets you control Samsung SmartThings connected devices that have light-control related capabilities. - -| Capability |Light Features -|-------------------|------------------------------------------------------------| -| [`switchLevel`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch-Level) | `brightness` and `transition` -| [`colorControl`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Color-Control) | `color` -| [`colorTemperature`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Color-Temperature) | `color_temp` - -For a SmartThings device to be represented by the light platform, it must have one or more of the capabilities above in addition to the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability. - -

-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/_components/smartthings.markdown b/source/_components/smartthings.markdown index e622cf93361..c3301c68331 100644 --- a/source/_components/smartthings.markdown +++ b/source/_components/smartthings.markdown @@ -10,11 +10,20 @@ footer: true featured: true logo: samsung_smartthings.png ha_category: + - Binary Sensor + - Fan - Hub + - Light - Switch ha_release: "0.87" ha_iot_class: "Cloud Push" redirect_from: + - /components/smartthings.binary_sensor/ + - /components/binary_sensor.smartthings/ + - /components/smartthings.fan/ + - /components/fan.smartthings/ + - /components/smartthings.light/ + - /components/light.smartthings/ - /components/smartthings.switch/ - /components/switch.smartthings/ --- @@ -26,10 +35,6 @@ Samsung SmartThings is integrated into Home Assistant through the SmartThings Cl 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. -There is currently support for the following device types within Home Assistant: - -- Switch ([SmartThings switch platform](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch)) - ## {% 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). @@ -69,15 +74,78 @@ The SmartThings component is configured exclusively through the front-end. Manua 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 %} +## {% linkable_title Events %} -### Supported capabilities/device mapping +The SmartThings component triggers events for select device capabilities. -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: +### {% linkable_title smartthings.button %} -| Capabilities |Platform -|-------------------|------------------------------------------------------------| -| `switchLevel`, `colorControl` and `colorTemperature` | [light](/components/smartthings.light) -| `switch` | [switch](/components/smartthings.switch) +The component will trigger an event when a device with the [button](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Button) capability is actuated and can be used to trigger automations within Home Assistant. Below is an example of the data payload: + +```json +{ + "component_id": "main", + "device_id": "42a16cf2-fef7-4ee8-b4a6-d32cb65474b7", + "location_id": "2a54b9fa-f66c-42d9-8488-d8f036b980c8", + "value": "pushed", + "name": "Scene Button" +} +``` + +| Attribute | Description +|---------------------------|------------------------------------------------------------------| +`component_id` | Describes which component of the device triggered the event. `main` represents the parent device. For devices with child-devices, this attribute identifies the child that raised the event. +`device_id` | The unique id of the device in SmartThings. This can be located in the HASS device registry or in the [SmartThings Groovy IDE](https://developers.smartthings.com/). +`location_id` | The unique id of the location the device is part of. This can be found in the config entry registry or in the [SmartThings Groovy IDE](https://developers.smartthings.com/). +`value` | Describes the action taken on the button. See the [button](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Button) capability reference for a list of possible values (not all are supported by every device). +`name` | The name given to the device in SmartThings. + +## {% linkable_title Platforms %} + +SmartThings represents devices as a set of [capabilities](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html) and the SmartThings component mapps those to entity platforms in Home Assistant. A single device may be represented by one or more platforms. + +| Platform |Capabilities +|---------------------------------|--------------------------------------------------------------------------------------------| +[binary_sensor](#binary-sensor) | `accelerationSensor`, `contactSensor`, `filterStatus`, `motionSensor`, `presenceSensor`, `tamperAlert`, `valve` and `waterSensor` +[fan](#fan) | `fanSpeed` and `switch` +[light](#light) | `colorControl`, `colorTemperature`, `switch` and `switchLevel` +[switch](#switch) | `switch` Support for additional capabilities will be added in the future. + +### {% linkable_title Binary Sensor %} + +The SmartThings Binary Sensor platform lets you view devices that have binary sensor-related capabilities. A Binary Sensor entity will be created for each attribute (below) supported by the device. + +| Capability |Attribute |On-Value |Binary Sensor Device Class +|-------------------|--------------|----------------|---------------------------------| +| [`accelerationSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Acceleration-Sensor) | `acceleration` | `active` | `moving` +| [`contactSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Contact-Sensor) | `contact` | `open` | `opening` +| [`filterStatus`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Filter-Status) | `filterStatus` | `replace` | `problem` +| [`motionSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Motion-Sensor) | `motion` | `active` | `motion` +| [`presenceSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Presence-Sensor) | `presence` | `present` | `presence` +| [`tamperAlert`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Tamper-Alert) | `tamper` | `detected` | `problem` +| [`valve`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Valve) | `valve` | `open` | `opening` +| [`waterSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Water-Sensor) | `water` | `wet` | `moisture` + +### {% linkable_title Fan %} + +The SmartThings fan platform lets you control devices that have fan-related capabilities. For a SmartThings device to be represented by the fan platform, it must have one or more of the capabilities below in addition to the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability. + +| Capability |Fan Features +|-------------------|------------------------------------------------------------| +| [`fanSpeed`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Fan-Speed) | `speed` (`off`, `low`, `medium`, and `high`) + +### {% linkable_title Light %} + +The SmartThings light platform lets you control devices that have light-related capabilities. For a SmartThings device to be represented by the light platform, it must have one or more of the capabilities below in addition to the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability. + +| Capability |Light Features +|-------------------|------------------------------------------------------------| +| [`switchLevel`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch-Level) | `brightness` and `transition` +| [`colorControl`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Color-Control) | `color` +| [`colorTemperature`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Color-Temperature) | `color_temp` + +### {% linkable_title Switch %} + +The SmartThings switch platform lets you control devices that have the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability that are not already represented by a more specific platform. \ No newline at end of file From 817382b6c1cfc258f3a20104600b979c46ca749b Mon Sep 17 00:00:00 2001 From: MatteGary Date: Wed, 6 Feb 2019 21:53:41 +0100 Subject: [PATCH 13/68] Add documentation for Transmission component (#7816) * First checkin for documentation of the newly implemented Transmission Component * Fix * Fix and add switch platform documentation * :pencil2: Tweaks * :pencil2: Tweaks * :pencil2: Tweak * Fix in documentation * :pencil2: Tweak * :pencil2: Tweak to solve deploy error * Update from monitored_variables to monitored_conditions * Update Category Co-Authored-By: MatteGary * Update redirect Co-Authored-By: MatteGary * Add scan_interval Co-Authored-By: MatteGary * Removed scan interval, removed sensor and switch files * :pencil2: Added scan_interval variable * Update transmission.markdown --- .../_components/sensor.transmission.markdown | 91 ------------- .../_components/switch.transmission.markdown | 52 -------- source/_components/transmission.markdown | 123 ++++++++++++++++++ 3 files changed, 123 insertions(+), 143 deletions(-) delete mode 100644 source/_components/sensor.transmission.markdown delete mode 100644 source/_components/switch.transmission.markdown create mode 100644 source/_components/transmission.markdown diff --git a/source/_components/sensor.transmission.markdown b/source/_components/sensor.transmission.markdown deleted file mode 100644 index a1700cd591c..00000000000 --- a/source/_components/sensor.transmission.markdown +++ /dev/null @@ -1,91 +0,0 @@ ---- -layout: page -title: "Transmission Sensor" -description: "Instructions on how to integrate Transmission sensors within Home Assistant." -date: 2015-04-25 9:06 -sidebar: true -comments: false -sharing: true -footer: true -logo: transmission.png -ha_category: Downloading -ha_release: pre 0.7 -ha_iot_class: "Local Polling" ---- - - -The `transmission` platform allows you to monitor your downloads with [Transmission](http://www.transmissionbt.com/) from within Home Assistant and setup automation based on the information. - -## {% linkable_title Setup %} - -To use the monitoring, your transmission client needs to allow remote access. If you are running the graphical transmission client (transmission-gtk) go to **Edit** -> **Preferences** and choose the tab **Remote**. Check **Allow remote access**, enter your username and your password, and uncheck the network restriction as needed. - -

- -

- -If everything is setup correctly, the details will show up in the frontend. - -

- -

- -## {% linkable_title Configuration %} - -To enable this sensor, add the following lines to your `configuration.yaml`: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: transmission - host: IP_ADDRESS - monitored_variables: - - 'current_status' - - 'download_speed' - - 'upload_speed' - - 'active_torrents' - - 'paused_torrents' - - 'total_torrents' -``` - -{% configuration %} -host: - description: This is the IP address of your Transmission daemon, e.g., 192.168.1.32. - required: true - type: string -port: - description: The port your Transmission daemon uses. - required: false - type: integer - default: 9091 -name: - description: The name to use when displaying this Transmission instance in the frontend. - required: false - type: string -username: - description: Your Transmission username, if you use authentication. - required: false - type: string -password: - description: Your Transmission password, if you use authentication. - required: false - type: string -monitored_variables: - description: Conditions to display in the frontend. - required: false - type: map - keys: - current_status: - description: The status of your Transmission daemon. - download_speed: - description: The current download speed. - upload_speed: - description: The current upload speed. - active_torrents: - description: The current number of active torrents. - paused_torrents: - description: The current number of paused torrents. - total_torrents: - description: The total number of torrents present in the client. -{% endconfiguration %} - diff --git a/source/_components/switch.transmission.markdown b/source/_components/switch.transmission.markdown deleted file mode 100644 index 11a69c59823..00000000000 --- a/source/_components/switch.transmission.markdown +++ /dev/null @@ -1,52 +0,0 @@ ---- -layout: page -title: "Transmission Switch" -description: "Instructions on how to integrate Transmission within Home Assistant." -date: 2015-06-02 09:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: transmission.png -ha_category: Downloading -ha_release: pre 0.7 -ha_iot_class: "Local Polling" ---- - -The `transmission` switch platform allows you to control your [Transmission](http://www.transmissionbt.com/) client from within Home Assistant. The platform enables you switch to your 'Alternative Speed Limits' (aka 'Turtle mode') setting. - -## {% linkable_title Configuration %} - -To add Transmission to your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -switch: - platform: transmission - host: IP_ADDRESS -``` - -{% configuration %} -host: - required: true - type: string - description: This is the IP address of your Transmission daemon, e.g., `192.168.1.32`. -port: - required: false - type: integer - default: 9091 - description: The port your Transmission daemon uses. -name: - required: false - type: string - default: Transmission Turtle Mode - description: The name to use when displaying this Transmission instance. -username: - required: false - type: string - description: Your Transmission username, if you use authentication. -password: - required: false - type: string - description: Your Transmission password, if you use authentication. -{% endconfiguration %} diff --git a/source/_components/transmission.markdown b/source/_components/transmission.markdown new file mode 100644 index 00000000000..ae4b0bfcb86 --- /dev/null +++ b/source/_components/transmission.markdown @@ -0,0 +1,123 @@ +--- +layout: page +title: "Transmission" +description: "Instructions on how to integrate Transmission within Home Assistant." +date: 2018-12-12 22:44 +sidebar: true +comments: false +sharing: true +footer: true +logo: transmission.png +ha_category: + - Downloading + - Switch + - Sensor +ha_release: 0.87 +ha_iot_class: "Local Polling" +redirect_from: + - /components/switch.transmission/ + - /components/sensor.transmission/ +--- + +The `transmission` component allows you to monitor your downloads with [Transmission](http://www.transmissionbt.com/) from within Home Assistant and setup automation based on the information. + +## {% linkable_title Setup %} + +To use the monitoring, your transmission client needs to allow remote access. If you are running the graphical transmission client (transmission-gtk) go to **Edit** -> **Preferences** and choose the tab **Remote**. Check **Allow remote access**, enter your username and your password, and uncheck the network restriction as needed. + +

+ +

+ +If everything is set up correctly, the details will show up in the frontend. + +

+ +

+ +## {% linkable_title Configuration %} + +To enable this sensor, add the following lines to your `configuration.yaml`: + +```yaml +transmission: + host: 192.168.1.1 +``` + +{% configuration %} +host: + description: "This is the IP address of your Transmission daemon, e.g., `192.168.1.1`." + required: true + type: string +port: + description: The port your Transmission daemon uses. + required: false + type: integer + default: 9091 +name: + description: The name to use when displaying this Transmission instance in the frontend. + required: false + type: string +username: + description: Your Transmission username, if you use authentication. + required: false + type: string +password: + description: Your Transmission password, if you use authentication. + required: false + type: string +turtle_mode: + description: If enabled, it creates a switch entity to control the 'Alternative Speed Limits' (aka 'Turtle mode') setting. + required: false + type: boolean +scan_interval: + description: How frequently to query for new data. Defaults to 120 seconds. + required: false + type: integer +monitored_conditions: + type: integer + description: "List of monitored conditions. Possible values are:" + required: false + type: map + keys: + current_status: + description: The status of your Transmission daemon. + download_speed: + description: The current download speed [MB/s]. + upload_speed: + description: The current upload speed [MB/s]. + active_torrents: + description: The current number of active torrents. + paused_torrents: + description: The current number of paused torrents. + total_torrents: + description: The total number of torrents present in the client. + started_torrents: + description: The current number of started torrents (downloading). + completed_torrents: + description: The current number of completed torrents (seeding) +{% endconfiguration %} + +## {% linkable_title Event Automation %} + +The Transmission component is continuously monitoring the status of torrents in the target client. Once a torrent is started or completed, an event is triggered on the Home Assistant Bus, which allows to implement any kind of automation. + +Possible events are: + - transmission_downloaded_torrent + - transmission_started_torrent + +Inside of the event, there is the name of the torrent that is started or completed, as it is seen in the Transmission User Interface. + +Example of configuration of an automation with completed torrents: + +```yaml +- alias: Completed Torrent + trigger: + platform: event + event_type: transmission_downloaded_torrent + action: + service: notify.telegram_notifier + data_template: + title: "Torrent completed!" + message: "{{trigger.event.data.name}}" +``` From 932b3075397c73ca1581d1d2ed3d958702bc7cd4 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 6 Feb 2019 16:40:57 -0800 Subject: [PATCH 14/68] Stub for 88 --- _config.yml | 4 ++-- source/_posts/2019-02-20-release-88.markdown | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 source/_posts/2019-02-20-release-88.markdown diff --git a/_config.yml b/_config.yml index bbe95b287f0..1998a724ff0 100644 --- a/_config.yml +++ b/_config.yml @@ -143,9 +143,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 87 +current_minor_version: 88 current_patch_version: 0 -date_released: 2019-02-06 +date_released: 2019-02-20 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_posts/2019-02-20-release-88.markdown b/source/_posts/2019-02-20-release-88.markdown new file mode 100644 index 00000000000..bac985bfe45 --- /dev/null +++ b/source/_posts/2019-02-20-release-88.markdown @@ -0,0 +1,19 @@ +--- +layout: post +title: "0.88: TODO - UPDATE DATE." +description: "TO DO" +date: 2019-02-06 00:11:03 +date_formatted: "February 20, 2019" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2019-02-release-88/smartthings.png +--- + + + +Command line auth provider + +Person component + From 47ce52f7f80f6837bc0a429e93763e4f80709998 Mon Sep 17 00:00:00 2001 From: Robert Schindler Date: Thu, 7 Feb 2019 01:42:08 +0100 Subject: [PATCH 15/68] Added docs for command line auth provider (#8321) * Added docs for command line auth provider Regards home-assistant/home-assistant#19985 * Added reference to a compatible script for LDAP authentication * Added note about stderr with command_line auth provider * Added note about stripping usernames * Note that usernames are stripped with command_line auth provider --- .../_docs/authentication/providers.markdown | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/source/_docs/authentication/providers.markdown b/source/_docs/authentication/providers.markdown index 659b027ae3f..4ee8b017a91 100644 --- a/source/_docs/authentication/providers.markdown +++ b/source/_docs/authentication/providers.markdown @@ -83,6 +83,45 @@ http: - fd00::/8 ``` +### {% linkable_title Command Line %} + +The Command Line auth provider executes a configurable shell command to perform user authentication. Two environment variables, `username` and `password`, are passed to the command. Access is granted when the command exits successfully (with exit code 0). + +This provider can be used to integrate Home Assistant with arbitrary external authentication services, from plaintext databases over LDAP to RADIUS. A compatible script for LDAP authentication is [this one](https://github.com/efficiosoft/ldap-auth-sh), for instance. + +Here is a configuration example: + +```yaml +homeassistant: + auth_providers: + - type: command_line + command: /absolute/path/to/command + # Optionally, define a list of arguments to pass to the command. + #args: ["--first", "--second"] + # Uncomment to enable parsing of meta variables (see below). + #meta: true +``` + +When `meta: true` is set in the auth provider's configuration, your command can write some variables to standard output to populate the user account created in Home Assistant with additional data. These variables have to be printed in the form: + +``` +name = John Doe +``` + +Leading and trailing whitespace, as well as lines starting with `#` are ignored. The following variables are supported. More may be added in the future. + +* `name`: The real name of the user to be displayed in his profile. + +Stdaerr is not read at all and just passed through to that of the Home Assistant process, hence you can use it for status messages or suchlike. + +

+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 Date: Fri, 8 Feb 2019 02:49:19 +0100 Subject: [PATCH 17/68] Added Google home alarm sensor (#8396) * added google home alarm documentation * fixed date * updated documentation for gh alarm sensor * fixed configuration to reflect the component * :pencil2: Tweak * added google home alarm documentation * fixed date * updated documentation for gh alarm sensor * fixed configuration to reflect the component * added sensor googlehome * updated documentation * removed sensor page * added default and removed redirect --- source/_components/googlehome.markdown | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/source/_components/googlehome.markdown b/source/_components/googlehome.markdown index 5e93eb3e7a9..e443643e05a 100644 --- a/source/_components/googlehome.markdown +++ b/source/_components/googlehome.markdown @@ -12,6 +12,7 @@ ha_release: 0.88 ha_category: - Hub - Presence Detection + - Sensor ha_iot_class: "Local Polling" redirect_from: - /components/device_tracker.googlehome/ @@ -19,7 +20,9 @@ redirect_from: The `googlehome` component allows you to connect to your Google Home device using an [unofficial Google Home API][googlehomeapi]. -This component will set up a [device_tracker](/components/device_tracker/) platform to track nearby bluetooth devices. +This component will provide: +- [device_tracker](/components/device_tracker/) platform to track nearby bluetooth devices; +- [sensor](/components/sensor/) platform to track the alarms and the timers. ## {% linkable_title Configuration %} @@ -51,6 +54,11 @@ devices: description: Device types that will be tracked [see device types](#device_types), by default all types are tracked. required: false type: list + track_alarms: + description: Setting to tell the component to track the alarms of the device. + required: false + type: boolean + default: false {% endconfiguration %} ## {% linkable_title Device types %} From 4b90411c53dba687d19e194a48b01bc3bd6d674d Mon Sep 17 00:00:00 2001 From: Eliran Turgeman Date: Sat, 9 Feb 2019 18:11:59 +0200 Subject: [PATCH 18/68] Update sensor.darksky.markdown (#8455) --- source/_components/sensor.darksky.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/_components/sensor.darksky.markdown b/source/_components/sensor.darksky.markdown index d8f096d62a0..bedf4fe225f 100644 --- a/source/_components/sensor.darksky.markdown +++ b/source/_components/sensor.darksky.markdown @@ -183,6 +183,7 @@ All language options are described in this table that you can use for the dark s |Estonian|`et`| |Finnish|`fi`| |French|`fr`| +|Hebrew|`he`| |Croatian|`hr`| |Hungarian|`hu`| |Indonesian|`id`| @@ -190,7 +191,9 @@ All language options are described in this table that you can use for the dark s |Italian|`it`| |Japanese|`ja`| |Georgian|`ka`| +|Korean|`ko`| |Cornish|`kw`| +|Latvian|`lv`| |Norwegian Bokmål|`nb`| |Dutch|`nl`| |Polish|`pl`| From 0104f5d14787af910644dbe43a2d9777dbd3221d Mon Sep 17 00:00:00 2001 From: Andreas Hartl Date: Sat, 9 Feb 2019 19:12:17 +0100 Subject: [PATCH 19/68] Add support for fan speed to HomeKit (#8044) Added documentation for the mapping between `speed`, `speed_list` and HomeKit speeds for fans --- source/_components/homekit.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown index 33db99a2385..7e2c2ac1746 100644 --- a/source/_components/homekit.markdown +++ b/source/_components/homekit.markdown @@ -323,6 +323,7 @@ The following components are currently supported: | cover | WindowCovering | All covers that support `open_cover`, `stop_cover` and `close_cover` through value mapping. (`open` -> `>70`; `close` -> `<30`; `stop` -> every value in between) | | device_tracker | Sensor | Support for `occupancy` device class. | | fan | Fan | Support for `on / off`, `direction` and `oscillating`. | +| fan | Fan | All fans that support `speed` and `speed_list` through value mapping: `speed_list` is assumed to contain values in ascending order. The numeric ranges of HomeKit map to a corresponding entry of `speed_list`. The first entry of `speed_list` should be equivalent to `off` to match HomeKit's concept of fan speeds. (Example: `speed_list` = [`off`, `low`, `high`]; `off` -> `<= 33`; `low` -> between `33` and `66`; `high` -> `> 66`) | | light | Light | Support for `on / off`, `brightness` and `rgb_color`. | | lock | DoorLock | Support for `lock / unlock`. | | media_player | MediaPlayer | Represented as a series of switches which control `on / off`, `play / pause`, `play / stop`, or `mute` depending on `supported_features` of entity and the `mode` list specified in `entity_config`. | From 931ceab4facb2515ae5bfbd9565803786384411e Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Sun, 10 Feb 2019 14:11:35 +0100 Subject: [PATCH 20/68] Add person component (#8458) * Add person component * Add logo --- source/_components/person.markdown | 66 ++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 source/_components/person.markdown diff --git a/source/_components/person.markdown b/source/_components/person.markdown new file mode 100644 index 00000000000..079178bde58 --- /dev/null +++ b/source/_components/person.markdown @@ -0,0 +1,66 @@ +--- +layout: page +title: "Person" +description: "Instructions on how to setup people tracking within Home Assistant." +date: 2019-02-05 22:36 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: Presence Detection +ha_qa_scale: internal +ha_release: 0.88 +--- + +The person component allows to connect device tracker entities to one or more person entities. The last state update of a connected device tracker will set the state of the person. Eg if you connect your router and your owntracks device as trackers to your person, the last state update from either the router or your owntracks device will set the state of your person. + +## {% linkable_title Configuring the `person` component %} + +To get started add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +person: + - name: Ada + id: ada6789 + device_trackers: + - device_tracker.ada +``` + +{% configuration %} + id: + description: A unique id of the person. + required: true + type: string + name: + description: The name of the person. + required: true + type: string + user_id: + description: The user id of the Home Assistant user account for the person. + required: false + type: string + device_trackers: + description: A list of device tracker entity ids to track. These will represent the state of the person. + required: false + type: list, string +{% endconfiguration %} + + +An extended example would look like the following sample: + +```yaml +# Example configuration.yaml entry +person: + - name: Ada + id: ada6789 + device_trackers: + - device_tracker.ada + - name: Stacey + id: stacey12345 + user_id: 12345678912345678912345678912345 + device_trackers: + - device_tracker.stacey + - device_tracker.beacon +``` From 997adc6165884f5253cde052d818fc4e45c16979 Mon Sep 17 00:00:00 2001 From: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com> Date: Sun, 10 Feb 2019 08:03:31 -0600 Subject: [PATCH 21/68] Add SmartThings Sensor docs (#8443) --- source/_components/smartthings.markdown | 108 +++++++++++++++++++----- 1 file changed, 85 insertions(+), 23 deletions(-) diff --git a/source/_components/smartthings.markdown b/source/_components/smartthings.markdown index c3301c68331..394103793ed 100644 --- a/source/_components/smartthings.markdown +++ b/source/_components/smartthings.markdown @@ -10,10 +10,11 @@ footer: true featured: true logo: samsung_smartthings.png ha_category: + - Hub - Binary Sensor - Fan - - Hub - Light + - Sensor - Switch ha_release: "0.87" ha_iot_class: "Cloud Push" @@ -24,6 +25,8 @@ redirect_from: - /components/fan.smartthings/ - /components/smartthings.light/ - /components/light.smartthings/ + - /components/smartthings.sensor/ + - /components/sensor.smartthings/ - /components/smartthings.switch/ - /components/switch.smartthings/ --- @@ -102,35 +105,33 @@ The component will trigger an event when a device with the [button](https://smar ## {% linkable_title Platforms %} -SmartThings represents devices as a set of [capabilities](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html) and the SmartThings component mapps those to entity platforms in Home Assistant. A single device may be represented by one or more platforms. +SmartThings represents devices as a set of [capabilities](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html) and the SmartThings component maps those to entity platforms in Home Assistant. A single device may be represented by one or more platforms. +- [Binary Sensor](#binary-sensor) +- [Fan](#fan) +- [Light](#light) +- [Sensor](#sensor) +- [Switch](#switch) -| Platform |Capabilities -|---------------------------------|--------------------------------------------------------------------------------------------| -[binary_sensor](#binary-sensor) | `accelerationSensor`, `contactSensor`, `filterStatus`, `motionSensor`, `presenceSensor`, `tamperAlert`, `valve` and `waterSensor` -[fan](#fan) | `fanSpeed` and `switch` -[light](#light) | `colorControl`, `colorTemperature`, `switch` and `switchLevel` -[switch](#switch) | `switch` - -Support for additional capabilities will be added in the future. +Support for additional platforms will be added in the future. ### {% linkable_title Binary Sensor %} The SmartThings Binary Sensor platform lets you view devices that have binary sensor-related capabilities. A Binary Sensor entity will be created for each attribute (below) supported by the device. -| Capability |Attribute |On-Value |Binary Sensor Device Class -|-------------------|--------------|----------------|---------------------------------| -| [`accelerationSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Acceleration-Sensor) | `acceleration` | `active` | `moving` -| [`contactSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Contact-Sensor) | `contact` | `open` | `opening` -| [`filterStatus`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Filter-Status) | `filterStatus` | `replace` | `problem` -| [`motionSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Motion-Sensor) | `motion` | `active` | `motion` -| [`presenceSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Presence-Sensor) | `presence` | `present` | `presence` -| [`tamperAlert`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Tamper-Alert) | `tamper` | `detected` | `problem` -| [`valve`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Valve) | `valve` | `open` | `opening` -| [`waterSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Water-Sensor) | `water` | `wet` | `moisture` +| Capability |Attribute |On-Value +|-------------------|--------------|----------------| +| [`accelerationSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Acceleration-Sensor) | `acceleration` | `active` +| [`contactSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Contact-Sensor) | `contact` | `open` +| [`filterStatus`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Filter-Status) | `filterStatus` | `replace` +| [`motionSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Motion-Sensor) | `motion` | `active` +| [`presenceSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Presence-Sensor) | `presence` | `present` +| [`tamperAlert`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Tamper-Alert) | `tamper` | `detected` +| [`valve`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Valve) | `valve` | `open` +| [`waterSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Water-Sensor) | `water` | `wet` ### {% linkable_title Fan %} -The SmartThings fan platform lets you control devices that have fan-related capabilities. For a SmartThings device to be represented by the fan platform, it must have one or more of the capabilities below in addition to the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability. +The SmartThings Fan platform lets you control devices that have fan-related capabilities. For a SmartThings device to be represented by the fan platform, it must have one or more of the capabilities below in addition to the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability. | Capability |Fan Features |-------------------|------------------------------------------------------------| @@ -138,7 +139,7 @@ The SmartThings fan platform lets you control devices that have fan-related capa ### {% linkable_title Light %} -The SmartThings light platform lets you control devices that have light-related capabilities. For a SmartThings device to be represented by the light platform, it must have one or more of the capabilities below in addition to the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability. +The SmartThings Light platform lets you control devices that have light-related capabilities. For a SmartThings device to be represented by the light platform, it must have one or more of the capabilities below in addition to the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability. | Capability |Light Features |-------------------|------------------------------------------------------------| @@ -146,6 +147,67 @@ The SmartThings light platform lets you control devices that have light-related | [`colorControl`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Color-Control) | `color` | [`colorTemperature`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Color-Temperature) | `color_temp` +### {% linkable_title Sensor %} + +The SmartThings Sensor platform lets your view devices that have sensor-related capabilities. A Sensor entity is created for each attribute (below) supported by the device. + +| Capability |Attributes | +|-------------------|---------------| +| [`activityLightingMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Activity-Lighting-Mode) | `lightingMode` +| [`airConditionerMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Air-Conditioner-Mode) | `airConditionerMode` +| [`airQualitySensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Air-Quality-Sensory) | `airQuality` +| [`alarm`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Alarm) | `alarm` +| [`audioVolume`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Audio-Volume) | `volume` +| [`battery`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Battery) | `battery` +| [`bodyMassIndexMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Body-Mass-Index-Measurement) | `bmiMeasurement` +| [`bodyWeightMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Body-Weight-Measurement) | `bodyWeightMeasurement` +| [`carbonDioxideMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Carbon-Dioxide-Measurement) | `carbonDioxide` +| [`carbonMonoxideDetector`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Carbon-Monoxide-Detector) | `carbonMonoxide` +| [`carbonMonoxideMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Carbon-Monoxide-Measurement) | `carbonMonoxideLevel` +| [`dishwasherOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Dishwasher-Operating-State) | `machineState`, `dishwasherJobState` and `completionTime` +| [`doorControl`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Door-Control) | `door` +| [`dryerMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Dryer-Mode) | `dryerMode` +| [`dryerOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Dryer-Operating-State) | `machineState`, `dryerJobState` and `completionTime` +| [`dustSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Dust-Sensor) | `fineDustLevel` and `dustLevel` +| [`energyMeter`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Energy-Meter) | `energy` +| [`equivalentCarbonDioxideMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Equivalent-Carbon-Dioxide-Measurement) | `equivalentCarbonDioxideMeasurement` +| [`formaldehydeMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Formaldehyde-Measurement) | `formaldehydeLevel` +| [`garageDoorControl`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Garage-Door-Control) | `door` +| [`illuminanceMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Illuminance-Measurement) | `illuminance` +| [`infraredLevel`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Infrared-Level) | `infraredLevel` +| [`lock`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Lock) | `lock` +| [`mediaInputSource`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Media-Input-Source) | `inputSource` +| [`mediaPlaybackRepeat`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Media-Playback-Repeat) | `playbackRepeatMode` +| [`mediaPlaybackShuffle`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Media-Playback-Shuffle) | `playbackShuffle` +| [`mediaPlayback`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Media-Playback) | `playbackStatus` +| [`odorSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Odor-Sensor) | `odorLevel` +| [`ovenMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Oven-Mode) | `ovenMode` +| [`ovenOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Oven-Operating-State) | `machineState`, `ovenJobState` and `completionTime` +| [`ovenSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Oven-Setpoint) | `ovenSetpoint` +| [`powerMeter`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Power-Meter) | `power` +| [`powerSource`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Power-Source) | `powerSource` +| [`refrigerationSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Refrigeration-Setpoint) | `refrigerationSetpoint` +| [`relativeHumidityMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Relative-Humidity-Measurement) | `humidity` +| [`robotCleanerCleaningMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Robot-Cleaner-CleaningMode) | `robotCleanerCleaningMode` +| [`robotCleanerMovement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Robot-Cleaner-Movement) | `robotCleanerMovement` +| [`robotCleanerTurboMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Robot-Cleaner-Turbo-Mode) | `robotCleanerTurboMode` +| [`signalStrength`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Signal-Strength) | `lqi` and `rssi` +| [`smokeDetector`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Smoke-Detector) | `smoke` +| [`temperatureMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Temperature-Measurement) | `temperature` +| [`thermostatCoolingSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Cooling-Setpoint) | `coolingSetpoint` +| [`thermostatFanMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Fan-Mode) | `thermostatFanMode` +| [`thermostatHeatingSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Heating-Setpoint) | `heatingSetpoint` +| [`thermostatMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Mode) | `thermostatMode` +| [`thermostatOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Operating-State) | `thermostatOperatingState` +| [`thermostatSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Setpoint) | `thermostatSetpoint` +| [`tvChannel`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Tv-Channel) | `tvChannel` +| [`tvocMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Tvoc-Measurement) | `tvocLevel` +| [`ultravioletIndex`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Ultraviolet-Index) | `ultravioletIndex` +| [`voltageMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Voltage-Measurement) | `voltage` +| [`washerMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Washer-Mode) | `washerMode` +| [`washerOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Washer-Operating-State) | `machineState`, `washerJobState` and `completionTime` +| [`windowShade`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Window-Shade) | `windowShade` + ### {% linkable_title Switch %} -The SmartThings switch platform lets you control devices that have the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability that are not already represented by a more specific platform. \ No newline at end of file +The SmartThings Switch platform lets you control devices that have the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability that are not already represented by a more specific platform. \ No newline at end of file From 62afdd0bf672036dc527c5998c3d5c4a3ddc73e9 Mon Sep 17 00:00:00 2001 From: Brian J King Date: Sun, 10 Feb 2019 06:33:42 -0800 Subject: [PATCH 22/68] Add missing link (#8453) --- .../_posts/2019-02-04-introducing-home-assistant-cli.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2019-02-04-introducing-home-assistant-cli.markdown b/source/_posts/2019-02-04-introducing-home-assistant-cli.markdown index 42062e481c9..f5c4ad54822 100644 --- a/source/_posts/2019-02-04-introducing-home-assistant-cli.markdown +++ b/source/_posts/2019-02-04-introducing-home-assistant-cli.markdown @@ -38,7 +38,7 @@ looking for to do from a CLI. ## Usage -For the basic intro to `hass-cli` see the docs at https://github.com/home-assistant/home-assistant-cli. +For the basic intro to `hass-cli` see the docs at [github](github-hass-cli). ## Installation From 2528f6b3c5a1f1c3c871161eb5683ded2c31c7f0 Mon Sep 17 00:00:00 2001 From: On Freund Date: Sun, 10 Feb 2019 20:42:39 +0200 Subject: [PATCH 23/68] CoolMasterNet integration documentation (#8422) --- .../_components/climate.coolmaster.markdown | 56 ++++++++++++++++++ .../supported_brands/coolautomation.png | Bin 0 -> 6540 bytes 2 files changed, 56 insertions(+) create mode 100644 source/_components/climate.coolmaster.markdown create mode 100644 source/images/supported_brands/coolautomation.png diff --git a/source/_components/climate.coolmaster.markdown b/source/_components/climate.coolmaster.markdown new file mode 100644 index 00000000000..ab68254c373 --- /dev/null +++ b/source/_components/climate.coolmaster.markdown @@ -0,0 +1,56 @@ +--- +layout: page +title: "CoolMasterNet Climate" +description: "Instructions on how to integrate CoolMasterNet within Home Assistant." +date: 2019-02-05 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: coolautomation.png +ha_category: Climate +ha_release: 0.88 +ha_iot_class: "Local Polling" +--- + + +The `coolmaster` climate platform lets you control HVAC through [CoolMasterNet](https://coolautomation.com/products/coolmasternet/). To set it up, add the following information to your `configuration.yaml` file: + +```yaml +climate: + - platform: coolmaster + host: YOUR_COOLMASTER_HOST + port: YOUR_COOLMASTER_PORT + supported_modes: + - heat + - cool + - dry +``` + +{% configuration %} +host: + description: The host address of your CoolMasterNet instance (IP or host name). + required: true + type: string +port: + description: The port number of your CoolMasterNet instance. + required: false + type: integer + default: 10102 +supported_modes: + description: The operation modes supported by your HVAC. + required: false + type: list + default: All modes + keys: + heat: + description: Heat mode. + cool: + description: Cool mode. + auto: + description: Auto mode. + dry: + description: Dry mode. + fan_only: + description: Fan only mode. +{% endconfiguration %} diff --git a/source/images/supported_brands/coolautomation.png b/source/images/supported_brands/coolautomation.png new file mode 100644 index 0000000000000000000000000000000000000000..de14a2a52a1950fb13f43c4199f7c30d7ea1abb5 GIT binary patch literal 6540 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 yyBU Date: Sun, 10 Feb 2019 19:52:20 +0100 Subject: [PATCH 24/68] Add HmIP-BSL to Overview for homematicip cloud (#8448) --- source/_components/homematicip_cloud.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/homematicip_cloud.markdown b/source/_components/homematicip_cloud.markdown index 21949240ba3..fd4707c89df 100644 --- a/source/_components/homematicip_cloud.markdown +++ b/source/_components/homematicip_cloud.markdown @@ -78,6 +78,7 @@ authtoken: - homematicip_cloud.light - Switch actuator and meter for brand switches (*HmIP-BSM*) - Dimming actuator for brand switches (*HmIP-BDT*) + - Switch Actuator for brand switches – with signal lamp (*HmIP-BSL*) - homematicip_cloud.sensor - Accesspoint duty-cycle (*HmIP-HAP*) From 72da767f1cfab3e05bf63e88aabec017c57641c8 Mon Sep 17 00:00:00 2001 From: Rohan Kapoor Date: Sun, 10 Feb 2019 12:52:56 -0800 Subject: [PATCH 25/68] Replace target with recipient in tplink_lte config (#8460) --- source/_components/tplink_lte.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_components/tplink_lte.markdown b/source/_components/tplink_lte.markdown index 1adabfe82d9..9d1ebfe1bc4 100644 --- a/source/_components/tplink_lte.markdown +++ b/source/_components/tplink_lte.markdown @@ -28,9 +28,9 @@ tplink_lte: password: SECRET notify: - name: sms1 - target: "+15105550123" + recipient: "+15105550123" - name: sms2 - target: "+55520525252" + recipient: "+55520525252" ``` {% configuration %} From f5989e69f1b83454fb27c4c6b54623fa760d61b4 Mon Sep 17 00:00:00 2001 From: CrazYoshi Date: Sun, 10 Feb 2019 22:14:41 +0100 Subject: [PATCH 26/68] Ebusd integration (#7961) * ebusd integration documentation * update markdown following suggestions * Update source/_components/ebusd.markdown Co-Authored-By: CrazYoshi * :pencil2: Tweaks * category changed to Hub * Update source/_components/ebusd.markdown Co-Authored-By: CrazYoshi * Bumping ha_release prior to merge --- source/_components/ebusd.markdown | 119 ++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 source/_components/ebusd.markdown diff --git a/source/_components/ebusd.markdown b/source/_components/ebusd.markdown new file mode 100644 index 00000000000..fcc02daa8e6 --- /dev/null +++ b/source/_components/ebusd.markdown @@ -0,0 +1,119 @@ +--- +layout: page +title: "ebusd" +description: "The ebusd component allows the integration between eBUS heating system and Home Assistant." +date: 2018-12-27 15:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: ebusd.png +ha_category: Sensor +ha_iot_class: "Local Polling" +ha_release: "0.88" +--- + +Integration between [ebusd](https://github.com/john30/ebusd/) daemon for communication with eBUS heating systems, and Home Assistant using sensor component. + +## {% linkable_title Configuration %} + +Enable the sensor by adding the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +ebusd: + host: 127.0.0.1 + circuit: '700' +``` + +{% configuration %} +host: + description: This is the IP address of your ebus daemon, e.g., `127.0.0.1`. + required: true + type: string +circuit: + description: The heating circuit name to monitor, e.g., 700. + required: true + type: string +port: + description: The port your ebus daemon uses. + type: integer + required: false + default: 8888 +name: + description: The name to use when displaying this ebusd instance. + type: string + required: false + default: ebusd +monitored_conditions: + description: List of condition to monitor. + type: list + required: false + keys: + ActualFlowTemperatureDesired: + description: Heating circuit flow temperature desired. + MaxFlowTemperatureDesired: + description: Heating circuit maximum flow temperature. + MinFlowTemperatureDesired: + description: Heating circuit minimum flow temperature. + PumpStatus: + description: Heating circuit pump status. + HCSummerTemperatureLimit: + description: Heating circuit summer temperature limit. + HolidayTemperature: + description: Heating circuit holiday temperature. + HWTemperature: + description: Hot water circuit actual temperature. + HWTemperatureDesired: + description: Hot water circuit desired temperature. + HWTimerMonday: + description: Hot water circuit monday timer. + HWTimerTuesday: + description: Hot water circuit tuesday timer. + HWTimerWednesday: + description: Hot water circuit wednesday timer. + HWTimerThursday: + description: Hot water circuit thursday timer. + HWTimerFriday: + description: Hot water circuit friday timer. + HWTimerSaturday: + description: Hot water circuit saturday timer. + HWTimerSunday: + description: Hot water circuit sunday timer. + WaterPressure: + description: Water pressure (bar). + Zone1RoomZoneMapping: + description: Room controller assignment zone 1. + Zone1NightTemperature: + description: Heating circuit night temperature desired on zone 1. + Zone1DayTemperature: + description: Heating circuit day temperature desired on zone 1. + Zone1HolidayTemperature: + description: Heating circuit holiday temperature desired on zone 1. + Zone1RoomTemperature: + description: Actual room temperature on zone 1. + Zone1ActualRoomTemperatureDesired: + description: Actual room temperature desired on zone 1. + Zone1TimerMonday: + description: Heating circuit monday timer on zone 1. + Zone1TimerTuesday: + description: Heating circuit tuesday timer on zone 1. + Zone1TimerWednesday: + description: Heating circuit wednesday timer on zone 1. + Zone1TimerThursday: + description: Heating circuit thursday timer on zone 1. + Zone1TimerFriday: + description: Heating circuit friday timer on zone 1. + Zone1TimerSaturday: + description: Heating circuit saturday timer on zone 1. + Zone1TimerSunday: + description: Heating circuit sunday timer on zone 1. + Zone1OperativeMode: + description: Heating circuit operative mode (on/off/day/night). + ContinuosHeating: + description: Continuos heating. + PowerEnergyConsumptionLastMonth: + description: Power energy consumption from last month. + PowerEnergyConsumptionThisMonth: + description: Power energy consumption from the actual month. +{% endconfiguration %} From 13467f21ba23e814e73bd7ce1c0328e93f575f69 Mon Sep 17 00:00:00 2001 From: Anders Einar Hilden Date: Sun, 10 Feb 2019 22:35:42 +0100 Subject: [PATCH 27/68] Add instructions for connecting to hidden SSIDs (#8465) * Add instructions for connecting to hidden SSIDs * Minor change --- source/_docs/installation/hassbian/installation.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_docs/installation/hassbian/installation.markdown b/source/_docs/installation/hassbian/installation.markdown index f7545cf61ed..26d1f729441 100644 --- a/source/_docs/installation/hassbian/installation.markdown +++ b/source/_docs/installation/hassbian/installation.markdown @@ -55,6 +55,8 @@ network={ You may need to adjust the country code depending upon where you are. A list of codes can be found [here](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements). +If you are using a [hidden SSID](https://en.wikipedia.org/wiki/Network_cloaking) for your WiFi network , you must add `scan_ssid=1` to the `network` section to be able to connect. + If you are running in trouble with your WiFi connection (for [further details](https://www.raspberrypi.org/forums/viewtopic.php?t=207882)), check the output of the following command: ```bash From a486f521ff39b449bbf1c4c8ddd94ca5ed4f186a Mon Sep 17 00:00:00 2001 From: Peter Nijssen Date: Sun, 10 Feb 2019 23:15:13 +0100 Subject: [PATCH 28/68] added fan support for spider (#8456) --- source/_components/climate.spider.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/climate.spider.markdown b/source/_components/climate.spider.markdown index a25d49d7f94..084eae81865 100644 --- a/source/_components/climate.spider.markdown +++ b/source/_components/climate.spider.markdown @@ -13,7 +13,7 @@ ha_iot_class: "Cloud Polling" ha_release: 0.75 --- -The `spider` climate platform allows you to control your temperature settings as well as if you want to cool or heat. +The `spider` climate platform allows you to control your temperature and fan settings as well as if you want to cool or heat.

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 Date: Mon, 11 Feb 2019 02:08:00 -0700 Subject: [PATCH 29/68] Added docs for new Ambient PWS fields (#8432) * Added docs for new Ambient PWS fields * Minor change --- source/_components/ambient_station.markdown | 129 +++++++++++++++++++- 1 file changed, 124 insertions(+), 5 deletions(-) diff --git a/source/_components/ambient_station.markdown b/source/_components/ambient_station.markdown index 079d57f9f96..5dc01ea15b2 100644 --- a/source/_components/ambient_station.markdown +++ b/source/_components/ambient_station.markdown @@ -14,10 +14,9 @@ redirect_from: --- The `Ambient Weather Station` component retrieves local weather information -via personal weather stations from -[Ambient Weather](https://ambientweather.net). +via personal weather stations from [Ambient Weather](https://ambientweather.net). -## {% linkable_title Generating API Keys and Application Keys %} +## {% linkable_title Setup %} Using this component requires both an Application Key and an API Key. To generate both, simply utilize the profile section of @@ -31,8 +30,8 @@ following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry ambient_station: - api_key: - app_key: + api_key: YOUR_API_KEY + app_key: YOUR_APPLICATION_KEY ``` {% configuration %} @@ -57,6 +56,26 @@ monitored_conditions: description: Relative atmospheric pressure battout: description: Weather station battery health + batt1: + description: Sensor 1 battery health + batt2: + description: Sensor 2 battery health + batt3: + description: Sensor 3 battery health + batt4: + description: Sensor 4 battery health + batt5: + description: Sensor 5 battery health + batt6: + description: Sensor 6 battery health + batt7: + description: Sensor 7 battery health + batt8: + description: Sensor 8 battery health + batt9: + description: Sensor 9 battery health + batt10: + description: Sensor 10 battery health co2: description: CO2 level dailyrainin: @@ -71,6 +90,26 @@ monitored_conditions: description: Hourly rain accumulation humidity: description: Outdoor humidity + humidity1: + description: Sensor 1 humidity + humidity2: + description: Sensor 2 humidity + humidity3: + description: Sensor 3 humidity + humidity4: + description: Sensor 4 humidity + humidity5: + description: Sensor 5 humidity + humidity6: + description: Sensor 6 humidity + humidity7: + description: Sensor 7 humidity + humidity8: + description: Sensor 8 humidity + humidity9: + description: Sensor 9 humidity + humidity10: + description: Sensor 10 humidity humidityin: description: Indoor humidity lastRain: @@ -79,8 +118,88 @@ monitored_conditions: description: Max daily wind gust monthlyrainin: description: Monthly rain accumulation + relay1: + description: Sensor 1 relay status + relay2: + description: Sensor 2 relay status + relay3: + description: Sensor 3 relay status + relay4: + description: Sensor 4 relay status + relay5: + description: Sensor 5 relay status + relay6: + description: Sensor 6 relay status + relay7: + description: Sensor 7 relay status + relay8: + description: Sensor 8 relay status + relay9: + description: Sensor 9 relay status + relay10: + description: Sensor 10 relay status + soilhum1: + description: Sensor 1 soil humidity + soilhum2: + description: Sensor 2 soil humidity + soilhum3: + description: Sensor 3 soil humidity + soilhum4: + description: Sensor 4 soil humidity + soilhum5: + description: Sensor 5 soil humidity + soilhum6: + description: Sensor 6 soil humidity + soilhum7: + description: Sensor 7 soil humidity + soilhum8: + description: Sensor 8 soil humidity + soilhum9: + description: Sensor 9 soil humidity + soilhum10: + description: Sensor 10 soil humidity + soiltemp1f: + description: Sensor 1 soil temperature + soiltemp2f: + description: Sensor 2 soil temperature + soiltemp3f: + description: Sensor 3 soil temperature + soiltemp4f: + description: Sensor 4 soil temperature + soiltemp5f: + description: Sensor 5 soil temperature + soiltemp6f: + description: Sensor 6 soil temperature + soiltemp7f: + description: Sensor 7 soil temperature + soiltemp8f: + description: Sensor 8 soil temperature + soiltemp9f: + description: Sensor 9 soil temperature + soiltemp10f: + description: Sensor 10 soil temperature solarradiation: description: Solar radiation + temp1f: + description: Sensor 1 temperature + temp2f: + description: Sensor 2 temperature + temp3f: + description: Sensor 3 temperature + temp4f: + description: Sensor 4 temperature + temp5f: + description: Sensor 5 temperature + temp6f: + description: Sensor 6 temperature + temp7f: + description: Sensor 7 temperature + temp8f: + description: Sensor 8 temperature + temp9f: + description: Sensor 9 temperature + temp10f: + description: Sensor 10 temperature tempf: description: Outdoor temperature tempinf: From c5665deb3b634b806521cba71bd12418d5375d15 Mon Sep 17 00:00:00 2001 From: Joakim Plate Date: Mon, 11 Feb 2019 12:59:20 +0100 Subject: [PATCH 30/68] Update scene.markdown (#8410) Add note about exception to the single service per state rule. --- source/_components/scene.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/scene.markdown b/source/_components/scene.markdown index 78618af7751..50863998222 100644 --- a/source/_components/scene.markdown +++ b/source/_components/scene.markdown @@ -69,5 +69,5 @@ automation: ```

-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.

From 1e0db23260dca29ffaceddf8f808cfffa8427bc8 Mon Sep 17 00:00:00 2001 From: Timmo Date: Mon, 11 Feb 2019 12:14:04 +0000 Subject: [PATCH 31/68] GitHub Sensor (#7942) * :books: Add GitHub sensor component docs * :hammer: Clarify name * :hammer: Fix typo and reword * :hammer: Set optionals * :books: Add examples for both login methods * :hammer: fix grammar Co-Authored-By: timmo001 * :hammer: remove optionals from example * :books: Reword setup section Co-Authored-By: timmo001 * :sparkles: Add enterprise server_url docs * :hammer: Update release number * :books: Update HA Release * :hammer: Change from server_url to url as suggested in main PR * :hammer: Update docs to match changes to sensor * :hammer: Update version --- source/_components/sensor.github.markdown | 57 +++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 source/_components/sensor.github.markdown diff --git a/source/_components/sensor.github.markdown b/source/_components/sensor.github.markdown new file mode 100644 index 00000000000..54750e0260a --- /dev/null +++ b/source/_components/sensor.github.markdown @@ -0,0 +1,57 @@ +--- +layout: page +title: "GitHub Sensor" +description: "How to integrate the GitHub sensor into Home Assistant." +date: 2018-12-24 18:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: github.png +ha_category: Sensor +ha_release: 0.88 +ha_iot_class: "Cloud Polling" +--- + +The GitHub sensor integrates data from [GitHub](https://github.com/) to monitor your favorite repositories. + +## {% linkable_title Setup %} + +To set up this sensor you will need a [personal access token][accesstoken]. You will need to check the `repo` scope for the sensor to function. + +## {% linkable_title Configuration %} + +To enable this platform, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: github + access_token: !secret github_access_token + repositories: + - path: 'home-assistant/home-assistant' +``` + +{% configuration %} +access_token: + description: Your GitHub Access Token + required: true + type: string +url: + description: If you are using a GitHub Enterprise server, add it's URL here. For example, `https://mygithubserver.com` + required: false + type: string +repositories: + description: A list of repository paths and optionally a name + required: true + type: list + keys: + path: + description: Path to the repository. For Home Assistant this will be `home-assistant/home-assistant` + required: true + type: string + name: + description: Name of the sensor. Gives the sensor a custom name in Home Assistant. Defaults to the repository name from GitHub if not specified. + required: false + type: string +{% endconfiguration %} From 633a90f6efb0b8bc92517d5e70aa19e301f064d7 Mon Sep 17 00:00:00 2001 From: Oleksii Serdiuk Date: Mon, 11 Feb 2019 13:15:07 +0100 Subject: [PATCH 32/68] Update Flux Led documentation (#7755) --- source/_components/light.flux_led.markdown | 69 +++++++++++++++++----- 1 file changed, 54 insertions(+), 15 deletions(-) diff --git a/source/_components/light.flux_led.markdown b/source/_components/light.flux_led.markdown index 72c02ef8c43..ff4dfd92c8f 100644 --- a/source/_components/light.flux_led.markdown +++ b/source/_components/light.flux_led.markdown @@ -47,7 +47,7 @@ automatic_add: default: false type: boolean devices: - description: A list of devices with their ip address + description: A list of devices with their ip address. required: false type: list keys: @@ -56,14 +56,33 @@ devices: required: false type: string mode: - description: "The chosen brightness mode, options are: 'rgbw' and 'rgb'." + description: "The chosen brightness mode, options are: `rgbw`, `rgb` and `w`." required: false default: rgbw type: string protocol: - description: Set this to 'ledenet' if you are using a ledenet bulb. + description: Set this to `ledenet` if you are using a ledenet bulb. required: false type: string + custom_effect: + description: A definition of the custom effect. + required: false + type: map + keys: + colors: + description: A list of 1 to 16 colors, used in the effect loop (see example below). Defined as three comma-separated integers between 0 and 255 that represent the color in RGB. There is no way to set brightness, but you can define lower RGB values to simulate lower brightness. E.g., if you want 50% red, define it as `[127,0,0]` instead of `[255,0,0]`. + required: true + type: list + speed_pct: + description: A speed in percents (100 being the fastest), at which controller will transition between the colors. + required: false + type: integer + default: 50 + transition: + description: "A type of transition, which will be used to transition between the colors. Supported values are: `gradual`, `jump` and `strobe`." + required: false + type: string + default: gradual {% endconfiguration %}

@@ -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 Date: Mon, 11 Feb 2019 06:31:09 -0600 Subject: [PATCH 33/68] Update doorbird events to include URLs on event_data (#7826) * Update doorbird events to include URLs on event_data as shown in documentation. * :pencil2: Tweaks --- source/_components/doorbird.markdown | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source/_components/doorbird.markdown b/source/_components/doorbird.markdown index 610549f2966..111f79f1b2d 100644 --- a/source/_components/doorbird.markdown +++ b/source/_components/doorbird.markdown @@ -121,6 +121,14 @@ Please note that clearing device registrations will prevent the device from send Each event includes live image and video URLs for the Doorbird device that triggered the event. These URLs can be found on the event data and can be useful in automation actions. For example, you could use `html5_viewer_url` on a notification to be linked directly to the live view of the device that triggered the automation. +The following keys are available on `event_data`: + +- `timestamp` +- `live_video_url` +- `live_image_url` +- `rtsp_live_video_url` +- `html5_viewer_url` +

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.

From ae4facc68025761cf8fc2a6baabb7cc8073bb2fc Mon Sep 17 00:00:00 2001 From: Tim van Cann Date: Mon, 11 Feb 2019 13:31:43 +0100 Subject: [PATCH 34/68] Google pubsub (#8153) * Add basic documentation for google_pubsub * Add guide to saving data * Fix markdown * :pencil: Tweaks * Make configuration quick-start proof. * :pencil2: Tweaks * Bump release version to 0.87 * Bump release * Update category to History --- source/_components/google_pubsub.markdown | 86 ++++++++++++++++++ .../images/supported_brands/google-pubsub.png | Bin 0 -> 12775 bytes 2 files changed, 86 insertions(+) create mode 100644 source/_components/google_pubsub.markdown create mode 100644 source/images/supported_brands/google-pubsub.png diff --git a/source/_components/google_pubsub.markdown b/source/_components/google_pubsub.markdown new file mode 100644 index 00000000000..c7738613a31 --- /dev/null +++ b/source/_components/google_pubsub.markdown @@ -0,0 +1,86 @@ +--- +layout: page +title: "Google Pub/Sub" +description: "Setup for Google Pub/Sub integration" +date: 2019-01-12 13:30 +sidebar: true +comments: false +sharing: true +footer: true +logo: google-pubsub.png +ha_category: History +ha_release: 0.88 +--- + +The `google_pubsub` component allows you to hook into the Home Assistant event bus and send events to [Google Cloud Pub/Sub](https://cloud.google.com/pubsub/docs/overview). The current [free tier](https://cloud.google.com/free/) of GCP should allow you to sync about 1 event every 2 seconds on average (2 million invocations per month). + +## {% linkable_title First time setup %} + +This assumes you already have a Google Cloud project. If you don't, please create one in the [Google Cloud Console](https://console.cloud.google.com/projectcreate) + +You need to create a Service Account key in the [Google Cloud API Console](https://console.cloud.google.com/apis/credentials/serviceaccountkey) +- Choose a new "New Service Account", give it a name and leave the key type as JSON +- Select the role: Pub/Sub Publisher + +This will download the Service Account JSON key to your machine. Do NOT share this with anyone. Place this file in your Home Assistant config folder. + +Next, create a Google Pub/Sub topic in the [Google Cloud API Console](https://console.cloud.google.com/cloudpubsub/topicList). The topic name will become something like `projects/project-198373/topics/topic-name`. Note the last part only (the name you chose): `topic-name`. + + +## {% linkable_title Configuration %} + +Add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +google_pubsub: + project_id: YOUR_PROJECT_ID + topic_name: YOUR_TOPIC_NAME + credentials_json: CREDENTIALS_FILENAME +``` + +{% configuration %} +project_id: + description: Project ID from the Google console (looks like `words-2ab12`). + required: true + type: string +topic_name: + description: The Pub/Sub topic name. + required: true + type: string +credentials_json: + description: The filename of the Google Service Account JSON file. + required: true + type: string +filter: + description: Filter domains and entities for Google Cloud Pub/Sub. + required: false + type: map + default: Includes all entities from all domains + keys: + include_domains: + description: List of domains to include (e.g., `light`). + required: false + type: list + exclude_domains: + description: List of domains to exclude (e.g., `light`). + required: false + type: list + include_entities: + description: List of entities to include (e.g., `light.attic`). + required: false + type: list + exclude_entities: + description: List of entities to include (e.g., `light.attic`). + required: false + type: list +{% endconfiguration %} + +

+ 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. +

+ +### {% linkable_title Saving the data using a Google Cloud Function %} + +To save your data automatically to BigQuery, follow the [instructions here](https://github.com/timvancann/home-assistant-pubsub-cloud-function). The current [free tier](https://cloud.google.com/free/) of GCP should allow to store up to 10GB of data. + diff --git a/source/images/supported_brands/google-pubsub.png b/source/images/supported_brands/google-pubsub.png new file mode 100644 index 0000000000000000000000000000000000000000..0ff9a4df927c740a4a67a30facd7b86516e9d17f GIT binary patch literal 12775 zcmd6OWm}tF({*sSBE?;c7cXwby*LGe6?b=cDemrtAjPeCpak~@ha$z@<;`^;?~iys zBp;Gv_Bpfn$eOk1j8RvW!$K!T2LJ$A3i2|V0011@e;-t2*e^Z-i5>s|H9$c|@{4!g z$(mOlz4n5@`9??EkHPQ>$iTo)B~^GO?9i0dK00{Dzdrs6MZxce5I-nz6(=DMKW9mz zAxo%-AnAk#NB3$*n^{Tfy9ftTW_vj!(PttjFW5 zBN$f-l_vcE-j`izGXn8%pou}cC#nY>?fruYF@Ox&1_@wF1`kNP1pbjo&OsY6L~~~j z{wk3LmY@Vw51BG(696JV-M|V#bsPT7767{RthC>&k%I>$3Vw+>=%Efby+MWRMLK5!T+LxQ z+NXx67vyO^vf+M39KcMO|N9{+8XL*E>bBdlbx#=6pG3k78j>LU;RFDtg-_I$NlMmy zQ9ov_QCIV76;p2g(fH`0_vEHH;VA>7+TfzjT0&hPMEkS}*PaAC_y z_^tcMxI02!qKC*!MPCpApH3ul@}D-)^#i@Z!Lzn%Cw_0ap3JoRV^^rD%e*wm9Q0DCO)bz@JF4Z!EJhc^jI8Ov+K1Cm>Kp1Y4LGqF~@E$ zk>LntE$SS$DI%h^nn|iB@qmM3wVPmrxYgeA*^d<3eS9LjwvmRk*)#f*fVo8J_5=cl zQhyJ9;>dkVTiasuRjNTVFC2J>Q=j!4g+TuqdSdkgF^LZX|~vm+VglZAMZECz;rG)#=n(JQzYe zVH-Kai*8Wuq!))Ui%ri8+s3-IOqvo0h2%6*qDI=17YV@y13x=xqeTepz(->eTh4se z+fc0)gmGuwN3X7z2Kz*Y`hGTtx#SDKuS5$LY^FjEjh$=o#(#5B%gG{!EPk)heWweUcw|7elN3WvuHH>UgzH z)b_`H{ER}|@cGY*`JBHMdExQ$kNtSbHY?{6hqWh}YPpoZbr8Z${|aIVW~oM`2Gb^` zJ*pBT%5hyuK>OQAAHvghVk~H(nezFWW4UqM@z`G!^Q}NH`q1S6{W)17gn9B%7&iZg z%R+q;kgT%n3FxsI*(SZKrf{V~2gIn<_@LHI5DhuAQJ#A~SFP)-& z`1_BO|6V0G)RLNa=ItXuHn*s$8Gn47yqfn|j69PU#?6EYlYWYn zwe;)D`+-%iMT?mahU*yEGBnuo?XN&iEx(1W@K#FOzVk(lm=s31Bf+*a*$gmt{vn|g$7tUl1Hx}L-E**i zod9@B@NTL#1BAd$ia|$6P?BE1P~0%$43j(WQVO-mYbT5 zF_hy(id*!!x7M3cV`U-e&YResbryVoCxm?kJ;Wni`$mVZuH6%~NcWinIAx+%R@L-m zVkpN-tD#y;W4`?=7+72m+be!MVNtt{XSKNH5~{EAX`1g@Ku|1%UF&7t}j=$sD=2gw);YCdV3 z8=%cs2T~sOb2JqDO7ozT7f)u>xC`Xn5Ha~B=eaZ;CT5VDnd*6gGps5oG2BDu9vK1n zbFcAr7?=%fR_H5gac{0Rtjy%iT6hTMfmw>2^fnIg2#VE5>6#}BYxs3;uPi|8R2I(C zmQQH}iE4j`bCs=$h3)I!`Q@}7#gj*)E~W*e7rB9ccWdBN4=hrP%@O;P=cZ+SL5WM2M;(fBKz3b^bK7^Er`Va4bgP`g!IIp zj4Q@Pw*0!IO#U{s<{h58ymO?%I+J%!3HL^SMn?6uL}wHkpRrxQKVot>uigk*f}wj` zOj@TB&2|0D-LJU?ny&S0hGvK~bZ0mW%%OaiMN+e(tEjN@1sWu)#VR0HidlOIw{*x; zsv?Hv_u!Hfo(qp{R9f&6YijP7c4y1r>5rFoYu?gp(ix{)$QrCHH($vjQQ/D+x8 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 Date: Mon, 11 Feb 2019 13:32:47 +0100 Subject: [PATCH 35/68] html5 notification VAPID support (#8279) * html5 notification VAPID support * split to two examples show vapid first, add gcm deprecation notice. --- source/_components/notify.html5.markdown | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/source/_components/notify.html5.markdown b/source/_components/notify.html5.markdown index 84f4338db7d..50166ea8f02 100644 --- a/source/_components/notify.html5.markdown +++ b/source/_components/notify.html5.markdown @@ -22,6 +22,18 @@ HTML5 push notifications **do not** work on iOS. To enable this platform, add the following lines to your `configuration.yaml` file: +```yaml +# Example configuration.yaml entry +notify: + - platform: html5 + name: NOTIFIER_NAME + vapid_pub_key: YOUR_PUBLIC_KEY + vapid_prv_key: YOUR_PRIVATE_KEY + vapid_email: YOUR_EMAIL +``` + +Or + ```yaml # Example configuration.yaml entry notify: @@ -54,7 +66,9 @@ gcm_sender_id: 3. Go to [https://console.cloud.google.com/apis/credentials/domainverification](https://console.cloud.google.com/apis/credentials/domainverification) and verify your domain via Google Webmaster Central / Search Console - [instructions](#verify-your-domain). 4. With the domain verified, go to [https://console.firebase.google.com](https://console.firebase.google.com), select import Google project and select the project you created. 5. Then, click the cogwheel on top left and select "Project settings". -6. Select 'Cloud Messaging' tab, listed beneath Project Credentials will be your 152 character 'Server Key' and 12 digit ID 'Sender ID' you need for configuring this component. +6. Select 'Cloud Messaging' tab. +7. If using VAPID: Generate a new key pair under the Web configuration listing at the bottom of the page. To view the private key click the three dots to the right and 'Show private key'. +8. If using GCM: Listed beneath Project Credentials will be your 152 character 'Server Key' and 12 digit ID 'Sender ID' you need for configuring this component. Notice: GCM is deprecated and will stop working in April 2019, see https://developers.google.com/cloud-messaging/faq #### {% linkable_title Verify your domain %} From 2e2cd6dc964bfd67232f25393ee15d78a55060b8 Mon Sep 17 00:00:00 2001 From: Klaas Schoute Date: Mon, 11 Feb 2019 15:46:17 +0100 Subject: [PATCH 36/68] =?UTF-8?q?=F0=9F=9A=9C=20Merges=20Velux=20component?= =?UTF-8?q?=20+=20Add=20cover=20support=20(#8486)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/_components/velux.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/_components/velux.markdown b/source/_components/velux.markdown index 697d9a617e0..68468b6b08d 100644 --- a/source/_components/velux.markdown +++ b/source/_components/velux.markdown @@ -10,6 +10,7 @@ footer: true logo: velux.png ha_category: - Scene + - Cover ha_release: 0.49 ha_iot_class: "Local Polling" redirect_from: @@ -18,6 +19,11 @@ redirect_from: [Velux](http://www.velux.com) integration for Home Assistant allows you to connect to a Velux KLF 200 interface, to control [io-homecontrol](http://www.io-homecontrol.com) devices like windows and blinds. The module allows you to start scenes configured within KLF 200. +There is currently support for the following device types within Home Assistant: + +- Cover +- Scene + ## {% linkable_title Configuration %} A `velux` section must be present in the `configuration.yaml` file and contain the following options as required: From 6cf9eee5fa75a4e6e38032f90c72cb9ffc221af8 Mon Sep 17 00:00:00 2001 From: Ben Van Mechelen Date: Mon, 11 Feb 2019 20:52:46 +0100 Subject: [PATCH 37/68] Add support for multiple modbus hubs. (#8027) * Add support for multiple modbus hubs. * fixed typo * Update documentation for flexit * Hub name is optional --- .../_components/binary_sensor.modbus.markdown | 9 +++++ source/_components/climate.flexit.markdown | 7 +++- source/_components/climate.modbus.markdown | 6 ++++ source/_components/modbus.markdown | 33 ++++++++++++++++++- source/_components/sensor.modbus.markdown | 9 +++++ source/_components/switch.modbus.markdown | 12 +++++++ 6 files changed, 74 insertions(+), 2 deletions(-) diff --git a/source/_components/binary_sensor.modbus.markdown b/source/_components/binary_sensor.modbus.markdown index fbc300c2984..e57f19b7581 100644 --- a/source/_components/binary_sensor.modbus.markdown +++ b/source/_components/binary_sensor.modbus.markdown @@ -25,9 +25,11 @@ binary_sensor: - platform: modbus coils: - name: Sensor1 + hub: hub1 slave: 1 coil: 100 - name: Sensor2 + hub: hub1 slave: 1 coil: 110 ``` @@ -42,6 +44,11 @@ coils: 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 UDP Modbus). required: true @@ -64,9 +71,11 @@ binary_sensor: scan_interval: 10 coils: - name: Sensor1 + hub: hub1 slave: 1 coil: 100 - name: Sensor2 + hub: hub1 slave: 1 coil: 110 ``` diff --git a/source/_components/climate.flexit.markdown b/source/_components/climate.flexit.markdown index 36cda1ecf58..4ef2ab70609 100644 --- a/source/_components/climate.flexit.markdown +++ b/source/_components/climate.flexit.markdown @@ -35,6 +35,11 @@ name: description: Displayed name of the A/C unit. required: false type: string +hub: + description: The name of the hub where this slave is located. + required: false + default: default + type: string {% endconfiguration %}

@@ -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 Date: Mon, 11 Feb 2019 21:58:51 +0100 Subject: [PATCH 38/68] New working device (#8492) Added TX-42AS650 to supported models --- source/_components/media_player.panasonic_viera.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/media_player.panasonic_viera.markdown b/source/_components/media_player.panasonic_viera.markdown index 4da75316fb5..ac1a157c452 100644 --- a/source/_components/media_player.panasonic_viera.markdown +++ b/source/_components/media_player.panasonic_viera.markdown @@ -30,6 +30,7 @@ Currently known supported models: - TX-P50GT30Y - TX-P50GT60E - TH-32ES500 +- TX-42AS650 If your model is not on the list then give it a test, if everything works correctly then add it to the list on [GitHub](https://github.com/home-assistant/home-assistant.github.io/blob/next/source/_components/media_player.panasonic_viera.markdown). From 8461d7494755351a19c008b95322010344b81e69 Mon Sep 17 00:00:00 2001 From: Rohan Kapoor Date: Mon, 11 Feb 2019 15:06:58 -0800 Subject: [PATCH 39/68] Split out fastdotcom into a sensor and component (#8377) * Split out fastdotcom into a sensor and component * Correct copy/paste error * Update ha_category Co-Authored-By: rohankapoorcom * Consolidate the fastdotcom sensor page back into the component * :pencil2: Tweaks --- source/_components/fastdotcom.markdown | 86 +++++++++++++++++++ source/_components/sensor.fastdotcom.markdown | 73 ---------------- 2 files changed, 86 insertions(+), 73 deletions(-) create mode 100755 source/_components/fastdotcom.markdown delete mode 100644 source/_components/sensor.fastdotcom.markdown diff --git a/source/_components/fastdotcom.markdown b/source/_components/fastdotcom.markdown new file mode 100755 index 00000000000..e416b10e338 --- /dev/null +++ b/source/_components/fastdotcom.markdown @@ -0,0 +1,86 @@ +--- +layout: page +title: "Fast.com" +description: "How to integrate Fast.com within Home Assistant." +date: 2019-02-01 21:30 +sidebar: true +comments: false +sharing: true +footer: true +logo: fastdotcom.png +ha_category: + - System Monitor + - Sensor +featured: false +ha_release: 0.88 +ha_iot_class: "Cloud Polling" +redirect_form: + - /components/sensor.fastdotcom/ +--- + +The `fastdotcom` component uses the [Fast.com](https://fast.com/) web service to measure network bandwidth performance. + +

+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. +

+ +Enabling this component will automatically create the Fast.com Sensor. + +By default, a speed test will be run every hour. The user can change the update frequency in the configuration by defining the `update_interval` for a speed test to run. + +## {% linkable_title Configuration %} + +To add Fast.com to your installation, add the following to your `configuration.yaml` file: + +Once per hour, on the hour (default): + +```yaml +fastdotcom: +``` + +Every half hour of every day: + +```yaml +fastdotcom: + update_interval: + minutes: 30 +``` + +{% configuration %} +update_interval: + description: "Minimum time interval between updates. Supported formats: `update_interval: 'HH:MM:SS'`, `update_interval: 'HH:MM'` and Time period dictionary (see example below)." + required: false + default: 60 minutes + type: time +manual: + description: Turn manual mode on or off. Manual mode will disable scheduled speedtests. + required: false + default: false + type: boolean +{% endconfiguration %} + +#### {% linkable_title Time period dictionary example %} + +```yaml +update_interval: + # At least one of these must be specified: + days: 0 + hours: 0 + minutes: 3 + seconds: 30 + milliseconds: 0 +``` + +### {% linkable_title Service %} + +Once loaded, the `fastdotcom` component will expose a service (`fastdotcom.speedtest`) that can be called to run a Fast.com speed test on demand. This service takes no parameters. This can be useful if you have enabled manual mode. + +```yaml +action: + service: fastdotcom.speedtest +``` + +## {% linkable_title Notes %} + +- When running on Raspberry Pi, the maximum speed is limited by its 100 Mbit/s LAN adapter. +- The sensor will return the maximum measured speed during a 15-second test. diff --git a/source/_components/sensor.fastdotcom.markdown b/source/_components/sensor.fastdotcom.markdown deleted file mode 100644 index 5a6654dda7f..00000000000 --- a/source/_components/sensor.fastdotcom.markdown +++ /dev/null @@ -1,73 +0,0 @@ ---- -layout: page -title: "Fast.com" -description: "How to integrate Fast.com within Home Assistant." -date: 2016-08-10 17:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: fastdotcom.png -ha_category: System Monitor -featured: false -ha_release: 0.26 -ha_iot_class: "Cloud Polling" ---- - -The `fastdotcom` sensor component uses the [Fast.com](https://fast.com/) web service to measure network bandwidth performance. - -

-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. -

- -By default, it will run every hour. The user can change the update frequency in the configuration by defining the minute and hour for a speedtest to run. - -## {% linkable_title Configuration %} - -To add a Fast.com sensor to your installation, add the following to your `configuration.yaml` file: - -Once per hour, on the hour (default): - -```yaml -sensor: - - platform: fastdotcom -``` - -Every half hour of every day: - -```yaml -sensor: - - platform: fastdotcom - minute: - - 0 - - 30 -``` - -{% configuration %} -second: - description: Specify the second(s) of the hour to schedule the speedtest. Use a list for multiple entries. - required: false - default: 0 - type: list -minute: - description: Specify the minute(s) of the hour to schedule the speedtest. Use a list for multiple entries. - required: false - default: 0 - type: list -hour: - description: Specify the hour(s) of the day to schedule the speedtest. Use a list for multiple entries. - required: false - type: list -manual: - description: Turn manual mode on or off. Manual mode will disable scheduled speedtests. - required: false - default: false - type: boolean -{% endconfiguration %} - -There is also a service named `sensor.update_fastdotcom` that you can use to run a fast.com speedtest on demand. You can turn on manual mode to disable the scheduled speedtests. - -## {% linkable_title Notes %} - -- When running on Raspberry Pi, just note that the maximum speed is limited by its 100 Mbit/s LAN adapter. -- This entity will return the maximum measured speed during an 15 second test. From 9b08846451246cd3beb44749c093c0a2a7bc25aa Mon Sep 17 00:00:00 2001 From: farmio Date: Tue, 12 Feb 2019 00:23:00 +0100 Subject: [PATCH 40/68] update light.knx for xknx 0.9.4 (#7979) * update light.knx for xknx 0.9.3 * remove white_value; add color_temperature_mode reflect changes from https://github.com/XKNX/xknx/pull/165 * added note for tunable white added note poiniting out Kelvin/Mireds relationship * :pencil2: Tweaks --- source/_components/light.knx.markdown | 103 ++++++++++++++++++++++---- 1 file changed, 90 insertions(+), 13 deletions(-) diff --git a/source/_components/light.knx.markdown b/source/_components/light.knx.markdown index 2fc2af1508c..b2c833b750a 100644 --- a/source/_components/light.knx.markdown +++ b/source/_components/light.knx.markdown @@ -13,10 +13,14 @@ ha_release: 0.44 ha_iot_class: "Local Polling" --- +The `knx light` component is used as an interface to control knx actuators for lighting applications such as: -The `knx` light component is used as in interface to switching/light actuators. +- switching actuators +- dimming actuators +- LED controllers +- DALI gateways -The `knx` component must be configured correctly, see [KNX Component](/components/knx). +The `knx` component must be configured correctly to use this component, see [KNX Component](/components/knx). ## {% linkable_title Configuration %} @@ -31,34 +35,107 @@ light: {% configuration %} address: - description: KNX group address for switching the light on and off. + description: KNX group address for switching the light on and off. *DPT 1.001* required: true type: string +state_address: + description: KNX group address for retrieving the switch state of the light. *DPT 1.001* + required: false + type: string name: description: A name for this device used within Home Assistant. required: false type: string brightness_address: - description: KNX group address for dimming light. - required: false - type: string -state_address: - description: separate KNX group address for retrieving the switch state of the light. + description: KNX group address for setting the brightness of the light in percent (absolute dimming). *DPT 5.001* required: false type: string brightness_state_address: - description: separate KNX group address for retrieving the dimmed state of the light. + description: KNX group address for retrieving the brightness of the light in percent. *DPT 5.001* required: false type: string color_address: - description: separate KNX group address for setting the color of the light. + description: KNX group address for setting the RGB color of the light. *DPT 232.600* required: false type: string color_state_address: - description: separate KNX group address for retrieving the color of the light. + description: KNX group address for retrieving the RGB color of the light. *DPT 232.600* required: false type: string +color_temperature_address: + description: KNX group address for setting the color temperature of the light. *DPT 5.001 or 7.600 based on color_temperature_mode* + required: false + type: string +color_temperature_state_address: + description: KNX group address for retrieving the color temperature of the light. *DPT 5.001 or 7.600 based on color_temperature_mode* + required: false + type: string +color_temperature_mode: + description: Color temperature group address data type. + keys: + absolute: + description: color temperature in Kelvin. *color_temperature_address -> DPT 7.600* + relative: + description: color temperature in percent cold white (0% warmest; 100% coldest). *color_temperature_address -> DPT 5.001* + required: false + type: string + default: absolute +min_kelvin: + description: Warmest possible color temperature in Kelvin. (Used in combination with *color_temperature_address*) + required: false + type: integer + default: 2700 +max_kelvin: + description: Coldest possible color temperature in Kelvin. (Used in combination with *color_temperature_address*) + required: false + type: integer + default: 6000 {% endconfiguration %} -Some KNX devices can change their state internally without any messages on the KNX bus, e.g., if you configure a timer on a channel. The optional `state_address` can be used to inform Home Assistant about these state changes. If a KNX message is seen on the bus addressed to the given state address, this will overwrite the state of the switch object. -For switching/light actuators that are only controlled by a single group address and can't change their state internally, you don't have to configure the state address. +Many KNX devices can change their state internally without a message to the switch address on the KNX bus, e.g., if you configure a scene or a timer on a channel. The optional `state_address` can be used to inform Home Assistant about these state changes. If a KNX message is seen on the bus addressed to the given `state_address` (in most cases from the light actuator), it will overwrite the state of the switch object. + +For switching/light actuators that are only controlled by a single group address and don't have dedicated state communication objects you can set `state_address` to the same value as `address`. + +*Note on tunable white:* Home-Assistant uses Mireds as the unit for color temperature, whereas KNX typically uses Kelvin. The Kelvin/Mireds relationship is reciprocal, not linear, therefore the color temperature pickers (sliders) in Home-Assistant may not align with ones of KNX visualizations. This is the expected behavior. + +## {% linkable_title Extended configuration example %} + +```yaml +light: + # dimmable light + - platform: knx + name: Bedroom-Light-1 + address: '1/0/9' + state_address: '1/1/9' + brightness_address: '1/2/9' + brightness_state_address: '1/3/9' + # + # RGB light + - platform: knx + name: Bathroom-Light-1 + address: '1/0/9' + state_address: '1/1/9' + brightness_address: '1/2/9' + brightness_state_address: '1/3/9' + color_address: '1/4/9' + color_state_address: '1/5/9' + # + # tunable white light + - platform: knx + name: Office-Light-1 + address: '1/0/21' + state_address: '1/1/21' + brightness_address: '1/2/21' + brightness_state_address: '1/3/21' + color_temperature_address: '1/4/21' + color_temperature_state_address: '1/5/21' + color_temperature_mode: absolute + min_kelvin: 2550 + max_kelvin: 6200 + # + # actuator without dedicated state communication object + - platform: knx + name: Cellar-Light-1 + address: '1/0/5' + state_address: '1/0/5' +``` From 676e753de9a6bd5c40e6bb4f94fba855c9ba1b6b Mon Sep 17 00:00:00 2001 From: Markus Ressel Date: Tue, 12 Feb 2019 00:28:26 +0100 Subject: [PATCH 41/68] XS1 component (#7771) * added icon added documentation * added configuration docs added info on how to combine climate sensor and actuator into a single device * updated doc to use "username" instead of "user" key added full yaml conf example * added documentation for every subcomponent moved parts to appropriate sections removed newlines * updated Hass release to 0.88 * updated Hass release to 0.88 * updated Hass release to 0.88 * review fixes * review fixes * Delete climate.xs1.markdown * Delete sensor.xs1.markdown * Delete switch.xs1.markdown * review fix * review fix * :pencil2: Try to fix the build error * :pencil2: Tweaks --- source/_components/xs1.markdown | 106 +++++++++++++++++++++++++ source/images/supported_brands/xs1.jpg | Bin 0 -> 13819 bytes 2 files changed, 106 insertions(+) create mode 100644 source/_components/xs1.markdown create mode 100644 source/images/supported_brands/xs1.jpg diff --git a/source/_components/xs1.markdown b/source/_components/xs1.markdown new file mode 100644 index 00000000000..1bf230dbb3b --- /dev/null +++ b/source/_components/xs1.markdown @@ -0,0 +1,106 @@ +--- +layout: page +title: "EZcontrol XS1" +description: "Instructions on how to integrate an XS1 Gateway within Home Assistant." +date: 2018-12-04 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: xs1.jpg +ha_category: + - Hub + - Climate + - Sensor + - Switch +ha_release: 0.88 +featured: false +ha_iot_class: "Local Polling" +--- + +The [EZcontrol XS1](http://www.ezcontrol.de/content/view/36/28/) integration for Home Assistant allows you to observe and control devices configured on the XS1 Gateway. Please have a look at the official docs for using this gateway [Bedienungsanleitung v3.0.0.0](http://www.ezcontrol.de/support/downloads/XS1/xs1manual/Bedienungsanleitung_EZcontrol_XS1_3.0.0.0-2.pdf). + +## {% linkable_title Configuration %} + +Add the following entry to the `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +xs1: + host: "192.168.2.100" +``` + +The component will automatically detect the configuration of the XS1 Gateway only **on initialization** which currently means when Home Assistant boots. When you change the configuration of the XS1 you (currently) have to restart Home Assistant to see the effects. + +{% configuration %} +host: + description: Host of the XS1 Gateway. + required: true + type: string +port: + description: Custom port if you are running your gateway behind some kind of proxy. + required: false + type: integer + default: 80 +ssl: + description: Defines if `https` should be used for API requests (only possible via your own proxy). + required: false + type: boolean + default: false +username: + description: User to access XS1 web API. + required: false + type: string +password: + description: Password to access XS1 web API. + required: false + type: string +{% endconfiguration %} + +## {% linkable_title Supported Device Types %} + +

+This component currently only covers part of the device types supported by the XS1 gateway, unsupported types are simply ignored. +

+ +### {% linkable_title Sensors %} + +Any type of sensor is supported. + +

+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. +

+ +### {% linkable_title Actuators %} + +| Type | Supported | Notes | +|---------------|-----------|--------------------------------------------------| +| `switch` | Yes | | +| `dimmer` | Partly | Dimmers are currently handled like switches so actual dimming is not supported :(| +| `temperature` | Yes | | + + +### {% linkable_title Climate Actuator/Sensor%} + +Home Assistant can combine temperature sensors and climate actuators into a single device. The XS1 gateway does not allow this, but a sensor and actuator can be configured separately. To make Home Assistant register them in the same climate device just prefix the **sensor** name with the actuator name on the XS1 gateway configuration, f.ex: + +- Actuator device name: "Bedroom_Temp" +- Sensor device name: "Bedroom_Temp_Sensor" + +## {% linkable_title Examples %} + +In this section, you find some real-life examples of how to use this component. + +### {% linkable_title Full configuration %} + +This example shows how you can use the optional configuration options. + +```yaml +# Example configuration.yaml entry +xs1: + host: "192.168.2.100" + port: 80 + ssl: false + username: myuser + password: 123totallySecure +``` diff --git a/source/images/supported_brands/xs1.jpg b/source/images/supported_brands/xs1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b4215eda2766b13be64867d9a6885ffa0091bf71 GIT binary patch literal 13819 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 Date: Mon, 11 Feb 2019 18:47:19 -0500 Subject: [PATCH 42/68] Add HAProxy remote access example (#8026) * Add HAProxy remote access example Created an HAProxy remote access proxy documentation and example configuration. * :pencil2: Tweaks * :pencil2: Typo fix --- source/_docs/ecosystem/haproxy.markdown | 114 +++++++++++++++++++ source/_includes/asides/docs_navigation.html | 1 + 2 files changed, 115 insertions(+) create mode 100644 source/_docs/ecosystem/haproxy.markdown diff --git a/source/_docs/ecosystem/haproxy.markdown b/source/_docs/ecosystem/haproxy.markdown new file mode 100644 index 00000000000..3e56ae52a9d --- /dev/null +++ b/source/_docs/ecosystem/haproxy.markdown @@ -0,0 +1,114 @@ +--- +layout: page +title: "HAProxy" +description: "Documentation about setting up Home Assistant with HAProxy" +date: 2018-01-02 11:23:00 -0500 +sidebar: true +comments: false +sharing: true +footer: true +--- + +Using HAProxy to proxy for Home Assistant allows you to serve Home Assistant securely over standard ports with HTTP to HTTPS redirection. + +### {% linkable_title Install HAProxy on your server %} + +This will vary depending on your OS. Check out Google for this. + +### {% linkable_title Obtain an SSL certificate %} + +There are multiple ways of obtaining an SSL certificate. Let’s Encrypt is one method. +Use Google for this, but a good example of using Certbot can be found [here](https://www.digitalocean.com/community/tutorials/how-to-secure-haproxy-with-let-s-encrypt-on-ubuntu-12-04). + +### {% linkable_title HAPRoxy Configuration %} + +The following configuration updates HAProxy defaults for more secure ciphers for SSL and logging and connection +timeouts. + +Items to update for your deployment: + + * `bind`: Update the ports HAProxy listens on for forwarding. + * `subdomain.domain.com`: Your domain to use + * `ssl crt`: The path to your SSL certificate. + * `server hass 127.0.0.1:8123`: The IP and port location of your Home Assistant instance. + +```text +global + log /dev/log local0 + log /dev/log local1 notice + chroot /var/lib/haproxy + stats socket /run/haproxy/admin.sock mode 660 level admin + stats timeout 30s + user haproxy + group haproxy + daemon + + # Default SSL material locations + ca-base /etc/ssl/certs + crt-base /etc/ssl/private + + # Default ciphers to use on SSL-enabled listening sockets. + # For more information, see ciphers(1SSL). This list is from: + # https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/ + ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS + ssl-default-bind-options no-sslv3 + maxconn 2048 + tune.ssl.default-dh-param 2048 + +defaults + log global + mode http + option httplog + option dontlognull + timeout connect 5000 + timeout client 50000 + timeout server 50000 + timeout http-request 5s #protection from Slowloris attacks + +frontend www-http + bind *:80 + redirect scheme https + +frontend www-https + log /dev/log local0 debug + bind *:443 ssl crt /etc/haproxy/certs/MYCERT.pem + acl hass-acl hdr(host) -i SUBDOMAIN.DOMAIN.COM + use_backend hass-backend if hass-acl + +backend hass-backend + server hass :8123 + + mode http + option forwardfor + http-request add-header X-Forwarded-Proto https + http-request add-header X-Forwarded-Port 443 +``` + +### {% linkable_title Forward Ports %} + +Forward ports 443 and (optionally) 80 to your server on your router. + +Do not forward port 8123, HAProxy takes care of securing the connection with HTTPS on 443. +If 8123 is forwarded then it will not be secured. + +Replace 443 with whatever port you chose to bind to in the config if different. + +### {% linkable_title Configure Home Assistant HTTP Component %} + +In your `configuration.yaml` file, edit the [http component](https://www.home-assistant.io/components/http/). + +```text +http: + # For extra security set this to only accept connection on localhost if HAProxy is on the same machine + # server_host: 127.0.0.1 + # Update this line to be your domain + base_url: https://example.com + use_x_forwarded_for: true + # You must set the trusted proxy IP address so that Home Assistant will properly accept connections + # Set this to your HAProxy machine IP, or localhost if hosted on the same machine. + trusted_proxies: +``` + +### {% linkable_title Restart or Reload HAProxy %} + +Use your OS method of restarting or reloading HAProxy. Use Google for this. diff --git a/source/_includes/asides/docs_navigation.html b/source/_includes/asides/docs_navigation.html index a8222bb72cb..e1c2af85c22 100644 --- a/source/_includes/asides/docs_navigation.html +++ b/source/_includes/asides/docs_navigation.html @@ -187,6 +187,7 @@