Merge branch 'current' into next

This commit is contained in:
Franck Nijhof 2020-03-17 15:32:28 +01:00
commit a0c79cd3ac
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
18 changed files with 326 additions and 133 deletions

View File

@ -5,7 +5,7 @@ GEM
public_suffix (>= 2.0.2, < 5.0)
chunky_png (1.3.11)
colorator (1.1.0)
commonmarker (0.20.1)
commonmarker (0.21.0)
ruby-enum (~> 0.5)
compass (1.0.3)
chunky_png (~> 1.2)
@ -19,14 +19,14 @@ GEM
sass (>= 3.3.0, < 3.5)
compass-import-once (1.0.5)
sass (>= 3.2, < 3.5)
concurrent-ruby (1.1.5)
concurrent-ruby (1.1.6)
em-websocket (0.5.1)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
eventmachine (1.2.7)
eventmachine (1.2.7-x64-mingw32)
ffi (1.12.1)
ffi (1.12.1-x64-mingw32)
ffi (1.12.2)
ffi (1.12.2-x64-mingw32)
forwardable-extended (2.6.0)
http_parser.rb (0.6.0)
i18n (1.8.2)
@ -52,7 +52,7 @@ GEM
jekyll-paginate (1.1.0)
jekyll-redirect-from (0.16.0)
jekyll (>= 3.3, < 5.0)
jekyll-sass-converter (2.0.1)
jekyll-sass-converter (2.1.0)
sassc (> 2.0.1, < 3.0)
jekyll-sitemap (1.4.0)
jekyll (>= 3.7, < 5.0)
@ -70,7 +70,7 @@ GEM
mercenary (0.3.6)
mini_portile2 (2.4.0)
multi_json (1.14.1)
mustermann (1.1.0)
mustermann (1.1.1)
ruby2_keywords (~> 0.0.1)
nokogiri (1.10.9)
mini_portile2 (~> 2.4.0)
@ -86,10 +86,10 @@ GEM
rb-fsevent (0.10.3)
rb-inotify (0.10.1)
ffi (~> 1.0)
rouge (3.15.0)
rouge (3.17.0)
ruby-enum (0.7.2)
i18n
ruby2_keywords (0.0.1)
ruby2_keywords (0.0.2)
safe_yaml (1.0.5)
sass (3.4.25)
sass-globbing (1.1.5)
@ -111,7 +111,7 @@ GEM
concurrent-ruby (~> 1.0)
tzinfo-data (1.2019.3)
tzinfo (>= 1.0.0)
unicode-display_width (1.6.1)
unicode-display_width (1.7.0)
PLATFORMS
ruby

218
package-lock.json generated
View File

@ -506,9 +506,9 @@
"dev": true
},
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
"dev": true
},
"ansi-styles": {
@ -521,9 +521,9 @@
}
},
"anymatch": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.0.3.tgz",
"integrity": "sha512-c6IvoeBECQlMVuYUjSwimnhmztImpErfxJzWZhIQinIvQWoGOnB0dLIgifbPHQt5heS6mNlaZG16f06H3C8t1g==",
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
"integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
"dev": true,
"requires": {
"normalize-path": "^3.0.0",
@ -642,19 +642,19 @@
"dev": true
},
"chokidar": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.0.2.tgz",
"integrity": "sha512-c4PR2egjNjI1um6bamCQ6bUNPDiyofNQruHvKgHQ4gDUP/ITSVSzNsiI5OWtHOsX323i5ha/kk4YmOZ1Ktg7KA==",
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz",
"integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==",
"dev": true,
"requires": {
"anymatch": "^3.0.1",
"braces": "^3.0.2",
"fsevents": "^2.0.6",
"glob-parent": "^5.0.0",
"is-binary-path": "^2.1.0",
"is-glob": "^4.0.1",
"normalize-path": "^3.0.0",
"readdirp": "^3.1.1"
"anymatch": "~3.1.1",
"braces": "~3.0.2",
"fsevents": "~2.1.2",
"glob-parent": "~5.1.0",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
"readdirp": "~3.3.0"
}
},
"co": {
@ -849,9 +849,9 @@
}
},
"figures": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-3.0.0.tgz",
"integrity": "sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g==",
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
"integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
"dev": true,
"requires": {
"escape-string-regexp": "^1.0.5"
@ -920,9 +920,9 @@
"dev": true
},
"fsevents": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.0.7.tgz",
"integrity": "sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ==",
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz",
"integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==",
"dev": true,
"optional": true
},
@ -953,9 +953,9 @@
}
},
"glob-parent": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz",
"integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==",
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
"integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
"dev": true,
"requires": {
"is-glob": "^4.0.1"
@ -1012,9 +1012,9 @@
"dev": true
},
"ignore": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.2.tgz",
"integrity": "sha512-vdqWBp7MyzdmHkkRWV5nY+PfGRbYbahfuvsBCh277tq+w9zyNi7h5CYJCK0kmzti9kU+O/cB7sE8HvKv6aXAKQ==",
"version": "5.1.4",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz",
"integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==",
"dev": true
},
"inflight": {
@ -1083,9 +1083,9 @@
}
},
"is-buffer": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
"integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==",
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
"integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==",
"dev": true
},
"is-callable": {
@ -1146,9 +1146,9 @@
"dev": true
},
"is-hidden": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/is-hidden/-/is-hidden-1.1.2.tgz",
"integrity": "sha512-kytBeNVW2QTIqZdJBDKIjP+EkUTzDT07rsc111w/gxqR6wK3ODkOswcpxgED6HU6t7fEhOxqojVZ2a2kU9rj+A==",
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/is-hidden/-/is-hidden-1.1.3.tgz",
"integrity": "sha512-FFzhGKA9h59OFxeaJl0W5ILTYetI8WsdqdofKr69uLKZdV6hbDKxj8vkpG3L9uS/6Q/XYh1tkXm6xwRGFweETA==",
"dev": true
},
"is-number": {
@ -1164,9 +1164,9 @@
"dev": true
},
"is-plain-obj": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.0.0.tgz",
"integrity": "sha512-EYisGhpgSCwspmIuRHGjROWTon2Xp8Z7U03Wubk/bTL5TTRC5R1rGVgyjzBrk9+ULdH6cRD06KRcw/xfqhVYKQ==",
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
"integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
"dev": true
},
"is-regex": {
@ -1237,12 +1237,20 @@
}
},
"json5": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz",
"integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==",
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz",
"integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==",
"dev": true,
"requires": {
"minimist": "^1.2.0"
"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": {
@ -1648,9 +1656,9 @@
}
},
"picomatch": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz",
"integrity": "sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==",
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz",
"integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==",
"dev": true
},
"pify": {
@ -1795,9 +1803,9 @@
}
},
"readable-stream": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
"integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"dev": true,
"requires": {
"inherits": "^2.0.3",
@ -1806,12 +1814,12 @@
}
},
"readdirp": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.1.1.tgz",
"integrity": "sha512-XXdSXZrQuvqoETj50+JAitxz1UPdt5dupjT6T5nVB+WvjMv2XKYj+s7hPeAVCXvmJrL36O4YYyWlIC3an2ePiQ==",
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz",
"integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==",
"dev": true,
"requires": {
"picomatch": "^2.0.4"
"picomatch": "^2.0.7"
}
},
"regexp.prototype.flags": {
@ -1825,9 +1833,9 @@
}
},
"remark": {
"version": "11.0.0",
"resolved": "https://registry.npmjs.org/remark/-/remark-11.0.0.tgz",
"integrity": "sha512-cxfoqvY1Tyz7n1KF2JpywPCKulF69XvGmFwykuRPnqFkc8aSNQOFvcI1L3jj5NOjm+fpDdwwnGmwabxni1X8oQ==",
"version": "11.0.2",
"resolved": "https://registry.npmjs.org/remark/-/remark-11.0.2.tgz",
"integrity": "sha512-bh+eJgn8wgmbHmIBOuwJFdTVRVpl3fcVP6HxmpPWO0ULGP9Qkh6INJh0N5Uy7GqlV7DQYGoqaKiEIpM5LLvJ8w==",
"dev": true,
"requires": {
"remark-parse": "^7.0.0",
@ -1836,9 +1844,9 @@
}
},
"remark-cli": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-7.0.0.tgz",
"integrity": "sha512-gYomWviFnZsiRimG+Jdb4LQ9c8uSOcGmPTmzlvxImt0gvzabqlp1kaqndxTx4kYLsWGqwhQRO+M9iyqHDkoDlA==",
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-7.0.1.tgz",
"integrity": "sha512-CUjBLLSbEay0mNwOO+pptnLIoS8UB6cHlhZVpTRKbtbIcw6YEzEfD7jGjW1HCA8lZK87IfY3/DuWE6DlXu+hfg==",
"dev": true,
"requires": {
"markdown-extensions": "^1.1.0",
@ -1900,9 +1908,9 @@
}
},
"remark-parse": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-7.0.0.tgz",
"integrity": "sha512-UlfoqASKUnwSrzOcLSa7fwYdkpbeWwAs49YYdQmoYXK1TUJ2CvDBb3v8Lkt2GQzdPW9dWbjhteOsJJ27p1rNFg==",
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-7.0.2.tgz",
"integrity": "sha512-9+my0lQS80IQkYXsMA8Sg6m9QfXYJBnXjWYN5U+kFc5/n69t+XZVXU/ZBYr3cYH8FheEGf1v87rkFDhJ8bVgMA==",
"dev": true,
"requires": {
"collapse-white-space": "^1.0.2",
@ -2061,14 +2069,14 @@
"dev": true
},
"string-width": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.1.0.tgz",
"integrity": "sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ==",
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
"integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
"dev": true,
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^5.2.0"
"strip-ansi": "^6.0.0"
}
},
"string.prototype.padstart": {
@ -2102,12 +2110,20 @@
}
},
"string_decoder": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz",
"integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==",
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"dev": true,
"requires": {
"safe-buffer": "~5.1.0"
"safe-buffer": "~5.2.0"
},
"dependencies": {
"safe-buffer": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
"integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==",
"dev": true
}
}
},
"stringify-entities": {
@ -2124,12 +2140,12 @@
}
},
"strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
"dev": true,
"requires": {
"ansi-regex": "^4.1.0"
"ansi-regex": "^5.0.0"
}
},
"strip-bom": {
@ -2317,9 +2333,9 @@
}
},
"textlint-rule-terminology": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/textlint-rule-terminology/-/textlint-rule-terminology-2.1.1.tgz",
"integrity": "sha512-955Q289wCubt67iar/U3jnsPvwHkRhWnOM0gqE3fQDBMJkFsoDnYNummU8CmAPXK7usnbwa2r48q0s4FtATWbw==",
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/textlint-rule-terminology/-/textlint-rule-terminology-2.1.3.tgz",
"integrity": "sha512-RpbATk2+M35bAXnDQZGL54ILNPXHy8e8GIl3AJLiywG251L2bQYqvAhLaA7ad9qsrDOXQiGFIkd562KnP5CPkw==",
"dev": true,
"requires": {
"lodash": "^4.17.15",
@ -2357,9 +2373,9 @@
}
},
"to-vfile": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-6.0.0.tgz",
"integrity": "sha512-i9fwXXSsHLu7mzgixc1WjgnqSe6pGpjnzCYoFmrASvEueLfyKf09QAe+XQYu8OAJ62aFqHpe2EKXojeRVvEzqA==",
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-6.1.0.tgz",
"integrity": "sha512-BxX8EkCxOAZe+D/ToHdDsJcVI4HqQfmw0tCkp31zf3dNP/XWIAjU4CmeuSwsSoOzOTqHPOL0KUzyZqJplkD0Qw==",
"dev": true,
"requires": {
"is-buffer": "^2.0.0",
@ -2422,9 +2438,9 @@
}
},
"unified": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/unified/-/unified-8.3.2.tgz",
"integrity": "sha512-NDtUAXcd4c+mKppCbsZHzmhkKEQuhveZNBrFYmNgMIMk2K9bc8hmG3mLEGVtRmSNodobwyMePAnvIGVWZfPdzQ==",
"version": "8.4.2",
"resolved": "https://registry.npmjs.org/unified/-/unified-8.4.2.tgz",
"integrity": "sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==",
"dev": true,
"requires": {
"bail": "^1.0.0",
@ -2541,9 +2557,9 @@
}
},
"unist-util-stringify-position": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.1.tgz",
"integrity": "sha512-Zqlf6+FRI39Bah8Q6ZnNGrEHUhwJOkHde2MHVk96lLyftfJJckaPslKgzhVcviXj8KcE9UJM9F+a4JEiBUTYgA==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
"integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
"dev": true,
"requires": {
"@types/unist": "^2.0.2"
@ -2593,9 +2609,9 @@
}
},
"vfile": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/vfile/-/vfile-4.0.1.tgz",
"integrity": "sha512-lRHFCuC4SQBFr7Uq91oJDJxlnftoTLQ7eKIpMdubhYcVMho4781a8MWXLy3qZrZ0/STD1kRiKc0cQOHm4OkPeA==",
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/vfile/-/vfile-4.0.3.tgz",
"integrity": "sha512-lREgT5sF05TQk68LO6APy0In+TkFGnFEgKChK2+PHIaTrFQ9oHCKXznZ7VILwgYVBcl0gv4lGATFZBLhi2kVQg==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
@ -2612,19 +2628,19 @@
"dev": true
},
"vfile-message": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.1.tgz",
"integrity": "sha512-KtasSV+uVU7RWhUn4Lw+wW1Zl/nW8JWx7JCPps10Y9JRRIDeDXf8wfBLoOSsJLyo27DqMyAi54C6Jf/d6Kr2Bw==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.3.tgz",
"integrity": "sha512-qQg/2z8qnnBHL0psXyF72kCjb9YioIynvyltuNKFaUhRtqTIcIMP3xnBaPzirVZNuBrUe1qwFciSx2yApa4byw==",
"dev": true,
"requires": {
"@types/unist": "^2.0.2",
"@types/unist": "^2.0.0",
"unist-util-stringify-position": "^2.0.0"
}
},
"vfile-reporter": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-6.0.0.tgz",
"integrity": "sha512-8Is0XxFxWJUhPJdOg3CyZTqd3ICCWg6r304PuBl818ZG91h4FMS3Q+lrOPS+cs5/DZK3H0+AkJdH0J8JEwKtDA==",
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-6.0.1.tgz",
"integrity": "sha512-0OppK9mo8G2XUpv+hIKLVSDsoxJrXnOy73+vIm0jQUOUFYRduqpFHX+QqAQfvRHyX9B0UFiRuNJnBOjQCIsw1g==",
"dev": true,
"requires": {
"repeat-string": "^1.5.0",
@ -2647,15 +2663,15 @@
}
},
"vfile-sort": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-2.2.1.tgz",
"integrity": "sha512-5dt7xEhC44h0uRQKhbM2JAe0z/naHphIZlMOygtMBM9Nn0pZdaX5fshhwWit9wvsuP8t/wp43nTDRRErO1WK8g==",
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-2.2.2.tgz",
"integrity": "sha512-tAyUqD2R1l/7Rn7ixdGkhXLD3zsg+XLAeUDUhXearjfIcpL1Hcsj5hHpCoy/gvfK/Ws61+e972fm0F7up7hfYA==",
"dev": true
},
"vfile-statistics": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-1.1.3.tgz",
"integrity": "sha512-CstaK/ebTz1W3Qp41Bt9Lj/2DmumFsCwC2sKahDNSPh0mPh7/UyMLCoU8ZBX34CRU0d61B4W41yIFsV0NKMZeA==",
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-1.1.4.tgz",
"integrity": "sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA==",
"dev": true
},
"word-wrap": {

View File

@ -4,7 +4,7 @@
"version": "1.0.0",
"dependencies": {},
"devDependencies": {
"remark-cli": "^7.0.0",
"remark-cli": "^7.0.1",
"remark-frontmatter": "^1.3.2",
"remark-lint": "^6.0.5",
"remark-lint-fenced-code-flag": "^1.0.3",
@ -12,7 +12,7 @@
"remark-stringify": "^7.0.4",
"textlint": "^11.6.3",
"textlint-rule-common-misspellings": "^1.0.1",
"textlint-rule-terminology": "^2.1.1"
"textlint-rule-terminology": "^2.1.3"
},
"scripts": {
"markdown:lint": "remark --quiet --frail .",

View File

@ -288,7 +288,7 @@ As an alternative, providing you include the sensor [time](/integrations/time_da
automation:
trigger:
platform: template
value_template: "{{ (as_timestamp(states.sensor.time.last_changed) - as_timestamp(states.YOUR.ENTITY.last_changed)) > 300 }}"
value_template: "{{ (states.sensor.time.last_changed - states.YOUR.ENTITY.last_changed).total_seconds() > 300 }}"
```
{% endraw %}

View File

@ -134,7 +134,9 @@ Remark: to restart your Home Assistant within Synology NAS, you just have to do
- Right-click on it and select "Action"->"Restart".
<div class='note'>
If you want to use a USB Bluetooth adapter or Z-Wave USB Stick with Home Assistant on Synology Docker these instructions do not correctly configure the container to access the USB devices. To configure these devices on your Synology Docker Home Assistant you can follow the instructions provided <a href="https://philhawthorne.com/installing-home-assistant-io-on-a-synology-diskstation-nas/">here</a> by Phil Hawthorne.
If you want to use a USB Bluetooth adapter or Z-Wave USB Stick with Home Assistant on Synology Docker these instructions do not correctly configure the container to access the USB devices. To configure these devices on your Synology Docker Home Assistant you can follow the instructions provided [here](https://philhawthorne.com/installing-home-assistant-io-on-a-synology-diskstation-nas/) by Phil Hawthorne.
</div>
### QNAP NAS
@ -267,3 +269,9 @@ or in a `docker-compose.yml` file:
restart: always
network_mode: host
```
<div class='note'>
On Mac, USB devices are [not passed through](https://github.com/docker/for-mac/issues/900) by default. Follow the instructions in [Using USB with Docker for Mac](https://dev.to/rubberduck/using-usb-with-docker-for-mac-3fdd) by Christopher McClellan if your device is not showing up.
</div>

View File

@ -140,6 +140,7 @@ Supported abbreviations:
'mode_stat_tpl': 'mode_state_template',
'mode_stat_t': 'mode_state_topic',
'name': 'name',
'off_dly': 'off_delay',
'on_cmd_type': 'on_command_type',
'opt': 'optimistic',
'osc_cmd_t': 'oscillation_command_topic',

View File

@ -818,3 +818,61 @@ Button presses will trigger `zwave.scene_activated` with the following:
- `scene_id`: the number of the button you press from top left (1) to bottom right (8)
{% endraw %}
### Logicgroup ZDB5100 Matrix
<!-- from https://products.z-wavealliance.org/products/3399/ -->
Once you've added the ZDB5100 to your Z-Wave network, you'll need to update your `zwcfg_*.xml` file with the below XML data. Stop Home Assistant and open your `zwcfg_*.xml` file (located in your configuration folder). Find the ZDB5100 device section and then its corresponding `CommandClass` section with id="91". Replace the entire CommandClass section with the below XML data. Save the file and restart Home Assistant.
```xml
<CommandClass id="91" name="COMMAND_CLASS_CENTRAL_SCENE" version="1" request_flags="4" innif="true" scenecount="0">
<Instance index="1" />
<Value type="int" genre="system" instance="1" index="0" label="Scene Count" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
<Value type="int" genre="system" instance="1" index="1" label="Button One" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
<Value type="int" genre="system" instance="1" index="2" label="Button Two" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
<Value type="int" genre="system" instance="1" index="3" label="Button Three" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
<Value type="int" genre="system" instance="1" index="4" label="Button Four" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
</CommandClass>
```
Below is a table of the action/scenes for the ZDB5100 Matrix:
**Action**|**scene\_id**|**scene\_data**
:-----:|:-----:|:-----:
Button one single tap|1|7680
Button one double tap|1|7860
Button one triple tap|1|7920
Button one hold|1|7800
Button one release|1|7740
Button two single tap|2|7680
Button two double tap|2|7860
Button two triple tap|2|7920
Button two hold|2|7800
Button two release|2|7740
Button three single tap|3|7680
Button three double tap|3|7860
Button three triple tap|3|7920
Button three hold|3|7800
Button three release|3|7740
Button four single tap|4|7680
Button four double tap|4|7860
Button four triple tap|4|7920
Button four hold|4|7800
Button four release|4|7740
Example Event:
```yaml
- alias: MatrixButton2
trigger:
- event_type: zwave.scene_activated
platform: event
event_data:
node_id: 2
scene_id: 2
scene_data: 7680
action:
- service: switch.toggle
entity_id: switch.office_fan
```

View File

@ -9,7 +9,7 @@
<li>
<b>{% active_link /docs/installation/ Installation %}</b>
<ul>
<li>{% active_link /hassio/ Hass.io %}</li>
<li>{% active_link /hassio/ Home Assistant %}</li>
<li>{% active_link /docs/installation/updating/ Updating %}</li>
<li>
{% active_link /docs/installation/troubleshooting/ Troubleshooting

View File

@ -3,7 +3,7 @@
<h1 class="title delta">Topics</h1>
<ul class='divided sidebar-menu'>
<li>
{% active_link /hassio/ Hass.io %}
{% active_link /hassio/ Home Assistant %}
<ul>
<li>{% active_link /hassio/installation/ Installation %}</li>
<li>{% active_link /addons/ Available add-ons %}</li>

View File

@ -1,4 +1,4 @@
{% assign url_parts = page.url | split: '/' %}
{% if page.hide_github_edit != true %}
<div class='edit-github'><a href='{{ site.NLY_REPOSITORY_URL }}/tree/{{ site.NLY_HEAD }}/source/{{ page.path }}'>Edit this page on GitHub</a></div>
<div class='edit-github'><a target="_blank" rel="noopener noreferrer" href='{{ site.NLY_REPOSITORY_URL }}/tree/{{ site.NLY_HEAD }}/source/{{ page.path }}'>Edit this page on GitHub</a></div>
{% endif %}

View File

@ -8,9 +8,9 @@ ha_iot_class: Configurable
ha_domain: mqtt
---
The `mqtt` binary sensor platform uses an MQTT message payload to set the binary sensor to one of two states: `on` or `off`.
The `mqtt` binary sensor platform uses an MQTT message received to set the binary sensor's state to `on` or `off`.
The binary sensor state will be updated only after a new message is published on `state_topic` matching `payload_on` or `payload_off`. If these messages are published with the `retain` flag set,
The state will be updated only after a new message is published on `state_topic` matching `payload_on` or `payload_off`. If these messages are published with the `retain` flag set,
the binary sensor will receive an instant state update after subscription and Home Assistant will display the correct state on startup.
Otherwise, the initial state displayed in Home Assistant will be `unknown`.
@ -19,7 +19,7 @@ Stateless devices such as buttons, remote controls etc are better represented by
## Configuration
The `mqtt` binary sensor platform optionally supports an `availability_topic` to receive online and offline messages (birth and LWT messages) from the MQTT device. During normal operation, if the MQTT sensor device goes offline (i.e., publishes `payload_not_available` to `availability_topic`), Home Assistant will display the binary sensor as `unavailable`. If these messages are published with the `retain` flag set, the binary sensor will receive an instant update after subscription and Home Assistant will display the correct availability state of the binary sensor when Home Assistant starts up. If the `retain` flag is not set, Home Assistant will display the binary sensor as `unavailable` when Home Assistant starts up. If no `availability_topic`
is defined, Home Assistant will consider the MQTT device to be available.
is defined, Home Assistant will consider the MQTT device to be `available` and will display its state.
To use an MQTT binary sensor in your installation,
add the following to your `configuration.yaml` file:
@ -33,7 +33,7 @@ binary_sensor:
{% configuration %}
availability_topic:
description: "The MQTT topic subscribed to receive birth and LWT messages from the MQTT device. If `availability_topic` is not defined, the binary sensor availability state will always be `available`. If `availability_topic` is defined, the binary sensor availability state will be `unavailable` by default."
description: "The MQTT topic subscribed to receive birth and LWT messages from the MQTT device. If `availability_topic` is not defined, the binary sensor will always be considered `available` and its state will be `on`, `off` or `unknown`. If `availability_topic` is defined, the binary sensor will be considered as `unavailable` by default and the sensor's state will be `unavailable`."
required: false
type: string
device:
@ -70,11 +70,11 @@ device_class:
required: false
type: string
expire_after:
description: "Defines the number of seconds after the value expires if it's not updated. After expiry, the value is cleared, and the availability is set to false"
description: "Defines the number of seconds after the sensor's state expires if it's not updated. After expiry, the sensor's state becomes `unavailable` if `availability_topic` is defined and `unknown` otherwise."
required: false
type: integer
force_update:
description: Sends update events even if the value hasn't changed. Useful if you want to have meaningful value graphs in history.
description: Sends update events (which results in update of [state object](/docs/configuration/state_object/)'s `last_changed`) even if the sensor's state hasn't changed. Useful if you want to have meaningful value graphs in history or want to create an automation that triggers on *every* incoming state message (not only when the sensor's new state is different to the current one).
required: false
type: boolean
default: false
@ -92,26 +92,26 @@ name:
type: string
default: MQTT Binary Sensor
off_delay:
description: "For sensors that only sends `On` state updates, this variable sets a delay in seconds after which the sensor state will be updated back to `Off`."
description: "For sensors that only send `on` state updates (like PIRs), this variable sets a delay in seconds after which the sensor's state will be updated back to `off`."
required: false
type: integer
payload_available:
description: The payload that represents the online state.
description: The string that represents the `online` state.
required: false
type: string
default: online
payload_not_available:
description: The payload that represents the offline state.
description: The string that represents the `offline` state.
required: false
type: string
default: offline
payload_off:
description: The payload that represents the off state.
description: The string that represents the `off` state. It will be compared to the message in the `state_topic` (see `value_template` for details)
required: false
type: string
default: "OFF"
payload_on:
description: The payload that represents the on state.
description: The string that represents the `on` state. It will be compared to the message in the `state_topic` (see `value_template` for details)
required: false
type: string
default: "ON"
@ -121,7 +121,7 @@ qos:
type: integer
default: 0
state_topic:
description: The MQTT topic subscribed to receive sensor values.
description: The MQTT topic subscribed to receive sensor's state.
required: true
type: string
unique_id:
@ -129,7 +129,7 @@ unique_id:
required: false
type: string
value_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload. Available variables: `entity_id`. Remove this option when 'payload_on' and 'payload_off' are sufficient to match your payloads."
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) that returns a string to be compared to `payload_on`/`payload_off`. Available variables: `entity_id`. Remove this option when 'payload_on' and 'payload_off' are sufficient to match your payloads (i.e no pre-processing of original message is required)."
required: false
type: string
{% endconfiguration %}

View File

@ -8,7 +8,13 @@ ha_release: 0.64
ha_domain: filesize
---
The `filesize` sensor for displaying the size in MB of a file. Note that paths must be added to [whitelist_external_dirs](/docs/configuration/basic/).
The `filesize` sensor is for displaying the size in MB of a file.
<div class='note'>
File paths must also be added to [whitelist_external_dirs](/docs/configuration/basic/) in your `configuration.yaml`.
</div>
## Configuration

View File

@ -477,7 +477,7 @@ The `homematic` notification platform enables invoking Homematic devices.
To use this notification platform in your installation, add the following to your `configuration.yaml` file:
## Configuration
### Configuration
```yaml
# Example configuration.yaml entry

View File

@ -32,6 +32,8 @@ Where the `api_key` and `api_secret` values are acquired from your OPNsense
router using the web interface. For more information on this procedure, refer
to the OPNsense [documentation](https://docs.opnsense.org/development/how-tos/api.html#creating-keys).
User with API Key requires privileges for Type: GUI Name: Diagnostics: ARP Table.
{% configuration %}
url:
description: The URL for the OPNsense API endpoint of your router.

View File

@ -140,7 +140,7 @@ Devices that are confirmed to support Consumption Reading;
1. HS110
2. HS300
In order to get the power consumption readings from a TP-Link HS110 device, you'll have to create a [template sensor](/integrations/switch.template/).
In order to get the power consumption readings from a TP-Link HS110 device, you'll have to create a [template sensor](/integrations/template/).
In the example below, change all of the `my_tp_switch`'s to match your device's entity ID.
{% raw %}

View File

@ -0,0 +1,102 @@
---
title: "Community Highlights: 5th edition"
description: "DIY Smart key holder, Marine aquariums and Live energy consumption"
date: 2020-03-15 00:00:00
date_formatted: "March 15, 2020"
author: Franck Nijhof
author_twitter: frenck
categories: Community
og_image: /images/blog/2020-03-15-community-highlights/social.png
---
Time for the fifth enactment of the Community Highlights!
We've received quite a few recommendations, but also closely monitored
social media and found some gems to share again!
## Controlling 7! marine aquariums with Home Assistant
Let's start with showcasing a highly unusual, but impressive, Home Assistant setup.
It is shared on our [Facebook group][facebook-group] by Kevin McPeake. Kevin's
setup has a total of 5 Home Assistant instances, controlling 7x marine aquariums!
<p class='img'>
<a href="https://www.facebook.com/groups/HomeAssistant/permalink/2597624533842234/">
<img
src='/images/blog/2020-03-15-community-highlights/marine-aquariums.png'
alt="Kevin's impressive setup for his 7 aquariums"
style='border: 0;box-shadow: none;'
/>
</a>
Kevin's impressive setup for his 7 aquariums.
</p>
Those are some big views Kevin! I bet you will be happy with the new Lovelace
features that are coming in Home Assistant Core 0.107. It will help
you to trim down that a bit, into multiple Lovelace Dashboards (now in
[beta, sneak peak?](https://rc.home-assistant.io/latest-release-notes/)).
[Click here to check out Kevin's post on our Facebook group.](https://www.facebook.com/groups/HomeAssistant/permalink/2597624533842234/)
_Thanks, Walt_H for [sending in](/suggest-community-highlight) this item! 👍_
## Live energy consumption screen
Energy saving is good for the environment (and your wallet). However, to do that,
you have to become aware of your actual usage. `/u/Lau-ie` shared his energy
consumption screen on our [subreddit][reddit].
This gives insight into the current usage, but also in the usage & costs of the
consumed energy of the last 24 hours.
<blockquote class="reddit-card" data-card-created="1584140539"><a href="https://www.reddit.com/r/homeassistant/comments/f78h7n/new_energyconsumption_screen_still_tweaking_it/">New energyconsumption screen, still tweaking it.</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>
Do you actively monitor your energy usage? What does your dashboard look like?
## A DIY smart magnetic key holder
And here is one from [James Callaghan](https://twitter.com/jamescallaghan), who
created really smart and easy to replicate magnet key holder, using a Xiaomi
Aqara Door/Window sensor. Yes, this key holder works on Zigbee.
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">My mind goes crazy at the number of problems a single sensor can solve. For me, this was for reassurance using <a href="https://twitter.com/home_assistant?ref_src=twsrc%5Etfw">@****home_assistant****</a> but when you think how this could be applied elsewhere concierge services to those with memory issues etc.. <a href="https://twitter.com/hashtag/smarthome?src=hash&amp;ref_src=twsrc%5Etfw">#smarthome</a> <a href="https://twitter.com/hashtag/inclusivity?src=hash&amp;ref_src=twsrc%5Etfw">#inclusivity</a> <a href="https://twitter.com/hashtag/accessibility?src=hash&amp;ref_src=twsrc%5Etfw">#accessibility</a> <a href="https://twitter.com/hashtag/IoT?src=hash&amp;ref_src=twsrc%5Etfw">#IoT</a> <a href="https://t.co/sirygbCE7p">pic.twitter.com/sirygbCE7p</a></p>&mdash; James Callaghan #Microsoft (@jamescallaghan) <a href="https://twitter.com/jamescallaghan/status/1237148097345654784?ref_src=twsrc%5Etfw">March 9, 2020</a>
</blockquote>
## Consumer Reports: Open call for non-resident technologist fellows
Consumer Reports is an American non-profit organization that does independent,
(product) testing and research for consumers to provide truth, transparency and
fairness. Their results are published in a monthly magazine and on their website.
The Consumer Reports Digital Lab offers paid, non-resident fellowships to study
the effects of connected (IoT) products and services. They welcome anyone
interested in public technology research to apply for the fellowship.
If you are interested in this, more information can be found here:
- [Consumer Reports Digital Lab - Fellows](https://digital-lab.consumerreports.org/fellows/)
- [Blog: An open call for non-resident technologist fellows](https://medium.com/cr-digital-lab/coming-soon-an-open-call-for-non-resident-technologist-fellows-95de2f3399fe)
## 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:
- Twitter 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 KiB