mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-08 09:56:52 +00:00
Merge branch 'current' into rc
This commit is contained in:
commit
d5594870cf
@ -29,7 +29,7 @@ GEM
|
||||
ffi (1.13.1-x64-mingw32)
|
||||
forwardable-extended (2.6.0)
|
||||
http_parser.rb (0.6.0)
|
||||
i18n (1.8.3)
|
||||
i18n (1.8.4)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (4.1.1)
|
||||
addressable (~> 2.4)
|
||||
|
244
package-lock.json
generated
244
package-lock.json
generated
@ -20,27 +20,27 @@
|
||||
}
|
||||
},
|
||||
"@babel/code-frame": {
|
||||
"version": "7.8.3",
|
||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
|
||||
"integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
|
||||
"integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/highlight": "^7.8.3"
|
||||
"@babel/highlight": "^7.10.4"
|
||||
}
|
||||
},
|
||||
"@babel/helper-validator-identifier": {
|
||||
"version": "7.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz",
|
||||
"integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==",
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
|
||||
"integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
|
||||
"dev": true
|
||||
},
|
||||
"@babel/highlight": {
|
||||
"version": "7.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
|
||||
"integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
|
||||
"integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/helper-validator-identifier": "^7.9.0",
|
||||
"@babel/helper-validator-identifier": "^7.10.4",
|
||||
"chalk": "^2.0.0",
|
||||
"js-tokens": "^4.0.0"
|
||||
},
|
||||
@ -647,9 +647,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"binary-extensions": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz",
|
||||
"integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==",
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
|
||||
"integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
|
||||
"dev": true
|
||||
},
|
||||
"boundary": {
|
||||
@ -736,9 +736,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"chokidar": {
|
||||
"version": "3.3.1",
|
||||
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz",
|
||||
"integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==",
|
||||
"version": "3.4.1",
|
||||
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz",
|
||||
"integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"anymatch": "~3.1.1",
|
||||
@ -748,7 +748,7 @@
|
||||
"is-binary-path": "~2.1.0",
|
||||
"is-glob": "~4.0.1",
|
||||
"normalize-path": "~3.0.0",
|
||||
"readdirp": "~3.3.0"
|
||||
"readdirp": "~3.4.0"
|
||||
}
|
||||
},
|
||||
"co": {
|
||||
@ -1008,9 +1008,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"fsevents": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz",
|
||||
"integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==",
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
|
||||
"integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
@ -1100,9 +1100,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"ignore": {
|
||||
"version": "5.1.4",
|
||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz",
|
||||
"integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==",
|
||||
"version": "5.1.8",
|
||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
|
||||
"integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
|
||||
"dev": true
|
||||
},
|
||||
"inflight": {
|
||||
@ -1319,20 +1319,12 @@
|
||||
}
|
||||
},
|
||||
"json5": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz",
|
||||
"integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==",
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
|
||||
"integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "^1.2.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "1.2.5",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
|
||||
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"jsonify": {
|
||||
@ -1382,9 +1374,9 @@
|
||||
}
|
||||
},
|
||||
"p-limit": {
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
|
||||
"integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
|
||||
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"p-try": "^2.0.0"
|
||||
@ -1458,9 +1450,9 @@
|
||||
}
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.15",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
|
||||
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
|
||||
"version": "4.17.19",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
|
||||
"integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
|
||||
"dev": true
|
||||
},
|
||||
"log-symbols": {
|
||||
@ -1588,9 +1580,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"unist-util-visit": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.2.tgz",
|
||||
"integrity": "sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ==",
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz",
|
||||
"integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/unist": "^2.0.0",
|
||||
@ -1599,9 +1591,9 @@
|
||||
}
|
||||
},
|
||||
"unist-util-visit-parents": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz",
|
||||
"integrity": "sha512-yJEfuZtzFpQmg1OSCyS9M5NJRrln/9FbYosH3iW0MG402QbdbaB8ZESwUv9RO6nRfLAKvWcMxCwdLWOov36x/g==",
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.0.tgz",
|
||||
"integrity": "sha512-0g4wbluTF93npyPrp/ymd3tCDTMnP0yo2akFD2FIBAYXq/Sga3lwaU1D8OYKbtpioaI6CkDcQ6fsMnmtzt7htw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/unist": "^2.0.0",
|
||||
@ -1953,12 +1945,12 @@
|
||||
}
|
||||
},
|
||||
"readdirp": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz",
|
||||
"integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==",
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz",
|
||||
"integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"picomatch": "^2.0.7"
|
||||
"picomatch": "^2.2.1"
|
||||
}
|
||||
},
|
||||
"regexp.prototype.flags": {
|
||||
@ -1972,116 +1964,20 @@
|
||||
}
|
||||
},
|
||||
"remark": {
|
||||
"version": "12.0.0",
|
||||
"resolved": "https://registry.npmjs.org/remark/-/remark-12.0.0.tgz",
|
||||
"integrity": "sha512-oX4lMIS0csgk8AEbzY0h2jdR0ngiCHOpwwpxjmRa5TqAkeknY+tkhjRJGZqnCmvyuWh55/0SW5WY3R3nn3PH9A==",
|
||||
"version": "12.0.1",
|
||||
"resolved": "https://registry.npmjs.org/remark/-/remark-12.0.1.tgz",
|
||||
"integrity": "sha512-gS7HDonkdIaHmmP/+shCPejCEEW+liMp/t/QwmF0Xt47Rpuhl32lLtDV1uKWvGoq+kxr5jSgg5oAIpGuyULjUw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"remark-parse": "^8.0.0",
|
||||
"remark-stringify": "^8.0.0",
|
||||
"unified": "^9.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"markdown-table": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz",
|
||||
"integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"repeat-string": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"mdast-util-compact": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz",
|
||||
"integrity": "sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"unist-util-visit": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"parse-entities": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz",
|
||||
"integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"character-entities": "^1.0.0",
|
||||
"character-entities-legacy": "^1.0.0",
|
||||
"character-reference-invalid": "^1.0.0",
|
||||
"is-alphanumerical": "^1.0.0",
|
||||
"is-decimal": "^1.0.0",
|
||||
"is-hexadecimal": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"remark-stringify": {
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.0.0.tgz",
|
||||
"integrity": "sha512-cABVYVloFH+2ZI5bdqzoOmemcz/ZuhQSH6W6ZNYnLojAUUn3xtX7u+6BpnYp35qHoGr2NFBsERV14t4vCIeW8w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ccount": "^1.0.0",
|
||||
"is-alphanumeric": "^1.0.0",
|
||||
"is-decimal": "^1.0.0",
|
||||
"is-whitespace-character": "^1.0.0",
|
||||
"longest-streak": "^2.0.1",
|
||||
"markdown-escapes": "^1.0.0",
|
||||
"markdown-table": "^2.0.0",
|
||||
"mdast-util-compact": "^2.0.0",
|
||||
"parse-entities": "^2.0.0",
|
||||
"repeat-string": "^1.5.4",
|
||||
"state-toggle": "^1.0.0",
|
||||
"stringify-entities": "^3.0.0",
|
||||
"unherit": "^1.0.4",
|
||||
"xtend": "^4.0.1"
|
||||
}
|
||||
},
|
||||
"stringify-entities": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.0.0.tgz",
|
||||
"integrity": "sha512-h7NJJIssprqlyjHT2eQt2W1F+MCcNmwPGlKb0bWEdET/3N44QN3QbUF/ueKCgAssyKRZ3Br9rQ7FcXjHr0qLHw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"character-entities-html4": "^1.0.0",
|
||||
"character-entities-legacy": "^1.0.0",
|
||||
"is-alphanumerical": "^1.0.0",
|
||||
"is-decimal": "^1.0.2",
|
||||
"is-hexadecimal": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"unist-util-is": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz",
|
||||
"integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==",
|
||||
"dev": true
|
||||
},
|
||||
"unist-util-visit": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.2.tgz",
|
||||
"integrity": "sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/unist": "^2.0.0",
|
||||
"unist-util-is": "^4.0.0",
|
||||
"unist-util-visit-parents": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"unist-util-visit-parents": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz",
|
||||
"integrity": "sha512-yJEfuZtzFpQmg1OSCyS9M5NJRrln/9FbYosH3iW0MG402QbdbaB8ZESwUv9RO6nRfLAKvWcMxCwdLWOov36x/g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/unist": "^2.0.0",
|
||||
"unist-util-is": "^4.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"remark-cli": {
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-8.0.0.tgz",
|
||||
"integrity": "sha512-5iRrk8ad+dU4espDl60H7ANhXqoaEXYsIyL8Mau0lDN6pP7QMAZsZTCX2XdoCfKfKEpiOggA7CHv43HkyVEppA==",
|
||||
"version": "8.0.1",
|
||||
"resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-8.0.1.tgz",
|
||||
"integrity": "sha512-UaYeFI5qUAzkthUd8/MLBQD5OKM6jLN8GRvF6v+KF7xO/i1jQ+X2VqUSQAxWFYxZ8R25gM56GVjeoKOZ0EIr8A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"markdown-extensions": "^1.1.0",
|
||||
@ -2199,9 +2095,9 @@
|
||||
}
|
||||
},
|
||||
"remark-parse": {
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.0.tgz",
|
||||
"integrity": "sha512-Ck14G1Ns/GEPXhSw6m1Uv28kMtVk63e59NyL+QlhBBwBdIUXROM6MPfBehPhW6TW2d73batMdZsKwuxl5i3tEA==",
|
||||
"version": "8.0.3",
|
||||
"resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz",
|
||||
"integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ccount": "^1.0.0",
|
||||
@ -2252,9 +2148,9 @@
|
||||
}
|
||||
},
|
||||
"unist-util-visit": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.2.tgz",
|
||||
"integrity": "sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ==",
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz",
|
||||
"integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/unist": "^2.0.0",
|
||||
@ -2263,9 +2159,9 @@
|
||||
}
|
||||
},
|
||||
"unist-util-visit-parents": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz",
|
||||
"integrity": "sha512-yJEfuZtzFpQmg1OSCyS9M5NJRrln/9FbYosH3iW0MG402QbdbaB8ZESwUv9RO6nRfLAKvWcMxCwdLWOov36x/g==",
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.0.tgz",
|
||||
"integrity": "sha512-0g4wbluTF93npyPrp/ymd3tCDTMnP0yo2akFD2FIBAYXq/Sga3lwaU1D8OYKbtpioaI6CkDcQ6fsMnmtzt7htw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/unist": "^2.0.0",
|
||||
@ -2281,9 +2177,9 @@
|
||||
}
|
||||
},
|
||||
"remark-stringify": {
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.1.0.tgz",
|
||||
"integrity": "sha512-FSPZv1ds76oAZjurhhuV5qXSUSoz6QRPuwYK38S41sLHwg4oB7ejnmZshj7qwjgYLf93kdz6BOX9j5aidNE7rA==",
|
||||
"version": "8.1.1",
|
||||
"resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.1.1.tgz",
|
||||
"integrity": "sha512-q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ccount": "^1.0.0",
|
||||
@ -2479,9 +2375,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"safe-buffer": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
|
||||
"integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==",
|
||||
"version": "5.2.1",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
||||
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
@ -2806,9 +2702,9 @@
|
||||
}
|
||||
},
|
||||
"unified-args": {
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/unified-args/-/unified-args-8.0.0.tgz",
|
||||
"integrity": "sha512-224jfXOL0Xu0e52fJTfxmAaNTuW1zopPmnXh/5GDAxx4Z6NbcZpjgQPBmo1xoLAhGih0rWVG2+a2kodzrEHfHw==",
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmjs.org/unified-args/-/unified-args-8.1.0.tgz",
|
||||
"integrity": "sha512-t1HPS1cQPsVvt/6EtyWIbQGurza5684WGRigNghZRvzIdHm3LPgMdXPyGx0npORKzdiy5+urkF0rF5SXM8lBuQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"camelcase": "^5.0.0",
|
||||
@ -3000,9 +2896,9 @@
|
||||
}
|
||||
},
|
||||
"vfile": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/vfile/-/vfile-4.1.0.tgz",
|
||||
"integrity": "sha512-BaTPalregj++64xbGK6uIlsurN3BCRNM/P2Pg8HezlGzKd1O9PrwIac6bd9Pdx2uTb0QHoioZ+rXKolbVXEgJg==",
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/vfile/-/vfile-4.1.1.tgz",
|
||||
"integrity": "sha512-lRjkpyDGjVlBA7cDQhQ+gNcvB1BGaTHYuSOcY3S7OhDmBtnzX95FhtZZDecSTDm6aajFymyve6S5DN4ZHGezdQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/unist": "^2.0.0",
|
||||
|
@ -4,12 +4,12 @@
|
||||
"version": "1.0.0",
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"remark-cli": "^8.0.0",
|
||||
"remark-cli": "^8.0.1",
|
||||
"remark-frontmatter": "^2.0.0",
|
||||
"remark-lint": "^7.0.1",
|
||||
"remark-lint-fenced-code-flag": "^2.0.1",
|
||||
"remark-lint-no-shell-dollars": "^2.0.2",
|
||||
"remark-stringify": "^8.1.0",
|
||||
"remark-stringify": "^8.1.1",
|
||||
"textlint": "^11.6.3",
|
||||
"textlint-rule-common-misspellings": "^1.0.1",
|
||||
"textlint-rule-terminology": "^2.1.4"
|
||||
|
@ -12,6 +12,8 @@ module Jekyll
|
||||
'device_class', 'icon', 'map', 'list', 'date', 'datetime'
|
||||
]
|
||||
|
||||
MIN_DEFAULT_LENGTH = 30
|
||||
|
||||
def initialize(tag_name, text, tokens)
|
||||
super
|
||||
@component, @platform = text.strip.split('.', 2)
|
||||
@ -55,13 +57,11 @@ module Jekyll
|
||||
|
||||
def render_config_vars(vars:, component:, platform:, converter:, classes: nil, parent_type: nil)
|
||||
result = Array.new
|
||||
result << "<dl class='#{classes}'>"
|
||||
result << "<div class='#{classes}'>"
|
||||
|
||||
result << vars.map do |key, attr|
|
||||
markup = Array.new
|
||||
markup << "<dt><a class='title-link' name='#{slug(key)}' href='\##{slug(key)}'></a> #{key}</dt>"
|
||||
markup << "<dd>"
|
||||
markup << "<p class='desc'>"
|
||||
markup << "<div class='config-vars-item'><div class='config-vars-label'><a name='#{slug(key)}' class='title-link' href='\##{slug(key)}'></a> <span class='config-vars-label-name'>#{key}</span>"
|
||||
|
||||
if attr.key? 'type'
|
||||
|
||||
@ -78,14 +78,23 @@ module Jekyll
|
||||
TYPES.include? attr['type']
|
||||
end
|
||||
|
||||
markup << "<span class='type'>(<span class='#{type_class(attr['type'])}'>"
|
||||
markup << "#{type_link(attr['type'], component: component)}</span>)</span>"
|
||||
markup << "<span class='config-vars-type'>#{type_link(attr['type'], component: component)}</span>"
|
||||
else
|
||||
# Type is missing, which is required (unless we are in a list or template)
|
||||
raise ArgumentError, "Configuration key '#{key}' is missing a type definition" \
|
||||
unless ['list', 'template'].include? parent_type
|
||||
end
|
||||
|
||||
defaultValue = ""
|
||||
isDefault = false
|
||||
if attr.key? 'default' and not attr['default'].to_s.empty?
|
||||
isDefault = true
|
||||
defaultValue = converter.convert(attr['default'].to_s)
|
||||
elsif attr['type'].to_s.include? 'boolean'
|
||||
# If the type is a boolean, a default key is required
|
||||
raise ArgumentError, "Configuration key '#{key}' is a boolean type and"\
|
||||
" therefore, requires a default."
|
||||
end
|
||||
|
||||
if attr.key? 'required'
|
||||
# Check if required is a valid value
|
||||
@ -93,41 +102,48 @@ module Jekyll
|
||||
"true, false, inclusive or exclusive."\
|
||||
unless [true, false, 'inclusive', 'exclusive'].include? attr['required']
|
||||
|
||||
markup << "<span class='required'>(#{required_value(attr['required'])})</span>"
|
||||
isTrue = attr['required'].to_s == 'true'
|
||||
startSymbol = isTrue ? '' : '('
|
||||
endSymbol = isTrue ? '' : ')'
|
||||
showDefault = isDefault && (defaultValue.length <= MIN_DEFAULT_LENGTH)
|
||||
shortDefaultValue = ""
|
||||
if showDefault
|
||||
shortDefaultValue = defaultValue
|
||||
shortDefaultValue.slice!("<p>")
|
||||
shortDefaultValue.slice!("</p>")
|
||||
shortDefaultValue = shortDefaultValue.strip
|
||||
shortDefaultValue = ", default: " + shortDefaultValue
|
||||
end
|
||||
|
||||
markup << "<span class='config-vars-required'>#{startSymbol}<span class='#{attr['required'].to_s}'>#{required_value(attr['required'])}</span>#{shortDefaultValue}#{endSymbol}</span>"
|
||||
end
|
||||
|
||||
markup << "</div><div class='config-vars-description-and-children'>"
|
||||
|
||||
if attr.key? 'description'
|
||||
markup << "<span class='description'>#{converter.convert(attr['description'].to_s)}</span>"
|
||||
markup << "<span class='config-vars-description'>#{converter.convert(attr['description'].to_s)}</span>"
|
||||
else
|
||||
# Description is missing
|
||||
raise ArgumentError, "Configuration key '#{key}' is missing a description."
|
||||
end
|
||||
markup << "</p>"
|
||||
|
||||
if attr.key? 'default' and not attr['default'].to_s.empty?
|
||||
markup << "<p class='default'>\nDefault value: #{converter.convert(attr['default'].to_s)}</p>"
|
||||
elsif attr['type'].to_s.include? 'boolean'
|
||||
# Is the type is a boolean, a default key is required
|
||||
raise ArgumentError, "Configuration key '#{key}' is a boolean type and"\
|
||||
" therefore, requires a default."
|
||||
if isDefault && defaultValue.length > MIN_DEFAULT_LENGTH
|
||||
markup << "<div class='config-vars-default'>\nDefault: #{defaultValue}</div>"
|
||||
end
|
||||
|
||||
markup << "</dd>"
|
||||
markup << "</div>"
|
||||
|
||||
# Check for nested configuration variables
|
||||
if attr.key? 'keys'
|
||||
markup << "<dd>"
|
||||
markup << render_config_vars(
|
||||
vars: attr['keys'], component: component,
|
||||
platform: platform, converter: converter,
|
||||
classes: 'nested', parent_type: attr['type'])
|
||||
markup << "</dd>"
|
||||
end
|
||||
|
||||
markup
|
||||
markup << "</div>"
|
||||
end
|
||||
|
||||
result << "</dl>"
|
||||
result << "</div>"
|
||||
result.join
|
||||
end
|
||||
|
||||
|
74
plugins/configuration_basic.rb
Normal file
74
plugins/configuration_basic.rb
Normal file
@ -0,0 +1,74 @@
|
||||
module Jekyll
|
||||
class ConfigurationBasicBlock < Liquid::Block
|
||||
def initialize(tag_name, text, tokens)
|
||||
super
|
||||
@component, @platform = text.strip.split('.', 2)
|
||||
end
|
||||
|
||||
def slug(key)
|
||||
key.downcase.strip.gsub(' ', '-').gsub(/[^\w\-]/, '')
|
||||
end
|
||||
|
||||
def render_config_vars(vars:, component:, platform:, converter:, classes: nil, parent_type: nil)
|
||||
result = Array.new
|
||||
result << "<div class='#{classes}'>"
|
||||
|
||||
result << vars.map do |key, attr|
|
||||
markup = Array.new
|
||||
markup << "<div class='config-vars-item'><div class='config-vars-label'><a name='#{slug(key)}' class='title-link' href='\##{slug(key)}'></a> <span class='config-vars-label-name'>#{key}</span></div><div class='config-vars-description-and-children'>"
|
||||
|
||||
if attr.key? 'description'
|
||||
markup << "<span class='config-vars-description'>#{converter.convert(attr['description'].to_s)}</span>"
|
||||
else
|
||||
# Description is missing
|
||||
raise ArgumentError, "Configuration key '#{key}' is missing a description."
|
||||
end
|
||||
|
||||
markup << "</div>"
|
||||
|
||||
# Check for nested configuration variables
|
||||
if attr.key? 'keys'
|
||||
markup << render_config_vars(
|
||||
vars: attr['keys'], component: component,
|
||||
platform: platform, converter: converter,
|
||||
classes: 'nested', parent_type: attr['type'])
|
||||
end
|
||||
|
||||
markup << "</div>"
|
||||
end
|
||||
|
||||
result << "</div>"
|
||||
result.join
|
||||
end
|
||||
|
||||
def render(context)
|
||||
if @component.nil? and @platform.nil?
|
||||
page = context.environments.first['page']
|
||||
@component, @platform = page['slug'].split('.', 2)
|
||||
end
|
||||
|
||||
contents = super(context)
|
||||
|
||||
component = Liquid::Template.parse(@component).render context
|
||||
platform = Liquid::Template.parse(@platform).render context
|
||||
|
||||
site = context.registers[:site]
|
||||
converter = site.find_converter_instance(::Jekyll::Converters::Markdown)
|
||||
|
||||
vars = SafeYAML.load(contents)
|
||||
|
||||
<<~MARKUP
|
||||
<div class="config-vars basic">
|
||||
#{render_config_vars(
|
||||
vars: vars,
|
||||
component: component,
|
||||
platform: platform,
|
||||
converter: converter
|
||||
)}
|
||||
</div>
|
||||
MARKUP
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Liquid::Template.register_tag('configuration_basic', Jekyll::ConfigurationBasicBlock)
|
@ -491,47 +491,82 @@ twitter-widget {
|
||||
|
||||
// Configuration variables
|
||||
div.config-vars {
|
||||
// Future re-design
|
||||
// h3 {
|
||||
// border: 0;
|
||||
// border-top: 1px solid $primary-color;
|
||||
// padding-top: 1.4rem;
|
||||
// }
|
||||
padding-bottom: 16px;
|
||||
|
||||
dl {
|
||||
margin-bottom: 1.5em;
|
||||
.config-vars-item {
|
||||
border-bottom: 1px solid #d9dbde;
|
||||
padding-top: 16px;
|
||||
padding-bottom: 16px;
|
||||
}
|
||||
|
||||
&.nested {
|
||||
border-left: 1px dotted $primary-color;
|
||||
padding-left: 6px;
|
||||
.nested .config-vars-item:last-child {
|
||||
border: none
|
||||
}
|
||||
|
||||
.config-vars-label {
|
||||
padding-bottom: 4px;
|
||||
position: relative;
|
||||
|
||||
> span {
|
||||
padding-right: 4px;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: bold;
|
||||
&:hover a.title-link::before {
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
left: -25px;
|
||||
padding-right: 40px;
|
||||
font-family: "FontAwesome";
|
||||
font-size: 15px;
|
||||
color: #999;
|
||||
content: "";
|
||||
}
|
||||
}
|
||||
|
||||
dd {
|
||||
margin: 0 0 0.5em 1em;
|
||||
.config-vars-label-name {
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
color: #222222bd;
|
||||
}
|
||||
|
||||
p.desc {
|
||||
margin: 0;
|
||||
.config-vars-type {
|
||||
color :#8792a2;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
span.type,
|
||||
span.required {
|
||||
font-style: italic;
|
||||
.config-vars-required {
|
||||
color :#8792a2;
|
||||
font-size: 13px;
|
||||
text-transform: lowercase;
|
||||
|
||||
&::after {
|
||||
content: " "
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
p.default {
|
||||
font-style: italic;
|
||||
margin: 0;
|
||||
}
|
||||
.true {
|
||||
color: #e56f4a;
|
||||
text-transform: uppercase;
|
||||
font-size: 11px;
|
||||
}
|
||||
}
|
||||
|
||||
.config-vars-description-and-children {
|
||||
font-size: 14px;
|
||||
color: #4f566b;
|
||||
}
|
||||
|
||||
.config-vars-description p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.config-vars-default {
|
||||
padding-top: 8px;
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
|
||||
.nested {
|
||||
margin-left: 48px;
|
||||
}
|
||||
}
|
||||
|
||||
code {
|
||||
|
@ -27,7 +27,7 @@
|
||||
|
||||
<div class='grid__item one-third lap-one-half palm-one-whole'>
|
||||
Website powered by <a href='https://jekyllrb.com/'>Jekyll</a> and the
|
||||
<a href='https://github.com/coogie/oscailte'>Oscalite theme</a>.<br />
|
||||
<a href='https://github.com/coogie/oscailte'>Oscailte theme</a>.<br />
|
||||
<br />
|
||||
<a href="https://www.netlify.com">
|
||||
<img src="/images/frontpage/netlify.svg" alt="Deploys by Netlify Badge"/>
|
||||
|
@ -63,7 +63,7 @@ Steps to Integrate an Amazon Alexa Smart Home Skill with Home Assistant:
|
||||
</p>
|
||||
|
||||
- In next screen, make sure *v3* is selected in `Payload version`.
|
||||
- Now, you have created a skeleton of Smart Home skill. Next step we will do some "real" developer work. You can keep Alex Developer Console opened, we need change the skill configuration later.
|
||||
- Now, you have created a skeleton of Smart Home skill. Next step we will do some "real" developer work. You can keep Alexa Developer Console opened, we need change the skill configuration later.
|
||||
|
||||
## Create an AWS Lambda Function
|
||||
|
||||
|
@ -19,6 +19,7 @@ Known supported devices:
|
||||
- Denon AVR-X1200W
|
||||
- Denon AVR-X1300W
|
||||
- Denon AVR-X1500H
|
||||
- Denon AVR-X1600H
|
||||
- Denon AVR-X2000
|
||||
- Denon AVR-X2100W
|
||||
- Denon AVR-X2200W
|
||||
|
@ -10,12 +10,23 @@ ha_domain: hddtemp
|
||||
|
||||
The `hddtemp` sensor platform is using the data provided by [HDDTemp](https://savannah.nongnu.org/projects/hddtemp).
|
||||
|
||||
## Setup
|
||||
|
||||
It required that `hddtemp` is started or running in daemon mode on a local or remote system.
|
||||
|
||||
```bash
|
||||
hddtemp -dF
|
||||
```
|
||||
|
||||
<div class='note warning'>
|
||||
|
||||
You can't use this sensor in a container (only Home Assistant Core is supported) as it requires access to `hddtemp` which is not available in a container-based setup.
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
## Configuration
|
||||
|
||||
To setup a HDDTemp to your installation, add the following to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
|
@ -98,6 +98,7 @@ For example: for model `UN55NU7100`, the `UN55` would mean it's an LED, North Am
|
||||
- F6400AF
|
||||
- F6500
|
||||
- F7000
|
||||
- F1000
|
||||
- F8000BF
|
||||
- K5579
|
||||
- K5600AK (partially supported, turn on works but state is not updated)
|
||||
@ -107,6 +108,7 @@ For example: for model `UN55NU7100`, the `UN55` would mean it's an LED, North Am
|
||||
- KS8000
|
||||
- KS8005
|
||||
- KS8500
|
||||
- KU6000W
|
||||
- KU6020
|
||||
- KU6100
|
||||
- KU6290
|
||||
@ -130,6 +132,7 @@ For example: for model `UN55NU7100`, the `UN55` would mean it's an LED, North Am
|
||||
- RU7172
|
||||
- RU7475
|
||||
- Q90RATXZT
|
||||
- QA55Q7FAM
|
||||
|
||||
#### Models tested but not yet working
|
||||
|
||||
|
@ -183,7 +183,7 @@ sensor:
|
||||
sensor:
|
||||
- platform: command_line
|
||||
name: wind direction
|
||||
command: 'sh /home/pi/.homeassistant/scripts/wind_direction.sh {{ states('sensor.wind_direction') }}'
|
||||
command: "sh /home/pi/.homeassistant/scripts/wind_direction.sh {{ states('sensor.wind_direction') }}"
|
||||
unit_of_measurement: "Direction"
|
||||
```
|
||||
|
||||
|
@ -6,7 +6,7 @@ ha_category:
|
||||
- Scene
|
||||
ha_release: '0.110'
|
||||
ha_config_flow: true
|
||||
ha_iot_class: Local Polling
|
||||
ha_iot_class: Local Push
|
||||
ha_codeowners:
|
||||
- '@gwww'
|
||||
ha_domain: upb
|
||||
|
@ -32,4 +32,4 @@ api_key:
|
||||
|
||||
All the data will be fetched from [Uptime Robot](https://uptimerobot.com).
|
||||
|
||||
To get your API key, go to [My Settings](https://uptimerobot.com/dashboard#mySettings) on the Uptime Robot website, at the bottom you will find your "Main API Key".
|
||||
To get your API key, go to [My Settings](https://uptimerobot.com/dashboard#mySettings) on the Uptime Robot website, at the bottom you will find your "Read-Only API Key".
|
||||
|
@ -43,7 +43,7 @@ Stop the current cleaning task and return to the dock. For the Xiaomi Vacuum, Ro
|
||||
|
||||
#### Service `vacuum.start_pause`
|
||||
|
||||
Start, pause or resume a cleaning task.
|
||||
Start, pause or resume a cleaning task. For the Xiaomi Vacuum, Roomba, and Neato use `vacuum.start` and `vacuum.pause` instead.
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
|---------------------------|----------|-------------------------------------------------------|
|
||||
|
@ -329,10 +329,18 @@ This token (32 hexadecimal characters) is required for the Xiaomi Mi Robot Vacuu
|
||||
8. Install [DB Browser for SQLite](https://sqlitebrowser.org/).
|
||||
9. Open DB Browser and load the `.sqlite` file you saved from your backup.
|
||||
10. Click on the `Execute SQL` tab.
|
||||
11. Input and run this query:
|
||||
11. Input and run this query (use appropriate SELECT query for your device i.e. Vacuum, Powerstrip or Plug):
|
||||
|
||||
```sql
|
||||
-- Execute to retrieve token for Vacuum
|
||||
SELECT ZTOKEN FROM ZDEVICE WHERE ZMODEL LIKE "%vacuum%"
|
||||
|
||||
-- Execute to retrieve token for Smart Powerstrip
|
||||
SELECT ZTOKEN FROM ZDEVICE WHERE ZMODEL LIKE "%powerstrip%"
|
||||
|
||||
-- Execute to retrieve token for Smart Plug
|
||||
SELECT ZTOKEN FROM ZDEVICE WHERE ZMODEL LIKE "%plug%"
|
||||
|
||||
```
|
||||
|
||||
12. Copy the returned 96-digit hexadecimal string to your clipboard.
|
||||
|
@ -7,10 +7,40 @@ description: "The Weather Forecast card displays the weather. Very useful to inc
|
||||
The Weather Forecast card displays the weather. Very useful to include on interfaces that people display on the wall.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/lovelace/lovelace_weather.png' alt='Screenshot of the weather card'>
|
||||
Screenshot of the weather card.
|
||||
<img src='/images/lovelace/lovelace_weather.png' alt='Screenshot of the weather card'>
|
||||
Screenshot of the weather card.
|
||||
</p>
|
||||
|
||||
|
||||
### Card Settings
|
||||
|
||||
|
||||
{% configuration_basic %}
|
||||
Entity:
|
||||
description: "The entity of the `weather` platform to use."
|
||||
Name:
|
||||
description: The name of the location where the weather platform is located. If not set, the name will be the name set on the weather entity
|
||||
Show Forecast:
|
||||
description: Check this if you would like to show the upcoming forecast under the current weather.
|
||||
Secondary Info Attribute:
|
||||
description: Here you can specify a secondary attribute to show under the current temperature. Ex. Extrema, Precipitation, Humidity. If not set, it will default to Extrema (High/Low) if available, if not available then Precipitation and if precipitation isn't available then Humidity.
|
||||
Theme:
|
||||
description: Theme your card using any installed theme in your HA environment.
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
<div class="note">
|
||||
|
||||
This card works only with platforms that define a `weather` entity.
|
||||
|
||||
E.g., it works with [OpenWeatherMap](https://www.home-assistant.io/integrations/openweathermap/#weather) but not [OpenWeatherMap Sensor](https://www.home-assistant.io/integrations/openweathermap/#sensor)
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
### YAML
|
||||
|
||||
This is for if you use YAML mode or just prefer to use YAML in the Code Editor in the UI
|
||||
|
||||
{% configuration %}
|
||||
type:
|
||||
required: true
|
||||
@ -48,13 +78,6 @@ type: weather-forecast
|
||||
entity: weather.openweathermap
|
||||
```
|
||||
|
||||
<div class="note">
|
||||
|
||||
This card works only with platforms that define a `weather` entity.
|
||||
|
||||
E.g., it works with [OpenWeatherMap](https://www.home-assistant.io/integrations/openweathermap/#weather) but not [OpenWeatherMap Sensor](https://www.home-assistant.io/integrations/openweathermap/#sensor)
|
||||
|
||||
</div>
|
||||
|
||||
### Advanced
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user