diff --git a/_config.yml b/_config.yml index 843df9cd191..552153bf3be 100644 --- a/_config.yml +++ b/_config.yml @@ -99,8 +99,8 @@ social: account: home_assistant # Home Assistant release details -current_major_version: 1 -current_minor_version: 0 +current_major_version: 2020 +current_minor_version: 12 current_patch_version: 0 date_released: 2020-12-13 diff --git a/plugins/details.rb b/plugins/details.rb new file mode 100644 index 00000000000..6ecfd1fe447 --- /dev/null +++ b/plugins/details.rb @@ -0,0 +1,45 @@ +module Jekyll + class DetailsBlock < Liquid::Block + + def render_details_block(vars:, converter:, classes: nil, parent_type: nil) + result = Array.new + result << vars.map do |entry| + markup = Array.new + markup << "
" + markup << "
#{entry['title']}" + markup << '' + markup << '' + markup << "
" + markup << "" + markup << "
" + end + result.join + end + + def render(context) + contents = super(context) + vars = SafeYAML.load(contents) + + site = context.registers[:site] + converter = site.find_converter_instance(::Jekyll::Converters::Markdown) + + <<~MARKUP + +
+ #{render_details_block(vars: vars, converter: converter)} +
+ MARKUP + end + end +end + +Liquid::Template.register_tag('details', Jekyll::DetailsBlock) \ No newline at end of file diff --git a/sass/custom/_blue.scss b/sass/custom/_blue.scss new file mode 100644 index 00000000000..8f433812173 --- /dev/null +++ b/sass/custom/_blue.scss @@ -0,0 +1,998 @@ +$blue__deep_color: #161d61; +$blue__light_color: #18abfd; +$ha__primary_color: #03a9f4; + +#blue { + $blue__hero_height: 670px; + font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; + .site-header { + .grid-wrapper { + max-width: 1100px !important; + padding: 0 25px !important; + } + } + .grid-wrapper { + max-width: 1500px; + padding: 0; + width: 100%; + } + .page-content { + overflow-x: hidden; + } + .banner { + height: $blue__hero_height; + margin-bottom: 16px; + margin-top: -42px; + width: 100%; + text-align: center; + .title { + position: relative; + width: 550px; + height: 168px; + left: calc(50% - 550px / 2 - 0.5px); + font-weight: 900; + font-size: 68px; + line-height: 55px; + text-align: center; + color: #ffffff; + bottom: 226px; + svg { + stroke: $ha__primary_color; + } + } + img { + width: 100%; + object-fit: cover; + object-position: bottom; + border-radius: 0; + border: 0; + height: $blue__hero_height; + box-shadow: none; + } + } + .content { + max-width: 1000px; + margin: auto; + + .sub-title { + font-weight: bold; + font-size: 42px; + line-height: 49px; + margin: 32px; + text-align: center; + } + + .missing-piece { + z-index: 2; + position: relative; + display: flex; + width: 600px; + border-radius: 8px; + margin: -36px auto 0; + + .missing-piece-header { + font-weight: 900; + font-size: 24px; + line-height: 28px; + } + + .missing-piece-content { + font-size: 16px; + line-height: 19px; + margin-top: 16px; + width: 420px; + } + + .missing-piece-overlay { + width: 210px; + border-radius: 8px; + margin: -50px -50px 0 0; + padding: 22px; + display: flex; + flex-flow: wrap; + justify-content: space-between; + + .missing-piece-overlay-header { + font-weight: 500; + font-size: 12px; + line-height: 14px; + letter-spacing: 0.1em; + color: #0c0c0c; + opacity: 0.33; + width: 100%; + text-align: right; + } + .missing-piece-overlay-price { + width: calc(100% - 6px); + text-align: right; + font-weight: 900; + font-size: 24px; + line-height: 28px; + color: #0c0c0c; + display: inline-flex; + justify-content: flex-end; + + div { + width: 6px; + margin-top: 2px; + font-size: 12px; + line-height: 14px; + color: #0c0c0c; + opacity: 0.4; + } + } + + .missing-piece-overlay-images { + display: grid; + grid-template-columns: 47px 47px 47px; + grid-template-rows: 47px 47px; + grid-auto-flow: row; + gap: 2px; + + .img-container { + border: 1px solid #e9e9e9; + box-sizing: border-box; + border-radius: 4px; + height: 47px; + width: 47px; + display: flex; + + img { + margin: auto; + box-shadow: none; + border-radius: 0; + border: 0; + } + } + + .img-container:first-of-type { + grid-column: 1 / span 2; + grid-row: 1 / span 2; + height: 96px; + width: 96px; + } + } + .missing-piece-overlay-button { + background-color: $ha__primary_color; + margin-top: 12px; + border-radius: 4px; + width: 154px; + height: 46px; + display: flex; + cursor: pointer; + + div { + margin: auto; + font-weight: 900; + font-size: 18px; + color: #ffffff; + } + } + } + } + .missing-piece-disclaimer { + font-size: 12px; + line-height: 14px; + color: #0c0c0c; + opacity: 0.4; + text-align: center; + margin: 12px auto 50px; + } + + .bullet-points { + margin: 24px 136px; + display: grid; + gap: 32px; + grid-template-columns: repeat(2, 1fr); + .item { + display: grid; + text-align: center; + span:nth-of-type(1) { + color: rgba(0, 0, 0, 0.87); + font-size: 24px; + font-weight: 300; + letter-spacing: 0.1em; + line-height: 28px; + opacity: 0.66; + text-transform: uppercase; + } + span:nth-of-type(2) { + color: rgba(0, 0, 0, 0.87); + font-size: 48px; + letter-spacing: -2px; + line-height: 56px; + } + span:nth-of-type(3) { + color: rgba(0, 0, 0, 0.87); + font-size: 14px; + font-weight: 500; + letter-spacing: -1px; + line-height: 16px; + } + } + } + + .vision { + position: sticky; + text-align: center; + display: inline-block; + width: 100%; + margin-bottom: 160px; + + svg { + z-index: 0; + width: 100vw; + margin-left: calc(-100vw / 2); + position: absolute; + + path { + z-index: 0; + } + } + .vision-content { + z-index: 1; + position: relative; + + .vision-header { + margin-top: 172px; + font-weight: 900; + font-size: 68px; + line-height: 80px; + color: $blue__deep_color; + } + .vision-statement { + font-size: 18px; + line-height: 21px; + } + + .vision-blocks { + width: 100%; + display: flex; + flex-flow: wrap; + justify-content: space-between; + + .vision-block { + width: 335px; + margin: 62px; + + .vision-block-title { + text-transform: uppercase; + color: $blue__deep_color; + letter-spacing: -2px; + font-size: 48px; + line-height: 56px; + font-weight: bold; + } + .vision-block-content { + font-size: 18px; + line-height: 133%; + } + } + } + } + } + .mood { + text-align: center; + margin-bottom: 32px; + margin-bottom: 80px; + + .mood-cards { + display: inline-flex; + align-items: center; + justify-content: space-between; + margin: 0 150px; + width: calc(100% - 300px); + position: relative; + + .material-card { + display: block; + align-items: initial; + width: 300px; + z-index: 1; + + img { + box-shadow: none; + border: 0; + border-radius: 0; + } + + .mood-card-type { + width: 60px; + text-align: start; + font-weight: bold; + font-size: 32px; + line-height: 32px; + + .mode { + margin-top: -8px; + font-weight: normal; + font-size: 15px; + text-align: justify; + letter-spacing: 6px; + } + } + + .mood-card-footer { + display: flex; + + .specifications { + display: grid; + height: 60px; + margin-top: 16px; + grid-template-columns: repeat(2, 1fr); + justify-items: left; + align-items: self-end; + flex-wrap: wrap; + width: calc(100% - 75px); + + .spec-item { + height: 30px; + font-size: 11px; + display: inline-grid; + line-height: 15px; + justify-items: left; + + span:first-of-type { + font-weight: bold; + } + } + } + .outline { + display: flex; + place-self: flex-end; + color: #c4c4c4; + } + } + } + + .mood-separator { + z-index: 0; + display: grid; + height: 120px; + width: 120px; + align-content: center; + justify-content: center; + border-radius: 188px; + border: 1px dashed #c4c4c4; + margin: 0 -80px; + padding: 120px; + + span { + display: block; + width: inherit; + } + + span:first-of-type { + color: $ha__primary_color; + font-weight: bold; + font-size: 16px; + line-height: 15px; + } + + span:last-of-type { + font-size: 12px; + color: #0c0c0c; + opacity: 0.4; + } + + .mood-separator-arrow { + color: #c4c4c4; + } + + .mood-separator-arrow.right { + margin-top: -118px; + } + + .mood-separator-arrow.left { + margin-bottom: -118px; + align-self: end; + } + } + } + } + + .specifications { + display: grid; + grid-template-columns: repeat(5, 1fr); + + .specifications-components { + grid-column: 1 / span 3; + margin-right: 24px; + } + + .component-list { + display: grid; + row-gap: 8px; + grid-template-columns: repeat(5, 1fr); + font-size: 18px; + line-height: 21px; + + .spec-title { + grid-column: 1; + margin-right: 24px; + margin-top: 16px; + text-transform: uppercase; + opacity: 0.4; + } + .spec-content { + grid-column: 2 / span 4; + font-weight: bold; + margin-top: 16px; + + .spec-content-additional { + font-weight: normal; + + ul { + margin-bottom: 0; + margin-left: 16px; + + li { + margin-bottom: 0; + } + li::marker { + content: "- "; + } + } + } + } + } + .specifications-form-factor { + grid-column: 4 / span 2; + + .specifications-form-factor-grid { + display: grid; + margin-left: 42px; + + .sff-description { + display: grid; + + span:first-of-type { + font-size: 1.525em; + line-height: 24px; + grid-column: 1; + text-transform: uppercase; + opacity: 0.4; + align-self: self-end; + } + + span:last-of-type { + font-weight: bold; + font-size: 1.425em; + word-spacing: -4px; + } + } + + .sff-width { + grid-column: 1 / span 2; + } + svg#zen { + grid-column: 1; + height: 100px; + width: 200px; + margin-bottom: 32px; + } + + .sff-height { + grid-column: 2; + margin-left: 14px; + } + + svg#depth { + grid-column: 1; + height: 200px; + width: 200px; + margin-bottom: 32px; + } + + .sff-depth { + grid-column: 2; + margin-left: 14px; + } + + svg#weight { + grid-column: 1 / span 2; + height: 200px; + width: 100%; + } + + .sff-weight { + grid-column: 1 / span 2; + justify-content: center; + margin-top: -24px; + } + } + img { + box-shadow: none; + border: 0; + border-radius: 0; + } + } + } + .faq-list { + margin: 0 72px; + } + + .blue3d { + text-decoration: none; + + .blue3d-container { + align-items: flex-end; + background-image: url('/images/blue/blue_3d.jpg'); + background-position: bottom; + background-size: cover; + display: flex; + height: 390px; + margin: auto; + margin-top: 62px; + padding: 0; + width: 720px; + + .blue3d-description { + display: flex; + align-items: center; + justify-content: space-between; + background-color: #000000ab; + color: #FFFFFF; + height: 60px; + width: 100%; + + svg { + fill: white; + height: 32px; + width: 32px; + min-width: 32px; + } + } + } + } + } + + .blue-buy-fab { + background-color: $ha__primary_color; + border-radius: 62px; + bottom: 16px; + display: flex; + box-shadow: rgba(0, 0, 0, 0.2) 0px 7px 8px -4px, + rgba(0, 0, 0, 0.14) 0px 12px 17px 2px, + rgba(0, 0, 0, 0.12) 0px 5px 22px 4px; + box-sizing: border-box; + color: #ffffff; + cursor: pointer; + display: inline-flex; + float: right; + font-size: 12.25px; + font-weight: 400; + font-weight: bold; + line-height: 32px; + padding: 8px 16px 4px; + position: fixed; + right: 24px; + z-index: 1111; + + svg { + margin-top: 4px; + } + } + + #buy-dialog { + z-index: 1000; + display: none; + position: fixed; + left: 0; + top: 0; + width: 100vw; + height: 100vh; + background-color: rgb(0, 0, 0); + background-color: rgba(0, 0, 0, 0.4); + + .dialog-content { + border-radius: 8px; + margin: auto; + width: 600px; + padding: 0; + overflow-y: auto; + display: flex; + flex-flow: column; + justify-content: space-between; + + .close-container { + position: fixed; + float: right; + width: 615px; + text-align: right; + margin-top: -17px; + + .dialog-close { + cursor: pointer; + font-size: 32px; + background-color: #ffffff; + border-radius: 100px; + height: 32px; + width: 32px; + display: inline-flex; + align-items: center; + justify-content: center; + } + } + + .dialog-header { + display: flex; + justify-content: space-between; + padding: 8px 16px; + font-weight: bold; + font-size: 24px; + + svg { + width: 32px; + height: 32px; + cursor: pointer; + } + } + + .distributors { + a { + text-decoration: none; + + .distributor { + width: 100%; + display: flex; + justify-content: space-between; + padding: 8px 16px; + color: #222222; + margin: auto; + + svg { + height: 100%; + align-self: center; + } + + div { + display: grid; + line-height: 20px; + + div:nth-of-type(1) { + align-content: center; + grid-column: 1; + grid-row: 1 / span 2; + margin-right: 8px; + } + div:nth-of-type(2) { + grid-column: 2; + } + div:nth-of-type(3) { + grid-column: 2; + color: darkslategrey; + font-size: small; + } + } + } + .distributor:hover { + border-color: $ha__primary_color; + } + } + } + + .box-contents { + margin: 0 16px 32px; + ul { + margin: 12px 0 12px 24px; + color: darkslategrey; + font-size: small; + + li { + margin-bottom: 4px; + } + } + .ul-sub { + margin: 0 0 0 16px; + } + } + + .tip { + color: darkslategrey; + font-size: small; + text-align: center; + padding: 12px 62px 12px; + margin-top: 16px; + border-top: 1px darkslategrey solid; + } + } + } +} + +@media only screen and (max-width: $palm-end) { + $blue__hero_height: 500px; + #blue { + .site-header { + background-color: #ffffff66; + transition: background 0.5s; + + ul { + margin: 0 4px; + width: calc(100% - 8px); + } + } + .page-content { + margin-top: 0; + height: 100%; + } + .grid-wrapper { + margin-left: 0; + width: 100%; + } + .banner { + margin-bottom: 8px; + height: $blue__hero_height; + img { + height: $blue__hero_height; + } + .title { + width: 100%; + left: unset; + font-size: 2em; + line-height: 0px; + + svg { + width: 152px; + height: 122px; + + text { + font-size: 65px; + } + } + } + } + .content { + margin: 0 8px; + + .sub-title { + font-size: 24px; + line-height: 28px; + } + + .missing-piece { + margin: -116px auto 0; + display: block; + width: 100%; + padding: 0; + + .missing-piece-header { + padding-left: 8px; + padding-top: 8px; + } + + .missing-piece-content { + padding-left: 8px; + } + + .missing-piece-content { + width: 100%; + } + .secondary { + display: none; + } + + .missing-piece-overlay { + margin: 0; + margin-top: 12px; + width: 100%; + + .missing-piece-overlay-images { + margin-top: -42px; + margin-left: -8px; + } + } + } + + .missing-piece-disclaimer { + margin: 12px auto 12px; + } + + .bullet-points { + margin: 24px 0; + .item { + span:nth-of-type(1) { + font-size: 16px; + line-height: 16px; + } + span:nth-of-type(2) { + font-size: 32px; + line-height: 32px; + } + span:nth-of-type(3) { + font-size: 12px; + line-height: 12px; + } + } + } + + .vision { + margin-bottom: 0; + svg { + display: none; + } + .vision-content { + margin-top: 28px; + .vision-header { + font-size: 34px; + line-height: 40px; + margin-top: 8px; + } + .vision-statement { + font-size: 12px; + line-height: 14px; + } + .vision-blocks { + .vision-block { + width: 100%; + margin: 9px; + .vision-block-title { + font-size: 24px; + line-height: 28px; + } + .vision-block-content { + display: none; + } + } + } + } + } + + .mood { + .mood-cards { + display: inline-grid; + margin: 0; + width: 100%; + + .material-card { + width: 100% !important; + display: block; + height: auto !important; + margin: 0 !important; + z-index: 4; + + img { + max-height: 180px; + } + + .mood-card-footer { + .specifications { + display: none; + } + } + } + .mood-separator { + margin: -80px calc((100% / 2) - 120px); + + .mood-separator-arrow { + display: none; + } + } + } + } + + .faq-list { + margin: 0; + } + + .specifications { + display: block; + + h3 { + text-align: center; + } + + .component-list { + grid-template-columns: repeat(1, 1fr); + + .spec-title, + .spec-content { + grid-column: 1; + } + + .spec-title { + margin-top: 8px; + } + + .spec-content { + margin-top: -4px; + } + } + .specifications-form-factor { + .specifications-form-factor-grid { + margin-left: 0; + + .sff-width { + margin-left: 50px; + } + .sff-description { + span:last-of-type { + font-size: 16px; + } + } + } + } + } + } + + .blue-buy-fab { + bottom: 12px; + right: 12px; + display: none; + } + + #buy-dialog { + padding-top: 0; + + .dialog-content { + border-radius: 0; + height: 100vh; + width: 100vw; + padding-bottom: 64px; + display: block; + + .tip { + margin: 32px 8px 8px 8px; + } + } + } + .blue3d { + .blue3d-container { + width: 100% !important; + + .blue3d-description { + height: auto !important; + + i { + align-self: center; + } + } + } + } + } +} + +@media only screen and (max-width: $lap-end) { + #blue { + .page-content { + .content { + .bullet-points { + margin: 24px 0; + } + .vision { + margin-top: -200px; + + .vision-content { + padding-top: 200px; + + .vision-blocks { + margin: 32px 0; + + .vision-block { + margin: 8px !important; + + .vision-block-content { + display: none; + } + } + } + } + } + .mood { + .mood-cards { + margin: 0; + width: inherit; + .material-card { + height: 300px; + width: 230px; + margin: 0 24px; + } + } + } + .specifications { + margin: 0 16px; + } + } + } + } +} diff --git a/sass/custom/_details.scss b/sass/custom/_details.scss new file mode 100644 index 00000000000..ec764e31a55 --- /dev/null +++ b/sass/custom/_details.scss @@ -0,0 +1,26 @@ +div.details-block { + width: 100%; + display: block; + + .details-block-item { + background-color: white; + padding: 4px 16px; + margin: 8px; + cursor: pointer; + box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.1); + border-radius: 16px; + + .details-block-title { + font-weight: bold; + font-size: 18px; + line-height: 21px; + height: 54px; + justify-content: space-between; + display: flex; + align-items: center; + } + .details-block-content { + margin: 4px 32px 0 0; + } + } +} diff --git a/sass/custom/_features.scss b/sass/custom/_features.scss new file mode 100644 index 00000000000..2c7634ef8ea --- /dev/null +++ b/sass/custom/_features.scss @@ -0,0 +1,59 @@ +.feature-cards { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 32px; + margin: auto; + + .card { + border-radius: 8px; + display: inline-block; + width: calc(100% - 16px); + vertical-align: top; + + .card-header { + font-size: 1.4rem; + line-height: 1.6; + display: flex; + align-items: center; + padding-bottom: 8px; + height: 62px; + + i { + height: 62px; + min-width: 62px; + text-align: center; + font-size: 39px; + } + } + + .card-content { + padding-left: 24px; + + .button { + font-size: small; + font-weight: 600; + text-decoration: none; + } + + p:last-of-type, + ul { + margin-bottom: 12px; + } + } + } +} + +@media only screen and (max-width: $palm-end) { + .feature-cards { + width: 95%; + grid-template-columns: repeat(1, 1fr); + + .card { + width: 100%; + + .card-content { + padding-left: 0; + } + } + } +} diff --git a/sass/custom/_paulus.scss b/sass/custom/_paulus.scss index 4a528bcf30d..2175b84ad65 100644 --- a/sass/custom/_paulus.scss +++ b/sass/custom/_paulus.scss @@ -157,6 +157,9 @@ $primary-color: #049cdb; color: white; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; + display: flex; + justify-content: space-between; + align-items: center; .title { font-size: 20px; @@ -167,6 +170,13 @@ $primary-color: #049cdb; font-size: 12px; font-weight: initial; } + + svg { + fill: white; + width: 32px; + height: 32px; + min-width: 32px; + } } } diff --git a/sass/screen.scss b/sass/screen.scss index 7470f86f37b..dda71c2daa4 100644 --- a/sass/screen.scss +++ b/sass/screen.scss @@ -1,6 +1,9 @@ @import 'oscailte/oscailte'; @import 'custom/paulus'; +@import 'custom/blue'; +@import 'custom/features'; @import 'custom/component_page'; @import 'custom/syntax'; +@import 'custom/details'; @import 'custom/print'; @import 'custom/layout'; \ No newline at end of file diff --git a/source/_includes/custom/features.html b/source/_includes/custom/features.html new file mode 100644 index 00000000000..ff6e18e3fa8 --- /dev/null +++ b/source/_includes/custom/features.html @@ -0,0 +1,98 @@ +
+
+
+ + Works with over 1000 devices +
+
+

+ Home Assistant can integration with over a thousand different devices + and services. +

+ +

+ Once started, Home Assistant will automatically scan your network for + known devices and allow you to easily set them up. +

+ EXPLORE INTEGRATIONS +
+
+
+
+ + Powerful automations +
+
+

+ Once you have integrated all your devices at home, you can unleash Home + Assistant’s advanced automation engine to make your home work for you. +

+ +
    +
  • Turn on the light when the sun sets or when coming home
  • +
  • Alert you when you leave your garage door open.
  • +
+ EXPLORE AUTOMATIONS +
+
+
+
+ + Extend your system with add-ons +
+
+

+ Home Assistant is not just limited to Home Assistant. Easily install + other applications that will help you manage your home. +

+ +
    +
  • Run AdGuard, a DNS-based ad blocker
  • +
  • Run third party automation engines like NodeRed
  • +
  • Turn Home Assistant Blue into a Spotify Connect target
  • +
+ EXPLORE ADD-ONS +
+
+
+
+ + All your smart home data stays local +
+
+

Home Assistant keeps your data local, not need for a cloud.

+ +

+ Home Assistant communicates with your devices locally, and will fallback + to pulling in data from the cloud if there is no other option. No data + is stored in the cloud, and everything is processed locally. +

+
+
+
+
+ + Companion Mobile Apps +
+
+

+ Use the official Home Assistant apps, a convenient companion to quickly + control your devices and be notified when things happen in your home, + even on your wrist using the Apple Watch. +

+ +

+ The apps can also be used to send your location home to use presence + detection as part of your automations. Data is sent directly to your + home, no access by third-parties. +

+ + DOWNLOAD APPS + +
+
+
diff --git a/source/_integrations/blueprint.markdown b/source/_integrations/blueprint.markdown index 28c2af32970..a895a5d25b7 100644 --- a/source/_integrations/blueprint.markdown +++ b/source/_integrations/blueprint.markdown @@ -3,7 +3,7 @@ title: Blueprints description: Instructions on how to use Automation Blueprints with Home Assistant. ha_category: - Automation -ha_release: 1.0 +ha_release: 2020.12 ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' diff --git a/source/_integrations/fireservicerota.markdown b/source/_integrations/fireservicerota.markdown index 5c704c75af6..7cf918c4df9 100644 --- a/source/_integrations/fireservicerota.markdown +++ b/source/_integrations/fireservicerota.markdown @@ -6,7 +6,7 @@ ha_category: - Sensor - Switch ha_iot_class: Cloud Polling -ha_release: 1.0 +ha_release: 2020.12 ha_codeowners: - '@cyberjunky' ha_config_flow: true diff --git a/source/_integrations/kulersky.markdown b/source/_integrations/kulersky.markdown index b267669e1f7..d387a200aee 100644 --- a/source/_integrations/kulersky.markdown +++ b/source/_integrations/kulersky.markdown @@ -4,7 +4,7 @@ description: Instructions for integrating Brightech Kuler Sky Bluetooth floor la ha_category: - Light ha_iot_class: Local Polling -ha_release: '1.0' +ha_release: 2020.12 ha_domain: kulersky ha_codeowners: - '@emlove' diff --git a/source/_integrations/motion_blinds.markdown b/source/_integrations/motion_blinds.markdown index 9d4219b7f3d..11a3b8b0965 100644 --- a/source/_integrations/motion_blinds.markdown +++ b/source/_integrations/motion_blinds.markdown @@ -4,7 +4,7 @@ description: Instructions on how to integrate Motion Blinds from Coulisse B.V. i ha_category: - Cover ha_iot_class: Local Polling -ha_release: 1.0 +ha_release: 2020.12 ha_domain: motion_blinds ha_codeowners: - '@starkillerOG' diff --git a/source/_integrations/number.markdown b/source/_integrations/number.markdown index d2fb245523f..3d76e187a9e 100644 --- a/source/_integrations/number.markdown +++ b/source/_integrations/number.markdown @@ -3,7 +3,7 @@ title: Number description: Instructions on how to manage your Number entities with Home Assistant. ha_category: - Number -ha_release: 1.0 +ha_release: 2020.12 ha_quality_scale: internal ha_domain: number ha_iot_class: ~ diff --git a/source/_integrations/scene.mqtt.markdown b/source/_integrations/scene.mqtt.markdown index 7a933f2ddb3..60a2fb8b768 100644 --- a/source/_integrations/scene.mqtt.markdown +++ b/source/_integrations/scene.mqtt.markdown @@ -3,7 +3,7 @@ title: "MQTT Scene" description: "Instructions on how to integrate MQTT scenes into Home Assistant." ha_category: - Scene -ha_release: 1.0 +ha_release: 2020.12 ha_iot_class: Configurable ha_domain: mqtt --- diff --git a/source/_integrations/srp_energy.markdown b/source/_integrations/srp_energy.markdown index 27801107dcb..32cb8d874c0 100644 --- a/source/_integrations/srp_energy.markdown +++ b/source/_integrations/srp_energy.markdown @@ -3,7 +3,7 @@ title: "SRP Energy" description: "How to integrate SRP Energy within Home Assistant." ha_category: - Energy -ha_release: 1.0 +ha_release: 2020.12 ha_iot_class: Cloud Polling --- diff --git a/source/_integrations/twinkly.markdown b/source/_integrations/twinkly.markdown index 9763ad80c3c..049c6cd7d5f 100644 --- a/source/_integrations/twinkly.markdown +++ b/source/_integrations/twinkly.markdown @@ -3,7 +3,7 @@ title: Twinkly description: Instructions on how to integrate Twinkly LED string to Home Assistant. ha_category: - Light -ha_release: 1.0 +ha_release: 2020.12 ha_config_flow: true ha_domain: twinkly ha_iot_class: Local pull diff --git a/source/_posts/2020-12-13-home-assistant-os-release-5.markdown b/source/_posts/2020-12-13-home-assistant-os-release-5.markdown new file mode 100644 index 00000000000..dea0f2d730e --- /dev/null +++ b/source/_posts/2020-12-13-home-assistant-os-release-5.markdown @@ -0,0 +1,123 @@ +--- +layout: post +title: "Home Assistant OS Release 5" +description: "Improved name resolution, external data disk, more reliability and supporting 3 new devices!" +date: 2020-12-13 00:00:00 +date_formatted: "December 13, 2020" +author: Stefan Agner +author_twitter: falstaff_ch +comments: true +categories: Release-Notes +og_image: /images/blog/2020-12-13-os5/social.png +--- + + + +Today we also release Home Assistant OS 5.8, the first stable version of the 5.x +release series. + +**Highlights**: + +- Improved Multicast Name Resolution on OS level +- External Data Disk Feature +- Improved Reliability against Container corruption + +- New support: Raspberry Pi 4 – 8GB +- New support: ASUS Tinker Board S +- New support: ODROID-C4 +- Improved: OVA Virtual image includes more drivers + +## Table of contents + +- [Table of contents](#table-of-contents) +- [Operating System Changes](#operating-system-changes) + - [Multicast Name Resolution](#multicast-name-resolution) + - [External Data Disk](#external-data-disk) + - [Improved Reliability](#improved-reliability) + - [Under the Hood](#under-the-hood) +- [Board Support](#board-support) + - [Raspberry Pi](#raspberry-pi) + - [ODROID](#odroid) + - [Open Virtualization Appliance/Intel NUC](#open-virtualization-appliance-intel-nuc) + - [New Board Support](#new-board-suport) +- [Other Changes](#other-changes) + +## Operating System Changes + +### Multicast Name Resolution + +Release 5 uses systemd-resolved to provide DNS services on the operating system +level and acts as a multicast name resolution responder. Besides, mDNS +systemd-resolved also supports the LLMNR hostname resolution protocol. In +practice, this makes discovering a new installation of Home Assistant OS working +in most situations, either using `http://homeassistant.local:8123` or +`http://homeassistant:8123`. + +### External Data Disk + +In release 4 we introduced external data disk support. The command `datactl` +allows moving the main data partition to any disk connected to the system. The +boot partition and main operating system partitions stay on the boot medium +(typically the SD card). Using this approach is more reliable than booting the +system from USB. Booting from USB requires several parts of the software stack +to rediscover the external storage. In release 5 we made the external data disk +feature more robust and the initial moving process much faster. We plan to +improve that feature even more and are happy to get your feedback! + +### Improved Reliability + +The main system service to start Home Assistant Supervisor is now more reliable. +Home Assistant OS is now able to detect a corrupted supervisor container in most +situations and automatically downloads a new version of it. File system checks +have also been expanded to the boot partition, which makes sure that all file +systems are being checked now. + +### Under the Hood + +Under the hood, we updated to Buildroot 2020.11, which brings tons of new software +versions along with bug and security fixes. Some key components which received +an update were systemd 246 and AppArmor version 3.0. + +## Board Support + +### Raspberry Pi + +All Raspberry Pi versions now use Linux Kernel 5.4, just like Raspberry Pi OS. +With the move to U-Boot 2020.10, we are now also supporting Raspberry Pi with 8GB +of memory. With the new kernel and U-Boot Home Assistant OS can now also run on +the Compute Module 4 as well as the Pi 400 (the keyboard). A keyboard is +probably not the ideal form factor for a headless system such as Home Assistant +OS, but it comes with good cooling, which makes it not the worst choice :-). We +recently tested the 64-bit variant of Home Assistant OS much more and feel +comfortable to recommend the 64-bit version for Raspberry Pi 4. + +### ODROID + +The ODROID platforms now use Linux 5.9, which brings improved support for all +ODROID platforms such as the ODROID N2(+). For the N2(+) the Real-Time Clock is +now supported as well. + +### Open Virtualization Appliance/Intel NUC + +The x86 platforms (Intel NUC, OVA - Open Virtualization Appliance) now use +Linux 5.9. The kernel for OVA images has new drivers enabled for Intel Network +devices with Virtual Function, PCIe passthrough for Hyper-V, or support for +Audio (HDA audio devices). + +### New Board Support + +Besides the ASUS Tinker Board, we now also support the Tinker Board S, a variant +with fast on-board eMMC storage. Thanks to [@ubergeek801] we now also have support +for ODROID-C4, a cost-effective alternative to Raspberry Pi in a similar form +factor. + +## Other Changes + +The build pipeline is now using GitHub Actions and we compress the images using +the xz compression algorithm instead of gz. The flashing process will stay the +same: Etcher supports flashing from gz as well as xz. + +This is all I can think of for now. The release 5.8 will be on the stable +channel today, so watch out for the update notification in the Supervisor +section. Images are available in the release section over on +[GitHub](https://github.com/home-assistant/operating-system/releases). diff --git a/source/_posts/2020-12-13-release-10.markdown b/source/_posts/2020-12-13-release-202012.markdown similarity index 97% rename from source/_posts/2020-12-13-release-10.markdown rename to source/_posts/2020-12-13-release-202012.markdown index f293b0fc83a..ad8e484bb86 100644 --- a/source/_posts/2020-12-13-release-10.markdown +++ b/source/_posts/2020-12-13-release-202012.markdown @@ -1,50 +1,45 @@ --- layout: post -title: "1.0: Beta release notes" -description: "Beta release notes for Home Assistant Core 1.0" -date: 2020-12-2 00:00:00 +title: "2020.12: Automate with Blueprints!" +description: "Sharable automations using blueprints, new neural voices for Nabu Casa TTS, disable devices and assign entities to areas!" +date: 2020-12-13 00:00:00 date_formatted: "December 13, 2020" author: Franck Nijhof author_twitter: frenck comments: true categories: Release-Notes -og_image: /images/blog/2020-12-1.0/social.png +og_image: /images/blog/2020-12/social.png --- - + -These are the beta release notes for Home Assistant Core 1.0 (and is thus a -work in progress). +Welcome to Home Assistant Core 2020.12! -**Yes, Home Assistant Core 1.0! This major release is going to be announced at the [Home Assistant Conference](/conference) on 13 December**: +You are looking at our new versioning schema. From now on, the Home Assistant +Core will be using calendar versioning, consisting of the year, month and +a patch number to indicate a bug-fix release. This also means our release +schedule is changing. Home Assistant Core will now be released every first +Wednesday of the month! -Get your $1 ticket +As most things are announced at the [Home Assistant Conference](/conference); +more things will be added/tweak in these release notes the next couple of days. -If you encounter any issues with the beta release, please report them on GitHub: +For me, this has been an exiting year! And thanks everybody for contributing +to this amazing project, not matter what and how you contributed. You are all +amazing! ❤️ -- Issues with integrations, automations and such (Core related):
- -- Issues with the frontend/Lovelace:
- -- Issues with the Supervisor:
- -- Issues with the documentation:
- +With the Holiday season coming, it is time to slow down a bit, enjoy time with +our family. And in a couple of weeks, a new year will start; Let's make it a +good one! -Please be sure to include the beta version you are running in the issue -description (not title), so we can classify your issue correctly. +Happy holidays, stay safe and for the last time this year: Enjoy the release! -Issues introduced in the beta are processed with priority. +../Frenck -## Table of contents - -- [Table of contents](#table-of-contents) -- [Lorem ipsum](#lorem-ipsum) -- [Home Assistant Blueprints](#home-assistant-blueprints) - [Blueprints](#blueprints) - - [Creating blueprints](#creating-blueprints) - [Sharing blueprints](#sharing-blueprints) - [Using blueprints](#using-blueprints) + - [Creating blueprints](#creating-blueprints) - [New neural voices for Nabu Casa Cloud TTS](#new-neural-voices-for-nabu-casa-cloud-tts) - [Assign areas to entities and readable area IDs](#assign-areas-to-entities-and-readable-area-ids) - [Temporarily disable devices](#temporarily-disable-devices) @@ -59,10 +54,10 @@ Issues introduced in the beta are processed with priority. ## Blueprints -Say hello; to the major new feature of Home Assistant 1.0.0: Blueprints! +Say hello; to the major new feature of Home Assistant 2020.12: Blueprints!

-Screenshot of the blueprints configuration panel +Screenshot of the blueprints configuration panel Screenshot of the blueprints configuration panel.

@@ -104,7 +99,7 @@ into the UI. Then you can create automations from these blueprints by filling out the required inputs.

-Screenshot of a blueprint +Screenshot of a blueprint Screenshot of a blueprint.

@@ -171,7 +166,7 @@ a device as well. For example, your in-wall mounted switch controls a light in another room.

-Screenshot of disabling a device +Screenshot of disabling a device Screenshot of disabling a device.

@@ -204,7 +199,7 @@ next year, when you unpack all decorations, enable them again and you're ready to go for another Holiday season!

-Screenshot of disabling a device +Screenshot of disabling a device Screenshot of disabling a device.

diff --git a/source/blue/index.html b/source/blue/index.html new file mode 100644 index 00000000000..ca797ffb9c3 --- /dev/null +++ b/source/blue/index.html @@ -0,0 +1,776 @@ +--- +title: "Home Assistant Blue!" +description: "Where style and performance meet privacy" +sidebar: false +is_homepage: true +hide_github_edit: true +body_id: blue +show_title: false +og_image: /images/blue/blue_hero.jpg +--- + + + +
+
+
+
The missing piece
+
+ We challenged ourselves: what would the perfect home automation hub look + like. Not just software, but also hardware and looks. +
+
+ The result is the limited edition Home Assistant Blue bundle. Hardware + that is affordable and fast, packed in a gorgeous case and powered by + the most powerful home automation software on the planet: Home + Assistant. +
+
+
+
LIMITED EDITION
+
+ $140 +
*
+
+
+
+
+
+
+
+
BUY NOW
+
+
+
+
+ * Price does not include taxes and import fees +
+ +
+
+ Powerful + ODROID-N2+ + 4GB DDR4 +
+
+ Reliable + eMMC + FAST 128GB +
+
+ Complete + All-in-one + Core, Case and Power +
+
+ Ready + Zero Setup + Comes with Home Assistant +
+
+ +
+ + + +
+
Our Blue vision
+
+ The perfect platform to run Home Assistant +
+
+
+
Easy to use
+
+ Powered by our Home Assistant Operating System, getting started is + as easy as plugging in the network and power cables and opening up + the Home Assistant mobile app to get started. +
+
+
+
Reliable
+
+ Home Assistant Blue comes with 128GB of eMMC storage. That’s the + same type of storage your phone uses. A sudden loss of power won’t + fry it. +
+
+
+
Beautiful
+
+ Home Assistant Blue looks as good as the software that runs it: + eye-catching. Together with + Hahn Werke + we have designed a beautiful aluminium case. +
+
+
+
Open source
+
+ All software that runs on Home Assistant Blue is open source. + Including all the hardware drivers. We’ve worked with + BayLibre to fix + bugs and get it merged upstream in the Linux kernel! +
+
+
+
+
+ +
+
Change of mood?
+
+
+
+ ZEN +
MODE
+
+ + + +
+
+
+ Rotate the cover + in 2 mins +
+
+
+
+ DEV +
MODE
+
+ + + +
+
+
+ +
Home Assistant Features
+ + {% include custom/features.html %} + +
Specifications
+
+
+

Components

+
+
Processor
+
+ 6-Core Amlogic S922X Processor (ARMv8-A) +
+
    +
  • Quad-core Cortex-A73 @ 2.2Ghz
  • +
  • Dual-core Cortex-A53 @ 1.8GhZ
  • +
+
+
+ +
Memory
+
4GB DDR4
+ +
Storage
+
128GB eMMC Flash included
+ +
Networking
+
+ 1x RJ45 LAN Port +
10/100/1000 Mbps
+
+ +
Audio
+
+ 1x 3.5mm Jack +
+ High quality 384Khz/32bit stereo line-out +
+
+ +
Connectivity
+
+ 4x USB Type-A Ports +
USB 3.0
+
+
+ 1x HDMI Output +
HDMI 2.0
+
+
+ No Wi-Fi or Bluetooth +
+ Support for Z-Wave and Zigbee by external USB adaptor + (not included) +
+
+ +
Power
+
+ DC 12V/2A +
+ Power consumption +
    +
  • Idle: ≃2.2W
  • +
  • Load: ≃6.2W
  • +
+
+
+
+
+
+

Form Factor

+
+
+ Width + 10.4 cm/4.1 inch +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Height + 3.6 cm/1.4 inch +
+ + + + + + + + + + +
+ Depth + 9.4 cm/3.7 inch +
+ + + + + + + + + + + + + + + + + + + + + + +
+ Weight + 292 g/0.64 lb +
+
+
+
+ +

FAQs

+
+{% details %} + - title: I already run Home Assistant. Is this for me? + content: | + If your Home Assistant installation has outgrown your Raspberry + Pi or if you want a well supported, dedicated system, Home Assistant Blue is + for you. +

+ Or if you are still looking for a present for friends and family. + + - title: What is limited about the bundle? + content: | + We have only created a limited amount of cases. Once they are sold out, + we don't currently have plans to make more. + All other parts of the bundle will remain available for purchase. + + - title: I already own an ODROID-N2+. Do I run the same software? + content: | + Yes! Home Assistant Blue runs the exact same software as that you're + currently using and you're benefitting from all the improvements. + + - title: Will Home Assistant drop support for the Raspberry Pi? + content: | + Nope! We are committed to keep supporting all platforms that are currently available. +{% enddetails %} +
+ + +
+
+ Get the 3D model at Thingiverse, to print the iconic case for Home Assistant Blue +
+
+
+
+
+
+
+ Home Assistant Blue bundle + + + + + +
+
+ The bundle includes: +
    +
  • Limited edition Home Assistant Blue case
  • +
  • ODROID-N2+
  • +
      +
    • 6-core CPU
    • +
    • 4GB memory
    • +
    • 128GB eMMC storage
    • +
    • Home Assistant Operating System pre-installed
    • +
    +
  • Power adapter
  • +
+
+ +
+
+
+ + + + BUY BLUE +
+ +
diff --git a/source/images/blog/2020-12-1.0/social.png b/source/images/blog/2020-12-1.0/social.png deleted file mode 100644 index 48a46a38873..00000000000 Binary files a/source/images/blog/2020-12-1.0/social.png and /dev/null differ diff --git a/source/images/blog/2020-12-13-os5/social.png b/source/images/blog/2020-12-13-os5/social.png new file mode 100644 index 00000000000..2d76a601a1c Binary files /dev/null and b/source/images/blog/2020-12-13-os5/social.png differ diff --git a/source/images/blog/2020-12-1.0/blueprint-ui.png b/source/images/blog/2020-12/blueprint-ui.png similarity index 100% rename from source/images/blog/2020-12-1.0/blueprint-ui.png rename to source/images/blog/2020-12/blueprint-ui.png diff --git a/source/images/blog/2020-12-1.0/blueprints.png b/source/images/blog/2020-12/blueprints.png similarity index 100% rename from source/images/blog/2020-12-1.0/blueprints.png rename to source/images/blog/2020-12/blueprints.png diff --git a/source/images/blog/2020-12-1.0/disable-device.png b/source/images/blog/2020-12/disable-device.png similarity index 100% rename from source/images/blog/2020-12-1.0/disable-device.png rename to source/images/blog/2020-12/disable-device.png diff --git a/source/images/blog/2020-12-1.0/entity-areas.png b/source/images/blog/2020-12/entity-areas.png similarity index 100% rename from source/images/blog/2020-12-1.0/entity-areas.png rename to source/images/blog/2020-12/entity-areas.png diff --git a/source/images/blog/2020-12/social.png b/source/images/blog/2020-12/social.png new file mode 100644 index 00000000000..4be14886778 Binary files /dev/null and b/source/images/blog/2020-12/social.png differ diff --git a/source/images/blue/blue1.png b/source/images/blue/blue1.png new file mode 100644 index 00000000000..6bfa8aa17c0 Binary files /dev/null and b/source/images/blue/blue1.png differ diff --git a/source/images/blue/blue2.png b/source/images/blue/blue2.png new file mode 100644 index 00000000000..cfdcff9d1bd Binary files /dev/null and b/source/images/blue/blue2.png differ diff --git a/source/images/blue/blue3.png b/source/images/blue/blue3.png new file mode 100644 index 00000000000..d54d32e4750 Binary files /dev/null and b/source/images/blue/blue3.png differ diff --git a/source/images/blue/blue_3d.jpg b/source/images/blue/blue_3d.jpg new file mode 100644 index 00000000000..a8cb8797b10 Binary files /dev/null and b/source/images/blue/blue_3d.jpg differ diff --git a/source/images/blue/blue_dev_mode.png b/source/images/blue/blue_dev_mode.png new file mode 100644 index 00000000000..b0153830fa3 Binary files /dev/null and b/source/images/blue/blue_dev_mode.png differ diff --git a/source/images/blue/blue_hero.jpg b/source/images/blue/blue_hero.jpg new file mode 100644 index 00000000000..5758e4d1376 Binary files /dev/null and b/source/images/blue/blue_hero.jpg differ diff --git a/source/images/blue/blue_narrow.jpg b/source/images/blue/blue_narrow.jpg new file mode 100644 index 00000000000..8d77f180a3c Binary files /dev/null and b/source/images/blue/blue_narrow.jpg differ diff --git a/source/images/blue/blue_zen_mode.png b/source/images/blue/blue_zen_mode.png new file mode 100644 index 00000000000..087a5bf4633 Binary files /dev/null and b/source/images/blue/blue_zen_mode.png differ diff --git a/source/images/conference/frontpage-card.png b/source/images/conference/frontpage-card.png index 70d53f66f96..7f0e312b2fb 100644 Binary files a/source/images/conference/frontpage-card.png and b/source/images/conference/frontpage-card.png differ diff --git a/source/index.html b/source/index.html index a41d2cb8424..f9c571a0ea4 100644 --- a/source/index.html +++ b/source/index.html @@ -26,6 +26,18 @@ description: Release notes + +
+

Recent Blog Posts

+ + {% for post in site.posts limit: 4 %} +
  • + {{ post.title }} + {{ post.date_formatted }} +
  • + {% endfor %} +
    +

    Join The Community

    We love to help with & talk about home automation. @@ -37,13 +49,12 @@ description:
    + class="material-card highlight-blog-post" + href="/blog/2016/01/19/perfect-home-automation/" + > + Read our founder's vision for the perfect home automation + +

    Alexa, turn on the lights

    @@ -62,63 +73,63 @@ description:
    - - Read our founder's vision for the perfect home automation - - -
    -
    -

    Recent Blog Posts

    - - {% for post in site.posts limit: 4 %} -
  • - {{ post.title }} - {{ post.date_formatted }} -
  • - {% endfor %} -
    -
    State of the Union 2019
    -
    - Learn why we do what we do and what is next. +
    + Home Assistant Blue! +
    + Where style and performance meet privacy +
    +
    - Learn how our OS can turn your Raspberry Pi into the ultimate home - automation hub - +
    +
    + December 13, 2020 +
    + It's all about Home Assistant! +
    +
    + +
    -
    Home Assistant Tags
    -
    - Use NFC to bring music to your life or automate the mundane. +
    + Home Assistant Tags +
    + Use NFC to bring music to your life or automate the mundane. +
    +
    @@ -142,10 +156,13 @@ description: style="background-image: url(/images/merchandise/shirt-frontpage.png)" >
    -
    Join the Home Assistant t-shirt revolution!
    -
    - Look sharp in blue, black or gray. Wearing a HA t-shirt is okay. +
    + Join the Home Assistant t-shirt revolution! +
    + Look sharp in blue, black or gray. Wearing a HA t-shirt is okay. +
    +