1
0

Compare commits

...

470 Commits

62 changed files with 1055 additions and 491 deletions

15
.devcontainer/Dockerfile Normal file
View File

@@ -0,0 +1,15 @@
FROM ghcr.io/home-assistant/devcontainer:addons
RUN \
apt-get update \
&& apt-get install -y --no-install-recommends \
python3-pip \
python3-venv
ENV VIRTUAL_ENV=/opt/venv
RUN python3 -m venv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
COPY script/requirements.txt /
RUN pip install -r /requirements.txt

View File

@@ -0,0 +1,41 @@
{
"name": "ESPHome Home Assistant add-on devcontainer",
"image": "ghcr.io/esphome/devcontainer:addons",
"appPort": [
"7123:8123",
"7357:4357"
],
"postStartCommand": "bash devcontainer_bootstrap",
"runArgs": [
"-e",
"GIT_EDITOR=code --wait",
"--privileged"
],
"containerEnv": {
"WORKSPACE_DIRECTORY": "${containerWorkspaceFolder}"
},
"customizations": {
"vscode": {
"extensions": [
"timonwong.shellcheck",
"esbenp.prettier-vscode",
"ms-python.python"
],
"mounts": [
"type=volume,target=/var/lib/docker"
],
"settings": {
"terminal.integrated.profiles.linux": {
"zsh": {
"path": "/usr/bin/zsh"
}
},
"terminal.integrated.defaultProfile.linux": "zsh",
"editor.formatOnPaste": false,
"editor.formatOnSave": true,
"editor.formatOnType": true,
"files.trimTrailingWhitespace": true
}
}
}
}

7
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,7 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: daily
open-pull-requests-limit: 10

View File

@@ -6,81 +6,56 @@ on:
version:
description: The version to release
required: true
content:
description: The content of the release-notes
required: true
jobs:
create-release:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '3.x'
- run: pip install -r script/requirements.txt
- run: script/bump-version.py ${{ github.event.inputs.version }}
- name: Commit version bump
id: commit_version
run: |
git config user.name esphomebot
git config user.email esphome@nabucasa.com
git add .
git commit -m "Bump version to ${{ github.event.inputs.version }}"
git push
COMMIT=$(git rev-parse HEAD)
echo "::set-output name=commit_sha::${COMMIT}"
- if: ${{ contains(github.event.inputs.version, 'b') }}
name: Create Beta Release
uses: actions/create-release@v1
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ github.event.inputs.version }}
release_name: ${{ github.event.inputs.version }}
body: 'See https://beta.esphome.io/changelog/index.html'
prerelease: true
commitish: ${{ steps.commit_version.outputs.commit_sha }}
- if: ${{ !contains(github.event.inputs.version, 'b') }}
name: Create Stable Release
uses: actions/create-release@v1
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ github.event.inputs.version }}
release_name: ${{ github.event.inputs.version }}
body: 'See https://esphome.io/changelog/index.html'
prerelease: false
commitish: ${{ steps.commit_version.outputs.commit_sha }}
- uses: actions/checkout@v4.1.7
- uses: actions/setup-python@v5.1.1
with:
python-version: "3.11"
- run: pip install -r script/requirements.txt
- run: script/bump-version.py ${{ github.event.inputs.version }}
- name: Write Beta changelog
if: ${{ !contains(github.event.inputs.version, 'dev') }}
run: |
cat > esphome-beta/CHANGELOG.md << 'EOF'
## ${{ github.event.inputs.version }}
deploy-community-addons:
runs-on: ubuntu-latest
needs: [create-release]
steps:
- name: Publish beta release to community-addons repository
uses: peter-evans/repository-dispatch@v1.1.3
${{ github.event.inputs.content }}
EOF
- name: Write Stable changelog
if: ${{ !contains(github.event.inputs.version, 'b') && !contains(github.event.inputs.version, 'dev') }}
run: |
cat > esphome/CHANGELOG.md << 'EOF'
## ${{ github.event.inputs.version }}
${{ github.event.inputs.content }}
EOF
- name: Commit version bump
id: commit_version
run: |
git config user.name esphomebot
git config user.email esphome@nabucasa.com
git add .
git commit -m "Bump version to ${{ github.event.inputs.version }}"
git push
COMMIT=$(git rev-parse HEAD)
echo "::set-output name=commit_sha::${COMMIT}"
- name: Create a Release
uses: actions/create-release@v1.1.4
continue-on-error: true
if: ${{ !contains(github.event.inputs.version, 'dev') }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
token: ${{ secrets.COMMUNITY_ADDONS_TOKEN }}
repository: hassio-addons/repository-beta
event-type: update
client-payload: >
{
"addon": "esphome",
"name": "ESPHome",
"repository": "esphome/home-assistant-addon",
"version": "${{ github.event.inputs.version }}"
}
- if: ${{ !contains(github.event.inputs.version, 'b') }}
name: Publish stable release to community-addons repository
uses: peter-evans/repository-dispatch@v1.1.3
with:
token: ${{ secrets.COMMUNITY_ADDONS_TOKEN }}
repository: hassio-addons/repository
event-type: update
client-payload: >
{
"addon": "esphome",
"name": "ESPHome",
"repository": "esphome/home-assistant-addon",
"version": "${{ github.event.inputs.version }}"
}
tag_name: ${{ github.event.inputs.version }}
release_name: ${{ github.event.inputs.version }}
body: ${{ github.event.inputs.content }}
prerelease: ${{ contains(github.event.inputs.version, 'b') }}
commitish: ${{ steps.commit_version.outputs.commit_sha }}

View File

@@ -1,46 +0,0 @@
name: Update Community Repo
on:
workflow_dispatch:
inputs:
version:
description: The version to release
required: true
beta:
description: Whether to release a beta version
type: boolean
required: false
default: false
jobs:
deploy-community-addons:
runs-on: ubuntu-latest
steps:
- if: ${{ contains(github.event.inputs.version, 'b') || github.event.inputs.beta == 'true' }}
name: Publish beta release to community-addons repository
uses: peter-evans/repository-dispatch@v1.1.3
with:
token: ${{ secrets.COMMUNITY_ADDONS_TOKEN }}
repository: hassio-addons/repository-beta
event-type: update
client-payload: >
{
"addon": "esphome",
"name": "ESPHome",
"repository": "esphome/home-assistant-addon",
"version": "${{ github.event.inputs.version }}"
}
- if: ${{ !contains(github.event.inputs.version, 'b') }}
name: Publish stable release to community-addons repository
uses: peter-evans/repository-dispatch@v1.1.3
with:
token: ${{ secrets.COMMUNITY_ADDONS_TOKEN }}
repository: hassio-addons/repository
event-type: update
client-payload: >
{
"addon": "esphome",
"name": "ESPHome",
"repository": "esphome/home-assistant-addon",
"version": "${{ github.event.inputs.version }}"
}

View File

@@ -0,0 +1,41 @@
name: Build devcontainer image
on:
workflow_dispatch:
push:
branches:
- main
paths:
- .devcontainer/**
schedule:
- cron: '0 0 1 * *'
pull_request:
branches:
- main
paths:
- .devcontainer/**
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.7
- name: Log in to the GitHub container registry
uses: docker/login-action@v3.2.0
if: github.event_name != 'pull_request'
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3.1.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3.4.0
- name: Build and Push
uses: docker/build-push-action@v6.4.1
with:
context: .
file: .devcontainer/Dockerfile
tags: ghcr.io/${{ github.repository_owner }}/devcontainer:addons
push: ${{ github.event_name != 'pull_request' }}
platforms: linux/amd64,linux/arm64

View File

@@ -19,16 +19,16 @@ jobs:
channel: dev
steps:
- name: ⤵️ Check out code from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v4.1.7
- name: 🛠 Setup Python
uses: actions/setup-python@v2
uses: actions/setup-python@v5.1.1
with:
python-version: '3.x'
python-version: '3.11'
- name: 🛠 Install dependencies
run: pip install -r script/requirements.txt
- name: 🛠 Generate files from template
run: python script/generate.py ${{ matrix.channels.channel }}
- name: 🚀 Run Home Assistant Add-on Lint on ${{ matrix.channels.channel }}
uses: frenck/action-addon-linter@v2
uses: frenck/action-addon-linter@v2.15.1
with:
path: "./${{ matrix.channels.folder }}"

19
.vscode/tasks.json vendored Normal file
View File

@@ -0,0 +1,19 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "Start Home Assistant",
"type": "shell",
"command": "supervisor_run",
"group": {
"kind": "test",
"isDefault": true
},
"presentation": {
"reveal": "always",
"panel": "new"
},
"problemMatcher": []
}
]
}

View File

@@ -1 +1,126 @@
See https://esphome.io/changelog/index.html
## 2024.9.0
## Full list of changes
### New Components
- Add HMAC-MD5 support for authenticating OTA updates [esphome#7200](https://github.com/esphome/esphome/pull/7200) by [@dwmw2](https://github.com/dwmw2) (new-integration)
- Add support for BL0906 energy meter [esphome#7339](https://github.com/esphome/esphome/pull/7339) by [@tarontop](https://github.com/tarontop) (new-integration)
- [udp] Implement UDP sensor broadcast [esphome#6865](https://github.com/esphome/esphome/pull/6865) by [@clydebarrow](https://github.com/clydebarrow) (new-integration)
- CH422G support [esphome#7356](https://github.com/esphome/esphome/pull/7356) by [@jesterret](https://github.com/jesterret) (new-integration)
- Add StatsD component [esphome#6642](https://github.com/esphome/esphome/pull/6642) by [@Links2004](https://github.com/Links2004) (new-integration)
- Add support for using BMP280 with SPI [esphome#7053](https://github.com/esphome/esphome/pull/7053) by [@ademuri](https://github.com/ademuri) (new-integration) (breaking-change)
- LTR-501, LTR-301, LTR-558 Series of Lite-On Light (ALS) and Proximity(PS) sensors [esphome#6262](https://github.com/esphome/esphome/pull/6262) by [@latonita](https://github.com/latonita) (new-integration)
### Breaking Changes
- [ili9xxx] Make `invert_colors` required [esphome#7292](https://github.com/esphome/esphome/pull/7292) by [@gvdhoven](https://github.com/gvdhoven) (breaking-change)
- Add support for using BMP280 with SPI [esphome#7053](https://github.com/esphome/esphome/pull/7053) by [@ademuri](https://github.com/ademuri) (new-integration) (breaking-change)
- Move I2S config settings the the base i2sAudio files. Phase 1 [esphome#7183](https://github.com/esphome/esphome/pull/7183) by [@nielsnl68](https://github.com/nielsnl68) (breaking-change)
- [i2s_audio] Add more options to speakers and microphones [esphome#7306](https://github.com/esphome/esphome/pull/7306) by [@pyos](https://github.com/pyos) (breaking-change)
### Beta Changes
- [voice-assistant] Dont error on ``no_wake_word`` timeout error with streaming wake word [esphome#7435](https://github.com/esphome/esphome/pull/7435) by [@jesserockz](https://github.com/jesserockz)
- Improve manufacturer data tracing to identify BLE devices a bit easie… [esphome#7332](https://github.com/esphome/esphome/pull/7332) by [@tomer-w](https://github.com/tomer-w)
- Add sample_bytes to media player supported format [esphome#7451](https://github.com/esphome/esphome/pull/7451) by [@synesthesiam](https://github.com/synesthesiam)
- [docker] Bump git from 1:2.39.2-1.1 to 1:2.39.5-0+deb12u1 [esphome#7452](https://github.com/esphome/esphome/pull/7452) by [@jesserockz](https://github.com/jesserockz)
- Add voice assistant configuration messages [esphome#7445](https://github.com/esphome/esphome/pull/7445) by [@synesthesiam](https://github.com/synesthesiam)
- Dont replace project name spaces with underlines [esphome#7455](https://github.com/esphome/esphome/pull/7455) by [@jesserockz](https://github.com/jesserockz)
- Add voice assistant methods for configuration [esphome#7459](https://github.com/esphome/esphome/pull/7459) by [@synesthesiam](https://github.com/synesthesiam)
### All changes
- [code-quality] fix performance-unnecessary-value-param [esphome#7274](https://github.com/esphome/esphome/pull/7274) by [@tomaszduda23](https://github.com/tomaszduda23)
- [code-quality] fix clang-tidy prometheus [esphome#7284](https://github.com/esphome/esphome/pull/7284) by [@tomaszduda23](https://github.com/tomaszduda23)
- [code-quality] fix clang-tidy ota [esphome#7282](https://github.com/esphome/esphome/pull/7282) by [@tomaszduda23](https://github.com/tomaszduda23)
- [code-quality] fix clang-tidy e131 [esphome#7281](https://github.com/esphome/esphome/pull/7281) by [@tomaszduda23](https://github.com/tomaszduda23)
- [code-quality] fix clang-tidy wireguard [esphome#7287](https://github.com/esphome/esphome/pull/7287) by [@tomaszduda23](https://github.com/tomaszduda23)
- [code-quality] fix clang-tidy improv_serial [esphome#7283](https://github.com/esphome/esphome/pull/7283) by [@tomaszduda23](https://github.com/tomaszduda23)
- [code-quality] fix clang-tidy captive_portal [esphome#7280](https://github.com/esphome/esphome/pull/7280) by [@tomaszduda23](https://github.com/tomaszduda23)
- Add HMAC-MD5 support for authenticating OTA updates [esphome#7200](https://github.com/esphome/esphome/pull/7200) by [@dwmw2](https://github.com/dwmw2) (new-integration)
- [const] Add UNIT_LITRE [esphome#7317](https://github.com/esphome/esphome/pull/7317) by [@Roving-Ronin](https://github.com/Roving-Ronin)
- [code-quality] fix clang-tidy socket [esphome#7285](https://github.com/esphome/esphome/pull/7285) by [@tomaszduda23](https://github.com/tomaszduda23)
- [code-quality] fix clang-tidy cstddef [esphome#7324](https://github.com/esphome/esphome/pull/7324) by [@tomaszduda23](https://github.com/tomaszduda23)
- Add output source priority "hybrid" [esphome#7322](https://github.com/esphome/esphome/pull/7322) by [@syssi](https://github.com/syssi)
- Enable verbose mode from env ESPHOME_VERBOSE or --verbose [esphome#6987](https://github.com/esphome/esphome/pull/6987) by [@ptr727](https://github.com/ptr727)
- Tuya Number: allow to set hidden datapoints [esphome#7024](https://github.com/esphome/esphome/pull/7024) by [@szupi-ipuzs](https://github.com/szupi-ipuzs)
- feat: Expand ByteBuffer [esphome#7316](https://github.com/esphome/esphome/pull/7316) by [@Rapsssito](https://github.com/Rapsssito)
- [ledc] Tweak fix in #6997 [esphome#7336](https://github.com/esphome/esphome/pull/7336) by [@kbx81](https://github.com/kbx81)
- [ledc] Fix maximum brightness on ESP-IDF 5.1 [esphome#7342](https://github.com/esphome/esphome/pull/7342) by [@clydebarrow](https://github.com/clydebarrow)
- [lvgl] Bug fixes: [esphome#7341](https://github.com/esphome/esphome/pull/7341) by [@clydebarrow](https://github.com/clydebarrow)
- [const] Move ``CONF_LINE_FREQUENCY`` to const.py [esphome#7351](https://github.com/esphome/esphome/pull/7351) by [@jesserockz](https://github.com/jesserockz)
- bl0942: Fix init sequence, add address and line_frequency options [esphome#7250](https://github.com/esphome/esphome/pull/7250) by [@dwmw2](https://github.com/dwmw2)
- Add supported formats to media player [esphome#7318](https://github.com/esphome/esphome/pull/7318) by [@synesthesiam](https://github.com/synesthesiam)
- Add reset to esp32_rmt_led_strip [esphome#7354](https://github.com/esphome/esphome/pull/7354) by [@angelnu](https://github.com/angelnu)
- [ili9xxx] Make `invert_colors` required [esphome#7292](https://github.com/esphome/esphome/pull/7292) by [@gvdhoven](https://github.com/gvdhoven) (breaking-change)
- Add WS2811 to esp32_rmt_led_strip [esphome#7353](https://github.com/esphome/esphome/pull/7353) by [@angelnu](https://github.com/angelnu)
- [lvgl] Add lvgl.widget.focus action and related triggers. [esphome#7315](https://github.com/esphome/esphome/pull/7315) by [@clydebarrow](https://github.com/clydebarrow)
- esp32_can: suppress compiler warning [esphome#7372](https://github.com/esphome/esphome/pull/7372) by [@mrk-its](https://github.com/mrk-its)
- Add support for BL0906 energy meter [esphome#7339](https://github.com/esphome/esphome/pull/7339) by [@tarontop](https://github.com/tarontop) (new-integration)
- [platformio] Add environments for ESP-IDF 5.3 for development [esphome#7371](https://github.com/esphome/esphome/pull/7371) by [@clydebarrow](https://github.com/clydebarrow)
- [lvgl] Bug fixes [esphome#7370](https://github.com/esphome/esphome/pull/7370) by [@clydebarrow](https://github.com/clydebarrow)
- [bytebuffer] Use existing bit_cast operations. [esphome#7374](https://github.com/esphome/esphome/pull/7374) by [@clydebarrow](https://github.com/clydebarrow)
- Bump actions/setup-python from 5.1.0 to 5.2.0 [esphome#7375](https://github.com/esphome/esphome/pull/7375) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump actions/setup-python from 5.1.1 to 5.2.0 in /.github/actions/restore-python [esphome#7376](https://github.com/esphome/esphome/pull/7376) by [@dependabot[bot]](https://github.com/apps/dependabot)
- [gt911] Add reset pin config [esphome#7373](https://github.com/esphome/esphome/pull/7373) by [@clydebarrow](https://github.com/clydebarrow)
- [st7701s] Add delay feature in init sequences [esphome#7343](https://github.com/esphome/esphome/pull/7343) by [@clydebarrow](https://github.com/clydebarrow)
- Add now required `invert_colors` option to test files referencing ili9xxx [esphome#7367](https://github.com/esphome/esphome/pull/7367) by [@clydebarrow](https://github.com/clydebarrow)
- esp32_can: make queue lengths configurable [esphome#7361](https://github.com/esphome/esphome/pull/7361) by [@mrk-its](https://github.com/mrk-its)
- [code-quality] fix clang-tidy web_server and web_server_base [esphome#7286](https://github.com/esphome/esphome/pull/7286) by [@tomaszduda23](https://github.com/tomaszduda23)
- Update MiCS Values [esphome#7173](https://github.com/esphome/esphome/pull/7173) by [@TrevorSchirmer](https://github.com/TrevorSchirmer)
- Tuya Number: allow restoring value of hidden datapoints [esphome#7346](https://github.com/esphome/esphome/pull/7346) by [@szupi-ipuzs](https://github.com/szupi-ipuzs)
- [udp] Implement UDP sensor broadcast [esphome#6865](https://github.com/esphome/esphome/pull/6865) by [@clydebarrow](https://github.com/clydebarrow) (new-integration)
- update logs for bluetooth proxy [esphome#7382](https://github.com/esphome/esphome/pull/7382) by [@tomaszduda23](https://github.com/tomaszduda23)
- [font] Make display an auto-load, not a dependency [esphome#7366](https://github.com/esphome/esphome/pull/7366) by [@clydebarrow](https://github.com/clydebarrow)
- CH422G support [esphome#7356](https://github.com/esphome/esphome/pull/7356) by [@jesterret](https://github.com/jesterret) (new-integration)
- [rpi_dpi_rgb] Add enable_pin and reset_display method to driver [esphome#7383](https://github.com/esphome/esphome/pull/7383) by [@lboue](https://github.com/lboue)
- Bump actions/upload-artifact from 4.3.4 to 4.4.0 [esphome#7379](https://github.com/esphome/esphome/pull/7379) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Fix build for esp32h2 using esp-idf 5.3 [esphome#7393](https://github.com/esphome/esphome/pull/7393) by [@mrene](https://github.com/mrene)
- Bump mDNS and follow ruff's suggestions [esphome#7308](https://github.com/esphome/esphome/pull/7308) by [@HeMan](https://github.com/HeMan)
- Bump rp2040 Arduino platform and framework [esphome#7134](https://github.com/esphome/esphome/pull/7134) by [@HeMan](https://github.com/HeMan)
- [gree] Add support for YX1FF remote [esphome#7298](https://github.com/esphome/esphome/pull/7298) by [@dangreco](https://github.com/dangreco)
- [modbus_controller] Allow duplicate command config [esphome#7311](https://github.com/esphome/esphome/pull/7311) by [@0x3333](https://github.com/0x3333)
- Better support for task blocking ring buffer reads and writes [esphome#7390](https://github.com/esphome/esphome/pull/7390) by [@kahrendt](https://github.com/kahrendt)
- Bump pypa/gh-action-pypi-publish from 1.9.0 to 1.10.0 [esphome#7395](https://github.com/esphome/esphome/pull/7395) by [@dependabot[bot]](https://github.com/apps/dependabot)
- [api] Remove id from ``MediaPlayerSupportedFormat`` [esphome#7406](https://github.com/esphome/esphome/pull/7406) by [@jesserockz](https://github.com/jesserockz)
- Drop max BLE client connections limitation [esphome#7088](https://github.com/esphome/esphome/pull/7088) by [@syssi](https://github.com/syssi)
- [bl0942] loop and overflow cleanup [esphome#7358](https://github.com/esphome/esphome/pull/7358) by [@dwmw2](https://github.com/dwmw2)
- Bump peter-evans/create-pull-request from 6.1.0 to 7.0.0 [esphome#7405](https://github.com/esphome/esphome/pull/7405) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump pypa/gh-action-pypi-publish from 1.10.0 to 1.10.1 [esphome#7404](https://github.com/esphome/esphome/pull/7404) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Voice assist improvement - configurable conversation_id timeout [esphome#7385](https://github.com/esphome/esphome/pull/7385) by [@jeffc](https://github.com/jeffc)
- Support BL0942 calibration [esphome#7299](https://github.com/esphome/esphome/pull/7299) by [@dwmw2](https://github.com/dwmw2)
- [micro_wake_word] Remove duplicated download code [esphome#7401](https://github.com/esphome/esphome/pull/7401) by [@jesserockz](https://github.com/jesserockz)
- Add StatsD component [esphome#6642](https://github.com/esphome/esphome/pull/6642) by [@Links2004](https://github.com/Links2004) (new-integration)
- [homeassistant-switch] Support different entity domains [esphome#7331](https://github.com/esphome/esphome/pull/7331) by [@jesserockz](https://github.com/jesserockz)
- Add support for using BMP280 with SPI [esphome#7053](https://github.com/esphome/esphome/pull/7053) by [@ademuri](https://github.com/ademuri) (new-integration) (breaking-change)
- Add voice assistant announce [esphome#7377](https://github.com/esphome/esphome/pull/7377) by [@synesthesiam](https://github.com/synesthesiam)
- [lvgl] Msgbox fixes and enhancements [esphome#7380](https://github.com/esphome/esphome/pull/7380) by [@clydebarrow](https://github.com/clydebarrow)
- libretiny: Allow specifying version of explicitly imported sources [esphome#7408](https://github.com/esphome/esphome/pull/7408) by [@dwmw2](https://github.com/dwmw2)
- [libretiny] Report version 1.7.0 for 'dev' and 'latest' [esphome#7415](https://github.com/esphome/esphome/pull/7415) by [@dwmw2](https://github.com/dwmw2)
- LTR-501, LTR-301, LTR-558 Series of Lite-On Light (ALS) and Proximity(PS) sensors [esphome#6262](https://github.com/esphome/esphome/pull/6262) by [@latonita](https://github.com/latonita) (new-integration)
- Fix armv7 container builds [esphome#7426](https://github.com/esphome/esphome/pull/7426) by [@jesserockz](https://github.com/jesserockz)
- [gh-actions] Don't produce docker build summaries [esphome#7430](https://github.com/esphome/esphome/pull/7430) by [@jesserockz](https://github.com/jesserockz)
- Add BK72xx support to require_framework_version() [esphome#7409](https://github.com/esphome/esphome/pull/7409) by [@dwmw2](https://github.com/dwmw2)
- Switch IPv6 platform check to use require_framework_version() [esphome#7410](https://github.com/esphome/esphome/pull/7410) by [@dwmw2](https://github.com/dwmw2)
- [bl0942] Improve energy reporting [esphome#7428](https://github.com/esphome/esphome/pull/7428) by [@dwmw2](https://github.com/dwmw2)
- [rpi_dpi_rgb] Add bounce_buffer config for ESP-IDF 5.x [esphome#7423](https://github.com/esphome/esphome/pull/7423) by [@clydebarrow](https://github.com/clydebarrow)
- [LVGL] Add color gradients [esphome#7427](https://github.com/esphome/esphome/pull/7427) by [@clydebarrow](https://github.com/clydebarrow)
- [dsmr] Add internal 'telegram' text_sensor to support bridging [esphome#6841](https://github.com/esphome/esphome/pull/6841) by [@marcovaneck](https://github.com/marcovaneck)
- Pull in new AsyncTCP for IPv6 on BK72xx [esphome#7431](https://github.com/esphome/esphome/pull/7431) by [@dwmw2](https://github.com/dwmw2)
- Bump LibreTiny recommended version to 1.7.0 [esphome#7432](https://github.com/esphome/esphome/pull/7432) by [@dwmw2](https://github.com/dwmw2)
- Enable IPv6 support for BK72xx [esphome#7398](https://github.com/esphome/esphome/pull/7398) by [@dwmw2](https://github.com/dwmw2)
- Move I2S config settings the the base i2sAudio files. Phase 1 [esphome#7183](https://github.com/esphome/esphome/pull/7183) by [@nielsnl68](https://github.com/nielsnl68) (breaking-change)
- Implement all supported thermocouple types for MAX31856 [esphome#7218](https://github.com/esphome/esphome/pull/7218) by [@ArkanStasarik](https://github.com/ArkanStasarik)
- [i2s_audio] Add more options to speakers and microphones [esphome#7306](https://github.com/esphome/esphome/pull/7306) by [@pyos](https://github.com/pyos) (breaking-change)
- [uponor_smatrix] Modifies sending algorithm [esphome#7326](https://github.com/esphome/esphome/pull/7326) by [@skasi7](https://github.com/skasi7)
- User configurable frame buffer. [esphome#7360](https://github.com/esphome/esphome/pull/7360) by [@ajwahab](https://github.com/ajwahab)
- [Modbus Controller] Added preference to change command retries [esphome#7312](https://github.com/esphome/esphome/pull/7312) by [@0x3333](https://github.com/0x3333)
- [voice-assistant] Dont error on ``no_wake_word`` timeout error with streaming wake word [esphome#7435](https://github.com/esphome/esphome/pull/7435) by [@jesserockz](https://github.com/jesserockz)
- Improve manufacturer data tracing to identify BLE devices a bit easie… [esphome#7332](https://github.com/esphome/esphome/pull/7332) by [@tomer-w](https://github.com/tomer-w)
- Add sample_bytes to media player supported format [esphome#7451](https://github.com/esphome/esphome/pull/7451) by [@synesthesiam](https://github.com/synesthesiam)
- [docker] Bump git from 1:2.39.2-1.1 to 1:2.39.5-0+deb12u1 [esphome#7452](https://github.com/esphome/esphome/pull/7452) by [@jesserockz](https://github.com/jesserockz)
- Add voice assistant configuration messages [esphome#7445](https://github.com/esphome/esphome/pull/7445) by [@synesthesiam](https://github.com/synesthesiam)
- Dont replace project name spaces with underlines [esphome#7455](https://github.com/esphome/esphome/pull/7455) by [@jesserockz](https://github.com/jesserockz)
- Add voice assistant methods for configuration [esphome#7459](https://github.com/esphome/esphome/pull/7459) by [@synesthesiam](https://github.com/synesthesiam)

View File

@@ -1,5 +1,4 @@
# Home Assistant Community Add-on: ESPHome
# ESPHome Add-on
## Installation
The installation of this add-on is pretty straightforward and not different in comparison to installing any other Home Assistant add-on.

View File

@@ -1,9 +1,8 @@
# ESPHome Home Assistant Add-On
# ESPHome Beta Add-On
[![ESPHome logo](https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/logo.png)](https://esphome.io/)
[![ESPHome logo][logo]][website]
[![GitHub stars](https://img.shields.io/github/stars/esphome/esphome.svg?style=social&label=Star&maxAge=2592000)](https://github.com/esphome/esphome)
[![GitHub Release][releases-shield]][releases]
[![GitHub stars][github-stars-shield]][repository]
[![Discord][discord-shield]][discord]
## About
@@ -14,10 +13,10 @@ is write YAML configuration files; the rest (over-the-air updates, compiling) is
handled by ESPHome.
<p align="center">
<img title="ESPHome dashboard screenshot" src="https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/images/screenshot.png" width="700px"></img>
<img title="ESPHome dashboard screenshot" src="https://github.com/esphome/home-assistant-addon/raw/main/esphome-beta/images/screenshot.png" width="700px"></img>
</p>
[View the ESPHome documentation](https://esphome.io/)
[View the ESPHome documentation][website]
## Example
@@ -26,15 +25,17 @@ firmware. For example, to include a [DHT22][dht22].
temperature and humidity sensor, you just need to include 8 lines of YAML
in your configuration file:
<img title="ESPHome DHT configuration example" src="https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/images/dht-example.png" width="500px"></img>
<img title="ESPHome DHT configuration example" src="https://github.com/esphome/home-assistant-addon/raw/main/esphome-beta/images/dht-example.png" width="500px"></img>
Then just click UPLOAD and the sensor will magically appear in Home Assistant:
<img title="ESPHome Home Assistant MQTT discovery" src="https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/images/temperature-humidity.png" width="600px"></img>
<img title="ESPHome Home Assistant discovery" src="https://github.com/esphome/home-assistant-addon/raw/main/esphome-beta/images/temperature-humidity.png" width="600px"></img>
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
[dht22]: https://esphome.io/components/sensor/dht.html
[discord]: https://discord.gg/KhAMKrd
[releases-shield]: https://img.shields.io/github/release/esphome/esphome.svg
[releases]: https://esphome.io/changelog/index.html
[repository]: https://github.com/esphome/esphome
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
[github-stars-shield]: https://img.shields.io/github/stars/esphome/esphome.svg?style=social&label=Star&maxAge=2592000
[dht22]: https://beta.esphome.io/components/sensor/dht.html
[releases]: https://beta.esphome.io/changelog/index.html
[logo]: https://github.com/esphome/home-assistant-addon/raw/main/esphome-beta/logo.png
[website]: https://beta.esphome.io/

View File

@@ -1,44 +0,0 @@
{
"advanced": true,
"arch": [
"amd64",
"armv7",
"aarch64"
],
"auth_api": true,
"backup_exclude": [
"*/*/"
],
"description": "Beta version of ESPHome add-on",
"hassio_api": true,
"host_network": true,
"image": "ghcr.io/esphome/esphome-hassio-{arch}",
"ingress": true,
"ingress_port": 0,
"map": [
"ssl:ro",
"config:rw"
],
"name": "ESPHome (beta)",
"panel_icon": "mdi:chip",
"ports": {
"6052/tcp": null
},
"ports_description": {
"6052/tcp": "Web interface (not required for Home Assistant ingress)"
},
"schema": {
"certfile": "str?",
"keyfile": "str?",
"leave_front_door_open": "bool?",
"relative_url": "str?",
"ssl": "bool?",
"status_use_ping": "bool?",
"streamer_mode": "bool?"
},
"slug": "esphome-beta",
"stage": "experimental",
"uart": true,
"url": "https://beta.esphome.io/",
"version": "2022.2.1"
}

42
esphome-beta/config.yaml Normal file
View File

@@ -0,0 +1,42 @@
---
url: https://beta.esphome.io/
arch:
- amd64
- armv7
- aarch64
hassio_api: true
auth_api: true
host_network: true
ingress: true
ingress_port: 0
panel_icon: mdi:chip
uart: true
ports:
6052/tcp: null
map:
- ssl:ro
- config:rw
discovery:
- esphome
schema:
status_use_ping: bool?
streamer_mode: bool?
home_assistant_dashboard_integration: bool?
default_compile_process_limit: int(1,)?
ssl: bool?
certfile: str?
keyfile: str?
leave_front_door_open: bool?
backup_exclude:
- '*/*/'
init: false
startup: services
name: ESPHome (beta)
version: 2024.9.0
slug: esphome-beta
description: Beta version of ESPHome add-on
image: ghcr.io/esphome/esphome-hassio
stage: experimental
advanced: true
options:
home_assistant_dashboard_integration: false

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@@ -0,0 +1,67 @@
---
configuration:
certfile:
name: Certificate file
description: >-
The certificate file to use for SSL. Note that this file must
exist in the /ssl/ folder.
default_compile_process_limit:
name: Default compile process limit
description: >-
The default compile process limit. This is the maximum number of
simultaneous compile processes that ESPHome will run.
esphome_fork:
name: Install ESPHome from a fork or branch
description: >-
For example to test a pull request, use `pull/XXXX/head` where `XXXX` is
the PR number, or you can specify the username of the fork owner and
branch `username:branch` which assumes the repository is named `esphome`
still.
If you need to test the latest commit on dev branch before the image is
updated you can enter `dev` here.
Please note that the fork or branch you are using **must** be up to
date with ESPHome dev or the add-on **will not start**.
home_assistant_dashboard_integration:
name: Home Assistant Dashboard Integration
description: >-
Enables/Disables the ESPHome dashboard integrating with Home Assistant
for automatic configuration of devices and device updates. If you use
multiple version of the ESPHome add-on, make sure it is enabled on a
single add-on only.
keyfile:
name: Private key file
description: >-
The private key file to use for SSL. Note that this file must
exist in the /ssl/ folder.
leave_front_door_open:
name: Disable external authentication
description: >-
Disables external authentication when having opened the add-on
on an external port. **WARNING**: This is a security risk!
relative_url:
name: Relative URL
description: >-
Host the ESPHome dashboard under a relative URL, so that it can be
integrated into existing web proxies like NGINX under a relative URL.
Defaults to `/`.
ssl:
name: SSL
description: >-
Enables/Disables SSL (HTTPS) on the web interface.
status_use_ping:
name: Use ping for status
description: >-
By default the dashboard uses mDNS to check if nodes are online. This does
not work across subnets unless your router supports mDNS forwarding
or avahi. Enabling this option will use ICMP ping to check if nodes are
online.
streamer_mode:
name: Streamer mode
description: >-
Enables/Disables streamer mode, which makes ESPHome hide all
potentially private information. So for example WiFi (B)SSIDs (which could
be used to find your location), usernames, etc.
network:
6052/tcp: Web interface (to use without Home Assistant)

View File

@@ -1 +1 @@
See https://esphome.io/changelog/index.html
See https://github.com/esphome/esphome/commits/dev

View File

@@ -1,40 +1,31 @@
# Home Assistant Community Add-on: ESPHome
# ESPHome DEV add on
## Installation
This is **development** version of the ESPHome add on.
The installation of this add-on is pretty straightforward and not different in comparison to installing any other Home Assistant add-on.
To deploy production nodes please use mainstream release add on.
1. Search for the “ESPHome” add-on in the Supervisor add-on store.
2. Press install to download the add-on and unpack it on your machine. This can take some time.
3. Optional: If you're using SSL/TLS certificates and want to encrypt your communication to this add-on, please enter `true` into the `ssl` field and set the `fullchain` and `certfile` options accordingly.
4. Start the add-on, check the logs of the add-on to see if everything went well.
5. Click "OPEN WEB UI" to open the ESPHome dashboard. You will be asked for your Home Assistant credentials - ESPHome uses Home Assistant's authentication system to log you in.
You can view the ESPHome documentation at https://esphome.io/
The add on uses a version of ESPHome built automatically every day at 02:00 UTC. and is used to test components in development. See the `esphome_fork` configuration below to properly configure the add on. Once you update the configuration make sure to rebuild the image.
## Configuration
**Note**: _Remember to restart the add-on when the configuration is changed._
Example add-on configuration:
```json
{
"ssl": false,
"certfile": "fullchain.pem",
"keyfile": "privkey.pem"
}
```
### Option: `esphome_fork`
Install ESPHome from a fork or branch.
For example to test a pull request, use `pull/XXXX/head` where `XXXX` is the PR number,
or you can specify the username of the fork owner and branch `username:branch` which
assumes the repository is named `esphome` still.
assumes the repository is named `esphome` still.
If you need to test the latest commit on dev branch before the image is updated you can enter `dev` here.
Please note that the fork or branch you are using **must** be up to date with ESPHome dev
or the add-on **will not start**.
or the add-on **will not start**.
## General ESPHome add on configurations
General options also available in other versions.
### Option: `ssl`

View File

@@ -1,10 +0,0 @@
ARG BUILD_FROM=esphome/esphome-hassio-amd64:dev
FROM ${BUILD_FROM}
# Copy root filesystem
COPY rootfs /
# Labels
LABEL \
io.hass.type="addon" \
io.hass.version=dev

View File

@@ -1,9 +1,8 @@
# ESPHome Home Assistant Add-On
# ESPHome Dev Add-On
[![ESPHome logo](https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/logo.png)](https://esphome.io/)
[![ESPHome logo][logo]][website]
[![GitHub stars](https://img.shields.io/github/stars/esphome/esphome.svg?style=social&label=Star&maxAge=2592000)](https://github.com/esphome/esphome)
[![GitHub Release][releases-shield]][releases]
[![GitHub stars][github-stars-shield]][repository]
[![Discord][discord-shield]][discord]
## About
@@ -14,10 +13,10 @@ is write YAML configuration files; the rest (over-the-air updates, compiling) is
handled by ESPHome.
<p align="center">
<img title="ESPHome dashboard screenshot" src="https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/images/screenshot.png" width="700px"></img>
<img title="ESPHome dashboard screenshot" src="https://github.com/esphome/home-assistant-addon/raw/main/esphome-dev/images/screenshot.png" width="700px"></img>
</p>
[View the ESPHome documentation](https://esphome.io/)
[View the ESPHome documentation][website]
## Example
@@ -26,15 +25,17 @@ firmware. For example, to include a [DHT22][dht22].
temperature and humidity sensor, you just need to include 8 lines of YAML
in your configuration file:
<img title="ESPHome DHT configuration example" src="https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/images/dht-example.png" width="500px"></img>
<img title="ESPHome DHT configuration example" src="https://github.com/esphome/home-assistant-addon/raw/main/esphome-dev/images/dht-example.png" width="500px"></img>
Then just click UPLOAD and the sensor will magically appear in Home Assistant:
<img title="ESPHome Home Assistant MQTT discovery" src="https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/images/temperature-humidity.png" width="600px"></img>
<img title="ESPHome Home Assistant discovery" src="https://github.com/esphome/home-assistant-addon/raw/main/esphome-dev/images/temperature-humidity.png" width="600px"></img>
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
[dht22]: https://esphome.io/components/sensor/dht.html
[discord]: https://discord.gg/KhAMKrd
[releases-shield]: https://img.shields.io/github/release/esphome/esphome.svg
[releases]: https://esphome.io/changelog/index.html
[repository]: https://github.com/esphome/esphome
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
[github-stars-shield]: https://img.shields.io/github/stars/esphome/esphome.svg?style=social&label=Star&maxAge=2592000
[dht22]: https://next.esphome.io/components/sensor/dht.html
[releases]: https://next.esphome.io/changelog/index.html
[logo]: https://github.com/esphome/home-assistant-addon/raw/main/esphome-dev/logo.png
[website]: https://next.esphome.io/

View File

@@ -1,7 +0,0 @@
{
"build_from": {
"aarch64": "ghcr.io/esphome/esphome-hassio-aarch64:dev",
"amd64": "ghcr.io/esphome/esphome-hassio-amd64:dev",
"armv7": "ghcr.io/esphome/esphome-hassio-armv7:dev"
}
}

View File

@@ -1,44 +0,0 @@
{
"advanced": true,
"arch": [
"amd64",
"armv7",
"aarch64"
],
"auth_api": true,
"backup_exclude": [
"*/*/"
],
"description": "Development version of ESPHome add-on",
"hassio_api": true,
"host_network": true,
"ingress": true,
"ingress_port": 0,
"map": [
"ssl:ro",
"config:rw"
],
"name": "ESPHome (dev)",
"panel_icon": "mdi:chip",
"ports": {
"6052/tcp": null
},
"ports_description": {
"6052/tcp": "Web interface (not required for Home Assistant ingress)"
},
"schema": {
"certfile": "str?",
"esphome_fork": "str?",
"keyfile": "str?",
"leave_front_door_open": "bool?",
"relative_url": "str?",
"ssl": "bool?",
"status_use_ping": "bool?",
"streamer_mode": "bool?"
},
"slug": "esphome-dev",
"stage": "experimental",
"uart": true,
"url": "https://next.esphome.io/",
"version": "dev"
}

43
esphome-dev/config.yaml Normal file
View File

@@ -0,0 +1,43 @@
---
url: https://next.esphome.io/
arch:
- amd64
- armv7
- aarch64
hassio_api: true
auth_api: true
host_network: true
ingress: true
ingress_port: 0
panel_icon: mdi:chip
uart: true
ports:
6052/tcp: null
map:
- ssl:ro
- config:rw
discovery:
- esphome
schema:
status_use_ping: bool?
streamer_mode: bool?
home_assistant_dashboard_integration: bool?
default_compile_process_limit: int(1,)?
esphome_fork: str?
ssl: bool?
certfile: str?
keyfile: str?
leave_front_door_open: bool?
backup_exclude:
- '*/*/'
init: false
startup: services
name: ESPHome (dev)
version: 2024.10.0-dev20240918
slug: esphome-dev
description: Development version of ESPHome add-on
image: ghcr.io/esphome/esphome-hassio
stage: experimental
advanced: true
options:
home_assistant_dashboard_integration: false

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

View File

@@ -1,46 +0,0 @@
#!/usr/bin/with-contenv bashio
# ==============================================================================
# Community Hass.io Add-ons: ESPHome
# This files installs the user ESPHome fork if specified
# The fork must be up to date with the latest ESPHome dev branch
# and have no conflicts
# ==============================================================================
declare esphome_fork
if bashio::config.has_value 'esphome_fork'; then
esphome_fork=$(bashio::config 'esphome_fork')
if [[ $esphome_fork == *":"* ]]; then
IFS=':' read -r -a array <<< "$esphome_fork"
username=${array[0]}
ref=${array[1]}
else
username="esphome"
ref=$esphome_fork
fi
full_url="https://github.com/${username}/esphome/archive/${ref}.tar.gz"
bashio::log.info "Checking forked ESPHome"
dev_version=$(python3 -c "from esphome.const import __version__; print(__version__)")
bashio::log.info "Downloading ESPHome from fork '${esphome_fork}' (${full_url})..."
curl -L -o /tmp/esphome.tar.gz "${full_url}" -qq \
|| bashio::exit.nok "Failed downloading ESPHome fork."
bashio::log.info "Installing ESPHome from fork '${esphome_fork}' (${full_url})..."
mkdir /esphome-fork
tar -zxf /tmp/esphome.tar.gz -C /esphome-fork --strip-components=1 \
|| bashio::exit.nok "Failed installing ESPHome from fork."
pip install -U -e /esphome-fork || bashio::exit.nok "Failed installing ESPHome from fork."
rm -f /tmp/esphome.tar.gz
fork_version=$(python3 -c "from esphome.const import __version__; print(__version__)")
if [[ "$fork_version" != "$dev_version" ]]; then
bashio::log.error "############################"
bashio::log.error "Uninstalled fork as version does not match"
bashio::log.error "Update (or ask the author to update) the branch"
bashio::log.error "This is important as the dev addon and the dev ESPHome"
bashio::log.error "branch can have changes that are not compatible with old forks"
bashio::log.error "and get reported as bugs which we cannot solve easily."
bashio::log.error "############################"
bashio::exit.nok
fi
bashio::log.info "Installed ESPHome from fork '${esphome_fork}' (${full_url})..."
fi

View File

@@ -0,0 +1,67 @@
---
configuration:
certfile:
name: Certificate file
description: >-
The certificate file to use for SSL. Note that this file must
exist in the /ssl/ folder.
default_compile_process_limit:
name: Default compile process limit
description: >-
The default compile process limit. This is the maximum number of
simultaneous compile processes that ESPHome will run.
esphome_fork:
name: Install ESPHome from a fork or branch
description: >-
For example to test a pull request, use `pull/XXXX/head` where `XXXX` is
the PR number, or you can specify the username of the fork owner and
branch `username:branch` which assumes the repository is named `esphome`
still.
If you need to test the latest commit on dev branch before the image is
updated you can enter `dev` here.
Please note that the fork or branch you are using **must** be up to
date with ESPHome dev or the add-on **will not start**.
home_assistant_dashboard_integration:
name: Home Assistant Dashboard Integration
description: >-
Enables/Disables the ESPHome dashboard integrating with Home Assistant
for automatic configuration of devices and device updates. If you use
multiple version of the ESPHome add-on, make sure it is enabled on a
single add-on only.
keyfile:
name: Private key file
description: >-
The private key file to use for SSL. Note that this file must
exist in the /ssl/ folder.
leave_front_door_open:
name: Disable external authentication
description: >-
Disables external authentication when having opened the add-on
on an external port. **WARNING**: This is a security risk!
relative_url:
name: Relative URL
description: >-
Host the ESPHome dashboard under a relative URL, so that it can be
integrated into existing web proxies like NGINX under a relative URL.
Defaults to `/`.
ssl:
name: SSL
description: >-
Enables/Disables SSL (HTTPS) on the web interface.
status_use_ping:
name: Use ping for status
description: >-
By default the dashboard uses mDNS to check if nodes are online. This does
not work across subnets unless your router supports mDNS forwarding
or avahi. Enabling this option will use ICMP ping to check if nodes are
online.
streamer_mode:
name: Streamer mode
description: >-
Enables/Disables streamer mode, which makes ESPHome hide all
potentially private information. So for example WiFi (B)SSIDs (which could
be used to find your location), usernames, etc.
network:
6052/tcp: Web interface (to use without Home Assistant)

View File

@@ -1 +1,126 @@
See https://esphome.io/changelog/index.html
## 2024.9.0
## Full list of changes
### New Components
- Add HMAC-MD5 support for authenticating OTA updates [esphome#7200](https://github.com/esphome/esphome/pull/7200) by [@dwmw2](https://github.com/dwmw2) (new-integration)
- Add support for BL0906 energy meter [esphome#7339](https://github.com/esphome/esphome/pull/7339) by [@tarontop](https://github.com/tarontop) (new-integration)
- [udp] Implement UDP sensor broadcast [esphome#6865](https://github.com/esphome/esphome/pull/6865) by [@clydebarrow](https://github.com/clydebarrow) (new-integration)
- CH422G support [esphome#7356](https://github.com/esphome/esphome/pull/7356) by [@jesterret](https://github.com/jesterret) (new-integration)
- Add StatsD component [esphome#6642](https://github.com/esphome/esphome/pull/6642) by [@Links2004](https://github.com/Links2004) (new-integration)
- Add support for using BMP280 with SPI [esphome#7053](https://github.com/esphome/esphome/pull/7053) by [@ademuri](https://github.com/ademuri) (new-integration) (breaking-change)
- LTR-501, LTR-301, LTR-558 Series of Lite-On Light (ALS) and Proximity(PS) sensors [esphome#6262](https://github.com/esphome/esphome/pull/6262) by [@latonita](https://github.com/latonita) (new-integration)
### Breaking Changes
- [ili9xxx] Make `invert_colors` required [esphome#7292](https://github.com/esphome/esphome/pull/7292) by [@gvdhoven](https://github.com/gvdhoven) (breaking-change)
- Add support for using BMP280 with SPI [esphome#7053](https://github.com/esphome/esphome/pull/7053) by [@ademuri](https://github.com/ademuri) (new-integration) (breaking-change)
- Move I2S config settings the the base i2sAudio files. Phase 1 [esphome#7183](https://github.com/esphome/esphome/pull/7183) by [@nielsnl68](https://github.com/nielsnl68) (breaking-change)
- [i2s_audio] Add more options to speakers and microphones [esphome#7306](https://github.com/esphome/esphome/pull/7306) by [@pyos](https://github.com/pyos) (breaking-change)
### Beta Changes
- [voice-assistant] Dont error on ``no_wake_word`` timeout error with streaming wake word [esphome#7435](https://github.com/esphome/esphome/pull/7435) by [@jesserockz](https://github.com/jesserockz)
- Improve manufacturer data tracing to identify BLE devices a bit easie… [esphome#7332](https://github.com/esphome/esphome/pull/7332) by [@tomer-w](https://github.com/tomer-w)
- Add sample_bytes to media player supported format [esphome#7451](https://github.com/esphome/esphome/pull/7451) by [@synesthesiam](https://github.com/synesthesiam)
- [docker] Bump git from 1:2.39.2-1.1 to 1:2.39.5-0+deb12u1 [esphome#7452](https://github.com/esphome/esphome/pull/7452) by [@jesserockz](https://github.com/jesserockz)
- Add voice assistant configuration messages [esphome#7445](https://github.com/esphome/esphome/pull/7445) by [@synesthesiam](https://github.com/synesthesiam)
- Dont replace project name spaces with underlines [esphome#7455](https://github.com/esphome/esphome/pull/7455) by [@jesserockz](https://github.com/jesserockz)
- Add voice assistant methods for configuration [esphome#7459](https://github.com/esphome/esphome/pull/7459) by [@synesthesiam](https://github.com/synesthesiam)
### All changes
- [code-quality] fix performance-unnecessary-value-param [esphome#7274](https://github.com/esphome/esphome/pull/7274) by [@tomaszduda23](https://github.com/tomaszduda23)
- [code-quality] fix clang-tidy prometheus [esphome#7284](https://github.com/esphome/esphome/pull/7284) by [@tomaszduda23](https://github.com/tomaszduda23)
- [code-quality] fix clang-tidy ota [esphome#7282](https://github.com/esphome/esphome/pull/7282) by [@tomaszduda23](https://github.com/tomaszduda23)
- [code-quality] fix clang-tidy e131 [esphome#7281](https://github.com/esphome/esphome/pull/7281) by [@tomaszduda23](https://github.com/tomaszduda23)
- [code-quality] fix clang-tidy wireguard [esphome#7287](https://github.com/esphome/esphome/pull/7287) by [@tomaszduda23](https://github.com/tomaszduda23)
- [code-quality] fix clang-tidy improv_serial [esphome#7283](https://github.com/esphome/esphome/pull/7283) by [@tomaszduda23](https://github.com/tomaszduda23)
- [code-quality] fix clang-tidy captive_portal [esphome#7280](https://github.com/esphome/esphome/pull/7280) by [@tomaszduda23](https://github.com/tomaszduda23)
- Add HMAC-MD5 support for authenticating OTA updates [esphome#7200](https://github.com/esphome/esphome/pull/7200) by [@dwmw2](https://github.com/dwmw2) (new-integration)
- [const] Add UNIT_LITRE [esphome#7317](https://github.com/esphome/esphome/pull/7317) by [@Roving-Ronin](https://github.com/Roving-Ronin)
- [code-quality] fix clang-tidy socket [esphome#7285](https://github.com/esphome/esphome/pull/7285) by [@tomaszduda23](https://github.com/tomaszduda23)
- [code-quality] fix clang-tidy cstddef [esphome#7324](https://github.com/esphome/esphome/pull/7324) by [@tomaszduda23](https://github.com/tomaszduda23)
- Add output source priority "hybrid" [esphome#7322](https://github.com/esphome/esphome/pull/7322) by [@syssi](https://github.com/syssi)
- Enable verbose mode from env ESPHOME_VERBOSE or --verbose [esphome#6987](https://github.com/esphome/esphome/pull/6987) by [@ptr727](https://github.com/ptr727)
- Tuya Number: allow to set hidden datapoints [esphome#7024](https://github.com/esphome/esphome/pull/7024) by [@szupi-ipuzs](https://github.com/szupi-ipuzs)
- feat: Expand ByteBuffer [esphome#7316](https://github.com/esphome/esphome/pull/7316) by [@Rapsssito](https://github.com/Rapsssito)
- [ledc] Tweak fix in #6997 [esphome#7336](https://github.com/esphome/esphome/pull/7336) by [@kbx81](https://github.com/kbx81)
- [ledc] Fix maximum brightness on ESP-IDF 5.1 [esphome#7342](https://github.com/esphome/esphome/pull/7342) by [@clydebarrow](https://github.com/clydebarrow)
- [lvgl] Bug fixes: [esphome#7341](https://github.com/esphome/esphome/pull/7341) by [@clydebarrow](https://github.com/clydebarrow)
- [const] Move ``CONF_LINE_FREQUENCY`` to const.py [esphome#7351](https://github.com/esphome/esphome/pull/7351) by [@jesserockz](https://github.com/jesserockz)
- bl0942: Fix init sequence, add address and line_frequency options [esphome#7250](https://github.com/esphome/esphome/pull/7250) by [@dwmw2](https://github.com/dwmw2)
- Add supported formats to media player [esphome#7318](https://github.com/esphome/esphome/pull/7318) by [@synesthesiam](https://github.com/synesthesiam)
- Add reset to esp32_rmt_led_strip [esphome#7354](https://github.com/esphome/esphome/pull/7354) by [@angelnu](https://github.com/angelnu)
- [ili9xxx] Make `invert_colors` required [esphome#7292](https://github.com/esphome/esphome/pull/7292) by [@gvdhoven](https://github.com/gvdhoven) (breaking-change)
- Add WS2811 to esp32_rmt_led_strip [esphome#7353](https://github.com/esphome/esphome/pull/7353) by [@angelnu](https://github.com/angelnu)
- [lvgl] Add lvgl.widget.focus action and related triggers. [esphome#7315](https://github.com/esphome/esphome/pull/7315) by [@clydebarrow](https://github.com/clydebarrow)
- esp32_can: suppress compiler warning [esphome#7372](https://github.com/esphome/esphome/pull/7372) by [@mrk-its](https://github.com/mrk-its)
- Add support for BL0906 energy meter [esphome#7339](https://github.com/esphome/esphome/pull/7339) by [@tarontop](https://github.com/tarontop) (new-integration)
- [platformio] Add environments for ESP-IDF 5.3 for development [esphome#7371](https://github.com/esphome/esphome/pull/7371) by [@clydebarrow](https://github.com/clydebarrow)
- [lvgl] Bug fixes [esphome#7370](https://github.com/esphome/esphome/pull/7370) by [@clydebarrow](https://github.com/clydebarrow)
- [bytebuffer] Use existing bit_cast operations. [esphome#7374](https://github.com/esphome/esphome/pull/7374) by [@clydebarrow](https://github.com/clydebarrow)
- Bump actions/setup-python from 5.1.0 to 5.2.0 [esphome#7375](https://github.com/esphome/esphome/pull/7375) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump actions/setup-python from 5.1.1 to 5.2.0 in /.github/actions/restore-python [esphome#7376](https://github.com/esphome/esphome/pull/7376) by [@dependabot[bot]](https://github.com/apps/dependabot)
- [gt911] Add reset pin config [esphome#7373](https://github.com/esphome/esphome/pull/7373) by [@clydebarrow](https://github.com/clydebarrow)
- [st7701s] Add delay feature in init sequences [esphome#7343](https://github.com/esphome/esphome/pull/7343) by [@clydebarrow](https://github.com/clydebarrow)
- Add now required `invert_colors` option to test files referencing ili9xxx [esphome#7367](https://github.com/esphome/esphome/pull/7367) by [@clydebarrow](https://github.com/clydebarrow)
- esp32_can: make queue lengths configurable [esphome#7361](https://github.com/esphome/esphome/pull/7361) by [@mrk-its](https://github.com/mrk-its)
- [code-quality] fix clang-tidy web_server and web_server_base [esphome#7286](https://github.com/esphome/esphome/pull/7286) by [@tomaszduda23](https://github.com/tomaszduda23)
- Update MiCS Values [esphome#7173](https://github.com/esphome/esphome/pull/7173) by [@TrevorSchirmer](https://github.com/TrevorSchirmer)
- Tuya Number: allow restoring value of hidden datapoints [esphome#7346](https://github.com/esphome/esphome/pull/7346) by [@szupi-ipuzs](https://github.com/szupi-ipuzs)
- [udp] Implement UDP sensor broadcast [esphome#6865](https://github.com/esphome/esphome/pull/6865) by [@clydebarrow](https://github.com/clydebarrow) (new-integration)
- update logs for bluetooth proxy [esphome#7382](https://github.com/esphome/esphome/pull/7382) by [@tomaszduda23](https://github.com/tomaszduda23)
- [font] Make display an auto-load, not a dependency [esphome#7366](https://github.com/esphome/esphome/pull/7366) by [@clydebarrow](https://github.com/clydebarrow)
- CH422G support [esphome#7356](https://github.com/esphome/esphome/pull/7356) by [@jesterret](https://github.com/jesterret) (new-integration)
- [rpi_dpi_rgb] Add enable_pin and reset_display method to driver [esphome#7383](https://github.com/esphome/esphome/pull/7383) by [@lboue](https://github.com/lboue)
- Bump actions/upload-artifact from 4.3.4 to 4.4.0 [esphome#7379](https://github.com/esphome/esphome/pull/7379) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Fix build for esp32h2 using esp-idf 5.3 [esphome#7393](https://github.com/esphome/esphome/pull/7393) by [@mrene](https://github.com/mrene)
- Bump mDNS and follow ruff's suggestions [esphome#7308](https://github.com/esphome/esphome/pull/7308) by [@HeMan](https://github.com/HeMan)
- Bump rp2040 Arduino platform and framework [esphome#7134](https://github.com/esphome/esphome/pull/7134) by [@HeMan](https://github.com/HeMan)
- [gree] Add support for YX1FF remote [esphome#7298](https://github.com/esphome/esphome/pull/7298) by [@dangreco](https://github.com/dangreco)
- [modbus_controller] Allow duplicate command config [esphome#7311](https://github.com/esphome/esphome/pull/7311) by [@0x3333](https://github.com/0x3333)
- Better support for task blocking ring buffer reads and writes [esphome#7390](https://github.com/esphome/esphome/pull/7390) by [@kahrendt](https://github.com/kahrendt)
- Bump pypa/gh-action-pypi-publish from 1.9.0 to 1.10.0 [esphome#7395](https://github.com/esphome/esphome/pull/7395) by [@dependabot[bot]](https://github.com/apps/dependabot)
- [api] Remove id from ``MediaPlayerSupportedFormat`` [esphome#7406](https://github.com/esphome/esphome/pull/7406) by [@jesserockz](https://github.com/jesserockz)
- Drop max BLE client connections limitation [esphome#7088](https://github.com/esphome/esphome/pull/7088) by [@syssi](https://github.com/syssi)
- [bl0942] loop and overflow cleanup [esphome#7358](https://github.com/esphome/esphome/pull/7358) by [@dwmw2](https://github.com/dwmw2)
- Bump peter-evans/create-pull-request from 6.1.0 to 7.0.0 [esphome#7405](https://github.com/esphome/esphome/pull/7405) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump pypa/gh-action-pypi-publish from 1.10.0 to 1.10.1 [esphome#7404](https://github.com/esphome/esphome/pull/7404) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Voice assist improvement - configurable conversation_id timeout [esphome#7385](https://github.com/esphome/esphome/pull/7385) by [@jeffc](https://github.com/jeffc)
- Support BL0942 calibration [esphome#7299](https://github.com/esphome/esphome/pull/7299) by [@dwmw2](https://github.com/dwmw2)
- [micro_wake_word] Remove duplicated download code [esphome#7401](https://github.com/esphome/esphome/pull/7401) by [@jesserockz](https://github.com/jesserockz)
- Add StatsD component [esphome#6642](https://github.com/esphome/esphome/pull/6642) by [@Links2004](https://github.com/Links2004) (new-integration)
- [homeassistant-switch] Support different entity domains [esphome#7331](https://github.com/esphome/esphome/pull/7331) by [@jesserockz](https://github.com/jesserockz)
- Add support for using BMP280 with SPI [esphome#7053](https://github.com/esphome/esphome/pull/7053) by [@ademuri](https://github.com/ademuri) (new-integration) (breaking-change)
- Add voice assistant announce [esphome#7377](https://github.com/esphome/esphome/pull/7377) by [@synesthesiam](https://github.com/synesthesiam)
- [lvgl] Msgbox fixes and enhancements [esphome#7380](https://github.com/esphome/esphome/pull/7380) by [@clydebarrow](https://github.com/clydebarrow)
- libretiny: Allow specifying version of explicitly imported sources [esphome#7408](https://github.com/esphome/esphome/pull/7408) by [@dwmw2](https://github.com/dwmw2)
- [libretiny] Report version 1.7.0 for 'dev' and 'latest' [esphome#7415](https://github.com/esphome/esphome/pull/7415) by [@dwmw2](https://github.com/dwmw2)
- LTR-501, LTR-301, LTR-558 Series of Lite-On Light (ALS) and Proximity(PS) sensors [esphome#6262](https://github.com/esphome/esphome/pull/6262) by [@latonita](https://github.com/latonita) (new-integration)
- Fix armv7 container builds [esphome#7426](https://github.com/esphome/esphome/pull/7426) by [@jesserockz](https://github.com/jesserockz)
- [gh-actions] Don't produce docker build summaries [esphome#7430](https://github.com/esphome/esphome/pull/7430) by [@jesserockz](https://github.com/jesserockz)
- Add BK72xx support to require_framework_version() [esphome#7409](https://github.com/esphome/esphome/pull/7409) by [@dwmw2](https://github.com/dwmw2)
- Switch IPv6 platform check to use require_framework_version() [esphome#7410](https://github.com/esphome/esphome/pull/7410) by [@dwmw2](https://github.com/dwmw2)
- [bl0942] Improve energy reporting [esphome#7428](https://github.com/esphome/esphome/pull/7428) by [@dwmw2](https://github.com/dwmw2)
- [rpi_dpi_rgb] Add bounce_buffer config for ESP-IDF 5.x [esphome#7423](https://github.com/esphome/esphome/pull/7423) by [@clydebarrow](https://github.com/clydebarrow)
- [LVGL] Add color gradients [esphome#7427](https://github.com/esphome/esphome/pull/7427) by [@clydebarrow](https://github.com/clydebarrow)
- [dsmr] Add internal 'telegram' text_sensor to support bridging [esphome#6841](https://github.com/esphome/esphome/pull/6841) by [@marcovaneck](https://github.com/marcovaneck)
- Pull in new AsyncTCP for IPv6 on BK72xx [esphome#7431](https://github.com/esphome/esphome/pull/7431) by [@dwmw2](https://github.com/dwmw2)
- Bump LibreTiny recommended version to 1.7.0 [esphome#7432](https://github.com/esphome/esphome/pull/7432) by [@dwmw2](https://github.com/dwmw2)
- Enable IPv6 support for BK72xx [esphome#7398](https://github.com/esphome/esphome/pull/7398) by [@dwmw2](https://github.com/dwmw2)
- Move I2S config settings the the base i2sAudio files. Phase 1 [esphome#7183](https://github.com/esphome/esphome/pull/7183) by [@nielsnl68](https://github.com/nielsnl68) (breaking-change)
- Implement all supported thermocouple types for MAX31856 [esphome#7218](https://github.com/esphome/esphome/pull/7218) by [@ArkanStasarik](https://github.com/ArkanStasarik)
- [i2s_audio] Add more options to speakers and microphones [esphome#7306](https://github.com/esphome/esphome/pull/7306) by [@pyos](https://github.com/pyos) (breaking-change)
- [uponor_smatrix] Modifies sending algorithm [esphome#7326](https://github.com/esphome/esphome/pull/7326) by [@skasi7](https://github.com/skasi7)
- User configurable frame buffer. [esphome#7360](https://github.com/esphome/esphome/pull/7360) by [@ajwahab](https://github.com/ajwahab)
- [Modbus Controller] Added preference to change command retries [esphome#7312](https://github.com/esphome/esphome/pull/7312) by [@0x3333](https://github.com/0x3333)
- [voice-assistant] Dont error on ``no_wake_word`` timeout error with streaming wake word [esphome#7435](https://github.com/esphome/esphome/pull/7435) by [@jesserockz](https://github.com/jesserockz)
- Improve manufacturer data tracing to identify BLE devices a bit easie… [esphome#7332](https://github.com/esphome/esphome/pull/7332) by [@tomer-w](https://github.com/tomer-w)
- Add sample_bytes to media player supported format [esphome#7451](https://github.com/esphome/esphome/pull/7451) by [@synesthesiam](https://github.com/synesthesiam)
- [docker] Bump git from 1:2.39.2-1.1 to 1:2.39.5-0+deb12u1 [esphome#7452](https://github.com/esphome/esphome/pull/7452) by [@jesserockz](https://github.com/jesserockz)
- Add voice assistant configuration messages [esphome#7445](https://github.com/esphome/esphome/pull/7445) by [@synesthesiam](https://github.com/synesthesiam)
- Dont replace project name spaces with underlines [esphome#7455](https://github.com/esphome/esphome/pull/7455) by [@jesserockz](https://github.com/jesserockz)
- Add voice assistant methods for configuration [esphome#7459](https://github.com/esphome/esphome/pull/7459) by [@synesthesiam](https://github.com/synesthesiam)

View File

@@ -1,5 +1,4 @@
# Home Assistant Community Add-on: ESPHome
# ESPHome Add-on
## Installation
The installation of this add-on is pretty straightforward and not different in comparison to installing any other Home Assistant add-on.

View File

@@ -1,9 +1,8 @@
# ESPHome Home Assistant Add-On
# ESPHome Add-On
[![ESPHome logo](https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/logo.png)](https://esphome.io/)
[![ESPHome logo][logo]][website]
[![GitHub stars](https://img.shields.io/github/stars/esphome/esphome.svg?style=social&label=Star&maxAge=2592000)](https://github.com/esphome/esphome)
[![GitHub Release][releases-shield]][releases]
[![GitHub stars][github-stars-shield]][repository]
[![Discord][discord-shield]][discord]
## About
@@ -14,10 +13,10 @@ is write YAML configuration files; the rest (over-the-air updates, compiling) is
handled by ESPHome.
<p align="center">
<img title="ESPHome dashboard screenshot" src="https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/images/screenshot.png" width="700px"></img>
<img title="ESPHome dashboard screenshot" src="https://github.com/esphome/home-assistant-addon/raw/main/esphome/images/screenshot.png" width="700px"></img>
</p>
[View the ESPHome documentation](https://esphome.io/)
[View the ESPHome documentation][website]
## Example
@@ -26,15 +25,17 @@ firmware. For example, to include a [DHT22][dht22].
temperature and humidity sensor, you just need to include 8 lines of YAML
in your configuration file:
<img title="ESPHome DHT configuration example" src="https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/images/dht-example.png" width="500px"></img>
<img title="ESPHome DHT configuration example" src="https://github.com/esphome/home-assistant-addon/raw/main/esphome/images/dht-example.png" width="500px"></img>
Then just click UPLOAD and the sensor will magically appear in Home Assistant:
<img title="ESPHome Home Assistant MQTT discovery" src="https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/images/temperature-humidity.png" width="600px"></img>
<img title="ESPHome Home Assistant discovery" src="https://github.com/esphome/home-assistant-addon/raw/main/esphome/images/temperature-humidity.png" width="600px"></img>
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
[dht22]: https://esphome.io/components/sensor/dht.html
[discord]: https://discord.gg/KhAMKrd
[releases-shield]: https://img.shields.io/github/release/esphome/esphome.svg
[releases]: https://esphome.io/changelog/index.html
[repository]: https://github.com/esphome/esphome
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
[github-stars-shield]: https://img.shields.io/github/stars/esphome/esphome.svg?style=social&label=Star&maxAge=2592000
[dht22]: https://esphome.io/components/sensor/dht.html
[releases]: https://esphome.io/changelog/index.html
[logo]: https://github.com/esphome/home-assistant-addon/raw/main/esphome/logo.png
[website]: https://esphome.io/

View File

@@ -1,42 +0,0 @@
{
"arch": [
"amd64",
"armv7",
"aarch64"
],
"auth_api": true,
"backup_exclude": [
"*/*/"
],
"description": "ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices",
"hassio_api": true,
"host_network": true,
"image": "ghcr.io/esphome/esphome-hassio-{arch}",
"ingress": true,
"ingress_port": 0,
"map": [
"ssl:ro",
"config:rw"
],
"name": "ESPHome",
"panel_icon": "mdi:chip",
"ports": {
"6052/tcp": null
},
"ports_description": {
"6052/tcp": "Web interface (not required for Home Assistant ingress)"
},
"schema": {
"certfile": "str?",
"keyfile": "str?",
"leave_front_door_open": "bool?",
"relative_url": "str?",
"ssl": "bool?",
"status_use_ping": "bool?",
"streamer_mode": "bool?"
},
"slug": "esphome",
"uart": true,
"url": "https://esphome.io/",
"version": "2022.2.1"
}

38
esphome/config.yaml Normal file
View File

@@ -0,0 +1,38 @@
---
url: https://esphome.io/
arch:
- amd64
- armv7
- aarch64
hassio_api: true
auth_api: true
host_network: true
ingress: true
ingress_port: 0
panel_icon: mdi:chip
uart: true
ports:
6052/tcp: null
map:
- ssl:ro
- config:rw
discovery:
- esphome
schema:
status_use_ping: bool?
streamer_mode: bool?
home_assistant_dashboard_integration: bool?
default_compile_process_limit: int(1,)?
ssl: bool?
certfile: str?
keyfile: str?
leave_front_door_open: bool?
backup_exclude:
- '*/*/'
init: false
startup: services
name: ESPHome
version: 2024.9.0
slug: esphome
description: ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices
image: ghcr.io/esphome/esphome-hassio

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@@ -0,0 +1,67 @@
---
configuration:
certfile:
name: Certificate file
description: >-
The certificate file to use for SSL. Note that this file must
exist in the /ssl/ folder.
default_compile_process_limit:
name: Default compile process limit
description: >-
The default compile process limit. This is the maximum number of
simultaneous compile processes that ESPHome will run.
esphome_fork:
name: Install ESPHome from a fork or branch
description: >-
For example to test a pull request, use `pull/XXXX/head` where `XXXX` is
the PR number, or you can specify the username of the fork owner and
branch `username:branch` which assumes the repository is named `esphome`
still.
If you need to test the latest commit on dev branch before the image is
updated you can enter `dev` here.
Please note that the fork or branch you are using **must** be up to
date with ESPHome dev or the add-on **will not start**.
home_assistant_dashboard_integration:
name: Home Assistant Dashboard Integration
description: >-
Enables/Disables the ESPHome dashboard integrating with Home Assistant
for automatic configuration of devices and device updates. If you use
multiple version of the ESPHome add-on, make sure it is enabled on a
single add-on only.
keyfile:
name: Private key file
description: >-
The private key file to use for SSL. Note that this file must
exist in the /ssl/ folder.
leave_front_door_open:
name: Disable external authentication
description: >-
Disables external authentication when having opened the add-on
on an external port. **WARNING**: This is a security risk!
relative_url:
name: Relative URL
description: >-
Host the ESPHome dashboard under a relative URL, so that it can be
integrated into existing web proxies like NGINX under a relative URL.
Defaults to `/`.
ssl:
name: SSL
description: >-
Enables/Disables SSL (HTTPS) on the web interface.
status_use_ping:
name: Use ping for status
description: >-
By default the dashboard uses mDNS to check if nodes are online. This does
not work across subnets unless your router supports mDNS forwarding
or avahi. Enabling this option will use ICMP ping to check if nodes are
online.
streamer_mode:
name: Streamer mode
description: >-
Enables/Disables streamer mode, which makes ESPHome hide all
potentially private information. So for example WiFi (B)SSIDs (which could
be used to find your location), usernames, etc.
network:
6052/tcp: Web interface (to use without Home Assistant)

View File

@@ -2,7 +2,6 @@
import argparse
import re
import subprocess
from dataclasses import dataclass
import sys
import os
@@ -17,72 +16,71 @@ class Version:
minor: int
patch: int
beta: int = 0
dev: bool = False
dev: str = ""
def __str__(self):
return f'{self.major}.{self.minor}.{self.full_patch}'
return f"{self.major}.{self.minor}.{self.full_patch}"
@property
def full_patch(self):
res = f'{self.patch}'
res = f"{self.patch}"
if self.beta > 0:
res += f'b{self.beta}'
res += f"b{self.beta}"
if self.dev:
res += '-dev'
res += f"-dev{self.dev}"
return res
@classmethod
def parse(cls, value):
match = re.match(r'(\d+).(\d+).(\d+)(b\d+)?(-dev)?', value)
match = re.match(r"(\d+).(\d+).(\d+)(b\d+)?(-dev\d+)?", value)
assert match is not None
major = int(match[1])
minor = int(match[2])
patch = int(match[3])
beta = int(match[4][1:]) if match[4] else 0
dev = bool(match[5])
return Version(
major=major, minor=minor, patch=patch,
beta=beta, dev=dev
)
dev = str(match[5][4:]) if match[5] else ""
return Version(major=major, minor=minor, patch=patch, beta=beta, dev=dev)
def sub(path, pattern, repl, expected_count=1):
with open(path) as fh:
def _sub(path, pattern, repl, expected_count=1):
with open(path, encoding="utf-8") as fh:
content = fh.read()
content, count = re.subn(pattern, repl, content, flags=re.MULTILINE)
content, count = re.subn(pattern, repl, content, flags=re.NOFLAG)
if expected_count is not None:
assert count == expected_count, f"Pattern {pattern} replacement failed!"
with open(path, "wt") as fh:
with open(path, "wt", encoding="utf-8") as fh:
fh.write(content)
def write_version(target: str, version: Version):
# version: '1.14.5' # BETA
# version: '1.14.5' # STABLE
sub(
'template/addon_config.yaml',
r" version: '[^']+' # {}".format(target.upper()),
f" version: '{version}' # {target.upper()}"
def _write_version(target: str, version: Version):
# version: "2024.5.0-dev20240412" # DEV
# version: "1.14.5" # BETA
# version: "1.14.5" # STABLE
_sub(
"template/addon_config.yaml",
f' version: "[^"]+" # {target.upper()}',
f' version: "{version}" # {target.upper()}',
)
def main():
parser = argparse.ArgumentParser()
parser.add_argument('new_version', type=str)
parser.add_argument("new_version", type=str)
args = parser.parse_args()
version = Version.parse(args.new_version)
assert not version.dev
print(f"Bumping to {version}")
if version.beta:
write_version('beta', version)
generate.main(['beta'])
if version.dev:
_write_version("dev", version)
generate.main(["dev"])
elif version.beta:
_write_version("beta", version)
generate.main(["beta"])
else:
assert not version.beta
write_version('stable', version)
write_version('beta', version)
generate.main(['stable', 'beta'])
_write_version("stable", version)
_write_version("beta", version)
generate.main(["stable", "beta"])
return 0

View File

@@ -1,12 +1,13 @@
#!/usr/bin/env python3
import argparse
import yaml
from pathlib import Path
from enum import Enum
import json
from shutil import copyfile
import sys
import os
import yaml
class Channel(Enum):
@@ -25,41 +26,29 @@ def main(args):
root = Path(__file__).parent.parent
templ = root / "template"
with open(templ / "addon_config.yaml", "r") as f:
with open(templ / "addon_config.yaml", "r", encoding="utf-8") as f:
config = yaml.safe_load(f)
copyf = config["copy_files"]
for channel in args.channels:
conf = config[f"esphome-{channel.value}"]
base_image = conf.pop("base_image", None)
dir_ = root / conf.pop("directory")
path = dir_ / "config.json"
with open(path, "w") as f:
json.dump(conf, f, indent=2, sort_keys=True)
path = dir_ / "config.yaml"
with open(path, "w", encoding="utf-8") as f:
yaml.dump(conf, f, indent=2, sort_keys=False, explicit_start=True)
for file_, conf_ in copyf.items():
for file_ in copyf:
os.makedirs(dir_ / Path(file_).parent, exist_ok=True)
if Path.exists(templ / channel.value / file_):
copyfile(templ / channel.value / file_, dir_ / file_)
else:
copyfile(templ / file_, dir_ / file_)
path = dir_ / "FILES ARE GENERATED DO NOT EDIT"
with open(path, "w") as f:
with open(path, "w", encoding="utf-8") as f:
f.write("Any edits should be made to the files in the 'template' directory")
if channel == Channel.dev:
path = dir_ / "build.json"
build_conf = {
"build_from": {
arch: base_image.format(arch=arch) for arch in conf["arch"]
}
}
with open(path, "w") as f:
json.dump(build_conf, f, indent=2, sort_keys=True)
print(f"Wrote {path}")
if __name__ == "__main__":
main(sys.argv[1:])

View File

@@ -1 +1 @@
PyYAML==5.4
PyYAML==6.0

View File

@@ -1 +0,0 @@
See https://esphome.io/changelog/index.html

View File

@@ -1,5 +1,4 @@
# Home Assistant Community Add-on: ESPHome
# ESPHome Add-on
## Installation
The installation of this add-on is pretty straightforward and not different in comparison to installing any other Home Assistant add-on.

View File

@@ -1,9 +1,8 @@
# ESPHome Home Assistant Add-On
# ESPHome Add-On
[![ESPHome logo](https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/logo.png)](https://esphome.io/)
[![ESPHome logo][logo]][website]
[![GitHub stars](https://img.shields.io/github/stars/esphome/esphome.svg?style=social&label=Star&maxAge=2592000)](https://github.com/esphome/esphome)
[![GitHub Release][releases-shield]][releases]
[![GitHub stars][github-stars-shield]][repository]
[![Discord][discord-shield]][discord]
## About
@@ -14,10 +13,10 @@ is write YAML configuration files; the rest (over-the-air updates, compiling) is
handled by ESPHome.
<p align="center">
<img title="ESPHome dashboard screenshot" src="https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/images/screenshot.png" width="700px"></img>
<img title="ESPHome dashboard screenshot" src="https://github.com/esphome/home-assistant-addon/raw/main/esphome/images/screenshot.png" width="700px"></img>
</p>
[View the ESPHome documentation](https://esphome.io/)
[View the ESPHome documentation][website]
## Example
@@ -26,15 +25,17 @@ firmware. For example, to include a [DHT22][dht22].
temperature and humidity sensor, you just need to include 8 lines of YAML
in your configuration file:
<img title="ESPHome DHT configuration example" src="https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/images/dht-example.png" width="500px"></img>
<img title="ESPHome DHT configuration example" src="https://github.com/esphome/home-assistant-addon/raw/main/esphome/images/dht-example.png" width="500px"></img>
Then just click UPLOAD and the sensor will magically appear in Home Assistant:
<img title="ESPHome Home Assistant MQTT discovery" src="https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/images/temperature-humidity.png" width="600px"></img>
<img title="ESPHome Home Assistant discovery" src="https://github.com/esphome/home-assistant-addon/raw/main/esphome/images/temperature-humidity.png" width="600px"></img>
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
[dht22]: https://esphome.io/components/sensor/dht.html
[discord]: https://discord.gg/KhAMKrd
[releases-shield]: https://img.shields.io/github/release/esphome/esphome.svg
[releases]: https://esphome.io/changelog/index.html
[repository]: https://github.com/esphome/esphome
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
[github-stars-shield]: https://img.shields.io/github/stars/esphome/esphome.svg?style=social&label=Star&maxAge=2592000
[dht22]: https://esphome.io/components/sensor/dht.html
[releases]: https://esphome.io/changelog/index.html
[logo]: https://github.com/esphome/home-assistant-addon/raw/main/esphome/logo.png
[website]: https://esphome.io/

View File

@@ -16,72 +16,85 @@ base: &base
# Ingress settings
ingress: true
ingress_port: 0
panel_icon: 'mdi:chip'
panel_icon: "mdi:chip"
# Automatically add UART devices to add-on
uart: true
ports:
'6052/tcp': null
ports_description:
'6052/tcp': "Web interface (not required for Home Assistant ingress)"
"6052/tcp": null
map:
- ssl:ro
- config:rw
discovery:
- esphome
schema:
status_use_ping: bool?
streamer_mode: bool?
home_assistant_dashboard_integration: bool?
default_compile_process_limit: int(1,)?
ssl: bool?
certfile: str?
keyfile: str?
leave_front_door_open: bool?
streamer_mode: bool?
relative_url: str?
status_use_ping: bool?
backup_exclude:
- "*/*/"
# Disable docker init for s6
init: false
# Make sure dashboard is available for core
startup: services
esphome-dev:
<<: *base
directory: esphome-dev
name: ESPHome (dev)
version: 'dev' # DEV
version: "2024.10.0-dev20240918" # DEV
slug: esphome-dev
description: "Development version of ESPHome add-on"
url: https://next.esphome.io/
image: ghcr.io/esphome/esphome-hassio
stage: experimental
advanced: true
schema:
status_use_ping: bool?
streamer_mode: bool?
home_assistant_dashboard_integration: bool?
default_compile_process_limit: int(1,)?
esphome_fork: str?
ssl: bool?
certfile: str?
keyfile: str?
leave_front_door_open: bool?
streamer_mode: bool?
relative_url: str?
status_use_ping: bool?
esphome_fork: str?
base_image: ghcr.io/esphome/esphome-hassio-{arch}:dev
options:
home_assistant_dashboard_integration: false
esphome-beta:
<<: *base
directory: esphome-beta
name: ESPHome (beta)
version: '2022.2.1' # BETA
version: "2024.9.0" # BETA
slug: esphome-beta
description: "Beta version of ESPHome add-on"
url: https://beta.esphome.io/
image: ghcr.io/esphome/esphome-hassio-{arch}
image: ghcr.io/esphome/esphome-hassio
stage: experimental
advanced: true
options:
home_assistant_dashboard_integration: false
esphome-stable:
<<: *base
directory: esphome
name: ESPHome
version: '2022.2.1' # STABLE
version: "2024.9.0" # STABLE
slug: esphome
description: "ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices"
image: ghcr.io/esphome/esphome-hassio-{arch}
image: ghcr.io/esphome/esphome-hassio
copy_files:
icon.png:
logo.png:
README.md:
DOCS.md:
CHANGELOG.md:
- DOCS.md
- icon.png
- logo.png
- README.md
- translations/en.yaml
- images/dht-example.png
- images/screenshot.png
- images/temperature-humidity.png

41
template/beta/README.md Normal file
View File

@@ -0,0 +1,41 @@
# ESPHome Beta Add-On
[![ESPHome logo][logo]][website]
[![GitHub stars][github-stars-shield]][repository]
[![Discord][discord-shield]][discord]
## About
This add-on allows you to manage and program your ESP8266 and ESP32 based microcontrollers
directly through Home Assistant **with no programming experience required**. All you need to do
is write YAML configuration files; the rest (over-the-air updates, compiling) is all
handled by ESPHome.
<p align="center">
<img title="ESPHome dashboard screenshot" src="https://github.com/esphome/home-assistant-addon/raw/main/esphome-beta/images/screenshot.png" width="700px"></img>
</p>
[View the ESPHome documentation][website]
## Example
With ESPHome, you can go from a few lines of YAML straight to a custom-made
firmware. For example, to include a [DHT22][dht22].
temperature and humidity sensor, you just need to include 8 lines of YAML
in your configuration file:
<img title="ESPHome DHT configuration example" src="https://github.com/esphome/home-assistant-addon/raw/main/esphome-beta/images/dht-example.png" width="500px"></img>
Then just click UPLOAD and the sensor will magically appear in Home Assistant:
<img title="ESPHome Home Assistant discovery" src="https://github.com/esphome/home-assistant-addon/raw/main/esphome-beta/images/temperature-humidity.png" width="600px"></img>
[discord]: https://discord.gg/KhAMKrd
[repository]: https://github.com/esphome/esphome
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
[github-stars-shield]: https://img.shields.io/github/stars/esphome/esphome.svg?style=social&label=Star&maxAge=2592000
[dht22]: https://beta.esphome.io/components/sensor/dht.html
[releases]: https://beta.esphome.io/changelog/index.html
[logo]: https://github.com/esphome/home-assistant-addon/raw/main/esphome-beta/logo.png
[website]: https://beta.esphome.io/

BIN
template/beta/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
template/beta/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@@ -1,40 +1,31 @@
# Home Assistant Community Add-on: ESPHome
# ESPHome DEV add on
## Installation
This is **development** version of the ESPHome add on.
The installation of this add-on is pretty straightforward and not different in comparison to installing any other Home Assistant add-on.
To deploy production nodes please use mainstream release add on.
1. Search for the “ESPHome” add-on in the Supervisor add-on store.
2. Press install to download the add-on and unpack it on your machine. This can take some time.
3. Optional: If you're using SSL/TLS certificates and want to encrypt your communication to this add-on, please enter `true` into the `ssl` field and set the `fullchain` and `certfile` options accordingly.
4. Start the add-on, check the logs of the add-on to see if everything went well.
5. Click "OPEN WEB UI" to open the ESPHome dashboard. You will be asked for your Home Assistant credentials - ESPHome uses Home Assistant's authentication system to log you in.
You can view the ESPHome documentation at https://esphome.io/
The add on uses a version of ESPHome built automatically every day at 02:00 UTC. and is used to test components in development. See the `esphome_fork` configuration below to properly configure the add on. Once you update the configuration make sure to rebuild the image.
## Configuration
**Note**: _Remember to restart the add-on when the configuration is changed._
Example add-on configuration:
```json
{
"ssl": false,
"certfile": "fullchain.pem",
"keyfile": "privkey.pem"
}
```
### Option: `esphome_fork`
Install ESPHome from a fork or branch.
For example to test a pull request, use `pull/XXXX/head` where `XXXX` is the PR number,
or you can specify the username of the fork owner and branch `username:branch` which
assumes the repository is named `esphome` still.
assumes the repository is named `esphome` still.
If you need to test the latest commit on dev branch before the image is updated you can enter `dev` here.
Please note that the fork or branch you are using **must** be up to date with ESPHome dev
or the add-on **will not start**.
or the add-on **will not start**.
## General ESPHome add on configurations
General options also available in other versions.
### Option: `ssl`

41
template/dev/README.md Normal file
View File

@@ -0,0 +1,41 @@
# ESPHome Dev Add-On
[![ESPHome logo][logo]][website]
[![GitHub stars][github-stars-shield]][repository]
[![Discord][discord-shield]][discord]
## About
This add-on allows you to manage and program your ESP8266 and ESP32 based microcontrollers
directly through Home Assistant **with no programming experience required**. All you need to do
is write YAML configuration files; the rest (over-the-air updates, compiling) is all
handled by ESPHome.
<p align="center">
<img title="ESPHome dashboard screenshot" src="https://github.com/esphome/home-assistant-addon/raw/main/esphome-dev/images/screenshot.png" width="700px"></img>
</p>
[View the ESPHome documentation][website]
## Example
With ESPHome, you can go from a few lines of YAML straight to a custom-made
firmware. For example, to include a [DHT22][dht22].
temperature and humidity sensor, you just need to include 8 lines of YAML
in your configuration file:
<img title="ESPHome DHT configuration example" src="https://github.com/esphome/home-assistant-addon/raw/main/esphome-dev/images/dht-example.png" width="500px"></img>
Then just click UPLOAD and the sensor will magically appear in Home Assistant:
<img title="ESPHome Home Assistant discovery" src="https://github.com/esphome/home-assistant-addon/raw/main/esphome-dev/images/temperature-humidity.png" width="600px"></img>
[discord]: https://discord.gg/KhAMKrd
[repository]: https://github.com/esphome/esphome
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
[github-stars-shield]: https://img.shields.io/github/stars/esphome/esphome.svg?style=social&label=Star&maxAge=2592000
[dht22]: https://next.esphome.io/components/sensor/dht.html
[releases]: https://next.esphome.io/changelog/index.html
[logo]: https://github.com/esphome/home-assistant-addon/raw/main/esphome-dev/logo.png
[website]: https://next.esphome.io/

BIN
template/dev/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
template/dev/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@@ -0,0 +1,67 @@
---
configuration:
certfile:
name: Certificate file
description: >-
The certificate file to use for SSL. Note that this file must
exist in the /ssl/ folder.
default_compile_process_limit:
name: Default compile process limit
description: >-
The default compile process limit. This is the maximum number of
simultaneous compile processes that ESPHome will run.
esphome_fork:
name: Install ESPHome from a fork or branch
description: >-
For example to test a pull request, use `pull/XXXX/head` where `XXXX` is
the PR number, or you can specify the username of the fork owner and
branch `username:branch` which assumes the repository is named `esphome`
still.
If you need to test the latest commit on dev branch before the image is
updated you can enter `dev` here.
Please note that the fork or branch you are using **must** be up to
date with ESPHome dev or the add-on **will not start**.
home_assistant_dashboard_integration:
name: Home Assistant Dashboard Integration
description: >-
Enables/Disables the ESPHome dashboard integrating with Home Assistant
for automatic configuration of devices and device updates. If you use
multiple version of the ESPHome add-on, make sure it is enabled on a
single add-on only.
keyfile:
name: Private key file
description: >-
The private key file to use for SSL. Note that this file must
exist in the /ssl/ folder.
leave_front_door_open:
name: Disable external authentication
description: >-
Disables external authentication when having opened the add-on
on an external port. **WARNING**: This is a security risk!
relative_url:
name: Relative URL
description: >-
Host the ESPHome dashboard under a relative URL, so that it can be
integrated into existing web proxies like NGINX under a relative URL.
Defaults to `/`.
ssl:
name: SSL
description: >-
Enables/Disables SSL (HTTPS) on the web interface.
status_use_ping:
name: Use ping for status
description: >-
By default the dashboard uses mDNS to check if nodes are online. This does
not work across subnets unless your router supports mDNS forwarding
or avahi. Enabling this option will use ICMP ping to check if nodes are
online.
streamer_mode:
name: Streamer mode
description: >-
Enables/Disables streamer mode, which makes ESPHome hide all
potentially private information. So for example WiFi (B)SSIDs (which could
be used to find your location), usernames, etc.
network:
6052/tcp: Web interface (to use without Home Assistant)