Merge branch 'current' into next

This commit is contained in:
Franck Nijhof 2023-09-27 08:53:15 +02:00
commit 8e461fc637
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
199 changed files with 11402 additions and 573 deletions

View File

@ -13,7 +13,7 @@ jobs:
- name: Generate app token
id: token
# Pinned to a specific version of the action for security reasons
uses: tibdex/github-app-token@0914d50df753bbc42180d982a6550f195390069f # v2.0.0
uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a # v2.1.0
with:
app_id: ${{ secrets.PROJECTS_APP_ID }}
private_key: ${{ secrets.PROJECTS_APP_PEM }}

View File

@ -8,7 +8,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v4.0.0
uses: actions/checkout@v4.1.0
- name: Setting up Node.js
uses: actions/setup-node@v3.8.1
with:
@ -25,7 +25,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v4.0.0
uses: actions/checkout@v4.1.0
- name: Setting up Node.js
uses: actions/setup-node@v3.8.1
with:

View File

@ -24,8 +24,7 @@ GEM
http_parser.rb (~> 0)
eventmachine (1.2.7)
eventmachine (1.2.7-x64-mingw32)
ffi (1.15.5)
ffi (1.15.5-x64-mingw32)
ffi (1.16.2)
forwardable-extended (2.6.0)
google-protobuf (3.24.3)
http_parser.rb (0.8.0)
@ -110,7 +109,7 @@ GEM
stringex (2.8.6)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
tilt (2.2.0)
tilt (2.3.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
tzinfo-data (1.2023.3)

View File

@ -110,8 +110,8 @@ social:
# Home Assistant release details
current_major_version: 2023
current_minor_version: 9
current_patch_version: 2
date_released: 2023-09-12
current_patch_version: 3
date_released: 2023-09-24
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.

2803
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -3,8 +3,8 @@
"description": "Home Assistant Website & Documentation",
"version": "1.0.0",
"devDependencies": {
"remark-cli": "^11.0.0",
"remark-frontmatter": "^4.0.1",
"remark-cli": "^12.0.0",
"remark-frontmatter": "^5.0.0",
"remark-lint": "^9.1.2",
"remark-lint-fenced-code-flag": "^3.1.2",
"remark-lint-heading-increment": "^3.1.2",
@ -14,7 +14,7 @@
"remark-lint-ordered-list-marker-value": "^3.1.2",
"remark-lint-prohibited-strings": "^3.1.0",
"remark-lint-unordered-list-marker-style": "^3.1.2",
"remark-stringify": "^10.0.3",
"remark-stringify": "^11.0.0",
"textlint": "^13.3.3",
"textlint-filter-rule-comments": "^1.2.2",
"textlint-rule-common-misspellings": "^1.0.1",

View File

@ -2,7 +2,7 @@ $noise-bg: image-url('noise.png') top left !default;
$img-border: inline-image('dotted-border.png') !default;
// Main Link Colors
$link-color: lighten(#165b94, 3) !default;
$link-color: #1abcf2 !default;
$link-color-hover: adjust-color($link-color, $lightness: 10, $saturation: 25) !default;
$link-color-visited: adjust-color($link-color, $hue: 80, $lightness: -4) !default;
$link-color-active: adjust-color($link-color-hover, $lightness: -15) !default;

View File

@ -43,7 +43,7 @@ $footer-bg-back: #fff;
$main-bg: #fff;
$page-bg: #fff;
$link-color: #268bd2;
$link-color: #1abcf2;
$nav-color: $link-color;
$link-color-visited:darken($nav-color, 25);
$title-color: $link-color;

View File

@ -824,7 +824,7 @@ $ha__primary_color: #03a9f4;
.dialog-header {
display: flex;
justify-content: space-between;
padding: 8px 16px;
padding: 24px 24px 0px;
font-weight: bold;
font-size: 24px;
@ -843,7 +843,7 @@ $ha__primary_color: #03a9f4;
width: 100%;
display: flex;
justify-content: space-between;
padding: 8px 16px;
padding: 16px 24px;
color: #222222;
margin: auto;

View File

@ -1,6 +1,6 @@
@charset "UTF-8";
$primary-color: #049cdb;
$primary-color: #1abcf2;
.site-header {
position: relative;
@ -459,7 +459,7 @@ dt:hover a.title-link {
img {
border-radius: 3px;
width: 36px;
height: 36px;
margin-right: 10px;
}
@ -636,12 +636,24 @@ div.note {
img {
vertical-align: middle;
height: 120px;
}
i {
font-size: 2em;
padding: 0 5px;
}
.icons {
display: flex;
align-items: center;
svg {
height: 48px;
padding: 10px 4px;
fill: currentColor;
}
}
}
ul {

View File

@ -19,7 +19,7 @@ $white: #fff !default;
// Accent colors
// -------------------------
$blue: #049cdb !default;
$blue: #1abcf2 !default;
$blueDark: #0064cd !default;
$green: #46a546 !default;
$red: #9d261d !default;

View File

@ -8,9 +8,6 @@ body, html {
a {
color: $link-color;
text-decoration: none;
&:visited {
color: darken($link-color, 10%);
}
.menu & {
color: $link-color;
}

View File

@ -3,7 +3,7 @@ body > header {
h1 {
display: inline-block;
margin: 0;
a, a:visited, a:hover {
a, a:hover {
color: $title_color;
text-decoration: none;
}

View File

@ -21,3 +21,22 @@ Home Assistant is an open platform and so home energy management is not restrict
If you have a sensor that returns instantaneous power readings (W or kW), then to add a sensor that returns energy usage or generation (kWh) refer to [Riemann sum integral integration](/integrations/integration/#energy)
<img src='/images/docs/energy/energy-overview.png' alt='Visual representation of how all different energy forms relate.' style='border: 0;box-shadow: none;'>
## Troubleshooting missing entities
### Condition
You are trying to add a sensor to the energy dashboard, but it does not appear in the selection list.
### Resolution
To find out why the sensor is not showing, check the following points:
- The sensor must have the appropriate attributes. Check your entity attributes in {% my developer_states title="**Developer Tools** > **States**" %} to confirm the following:
- `device_class` must be `energy` for electricity grid, solar, or battery categories. It must be `gas` for gas, or `water` for water.
- `state_class` must be `total` or `total_increasing`.
- The sensor must have an appropriate `unit_of_measurement`. See the help text for each category to see which units are accepted. Units containing an exponent must match superscript characters exactly as defined, e.g. `m³` is accepted, `m3` is not.
If any of the attributes are not correct, please open an issue against the integration that provides your sensor, or if you are developing custom template sensors, make sure the templates have the correct settings.
- The entity must be a `sensor`. If you are trying to add something from another domain (for example an `input_number`), then you must first create a template sensor from it.
- The entity must not have any statistics errors. Go to {% my developer_statistics title="**Developer Tools** > **Statistics**" %} to check your specific entity. If your unit has a listed issue here, you must fix the issue before it can be added to the dashboard.

View File

@ -10,16 +10,28 @@ or need to recover your data.
### Home Assistant (including Supervised)
If you are still logged in to the web interface with your user, then you are in luck. Add a new user as an administrator and give the new user a password you can remember. Then log out, and log in with this new user. You may then reset your password via this new administrator account (and then delete this new account), or you can delete your old user account. Either way, your configuration will remain, and you don't have to do a new onboarding process.
If you are still logged in to the web interface with your user, then you are in luck.
1. Add a new user as an administrator and give the new user a password you can remember.
2. Then log out, and log in with this new user.
3. Reset your password via this new administrator account (and then delete this new account).
- Your configuration will remain, and you don't have to do a new onboarding process.
If youve forgotten your username, then deleting the files mentioned further below will be necessary to start a new onboarding process.
#### To reset a user's password, via console
If you know the username, but not the password and you can access the [Home Assistant console](https://www.home-assistant.io/hassio/commandline/) and use the command below:
Connect a keyboard and monitor to your device.
Use this procedure if you know the username, and you can access the [Home Assistant console](/hassio/commandline/) on the device itself (not the SSH terminal from the add-ons).
`auth reset --username existing_user --password new_password`
1. Connect a keyboard and monitor to your device and access the terminal:
- If you are using a Home Assistant Yellow, refer to the following procedure:
- [Using the serial console on Windows](https://yellow.home-assistant.io/guides/use-serial-console-windows/)
- [Using the serial console on macOS / Linux](https://yellow.home-assistant.io/guides/use-serial-console-linux-macos/)
- If you are using a Home Assistant Green, refer to the following procedure:
- [Using the terminal](https://green.home-assistant.io/guides/use-terminal/)
2. Once you have opened the Home Assistant command line, enter the following command:
`auth reset --username existing_user --password new_password`
3. You can now log in to Home Assistant using this new password.
#### To reset a user's password, via the container command line
@ -29,28 +41,24 @@ If you are running Home Assistant in a container, you can use the command line i
2. `hass` to create a default user, if this is your first time using the tool
3. `hass --script auth --config /config change_password existing_user new_password` to change the password
4. `exit` to exit the container command line
5. `docker restart homeassistant` to restart the container
5. `docker restart homeassistant` to restart the container.
#### To reset a user's password, as an administrator via the web interface
1. Confirm that you have "Advanced Mode" activated on your "Profile" page.
2. Click "Settings" in the sidebar.
3. Scroll down to "Users", and click in to that section.
4. Click on the user, this should bring up a dialog box.
5. At the bottom of the dialog box, click "Change Password".
- If you do not see the "Change Password" button, try using another interface, such as the mobile version.
6. Enter the new password, and then click "OK".
7. Confirm the new password by entering it again, and then click "OK" again.
8. A confirmation box will be displayed with the text "Password was changed successfully".
1. In the bottom left, select your user to go to the {% my profile title="**Profile**" %} page and make sure **Advanced Mode** is activated.
2. Go to {% my people title="**Settings** > **People**" %} and select the person for which you want to change the password.
3. At the bottom of the dialog box, select **Change Password**.
4. Enter the new password, and select **OK**.
5. Confirm the new password by entering it again, and select **OK** again.
6. A confirmation box will be displayed with the text **Password was changed successfully**.
#### To delete a user, as an administrator via the web interface
1. Click "Settings" in the sidebar.
2. Scroll down to "Users", and click in to that section.
3. Click on the user, this should bring up a dialog box.
4. At the bottom of the dialog box, click "Delete User".
5. A confirmation dialog box will be displayed, asking "Are you sure you want to delete <User>"?
6. Click "OK".
1. Go to {% my people title="**Settings** > **People**" %} and select the person which you want to delete.
- Note: you cannot delete the owner.
2. At the bottom of the dialog box, select **Delete**.
- A confirmation dialog box will be displayed.
3. To confirm, select **OK**.
#### Start a new onboarding process
@ -95,4 +103,4 @@ These are easily accessed using another Linux machine with EXT support.
For Windows or macOS you will need third party software. Below are some options.
- Windows: <https://www.diskinternals.com/linux-reader/> (read-only access to the SD)
- Mac: <https://osxfuse.github.io/>
- macOS: <https://osxfuse.github.io/>

View File

@ -12,6 +12,15 @@ A full backup includes the following directories:
A partial backup consists of any number of the above default directories and installed add-ons.
### Preparing for a backup
1. Before creating a backup, check if you can reduce the size of the backup.
- Check if your configuration directory contains a large database file. Go to **{% my system_health title="Settings > System > Repairs" %}**. From the three dot menu, select **System information** and under the **Recorder** section, look for the **Estimated Database Size (MiB)**.
- By default, the data is kept for 10 days. If you have modified that to a longer period, check the [`recorder`](/integrations/recorder/) integration page for options to keep your database data down to a size that won't cause issues.
- Note the keep days, purge interval, and include/exclude options.
- If you have add-ons installed that you no longer use, uninstall those add-ons. Some add-ons require quite a bit of space.
2. Old backups are not included in the backup. However, while you are here, you could delete all old and unneeded backups.
### Making a backup from the UI
1. Go to {% my supervisor_backups title="**Settings** > **System** > **Backups**" %} in the UI.
@ -57,19 +66,62 @@ There are multiple ways to store the backup on another device:
### Restoring a backup
You can make use of backup which you have copied off of a previous install to restore to a new installation during the onboarding process. Follow the link at the bottom of the account creation page to upload your backup from the previous installation.
There are two ways to use a backup:
For restoring a backup at any other time, visit the Supervisor backup panel in your UI and use the following steps:
- On your current system to recover your settings.
- During onboarding, to migrate your setup to a new device or a to device on which you performed a factory reset and a new installation.
1. Select "Upload Backup" from the icon in the upper right of the page.
2. Click on the folder icon to navigate to your backup .tar file and select it.
#### Estimated duration
When the upload is completed, you will be presented with the backup restore dialog for restoring it, and can then choose to restore in full or in part by manually selecting individual items.
The time it takes to restore a backup depends on your installation. Home Assistant Core and all add-ons are being reinstalled. For a larger installation, this process can take about 45 minutes.
If the backup you are uploading is more than 1GB in size, it can be faster and more efficient to make use of the Samba add-on in order to transfer files to the `/backup` directory.
#### Restoring a backup during onboarding
The length of time it takes to create or restore backup will depend on how much you have to compress or decompress.
You can use a backup during the onboarding process to restore your configuration.
If you're looking to slim down your backup, check if your configuration directory contains a large database file (`home-assistant_v2.db`). See the [`recorder`](/integrations/recorder/) integration page for options to keep your database data down to a size that won't cause issues. Note the keep days, purge interval, and include/exclude options.
**Migration**: This procedure also works if you want to migrate from one device to another. In that case, use the backup of the old device on the new device. The target device can be a different device type. For example, you can migrate from a Raspberry&nbsp;Pi to another device.
When the restore is complete, Home Assistant will restart to apply the new settings. You will lose the connection to the UI and it will return once the restart is completed.
##### Prerequisites
- This procedure assumes you have already completed the [installation](/installation/) procedure on your target device and are now viewing the welcome screen as part of the [onboarding](/getting-started/onboarding/).
- The login credentials of the device from which you made the backup.
- If you migrate the installation to a new device, make sure the new device has more storage capacity than the existing device.
- Before migrating, on the old system, check how much storage you used.
- Go to **{% my system_health title="Settings > System > Repairs -> ... -> System Information" %}**, and under **Home Assistant Supervisor**, look at the **Disk used** value.
- The target device must have more free space than the source device.
- If your target device is a Home Assistant Yellow, note that it is the size of the eMMC that is relevant.
- The restore process mainly uses the eMMC, not the NVMe.
- If you are migrating to a new device:
- You do not need to transfer the backup to a USB or SD card to bring it to your device.
- You will be able to upload the backup file from the device you are accessing the onboarding from.
##### To restore a backup during onboarding
1. If you are migrating to a new device and you had controllers or radios connected (such as a Z-Wave stick or SkyConnect):
- make sure to plug them into the new device.
2. After Home Assistant has been installed, on the welcome screen, select **Restore from backup**.
- Then, select **Upload backup**.
- The file explorer opens on the device on which you are viewing the Home Assistant User interface.
- You can access any connected network drive from there.
3. Select the backup file, then, in the dialog, select **Full backup** and **Restore**.
- The restore may take a while, depending on the amount of data.
- To see if the restore is complete, reload the page from time to time.
- If your previous installation had certificates enabled directly for the [`http` integration](/integrations/http), when the restore is complete, it will no longer respond to `http://` requests. In this case, use `https://` (added `s`) instead.
4. On the login screen, enter the credentials of the system from which you took the backup.
- Your dashboard should show all the elements as they were when you created the backup.
- If some devices are shown as unavailable, you may need to wake the battery powered devices.
5. If you had [network storage](/common-tasks/os/#network-storage) connected on the previous system, you may need to reconnect those.
6. If you had Zigbee devices, and you migrated to a new device with its own Zigbee radio built-in:
- Because this is now a different Zigbee radio, you need to [migrate Zigbee](/integrations/zha/#migrating-to-a-new-zigbee-coordinator-adapter-inside-zha).
#### To restore a backup on your current system
1. Go to **{% my backup title="Settings > System > Backups" %}**.
2. From the list of backups, select the backup from which you want to restore.
3. If you want to restore the complete configuration with all directories and add-ons, select **Full backup**.
4. If you only want to restore specific elements, select **Partial backup**.
- From the list, select the installation, folders, and add-ons you want to restore.
5. Select **Restore**.
- This may take a while, depending on how much you have to compress or decompress.
6. Once the restore is complete, Home Assistant restarts to apply the new settings.
- You will lose the connection to the UI and it will return once the restart is completed.

View File

@ -26,7 +26,7 @@ If you want to define a specific interval at which your device is being polled f
action:
- service: homeassistant.update_entity
target:
entity_id: weather.home
entity_id: weather.home
```
4. Save your new automation to poll for data.

View File

@ -1,3 +1,3 @@
## Lost Password and password reset
Please refer to the [I'm locked out!](https://www.home-assistant.io/docs/locked_out/#home-assistant-including-supervised) documentation page.
Please refer to the [I'm locked out!](/docs/locked_out/#home-assistant-including-supervised) documentation page.

View File

@ -3,8 +3,19 @@
{{ site.description }}
</p>
{%- assign tot = 0 -%}
{%- for comp in site.integrations -%}
{%- if comp.ha_category -%}
{%- if comp.ha_category.first -%}
{%- assign tot = tot | plus: comp.ha_category.size -%}
{%- else -%}
{%- assign tot = tot | plus: 1 -%}
{%- endif -%}
{%- endif %}
{%- endfor -%}
<p class='hero-buttons'>
<a href='/getting-started/'>Get started</a>
<a href='https://demo.home-assistant.io' target='_blank'>View demo</a>
<a href='/integrations/'>Browse 1900+ integrations</a>
</p>
<a href='/integrations/'>Browse {{ tot | minus: 1 | divided_by: 100 | round | times: 100 }}+ integrations</a>
</p>

View File

@ -2,36 +2,92 @@
<div class="grid">
<div class="grid__item">
<div class="copyright grid">
<div class='company grid__item one-third lap-one-half palm-one-whole'>
<div class="company grid__item one-third lap-one-half palm-one-whole">
<div class="title">
<img width="40" src="/images/favicon-192x192-full.png" alt="Home Assistant"> Home Assistant
<img
src="/images/home-assistant-logo-vertical.svg"
height="120"
alt="Home Assistant"
/>
</div>
<div class="icons">
<a rel="me" href='https://twitter.com/home_assistant' title="Twitter"><i class="icon-twitter"></i></a>
<a rel="me" href='https://www.facebook.com/homeassistantio' title="Facebook"><i class="icon-facebook"></i></a>
<a rel="me" href='https://github.com/home-assistant/core' title="GitHub"><i class="icon-github"></i></a>
<a
rel="me"
href="https://twitter.com/home_assistant"
title="Twitter"
target="_blank"
><i class="icon-twitter"></i
></a>
<a
rel="me"
href="https://fosstodon.org/@homeassistant"
title="Mastodon"
target="_blank"
><svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 216.4144 232.00976"
alt="Mastodon"
>
<path
d="M211.80734 139.0875c-3.18125 16.36625-28.4925 34.2775-57.5625 37.74875-15.15875 1.80875-30.08375 3.47125-45.99875 2.74125-26.0275-1.1925-46.565-6.2125-46.565-6.2125 0 2.53375.15625 4.94625.46875 7.2025 3.38375 25.68625 25.47 27.225 46.39125 27.9425 21.11625.7225 39.91875-5.20625 39.91875-5.20625l.8675 19.09s-14.77 7.93125-41.08125 9.39c-14.50875.7975-32.52375-.365-53.50625-5.91875C9.23234 213.82 1.40609 165.31125.20859 116.09125c-.365-14.61375-.14-28.39375-.14-39.91875 0-50.33 32.97625-65.0825 32.97625-65.0825C49.67234 3.45375 78.20359.2425 107.86484 0h.72875c29.66125.2425 58.21125 3.45375 74.8375 11.09 0 0 32.975 14.7525 32.975 65.0825 0 0 .41375 37.13375-4.59875 62.915"
/>
<path
fill="#fff"
d="M177.50984 80.077v60.94125h-24.14375v-59.15c0-12.46875-5.24625-18.7975-15.74-18.7975-11.6025 0-17.4175 7.5075-17.4175 22.3525v32.37625H96.20734V85.42325c0-14.845-5.81625-22.3525-17.41875-22.3525-10.49375 0-15.74 6.32875-15.74 18.7975v59.15H38.90484V80.077c0-12.455 3.17125-22.3525 9.54125-29.675 6.56875-7.3225 15.17125-11.07625 25.85-11.07625 12.355 0 21.71125 4.74875 27.8975 14.2475l6.01375 10.08125 6.015-10.08125c6.185-9.49875 15.54125-14.2475 27.8975-14.2475 10.6775 0 19.28 3.75375 25.85 11.07625 6.36875 7.3225 9.54 17.22 9.54 29.675"
/>
</svg>
</a>
<a
rel="me"
href="https://www.facebook.com/homeassistantio"
title="Facebook"
target="_blank"
><i class="icon-facebook"></i
></a>
<a
rel="me"
href="https://github.com/home-assistant/home-assistant"
title="GitHub"
target="_blank"
><i class="icon-github"></i
></a>
</div>
</div>
<div class='grid__item one-third lap-one-half palm-one-whole'>
<div class="grid__item one-third lap-one-half palm-one-whole">
<ul>
<li><a href='https://alerts.home-assistant.io'>Home Assistant Alerts</a></li>
<li><a href='https://developers.home-assistant.io'>Developers</a></li>
<li><a href='https://data.home-assistant.io'>Data Science</a></li>
<li><a href='https://community.home-assistant.io'>Community Forum</a></li>
<li><a href='mailto:hello@home-assistant.io'>Contact</a> (no support!)</li>
<li><a href='/security/'>Security Vulnerabilities</a></li>
<li><a href='/privacy/'>Privacy</a></li>
<li><a href='https://status.home-assistant.io'>System Status</a></li>
<li>
<a href="https://alerts.home-assistant.io"
>Home Assistant Alerts</a
>
</li>
<li>
<a href="https://developers.home-assistant.io">Developers</a>
</li>
<li><a href="https://data.home-assistant.io">Data Science</a></li>
<li>
<a href="https://community.home-assistant.io">Community Forum</a>
</li>
<li>
<a href="mailto:hello@home-assistant.io">Contact</a> (no support!)
</li>
<li><a href="/security/">Security Vulnerabilities</a></li>
<li><a href="/privacy/">Privacy</a></li>
<li>
<a href="https://status.home-assistant.io">System Status</a>
</li>
</ul>
</div>
<div class='grid__item one-third lap-one-half palm-one-whole'>
Website powered by <a href='https://jekyllrb.com/'>Jekyll</a> and the
<a href='https://github.com/coogie/oscailte'>Oscailte theme</a>.<br />
<div class="grid__item one-third lap-one-half palm-one-whole">
Website powered by <a href="https://jekyllrb.com/">Jekyll</a> and the
<a href="https://github.com/coogie/oscailte">Oscailte theme</a>.<br />
<br />
<a href="https://www.netlify.com">
<img src="/images/frontpage/netlify.svg" alt="Deploys by Netlify Badge"/>
<img
src="/images/frontpage/netlify.svg"
alt="Deploys by Netlify Badge"
/>
</a>
</div>
</div>

View File

@ -4,11 +4,9 @@
<a href="/" class="site-title">
<img
src="/images/home-assistant-logo.svg"
width="36"
height="36"
alt="Home Assistant"
/>
<span>{{ site.title }}</span>
</a>
</div>

View File

@ -121,3 +121,25 @@ Say with break:
Amazon Polly
</speak>
```
## Advanced usage
Amazon Polly supports accented bilingual voices and you may find that you'd prefer the voice you like be slowed down, or speeded up. If the speed of the voice is a concern, Amazon Polly provides the ability to modify this using SSML tags. First enable SSML in configuration:
```yaml
- platform: amazon_polly
...
text_type: ssml
...
```
Note: You now need to enclose all new and previous TTS input within the `<speak></speak>` tags. To use SSML in automation, you can follow these steps, for instance:
```yaml
service: tts.amazon_polly_say
data:
cache: true
entity_id: media_player.mpd
message: >-
<speak> <prosody rate="75%">나는 <prosody rate="75%">천천히</prosody> <lang
xml:lang="fr-FR">parle</lang>.하고 있다식기세척!</speak>
language: ko-KR
```

View File

@ -19,6 +19,12 @@ The Bluetooth integration will detect nearby Bluetooth devices. Discovered devic
{% include integrations/config_flow.md %}
## Before you begin
In many cases, a better approach than a directly connected adapter or card is to use a Bluetooth proxy using an ESP32 since Linux kernel updates have previously broken Bluetooth functionality and Bluetooth driver support Linux generally falls behind other operating systems for newer adapters. A Bluetooth proxy is particularly interesting to users who virtualize their instance, where the USB pass-through may cause additional problems. More information is available in the Remote Adapters section below or by visiting ESPhome's [Bluetooth proxy page](https://esphome.github.io/bluetooth-proxies/).
Suppose a Bluetooth proxy is not a good fit for your use case. Consider using the Home Assistant Operating System when using a local adapter because it includes Bluetooth patches for issues unsolved in other operating systems.
## Configuration
While this integration is part of [`default_config:`](/integrations/default_config/) to enable automatic discovery of the Bluetooth Adapter, it will only be enabled by setting up the configuration flow, or manually adding it to your `configuration.yaml`.

View File

@ -48,6 +48,7 @@ Known supported devices:
- Denon AVR-X4400H
- Denon AVR-X4500H
- Denon AVR-X4700H
- Denon AVC-X4800H
- Denon AVR-X6500H
- Denon AVR-X6700H
- Denon AVR-X7200W

View File

@ -87,6 +87,7 @@ $ docker run --device /dev/ttyUSB0:/dev/ttyUSB0 -d --name="home-assistant" -v /h
- [ser2net](https://ser2net.sourceforge.net)
- [Smart Meter bridge](https://github.com/legolasbo/smartmeterBridge)
- [WIZnet WIZ110SR](https://www.wiznet.io/product-item/wiz110sr/)
- [esp8266 espeasy (Poluket)](https://www.domohab.be/produit/kit-complet-passerelle-compteur/) (create for Sagemcom T211 model in Belgium)
DIY solutions (ESP8266 based):
@ -94,6 +95,7 @@ DIY solutions (ESP8266 based):
- [DSMR reader for ESPHome (mmakaay)](https://github.com/mmakaay/dsmr-reader-for-esphome)
- [p1-esp8266 (DavyLandman)](https://github.com/DavyLandman/p1-esp8266) (turn ESP8266 into a serial forwarder)
{% include integrations/config_flow.md %}
Optional configuration example for ser2net 3.x.x:

View File

@ -2,7 +2,7 @@
title: Event
description: Instructions on how to use event entities in Home Assistant.
ha_category:
- Events
- Event
ha_release: 2023.8
ha_quality_scale: internal
ha_domain: event

View File

@ -2,7 +2,7 @@
title: "MQTT Event"
description: "Instructions on how to integrate MQTT events into Home Assistant."
ha_category:
- Events
- Event
ha_release: 2023.8
ha_iot_class: Configurable
ha_domain: mqtt
@ -19,6 +19,8 @@ The `mqtt` event platform allows you to process event info from an MQTT message.
mqtt:
- event:
state_topic: "home/doorbell/state"
event_types:
- press
```
{% configuration %}

View File

@ -177,7 +177,7 @@ version: '3.7'
services:
homeassistant:
image: ghrc.io/homeassistant/home-assistant:stable
image: ghcr.io/homeassistant/home-assistant:stable
volumes:
- config:/config/
- /dev/input:/dev/input/ # this is needed to read input events.

View File

@ -159,7 +159,7 @@ optimistic:
description: Flag that defines if the lawn mower works in optimistic mode.
required: false
type: boolean
default: "`true` if no `state_topic` defined, else `false`."
default: "`true` if no `activity_state_topic` defined, else `false`."
pause_command_template:
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `pause_command_topic`. The `value` parameter in the template will be set to `pause`.
required: false

View File

@ -154,17 +154,17 @@ This method will allow you to share a device that was added to Google Home to Ho
## Experiment with Matter using a ESP32 dev board
You do not yet have any Matter-compatible hardware but you do like to try it out or maybe create your own DIY Matter device? We have [prepared a page for you](https://nabucasa.github.io/matter-example-apps/) where you can easily flash Matter firmware to a supported ESP32 development board. We recommend the M5 Stamp C3 device running the Lightning app.
You do not yet have any Matter-compatible hardware but you do like to try it out or maybe create your own DIY Matter device? We have [prepared a page for you](https://nabucasa.github.io/matter-example-apps/) where you can easily flash Matter firmware to a supported ESP32 development board. We recommend the M5 Stamp C3 device running the Lighting app.
NOTE for Android users: You need to follow the instructions at the bottom of the page to add the test device to the Google developer console, otherwise commissioning will fail. iOS users will not have this issue but they will get a prompt during commissioning asking if you trust the development device.
1. Make sure you use Google Chrome or Microsoft Edge browser.
2. Open https://nabucasa.github.io/matter-example-apps/
3. Attach the ESP32 device using a USB cable.
4. Select the radio button next to the example you like to set up, in case of an M5 Stamp, click **Lightning app for M5STAMP C3**.
4. Select the radio button next to the example you like to set up, in case of an M5 Stamp, click **Lighting app for M5STAMP C3**.
5. Select **Connect**.
6. In the popup dialog that appears, choose the correct serial device. This will usually be something like "cu-usbserial" or alike.
7. Click **Install Matter Lightning app example** and let it install the firmware on the device. This will take a few minutes.
7. Click **Install Matter Lighting app example** and let it install the firmware on the device. This will take a few minutes.
8. Once the device is flashed with the Matter firmware, connect to the device again but this time choose **Logs & console**.
9. You are presented with a console interface where you see live logging of events. This is an interactive shell where you can type commands. For a list of all commands, type **matter help** and press enter.
10. To add the device, we need the QR code. In the console, type in `matter onboardingcodes ble` and copy/paste the URL into your browser.

View File

@ -76,7 +76,7 @@ Health effects may occur in asthmatics and people with other respiratory disease
Sensitive groups in the population can have health effects. Respiratory irritation and discomfort may occur in healthy subjects. People with heart or respiratory distress should reduce outdoor activity and not stay in the most polluted areas.
Source: [Explanations in Norwegian](http://www.luftkvalitet.info/home/Varslingsklasser.aspx)
Source: [Health Recommendations and Pollution Classes](https://luftkvalitet.miljodirektoratet.no/artikkel/en/articles/health-recommendations-and-pollution-classes/)
## Available areas

View File

@ -92,7 +92,11 @@ component_config_glob:
type: string
description: Metric name to use instead of unit or default metric. This will store all data points in a single metric.
required: false
requires_auth:
type: boolean
description: "This makes authentication optional for the `/api/prometheus` endpoint."
required: false
default: true
{% endconfiguration %}
### Configure Filter

View File

@ -117,7 +117,7 @@ Restrict any and all watering activities from staring for a time period.
### `rainmachine.start_program`
Start a RainnMachine program.
Start a RainMachine program.
### `rainmachine.start_zone`

View File

@ -220,7 +220,7 @@ The following models have been tested and confirmed to work:
- [RLN36 NVR](https://reolink.com/product/rln36/)
- [Reolink Duo WiFi](https://reolink.com/product/reolink-duo-wifi-v1/)
- [Reolink Duo 2 WiFi](https://reolink.com/product/reolink-duo-wifi/)
- [Reolink Duo Floodlight PoE](https://reolink.com/product/reolink-duo-floodlight-poe/)
- Reolink Duo Floodlight ([PoE](https://reolink.com/product/reolink-duo-floodlight-poe/) and [Wi-Fi](https://reolink.com/product/reolink-duo-floodlight-wifi/))
- Reolink TrackMix ([PoE](https://reolink.com/product/reolink-trackmix-poe/) and [Wi-Fi](https://reolink.com/product/reolink-trackmix-wifi/))
- Reolink Video Doorbell ([PoE](https://reolink.com/product/reolink-video-doorbell/) and [Wi-Fi](https://reolink.com/product/reolink-video-doorbell-wifi/))

View File

@ -138,7 +138,7 @@ We plan to make the process simpler in the future, but for now, it is a multi-st
3. Search your logs for 'Got home data' and find the attribute rooms.
4. Write the rooms down; they have a name and 6 digit ID.
5. Go to {% my developer_call_service service="vacuum.send_command" title="**Developer Tools** > **Services** > **Vacuum: Send Command**" %}. Select your vacuum as the entity and `get_room_mapping` as the command.
6. Go back to your logs and look at the response to `get_room_mapping`. This is a list of the 6-digit IDs you saw earlier to 2-digit IDs. In your original list of room names and 6-digit IDs, replace the 6-digit ID with its pairing 2-digit ID.
6. Go back to your logs and look at the response to `get_room_mapping`. This is a list of the 6-digit IDs you saw earlier to 2-digit IDs (use the first number, for instance `16` in `[16, '14000663', 12]` ([internal room id, unique room id, room type])). In your original list of room names and 6-digit IDs, replace the 6-digit ID with its pairing 2-digit ID.
7. Now, you have the 2-digit ID that your vacuum uses to describe a room.
8. Go back to {% my developer_call_service service="vacuum.send_command" title="**Developer Tools** > **Services** > **Vacuum: Send Command**" %} then type `app_segment_clean` as your command and `segments` with a list of the 2-digit IDs you want to clean. Then, add `repeat` with a number (ranging from 1 to 3) to determine how many times you want to clean these areas.

View File

@ -58,7 +58,7 @@ If you want to add cameras from [Surveillance Station](https://www.synology.com/
### If you utilize 2-Step Verification or Two Factor Authentication (2FA) with your Synology NAS
If you have the "Enforce 2-step verification for the following users" option checked under **Control Panel > User > Advanced > 2-Step Verification**, you'll need to configure the 2-step verification/one-time password (OTP) for the user you just created before the credentials for this user will work with Home Assistant.
If you have the "Enforce 2-step verification for the following users" option checked under **Control Panel > Security > Account > 2-Factor Authentication**, you'll need to configure the 2-step verification/one-time password (OTP) for the user you just created before the credentials for this user will work with Home Assistant.
Make sure to log out of your "normal" user's account and then login with the separate user you created specifically for Home Assistant. DSM will walk you through the process of setting up the one-time password for this user which you'll then be able to use in Home Assistant's frontend configuration screen.

View File

@ -49,10 +49,20 @@ Sensors, binary (on/off) sensors, buttons, images, numbers and selects are cover
- [Vacuum](/integrations/vacuum.template/)
- [Weather](/integrations/weather.template/)
Sensor, binary sensor, button, image, number and select template entities are defined in your YAML configuration files, directly under the `template:` key and cannot be configured via the UI. You can define multiple configuration blocks as a list. Each block defines sensor/binary sensor/number/select entities and can contain an optional update trigger.
Sensor and binary sensor can be configured using [UI](#ui-configuration) or [YAML](#yaml-configuration) file.
Button, image, number, and select template entities are defined in your YAML configuration files under the `template:` key and cannot be configured via the UI. You can define multiple configuration blocks as a list. Each block defines sensor/binary sensor/number/select entities and can contain an optional update trigger.
_For old sensor/binary sensor configuration format, [see below](#legacy-binary-sensor-configuration-format)._
# UI configuration
Sensor template and binary sensor template can be configured using the user interface at **{% my helpers title="Settings > Devices & Services > Helpers" %}**. Select the **+ Add helper** button and then select the **{% my config_flow_start domain=input_datetime title="Template" %}** helper.
To be able to add **{% my helpers title="Helpers" %}** via the user interface, you should have `default_config:` in your `configuration.yaml`. It should already be there by default unless you removed it.
# YAML configuration
## State-based template binary sensors, buttons, images, numbers, selects and sensors
Template entities will by default update as soon as any of the referenced data in the template updates.
@ -305,6 +315,11 @@ template:
[trigger-doc]: /docs/automation/trigger
### Video Tutorial
This video tutorial explains how to set up a Trigger based template that makes use of an action to retrieve the weather forecast (precipitation).
<lite-youtube videoid="zrWqDjaRBf0" videotitle="How to create Action Template Sensors in Home Assistant" posterquality="maxresdefault"></lite-youtube>
## Template and action variables
State-based and trigger-based template entities have the special template variable `this` available in their templates and actions. The `this` variable is the [state object](/docs/configuration/state_object) of the entity and aids [self-referencing](#self-referencing) of an entity's state and attribute in templates and actions. Trigger-based entities also provide [the trigger data](/docs/automation/templating/).

View File

@ -20,7 +20,7 @@ Supported devices:
- [RX-V573](https://ca.yamaha.com/en/products/audio_visual/av_receivers_amps/rx-v573/specs.html)
- [RX-V585](https://ca.yamaha.com/en/products/audio_visual/av_receivers_amps/rx-v585_u/specs.html)
- [RX-V673](https://ca.yamaha.com/en/products/audio_visual/av_receivers_amps/rx-v673/specs.html)
- [RX-V685](https://ca.yamaha.com/en/products/audio_visual/av_receivers_amps/rx-v585_u/specs.html)
- [RX-V685](https://ca.yamaha.com/en/products/audio_visual/av_receivers_amps/rx-v685_u/specs.html)
- [RX-V773](https://ca.yamaha.com/en/products/audio_visual/av_receivers_amps/rx-v773/specs.html)
- [RX-V3067](https://ca.yamaha.com/en/products/audio_visual/av_receivers_amps/rx-v3067/specs.html)
- And more
@ -69,6 +69,7 @@ zone_names:
- The `play_media` service is implemented for `NET RADIO` source
only. The `media_id` is a `>` separated string of the menu path on
the vtuner service. For instance `Bookmarks>Internet>WAMC 90.3 FM`.
MusicCast devices use the path `Radio>Favorites>WAMC 90.3 FM`.
### Example configuration

View File

@ -2,9 +2,9 @@
layout: page
---
{% if page.og_image %}
{% if page.hero_image %}
<div class="banner">
<img src="{{ page.hero_image | default:page.og_image }}"></i>
<img src="{{ page.hero_image }}"></i>
{% if page.tagline %}
<div class="title {% if page.tagline_wide != false %}wide{% endif %}">
{{ page.tagline }}
@ -70,10 +70,16 @@ layout: page
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
document.querySelector(this.getAttribute('href')).scrollIntoView({
behavior: 'smooth'
});
const href = this.getAttribute('href');
if (href === "#") {
return;
}
const target = document.querySelector(href);
if (target) {
target.scrollIntoView({
behavior: 'smooth',
});
}
});
});
if (document.documentElement.clientWidth < 480) {

View File

@ -16,7 +16,7 @@ og_image: /images/blog/2017-02-shirts/social.png
What time is it? Yep, t-shirt time. Today we're launching the first two Home Assistant designs. We have a blue t-shirt as pictured above and a design for on black/gray shirts as pictured below.
[Visit the Home Assistant store](https://teespring.com/stores/home-assistant-store)
[Visit the Home Assistant store](https://home-assistant-store.creator-spring.com/)
<p class='img'>
<img src='/images/blog/2017-02-shirts/family.png' />
@ -49,14 +49,5 @@ More photos after the click.
Cool kid listening to music + sidekick. Both wearing the new blue Home Assistant shirt.
</p>
[eff]: https://www.eff.org
[le]: https://letsencrypt.org
[ts]: https://teespring.com
[ts-eu]: https://teespring.com/teespring-europe
[store-us]: https://teespring.com/stores/home-assistant-us-store
[store-eu]: https://teespring.com/stores/home-assistant-eu-store
[eff-issues]: https://www.eff.org/issues
[blue-us]: https://teespring.com/home-assistant-shirt
[black-us]: https://teespring.com/hass-shirt-black
[blue-eu]: https://teespring.com/hass-blue-shirt-eu-2
[black-eu]: https://teespring.com/hass-shirt-black-eu-2
[blue-us]: https://home-assistant-store.creator-spring.com/listing/home-assistant-shirt
[ts]: https://teespring.com

View File

@ -46,6 +46,7 @@ Bram
- [New integrations](#new-integrations)
- [Release 2023.9.1 - September 8](#release-202391---september-8)
- [Release 2023.9.2 - September 12](#release-202392---september-12)
- [Release 2023.9.3 - September 24](#release-202393---september-24)
- [Need help? Join the community!](#need-help-join-the-community)
- [Breaking changes](#breaking-changes)
- [All changes](#all-changes)
@ -314,40 +315,40 @@ This release also has a new virtual integration. Virtual integrations are stubs
## Release 2023.9.1 - September 8
- Fix the Hydrawise status sensor ([@dknowles2] - [#99271]) ([hydrawise docs])
- Fix tradfri asyncio.wait ([@cdce8p] - [#99730]) ([tradfri docs])
- Handle alexa invalid climate temp adjustment ([@jbouwh] - [#99740]) ([alexa docs])
- Revert "Bump pyoverkiz to 1.10.1 (#97916)" ([@joostlek] - [#99742]) ([overkiz docs])
- Fix Freebox disk free space sensor ([@Quentame] - [#99757]) ([freebox docs])
- Fix Freebox Home battery sensor ([@Quentame] - [#99756]) ([freebox docs])
- Fix the Hydrawise status sensor ([@dknowles2] - [#99271])
- Fix tradfri asyncio.wait ([@cdce8p] - [#99730])
- Handle alexa invalid climate temp adjustment ([@jbouwh] - [#99740])
- Revert "Bump pyoverkiz to 1.10.1 (#97916)" ([@joostlek] - [#99742])
- Fix Freebox disk free space sensor ([@Quentame] - [#99757])
- Fix Freebox Home battery sensor ([@Quentame] - [#99756])
- Bump sense_energy to 0.12.1 ([@bdraco] - [#99763])
- Add support for more busy codes for Epson ([@pszafer] - [#99771]) ([epson docs])
- Bump `aiorecollect` to 2023.09.0 ([@bachya] - [#99780]) ([recollect_waste docs])
- Bump pyenphase to 1.9.3 ([@bdraco] - [#99787]) ([enphase_envoy docs])
- Bump pylutron-caseta to v0.18.2 ([@swamplynx] - [#99789]) ([lutron_caseta docs])
- Fix missing dew point and humidity in tomorrowio forecasts ([@lymanepp] - [#99793]) ([tomorrowio docs])
- Always set severity level flag on render_template error events ([@emontnemery] - [#99804]) ([websocket_api docs])
- Improve error handling in /api/states POST ([@emontnemery] - [#99810]) ([api docs])
- Use correct config entry id in Livisi ([@joostlek] - [#99812]) ([livisi docs])
- Fix missing name and identifiers for ELKM1 connected devices ([@bdraco] - [#99828]) ([elkm1 docs])
- Bump aiovodafone to 0.1.0 ([@chemelli74] - [#99851]) ([vodafone_station docs])
- Bump dbus-fast to 1.95.0 ([@bdraco] - [#99749]) ([bluetooth docs])
- Bump dbus-fast to 1.95.2 ([@bdraco] - [#99852]) ([bluetooth docs])
- Bump ZHA dependencies ([@puddly] - [#99855]) ([zha docs])
- Fix NOAA tides warnings ([@jbouwh] - [#99856]) ([noaa_tides docs])
- Upgrade bluetooth deps to fix timeout behavior on py3.11 ([@bdraco] - [#99879]) ([bluetooth docs])
- Update frontend to 20230908.0 ([@bramkragten] - [#99939]) ([frontend docs])
- Bump pymodbus v3.5.0 ([@janiversen] - [#99343]) ([modbus docs])
- Bump pymodbus v.3.5.1 ([@janiversen] - [#99940]) ([modbus docs])
- Bump pyenphase to v1.11.0 ([@joostlek] - [#99941]) ([enphase_envoy docs])
- Fix key error MQTT binary_sensor when no name is set ([@jbouwh] - [#99943]) ([mqtt docs])
- Bump zeroconf to 0.93.1 ([@bdraco] - [#99516]) ([zeroconf docs])
- Bump zeroconf to 0.96.0 ([@bdraco] - [#99549]) ([zeroconf docs])
- Bump zeroconf to 0.97.0 ([@bdraco] - [#99554]) ([zeroconf docs])
- Bump zeroconf to 0.98.0 ([@bdraco] - [#99748]) ([zeroconf docs])
- Make WS command render_template not give up if initial render raises ([@emontnemery] - [#99808]) ([websocket_api docs])
- Bump hatasmota to 0.7.1 ([@emontnemery] - [#99818]) ([tasmota docs])
- Bump millheater to 0.11.2 ([@Danielhiversen] - [#99683]) ([mill docs])
- Add support for more busy codes for Epson ([@pszafer] - [#99771])
- Bump `aiorecollect` to 2023.09.0 ([@bachya] - [#99780])
- Bump pyenphase to 1.9.3 ([@bdraco] - [#99787])
- Bump pylutron-caseta to v0.18.2 ([@swamplynx] - [#99789])
- Fix missing dew point and humidity in tomorrowio forecasts ([@lymanepp] - [#99793])
- Always set severity level flag on render_template error events ([@emontnemery] - [#99804])
- Improve error handling in /api/states POST ([@emontnemery] - [#99810])
- Use correct config entry id in Livisi ([@joostlek] - [#99812])
- Fix missing name and identifiers for ELKM1 connected devices ([@bdraco] - [#99828])
- Bump aiovodafone to 0.1.0 ([@chemelli74] - [#99851])
- Bump dbus-fast to 1.95.0 ([@bdraco] - [#99749])
- Bump dbus-fast to 1.95.2 ([@bdraco] - [#99852])
- Bump ZHA dependencies ([@puddly] - [#99855])
- Fix NOAA tides warnings ([@jbouwh] - [#99856])
- Upgrade bluetooth deps to fix timeout behavior on py3.11 ([@bdraco] - [#99879])
- Update frontend to 20230908.0 ([@bramkragten] - [#99939])
- Bump pymodbus v3.5.0 ([@janiversen] - [#99343])
- Bump pymodbus v.3.5.1 ([@janiversen] - [#99940])
- Bump pyenphase to v1.11.0 ([@joostlek] - [#99941])
- Fix key error MQTT binary_sensor when no name is set ([@jbouwh] - [#99943])
- Bump zeroconf to 0.93.1 ([@bdraco] - [#99516])
- Bump zeroconf to 0.96.0 ([@bdraco] - [#99549])
- Bump zeroconf to 0.97.0 ([@bdraco] - [#99554])
- Bump zeroconf to 0.98.0 ([@bdraco] - [#99748])
- Make WS command render_template not give up if initial render raises ([@emontnemery] - [#99808])
- Bump hatasmota to 0.7.1 ([@emontnemery] - [#99818])
- Bump millheater to 0.11.2 ([@Danielhiversen] - [#99683])
[#99271]: https://github.com/home-assistant/core/pull/99271
[#99343]: https://github.com/home-assistant/core/pull/99343
@ -400,72 +401,42 @@ This release also has a new virtual integration. Virtual integrations are stubs
[@pszafer]: https://github.com/pszafer
[@puddly]: https://github.com/puddly
[@swamplynx]: https://github.com/swamplynx
[abode docs]: /integrations/abode/
[accuweather docs]: /integrations/accuweather/
[acmeda docs]: /integrations/acmeda/
[adax docs]: /integrations/adax/
[adguard docs]: /integrations/adguard/
[ads docs]: /integrations/ads/
[alexa docs]: /integrations/alexa/
[api docs]: /integrations/api/
[bluetooth docs]: /integrations/bluetooth/
[elkm1 docs]: /integrations/elkm1/
[enphase_envoy docs]: /integrations/enphase_envoy/
[epson docs]: /integrations/epson/
[freebox docs]: /integrations/freebox/
[frontend docs]: /integrations/frontend/
[hydrawise docs]: /integrations/hydrawise/
[livisi docs]: /integrations/livisi/
[lutron_caseta docs]: /integrations/lutron_caseta/
[mill docs]: /integrations/mill/
[modbus docs]: /integrations/modbus/
[mqtt docs]: /integrations/mqtt/
[noaa_tides docs]: /integrations/noaa_tides/
[overkiz docs]: /integrations/overkiz/
[recollect_waste docs]: /integrations/recollect_waste/
[tasmota docs]: /integrations/tasmota/
[tomorrowio docs]: /integrations/tomorrowio/
[tradfri docs]: /integrations/tradfri/
[vodafone_station docs]: /integrations/vodafone_station/
[websocket_api docs]: /integrations/websocket_api/
[zeroconf docs]: /integrations/zeroconf/
[zha docs]: /integrations/zha/
## Release 2023.9.2 - September 12
- Remove modbus pragma no cover and solve nan ([@janiversen] - [#99221]) ([modbus docs])
- Bugfix: Electric Kiwi reduce interval so oauth doesn't expire ([@mikey0000] - [#99489]) ([electric_kiwi docs])
- Read modbus data before scan_interval ([@janiversen] - [#99243]) ([modbus docs])
- Make modbus retry fast on read errors ([@janiversen] - [#99576]) ([modbus docs])
- Fix Soma cover tilt ([@ratsept] - [#99717]) ([soma docs])
- Cache device trigger info during ZHA startup ([@puddly] - [#99764]) ([zha docs])
- Airthings BLE unique id migration ([@LaStrada] - [#99832]) ([airthings_ble docs])
- Update RestrictedPython to 6.2 ([@cdce8p] - [#99955]) ([python_script docs])
- Bump bleak to 0.21.1 ([@bdraco] - [#99960]) ([bluetooth docs])
- Bump python-roborock to 33.2 ([@Lash-L] - [#99962]) ([roborock docs])
- Handle disconnects in zwave_js repair flow ([@raman325] - [#99964]) ([zwave_js docs])
- Bump plugwise to v0.32.2 ([@bouwew] - [#99973]) ([plugwise docs])
- Bump bluetooth-auto-recovery to 1.2.3 ([@bdraco] - [#99979]) ([bluetooth docs])
- Avoid probing ipp printers for unique_id when it is available via mdns ([@bdraco] - [#99982]) ([ipp docs])
- Bump pymodbus to v3.5.2 ([@janiversen] - [#99988]) ([modbus docs])
- Bump pywaze to 0.4.0 ([@eifinger] - [#99995]) ([waze_travel_time docs])
- Bump systembridgeconnector to 3.8.2 ([@timmo001] - [#100051]) ([system_bridge docs])
- Bump aiovodafone to 0.2.0 ([@chemelli74] - [#100062]) ([vodafone_station docs])
- Remove Comelit alarm data retrieval ([@chemelli74] - [#100067]) ([comelit docs])
- Fix addon slug validation ([@mdegat01] - [#100070]) ([hassio docs])
- Remove duplicated word in enphase description text ([@greiginsydney] - [#100098]) ([enphase_envoy docs])
- Fix TriggerEntity.async_added_to_hass ([@emontnemery] - [#100119]) ([template docs])
- Bump hatasmota to 0.7.2 ([@emontnemery] - [#100129]) ([tasmota docs])
- Update frontend to 20230911.0 ([@bramkragten] - [#100139]) ([frontend docs])
- Fix devices not always reporting IP - bump aiounifi to v62 ([@Kane610] - [#100149]) ([unifi docs])
- Fix AVM Fritz!Tools update entity ([@mib1185] - [#100151]) ([fritz docs])
- Bump ZHA dependencies ([@puddly] - [#100156]) ([zha docs])
- Bump zwave-js-server-python to 0.51.2 ([@raman325] - [#100159]) ([zwave_js docs])
- Adjust tasmota sensor device class and icon mapping ([@emontnemery] - [#100168]) ([tasmota docs])
- Bump hatasmota to 0.7.3 ([@emontnemery] - [#100169]) ([tasmota docs])
- Bump Ultraheat to version 0.5.7 ([@vpathuis] - [#100172]) ([landisgyr_heat_meter docs])
- Fix entity name attribute on mqtt entity is not removed on update ([@jbouwh] - [#100187]) ([mqtt docs])
- Bump hass-nabucasa from 0.70.0 to 0.71.0 ([@ludeeus] - [#100193]) ([cloud docs])
- Remove modbus pragma no cover and solve nan ([@janiversen] - [#99221])
- Bugfix: Electric Kiwi reduce interval so oauth doesn't expire ([@mikey0000] - [#99489])
- Read modbus data before scan_interval ([@janiversen] - [#99243])
- Make modbus retry fast on read errors ([@janiversen] - [#99576])
- Fix Soma cover tilt ([@ratsept] - [#99717])
- Cache device trigger info during ZHA startup ([@puddly] - [#99764])
- Airthings BLE unique id migration ([@LaStrada] - [#99832])
- Update RestrictedPython to 6.2 ([@cdce8p] - [#99955])
- Bump bleak to 0.21.1 ([@bdraco] - [#99960])
- Bump python-roborock to 33.2 ([@Lash-L] - [#99962])
- Handle disconnects in zwave_js repair flow ([@raman325] - [#99964])
- Bump plugwise to v0.32.2 ([@bouwew] - [#99973])
- Bump bluetooth-auto-recovery to 1.2.3 ([@bdraco] - [#99979])
- Avoid probing ipp printers for unique_id when it is available via mdns ([@bdraco] - [#99982])
- Bump pymodbus to v3.5.2 ([@janiversen] - [#99988])
- Bump pywaze to 0.4.0 ([@eifinger] - [#99995])
- Bump systembridgeconnector to 3.8.2 ([@timmo001] - [#100051])
- Bump aiovodafone to 0.2.0 ([@chemelli74] - [#100062])
- Remove Comelit alarm data retrieval ([@chemelli74] - [#100067])
- Fix addon slug validation ([@mdegat01] - [#100070])
- Remove duplicated word in enphase description text ([@greiginsydney] - [#100098])
- Fix TriggerEntity.async_added_to_hass ([@emontnemery] - [#100119])
- Bump hatasmota to 0.7.2 ([@emontnemery] - [#100129])
- Update frontend to 20230911.0 ([@bramkragten] - [#100139])
- Fix devices not always reporting IP - bump aiounifi to v62 ([@Kane610] - [#100149])
- Fix AVM Fritz!Tools update entity ([@mib1185] - [#100151])
- Bump ZHA dependencies ([@puddly] - [#100156])
- Bump zwave-js-server-python to 0.51.2 ([@raman325] - [#100159])
- Adjust tasmota sensor device class and icon mapping ([@emontnemery] - [#100168])
- Bump hatasmota to 0.7.3 ([@emontnemery] - [#100169])
- Bump Ultraheat to version 0.5.7 ([@vpathuis] - [#100172])
- Fix entity name attribute on mqtt entity is not removed on update ([@jbouwh] - [#100187])
- Bump hass-nabucasa from 0.70.0 to 0.71.0 ([@ludeeus] - [#100193])
[#100051]: https://github.com/home-assistant/core/pull/100051
[#100062]: https://github.com/home-assistant/core/pull/100062
@ -525,37 +496,137 @@ This release also has a new virtual integration. Virtual integrations are stubs
[@ratsept]: https://github.com/ratsept
[@timmo001]: https://github.com/timmo001
[@vpathuis]: https://github.com/vpathuis
[abode docs]: /integrations/abode/
[accuweather docs]: /integrations/accuweather/
[acmeda docs]: /integrations/acmeda/
[adax docs]: /integrations/adax/
[adguard docs]: /integrations/adguard/
[ads docs]: /integrations/ads/
[airthings_ble docs]: /integrations/airthings_ble/
[bluetooth docs]: /integrations/bluetooth/
[cloud docs]: /integrations/cloud/
[comelit docs]: /integrations/comelit/
[electric_kiwi docs]: /integrations/electric_kiwi/
[enphase_envoy docs]: /integrations/enphase_envoy/
[fritz docs]: /integrations/fritz/
[frontend docs]: /integrations/frontend/
[hassio docs]: /integrations/hassio/
[ipp docs]: /integrations/ipp/
[landisgyr_heat_meter docs]: /integrations/landisgyr_heat_meter/
[modbus docs]: /integrations/modbus/
[mqtt docs]: /integrations/mqtt/
[plugwise docs]: /integrations/plugwise/
[python_script docs]: /integrations/python_script/
[roborock docs]: /integrations/roborock/
[soma docs]: /integrations/soma/
[system_bridge docs]: /integrations/system_bridge/
[tasmota docs]: /integrations/tasmota/
[template docs]: /integrations/template/
[unifi docs]: /integrations/unifi/
[vodafone_station docs]: /integrations/vodafone_station/
[waze_travel_time docs]: /integrations/waze_travel_time/
[zha docs]: /integrations/zha/
[zwave_js docs]: /integrations/zwave_js/
## Release 2023.9.3 - September 24
- Always update unit of measurement of the utility_meter on state change ([@dgomes] - [#99102])
- Netgear catch no info error ([@starkillerOG] - [#100212])
- Bump python-roborock to 0.34.0 ([@Lash-L] - [#100236])
- Bump pynetgear to 0.10.10 ([@starkillerOG] - [#100242])
- Fix incorrect off peak translation key for Roborock ([@Lash-L] - [#100246])
- Bump pyenphase to 1.11.2 ([@cgarwood] - [#100249])
- Bump pyenphase to 1.11.3 ([@cgarwood] - [#100255])
- Bump sensirion-ble to 0.1.1 ([@akx] - [#100271])
- Future proof assist_pipeline.Pipeline ([@emontnemery] - [#100277])
- Bump pyenphase to 1.11.4 ([@cgarwood] - [#100288])
- Bump yalexs-ble to 2.3.0 ([@bdraco] - [#100007])
- Bump yalexs to 1.9.0 ([@bdraco] - [#100305])
- Update Mill library to 0.11.5, handle rate limiting ([@Danielhiversen] - [#100315])
- Remove _next_refresh variable in update coordinator ([@elupus] - [#100323])
- Fix timeout issue in devolo_home_network ([@Shutgun] - [#100350])
- Fix Airthings ble migration ([@LaStrada] - [#100362])
- Try Reolink ONVIF long polling if ONVIF push not supported ([@starkillerOG] - [#100375])
- Bump reolink-aio to 0.7.10 ([@starkillerOG] - [#100376])
- Add missing timer service translation ([@steffenrapp] - [#100388])
- Fix current condition in IPMA ([@dgomes] - [#100412])
- Bump yolink-api to 0.3.1 ([@matrixd2] - [#100426])
- Fix timer reload description ([@edenhaus] - [#100433])
- bump pywaze to 0.5.0 ([@eifinger] - [#100456])
- Fix error is measurement is not sent by AirNow ([@asymworks] - [#100477])
- Only get meteo france alert coordinator if it exists ([@joostlek] - [#100493])
- Fix broken reconnect capability of fritzbox_callmonitor ([@frimtec] - [#100526])
- Fix xiaomi_miio button platform regression ([@rytilahti] - [#100527])
- Fix Roborock send command service calling not being enum ([@Lash-L] - [#100574])
- Adjust hassfest.manifest based on config.action ([@raman325] - [#100577])
- Fix ecobee aux_heat_off always returns to HEAT ([@robinlee09201] - [#100630])
- Bump python-roborock to 0.34.1 ([@Lash-L] - [#100652])
- Bump zwave-js-server-python to 0.51.3 ([@raman325] - [#100665])
- Fix mqtt light rgbww update without state topic ([@jbouwh] - [#100707])
- Bump aiocomelit to 0.0.8 ([@chemelli74] - [#100714])
- Fix handling of unit system change in sensor ([@emontnemery] - [#100715])
- Bump ZHA dependencies ([@puddly] - [#100732])
- Bump intents to 2023.9.22 ([@synesthesiam] - [#100737])
- Fix weather template forecast attributes ([@gjohansson-ST] - [#100748])
- Fix rainbird unique id ([@allenporter] - [#99704])
- Bump ring-doorbell to 0.7.3 ([@sdb9696] - [#100688])
- Update home-assistant/wheels to 2023.09.1 ([@frenck] - [#100758])
- Bump pyschlage to 2023.9.0 ([@dknowles2] - [#99624])
- Bump pyschlage to 2023.9.1 ([@dknowles2] - [#100760])
- Add strong to fan mode for Sensibo ([@gjohansson-ST] - [#100773])
- Update home-assistant/builder to 2023.09.0 ([@frenck] - [#100797])
- Fix Comelit device info ([@chemelli74] - [#100587])
[#100007]: https://github.com/home-assistant/core/pull/100007
[#100212]: https://github.com/home-assistant/core/pull/100212
[#100223]: https://github.com/home-assistant/core/pull/100223
[#100236]: https://github.com/home-assistant/core/pull/100236
[#100242]: https://github.com/home-assistant/core/pull/100242
[#100246]: https://github.com/home-assistant/core/pull/100246
[#100249]: https://github.com/home-assistant/core/pull/100249
[#100255]: https://github.com/home-assistant/core/pull/100255
[#100271]: https://github.com/home-assistant/core/pull/100271
[#100277]: https://github.com/home-assistant/core/pull/100277
[#100288]: https://github.com/home-assistant/core/pull/100288
[#100305]: https://github.com/home-assistant/core/pull/100305
[#100315]: https://github.com/home-assistant/core/pull/100315
[#100323]: https://github.com/home-assistant/core/pull/100323
[#100350]: https://github.com/home-assistant/core/pull/100350
[#100362]: https://github.com/home-assistant/core/pull/100362
[#100375]: https://github.com/home-assistant/core/pull/100375
[#100376]: https://github.com/home-assistant/core/pull/100376
[#100388]: https://github.com/home-assistant/core/pull/100388
[#100412]: https://github.com/home-assistant/core/pull/100412
[#100426]: https://github.com/home-assistant/core/pull/100426
[#100433]: https://github.com/home-assistant/core/pull/100433
[#100456]: https://github.com/home-assistant/core/pull/100456
[#100477]: https://github.com/home-assistant/core/pull/100477
[#100493]: https://github.com/home-assistant/core/pull/100493
[#100526]: https://github.com/home-assistant/core/pull/100526
[#100527]: https://github.com/home-assistant/core/pull/100527
[#100574]: https://github.com/home-assistant/core/pull/100574
[#100577]: https://github.com/home-assistant/core/pull/100577
[#100587]: https://github.com/home-assistant/core/pull/100587
[#100630]: https://github.com/home-assistant/core/pull/100630
[#100652]: https://github.com/home-assistant/core/pull/100652
[#100665]: https://github.com/home-assistant/core/pull/100665
[#100688]: https://github.com/home-assistant/core/pull/100688
[#100707]: https://github.com/home-assistant/core/pull/100707
[#100714]: https://github.com/home-assistant/core/pull/100714
[#100715]: https://github.com/home-assistant/core/pull/100715
[#100732]: https://github.com/home-assistant/core/pull/100732
[#100737]: https://github.com/home-assistant/core/pull/100737
[#100748]: https://github.com/home-assistant/core/pull/100748
[#100758]: https://github.com/home-assistant/core/pull/100758
[#100760]: https://github.com/home-assistant/core/pull/100760
[#100773]: https://github.com/home-assistant/core/pull/100773
[#100797]: https://github.com/home-assistant/core/pull/100797
[#99102]: https://github.com/home-assistant/core/pull/99102
[#99624]: https://github.com/home-assistant/core/pull/99624
[#99704]: https://github.com/home-assistant/core/pull/99704
[#99741]: https://github.com/home-assistant/core/pull/99741
[#99950]: https://github.com/home-assistant/core/pull/99950
[@Danielhiversen]: https://github.com/Danielhiversen
[@LaStrada]: https://github.com/LaStrada
[@Lash-L]: https://github.com/Lash-L
[@Shutgun]: https://github.com/Shutgun
[@akx]: https://github.com/akx
[@allenporter]: https://github.com/allenporter
[@asymworks]: https://github.com/asymworks
[@balloob]: https://github.com/balloob
[@bdraco]: https://github.com/bdraco
[@bramkragten]: https://github.com/bramkragten
[@cgarwood]: https://github.com/cgarwood
[@chemelli74]: https://github.com/chemelli74
[@dgomes]: https://github.com/dgomes
[@dknowles2]: https://github.com/dknowles2
[@edenhaus]: https://github.com/edenhaus
[@eifinger]: https://github.com/eifinger
[@elupus]: https://github.com/elupus
[@emontnemery]: https://github.com/emontnemery
[@frenck]: https://github.com/frenck
[@frimtec]: https://github.com/frimtec
[@gjohansson-ST]: https://github.com/gjohansson-ST
[@jbouwh]: https://github.com/jbouwh
[@joostlek]: https://github.com/joostlek
[@matrixd2]: https://github.com/matrixd2
[@puddly]: https://github.com/puddly
[@raman325]: https://github.com/raman325
[@robinlee09201]: https://github.com/robinlee09201
[@rytilahti]: https://github.com/rytilahti
[@sdb9696]: https://github.com/sdb9696
[@starkillerOG]: https://github.com/starkillerOG
[@steffenrapp]: https://github.com/steffenrapp
[@synesthesiam]: https://github.com/synesthesiam
## Need help? Join the community!

View File

@ -0,0 +1,130 @@
---
layout: post
title: "10 years Home Assistant"
description: ""
date: 2023-09-17 00:00:03
date_formatted: "September 17, 2023"
author: Paulus Schoutsen
comments: true
categories: Announcements
og_image: /images/frontpage/HA10_-_Website_banner.png
---
TL; DR:
- Home Assistant is 10 years old and the second most active open source project on GitHub.
- Nabu Casa is 5 years old. There are no investors and development of Home Assistant is sustainable.
- Home Assistant Cloud now supports custom domains for remote connections.
- The Open Home vision is updated and is now about privacy, choice and sustainability.
- The Home Assistant logo has been streamlined and refined, yet remains familiar. [Learn more here.][logo-blog]
- Home Assistant Green is a new $99 hub and the easiest way to get started for people new to the Home Assistant ecosystem. [Learn more here.][green-blog]
[![Home Assistant Green](/images/blog/2023-09-ha10/green-intro.png)][green-blog]
<!--more-->
<hr>
Its 2012 and I was a visiting scholar at the University of California, San Diego working on finishing my Master thesis. Its back then when the first Philips Hue product hit the market: a hub and 3 light bulbs for around $200. The hub had something that would change my life: it had a local API that allowed local control.
Ive always been really into programming and so I immediately started toying with the Hue API in Python, my language of choice. There is something very satisfying about making things change in the real world from your code. On September 17, 2013 I decided that this playground had evolved into something that others could use too, and pushed the first version of Home Assistant to GitHub.
I wasnt planning on changing the world. It was a playground, a place where I could use the latest technology and explore all the possibilities with Python. But bit by bit Home Assistant gained traction, more contributors joined and we slowly started to build a community.
<p class='img'>
<img src='/images/blog/2023-09-ha10/gitter-ha.png' alt='3 people chatting about how great the Home Assistant community is.'>
Home Assistant channel on Gitter, December 3, 2015
</p>
Building a community is hard and the early years are the most important, its when the foundation is set and adjusting its course later is very hard. Luckily weve had a great group of people both working on the code as well as helping people solve their problems using Home Assistant.
<p class='img'>
<img src='/images/blog/2023-09-ha10/hackernews-ha.png' alt="davidu: This project is far and away becoming the standard for Home Automation. Incredible to watch over the last couple years. Klathmon responds: Not only that, but Home Assistant is by far my favorite example of a well run 'crowd run' open source project. There's no big company bankrolling it (well there kinda is since ubiquiti hired the creator, but not to the same extent something like Chromium is just google), there are a HUGE number of committers, and the structure encourages people to maintain and improve their own contributions via 3rd party packages. There's no fighting, there's not much gatekeeping, it's not overly complicated, and they are EXTREMELY welcoming to new contributions, no matter how 'unique' the use case is (look at some of the integrations! There's integrations for local bus schedule systems!). And on top of that, there's world-class documentation! That's rare enough in paid products, but to see it from a project like this, and the fact that it's almost always up to date is simply amazing. They held my hand through creating 2 new integrations, and I haven't developed in python for almost 10 years, and they were extremely helpful, responsive, and at the end of the day the product got better for everyone. I really don't have enough good things to say about Home Assistant.">
<a href="https://news.ycombinator.com/item?id=17827128">HackerNews, August 23, 2018</a>
</p>
## The Improvement Beat
There are many things that have led to our success: our architecture, the quality of the documentation and an amazing community willing to help one another. But the one thing underlying the success of all of these has been our frequent release schedule. It creates a rhythm that synchronizes the community in publishing their work.
We used to do a release every two weeks and it set the schedule for everything else. Every two weeks we had to make sure the contributions that were almost done got finished, the documentation was updated and extensive release notes were written. Every release is an opportunity for users to try out new features and provide feedback, feedback we could incorporate and let them try again two weeks later. Our schedule got adopted across our community, and every project started to do a release every two weeks, like for example the [Home Assistant Podcast](https://hasspodcast.io/).
<p class='img'>
<img src='/images/blog/2023-09-ha10/release-beat.png' alt='A list of blog posts with release notes.'>
At the start of 2019, we still did a release every 2 weeks
</p>
The downside of a two week schedule is that the developers and community burned themselves out. Every release finishes in a small sprint to wrap things up, and then a period of quick turnaround for inevitable bugs that popped up. We were sprinting while we had to run a marathon; it wasnt sustainable. We decided to move it to a monthly release and adopted date-based version numbers in [Home Assistant 2022.12](/blog/2020/12/13/release-202012/).
Still, even with 12 releases per year there is no other smart home platform that evolves as fast as Home Assistant. Every month many new features arrive to allow users to get even more out of their smart home.
## The Operating System
The original audience of Home Assistant was die-hard tech nerds. You had to install Python, Home Assistant and all of its dependencies manually. When Pascal Vizeli [introduced the Home Assistant Operating System](/blog/2017/07/25/introducing-hassio/) (then called hass.io) the first step was made to bring Home Assistant to non-technical users. Now users could install Home Assistant on an SD card, put it into a Raspberry Pi and have a fully working home automation hub that can update via the user interface. Users could fully focus on automating their home.
## Thinking Big
When Home Assistant turned five, [we launched Nabu Casa](/blog/2018/09/17/thinking-big/). The goal of Nabu Casa is to make the development of Home Assistant sustainable. Nabu Casa came just in time, as it gave our developers some time to breathe. We had to grow to around 10 people before both Pascal and I felt like all our day-to-day tasks could be shared.
Home Assistant is the 2nd most active open source project on GitHub ([source](https://octoverse.github.com/2022/state-of-open-source)). Running a project this large requires a lot of administration, processes, structure and maintenance. This is provided by full-time Nabu Casa employees so that contributors can focus on the fun part: building Home Assistant.
Nabu Casa offers a service called [Home Assistant Cloud](https://www.nabucasa.com). Its a cloud extension for your local Home Assistant instance that allows you to access it remotely via an end-to-end encrypted connection, use state of the art text-to-speech system for notifications and integrate with voice assistants.
Today were launching an often requested feature for Home Assistant Cloud: support for custom domains. [Check out the docs on how to get started.](https://www.nabucasa.com/config/remote/#using-a-custom-domain)
## The Open Home
While building Home Assistant, we realized that our focus was too narrow. We can make the most epic smart home platform (for the record: we do), but if all your devices still communicate via the cloud, you cannot have privacy and local control.
And so the Open Home was born. It is our vision for a smart home that is built around privacy, choice and durability. Today, were going to make a small adjustment to this vision, and were replacing durability with sustainability. Sustainability includes the previous definition of durability (things need to keep working) but expands it with saving energy. Overall the term needs less explanation.
For the Open Home, sustainability means:
- Ensure durability and longevity of our supported devices to reduce e-waste and eliminate corporate planned obsolesce.
- Upgrade existing devices with smart plugs or other technology.
- Switch to renewable energy sources by supporting solar energy hardware and support for electricity data sources.
- Consume energy meaningfully by providing data-driven insights.
- Reduce reliance on cloud computing data centers. Being local is greener than depending on the cloud.
<img class='no-shadow' src='/images/blog/2023-09-ha10/open-home-values.png' alt='The Open Home values: privacy, choice and sustainability'>
## Competing with Big Tech
Home Assistant is not only big in the open source world, were also big in the real world. Earlier this year the Verge [named us](https://www.theverge.com/23749376/smart-home-explained-voice-assistant-tv-gadgets) among the 5 big smart home platforms among Apple, Amazon, Google and Samsung.
We are not afraid that our competition will take away our audience. None of them run fully local and none allow users to access their own data outside of their own apps. This means that none of those platforms have the core values to ever become the foundation of the home of the future. With open source we will keep creating more value on our open ecosystem while the competitors will continue to focus to find places to monetize their user base.
## Refreshing the Home Assistant logo
<p class='img'>
<img src='/images/blog/2023-09-ha10/logo-cover.png' alt='Beautiful new Home Assistant logo. It is a refined version of the old logo. Feels very familiar.'>
The new Home Assistant logo. Designed by Madelena Mak.
</p>
Today were introducing a refreshed and refined logo for Home Assistant that feels familiar. We will be rolling it out in the next couple of weeks. [Learn more about the new Home Assistant logo.][logo-blog]
## Share the love
<p class='img'>
<img src='/images/blog/2023-09-ha10/share-the-love.jpg' alt='Photo of Paulus Schoutsen speaking to a crowd. The slide behind him shows the text "Share the love".'>
Paulus Schoutsen, State of the Union, 2018
</p>
Home Assistant is made by people that love home automation and want to make the best platform. Its a product of love and you feel that as soon as you open the app. It runs fully local and nothing is hidden behind paywalls or held back for future monetization opportunities. Home Assistant is your platform and you can use it, and your data, the way you want.
Historically, it has been difficult to get started with Home Assistant because you had to bring your own hardware; a Raspberry Pi or similar. Weve solved this by introducing [Home Assistant Yellow](/yellow), our own smart home hub powered by Home Assistant. The Home Assistant Yellow is the power user dream. Its powered by a Raspberry Pi Compute Module 4, includes Zigbee and Thread, and can be extended using an SSD.
Since the release of the Home Assistant Yellow the price of components, including the Compute Module 4, have increased significantly. This caused the Home Assistant Yellow to become more expensive and no longer a good fit for users who are just starting out with Home Assistant.
Today we are introducing an affordable way for new users to start their smart home with Home Assistant: the Home Assistant Green and it costs only $99 (MSRP). [Learn more about Home Assistant Green.][green-blog]
[![Home Assistant Green](/images/blog/2023-09-ha10/green-intro.png)][green-blog]
[green-blog]: /blog/2023/09/17/home-assistant-green-your-entry-to-home-assistant/
[logo-blog]: /blog/2023/09/17/a-refreshed-logo-for-home-assistant/
## Thank You! 🙏
A big thank you for all the people who have contributed to Home Assistant and its community over the last 10 years. Code, bug reports, helping others figuring out things or moderating our community: thank you so much. This wouldnt have been possible without you.

View File

@ -0,0 +1,89 @@
---
layout: post
title: "A refreshed logo for Home Assistant!"
description: "Were introducing a refreshed and refined logo for Home Assistant that feels familiar. We will be rolling it out in the next couple of weeks."
date: 2023-09-17 00:00:01
date_formatted: "September 17, 2023"
author: Madelena Mak
comments: true
categories: Announcements
og_image: /images/frontpage/HA10_-_Website_banner.png
---
<img class='no-shadow' src='/images/blog/2023-09-ha10/logo-cover.png' alt='The new Home Assistant logo on a blue background.'>
Hello all, this is Madelena. You may know me from [some](https://www.reddit.com/r/homeassistant/comments/uc79cv/a_maximalist_approach_on_designing_the_ha/) of [my](https://www.reddit.com/r/homeassistant/comments/vncni6/eink_displays_are_great_for_blending_in_with_the/) [previous](https://madelenamak.com/design/) [projects](https://github.com/Madelena). 🙂
As you may have heard from our celebration for [the 10th anniversary of Home Assistant](/blog/2023/09/17/10-years-home-assistant/), we are making some tweaks to our logo! This is no small feat, as the logo is a big part of the identity of Home Assistant, and by extension a representation of the contributions of our community. This logo has served us well for 8 years. When we see the logo, it represents the culmination of work that we are all proud of.
<!--more-->
## Humble beginnings
As Paulus had mentioned here, Home Assistant started as his solo project while working on his Master thesis, and on September 17, 2013, it was first published on GitHub. Home Assistant has always been engineered as a direct solution to the state of the Open Home, and its name and its first logo reflected its no-frills get-it-done attitude.
The logo was simply a house with blue doors, and the name was simply Home Assistant. No fancy startup names. No following Big Tech trends. Home Assistant is exactly what it is!
<img class='no-shadow' src='/images/blog/2023-09-ha10/logo 1.png' alt='The original Home Assistant logo.'>
## Its a Material Design world.
As Home Assistant became more and more robust, its user base also began to expand. Users from all walks of life started building their smart home with Home Assistant, people started buzzing about it, and contributors coalesced around it. The identity of the project formed organically. The families and housemates of our users started to use Home Assistant, and a more friendly and memorable user experience was needed.
In 2015, [Jeremy Geltman came to the rescue](/blog/2015/03/08/new-logo/) and contributed a brand new logo for Home Assistant. The new logo follows Googles Material Design language. Home Assistant grew up with Material Design - It adopted the first version upon release, and so the same design language was also applied to our logo. It used the blue color that Home Assistant used in the interface and it came in two versions: a high detailed version (for homescreen icon etc) and a simple version (for favicon etc).
<img class='no-shadow' src='/images/blog/2023-09-ha10/logo 2.png' alt='The material design Home Assistant logo.'>
## Iteration, not revolution
The Geltman design has served us well - It was used everywhere from our website to the loading screen to the app icon. It was used on big desktop screens, small mobile screens, and most recently, in print, such as our “Works with Home Assistant” partnership program and our hardware products Home Assistant Yellow, Home Assistant SkyConnect, and the newest Home Assistant Green. However, the logo was not designed to handle all these different usages, and it was time for a new iteration.
We started this iteration with three goals in mind:
### Familiar
Home Assistant serves both power users who have been using the project for many years, as well as home automation users who are outgrowing their previous setup from other companies. We want it to feel instantly familiar to our fans old and new.
### Refined
Home Assistant is an established brand with ten years of history. We want to refine our logo by executing it with even more rigor and craftsmanship, which reflects the growth and maturity of the project as a whole. We also want it to feel friendly and modern to all users.
### Unified
Home Assistant has spawned out so many projects and initiatives over the past decade. We want to create a unified identity across all Home Assistant related projects to increase awareness. We also want to make sure that the logo is versatile across all media where it will be applied.
## The blue house with antenna
At the core of the Home Assistant logo is what we call the Blue House with Antenna, its three most recognizable and distinct features.
<img class='no-shadow' src='/images/blog/2023-09-ha10/home-assistant-logo-new.png' alt='The new Home Assistant logo on a gray background.'>
### Blue
Blue feels stable and essential. A bright sky blue is joyful, clear, and free of clouds.
### House
Of all possible combinations of shapes, a home is best abstracted in the shape of a structure with a pitched roof. With the vast amount of logos based on this shape, the best we can do is to make it more iconic. The house is further simplified - there is no gable and there is no chimney - to an orthogonal shape with an elegant and deliberate proportion.
### Antenna
Call it a tree, a set of nodes, a PCB, or an antenna. The antenna is the most recognizable and memorable part of the Home Assistant logo that stands out from the rest of other home automation brands, and is an easily understandable symbol that conveys technologies that are smart, connected, and growing evergreen. The three nodes of the antenna represent our three core values: Privacy, Choice, and Sustainability.
## And for those design nerds who are interested…
The elements within the logo were laid out with better proportions, and they were designed to be legible at small or large sizes.
<img class='no-shadow' src='/images/blog/2023-09-ha10/home-assistant-logo-spec.png' alt='Measurements of various parts of the Home Assistant logo.'>
We have also changed our logotype to something more cozy and modern like a home. Gone was the all-business no-play Roboto typeface (to its credit, the United Nations used it as its logotype), and replaced by a geometric sans serif Biotif typeface. Figtree serves as the free open-source fallback.
We have also toned the blue color to be slightly more saturated to make it feel brighter and more utopian, and expanded the palette to a wider gamut.
For those who want to use our logo and for more details, the latest brand guidelines can be found [at our design repository.](https://design.home-assistant.io/)
## Theres more to come!
The new logo will roll out gradually in the next few weeks. You will start seeing it on our website, our updated onboarding experience, app icons, and more. For those who love our old logo, fear not! You can still change the app icon to our classic logos on our iOS phone companion.
And while you are here, why not [grab some new merch with the new logo?](https://home-assistant-store.creator-spring.com/)

View File

@ -0,0 +1,53 @@
---
layout: post
title: "Introducing Home Assistant Green: Your entry to Home Assistant"
description: "For $99 (MSRP) the Home Assistant Green is the way for new users to start their smart home with Home Assistant."
date: 2023-09-17 00:00:02
date_formatted: "September 17, 2023"
author: Guy Sie
comments: true
categories: Announcements
og_image: /images/blog/2023-09-ha10/green-intro.png
---
Back in 2021, we launched a crowdfunding campaign for Home Assistant Yellow. Home Assistant Yellow was our take on what a smart home hub should look like, with all the features we enthusiasts want. We're very proud of Home Assistant Yellow, but at the same time, it has become clear that people just starting their smart home journey don't need all the features Yellow offers. With the global component shortages making the required Compute Module 4 more expensive and harder to find, Home Assistant Yellow is no longer a good fit for beginners.
We've taken that to heart, and today, we are introducing an affordable way for new users to upgrade their smart homes to Home Assistant. It's the Home Assistant Green and it costs only $99 (MSRP).
![Photo of Home Assistant Green](/images/blog/2023-09-ha10/home-assistant-green.jpeg)
<!--more-->
Home Assistant Green contains everything you need for Home Assistant in one box. Just plug the included power and network cables into the hub, and you'll be up and running. Home Assistant Green will then automatically install the latest version of Home Assistant, the app (mobile or web) will guide you through the setup process, and it will detect your smart devices immediately. This is the easiest way to start using Home Assistant, and it is perfect for you or your friends and family who want to take their first step in home automation.
<p class='img'>
<img src="/images/blog/2023-09-ha10/green-with-yellow-and-blue.jpeg">
Home Assistant Green alongside Home Assistant Yellow and Home Assistant Blue
</p>
On the inside, Home Assistant Green runs on a powerful 1.8 GHz quad-core CPU. Memory and storage are amply provided with 4 GB of RAM and 32 GB of eMMC, more than enough to keep you running Home Assistant on the device for a long time. When your smart home grows, you can use <a href="/skyconnect">Home Assistant SkyConnect</a> to add Zigbee and Matter support or one of many third-party USB devices available to expand Home Assistant Green with other smart standards like Z-Wave or Bluetooth.
On the outside, Home Assistant Green has a stunning translucent enclosure design revealing the hub's inner hardware. Unlike some other smart home devices, it looks great in your home decor. The bottom of the case also functions as the hub's heat sink and is made of a solid piece of black, anodized aluminum. And, of course, this case features [the new Home Assistant logo][logo-blog] on top as a nice subtle mosaic pattern.
<p class='img'>
<img src="/images/blog/2023-09-ha10/green-specs.jpeg" alt="Home Assistant Green has 1.8 GHz quad-code CPU, 4 GB of RAM and 32 GB of eMMC storage.">
Home Assistant Green specifications
</p>
For more information about Home Assistant Green, [visit our product page](/green) or watch the team at Nabu Casa talk about Home Assistant Green's development and features in our anniversary video.
<lite-youtube videoid="EmLV6lJLzSU" videotitle="Home Assistant 10th Anniversary Event #HA10" videoStartAt="4462">
<a class="lite-youtube-fallback" href="https://www.youtube.com/watch?v=EmLV6lJLzSU" rel="external nofollow">Watch on YouTube: Home Assistant 10th Anniversary Event #HA10</a>
</lite-youtube>
<br>
To celebrate [the 10th anniversary of Home Assistant][10ha-blog], we are making an anniversary batch of 1000 Home Assistant Green hubs available for sale via our partner Seeed Studio. You can order your Home Assistant Green right now:
<a href="https://www.seeedstudio.com/Home-Assistant-Green-p-5792.html" class="btn">Order at Seeed Studio</a>
If this anniversary batch sells out before you can get one, don't worry! At the end of October, the Home Assistant Green will become widely available through our existing distributor network. Keep an eye on the <a href="/green">Home Assistant Green</a> website for availability!
[logo-blog]: /blog/2023/09/17/a-refreshed-logo-for-home-assistant/
[10ha-blog]: /blog/2023/09/17/10-years-home-assistant/

View File

@ -0,0 +1,70 @@
---
title: "Philips Hue will force users to upload their data to Hue cloud"
description: "To control your lights you soon need to create an account and share your data with the Hue cloud."
date: 2023-09-22 0:0:00
date_formatted: "September 22, 2023"
author: Paulus Schoutsen
author_twitter: balloob
comments: true
categories: Public-Service-Announcement
og_image: /images/blog/2023-09-hue-upload-user-data-cloud/social.png
---
Todays story is about Philips Hue by Signify. They will soon start forcing accounts on all users and upload user data to their cloud. For now, Signify says youll still be able to control your Hue lights locally as youre currently used to, but we dont know if this may change in the future. The privacy policy allows them to store the data and share it with partners.
Last week I wrote how toying with the first Philips Hue hub and their local API led me to [start Home Assistant back in 2013](/blog/2023/09/17/10-years-home-assistant/). They have played an important role in my smart home and they were a role model for [our Open Home vision](/blog/2021/12/23/the-open-home/). Sure, they are expensive but they work reliably, have a local API, can be used completely offline, and you dont have to share your data with the cloud.
But things are changing, for the worse. When you open the Philips Hue app you will now be prompted with a new message: _Starting soon, youll need to be signed in._
<p class='img'>
<img src='/images/blog/2023-09-hue-upload-user-data-cloud/hue-screenshot-account.png'>
Left: A new tip informs users that they soon need to login.<br>
Right: the screen shown when clicking learn more
</p>
<!--more-->
When you create an account with Hue, you get the ability to control your lights while away from home using their mobile app. This feature works by uploading your data to the Hue cloud such that the mobile app can reach it. Their privacy policy allows them to store this data and share it with their partners.
Creating a Hue account has been an option for a long time, but it was always an option. Many Home Assistant users preferred not to create an account and remain private, and purchased Hue devices because it allowed this.
**So today, you can choose to not share your information with Signify by not creating an account. But this choice will soon be taken away and all users need to share their data with Philips Hue.**
## Confirming the news
I didnt want to cry wolf, so I decided to verify the above statement with Signify. They sadly confirmed:
<p class='img'>
<img src='/images/blog/2023-09-hue-upload-user-data-cloud/tweet-confirm-account.png'>
Twitter conversation with Philips Hue (source: <a href='https://twitter.com/home_assistant/status/1704662981219348702'>Twitter</a>)
</p>
The policy they are referring to is their [privacy policy](https://www.philips-hue.com/en-us/support/legal/privacy-policy) (April 2023 edition, [download version](https://www.philips-hue.com/en-us/support/legal/privacy-policy?origin=13_care-engagement-response_twitter_11374728903&linkId=236485638#versionhistory)). It shows that user data will be stored for as long as the account remains active, and that it will be shared with partners. I was unable to find an inactive user policy.
> WHAT TYPES OF DATA DO WE COLLECT ABOUT YOU?
>
> [...]
>
> If you connect a product, this will form part of your Philips Hue Account.
>
> [...]
>
> HOW LONG DO WE KEEP YOUR DATA?
>
> [...]
>
> Do you have an account with us? In this case, we will keep your data while your account is active or for as long as needed to provide the product functionalities to you.
When asked what drove this change, the answer is the usual: security. Well Signify, you know what keeps user data even more secure? Not uploading it all to your cloud. Just allow a smart home to talk to Hue using the local API or Matter.
<p class='img'>
<img src='/images/blog/2023-09-hue-upload-user-data-cloud/hue-tweet-lie-security.png'>
Source: <a href='https://twitter.com/tweethue/status/1704590580355854398'>Twitter</a>
</p>
## Its not too late
Currently Philips Hue is announcing this change in their app and users are not forced yet to turn over all their data. We have contacted Signify privately to bring this issue to their attention but they have not responded.
As a user, we encourage you to reach out to [Signify support](https://www.philips-hue.com/en-us/support/contact-form) and voice your concern.
Dear Signify, please reconsider your decision and do not move forward with it. Youve [reversed bad decisions before](/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/). People care about privacy and forcing accounts will hurt the brand in the long term. The pain caused by this is not worth the gain.

View File

@ -22,6 +22,7 @@ tagline: >-
<text x="40" y="78" stroke="white" fill="white">Blue</text>
</svg>
tagline_wide: false
hero_image: /images/blue/blue_hero.jpg
og_image: /images/blue/blue_hero.jpg
frontpage_image: /images/frontpage/blue-frontpage.jpg
---
@ -36,7 +37,8 @@ frontpage_image: /images/frontpage/blue-frontpage.jpg
automation software on the planet: Home Assistant.
<p style="margin-top: 12px;"><b style="color:#B60017;">Discontinued!</b> The edition of the Blue was &mdash; limited. We are out of stock, with no plans to relaunch this edition.</p>
<p>Sorry you missed it. The new kid on the block is <a href="/yellow" target="_blank">Home&nbsp;Assistant&nbsp;Yellow</a>.</p>
<p>Sorry you missed it. The new kid on the block is <a href="/green" target="_blank">Home&nbsp;Assistant&nbsp;Green</a>.</p>
<p>Love to tweak your hardware? Then <a href="/yellow" target="_blank">Home&nbsp;Assistant&nbsp;Yellow</a> is for you.</p>
<p>Lover of ODROID? <a href="/installation/odroid/" target="_blank">This way, please</a>.</p>
<p>You know what else is blue, pretty, and has our logo on it? <a href="/skyconnect" target="_blank">Home&nbsp;Assistant&nbsp;SkyConnect</a>.</p>
</div>

View File

@ -13,14 +13,15 @@ With Home Assistant installed, it's time to set up the basics.
In this step, you will create the owner's account of Home Assistant. This account is an administrator account. It will always be able to change everything.
1. If this is your initial installation, select **Create my smart home**.
- If you want to restore from a backup of a previous installation, select **Restore from backup**.
- The following steps describe how to create a new installation, not how to restore from backup.
2. Enter a name, username, and password. Select **Create account**.
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. Select **Create account**.
![Set your username and password.](/images/getting-started/username.png)
3. Enter the location of your home.
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.
@ -28,20 +29,19 @@ In this step, you will create the owner's account of Home Assistant. This accoun
![Define your location.](/images/getting-started/onboarding_location.png)
4. Select which information you are willing to share.
5. 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.
- 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/).
![Share anonymized data](/images/getting-started/onboarding_share_anonymized_info.png)
5. Once you are done, select **Next**.
6. Once you are done, select **Next**.
- Home Assistant will then show any {% term devices %} it has discovered on your network.
- Don't be alarmed if you see fewer items than shown below; you can always manually add devices later.
![Discovery of devices on your network.](/images/getting-started/onboarding_devices.png)
6. Finally, select **Finish**.
7. Finally, select **Finish**.
- Now you're brought to the Home Assistant web interface. If some of your devices were discovered and setup automatically, this default dashboard may already show some of your devices.
{% include getting-started/next_step.html step="Concepts & Terminology" link="/getting-started/concepts-terminology/" %}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

2388
source/green/index.html Normal file

File diff suppressed because it is too large Load Diff

130
source/green/script.js Normal file
View File

@ -0,0 +1,130 @@
let observer;
function createObserver(elements) {
let options = {
threshold: [.3, .9],
};
observer = new IntersectionObserver(handleIntersect, options);
elements.forEach((el) => {
observer.observe(el);
});
}
function handleIntersect(entries, _observer) {
entries.forEach((entry) => {
const threshold = entry.target.dataset.threshold || 0;
if (entry.intersectionRatio >= Number(threshold)) {
entry.target.classList.add("show");
} else {
entry.target.classList.remove("show");
}
});
}
window.addEventListener(
"load",
() => {
const elements = document.querySelectorAll(".animate-in");
if ("IntersectionObserver" in window) {
createObserver(elements);
} else {
elements.forEach((el) => {
el.classList.add("show");
});
}
const faqLinks = document.querySelectorAll(".faq-link");
faqLinks.forEach((link) =>
link.addEventListener("click", (e) => {
e.preventDefault();
const container = link.nextElementSibling;
const icon = link.querySelector(".faq-icon");
if (container.classList.contains("open")) {
container.classList.remove("open");
icon.classList.remove("open");
} else {
container.classList.add("open");
icon.classList.add("open");
}
})
);
const wrappernav = document.querySelector(".wrappernav");
if (document.documentElement.scrollTop > 68) {
wrappernav.classList.add("scrolled");
}
window.addEventListener(
"scroll",
() => {
if (document.documentElement.scrollTop > 68) {
wrappernav.classList.add("scrolled");
} else {
wrappernav.classList.remove("scrolled");
}
},
{ passive: true }
);
},
false
);
const buyDialog = document.getElementById("buy-dialog");
const buyFabs = document.querySelectorAll(".buy");
buyFabs.forEach(btn => btn.addEventListener("click", (e) => {
e.preventDefault();
showBuyDialog();
}));
function showBuyDialog() {
buyDialog.style.display = "flex";
}
function closeDialog() {
buyDialog.style.display = "none";
}
window.onclick = function (event) {
if (event.target === buyDialog) {
closeDialog();
}
};
if (document.location.search === "?order") {
showBuyDialog();
}
const menuMobileBtn = document.getElementById("open-mobile-menu");
const mobileMenu = document.querySelector(".w-nav-overlay");
const mobileMenuLinks = document.querySelectorAll(".w-nav-overlay a");
menuMobileBtn.addEventListener("click", (e) => {
e.preventDefault();
if (mobileMenu.classList.contains("open")) {
mobileMenu.classList.remove("open");
menuMobileBtn.classList.remove("open");
} else {
mobileMenu.classList.add("open");
menuMobileBtn.classList.add("open");
}
});
mobileMenuLinks.forEach((link) =>
link.addEventListener("click", () => {
mobileMenu.classList.remove("open");
menuMobileBtn.classList.remove("open");
})
);
const rendering = document.querySelector(".exploded-view-rendered");
rendering.addEventListener("animationend", () => {
rendering.style.opacity = 1;
observer.unobserve(rendering.parentElement);
rendering.parentElement.classList.add("show");
document.querySelectorAll(".exploded-part").forEach((part) => {
part.remove();
});
}, {once: true});

3678
source/green/styles.css Normal file

File diff suppressed because it is too large Load Diff

View File

@ -32,16 +32,16 @@ Home Assistant is open source software and available under the [Apache 2.0](http
This sections just contains some random numbers of the Home Assistant eco-system. Sorry, only the main repository counts.
| Description | 2015 | 2016 | 2017 |
| --------------------------------------------------------------------------- | ------- | --------- | ---------- |
| [Forum posts](https://community.home-assistant.io/) | 352 | 33004 | 171981 |
| [Forum topics](https://community.home-assistant.io/) | 83 | 4863 | 21512 |
| [Forum members](https://community.home-assistant.io/) | 92 | 3931 | 16663 |
| [GitHub stars](https://github.com/home-assistant/home-assistant/stargazers) | 2519 | 5239 | 12074 |
| [GitHub forks](https://github.com/home-assistant/home-assistant/network) | 374 | 1424 | 3474 |
| Page views [ha.io](/) | 600,372 | 6,614,343 | 23,727,481 |
| Description | 2015 | 2016 | 2017 | 2023 |
| --------------------------------------------------------------------------- | ---- | ----- | ---- | ---- |
| [Forum posts](https://community.home-assistant.io/) | 352 | 33004 | 172k | 2.5M |
| [Forum topics](https://community.home-assistant.io/) | 83 | 4863 | 22k | 205k |
| [Forum members](https://community.home-assistant.io/) | 92 | 3931 | 17k | 193k |
| [GitHub stars](https://github.com/home-assistant/home-assistant/stargazers) | 2519 | 5239 | 12k | 62k |
| [GitHub forks](https://github.com/home-assistant/home-assistant/network) | 374 | 1424 | 3.5k | 24k |
| Page views [ha.io](/) | 600k | 6.6M | 23M | |
## Commit per year
## Commits per year
The numbers below only covers the [main git repository](https://github.com/home-assistant/home-assistant/) and doesn't take the helpers ([home-assistant.io](https://github.com/home-assistant/home-assistant.io), [frontend](https://github.com/home-assistant/frontend), etc.) into account.
@ -51,6 +51,7 @@ The numbers below only covers the [main git repository](https://github.com/home-
2015: 2963
2016: 4299
2017: 3917
2022: 9991
```
More details and statistics can be found on [GitHub](https://github.com/home-assistant/home-assistant/graphs/contributors).

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_2" data-name="Layer 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 318.79 24.2">
<defs>
<style>
.cls-1 {
fill: #1d2126;
}
</style>
</defs>
<g id="Layer_2-2" data-name="Layer 2">
<g>
<path class="cls-1" d="m0,.42h3.97v9.77l10.3.03V.42h4v23.36h-4v-10.05l-10.3-.03v10.08H0V.42Z"/>
<path class="cls-1" d="m29.88,7.56c2.42,0,4.39.78,5.91,2.33,1.52,1.55,2.28,3.55,2.28,5.98s-.76,4.42-2.28,5.97c-1.52,1.55-3.49,2.33-5.91,2.33s-4.42-.78-5.94-2.33c-1.52-1.55-2.28-3.54-2.28-5.97s.76-4.45,2.28-5.99c1.52-1.55,3.5-2.32,5.94-2.32Zm0,13.2c1.29,0,2.34-.46,3.15-1.37.81-.91,1.21-2.1,1.21-3.55s-.4-2.64-1.21-3.54c-.81-.9-1.86-1.35-3.15-1.35s-2.39.45-3.2,1.35c-.81.9-1.22,2.08-1.22,3.54s.41,2.64,1.22,3.55c.81.91,1.88,1.37,3.2,1.37Z"/>
<path class="cls-1" d="m65.06,13.73v10.05h-3.67v-9.47c0-1.09-.28-1.95-.84-2.56-.56-.61-1.33-.92-2.3-.92-1.03,0-1.85.34-2.47,1.01-.61.67-.92,1.61-.92,2.82v9.12h-3.72v-9.47c0-1.09-.27-1.95-.82-2.56-.55-.61-1.3-.92-2.27-.92-1.03,0-1.86.34-2.48,1.01s-.94,1.61-.94,2.82v9.12h-3.78v-15.78h3.52l.12,1.52c.92-1.34,2.41-2.02,4.48-2.02,1.21,0,2.25.25,3.14.75.89.5,1.56,1.23,2.02,2.19.39-.92,1.02-1.64,1.91-2.16.89-.52,1.95-.78,3.18-.78,1.79,0,3.21.55,4.27,1.66,1.05,1.1,1.58,2.63,1.58,4.58Z"/>
<path class="cls-1" d="m83.4,17.28h-12.09c.12,1.19.57,2.09,1.34,2.72.77.62,1.75.94,2.94.94,1.93,0,3.28-.8,4.05-2.41l3.16,1.25c-.59,1.39-1.53,2.47-2.8,3.25-1.28.78-2.74,1.17-4.4,1.17-2.33,0-4.23-.76-5.68-2.29-1.45-1.53-2.18-3.53-2.18-6.01s.73-4.49,2.2-6.05c1.46-1.55,3.38-2.33,5.74-2.33s4.19.77,5.61,2.3c1.42,1.53,2.12,3.55,2.12,6.05v1.41Zm-12.03-2.66h8.19c-.07-1.28-.46-2.26-1.16-2.93s-1.65-1.01-2.84-1.01-2.14.34-2.88,1.02c-.74.68-1.18,1.65-1.31,2.91Z"/>
<path class="cls-1" d="m107.76,18.34h-8.89l-1.92,5.44h-4.09L101.29.42h4.09l8.45,23.36h-4.19l-1.89-5.44Zm-1.16-3.36l-3.27-9.34-3.3,9.34h6.56Z"/>
<path class="cls-1" d="m121.25,21.16c.78,0,1.4-.15,1.85-.46.45-.31.68-.76.68-1.37,0-.84-.57-1.41-1.7-1.69l-2.17-.58c-2.99-.81-4.48-2.35-4.48-4.61,0-1.45.53-2.63,1.58-3.55,1.05-.92,2.47-1.38,4.25-1.38,1.59,0,2.93.36,4.01,1.09,1.08.73,1.74,1.73,1.98,3l-3.39.8c-.07-.57-.34-1.03-.79-1.36-.45-.33-1.01-.5-1.68-.5s-1.22.17-1.64.51c-.42.34-.62.78-.62,1.32,0,.44.16.8.47,1.09.31.29.8.53,1.45.7l2.14.53c1.43.39,2.52.97,3.27,1.75s1.12,1.75,1.12,2.89c0,1.48-.56,2.66-1.67,3.53-1.11.88-2.65,1.31-4.61,1.31-1.81,0-3.27-.4-4.36-1.2s-1.74-1.87-1.94-3.23l3.45-.61c.06.62.34,1.11.84,1.46.49.35,1.15.52,1.98.52Z"/>
<path class="cls-1" d="m135.59,21.16c.78,0,1.4-.15,1.85-.46.45-.31.68-.76.68-1.37,0-.84-.57-1.41-1.7-1.69l-2.17-.58c-2.99-.81-4.48-2.35-4.48-4.61,0-1.45.53-2.63,1.58-3.55,1.05-.92,2.47-1.38,4.25-1.38,1.59,0,2.93.36,4.01,1.09,1.08.73,1.74,1.73,1.98,3l-3.39.8c-.07-.57-.34-1.03-.79-1.36-.45-.33-1.01-.5-1.68-.5s-1.22.17-1.64.51c-.42.34-.62.78-.62,1.32,0,.44.16.8.47,1.09.31.29.8.53,1.45.7l2.14.53c1.43.39,2.52.97,3.27,1.75s1.12,1.75,1.12,2.89c0,1.48-.56,2.66-1.67,3.53-1.11.88-2.65,1.31-4.61,1.31-1.81,0-3.27-.4-4.36-1.2s-1.74-1.87-1.94-3.23l3.45-.61c.06.62.34,1.11.84,1.46.49.35,1.15.52,1.98.52Z"/>
<path class="cls-1" d="m144.3,2.53c0-.68.23-1.24.7-1.7.46-.46,1.03-.69,1.7-.69s1.22.23,1.68.7c.46.47.7,1.03.7,1.69s-.23,1.22-.7,1.7c-.46.47-1.02.71-1.68.71s-1.22-.24-1.69-.71c-.47-.47-.7-1.04-.7-1.7Zm4.28,5.47v15.78h-3.78v-15.78h3.78Z"/>
<path class="cls-1" d="m157.73,21.16c.78,0,1.4-.15,1.85-.46.45-.31.68-.76.68-1.37,0-.84-.57-1.41-1.7-1.69l-2.17-.58c-2.99-.81-4.48-2.35-4.48-4.61,0-1.45.53-2.63,1.58-3.55,1.05-.92,2.47-1.38,4.25-1.38,1.59,0,2.93.36,4.01,1.09,1.08.73,1.74,1.73,1.98,3l-3.39.8c-.07-.57-.34-1.03-.79-1.36-.45-.33-1.01-.5-1.68-.5s-1.22.17-1.64.51c-.42.34-.62.78-.62,1.32,0,.44.16.8.47,1.09.31.29.8.53,1.45.7l2.14.53c1.43.39,2.52.97,3.27,1.75s1.12,1.75,1.12,2.89c0,1.48-.56,2.66-1.67,3.53-1.11.88-2.65,1.31-4.61,1.31-1.81,0-3.27-.4-4.36-1.2s-1.74-1.87-1.94-3.23l3.45-.61c.06.62.34,1.11.84,1.46.49.35,1.15.52,1.98.52Z"/>
<path class="cls-1" d="m175.33,23.78c-1.08.24-2,.36-2.75.36-1.59,0-2.84-.44-3.73-1.31s-1.34-2.18-1.34-3.91v-7.72h-2.42v-3.2h2.42V3.08h3.75v4.92h3.64v3.2h-3.64v7.05c0,1.71.66,2.56,1.98,2.56.43,0,.96-.11,1.59-.33l.48,3.3Z"/>
<path class="cls-1" d="m188,23.78c-.12-.51-.21-1.11-.27-1.8-.46.68-1.11,1.22-1.95,1.62-.84.4-1.81.6-2.91.6-1.73,0-3.11-.46-4.16-1.38-1.04-.92-1.56-2.17-1.56-3.74s.51-2.75,1.54-3.62c1.03-.87,2.43-1.3,4.21-1.3h4.73v-.61c0-.99-.29-1.73-.87-2.22-.58-.49-1.39-.73-2.43-.73-1.84,0-3.17.77-3.97,2.31l-2.75-1.61c1.33-2.51,3.64-3.77,6.92-3.77,1.99,0,3.62.51,4.89,1.53,1.28,1.03,1.92,2.69,1.92,4.98v6.28c0,1.78.09,2.93.28,3.45h-3.64Zm-.33-7.02h-3.89c-.89,0-1.57.2-2.06.61-.49.41-.73.96-.73,1.67s.25,1.3.75,1.69c.5.39,1.21.58,2.14.58,1.11,0,2.03-.35,2.73-1.05.71-.7,1.06-1.75,1.06-3.13v-.36Z"/>
<path class="cls-1" d="m209.52,14.05v9.73h-3.77v-8.92c0-1.5-.35-2.53-1.06-3.08-.68-.55-1.47-.83-2.38-.83-1.09,0-2.01.35-2.73,1.05-.73.7-1.09,1.69-1.09,2.98v8.8h-3.78v-15.78h3.55l.12,1.7c.45-.67,1.1-1.2,1.95-1.59.85-.39,1.79-.59,2.8-.59,2.04,0,3.62.57,4.73,1.7,1.11,1.13,1.66,2.74,1.66,4.82Z"/>
<path class="cls-1" d="m221.59,23.78c-1.08.24-2,.36-2.75.36-1.59,0-2.84-.44-3.73-1.31s-1.34-2.18-1.34-3.91v-7.72h-2.42v-3.2h2.42V3.08h3.75v4.92h3.64v3.2h-3.64v7.05c0,1.71.66,2.56,1.98,2.56.43,0,.96-.11,1.59-.33l.48,3.3Z"/>
<path class="cls-1" d="m253.83,10.41v13.38h-3.44l-.19-2.62c-.71.94-1.71,1.67-3.01,2.2s-2.7.79-4.2.79c-2.14,0-4.03-.51-5.7-1.54-1.66-1.03-2.95-2.45-3.85-4.27-.91-1.82-1.36-3.87-1.36-6.16s.47-4.44,1.42-6.28c.95-1.84,2.29-3.29,4.04-4.33,1.74-1.04,3.75-1.56,6.02-1.56,2.47,0,4.58.58,6.34,1.73,1.8,1.16,3.04,2.7,3.7,4.64l-3.55,1.47c-.5-1.35-1.32-2.38-2.46-3.08-1.14-.7-2.48-1.05-4.01-1.05-2.29,0-4.11.78-5.46,2.33-1.35,1.55-2.02,3.62-2.02,6.22s.67,4.55,2,5.99c1.33,1.44,3.08,2.16,5.23,2.16,1.6,0,3.07-.41,4.41-1.22,1.36-.81,2.16-2.18,2.38-4.09v-1.22h-7.17v-3.48h10.86Z"/>
<path class="cls-1" d="m265.24,7.78c.7,0,1.32.07,1.86.22v3.5c-.6-.16-1.19-.23-1.77-.23-1.33,0-2.37.41-3.11,1.24-.74.83-1.11,1.98-1.11,3.46v7.81h-3.84v-15.78h3.52l.22,1.86c.31-.67.85-1.18,1.61-1.54.76-.36,1.64-.54,2.62-.54Z"/>
<path class="cls-1" d="m283.62,17.28h-12.09c.12,1.19.57,2.09,1.34,2.72.77.62,1.75.94,2.94.94,1.93,0,3.28-.8,4.05-2.41l3.16,1.25c-.59,1.39-1.53,2.47-2.8,3.25-1.28.78-2.74,1.17-4.4,1.17-2.33,0-4.23-.76-5.68-2.29-1.45-1.53-2.18-3.53-2.18-6.01s.73-4.49,2.2-6.05c1.46-1.55,3.38-2.33,5.74-2.33s4.19.77,5.61,2.3c1.42,1.53,2.12,3.55,2.12,6.05v1.41Zm-12.03-2.66h8.19c-.07-1.28-.46-2.26-1.16-2.93s-1.65-1.01-2.84-1.01-2.14.34-2.88,1.02c-.74.68-1.18,1.65-1.31,2.91Z"/>
<path class="cls-1" d="m301.21,17.28h-12.09c.12,1.19.57,2.09,1.34,2.72.77.62,1.75.94,2.94.94,1.93,0,3.28-.8,4.05-2.41l3.16,1.25c-.59,1.39-1.53,2.47-2.8,3.25-1.28.78-2.74,1.17-4.4,1.17-2.33,0-4.23-.76-5.68-2.29-1.45-1.53-2.18-3.53-2.18-6.01s.73-4.49,2.2-6.05c1.46-1.55,3.38-2.33,5.74-2.33s4.19.77,5.61,2.3c1.42,1.53,2.12,3.55,2.12,6.05v1.41Zm-12.03-2.66h8.19c-.07-1.28-.46-2.26-1.16-2.93s-1.65-1.01-2.84-1.01-2.14.34-2.88,1.02c-.74.68-1.18,1.65-1.31,2.91Z"/>
<path class="cls-1" d="m318.79,14.05v9.73h-3.77v-8.92c0-1.5-.35-2.53-1.06-3.08-.68-.55-1.47-.83-2.38-.83-1.09,0-2.01.35-2.73,1.05-.73.7-1.09,1.69-1.09,2.98v8.8h-3.78v-15.78h3.55l.12,1.7c.45-.67,1.1-1.2,1.95-1.59.85-.39,1.79-.59,2.8-.59,2.04,0,3.62.57,4.73,1.7,1.11,1.13,1.66,2.74,1.66,4.82Z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="63px" height="63px" viewBox="0 0 63 63" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Combined Shape</title>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M35,-2.1431319e-16 L35,28 L63,28 L63,35 L35,35 L35,63 L28,63 L28,35 L0,35 L0,28 L28,28 L28,2.1431319e-16 L35,-2.1431319e-16 Z" id="Combined-Shape" fill="#0A1953"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Some files were not shown because too many files have changed in this diff Show More