From f09c0ddc55e5c3d534de0b84dbf75ce439c61054 Mon Sep 17 00:00:00 2001 From: Greg Date: Fri, 7 Apr 2017 14:37:56 -0500 Subject: [PATCH 01/31] added install instructions for FreeNAS, added the logo image as well (#2392) --- source/_docs/installation.markdown | 6 ++++ source/_docs/installation/freenas.markdown | 38 +++++++++++++++++++++ source/images/supported_brands/freenas.png | Bin 0 -> 12105 bytes 3 files changed, 44 insertions(+) create mode 100644 source/_docs/installation/freenas.markdown create mode 100644 source/images/supported_brands/freenas.png diff --git a/source/_docs/installation.markdown b/source/_docs/installation.markdown index 604102d383b..7de9486a425 100644 --- a/source/_docs/installation.markdown +++ b/source/_docs/installation.markdown @@ -79,6 +79,12 @@ Home Assistant provides multiple ways to be installed. A requirement is that you
Vagrant
+ +
+ +
+
FreeNAS
+
Once Home Assistant is installed, execute the following code in a console/terminal to check if the setup was successful: diff --git a/source/_docs/installation/freenas.markdown b/source/_docs/installation/freenas.markdown new file mode 100644 index 00000000000..cdda8f6b1d7 --- /dev/null +++ b/source/_docs/installation/freenas.markdown @@ -0,0 +1,38 @@ +--- +layout: page +title: "Installation on FreeNAS 9.10" +description: "Installation of Home Assistant on your FreeNAS." +date: 2017-04-06 17:00 +sidebar: true +comments: false +sharing: true +footer: true +--- + +[Freenas](http://www.freenas.org) is a free and open-source network-attached storage (NAS) software based on FreeBSD and the OpenZFS file system. It is licensed under the terms of the BSD License and runs on commodity x86-64 hardware. + +This has been tested on the FreeNAS 9.10. These instructions assume you already have a running and accessible jail. For more information on creating a jail follow the official FreeNAS 9.10.x documentation [HERE](https://doc.freenas.org/9.10/jails.html#adding-jails). Once you have the jail follow the steps below. + +Install the necessary Python Packages. + +```bash +# pkg update +# pkg upgrade +# pkg install python35 +# pkg install py35-sqlite3 +# python3.5 -m ensurepip +``` + +Install Home Assistant itself. + +```bash +# pip3 install homeassistant +``` + +Finally start Home Assistant. + +```bash +# hass --open-ui +``` + +Some suggestions on using a tmux to keep it running can be found in the FreeNAS forums [HERE](https://forums.freenas.org/index.php?threads/how-to-home-assistant-in-a-jail-tested-on-9-10.50371/) diff --git a/source/images/supported_brands/freenas.png b/source/images/supported_brands/freenas.png new file mode 100644 index 0000000000000000000000000000000000000000..867815e809144293c4c30d95e31caffe92e54d22 GIT binary patch literal 12105 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 Zc3y>cI)^I^`sc=j$w(-Q*NPg4{uio|H%0&e literal 0 HcmV?d00001 From 8e867c8e11bf6cbaea6a50b83ca0da4d03e47670 Mon Sep 17 00:00:00 2001 From: micw Date: Tue, 11 Apr 2017 13:59:24 +0200 Subject: [PATCH 02/31] Reflect changes from https://github.com/home-assistant/home-assistant/pull/6786 (#2391) --- source/_components/sensor.min_max.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/_components/sensor.min_max.markdown b/source/_components/sensor.min_max.markdown index b149ea179a9..43c19588537 100644 --- a/source/_components/sensor.min_max.markdown +++ b/source/_components/sensor.min_max.markdown @@ -25,6 +25,8 @@ It's an alternative to the [template sensor](/components/sensor.template/)'s `va }}{% endraw %} ``` +Sensors with unknown state will be ignored in calculation. If the "unit of measurement" of the sensors differs, the min_max sensor will go to an error state where the value is UNKNOWN and the unit of measurement is ERR. + To enable the minimum/maximum sensor, add the following lines to your `configuration.yaml`: ```yaml @@ -43,3 +45,4 @@ Configuration variables: - **type** (*Optional*): The type of sensor: `min`, `max` or `mean`. Defaults to `max`. - **name** (*Optional*): Name of the sensor to use in the frontend. - **round_digits** (*Optional*): Round mean value to specified number of digits. Defaults to 2. +- **icon** (*Optional*): The icon to show for this sensor. Defaults to mdi:calculator. From f2e82cc6a2cbde559e90ceb050c3c06823472f28 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 4 Apr 2017 13:24:33 +0200 Subject: [PATCH 03/31] Minor changes --- .../alarm_control_panel.totalconnect.markdown | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/source/_components/alarm_control_panel.totalconnect.markdown b/source/_components/alarm_control_panel.totalconnect.markdown index 923416b929a..1a204f78198 100644 --- a/source/_components/alarm_control_panel.totalconnect.markdown +++ b/source/_components/alarm_control_panel.totalconnect.markdown @@ -12,20 +12,21 @@ ha_category: Alarm ha_release: 0.42 --- -The `totalconnect` platform provides connectivity with the Honeywell TotalConnect alarm systems used by many alarm companies +The `totalconnect` platform provides connectivity with the Honeywell TotalConnect alarm systems used by many alarm companies. To enable this, add the following lines to your `configuration.yaml`: ```yaml # Example configuration.yaml entry alarm_control_panel: - platform: totalconnect - username: YOUR_USERNAME - password: YOUR_PASSWORD + - platform: totalconnect + username: YOUR_USERNAME + password: YOUR_PASSWORD ``` Configuration variables: -- **name** (*Optional*): Name of device in HomeAssistant + +- **name** (*Optional*): Name of device in Home Assistant. - **username** (*Required*): Username used to sign into the TotalConnect app/web client. - **password** (*Required*): Password used to sign into the TotalConnect app/web client. From 335b8ff21c155023d7169c8ba27b10761274df1f Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 11 Apr 2017 14:01:43 +0200 Subject: [PATCH 04/31] Remove icon configuration variable --- source/_components/sensor.min_max.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_components/sensor.min_max.markdown b/source/_components/sensor.min_max.markdown index 43c19588537..ec6907c1ca5 100644 --- a/source/_components/sensor.min_max.markdown +++ b/source/_components/sensor.min_max.markdown @@ -25,7 +25,7 @@ It's an alternative to the [template sensor](/components/sensor.template/)'s `va }}{% endraw %} ``` -Sensors with unknown state will be ignored in calculation. If the "unit of measurement" of the sensors differs, the min_max sensor will go to an error state where the value is UNKNOWN and the unit of measurement is ERR. +Sensors with an unknown state will be ignored in the calculation. If the unit of measurement of the sensors differs, the `min_max` sensor will go to an error state where the value is `UNKNOWN` and the unit of measurement is `ERR`. To enable the minimum/maximum sensor, add the following lines to your `configuration.yaml`: @@ -45,4 +45,4 @@ Configuration variables: - **type** (*Optional*): The type of sensor: `min`, `max` or `mean`. Defaults to `max`. - **name** (*Optional*): Name of the sensor to use in the frontend. - **round_digits** (*Optional*): Round mean value to specified number of digits. Defaults to 2. -- **icon** (*Optional*): The icon to show for this sensor. Defaults to mdi:calculator. + From a0b6f44046d238cf726e4abb013e0b795d348b0a Mon Sep 17 00:00:00 2001 From: Nate Date: Tue, 11 Apr 2017 22:46:42 +0200 Subject: [PATCH 05/31] Updated documentation for the Sun component to match home-assistant/home-assistant#6857 (#2357) --- source/_components/sun.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_components/sun.markdown b/source/_components/sun.markdown index 025daf1bff9..4e34e985e30 100644 --- a/source/_components/sun.markdown +++ b/source/_components/sun.markdown @@ -56,5 +56,9 @@ The sun event need to have the type 'sun', which service to call, which event (s | --------- | ----------- | | `next_rising` | Date and time of the next sun rising (in UTC). | `next_setting` | Date and time of the next sun setting (in UTC). +| `next_dawn` | Date and time of the next dawn (in UTC). +| `next_dusk` | Date and time of the next dusk (in UTC). +| `next_noon` | Date and time of the next solar noon (in UTC). +| `next_midnight` | Date and time of the next solar midnight (in UTC). | `elevation` | Solar elevation. This is the angle between the sun and the horizon. Negative values mean the sun is below the horizon. | `azimuth` | Solar azimuth. The angle is shown clockwise from north. From 59d0c4e677e5e35966e9d828b349b585df6e7f35 Mon Sep 17 00:00:00 2001 From: johanpalmqvist Date: Wed, 12 Apr 2017 07:56:28 +0200 Subject: [PATCH 06/31] Add MaryTTS platform (#2397) * Add MaryTTS platform * Update docs --- source/_components/tts.marytts.markdown | 48 +++++++++++++++++++++ source/images/supported_brands/marytts.png | Bin 0 -> 13480 bytes 2 files changed, 48 insertions(+) create mode 100644 source/_components/tts.marytts.markdown create mode 100644 source/images/supported_brands/marytts.png diff --git a/source/_components/tts.marytts.markdown b/source/_components/tts.marytts.markdown new file mode 100644 index 00000000000..42fff710e1a --- /dev/null +++ b/source/_components/tts.marytts.markdown @@ -0,0 +1,48 @@ +--- +layout: page +title: "MaryTTS" +description: "Instructions how to setup MaryTTS with Home Assistant." +date: 2017-04-08 16:49 +sidebar: true +comments: false +sharing: true +footer: true +logo: marytts.png +ha_category: Text-to-speech +ha_release: 0.43 +--- + +The `marytts` text-to-speech platform uses [MaryTTS](http://mary.dfki.de/) Text-to-Speech engine to read a text with natural sounding voices. + +To enable text-to-speech with MaryTTS, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +tts: + - platform: marytts + host: 'localhost' + port: 59125 +``` + +Configuration variables: + +- **host** (*Optional*): MaryTTS server hostname or IP address. Default is `localhost`. +- **port** (*Optional*): MaryTTS server port. Default is 59125. +- **codec** (*Optional*): Audio codec. Default is `wav`. Supported are `aiff`, `au`, `wav`. +- **voice** (*Optional*): Speaker voice. Default is `cmu-slt-hsmm`. +- **language** (*Optional*): Language to use. Default is `en-US`. Supports 'de', 'en-GB', 'en-US', 'fr', 'it', 'lb', 'ru', 'sv', 'te', 'tr'. + +See [documentation](http://mary.dfki.de/documentation/index.html) for details. + +A full configuration sample: + +```yaml +# Example configuration.yaml entry +tts: + - platform: marytts + host: 'localhost' + port: 59125 + codec: 'wav' + voice: 'cmu-slt-hsmm' + language: 'en-US' +``` diff --git a/source/images/supported_brands/marytts.png b/source/images/supported_brands/marytts.png new file mode 100644 index 0000000000000000000000000000000000000000..39f450d41d80ca0241dec66a98ba675d10fb31e6 GIT binary patch literal 13480 zcmYLw1yq|&&@S!{Z7HsW7I!Pb-HKZ&?h@R!#oY?UA-F@)V!@#;7AWpbvEs!gv$1d@H1+1cHhXJ($=#J$s0BE+M@LqS0yR8f}KK|w)%0^XbAU;)3=zwb=|e=xjc zRrGLxpI{uDSl~0RyRxwt3JPQ0e=pPp^*0owuK*r!9(~pC7lQo3od- zrMoRR*wa4mroodb$iQV0&;F5JudOxM)fMdK_1^?|TpX=!-MnnQc&q}r+-!IRxOsVOKgM&SpfI4Q$jj*Y z=N}jNdDG0_L5p(CR1BI~MZPJw?|hUH9_1IpSZ)1+;X;$hharof+CM82*+h{sDboLx zp6Y@Y!4gR(i#yU9jyv+jjv>6;*3_-j@LQE@!6v<*&FNJ8^0Gd3T1;F?VrS~JuN~;7 z?}jVB!jbaZN!K?8r_e1X>7?alw95niufMJmRzVuA$gZO4bUV#F;Ys_pr1l>|&|3u$w{Z}0l(xYtrEuBrQtHND zr-iGj?i52DsTA249LGy~rt3?jN{Hi{pJA7IhXsBc4eUQA4IcE?>P@ejNKz)xtXHRu* zw|7r1QXCuiyOo#pto6{ADiR^!pR?azQYVC@wR%~(%_S zEzHaC`gJ7*J*sgeERVd#LaOi;JP;z ztQO+<69?8YiJjbWk9-O8KKnR3`=Rm>B1O;MKASaJv7k>U5o({jEIGqbdFYNzrXUc5#CoumZ8-{!G(WJYwrlzegF0r9I&DPZV z3S8|=FI2D@{_Z+bL!_$6jL5)9OIYQVJhUzhsw>z^Yy!X6hJaE3n+o|D*YxD~oKD9J z0}74qa02ZnVG~_6-LCJi?vn@|-dne6t#|pFNxDtMg4k8#=7m?@EK`IOP1~DySRQVMhd$49 zB14=WZS;cu6d^^~EiImdONt8G9Guq*vofN==xvO!lpx)XXRyl8!>{uo(2za1c9(S! z%*mWdAxvLi2vnpMA4>D}^?i)fq0u)dAI9fMtuzSKcGcJSXwCJTmd<4c`RjW%Lp@R= z=a&gj8@)nx#vL28EySsLc`aVQ`QX$P3e`<3(Pi-Bj}!SYpD00+EZr z=4?aPxzr_nea~Ug@QM=8R^d{_ZN;ih4QRCZZyw;bYIazoN%z!0fjmHB%fF@btC|`; zqvOOfYs+j%5zXs+rBnzw*^Vqk?N}KmqBQmlv1SGsOs(NF+ot&`WpTP|_o-~RU?+j@ti>nF74$fQSDbzQJ9;kMqkxR8KJW8QCr=q zrgN~=sowXz*Uzl3KoY1__Mg3FLz$3t>z&8c8ahy;aIww{@yFikD#vwvMnWI1@QQ(wa8>z8 zH`F(n2bXHvnV$}5HVbE5;%iZ?3q42ii4%B`RoBl)Os6WmhE; zR2wW(P@m>!m40r{Z^F^@&RW~Vm!Hj1L|y~6Qd2C6PBM_??d|a$SliSzuXO--Oxft&`6olm&RxNZ zK9$R~qsc-0U-|WE5duA$;AOfyvfb4*Pycqhh(Dq?oLln&t|qLaoC%<=E+Fo*Us|Tt>3r7;^T*UY_nShSzzFMl= zo85lkUwiVuKj`SlLi=ElF8k?1g03t&T{fbWW#1~0@M2W{mD+zw3S{Wq)*2WpgwP3j z>aF<%m*$wy2^usS7g*j*!0MaS)N#xiD1SE_O2vs?cfy`|b2aIWzMp+`dBeF@pc#s- zatLRxb8$P?RGyW^@6a*!P+4Vg-PZc^O)BtDRn_!rI~YDQkfn0z^Mh}wX&Hjd1TVPk z*4Aho)re8Ft-I-#XPB?rWK=k1*iYuNW+b=L2U{xS@a@Iy)j1p|E6@JE$G6uE>uZx> zbd=P=Lw5aj`Z!?mtKI+bar7kse)j2 zQ5sE-5oaowSv}W(Q37@@E)~}j9IB!eZ&X9Rutx3|`JJpz{^~1xIYZG*m#p|*d5j&{#pSKb0&Yx87NJ3WD4C$fg{^!0`l)mNm);E;MF6KCpQK+(i_-is z5q8!X@{EHnjZ%z7?P(yr7FIG^P1OUg8iiwTn@WbpCnqHz11_r^1fUg;e0zc~bYG2% zA99)WMOY}~%r)f7)jbKf7cV9MkI#f(2JskA0)* zeTIA71TVnrT|%~+NSD;2?4dYoD_w%HR+g0>=viJH- zLqV8i>$DV>TR}>;ntNS-Q-JES-j^|H+KyWMcQXf47NSK;1V7z^fYGT&QnEIXRA-ov zoTkmW7QB%kA=U98-z-odlvXtE$fdOfEkcI|e!q-;U@W*`4sE4T&=nNislcDkdm6L5 zFH%`yj8prq*yM%~|2V+l`;a!IltMT3@7Ygn{m*I45c_E^+g&M-Ba(lfrO3#F2cqWP zRWt3?=k-hdDbO&q05PRxSI>Vz2)HfRtl>|GADh~@{eKUH+WH9fC2F3itln|QUx$CJ z*u^3)sC6o7g;OoM{)2<7%C#KtblMn@`xVCze?Njx>hT-+=VQ_0A(4Xm56()@5bj2I zM*4U4^A~OJI%NnS=nI9M7f!OX5pXT`%W2$s!8VrxU4@_nfN8jk?xAgzW5r z{dhjawj+HoZNI#-{z$g+eKt-zDPK0^HeZlABuUy%CO%k zVbThy%@YG0{IyQQFgxVB?SVJ7lAwS6BQ1AV5=d3(jfTIuQ?!#^3s zn%BjpxlL&bZA93H*L>DDue~RgFwpGt5E8qzz7Vw+gw*d1R3e40sz3qL6S;iW&7Xyf zdQX3h)#tONu?%INeFEk~@$~PXXP56W6@0tVk;>VGAv8?d(J%V*P4e>7dAg5BiutXE zPvY6lF)WGi(?d%zqTTMm+SKY~?c3jmuCt*xf8)Z-ec=B>Ll*Q2IHg`%l6`JPSzLdr zEn;WyusWCEc=KjS!0l+?6Eo26n=@@ZpyP@UOls4KTJ{oKKYcVvpUII>eX|(AvHXiq zUc_Mr6j88J#WB%q*X6Eqg@qgVcEtyz{8 z=f=NpdFNolSaLPAg%l>oWD)5&*Y>qiWGY@(_piVvdntc9RmKzuF&Km|8^x+<#8M$2 zd+J(kTdLKQGf?z) zxXx*Y0x=2UIm8pTY>Lm`Sjzq^i)v;@kw)lt{jjm`A6d*rLp4b#nL@J-;n&q;>`?;x z>%Cg;hctro!?H5g$5Ee9=DZGxxyl0ULHJT*@6>o+lBI*+N6 zVl}s4*VUhy%g)qT((A}@u&PaZx3vX14YB4F!aOIR&?Tbwt*h;#*WDy|9S3iZh4aMm z{3o5lSdNQYX^emWC%-0V@#dL=rDy(+z#=YFu<9l1V+2VNcLIX?RT7Q7hjwVb01(Dm zLeK^nei|B(5=99-N1$U9eRcBjd7TscGZ@ z(>V_5uc3!@ee2(N>>hso+6i>-_wAbJd=G3je2xYJUVu0byS32P<%@>4OxjTw+&ie) zGalQJ$1U8oq*io*>ZOHpymSfegTcA1Jkz2LKXs?gwTT?j zRQ{~`gglmdESJjZ!n;q6TxRc>(!B8&j@>L8b>ayv+CY@-hrn^J*}u#L3ee`eXzlrW|$_r@7E+i&kIPC2<(C+ndTMZ|P%b zn8F;k#+>Y-h+F9SoEG%$c0^2%eY+JD$W%G3h+l83>T3&p*K*A{Hm$kY@V%Jya7ChY zFSk}gU1uV*j&xaS+aG*4yhrMe>wOUIQ59I920~FlMMdQtHSvg0P~f`|z6wIe-rUgr$b@pH%|!m4&ZsU$+H`(zRdok)}$8r68;G1EOP%zeA~? zt}}k(jlOY(IkeCG@!#$tc`mXMIw_>Aoimpn5^rN+yo|P&BxUx?WN|u`w>TopF2F2G zv8c%BaDiIEe6|Neh)_ct2mOtMOG9ljr7__iE24?EZKXY5vv?M72=e`VUxt>L%z4d$U| zGegBWH$)4@P*AL_QG6)Am0SVsui*9WyPLOFBp}fG#f=NToG62WIa3_V#_410gB#rdh^-8O;X zWQ-MKq%L!#T6XZug{8q?tKCKDKP(t*w!MQiJ0M#BjounWqiKlC`|@`D(BpKnjH{ah z@y8njmLjWdHTNu6JViPyh>0%>f+BXW)ir*q&UAnxn%|HRJ{IxTf|*w|AEGToPqrZb|Rf1C7-`&;GvC)w$#O%LX zQ5gjo`{mh-$bEDIcTqFp#xd6sJe=@e;f_mL>7m@$eB_?d6})oKDJZ<1>((XE9po>Y zS-*3Q)1Ry0o9hC#rk9{#5tc9~g-n8@8gsaib4nT9ooYtt_r+gzdHUg`WgAr&$5}o( zU&rihSVC2hNRC1dU~(Jh$v(A{{|ud&7j=yBdDIN-7S5)whqhs4ADiKuE6 zpp?%n*B{>#-c6$|7&*wzHaooBmU6pfc%x)|Q$8n{^p~qUV7GwBxYx0A$2ZYsv$?=} zlwJ<`gs{GLUGMs=uV3AgT2u35C);cw{2!|J>d-dt&9~E^Cg!XK#4&U8g#NfyGa_cV z%G+Svuxv@cPY$0#F~WjQ-JO8;b??OCUpHz|b~|4em6-bL-^TzB1bL3CZk6?9jBN z_QHqx9WV;mrj$#i(*Dgm%JYEFi*QZjL(sFy!UQBlfX&uMlJ{$SAQwG%qDKBAG%RdN zR5G9(HaI9dl}Flr*=|4Ww%dEJx^T~a(3)>~+f%L|$e5-qj@Lq1WInD~S`h^ucwsU9 zv{F?Rf_=DTzS>`MulN{os~H`S<~3C%|J@2NEev{#hD~&ovJ6739ZQeU>@pRd}E0z*FmD&k>ti_+h_}QNxsnq0((q)LM#2+ zhK6G;(^7eDARl20e+}F_fKL#r)yPo;Tv%#LeG9X3Y~5lz7_$?_(k=+VlDzL3QuAkb za*boX66?+#DDyJ1y4;0gy4-T!s+nVU({FDo%hFybXgv!em*olFyXw3VGCXC`&Ue0j z)M=-h>hjuLtQCP1M~+X%ao=pzcCxQ#|1O$-J2_6ud@#!@K7st55H`H_a3XoMFH-GE z#;lZ>D2Dv@q7Xh)B4>PRh&{3~v&7q_mTdG!%zbNX;F-Sjn}41c8*l%FT}NgY2-u>1>!UdJBO@6piNMX@qAng($`m>c&mrnpV!SR`gOx(iM3gS?Jwk=;rK> z{!_Tr*}sz9mCDB6e>&h-NfP-D+&K25q0)R!=vAtF$n^ye(bFDs3b>zh?g{Hi9*~Ux zY1fi^-?wf+a$A{IaZx#I`;J(nxg5m1@y#Ki?><^Je&hxkG`-R5Tq8n*Tz+95BJ4EW z1U2)zV+~WAkEW~sN+N2q+4|x(Bp-gyT(~~juh}?OpgkxA00QkTw^Csd)$oIbz?nh? zt_!e#^jkK))4e3qyT0<`YmHxLkj?!<{h}5Oza^Vd{qg-L4?PyYIPB64?R5^Gx_8Bs z-h8HAI=brgD|Zq-96ZIxaJa;_iiEZgczUbJULUWH{cP-+Q1If8UjYH;t6QnQ17HEG zh)6a*H}Abte@%^k@W1b4#;3Yt3c9ULS;S4?%}|5->XWRzyt#)Z>(S>N@v}cw6NoBn zUz~Ya5dB6?Q5xU&o>ZC;OmD~m7EgBTltx8ah@z9YbHFC-O?U?>dg`ld#Um+9e|j$k z@D#(sGV#_JQRU&JdV)0a)6aAWjo zwT|&g_YNK03WeFR9CoJ?+p9PR~j95Gc$0%(f+X?zLGXzgI`je z`fHM^?JPGo7Vr>AFhj>{k6SX3REnEfH{WrP{alOEbX7=%bU0g4AjJ57&Js2T z?b^=(ju?792SuR}cE=bO(R}WCKy{2d%zPH0@~_sK#@g@@HG5I!&=s+iJu(d#&qM-; zX3-SdlTz#csZ0+`ZfDU1$NI72#8V!v!f6fnJqDT#l>2_n*l~K>y8t7Ys3*|~FYYQc z3T^B8mWp$)8#NAWk)I6lAMb!0HOR_QQ}gueAB0$= z7jqdH@wL0xa0SX)6tG`x5Z@n-;jiTrK(T22DdPFu*~^9E`3)t&auNu=gIKEhf%Xui_RVW^eT3zggEJ!}`A_N=UMe0%6hJnV{?#krVu_3bGCz0&^g$V2x#(T`zyxW`bZdueKUc6si=v{lW9kof^ z+u~e2-Z(8%-%8|;);m)EUQugPlsD_dJ~cbOeOcKTkMtPt3&3^ks%-m;}cf{dC z2e}`|6>kuN_gK8oZ{y;w?a>lQ)UXfS@!b1z&;e^K=x>Q- zg`@IWyNj&J9!aF@RH3i$uWJvu74n43wEb*h6)a?GzVe1=E$j-lc$KhY-KVd@A?q!b zpX;Zdo;7uODBBs4MerRbDhRVraV>+Hbh##RPeJOg-*~<_+1LIA90O{FHxfzvUro*tAu|7_Z#H@y92fP;T4hmAVM#ww1dvyo#CxufJ-h)?gT z%JE6t37O)(QR)8s->zk(+kF> zm=3Z01}~DUdS_P(;AsAJFpf>CMHjIW5msuBphe9^}A7ojLs> z@yyFFUN>-sZ)W#vNs4VFuLgC;uBEEjRb4)_c)gXoO!yA~*YaG&zsO4lQb^blP?3s4arx+U^`-A%8tn)0Q*Y_d~k zU1WD>CzR(Z%_AV(2o{Fc2?O9m{J0J^wDdtoo~~#-ae23M|70xr=l5eT&^z1axEU4e zANb+vSKWuzB@*7`j7wKfTchqq0>|s`bsRS58^H(FC>-tcaGrf^X`{K1SA7;H)2ES) zk|I01yZN7|#N7R*S9zuy%=!sGq&x%+U84i592ofxMVFRXq4G&^nBRy$ zrk@OwO*z=_jJr~VCa=ha5su$Wck@$a+^>6Lv{> z&;$z`G`#;_Srqa^g^h|!@13shkQxtk34(C6UP3s@sIqmiL~3V(>+<*AyBcH@mGg{n z9~nNpZ36v#M78n-aa%1irq|6Y{RZ+$3j^NA8=Fx|E)=c`d0> zLvy95M1TA~C~3;Iu2#(gQ41tPBmt9I_B*3F*1Hut!VJv|5qv2Me#35xN+pLUG(gi@ z!B~^7o0jaSEZs&gTzz`6e2z)1b$PVpsheBKoQKEZTdO~-ncQ;hxV0-!`WkSl4IpeO zw0h-D`{xfG{80E(&s-n})?m5s%Gl=WPm<4Tq`wMW^W9R=A?J%--(mo-1a7v zHsWYtG$B6~xxJMy6d>ipaqBXF><{=Z55)y+O$Y{xnbVJS2PKZlSR^mPpS1Er6gNNa z0NQU`%(b3@|DzUHuixopYEA!U0{FiXw}fj#g6P5jNWl%HQ`@p#%aqr&)XzA!d`jKn zy>i13kY>II#;5`uH9P8=D1q}H@Upq@C|8utc4Ou* zK`~dZHwVcPjwQr8ngTBE`P0QOn=-QuMXIUH2QPGDLBku&*mdur&u}wnu{9}X$5ZEm zjZEoDC`b0_0TaQ)KOUxLSxa!AaQ-dRI7Z7O(vK6lWv+S@cqPHYU2_@4@Re+}9_W}O zdQATb$1q=`?m0*cZ4*P%<<>kJw7z@Q*}}Ikl~FNF4Wp6n5g{+17UKT-$g`}Vj*p!E zTd(~(C@7o4V=|zU*Y1qe`5nOIYgH6YXrrqIJYH$xVwi?<^|rS^*O;@43`2$r+>xkwP2Vvaxu(Cz?hd=IJS>%Y1aW*_wylE;X>*w+k zr1#+|{0@!v?$|KC;Z?qENsS{HF?iQ@y1|fWvCu<4Wx+HgOY<_Wzn(PjIdj%d?llL_ zc{h>eoxp}J)fsgpz2-!}!HbKZOu`5e&vzv}jD@uw;74j1f-EEJa7$s_)x)Q^{0{?33{L6-%r<(?rXUBa#(F}{6&AAKasqn zmEc8Kx{UcMMxdfVDRQVSE|`yil6E|ON}R=&954;a?WX0(X!qZ0K7|EKLH%Fkcikde zTy?t_10+vU=@xv&tk6h!ge4Pk&_ibqJ=nS%*W~jyX#+R!nXnoS$)&)`DCd1=EI(r! zi8-0D2TV!h68V9+Q#~9l7)?r^83}1bZcYohXx@j|wvGZPPhp`4a&))L1bBo|0gC#U zJLxUS@Hiyrk3VGT*ORU^=koPR!&e(9kD0@k{O0JyXgqf5S##Uo8gg~3Bk%>zSdiew zeJFLw)Bf?89Io#FEl02^mSk-_Xe{MS9Gi&v4fBv}5egcBg7i3E zK|SsRijkEFFo1JiHZK4_u#SB`wTT*X<=%Y}TST!>!sNMMV&i;D`WWrNG2CW6F&MxE z(^h22BGGv!Bk)SQM)Rt}=4h?sMw&J(=vdb+pY|}teF3-h&hGemR^8_-X>scNTm&(* z@I0f{72GxmpLx*#$zq^(!`}?kQoJW+7`Mg^i~q-BodkP<)zTVisIq-TMKRMr8X7XZhabC;|9bd-Td*jnj$Dmr!~8@cv2YdlDp7D($2BSjj|WqA3A0OSI! z)>(%pJ24}+aQz6AQ$e!z8DM|f@?&PsU$lCIgke*f(;YYO5e1ZR&Z(pDYqBAG>tlaw z2M2|GVURS=KaO)x$FeP1p!LC0o+~*fqJvZP@`LSd{_*U>=xs<#+(IHLrFoe+qw{vK z7Q&v?8vCZyP^A^DH2qtaTilB*EKJfi^HZ5MX`{3TIXxrYN%mJ(qAu(+j#vWow6`gp z)6Dh6ZR^@VY13#DZi}$o_i*8i}q-{p|o}fcci5GD^~Bxg8#y>#n)@^N6O}R zzUXWk+2IpVzT3)*9zaK3kQ_#>GYQjQPt9w13&efM>ju)K^#Z$C3l>_Bkj*cu%b5y5 z3!>lsL=6ZwW~Nf&e2N0d7%Z<4g8P3f?}v8B2%R^_{$trF`5vCK0b=fp?G(%TSAx)* z4kTm|p8TCHl_-!qVw_~aH75&8*rE>itl_)NjfZ?pv2Z$zhZec9##W0J!uRQ6U-6W?4Gc z)7S85D(|4l(jC71AteYk9KcZ^!QYUN#1=}6QN~GkAmlYJQjNX(;HGx|U>7U0#V7te z$9R=q)q4U;+$r!WRK+A(9{q#0(SIzL;t2{<3;F`71PSldDE(RBnn7W&RbHI>^B*^C_RP`K5udeylLRvz?PPglc1N`4d3Ga&z zWsdGY=m2JK9y51Ec7}C^wmerS1(-OUnbh0k`}DYe|DR~R7tpCKU0E_Vi?28@Sq=-XXD(E*|pCH`-J6`YJthCno)gBR;x(GandH?Y#n31tT@BvTHmEi&9`ARuiqYED{DH z7xd)KuW@>uDqM#XrO0#_e%0Yar|JLjG;+$%S+U^@uxS;y1}%!(qbkWu8K-|-kdF@) z)PNwBKOz+Edt-oULGZvaKv`H00O2e7sO}unZYSnsG2(4LH%{m+@7ek|hK$C3wP4bB zpLo)3=L7z^v*n4ps`@j6Gx)MV<(PmjRW0c*(}%Cx`#g_7Nk7$%%f3BLg?N80n-3tk zJvhplgByD#8pCD#NAA0jmcW30fVB`YsZ4y5C#E$27q}J{H`jh1GDGZdp3-9?rjHLjAMde~fHlkkZG)(uwp2YO-9|>$3Q|2x8Lu`YT2gp4WsI+N~ z{$6!<0Bqd`4$p%wsWwsC`4!((Qs69|wcv13(irQ&Ewq{Yv50GW&FKzCHm6Yb6*L!y zNXnc_wR7;q$bir%y@X+F6J0o2&7B$im9h&!(|%j}U0}%p@`$GG!?B}r2&|H?s96y? z0_9q+=Y1mjNBMk}R&q`K%f4DpNbYe4&;*fyMJO#GWUlc62D zP))tE2!J#IOd?dxg|U%rm|;Nlo$|1vJY#;LZ;Kb86ir~)}9 z{H`xwqjk>WnH5PUS;)(&P73>)$GZ3tSvq3|Hj>%kRk$ zdYHpFh1joxB;9KDw^qnra)mfq35&rkuTuMVm}P4azL4mC7|j(6Kpe)vX1hC zO1e&92Pu%jt7iW$-?hSS%{Ov+$n*6Nb))Xu?HQiNoC41EZ8xi4A=5-5eU9r*|MlrQ zJVVo=lsg+vk7eI}WRXNeA?@jIQUZYC0M+>l^@iEXLbumQgvrX#9021YNicS!EzxD3!+wGZ&;Qr*cA3^YwZD8B4lLso_p;ywT!eMAh%M7utWU@FD$4&BaPy zSLM`9DM+eeh9PfDS^$->t?Zf!n=24L7nfgs0E``Da(a^=ZA9cKUw8gQ%=a^FOnoV} zETq`*Ya-3B!W5&Y+}JO{pZ~7`Lkjt0bqNoaAjK)yfO5 z-fik$USl)L^GEt`x+oawZM5V{0i;w2akH@0v*!G2hQDcba-0YR_3fHX*CCm-#!yM) zK@WGoeJu1;Ve1vS!3$|TC~&Up?R4oBoaQ_PDh84T;lOq^aU5gfz5nj)s&rd*ZC{|h zzNe*r{Rmvlo&CmV5Ov5NN}Z0OybatEO4p1ZI{2&UBDTJ0TFR52CHMd2eE=Bxy(bYM z@_RY^D9-Z#zrIrm9wFva*Al2Yx2(X)E;%Hor@(fJbMfYXTfF$A_Sf!ABZzXcWyz8# zLV+{qgZ$wycLFLum>s45M~I4z#}{$=Kw}lQ|509Zmw9%gL6IVjPk&Z__UR6Zn=DF9 Vr_=y^#RvsOML|=(LDu5q{{gjK#;gDU literal 0 HcmV?d00001 From 0c77c4466c13ce7c7d4168bbf467b52c8f43559d Mon Sep 17 00:00:00 2001 From: sander76 Date: Wed, 12 Apr 2017 08:44:39 +0200 Subject: [PATCH 07/31] first commit (#2383) --- source/_components/telegram_bot.markdown | 81 +++++++++++++++++++ .../_components/telegram_bot.polling.markdown | 38 +++++++++ .../telegram_bot.webhooks.markdown | 61 ++++++++++++++ 3 files changed, 180 insertions(+) create mode 100644 source/_components/telegram_bot.markdown create mode 100644 source/_components/telegram_bot.polling.markdown create mode 100644 source/_components/telegram_bot.webhooks.markdown diff --git a/source/_components/telegram_bot.markdown b/source/_components/telegram_bot.markdown new file mode 100644 index 00000000000..8d51d6d9112 --- /dev/null +++ b/source/_components/telegram_bot.markdown @@ -0,0 +1,81 @@ +--- +layout: page +title: "Telegram chatbot" +description: "Telegram chatbot support" +date: 2017-04-05 18:50 +sidebar: true +comments: false +sharing: true +footer: true +logo: telegram.png +ha_release: 0.42 +--- + +Use Telegram on your mobile device to send messages or commands to your Home Assistant. + + +A command looks like `/thecommand` + +When received by hass it will fire a `telegram.command` event on the event bus with the following `event_data`: + +```yaml +command: "/thecommand" +args: "" +from_first: "" +from_last: "" +user_id: "" +``` + +### {% linkable_title Configuration samples %} + + +Simple ping pong example. + +```yaml +alias: 'telegram bot that reply pong to ping' +hide_entity: true +trigger: + platform: event + event_type: telegram.command + event_data: + command: '/ping' +action: + - service: notify.notify + data: + message: 'pong' +``` + +Example that show keyboard interaction with `notify.telegram` + +```yaml +trigger: + platform: event + event_type: telegram.command + event_data: + command: '/start' +action: + - service: notify.telegram + data: + message: 'commands' + data: + keyboard: + - '/ping, /alarm' + - '/siren' +``` + +and an automation to trigger a related command "/siren". + +```yaml +trigger: + platform: event + event_type: telegram.command + event_data: + command: '/siren' +action: + - service: homeassistant.turn_on + entity_id: switch.vision_zm1601eu5_battery_operated_siren_switch_9_0 + - delay: + seconds: 10 + - service: homeassistant.turn_off + entity_id: switch.vision_zm1601eu5_battery_operated_siren_switch_9_0 +``` diff --git a/source/_components/telegram_bot.polling.markdown b/source/_components/telegram_bot.polling.markdown new file mode 100644 index 00000000000..6536e349ada --- /dev/null +++ b/source/_components/telegram_bot.polling.markdown @@ -0,0 +1,38 @@ +--- +layout: page +title: "Telegram polling" +description: "Telegram polling support" +date: 2017-04-05 18:50 +sidebar: true +comments: false +sharing: true +footer: true +logo: telegram.png +ha_category: Telegram chatbot +ha_release: 0.42 +--- + +Telegram chatbot polling implementation. + +One of two bot implementations supported by Telegram. Your hass does not have to be exposed to the internet. + +To integrate this into Home Assistant, add the following section to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry + +telegram_bot: + platform: polling + api_key: + allowed_chat_ids: + - 12345 + - 67890 +``` + +Configuration variables: + +- **allowed_chat_ids** (*Required*): A list of user in the `user_id` Telegram format enabled to interact to webhook +- **api_key** (*Required*): The API token of your bot. + +To get your `chat_id` and `api_key` follow the instructions [here](/components.notify.telegram) . + diff --git a/source/_components/telegram_bot.webhooks.markdown b/source/_components/telegram_bot.webhooks.markdown new file mode 100644 index 00000000000..7b2dfe387dc --- /dev/null +++ b/source/_components/telegram_bot.webhooks.markdown @@ -0,0 +1,61 @@ +--- +layout: page +title: "Telegram webhooks" +description: "Telegram webhooks support" +date: 2017-04-05 18:50 +sidebar: true +comments: false +sharing: true +footer: true +logo: telegram.png +ha_category: Telegram chatbot +ha_release: 0.42 +--- + +Telegram chatbot webhooks implementation as described in [docs](https://core.telegram.org/bots/webhooks). + +One of two bot implementations supported by Telegram. Described by Telegram as the preferred implementation but requires your hass instance to be exposed to the internet. + +To integrate this into Home Assistant, add the following section to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +http: + base_url: # the hass https url which is exposed to the internet. + +telegram_bot: + platform: webhooks + api_key: telegram api key + allowed_chat_ids: + - 12345 + - 67890 +``` + +Configuration variables: + +- **allowed_chat_ids** (*Required*): A list of user in the `user_id` Telegram format enabled to interact to webhook +- **api_key** (*Required*): The API token of your bot. +- **trusted_networks** (*Optional*): Telegram server access ACL as list. Defaults to `149.154.167.197-233`. + +To get your `chat_id` and `api_key` follow the instructions [here](/components.notify.telegram) . + +Full configuration sample: + +```yaml +# Example configuration.yaml entry +http: + base_url: + +telegram_webhooks: + api_key: ABCDEFGHJKLMNOPQRSTUVXYZ + trusted_networks: + - 149.154.167.197/32 + - 149.154.167.198/31 + - 149.154.167.200/29 + - 149.154.167.208/28 + - 149.154.167.224/29 + - 149.154.167.232/31 + allowed_chat_ids: + - 12345 + - 67890 +``` \ No newline at end of file From c3f359b3acd669a68f35f04c639f800e03ba8663 Mon Sep 17 00:00:00 2001 From: Patrik Date: Thu, 13 Apr 2017 19:23:38 +0200 Subject: [PATCH 08/31] Tradfri (#2420) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added initial support for IKEA Tradfri (Trådfri) Gateway * Added initial support for IKEA Tradfri (Trådfri) Gateway --- source/_components/light.tradfri.markdown | 39 +++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 source/_components/light.tradfri.markdown diff --git a/source/_components/light.tradfri.markdown b/source/_components/light.tradfri.markdown new file mode 100644 index 00000000000..ff6a4612043 --- /dev/null +++ b/source/_components/light.tradfri.markdown @@ -0,0 +1,39 @@ +--- +layout: page +title: "Tradfri (Trådfri) Gateway" +description: "Access and control your ZigBee-based IKEA Tradfri (Trådfri) Lights." +date: 2017-04-12 22.04 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Light +ha_iot_class: "Local Polling" +ha_release: 0.43 +--- + +Support for the IKEA Tradfri (Trådfri) gateway. The gateway can control lights connected to it. + +NB: for this to work, you need to install the lib-coap library: +``` +$ apt-get install libtool + +$ git clone --recursive https://github.com/obgm/libcoap.git +$ cd libcoap +$ git checkout dtls +$ git submodule update --init --recursive +$ ./autogen.sh +$ ./configure --disable-documentation --disable-shared +$ make +$ sudo make install +``` + +To enable these lights, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +light: + - platform: tradfri + host: 192.168.0.129 + api_key: +``` From d41913787dc4c0d54d5496595bcaf25a228fc14e Mon Sep 17 00:00:00 2001 From: Anders Melchiorsen Date: Mon, 17 Apr 2017 01:40:32 +0200 Subject: [PATCH 09/31] Create scene.lifx_cloud.markdown (#2440) --- source/_components/scene.lifx_cloud.markdown | 38 ++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 source/_components/scene.lifx_cloud.markdown diff --git a/source/_components/scene.lifx_cloud.markdown b/source/_components/scene.lifx_cloud.markdown new file mode 100644 index 00000000000..cddb7cafd26 --- /dev/null +++ b/source/_components/scene.lifx_cloud.markdown @@ -0,0 +1,38 @@ +--- +layout: page +title: "LIFX Cloud Scenes" +description: "Instructions on using native LIFX scenes with Home Assistant." +date: 2017-04-15 23:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: lifx.png +ha_category: Scene +ha_release: 0.43 +--- + +The `lifx_cloud` scene platform allows you to activate the scenes that LIFX smartphone apps store in the LIFX cloud. + +```yaml +# Example configuration.yaml entry +scene: + platform: lifx_cloud + token: YOUR_LIFX_TOKEN +``` + +Configuration variables: + +- **token** (*Required*): The API token for your LIFX Cloud account. +- **timeout** (*Optional*): Network timeout in seconds (defaults to 10). + +### Getting an API token + +You create your API token on the LIFX website: +1. Sign in to the [LIFX Cloud](https://cloud.lifx.com/) +2. Click on your e-mail address and select _Settings_ +3. Now click _Generate New Token_ +4. Enter a meaningful label, such as 'Home Assistant' +5. Click _Generate_ +6. Copy the token that now appears +7. Paste the token into the Home Assistant configuration file From 1ff9737dd5e0d8401e5885ff6a5fd5c4b3e7d6fb Mon Sep 17 00:00:00 2001 From: Tyler Page Date: Tue, 18 Apr 2017 03:20:10 -0500 Subject: [PATCH 10/31] Update sensor.darksky.markdown (#2451) Added optional latitude/longitude coordinates that was added with .41 --- source/_components/sensor.darksky.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_components/sensor.darksky.markdown b/source/_components/sensor.darksky.markdown index 42f4c040c99..03c16aaab59 100644 --- a/source/_components/sensor.darksky.markdown +++ b/source/_components/sensor.darksky.markdown @@ -39,6 +39,8 @@ Configuration variables: - **api_key** (*Required*): Your API key. - **name** (*Optional*): Additional name for the sensors. Default to platform name. - **forecast** array (*Optional*): List of days in the 7 day forecast you would like to receive data on, starting with tomorrow as day 1. Any `monitored_condition` with a daily forecast by DarkSky will generate a sensor tagged with `_`. +- **latitude** (*Optional*): Latitude coordinate to monitor weather of (required if **longitude** is specificed), defaults to coordinates defined in your `configuration.yaml` +- **longitude** (*Optional*): Longitude coordinate to monitor weather of (required if **latitude** is specified), defaults to coordinates defined in your `configuration.yaml` - **monitored_conditions** array (*Required*): Conditions to display in the frontend. - **summary**: A human-readable text summary of the current conditions. - **precip_type**: The type of precipitation occurring. From 31304d177bd21e73230abe0c2752d070fbf51c35 Mon Sep 17 00:00:00 2001 From: Thibault Cohen Date: Tue, 18 Apr 2017 12:09:21 -0400 Subject: [PATCH 11/31] Update wol documentation (#2445) --- source/_components/switch.wake_on_lan.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/switch.wake_on_lan.markdown b/source/_components/switch.wake_on_lan.markdown index 78df4ddf479..98816c5bf50 100644 --- a/source/_components/switch.wake_on_lan.markdown +++ b/source/_components/switch.wake_on_lan.markdown @@ -34,6 +34,7 @@ Configuration variables: - **name** (*Optional*): The name of the switch. Default is 'Wake on LAN'. - **host** (*Optional*): The IP address or hostname to check the state of the device (on/off). - **turn_off** (*Optional*): Defines an [action](/getting-started/automation/) to run when the switch is turned off. +- **broadcast_address** (*Optional*): The IP address of the host to send the magic packet to (default 255.255.255.255). ## {% linkable_title Examples %} From 820f1d54513474e6a095489ece71883b8b7c4f9c Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 18 Apr 2017 18:40:37 +0200 Subject: [PATCH 12/31] Add inital docs for myStrom WiFi bulbs (#2454) --- source/_components/light.mystrom.markdown | 53 +++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 source/_components/light.mystrom.markdown diff --git a/source/_components/light.mystrom.markdown b/source/_components/light.mystrom.markdown new file mode 100644 index 00000000000..a15c8f4dd45 --- /dev/null +++ b/source/_components/light.mystrom.markdown @@ -0,0 +1,53 @@ +--- +layout: page +title: "myStrom WiFi Bulb" +description: "Instructions how to integrate myStrom WiFi Bulbs into Home Assistant." +date: 2017-04-18 06:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: mystrom.png +ha_category: Light +--- + + +The `mystrom` light platform allows you to control your [myStrom](https://mystrom.ch/en/) WiFi Bulbs. + +To use your myStrom WiFi Bulb in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +light: + - platform: mystrom + host: IP_ADDRESS + mac: MAC_ADDRESS +``` + +Configuration variables: + +- **host** (*Required*): The IP address of your myStrom WiFi Bulb, eg. `192.168.1.32`. +- **mac** (*Required*): The MAC address of your myStrom WiFi Bulb, eg. `5AAC8CA542F3`. +- **name** (*Optional*): The name to use when displaying this light. + +Check if you are able to access the light located at `IP_ADRRESS`. The details about your light is provided as a JSON response. + +```bash +$ curl http://[IP_ADDRESS]/api/v1/device/[MAC_ADDRESS] + +{ + "MAC_ADDRESS": { + "type": "rgblamp", + "battery": false, + "reachable": true, + "meshroot": false, + "on": true, + "color": "0;0;100", + "mode": "hsv", + "ramp": 409, + "power": 5.1, + "fw_version": "2.25" + } +} +``` + From ab9a65add06ca2b3b169e866f4051c750c465357 Mon Sep 17 00:00:00 2001 From: Mitesh Patel Date: Tue, 18 Apr 2017 23:42:18 -0500 Subject: [PATCH 13/31] Update docs for ssh changes (#2453) * Adds documentation for the lutron Caseta devices * corrects the configuration vars section * Updates docs to sync up with the code PR * Updates the config section to match the latest code pull request. Fixes previously identified errors. * Updates the docs to match the latest code --- source/_components/lutron_caseta.markdown | 4 ---- 1 file changed, 4 deletions(-) diff --git a/source/_components/lutron_caseta.markdown b/source/_components/lutron_caseta.markdown index 073694ec89e..2cd45e95077 100644 --- a/source/_components/lutron_caseta.markdown +++ b/source/_components/lutron_caseta.markdown @@ -24,15 +24,11 @@ To use Lutron Caseta devices in your installation, add the following to your con ``` yaml lutron_caseta: host: - username: lutron - password: integration ``` Configuration variables: - **host** (*Required*): The IP address of the Lutron SmartBridge. -- **username** (*Required*): The login name of the user. The user `lutron` always exists. -- **password** (*Required*): The password for the user specified above. `integration` is the password for the always-present `lutron` user.

It is recommended to assign a static IP address to your Lutron SmartBridge. This ensures that it won't change IP address, so you won't have to change the `host` if it reboots and comes up with a different IP address. From 5a1ba749afd61a51db6c0c32aed77ec3604bcaa7 Mon Sep 17 00:00:00 2001 From: Gianluca Barbaro Date: Wed, 19 Apr 2017 07:17:43 +0200 Subject: [PATCH 14/31] Create camera.mqtt.markdown (#2425) * Create camera.mqtt.markdown * Update camera.mqtt.markdown --- source/_components/camera.mqtt.markdown | 33 +++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 source/_components/camera.mqtt.markdown diff --git a/source/_components/camera.mqtt.markdown b/source/_components/camera.mqtt.markdown new file mode 100644 index 00000000000..d2310d9d22c --- /dev/null +++ b/source/_components/camera.mqtt.markdown @@ -0,0 +1,33 @@ +--- +layout: page +title: "MQTT" +description: "Instructions how to use an MQTT image message as a Camera within Home Assistant." +date: 2017-04-14 00:45 +sidebar: true +comments: false +sharing: true +footer: true +logo: mqtt.png +ha_category: Camera +ha_release: 0.43 +--- + +The `mqtt` camera platform allows you to integrate the content of an image file sent through MQTT into Home Assistant as a camera. Everytime a message under the `topic` in the configuration is received, the image displayed in Home Assistant will also be updated. + +This can be used with an application or a service capable of sending images through MQTT, for example [Zanzito](https://play.google.com/store/apps/details?id=it.barbaro.zanzito). + +To enable this camera in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +camera: + - platform: mqtt + topic: zanzito/shared_locations/my-device +``` + +Configuration variables: + + - **topic** (*Required*): MQTT topic to subscribe to. + - **name** (*Optional*): Name of the camera + + From f3497dcca97d3f7c95063a5d5a9b73b6da2f889c Mon Sep 17 00:00:00 2001 From: Mahasri Kalavala Date: Thu, 20 Apr 2017 02:07:55 -0400 Subject: [PATCH 15/31] Added new repo under examples section. (#2455) Added link to https://github.com/skalavala/smarthome repo under examples section. --- .../configuration_yaml_by_skalavala.markdown | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 source/_cookbook/configuration_yaml_by_skalavala.markdown diff --git a/source/_cookbook/configuration_yaml_by_skalavala.markdown b/source/_cookbook/configuration_yaml_by_skalavala.markdown new file mode 100644 index 00000000000..28550e1d7d6 --- /dev/null +++ b/source/_cookbook/configuration_yaml_by_skalavala.markdown @@ -0,0 +1,12 @@ +--- +layout: page +title: "Configuration.yaml by Mahasri Kalavala" +description: "" +date: 2017-04-19 12:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Example configuration.yaml +ha_external_link: https://github.com/skalavala/smarthome +--- From 4015a67e41037e3d7bead4bf3e598a7cd4c07134 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 20 Apr 2017 08:21:54 +0200 Subject: [PATCH 16/31] Add ping binary sensor docs (#2410) --- .../_components/binary_sensor.ping.markdown | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 source/_components/binary_sensor.ping.markdown diff --git a/source/_components/binary_sensor.ping.markdown b/source/_components/binary_sensor.ping.markdown new file mode 100644 index 00000000000..3dbb7b4cd97 --- /dev/null +++ b/source/_components/binary_sensor.ping.markdown @@ -0,0 +1,43 @@ +--- +layout: page +title: "Ping (ICMP) Binary sensor" +description: "Instructions how to integrate Ping (ICMP)-based binary sensors into Home Assistant." +date: 2017-04-11 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: Binary sensor +ha_release: 0.43 +--- + + +The `ping` binary sensor platform allows you to using `ping` to send ICMP echo requests. This way you can check if a given host is online and determine the round trip times from your Home Assistant instance to that system. + +To use this sensor in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: ping + host: 192.168.0.1 +``` + +Configuration variables: + +- **host** (*Required*): The IP address or hostname of the system you want to track. +- **count** (*Optional*): Number of packets to send. Defaults to 5. +- **name** (*Optional*): Let you overwrite the name of the device. Defaults to `Ping Binary sensor`. + +The sensor exposes the different round trip times values measured by `ping` as attributes: + +- `round trip time mdev` +- `round trip time avg` +- `round trip time min` +- `round trip time max` + +

+This sensor was only tested on a Linux-based system. +

+ From e70e8b189a8184e931cfd5bf75806db7b33f820f Mon Sep 17 00:00:00 2001 From: Mike Megally Date: Thu, 20 Apr 2017 01:24:16 -0700 Subject: [PATCH 17/31] Updated the docs for rest_command (#2430) * Updated the docs for rest_command * Added the optional content_type config value, used to specify the request content type. * Remove default content type of 'text/plain' Should default to current behavior - no header --- source/_components/rest_command.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/rest_command.markdown b/source/_components/rest_command.markdown index f637155ec2f..ce2b1f6f15c 100644 --- a/source/_components/rest_command.markdown +++ b/source/_components/rest_command.markdown @@ -35,6 +35,7 @@ Configuration variables: - **username** (*Optional*): The username for HTTP authentication. - **password** (*Optional*): The password for HTTP authentication. - **timeout** (*Optional*): Timeout for requests. Defaults to 10 seconds. + - **content_type** (*Optional*): Content type for the request. The commands can be dynamic, using templates to insert values of other entities. Service call support variables for template stuff. From 8c7febb5cc8e2013a3a42b6cd2de914a292d401a Mon Sep 17 00:00:00 2001 From: Gianluca Barbaro Date: Thu, 20 Apr 2017 10:25:45 +0200 Subject: [PATCH 18/31] New component: JSON MQTT Device Tracker (#2416) * New component: JSON MQTT Device Tracker * Update device_tracker.mqtt_json.markdown * Update device_tracker.mqtt_json.markdown * JSON keys have changed in dev PR * Update device_tracker.mqtt_json.markdown --- .../device_tracker.mqtt_json.markdown | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 source/_components/device_tracker.mqtt_json.markdown diff --git a/source/_components/device_tracker.mqtt_json.markdown b/source/_components/device_tracker.mqtt_json.markdown new file mode 100644 index 00000000000..a40dbc44580 --- /dev/null +++ b/source/_components/device_tracker.mqtt_json.markdown @@ -0,0 +1,39 @@ +--- +layout: page +title: "JSON MQTT Device Tracker" +description: "Instructions how to use JSON MQTT to track devices in Home Assistant." +date: 2017-04-12 20:41 +sidebar: true +comments: false +sharing: true +footer: true +logo: mqtt.png +ha_category: Presence Detection +ha_version: 0.44 +--- + + +The `mqtt_json` device tracker platform allows you to detect presence by monitoring an MQTT topic for new locations. To use this platform, you specify a unique topic for each device. + +To use this device tracker in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +device_tracker: + - platform: mqtt + devices: + paulus_oneplus: location/paulus + annetherese_n4: location/annetherese +``` + +Configuration variables: + +- **devices** (*Required*): List of devices with their topic. +- **qos** (*Optional*): The QoS level of the topic. + +This platform receives JSON formatted payloads containing GPS information, for example: +```json +{"longitude": 1.0,"gps_accuracy": 60,"latitude": 2.0,"battery_level": 99.9} +``` +Where `longitude` is the longitude, `latitude` is the latitude, `gps_accuracy` is the accuracy in meters, `battery_level` is the current battery level of the device sending the update. +`longitude` and `latitude` are required keys, `gps_accuracy` and `battery_level` are optional. From 33f2a8c6c7bd9364b06542a70497551879778dad Mon Sep 17 00:00:00 2001 From: happyleavesaoc Date: Thu, 20 Apr 2017 04:28:09 -0400 Subject: [PATCH 19/31] add opensky doc (#2431) --- source/_components/sensor.opensky.markdown | 44 +++++++++++++++++++++ source/images/supported_brands/opensky.png | Bin 0 -> 115569 bytes 2 files changed, 44 insertions(+) create mode 100644 source/_components/sensor.opensky.markdown create mode 100644 source/images/supported_brands/opensky.png diff --git a/source/_components/sensor.opensky.markdown b/source/_components/sensor.opensky.markdown new file mode 100644 index 00000000000..baa285ce247 --- /dev/null +++ b/source/_components/sensor.opensky.markdown @@ -0,0 +1,44 @@ +--- +layout: page +title: "OpenSky Network" +description: "Instructions on how to integrate OpenSky Network into Home Assistant." +date: 2017-04-14 10:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: opensky.png +ha_category: Sensor +featured: false +ha_release: 0.43 +ha_iot_class: "Cloud Polling" +--- + +The `opensky` sensor allows one to track overhead flights in a given region. It uses crowd-sourced data from the [OpenSky Network](https://opensky-network.org/) public API. It will also fire Home Assistant events when flights enter and exit the defined region. + +## Configuration + +To enable this sensor, add the following lines to your `configuration.yaml`. + +```yaml +sensor: + - platform: opensky + radius: 10 +``` + +Configuration options for the OpenSky Network sensor: + +- **radius** (*Required*): Radius of region to monitor, in kilometers +- **latitude** (*Optional*): Region latitude (defaults to home zone latitude) +- **longitude** (*Optional*): Region longitude (defaults to home zone longitude) +- **name** (*Optional*): Sensor name (defaults to `opensky`) + +## Events + +- **opensky_entry**: Fired when a flight enters the region +- **opensky_exit**: Fired when a flight exits the region + +Both events have two attributes: + +- **sensor**: Name of `opensky` sensor that fired the event +- **callsign**: Callsign of the flight diff --git a/source/images/supported_brands/opensky.png b/source/images/supported_brands/opensky.png new file mode 100644 index 0000000000000000000000000000000000000000..d586a4f43f93f6862b24151f89e54b6e203ebbbd GIT binary patch literal 115569 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 literal 0 HcmV?d00001 From 397e838bfc6785a70259db7ff86f60e9e6026618 Mon Sep 17 00:00:00 2001 From: lichtteil Date: Fri, 21 Apr 2017 12:04:59 +0200 Subject: [PATCH 20/31] Add notice about inactive fritzdect actors (#2464) --- source/_components/switch.fritzdect.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/_components/switch.fritzdect.markdown b/source/_components/switch.fritzdect.markdown index 1a9fe609480..b0d3b2ee3cd 100644 --- a/source/_components/switch.fritzdect.markdown +++ b/source/_components/switch.fritzdect.markdown @@ -40,3 +40,8 @@ Configuration variables: - **username** (*Required*): The username for your Fritz!Box. - **password** (*Required*): The password for your Fritz!Box. - **host** (*Optional*): The IP address/hostname of your Fritz!Box. Defaults to `fritz.box`. + + +

+If this component throws an error when starting home-assistant you should check if all actors are plugged in and connected to the FritzBox. Inactive actors that are not deleted from FritzBox configuration might lead to errors. +

From 9ce7c382811a69f67207f06946564cbee344117e Mon Sep 17 00:00:00 2001 From: John Arild Berentsen Date: Fri, 21 Apr 2017 17:56:28 +0200 Subject: [PATCH 21/31] Enhancements for Neato (#2381) * Enhancements for Neato * Create camera.neato.markdown --- source/_components/camera.neato.markdown | 20 ++++++++++++++++++++ source/_components/sensor.neato.markdown | 1 + 2 files changed, 21 insertions(+) create mode 100644 source/_components/camera.neato.markdown diff --git a/source/_components/camera.neato.markdown b/source/_components/camera.neato.markdown new file mode 100644 index 00000000000..9954d924b5c --- /dev/null +++ b/source/_components/camera.neato.markdown @@ -0,0 +1,20 @@ +--- +layout: page +title: "Neato Camera" +description: "Instructions how to setup the Neato cleaning maps within Home Assistant." +date: 2017-04-05 13:10 +sidebar: true +comments: false +sharing: true +footer: true +logo: neato.png +ha_category: Camera +ha_release: 0.42 +--- + + +The `neato` camera platform allows you to view the latest cleaning map of your [Neato Botvac Connected] +(https://www.neatorobotics.com/robot-vacuum/botvac-connected-series/botvac-connected/). + +The requirement is that you have setup your [Neato hub](/components/neato/). + diff --git a/source/_components/sensor.neato.markdown b/source/_components/sensor.neato.markdown index c2f5e4a7a43..4b454f84f96 100644 --- a/source/_components/sensor.neato.markdown +++ b/source/_components/sensor.neato.markdown @@ -13,5 +13,6 @@ ha_release: 0.33 --- The `neato` sensor platform allows you to watch status and battery of your [Neato Botvac Connected](https://www.neatorobotics.com/robot-vacuum/botvac-connected-series/botvac-connected/). +The status sensor will contain attributes on the robots last clean session. To add `neato` sensors to your installation, follow instructions in [Neato component](/components/neato/). From 6f5d46b3d10a5f3d9a1d4ca31ad7f5ba9f78d01e Mon Sep 17 00:00:00 2001 From: hawk259 Date: Fri, 21 Apr 2017 11:59:59 -0400 Subject: [PATCH 22/31] Adding docs for new AlarmDecoder (#2373) * Adding docs for new AlarmDecoder * moved to 0.43 release, I hope tweak usb docs --- .../alarm_control_panel.alarmdecoder.markdown | 20 +++++++ source/_components/alarmdecoder.markdown | 55 ++++++++++++++++++ .../binary_sensor.alarmdecoder.markdown | 20 +++++++ .../_components/sensor.alarmdecoder.markdown | 18 ++++++ .../images/supported_brands/alarmdecoder.png | Bin 0 -> 15273 bytes 5 files changed, 113 insertions(+) create mode 100644 source/_components/alarm_control_panel.alarmdecoder.markdown create mode 100644 source/_components/alarmdecoder.markdown create mode 100644 source/_components/binary_sensor.alarmdecoder.markdown create mode 100644 source/_components/sensor.alarmdecoder.markdown create mode 100644 source/images/supported_brands/alarmdecoder.png diff --git a/source/_components/alarm_control_panel.alarmdecoder.markdown b/source/_components/alarm_control_panel.alarmdecoder.markdown new file mode 100644 index 00000000000..fec4f0cb3fd --- /dev/null +++ b/source/_components/alarm_control_panel.alarmdecoder.markdown @@ -0,0 +1,20 @@ +--- +layout: page +title: "AlarmDecoder Alarm Control Panel" +description: "Instructions how to setup the AlarmDecoder Alarm control panel within Home Assistant." +date: 2017-04-02 13:28 +sidebar: true +comments: false +sharing: true +footer: true +logo: alarmdecoder.png +ha_category: Alarm +ha_release: 0.43 +ha_iot_class: "Local Push" +--- + + +The `alarmdecoder` alarm control panel platform allows you to control your [AlarmDecoder](https://www.alarmdecoder.com) alarms. + +The requirement is that you have setup your [AlarmDecoder hub](/components/alarmdecoder/). + diff --git a/source/_components/alarmdecoder.markdown b/source/_components/alarmdecoder.markdown new file mode 100644 index 00000000000..cc6c5fc662c --- /dev/null +++ b/source/_components/alarmdecoder.markdown @@ -0,0 +1,55 @@ +--- +layout: page +title: "AlarmDecoder Alarm" +description: "Instructions on how to integrate a DSC/Honeywell alarm panel with Home Assistant using an AlarmDecoder device." +date: 2017-04-02 13:28 +sidebar: true +comments: false +sharing: true +footer: true +logo: alarmdecoder.png +ha_category: Alarm +ha_release: 0.43 +ha_iot_class: "Local Push" +--- + +The `alarmdecoder` component will allow Home Assistant users who own either a DSC or Honeywell alarm panel to leverage their alarm system and it's sensors to provide Home Assistant with rich information about their homes. Connectivity between Home Assistant and the alarm panel is accomplished through a device produced by Nu Tech Software Solutions, known as the AlarmDecoder. The AlarmDecoder devices provide a serial, TCP/IP socket or USB interface to the alarm panel, where it emulates an alarm keypad. + +Please visit the [AlarmDecoder website](https://www.alarmdecoder.com/) for further information about the AlarmDecoder devices. + +There is currently support for the following device types within Home Assistant: + +- [Binary Sensor](/components/binary_sensor.alarmdecoder/): Reports on zone status +- [Sensor](/components/sensor.alarmdecoder/): Emulates an keypad display +- [Alarm Control Panel](/components/alarm_control_panel.alarmdecoder/): Reports on alarm status, and can be used to arm/disarm the system + +This is a fully event-based component. Any event sent by the AlarmDecoder device will be immediately reflected within Home Assistant. + +An `alarmdecoder` section must be present in the `configuration.yaml` file and contain the following options as required: + +```yaml +# Example configuration.yaml entry +alarmdecoder: + device: + type: socket + host: 192.168.1.20 + port: 10000 + panel_display: On + zones: + 01: + name: 'Smoke Detector' + type: 'smoke' + 02: + name: 'Front Door' + type: 'opening' +``` + +Configuration variables: + +- **type** (*Required*): The type of AlarmDecoder device: socket, serial or usb +- **host** (*Optional*): The IP address of the AlarmDecoder device on your home network, if using socket type. Default: `localhost` +- **port** (*Optional*): The port of the AlarmDecoder device on your home network, if using socket type. Default: `10000` +- **path** (*Optional*): The path of the AlarmDecoder device, if using socket type. Default: `/dev/ttyUSB0` +- **baud** (*Optional*): The baud rate of the AlarmDecoder device, if using serial type. Default: `115200` +- **panel_display** (*Optional*): Create a sensor called sensor.alarm_display to match the Alarm Keypad dispaly. Default: `off` +- **zones** (*Optional*): AlarmDecoder has no way to tell us which zones are actually in use, so each zone must be configured in Home Assistant. For each zone, at least a name must be given. For more information on the available zone types, take a look at the [Binary Sensor](/components/binary_sensor.alarmdecoder/) docs. *Note: If no zones are specified, Home Assistant will not load any binary_sensor components.* diff --git a/source/_components/binary_sensor.alarmdecoder.markdown b/source/_components/binary_sensor.alarmdecoder.markdown new file mode 100644 index 00000000000..1bfbd1be9f1 --- /dev/null +++ b/source/_components/binary_sensor.alarmdecoder.markdown @@ -0,0 +1,20 @@ +--- +layout: page +title: "AlarmDecoder Binary Sensor" +description: "Instructions how to integrate AlarmDecoder binary sensors into Home Assistant." +date: 2017-04-02 13:28 +sidebar: true +comments: false +sharing: true +footer: true +logo: alarmdecoder.png +ha_release: 0.43 +ha_category: Binary Sensor +ha_iot_class: "Local Push" +--- + +The `alarmdecoder` alarm control panel platform allows you to control your [AlarmDecoder](https://www.alarmdecoder.com) alarms. + +Check the [type/class](/components/binary_sensor/) list for a possible visualization of your zone. + +The requirement is that you have setup your [AlarmDecoder hub](/components/alarmdecoder/). diff --git a/source/_components/sensor.alarmdecoder.markdown b/source/_components/sensor.alarmdecoder.markdown new file mode 100644 index 00000000000..d7b0483f9a1 --- /dev/null +++ b/source/_components/sensor.alarmdecoder.markdown @@ -0,0 +1,18 @@ +--- +layout: page +title: "AlarmDecoder Sensor" +description: "Instructions how to integrate AlarmDecoder sensors into Home Assistant." +date: 2017-04-02 13:28 +sidebar: true +comments: false +sharing: true +footer: true +logo: alarmdecoder.png +ha_release: 0.43 +ha_category: Sensor +ha_iot_class: "Local Push" +--- + +The `alarmdecoder` alarm control panel platform allows you to control your [AlarmDecoder](https://www.alarmdecoder.com) alarms. + +The requirement is that you have setup your [AlarmDecoder hub](/components/alarmdecoder/). diff --git a/source/images/supported_brands/alarmdecoder.png b/source/images/supported_brands/alarmdecoder.png new file mode 100644 index 0000000000000000000000000000000000000000..3159f9320500353f3c3103e1b15e4a2d68fa167d GIT binary patch literal 15273 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 bdx4U=+v;^jpT^-*Euwf|Rjx$F^u_-GMMQ|- literal 0 HcmV?d00001 From 69488f6edfad8aeba1b916d8d4412d15868210fa Mon Sep 17 00:00:00 2001 From: mountainsandcode Date: Fri, 21 Apr 2017 18:01:56 +0200 Subject: [PATCH 23/31] Update mvglive documentation (#2386) * Update mvglive documentation * Update sensor.mvglive.markdown * Updated to correspond to code PR --- source/_components/sensor.mvglive.markdown | 48 ++++++++++------------ 1 file changed, 21 insertions(+), 27 deletions(-) diff --git a/source/_components/sensor.mvglive.markdown b/source/_components/sensor.mvglive.markdown index 5d461ad19e3..8d8dad582ae 100644 --- a/source/_components/sensor.mvglive.markdown +++ b/source/_components/sensor.mvglive.markdown @@ -22,45 +22,39 @@ To enable this sensor, add the following lines to your `configuration.yaml` file # Example configuration.yaml entry sensor: - platform: mvglive - station: STATION_OR_STOP + nextdeparture: + - station: STATION_OR_STOP_NAME ``` Configuration variables: - **station** (*Required*): Name of the stop or station. Visit [the MVG live web site](http://www.mvg-live.de) to find valid names. - - **destination** (*Optional*): Name of the line's final destination to display only connections ending there. - - **line** (*Optional*): Online display connections from this line, e.g. `'U6'`, `'S2'`. - - **offset** (*Optional*): Do not display connections departing sooner than this number of minutes (defaults to 0). Useful if you are a couple of minutes away from the stop. - - **bus** (*Optional*): If 'False', do not display bus connections - - **tram** (*Optional*): If 'False', do not display tram connections - - **ubahn** (*Optional*): If 'False', do not display U-Bahn (subway) connections - - **sbahn** (*Optional*): If 'False', do not display S-Bahn (suburban train) connections - + - **destinations** (*Optional*): One or multiple final stop names, e.g. 'Feldmoching' or ['Feldmoching','Harthof']. This can be used to only consider a particular direction of travel + - **directions** (*Optional*): Filter by direction of the departure. For Tram, Bus, SEV, and S-Bahn, direction = direction. For U-Bahn trains, directions are more general. For U1, U2, U3 and U6, direction='1' indicates south-bound trains, direction='2' indicates northbound trains. For U4 and U5, direction='1' indicates east-bound trains, direction='2' indicates west-bound trains. For example, setting directions: '1' can be used to get all south-bound trains at Scheidplatz. + - **lines** (*Optional*): One or more line numbers, e.g. 'U2' or ['U2','U8','N41'] + - **products** (*Optional*): One or more modes of transport, defaults to all 4 modes ['U-Bahn', 'Tram', 'Bus', 'S-Bahn']. + - **timeoffset** (*Optional*): Do not display departures leaving sooner than this number of minutes (defaults to 0). Useful if you are a couple of minutes away from the stop. + - **name** (*Optional*): You can customise the name of the sensor, which defaults to the station name. ## {% linkable_title Examples %} ### {% linkable_title Full configuration %} -The example below shows a full configuration using the 'line' argument. +The example below shows a full configuration with three sensors that showcase the various configuration options. ```yaml # Example configuration.yml entry sensor: - platform: mvglive - station: Marienplatz - line: U6 - offset: 5 - destination: Garching-Forschungszentrum -``` - -Another example showing all bus connections at the main station. - -```yaml -# Example configuration.yml entry -sensor: - - platform: mvglive - station: Hauptbahnhof - offset: 2 - sbahn: False - ubahn: False - tram: False + nextdeparture: + - station: Hauptbahnhof + name: Hbf + destinations: ['München Flughafen Terminal','Markt Schwaben'] + products: 'S-Bahn' + timeoffset: 2 + - station: Sendlinger Tor + lines: ['U2','U8'] + - station: Scheidplatz + products: ['U-Bahn'] + directions: '1' ``` +The first sensor will return S-Bahn departures to Munich Airport or Markt Schwaben that are at least 2 minutes away. The second sensor returns U2 and U8 departures from Sendlinger Tor while the third sensor returns all south-bound U-Bahn trains from Scheidplatz. From 336583159183b69c457715c0280d1ceeab84f6c4 Mon Sep 17 00:00:00 2001 From: Charles Blonde Date: Fri, 21 Apr 2017 18:02:48 +0200 Subject: [PATCH 24/31] Add Bose soundtouch discovery support (#2401) --- source/_components/discovery.markdown | 3 ++- source/_components/media_player.soundtouch.markdown | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/source/_components/discovery.markdown b/source/_components/discovery.markdown index b0f0acb04cf..0b099a52352 100644 --- a/source/_components/discovery.markdown +++ b/source/_components/discovery.markdown @@ -30,6 +30,7 @@ Home Assistant can discover and automatically configure zeroconf/mDNS and uPnP d * Flux Led/MagicLight * Linn / Openhome * Denon Network Receivers + * Bose Soundtouch speakers It will be able to add Google Chromecasts and Belkin WeMo switches automatically, for Philips Hue it will require some configuration from the user. @@ -66,7 +67,7 @@ Valid values for ignore are:

-Home Assistant must be on the same network as the devices for uPnP discovery to work. +Home Assistant must be on the same network as the devices for uPnP discovery to work. If running Home Assistant in a Docker container use switch `--net=host` to put it on the host's network.

diff --git a/source/_components/media_player.soundtouch.markdown b/source/_components/media_player.soundtouch.markdown index f9ab4354947..0c3f3bdf50a 100644 --- a/source/_components/media_player.soundtouch.markdown +++ b/source/_components/media_player.soundtouch.markdown @@ -9,13 +9,15 @@ sharing: true footer: true logo: soundtouch.jpg ha_category: Media Player -ha_release: X.X.X +ha_release: 0.34.0 ha_iot_class: "Local Polling" --- The `soundtouch` platform allows you to control your [Bose Soundtouch](https://www.soundtouch.com/) speakers from Home Assistant. -To add your Soundtouch components to your installation, add the following to your `configuration.yaml` file. +By default it supports auto-discovery provided by Home Assistant, and you don't need to add anything to your `configuration.yaml`. + +Alternatively, you can add the following to your `configuration.yaml` file. ```yaml # Example configuration.yaml From 29684444da8db6bd5c0c6b552a83bc69d1f0ec32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Oldag?= Date: Fri, 21 Apr 2017 12:03:15 -0400 Subject: [PATCH 25/31] Add docs for pwm led platform. (#2402) * Add docs for pwm led platform. * Renamed pwm platform to rpi_gpio_pwm. --- .../_components/light.rpi_gpio_pwm.markdown | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 source/_components/light.rpi_gpio_pwm.markdown diff --git a/source/_components/light.rpi_gpio_pwm.markdown b/source/_components/light.rpi_gpio_pwm.markdown new file mode 100644 index 00000000000..157e201c7db --- /dev/null +++ b/source/_components/light.rpi_gpio_pwm.markdown @@ -0,0 +1,50 @@ +--- +layout: page +title: "PWM LED" +description: "Instructions on how to setup pwm leds within Home Assistant." +date: 2017-04-04 13:00 +sidebar: true +layout: page +comments: false +sharing: true +footer: true +ha_category: Light +ha_iot_class: "Local Push" +ha_release: 0.43 +--- + +The `rpi_gpio_pwm` platform allows to control multiple lights using pulse-width modulation, for example led strips. It supports one-color, RGB and RGBW leds driven by GPIOs of an Raspberry Pi or a PCA9685 controller. + +### {% linkable_title Configuration %} + +```yaml +# Example configuration.yaml entry +light: + platform: rpi_gpio_pwm + leds: + # One-color led directly connected to GPIO + - name: Lightstrip Cupboard + driver: gpio + pins: [17] + type: simple + # RGB led connected to PCA9685 controller + - name: TV Backlight + driver: pca9685 + pins: [0, 1, 2] # [R, G, B] + type: rgb + # RGBW led connected to PCA9685 controller + - name: Lightstrip Desk + driver: pca9685 + pins: [3, 4, 5, 6] # [R, G, B, W] + type: rgbw +``` + +Configuration variables: + +- **leds** array (*Required*): + - **name** (*Required*): The name of the led. + - **driver** (*Required*): The driver, which controls the led. Choose either `gpio` or `pca9685`. + - **pins** (*Required*): The pins connected to the led. The order of pins is determined by the specified type. + - **type** (*Required*): The type of led. Choose either `rgb`, `rgbw` or `simple`. + - **freq** (*Optional*): The PWM frequency. (Default: `200`) + - **address** (*Optional*): The address of the PCA9685 driver. (Default: `0x40`) From 503a7ac0a1d4122170074f5c7d7888b9f27a84dd Mon Sep 17 00:00:00 2001 From: happyleavesaoc Date: Fri, 21 Apr 2017 12:03:45 -0400 Subject: [PATCH 26/31] spotify media player documentation (#2406) * spotify media player documentation * update spotify doc --- .../_components/media_player.spotify.markdown | 51 ++++++++++++++++++ source/images/supported_brands/spotify.png | Bin 0 -> 47711 bytes 2 files changed, 51 insertions(+) create mode 100644 source/_components/media_player.spotify.markdown create mode 100644 source/images/supported_brands/spotify.png diff --git a/source/_components/media_player.spotify.markdown b/source/_components/media_player.spotify.markdown new file mode 100644 index 00000000000..2964eb4102d --- /dev/null +++ b/source/_components/media_player.spotify.markdown @@ -0,0 +1,51 @@ +--- +layout: page +title: "Spotify" +description: "Instructions on how to integrate Spotify into Home Assistant." +date: 2017-04-10 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: spotify.png +ha_category: Media Player +featured: false +ha_release: 0.43 +ha_iot_class: "Cloud Polling" +--- + +The `spotify` media player platform allows you to control [Spotify](https://www.spotify.com/) playback from Home Assistant. + +## {% linkable_title Prerequisites %} + +- Spotify Premium account. +- Spotify Application, properly configured. + +To create the required Spotify Application, login to [Spotify Developer](https://developer.spotify.com), visit the [My Applications](https://developer.spotify.com/my-applications/#!/applications) page, and select **Create An App**. Enter any name and description. Once your application is created, you can view it and discover your **Client ID** and **Client Secret**, which are placed in the Home Assistant configuration file. Finally, add a **Redirect URI** in the following form: + +`http:///api/spotify` + +Remember to select **Save** after adding the URI. + + +## {% linkable_title Configuration %} + +To add Spotify to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +media_player: + - platform: spotify + client_id: + client_secret: +``` + +Configuration variables: + +- **client_id** (*Required*): Client ID from your Spotify Application. +- **client_secret** (*Required*): Client Secret from your Spotify Application. +- **cache_path** (*Optional*): Path to cache authentication token (defaults to configuration directory). + +## {% linkable_title Setup %} + +After the prerequisites and configuration are complete, restart Home Assistant. A **Spotify** configurator element will be available. Follow the instructions to authorize Home Assistant to access your Spotify account. A Spotify media player will then appear. diff --git a/source/images/supported_brands/spotify.png b/source/images/supported_brands/spotify.png new file mode 100644 index 0000000000000000000000000000000000000000..3542e5ec38cc600f992c44f1bacf719f18050d9e GIT binary patch literal 47711 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 Date: Fri, 21 Apr 2017 19:04:34 +0300 Subject: [PATCH 27/31] Add support of modbus input registers query (#2423) * Add support of modbus input registers query Documentation updated according pull request. Add support of modbus input registers query * Update sensor.modbus.markdown Removed some extra space. * Update according main PR change config option name was changed. --- source/_components/sensor.modbus.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_components/sensor.modbus.markdown b/source/_components/sensor.modbus.markdown index 691a755be5b..8a589ca0cf2 100644 --- a/source/_components/sensor.modbus.markdown +++ b/source/_components/sensor.modbus.markdown @@ -35,6 +35,8 @@ sensor: unit_of_measurement: °C slave: 1 register: 120 + register_type: input + data_type: float scale: 0.01 offset: -273.16 precision: 2 @@ -46,8 +48,10 @@ Configuration variables: - **name** (*Required*): Name of the sensor. - **slave** (*Required*): The number of the slave (Optional for tcp and upd Modbus). - **register** (*Required*): Register number. + - **register_type** (*Optional*): Modbus register type (holding, input), default holding - **unit_of_measurement** (*Optional*): Unit to attach to value. - **count** (*Optional*): Number of registers to read. - **scale** (*Optional*): Scale factor (output = scale * value + offset), default 1 - **offset** (*Optional*): Final offset (output = scale * value + offset), default 0 - **precision** (*Optional*): Number of valid decimals, default 0 + - **data_type** (*Optional*): Response representation (int, float). If float selected, value will be converted to IEEE 754 floating point format. default int From 37ac08a4c2e8570d0d7a529fad24db186ced3321 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 21 Apr 2017 23:44:50 -0700 Subject: [PATCH 28/31] Update tradfri docs --- source/_components/digital_ocean.markdown | 1 - source/_components/light.tradfri.markdown | 31 +-- source/_components/tradfri.markdown | 39 +++ source/_includes/custom/grid_item_left.html | 4 +- source/images/supported_brands/Ikea.svg | 260 ++++++++++++++++++++ 5 files changed, 306 insertions(+), 29 deletions(-) create mode 100644 source/_components/tradfri.markdown create mode 100644 source/images/supported_brands/Ikea.svg diff --git a/source/_components/digital_ocean.markdown b/source/_components/digital_ocean.markdown index b82d7c412de..6c5c190ba76 100644 --- a/source/_components/digital_ocean.markdown +++ b/source/_components/digital_ocean.markdown @@ -7,7 +7,6 @@ sidebar: true comments: false sharing: true footer: true -featured: true ha_category: Hub ha_release: "0.30" logo: digital_ocean.png diff --git a/source/_components/light.tradfri.markdown b/source/_components/light.tradfri.markdown index ff6a4612043..1b3b47e539b 100644 --- a/source/_components/light.tradfri.markdown +++ b/source/_components/light.tradfri.markdown @@ -1,39 +1,18 @@ --- layout: page -title: "Tradfri (Trådfri) Gateway" -description: "Access and control your ZigBee-based IKEA Tradfri (Trådfri) Lights." +title: "IKEA Trådfri lights" +description: "Access and control your ZigBee-based IKEA Trådfri (Tradfri) Lights." date: 2017-04-12 22.04 sidebar: true comments: false sharing: true footer: true +logo: ikea.svg ha_category: Light ha_iot_class: "Local Polling" ha_release: 0.43 --- -Support for the IKEA Tradfri (Trådfri) gateway. The gateway can control lights connected to it. +For installation instructions, see [the tradfri component][tradfri]. -NB: for this to work, you need to install the lib-coap library: -``` -$ apt-get install libtool - -$ git clone --recursive https://github.com/obgm/libcoap.git -$ cd libcoap -$ git checkout dtls -$ git submodule update --init --recursive -$ ./autogen.sh -$ ./configure --disable-documentation --disable-shared -$ make -$ sudo make install -``` - -To enable these lights, add the following lines to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -light: - - platform: tradfri - host: 192.168.0.129 - api_key: -``` +[tradfri]: /components/tradfri/ diff --git a/source/_components/tradfri.markdown b/source/_components/tradfri.markdown new file mode 100644 index 00000000000..6518a3ff149 --- /dev/null +++ b/source/_components/tradfri.markdown @@ -0,0 +1,39 @@ +--- +layout: page +title: "IKEA Trådfri (Tradfri)" +description: "Access and control your ZigBee-based IKEA Trådfri (Tradfri) devices." +date: 2017-04-12 22.04 +sidebar: true +featured: true +comments: false +sharing: true +footer: true +logo: ikea.svg +ha_category: Light +ha_iot_class: "Local Polling" +ha_release: 0.43 +--- + +Support for the IKEA Trådfri (Tradfri) gateway. The gateway can control lights connected to it. + +NB: for this to work, you need to install a modified lib-coap library: + +```bash +apt-get install libtool + +git clone --depth 1 --recursive -b dtls https://github.com/home-assistant/libcoap.git +cd libcoap +./autogen.sh +./configure --disable-documentation --disable-shared --without-debug CFLAGS="-D COAP_DEBUG_FD=stderr" +make +make install +``` + +To enable these lights, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +tradfri: + host: 192.168.0.129 + api_key: +``` diff --git a/source/_includes/custom/grid_item_left.html b/source/_includes/custom/grid_item_left.html index 5e17788dcfa..174c314dfae 100644 --- a/source/_includes/custom/grid_item_left.html +++ b/source/_includes/custom/grid_item_left.html @@ -29,8 +29,8 @@
- - + + diff --git a/source/images/supported_brands/Ikea.svg b/source/images/supported_brands/Ikea.svg new file mode 100644 index 00000000000..e9a23b81693 --- /dev/null +++ b/source/images/supported_brands/Ikea.svg @@ -0,0 +1,260 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 34d23f826bf190c269e05f62f51774ae6d0ff911 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 22 Apr 2017 00:03:12 -0700 Subject: [PATCH 29/31] Add blog post --- .../2017-04-22-ikea-tradfri--spotify.markdown | 454 ++++++++++++++++++ 1 file changed, 454 insertions(+) create mode 100644 source/_posts/2017-04-22-ikea-tradfri--spotify.markdown diff --git a/source/_posts/2017-04-22-ikea-tradfri--spotify.markdown b/source/_posts/2017-04-22-ikea-tradfri--spotify.markdown new file mode 100644 index 00000000000..f72f386a072 --- /dev/null +++ b/source/_posts/2017-04-22-ikea-tradfri--spotify.markdown @@ -0,0 +1,454 @@ +--- +layout: post +title: "Home Assistant 0.43: IKEA Trådfri, Spotify and our iOS app is live" +description: "Another packed release. Three major cool new features and a ton of small ones." +date: 2017-04-22 01:04:05 +0000 +date_formatted: "April 22, 2017" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2017-04-0.42/social.png +--- + +Oooh yeah. It's time for 0.43 and this is going to be a killer release. For the people that have been following on social media, you might have noticed that [we got pretty excited about the new IKEA Tradfri line up][ikea-blog]. And so we are very happy to announce that thanks to the work by [@ggravlingen], [@MartinHjelmare] and myself that this will be the first release to support the IKEA light bulbs. Home Assistant will automatically detect the gateway on your network and after following the instructions, allow you to control your lights. + +

+ +After automatic discovery, Home Assistant will ask the user to finish pairing with the gateway. +

+ +And in case you have missed the other big news: [@robbiet480] released the [first version of our iOS app][ios]! It took a little over a year but it offers some great ways to make your iDevice work with Home Assistant. Big congrats to Robbie for shipping! As with our other parts, the app is open-sourced under APACHE 2 and contributors are welcome. [Check it out.][ios-source] + +A big shout out this release to [@happyleavesaoc] for his constant stream of great contributions to Home Assistant. The first contribution was back in October 2015 and since then @happyleavesaoc has been responsible for many platforms and bug fixes including the Spotify platform this release. Thanks @happyleavesaoc, you're a great example of what makes our community awesome. + +The new Spotify integration is based on the new Spotify Connect Playback API. It supports playback, album art and switching which Spotify device you're controlling. + +[ikea-blog]: /blog/2017/04/17/ikea-tradfri-internet-of-things-done-right/ +[ios]: /blog/2017/04/15/ios/ +[ios-source]: https://github.com/home-assistant/home-assistant-ios + +## {% linkable_title New Platforms %} + +- Add MaryTTS platform ([@johanpalmqvist] - [#6988]) ([tts.marytts docs]) (new-platform) +- Telegram bot component (incl. webhook and polling platform) ([@sander76] - [#6913]) ([telegram_bot docs]) ([telegram_bot.polling docs]) ([telegram_bot.webhooks docs]) (breaking change) (new-platform) +- Add support fo map data from Neato ([@turbokongen] - [#6939]) ([neato docs]) ([camera.neato docs]) ([sensor.neato docs]) (new-platform) +- Added initial support for IKEA Tradfri Gateway ([@ggravlingen] - [#7074]) ([light.tradfri docs]) (new-platform) +- MQTT camera ([@MrMep] - [#7092]) ([camera.mqtt docs]) (new-platform) +- Add LIFX Cloud scene support ([@amelchio] - [#7124]) ([scene.lifx_cloud docs]) (new-platform) +- spotify media player ([@happyleavesaoc] - [#6980]) ([media_player.spotify docs]) (new-platform) +- JSON MQTT Device tracker ([@MrMep] - [#7055]) (new-platform) +- opensky sensor ([@happyleavesaoc] - [#7061]) ([sensor.opensky docs]) (new-platform) +- Add ping binary sensor ([@fabaff] - [#7052]) ([binary_sensor.ping docs]) (new-platform) + +## {% linkable_title Breaking changes %} + +- Remove deprecated classes from `homeassistant.remote` ([@balloob] - [#7011]) +- min_max sensor has a different default name and will ignore states that are unknown ([@micw] - [#6786]) +- `telegram_webhooks` has been converted to a new `telegram_bot` component. It has two platforms: webhook and polling platform ([@sander76] - [#6913]) ([telegram_bot docs])([telegram_bot.polling docs]) ([telegram_bot.webhooks docs]) + +```yaml +telegram_bot: + platform: webhooks + api_key : api_key_here + allowed_chat_ids: + - 123456 + - 456789 +``` + +- Lutron_Caseta: it is no longer necessary to specify username and password in the config. ([@gurumitts] - [#7165]) ([lutron_caseta docs]) +- mvglive: config has been updated to allow support for multiple departures ([@mountainsandcode] - [#6953]) ([sensor.mvglive docs]) + +```yaml +sensor: + - platform: mvglive + nextdeparture: + - station: Hauptbahnhof + name: Hbf + destinations: ['München Flughafen Terminal','Markt Schwaben'] + products: 'S-Bahn' + timeoffset: 2 + - station: Sendlinger Tor + lines: ['U2','U8'] + - station: Scheidplatz + products: ['U-Bahn'] + directions: '1' +``` + + +## {% linkable_title All changes %} + +- Update kodi for aiohttp2 ([@armills] - [#6967]) ([media_player.kodi docs]) ([notify.kodi docs]) +- Fix current_temperature is rounded ([@aufano] - [#6960]) ([climate docs]) +- Bugfix time and task coro ([@pvizeli] - [#6968]) +- Initial import for HassIO ([@pvizeli] - [#6935]) +- Preserve customize glob order. ([@andrey-git] - [#6963]) +- Foscam Camera: Adding exception handling when fetching the camera image to avoid python exception errors when host is not reachable or rather any url error to camera ([@viswa-swami] - [#6964]) ([camera.foscam docs]) +- light.yeelight: catch i/o related exceptions from the backend lib ([@rytilahti] - [#6952]) +- From Dusk till Dawn ([@BillyNate] - [#6857]) ([sun docs]) +- Tests for zwave services ([@armills] - [#6937]) ([zwave docs]) +- Fix control+c quitting HASS ([@balloob] - [#6974]) +- Update Emby for aiohttp v2 ([@mezz64] - [#6981]) +- switch.tplink: upgrade to the newest upstream release which adds support for plugs using the newer communication protocol ([@rytilahti] - [#6979]) ([switch.tplink docs]) +- switch.tplink: bump pyhs100 version requirement ([@rytilahti] - [#6986]) +- Add tests for ZWaveDeviceEntityValues helper ([@armills] - [#6978]) ([zwave docs]) +- Bump Amcrest module to 1.1.8 ([@tchellomello] - [#6990]) +- update gstreamer ([@happyleavesaoc] - [#6987]) ([media_player.gstreamer docs]) +- Warn if start takes a long time. ([@balloob] - [#6975]) +- Upgrade to aiohttp 2.0.6 ([@balloob] - [#6992]) +- Make discovery not block start ([@balloob] - [#6991]) +- Downgrade aiohttp to 205 ([@balloob] - [#6994]) +- Bump pywemo version. ([@pavoni] - [#7004]) +- Fix Synology camera content type ([@balloob] - [#7010]) ([camera.synology docs]) +- Fix two more instances of JSON parsing synology ([@balloob] - [#7014]) +- Bump pyalarmdotcom to support new version of aiohttp ([@Xorso] - [#7021]) ([alarm_control_panel.alarmdotcom docs]) +- Fix US states check (fixes #7015) ([@fabaff] - [#7017]) +- Remove deprecated remote classes ([@balloob] - [#7011]) (breaking change) +- Replace 'vendor_id' with 'arch' (fixes #7003) ([@fabaff] - [#7023]) +- more tests for slugify ([@micw] - [#7027]) +- Additional ZWave coverage ([@armills] - [#7024]) ([zwave docs]) +- bump ups version ([@happyleavesaoc] - [#7033]) ([sensor.ups docs]) +- update usps version ([@happyleavesaoc] - [#7035]) ([sensor.usps docs]) +- update fedex ([@happyleavesaoc] - [#7034]) ([sensor.fedex docs]) +- Google TTS can't read percent sign (#6971) ([@pezinek] - [#7030]) ([tts.google docs]) +- Feature/min max improvements ([@micw] - [#6786]) (breaking change) +- Upgrade psutil to 5.2.2 ([@fabaff] - [#7037]) ([sensor.systemmonitor docs]) +- Upgrade sendgrid to 4.0.0 ([@fabaff] - [#7038]) ([notify.sendgrid docs]) +- Missing line name restriction added (fixes #7039) ([@DavidMStraub] - [#7040]) ([sensor.mvglive docs]) +- Plug file leak on LIFX unregister ([@amelchio] - [#7031]) ([light.lifx docs]) +- Make core to look avilable state of device on servicecall ([@pvizeli] - [#7045]) +- Remove configuration sample ([@fabaff] - [#7048]) +- Bugfix wait on start event ([@pvizeli] - [#7013]) +- Bugfix slider ([@pvizeli] - [#7047]) ([input_slider docs]) +- Add MaryTTS platform ([@johanpalmqvist] - [#6988]) ([tts.marytts docs]) (new-platform) +- Fix mysensors callback ([@MartinHjelmare] - [#7057]) ([mysensors docs]) ([device_tracker.mysensors docs]) +- Constrain chardet to 2.3 ([@balloob] - [#7063]) +- Fix/slugify with german umlaut ss ([@micw] - [#7029]) +- Speed up aiohttp ([@balloob] - [#7064]) +- Upgrade netdisco to 1.0.0rc2 ([@balloob] - [#7008]) +- Telegram bot component (incl. webhook and polling platform) ([@sander76] - [#6913]) ([telegram_bot docs]) ([telegram_bot.polling docs]) ([telegram_bot.webhooks docs]) (breaking change) (new-platform) +- Upgrade paho-mqtt to 1.2.2 ([@fabaff] - [#7066]) +- Fix handling with register callbacks on added_to_hass ([@pvizeli] - [#7067]) +- Lutron. Bugfix callback registration. ([@pvizeli] - [#7042]) +- Adding AlarmDecoder platform ([@hawk259] - [#6900]) +- Add communication data attributes to Zwave node_entity ([@turbokongen] - [#6813]) ([zwave docs]) +- Add product_name attribute to zwave nodes. ([@andrey-git] - [#7071]) +- Bump braviarc version to 0.3.7 ([@robbiet480] - [#7078]) ([media_player.braviatv docs]) +- Fix account balance in fido sensor ([@titilambert] - [#7077]) ([sensor.fido docs]) +- MQTT: Managing binary payloads ([@MrMep] - [#6976]) ([mqtt docs]) +- Bump qnapstats library version to 0.2.4 ([@colinodell] - [#7085]) ([sensor.qnap docs]) +- Add support fo map data from Neato ([@turbokongen] - [#6939]) ([neato docs]) ([camera.neato docs]) ([sensor.neato docs]) (new-platform) +- Added initial support for IKEA Tradfri Gateway ([@ggravlingen] - [#7074]) ([light.tradfri docs]) (new-platform) +- Better thread safety in zwave node_entity ([@andrey-git] - [#7087]) +- Uber version bump ([@armills] - [#7100]) ([sensor.uber docs]) +- No product ids configured should fetch all ids ([@armills] - [#7091]) +- Upgrade aiohttp to 2.0.7 ([@fabaff] - [#7106]) +- Update file header, add const for defaults, and update log messages ([@fabaff] - [#7110]) +- Upgrade speedtest-cli to 1.0.4 ([@fabaff] - [#7105]) ([sensor.speedtest docs]) +- Remove globally disabled pylint issue and update docstrings ([@fabaff] - [#7111]) +- Use third-party lib aioautomatic for automatic ([@armills] - [#7126]) ([device_tracker.automatic docs]) +- Upgrade chardet to 3.0.2 ([@fabaff] - [#7112]) +- Send stderr of ping tracker to devnull ([@amelchio] - [#7096]) ([device_tracker.ping docs]) +- Upgraded Amcrest module to 1.1.9 to support new firmware versions: ([@tchellomello] - [#7130]) +- Mqtt camera ([@MrMep] - [#7092]) ([camera.mqtt docs]) (new-platform) +- Bump version to 0.43.0.dev0 ([@MartinHjelmare] - [#7132]) +- Load zwave panel ([@balloob] - [#7127]) ([zwave docs]) +- IKEA Tradfri Gateway: added support for RGB ([@ggravlingen] - [#7115]) ([light.tradfri docs]) +- Make Tradfri discoverable ([@balloob] - [#7128]) +- Make version number optional and a string to fix identify issue introduced in iOS 1.0.1 ([@robbiet480] - [#7141]) +- Fix for zwave RGB setting ([@armills] - [#7137]) +- Replace rollershutter with cover in demo ([@robbiet480] - [#7140]) +- Add debug logging to automation initial state ([@armills] - [#7068]) ([automation docs]) +- Always return True/False from is_state and is_state_attr ([@amelchio] - [#7138]) +- Add LIFX Cloud scene support ([@amelchio] - [#7124]) ([scene.lifx_cloud docs]) (new-platform) +- Fix LIFX lights with disappearing names ([@amelchio] - [#7119]) ([light.lifx docs]) +- lutron: fix typo that prevented callback registration ([@thecynic] - [#7148]) ([lutron docs]) +- Fix HassIO timeout bug ([@pvizeli] - [#7155]) +- small fix for random effect in order to use the whole rgb range. So 255 is not excluded anymore. ([@Mister-Espria] - [#7156]) ([light.flux_led docs]) ([light.yeelight docs]) +- exposed content_type in rest_command ([@cmsimike] - [#7101]) +- Add vera power meter. ([@pavoni] - [#7134]) ([vera docs]) ([sensor.vera docs]) +- Add support for tradfri color temp ([@MartinHjelmare] - [#7153]) ([light.tradfri docs]) +- Disable MQTT camera test ([@balloob] - [#7164]) +- myStrom WiFi bulbs ([@fabaff] - [#7161]) +- Fix #7026 adding a new wol parameter ([@titilambert] - [#7144]) ([switch.wake_on_lan docs]) +- Add subscription update for Wemo switches, fix bug in Insight switches, fix wemo motion bug, fix wemo discovery ([@pavoni] - [#7135]) ([wemo docs]) +- Update neato.py ([@michaelarnauts] - [#7166]) ([neato docs]) +- Keep track of already added players ([@molobrakos] - [#7149]) +- Fix id zone mismatch ([@gurumitts] - [#7165]) ([lutron_caseta docs]) (breaking change) +- Upgrade pytradfri to 1.0 ([@balloob] - [#7163]) +- Value of 0 should not be considered `unknown`. ([@aequitas] - [#7139]) +- Upgrade netdisco ([@balloob] - [#7171]) +- Added new services to platform kodi ([@alexmogavero] - [#6426]) ([media_player docs]) ([media_player.kodi docs]) +- Supress trackback and upgrade PyMata to 2.14 ([@fabaff] - [#7176]) ([arduino docs]) +- Disable invalid-sequence-index ([@fabaff] - [#7177]) +- Upgrade mypy to 0.501 (was renamed from mypy-lang) ([@fabaff] - [#7117]) +- Add condition for API failure ([@sytone] - [#7181]) +- Add history to component priority list ([@balloob] - [#7173]) +- Tweak Tradfri ([@balloob] - [#7172]) ([light.tradfri docs]) +- Mqtt camera test ([@MrMep] - [#7175]) +- updated pylgtv module to fix problems with timeouts ([@hmn] - [#7184]) ([media_player.webostv docs]) ([notify.webostv docs]) +- Fix wemo discovery ([@balloob] - [#7183]) ([wemo docs]) ([light.wemo docs]) ([switch.wemo docs]) +- Add Bose soundtouch discovery support and upgrade libsoundtouch library ([@CharlesBlonde] - [#7005]) +- spotify media player ([@happyleavesaoc] - [#6980]) ([media_player.spotify docs]) (new-platform) +- JSON MQTT Device tracker ([@MrMep] - [#7055]) (new-platform) +- opensky sensor ([@happyleavesaoc] - [#7061]) ([sensor.opensky docs]) (new-platform) +- Add ping binary sensor ([@fabaff] - [#7052]) ([binary_sensor.ping docs]) (new-platform) +- Added light.pwm component. ([@soldag] - [#7009]) +- Fix for errors on missing preview on LG webos TV ([@masarliev] - [#6755]) ([media_player.webostv docs]) +- Fix auto discovery for Apple TV ([@postlund] - [#7188]) ([media_player.apple_tv docs]) +- Do not request artwork if not available ([@postlund] - [#7189]) ([media_player.apple_tv docs]) +- mvglive bug fixes and improvements ([@mountainsandcode] - [#6953]) ([sensor.mvglive docs]) (breaking change) +- Upgrade py-cpuinfo to 3.2.0 ([@fabaff] - [#7190]) ([sensor.cpuspeed docs]) +- Add support of input registers while querying modbus sensor. ([@LvivEchoes] - [#7082]) ([modbus docs]) ([sensor.modbus docs]) +- Add HassIO to discovery component ([@pvizeli] - [#7195]) +- LIFX light effects ([@amelchio] - [#7145]) ([light.lifx docs]) +- HassIO API v2 ([@pvizeli] - [#7201]) +- Support xy_color with LIFX lights ([@amelchio] - [#7208]) ([light.lifx docs]) +- Update ios.py ([@biacz] - [#7160]) +- Fix arwn platform to update hass state when events are received ([@sdague] - [#7202]) +- Issue 6749 updated pylgtv to 0.1.6 to fix thread leak in asyncio loop ([@hmn] - [#7199]) ([media_player.webostv docs]) ([notify.webostv docs]) + +[#6426]: https://github.com/home-assistant/home-assistant/pull/6426 +[#6755]: https://github.com/home-assistant/home-assistant/pull/6755 +[#6786]: https://github.com/home-assistant/home-assistant/pull/6786 +[#6813]: https://github.com/home-assistant/home-assistant/pull/6813 +[#6857]: https://github.com/home-assistant/home-assistant/pull/6857 +[#6900]: https://github.com/home-assistant/home-assistant/pull/6900 +[#6913]: https://github.com/home-assistant/home-assistant/pull/6913 +[#6935]: https://github.com/home-assistant/home-assistant/pull/6935 +[#6937]: https://github.com/home-assistant/home-assistant/pull/6937 +[#6939]: https://github.com/home-assistant/home-assistant/pull/6939 +[#6952]: https://github.com/home-assistant/home-assistant/pull/6952 +[#6953]: https://github.com/home-assistant/home-assistant/pull/6953 +[#6960]: https://github.com/home-assistant/home-assistant/pull/6960 +[#6963]: https://github.com/home-assistant/home-assistant/pull/6963 +[#6964]: https://github.com/home-assistant/home-assistant/pull/6964 +[#6966]: https://github.com/home-assistant/home-assistant/pull/6966 +[#6967]: https://github.com/home-assistant/home-assistant/pull/6967 +[#6968]: https://github.com/home-assistant/home-assistant/pull/6968 +[#6974]: https://github.com/home-assistant/home-assistant/pull/6974 +[#6975]: https://github.com/home-assistant/home-assistant/pull/6975 +[#6976]: https://github.com/home-assistant/home-assistant/pull/6976 +[#6978]: https://github.com/home-assistant/home-assistant/pull/6978 +[#6979]: https://github.com/home-assistant/home-assistant/pull/6979 +[#6980]: https://github.com/home-assistant/home-assistant/pull/6980 +[#6981]: https://github.com/home-assistant/home-assistant/pull/6981 +[#6986]: https://github.com/home-assistant/home-assistant/pull/6986 +[#6987]: https://github.com/home-assistant/home-assistant/pull/6987 +[#6988]: https://github.com/home-assistant/home-assistant/pull/6988 +[#6990]: https://github.com/home-assistant/home-assistant/pull/6990 +[#6991]: https://github.com/home-assistant/home-assistant/pull/6991 +[#6992]: https://github.com/home-assistant/home-assistant/pull/6992 +[#6994]: https://github.com/home-assistant/home-assistant/pull/6994 +[#7004]: https://github.com/home-assistant/home-assistant/pull/7004 +[#7005]: https://github.com/home-assistant/home-assistant/pull/7005 +[#7008]: https://github.com/home-assistant/home-assistant/pull/7008 +[#7009]: https://github.com/home-assistant/home-assistant/pull/7009 +[#7010]: https://github.com/home-assistant/home-assistant/pull/7010 +[#7011]: https://github.com/home-assistant/home-assistant/pull/7011 +[#7013]: https://github.com/home-assistant/home-assistant/pull/7013 +[#7014]: https://github.com/home-assistant/home-assistant/pull/7014 +[#7017]: https://github.com/home-assistant/home-assistant/pull/7017 +[#7021]: https://github.com/home-assistant/home-assistant/pull/7021 +[#7023]: https://github.com/home-assistant/home-assistant/pull/7023 +[#7024]: https://github.com/home-assistant/home-assistant/pull/7024 +[#7027]: https://github.com/home-assistant/home-assistant/pull/7027 +[#7029]: https://github.com/home-assistant/home-assistant/pull/7029 +[#7030]: https://github.com/home-assistant/home-assistant/pull/7030 +[#7031]: https://github.com/home-assistant/home-assistant/pull/7031 +[#7033]: https://github.com/home-assistant/home-assistant/pull/7033 +[#7034]: https://github.com/home-assistant/home-assistant/pull/7034 +[#7035]: https://github.com/home-assistant/home-assistant/pull/7035 +[#7037]: https://github.com/home-assistant/home-assistant/pull/7037 +[#7038]: https://github.com/home-assistant/home-assistant/pull/7038 +[#7040]: https://github.com/home-assistant/home-assistant/pull/7040 +[#7042]: https://github.com/home-assistant/home-assistant/pull/7042 +[#7045]: https://github.com/home-assistant/home-assistant/pull/7045 +[#7047]: https://github.com/home-assistant/home-assistant/pull/7047 +[#7048]: https://github.com/home-assistant/home-assistant/pull/7048 +[#7052]: https://github.com/home-assistant/home-assistant/pull/7052 +[#7055]: https://github.com/home-assistant/home-assistant/pull/7055 +[#7057]: https://github.com/home-assistant/home-assistant/pull/7057 +[#7061]: https://github.com/home-assistant/home-assistant/pull/7061 +[#7063]: https://github.com/home-assistant/home-assistant/pull/7063 +[#7064]: https://github.com/home-assistant/home-assistant/pull/7064 +[#7066]: https://github.com/home-assistant/home-assistant/pull/7066 +[#7067]: https://github.com/home-assistant/home-assistant/pull/7067 +[#7068]: https://github.com/home-assistant/home-assistant/pull/7068 +[#7071]: https://github.com/home-assistant/home-assistant/pull/7071 +[#7074]: https://github.com/home-assistant/home-assistant/pull/7074 +[#7077]: https://github.com/home-assistant/home-assistant/pull/7077 +[#7078]: https://github.com/home-assistant/home-assistant/pull/7078 +[#7082]: https://github.com/home-assistant/home-assistant/pull/7082 +[#7085]: https://github.com/home-assistant/home-assistant/pull/7085 +[#7087]: https://github.com/home-assistant/home-assistant/pull/7087 +[#7091]: https://github.com/home-assistant/home-assistant/pull/7091 +[#7092]: https://github.com/home-assistant/home-assistant/pull/7092 +[#7096]: https://github.com/home-assistant/home-assistant/pull/7096 +[#7100]: https://github.com/home-assistant/home-assistant/pull/7100 +[#7101]: https://github.com/home-assistant/home-assistant/pull/7101 +[#7105]: https://github.com/home-assistant/home-assistant/pull/7105 +[#7106]: https://github.com/home-assistant/home-assistant/pull/7106 +[#7110]: https://github.com/home-assistant/home-assistant/pull/7110 +[#7111]: https://github.com/home-assistant/home-assistant/pull/7111 +[#7112]: https://github.com/home-assistant/home-assistant/pull/7112 +[#7115]: https://github.com/home-assistant/home-assistant/pull/7115 +[#7117]: https://github.com/home-assistant/home-assistant/pull/7117 +[#7119]: https://github.com/home-assistant/home-assistant/pull/7119 +[#7124]: https://github.com/home-assistant/home-assistant/pull/7124 +[#7126]: https://github.com/home-assistant/home-assistant/pull/7126 +[#7127]: https://github.com/home-assistant/home-assistant/pull/7127 +[#7128]: https://github.com/home-assistant/home-assistant/pull/7128 +[#7130]: https://github.com/home-assistant/home-assistant/pull/7130 +[#7132]: https://github.com/home-assistant/home-assistant/pull/7132 +[#7134]: https://github.com/home-assistant/home-assistant/pull/7134 +[#7135]: https://github.com/home-assistant/home-assistant/pull/7135 +[#7137]: https://github.com/home-assistant/home-assistant/pull/7137 +[#7138]: https://github.com/home-assistant/home-assistant/pull/7138 +[#7139]: https://github.com/home-assistant/home-assistant/pull/7139 +[#7140]: https://github.com/home-assistant/home-assistant/pull/7140 +[#7141]: https://github.com/home-assistant/home-assistant/pull/7141 +[#7144]: https://github.com/home-assistant/home-assistant/pull/7144 +[#7145]: https://github.com/home-assistant/home-assistant/pull/7145 +[#7148]: https://github.com/home-assistant/home-assistant/pull/7148 +[#7149]: https://github.com/home-assistant/home-assistant/pull/7149 +[#7153]: https://github.com/home-assistant/home-assistant/pull/7153 +[#7155]: https://github.com/home-assistant/home-assistant/pull/7155 +[#7156]: https://github.com/home-assistant/home-assistant/pull/7156 +[#7160]: https://github.com/home-assistant/home-assistant/pull/7160 +[#7161]: https://github.com/home-assistant/home-assistant/pull/7161 +[#7163]: https://github.com/home-assistant/home-assistant/pull/7163 +[#7164]: https://github.com/home-assistant/home-assistant/pull/7164 +[#7165]: https://github.com/home-assistant/home-assistant/pull/7165 +[#7166]: https://github.com/home-assistant/home-assistant/pull/7166 +[#7171]: https://github.com/home-assistant/home-assistant/pull/7171 +[#7172]: https://github.com/home-assistant/home-assistant/pull/7172 +[#7173]: https://github.com/home-assistant/home-assistant/pull/7173 +[#7175]: https://github.com/home-assistant/home-assistant/pull/7175 +[#7176]: https://github.com/home-assistant/home-assistant/pull/7176 +[#7177]: https://github.com/home-assistant/home-assistant/pull/7177 +[#7181]: https://github.com/home-assistant/home-assistant/pull/7181 +[#7183]: https://github.com/home-assistant/home-assistant/pull/7183 +[#7184]: https://github.com/home-assistant/home-assistant/pull/7184 +[#7188]: https://github.com/home-assistant/home-assistant/pull/7188 +[#7189]: https://github.com/home-assistant/home-assistant/pull/7189 +[#7190]: https://github.com/home-assistant/home-assistant/pull/7190 +[#7195]: https://github.com/home-assistant/home-assistant/pull/7195 +[#7199]: https://github.com/home-assistant/home-assistant/pull/7199 +[#7201]: https://github.com/home-assistant/home-assistant/pull/7201 +[#7202]: https://github.com/home-assistant/home-assistant/pull/7202 +[#7208]: https://github.com/home-assistant/home-assistant/pull/7208 +[@BillyNate]: https://github.com/BillyNate +[@CharlesBlonde]: https://github.com/CharlesBlonde +[@DavidMStraub]: https://github.com/DavidMStraub +[@JesseWebDotCom]: https://github.com/JesseWebDotCom +[@LvivEchoes]: https://github.com/LvivEchoes +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@Mister-Espria]: https://github.com/Mister-Espria +[@MrMep]: https://github.com/MrMep +[@Xorso]: https://github.com/Xorso +[@aequitas]: https://github.com/aequitas +[@alexmogavero]: https://github.com/alexmogavero +[@amelchio]: https://github.com/amelchio +[@andrey-git]: https://github.com/andrey-git +[@armills]: https://github.com/armills +[@aufano]: https://github.com/aufano +[@balloob]: https://github.com/balloob +[@biacz]: https://github.com/biacz +[@cmsimike]: https://github.com/cmsimike +[@colinodell]: https://github.com/colinodell +[@fabaff]: https://github.com/fabaff +[@ggravlingen]: https://github.com/ggravlingen +[@gurumitts]: https://github.com/gurumitts +[@happyleavesaoc]: https://github.com/happyleavesaoc +[@hawk259]: https://github.com/hawk259 +[@hmn]: https://github.com/hmn +[@johanpalmqvist]: https://github.com/johanpalmqvist +[@masarliev]: https://github.com/masarliev +[@mezz64]: https://github.com/mezz64 +[@michaelarnauts]: https://github.com/michaelarnauts +[@micw]: https://github.com/micw +[@molobrakos]: https://github.com/molobrakos +[@mountainsandcode]: https://github.com/mountainsandcode +[@pavoni]: https://github.com/pavoni +[@pezinek]: https://github.com/pezinek +[@postlund]: https://github.com/postlund +[@pvizeli]: https://github.com/pvizeli +[@robbiet480]: https://github.com/robbiet480 +[@rytilahti]: https://github.com/rytilahti +[@sander76]: https://github.com/sander76 +[@sdague]: https://github.com/sdague +[@soldag]: https://github.com/soldag +[@sytone]: https://github.com/sytone +[@tchellomello]: https://github.com/tchellomello +[@thecynic]: https://github.com/thecynic +[@titilambert]: https://github.com/titilambert +[@turbokongen]: https://github.com/turbokongen +[@viswa-swami]: https://github.com/viswa-swami +[alarm_control_panel.alarmdotcom docs]: /components/alarm_control_panel.alarmdotcom +[arduino docs]: /components/arduino +[automation docs]: /components/automation +[binary_sensor.ping docs]: /components/binary_sensor.ping +[binary_sensor.wemo docs]: /components/binary_sensor.wemo +[camera.foscam docs]: /components/camera.foscam +[camera.mqtt docs]: /components/camera.mqtt +[camera.neato docs]: /components/camera.neato +[camera.synology docs]: /components/camera.synology +[climate docs]: /components/climate +[device_tracker.automatic docs]: /components/device_tracker.automatic +[device_tracker.mysensors docs]: /components/device_tracker.mysensors +[device_tracker.ping docs]: /components/device_tracker.ping +[hassio docs]: /components/hassio +[input_slider docs]: /components/input_slider +[light.flux_led docs]: /components/light.flux_led +[light.lifx docs]: /components/light.lifx +[light.lutron_caseta docs]: /components/light.lutron_caseta +[light.services.yaml docs]: /components/light.services.yaml +[light.tradfri docs]: /components/light.tradfri +[light.wemo docs]: /components/light.wemo +[light.yeelight docs]: /components/light.yeelight +[lutron docs]: /components/lutron +[lutron_caseta docs]: /components/lutron_caseta +[media_player docs]: /components/media_player +[media_player.apple_tv docs]: /components/media_player.apple_tv +[media_player.braviatv docs]: /components/media_player.braviatv +[media_player.gstreamer docs]: /components/media_player.gstreamer +[media_player.kodi docs]: /components/media_player.kodi +[media_player.spotify docs]: /components/media_player.spotify +[media_player.webostv docs]: /components/media_player.webostv +[modbus docs]: /components/modbus +[mqtt docs]: /components/mqtt +[mysensors docs]: /components/mysensors +[neato docs]: /components/neato +[notify.kodi docs]: /components/notify.kodi +[notify.sendgrid docs]: /components/notify.sendgrid +[notify.webostv docs]: /components/notify.webostv +[scene.lifx_cloud docs]: /components/scene.lifx_cloud +[sensor.cpuspeed docs]: /components/sensor.cpuspeed +[sensor.crimereports docs]: /components/sensor.crimereports +[sensor.fedex docs]: /components/sensor.fedex +[sensor.fido docs]: /components/sensor.fido +[sensor.modbus docs]: /components/sensor.modbus +[sensor.mvglive docs]: /components/sensor.mvglive +[sensor.neato docs]: /components/sensor.neato +[sensor.opensky docs]: /components/sensor.opensky +[sensor.qnap docs]: /components/sensor.qnap +[sensor.speedtest docs]: /components/sensor.speedtest +[sensor.systemmonitor docs]: /components/sensor.systemmonitor +[sensor.uber docs]: /components/sensor.uber +[sensor.ups docs]: /components/sensor.ups +[sensor.usps docs]: /components/sensor.usps +[sensor.vera docs]: /components/sensor.vera +[sun docs]: /components/sun +[switch.tplink docs]: /components/switch.tplink +[switch.wake_on_lan docs]: /components/switch.wake_on_lan +[switch.wemo docs]: /components/switch.wemo +[telegram_bot docs]: /components/telegram_bot +[telegram_bot.polling docs]: /components/telegram_bot.polling +[telegram_bot.webhooks docs]: /components/telegram_bot.webhooks +[tts.google docs]: /components/tts.google +[tts.marytts docs]: /components/tts.marytts +[vera docs]: /components/vera +[wemo docs]: /components/wemo +[zwave docs]: /components/zwave +[zwave.node_entity docs]: /components/zwave.node_entity From d701ce26806ca509e49ae86c28cd39b8888c92a4 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 22 Apr 2017 00:04:30 -0700 Subject: [PATCH 30/31] Add slashes --- .../2017-04-22-ikea-tradfri--spotify.markdown | 134 +++++++++--------- 1 file changed, 67 insertions(+), 67 deletions(-) diff --git a/source/_posts/2017-04-22-ikea-tradfri--spotify.markdown b/source/_posts/2017-04-22-ikea-tradfri--spotify.markdown index f72f386a072..7098d43ecd3 100644 --- a/source/_posts/2017-04-22-ikea-tradfri--spotify.markdown +++ b/source/_posts/2017-04-22-ikea-tradfri--spotify.markdown @@ -385,70 +385,70 @@ sensor: [@titilambert]: https://github.com/titilambert [@turbokongen]: https://github.com/turbokongen [@viswa-swami]: https://github.com/viswa-swami -[alarm_control_panel.alarmdotcom docs]: /components/alarm_control_panel.alarmdotcom -[arduino docs]: /components/arduino -[automation docs]: /components/automation -[binary_sensor.ping docs]: /components/binary_sensor.ping -[binary_sensor.wemo docs]: /components/binary_sensor.wemo -[camera.foscam docs]: /components/camera.foscam -[camera.mqtt docs]: /components/camera.mqtt -[camera.neato docs]: /components/camera.neato -[camera.synology docs]: /components/camera.synology -[climate docs]: /components/climate -[device_tracker.automatic docs]: /components/device_tracker.automatic -[device_tracker.mysensors docs]: /components/device_tracker.mysensors -[device_tracker.ping docs]: /components/device_tracker.ping -[hassio docs]: /components/hassio -[input_slider docs]: /components/input_slider -[light.flux_led docs]: /components/light.flux_led -[light.lifx docs]: /components/light.lifx -[light.lutron_caseta docs]: /components/light.lutron_caseta -[light.services.yaml docs]: /components/light.services.yaml -[light.tradfri docs]: /components/light.tradfri -[light.wemo docs]: /components/light.wemo -[light.yeelight docs]: /components/light.yeelight -[lutron docs]: /components/lutron -[lutron_caseta docs]: /components/lutron_caseta -[media_player docs]: /components/media_player -[media_player.apple_tv docs]: /components/media_player.apple_tv -[media_player.braviatv docs]: /components/media_player.braviatv -[media_player.gstreamer docs]: /components/media_player.gstreamer -[media_player.kodi docs]: /components/media_player.kodi -[media_player.spotify docs]: /components/media_player.spotify -[media_player.webostv docs]: /components/media_player.webostv -[modbus docs]: /components/modbus -[mqtt docs]: /components/mqtt -[mysensors docs]: /components/mysensors -[neato docs]: /components/neato -[notify.kodi docs]: /components/notify.kodi -[notify.sendgrid docs]: /components/notify.sendgrid -[notify.webostv docs]: /components/notify.webostv -[scene.lifx_cloud docs]: /components/scene.lifx_cloud -[sensor.cpuspeed docs]: /components/sensor.cpuspeed -[sensor.crimereports docs]: /components/sensor.crimereports -[sensor.fedex docs]: /components/sensor.fedex -[sensor.fido docs]: /components/sensor.fido -[sensor.modbus docs]: /components/sensor.modbus -[sensor.mvglive docs]: /components/sensor.mvglive -[sensor.neato docs]: /components/sensor.neato -[sensor.opensky docs]: /components/sensor.opensky -[sensor.qnap docs]: /components/sensor.qnap -[sensor.speedtest docs]: /components/sensor.speedtest -[sensor.systemmonitor docs]: /components/sensor.systemmonitor -[sensor.uber docs]: /components/sensor.uber -[sensor.ups docs]: /components/sensor.ups -[sensor.usps docs]: /components/sensor.usps -[sensor.vera docs]: /components/sensor.vera -[sun docs]: /components/sun -[switch.tplink docs]: /components/switch.tplink -[switch.wake_on_lan docs]: /components/switch.wake_on_lan -[switch.wemo docs]: /components/switch.wemo -[telegram_bot docs]: /components/telegram_bot -[telegram_bot.polling docs]: /components/telegram_bot.polling -[telegram_bot.webhooks docs]: /components/telegram_bot.webhooks -[tts.google docs]: /components/tts.google -[tts.marytts docs]: /components/tts.marytts -[vera docs]: /components/vera -[wemo docs]: /components/wemo -[zwave docs]: /components/zwave -[zwave.node_entity docs]: /components/zwave.node_entity +[alarm_control_panel.alarmdotcom docs]: /components/alarm_control_panel.alarmdotcom/ +[arduino docs]: /components/arduino/ +[automation docs]: /components/automation/ +[binary_sensor.ping docs]: /components/binary_sensor.ping/ +[binary_sensor.wemo docs]: /components/binary_sensor.wemo/ +[camera.foscam docs]: /components/camera.foscam/ +[camera.mqtt docs]: /components/camera.mqtt/ +[camera.neato docs]: /components/camera.neato/ +[camera.synology docs]: /components/camera.synology/ +[climate docs]: /components/climate/ +[device_tracker.automatic docs]: /components/device_tracker.automatic/ +[device_tracker.mysensors docs]: /components/device_tracker.mysensors/ +[device_tracker.ping docs]: /components/device_tracker.ping/ +[hassio docs]: /components/hassio/ +[input_slider docs]: /components/input_slider/ +[light.flux_led docs]: /components/light.flux_led/ +[light.lifx docs]: /components/light.lifx/ +[light.lutron_caseta docs]: /components/light.lutron_caseta/ +[light.services.yaml docs]: /components/light.services.yaml/ +[light.tradfri docs]: /components/light.tradfri/ +[light.wemo docs]: /components/light.wemo/ +[light.yeelight docs]: /components/light.yeelight/ +[lutron docs]: /components/lutron/ +[lutron_caseta docs]: /components/lutron_caseta/ +[media_player docs]: /components/media_player/ +[media_player.apple_tv docs]: /components/media_player.apple_tv/ +[media_player.braviatv docs]: /components/media_player.braviatv/ +[media_player.gstreamer docs]: /components/media_player.gstreamer/ +[media_player.kodi docs]: /components/media_player.kodi/ +[media_player.spotify docs]: /components/media_player.spotify/ +[media_player.webostv docs]: /components/media_player.webostv/ +[modbus docs]: /components/modbus/ +[mqtt docs]: /components/mqtt/ +[mysensors docs]: /components/mysensors/ +[neato docs]: /components/neato/ +[notify.kodi docs]: /components/notify.kodi/ +[notify.sendgrid docs]: /components/notify.sendgrid/ +[notify.webostv docs]: /components/notify.webostv/ +[scene.lifx_cloud docs]: /components/scene.lifx_cloud/ +[sensor.cpuspeed docs]: /components/sensor.cpuspeed/ +[sensor.crimereports docs]: /components/sensor.crimereports/ +[sensor.fedex docs]: /components/sensor.fedex/ +[sensor.fido docs]: /components/sensor.fido/ +[sensor.modbus docs]: /components/sensor.modbus/ +[sensor.mvglive docs]: /components/sensor.mvglive/ +[sensor.neato docs]: /components/sensor.neato/ +[sensor.opensky docs]: /components/sensor.opensky/ +[sensor.qnap docs]: /components/sensor.qnap/ +[sensor.speedtest docs]: /components/sensor.speedtest/ +[sensor.systemmonitor docs]: /components/sensor.systemmonitor/ +[sensor.uber docs]: /components/sensor.uber/ +[sensor.ups docs]: /components/sensor.ups/ +[sensor.usps docs]: /components/sensor.usps/ +[sensor.vera docs]: /components/sensor.vera/ +[sun docs]: /components/sun/ +[switch.tplink docs]: /components/switch.tplink/ +[switch.wake_on_lan docs]: /components/switch.wake_on_lan/ +[switch.wemo docs]: /components/switch.wemo/ +[telegram_bot docs]: /components/telegram_bot/ +[telegram_bot.polling docs]: /components/telegram_bot.polling/ +[telegram_bot.webhooks docs]: /components/telegram_bot.webhooks/ +[tts.google docs]: /components/tts.google/ +[tts.marytts docs]: /components/tts.marytts/ +[vera docs]: /components/vera/ +[wemo docs]: /components/wemo/ +[zwave docs]: /components/zwave/ +[zwave.node_entity docs]: /components/zwave.node_entity/ From e430878324fc5d0a779308c31bbea4d53ce53064 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 22 Apr 2017 00:21:05 -0700 Subject: [PATCH 31/31] Final touches --- _config.yml | 8 ++++---- source/_components/alarmdecoder.markdown | 2 +- source/_components/tradfri.markdown | 2 +- .../2017-04-22-ikea-tradfri--spotify.markdown | 14 ++++++++------ source/images/blog/2017-04-0.43/components.png | Bin 0 -> 36436 bytes 5 files changed, 14 insertions(+), 12 deletions(-) create mode 100644 source/images/blog/2017-04-0.43/components.png diff --git a/_config.yml b/_config.yml index 89deae25351..689ec71abfc 100644 --- a/_config.yml +++ b/_config.yml @@ -138,10 +138,10 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 42 -current_patch_version: 4 -date_released: 2017-04-17 +current_minor_version: 43 +current_patch_version: 0 +date_released: 2017-04-22 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. -patch_version_notes: "#release-0424---april-17" +patch_version_notes: "" diff --git a/source/_components/alarmdecoder.markdown b/source/_components/alarmdecoder.markdown index cc6c5fc662c..ae5b6c03f22 100644 --- a/source/_components/alarmdecoder.markdown +++ b/source/_components/alarmdecoder.markdown @@ -8,7 +8,7 @@ comments: false sharing: true footer: true logo: alarmdecoder.png -ha_category: Alarm +ha_category: Hub ha_release: 0.43 ha_iot_class: "Local Push" --- diff --git a/source/_components/tradfri.markdown b/source/_components/tradfri.markdown index 6518a3ff149..e56c1ff2330 100644 --- a/source/_components/tradfri.markdown +++ b/source/_components/tradfri.markdown @@ -9,7 +9,7 @@ comments: false sharing: true footer: true logo: ikea.svg -ha_category: Light +ha_category: Hub ha_iot_class: "Local Polling" ha_release: 0.43 --- diff --git a/source/_posts/2017-04-22-ikea-tradfri--spotify.markdown b/source/_posts/2017-04-22-ikea-tradfri--spotify.markdown index 7098d43ecd3..1fc98fa38ec 100644 --- a/source/_posts/2017-04-22-ikea-tradfri--spotify.markdown +++ b/source/_posts/2017-04-22-ikea-tradfri--spotify.markdown @@ -8,10 +8,12 @@ author: Paulus Schoutsen author_twitter: balloob comments: true categories: Release-Notes -og_image: /images/blog/2017-04-0.42/social.png +og_image: /images/blog/2017-04-0.43/components.png --- -Oooh yeah. It's time for 0.43 and this is going to be a killer release. For the people that have been following on social media, you might have noticed that [we got pretty excited about the new IKEA Tradfri line up][ikea-blog]. And so we are very happy to announce that thanks to the work by [@ggravlingen], [@MartinHjelmare] and myself that this will be the first release to support the IKEA light bulbs. Home Assistant will automatically detect the gateway on your network and after following the instructions, allow you to control your lights. +
+ +Oooh yeah. It's time for 0.43 and this is going to be a killer release. For the people that have been following on social media, you might have noticed that [we got pretty excited about the new IKEA Trådfri line up][ikea-blog]. And so we are very happy to announce that thanks to the work by [@ggravlingen], [@MartinHjelmare] and myself that this will be the first release to support the IKEA light bulbs. Home Assistant will automatically detect the gateway on your network and after following the instructions, allow you to control your lights.

@@ -33,7 +35,7 @@ The new Spotify integration is based on the new Spotify Connect Playback API. It - Add MaryTTS platform ([@johanpalmqvist] - [#6988]) ([tts.marytts docs]) (new-platform) - Telegram bot component (incl. webhook and polling platform) ([@sander76] - [#6913]) ([telegram_bot docs]) ([telegram_bot.polling docs]) ([telegram_bot.webhooks docs]) (breaking change) (new-platform) - Add support fo map data from Neato ([@turbokongen] - [#6939]) ([neato docs]) ([camera.neato docs]) ([sensor.neato docs]) (new-platform) -- Added initial support for IKEA Tradfri Gateway ([@ggravlingen] - [#7074]) ([light.tradfri docs]) (new-platform) +- Added initial support for IKEA Trådfri Gateway ([@ggravlingen] - [#7074]) ([light.tradfri docs]) (new-platform) - MQTT camera ([@MrMep] - [#7092]) ([camera.mqtt docs]) (new-platform) - Add LIFX Cloud scene support ([@amelchio] - [#7124]) ([scene.lifx_cloud docs]) (new-platform) - spotify media player ([@happyleavesaoc] - [#6980]) ([media_player.spotify docs]) (new-platform) @@ -138,7 +140,7 @@ sensor: - MQTT: Managing binary payloads ([@MrMep] - [#6976]) ([mqtt docs]) - Bump qnapstats library version to 0.2.4 ([@colinodell] - [#7085]) ([sensor.qnap docs]) - Add support fo map data from Neato ([@turbokongen] - [#6939]) ([neato docs]) ([camera.neato docs]) ([sensor.neato docs]) (new-platform) -- Added initial support for IKEA Tradfri Gateway ([@ggravlingen] - [#7074]) ([light.tradfri docs]) (new-platform) +- Added initial support for IKEA Trådfri Gateway ([@ggravlingen] - [#7074]) ([light.tradfri docs]) (new-platform) - Better thread safety in zwave node_entity ([@andrey-git] - [#7087]) - Uber version bump ([@armills] - [#7100]) ([sensor.uber docs]) - No product ids configured should fetch all ids ([@armills] - [#7091]) @@ -153,8 +155,8 @@ sensor: - Mqtt camera ([@MrMep] - [#7092]) ([camera.mqtt docs]) (new-platform) - Bump version to 0.43.0.dev0 ([@MartinHjelmare] - [#7132]) - Load zwave panel ([@balloob] - [#7127]) ([zwave docs]) -- IKEA Tradfri Gateway: added support for RGB ([@ggravlingen] - [#7115]) ([light.tradfri docs]) -- Make Tradfri discoverable ([@balloob] - [#7128]) +- IKEA Trådfri Gateway: added support for RGB ([@ggravlingen] - [#7115]) ([light.tradfri docs]) +- Make Trådfri discoverable ([@balloob] - [#7128]) - Make version number optional and a string to fix identify issue introduced in iOS 1.0.1 ([@robbiet480] - [#7141]) - Fix for zwave RGB setting ([@armills] - [#7137]) - Replace rollershutter with cover in demo ([@robbiet480] - [#7140]) diff --git a/source/images/blog/2017-04-0.43/components.png b/source/images/blog/2017-04-0.43/components.png new file mode 100644 index 0000000000000000000000000000000000000000..ceff80e2365452565223cbbaf48e2fe7604f4572 GIT binary patch literal 36436 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