From 903b84cc63a5336efe4abda37e74c3ad4106545e Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Sat, 7 Mar 2020 11:40:08 +0100 Subject: [PATCH 01/18] OS 3.12 --- source/hassio/installation.markdown | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown index 5d6a1a4989f..969359d8665 100644 --- a/source/hassio/installation.markdown +++ b/source/hassio/installation.markdown @@ -215,21 +215,21 @@ A detailed guide about running Home Assistant as a virtual machine is available [balenaEtcher]: https://www.balena.io/etcher [Virtual Appliance]: https://github.com/home-assistant/operating-system/blob/dev/Documentation/boards/ova.md [hassos-network]: https://github.com/home-assistant/operating-system/blob/dev/Documentation/network.md -[pi0-w]: https://github.com/home-assistant/operating-system/releases/download/3.11/hassos_rpi0-w-3.11.img.gz -[pi1]: https://github.com/home-assistant/operating-system/releases/download/3.11/hassos_rpi-3.11.img.gz -[pi2]: https://github.com/home-assistant/operating-system/releases/download/3.11/hassos_rpi2-3.11.img.gz -[pi3-32]: https://github.com/home-assistant/operating-system/releases/download/3.11/hassos_rpi3-3.11.img.gz -[pi3-64]: https://github.com/home-assistant/operating-system/releases/download/3.11/hassos_rpi3-64-3.11.img.gz -[pi4-32]: https://github.com/home-assistant/operating-system/releases/download/3.11/hassos_rpi4-3.11.img.gz -[pi4-64]: https://github.com/home-assistant/operating-system/releases/download/3.11/hassos_rpi4-64-3.11.img.gz -[tinker]: https://github.com/home-assistant/operating-system/releases/download/3.11/hassos_tinker-3.11.img.gz -[odroid-c2]: https://github.com/home-assistant/operating-system/releases/download/3.11/hassos_odroid-c2-3.11.img.gz +[pi0-w]: https://github.com/home-assistant/operating-system/releases/download/3.12/hassos_rpi0-w-3.12.img.gz +[pi1]: https://github.com/home-assistant/operating-system/releases/download/3.12/hassos_rpi-3.12.img.gz +[pi2]: https://github.com/home-assistant/operating-system/releases/download/3.12/hassos_rpi2-3.12.img.gz +[pi3-32]: https://github.com/home-assistant/operating-system/releases/download/3.12/hassos_rpi3-3.12.img.gz +[pi3-64]: https://github.com/home-assistant/operating-system/releases/download/3.12/hassos_rpi3-64-3.12.img.gz +[pi4-32]: https://github.com/home-assistant/operating-system/releases/download/3.12/hassos_rpi4-3.12.img.gz +[pi4-64]: https://github.com/home-assistant/operating-system/releases/download/3.12/hassos_rpi4-64-3.12.img.gz +[tinker]: https://github.com/home-assistant/operating-system/releases/download/3.12/hassos_tinker-3.12.img.gz +[odroid-c2]: https://github.com/home-assistant/operating-system/releases/download/3.12/hassos_odroid-c2-3.12.img.gz [odroid-n2]: https://github.com/home-assistant/operating-system/releases/download/4.3/hassos_odroid-n2-4.3.img.gz -[odroid-xu4]: https://github.com/home-assistant/operating-system/releases/download/3.11/hassos_odroid-xu4-3.11.img.gz -[intel-nuc]: https://github.com/home-assistant/operating-system/releases/download/3.11/hassos_intel-nuc-3.11.img.gz -[vmdk]: https://github.com/home-assistant/operating-system/releases/download/3.11/hassos_ova-3.11.vmdk.gz -[vhdx]: https://github.com/home-assistant/operating-system/releases/download/3.11/hassos_ova-3.11.vhdx.gz -[vdi]: https://github.com/home-assistant/operating-system/releases/download/3.11/hassos_ova-3.11.vdi.gz +[odroid-xu4]: https://github.com/home-assistant/operating-system/releases/download/3.12/hassos_odroid-xu4-3.12.img.gz +[intel-nuc]: https://github.com/home-assistant/operating-system/releases/download/3.12/hassos_intel-nuc-3.12.img.gz +[vmdk]: https://github.com/home-assistant/operating-system/releases/download/3.12/hassos_ova-3.12.vmdk.gz +[vhdx]: https://github.com/home-assistant/operating-system/releases/download/3.12/hassos_ova-3.12.vhdx.gz +[vdi]: https://github.com/home-assistant/operating-system/releases/download/3.12/hassos_ova-3.12.vdi.gz [linux]: https://github.com/home-assistant/hassio-installer [local]: http://homeassistant.local:8123 [samba]: /addons/samba/ From 57d39ecb380d957873906dfa732bc3377cae0c66 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Sat, 7 Mar 2020 17:35:02 +0100 Subject: [PATCH 02/18] Update OS 4.4 --- source/hassio/installation.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown index 969359d8665..33109490214 100644 --- a/source/hassio/installation.markdown +++ b/source/hassio/installation.markdown @@ -224,7 +224,7 @@ A detailed guide about running Home Assistant as a virtual machine is available [pi4-64]: https://github.com/home-assistant/operating-system/releases/download/3.12/hassos_rpi4-64-3.12.img.gz [tinker]: https://github.com/home-assistant/operating-system/releases/download/3.12/hassos_tinker-3.12.img.gz [odroid-c2]: https://github.com/home-assistant/operating-system/releases/download/3.12/hassos_odroid-c2-3.12.img.gz -[odroid-n2]: https://github.com/home-assistant/operating-system/releases/download/4.3/hassos_odroid-n2-4.3.img.gz +[odroid-n2]: https://github.com/home-assistant/operating-system/releases/download/4.4/hassos_odroid-n2-4.4.img.gz [odroid-xu4]: https://github.com/home-assistant/operating-system/releases/download/3.12/hassos_odroid-xu4-3.12.img.gz [intel-nuc]: https://github.com/home-assistant/operating-system/releases/download/3.12/hassos_intel-nuc-3.12.img.gz [vmdk]: https://github.com/home-assistant/operating-system/releases/download/3.12/hassos_ova-3.12.vmdk.gz From a98e218f3ae8277a280f114f3e3a406a3a7a56c6 Mon Sep 17 00:00:00 2001 From: Quentame Date: Sun, 8 Mar 2020 03:11:34 +0100 Subject: [PATCH 03/18] Migrate Google integrations to brands (#12306) * Migrate Google integrations to brands * Add Google Play Music * Add Android TV --- source/_includes/custom/grid_item_left.html | 2 +- source/_integrations/androidtv.markdown | 1 - source/_integrations/cast.markdown | 1 - source/_integrations/google_domains.markdown | 1 - source/_integrations/google_translate.markdown | 1 - source/_posts/2016-05-21-release-020.markdown | 2 +- ...1-05-hacktoberfest-influxdb-weather.markdown | 2 +- source/images/supported_brands/androidtv.png | Bin 20705 -> 0 bytes source/images/supported_brands/google.png | Bin 1964 -> 0 bytes .../images/supported_brands/google_calendar.png | Bin 4275 -> 0 bytes source/images/supported_brands/google_cast.png | Bin 1530 -> 0 bytes .../images/supported_brands/google_domains.png | Bin 2224 -> 0 bytes source/images/supported_brands/gpmdp.png | Bin 3394 -> 0 bytes 13 files changed, 3 insertions(+), 7 deletions(-) delete mode 100644 source/images/supported_brands/androidtv.png delete mode 100644 source/images/supported_brands/google.png delete mode 100644 source/images/supported_brands/google_calendar.png delete mode 100644 source/images/supported_brands/google_cast.png delete mode 100644 source/images/supported_brands/google_domains.png delete mode 100644 source/images/supported_brands/gpmdp.png diff --git a/source/_includes/custom/grid_item_left.html b/source/_includes/custom/grid_item_left.html index 6f835123740..3f8f2644cdf 100644 --- a/source/_includes/custom/grid_item_left.html +++ b/source/_includes/custom/grid_item_left.html @@ -12,7 +12,7 @@ Philips Hue - Google Cast + Google Cast MQTT diff --git a/source/_integrations/androidtv.markdown b/source/_integrations/androidtv.markdown index 0adca9f4eed..7dd2e517110 100644 --- a/source/_integrations/androidtv.markdown +++ b/source/_integrations/androidtv.markdown @@ -1,7 +1,6 @@ --- title: Android TV description: Instructions on how to integrate Android TV and Fire TV devices into Home Assistant. -logo: androidtv.png ha_category: - Media Player ha_release: 0.7.6 diff --git a/source/_integrations/cast.markdown b/source/_integrations/cast.markdown index d21398e18f0..8a326f576ac 100644 --- a/source/_integrations/cast.markdown +++ b/source/_integrations/cast.markdown @@ -1,7 +1,6 @@ --- title: Google Cast description: Instructions on how to integrate Google Cast into Home Assistant. -logo: google_cast.png ha_category: - Media Player featured: true diff --git a/source/_integrations/google_domains.markdown b/source/_integrations/google_domains.markdown index f1fd752907d..34d2e7bc35b 100644 --- a/source/_integrations/google_domains.markdown +++ b/source/_integrations/google_domains.markdown @@ -1,7 +1,6 @@ --- title: Google Domains description: Keep your computer registered with the Google Domains dynamic DNS. -logo: google_domains.png ha_category: - Network ha_release: 0.57 diff --git a/source/_integrations/google_translate.markdown b/source/_integrations/google_translate.markdown index 58505907da7..eade1d2951a 100644 --- a/source/_integrations/google_translate.markdown +++ b/source/_integrations/google_translate.markdown @@ -1,7 +1,6 @@ --- title: Google Translate Text-to-Speech description: Instructions on how to setup Google Translate Text-to-Speech with Home Assistant. -logo: google.png ha_category: - Text-to-speech ha_release: 0.35 diff --git a/source/_posts/2016-05-21-release-020.markdown b/source/_posts/2016-05-21-release-020.markdown index ab894fddc31..355de586afa 100644 --- a/source/_posts/2016-05-21-release-020.markdown +++ b/source/_posts/2016-05-21-release-020.markdown @@ -8,7 +8,7 @@ author_twitter: balloob categories: Release-Notes --- - + Tons of new supported things in 0.20. diff --git a/source/_posts/2016-11-05-hacktoberfest-influxdb-weather.markdown b/source/_posts/2016-11-05-hacktoberfest-influxdb-weather.markdown index e613bda7bc2..3f144e3cda6 100644 --- a/source/_posts/2016-11-05-hacktoberfest-influxdb-weather.markdown +++ b/source/_posts/2016-11-05-hacktoberfest-influxdb-weather.markdown @@ -28,7 +28,7 @@ For a long time we have had a bunch of [weather sensors][weather-sensors] but it ### All changes - + - Cover: New [garadget] platform ([@JasonCarter80]) - Media player: New support for [Emby][emby-media] ([@mezz64]) diff --git a/source/images/supported_brands/androidtv.png b/source/images/supported_brands/androidtv.png deleted file mode 100644 index b98653066daedf1f4241191f6b9afd7b4a90dd47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20705 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

MY`8gYE<3Ejlzh*W^g z6>dkmnK?Laj##VvKG0qf;Fc9RVxnvDBYn-Z+9w9aS5BsuqctDoWiV002ovPDHLkV1nXt61o5Y diff --git a/source/images/supported_brands/google_cast.png b/source/images/supported_brands/google_cast.png deleted file mode 100644 index be53c784994b5977cf647d05d1e5bdb535446fd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1530 zcmVPx#El^BUMMrQe}{l7L~(WCayF^m5?11000G1 zNklC<-|w6YAvlBwlbJ zhl;o`5?u&TN>P4^7bJb|;Y%Dm4-jly`s)_Jp7=n7zfWen3x{49hyp>nKsuof#0T<} zrF(zi1^ey+w6hm`FNq6ehXQ(*1E6dz-U)RykAfdoj9;tc0ufqZ|NG+&$k4_$HrVrT z(`>15dlPJr1xbM5Ir__@z7{1Cp#Yy5piTcTkOlafeM&#e>w?U{%JYUA!hB4g`#mx# zM?jM2#?94Yf6#EUhO7(Xf%52SvC82tJjY%?p3Kg=%K*hoj?B|(t(_bs4d>g#Rt`jM zZYIYzO4Fwi6fJU>RLv<2RC^uoCk&S1GlI>ao+J06MHPkRRB58Mitbbx0pl$?U^e z26+V;p&#YMV4kg%jXl(|vjg=xP3-ub;&lMEl!uc%644LZ)FkL!x(im`2whOpqry$x zs~7dav+8J&ZM;UVN-ik#3A1!zJ?QOndJBZAsg``gBjAxFP!}aXe97#3f);t%)zDD# zQw%Z#ifhta^noi!A?L`DnJyC~fq94?l_Mo+Ms@%U*i~r4qxADg>fsq4={K;(sQ5Iop7j3p^pD`z5S;#&7i^j@!} z2wVDTD*G~qkr3g>&s8m8fFKt&ULl0TSSw@LC9J_NDrw>~!#C-*Q#Rz!Kyc@Il%N4( z!#co3i(=bLEIJtp>jZmF1)DT=f@YJ>8qpj!`jK#`g4}23J$gWTms##ML2xhR4%an& zs{l56s(5ci@x)a8KCdugC_WM3S6Li{Vl&Ah=Ju&-inR)V!shiRo=VM`g~qz$e@5<^!nHX| zkC)BKhw?U9HO=zg8s2gJ;$`D9@ae^2S=dgE|8tp>T)gVr;4S4UVdB|Mwr&Ws&T3Xm z3$_p>$wix%)W7B(@s&l=1qYuTAKcV6aPtFsSmJ<~Yv3!+7gG#0Z7B$uppt(}-dYg+ gXDX}L8}IJ_0A5>Tr@$3}82|tP07*qoM6N<$f}BUoM*si- diff --git a/source/images/supported_brands/google_domains.png b/source/images/supported_brands/google_domains.png deleted file mode 100644 index d1843a45f04918fa1e22bd490787e3cfdc869b5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2224 zcmXw)c{tQv8^ShEXvQ{UUwe~XcGcKsh>Wa{LA=&9kCdGj*~U6Z zLq$l&WXsy{*dohg8_WCa>Uz(0o%{aYpZorv>zuz1*}}|F2rLB#fj~kytezE+KLJ~s zj}wT)1cn-rxV+G&Xb`9>Rbbzh8>o*3Ss7wL6@AbJpy;wNvC%j5H(At0=*Daj2!!C^ z;9P<;I&L#4CgPD_2p|9gtUoO_jT_MZVL|BF4Pwx5_=f{<5rY6CqRa{qH{v$`aKMg^ z-30h=5%=$J5xcqKstk+)noZ+cz^DUcUKeqt%o?yPqSco$2;c;u^?&2PfEOrZ@b~wd zITv()clTR4|I7f_X18!5O0BMxS^;*rh@JuPC`_=GnKkH8Abl6S&BJl{?=?HfevFjl zxq57W@izVNhw7X+wQF_Ufw&}MJUXY1SDv1_70}ZWzo?gc!7HdB(UL}~(%4)pAg6GF zK)ly*dT5(lbY>1Yy#Nb|Ppe^_G)t4P6hDRfR;aJJw_-POl)v?bWAG={OD=bO_*rs} zPyfq;*6to1G47~j@)`+Y>6P(yfEjC_9C5J6bbTLr*X?0$xvyl&%Z%c1u}`a$tr0C@ zJSNsIl#&DJ`Rv_kkt7D$NYH&pGZ7z}vc<-?Ir8$KyH6Cou0x+0$={7xm?0UAIm^uK zRPqk6-W{SL**<@)a1Ve&7x%eA{r!Jr8ulKV+J!W4UB5zo#56;cP|yjsNb7bub-01 z{IZ5{gGhL$qgl&IxNWmwTAWW+lBI)OF09=|6)xT3%^H%u zdRFwMOTy~_Yh+I7WfUw@YE!fF(B*GN{Vsi9pnlh{k2mORyl<)vVfiY|NOR#HK}b*S z)n&Sa>R`TG6RK8a2WJ%SsVeVU^XzV~gjpb;rb*+31X+$R-Wi9`>3&F2WE9k<cs3|VMF{MCIkwV`{p>Zmz9(U_Fg%)VXwbS~u! zEcKvo47^((x)4H4@`I6P1q>AbBDkH7gZhBd?#0!@(v=g{qjocmOyH=;mywL5DZv^0 zhxt~=xmB6EqCCCrf#GF%q4(eEnWw>@#l19!2W9a*!-H(;-Ka74{^$LXXTe^^HzjST z++EWNrg?a$y~-z@3No%Z>eVIt&lN_g934{*`A%yB=z$>~a}P~H`76ps8(bKq!HCGT z9#pnMDEBs1m@lm)J0k@%F%$3~Em*Y^<$^Qq5q}zC+i7xA%v$hp=iHRgC-8Iwy6J2^ zBx@OrwOG7LoZOI_7I=vOVY|$q;=*o6x|Zt3d@s!?4$C^P@ZUK>RG`Y0Fi5b}&$18)A#{fXJN!BF?1P}Z*Cda}cFX^M8fGZ^BHfvfgKm<-OJ zt!=Z<700v-1e=f6yRSW=BR9fB25tSQV%rK3Zg7>o#a8vna_oebvXks~ z-dR?J7xjf!n;dnV?O88lP&pih8wGA$&TF#a85C$D&_7jq=Y;Dz>H`$)iF9HG%S3H5_f}x_3wBZABzJOSru45VK;b2$&$>5ISdC zvMiP(2u5c~JAntg=0l;q^NGAtR#408@zygA*hesX=edyM$KTTOZp;|$%X>b^brkP_ z>X#nXjcX4S*$PzGnKDd@_y`(BkCn(54Wo*$k5noNZjlWy)Sff1G7)bxN4Z&u87;j~ zC?jlNf8{JvKI=V6C@-^|BU0SYq>rxTEnL5|F5TOBApsIk()1~$!X&6?=apD;KeRHZ zhBIHZt7s*o;?Qi)pd7I-$3j)1)Jf zxAt$?P11zzD-`(cZ^-qJvLM%8YpsO<<{UOVP(&q3ZEch|WEAFbD`HVfqWq#SB>WZv zM(41U@ZWV*@Qls%4O5~0&4lHzSZj_~Ftkm@EQOwY_E}E+=aQq{y}Gep9PVl0(f+Sr z4<{$?2$w*=bFO}ae)MVDX*0om4QjCK*2kOkQ{2gxLm|m7Kl>SR9|YXepUPOPoo0>| z@-PB2=Pp7Gz2gx}xsnR(;cmZWdd^lhIl#m^r@^L?q|SMUCQE|5e%Ee2=a8%s5iav# zcy{BIW&{zwiC~qIo=0JN3@&ML5e!=v)Q^r_r3h_>4J#ytieF1oa*3qA!tJyX)n&+D tqX+U;WUij0ILYG<)zds>?I`+(xjx?_uYp;dCh#GHaQbF?6&RQ3{{bT~Emr^l diff --git a/source/images/supported_brands/gpmdp.png b/source/images/supported_brands/gpmdp.png deleted file mode 100644 index abbfada9ae2a05f763375e86031122e4b2e0aa7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3394 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 YKe8-Ex&qsS&j0`b07*qoM6N<$f Date: Sat, 7 Mar 2020 19:25:50 -0800 Subject: [PATCH 04/18] Update pair-finish to include required ch_type (#12307) pair-finish requires ch_type now. --- source/_integrations/vizio.markdown | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/_integrations/vizio.markdown b/source/_integrations/vizio.markdown index edab87b8d0a..4eb73c3d611 100644 --- a/source/_integrations/vizio.markdown +++ b/source/_integrations/vizio.markdown @@ -53,15 +53,15 @@ $ pyvizio --ip={ip:port} --device_type={device_type} pair Initiation will show you two different values: -| Value | Description | -| :-------------- | :------------------------------------------------------------------------------------------------------ | -| Challenge type | Usually it should be `"1"`. If not, use the additional parameter `--ch_type=your_type` in the next step | -| Challenge token | Token required to finalize pairing in the next step | +| Value | Description | +| :-------------- | :-------------------------------------------------- | +| Challenge type | Usually it should be `"1"` | +| Challenge token | Token required to finalize pairing in the next step | At this point, a PIN code should be displayed at the top of your TV. With all these values, you can now finish pairing: ```bash -$ pyvizio --ip={ip:port} --device_type={device_type} pair-finish --token={challenge_token} --pin={pin} +$ pyvizio --ip={ip:port} --device_type={device_type} pair-finish --token={challenge_token} --pin={pin} --ch_type={challenge_type} ``` You will need the authentication token returned by this command to configure Home Assistant. From ad04cc097b63c90a53298dcd7194865a5c20f2f0 Mon Sep 17 00:00:00 2001 From: Iulian Onofrei <6d0847b9@opayq.com> Date: Mon, 9 Mar 2020 10:52:25 +0200 Subject: [PATCH 05/18] Fix link for manual installer (#12309) * Fix link for manual installer * Fix link for manual installer --- source/_docs/installation.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_docs/installation.markdown b/source/_docs/installation.markdown index ab7a9651a09..94f822f7b73 100644 --- a/source/_docs/installation.markdown +++ b/source/_docs/installation.markdown @@ -47,7 +47,7 @@ These install options are fully supported by Home Assistant's documentation. For

-The only installation methods that allow you to use Home Assistant Add-ons is using the Home Assistant image and [manual Supervised installer](/hassio/installation/#alternative-install-on-a-generic-linux-host). All other methods only install the base Home Assistant packages, however the software from the add-ons may still usually be installed manually like any other program. +The only installation methods that allow you to use Home Assistant Add-ons is using the Home Assistant image and [manual Supervised installer](/hassio/installation/#alternative-install-home-assistant-supervised-on-a-generic-linux-host). All other methods only install the base Home Assistant packages, however the software from the add-ons may still usually be installed manually like any other program.
@@ -112,7 +112,7 @@ These guides are provided as-is. Some of these install methods are more limited
FreeNAS
- +
From 886721f317a1621811d1b8616645ef358f16eb54 Mon Sep 17 00:00:00 2001 From: jey burrows Date: Mon, 9 Mar 2020 09:27:01 +0000 Subject: [PATCH 06/18] Correct args for asterisk_mbox service (#12310) Service fails on -cfg, requires --cfg --- source/_docs/asterisk_mbox.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_docs/asterisk_mbox.markdown b/source/_docs/asterisk_mbox.markdown index 8c6ba581112..a36c5439dcb 100644 --- a/source/_docs/asterisk_mbox.markdown +++ b/source/_docs/asterisk_mbox.markdown @@ -92,7 +92,7 @@ Before beginning make sure that you have the following: Type=simple User=asterisk Group=asterisk - ExecStart=/usr/local/bin/asterisk_mbox_server -cfg /etc/asterisk/asterisk_mbox.ini + ExecStart=/usr/local/bin/asterisk_mbox_server --cfg /etc/asterisk/asterisk_mbox.ini Restart=on-failure [Install] From 9f9e707e839470a80b105bcff1e9c5eb4e20d4f0 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Mon, 9 Mar 2020 10:36:05 +0100 Subject: [PATCH 07/18] Document MQTT schemas (#12222) * Document MQTT schemas * Update source/_integrations/light.mqtt.markdown Co-Authored-By: Franck Nijhof * Update light.mqtt.markdown Co-authored-by: Franck Nijhof --- source/_integrations/light.mqtt.markdown | 17 ++++++++++++++++- source/_integrations/vacuum.mqtt.markdown | 6 +++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/source/_integrations/light.mqtt.markdown b/source/_integrations/light.mqtt.markdown index e34d38da473..2712d5d1a78 100644 --- a/source/_integrations/light.mqtt.markdown +++ b/source/_integrations/light.mqtt.markdown @@ -8,7 +8,7 @@ ha_release: 0.8 ha_domain: mqtt --- -The `mqtt` light platform lets you control your MQTT enabled lights through one of the supported message schemas. +The `mqtt` light platform lets you control your MQTT enabled lights through one of the supported message schemas, `default`, `json` or `template`. ## Comparison of light MQTT schemas @@ -214,6 +214,11 @@ rgb_value_template: description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the RGB value." required: false type: string +schema: + description: The schema to use. Must be `default` or omitted to select the default schema". + required: false + type: string + default: default state_topic: description: The MQTT topic subscribed to receive state updates. required: false @@ -501,6 +506,11 @@ rgb: required: false type: boolean default: false +schema: + description: The schema to use. Must be `json` to select the JSON schema". + required: false + type: string + default: default state_topic: description: The MQTT topic subscribed to receive state updates. required: false @@ -784,6 +794,11 @@ red_template: description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract red color from the state payload value." required: false type: string +schema: + description: The schema to use. Must be `template` to select the template schema". + required: false + type: string + default: default state_template: description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract state from the state payload value." required: false diff --git a/source/_integrations/vacuum.mqtt.markdown b/source/_integrations/vacuum.mqtt.markdown index 7e64f0f0795..a3417ae0069 100644 --- a/source/_integrations/vacuum.mqtt.markdown +++ b/source/_integrations/vacuum.mqtt.markdown @@ -8,7 +8,7 @@ ha_domain: mqtt --- The `mqtt` vacuum integration allows you to control your MQTT-enabled vacuum. -There are two possible message schemas - `legacy` and `state`. +There are two possible message schemas - `legacy` and `state`, chosen by setting the `schema` configuration parameter. New installations should use the `state` schema as `legacy` is deprecated and might be removed someday in the future. The `state` schema is preferred because the vacuum will then be represented as a `StateVacuumDevice` which is the preferred parent vacuum entity. @@ -158,7 +158,7 @@ retain: type: boolean default: false schema: - description: The schema to use. + description: The schema to use. Must be `legacy` or omitted to select the legacy schema". required: false type: string default: legacy @@ -336,7 +336,7 @@ retain: type: boolean default: false schema: - description: The schema to use. + description: The schema to use. Must be `state` to select the state schema". required: false type: string default: legacy From 0235715161370d9975c9fb51c5d7cd25817b7195 Mon Sep 17 00:00:00 2001 From: Fuzzy <16689090+FuzzyMistborn@users.noreply.github.com> Date: Mon, 9 Mar 2020 07:45:23 -0400 Subject: [PATCH 08/18] Update CalDAV documentation (#12313) * Update CalDAV documentation Adding clarification that calendar and custom_calendar are exclusive, and also the ability to include all events in a custom_calendar * :pencil2: Tweak * Update caldav.markdown Updated based on suggestions Co-authored-by: Klaas Schoute --- source/_integrations/caldav.markdown | 56 +++++++++------------------- 1 file changed, 17 insertions(+), 39 deletions(-) diff --git a/source/_integrations/caldav.markdown b/source/_integrations/caldav.markdown index ebd456a87a9..5e3cd5cb46c 100644 --- a/source/_integrations/caldav.markdown +++ b/source/_integrations/caldav.markdown @@ -8,22 +8,13 @@ ha_release: '0.60' ha_domain: caldav --- -The `caldav` platform allows you to connect to your WebDAV calendar and generate -binary sensors. A different sensor will be created for each individual calendar, -or you can specify custom calendars which match a criteria you define (more on -that below). These sensors will be `on` if you have an on going event in that -calendar or `off` if the event is later in time, or if there is no event at all. -The WebDAV calendar get updated roughly every 15 minutes. +The `caldav` platform allows you to connect to your WebDAV calendar and generate binary sensors. A different sensor will be created for each individual calendar, or you can specify custom calendars which match a criteria you define (more on that below). These sensors will be `on` if you have an on going event in that calendar or `off` if the event is later in time, or if there is no event at all. The WebDAV calendar get updated roughly every 15 minutes. ### Prerequisites -You need to have a CalDAV server and credentials for it. This integration was -tested against [Baikal](http://sabre.io/baikal/) but any integration complying -with the RFC4791 should work. [Nextcloud](https://nextcloud.com/) -and [Owncloud](https://owncloud.org/) work fine. +You need to have a CalDAV server and credentials for it. This integration was tested against [Baikal](http://sabre.io/baikal/) but any integration complying with the RFC4791 should work. [Nextcloud](https://nextcloud.com/) and [Owncloud](https://owncloud.org/) work fine. -You might need some additional system packages to compile the -Python CalDAV library. On a Debian based system, install them by: +You might need some additional system packages to compile the Python CalDAV library. On a Debian based system, install them by: ```bash $ sudo apt-get install libxml2-dev libxslt1-dev zlib1g-dev @@ -31,8 +22,7 @@ $ sudo apt-get install libxml2-dev libxslt1-dev zlib1g-dev ### Basic Setup -To integrate a WebDAV calendar in Home Assistant, -add the following section to your `configuration.yaml` file: +To integrate a WebDAV calendar in Home Assistant, add the following section to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry for baikal @@ -52,16 +42,11 @@ calendar: url: https://nextcloud.example.com/remote.php/dav ``` -This example will generate default binary sensors for each calendar you have in -your account. Those calendars will be `on` when there is an ongoing event and -`off` if not. Events that last a whole day are ignored in those calendars. -You have to setup custom calendars in order to take them into account or for -advanced event filtering. +This example will generate default binary sensors for each calendar you have in your account. Those calendars will be `on` when there is an ongoing event and `off` if not. Events that last a whole day are ignored in those calendars. You have to setup custom calendars in order to take them into account or for advanced event filtering. ### Custom calendars -You have the possibility to create multiple binary -sensors for events that match certain conditions. +You have the possibility to create multiple binary sensors for events that match certain conditions. ```yaml # Example configuration.yaml entry @@ -79,13 +64,9 @@ calendar: search: 'Warmup' ``` -This will create two binary sensors for the calendar name Agenda: "HomeOffice" -and "WarmupFlat". Those sensors will be `on` if there is an ongoing event -matching the regular expression specified in `search`. -In custom calendars, events that last a whole day are taken into account. +This will create two binary sensors for the calendar name Agenda: "HomeOffice" and "WarmupFlat". Those sensors will be `on` if there is an ongoing event matching the regular expression specified in `search`. In custom calendars, events that last a whole day are taken into account. -Please note that when you configure custom calendars, -the default ones are not created anymore. +Please note that if you use the `custom_calendars` option, only those calendars will be loaded. You cannot use `calendars` and `custom_calendars` in the same configuration. {% configuration %} url: @@ -102,13 +83,11 @@ password: type: string calendars: required: false - description: > - List of the calendars to filter. - Empty or absent means no filtering, i.e., all calendars will be added. + description: List of the calendars to filter. Empty or absent means no filtering, i.e., all calendars will be added. It annot be used if `custom_calender` option is used. type: list custom_calendars: required: false - description: Details on any custom binary sensor calendars you want to create. + description: Details on any custom binary sensor calendars you want to create. Using this will only load the custom calendars supplied. No other calendars will load. type: list keys: name: @@ -121,9 +100,7 @@ custom_calendars: type: string search: required: true - description: > - Regular expression for filtering the events based on - the content of their summary, description or location. + description: Regular expression for filtering the events based on the content of their summary, description or location. type: string {% endconfiguration %} @@ -140,6 +117,7 @@ custom_calendars: ### Examples All events of the calendars "private" and "holidays". Note that all day events are not included. + ```yaml # Example configuration.yaml entry for nextcloud calendar: @@ -152,12 +130,9 @@ calendar: - holidays ``` -Full example with automation to wake up to music if not holiday. -Prerequisite: you have a calendar named "work" where -you create calendar entries containing "Holiday". +Full example with automation to wake up to music if not holiday. Prerequisite: you have a calendar named "work" where you create calendar entries containing "Holiday". -Custom calendar names are built from the -main calendar + name of the custom calendar. +Custom calendar names are built from the main calendar + name of the custom calendar. Using the option of `'.*'` will load all calendar events. ```yaml # configuration.yaml @@ -170,6 +145,9 @@ calendar: - name: holiday calendar: work search: 'Holiday' + - name: vacation + calendar: vacation + search: '.*' # automations.yaml - id: wakeup From c52b5446c4068c9f1c5e1f2af20332854b486683 Mon Sep 17 00:00:00 2001 From: Fuzzy <16689090+FuzzyMistborn@users.noreply.github.com> Date: Mon, 9 Mar 2020 08:34:58 -0400 Subject: [PATCH 09/18] Typo in caldav (#12318) Related to https://github.com/home-assistant/home-assistant.io/pull/12313 --- source/_integrations/caldav.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/caldav.markdown b/source/_integrations/caldav.markdown index 5e3cd5cb46c..e15962d2029 100644 --- a/source/_integrations/caldav.markdown +++ b/source/_integrations/caldav.markdown @@ -83,7 +83,7 @@ password: type: string calendars: required: false - description: List of the calendars to filter. Empty or absent means no filtering, i.e., all calendars will be added. It annot be used if `custom_calender` option is used. + description: List of the calendars to filter. Empty or absent means no filtering, i.e., all calendars will be added. It cannot be used if `custom_calender` option is used. type: list custom_calendars: required: false From 9da97acc6d8e0f34c6631db8982e1abdb9ab5b74 Mon Sep 17 00:00:00 2001 From: Quentame Date: Mon, 9 Mar 2020 14:02:03 +0100 Subject: [PATCH 10/18] Migrate FFMPEG integrations to brands (#12319) --- ...8-13-foursquare-fast-com-ffmpeg-gpsd.markdown | 2 +- source/images/supported_brands/ffmpeg.png | Bin 5153 -> 0 bytes 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 source/images/supported_brands/ffmpeg.png diff --git a/source/_posts/2016-08-13-foursquare-fast-com-ffmpeg-gpsd.markdown b/source/_posts/2016-08-13-foursquare-fast-com-ffmpeg-gpsd.markdown index 79408404736..47d40348a43 100644 --- a/source/_posts/2016-08-13-foursquare-fast-com-ffmpeg-gpsd.markdown +++ b/source/_posts/2016-08-13-foursquare-fast-com-ffmpeg-gpsd.markdown @@ -12,7 +12,7 @@ It's time for 0.26 and it's again full of new features and fixes. First I want t This release includes code contributed by 31 different people. The biggest change in this release is a new unit system. Instead of picking Celsius or Fahrenheit you'll have to pick imperial or metric now. This influences the units for your temperature, distance, and weight. This will simplify any platform or component that needs to know this information. Big thanks to [@Teagan42] for her hard work on this! - + - Core: Introduce notion of unit system (deprecates temperature unit option) ([@Teagan42]) - Front end: Speed improvements ([@balloob]) diff --git a/source/images/supported_brands/ffmpeg.png b/source/images/supported_brands/ffmpeg.png deleted file mode 100644 index 8a120742b08eab31585c70236e8a64b1bd8dcab1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5153 zcmV++6yEEJP)Px#jZjQfMMrQ<09*h7G5`Ps003D4000000ssI200000 z00961MgRc4001-q0E7SlF#rH=006H50J{JHdjS9c{{Y7T0BQgM%>e*&006-N0DJ%d zy8y-W#nbiE0EGYmwEzH@00E8x0iFQ?ssRD70rvj(?ECBir2*mj;da_~Sjt#bu~cr$ zZky$sCA1}At6=E_jST<*026dlPE!Df)sFpVD-It(FvW)SP|>mEW|bd`9smFn6G=ot zRCwC#n`?L4x)MN}FG-r7W+lOw;~L}l0}Af{|9QuHj5MQ%B{^%|)en&gNf82V_KYOU z^xLRadSNSSm<*R&^ukuy)mZxt|e`86;Sj+SC++s8|EfUP=S8HRW%cH3WaIE+56rN|3i z@`C)cD5~`+s;c6DR8WdMe}8+8l(KSs{9qK0l6emON4ON?C~|d}ML-lLg(!LP<0FcM z`B*ueeaDZPDBdS;0=abv7K=ezDSpH_SvkJHNga+Ziktnn{1-r)tzAx#k=%BoVGNvp zMS1)F90Bt30H3!boM_7A{+!6dLcoa&gF;y0_3#)}!UD@eFuEQb0nEsYN}AjkUj_BS zl(66maXda48qnvQJYGd5iaX;Ggej!2iigJl3D1z6bUfcb0OKUeb3d5Ri91Kw5z3OM zr^nZKlnxfe(RuhN#P1x24kyZn6U;(!`uEqzr$A(Vyvr_F9=u)l6XhtWyeQ@bW2Jp% zg;w?cu^n6M66+y%g_G>1>aw}SAoVs2jDlVo6k54SVulw>`0n8)0P_98l@k^Pjw}Vk zA&yRUc=+;)@k}dDBM;vrKwKe(x^4MTkN6SvN+we%-r3T%S}~0DdqA`d(tCRiOC#;* zo?nb%EDMibm5U@DM23v+YZh3MvwP3HlF?}?_pgd`lcV^A5fxCG?qb~O#fB0RYG?^y zvE+2QVvq!K{i$0%TLn8b;3k{<9U+NWaU-akrA~^@}xQk}xB|c-$q;z`!Ww$E}pmyk&$aULNn6oql0hr{8(e(W;HyJ48`S7RUs4Ay>dzQCY< z^Y*!G9WOZgU8`SWUJ5?E0t?>Kh~aHsS);bNosE? z>6MXgj}h%-IUN$pX)&jj6b{zjF^|X+H)`efd9I+j3@IHMF2*_6Wjv&{r>WlSBie|u z5d;Z;PwL3wPRH3qj@yr|d$Ku)DEcnWNUk=|sFY)NO-T3hntdj& z*7lXob?l>KM|6(Ri=lv$Ur$3kNA`J+3eAQ)ji@U#gd|%or*R;~*N;5gjH_V#svts$ zkG)26M3OJp+eIC>OS!?3dFPLEZOV(ceMOd8J@Uaznh}!ou&5`SYMG~>j3e{MRe3Gs z#+9#qRTx4lg~5bOaYp#Ir7Kg8=1$iJ2OqJ$9P(wOIdFa?8nHtRuOCAkVwm&Q7gBH{ z2T*j8M&OGT%8ZPy+}wNI;5ddj*o$s(I3rb2 zxx-5?yS6#<5JwilK{JFBx#RQdN2f+;S4& z*q$H49C@*@>nE4%qJ)^~kzxeCVOyc-l1etm)xi7^ksrCZelpJYt0hE1up`b$MOl!N z&&+c%d9HoUH!@_AxSHA|BM@7VEUS_0?)gES;dtvSlY?C!ar#&xrXYxI1m(%v5BI*7 z%H!?zQ{m_6fn%imS~SyDScOAN8R@GYX#pp>^ZH0++%O+w3ddo%;lL6Yf}(BfC?mZg zMCJQ^FGn8cs0yq8u4hA>9&Kcfbm-y`L2*V_)VLastE#X$4&|bZ(70-+pAkknF<8L& z(B*%1VDIL*&=WmBY;shEi$jCxJXa;gNH6#ANr-VH<;HllKdvfgT(NO$!70K`v=SyJ zM>@F~CN60AD7Y*T6gQ#yVJkl>HwQPuQiLW5FF#|AsDj2|%gCt5qlEc^a)=jqbIwbr zQ>4X#6>CIep!l+l%!@qf3eFFH4!(5o?AMn|M^har_85UwDI6f>vK?2R`61E=H{#}~ zBaN`b;NZn+B*0Pa=U_&9E3oQlBNP7^dJO{!?=rF(H!S8jHiy=goCJ3U8Omb6?l0<-n@|e|&SBv<5 z%DhZ^%u;dHBpJaZJ&=S!LgQ+Aoy1DCkNI9lxlC>$O`4HOCyMwKgCJ-;@^c6uG2c%S zAXEsWXqspvt%;(I4E~#p|Mie@W7SIzs5hQ44&(taf=Avpt{QISpBN)@*99x-q>&8_ zHLi;M7##Ier}Ja5o>AUr1ANgwR8+BB5QH14`GyP9qDYvL!F%XDzRd?`z2sm%?CL}L z+kAZif>0VAS`kKS$S#EfB;1IfW0EKOzJ6L9wEgdvyuJd_LcqsbVvWG|5lNGdz0oE| zC4D%a1somnVQ@_JgAyP{hDee~BT&Tti*~Y!Oc_OvNgB)`YXuf77}ITCtvv^4j`F)AezJ3PhKxh34Ha8!wCYB)leZ(Mt+KQ zCSsZ7I?@Az^LV45Ar21+j9ALYnH^C^>Ke|ERmzLP-)J-r$)Wo>4rYBThdow54t9GO zKti=H>FyHlNDri^b>Q8BRs|8=mZB;%A4e1>(jMfx6~jc(a-XTGy*62 z)Je;Xm_lUyi_cpC3KaN<4;Anwk z)Gscda$3X;LK6MlL>l==g9sXgavw<<3=Xr%`U!DZ^@PKyzEdGGKhEbkBL+xYqm2JU z-wwx(qn{*hJoWMk&ieU}nIBTeJ|i_`%4%e}dpODs4(7vCUjv7;{=VP=>x?kYkwzMM zSW@cWC;n0K_cD+5ecqxUv%2wvaG(mf zorI5enymJ+zCnQnS)OL3Q40cMML22d<@cXIzZdAHjsH^huaw7HUuz#`d&$u{g`9eL$Jgd5z9=(QfnzKif{JL{N42(iGS5QxHCAc_7GQ2 zA%cNpL>u88XJVypkP_jeEOk%Czbp>i&$28H4pb#yM8%aBf`=z<+g$AVU&dm?SIpZ729^^}VL&NHPAhOs8VlrCyO>l*OQY-TDnZ`sMom zS}D)wakLAOi6l^+BPv57EwJ^Y*UR93!1dq1*{$@v{}bZp*DX2UyQ5g%thebe&2%ou zj}?h5T9F(2)^m6I*qv}hw~KLwzho$S7s}g9^z#%VOQt9QKUO593Hp&PN%hj-_i0?^ zmq@Q+KfcEV!>Iv#a>PYtA-tw=*W!|&B^<_V`IQS$u6~Lmcb@6m>J*VU6C>eeIqoyM z8@y)6*;%tA9IpJ3mX3wU@i5GHst6*0)ucud2#Q2md~|)Y`}IBU@gtt4#}oEIbHe@sU44k>8JTsGa4% zU1)&JII0xMKw^CDtkTGV6PsP-XGNObsD)j`enlLOGnn?YJCjl)nWX7;XL%q!VQ6=M ztO(NtCZDe}?$WKtgq|lqVa7+$BPqXFG92jg5c3?EB4({r1l*{f)0iyj?zcH~hC^ZV zRX*SDQssu_7fa$c-xMUnD-^`8b&5bvf+?>rX}%xXvT3y8IOZgkWY)Il5BFa8RC{f;okuNO5p)4~<+=`7=xe#lu0*1Bv z97)Yxxa@|?118lWv>jz}vlf`oJb*HEb)jVy5l}PaqOb$`B?jF zG8h1}Gj`YpX%69jG2MJ^@qo)0)BvdeMPt1Ka1~$)gV>?j0{PS+v>xLw-jBphVT7If zPqd&8uV-@+LUc|Oy&RgY7dxKXqu@6q^#zQFS1dc-rNg5~Okh|=S;Vp3c-7|lbh#dg z{KeXXj;Amb;--5Nf+!IQogy2r2sTNQNCI6M=xOe*Gl&pQK@lO2&1Lhwx~H}|h?P6Q z@4HVSXqtx{IW+C&3xaiQHOC?e{G#`)X{7)n{2U|^;-CfDeEGDNWQpXdZWn4E{f+>F zGT>RqvH3c1J>2?i4T<=zsL6T-!IDCx%`Ig#7@DK~ta?HF>C!gW<3Y2$o@tD0(_Sh# zTyV8bb3AI6m$T!sX)YCkWjHj6L%Cj$FJ_IlR%2+6IuawwrEQzGc{OXT92FEkO^hg- z#ajCstFe=|KZc{0#Gx3N7qdSGqgoJ*FAZaG&e>YEJ%4|8_OZ{-R+h5^;`UMX`5SwS zv6sXbIHyPF@Z;9!v-i6R5?#UGVxIy;5Z!q P00000NkvXXu0mjf+nk@& From b517ee15146472a36a1a65ca8f31bd8674350f96 Mon Sep 17 00:00:00 2001 From: Quentame Date: Mon, 9 Mar 2020 14:02:54 +0100 Subject: [PATCH 11/18] Migrate Microsoft integrations to brands (#12320) --- source/_integrations/microsoft.markdown | 1 - source/_integrations/microsoft_face.markdown | 1 - .../_integrations/microsoft_face_detect.markdown | 1 - .../microsoft_face_identify.markdown | 1 - source/images/supported_brands/microsoft.png | Bin 1280 -> 0 bytes 5 files changed, 4 deletions(-) delete mode 100644 source/images/supported_brands/microsoft.png diff --git a/source/_integrations/microsoft.markdown b/source/_integrations/microsoft.markdown index 2161437a395..8768d3d4281 100644 --- a/source/_integrations/microsoft.markdown +++ b/source/_integrations/microsoft.markdown @@ -1,7 +1,6 @@ --- title: Microsoft Text-to-Speech (TTS) description: Instructions on how to set up Microsoft Text-to-Speech with Home Assistant. -logo: microsoft.png ha_category: - Text-to-speech ha_release: 0.57 diff --git a/source/_integrations/microsoft_face.markdown b/source/_integrations/microsoft_face.markdown index c1c5a642d45..21661f1b54b 100644 --- a/source/_integrations/microsoft_face.markdown +++ b/source/_integrations/microsoft_face.markdown @@ -1,7 +1,6 @@ --- title: Microsoft Face description: Instructions on how to integrate Microsoft Face integration into Home Assistant. -logo: microsoft.png ha_category: - Image Processing ha_release: 0.37 diff --git a/source/_integrations/microsoft_face_detect.markdown b/source/_integrations/microsoft_face_detect.markdown index 22be654d5b9..55147bcedc4 100644 --- a/source/_integrations/microsoft_face_detect.markdown +++ b/source/_integrations/microsoft_face_detect.markdown @@ -1,7 +1,6 @@ --- title: Microsoft Face Detect description: Instructions on how to integrate Microsoft Face Detect into Home Assistant. -logo: microsoft.png ha_category: - Image Processing ha_release: 0.38 diff --git a/source/_integrations/microsoft_face_identify.markdown b/source/_integrations/microsoft_face_identify.markdown index dd080cb794e..7612453d49d 100644 --- a/source/_integrations/microsoft_face_identify.markdown +++ b/source/_integrations/microsoft_face_identify.markdown @@ -1,7 +1,6 @@ --- title: Microsoft Face Identify description: Instructions on how to integrate Microsoft Face Identify into Home Assistant. -logo: microsoft.png ha_category: - Image Processing ha_release: 0.37 diff --git a/source/images/supported_brands/microsoft.png b/source/images/supported_brands/microsoft.png deleted file mode 100644 index 8113de114e382c3e7bf09d1aa86c7af36b29a24c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1280 zcmV+b1^@bqP)Px#T~JI^MMrQ-bV|GEfw zcXxrj2J=%T1*Y)-x(NM9N74WQ02*{sPE!EShv)UU7@RT)M_zPXpZKSD{8063mUnrW zz`o~0000CVNkl>C@3}qE-lD6rRx@rIaGYb-6FmBGI9{1#=qvXMZWQMD& zjbYETe7a-zKW4dSZ(4S6ycZxhMsAGU7PRIQVBm7K8LjIP3kKXXbT!E1#%xf5LUQ6xIiY(E*gh3##z{sN4bVn9i z;sBhMA^7F=#R%juBT@}{kW*dG72pIhs|T;bh~a&@XXhxP3J|c?HcG$;A!4vDw--{_ z5PfNEAtq(t+rW=2qeky9z8vAK=@Pw#AtyZLsdhoU4tMUPo@xZCHNUrfQ`Z zroRhIxgm#Px?6=0TSoBQ{iuQqwJWQxqv8iaCl^BxA5G#=e!D*MaYumNJ$>8C)7=gb zOm|;XolT73)FQU?SgCY^^1oAPN5~^|9i!Dn#|wZB5ZeFejy$sOzh?Qc1EhMMQk_kV z;Ag)DV)~=A@ys;Xa$#2!wlUf7>^nFf9@*DRfs}L)l&TXWVLJqOF6<7`@dKq=%iJ_D z(9ASrUCPL7fKYN`ss}bR@*)tv2V`v=8vX?23`Q^%v{xmR_ZU$xF`{=yT5Dvv>};@N zXt{G3p>%JhW-mvEQNIT=W^$h~7CV08M^7e(oy17(v=l&FMnI0Eeh&o6Y?T1(TO2O4 zNw;reP66UocQKhdJHiyz(QW{O2P^(YdXh6-i9<`}4o&oE(lf$V9uEVd`&8HChR%*B zQO1G;Z!`=*2&MK(XEDREj+^v3O_OED>`mH_1l@>-;6j>cjsu~}UmQEnTCt4aJPqf3 z1ElzXn3%%0a8cfQf~1=CfAuA_D$G! z=%(rSIFP(=?G+Ov>qV(vtcIBdOg*@yixuc*T(f0sGBCnCKL*5x5bXNwUHz>w2{x2Y z4_;`kP0Ux_K|wE@q!gWTG|jmFs!1l$e|ejGAZtbVTOhCgk<-0GHygVbNAe?8>+Q)6 q$PLI1$bSOlVMh{>&$GO3Ain|2UpM8??{$m-0000 Date: Wed, 11 Mar 2020 01:13:03 +1100 Subject: [PATCH 12/18] Removed unnecessary punctuation. (#12321) * Removed unnecessary punctuation. IMO. That note sounded like William Shatner wrote it. * Update source/_integrations/utility_meter.markdown Co-Authored-By: Franck Nijhof Co-authored-by: Franck Nijhof --- source/_integrations/utility_meter.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/utility_meter.markdown b/source/_integrations/utility_meter.markdown index f606e3d5425..d64b6a80774 100644 --- a/source/_integrations/utility_meter.markdown +++ b/source/_integrations/utility_meter.markdown @@ -18,7 +18,7 @@ From a user perspective, utility meters operate in cycles (usually monthly) for Some utility providers have different tariffs according to time/resource availability/etc. The utility meter enables you to define the various tariffs supported by your utility provider and accounts your consumptions in accordance. When tariffs are defined a new entity will show up indicating the current tariff. In order to change the tariff, the user must call a service, usually through an automation that can be based in time or other external source (eg. a REST sensor).
-Sensors created with this integration are persistent, so values are retained across restarts of Home Assistant. The first cycle for each sensor, will be incomplete; a sensor tracking daily usage, will start to be accurate the next day after the integration was activated. A sensor tracking monthly usage, will present accurate data starting the first of the next month after being added to Home Assistant. +Sensors created with this integration are persistent, so values are retained across restarts of Home Assistant. The first cycle for each sensor will be incomplete; a sensor tracking daily usage will start to be accurate the next day after the integration was activated. A sensor tracking monthly usage will present accurate data starting the first of the next month after being added to Home Assistant.
## Configuration From 0f4435baeb6ba67b8e540ebae91d2d9a51e4dc2e Mon Sep 17 00:00:00 2001 From: punch Date: Tue, 10 Mar 2020 07:47:14 -0700 Subject: [PATCH 13/18] remove $ marks from code lines for copy/pasting (#12268) * remove $ marks from code lines for copy/pasting * :pencil2: Fix standards Co-authored-by: Franck Nijhof --- source/_docs/autostart/systemd.markdown | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/source/_docs/autostart/systemd.markdown b/source/_docs/autostart/systemd.markdown index ab4ce5ea93c..270fd374e70 100644 --- a/source/_docs/autostart/systemd.markdown +++ b/source/_docs/autostart/systemd.markdown @@ -77,24 +77,24 @@ WantedBy=multi-user.target You need to reload `systemd` to make the daemon aware of the new configuration. ```bash -$ sudo systemctl --system daemon-reload +sudo systemctl --system daemon-reload ``` To have Home Assistant start automatically at boot, enable the service. ```bash -$ sudo systemctl enable home-assistant@YOUR_USER +sudo systemctl enable home-assistant@YOUR_USER ``` To disable the automatic start, use this command. ```bash -$ sudo systemctl disable home-assistant@YOUR_USER +sudo systemctl disable home-assistant@YOUR_USER ``` To start Home Assistant now, use this command. ```bash -$ sudo systemctl start home-assistant@YOUR_USER +sudo systemctl start home-assistant@YOUR_USER ``` You can also substitute the `start` above with `stop` to stop Home Assistant, `restart` to restart Home Assistant, and 'status' to see a brief status report as seen below. @@ -114,18 +114,18 @@ $ sudo systemctl status home-assistant@YOUR_USER To get Home Assistant's logging output, simple use `journalctl`. ```bash -$ sudo journalctl -f -u home-assistant@YOUR_USER +sudo journalctl -f -u home-assistant@YOUR_USER ``` Because the log can scroll quite quickly, you can select to view only the error lines: ```bash -$ sudo journalctl -f -u home-assistant@YOUR_USER | grep -i 'error' +sudo journalctl -f -u home-assistant@YOUR_USER | grep -i 'error' ``` When working on Home Assistant, you can easily restart the system and then watch the log output by combining the above commands using `&&` ```bash -$ sudo systemctl restart home-assistant@YOUR_USER && sudo journalctl -f -u home-assistant@YOUR_USER +sudo systemctl restart home-assistant@YOUR_USER && sudo journalctl -f -u home-assistant@YOUR_USER ``` ### Automatically restarting Home Assistant on failure From a86df4d035d8d07e494234727cfdb8ba4c80dc89 Mon Sep 17 00:00:00 2001 From: wasper17 <60716555+wasper17@users.noreply.github.com> Date: Tue, 10 Mar 2020 10:53:43 -0400 Subject: [PATCH 14/18] Update slack.markdown (#12272) * Update slack.markdown Updated per API change - https://api.slack.com/scopes/chat:write * Update formatting * :pencil2: Tweak Co-authored-by: Fabian Affolter Co-authored-by: Franck Nijhof --- source/_integrations/slack.markdown | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/_integrations/slack.markdown b/source/_integrations/slack.markdown index 63fc6981581..d9e099061eb 100644 --- a/source/_integrations/slack.markdown +++ b/source/_integrations/slack.markdown @@ -14,11 +14,11 @@ The `slack` platform allows you to deliver notifications from Home Assistant to ### Bot posting as you -1. Create a [new app](https://api.slack.com/apps) under your Slack.com account -2. Click the `OAuth & Permissions` link in the sidebar, under the Features heading -3. In the Scopes section, add the `chat:write:user` scope, `Send messages as user`. If you wish to also be able to include files, you will need to include `files:write:user`. If you get a `missing_scope` error when trying to send a message, check these permissions. -4. Scroll up to `OAuth Tokens & Redirect URLs` and click `Install App` -5. Copy your `OAuth Access Token` and put that key into your `configuration.yaml` file -- see below +1. Create a [new app](https://api.slack.com/apps) under your Slack.com account. +2. Click the `OAuth & Permissions` link in the sidebar, under the Features heading. +3. In the Scopes section, add the `chat:write` scope, `Send messages as user`. If you get a `missing_scope` error when trying to send a message, check these permissions. +4. Scroll up to `OAuth Tokens & Redirect URLs` and click `Install App`. +5. Copy your `OAuth Access Token` and put that key into your `configuration.yaml` file -- see below.
From 57ac0bf4d197a27ae4c31304b400ceac2356059d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20BARI=C5=9E?= Date: Tue, 10 Mar 2020 16:59:52 +0200 Subject: [PATCH 15/18] Update sonos.markdown (#12032) * Update sonos.markdown Sonos integration doesn't accept usage of `snapshot` and `restore` without `entity_id` after 0.105.0. See https://github.com/home-assistant/home-assistant/issues/31650#issue-562108449. * Addresses review comments * Fix linter warnings Co-authored-by: Franck Nijhof --- source/_integrations/sonos.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_integrations/sonos.markdown b/source/_integrations/sonos.markdown index b7e93ba549d..638f56c4566 100644 --- a/source/_integrations/sonos.markdown +++ b/source/_integrations/sonos.markdown @@ -31,7 +31,7 @@ The queue is not snapshotted and must be left untouched until the restore. Using | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | -| `entity_id` | yes | The speakers to snapshot. +| `entity_id` | no | The speakers to snapshot. To target all Sonos devices, use `all`. | `with_group` | yes | Should we also snapshot the group layout and the state of other speakers in the group, defaults to true. ### Service `sonos.restore` @@ -50,7 +50,7 @@ A cloud queue cannot be restarted. This includes queues started from within Spot | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | -| `entity_id` | yes | String or list of `entity_id`s that should have their snapshot restored. +| `entity_id` | no | String or list of `entity_id`s that should have their snapshot restored. To target all Sonos devices, use `all`. | `with_group` | yes | Should we also restore the group layout and the state of other speakers in the group, defaults to true. ### Service `sonos.join` From 52eda4fda1d2d1e3b076363daec6cb2c1b51612c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Lov=C3=A9n?= Date: Tue, 10 Mar 2020 16:17:06 +0100 Subject: [PATCH 16/18] Replace "docs" with "documentation" (#12284) * Replace "docs" with "documentation" * Blacklist docs in Textlint, use documentation instead * Fix more occurances Co-authored-by: Franck Nijhof --- .textlintrc.json | 1 + source/_docs/installation/docker.markdown | 2 +- source/_docs/installation/virtualenv.markdown | 2 +- source/_docs/tools/credstash.markdown | 2 +- source/_docs/z-wave/devices.markdown | 2 +- source/_faq/missing-documentation.markdown | 2 +- source/_includes/site/header.html | 4 ++-- source/_integrations/alarmdecoder.markdown | 2 +- source/_integrations/automation.markdown | 2 +- source/_integrations/aws.markdown | 6 +++--- source/_integrations/bom.markdown | 2 +- source/_integrations/dialogflow.markdown | 2 +- source/_integrations/envisalink.markdown | 2 +- source/_integrations/habitica.markdown | 4 ++-- source/_integrations/html5.markdown | 2 +- source/_integrations/hue.markdown | 4 ++-- source/_integrations/ifttt.markdown | 2 +- source/_integrations/mailgun.markdown | 2 +- source/_integrations/minio.markdown | 2 +- source/_integrations/rocketchat.markdown | 2 +- source/_integrations/twilio.markdown | 2 +- source/_integrations/xs1.markdown | 2 +- source/_lovelace/picture-elements.markdown | 2 +- source/lovelace/changelog.markdown | 12 ++++++------ 24 files changed, 34 insertions(+), 33 deletions(-) diff --git a/.textlintrc.json b/.textlintrc.json index d8029d8f59d..8f6cb6299a0 100644 --- a/.textlintrc.json +++ b/.textlintrc.json @@ -303,6 +303,7 @@ ["colour", "color"], ["config\\b", "configuration"], ["DarkSky", "Dark Sky"], + ["docs\\b", "documentation"], ["e\\.g\\.", "e.g.,"], ["end ?to ?end", "end-to-end"], ["FRITZ!? ?Box", "FRITZ!Box"], diff --git a/source/_docs/installation/docker.markdown b/source/_docs/installation/docker.markdown index f9f55472d6c..cfbe979ef29 100644 --- a/source/_docs/installation/docker.markdown +++ b/source/_docs/installation/docker.markdown @@ -44,7 +44,7 @@ If you wish to browse directly to `http://localhost:8123` from your macOS host, docker run --init -d --name="home-assistant" -e "TZ=America/Los_Angeles" -v /PATH_TO_YOUR_CONFIG:/config -p 8123:8123 homeassistant/home-assistant:stable ``` -Alternatively, `docker-compose` works with any recent release of `docker-ce` on macOS. Note that (further down this page) we provide an example `docker-compose.yml` however it differs from the `docker run` example above. To make the .yml directives match, you would need to make _two_ changes: first add the equivalent `ports:` directive, then _remove_ the `network_mode: host` section. This is because `Port mapping is incompatible with network_mode: host:`. More details can be found at [Docker networking docs](https://docs.docker.com/network/). Note also the `/dev/tty*` device name used by your Arduino etc. devices will differ from the Linux example, so the compose `mount:` may require updates. +Alternatively, `docker-compose` works with any recent release of `docker-ce` on macOS. Note that (further down this page) we provide an example `docker-compose.yml` however it differs from the `docker run` example above. To make the .yml directives match, you would need to make _two_ changes: first add the equivalent `ports:` directive, then _remove_ the `network_mode: host` section. This is because `Port mapping is incompatible with network_mode: host:`. More details can be found at [Docker networking documentation](https://docs.docker.com/network/). Note also the `/dev/tty*` device name used by your Arduino etc. devices will differ from the Linux example, so the compose `mount:` may require updates. ### Windows diff --git a/source/_docs/installation/virtualenv.markdown b/source/_docs/installation/virtualenv.markdown index fe1f5613757..1d19fca3d7d 100644 --- a/source/_docs/installation/virtualenv.markdown +++ b/source/_docs/installation/virtualenv.markdown @@ -98,7 +98,7 @@ pip3 install --upgrade git+git://github.com/home-assistant/home-assistant.git@de - In the future, if you want to start Home Assistant manually again, follow step 2, 3 and 5. - It's recommended to run Home Assistant as a dedicated user. -- If you want Home Assistant to automatically start at boot, check the [autostart docs](/docs/autostart/) +- If you want Home Assistant to automatically start at boot, check the [autostart documentation](/docs/autostart/)
diff --git a/source/_docs/tools/credstash.markdown b/source/_docs/tools/credstash.markdown index cede4f23e0c..c696f102b87 100644 --- a/source/_docs/tools/credstash.markdown +++ b/source/_docs/tools/credstash.markdown @@ -5,7 +5,7 @@ description: "Script to store credentials securely in AWS" Using [Credstash](https://github.com/fugue/credstash) is an alternative way to `secrets.yaml`. They can be managed from the command line via the credstash script. -Before using credstash, you need to set up AWS credentials either via the `aws` command line tool or using environment variables as explained in the [AWS CLI docs](http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) as well as creating a KMS key named `credstash` as explained in the [credstash Readme](https://github.com/fugue/credstash#setting-up-kms). After that is complete, you can use the provided script to add secrets to your Home Assistant secret store in credstash. +Before using credstash, you need to set up AWS credentials either via the `aws` command line tool or using environment variables as explained in the [AWS CLI documentation](http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) as well as creating a KMS key named `credstash` as explained in the [credstash Readme](https://github.com/fugue/credstash#setting-up-kms). After that is complete, you can use the provided script to add secrets to your Home Assistant secret store in credstash. ```bash $ hass --script credstash --help diff --git a/source/_docs/z-wave/devices.markdown b/source/_docs/z-wave/devices.markdown index b8c79c760c3..94d36ff44ea 100644 --- a/source/_docs/z-wave/devices.markdown +++ b/source/_docs/z-wave/devices.markdown @@ -59,7 +59,7 @@ Where a device doesn't send updates on status changes to the controller, you can For example, with `polling_interval=60000` (which is the default) if you have 10 devices that are being polled at every interval, and each polling takes one secound (request/response round trip), then it will take 10 seconds to complete the polling list. This only leaves 50 seconds left for normal traffic. The more devices you poll, and the shorter the interval, the less bandwidth that's available for normal traffic. -Polling needs to be enabled per device, you can control this through the *polling intensity* (interval) of the device. See the [Node Management](/docs/z-wave/control-panel#z-wave-node-management) docs for details. +Polling needs to be enabled per device, you can control this through the *polling intensity* (interval) of the device. See the [Node Management](/docs/z-wave/control-panel#z-wave-node-management) documentation for details. ## Central Scene support diff --git a/source/_faq/missing-documentation.markdown b/source/_faq/missing-documentation.markdown index cceaf744134..3c5e89e033f 100644 --- a/source/_faq/missing-documentation.markdown +++ b/source/_faq/missing-documentation.markdown @@ -1,6 +1,6 @@ --- title: "Missing Documentation" -description: "The docs are missing or outdated" +description: "The documentation is missing or outdated" ha_category: Documentation --- diff --git a/source/_includes/site/header.html b/source/_includes/site/header.html index 7dfba15d6f6..be048105ac8 100644 --- a/source/_includes/site/header.html +++ b/source/_includes/site/header.html @@ -24,7 +24,7 @@ {% endcomment %}
  • Getting started
  • Integrations
  • -
  • Docs
  • +
  • Documentation
  • Examples
  • Blog
  • Need help?
  • @@ -35,7 +35,7 @@ diff --git a/source/_integrations/alarmdecoder.markdown b/source/_integrations/alarmdecoder.markdown index 75d0101e262..4f34e36f8a8 100644 --- a/source/_integrations/alarmdecoder.markdown +++ b/source/_integrations/alarmdecoder.markdown @@ -87,7 +87,7 @@ autobypass: default: false type: boolean zones: - description: "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](/integrations/alarmdecoder) docs. *Note: If no zones are specified, Home Assistant will not load any binary_sensor integrations.*" + description: "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](/integrations/alarmdecoder) documentation. *Note: If no zones are specified, Home Assistant will not load any binary_sensor integrations.*" required: false type: list keys: diff --git a/source/_integrations/automation.markdown b/source/_integrations/automation.markdown index a7194c8d9f7..8cfee19b4f8 100644 --- a/source/_integrations/automation.markdown +++ b/source/_integrations/automation.markdown @@ -10,7 +10,7 @@ ha_codeowners: ha_domain: automation --- -Please see the [docs section](/docs/automation/) for in-depth +Please see the [automation section](/docs/automation/) for in-depth documentation on how to use the automation integration.

    diff --git a/source/_integrations/aws.markdown b/source/_integrations/aws.markdown index ce1254c79bc..598d1424e99 100644 --- a/source/_integrations/aws.markdown +++ b/source/_integrations/aws.markdown @@ -103,7 +103,7 @@ context: ## Lambda Notify Usage -AWS Lambda is a notification platform and thus can be controlled by calling the `notify` service [as described here](/integrations/notify/). It will invoke a Lambda for all targets given in the notification payload. A target can be formatted as a function name, an entire ARN ([Amazon Resource Name](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)) or a partial ARN. For more information, please see the [botocore docs](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/services/lambda.html#Lambda.Client.invoke). +AWS Lambda is a notification platform and thus can be controlled by calling the `notify` service [as described here](/integrations/notify/). It will invoke a Lambda for all targets given in the notification payload. A target can be formatted as a function name, an entire ARN ([Amazon Resource Name](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)) or a partial ARN. For more information, please see the [botocore documentation](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/services/lambda.html#Lambda.Client.invoke). The Lambda event payload will contain everything passed in the service call payload. Here is an example payload that would be sent to Lambda: @@ -131,7 +131,7 @@ The context will look like this: ## SNS Notify Usage -AWS SNS is a notification platform and thus can be controlled by calling the `notify` service [as described here](/integrations/notify/). It will publish a message to all targets given in the notification payload. A target must be a SNS topic or endpoint ARN ([Amazon Resource Name](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)). For more information, please see the [botocore docs](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/services/sns.html#SNS.Client.publish). +AWS SNS is a notification platform and thus can be controlled by calling the `notify` service [as described here](/integrations/notify/). It will publish a message to all targets given in the notification payload. A target must be a SNS topic or endpoint ARN ([Amazon Resource Name](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)). For more information, please see the [botocore documentation](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/services/sns.html#SNS.Client.publish). If one exists, the SNS Subject will be set to the title. All attributes from the payload, except the message, will be sent as stringified message attributes. @@ -157,7 +157,7 @@ If you do not download them, you will lose them and will have to recreate a new ## SQS Notify Usage -AWS SQS is a notification platform and thus can be controlled by calling the `notify` service [as described here](/integrations/notify/). It will publish a message to the queue for all targets given in the notification payload. A target must be a SQS topic URL. For more information, please see the [SQS docs](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/ImportantIdentifiers.html) and [bototcore docs](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/services/sqs.html#SQS.Client.send_message) +AWS SQS is a notification platform and thus can be controlled by calling the `notify` service [as described here](/integrations/notify/). It will publish a message to the queue for all targets given in the notification payload. A target must be a SQS topic URL. For more information, please see the [SQS documentation](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/ImportantIdentifiers.html) and [bototcore documentation](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/services/sqs.html#SQS.Client.send_message) The SQS event payload will contain everything passed in the service call payload. SQS payloads will be published as stringified JSON. All attributes from the payload, except message, will also be sent as stringified message attributes. Here is an example message that would be published to the SQS queue: diff --git a/source/_integrations/bom.markdown b/source/_integrations/bom.markdown index 6833a3aa2d4..9068b3910f1 100644 --- a/source/_integrations/bom.markdown +++ b/source/_integrations/bom.markdown @@ -34,7 +34,7 @@ name: required: false type: string station: - description: "The station ID string. See the [`sensor.bom` docs](#sensor) for details on how to find the ID of a station." + description: "The station ID string. See the [`sensor.bom` documentation](#sensor) for details on how to find the ID of a station." required: false type: string default: The closest station diff --git a/source/_integrations/dialogflow.markdown b/source/_integrations/dialogflow.markdown index 8064cbc38a7..2e7b45ec041 100644 --- a/source/_integrations/dialogflow.markdown +++ b/source/_integrations/dialogflow.markdown @@ -11,7 +11,7 @@ ha_domain: dialogflow The `dialogflow` integration is designed to be used with the [webhook](https://dialogflow.com/docs/fulfillment#webhook) integration of [Dialogflow](https://dialogflow.com/). When a conversation ends with a user, Dialogflow sends an action and parameters to the webhook. -To be able to receive messages from Dialogflow, your Home Assistant instance needs to be accessible from the web and you need to have the `base_url` configured for the HTTP integration ([docs](/integrations/http/#base_url)). Dialogflow will return fallback answers if your server does not answer or takes too long (more than 5 seconds). +To be able to receive messages from Dialogflow, your Home Assistant instance needs to be accessible from the web and you need to have the `base_url` configured for the HTTP integration ([documentation](/integrations/http/#base_url)). Dialogflow will return fallback answers if your server does not answer or takes too long (more than 5 seconds). Dialogflow could be [integrated](https://dialogflow.com/docs/integrations/) with many popular messaging, virtual assistant and IoT platforms. diff --git a/source/_integrations/envisalink.markdown b/source/_integrations/envisalink.markdown index 1550427f383..26e348a4a35 100644 --- a/source/_integrations/envisalink.markdown +++ b/source/_integrations/envisalink.markdown @@ -105,7 +105,7 @@ panic_type: default: Police type: string zones: - description: "Envisalink boards have 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](/integrations/envisalink) docs. *Note: If no zones are specified, Home Assistant will not load any binary_sensor components.*" + description: "Envisalink boards have 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](/integrations/envisalink) documentation. *Note: If no zones are specified, Home Assistant will not load any binary_sensor components.*" required: false type: integer keys: diff --git a/source/_integrations/habitica.markdown b/source/_integrations/habitica.markdown index 37645019ed2..bc5e2bd939b 100644 --- a/source/_integrations/habitica.markdown +++ b/source/_integrations/habitica.markdown @@ -73,7 +73,7 @@ A successful call to this service will fire an event `habitica_api_call_success` |----------------------|--------|----------------| | `name` | string | Copied from service data attribute. | | `path` | [string] | Copied from service data attribute. | -| `data` | map | Deserialized `data` field of JSON object Habitica's server returned in response to API call. For more info see [docs](https://habitica.com/apidoc/). | +| `data` | map | Deserialized `data` field of JSON object Habitica's server returned in response to API call. For more info see the [API documentation](https://habitica.com/apidoc/). | #### Let's consider some examples on how to call the service. @@ -87,7 +87,7 @@ So let's call the API on `habitica.api_call`. * Remove `https://habitica.com/api/v3/` at the beginning of the endpoint URL. * Split the remaining on slashes (/) and **append the lowercase method** at the end. * You should get `["tasks", "user", "post"]`. To get a better idea of the API you are recommended to try all of the API calls in IPython console [using this package](https://github.com/ASMfreaK/habitipy/blob/master/README.md). -* The `args` key is more or less described in the [docs](https://habitica.com/apidoc/). +* The `args` key is more or less described in the [API documentation](https://habitica.com/apidoc/). Combining all together: call `habitica.api_call` with data diff --git a/source/_integrations/html5.markdown b/source/_integrations/html5.markdown index e39e9ba0896..7c38d3ef9ef 100644 --- a/source/_integrations/html5.markdown +++ b/source/_integrations/html5.markdown @@ -90,7 +90,7 @@ The `html5` platform can only function if all of the following requirements are ### Configuring the platform -1. Make sure you can access your Home Assistant installation from outside your network over HTTPS ([see docs](/docs/configuration/remote/)) or can perform an alternative [Domain Name Verification Method](https://support.google.com/webmasters/answer/9008080#domain_name_verification) on the domain used by Home Assistant. +1. Make sure you can access your Home Assistant installation from outside your network over HTTPS ([see documentation](/docs/configuration/remote/)) or can perform an alternative [Domain Name Verification Method](https://support.google.com/webmasters/answer/9008080#domain_name_verification) on the domain used by Home Assistant. 2. Create a new project at [https://console.cloud.google.com/home/dashboard](https://console.cloud.google.com/home/dashboard), this project will be imported into Firebase later (alternatively, the project can also be created during step 4). 3. Go to [https://console.cloud.google.com/apis/credentials/domainverification](https://console.cloud.google.com/apis/credentials/domainverification) and verify your domain via Google Webmaster Central / Search Console - [see below](#verify-your-domain). 4. With the domain verified, go to [https://console.firebase.google.com](https://console.firebase.google.com), select import Google project and select the project you created. diff --git a/source/_integrations/hue.markdown b/source/_integrations/hue.markdown index 7c9475c443e..453d7179f52 100644 --- a/source/_integrations/hue.markdown +++ b/source/_integrations/hue.markdown @@ -1,4 +1,4 @@ ---- +-- title: Philips Hue description: Instructions on setting up Philips Hue within Home Assistant. ha_category: @@ -148,4 +148,4 @@ The Hue API doesn't activate scenes directly; rather, they must be associated wi Neither group names nor scene names are guaranteed unique in Hue. If you are observing unexpected behavior from calling Hue scenes in Home Assistant, make the names of your Hue scenes more specific in the Hue app. -The Hue hub has limited space for scenes and will delete scenes if new ones get created that would overflow that space. The API docs say this is based on the scenes that are "least recently used." +The Hue hub has limited space for scenes and will delete scenes if new ones get created that would overflow that space. The API documentation says this is based on the scenes that are "least recently used." diff --git a/source/_integrations/ifttt.markdown b/source/_integrations/ifttt.markdown index f527ff26244..c7af255d885 100644 --- a/source/_integrations/ifttt.markdown +++ b/source/_integrations/ifttt.markdown @@ -14,7 +14,7 @@ ha_domain: ifttt ## Sending events from IFTTT to Home Assistant -To be able to receive events from IFTTT, your Home Assistant instance needs to be accessible from the web and you need to have the `base_url` configured for the HTTP integration ([docs](/integrations/http/#base_url)). +To be able to receive events from IFTTT, your Home Assistant instance needs to be accessible from the web and you need to have the `base_url` configured for the HTTP integration ([documentation](/integrations/http/#base_url)). ### Setting up the integration diff --git a/source/_integrations/mailgun.markdown b/source/_integrations/mailgun.markdown index e36d0d176f7..e4414ce9370 100644 --- a/source/_integrations/mailgun.markdown +++ b/source/_integrations/mailgun.markdown @@ -9,7 +9,7 @@ ha_config_flow: true ha_domain: mailgun --- -To be able to receive webhooks from Mailgun, your Home Assistant instance needs to be accessible from the web and you need to have the `base_url` configured for the HTTP integration ([docs](/integrations/http/#base_url)). +To be able to receive webhooks from Mailgun, your Home Assistant instance needs to be accessible from the web and you need to have the `base_url` configured for the HTTP integration ([documentation](/integrations/http/#base_url)). To set it up, go to the integrations page in the configuration screen and find Mailgun. Click on configure. Follow the instructions on the screen to configure Mailgun. diff --git a/source/_integrations/minio.markdown b/source/_integrations/minio.markdown index c9ef7240e93..3c9d486cec6 100644 --- a/source/_integrations/minio.markdown +++ b/source/_integrations/minio.markdown @@ -10,7 +10,7 @@ ha_domain: minio --- This integration adds interaction with [Minio](https://min.io). -Also enables to listen for bucket notifications: [watch docs](https://docs.min.io/docs/minio-client-complete-guide.html#watch) +It also enables listening for bucket notifications: [see documentation](https://docs.min.io/docs/minio-client-complete-guide.html#watch) To download or upload files, folders must be added to [whitelist_external_dirs](/docs/configuration/basic/). diff --git a/source/_integrations/rocketchat.markdown b/source/_integrations/rocketchat.markdown index 5cb5d546f49..6fec23d8cfc 100644 --- a/source/_integrations/rocketchat.markdown +++ b/source/_integrations/rocketchat.markdown @@ -45,6 +45,6 @@ rocketchat_notification: #### Message variables - **message** (*Required*): Message to be displayed. -- **data** (*Optional*): Dictionary containing any of the variables defined in the [Rocket.Chat docs](https://rocket.chat/docs/developer-guides/rest-api/chat/postmessage#message-object-example) +- **data** (*Optional*): Dictionary containing any of the variables defined in the [Rocket.Chat documentation](https://rocket.chat/docs/developer-guides/rest-api/chat/postmessage#message-object-example) To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_integrations/twilio.markdown b/source/_integrations/twilio.markdown index 4cddad84c3f..b06dbfd1c63 100644 --- a/source/_integrations/twilio.markdown +++ b/source/_integrations/twilio.markdown @@ -39,7 +39,7 @@ auth_token: After configuring the base Twilio component, add and configure either or both of the [Twilio SMS](/integrations/twilio_sms) and [Twilio Phone](/integrations/twilio_call) integrations to utilize the notification functionality. -To be able to receive events from Twilio, your Home Assistant instance needs to be accessible from the web and you need to have the `base_url` configured for the HTTP integration ([docs](/integrations/http/#base_url)). +To be able to receive events from Twilio, your Home Assistant instance needs to be accessible from the web and you need to have the `base_url` configured for the HTTP integration ([documentation](/integrations/http/#base_url)). To set it up, go to the integrations page in the configuration screen and find Twilio. Click on configure. Follow the instructions on the screen to configure Twilio. diff --git a/source/_integrations/xs1.markdown b/source/_integrations/xs1.markdown index a4d7e1450a8..ad42cca52f4 100644 --- a/source/_integrations/xs1.markdown +++ b/source/_integrations/xs1.markdown @@ -11,7 +11,7 @@ ha_iot_class: Local Polling ha_domain: xs1 --- -The [EZcontrol XS1](http://www.ezcontrol.de/content/view/36/28/) integration for Home Assistant allows you to observe and control devices configured on the XS1 Gateway. Please have a look at the official docs for using this gateway [Bedienungsanleitung v3.0.0.0](http://www.ezcontrol.de/support/downloads/XS1/xs1manual/Bedienungsanleitung_EZcontrol_XS1_3.0.0.0-2.pdf). +The [EZcontrol XS1](http://www.ezcontrol.de/content/view/36/28/) integration for Home Assistant allows you to observe and control devices configured on the XS1 Gateway. Please have a look at the official documentation for using this gateway [Bedienungsanleitung v3.0.0.0](http://www.ezcontrol.de/support/downloads/XS1/xs1manual/Bedienungsanleitung_EZcontrol_XS1_3.0.0.0-2.pdf). ## Configuration diff --git a/source/_lovelace/picture-elements.markdown b/source/_lovelace/picture-elements.markdown index 45b1a926aab..6de03f07d2c 100644 --- a/source/_lovelace/picture-elements.markdown +++ b/source/_lovelace/picture-elements.markdown @@ -380,7 +380,7 @@ style: {% endconfiguration %} The process for creating and referencing custom elements is the same as for custom cards. -Please see the [developer docs on creating custom cards](https://developers.home-assistant.io/docs/en/lovelace_custom_card.html) +Please see the [developer documentation](https://developers.home-assistant.io/docs/en/lovelace_custom_card.html) for more information. ## How to use the style object diff --git a/source/lovelace/changelog.markdown b/source/lovelace/changelog.markdown index 00f127ce16f..e08e6baf6a8 100644 --- a/source/lovelace/changelog.markdown +++ b/source/lovelace/changelog.markdown @@ -183,12 +183,12 @@ description: "Changelog of the Lovelace UI." - ⚠️ [sensor card]: Removed configs `height`, `line_color` and `line_width` - ⚠️ [gauge card]: Renamed configuration `title` to `name` - ⚠️ [alarm panel card]: Renamed configuration `title` to `name` -- ⚠️ [glance card]: `tap_action` and `hold_action` configurations changed. See docs. -- ⚠️ [entity button card]: `tap_action` and `hold_action` configurations changed. See docs. -- ⚠️ [picture card]: `tap_action` and `hold_action` configurations changed. See docs. -- ⚠️ [picture elements card]: `tap_action` and `hold_action` configurations for elements changed. See docs. -- ⚠️ [picture entity card]: `tap_action` and `hold_action` configurations changed. See docs. -- ⚠️ [picture glance card]: `tap_action` and `hold_action` configurations changed. See docs. +- ⚠️ [glance card]: `tap_action` and `hold_action` configurations changed. See documentation. +- ⚠️ [entity button card]: `tap_action` and `hold_action` configurations changed. See documentation. +- ⚠️ [picture card]: `tap_action` and `hold_action` configurations changed. See documentation. +- ⚠️ [picture elements card]: `tap_action` and `hold_action` configurations for elements changed. See documentation. +- ⚠️ [picture entity card]: `tap_action` and `hold_action` configurations changed. See documentation. +- ⚠️ [picture glance card]: `tap_action` and `hold_action` configurations changed. See documentation. ### All Changes - ❤️ [weather forecast card]: New configuration `name` From ef9d8f2da35c1c277a6dd2dcff6328ea7dff853c Mon Sep 17 00:00:00 2001 From: phlet Date: Tue, 10 Mar 2020 11:18:45 -0400 Subject: [PATCH 17/18] =?UTF-8?q?Integrations/Map=20-=20Added=20a=20note?= =?UTF-8?q?=20on=20how=20to=20hide=20certain=20entitie=E2=80=A6=20(#12149)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added a note on how to hide certain entities. * :pencil2: Tweak Co-authored-by: Franck Nijhof --- source/_integrations/map.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_integrations/map.markdown b/source/_integrations/map.markdown index 757913c4a83..33c096743c6 100644 --- a/source/_integrations/map.markdown +++ b/source/_integrations/map.markdown @@ -18,3 +18,7 @@ map:

    Devices that are currently at home won't show on the map.
    + +
    +This map always shows the location of all tracked devices. If you want to hide certain entities, you should look into the [Map Card](/lovelace/map). +
    From 179dd90e5c263f2d92a8b31956b1784d311d329d Mon Sep 17 00:00:00 2001 From: "Robert \"DocSalvager\" Watson" Date: Tue, 10 Mar 2020 11:24:52 -0400 Subject: [PATCH 18/18] Update ssdp.markdown to add "(UPnP)" (#12315) * Update ssdp.markdown * :pencil2: Tweak Co-authored-by: Franck Nijhof --- source/_integrations/ssdp.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/ssdp.markdown b/source/_integrations/ssdp.markdown index 43a9b5cb5fb..7bdf9839852 100644 --- a/source/_integrations/ssdp.markdown +++ b/source/_integrations/ssdp.markdown @@ -7,7 +7,7 @@ ha_release: 0.94 ha_domain: ssdp --- -The `ssdp` "Simple Service Discovery Protocol" integration will scan the network for supported devices and services. Discovered integrations will show up in the discovered section on the integrations page in the configuration panel. +The `ssdp` "Simple Service Discovery Protocol" (part of UPnP) integration will scan the network for supported devices and services. Discovered integrations will show up in the discovered section on the integrations page in the configuration panel. Integrations can opt-in to be found by adding [an SSDP section](https://developers.home-assistant.io/docs/en/next/creating_integration_manifest.html#ssdp) to their `manifest.json`.