mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-23 17:27:19 +00:00
Merge branch 'current' into next
This commit is contained in:
commit
e6e58ffbbd
2
Gemfile
2
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
|
||||
|
@ -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)
|
||||
|
266
package-lock.json
generated
266
package-lock.json
generated
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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"
|
||||
},
|
||||
|
@ -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/)
|
||||
|
@ -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`.
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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/
|
||||
|
@ -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]
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 <a href="http://homeassistant.local:8123" target="_blank">homeassistant.local:8123</a>. If you are running an older Windows version or have a stricter network configuration, you might need to access Home Assistant at <a href="http://homeassistant:8123" target="_blank">homeassistant:8123</a> 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
|
||||
|
@ -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
|
||||
```
|
||||
|
@ -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`
|
||||
|
@ -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:
|
||||
|
@ -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`
|
||||
|
||||
|
@ -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 "@<realm>".
|
||||
required: true
|
||||
type: string
|
||||
password:
|
||||
description: The password used to authenticate. Can include the realm by appending "@<realm>"
|
||||
description: The password used to authenticate.
|
||||
required: true
|
||||
type: string
|
||||
realm:
|
||||
|
@ -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://<your_home_assistant_url_or_local_ip>:<port>/auth/external/callback`
|
||||
- If you are using SSL: `https://<your_home_assistant_url_or_local_ip>:<port>/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.
|
||||
|
||||
<div class='note'>
|
||||
|
@ -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.<div class='note warning'>This will only be available if the user is admin and has logged in once with 2FA, logged out and in again.</div>
|
||||
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.
|
||||
|
@ -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
|
||||
|
@ -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),
|
||||
|
@ -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) |
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
---
|
||||
|
||||
<img alt="Nabu Casa heart ESPHome" src="/images/blog/2021-03-18-nabu-casa-acquired-esphome/social.png" />
|
||||
|
||||
|
||||
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 %}
|
||||
|
||||
<img alt="ESPHome logo" src="/images/sponsors/esphome.svg" class='no-shadow' />
|
||||
|
||||
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**<br>
|
||||
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.
|
||||
|
87
source/_posts/2021-03-19-community-highlights.markdown
Normal file
87
source/_posts/2021-03-19-community-highlights.markdown
Normal file
@ -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.
|
||||
|
||||
<blockquote class="reddit-card" data-card-created="1616149831"><a href="https://www.reddit.com/r/homeassistant/comments/m45tca/my_aqara_magic_cube_setup_is_a_bit_different/">My Aqara Magic Cube setup is a bit different (pet-proof). Details in comment.</a> from <a href="http://www.reddit.com/r/homeassistant">r/homeassistant</a></blockquote>
|
||||
<script async src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script>
|
||||
|
||||
## 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!? ❤️
|
||||
<div style="margin:0 auto; text-align:center">
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/erKzF6NFixY" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
||||
</div>
|
||||
|
||||
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.
|
||||
|
||||
<blockquote class="reddit-card" data-card-created="1616150627"><a href="https://www.reddit.com/r/homeassistant/comments/m6f23i/homelab_monitor_setup/">Homelab Monitor Setup</a> from <a href="http://www.reddit.com/r/homeassistant">r/homeassistant</a></blockquote>
|
||||
<script async src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script>
|
||||
|
||||
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
|
Binary file not shown.
After Width: | Height: | Size: 55 KiB |
BIN
source/images/blog/2021-03-19-community-highlights/social.png
Normal file
BIN
source/images/blog/2021-03-19-community-highlights/social.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 217 KiB |
1
source/images/sponsors/esphome.svg
Normal file
1
source/images/sponsors/esphome.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 5.4 KiB |
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user