Merge branch 'current' into next
4
Gemfile
@ -11,7 +11,7 @@ group :development do
|
||||
# > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189
|
||||
gem 'sassc', '2.1.0'
|
||||
gem 'rubocop', '1.65.0'
|
||||
gem 'ruby-lsp', '0.17.7'
|
||||
gem 'ruby-lsp', '0.17.10'
|
||||
gem 'rackup', '2.1.0'
|
||||
end
|
||||
|
||||
@ -23,7 +23,7 @@ group :jekyll_plugins do
|
||||
end
|
||||
|
||||
gem 'sinatra', '4.0.0'
|
||||
gem 'nokogiri', '1.16.6'
|
||||
gem 'nokogiri', '1.16.7'
|
||||
|
||||
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||
# and associated library
|
||||
|
14
Gemfile.lock
@ -77,7 +77,7 @@ GEM
|
||||
multi_json (1.15.0)
|
||||
mustermann (3.0.0)
|
||||
ruby2_keywords (~> 0.0.1)
|
||||
nokogiri (1.16.6-x86_64-linux)
|
||||
nokogiri (1.16.7-x86_64-linux)
|
||||
racc (~> 1.4)
|
||||
parallel (1.25.1)
|
||||
parser (3.3.4.0)
|
||||
@ -86,8 +86,8 @@ GEM
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
prism (0.30.0)
|
||||
public_suffix (6.0.0)
|
||||
racc (1.8.0)
|
||||
public_suffix (6.0.1)
|
||||
racc (1.8.1)
|
||||
rack (3.1.7)
|
||||
rack-protection (4.0.0)
|
||||
base64 (>= 0.1.0)
|
||||
@ -121,7 +121,7 @@ GEM
|
||||
unicode-display_width (>= 2.4.0, < 3.0)
|
||||
rubocop-ast (1.31.3)
|
||||
parser (>= 3.3.1.0)
|
||||
ruby-lsp (0.17.7)
|
||||
ruby-lsp (0.17.10)
|
||||
language_server-protocol (~> 3.17.0)
|
||||
prism (>= 0.29.0, < 0.31)
|
||||
rbs (>= 3, < 4)
|
||||
@ -142,7 +142,7 @@ GEM
|
||||
rack-protection (= 4.0.0)
|
||||
rack-session (>= 2.0.0, < 3)
|
||||
tilt (~> 2.0)
|
||||
sorbet-runtime (0.5.11481)
|
||||
sorbet-runtime (0.5.11501)
|
||||
stringex (2.8.6)
|
||||
strscan (3.1.0)
|
||||
terminal-table (3.0.2)
|
||||
@ -165,11 +165,11 @@ DEPENDENCIES
|
||||
jekyll-paginate (= 1.1.0)
|
||||
jekyll-sitemap (= 1.4.0)
|
||||
jekyll-toc (= 0.19.0)
|
||||
nokogiri (= 1.16.6)
|
||||
nokogiri (= 1.16.7)
|
||||
rackup (= 2.1.0)
|
||||
rake (= 13.2.1)
|
||||
rubocop (= 1.65.0)
|
||||
ruby-lsp (= 0.17.7)
|
||||
ruby-lsp (= 0.17.10)
|
||||
sass-globbing (= 1.1.5)
|
||||
sassc (= 2.1.0)
|
||||
sinatra (= 4.0.0)
|
||||
|
@ -108,8 +108,8 @@ social:
|
||||
# Home Assistant release details
|
||||
current_major_version: 2024
|
||||
current_minor_version: 7
|
||||
current_patch_version: 2
|
||||
date_released: 2024-07-10
|
||||
current_patch_version: 4
|
||||
date_released: 2024-07-30
|
||||
|
||||
# Either # or the anchor link to latest release notes in the blog post.
|
||||
# Must be prefixed with a # and have double quotes around it.
|
||||
|
@ -1,14 +1,9 @@
|
||||
module Jekyll
|
||||
module HomeAssistant
|
||||
class TerminologyTooltip < Liquid::Tag
|
||||
|
||||
def initialize(tag_name, args, tokens)
|
||||
super
|
||||
if args.strip =~ SYNTAX
|
||||
@term = Regexp.last_match(1)
|
||||
@text = Regexp.last_match(2)
|
||||
else
|
||||
raise SyntaxError, <<~MSG
|
||||
raise SyntaxError, <<~MSG unless args.strip =~ SYNTAX
|
||||
Syntax error in tag 'term' while parsing the following options:
|
||||
|
||||
#{args}
|
||||
@ -16,36 +11,41 @@ module Jekyll
|
||||
Valid syntax:
|
||||
{% term <term> [<text>] %}
|
||||
MSG
|
||||
end
|
||||
|
||||
@term = Regexp.last_match(1)
|
||||
@text = Regexp.last_match(2)
|
||||
end
|
||||
|
||||
def render(context)
|
||||
@term.gsub!(/\"/, "")
|
||||
entries = context.registers[:site].data["glossary"].select do |entry|
|
||||
entry.key?("term") and (@term.casecmp(entry["term"]).zero? or (entry.key?("aliases") and entry["aliases"].any?{ |s| s.casecmp(@term)==0 }))
|
||||
@term.gsub!(/"/, '')
|
||||
entries = context.registers[:site].data['glossary'].select do |entry|
|
||||
entry.key?('term') and (@term.casecmp(entry['term']).zero? or (entry.key?('aliases') and entry['aliases'].any? do |s|
|
||||
s.casecmp(@term) == 0
|
||||
end))
|
||||
end
|
||||
|
||||
raise ArgumentError, "Term #{@term} was not found in the glossary" if entries.length == 0
|
||||
raise ArgumentError, "Term #{@term} is in the glossary multiple times" if entries.length > 1
|
||||
raise ArgumentError, "Term #{@term} is missing a definition" unless entries[0].key?("definition")
|
||||
raise ArgumentError, "Term #{@term} is missing a definition" unless entries[0].key?('definition')
|
||||
|
||||
glossary = entries[0]
|
||||
|
||||
definition = glossary["excerpt"] || glossary["definition"]
|
||||
definition = glossary['excerpt'] || glossary['definition']
|
||||
|
||||
if glossary.key?("link")
|
||||
rendered_link = Liquid::Template.parse(glossary["link"]).render(context).strip
|
||||
link = "<small><a class='terminology-link' href='#{rendered_link}'>[Learn more]</a></small>"
|
||||
if glossary.key?('link')
|
||||
rendered_link = Liquid::Template.parse(glossary['link']).render(context).strip
|
||||
link = "<a class='terminology-link' href='#{rendered_link}'> [Learn more]</a>"
|
||||
definition = "#{definition.strip}#{link}".strip
|
||||
end
|
||||
|
||||
tooltip = "<span class='terminology-tooltip'>#{definition}#{link || ""}</span>"
|
||||
tooltip = "<span class='terminology-tooltip'>#{definition.strip}</span>"
|
||||
|
||||
"<span class='terminology'>#{@text || @term}#{tooltip}</span>"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
SYNTAX = %r!^(\w+?|".+?")(?:\s+(\w+|".+"))?$!.freeze
|
||||
|
||||
SYNTAX = /^(\w+?|".+?")(?:\s+(\w+|".+"))?$/
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -39,7 +39,7 @@ h1.title.indent {
|
||||
}
|
||||
|
||||
@media only screen and (min-width: $desk-wide-start) {
|
||||
.integration-page, .documentation-page, .blog-post {
|
||||
.integration-page, .documentation-page, .blog-index, .blog-category {
|
||||
.grid-wrapper>.grid.grid-center {
|
||||
display: flex;
|
||||
flex-direction: row-reverse;
|
||||
@ -48,13 +48,13 @@ h1.title.indent {
|
||||
}
|
||||
|
||||
#sidebar {
|
||||
.vertical-nav, .recent-categories, .recent-posts, .categories {
|
||||
.vertical-nav, .recent-categories, .blog-index .recent-posts, .categories {
|
||||
background: none;
|
||||
padding: 0 16px 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
.documentation-page, .blog-post {
|
||||
.documentation-page, .blog-index {
|
||||
#sidebar #toc-module {
|
||||
display: none;
|
||||
}
|
||||
@ -191,7 +191,7 @@ h1.title.indent {
|
||||
}
|
||||
|
||||
@media only screen and (min-width: $desk-wide-start) {
|
||||
.documentation-page #toc-bar, .integration-page #toc-bar, .blog-post #toc-bar {
|
||||
.documentation-page #toc-bar, .integration-page #toc-bar, .blog-index #toc-bar {
|
||||
display: inline-block;
|
||||
}
|
||||
#integration-sidebar #toc-module {
|
||||
@ -676,6 +676,10 @@ a.material-card:hover {
|
||||
&:hover {
|
||||
background-color: lighten(#038fc7, 10%);
|
||||
}
|
||||
|
||||
iconify-icon {
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
||||
.events {
|
||||
@ -1079,6 +1083,18 @@ article.listing {
|
||||
}
|
||||
|
||||
|
||||
.author-avatar {
|
||||
position: relative;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 24px !important;
|
||||
vertical-align: middle;
|
||||
margin: 0 8px 0 0;
|
||||
border: 2px solid rgba(0,0,0,.1) !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
|
||||
lite-youtube {
|
||||
position: relative;
|
||||
display: block;
|
||||
|
@ -101,7 +101,8 @@ article {
|
||||
}
|
||||
+ hr {
|
||||
border: none;
|
||||
border-bottom: 1px solid $primary-color;
|
||||
border-bottom: 2px solid $grayLighter;
|
||||
margin: 2em 0 2.5em;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -14,15 +14,19 @@
|
||||
&.easiest {
|
||||
color: #04b154;
|
||||
}
|
||||
|
||||
&.easy {
|
||||
color: #02b0ff;
|
||||
}
|
||||
|
||||
&.intermediate {
|
||||
color: #eb873f;
|
||||
}
|
||||
|
||||
&.hard {
|
||||
color: #ff5454;
|
||||
}
|
||||
|
||||
&.expert {
|
||||
color: #ff02b8;
|
||||
}
|
||||
@ -77,7 +81,8 @@
|
||||
align-items: center;
|
||||
border-radius: 4px;
|
||||
background-color: #c4c4c4;
|
||||
> * {
|
||||
|
||||
>* {
|
||||
border-radius: 0;
|
||||
border: 0;
|
||||
box-shadow: none;
|
||||
@ -89,10 +94,12 @@
|
||||
.content {
|
||||
flex: 1;
|
||||
padding: 8px 0;
|
||||
|
||||
p {
|
||||
font-size: 0.8em;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
b {
|
||||
font-size: 0.7em;
|
||||
}
|
||||
@ -103,7 +110,7 @@
|
||||
margin-top: 8px;
|
||||
gap: 8px;
|
||||
|
||||
& > * {
|
||||
&>* {
|
||||
flex-basis: min-content;
|
||||
flex-grow: 1;
|
||||
}
|
||||
@ -118,6 +125,7 @@
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.buttons {
|
||||
margin-top: 16px;
|
||||
display: flex;
|
||||
@ -190,28 +198,36 @@
|
||||
tr:nth-child(even) {
|
||||
background-color: #fafafa;
|
||||
}
|
||||
|
||||
iconify-icon {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.link-card {
|
||||
text-decoration: none !important;
|
||||
color: black !important;
|
||||
|
||||
div {
|
||||
margin: 32px 0;
|
||||
height: 64px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
svg {
|
||||
height: 32px;
|
||||
width: 32px;
|
||||
max-width: 32px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
align-self: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.next-step {
|
||||
p {
|
||||
text-transform: uppercase;
|
||||
@ -225,6 +241,7 @@
|
||||
.material-card {
|
||||
.content-container {
|
||||
flex-direction: column;
|
||||
|
||||
.image {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
@ -237,9 +254,11 @@
|
||||
height: unset;
|
||||
}
|
||||
}
|
||||
|
||||
.icon {
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
|
||||
* {
|
||||
height: 100%;
|
||||
width: auto;
|
||||
|
@ -52,7 +52,7 @@ Once you have created a sections view, you can populate it with sections and car
|
||||

|
||||
|
||||
2. To add a new section, select the **Create section** button.
|
||||
3. To edit the section title, select the <img height="28px" src="/images/blog/2024-03-dashboard-chapter-1/mdi-edit.png" alt="Edit icon"/> button.
|
||||
3. To edit the section title, select the edit {% icon "mdi:edit" %} button.
|
||||
- If you leave the section title empty, this line will be hidden.
|
||||
4. If you want this section to be visible only to specific users or under a certain condition, you can define those conditions:
|
||||
- On the **Visibility** tab, select **Add condition**.
|
||||
@ -66,14 +66,14 @@ Once you have created a sections view, you can populate it with sections and car
|
||||
|
||||
1. To delete a section, go to the dashboard and in the top right corner, select the pencil icon.
|
||||
2. Open the view with the section you want to delete.
|
||||
3. Select the <img height="28px" src="/images/blog/2024-03-dashboard-chapter-1/mdi-trash.png" alt="Delete icon"/> button.
|
||||
3. Select the delete {% icon "mdi:trash" %} button.
|
||||
|
||||
## Rearranging sections and cards
|
||||
|
||||
In the sections view, you can rearrange sections and cards by dragging them to a new location. This is not yet possible in other views.
|
||||
|
||||
1. To edit your dashboard, in the top right corner, select the pencil icon.
|
||||
2. To rearrange sections, hold the <img height="28px" src="/images/blog/2024-03-dashboard-chapter-1/mdi-move.png" alt="Move icon"/> button and move the card.
|
||||
2. To rearrange sections, hold the move {% icon "mdi:cursor-move" %} button and move the card.
|
||||
|
||||
<p class='img'>
|
||||
<img src="/images/blog/2024-03-dashboard-chapter-1/drag-and-drop-sections.gif" alt="Rearranging sections by dragging"/>
|
||||
@ -91,7 +91,7 @@ In the sections view, you can rearrange sections and cards by dragging them to a
|
||||
|
||||
You can choose to show or hide certain sections based on different conditions. The [available conditions](/dashboards/conditional/#card-conditions) are the same as that for the conditional card.
|
||||
|
||||
To edit the section visibility conditions, select the <img height="28px" src="/images/blog/2024-03-dashboard-chapter-1/mdi-edit.png" alt="Edit icon"/> button and then click on the visibility tab.
|
||||
To edit the section visibility conditions, select the edit {% icon "mdi:edit" %} button and then click on the visibility tab.
|
||||
|
||||
## Check out the demo
|
||||
|
||||
|
79
source/_data/people.yml
Normal file
@ -0,0 +1,79 @@
|
||||
Paulus Schoutsen:
|
||||
name: Paulus Schoutsen
|
||||
github: balloob
|
||||
|
||||
Pascal Vizeli:
|
||||
name: Pascal Vizeli
|
||||
github: pvizeli
|
||||
|
||||
Franck Nijhof:
|
||||
name: Franck Nijhof
|
||||
github: frenck
|
||||
|
||||
Bram Kragten:
|
||||
name: Bram Kragten
|
||||
github: bramkragten
|
||||
|
||||
Madelena Mak:
|
||||
name: Madelena Mak
|
||||
github: madelena
|
||||
|
||||
Guy Sie:
|
||||
name: Guy Sie
|
||||
github: GuySie
|
||||
|
||||
Gordon Cameron:
|
||||
name: Gordon Cameron
|
||||
github: googanhiem
|
||||
|
||||
Uwe Bernitt:
|
||||
name: Uwe Bernitt
|
||||
github: b-uwe
|
||||
|
||||
Jean-Loïc Pouffier:
|
||||
name: Jean-Loïc Pouffier
|
||||
github: jlpouffier
|
||||
|
||||
Stefan Agner:
|
||||
name: Stefan Agner
|
||||
github: agners
|
||||
|
||||
Bruno Pantaleão:
|
||||
name: Bruno Pantaleão
|
||||
github: bgoncal
|
||||
|
||||
Matthias de Baat:
|
||||
name: Matthias de Baat
|
||||
github: matthiasdebaat
|
||||
|
||||
Marcel van der Veldt:
|
||||
name: Marcel van der Veldt
|
||||
github: marcelveldt
|
||||
|
||||
Mike Hansen:
|
||||
name: Mike Hansen
|
||||
github: synesthesiam
|
||||
|
||||
Paul Bottein:
|
||||
name: Paul Bottein
|
||||
github: piitaya
|
||||
|
||||
Zack Barett:
|
||||
name: Zack Barett
|
||||
github: zsarnett
|
||||
|
||||
Joris Pelgröm:
|
||||
name: Joris Pelgröm
|
||||
github: jpelgrom
|
||||
|
||||
Daniel Shokouhi:
|
||||
name: Daniel Shokouhi
|
||||
github: dshokouhi
|
||||
|
||||
Zac West:
|
||||
name: Zac West
|
||||
github: zacwest
|
||||
|
||||
Klaas Schoute:
|
||||
name: Klaas Schoute
|
||||
github: klaasnicolaas
|
@ -283,6 +283,10 @@ The output of this selector is the name of the selected network storage. It may
|
||||
also be the value `/backup`, if the user chooses to use the local data disk option
|
||||
instead of one of the configured network storage locations.
|
||||
|
||||
```yaml
|
||||
backup_location:
|
||||
```
|
||||
|
||||
## Boolean selector
|
||||
|
||||
The boolean selector shows a toggle that allows the user to turn on or off
|
||||
|
@ -17,11 +17,11 @@ Once you have more devices, you may want to target entire groups of devices in a
|
||||
There are a few tools to group your assets: [Areas](#areas), [floors](#floors), [labels](#labels), and [categories](#categories).
|
||||
|
||||
| Taxonomy | Automation target | Entity can have multiple |
|
||||
| -------- | ----------------- | ------------------------ |
|
||||
| Area | ✅ | ❌ |
|
||||
| Floor | ✅ | ❌ |
|
||||
| Label | ✅ | ✅ |
|
||||
| Category | ❌ | ❌ |
|
||||
| -------- | -------------------------------- | -------------------------------- |
|
||||
| Area | {% icon "openmoji:check-mark" %} | {% icon "openmoji:cross-mark" %} |
|
||||
| Floor | {% icon "openmoji:check-mark" %} | {% icon "openmoji:cross-mark" %} |
|
||||
| Label | {% icon "openmoji:check-mark" %} | {% icon "openmoji:check-mark" %} |
|
||||
| Category | {% icon "openmoji:cross-mark" %} | {% icon "openmoji:cross-mark" %} |
|
||||
|
||||
## Area
|
||||
|
||||
|
@ -35,7 +35,7 @@ Follow these steps to create a new category.
|
||||
- Select **Assign category** and select the category from the list.
|
||||
- If the category is not in the list, select **Add new category** and make a new one.
|
||||
3. To assign a category to multiple items:
|
||||
- Select the <img height="28px" src="/images/organizing/multiselect_icon.png" alt="Multiselect icon"/> button.
|
||||
- Select the multi-select {% icon "mdi:order-checkbox-ascending" %} button.
|
||||
- From the list, select all the items to which you want to apply a category.
|
||||
- In the top right corner, select **Move to category**.
|
||||
- Then, select the category from the list.
|
||||
|
@ -41,15 +41,15 @@ Follow these steps to apply a label
|
||||
- On the area card, select the pencil icon.
|
||||
- Select one or more labels or select **Add new label** to create a new one.
|
||||
2. To apply a label to a device, entity, or helper:
|
||||
- Go to **{% my integrations title="Settings > Devices & services" %}** and open the respective tab.
|
||||
- Select the <img height="28px" src="/images/organizing/multiselect_icon.png" alt="Multiselect icon"/> button.
|
||||
- Go to **{% my integrations title="Settings > Devices & Services" %}** and open the respective tab.
|
||||
- Select the {% icon "mdi:order-checkbox-ascending" %} button.
|
||||
- From the list, select all the list entries to which you want to apply a label.
|
||||
- In the top right corner, select **Add label**. Then, select the labels from the list.
|
||||
|
||||

|
||||
3. To apply a label to an automation, scene, or script:
|
||||
- Go to {% my automations title="**Settings** > **Automations & scenes**" %} and open the respective tab.
|
||||
- Select the <img height="28px" src="/images/organizing/multiselect_icon.png" alt="Multiselect icon"/> button.
|
||||
- Go to {% my automations title="**Settings** > **Automations & Scenes**" %} and open the respective tab.
|
||||
- Select the {% icon "mdi:order-checkbox-ascending" %} button.
|
||||
- From the list, select all the list entries to which you want to apply a label.
|
||||
- In the top right corner, select the three dots {% icon "mdi:dots-vertical" %} menu, then select **Add label**. Then, select the labels from the list.
|
||||
|
||||
@ -66,9 +66,9 @@ If you used this label in automations or script as targets, you need to adjust t
|
||||
## Removing labels
|
||||
|
||||
1. Go to the data table that contains the element from which you want to remove the label:
|
||||
- Go to **{% my integrations title="Settings > Devices & services" %}** and open the respective tab.
|
||||
- Go to **{% my integrations title="Settings > Devices & Services" %}** and open the respective tab.
|
||||
- Or, go to {% my automations title="**Settings** > **Automations & Scenes**" %} and open the respective tab.
|
||||
2. Select the <img height="28px" src="/images/organizing/multiselect_icon.png" alt="Multiselect icon"/> button.
|
||||
2. Select the {% icon "mdi:order-checkbox-ascending" %} button.
|
||||
- From the list, select all the items from which you want to remove a label.
|
||||
- In the top right corner, select the three dots {% icon "mdi:dots-vertical" %} menu, then select **Add label**.
|
||||
- Then, deselect the checkbox for the label you want to remove.
|
||||
|
@ -20,7 +20,7 @@ When working with tables, you can select multiple items to apply an action. If y
|
||||
|
||||
## Selecting multiple items in a table
|
||||
|
||||
1. In your table, select the <img height="28px" src="/images/organizing/multiselect_icon.png" alt="Multiselect icon"/> button.
|
||||
1. In your table, select the {% icon "mdi:order-checkbox-ascending" %} button.
|
||||
|
||||

|
||||
|
||||
|
@ -1,64 +0,0 @@
|
||||
---
|
||||
title: "Troubleshooting installation problems"
|
||||
description: "Common installation problems and their solutions."
|
||||
---
|
||||
|
||||
It can happen that you run into trouble while installing Home Assistant. This page is here to help you solve the most common problems.
|
||||
|
||||
#### pip3: command not found
|
||||
|
||||
This utility should have been installed as part of the Python installation. Check if Python is installed by running `python3 --version`. If it is not installed, [download it here](https://www.python.org/getit/).
|
||||
|
||||
If you are able to successfully run `python3 --version` but not `pip3`, install Home Assistant by running the following command instead:
|
||||
|
||||
```bash
|
||||
python3 -m pip install homeassistant
|
||||
```
|
||||
|
||||
On a Debian system, you can also install python3 by `sudo apt-get install python3`, and pip3 by `sudo apt-get install python3-pip`.
|
||||
|
||||
#### No module named pip
|
||||
|
||||
[Pip](https://pip.pypa.io/en/stable/) should come bundled with the latest Python 3 but is omitted by some distributions. If you are unable to run `python3 -m pip --version` you can install `pip` by [downloading the installer](https://bootstrap.pypa.io/get-pip.py) and running it with Python 3:
|
||||
|
||||
```bash
|
||||
python3 get-pip.py
|
||||
```
|
||||
|
||||
#### No access to the frontend
|
||||
|
||||
In newer Linux distributions the access to a host is very limited. This means that you can't access the Home Assistant frontend that is running on a host outside of the host machine.
|
||||
|
||||
To fix this you will need to open your machine's firewall for TCP traffic to port 8123. The method for doing this will vary depending on your operating system and the firewall you have installed. Below are some suggestions to try. Google is your friend here.
|
||||
|
||||
For UFW systems (Ubuntu, Debian, Raspberry Pi OS, etc.):
|
||||
|
||||
```bash
|
||||
sudo ufw allow 8123/tcp
|
||||
```
|
||||
|
||||
For `iptables` systems (was the default for older distributions):
|
||||
|
||||
```bash
|
||||
iptables -I INPUT -p tcp --dport 8123 -j ACCEPT
|
||||
iptables-save > /etc/network/iptables.rules # your rules may be saved elsewhere
|
||||
```
|
||||
|
||||
### System freezes
|
||||
|
||||
On small systems (such as a Pi2), not directly supported by binaries (Python Wheels) you may run out of memory.
|
||||
Upon the first run or after an upgrade, Home Assistant uses a lot of resources to (re)compile all the integrations.
|
||||
If you run out of memory and/or swap memory, your system will freeze.
|
||||
Increasing swap memory can help:
|
||||
|
||||
```bash
|
||||
sudo dphys-swapfile swapoff
|
||||
sudo nano /etc/dphys-swapfile
|
||||
```
|
||||
|
||||
Modify the line the sets the swapfile size. Set it equal to your memory or double your current setting: `CONF_SWAPSIZE = 925` then:
|
||||
|
||||
```bash
|
||||
sudo dphys-swapfile swapon
|
||||
sudo systemctl restart dphys-swapfile.service
|
||||
```
|
@ -18,6 +18,7 @@
|
||||
<li>{% active_link /installation/macos macOS %}</li>
|
||||
<li>{% active_link /installation/windows Windows %}</li>
|
||||
<li>{% active_link /installation/alternative Other systems %}</li>
|
||||
<li>{% active_link /installation/troubleshooting/ Troubleshooting %}</li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
</li>
|
||||
|
@ -9,8 +9,8 @@
|
||||
|
||||
{% unless post.meta == false %}
|
||||
<div class="meta clearfix">
|
||||
{% include blog/post/date.html %}{{ time }}
|
||||
{% include post/author.html %}
|
||||
{% include blog/post/date.html %}{{ time }}
|
||||
{% include blog/post/tags.html %}
|
||||
{% if page.comments != false and post.comments != false %}
|
||||
<a class='comments'
|
||||
|
@ -15,7 +15,7 @@
|
||||
{%- endfor -%}
|
||||
|
||||
<p class='hero-buttons'>
|
||||
<a href='/getting-started/' class="primary">Get started <iconify-icon inline icon='mdi:arrow-right'></iconify-icon></a><br/>
|
||||
<a href='/installation/' class="primary">Get started <iconify-icon inline icon='mdi:arrow-right'></iconify-icon></a><br/>
|
||||
<a href='https://demo.home-assistant.io' target='_blank'>View live demos</a>
|
||||
<a href='/integrations/'>Browse {{ tot | minus: 1 | divided_by: 100 | round | times: 100 }}+ integrations</a>
|
||||
</p>
|
@ -4,7 +4,7 @@
|
||||
These below instructions are for an installation of {% term "Home Assistant Container" %} running in your own container environment, which you manage yourself. Any [OCI](https://opencontainers.org/) compatible runtime can be used, however this guide will focus on installing it with Docker.
|
||||
|
||||
{% note %}
|
||||
This installation method does not have access to add-ons.
|
||||
This installation method **does not have access to add-ons**. If you want to use add-ons, you need to use another installation method. The recommended method is {% term "Home Assistant Operating System" %}. Checkout the [overview table of installation types](https://www.home-assistant.io/installation/#advanced-installation-methods) to see the differences.
|
||||
{% endnote %}
|
||||
|
||||
{% important %}
|
||||
|
@ -5,4 +5,13 @@
|
||||
{% else %}
|
||||
{% assign author = site.author %}
|
||||
{% endif %}
|
||||
{% if author %}<span class="byline author vcard">{% icon "mdi:person" %} {{ author }}</span>{% endif %}
|
||||
{% if author %}
|
||||
{% assign person = site.data.people[author] %}
|
||||
{% if person %}
|
||||
<span class="byline author vcard"
|
||||
<a href="https://github.com/{{ person.github }}" target="_blank"><img class="author-avatar" src="https://avatars.githubusercontent.com/{{ person.github }}?size=64" alt="{{ person.name }}"/> {{ person.name }}</a>
|
||||
</span>
|
||||
{% else %}
|
||||
<span class="byline author vcard">{% icon "mdi:person" %} {{ author }}</span>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
@ -35,13 +35,12 @@
|
||||
{% else %}
|
||||
{% if page.blog_index %}
|
||||
{% include asides/recent_categories.html %}
|
||||
{% include asides/recent_posts.html posts='5' %}
|
||||
{% else %}
|
||||
{% if doc == 'categories' %}
|
||||
{% include asides/categories.html %}
|
||||
{% elsif root == 'blog' %}
|
||||
{% include asides/recent_posts.html posts='10' %}
|
||||
{% include post/sharing.html %}
|
||||
{% include asides/recent_posts.html posts='5' %}
|
||||
{% else %}
|
||||
{% include post/sharing.html %}
|
||||
{% endif %}
|
||||
|
@ -79,7 +79,7 @@ foreign_exchange:
|
||||
|
||||
## API information
|
||||
|
||||
Alpha Vantage offers two tiers of the API key, one free and one paid for. If you are using the free version, you will be limited to twenty-five queries per day. The sensor polls every 5 minutes, so you will only get data for the first two hours per day.
|
||||
Alpha Vantage offers two tiers of the API key, one free and one paid for. If you are using the free version, you will be limited to twenty-five queries per day. The sensor polls every 5 minutes, so you will only get data for the first two hours per day. This can be configured using the `scan_interval` variable.
|
||||
|
||||
The paid version starts at 75 queries per minute, increasing ticker quantity quite a bit.
|
||||
|
||||
|
@ -79,7 +79,7 @@ cover:
|
||||
required: false
|
||||
type: template
|
||||
availability_template:
|
||||
description: Defines a template to get the `available` state of the entity. If the template either fails to render or returns `True`, `"1"`, `"true"`, `"yes"`, `"on"`, `"enable"`, or a non-zero number, the entity will be `available`. If the template returns any other value, the entity will be `unavailable`. If not configured, the entity will always be `available`. Note that the string comparison not case sensitive; `"TrUe"` and `"yEs"` are allowed.
|
||||
description: Defines a template to get the `available` state of the entity. If the template either fails to render or returns `True`, `"1"`, `"true"`, `"yes"`, `"on"`, `"enable"`, or a non-zero number, the entity will be `available`. If the template returns any other value, the entity will be `unavailable`. If not configured, the entity will always be `available`. Note that the string comparison is not case sensitive; `"TrUe"` and `"yEs"` are allowed.
|
||||
required: false
|
||||
type: template
|
||||
default: true
|
||||
|
@ -37,6 +37,8 @@ You will need to obtain an API key from ecobee's [developer site](https://www.ec
|
||||
|
||||
{% warning %}
|
||||
As of March 28th, 2024, ecobee is no longer accepting new developer subscriptions, nor are existing developer accounts able to create new API keys. There is no ETA for when they will be allowed again. Existing API keys will continue to function.
|
||||
|
||||
In the meantime, you can use the [HomeKit Device](/integrations/homekit_controller/) integration as a fully functional alternative.
|
||||
{% endwarning %}
|
||||
|
||||
1. Click on the **Become a developer** link on the [developer site](https://www.ecobee.com/home/developer/loginDeveloper.jsp).
|
||||
|
@ -4,6 +4,7 @@ description: Instructions on how to integrate Ecowitt Weather Station within Hom
|
||||
ha_category:
|
||||
- Binary sensor
|
||||
- Sensor
|
||||
- Weather
|
||||
ha_release: 2022.9
|
||||
ha_iot_class: Local Push
|
||||
ha_domain: ecowitt
|
||||
|
@ -39,6 +39,7 @@ Any Gree Smart device working with the Gree+ app should be supported, including
|
||||
- Tadiran
|
||||
- Heiwa
|
||||
- Ekokai
|
||||
- Lessar
|
||||
|
||||
## Climate
|
||||
|
||||
|
@ -45,21 +45,25 @@ There is currently support for the following device types within Home Assistant:
|
||||
Binary sensor entities are created for the controller:
|
||||
|
||||
- Cloud API availability
|
||||
- Rain sensor moisture detection (if a rain sensor is attached to the controller)
|
||||
|
||||
{% note %}
|
||||
The Hydrawise API removed the ability to read the rain sensor status. Therefore it is no longer supported by the Hydrawise integration to Home Assistant.
|
||||
{% endnote %}
|
||||
|
||||
Binary sensor entities are created for each zone:
|
||||
Binary sensor entities are created for each irrigation zone:
|
||||
|
||||
- Running status
|
||||
|
||||
## Sensor
|
||||
|
||||
Sensor entities are added to each zone:
|
||||
Sensor entities are created for the controller:
|
||||
|
||||
- Daily total water use (if a flow sensor is attached to the controller)
|
||||
- Daily active water use (if a flow sensor is attached to the controller)
|
||||
- Daily inactive water use (if a flow sensor is attached to the controller)
|
||||
|
||||
Sensor entities are created for each irrigation zone:
|
||||
|
||||
- Timestamp for the next scheduled automatic watering cycle
|
||||
- Remaining time for the current watering cycle
|
||||
- Remaining time (in minutes) for the current watering cycle
|
||||
- Daily active water use for the zone (if a flow sensor is attached to the irrigation zone)
|
||||
|
||||
## Switch
|
||||
|
||||
|
@ -29,7 +29,7 @@ It does require that your devices are registered with the [Find My](https://www.
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
{% warning %}
|
||||
You may receive an email and a notification from Apple saying that someone has logged into your account.
|
||||
You may receive recurring emails and notifications from Apple stating that someone has logged into your account if the integration is improperly configured. If this occurs, select `Don't Allow` on your iOS device and reconfigure the Integration Credentials when prompted.
|
||||
|
||||
For the notification, press "Allow", then "OK".
|
||||
{% endwarning %}
|
||||
@ -38,7 +38,9 @@ To prevent excessive battery drainage, a dynamic interval is used for each indiv
|
||||
|
||||
## Two Factor Authentication
|
||||
|
||||
If two-step authentication is enabled for your iCloud account, some time after Home Assistant startup the integration will ask to enter the verification code you receive on your device via a notification in the Home Assistant UI. The duration of this authentication is determined by Apple, so you will need to verify your account every now and then.
|
||||
{% important %}
|
||||
You need to use an [app-specific password](https://support.apple.com/102654) to set up this integration.
|
||||
{% endimportant %}
|
||||
|
||||
## In case of troubleshooting
|
||||
|
||||
|
@ -140,11 +140,13 @@ Make sure you have all these components ready before trying to add a Matter devi
|
||||
- Android:
|
||||
- Have the Android version 8.1 or higher.
|
||||
- Have the latest version of the Home Assistant Companion app, installed from the Play Store (full version).
|
||||
- If you are using {% term Thread %}: Make sure there is a Thread border router device (Nest Hub (2nd Gen) or Nest Wi-Fi Pro) present in your home network.
|
||||
- If you are using {% term Thread %}: Make sure there is a Thread border router device (Nest Hub (2nd Gen) or Nest Wi-Fi Pro or Home Assistant with the OpenThread Border Router add-on) present in your home network.
|
||||
- If you are using OpenThread (for Connect ZBT-1/SkyConnect) as border router, make sure you followed the steps in the [Thread documentation](/integrations/thread#turning-home-assistant-into-a-thread-border-router).
|
||||
- iPhone
|
||||
- Have the iOS version 16 or higher
|
||||
- Have the latest version of the Home Assistant Companion app installed.
|
||||
- If you are using {% term Thread %}: Make sure there is a Thread border router device (HomePod Mini or V2, Apple TV 4K) present in your home network.
|
||||
- If you are using {% term Thread %}: Make sure there is a Thread border router device (HomePod Mini or V2, Apple TV 4K or Home Assistant with the OpenThread Border Router add-on) present in your home network.
|
||||
- If you are using OpenThread (for Connect ZBT-1/SkyConnect) as border router, make sure you followed the steps in the [Thread documentation](/integrations/thread#turning-home-assistant-into-a-thread-border-router).
|
||||
- Make sure the phone is in close range of the border router and your device.
|
||||
- If you are adding a Wi-Fi-based Matter device: Matter devices often use the 2.4 GHz frequency for Wi-Fi. For this reason, make sure your phone is in the same 2.4 GHz network where you want to operate your devices.
|
||||
|
||||
|
@ -29,7 +29,7 @@ Some examples of its use include:
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
{% note %}
|
||||
When adding the **Proximity** integration, you are prompted to define the **Tolerance distance**. The tolerance distance is used to calculate the direction of travel in meters (m) to filter out small GPS coordinate changes.
|
||||
When adding the **Proximity** integration, you are prompted to define the **Tolerance distance**. The tolerance distance must be provided in meters (m) and is used to filter out small GPS coordinate changes (_due to inaccuracies of GPS_) to calculate the direction of travel.
|
||||
{% endnote %}
|
||||
|
||||
## Sensors
|
||||
|
@ -36,6 +36,14 @@ Changing database used by the recorder may result in losing your existing histor
|
||||
|
||||
To change the defaults for the `recorder` integration in your installation, add the following to your {% term "`configuration.yaml`" %} file:
|
||||
|
||||
## Disk space requirements
|
||||
|
||||
A bare minimum requirement is to have at least as much free temporary space available as the size of your database at all times. A table rebuild, repair, or repack may happen at any time, which can result in a copy of the data on disk during the operation. Meeting the bare minimum requirement is essential during a version upgrade, where the schema may change, as this operation almost always requires making a temporary copy of part of the database.
|
||||
|
||||
For example, if your database is 1.5 GiB on disk, you must always have at least 1.5 GiB free.
|
||||
|
||||
## Advanced configuration
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
recorder:
|
||||
@ -121,7 +129,7 @@ recorder:
|
||||
type: list
|
||||
{% endconfiguration %}
|
||||
|
||||
## Configure filter
|
||||
### Configure filter
|
||||
|
||||
By default, no entity will be excluded. To limit which entities are being exposed to `recorder`, you can use the `include` and `exclude` parameters.
|
||||
|
||||
@ -143,7 +151,7 @@ recorder:
|
||||
|
||||
If you only want to hide events from your history, take a look at the [`history` integration](/integrations/history/). The same goes for the [logbook](/integrations/logbook/). But if you have privacy concerns about certain events or want them in neither the history or logbook, you should use the `exclude`/`include` options of the `recorder` integration. That way they aren't even in your database, you can reduce storage and keep the database small by excluding certain often-logged events (like `sensor.last_boot`).
|
||||
|
||||
### Common filtering examples
|
||||
#### Common filtering examples
|
||||
|
||||
Defining domains and entities to `exclude` (i.e. blocklist) is convenient when you are basically happy with the information recorded, but just want to remove some entities or domains.
|
||||
|
||||
@ -246,6 +254,12 @@ Perform the action `recorder.disable` to stop saving events and states to the da
|
||||
|
||||
Perform the action `recorder.enable` to start again saving events and states to the database. This is the opposite of `recorder.disable`.
|
||||
|
||||
## Handling disk corruption and hardware failures
|
||||
|
||||
When using SQLite, if the system encounters unrecoverable disk corruption, it will move the database aside and create a new database to keep the system online. In this case, having at least 2.5x the database size available in free disk space is essential. Starting a new database is the system's last resort recovery option and is usually caused by failing flash storage, an inadequate power supply, an unclean shutdown, or another hardware failure.
|
||||
|
||||
In this event, it may be possible to recover the old database by following the [SQLite recovery guide](https://www.sqlite.org/recovery.html).
|
||||
|
||||
## Custom database engines
|
||||
|
||||
{% warning %}
|
||||
|
@ -259,6 +259,7 @@ The following models have been tested and confirmed to work with a direct link t
|
||||
- C1 Pro*
|
||||
- C2 Pro*
|
||||
- [CX410](https://reolink.com/product/cx410/)
|
||||
- [CX810](https://reolink.com/product/cx810/)
|
||||
- [E1 Zoom](https://reolink.com/product/e1-zoom/)
|
||||
- [E1 Outdoor](https://reolink.com/product/e1-outdoor/)
|
||||
- [E1 Outdoor PoE](https://reolink.com/product/e1-outdoor-poe/)
|
||||
@ -363,7 +364,7 @@ Then power up the camera while pointing it at the QR code. It takes about a minu
|
||||
|
||||
### 2. Enabling HTTP/HTTPS ports
|
||||
|
||||
Test if you can access the camera by its IP address in your browser `https://<your-camera-ip>`. If you cannot, in the [windows or Mac](https://reolink.com/software-and-manual/) client ensure at least one of the HTTP/HTTPS ports are enabled under **Settings** > **Network** > **Advanced** > **Port Settings**. See [additional instructions](https://support.reolink.com/hc/en-us/articles/900004435763-How-to-Set-up-Reolink-Ports-Settings-via-Reolink-Client-New-Client-) on the Reolink site.
|
||||
Test if you can access the camera by its IP address in your browser `https://<your-camera-ip>`. If you cannot, in the [Reolink mobile app, Windows, or Mac client](https://reolink.com/software-and-manual/) ensure at least one of the HTTP/HTTPS ports are enabled under **Settings** > **top camera model box** > **Network Information** > **Advanced** (mobile) or **Settings** > **Network** > **Advanced** > **Port Settings** (PC). See [additional instructions](https://support.reolink.com/hc/en-us/articles/900000621783-How-to-Set-up-Reolink-Ports-Settings/) on the Reolink site.
|
||||
|
||||
### 3. Add integration in Home Assistant
|
||||
|
||||
@ -377,7 +378,7 @@ Set up the Reolink integration in Home Assistant using the credentials you set i
|
||||
## Troubleshooting
|
||||
|
||||
- Older firmware versions do not expose the necessary information the integration needs to function. Ensure the camera is updated to the [latest firmware](https://reolink.com/download-center/) prior to setting up the integration. Note that Reolink auto update and check for update functions in the app/windows/web client often do not show the latest available firmware version. Therefore check the version in the [Reolink download center](https://reolink.com/download-center/) online.
|
||||
- Ensure at least one of the HTTP/HTTPS ports is enabled in the [windows](https://reolink.com/software-and-manual/)/web client under **Settings** > **Network** > **Advanced** > **Port Settings**, see [additional instructions](https://support.reolink.com/hc/en-us/articles/900004435763-How-to-Set-up-Reolink-Ports-Settings-via-Reolink-Client-New-Client-) on the Reolink site.
|
||||
- Ensure at least one of the HTTP/HTTPS ports is enabled in the [Reolink mobile app, Windows, or Mac client](https://reolink.com/software-and-manual/) under **Settings** > **top camera model box** > **Network Information** > **Advanced** (mobile) or **Settings** > **Network** > **Advanced** > **Port Settings** (PC), see [additional instructions](https://support.reolink.com/hc/en-us/articles/900000621783-How-to-Set-up-Reolink-Ports-Settings/) on the Reolink site.
|
||||
- On some camera models, the RTMP port needs to be enabled in order for the HTTP(S) port to function properly. Make sure this port is also enabled if you get a `Cannot connect to host` error while one of the HTTP/HTTPS ports is already enabled.
|
||||
- Setting a static IP address for Reolink cameras/NVRs in your router is advisable to prevent (temporal) connectivity issues when the IP address changes.
|
||||
- Do not set a static IP in the Reolink device itself, but leave the **Connection Type** on **DHCP** under **Settings** > **Network** > **Network Information** > **Set Up**. If you set it to **static** on the Reolink device itself, this is known to cause incorrect DHCP requests on the network. The incorrect DHCP request causes Home Assistant to use the wrong IP address for the camera, resulting in connection issues. The issue originates from the Reolink firmware, which keeps sending DCHP requests even when you set a static IP address in the Reolink device.
|
||||
|
@ -21,6 +21,30 @@ The Ridwell integration allows users to track waste recycling pickups scheduled
|
||||
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
## Calendar
|
||||
|
||||
The calendar sensor contains a `calendar` state attribute, which contains:
|
||||
|
||||
- The name of the Ridwell Calendar.
|
||||
- If the event is an all-day event (Boolean).
|
||||
- The start time of the calendar event. Starts at midnight.
|
||||
- The end time of the event. Ends at midnight.
|
||||
- The location of the event.
|
||||
- The description of the items being picked up.
|
||||
- Friendly name of the calendar event.
|
||||
|
||||
For example:
|
||||
|
||||
```yaml
|
||||
message: Ridwell Pickup (scheduled)
|
||||
all_day: true
|
||||
start_time: 2024-07-26 00:00:00
|
||||
end_time: 2024-07-27 00:00:00
|
||||
location:
|
||||
description: Pickup types: Light Bulbs (quantity: 1), Hand Tools (quantity: 1), Batteries (quantity: 1), Threads (quantity: 1), Plastic Film (quantity: 1)
|
||||
friendly_name: Ridwell
|
||||
```
|
||||
|
||||
## Pickup types
|
||||
|
||||
The pickup sensor contains a `pickup_types` state attribute, which contains:
|
||||
|
@ -273,7 +273,7 @@ The easiest way to find the `nvr_id`, `camera_id`, `start`, and `end` times is b
|
||||
|
||||
### Delay in video feed
|
||||
|
||||
The default settings on the stream integration will give you a 5-15+ second delay. You can reduce this delay to 1-3 seconds, by enabling [LL-HLS in the stream integration](/integrations/stream/#ll-hls). You will also want to put an HTTP/2 reserve proxy in front of Home Assistant so you can have connection pooling. If you do not add a reverse proxy, you may start to get "Waiting for WebSocket..." messages while trying to view too many camera streams at once. One way to do this is using the official NGINX Proxy Add-on:
|
||||
The default settings on the stream integration will give you a 5-15+ second delay. You can reduce this delay to 1-3 seconds, by enabling [LL-HLS in the stream integration](/integrations/stream/#ll-hls). You will also want to put an HTTP/2 reverse proxy in front of Home Assistant so you can have connection pooling. If you do not add a reverse proxy, you may start to get "Waiting for WebSocket..." messages while trying to view too many camera streams at once. One way to do this is using the official NGINX Proxy Add-on:
|
||||
|
||||
{% my supervisor_addon addon="core_nginx_proxy" badge %}
|
||||
|
||||
|
@ -3,6 +3,7 @@ title: Viessmann ViCare
|
||||
description: Instructions how to integrate Viessmann heating devices with Home Assistant
|
||||
ha_category:
|
||||
- Climate
|
||||
- Water heater
|
||||
ha_release: 0.99
|
||||
ha_iot_class: Cloud Polling
|
||||
ha_config_flow: true
|
||||
@ -24,122 +25,156 @@ ha_codeowners:
|
||||
The **Viessmann ViCare** {% term integration %} lets you control [Viessmann](https://www.viessmann.com) devices via the Viessmann ViCare (REST) API.
|
||||
Most recent network-connected Viessmann heating devices (e.g., gas boilers) should be supported.
|
||||
|
||||
There is currently support for the following device types within Home Assistant:
|
||||
## Prerequisites
|
||||
|
||||
- [Climate](#climate) (Heating)
|
||||
- [Water heater](#water-heater) (Domestic hot water)
|
||||
- [Sensor](#sensor) (Sensor)
|
||||
- [Button](#button) (Button)
|
||||
- [Number](#number)
|
||||
You will need to sign in on the [Viessmann developer portal](https://app.developer.viessmann.com/) with **your existing ViCare app user credentials**.
|
||||
|
||||
Create a new API client by selecting **Add** in the **Clients** section on the developer dashboard with the following settings:
|
||||
- Name: `HomeAssistant`
|
||||
- Google reCAPTCHA: `disabled`
|
||||
- Redirect URIs: `vicare://oauth-callback/everest`
|
||||
|
||||
Copy the **Client ID** in the **Clients** section on the developer dashboard for the setup in Home Assistant.
|
||||
|
||||
{% important %}
|
||||
You have to set up the {% term integration %} from your device (phone) where you have the ViCare app installed. Otherwise, your device does not know how to handle the `vicare://` redirect URL, and you will receive an **Invalid credentials** notification and the setup procedure will fail.
|
||||
{% endimportant %}
|
||||
|
||||
{% note %}
|
||||
It may take up to an hour for your new client to become active and usable. Otherwise, you will not receive any devices in Home Assistant.
|
||||
{% endnote %}
|
||||
|
||||
### API limits
|
||||
|
||||
The Viessmann API is rate-limited. If you exceed one of the limits below, you will be blocked for 24 hours:
|
||||
|
||||
- 120 calls for a time window of 10 minutes
|
||||
- 1450 calls for a time window of 24 hours
|
||||
|
||||
The {% term integration %} polls the API every 60 seconds and will work within these limits. However, any additional requests to the API, for example, by setting the temperature via the integration but also by interacting with the ViCare app, count into those limits.
|
||||
|
||||
{% note %}
|
||||
If you have multiple Viessmann devices in Home Assistant, the limit is shared between them, meaning the poll interval is increased, and the values are less frequently updated!
|
||||
{% endnote %}
|
||||
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
Use your ViCare app login credentials for *username* and *password*.
|
||||
## Entities
|
||||
|
||||
The required *client ID* can be obtained from the [Viessmann Developer Portal](https://app.developer.viessmann.com/):
|
||||
1. Log in with **your existing ViCare app username and password**.
|
||||
2. On the developer dashboard, select **Add** in the **Clients** section.
|
||||
3. Create a new client using the following data:
|
||||
- Name: `HomeAssistant`
|
||||
- Google reCAPTCHA: Disabled
|
||||
- Redirect URIs: `vicare://oauth-callback/everest`
|
||||
4. Find the **Client ID** in the **Clients** section on the developer dashboard.
|
||||
ViCare represents devices as a set of [data points](https://documentation.viessmann.com/static/iot/data-points) and the ViCare {% term integration %} maps those to {% term entity entities %} of different {% term platform platforms %} in Home Assistant. A single device may be represented by one or more platforms.
|
||||
|
||||
The `heating_type` can either be `auto` to automatically find the most suitable type for your device or one of `gas`, `oil`, `pellets`, `heatpump`, `fuelcell`, `hybrid`.
|
||||
### Climate
|
||||
|
||||
Important: the redirect URI that you configure requires that you perform the initial setup on a device that has the ViCare application installed. If your device does not know how to handle the `vicare://` URL, you will receive an **Invalid credentials** notification and the setup procedure will fail. This means: install the ViCare app on your phone and set up the {% term integration %} from your phone.
|
||||
Represents the heating controls of your device.
|
||||
|
||||
Multiple device instances might be generated depending on the number of burners and/or circuits of your installation. If there is more than a single instance all devices are suffixed with the circuit or burner ID.
|
||||
{% note %}
|
||||
Viessmann devices with room temperature sensing will show the current room temperature via `current_temperature`. All other devices will show the current supply temperature of the heating circuit.
|
||||
{% endnote %}
|
||||
|
||||
## Viessmann API limits
|
||||
### Water heater
|
||||
|
||||
The Viessmann API is rate-limited. If you exceed one of the limits below you will be banned for 24 hours:
|
||||
Represents the domestic hot water controls of your device.
|
||||
|
||||
- Limit 1: 120 calls for a time window of 10 minutes
|
||||
- Limit 2: 1450 calls for a time window of 24 hours
|
||||
{% note %}
|
||||
It is not possible to turn on/off water heating via the water heater {% term integration %} since this would conflict with the operation modes of the heating integration. Therefore, the operation mode of that integration is just available as an attribute and cannot be modified.
|
||||
{% endnote %}
|
||||
|
||||
The {% term integration %} polls the Viessmann API every 60 seconds and will work within these limits. Note however that any additional requests to the API, e.g., by setting the temperature via the {% term integration %} but also by interacting with the ViCare app also counts into those limits.
|
||||
### Sensor
|
||||
|
||||
## Climate
|
||||
Additional data for a device is available as separate sensors. The sensors are automatically discovered based on the available API data points.
|
||||
|
||||
A note about the current temperature attribute: Viessmann devices with room temperature sensing will show the current room temperature via `current_temperature`. All other devices will show the current supply temperature of the heating circuit.
|
||||
### Button
|
||||
|
||||
### Supported actions `climate.vicare_heating`
|
||||
Button entities are available for triggering like a one-time charge of the water heater.
|
||||
|
||||
The following actions of the [Climate integration](/integrations/climate/) are provided by the ViCare {% term integration %}: `set_temperature`, `set_hvac_mode`, `set_preset_mode`
|
||||
### Number
|
||||
|
||||
#### Action `set_temperature`
|
||||
Number entities are available to adjust values like the predefined temperature for different heating programs or the heating curve shift and slope.
|
||||
|
||||
Sets the target temperature to the given temperature.
|
||||
## Actions
|
||||
|
||||
| Data attribute | Optional | Description |
|
||||
| ---------------------- | -------- | ----------- |
|
||||
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. To target all entities, use `all` keyword instead of entity_id.
|
||||
| `temperature` | no | Desired target temperature
|
||||
The following actions of the [climate integration](/integrations/climate/) are provided by the ViCare integration: `set_temperature`, `set_hvac_mode`, `set_preset_mode`
|
||||
|
||||
Note that `set_temperature` will always affect the current normal temperature or, if a preset is set, the temperature of the preset (i.e., Viessman program like eco or comfort).
|
||||
The following actions of the [water_heater integration](/integrations/water_heater/) are provided by the ViCare integration: `set_temperature`
|
||||
|
||||
#### Action `climate.set_hvac_mode`
|
||||
|
||||
Set HVAC mode for the climate device. The following modes are supported:
|
||||
|
||||
The `climate.vicare_heating` {% term integration %} has the following mapping of HVAC modes to Viessmann operation modes:
|
||||
|
||||
| HVAC mode | Viessmann mode | Description |
|
||||
| ---------------------- | -------- | ----------- |
|
||||
| `off` | `ForcedReduced` | Permanently set heating to reduced temperature. Note: This will also deactivate domestic hot water
|
||||
| `heat` | `ForcedNormal` | Permanently set heating to normal temperature.
|
||||
| `auto` | `DHWandHeating` | Switches between reduced and normal temperature as by the heating schedule programmed in your device
|
||||
|
||||
| Data attribute | Optional | Description |
|
||||
| ---------------------- | -------- | ----------- |
|
||||
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. To target all entities, use `all` keyword instead of entity_id.
|
||||
| `hvac_mode` | no | New value of HVAC mode
|
||||
|
||||
#### Action `climate.set_vicare_mode`
|
||||
### Action `vicare.set_vicare_mode`
|
||||
|
||||
Set the mode for the climate device as defined by Viessmann (see [set_hvac_mode](#action-climateset_hvac_mode) for a mapping to Home Assistant Climate modes. This allows more-fine grained control of the heating modes.
|
||||
|
||||
| Data attribute | Optional | Description |
|
||||
| ---------------------- | -------- | ----------- |
|
||||
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. To target all entities, use `all` keyword instead of entity_id.
|
||||
| `vicare_mode` | no | New value of ViCare mode. For supported values see the `vicare_modes` attribute of the climate {% term entity %}.
|
||||
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. To target all entities, use the `all` keyword instead of entity_id. |
|
||||
| `vicare_mode` | no | New value of ViCare mode. For supported values, see the `vicare_modes` attribute of the climate entity. |
|
||||
|
||||
#### Action `set_preset_mode`
|
||||
### Action `climate.set_temperature`
|
||||
|
||||
Sets the target temperature to the given temperature.
|
||||
|
||||
| Data attribute | Optional | Description |
|
||||
| ---------------------- | -------- | ----------- |
|
||||
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. To target all entities, use `all` keyword instead of entity_id. |
|
||||
| `temperature` | no | Desired target temperature. |
|
||||
|
||||
Note that `set_temperature` will always affect the current normal temperature or, if a preset is set, the temperature of the preset (i.e., Viessman program like eco or comfort).
|
||||
|
||||
### Action `climate.set_hvac_mode`
|
||||
|
||||
Set HVAC mode for the climate device. The following modes are supported:
|
||||
|
||||
The ViCare {% term integration %} has the following mapping of HVAC modes to Viessmann operation modes:
|
||||
|
||||
| HVAC mode | Viessmann mode | Description |
|
||||
| ---------------------- | -------- | ----------- |
|
||||
| `off` | `ForcedReduced` | Permanently set heating to reduced temperature. Note: This will also deactivate domestic hot water. |
|
||||
| `heat` | `ForcedNormal` | Permanently set heating to normal temperature. |
|
||||
| `auto` | `DHWandHeating` | Switches between reduced and normal temperature as by the heating schedule programmed in your device. |
|
||||
|
||||
| Data attribute | Optional | Description |
|
||||
| ---------------------- | -------- | ----------- |
|
||||
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. To target all entities, use `all` keyword instead of entity_id. |
|
||||
| `hvac_mode` | no | New value of HVAC mode. |
|
||||
|
||||
### Action `climate.set_preset_mode`
|
||||
|
||||
Sets the preset mode. Supported preset modes are *eco* and *comfort*. These are identical to the respective Viessmann programs and are only active temporarily for 8 hours.
|
||||
Eco mode reduces the target temperature by 3°C, whereas Comfort mode sets the target temperature to a configurable value. Please consult your heating device manual for more information.
|
||||
|
||||
| Data attribute | Optional | Description |
|
||||
| ---------------------- | -------- | ----------- |
|
||||
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. To target all entities, use `all` keyword instead of entity_id.
|
||||
| `preset_mode` | no | New value of preset mode.
|
||||
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. To target all entities, use `all` keyword instead of entity_id. |
|
||||
| `preset_mode` | no | New value of preset mode. |
|
||||
|
||||
## Water heater
|
||||
|
||||
It is not possible to turn on/off water heating via the water heater {% term integration %} since this would conflict with the operation modes of the heating {% term integration %}. Therefore the operation mode of that {% term integration %} is just available as an attribute and cannot be modified.
|
||||
|
||||
### Supported actions `water_heater.vicare_water`
|
||||
|
||||
The following actions of the [water heater integration](/integrations/water_heater/) are provided by the ViCare {% term integration %}: `set_temperature`
|
||||
|
||||
#### Action `set_temperature`
|
||||
### Action `water_heater.set_temperature`
|
||||
|
||||
Sets the target temperature of domestic hot water to the given temperature.
|
||||
|
||||
| Data attribute | Optional | Description |
|
||||
| ---------------------- | -------- | ----------- |
|
||||
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control.
|
||||
| `temperature` | no | New target temperature for water heater
|
||||
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. |
|
||||
| `temperature` | no | New target temperature for water heater. |
|
||||
|
||||
## Sensor
|
||||
## Troubleshooting
|
||||
|
||||
Additional data from ViCare is available as separate sensors. The sensors are automatically discovered based on the available API data points.
|
||||
### UTF-8 characters in passwords
|
||||
|
||||
## Button
|
||||
The underlying PyViCare Python library cannot handle UTF-8 characters in passwords, so do not use for example `ü`, `ø`, etc. in passwords.
|
||||
|
||||
Button entities are available for triggering like a one-time charge of the water heater.
|
||||
### GATEWAY_OFFLINE
|
||||
|
||||
## Number
|
||||
The ViCare API tends to lose contact with the gateway from time to time. This will be logged in Home Assistant with:
|
||||
|
||||
Number entities are available to adjust values like the predefined temperature for different heating programs or the heating curve shift and slope.
|
||||
```log
|
||||
Invalid data from Vicare server: {
|
||||
'viErrorId': '...',
|
||||
'statusCode': 400,
|
||||
'errorType': 'DEVICE_COMMUNICATION_ERROR',
|
||||
'message': '',
|
||||
'extendedPayload': {
|
||||
'httpStatusCode': 'NotFound',
|
||||
'code': '404',
|
||||
'reason': 'GATEWAY_OFFLINE'
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Usually, this resolves itself after a while, but if this state persists, try to power cycle your gateway.
|
||||
|
@ -40,19 +40,7 @@ Home Assistant will use account linking provided by Nabu Casa for authenticating
|
||||
If you want to use separate credentials, please contact <service@yosmart.com> to obtain a `client_id` and `client_secret`. Then you can add your credentials via application credentials. Settings > Devices & services > click the menu (three dots at the top right of the screen) and then **Application Credentials**. Enter your credentials in the pop-up window.
|
||||
{% enddetails %}
|
||||
|
||||
## Actions
|
||||
|
||||
### `Play on SpeakerHub`
|
||||
|
||||
With this action, you can convert text to speech for playback on SpeakerHub.
|
||||
|
||||
Data attribute | Optional | Description
|
||||
-|-|-
|
||||
`target_device` | no| SpeakerHub device ID for audio playback.
|
||||
`message` | no| Text for speech conversion.
|
||||
`tone` | no| Tone before playing audio.
|
||||
`volume` | no| Speaker volume during playback.
|
||||
`repeat` | no| The number of times the text will be repeated.
|
||||
## Supported device list
|
||||
|
||||
The integration is tested and verified for the following devices from YoLink:
|
||||
|
||||
@ -64,6 +52,7 @@ The integration is tested and verified for the following devices from YoLink:
|
||||
- YS3607-UC (YoLink SirenFob)
|
||||
- YS4002-UC (YoLink Thermostat)
|
||||
- YS4003-UC (YoLink Thermostat Heatpump)
|
||||
- YS4004-UC (YoLink Thermostat 2)
|
||||
- YS4906-UC + YS7706-UC (Garage Door Kit 1)
|
||||
- YS4908-UC + YS7706-UC (Garage Door Kit 2 (Finger))
|
||||
- YS4909-UC (Water Valve Controller)
|
||||
@ -103,9 +92,30 @@ The integration is tested and verified for the following devices from YoLink:
|
||||
- YS8004-UC (Weatherproof Temperature Sensor)
|
||||
- YS8005-UC (Weatherproof Temperature & Humidity Sensor)
|
||||
- YS8006-UC (X3 Temperature & Humidity Sensor)
|
||||
- YS8007-UC (Thermometer Hygrometer)
|
||||
- YS8014-UC (X3 Outdoor Temperature Sensor)
|
||||
- YS8015-UC (X3 Outdoor Temperature & Humidity Sensor)
|
||||
- YS5006-UC (FlowSmart Control)
|
||||
- YS5007-UC (FlowSmart Meter)
|
||||
- YS5008-UC (FlowSmart All-in-One)
|
||||
- YS8017-UC (Thermometer)
|
||||
|
||||
## Actions
|
||||
|
||||
### `Play on SpeakerHub`
|
||||
|
||||
With this action, you can convert text to speech for playback on SpeakerHub.
|
||||
|
||||
Data attribute | Optional | Description
|
||||
-|-|-
|
||||
`target_device` | no| SpeakerHub device ID for audio playback.
|
||||
`message` | no| Text for speech conversion.
|
||||
`tone` | no| Tone before playing audio.
|
||||
`volume` | no| Speaker volume during playback.
|
||||
`repeat` | no| The number of times the text will be repeated.
|
||||
|
||||
## Community notes
|
||||
|
||||
1. This integration requires an MQTT connection to be established via port 8003. If you are using a firewall, please allow communication via port 8003 in the firewall settings.
|
||||
2. If you use a network proxy, such as a VPN, the integration may not be able to update the device status. Turn off the VPN.
|
||||
3. Please do not use UAC as credentials for the Home Assistant YoLink integration.
|
||||
|
@ -608,6 +608,13 @@ The visualization shows multi-hop connections between your paired devices and th
|
||||
|
||||
The exact method in which these values are reported depends on the Zigbee network stack used on each device. LQI values can be modified at each step as the message propagates through the mesh networking matrix.
|
||||
|
||||
#### Why some links are missing in Zigbee network topology maps
|
||||
|
||||
Missing links between Zigbee end devices (often battery-powered devices) in the Zigbee network visualization map are common. They are generally not a sign of a faulty device if the device is still reporting state changes. This happens with sleepy Zigbee end devices and does not mean that the device is no longer connected.
|
||||
|
||||
Some end devices (for example, Xiaomi door sensors) sleep for an extended period, causing the parent Zigbee Router to remove them from its child table via a feature called router child aging. Since using child aging and removing them from the child table is a Zigbee 3.0 feature, this does not always occur because not all Zigbee router devices use child aging.
|
||||
|
||||
This is what causes devices to show a missing link. Even though the device is no longer in the child table, the end device can still communicate via the parent Zigbee router.
|
||||
#### How to interpret RSSI and LQI values
|
||||
|
||||
Interpreting RSSI and LQI values is complex. Unless you are a Zigbee specialist yourself or are guided by one, please ignore those values. They can be misleading. If you delve into this, it is important to understand not to judge RSSI or LQI values on their own. When troubleshooting Zigbee messages that are being dropped, you must interpret the combination of both RSSI and LQI.
|
||||
|
@ -3,7 +3,7 @@
|
||||
{% assign doc = url_parts[2] %}
|
||||
|
||||
{% include site/head.html %}
|
||||
<body {% if page.body_id %} id="{{ page.body_id }}"{% elsif page.layout == "landingpage" %} id="landingpage"{% endif %} class="{% if root == 'docs' or root == 'dashboards' or root == 'voice_control' or root == 'installation' or root == 'getting-started' or root == 'common-tasks' %}documentation-page{% endif %}{% if root == 'integrations' %}integration-page{% endif %}{% if root == 'blog' %}blog-post{% endif %}">
|
||||
<body {% if page.body_id %} id="{{ page.body_id }}"{% elsif page.layout == "landingpage" %} id="landingpage"{% endif %} class="{% if root == 'docs' or root == 'dashboards' or root == 'voice_control' or root == 'installation' or root == 'getting-started' or root == 'common-tasks' %}documentation-page{% endif %} {% if root == 'integrations' %}integration-page{% endif %} {% if page.blog_index %}blog-index{% endif %} {% if root == 'blog' %}blog-post {% if doc == 'categories' %}blog-category{% endif %}{% endif %}">
|
||||
<header class='site-header {% if page.dark_header %}dark{% endif %}'>
|
||||
{% include site/header.html %}
|
||||
</header>
|
||||
|
@ -8,6 +8,7 @@ author_twitter: balloob
|
||||
categories:
|
||||
- Release-Notes
|
||||
- Core
|
||||
- Dashboard
|
||||
og_image: /images/blog/2018-06-release-0.72/lovelace.png
|
||||
---
|
||||
|
||||
|
@ -8,6 +8,7 @@ author_twitter: balloob
|
||||
categories:
|
||||
- Release-Notes
|
||||
- Core
|
||||
- Dashboard
|
||||
og_image: /images/blog/2019-01-lovelace/demo.png
|
||||
---
|
||||
|
||||
|
@ -911,7 +911,7 @@ other choice than to disable this integration.
|
||||
([@frenck] - [#92124]) ([documentation](/integrations/watson_tts))
|
||||
|
||||
[@frenck]: https://github.com/frenck
|
||||
[#91492]: https://github.com/home-assistant/core/pull/92124
|
||||
[#92124]: https://github.com/home-assistant/core/pull/92124
|
||||
|
||||
{% enddetails %}
|
||||
|
||||
@ -925,7 +925,7 @@ measurement, there is currently no way to get text sensors from IHC working.
|
||||
This is a breaking fix because if you currently have temperature sensors
|
||||
without a unit of measurement set, you will have to set this for the sensors.
|
||||
|
||||
([@dingusdk] - [#91096]) ([documentation](/integrations/ihc))
|
||||
([@dingusdk] - [#93054]) ([documentation](/integrations/ihc))
|
||||
|
||||
[@dingusdk]: https://github.com/dingusdk
|
||||
[#93054]: https://github.com/home-assistant/core/pull/93054
|
||||
@ -1068,7 +1068,7 @@ other choice than to disable this integration.
|
||||
([@frenck] - [#92124]) ([documentation](/integrations/smarty))
|
||||
|
||||
[@frenck]: https://github.com/frenck
|
||||
[#91492]: https://github.com/home-assistant/core/pull/92124
|
||||
[#92124]: https://github.com/home-assistant/core/pull/92124
|
||||
|
||||
{% enddetails %}
|
||||
|
||||
|
@ -67,6 +67,8 @@ Enjoy the release!
|
||||
- [Patch releases](#patch-releases)
|
||||
- [2024.7.1 - July 5](#202471---july-5)
|
||||
- [2024.7.2 - July 10](#202472---july-10)
|
||||
- [2024.7.3 - July 19](#202473---july-19)
|
||||
- [2024.7.4 - July 30](#202474---july-30)
|
||||
- [Need help? Join the community!](#need-help-join-the-community)
|
||||
- [Backward-incompatible changes](#backward-incompatible-changes)
|
||||
- [All changes](#all-changes)
|
||||
@ -661,6 +663,168 @@ every Friday.
|
||||
[@temesinko]: https://github.com/temesinko
|
||||
[@tronikos]: https://github.com/tronikos
|
||||
|
||||
### 2024.7.3 - July 19
|
||||
|
||||
- Fix reauth error and exception in ista EcoTrend integration ([@tr4nt0r] - [#121482])
|
||||
- Retain Jellyfin config flow input on connection issue ([@j-stienstra] - [#121618])
|
||||
- Update Supla async_set_cover_position to use "REVEAL_PARTIALLY" ([@ontaptom] - [#121663])
|
||||
- Bump sunweg 3.0.2 ([@rokam] - [#121684])
|
||||
- Allow enigma2 devices to use different source bouquets ([@autinerd] - [#121686])
|
||||
- Fix tplink bug changing color temp on bulbs with light effects ([@sdb9696] - [#121696])
|
||||
- Bump knocki to 0.3.0 ([@joostlek] - [#121704])
|
||||
- Bump pyloadapi to v1.3.2 ([@tr4nt0r] - [#121709])
|
||||
- Fix update happening too early in unifiprotect ([@bdraco] - [#121714])
|
||||
- Bump knocki to 0.3.1 ([@joostlek] - [#121717])
|
||||
- Fix bad access to UniFi runtime_data when not assigned ([@Kane610] - [#121725])
|
||||
- Update Idasen Desk library to 2.6.2 ([@abmantis] - [#121729])
|
||||
- Bump opower to 0.5.2 to fix 403 forbidden errors for users with multiple accounts ([@tronikos] - [#121762])
|
||||
- Pin mashumaro version >= 3.13.1 for python 3.12.4 compatibility. ([@allenporter] - [#121782])
|
||||
- Bump pytedee_async to 0.2.20 ([@zweckj] - [#121783])
|
||||
- Add some missing tplink ouis ([@bdraco] - [#121785])
|
||||
- Use async_connect in newly bumped 0.5.8 UPB library ([@gwww] - [#121789])
|
||||
- Bump python-kasa to 0.7.0.4 ([@sdb9696] - [#121791])
|
||||
- Add missing translations to Roborock ([@jpbede] - [#121796])
|
||||
- Fix alexa does to check `current_position` correctly when handling cover range changes ([@jbouwh] - [#121798])
|
||||
- Reolink media second lens ([@starkillerOG] - [#121800])
|
||||
- Bump PySwitchbot to 0.48.1 ([@ollo69] - [#121804])
|
||||
- Bump aiolifx to 1.0.4 ([@Djelibeybi] - [#121267])
|
||||
- Bump aiolifx to 1.0.5 ([@Djelibeybi] - [#121824])
|
||||
- Log add/remove index complete at the same level as when it starts ([@bdraco] - [#121852])
|
||||
- Fix opentherm_gw availability ([@mvn23] - [#121892])
|
||||
- Fix rainforest_raven closing device due to timeout ([@cottsay] - [#121905])
|
||||
- Fix enigma2 mute ([@tgorochowik] - [#121928])
|
||||
- Fix `configuration_url` for Shelly device using IPv6 ([@bieniu] - [#121939])
|
||||
- Narrow sqlite database corruption check to ensure disk image is malformed ([@bdraco] - [#121947])
|
||||
- Bump python-holidays to 0.53 ([@gjohansson-ST] - [#122021])
|
||||
- Mark UniFi power cycle button as unavailable if PoE is not enabled on port ([@Kane610] - [#122035])
|
||||
- Fix hive not updating when boosting ([@HarryEMartland] - [#122042])
|
||||
- Update tplink device config during reauth flow ([@sdb9696] - [#122089])
|
||||
- Prevent connecting to a Shelly device that is already connected ([@thecode] - [#122105])
|
||||
- Bump tplink dependency python-kasa to 0.7.0.5 ([@sdb9696] - [#122119])
|
||||
- Update yt-dlp to 2024.07.16 ([@cdce8p] - [#122124])
|
||||
- Fix KeyError in config flow of Bring integration ([@tr4nt0r] - [#122136])
|
||||
|
||||
[#120579]: https://github.com/home-assistant/core/pull/120579
|
||||
[#121267]: https://github.com/home-assistant/core/pull/121267
|
||||
[#121289]: https://github.com/home-assistant/core/pull/121289
|
||||
[#121482]: https://github.com/home-assistant/core/pull/121482
|
||||
[#121618]: https://github.com/home-assistant/core/pull/121618
|
||||
[#121663]: https://github.com/home-assistant/core/pull/121663
|
||||
[#121671]: https://github.com/home-assistant/core/pull/121671
|
||||
[#121684]: https://github.com/home-assistant/core/pull/121684
|
||||
[#121686]: https://github.com/home-assistant/core/pull/121686
|
||||
[#121696]: https://github.com/home-assistant/core/pull/121696
|
||||
[#121704]: https://github.com/home-assistant/core/pull/121704
|
||||
[#121709]: https://github.com/home-assistant/core/pull/121709
|
||||
[#121714]: https://github.com/home-assistant/core/pull/121714
|
||||
[#121717]: https://github.com/home-assistant/core/pull/121717
|
||||
[#121725]: https://github.com/home-assistant/core/pull/121725
|
||||
[#121729]: https://github.com/home-assistant/core/pull/121729
|
||||
[#121762]: https://github.com/home-assistant/core/pull/121762
|
||||
[#121782]: https://github.com/home-assistant/core/pull/121782
|
||||
[#121783]: https://github.com/home-assistant/core/pull/121783
|
||||
[#121785]: https://github.com/home-assistant/core/pull/121785
|
||||
[#121789]: https://github.com/home-assistant/core/pull/121789
|
||||
[#121791]: https://github.com/home-assistant/core/pull/121791
|
||||
[#121796]: https://github.com/home-assistant/core/pull/121796
|
||||
[#121798]: https://github.com/home-assistant/core/pull/121798
|
||||
[#121800]: https://github.com/home-assistant/core/pull/121800
|
||||
[#121804]: https://github.com/home-assistant/core/pull/121804
|
||||
[#121824]: https://github.com/home-assistant/core/pull/121824
|
||||
[#121852]: https://github.com/home-assistant/core/pull/121852
|
||||
[#121892]: https://github.com/home-assistant/core/pull/121892
|
||||
[#121905]: https://github.com/home-assistant/core/pull/121905
|
||||
[#121928]: https://github.com/home-assistant/core/pull/121928
|
||||
[#121939]: https://github.com/home-assistant/core/pull/121939
|
||||
[#121947]: https://github.com/home-assistant/core/pull/121947
|
||||
[#122021]: https://github.com/home-assistant/core/pull/122021
|
||||
[#122035]: https://github.com/home-assistant/core/pull/122035
|
||||
[#122042]: https://github.com/home-assistant/core/pull/122042
|
||||
[#122089]: https://github.com/home-assistant/core/pull/122089
|
||||
[#122105]: https://github.com/home-assistant/core/pull/122105
|
||||
[#122119]: https://github.com/home-assistant/core/pull/122119
|
||||
[#122124]: https://github.com/home-assistant/core/pull/122124
|
||||
[#122136]: https://github.com/home-assistant/core/pull/122136
|
||||
[@Djelibeybi]: https://github.com/Djelibeybi
|
||||
[@HarryEMartland]: https://github.com/HarryEMartland
|
||||
[@Kane610]: https://github.com/Kane610
|
||||
[@abmantis]: https://github.com/abmantis
|
||||
[@allenporter]: https://github.com/allenporter
|
||||
[@autinerd]: https://github.com/autinerd
|
||||
[@bdraco]: https://github.com/bdraco
|
||||
[@bieniu]: https://github.com/bieniu
|
||||
[@cdce8p]: https://github.com/cdce8p
|
||||
[@cottsay]: https://github.com/cottsay
|
||||
[@frenck]: https://github.com/frenck
|
||||
[@gjohansson-ST]: https://github.com/gjohansson-ST
|
||||
[@gwww]: https://github.com/gwww
|
||||
[@j-stienstra]: https://github.com/j-stienstra
|
||||
[@jbouwh]: https://github.com/jbouwh
|
||||
[@joostlek]: https://github.com/joostlek
|
||||
[@jpbede]: https://github.com/jpbede
|
||||
[@mvn23]: https://github.com/mvn23
|
||||
[@ollo69]: https://github.com/ollo69
|
||||
[@ontaptom]: https://github.com/ontaptom
|
||||
[@rokam]: https://github.com/rokam
|
||||
[@sdb9696]: https://github.com/sdb9696
|
||||
[@starkillerOG]: https://github.com/starkillerOG
|
||||
[@tgorochowik]: https://github.com/tgorochowik
|
||||
[@thecode]: https://github.com/thecode
|
||||
[@tr4nt0r]: https://github.com/tr4nt0r
|
||||
[@tronikos]: https://github.com/tronikos
|
||||
[@zweckj]: https://github.com/zweckj
|
||||
|
||||
### 2024.7.4 - July 30
|
||||
|
||||
- Bump `aiotractive` to 0.6.0 ([@bieniu] - [#121155])
|
||||
- Ensure mqtt subscriptions are in a set ([@jbouwh] - [#122201])
|
||||
- Add Z-Wave discovery schema for ZVIDAR roller shades ([@alexschneider] - [#122332])
|
||||
- Fix device class on sensor in ViCare ([@CFenner] - [#122334])
|
||||
- Goofle Generative AI: Fix string format ([@Shulyaka] - [#122348])
|
||||
- Ensure script llm tool name does not start with a digit ([@Shulyaka] - [#122349])
|
||||
- Bump reolink-aio to 0.9.5 ([@starkillerOG] - [#122366])
|
||||
- Fix gemini api format conversion ([@Shulyaka] - [#122403])
|
||||
- Fix typo in Matter lock platform ([@marcelveldt] - [#122536])
|
||||
- Fix target service attribute on Mastodon integration ([@andrew-codechimp] - [#122546])
|
||||
- Bump aiolifx to 1.0.6 ([@Djelibeybi] - [#122569])
|
||||
- Bump deebot-client to 8.2.0 ([@edenhaus] - [#122612])
|
||||
- Bump aiohue to version 4.7.2 ([@marcelveldt] - [#122651])
|
||||
- Return unknown when data is missing in Trafikverket Weather ([@gjohansson-ST] - [#122652])
|
||||
- Retry later on OSError during apple_tv entry setup ([@bdraco] - [#122747])
|
||||
|
||||
[#120579]: https://github.com/home-assistant/core/pull/120579
|
||||
[#121155]: https://github.com/home-assistant/core/pull/121155
|
||||
[#121289]: https://github.com/home-assistant/core/pull/121289
|
||||
[#121671]: https://github.com/home-assistant/core/pull/121671
|
||||
[#122194]: https://github.com/home-assistant/core/pull/122194
|
||||
[#122201]: https://github.com/home-assistant/core/pull/122201
|
||||
[#122332]: https://github.com/home-assistant/core/pull/122332
|
||||
[#122334]: https://github.com/home-assistant/core/pull/122334
|
||||
[#122348]: https://github.com/home-assistant/core/pull/122348
|
||||
[#122349]: https://github.com/home-assistant/core/pull/122349
|
||||
[#122366]: https://github.com/home-assistant/core/pull/122366
|
||||
[#122403]: https://github.com/home-assistant/core/pull/122403
|
||||
[#122536]: https://github.com/home-assistant/core/pull/122536
|
||||
[#122546]: https://github.com/home-assistant/core/pull/122546
|
||||
[#122569]: https://github.com/home-assistant/core/pull/122569
|
||||
[#122612]: https://github.com/home-assistant/core/pull/122612
|
||||
[#122651]: https://github.com/home-assistant/core/pull/122651
|
||||
[#122652]: https://github.com/home-assistant/core/pull/122652
|
||||
[#122747]: https://github.com/home-assistant/core/pull/122747
|
||||
[@CFenner]: https://github.com/CFenner
|
||||
[@Djelibeybi]: https://github.com/Djelibeybi
|
||||
[@Shulyaka]: https://github.com/Shulyaka
|
||||
[@alexschneider]: https://github.com/alexschneider
|
||||
[@andrew-codechimp]: https://github.com/andrew-codechimp
|
||||
[@bdraco]: https://github.com/bdraco
|
||||
[@bieniu]: https://github.com/bieniu
|
||||
[@edenhaus]: https://github.com/edenhaus
|
||||
[@frenck]: https://github.com/frenck
|
||||
[@gjohansson-ST]: https://github.com/gjohansson-ST
|
||||
[@jbouwh]: https://github.com/jbouwh
|
||||
[@marcelveldt]: https://github.com/marcelveldt
|
||||
[@starkillerOG]: https://github.com/starkillerOG
|
||||
|
||||
## Need help? Join the community!
|
||||
|
||||
Home Assistant has a great community of users who are all more than willing
|
||||
|
161
source/_posts/2024-07-26-dashboard-chapter-2.markdown
Normal file
@ -0,0 +1,161 @@
|
||||
---
|
||||
layout: post
|
||||
title: "Dashboard chapter 2: Let’s redesign the cards together!"
|
||||
description: "We have been steadily shipping updates to our new dashboard design every month, and we would like our community of contributors to get involved!"
|
||||
date: 2024-07-26 00:00:00
|
||||
date_formatted: "July 26, 2024"
|
||||
author: Madelena Mak
|
||||
comments: true
|
||||
categories: Dashboard
|
||||
og_image: /images/blog/2024-07-dashboard-chapter-2/dashboard-banner.png
|
||||
---
|
||||
|
||||
<p class='img'>
|
||||
<lite-youtube videoid="9zmXLxQPr1o" videotitle="A Home-Approved Dashboard - Chapter 2: Let's redesign the cards together!"></lite-youtube>
|
||||
</p>
|
||||
|
||||
We have been steadily shipping updates to our new dashboard design every month since we announced [Project Grace](/blog/2024/03/04/dashboard-chapter-1/#what-is-project-grace), and our new grid system is finally maturing to a point where we would like our community of contributors to get involved!
|
||||
|
||||
If you are a UX/UI designer or a custom card developer who would like to contribute to the Home Assistant project, [sign up to be part of our dashboard working group](/join-dashboard-group) and read more about what you can do to improve compatibility of your custom cards.
|
||||
|
||||
<!--more-->
|
||||
|
||||
## What’s new since the last chapter?
|
||||
|
||||
Thanks to your feedback, we continued to build upon the grid system and the sections layout with features such as:
|
||||
|
||||
- [Max column option for sections](/blog/2024/04/03/release-20244/#define-the-columns-in-the-section-view) (2024.4)
|
||||
- [Drag and drop for card features](/blog/2024/05/01/release-20245/#reorder-features-of-the-tile-card) (2024.5)
|
||||
- [Visibility options for sections and cards](/blog/2024/06/05/release-20246/#dashboards) (2024.6)
|
||||
- [Dashboard background](/blog/2024/06/05/release-20246/#setting-a-dashboard-background) (2024.6)
|
||||
- [Resizable cards on sections view](/blog/2024/07/03/release-20247/#resize-the-cards-on-your-dashboard) (2024.7)
|
||||
|
||||
Check out the corresponding blogs for more details.
|
||||
|
||||
### New badges!
|
||||
|
||||
In the upcoming 2024.8, we are introducing our redesigned [badges](/dashboards/badges/).
|
||||
|
||||
The original badges was created as far back as [version 0.7](/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/) in August 2015, and its design has not changed much since. Designed to sit at the top of a dashboard view, badges provide a summary of the most important information that you need to know, at a glance.
|
||||
|
||||
According to our case studies of dashboards created by our users, we found that these badges are underused, mainly due to its outmoded appearance, bulky size, and the lack of configurable options from the UI. Instead, we found that many users are using [Mushroom Chip cards](https://github.com/piitaya/lovelace-mushroom/blob/main/docs/cards/chips.md), created by [@piitaya](https://github.com/pittaya) who also works at Nabu Casa, for similar purposes. Therefore, we decided to redesign our badges to match the design of the Mushroom Chip cards.
|
||||
|
||||

|
||||
|
||||
The new badges feature a wide range of configurable options from the UI. For each individual badge, you can now specify whether the icon, name, and/or state will be visible, and you can configure the contents within each of these components: States can include multiple attributes to be displayed, and icons can be replaced with the entity picture for a person’s avatar or a media_player’s record cover.
|
||||
|
||||
Visibility options are also available for the new badges, which allow you to show or hide them based on who is viewing the dashboard, what screen size it is displayed within, whether an entity is in a certain state, and more.
|
||||
|
||||
Badges can be easily reordered with drag-and-drop, and they also come with copy, paste, and duplicate features that cards in the new sections view have. Last but not least, the new badges work across both the new sections view and the old masonry view.
|
||||
|
||||
#### Notes for card developers
|
||||
|
||||
On a default installation, we offer one built-in badge, the entity badge. However, you are not limited to that, as you can build and use your own!
|
||||
Defining a badge is done in a very similar way to defining a custom card. For more information, check out [our developer documentations](https://developers.home-assistant.io/docs/frontend/custom-ui/custom-badge).
|
||||
|
||||
We would love to see your new creations - perhaps a small sparkline graph, or how about a mini progress bar? What do users want to quickly find out on a dashboard at a glance, and what can you display in this small amount of space to get the message across? Let your creativity go wild!
|
||||
|
||||
|
||||
## What’s next for Dashboards?
|
||||
|
||||
As the new sections view matures in its featureset, we want to begin our focus on a bigger task: to revamp all the dashboard cards and bring them up to modern standards. To achieve this, we need you - the power of our contributor community!
|
||||
|
||||
### How can we achieve this?
|
||||
|
||||
Once upon a time (I mean, Summer of 2018), [a group of developers came together to create the Lovelace dashboard](/blog/2018/06/22/release-72/). It was built organically - developers contributed where they see a need, either for replicating a feature from the previous States UI, or for adding something that they use personally. While the cards that come with Lovelace are adequate, the usability and aesthetics left much to be improved. In order to raise the bar in our design standards, we need more design-minded contributors.
|
||||
|
||||
Enter (semi) open-source design.
|
||||
|
||||
Traditionally, open-source projects are built around code repositories such as GitHub. This allows easy submission of contributions by anyone who can code. We figured that we may be able to achieve the same for product direction and UX design, too.
|
||||
|
||||
However, it is not easy to start with a blank canvas, and designers and developers have different workflows. Therefore, as the maintainers of the Home Assistant project, we are providing the product goals, the base design framework, and the process to facilitate collaboration.
|
||||
|
||||
### Product goals: What do we want to achieve?
|
||||
|
||||
The goal of Project Grace is to make customization and organization of dashboards easy and intuitive for all users in a household. Dashboards are created to help users monitor and control smart homes, and as cards are the building blocks of dashboards, by extension, cards should also achieve the same product goals:
|
||||
|
||||
- **Monitor**: Allow users to monitor the states of the device and service entities, with data visualizations that are easy and quick to understand.
|
||||
- **Control**: Allow users to control the devices in their smart homes, mainly with touch screens, and on the desktop with a mouse occasionally.
|
||||
|
||||
To bring them up to modern standards, we want you to join us to:
|
||||
|
||||
- **Revamp existing cards to fit the new grid system.** This will achieve the modularity and ease of customization we are looking to achieve with the sections view.
|
||||
- **Standardize the design system.** The new cards should adhere to the same design tokens for typography, iconography, shapes, dimensions, and more.
|
||||
- **Create new cards.** This will fill the current feature gaps that we have not addressed.
|
||||
- **Extend existing cards with card features.** Card features allow every card to be more modular and be always up-to-date.
|
||||
- **Incorporate existing popular cards on HACS.** This will reduce the need to install custom cards and also bring them up to the UX standards of the Home Assistant frontend.
|
||||
|
||||
### Design framework: What will our card designs be based upon?
|
||||
|
||||
#### The grid system
|
||||
|
||||
The new cards will be based on the [design grid system](/blog/2024/03/04/dashboard-chapter-1/#the-grid-system) as defined previously, finalized with a few tweaks for better information density and aesthetics. We have reduced the height of each row on the grid to eliminate the empty space between the card contents and card features:
|
||||
|
||||
<p class='text-center'><img src='/images/blog/2024-07-dashboard-chapter-2/card-size-comparison.png' style='width: 66%;' alt='Comparison of the old and new grid dimensions effect on cards'></p>
|
||||
|
||||
The finalized grid dimensions are as follows:
|
||||
|
||||
- Row height: 66px → 56px
|
||||
- Gutter: 8px
|
||||
- Icon size: 40px → 36px
|
||||
- Feature height : 40px → 42px
|
||||
|
||||
<p class='text-center'><img src='/images/blog/2024-07-dashboard-chapter-2/grid-dimensions.png' alt='Grid size dimensions'></p>
|
||||
|
||||
#### Design guidelines
|
||||
|
||||
We have also researched on the design of the Tile card, and here are some of the guidelines we have deduced from the research:
|
||||
|
||||
- Each card used for controls should have a clear primary action.
|
||||
- Affordance: Everything that is designed to invite users to interact with should look clickable.
|
||||
- Features get better results than icon buttons.
|
||||
- Don't clutter up the card.
|
||||
|
||||
As for the rest of the design system, we have been gradually moving towards Material 3 for the past year, but we have yet to finalize and adapt it fully on our frontend. We would like to hear your input on how we can bring it to our cards.
|
||||
|
||||
### Process: How can we work together?
|
||||
|
||||
Since open-source design is not attempted often, there are not a lot of precedents we can refer to. We are experimenting with our process and will tweak it as we learn more. For now, we come up with the following process:
|
||||
|
||||
1. **Working group, assemble!** If you are an UX designer, product person, or a frontend developer, you are welcomed to [sign up](/join-dashboard-group) to be part of the dashboard working group! We pick based on experience in dashboard and card design and development.
|
||||
2. **Meet and greet.** We will organize introduction workshops where everyone comes together to learn about what we can offer and define our project goals.
|
||||
3. **Start small.** We will parcel out each individual card as a project. We will start with the easier cards first. Every working group member can work on as many cards as they like.
|
||||
4. **Research and design.** We will quickly research, ideate, prototype, and validate our designs together, and share our designs and work-in-progress live on Figma.
|
||||
5. **Let’s build it!** We will clean up and finalize our designs, develop the cards, and launch the new cards with the next HA release!
|
||||
|
||||
### Action items: What can you do as a custom card developer now?
|
||||
|
||||
If you have already created some custom cards, this is a great time to start upgrading your work to the next level!
|
||||
|
||||
#### 1. Fit your custom card into grid system
|
||||
|
||||
In order for your custom card to work well with the sections view, you need to specify the default, minimum, and maximum width and height of your card:
|
||||
|
||||
- **Default** width and height is the size of the card when it is first added to the dashboard.
|
||||
- **Minimum** width and height is the size of the card when its content cannot shrink further in size to adapt to and be usable with the provided area.
|
||||
- **Maximum** width and height is the size of the card when its content cannot expand further in size to adapt to and be usable with the provided area.
|
||||
|
||||
Our grid system has a fixed row height, which means that you can estimate how many rows your card will need by dividing the height of your card by the sum of the row height and the gutter.
|
||||
|
||||
For more information on how you can implement the card resizing logic, check out our [developer documentation](https://developers.home-assistant.io/docs/frontend/custom-ui/custom-card#sizing-in-sections-view).
|
||||
|
||||
#### 2. Follow usability guidelines from our user research
|
||||
|
||||
Audit the usability of your custom card with [the guidelines](#design-guidelines) as mentioned above.
|
||||
|
||||
#### 3. Create new card features
|
||||
|
||||
<p class='text-center'><img src='https://developers.home-assistant.io/assets/images/dashboard-custom-card-feature-screenshot-8425524ea32eb5d4744a7557fcfcab33.png' alt='Card feature example'></p>
|
||||
|
||||
Card features are widgets that can be placed inside cards for displaying or controlling an attribute of the entity. By building [custom card features](https://developers.home-assistant.io/docs/frontend/custom-ui/custom-card-feature), you can expand the abilities of many cards that support card features. You can also allow your custom card to use card features, similar to what we had done to the [Thermostat card].
|
||||
|
||||
#### 4. Ensure features are editable in UI
|
||||
|
||||
<p class='text-center'><img src='/images/blog/2024-07-dashboard-chapter-2/card-visual-editor-example.png' style='width: 50%;' alt='Example of a visual editor for a card'></p>
|
||||
|
||||
The inclusion of a [visual editor](https://developers.home-assistant.io/docs/frontend/custom-ui/custom-card-feature) is key to the ease of use of your custom cards, allowing more people to be able to edit and use them on their dashboards. Be sure to include only the necessary options in the visual editor, while also hide away the less used options in YAML or in an accordion UI to avoid clutter.
|
||||
|
||||
---
|
||||
|
||||
That’s all from us this time! To learn more about the UX research and design thinking behind the dashboard, be sure to check out our [Dashboard Chapter 2 live stream](https://www.youtube.com/watch?v=9zmXLxQPr1o)!
|
||||
|
@ -34,8 +34,9 @@ layout: null
|
||||
/yellow https://yellow.home-assistant.io
|
||||
/blog/2021/09/13/home-assistant-amber/ /blog/2021/09/13/home-assistant-yellow/
|
||||
|
||||
# User research
|
||||
# Design & User research
|
||||
/join-research https://forms.clickup.com/2533032/f/2d9n8-12931/52N1KK00E9BXEW71TN
|
||||
/join-dashboard-group https://forms.clickup.com/2533032/f/2d9n8-18091/711QWINKTF866N9HYV
|
||||
|
||||
# Older development pages
|
||||
/developers https://developers.home-assistant.io
|
||||
@ -346,8 +347,6 @@ layout: null
|
||||
/getting-started/scripts-service-calls /docs/scripts/service-calls
|
||||
/getting-started/scripts-conditions /docs/scripts/conditions
|
||||
/getting-started/securing /docs/configuration/securing
|
||||
/getting-started/troubleshooting /docs/troubleshooting
|
||||
/getting-started/troubleshooting-configuration /docs/troubleshooting
|
||||
/getting-started/updating /common-tasks/os
|
||||
/getting-started/yaml /docs/configuration/yaml
|
||||
/getting-started/z-wave /integrations/zwave_js
|
||||
|
@ -1361,6 +1361,168 @@ For a summary in a more readable format:
|
||||
[@temesinko]: https://github.com/temesinko
|
||||
[@tronikos]: https://github.com/tronikos
|
||||
|
||||
## Release 2024.7.3 - July 19
|
||||
|
||||
- Fix reauth error and exception in ista EcoTrend integration ([@tr4nt0r] - [#121482])
|
||||
- Retain Jellyfin config flow input on connection issue ([@j-stienstra] - [#121618])
|
||||
- Update Supla async_set_cover_position to use "REVEAL_PARTIALLY" ([@ontaptom] - [#121663])
|
||||
- Bump sunweg 3.0.2 ([@rokam] - [#121684])
|
||||
- Allow enigma2 devices to use different source bouquets ([@autinerd] - [#121686])
|
||||
- Fix tplink bug changing color temp on bulbs with light effects ([@sdb9696] - [#121696])
|
||||
- Bump knocki to 0.3.0 ([@joostlek] - [#121704])
|
||||
- Bump pyloadapi to v1.3.2 ([@tr4nt0r] - [#121709])
|
||||
- Fix update happening too early in unifiprotect ([@bdraco] - [#121714])
|
||||
- Bump knocki to 0.3.1 ([@joostlek] - [#121717])
|
||||
- Fix bad access to UniFi runtime_data when not assigned ([@Kane610] - [#121725])
|
||||
- Update Idasen Desk library to 2.6.2 ([@abmantis] - [#121729])
|
||||
- Bump opower to 0.5.2 to fix 403 forbidden errors for users with multiple accounts ([@tronikos] - [#121762])
|
||||
- Pin mashumaro version >= 3.13.1 for python 3.12.4 compatibility. ([@allenporter] - [#121782])
|
||||
- Bump pytedee_async to 0.2.20 ([@zweckj] - [#121783])
|
||||
- Add some missing tplink ouis ([@bdraco] - [#121785])
|
||||
- Use async_connect in newly bumped 0.5.8 UPB library ([@gwww] - [#121789])
|
||||
- Bump python-kasa to 0.7.0.4 ([@sdb9696] - [#121791])
|
||||
- Add missing translations to Roborock ([@jpbede] - [#121796])
|
||||
- Fix alexa does to check `current_position` correctly when handling cover range changes ([@jbouwh] - [#121798])
|
||||
- Reolink media second lens ([@starkillerOG] - [#121800])
|
||||
- Bump PySwitchbot to 0.48.1 ([@ollo69] - [#121804])
|
||||
- Bump aiolifx to 1.0.4 ([@Djelibeybi] - [#121267])
|
||||
- Bump aiolifx to 1.0.5 ([@Djelibeybi] - [#121824])
|
||||
- Log add/remove index complete at the same level as when it starts ([@bdraco] - [#121852])
|
||||
- Fix opentherm_gw availability ([@mvn23] - [#121892])
|
||||
- Fix rainforest_raven closing device due to timeout ([@cottsay] - [#121905])
|
||||
- Fix enigma2 mute ([@tgorochowik] - [#121928])
|
||||
- Fix `configuration_url` for Shelly device using IPv6 ([@bieniu] - [#121939])
|
||||
- Narrow sqlite database corruption check to ensure disk image is malformed ([@bdraco] - [#121947])
|
||||
- Bump python-holidays to 0.53 ([@gjohansson-ST] - [#122021])
|
||||
- Mark UniFi power cycle button as unavailable if PoE is not enabled on port ([@Kane610] - [#122035])
|
||||
- Fix hive not updating when boosting ([@HarryEMartland] - [#122042])
|
||||
- Update tplink device config during reauth flow ([@sdb9696] - [#122089])
|
||||
- Prevent connecting to a Shelly device that is already connected ([@thecode] - [#122105])
|
||||
- Bump tplink dependency python-kasa to 0.7.0.5 ([@sdb9696] - [#122119])
|
||||
- Update yt-dlp to 2024.07.16 ([@cdce8p] - [#122124])
|
||||
- Fix KeyError in config flow of Bring integration ([@tr4nt0r] - [#122136])
|
||||
|
||||
[#120579]: https://github.com/home-assistant/core/pull/120579
|
||||
[#121267]: https://github.com/home-assistant/core/pull/121267
|
||||
[#121289]: https://github.com/home-assistant/core/pull/121289
|
||||
[#121482]: https://github.com/home-assistant/core/pull/121482
|
||||
[#121618]: https://github.com/home-assistant/core/pull/121618
|
||||
[#121663]: https://github.com/home-assistant/core/pull/121663
|
||||
[#121671]: https://github.com/home-assistant/core/pull/121671
|
||||
[#121684]: https://github.com/home-assistant/core/pull/121684
|
||||
[#121686]: https://github.com/home-assistant/core/pull/121686
|
||||
[#121696]: https://github.com/home-assistant/core/pull/121696
|
||||
[#121704]: https://github.com/home-assistant/core/pull/121704
|
||||
[#121709]: https://github.com/home-assistant/core/pull/121709
|
||||
[#121714]: https://github.com/home-assistant/core/pull/121714
|
||||
[#121717]: https://github.com/home-assistant/core/pull/121717
|
||||
[#121725]: https://github.com/home-assistant/core/pull/121725
|
||||
[#121729]: https://github.com/home-assistant/core/pull/121729
|
||||
[#121762]: https://github.com/home-assistant/core/pull/121762
|
||||
[#121782]: https://github.com/home-assistant/core/pull/121782
|
||||
[#121783]: https://github.com/home-assistant/core/pull/121783
|
||||
[#121785]: https://github.com/home-assistant/core/pull/121785
|
||||
[#121789]: https://github.com/home-assistant/core/pull/121789
|
||||
[#121791]: https://github.com/home-assistant/core/pull/121791
|
||||
[#121796]: https://github.com/home-assistant/core/pull/121796
|
||||
[#121798]: https://github.com/home-assistant/core/pull/121798
|
||||
[#121800]: https://github.com/home-assistant/core/pull/121800
|
||||
[#121804]: https://github.com/home-assistant/core/pull/121804
|
||||
[#121824]: https://github.com/home-assistant/core/pull/121824
|
||||
[#121852]: https://github.com/home-assistant/core/pull/121852
|
||||
[#121892]: https://github.com/home-assistant/core/pull/121892
|
||||
[#121905]: https://github.com/home-assistant/core/pull/121905
|
||||
[#121928]: https://github.com/home-assistant/core/pull/121928
|
||||
[#121939]: https://github.com/home-assistant/core/pull/121939
|
||||
[#121947]: https://github.com/home-assistant/core/pull/121947
|
||||
[#122021]: https://github.com/home-assistant/core/pull/122021
|
||||
[#122035]: https://github.com/home-assistant/core/pull/122035
|
||||
[#122042]: https://github.com/home-assistant/core/pull/122042
|
||||
[#122089]: https://github.com/home-assistant/core/pull/122089
|
||||
[#122105]: https://github.com/home-assistant/core/pull/122105
|
||||
[#122119]: https://github.com/home-assistant/core/pull/122119
|
||||
[#122124]: https://github.com/home-assistant/core/pull/122124
|
||||
[#122136]: https://github.com/home-assistant/core/pull/122136
|
||||
[@Djelibeybi]: https://github.com/Djelibeybi
|
||||
[@HarryEMartland]: https://github.com/HarryEMartland
|
||||
[@Kane610]: https://github.com/Kane610
|
||||
[@abmantis]: https://github.com/abmantis
|
||||
[@allenporter]: https://github.com/allenporter
|
||||
[@autinerd]: https://github.com/autinerd
|
||||
[@bdraco]: https://github.com/bdraco
|
||||
[@bieniu]: https://github.com/bieniu
|
||||
[@cdce8p]: https://github.com/cdce8p
|
||||
[@cottsay]: https://github.com/cottsay
|
||||
[@frenck]: https://github.com/frenck
|
||||
[@gjohansson-ST]: https://github.com/gjohansson-ST
|
||||
[@gwww]: https://github.com/gwww
|
||||
[@j-stienstra]: https://github.com/j-stienstra
|
||||
[@jbouwh]: https://github.com/jbouwh
|
||||
[@joostlek]: https://github.com/joostlek
|
||||
[@jpbede]: https://github.com/jpbede
|
||||
[@mvn23]: https://github.com/mvn23
|
||||
[@ollo69]: https://github.com/ollo69
|
||||
[@ontaptom]: https://github.com/ontaptom
|
||||
[@rokam]: https://github.com/rokam
|
||||
[@sdb9696]: https://github.com/sdb9696
|
||||
[@starkillerOG]: https://github.com/starkillerOG
|
||||
[@tgorochowik]: https://github.com/tgorochowik
|
||||
[@thecode]: https://github.com/thecode
|
||||
[@tr4nt0r]: https://github.com/tr4nt0r
|
||||
[@tronikos]: https://github.com/tronikos
|
||||
[@zweckj]: https://github.com/zweckj
|
||||
|
||||
## Release 2024.7.4 - July 30
|
||||
|
||||
- Bump `aiotractive` to 0.6.0 ([@bieniu] - [#121155])
|
||||
- Ensure mqtt subscriptions are in a set ([@jbouwh] - [#122201])
|
||||
- Add Z-Wave discovery schema for ZVIDAR roller shades ([@alexschneider] - [#122332])
|
||||
- Fix device class on sensor in ViCare ([@CFenner] - [#122334])
|
||||
- Goofle Generative AI: Fix string format ([@Shulyaka] - [#122348])
|
||||
- Ensure script llm tool name does not start with a digit ([@Shulyaka] - [#122349])
|
||||
- Bump reolink-aio to 0.9.5 ([@starkillerOG] - [#122366])
|
||||
- Fix gemini api format conversion ([@Shulyaka] - [#122403])
|
||||
- Fix typo in Matter lock platform ([@marcelveldt] - [#122536])
|
||||
- Fix target service attribute on Mastodon integration ([@andrew-codechimp] - [#122546])
|
||||
- Bump aiolifx to 1.0.6 ([@Djelibeybi] - [#122569])
|
||||
- Bump deebot-client to 8.2.0 ([@edenhaus] - [#122612])
|
||||
- Bump aiohue to version 4.7.2 ([@marcelveldt] - [#122651])
|
||||
- Return unknown when data is missing in Trafikverket Weather ([@gjohansson-ST] - [#122652])
|
||||
- Retry later on OSError during apple_tv entry setup ([@bdraco] - [#122747])
|
||||
|
||||
[#120579]: https://github.com/home-assistant/core/pull/120579
|
||||
[#121155]: https://github.com/home-assistant/core/pull/121155
|
||||
[#121289]: https://github.com/home-assistant/core/pull/121289
|
||||
[#121671]: https://github.com/home-assistant/core/pull/121671
|
||||
[#122194]: https://github.com/home-assistant/core/pull/122194
|
||||
[#122201]: https://github.com/home-assistant/core/pull/122201
|
||||
[#122332]: https://github.com/home-assistant/core/pull/122332
|
||||
[#122334]: https://github.com/home-assistant/core/pull/122334
|
||||
[#122348]: https://github.com/home-assistant/core/pull/122348
|
||||
[#122349]: https://github.com/home-assistant/core/pull/122349
|
||||
[#122366]: https://github.com/home-assistant/core/pull/122366
|
||||
[#122403]: https://github.com/home-assistant/core/pull/122403
|
||||
[#122536]: https://github.com/home-assistant/core/pull/122536
|
||||
[#122546]: https://github.com/home-assistant/core/pull/122546
|
||||
[#122569]: https://github.com/home-assistant/core/pull/122569
|
||||
[#122612]: https://github.com/home-assistant/core/pull/122612
|
||||
[#122651]: https://github.com/home-assistant/core/pull/122651
|
||||
[#122652]: https://github.com/home-assistant/core/pull/122652
|
||||
[#122747]: https://github.com/home-assistant/core/pull/122747
|
||||
[@CFenner]: https://github.com/CFenner
|
||||
[@Djelibeybi]: https://github.com/Djelibeybi
|
||||
[@Shulyaka]: https://github.com/Shulyaka
|
||||
[@alexschneider]: https://github.com/alexschneider
|
||||
[@andrew-codechimp]: https://github.com/andrew-codechimp
|
||||
[@bdraco]: https://github.com/bdraco
|
||||
[@bieniu]: https://github.com/bieniu
|
||||
[@edenhaus]: https://github.com/edenhaus
|
||||
[@frenck]: https://github.com/frenck
|
||||
[@gjohansson-ST]: https://github.com/gjohansson-ST
|
||||
[@jbouwh]: https://github.com/jbouwh
|
||||
[@marcelveldt]: https://github.com/marcelveldt
|
||||
[@starkillerOG]: https://github.com/starkillerOG
|
||||
|
||||
[#103496]: https://github.com/home-assistant/core/pull/103496
|
||||
[#104345]: https://github.com/home-assistant/core/pull/104345
|
||||
[#105134]: https://github.com/home-assistant/core/pull/105134
|
||||
|
@ -3,56 +3,54 @@ title: "Onboarding Home Assistant"
|
||||
description: "Instructions to get Home Assistant configured."
|
||||
---
|
||||
|
||||
Alright, you made it here. The tough part is done.
|
||||
After Home Assistant has been [installed](/installation/) on your device, there are 5 steps to complete setting up Home Assistant.
|
||||
|
||||
- As the last step of the [installation procedure](/installation/) specific to your device, you entered the Home Assistant device's address in your browser's address bar.
|
||||
- Typically, this is `http://homeassistant.local:8123/`.
|
||||
- If you are running an older Windows version or have a stricter network configuration, you might need to access Home Assistant at <a href="http://homeassistant:8123" target="_blank">homeassistant:8123</a> or `http://X.X.X.X:8123` (replace X.X.X.X with your device's IP address).
|
||||
|
||||
- **Result**: You now see the welcome screen. Depending on your hardware, preparation may take a while.
|
||||
1. Enter the following URL into the browser's address bar: [http://homeassistant.local:8123/](http://homeassistant.local:8123/).
|
||||
- **Result**: You now see the **Preparing Home Assistant** page. Depending on your hardware and internet connection, preparation may take a while.
|
||||
- Home Assistant downloads the latest version of {% term "Home Assistant Core" %} (about 700 MB).
|
||||
- If you ran into issues with this step, refer to the [installation troubleshooting](/installation/troubleshooting/).
|
||||
- Once preparation is finished, the welcome screen is shown.
|
||||
|
||||

|
||||
|
||||
- Depending on the preinstalled software version, you might see a slightly different version of the welcome screen.
|
||||
- To view the log files, select the pulsing blue dot.
|
||||
|
||||

|
||||
|
||||
With Home Assistant installed, it's time to set up the basics.
|
||||
|
||||
We will now create the owner's account of Home Assistant. This account is an administrator account. It will always be able to change everything.
|
||||
|
||||
1. If you want to restore from a backup of a previous installation, select **Restore from backup**.
|
||||
- Continue with the procedure on [restoring from backup](/common-tasks/os/#restoring-a-backup).
|
||||
- Ignore the rest of this procedure. The following steps describe how to create a new installation, not how to restore from backup.
|
||||
2. If this is your initial installation, select **Create my smart home**.
|
||||
3. Enter a name, username, and password.
|
||||
- Store the name, username, and password in a password manager. There is no way to recover the owner credentials.
|
||||
2. You can either create a new installation or recover an existing installation from a backup:
|
||||
- **Option 1: new installation**: If this is your initial installation, we will now create the owner's account of Home Assistant.
|
||||
- {% icon "mdi:information-outline" %} This account is an administrator account. It will always be able to change everything.
|
||||
- Select **Create my smart home**.
|
||||
- Enter a name, username, and password.
|
||||
- Make sure the username is lowercase and contains no whitespace.
|
||||
- Store the name, username, and password somewhere safe. There is no way to recover the owner credentials.
|
||||
- Select **Create account**.
|
||||
|
||||

|
||||
|
||||
4. Enter the location of your home.
|
||||
- The location is used to populate settings such as time zone, unit system, and currency.
|
||||
- It is also used for location-based information and automations: for example showing the weather-forecast, opening the shades at sunrise, or starting the vacuum when you leave the home.
|
||||
- If you'd rather not send your location, you can choose a location far away from where you live.
|
||||
- **Option 2: restore from backup**: If you want to restore a backup of a previous installation, select **Restore from backup**.
|
||||
- Ignore the rest of this procedure and continue with the procedure on [restoring from backup](/common-tasks/os/#restoring-a-backup).
|
||||
- If you have a Home Assistant Yellow, start with the [Yellow documentation on restoring from backup](https://yellow.home-assistant.io/guides/restore-backup/).
|
||||
- If you have a Home Assistant Green, start with the [Green documentation on restoring from backup](https://green.home-assistant.io/guides/restore-backup/).
|
||||
|
||||
3. Enter the location of your home.
|
||||
- The location is used to configure the time zone, unit system, and currency.
|
||||
- It is also used for automations such as showing the weather, opening the shades at sunrise, or starting the vacuum when you leave the home.
|
||||
- You can always change this information later in the settings.
|
||||
- After finding your location, select **Next**.
|
||||
|
||||

|
||||
|
||||
5. Select which information you are willing to share.
|
||||
4. Select which information you are willing to share.
|
||||
- Sharing is disabled by default. However, we would like to encourage you to share some of this data.
|
||||
- This information helps us to find out which platforms we need to support and where to focus our efforts.
|
||||
- This information helps us find out which platforms we need to support and where to focus our efforts.
|
||||
- The data is anonymized and aggregated. To see the charts we generate out of this data, take a look at our [analytics page](https://analytics.home-assistant.io/).
|
||||
- To confirm, select **Next**.
|
||||

|
||||
|
||||
6. Once you are done, select **Next**.
|
||||
- Home Assistant will then show any {% term devices %} it has discovered on your network.
|
||||
5. Check out the {% term devices %} Home Assistant has discovered on your network.
|
||||
- Don't be alarmed if you see fewer items than shown below; you can always manually add devices later.
|
||||
|
||||
- Select **Finish**.
|
||||

|
||||
|
||||
7. Finally, select **Finish**.
|
||||
- Now you're brought to the Home Assistant web interface. If some of your devices were discovered and set up automatically, this default dashboard may already show some of your devices.
|
||||
6. {% icon "mdi:party-popper" %} You’ve now got Home Assistant up and running.
|
||||
- You now see the default [dashboard](/dashboards/).
|
||||
- If some of your devices were discovered and set up automatically, this shows those devices.
|
||||
|
||||
{% include getting-started/next_step.html step="Concepts & Terminology" link="/getting-started/concepts-terminology/" %}
|
||||
|
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 13 KiB |
BIN
source/images/blog/2024-07-dashboard-chapter-2/new-badges.png
Normal file
After Width: | Height: | Size: 190 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 218 KiB |
BIN
source/images/getting-started/error_installing_ha.png
Normal file
After Width: | Height: | Size: 135 KiB |
@ -70,6 +70,14 @@ feedback: false
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a
|
||||
class="material-card highlight-blog-post"
|
||||
href="https://www.openhomefoundation.org/blog/announcing-the-open-home-foundation/"
|
||||
>
|
||||
We are a non-profit and can't be sold or acquired
|
||||
<iconify-icon icon="mdi:arrow-right-thick"></iconify-icon>
|
||||
</a>
|
||||
|
||||
<a
|
||||
class="material-card picture-promo"
|
||||
href="/blog/2019/08/06/home-assistant-cast/"
|
||||
|
@ -289,54 +289,54 @@ toc: true
|
||||
<th>Supervised<sup>1</sup></th>
|
||||
<tr>
|
||||
<td><a href="/docs/automation" target="_blank">Automations</a></td>
|
||||
<td>✅</td>
|
||||
<td>✅</td>
|
||||
<td>✅</td>
|
||||
<td>✅</td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/dashboards" target="_blank">Dashboards</a></td>
|
||||
<td>✅</td>
|
||||
<td>✅</td>
|
||||
<td>✅</td>
|
||||
<td>✅</td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/integrations" target="_blank">Integrations</a></td>
|
||||
<td>✅</td>
|
||||
<td>✅</td>
|
||||
<td>✅</td>
|
||||
<td>✅</td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/addons" target="_blank">Add-ons</a></td>
|
||||
<td>✅</td>
|
||||
<td>❌</td>
|
||||
<td>❌</td>
|
||||
<td>✅</td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
<td>{% icon "openmoji:cross-mark" %}</td>
|
||||
<td>{% icon "openmoji:cross-mark" %}</td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/docs/blueprint" target="_blank">Blueprints</a></td>
|
||||
<td>✅</td>
|
||||
<td>✅</td>
|
||||
<td>✅</td>
|
||||
<td>✅</td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
One-click updates
|
||||
</td>
|
||||
<td>✅</td>
|
||||
<td>❌</td>
|
||||
<td>❌</td>
|
||||
<td>☑️<sup>2</sup></td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
<td>{% icon "openmoji:cross-mark" %}</td>
|
||||
<td>{% icon "openmoji:cross-mark" %}</td>
|
||||
<td>{% icon "noto-v1:check-mark" %}<sup>2</sup></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/common-tasks/os/#backups" target="_blank">Backups</a></td>
|
||||
<td>✅</td>
|
||||
<td>☑️<sup>3</sup></td>
|
||||
<td>☑️<sup>3</sup></td>
|
||||
<td>✅</td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
<td>{% icon "noto-v1:check-mark" %}<sup>3</sup></td>
|
||||
<td>{% icon "noto-v1:check-mark" %}<sup>3</sup></td>
|
||||
<td>{% icon "openmoji:check-mark" %}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
@ -11,3 +11,19 @@ Included sections for this page is located under source/_includes/installation
|
||||
{% include installation/container.md %}
|
||||
{% include installation/core.md %}
|
||||
{% include installation/supervised.md %}
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### No access to the frontend
|
||||
|
||||
Symptom: You cannot open the Home Assistant page in your browser. If you are not using {% term "Home Assistant Operating System" %}, the cause may be an access restriction.
|
||||
|
||||
In newer Linux distributions, the access to a host is very limited. This means that you can't access the Home Assistant frontend that is running on a host outside of the host machine.
|
||||
|
||||
To fix this, you will need to open your machine's firewall for TCP traffic to port 8123. The method for doing this will vary depending on your operating system and the firewall you have installed. Below are some suggestions to try. Google is your friend here.
|
||||
|
||||
For UFW systems (for example, Debian):
|
||||
|
||||
```bash
|
||||
sudo ufw allow 8123/tcp
|
||||
```
|
84
source/installation/troubleshooting.markdown
Normal file
@ -0,0 +1,84 @@
|
||||
---
|
||||
title: "Troubleshooting installation problems"
|
||||
description: "Common installation problems and their solutions."
|
||||
---
|
||||
|
||||
It can happen that you run into trouble while installing and onboarding Home Assistant. This page is here to help you solve the most common problems.
|
||||
|
||||
## Can’t access Home Assistant in my browser
|
||||
|
||||
### Symptom: “This site can’t be reached”
|
||||
|
||||
When trying to access Home Assistant in the browser, the browser shows the message “This site can’t be reached”.
|
||||
|
||||
### Description
|
||||
|
||||
This means the browser can’t find your Home Assistant installation on the network.
|
||||
|
||||
### Resolution
|
||||
|
||||
To resolve this issue, try the following steps:
|
||||
|
||||
1. Make sure your Home Assistant device is powered up (LEDs are on).
|
||||
2. Make sure your Home Assistant installation is connected to the internet:
|
||||
- Make sure the Ethernet cable is plugged-in to both Home Assistant and to your router or switch.
|
||||
- Make sure your network has internet access.
|
||||
- During first startup, time will be synchronized. Ensure NTP is allowed in your network.
|
||||
- During first startup, Home Assistant completes the installation. It needs access to the following URLs:
|
||||
- version.home-assistant.io: to fetch new version information.
|
||||
- github.com: to update metadata of the add-on store.
|
||||
- ghcr.io: the GitHub container registry to fetch new Home Assistant updates.
|
||||
3. Make sure the system on which you opened the browser to access Home Assistant is connected to the same network as Home Assistant.
|
||||
- For example, if the system your Browser runs on is using Wi-Fi, make sure it is using the same Wi-Fi Home Assistant is connected to.
|
||||
4. Make sure you typed the address correctly.
|
||||
- Especially if the message includes the error code “ERR_CONNECTION_REFUSED”, it is likely that there was a typo in the port part of the URL (`:8123`).
|
||||
- Typically, the URL is [http://homeassistant.local:8123](http://homeassistant.local:8123).
|
||||
- If you are running an older Windows version or have a stricter network configuration, try [http://homeassistant:8123](http://homeassistant:8123) instead.
|
||||
5. The system might still be starting up. Wait for a couple of minutes and refresh the page.
|
||||
- Refreshing might work differently depending on your browser. Look for the refresh {% icon "mdi:refresh" %} icon, or press CTRL+R or CTRL+SHIFT+R.
|
||||
6. Check your router's web interface to see what IP address is assigned to your Home Assistant installation.
|
||||
- Enter this IP address (`http://x.x.x.x:8123`) directly into your browser.
|
||||
7. If you still can’t reach Home Assistant, connect keyboard and monitor to the device Home Assistant is running on to access the console and see where Home Assistant gets stuck.
|
||||
- If you are using a Home Assistant Green, follow these steps [to access the console](https://green.home-assistant.io/guides/use-terminal/).
|
||||
- If you are using a Home Assistant Yellow, follow these steps [to access the console from Windows](https://yellow.home-assistant.io/guides/use-serial-console-windows/), or [to access the console from Linux or macOS](https://yellow.home-assistant.io/guides/use-serial-console-linux-macos/).
|
||||
8. [Reach out to our community for help](https://www.home-assistant.io/help/).
|
||||
|
||||
## "Error installing Home Assistant"
|
||||
|
||||
### Symptom: During onboarding, there is an "Error installing Home Assistant"
|
||||
|
||||
You are in the onboarding procedure, but you get the message **Error installing Home Assistant**.
|
||||
|
||||

|
||||
|
||||
### Resolution
|
||||
|
||||
1. Make sure your network has internet access.
|
||||
- During first startup, time will be synchronized. Ensure NTP is allowed in your network.
|
||||
- During first startup, Home Assistant completes the installation. It needs access to the following URLs:
|
||||
- version.home-assistant.io: to fetch new version information.
|
||||
- github.com: to update metadata of the add-on store.
|
||||
- ghcr.io: the GitHub container registry to fetch new Home Assistant updates.
|
||||
2. After changing your network environment, wait a few minutes. Home Assistant will try to reconnect.
|
||||
3. [Reach out to our community for help](https://www.home-assistant.io/help/).
|
||||
|
||||
## Stuck at "Preparing Home Assistant"
|
||||
|
||||
### Symptom: Onboarding seems stuck at "Preparing Home Assistant"
|
||||
|
||||
You are in the onboarding procedure, but the process seems stuck at the step **Preparing Home Assistant**.
|
||||
|
||||

|
||||
|
||||
### Resolution
|
||||
|
||||
1. Select the pulsing blue dot to view the log files.
|
||||
- The log files might provide more information on the current status.
|
||||
2. Make sure your network has internet access.
|
||||
- During first startup, time will be synchronized. Ensure NTP is allowed in your network.
|
||||
- During first startup, Home Assistant completes the installation. It needs access to the following URLs:
|
||||
- version.home-assistant.io: to fetch new version information.
|
||||
- github.com: to update metadata of the add-on store.
|
||||
- ghcr.io: the GitHub container registry to fetch new Home Assistant updates.
|
||||
3. After changing your network environment, wait a few minutes. Home Assistant will try to reconnect.
|
||||
4. [Reach out to our community for help](https://www.home-assistant.io/help/).
|
@ -383,21 +383,6 @@ frontpage_image: /images/frontpage/yellow-frontpage.jpg
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="https://www.crowdsupply.com/nabu-casa/home-assistant-yellow#products" target="_blank">
|
||||
<div class="distributor">
|
||||
<div>
|
||||
<div>🇺🇸</div>
|
||||
<div>Crowd Supply</div>
|
||||
<div>Shipping from US. Yellow Kit versions only.</div>
|
||||
</div>
|
||||
<svg width="24" height="24" viewBox="0 0 24 24">
|
||||
<path
|
||||
d="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="https://www.seeedstudio.com/Home-Assistant-Yellow-Kit-with-selectable-CM4.html"
|
||||
target="_blank"
|
||||
|