diff --git a/CODEOWNERS b/CODEOWNERS index 61bdbd84d02..e3e44e5729d 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -151,6 +151,7 @@ source/_integrations/geonetnz_volcano.markdown @exxamalte source/_integrations/gios.markdown @bieniu source/_integrations/gitter.markdown @fabaff source/_integrations/glances.markdown @fabaff @engrbm87 +source/_integrations/goalzero.markdown @tkdrob source/_integrations/gogogate2.markdown @vangorra source/_integrations/google_assistant.markdown @home-assistant/cloud source/_integrations/google_cloud.markdown @lufton @@ -162,6 +163,7 @@ source/_integrations/group.markdown @home-assistant/core source/_integrations/growatt_server.markdown @indykoning source/_integrations/guardian.markdown @bachya source/_integrations/harmony.markdown @ehendrix23 @bramkragten @bdraco +source/_integrations/hdmi_cec.markdown @newAM source/_integrations/heatmiser.markdown @andylockran source/_integrations/heos.markdown @andrewsayre source/_integrations/here_travel_time.markdown @eifinger @@ -186,6 +188,7 @@ source/_integrations/humidifier.markdown @home-assistant/core @Shulyaka source/_integrations/hunterdouglas_powerview.markdown @bdraco source/_integrations/hvv_departures.markdown @vigonotion source/_integrations/hydrawise.markdown @ptcryan +source/_integrations/hyperion.markdown @dermotduffy source/_integrations/iammeter.markdown @lewei50 source/_integrations/iaqualink.markdown @flz source/_integrations/icloud.markdown @Quentame @@ -217,7 +220,7 @@ source/_integrations/keenetic_ndms2.markdown @foxel source/_integrations/kef.markdown @basnijholt source/_integrations/keyboard_remote.markdown @bendavid source/_integrations/knx.markdown @Julius2342 @farmio @marvin-w -source/_integrations/kodi.markdown @OnFreund +source/_integrations/kodi.markdown @OnFreund @cgtobi source/_integrations/konnected.markdown @heythisisnate @kit-klein source/_integrations/lametric.markdown @robbiet480 source/_integrations/launch_library.markdown @ludeeus @@ -228,7 +231,7 @@ source/_integrations/local_ip.markdown @issacg source/_integrations/logger.markdown @home-assistant/core source/_integrations/logi_circle.markdown @evanjd source/_integrations/loopenergy.markdown @pavoni -source/_integrations/luci.markdown @fbradyirl @mzdrale +source/_integrations/luci.markdown @mzdrale source/_integrations/luftdaten.markdown @fabaff source/_integrations/lupusec.markdown @majuss source/_integrations/lutron.markdown @JonGilmore @@ -251,7 +254,7 @@ source/_integrations/min_max.markdown @fabaff source/_integrations/minecraft_server.markdown @elmurato source/_integrations/minio.markdown @tkislan source/_integrations/mobile_app.markdown @robbiet480 -source/_integrations/modbus.markdown @adamchengtkc @janiversen +source/_integrations/modbus.markdown @adamchengtkc @janiversen @vzahradnik source/_integrations/monoprice.markdown @etsinko @OnFreund source/_integrations/moon.markdown @fabaff source/_integrations/mpd.markdown @fabaff @@ -290,6 +293,7 @@ source/_integrations/nzbget.markdown @chriscla source/_integrations/obihai.markdown @dshokouhi source/_integrations/ohmconnect.markdown @robbiet480 source/_integrations/ombi.markdown @larssont +source/_integrations/omnilogic.markdown @oliver84 @djtimca @gentoosu source/_integrations/onboarding.markdown @home-assistant/core source/_integrations/onewire.markdown @garbled1 source/_integrations/onvif.markdown @hunterjm @@ -339,6 +343,7 @@ source/_integrations/raincloud.markdown @vanstinator source/_integrations/rainforest_eagle.markdown @gtdiehl @jcalbert source/_integrations/rainmachine.markdown @bachya source/_integrations/random.markdown @fabaff +source/_integrations/rejseplanen.markdown @DarkFox source/_integrations/repetier.markdown @MTrab source/_integrations/rfxtrx.markdown @danielhiversen @elupus source/_integrations/ring.markdown @balloob @@ -347,6 +352,7 @@ source/_integrations/rmvtransport.markdown @cgtobi source/_integrations/roku.markdown @ctalkington source/_integrations/roomba.markdown @pschmitt @cyr-ius @shenxn source/_integrations/roon.markdown @pavoni +source/_integrations/rpi_power.markdown @shenxn @swetoast source/_integrations/safe_mode.markdown @home-assistant/core source/_integrations/saj.markdown @fredericvl source/_integrations/salt.markdown @bjornorri @@ -389,9 +395,11 @@ source/_integrations/soma.markdown @ratsept source/_integrations/somfy.markdown @tetienne source/_integrations/sonarr.markdown @ctalkington source/_integrations/songpal.markdown @rytilahti @shenxn +source/_integrations/sonos.markdown @cgtobi source/_integrations/spaceapi.markdown @fabaff source/_integrations/speedtestdotnet.markdown @rohankapoorcom @engrbm87 source/_integrations/spider.markdown @peternijssen +source/_integrations/splunk.markdown @Bre77 source/_integrations/spotify.markdown @frenck source/_integrations/sql.markdown @dgomes source/_integrations/squeezebox.markdown @rajlaud @@ -411,7 +419,7 @@ source/_integrations/switchbot.markdown @danielhiversen source/_integrations/switcher_kis.markdown @tomerfi source/_integrations/switchmate.markdown @danielhiversen source/_integrations/syncthru.markdown @nielstron -source/_integrations/synology_dsm.markdown @ProtoThis @Quentame +source/_integrations/synology_dsm.markdown @hacf-fr @Quentame source/_integrations/synology_srm.markdown @aerialls source/_integrations/syslog.markdown @fabaff source/_integrations/tado.markdown @michaelarnauts @bdraco diff --git a/Gemfile.lock b/Gemfile.lock index eb6b6400e3b..5ad61fadc5d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -86,7 +86,7 @@ GEM rb-inotify (0.10.1) ffi (~> 1.0) rexml (3.2.4) - rouge (3.23.0) + rouge (3.24.0) ruby-enum (0.8.0) i18n ruby2_keywords (0.0.2) @@ -109,7 +109,7 @@ GEM tilt (2.0.10) tzinfo (2.0.2) concurrent-ruby (~> 1.0) - tzinfo-data (1.2020.1) + tzinfo-data (1.2020.3) tzinfo (>= 1.0.0) unicode-display_width (1.7.0) diff --git a/_config.yml b/_config.yml index 00b16da8cc7..d5494fa77e9 100644 --- a/_config.yml +++ b/_config.yml @@ -99,9 +99,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 115 -current_patch_version: 6 -date_released: 2020-09-30 +current_minor_version: 116 +current_patch_version: 4 +date_released: 2020-10-15 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/package-lock.json b/package-lock.json index 4f49740717a..e9e1574d266 100644 --- a/package-lock.json +++ b/package-lock.json @@ -605,11 +605,14 @@ "integrity": "sha512-KmU+kGi7vG5toUhNdLHHPxyVN1mNGcjMVe1tNDEXT1wU/3oqA96bunElrROWHYw5iNt1QVRaIAtNeMVyzyAdVA==", "dev": true }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true + "@types/mdast": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz", + "integrity": "sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==", + "dev": true, + "requires": { + "@types/unist": "*" + } }, "@types/unist": { "version": "2.0.3", @@ -648,12 +651,11 @@ "dev": true }, "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, @@ -731,12 +733,6 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, - "ccount": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.5.tgz", - "integrity": "sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw==", - "dev": true - }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -778,9 +774,9 @@ "dev": true }, "chokidar": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz", - "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", "dev": true, "requires": { "anymatch": "~3.1.1", @@ -790,7 +786,7 @@ "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" + "readdirp": "~3.5.0" } }, "co": { @@ -1175,12 +1171,6 @@ "integrity": "sha512-eEMa6MKpHFzw38eKm56iNNi6GJ7lf6aLLio7Kr23sJPAECscgRtZvOBYybejWDQ2bM949Y++61PY+udzj5QMLA==", "dev": true }, - "is-alphanumeric": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", - "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=", - "dev": true - }, "is-alphanumerical": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.3.tgz", @@ -1351,6 +1341,12 @@ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, "json-stable-stringify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", @@ -1561,15 +1557,6 @@ "integrity": "sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==", "dev": true }, - "markdown-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", - "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", - "dev": true, - "requires": { - "repeat-string": "^1.0.0" - } - }, "md5": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", @@ -1595,40 +1582,30 @@ "integrity": "sha512-vTFXtmbbF3rgnTh3Zl3irso4LtvwUq/jaDvT2D1JqTGAwaipcS7RpTxzi6KjoRqI9n2yuAhzLDAC8xVTF3XYVQ==", "dev": true }, - "mdast-util-compact": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz", - "integrity": "sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==", + "mdast-util-from-markdown": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.1.tgz", + "integrity": "sha512-qJXNcFcuCSPqUF0Tb0uYcFDIq67qwB3sxo9RPdf9vG8T90ViKnksFqdB/Coq2a7sTnxL/Ify2y7aIQXDkQFH0w==", "dev": true, "requires": { - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^1.0.0", + "micromark": "~2.10.0", + "parse-entities": "^2.0.0" }, "dependencies": { - "unist-util-is": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", - "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==", - "dev": true - }, - "unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", "dev": true, "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - } - }, - "unist-util-visit-parents": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.0.tgz", - "integrity": "sha512-0g4wbluTF93npyPrp/ymd3tCDTMnP0yo2akFD2FIBAYXq/Sga3lwaU1D8OYKbtpioaI6CkDcQ6fsMnmtzt7htw==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" } } } @@ -1642,6 +1619,69 @@ "micromark-extension-frontmatter": "^0.2.0" } }, + "mdast-util-to-markdown": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.5.1.tgz", + "integrity": "sha512-7WS59irdm7lwd8iyfu+kLF+ktfzlvxLJzI/SwysF1EFFGpkU/G60Q61k7xZ420gsMVkXZ3MlcL3bTYCz5QwDeg==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "longest-streak": "^2.0.0", + "mdast-util-to-string": "^1.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.0.0", + "stringify-entities": "^3.0.0", + "zwitch": "^1.0.0" + }, + "dependencies": { + "parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "dev": true, + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + } + } + }, + "mdast-util-to-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", + "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==", + "dev": true + }, + "micromark": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.10.1.tgz", + "integrity": "sha512-fUuVF8sC1X7wsCS29SYQ2ZfIZYbTymp0EYr6sab3idFjigFFjGa5UwoniPlV9tAgntjuapW1t9U+S0yDYeGKHQ==", + "dev": true, + "requires": { + "debug": "^4.0.0", + "parse-entities": "^2.0.0" + }, + "dependencies": { + "parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "dev": true, + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + } + } + }, "micromark-extension-frontmatter": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-0.2.2.tgz", @@ -1996,9 +2036,9 @@ } }, "readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "dev": true, "requires": { "picomatch": "^2.2.1" @@ -2015,24 +2055,24 @@ } }, "remark": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/remark/-/remark-12.0.1.tgz", - "integrity": "sha512-gS7HDonkdIaHmmP/+shCPejCEEW+liMp/t/QwmF0Xt47Rpuhl32lLtDV1uKWvGoq+kxr5jSgg5oAIpGuyULjUw==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", + "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", "dev": true, "requires": { - "remark-parse": "^8.0.0", - "remark-stringify": "^8.0.0", - "unified": "^9.0.0" + "remark-parse": "^9.0.0", + "remark-stringify": "^9.0.0", + "unified": "^9.1.0" } }, "remark-cli": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-8.0.1.tgz", - "integrity": "sha512-UaYeFI5qUAzkthUd8/MLBQD5OKM6jLN8GRvF6v+KF7xO/i1jQ+X2VqUSQAxWFYxZ8R25gM56GVjeoKOZ0EIr8A==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-9.0.0.tgz", + "integrity": "sha512-y6kCXdwZoMoh0Wo4Och1tDW50PmMc86gW6GpF08v9d+xUCEJE2wwXdQ+TnTaUamRnfFdU+fE+eNf2PJ53cyq8g==", "dev": true, "requires": { "markdown-extensions": "^1.1.0", - "remark": "^12.0.0", + "remark": "^13.0.0", "unified-args": "^8.0.0" } }, @@ -2047,9 +2087,9 @@ } }, "remark-lint": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-7.0.1.tgz", - "integrity": "sha512-caZXo3qhuBxzvq9JSJFVQ/ERDq/6TJVgWn0KDwKOIJCGOuLXfQhby5XttUq+Rn7kLbNMtvwfWHJlte14LpaeXQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-8.0.0.tgz", + "integrity": "sha512-ESI8qJQ/TIRjABDnqoFsTiZntu+FRifZ5fJ77yX63eIDijl/arvmDvT+tAf75/Nm5BFL4R2JFUtkHRGVjzYUsg==", "dev": true, "requires": { "remark-message-control": "^6.0.0" @@ -2147,123 +2187,21 @@ } }, "remark-parse": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", - "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", + "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", "dev": true, "requires": { - "ccount": "^1.0.0", - "collapse-white-space": "^1.0.2", - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "is-word-character": "^1.0.0", - "markdown-escapes": "^1.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "trim": "0.0.1", - "trim-trailing-lines": "^1.0.0", - "unherit": "^1.0.4", - "unist-util-remove-position": "^2.0.0", - "vfile-location": "^3.0.0", - "xtend": "^4.0.1" - }, - "dependencies": { - "parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "dev": true, - "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - } - }, - "unist-util-is": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", - "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==", - "dev": true - }, - "unist-util-remove-position": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", - "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", - "dev": true, - "requires": { - "unist-util-visit": "^2.0.0" - } - }, - "unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - } - }, - "unist-util-visit-parents": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.0.tgz", - "integrity": "sha512-0g4wbluTF93npyPrp/ymd3tCDTMnP0yo2akFD2FIBAYXq/Sga3lwaU1D8OYKbtpioaI6CkDcQ6fsMnmtzt7htw==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - } - }, - "vfile-location": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.0.1.tgz", - "integrity": "sha512-yYBO06eeN/Ki6Kh1QAkgzYpWT1d3Qln+ZCtSbJqFExPl1S3y2qqotJQXoh6qEvl/jDlgpUJolBn3PItVnnZRqQ==", - "dev": true - } + "mdast-util-from-markdown": "^0.8.0" } }, "remark-stringify": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.1.1.tgz", - "integrity": "sha512-q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.0.tgz", + "integrity": "sha512-8x29DpTbVzEc6Dwb90qhxCtbZ6hmj3BxWWDpMhA+1WM4dOEGH5U5/GFe3Be5Hns5MvPSFAr1e2KSVtKZkK5nUw==", "dev": true, "requires": { - "ccount": "^1.0.0", - "is-alphanumeric": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "longest-streak": "^2.0.1", - "markdown-escapes": "^1.0.0", - "markdown-table": "^2.0.0", - "mdast-util-compact": "^2.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "stringify-entities": "^3.0.0", - "unherit": "^1.0.4", - "xtend": "^4.0.1" - }, - "dependencies": { - "parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "dev": true, - "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - } - } + "mdast-util-to-markdown": "^0.5.0" } }, "repeat-string": { @@ -2465,9 +2403,9 @@ } }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -2747,9 +2685,9 @@ } }, "unified": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.0.0.tgz", - "integrity": "sha512-ssFo33gljU3PdlWLjNp15Inqb77d6JnJSfyplGJPT/a+fNRNyCBeveBAYJdO5khKdF6WVHa/yYCC7Xl6BDwZUQ==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", + "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", "dev": true, "requires": { "bail": "^1.0.0", @@ -2802,14 +2740,14 @@ }, "dependencies": { "parse-json": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", - "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1", + "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } } @@ -2841,9 +2779,9 @@ "dev": true }, "unist-util-visit": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.2.tgz", - "integrity": "sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", "dev": true, "requires": { "@types/unist": "^2.0.0", @@ -2852,9 +2790,9 @@ } }, "unist-util-visit-parents": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz", - "integrity": "sha512-yJEfuZtzFpQmg1OSCyS9M5NJRrln/9FbYosH3iW0MG402QbdbaB8ZESwUv9RO6nRfLAKvWcMxCwdLWOov36x/g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.0.tgz", + "integrity": "sha512-0g4wbluTF93npyPrp/ymd3tCDTMnP0yo2akFD2FIBAYXq/Sga3lwaU1D8OYKbtpioaI6CkDcQ6fsMnmtzt7htw==", "dev": true, "requires": { "@types/unist": "^2.0.0", @@ -2862,9 +2800,9 @@ } }, "vfile-location": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.0.1.tgz", - "integrity": "sha512-yYBO06eeN/Ki6Kh1QAkgzYpWT1d3Qln+ZCtSbJqFExPl1S3y2qqotJQXoh6qEvl/jDlgpUJolBn3PItVnnZRqQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.1.0.tgz", + "integrity": "sha512-FCZ4AN9xMcjFIG1oGmZKo61PjwJHRVA+0/tPUP2ul4uIwjGGndIxavEMRpWn5p4xwm/ZsdXp9YNygf1ZyE4x8g==", "dev": true } } @@ -2955,9 +2893,9 @@ } }, "vfile": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.1.1.tgz", - "integrity": "sha512-lRjkpyDGjVlBA7cDQhQ+gNcvB1BGaTHYuSOcY3S7OhDmBtnzX95FhtZZDecSTDm6aajFymyve6S5DN4ZHGezdQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.0.tgz", + "integrity": "sha512-a/alcwCvtuc8OX92rqqo7PflxiCgXRFjdyoGVuYV+qbgCb0GgZJRvIgCD4+U/Kl1yhaRsaTwksF88xbPyGsgpw==", "dev": true, "requires": { "@types/unist": "^2.0.0", @@ -3074,6 +3012,12 @@ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true + }, + "zwitch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", + "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", + "dev": true } } } diff --git a/package.json b/package.json index f261532d4bd..2c9d1a4c804 100644 --- a/package.json +++ b/package.json @@ -4,12 +4,12 @@ "version": "1.0.0", "dependencies": {}, "devDependencies": { - "remark-cli": "^8.0.1", + "remark-cli": "^9.0.0", "remark-frontmatter": "^3.0.0", - "remark-lint": "^7.0.1", + "remark-lint": "^8.0.0", "remark-lint-fenced-code-flag": "^2.0.1", "remark-lint-no-shell-dollars": "^2.0.2", - "remark-stringify": "^8.1.1", + "remark-stringify": "^9.0.0", "textlint": "^11.7.6", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-terminology": "^2.1.4" diff --git a/sass/custom/_component_page.scss b/sass/custom/_component_page.scss index c52b3dc6107..1b337c6d226 100644 --- a/sass/custom/_component_page.scss +++ b/sass/custom/_component_page.scss @@ -46,6 +46,10 @@ @media only screen and (min-width: $desk-start) { #components-page { .filter-button-group { + .active { + font-weight: bold; + } + .featured { margin: 12px 0; } diff --git a/source/.well-known/microsoft-identity-association.json b/source/.well-known/microsoft-identity-association.json new file mode 100644 index 00000000000..deff752e413 --- /dev/null +++ b/source/.well-known/microsoft-identity-association.json @@ -0,0 +1,7 @@ +{ + "associatedApplications": [ + { + "applicationId": "1fe091a7-b8e9-49a6-b639-b2d65970a310" + } + ] +} diff --git a/source/_cookbook/notify.mqtt.markdown b/source/_cookbook/notify.mqtt.markdown index 00e08139241..6ddb0d6de35 100644 --- a/source/_cookbook/notify.mqtt.markdown +++ b/source/_cookbook/notify.mqtt.markdown @@ -8,7 +8,7 @@ ha_iot_class: Configurable The MQTT notification support is different than the other [notification](/integrations/notify/) platforms. It is a service. This means that you don't have to create a configuration entry but you need to provide more details when calling the service. -**Call Service** section from the service developer tool icon **Developer Tools** allows you to send MQTT messages. Choose *mqtt.publish* from the list of **Available services:** and enter something like the sample below into the **Service Data** field and hit **CALL SERVICE**. +**Call Service** section from **Developer Tools** -> **Services** allows you to send MQTT messages. Choose *mqtt.publish* from the list of **Available services:** and enter something like the sample below into the **Service Data** field and hit **CALL SERVICE**. ```json {"payload": "Test message from HA", "topic": "home/notification", "qos": 0, "retain": 0} diff --git a/source/_docs/automation.markdown b/source/_docs/automation.markdown index 81844501ffd..6294c48f783 100644 --- a/source/_docs/automation.markdown +++ b/source/_docs/automation.markdown @@ -41,4 +41,4 @@ Automation rules interact directly with the internal state of Home Assistant, so State changes can be used as the source of triggers and the current state can be used in conditions. -Actions are all about calling services. To explore the available services open the Services developer tool. Services allow to change anything. For example turn on a light, run a script or enable a scene. Each service has a domain and a name. For example the service `light.turn_on` is capable of turning on any light in your system. Services can be passed parameters to for example tell which device to turn on or what color to use. +Actions are all about calling services. To explore the available services open the **Developer Tools** -> **Services**. Services allow to change anything. For example turn on a light, run a script or enable a scene. Each service has a domain and a name. For example the service `light.turn_on` is capable of turning on any light in your system. Services can be passed parameters to for example tell which device to turn on or what color to use. diff --git a/source/_docs/automation/templating.markdown b/source/_docs/automation/templating.markdown index c990014489a..fbbec6af4e7 100644 --- a/source/_docs/automation/templating.markdown +++ b/source/_docs/automation/templating.markdown @@ -167,6 +167,7 @@ The following tables show the available trigger data per platform. | `trigger.webhook_id` | The webhook ID that was triggered. | `trigger.json` | The JSON data of the request (if it had a JSON content type). | `trigger.data` | The form data of the request (if it had a form data content type). +| `trigger.query` | The URL query parameters of the request (if provided). ### Zone diff --git a/source/_docs/configuration.markdown b/source/_docs/configuration.markdown index 1c51b041608..b3ef7f15199 100644 --- a/source/_docs/configuration.markdown +++ b/source/_docs/configuration.markdown @@ -41,7 +41,7 @@ The most basic is to use SSH to connect to the system (you may need to install t ## Reloading changes You will have to restart Home Assistant for most changes to `configuration.yaml` to take effect. -You can load changes to [automations](/docs/automation/), [core (customize)](/docs/configuration/customizing-devices/), [groups](/integrations/group/), [input_booleans](/integrations/input_boolean/), [input_datetimes](/integrations/input_datetime/), [input_numbers](/integrations/input_number/), [input_selects](/integrations/input_select/), [input_texts](/integrations/input_text/), [persons](/integrations/person/), [scenes](/integrations/scene/), [scripts](/integrations/script/), [timers](/integrations/timer/), and [zones](/integrations/zone/) without restarting. +You can load changes to [automations](/docs/automation/), [core (customize)](/docs/configuration/customizing-devices/), [groups](/integrations/group/), [history stats](/integrations/history_stats/), [HomeKit](/integrations/homekit/), [input_booleans](/integrations/input_boolean/), [input_datetimes](/integrations/input_datetime/), [input_numbers](/integrations/input_number/), [input_selects](/integrations/input_select/), [input_texts](/integrations/input_text/), [MQTT](/integrations/mqtt/), [persons](/integrations/person/), [scenes](/integrations/scene/), [scripts](/integrations/script/), [statistics](/integrations/statistics/), [template sensors](/integrations/template/), [timers](/integrations/timer/), [zones](/integrations/zone/), and more without restarting.
diff --git a/source/_docs/configuration/basic.markdown b/source/_docs/configuration/basic.markdown index 945880ce404..00b72a9e30f 100644 --- a/source/_docs/configuration/basic.markdown +++ b/source/_docs/configuration/basic.markdown @@ -28,7 +28,7 @@ homeassistant: legacy_templates: false ``` -NOTE: You will not be able to edit anything in Configuration -> General in the UI if you are using YAML configuration for any of the following: name, latitude, longitute, elevation, unit_system, temperature_unit, time_zone, external_url, internal_url. +NOTE: You will not be able to edit anything in Configuration -> General in the UI if you are using YAML configuration for any of the following: name, latitude, longitude, elevation, unit_system, temperature_unit, time_zone, external_url, internal_url. {% configuration %} name: diff --git a/source/_docs/configuration/customizing-devices.markdown b/source/_docs/configuration/customizing-devices.markdown index 21f5ec32f87..4058d7e93db 100644 --- a/source/_docs/configuration/customizing-devices.markdown +++ b/source/_docs/configuration/customizing-devices.markdown @@ -20,7 +20,7 @@ By default, all of your devices will be visible and have a default icon determin ### Customization using the UI -Under the *Configuration* menu you'll find the *Customization* menu. If this menu item is not visible, enable advanced mode on your [profile page](/docs/authentication/#your-account-profile) first. When you select an entity to customize, you'll see all the existing attributes listed and you can customize those or select an additional supported attribute ([see below](/docs/configuration/customizing-devices/#possible-values)). You may also need to add the following to your `configuration.yaml` file, depending when you started using Home Assistant: +Under the *Configuration* menu you'll find the *Customizations* menu. If this menu item is not visible, enable advanced mode on your [profile page](/docs/authentication/#your-account-profile) first. When you select an entity to customize, you'll see all the existing attributes listed and you can customize those or select an additional supported attribute ([see below](/docs/configuration/customizing-devices/#possible-values)). You may also need to add the following to your `configuration.yaml` file, depending when you started using Home Assistant: ```yaml homeassistant: @@ -53,7 +53,7 @@ device_class: type: device_class default: None unit_of_measurement: - description: Defines the units of measurement, if any. This will also influence the graphical presentation in the history visualisation as continuous value. Sensors with missing `unit_of_measurement` are showing as discrete values. + description: Defines the units of measurement, if any. This will also influence the graphical presentation in the history visualization as continuous value. Sensors with missing `unit_of_measurement` are showing as discrete values. required: false type: string default: None diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index 89d2928c19c..2adfb527848 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -438,7 +438,7 @@ The following overview contains a couple of options to get the needed values: {% raw %}{{ value_json.tst | timestamp_custom('%Y' True) }}{% endraw %} ``` -To evaluate a response, go to the template developer tool icon template developer tools, create your output in "Template", and check the result. +To evaluate a response, go to **Developer Tools** -> **Template**, create your output in "Template editor", and check the result. {% raw %} ```yaml diff --git a/source/_docs/installation.markdown b/source/_docs/installation.markdown index b378aeecb48..8ba3c999d4b 100644 --- a/source/_docs/installation.markdown +++ b/source/_docs/installation.markdown @@ -61,9 +61,9 @@ If you use these install methods, we assume that you know how to manage and admi **Method**|**You have**|**Recommended for** :-----|:-----|:----- -[Home Assistant Core](/docs/installation/raspberry-pi/)|Any Linux, Python 3.7.1 or later|Those familiar with their operating system +[Home Assistant Core](/docs/installation/raspberry-pi/)|Any Linux, Python 3.8 or later|Those familiar with their operating system [Home Assistant Supervised](https://github.com/home-assistant/supervised-installer) | [Requirements](https://github.com/home-assistant/architecture/blob/master/adr/0014-home-assistant-supervised.md#supported-operating-system-system-dependencies-and-versions) | Those very familiar with their operating system -[venv
(as your user)](/docs/installation/virtualenv/)|Any Python 3.7.1 or later|**Developers** +[venv
(as your user)](/docs/installation/virtualenv/)|Any Python 3.8 or later|**Developers** ## Community provided guides diff --git a/source/_docs/installation/docker.markdown b/source/_docs/installation/docker.markdown index b943b08992f..78d5ec0a1cd 100644 --- a/source/_docs/installation/docker.markdown +++ b/source/_docs/installation/docker.markdown @@ -40,13 +40,19 @@ docker rm home-assistant # remove it from Docker's list of containers docker run -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/home-assistant:stable # finally, start a new one ``` -### Raspberry Pi 3 (Raspberry Pi OS) +### Raspberry Pi 3/4 (Raspberry Pi OS) +Raspberry Pi 3: ```bash docker run --init -d --name="home-assistant" -e "TZ=America/New_York" -v /PATH_TO_YOUR_CONFIG:/config --net=host homeassistant/raspberrypi3-homeassistant:stable ``` -You need to replace `/PATH_TO_YOUR_CONFIG` with your path to the configuration, for example if you choose your configuration path to be `/home/pi/homeassistant`, then command would be: +Raspberry Pi 4: +```bash +docker run --init -d --name="home-assistant" -e "TZ=America/New_York" -v /PATH_TO_YOUR_CONFIG:/config --net=host homeassistant/raspberrypi4-homeassistant:stable +``` + +You need to replace `/PATH_TO_YOUR_CONFIG` with your path to the configuration. For example, if you choose your configuration path to be `/home/pi/homeassistant`, the command for **Raspberry Pi 3** would be: ```bash docker run --init -d --name="home-assistant" -e "TZ=America/New_York" -v /home/pi/homeassistant:/config --net=host homeassistant/raspberrypi3-homeassistant:stable @@ -224,7 +230,7 @@ device_tracker: If you change the configuration you have to restart the server. To do that you have 2 options. - 1. You can go to the service developer tool icon service developer tools, select the service `homeassistant/restart` and click "Call Service". + 1. You can go to the **Developer Tools** -> **Services**, select the service `homeassistant.restart` and click "Call Service". 2. Or you can restart it from a terminal by running `docker restart home-assistant` ## Docker Compose diff --git a/source/_docs/installation/raspberry-pi.markdown b/source/_docs/installation/raspberry-pi.markdown index 953681088aa..d1781b35e1b 100644 --- a/source/_docs/installation/raspberry-pi.markdown +++ b/source/_docs/installation/raspberry-pi.markdown @@ -5,7 +5,7 @@ description: "Instructions to install Home Assistant Core on a Raspberry Pi runn This installation of Home Assistant Core requires the Raspberry Pi to run [Raspberry Pi OS Lite](https://www.raspberrypi.org/downloads/raspberry-pi-os/). The installation will be installed in a [Virtual Environment](/docs/installation/virtualenv) with minimal overhead. Instructions assume this is a new installation of Raspberry Pi OS Lite. -You must have Python 3.7 or later installed (including the package `python3-dev`) which is *not* the case for Raspberry Pi OS Stretch. +You must have Python 3.8 or later installed (including the package `python3-dev`) which is *not* the case for Raspberry Pi OS and you will need to install Python manually.
Although these installation steps specifically mention a Raspberry Pi, you can go ahead and proceed on any Linux install as well. This guide is also referred to as the "Advanced Guide" for a virtual environment install. @@ -40,7 +40,7 @@ sudo apt-get upgrade -y Install the dependencies. ```bash -sudo apt-get install python3 python3-dev python3-venv python3-pip libffi-dev libssl-dev libtiff-dev autoconf build-essential libopenjp2-7 +sudo apt-get install python3 python3-dev python3-venv python3-pip libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 ``` Add an account for Home Assistant Core called `homeassistant`. @@ -63,7 +63,7 @@ Next up is to create and change to a virtual environment for Home Assistant Core ```bash sudo -u homeassistant -H -s cd /srv/homeassistant -python3 -m venv . +python3.8 -m venv . source bin/activate ``` diff --git a/source/_docs/installation/virtualenv.markdown b/source/_docs/installation/virtualenv.markdown index 1512598c527..3676ecf1b26 100644 --- a/source/_docs/installation/virtualenv.markdown +++ b/source/_docs/installation/virtualenv.markdown @@ -3,15 +3,15 @@ title: "Installation in Python virtual environment" description: "How to install Home Assistant in a Python virtual environment." --- -If you already have Python 3.7 or later installed, you can easily give Home Assistant a spin. +If you already have Python 3.8 or later installed, you can easily give Home Assistant a spin. -It's recommended when installing Python packages that you use a [virtual environment](https://docs.python.org/3.7/library/venv.html#module-venv). This will make sure that your Python installation and Home Assistant installation won't impact one another. The following steps will work on most UNIX like systems. +It's recommended when installing Python packages that you use a [virtual environment](https://docs.python.org/3.8/library/venv.html#module-venv). This will make sure that your Python installation and Home Assistant installation won't impact one another. The following steps will work on most UNIX like systems.
This is a generic guide for running Home Assistant under Python. We recommend to use [our recommended installation guides](/docs/installation/#recommended). The steps below may be shorter but some users find difficulty when applying updates and may run into issues. -Before you begin the guide below, ensure that you have a *so-called standard* build environment that includes things like `make`, `gcc`, `python3`, including Python 3 `setuptools` and `pip` modules. Less obvious is the need to install `openssl-dev` (for opensslv.h), `libffi-dev` (for cffi.h) for things to build later on, `libopenjp2-7` and `libtiff5` needed for the frontend. +Before you begin the guide below, ensure that you have a *so-called standard* build environment that includes things like `make`, `gcc`, `python3`, including Python 3 `setuptools` and `pip` modules. Less obvious is the need to install `libssl-dev` (for opensslv.h), `libffi-dev` (for cffi.h) for things to build later on, `libjpeg-dev`, `zlib1g-dev`, `libopenjp2-7` and `libtiff5` needed for the frontend.
@@ -24,7 +24,7 @@ It should not contain any OS specific instructions. 1. Create a virtual environment in your current directory: ```bash - python3 -m venv homeassistant + python3.8 -m venv homeassistant ``` 2. Open the virtual environment: ```bash @@ -106,7 +106,7 @@ Looking for more advanced guides? Check our [Raspberry Pi OS guide](/docs/instal ### After upgrading Python -If you've upgraded Python (for example, you were running 3.7.1 and now you've installed 3.7.3) then you'll need to build a new virtual environment. Simply rename your existing virtual environment directory: +If you've upgraded Python (for example, you were running 3.8.1 and now you've installed 3.8.6) then you'll need to build a new virtual environment. Simply rename your existing virtual environment directory: ```bash mv homeassistant homeassistant.old diff --git a/source/_docs/mqtt/birth_will.markdown b/source/_docs/mqtt/birth_will.markdown index c4cc9b5d939..eec087abdca 100644 --- a/source/_docs/mqtt/birth_will.markdown +++ b/source/_docs/mqtt/birth_will.markdown @@ -4,7 +4,7 @@ description: "Instructions on how to setup MQTT birth and last will messages wit logo: mqtt.png --- -Home Assistant's MQTT integration supports so-called Birth and Last Will and Testament (LWT) messages. The former is used to send a message after the service has started, and the latter is used to notify other clients about a disconnected client. Please note that the LWT message will be sent both in case of a clean (e.g. Home Asisstant shutting down) and in case of an unclean (e.g. Home Assistant crashing or losing its network connection) disconnect. +Home Assistant's MQTT integration supports so-called Birth and Last Will and Testament (LWT) messages. The former is used to send a message after the service has started, and the latter is used to notify other clients about a disconnected client. Please note that the LWT message will be sent both in case of a clean (e.g. Home Assistant shutting down) and in case of an unclean (e.g. Home Assistant crashing or losing its network connection) disconnect. By default, Home Assistant sends `online` and `offline` to `homeassistant/status`. diff --git a/source/_docs/mqtt/broker.markdown b/source/_docs/mqtt/broker.markdown index da3a79fd2c4..68b1ffa595b 100644 --- a/source/_docs/mqtt/broker.markdown +++ b/source/_docs/mqtt/broker.markdown @@ -16,7 +16,9 @@ The recommended setup method is to use the [Mosquitto MQTT broker add-on](https:
-There is [an issue](https://github.com/rabbitmq/rabbitmq-mqtt/issues/154) with the RabbitMQ MQTT Plugin which break MQTT message retention. Don't use the RabbitMQ MQTT plugin, instead use another broker like Mosquitto. +Neither ActiveMQ MQTT broker nor the RabbitMQ MQTT Plugin are supported, use a known working broker like Mosquitto instead. +There are [at least two](https://issues.apache.org/jira/browse/AMQ-6360) [issues](https://issues.apache.org/jira/browse/AMQ-6575) with the ActiveMQ MQTT broker which break MQTT message retention. +There is [an issue](https://github.com/rabbitmq/rabbitmq-mqtt/issues/154) with the RabbitMQ MQTT Plugin which breaks MQTT message retention.
diff --git a/source/_docs/scripts.markdown b/source/_docs/scripts.markdown index f1c8043a63d..3c9b06c52dc 100644 --- a/source/_docs/scripts.markdown +++ b/source/_docs/scripts.markdown @@ -64,6 +64,8 @@ Scripts may also use a shortcut syntax for activating scenes instead of calling The variable command allows you to set/override variables that will be accessible by templates in actions after it. +{% raw %} + ```yaml - variables: entities: light.kitchen, light.living_room @@ -75,6 +77,8 @@ The variable command allows you to set/override variables that will be accessibl brightness: "{{ brightness }}" ``` +{% endraw %} + ## Test a Condition While executing a script you can add a condition to stop further execution. When a condition does not return `true`, the script will stop executing. There are many different conditions which are documented at the [conditions page]. diff --git a/source/_docs/z-wave.markdown b/source/_docs/z-wave.markdown index a76eed6860d..9dffc7e31d7 100644 --- a/source/_docs/z-wave.markdown +++ b/source/_docs/z-wave.markdown @@ -19,7 +19,7 @@ The Z-Wave standard was improved with Z-Wave Plus, and if you only use Z-Wave pl ## What do you need to use Z-Wave -There are 2 basic things you'll need to use Z-Wave, a Z-Wave [controller](/docs/z-wave/controllers/) and one or more [devices](/docs/z-wave/devices/). +There are 2 basic things you'll need to use Z-Wave, a Z-Wave [controller](/docs/z-wave/controllers/) and one or more [devices](/docs/z-wave/devices/). ### Regional differences @@ -33,6 +33,6 @@ You can get more information on the [available services](/docs/z-wave/services/) ## Instant status updates -When you toggle a switch or control a light locally you may find that it takes some time for that to be reflected in Home Assistant. That's because Lutron had patents on the status updates using the *Hail* command class, the traditional way of allowing devices to tell the controller that something happened locally. The same result can be achieved through the *Association* command class, or *Central Scene* command class (though, *Central Scene* isn't [fully supported](https://github.com/OpenZWave/open-zwave/pull/1125) in OpenZWave). +When you toggle a switch or control a light locally you may find that it takes some time for that to be reflected in Home Assistant. That's because Lutron had patents on the status updates using the *Hail* command class, the traditional way of allowing devices to tell the controller that something happened locally. The same result can be achieved through the *Association* command class, or *Central Scene* command class (though, *Central Scene* isn't [fully supported](https://github.com/OpenZWave/open-zwave/pull/1125) in OpenZWave). If you search [the Z-Wave products database](https://products.z-wavealliance.org/) for your product and it lists one of those in the **Controlled** command classes (not the **Supported** command classes), then your device will be able to report state changes when they happen. If it doesn't then updates may either happen eventually, or you may need to (carefully) [enable polling](/docs/z-wave/control-panel/#entities-of-this-node). diff --git a/source/_docs/z-wave/adding.markdown b/source/_docs/z-wave/adding.markdown index 6347e5051e8..72becdec805 100644 --- a/source/_docs/z-wave/adding.markdown +++ b/source/_docs/z-wave/adding.markdown @@ -3,6 +3,10 @@ title: "Z-Wave Devices - Adding and Removing" description: "How to add and remove Z-Wave devices." --- +## Recommendation before adding any devices + +Z-Wave devices behave as a mesh and can store network relationship details on the device itself. This means used devices or even brand new devices could already be enrolled in another network, for example, a test network for a brand new device or a previous network for devices that aren't new. This could cause headaches when you're attempting to add/enrol the device to your network. It is recommended that if possible, perform a factory reset AND device perform exclusion or disenroll for the device you're attempting to add to Home Assistant. Steps can found further below on this page under "Removing Devices". + ## Adding Non-Secure Devices To add (include) a non-secure Z-Wave [device](/docs/z-wave/devices/) to your system: @@ -38,7 +42,8 @@ Each individual value in the defined key can be anywhere from 0x00 to 0xFF. Defi ### Network Key -An easy script to generate a random key: +An easy Linux script to generate a random key: +(remember you can run this in Home Assistant OS or Supervised, you can use the Terminal Add-on) ```bash cat /dev/urandom | tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0x\1, /g' -e 's/, $//' @@ -77,10 +82,10 @@ Secure devices require additional bandwidth, and too many secure devices can slo To remove (exclude) a Z-Wave device from your system: -1. Go to the Z-Wave control panel in the Home Assistant frontend +1. Go to the Z-Wave control panel in the Home Assistant frontend. (Home Assistant > Configuration > Integrations > Z-Wave > Configure) 2. Click the **Remove Node** button in the *Z-Wave Network Management* card - this will place the controller in exclusion mode 3. Activate your device to be excluded by following the instructions provided with the device -4. The device will now be removed, but that won't show until you restart Home Assistant +4. The device should now be removed, but that won't show until you restart Home Assistant. Look for a confirmation signal on the device if available, or confirm on the Home Assistant logs. 5. Run a *Heal Network* so all the other nodes learn about its removal If your device isn't responding to this process, possibly because you've factory reset it or it has failed, you can remove it using **Remove Failed Node**. This only works for devices marked as `"is_failed": true`, but you can trick the system into thinking that this the case: diff --git a/source/_docs/z-wave/devices.markdown b/source/_docs/z-wave/devices.markdown index d982a2e6204..2a629c2d7e6 100644 --- a/source/_docs/z-wave/devices.markdown +++ b/source/_docs/z-wave/devices.markdown @@ -38,7 +38,7 @@ From 2 April 2017 all newly approved Z-Wave devices will have to support the Sec Your Z-Wave mesh network is built with the devices that are mains powered (whether directly, or via a USB adapter), these relay traffic for other nodes, building the network. These devices are always awake and you can query them, or send configuration changes, at any time. -Battery powered devices spend most of their time asleep, unable to relay traffic, to be queried, or receive changes. Changes sent while a device is asleep will be queued and sent the next time the device wakes. Details of the default wake interval, and how to manually wake the device (if supported) will be detailed in the devices's manual. Some battery powered devices (primarily locks and thermostats) support beaming (the *Beam* command class) that allows them to be remotely woken. This does require that all devices in the network responsible for relaying the commands between the controller and the device also support beaming. +Battery powered devices spend most of their time asleep, unable to relay traffic, to be queried, or receive changes. Changes sent while a device is asleep will be queued and sent the next time the device wakes. Details of the default wake interval, and how to manually wake the device (if supported) will be detailed in the device's manual. Some battery powered devices (primarily locks and thermostats) support beaming (the *Beam* command class) that allows them to be remotely woken. This does require that all devices in the network responsible for relaying the commands between the controller and the device also support beaming.
@@ -56,7 +56,7 @@ As long as your device lists Hail or Association in its Controlled Command Class Where a device doesn't send updates on status changes to the controller, you can work around this by using a thing called Polling. That causes the controller to ask the device to provide an update on all its sensors and states. This will cause a lot of traffic on the network, and if you poll too many devices too quickly, you can effectively break your Z-Wave network. Polling should only be used where there is no other choice, and you should use as large a polling interval as possible. Ideally you should replace the device. -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. +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 second (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) documentation for details. diff --git a/source/_faq/connection-error.markdown b/source/_faq/connection-error.markdown index ba007cdd559..d31169ca76d 100644 --- a/source/_faq/connection-error.markdown +++ b/source/_faq/connection-error.markdown @@ -10,4 +10,4 @@ It can happen that you get a traceback that notify you about connection issues w ConnectionRefusedError: [Errno 111] Connection refused ``` -The chance is very high that this is not a bug but an issue with the service/daemon itself. Check your network (DNS, DHCP, uplink, etc.) first and make sure that Home Assistant and the service are poperly configured. Keep in mind that webservices can be down. +The chance is very high that this is not a bug but an issue with the service/daemon itself. Check your network (DNS, DHCP, uplink, etc.) first and make sure that Home Assistant and the service are properly configured. Keep in mind that webservices can be down. diff --git a/source/_faq/dependencies.markdown b/source/_faq/dependencies.markdown index 99b5e249c0b..89ca55b8cad 100644 --- a/source/_faq/dependencies.markdown +++ b/source/_faq/dependencies.markdown @@ -4,5 +4,5 @@ description: "Dependencies" ha_category: Usage --- -The dependencies which are used by Home Assistant are stored in the folder `deps` of the [configuration folder](/docs/configuration/) directory. After an [upgrade](/docs/installation/updating/) the dependences will be upgraded as well. +The dependencies which are used by Home Assistant are stored in the folder `deps` of the [configuration folder](/docs/configuration/) directory. After an [upgrade](/docs/installation/updating/) the dependencies will be upgraded as well. diff --git a/source/_faq/missing-documentation.markdown b/source/_faq/missing-documentation.markdown index 3c5e89e033f..07b00a89b61 100644 --- a/source/_faq/missing-documentation.markdown +++ b/source/_faq/missing-documentation.markdown @@ -4,6 +4,6 @@ description: "The documentation is missing or outdated" ha_category: Documentation --- -Home Assistant is a FAST moving open source project. This means occasionally the official documentation will not be 100% current or complete. Since this is an open source volunteer project, we would encourage anyone who finds gaps in the documentation to click the `edit this page on Github` link in the top right and submit any corrections/enhancements they may find useful. +Home Assistant is a FAST moving open source project. This means occasionally the official documentation will not be 100% current or complete. Since this is an open source volunteer project, we would encourage anyone who finds gaps in the documentation to click the `edit this page on Github` link in the top right and submit any corrections/enhancements they may find useful. A step-by-step guide on how to contribute to the documentation can be found [here](https://community.home-assistant.io/t/editing-the-documentation-and-creating-a-pull-request-on-github/9573). In the absence of information, many users find it beneficial to look at other people's configurations to find examples of what they want to accomplish in their own configurations. The easiest way to find these configurations is through this [GitHub search](https://github.com/search?q=topic%3Ahome-assistant-config&type=Repositories). diff --git a/source/_faq/release.markdown b/source/_faq/release.markdown index efd71b3bb34..7594987153b 100644 --- a/source/_faq/release.markdown +++ b/source/_faq/release.markdown @@ -1,12 +1,9 @@ --- title: "Releases" -description: "Releases" +description: "Home Assistant release schedule" ha_category: Common --- -The current release cycle is three weeks. This allows for two weeks of development time and 1 week of beta testing and fixing. Releases usually occur on a Wednesday. There is no fixed time of day when the release will happen because that depends on the person who is finishing the release, it could therefore be Tuesday or Thursday depending on your timezone when its available for you. If there was no announcement made in the previous release notes or on another communication channel then the release will happen. +New versions of Home Assistant are released every three weeks on a Wednesday. The exact dates can be seen in the upcoming events calendar on the [Home Assistant Developers](https://developers.home-assistant.io/) website. -Beta's are normally released on the 2nd Wednesday after the last major release. Please subscribe to the Beta Channel on the [Home Assistant Discord server](https://discord.gg/RMC8WkX) for help running beta versions. -When a beta release is in progress, the release notes for it can be found under [Beta Release Notes](https://rc.home-assistant.io/latest-release-notes/). - -The release schedule is published in the upcoming events calender on the [Home Assistant Developers](https://developers.home-assistant.io/) website. +The third week of our release schedule is primarily focused on beta testing. Users who participate in the beta can view the changelog under [beta release notes](https://rc.home-assistant.io/latest-release-notes/) and get help in the `#beta` channel of [Home Assistant's Discord server](/join-chat). Testers are also encouraged to [report issues on GitHub](/help/#bugs-feature-requests-and-alike). diff --git a/source/_includes/asides/cloud_navigation.html b/source/_includes/asides/cloud_navigation.html index 48ca4058146..b4d936c0579 100644 --- a/source/_includes/asides/cloud_navigation.html +++ b/source/_includes/asides/cloud_navigation.html @@ -1,20 +1,22 @@
-

About Home Assistant

- -
+
+

About Home Assistant

+ +
+ diff --git a/source/_includes/asides/conference_navigation.html b/source/_includes/asides/conference_navigation.html new file mode 100644 index 00000000000..ad1535ea2cd --- /dev/null +++ b/source/_includes/asides/conference_navigation.html @@ -0,0 +1,36 @@ +
+
+

Details

+ +
+ +
+

Contact

+ +
+ +
+

Sponsors

+ +
+ +
diff --git a/source/_includes/asides/hassio_navigation.html b/source/_includes/asides/hassio_navigation.html index dd294ffeaf5..0981ec681b2 100644 --- a/source/_includes/asides/hassio_navigation.html +++ b/source/_includes/asides/hassio_navigation.html @@ -9,6 +9,7 @@
  • {% active_link /addons/ Available add-ons %}
  • {% active_link /hassio/installing_third_party_addons/ Installing third-party add-ons %}
  • {% active_link /hassio/hassos_faq/ Home Assistant OS FAQ %}
  • +
  • {% active_link /hassio/haos_common_tasks/ Home Assistant OS Common tasks %}
  • diff --git a/source/_includes/asides/lovelace_navigation.html b/source/_includes/asides/lovelace_navigation.html index d0cbced919c..aed65885265 100644 --- a/source/_includes/asides/lovelace_navigation.html +++ b/source/_includes/asides/lovelace_navigation.html @@ -12,7 +12,6 @@

    Advanced