diff --git a/Gemfile b/Gemfile
index ff95f49b6f2..9da9617fe7d 100644
--- a/Gemfile
+++ b/Gemfile
@@ -21,7 +21,7 @@ group :jekyll_plugins do
end
gem 'sinatra', '2.1.0'
-gem 'nokogiri', '1.11.1'
+gem 'nokogiri', '1.11.2'
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library
diff --git a/Gemfile.lock b/Gemfile.lock
index bc95e45e3d3..c77920e59cc 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -61,7 +61,7 @@ GEM
nokogiri (~> 1.10)
jekyll-watch (2.2.1)
listen (~> 3.0)
- kramdown (2.3.0)
+ kramdown (2.3.1)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
@@ -74,10 +74,10 @@ GEM
multi_json (1.15.0)
mustermann (1.1.1)
ruby2_keywords (~> 0.0.1)
- nokogiri (1.11.1)
+ nokogiri (1.11.2)
mini_portile2 (~> 2.5.0)
racc (~> 1.4)
- nokogiri (1.11.1-x64-mingw32)
+ nokogiri (1.11.2-x64-mingw32)
racc (~> 1.4)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
@@ -130,7 +130,7 @@ DEPENDENCIES
jekyll-sitemap (= 1.4.0)
jekyll-time-to-read (= 0.1.2)
jekyll-toc (= 0.17.0)
- nokogiri (= 1.11.1)
+ nokogiri (= 1.11.2)
rake (= 13.0.3)
sass-globbing (= 1.1.5)
sassc (= 2.1.0)
diff --git a/package-lock.json b/package-lock.json
index 631b1bc547b..56134db43f0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -104,56 +104,56 @@
"dev": true
},
"@textlint/ast-tester": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-2.3.2.tgz",
- "integrity": "sha512-4e1kyqsHks5POcQmuh7ITVrU/dbYyRUfQarQbeVRPP271n2HnlgnoYyZ10yV2Sb/Ksw+lQf7DPSnwNewXdCWww==",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-2.3.3.tgz",
+ "integrity": "sha512-FNV4B0+kbvVuxvKEEf3NdPtArile940wtJeQx6flw6SLabEYDP+ZVwg7FVO17zopyIsOPmT4yPOJbt93BnDHng==",
"dev": true,
"requires": {
- "@textlint/ast-node-types": "^4.4.1"
+ "@textlint/ast-node-types": "^4.4.2"
},
"dependencies": {
"@textlint/ast-node-types": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz",
- "integrity": "sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA==",
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.2.tgz",
+ "integrity": "sha512-m5brKbI7UY/Q8sbIZ7z1KB8ls04nRILshz5fPQ4EZ04jL19qrrUHJR8A6nK3vJ/GelkDWl4I0VDYSAjLEFQV8g==",
"dev": true
}
}
},
"@textlint/ast-traverse": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-2.3.2.tgz",
- "integrity": "sha512-Dt1s/6x0XWhUNFH2rAa9gL6ODtq232BZuBHuHiOg+SrVwzl+VjOfa3fMQ0LoYixGSyDtwqAlksWcC0KyLz0eSw==",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-2.3.3.tgz",
+ "integrity": "sha512-L+iVejKaethlUKvFyQtBs373GAA5LJCkraAdbL6F6cOiCviKqpFf9HQmdCQAyYOGrjs30LgpsOLsZACgBJ7uOg==",
"dev": true,
"requires": {
- "@textlint/ast-node-types": "^4.4.1"
+ "@textlint/ast-node-types": "^4.4.2"
},
"dependencies": {
"@textlint/ast-node-types": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz",
- "integrity": "sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA==",
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.2.tgz",
+ "integrity": "sha512-m5brKbI7UY/Q8sbIZ7z1KB8ls04nRILshz5fPQ4EZ04jL19qrrUHJR8A6nK3vJ/GelkDWl4I0VDYSAjLEFQV8g==",
"dev": true
}
}
},
"@textlint/feature-flag": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-3.3.2.tgz",
- "integrity": "sha512-7ErQ/UF0IBAd+PkQNBD7yYCDqL2o6leErMDENSWAgUHWLy5TcHr3Orn7qswtBMW5gIyXW9lh+EpllwLJ5qv35w==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-3.3.3.tgz",
+ "integrity": "sha512-YLbKeckvIu4a+IZv/nHW+BGyYZBdCSJxtKyEp8HTfKam8AC26bdU0ryzO7xmmHN0FdPNwAn67AfZTWssKcWUVg==",
"dev": true,
"requires": {
"map-like": "^2.0.0"
}
},
"@textlint/fixer-formatter": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-3.3.2.tgz",
- "integrity": "sha512-aTEyH/rHSzxRLrluSjNhDnMSgIYK60J5AAgprKJCkb9h3dDRuNoiJ+BXh5FXVSSm1tGF0d8pu+Ph8OFBgQOchQ==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-3.3.3.tgz",
+ "integrity": "sha512-4UF1mNFQHB5iDFNFBSK3ss8c5NiAgGxLXijATXJ3SSjhiTb3sQSX3RcB1wMwI0/gcizRm3r5j16Kelv8IOrbzA==",
"dev": true,
"requires": {
- "@textlint/module-interop": "^1.2.2",
- "@textlint/types": "^1.5.2",
+ "@textlint/module-interop": "^1.2.3",
+ "@textlint/types": "^1.5.3",
"chalk": "^1.1.3",
"debug": "^4.3.1",
"diff": "^4.0.2",
@@ -165,18 +165,18 @@
},
"dependencies": {
"@textlint/ast-node-types": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz",
- "integrity": "sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA==",
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.2.tgz",
+ "integrity": "sha512-m5brKbI7UY/Q8sbIZ7z1KB8ls04nRILshz5fPQ4EZ04jL19qrrUHJR8A6nK3vJ/GelkDWl4I0VDYSAjLEFQV8g==",
"dev": true
},
"@textlint/types": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.2.tgz",
- "integrity": "sha512-IdS0h2MCzdY+wjM0+qvl8IW/IxhmVFAVrGu5TmIBpJkihIV7WMa3ITFXIVb0oqwnePUmyLBRIVsCtC66E3QbfQ==",
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.3.tgz",
+ "integrity": "sha512-xWyqdZrBUs66f8hKm3QZO2NEa6mqZAL0nTSBKu2U2Ob9R5r81N/WPvvz5mEqPVPRZrf0hi/lNerFzEIZH4YgnQ==",
"dev": true,
"requires": {
- "@textlint/ast-node-types": "^4.4.1"
+ "@textlint/ast-node-types": "^4.4.2"
}
},
"ansi-regex": {
@@ -264,18 +264,18 @@
}
},
"@textlint/kernel": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-3.4.2.tgz",
- "integrity": "sha512-PpxAtvLGI9ewn+Dbt4j0KMfmMM39/AY3cikmZffu59nyTdIymXMeVMEVkpVZTEUk5OlL27RAON9FF+2u+0fshg==",
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-3.4.3.tgz",
+ "integrity": "sha512-kQUjkVC6kXVuTxVqhPuxgjEaONDH1hliRgi5tMyxGDD3c3IOJVeatutL9vqpbAMgJL7blyTaWSdOJdsqZfCW3g==",
"dev": true,
"requires": {
- "@textlint/ast-node-types": "^4.4.1",
- "@textlint/ast-tester": "^2.3.2",
- "@textlint/ast-traverse": "^2.3.2",
- "@textlint/feature-flag": "^3.3.2",
- "@textlint/source-code-fixer": "^3.4.2",
- "@textlint/types": "^1.5.2",
- "@textlint/utils": "^1.2.2",
+ "@textlint/ast-node-types": "^4.4.2",
+ "@textlint/ast-tester": "^2.3.3",
+ "@textlint/ast-traverse": "^2.3.3",
+ "@textlint/feature-flag": "^3.3.3",
+ "@textlint/source-code-fixer": "^3.4.3",
+ "@textlint/types": "^1.5.3",
+ "@textlint/utils": "^1.2.3",
"debug": "^4.3.1",
"deep-equal": "^1.1.1",
"map-like": "^2.0.0",
@@ -283,18 +283,18 @@
},
"dependencies": {
"@textlint/ast-node-types": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz",
- "integrity": "sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA==",
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.2.tgz",
+ "integrity": "sha512-m5brKbI7UY/Q8sbIZ7z1KB8ls04nRILshz5fPQ4EZ04jL19qrrUHJR8A6nK3vJ/GelkDWl4I0VDYSAjLEFQV8g==",
"dev": true
},
"@textlint/types": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.2.tgz",
- "integrity": "sha512-IdS0h2MCzdY+wjM0+qvl8IW/IxhmVFAVrGu5TmIBpJkihIV7WMa3ITFXIVb0oqwnePUmyLBRIVsCtC66E3QbfQ==",
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.3.tgz",
+ "integrity": "sha512-xWyqdZrBUs66f8hKm3QZO2NEa6mqZAL0nTSBKu2U2Ob9R5r81N/WPvvz5mEqPVPRZrf0hi/lNerFzEIZH4YgnQ==",
"dev": true,
"requires": {
- "@textlint/ast-node-types": "^4.4.1"
+ "@textlint/ast-node-types": "^4.4.2"
}
},
"debug": {
@@ -309,15 +309,15 @@
}
},
"@textlint/linter-formatter": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-3.3.2.tgz",
- "integrity": "sha512-MRa8D1/x6pWycKTwb1QLjtY7GyjgcsYRfV0Gu0Aze5szCa3UDwZSewHycpcAGlIqr8AkqPRfyXi653M47eJ0rA==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-3.3.3.tgz",
+ "integrity": "sha512-njm1VwfG1lVuc9TnzSecNaghRtIAdQVXULc1wHlBoingT/w+bz/SgPvw3eec/rUfzde6ms3O4dFAG3zPNdRoIQ==",
"dev": true,
"requires": {
"@azu/format-text": "^1.0.1",
"@azu/style-format": "^1.0.0",
- "@textlint/module-interop": "^1.2.2",
- "@textlint/types": "^1.5.2",
+ "@textlint/module-interop": "^1.2.3",
+ "@textlint/types": "^1.5.3",
"chalk": "^1.1.3",
"concat-stream": "^1.6.2",
"debug": "^4.3.1",
@@ -334,18 +334,18 @@
},
"dependencies": {
"@textlint/ast-node-types": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz",
- "integrity": "sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA==",
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.2.tgz",
+ "integrity": "sha512-m5brKbI7UY/Q8sbIZ7z1KB8ls04nRILshz5fPQ4EZ04jL19qrrUHJR8A6nK3vJ/GelkDWl4I0VDYSAjLEFQV8g==",
"dev": true
},
"@textlint/types": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.2.tgz",
- "integrity": "sha512-IdS0h2MCzdY+wjM0+qvl8IW/IxhmVFAVrGu5TmIBpJkihIV7WMa3ITFXIVb0oqwnePUmyLBRIVsCtC66E3QbfQ==",
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.3.tgz",
+ "integrity": "sha512-xWyqdZrBUs66f8hKm3QZO2NEa6mqZAL0nTSBKu2U2Ob9R5r81N/WPvvz5mEqPVPRZrf0hi/lNerFzEIZH4YgnQ==",
"dev": true,
"requires": {
- "@textlint/ast-node-types": "^4.4.1"
+ "@textlint/ast-node-types": "^4.4.2"
}
},
"ansi-regex": {
@@ -479,12 +479,12 @@
}
},
"@textlint/markdown-to-ast": {
- "version": "6.3.2",
- "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-6.3.2.tgz",
- "integrity": "sha512-uwndF3PRJ48wTVAEDSy0IAEVJg/scxpdZ1r+QKeGuFfdtaGSrtcgROI6qiVU1g/WNyNfQw+DAA7F8HfM+pmleg==",
+ "version": "6.3.3",
+ "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-6.3.3.tgz",
+ "integrity": "sha512-CG8igvwlmcHb/d2zXDXchXgqofnDsxQDYOMpsk4zv1EN8PL5ycijQgmKJ0yB0ZxFduv0AR22rnJvPtB4ymzCyQ==",
"dev": true,
"requires": {
- "@textlint/ast-node-types": "^4.4.1",
+ "@textlint/ast-node-types": "^4.4.2",
"debug": "^4.3.1",
"remark-frontmatter": "^1.3.3",
"remark-parse": "^5.0.0",
@@ -494,9 +494,9 @@
},
"dependencies": {
"@textlint/ast-node-types": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz",
- "integrity": "sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA==",
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.2.tgz",
+ "integrity": "sha512-m5brKbI7UY/Q8sbIZ7z1KB8ls04nRILshz5fPQ4EZ04jL19qrrUHJR8A6nK3vJ/GelkDWl4I0VDYSAjLEFQV8g==",
"dev": true
},
"debug": {
@@ -597,34 +597,34 @@
}
},
"@textlint/module-interop": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-1.2.2.tgz",
- "integrity": "sha512-B8HPS129lOqzEpRcafYl/OJ2TDxfBw1jGfEhebzwt3kGoMd5pQVih+hUIOl+SfAmLWqCDEniaKn0gw1s+hjSXA==",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-1.2.3.tgz",
+ "integrity": "sha512-BHpF/NSOWZIBJVvwe1Aww9k7lh04lr8xrFpoDfmdp3QolrAakdd5xTso2U1kJpWeZatQgh4naSI2X7IUEM2b2Q==",
"dev": true
},
"@textlint/source-code-fixer": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-3.4.2.tgz",
- "integrity": "sha512-mSGQNO8is21KcHgDh4S8Cx88r7uU+7xpzHLuEuzhgEZfgwz3+tnpk22TrEjNYe1V1+aseU9iCQegVQQr1wroKQ==",
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-3.4.3.tgz",
+ "integrity": "sha512-jXuVMICfnTkg8GKPpuL2gLgUt2IicgKIOAQHw8BN9vGRstdPDth37Qc9iIjM6b68TPbRnDLb7GCENdXYEQKpcg==",
"dev": true,
"requires": {
- "@textlint/types": "^1.5.2",
+ "@textlint/types": "^1.5.3",
"debug": "^4.3.1"
},
"dependencies": {
"@textlint/ast-node-types": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz",
- "integrity": "sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA==",
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.2.tgz",
+ "integrity": "sha512-m5brKbI7UY/Q8sbIZ7z1KB8ls04nRILshz5fPQ4EZ04jL19qrrUHJR8A6nK3vJ/GelkDWl4I0VDYSAjLEFQV8g==",
"dev": true
},
"@textlint/types": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.2.tgz",
- "integrity": "sha512-IdS0h2MCzdY+wjM0+qvl8IW/IxhmVFAVrGu5TmIBpJkihIV7WMa3ITFXIVb0oqwnePUmyLBRIVsCtC66E3QbfQ==",
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.3.tgz",
+ "integrity": "sha512-xWyqdZrBUs66f8hKm3QZO2NEa6mqZAL0nTSBKu2U2Ob9R5r81N/WPvvz5mEqPVPRZrf0hi/lNerFzEIZH4YgnQ==",
"dev": true,
"requires": {
- "@textlint/ast-node-types": "^4.4.1"
+ "@textlint/ast-node-types": "^4.4.2"
}
},
"debug": {
@@ -639,38 +639,38 @@
}
},
"@textlint/text-to-ast": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-3.3.2.tgz",
- "integrity": "sha512-+DKAP62ho21KID8IcKy1kP6K+kUZk+Z0MwvS9u2l39J0cK+vX523KI+sA6AXxEhOMDA8zhdIsBf3onGvrAtyhA==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-3.3.3.tgz",
+ "integrity": "sha512-Y1hRnI+PoCbomQZtnog31DCUgz/diW4X72F7x/bn/VkUg6xq55GAsn2OB4qWvduQMrA+71lOfBMK3tcGJ8Q4Mg==",
"dev": true,
"requires": {
- "@textlint/ast-node-types": "^4.4.1"
+ "@textlint/ast-node-types": "^4.4.2"
},
"dependencies": {
"@textlint/ast-node-types": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz",
- "integrity": "sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA==",
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.2.tgz",
+ "integrity": "sha512-m5brKbI7UY/Q8sbIZ7z1KB8ls04nRILshz5fPQ4EZ04jL19qrrUHJR8A6nK3vJ/GelkDWl4I0VDYSAjLEFQV8g==",
"dev": true
}
}
},
"@textlint/textlint-plugin-markdown": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-5.3.2.tgz",
- "integrity": "sha512-6Ph7ESKR48tEz5Pnog3PpvF84LU3jkADvr4iBkkVz9vLQt3KbqGnmk8EV94Y0hLEX+UrZKWmH3cJfh6O1Zy/eA==",
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-5.3.3.tgz",
+ "integrity": "sha512-AnScn1Qt7NMw3K0wNUtJYyGYr6DLe/wsnQbtLd3xjS+6Ky8C+6Ohd+ms1DKH0vRztc8huM/wmV7n5Bx+1qBevA==",
"dev": true,
"requires": {
- "@textlint/markdown-to-ast": "^6.3.2"
+ "@textlint/markdown-to-ast": "^6.3.3"
}
},
"@textlint/textlint-plugin-text": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-4.3.2.tgz",
- "integrity": "sha512-xnjad0bXaM6ZtgffuFKogHYkzXymUK3VTLP5MGA00kLitADlNUtwXQk82TebkXFcSPRhePU9+2XFipXNQDsg7g==",
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-4.3.3.tgz",
+ "integrity": "sha512-NKbCbiSYA8mdg74HR+GQDO9q7RRHimnQ88YL0vBtP2oq2x1HZccq0mHlw6dlL775YardBAoHu/qxyJbkxSXBgw==",
"dev": true,
"requires": {
- "@textlint/text-to-ast": "^3.3.2"
+ "@textlint/text-to-ast": "^3.3.3"
}
},
"@textlint/types": {
@@ -683,9 +683,9 @@
}
},
"@textlint/utils": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-1.2.2.tgz",
- "integrity": "sha512-7Mqcl9G9YYrPBv5d/tZ2NlWC66hTUpQEQxZEHDMTdF3gPmQUSNRNGjqUR9mhw00Wy8Wo6i3LUWuxwMT6heHNBQ==",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-1.2.3.tgz",
+ "integrity": "sha512-jN0pbdOJkIAuqyBqsDvk3FYP6BF+YLMlVzE8xbjDhpw7dpr36iEGKGIuRQJZ0+8nq3CPY7W0EcK6o63QoPuPvQ==",
"dev": true
},
"@types/mdast": {
@@ -1156,9 +1156,9 @@
}
},
"graceful-fs": {
- "version": "4.2.5",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.5.tgz",
- "integrity": "sha512-kBBSQbz2K0Nyn+31j/w36fUfxkBW9/gfwRWdUY1ULReH3iokVJgddZAFcD1D0xlgTmFxJCbUkUclAlc6/IDJkw==",
+ "version": "4.2.6",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
+ "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
"dev": true
},
"has": {
@@ -1194,9 +1194,9 @@
"dev": true
},
"has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
+ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
"dev": true
},
"hosted-git-info": {
@@ -1823,12 +1823,12 @@
"dev": true
},
"object-is": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz",
- "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==",
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
+ "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
"dev": true,
"requires": {
- "call-bind": "^1.0.0",
+ "call-bind": "^1.0.2",
"define-properties": "^1.1.3"
}
},
@@ -2276,12 +2276,12 @@
"dev": true
},
"resolve": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz",
- "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==",
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
+ "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
"dev": true,
"requires": {
- "is-core-module": "^2.1.0",
+ "is-core-module": "^2.2.0",
"path-parse": "^1.0.6"
}
},
@@ -2534,22 +2534,22 @@
"dev": true
},
"textlint": {
- "version": "11.8.2",
- "resolved": "https://registry.npmjs.org/textlint/-/textlint-11.8.2.tgz",
- "integrity": "sha512-YrTGagGzWKXYw6VjW4uhJ1y7LoW8zqWZIr8sWgeQVIFE84+G/cHPoZ8RhFlia+RZ4YryZPNOqevuF4vG+dbKNQ==",
+ "version": "11.8.3",
+ "resolved": "https://registry.npmjs.org/textlint/-/textlint-11.8.3.tgz",
+ "integrity": "sha512-UrknrF3Sgkksq9aI3Y0gs4FBRgAy2oaonAhLOufWs7kA0ulmj3FVYGPA5UPVEKQHUWbnuOaqDteLDs+/9hRc9g==",
"dev": true,
"requires": {
- "@textlint/ast-node-types": "^4.4.1",
- "@textlint/ast-traverse": "^2.3.2",
- "@textlint/feature-flag": "^3.3.2",
- "@textlint/fixer-formatter": "^3.3.2",
- "@textlint/kernel": "^3.4.2",
- "@textlint/linter-formatter": "^3.3.2",
- "@textlint/module-interop": "^1.2.2",
- "@textlint/textlint-plugin-markdown": "^5.3.2",
- "@textlint/textlint-plugin-text": "^4.3.2",
- "@textlint/types": "^1.5.2",
- "@textlint/utils": "^1.2.2",
+ "@textlint/ast-node-types": "^4.4.2",
+ "@textlint/ast-traverse": "^2.3.3",
+ "@textlint/feature-flag": "^3.3.3",
+ "@textlint/fixer-formatter": "^3.3.3",
+ "@textlint/kernel": "^3.4.3",
+ "@textlint/linter-formatter": "^3.3.3",
+ "@textlint/module-interop": "^1.2.3",
+ "@textlint/textlint-plugin-markdown": "^5.3.3",
+ "@textlint/textlint-plugin-text": "^4.3.3",
+ "@textlint/types": "^1.5.3",
+ "@textlint/utils": "^1.2.3",
"debug": "^4.3.1",
"deep-equal": "^1.1.1",
"file-entry-cache": "^5.0.1",
@@ -2571,18 +2571,18 @@
},
"dependencies": {
"@textlint/ast-node-types": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz",
- "integrity": "sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA==",
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.2.tgz",
+ "integrity": "sha512-m5brKbI7UY/Q8sbIZ7z1KB8ls04nRILshz5fPQ4EZ04jL19qrrUHJR8A6nK3vJ/GelkDWl4I0VDYSAjLEFQV8g==",
"dev": true
},
"@textlint/types": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.2.tgz",
- "integrity": "sha512-IdS0h2MCzdY+wjM0+qvl8IW/IxhmVFAVrGu5TmIBpJkihIV7WMa3ITFXIVb0oqwnePUmyLBRIVsCtC66E3QbfQ==",
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.3.tgz",
+ "integrity": "sha512-xWyqdZrBUs66f8hKm3QZO2NEa6mqZAL0nTSBKu2U2Ob9R5r81N/WPvvz5mEqPVPRZrf0hi/lNerFzEIZH4YgnQ==",
"dev": true,
"requires": {
- "@textlint/ast-node-types": "^4.4.1"
+ "@textlint/ast-node-types": "^4.4.2"
}
},
"debug": {
@@ -3064,4 +3064,4 @@
"dev": true
}
}
-}
\ No newline at end of file
+}
diff --git a/package.json b/package.json
index 9024bd4959a..0e2ec72a771 100644
--- a/package.json
+++ b/package.json
@@ -10,7 +10,7 @@
"remark-lint-fenced-code-flag": "^2.0.1",
"remark-lint-no-shell-dollars": "^2.0.2",
"remark-stringify": "^9.0.1",
- "textlint": "^11.8.2",
+ "textlint": "^11.8.3",
"textlint-rule-common-misspellings": "^1.0.1",
"textlint-rule-terminology": "^2.1.5"
},
diff --git a/source/_docs/automation.markdown b/source/_docs/automation.markdown
index 85a9b72a15e..1d1df61bd3c 100644
--- a/source/_docs/automation.markdown
+++ b/source/_docs/automation.markdown
@@ -3,14 +3,14 @@ title: "Automating Home Assistant"
description: "Steps to help you get automation setup in Home Assistant."
---
-Home Assistant contains information about all your devices and services. This information is not only available for the user in the dashboard, it can also be used to trigger automations. And that's fun!
+Home Assistant contains information about all your devices and services. This information is available for the user in the dashboard and it can be used to trigger automations. And that's fun!
Automations in Home Assistant allow you to automatically respond to things that happen. You can turn the lights on at sunset or pause the music when you receive a call.
-If you are just starting out, we strongly suggest you start with blueprint automations. These are ready-made automations by the community that you only need to configure.
+If you are just starting out, we recommend that you start with blueprint automations. These are ready-made automations by the community that you only need to configure.
### [Learn about automation blueprints »](/docs/automation/using_blueprints/)
-If you got the hang of blueprints and need more, it's time for the next step. But before we can start creating automations, you will need to learn about the automation basics.
+If you have got the hang of blueprints and would like to explore more, it's time for the next step. But before you start creating automations, you will need to learn about the automation basics.
### [Learn about automation basics »](/docs/automation/basics/)
diff --git a/source/_docs/automation/using_blueprints.markdown b/source/_docs/automation/using_blueprints.markdown
index a17617bacd1..61db6a92a1b 100644
--- a/source/_docs/automation/using_blueprints.markdown
+++ b/source/_docs/automation/using_blueprints.markdown
@@ -44,3 +44,7 @@ The Home Assistant Community forums have a specific tag for blueprints. This tag
[Visit the Home Assistant forums][blueprint-forums]
[blueprint-forums]: /get-blueprints
+
+## Troubleshooting missing automations
+
+When you're creating automations using blueprints and they don't appear in the UI, make sure that you add back `automation: !include automations.yaml` from the default configuration to your `configuration.yaml`.
diff --git a/source/_docs/blueprint/selectors.markdown b/source/_docs/blueprint/selectors.markdown
index 28b6fee89bf..900abfe07de 100644
--- a/source/_docs/blueprint/selectors.markdown
+++ b/source/_docs/blueprint/selectors.markdown
@@ -10,7 +10,7 @@ Some selectors can, for example, show a toggle button to turn something
on or off, while another select can filter a list of devices to show
only devices that have motion-sensing capabilities.
-Having the good selectors set on your blueprint automations inputs makes a
+Having good selectors set on your blueprint automation inputs makes a
blueprint easier to use from the UI.
The following selectors are currently available:
@@ -53,7 +53,7 @@ The add-on selector allows the user to input an add-on slug.
On the user interface, it will list all installed add-ons and use the slug of the
selected add-on.
-
+
This selector does not have any other options; therefore, it only has its key.
@@ -71,7 +71,7 @@ and entities that are assigned to those areas. For example, the areas list could
be limited to areas with entities provided by the [ZHA](/integrations/zha)
integration.
-In its most basic form, it doesn't require any options, which will show
+In its most basic form, this selector doesn't require any options, which will show
all areas.
```yaml
@@ -183,9 +183,9 @@ A device selector can filter the list of devices, based on things like the
manufacturer or model of the device, the entities the device provides or based
on the domain that provided the device.
-
+
-In its most basic form, it doesn't require any options, which will show
+In its most basic form, this selector doesn't require any options, which will show
all devices.
```yaml
@@ -270,7 +270,7 @@ entity.

-In its most basic form, it doesn't require any options, which will show
+In its most basic form, this selector doesn't require any options, which will show
all entities.
```yaml
@@ -329,7 +329,7 @@ On the user interface, the input can either be in a slider or number mode.
Both modes limit the user input by a minimal and maximum value, and can
have a unit of measurement to go with it.
-In its most basic form, it requires a minimal and maximum value:
+In its most basic form, this selector requires a minimal and maximum value:
```yaml
number:
@@ -425,7 +425,7 @@ options:
## Target selector
-The target selector is a rather special selector, allowing the user to selector
+The target selector is a rather special selector, allowing the user to select
targeted entities, devices or areas for service calls. The value of
the input will contain a special target format, that is accepted by
service calls.
@@ -436,7 +436,7 @@ those properties in those areas.

-Its most basic form, doesn't require any options, which will allow the
+In its most basic form, this selector does not require any options, which will allow the
user to target any entity, device or area available in the system.
```yaml
diff --git a/source/_docs/configuration/customizing-devices.markdown b/source/_docs/configuration/customizing-devices.markdown
index 6b6f5b57917..29d66e54b92 100644
--- a/source/_docs/configuration/customizing-devices.markdown
+++ b/source/_docs/configuration/customizing-devices.markdown
@@ -39,7 +39,7 @@ entity_picture:
required: false
type: string
icon:
- description: "Any icon from [MaterialDesignIcons.com](http://MaterialDesignIcons.com) ([Cheatsheet](https://cdn.materialdesignicons.com/5.3.45/)). Prefix name with `mdi:`, ie `mdi:home`. Note: Newer icons may not yet be available in the current Home Assistant release. You can check when an icon was added to MaterialDesignIcons.com at [MDI History](https://materialdesignicons.com/history)."
+ description: "Any icon from [MaterialDesignIcons.com](http://materialdesignicons.com). Prefix name with `mdi:`, ie `mdi:home`. Note: Newer icons may not yet be available in the current Home Assistant release. You can check when an icon was added to MaterialDesignIcons.com at [MDI History](https://materialdesignicons.com/history)."
required: false
type: string
assumed_state:
diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown
index 73b694f2075..40fa6242265 100644
--- a/source/_docs/configuration/templating.markdown
+++ b/source/_docs/configuration/templating.markdown
@@ -63,7 +63,7 @@ Extensions allow templates to access all of the Home Assistant specific states a
### Limited Templates
-Templates for some triggers [triggers](/docs/automation/trigger/) as well as `trigger_variables` only support a subset of the Home Assistant template extensions. This subset is referred to as "Limited Templates".
+Templates for some [triggers](/docs/automation/trigger/) as well as `trigger_variables` only support a subset of the Home Assistant template extensions. This subset is referred to as "Limited Templates".
### States
diff --git a/source/_docs/locked_out.md b/source/_docs/locked_out.md
index e7be0bfe88b..d2fba55b095 100644
--- a/source/_docs/locked_out.md
+++ b/source/_docs/locked_out.md
@@ -12,7 +12,7 @@ or need to recover your data.
If you are still logged in to the web interface with your user, then you are in luck. Add a new user as an administrator and give the new user a password you can remember. Then log out, and log in with this new user. You may then reset your password via this new administrator account (and then delete this new account), or you can delete your old user account. Either way, your configuration will remain, and you don't have to do a new onboarding process.
-If you’ve forgotten your username, then deleting the files mentioned above will be necessary to start a new onboarding process.
+If you’ve forgotten your username, then deleting the files mentioned further below will be necessary to start a new onboarding process.
#### To reset a user's password, via console
If you know the username, but not the password and you can access the [Home Assistant console](https://www.home-assistant.io/hassio/commandline/) and use the command below:
diff --git a/source/_docs/scripts.markdown b/source/_docs/scripts.markdown
index a04eeb290dc..7c5813f1dfb 100644
--- a/source/_docs/scripts.markdown
+++ b/source/_docs/scripts.markdown
@@ -610,6 +610,64 @@ automation:
{% endraw %}
+
+More `choose` can be used together. This is the case of an IF-IF.
+
+The following example shows how a single automation can control entities that aren't related to each other but have in common the same trigger.
+
+When the sun goes below the horizon, the `porch` and `garden` lights must turn on. If someone is watching the TV in the living room, there is a high chance that someone is in that room, therefore the living room lights have to turn on too. The same concept applies to the `studio` room.
+
+{% raw %}
+
+```yaml
+# Example with "if" and "if"
+automation:
+ - alias: "Turn lights on when the sun gets dim and if some room is occupied"
+ trigger:
+ - platform: numeric_state
+ entity_id: sun.sun
+ attribute: elevation
+ below: 4
+ action:
+ # This must always apply
+ - service: light.turn_on
+ data:
+ brightness: 255
+ color_temp: 366
+ target:
+ entity_id:
+ - light.porch
+ - light.garden
+ # IF a entity is ON
+ - choose:
+ - conditions:
+ - condition: state
+ entity_id: binary_sensor.livingroom_tv
+ state: "on"
+ sequence:
+ - service: light.turn_on
+ data:
+ brightness: 255
+ color_temp: 366
+ target:
+ entity_id: light.livingroom
+ # IF another entity not related to the previous, is ON
+ - choose:
+ - conditions:
+ - condition: state
+ entity_id: binary_sensor.studio_pc
+ state: "on"
+ sequence:
+ - service: light.turn_on
+ data:
+ brightness: 255
+ color_temp: 366
+ target:
+ entity_id: light.studio
+```
+
+{% endraw %}
+
[Script component]: /integrations/script/
[automations]: /getting-started/automation-action/
[Alexa/Amazon Echo]: /integrations/alexa/
diff --git a/source/_docs/scripts/service-calls.markdown b/source/_docs/scripts/service-calls.markdown
index ed72800b79d..896126b7aa4 100644
--- a/source/_docs/scripts/service-calls.markdown
+++ b/source/_docs/scripts/service-calls.markdown
@@ -3,7 +3,7 @@ title: "Service Calls"
description: "Instructions on how to call services in Home Assistant."
---
-Various integrations allow calling services when a certain event occurs. The most common one is calling a service when an automation trigger happens. But a service can also be called from a script or via the Amazon Echo.
+Various integrations allow calling services when a certain event occurs. The most common one is calling a service when an automation trigger happens. But a service can also be called from a script, a Lovelace dashboard or via voice command devices such as Amazon Echo.
The configuration options to call a configuration are the same between all integrations and are described on this page.
@@ -27,10 +27,10 @@ entity_id: group.living_room
Instead of targeting an entity, you can also target an area or device. Or a combination of these.
This is done with the `target` key.
-A `target` is a map thats contains atleast one of the following: `area_id`, `device_id`, `entity_id`.
+A `target` is a map that contains at least one of the following: `area_id`, `device_id`, `entity_id`.
Each of these can be a list.
-When the service is called, the area's and devices will be resolved to entities.
+When the service is called, the areas and devices will be resolved to entities.
```yaml
service: homeassistant.turn_on
@@ -46,7 +46,7 @@ target:
### Passing data to the service call
-You can also specify other parameters beside the entity to target. For example, the light turn on service allows specifying the brightness.
+You can also specify other parameters beside the entity to target. For example, the `light.turn_on` service allows specifying the brightness.
```yaml
service: light.turn_on
@@ -103,7 +103,7 @@ target:
thermostat.downstairs
{% endif %}
data:
- temperature: {{ 22 - distance(states.device_tracker.paulus) }}
+ temperature: "{{ 22 - distance(states.device_tracker.paulus) }}"
```
{% endraw %}
@@ -111,8 +111,8 @@ data:
There are four `homeassistant` services that aren't tied to any single domain, these are:
-- `homeassistant.turn_on` - Turns on an entity (that supports being turned on), for example an `automation`, `switch`, etc
-- `homeassistant.turn_off` - Turns off an entity (that supports being turned off), for example an `automation`, `switch`, etc
+- `homeassistant.turn_on` - Turns on an entity (that supports being turned on), for example an `automation`, `switch`, etc.
+- `homeassistant.turn_off` - Turns off an entity (that supports being turned off), for example an `automation`, `switch`, etc.
- `homeassistant.toggle` - Turns off an entity that is on, or turns on an entity that is off (that supports being turned on and off)
- `homeassistant.update_entity` - Request the update of an entity, rather than waiting for the next scheduled update, for example [Google travel time] sensor, a [template sensor], or a [light]
diff --git a/source/_includes/common-tasks/commandline.md b/source/_includes/common-tasks/commandline.md
index bb03546d2bc..25e8a28d22e 100644
--- a/source/_includes/common-tasks/commandline.md
+++ b/source/_includes/common-tasks/commandline.md
@@ -67,21 +67,30 @@ Usage:
Available Commands:
addons Install, update, remove and configure Home Assistant add-ons
+ audio Audio device handling.
authentication Authentication for Home Assistant users.
+ banner Prints the CLI Home Assistant banner along with some useful information
+ cli Get information, update or configure the Home Assistant cli backend
core Provides control of the Home Assistant Core
dns Get information, update or configure the Home Assistant DNS server
+ docker Docker backend specific for info and OCI configuration
hardware Provides hardware information about your system
help Help about any command
host Control the host/system that Home Assistant is running on
info Provides a general Home Assistant information overview
+ jobs Get information and manage running jobs
+ multicast Get information, update or configure the Home Assistant Multicast
+ network Network specific for updating, info and configuration imports
+ observer Get information, update or configure the Home Assistant observer
os Operating System specific for updating, info and configuration imports
+ resolution Resolution center of Supervisor, show issues and suggest solutions
snapshots Create, restore and remove snapshot backups
supervisor Monitor, control and configure the Home Assistant Supervisor
Flags:
--api-token string Home Assistant Supervisor API token
--config string Optional config file (default is $HOME/.homeassistant.yaml)
- --endpoint string Endpoint for Home Assistant Supervisor ( default is 'supervisor' )
+ --endpoint string Endpoint for Home Assistant Supervisor (default is 'supervisor')
-h, --help help for ha
--log-level string Log level (defaults to Warn)
--no-progress Disable the progress spinner
diff --git a/source/_includes/installation/operating_system.md b/source/_includes/installation/operating_system.md
index 1b0b235406e..043b9847111 100644
--- a/source/_includes/installation/operating_system.md
+++ b/source/_includes/installation/operating_system.md
@@ -100,6 +100,7 @@ _Select and copy the URL or use the "copy" button that appear when you hover it.
1. Put the SD card in your card reader.
2. Open balenaEtcher, select the Home Assistant image and flash it to the SD card.
3. Unmount the SD card and remove it from your card reader.
+4. Once completed you will be able to reach Home Assistant on homeassistant.local:8123. If you are running an older Windows version or have a stricter network configuration, you might need to access Home Assistant at homeassistant:8123 or `http://X.X.X.X:8123` (replace X.X.X.X with your {{site.installation.types[page.installation_type].board}}’s IP address).
{% else %}
### Create the Virtual Machine
diff --git a/source/_integrations/generic.markdown b/source/_integrations/generic.markdown
index f545c310732..8f1fd8957ef 100644
--- a/source/_integrations/generic.markdown
+++ b/source/_integrations/generic.markdown
@@ -139,3 +139,19 @@ camera:
still_image_url: http://194.218.96.92/jpg/image.jpg
stream_source: rtsp://194.218.96.92:554
```
+
+### Secured access to the camera
+
+To access a camera that requires secured access for still image or live stream (an HIK in my case).
+
+```yaml
+camera:
+ - platform: generic
+ still_image_url: "http://192.168.1.100/ISAPI/Streaming/Channels/101/picture"
+ stream_source: "rtsp://USERNAME:PASSWORD@192.168.1.100:554/Streaming/Channels/102"
+ name: "My Camera"
+ verify_ssl: false
+ username: "USERNAME"
+ password: "PASSWORD"
+ authentication: digest
+```
diff --git a/source/_integrations/history.markdown b/source/_integrations/history.markdown
index 21e45b807c9..c792f1414f9 100644
--- a/source/_integrations/history.markdown
+++ b/source/_integrations/history.markdown
@@ -164,15 +164,15 @@ The following characters can be used in entity globs:
The history is stored in a SQLite database `home-assistant_v2.db` within your
configuration directory unless the `recorder` integration is set up differently.
- - events table is all events except `time_changed` that happened while recorder integration was running.
- - states table contains all the `new_state` values of `state_changed` events.
- - Inside the states table you have:
- - `entity_id`: the entity_id of the entity
- - `state`: the state of the entity
- - `attributes`: JSON of the state attributes
- - `last_changed`: timestamp last time the state has changed. A state_changed event can happen when just attributes change.
- - `last_updated`: timestamp anything has changed (state, attributes)
- - `created`: timestamp this entry was inserted into the database
+- events table is all events except `time_changed` that happened while recorder integration was running.
+- states table contains all the `new_state` values of `state_changed` events.
+- Inside the states table you have:
+ - `entity_id`: the entity_id of the entity
+ - `state`: the state of the entity
+ - `attributes`: JSON of the state attributes
+ - `last_changed`: timestamp last time the state has changed.
+ - `last_updated`: timestamp anything has changed (state, attributes)
+ - `created`: timestamp this entry was inserted into the database
When the `history` integration queries the states table it only selects states
where the state has changed: `WHERE last_changed=last_updated`
diff --git a/source/_integrations/nad.markdown b/source/_integrations/nad.markdown
index 324c3472b84..5536edde2a0 100644
--- a/source/_integrations/nad.markdown
+++ b/source/_integrations/nad.markdown
@@ -10,6 +10,11 @@ ha_domain: nad
The `nad` platform allows you to control a [NAD receiver](https://nadelectronics.com/) through RS232, TCP and Telnet from Home Assistant.
+Please note that the RS232 interface is only tested with the NAD T748v2, but is should work with more NAD receivers.
+The Telnet interface is only tested with the NAD T787.
+
+## Configuration
+
To add an NAD receiver to your installation, add the following to your `configuration.yaml` file:
```yaml
@@ -18,12 +23,13 @@ media_player:
- platform: nad
serial_port: /dev/ttyUSB0
```
+
```yaml
# Example configuration.yaml entry for TCP configuration
media_player:
- platform: nad
type: TCP
- host: IP_ADDRESS
+ host: "IP_ADDRESS"
```
{% configuration %}
@@ -89,7 +95,7 @@ A full configuration example could look like this:
media_player:
- platform: nad
serial_port: /dev/ttyUSB0
- name: NAD Receiver
+ name: "NAD Receiver"
min_volume: -60
max_volume: -20
sources:
diff --git a/source/_integrations/opentherm_gw.markdown b/source/_integrations/opentherm_gw.markdown
index e83c31cbd51..cff008c9358 100644
--- a/source/_integrations/opentherm_gw.markdown
+++ b/source/_integrations/opentherm_gw.markdown
@@ -149,7 +149,7 @@ Set the domestic hot water setpoint on the OpenTherm Gateway. Not all boilers su
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `gateway_id` | no | The `gateway_id` as specified during configuration.
-| `dhw_override` | no | The domestic hot water setpoint to set on the gateway. Values between 0 and 90 are accepted, but not all boilers support this range. Check the values of the `slave_dhw_min_setp` and `slave_dhw_max_setp` sensors to see the supported range on your boiler.
+| `temperature` | no | The domestic hot water setpoint to set on the gateway. Values between 0 and 90 are accepted, but not all boilers support this range. Check the values of the `slave_dhw_min_setp` and `slave_dhw_max_setp` sensors to see the supported range on your boiler.
### Service `opentherm_gw.set_gpio_mode`
diff --git a/source/_integrations/proxmoxve.markdown b/source/_integrations/proxmoxve.markdown
index b209d2fd52d..304741698a8 100644
--- a/source/_integrations/proxmoxve.markdown
+++ b/source/_integrations/proxmoxve.markdown
@@ -55,11 +55,11 @@ verify_ssl:
default: true
type: boolean
username:
- description: The username used to authenticate.
+ description: The username used to authenticate. Can include the realm by appending "@".
required: true
type: string
password:
- description: The password used to authenticate. Can include the realm by appending "@"
+ description: The password used to authenticate.
required: true
type: string
realm:
diff --git a/source/_integrations/spotify.markdown b/source/_integrations/spotify.markdown
index adda3ba816f..196dcbb2432 100644
--- a/source/_integrations/spotify.markdown
+++ b/source/_integrations/spotify.markdown
@@ -34,6 +34,7 @@ The Spotify media player integration allows you to control [Spotify](https://www
- Enter the **Edit Settings** dialog of your newly-created application and add a *Redirect URI*:
- If you are not using SSL: `http://:/auth/external/callback`
- If you are using SSL: `https://:/auth/external/callback`
+ - Note Spotify does a case-sensitive match of the fields above, as such ensure the Redirect URI is all lower case.
- Click **Save** after adding the URI.
diff --git a/source/_integrations/verisure.markdown b/source/_integrations/verisure.markdown
index c2e002ab1a4..d3d9cc312e8 100644
--- a/source/_integrations/verisure.markdown
+++ b/source/_integrations/verisure.markdown
@@ -38,6 +38,19 @@ There is currently support for the following device types within Home Assistant:
{% include integrations/config_flow.md %}
+## 2 Factor Authentication Prerequisite
+
+Verisure added 2FA rules to Verisure My Pages that aren't supported through their third-party API integration. If you have 2FA enabled, which is forced by default, you might not be able to use this integration. Here is the suggested way to deactivate 2FA (if it's allowed in your region).
+
+You can deactivate 2FA for your admin account and use that for Home Assistant but this isn't recommended. The steps below sets up a specific Home Assistant user and gives it restricted access.
+
+1. Log in to Verisure My Pages as your admin user and create a new admin user for Home Assistant.
+2. Log in as your newly created Home Assistant user, you'll be prompted to set up 2FA, do that and then log out. This will make sure the options below are available.
+3. Log in as the Home Assistant user, browse to Account and subscription -> Account -> Login Credentials -> Disable 2FA.
This will only be available if the user is admin and has logged in once with 2FA, logged out and in again.
+4. Log in as your administrator again and change the Home Assistant user to a restricted user.
+5. Change Home Assistant Verisure config to the new user credentials in Home Assistant.
+6. Restart Home Assistant.
+
## Alarm Control Panel
The Verisure alarm control panel platform allows you to control your [Verisure](https://www.verisure.com/) Alarms.
diff --git a/source/_integrations/weather.template.markdown b/source/_integrations/weather.template.markdown
index c2e857c9cae..b3dcb5fe029 100644
--- a/source/_integrations/weather.template.markdown
+++ b/source/_integrations/weather.template.markdown
@@ -40,6 +40,10 @@ name:
description: Name to use in the frontend.
required: true
type: string
+unique_id:
+ description: An ID that uniquely identifies this weather entity. Set this to a unique value to allow customization through the UI.
+ required: false
+ type: string
condition_template:
description: The current weather condition.
required: true
diff --git a/source/_integrations/xiaomi_miio.markdown b/source/_integrations/xiaomi_miio.markdown
index 97e5f66555a..ec0f92c02ae 100644
--- a/source/_integrations/xiaomi_miio.markdown
+++ b/source/_integrations/xiaomi_miio.markdown
@@ -34,7 +34,7 @@ ha_platforms:
The `xiaomi_miio` integration supports the following devices:
- [Xiaomi Gateway](#xiaomi-gateway)
-- [Xiaomi device tracker (Xiaomi Mi WiFi Repeater 2)](#xiaomi-device-tracker-xiaomi-mi-wifi-repeater-2))
+- [Xiaomi device tracker (Xiaomi Mi WiFi Repeater 2)](#xiaomi-device-tracker-xiaomi-mi-wifi-repeater-2)
- [Xiaomi Air Purifier and Humidifier](#xiaomi-air-purifier-and-humidifier)
- [Xiaomi Air Quality Monitor](#xiaomi-air-quality-monitor)
- [Xiaomi IR Remote](#xiaomi-ir-remote)
@@ -1284,6 +1284,22 @@ automation:
segments: 1
```
+The original app for Xiaomi vacuum has a nice feature of room cleaning with repetition, you can achieve the same result with repeating segments:
+
+```yaml
+automation:
+ - alias: "Vacuum kitchen"
+ trigger:
+ - event: start
+ platform: homeassistant
+ action:
+ - service: xiaomi_miio.vacuum_clean_segment
+ target:
+ entity_id: vacuum.xiaomi_vacuum
+ data:
+ segments: [1, 1]
+```
+
### Attributes
In addition to [all of the attributes provided by the `vacuum` component](/integrations/vacuum/#attributes),
diff --git a/source/_integrations/yeelight.markdown b/source/_integrations/yeelight.markdown
index a38a08f01dc..dc807253574 100644
--- a/source/_integrations/yeelight.markdown
+++ b/source/_integrations/yeelight.markdown
@@ -173,6 +173,7 @@ This integration is tested to work with the following models. If you have a diff
| `color1` | YLDP03YL | LED Bulb (Color) - E26 |
| `color2` | YLDP06YL | LED Bulb (Color) - 2nd generation |
| `color4` | YLDP13YL | LED Bulb 1S (Color) |
+| `color6` | YLDP13AYL | LED Bulb 1S (Color) |
| `strip1` | YLDD01YL | Lightstrip (Color) |
| `strip1` | YLDD02YL | Lightstrip (Color) |
| ? | YLDD04YL | Lightstrip (Color) |
diff --git a/source/_integrations/zwave_js.markdown b/source/_integrations/zwave_js.markdown
index 84fa202c215..5cceeace7a9 100644
--- a/source/_integrations/zwave_js.markdown
+++ b/source/_integrations/zwave_js.markdown
@@ -396,7 +396,7 @@ Polling is considered bad practice and should only be used as a last resort when
When your device is not yet fully interviewed, this info will not yet be present. So make sure your device is interviewed at least once. Is the state of your device reported as ready and you still see Unknown Manufacturer, read on.
-Z-Wave JS keeps a database of all devices it supports, including any special treatments they need. These are called the device configuration files and they are contributed mainly by the community. Is your device not fully supported, consider [contributing the device configuration file](https://zwave-js.github.io/node-zwave-js/#/development/config-files?id=contributing-configuration-files).
+Z-Wave JS keeps a database of all devices it supports, including any special treatments they need. These are called the device configuration files and they are contributed mainly by the community. Is your device not fully supported, consider [contributing the device configuration file](https://zwave-js.github.io/node-zwave-js/#/config-files/contributing-files).
### I get a lot of sensor entities for my device that I'm probably never going to use
diff --git a/source/_posts/2021-03-03-release-20213.markdown b/source/_posts/2021-03-03-release-20213.markdown
index bf14a76182f..bb459381e77 100644
--- a/source/_posts/2021-03-03-release-20213.markdown
+++ b/source/_posts/2021-03-03-release-20213.markdown
@@ -42,6 +42,7 @@ My oh my, enjoy this release!
- [Release 2021.3.1 - March 5](#release-202131---march-5)
- [Release 2021.3.2 - March 5](#release-202132---march-5)
- [Release 2021.3.3 - March 8](#release-202133---march-8)
+- [Release 2021.3.4 - March 12](#release-202134---march-12)
- [If you need help...](#if-you-need-help)
- [Breaking Changes](#breaking-changes)
- [Farewell to the following](#farewell-to-the-following)
diff --git a/source/_posts/2021-03-18-nabu-casa-has-acquired-esphome.markdown b/source/_posts/2021-03-18-nabu-casa-has-acquired-esphome.markdown
new file mode 100644
index 00000000000..0fd07eb7b9c
--- /dev/null
+++ b/source/_posts/2021-03-18-nabu-casa-has-acquired-esphome.markdown
@@ -0,0 +1,61 @@
+---
+layout: post
+title: "Nabu Casa has acquired ESPHome"
+description: "Nabu Casa has acquired ESPHome to ensure that the project can continue to flourish as a free and open source project."
+date: 2021-03-18 00:00:00
+date_formatted: "March 18, 2021"
+author: Paulus Schoutsen
+author_twitter: balloob
+comments: true
+categories: Announcements
+og_image: /images/blog/2021-03-18-nabu-casa-acquired-esphome/social.png
+feedback: true
+---
+
+
+
+
+Today I'm happy to announce that [ESPHome](https://esphome.io) is from now on under the [Nabu Casa](https://www.nabucasa.com) umbrella. ESPHome is the easiest way to program ESP8266 and ESP32 devices and integrate them into Home Assistant. It has become an important piece of the Home Assistant ecosystem, so much so that we want to ensure that the project can continue to flourish as a free and open source project. This week Nabu Casa came to an agreement to acquire the ESPHome project from [Otto Winter](https://github.com/ottowinter), the founder of ESPHome.
+
+Otto started ESPHome three years ago to make programming ESP devices as easy as possible. With ESPHome, users write simple YAML files in which you describe what components are attached to what pins of the ESP device. ESPHome will then make this available in Home Assistant. No extra work necessary. Super simple.
+
+{% details Example ESPHome configuration %}
+
+The following ESPHome YAML example will program your ESP device. When you plug it in, it will make the light on pin 16 available in Home Assistant.
+
+```yaml
+esphome:
+ name: esp32_light
+ platform: ESP32
+ board: esp32dev
+
+wifi:
+ ssid: "MySSID"
+ password: "supersecret"
+
+api:
+
+light:
+ - platform: binary
+ name: "Desk Lamp"
+ output: light_output
+
+output:
+ - id: light_output
+ platform: gpio
+ pin: GPIO16
+```
+
+{% enddetails %}
+
+
+
+Otto’s vision was right and ESPHome has become the easiest way for people to integrate ESP devices in Home Assistant. For example, the [tag reader](/blog/2020/09/15/home-assistant-tags/#standalone-tag-reader) is based on ESPHome, and many other projects are too.
+
+As the project grew, so did Otto’s obligations in his personal life until they could no longer be combined. With the acquisition of ESPHome, Nabu Casa now owns the copyright of Otto’s code and the ESPHome organizations on GitHub, Docker, etc. Otto has shut down his Patreon account. Otto will step back from being part of the project management side of things. The project will continue as an open source project with the current ESPHome development team, [@jesserockz](https://github.com/jesserockz) and [@glmnet](https://github.com/glmnet). Otto will still be around and help out on development as his time allows.
+
+We are going to bring our experience gained from the Home Assistant project and apply it to ESPHome, like focus on community and ease of use. If you have any ideas, make sure to share them in the [ESPHome discord](https://discord.gg/KhAMKrd).
+
+**About Nabu Casa**
+Nabu Casa was founded by the founders of Home Assistant. It exists to make the privacy-centered smart home accessible to everyone. Nabu Casa has no investors and is solely funded by users via Home Assistant Cloud subscriptions. With Home Assistant, Nabu Casa already works on making sure the brains of your home are the best it can be. And with ESPHome they will help you make sure that other devices are too.
+
diff --git a/source/_posts/2021-03-19-community-highlights.markdown b/source/_posts/2021-03-19-community-highlights.markdown
new file mode 100644
index 00000000000..1b527ccfdd2
--- /dev/null
+++ b/source/_posts/2021-03-19-community-highlights.markdown
@@ -0,0 +1,87 @@
+---
+title: "Community Highlights: 13th edition"
+description: "From now on, never forget to put the wheelie bin on the street again, link all kinds of actions to your Aqara magic cube and create your own LP record player in Lovelace"
+date: 2021-03-19 00:00:00
+date_formatted: "March 19, 2021"
+author: Klaas Schoute
+author_twitter: klaasnicolaas
+categories: Community
+og_image: /images/blog/2021-03-19-community-highlights/social.png
+---
+
+The 13th edition of the Home Assistant Community Highlights! Some interesting
+things popped up around our community, we thought was worth sharing.
+
+Do you want to share something for the next edition?
+Information on [how to share](#got-a-tip-for-the-next-edition).
+
+./Klaas
+
+## Blueprint of the week
+
+It has probably happened to everyone, you forget to put the wheelie bin on the
+street and now you have to wait weeks again before it can be emptied again. There
+are already various custom integrations where you can keep track of when the pick-up
+days are. But maybe the [Blueprint][week_blueprint] from
+[westenberg](https://community.home-assistant.io/u/westenberg), can also help you
+to get a notification every time so that you don't forget it.
+
+{% my blueprint_import badge blueprint_url="https://community.home-assistant.io/t/garbage-reminder/284213" %}
+
+## It’s a kind of magic
+
+This week we came across another really cool project from [redphx](https://www.reddit.com/user/redphx/)
+that was shared on our [subreddit][reddit] page. A lot of inspiration for those who
+are still looking for which actions they want to link to their Aqara Magic Cube.
+
+
+
+
+## Retro Record Player
+
+For those who would like to build a media player in a slightly different style in
+Lovelave, this is really a cool project. Edwin turned it into something very special
+in the form of an LP record player. How cool is this!? ❤️
+
+
+
+
+On [this website](https://automata.id/record-player/) you will find all information
+about this project and how you can build it yourself.
+
+## HomeLab monitor dashboard
+
+Still looking for a way how you would like to set up your own system dashboard? Maybe
+the photo of [Akmantainman](https://www.reddit.com/user/Akmantainman/) will give you
+some inspiration to make your own version of this.
+
+
+
+
+Also look in the comments on Reddit, because many people shared their own
+version on this post already.
+
+## Got a tip for the next edition?
+
+Have you seen (or made) something awesome, interesting, unique, amazing,
+inspirational, unusual or funny, using Home Assistant?
+
+[Click here to send us your Community Highlight suggestion](/suggest-community-highlight).
+
+Also, don't forget to share your creations with us via Social Media:
+
+- Tweet it! Be sure to mention [@home_assistant][twitter]
+- Share it on our [Facebook group][facebook-group]
+- Post it to our [subreddit][reddit]
+- Tag [@homeasssistant][instagram] on Instagram
+- Or via chat, drop us a line in the [#lounge at Discord][chat]
+
+See you next edition!
+
+[chat]: https://www.home-assistant.io/join-chat
+[facebook-group]: https://www.facebook.com/groups/HomeAssistant/
+[instagram]: https://www.instagram.com/homeassistant/
+[reddit]: https://www.reddit.com/r/homeassistant
+[twitter]: https://www.twitter.com/home_assistant
+[blueprints]: https://community.home-assistant.io/c/blueprints-exchange
+[week_blueprint]: https://community.home-assistant.io/t/garbage-reminder/284213
\ No newline at end of file
diff --git a/source/images/blog/2021-03-18-nabu-casa-acquired-esphome/social.png b/source/images/blog/2021-03-18-nabu-casa-acquired-esphome/social.png
new file mode 100644
index 00000000000..5acda059f1e
Binary files /dev/null and b/source/images/blog/2021-03-18-nabu-casa-acquired-esphome/social.png differ
diff --git a/source/images/blog/2021-03-19-community-highlights/social.png b/source/images/blog/2021-03-19-community-highlights/social.png
new file mode 100644
index 00000000000..11f0834d074
Binary files /dev/null and b/source/images/blog/2021-03-19-community-highlights/social.png differ
diff --git a/source/images/sponsors/esphome.svg b/source/images/sponsors/esphome.svg
new file mode 100644
index 00000000000..067154be308
--- /dev/null
+++ b/source/images/sponsors/esphome.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/source/lovelace/badges.markdown b/source/lovelace/badges.markdown
index 3934736eee1..4f9512c2fca 100644
--- a/source/lovelace/badges.markdown
+++ b/source/lovelace/badges.markdown
@@ -30,7 +30,7 @@ name:
default: Name of entity
icon:
required: false
- description: Overwrites icon or entity picture.
+ description: Overwrites icon or entity picture. You can use any icon from [MaterialDesignIcons.com](http://materialdesignicons.com). Prefix the icon name with `mdi:`, ie `mdi:home`.
type: string
default: Entity domain icon
image:
@@ -87,7 +87,7 @@ name:
type: string
icon:
required: false
- description: Overwrites icon or entity picture.
+ description: Overwrites icon or entity picture. You can use any icon from [MaterialDesignIcons.com](http://materialdesignicons.com). Prefix the icon name with `mdi:`, ie `mdi:home`.
type: string
image:
required: false
diff --git a/source/lovelace/dashboards-and-views.markdown b/source/lovelace/dashboards-and-views.markdown
index 1f0050b8d14..4f5ea17cdf9 100644
--- a/source/lovelace/dashboards-and-views.markdown
+++ b/source/lovelace/dashboards-and-views.markdown
@@ -110,7 +110,7 @@ dashboards:
type: string
icon:
required: false
- description: The icon to show in the sidebar.
+ description: The icon to show in the sidebar. You can use any icon from [MaterialDesignIcons.com](http://materialdesignicons.com). Prefix the icon name with `mdi:`, ie `mdi:home`.
type: string
show_in_sidebar:
required: false
@@ -227,7 +227,7 @@ views:
default: view index
icon:
required: false
- description: Icon-name from Material Design Icons.
+ description: Icon-name from Material Design Icons. You can use any icon from [MaterialDesignIcons.com](http://materialdesignicons.com). Prefix the icon name with `mdi:`, ie `mdi:home`.
type: string
panel:
required: false
diff --git a/source/lovelace/header-footer.markdown b/source/lovelace/header-footer.markdown
index e44835cab33..0284b331820 100644
--- a/source/lovelace/header-footer.markdown
+++ b/source/lovelace/header-footer.markdown
@@ -69,7 +69,7 @@ entities:
type: string
icon:
required: false
- description: Override the entity icon.
+ description: Override the entity icon. You can use any icon from [MaterialDesignIcons.com](http://materialdesignicons.com). Prefix the icon name with `mdi:`, ie `mdi:home`.
type: string
image:
required: false