Compare commits
157 Commits
2023.4.0b2
...
2024.4.2
@@ -3,7 +3,12 @@ FROM ghcr.io/home-assistant/devcontainer:addons
|
||||
RUN \
|
||||
apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
python3-pip
|
||||
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 /
|
||||
|
||||
|
||||
@@ -14,23 +14,28 @@
|
||||
"containerEnv": {
|
||||
"WORKSPACE_DIRECTORY": "${containerWorkspaceFolder}"
|
||||
},
|
||||
"extensions": [
|
||||
"timonwong.shellcheck",
|
||||
"esbenp.prettier-vscode"
|
||||
],
|
||||
"mounts": [
|
||||
"type=volume,target=/var/lib/docker"
|
||||
],
|
||||
"settings": {
|
||||
"terminal.integrated.profiles.linux": {
|
||||
"zsh": {
|
||||
"path": "/usr/bin/zsh"
|
||||
"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
|
||||
}
|
||||
},
|
||||
"terminal.integrated.defaultProfile.linux": "zsh",
|
||||
"editor.formatOnPaste": false,
|
||||
"editor.formatOnSave": true,
|
||||
"editor.formatOnType": true,
|
||||
"files.trimTrailingWhitespace": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
82
.github/workflows/bump-version.yml
vendored
@@ -15,45 +15,47 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
continue-on-error: true
|
||||
steps:
|
||||
- uses: actions/checkout@v3.3.0
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- run: pip install -r script/requirements.txt
|
||||
- run: script/bump-version.py ${{ github.event.inputs.version }}
|
||||
- name: Write Beta changelog
|
||||
run: |
|
||||
cat > esphome-beta/CHANGELOG.md << 'EOF'
|
||||
## ${{ github.event.inputs.version }}
|
||||
- uses: actions/checkout@v4.1.1
|
||||
- uses: actions/setup-python@v4.8.0
|
||||
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 }}
|
||||
|
||||
${{ github.event.inputs.content }}
|
||||
EOF
|
||||
- name: Write Stable changelog
|
||||
if: ${{ !contains(github.event.inputs.version, 'b') }}
|
||||
run: |
|
||||
cat > esphome/CHANGELOG.md << 'EOF'
|
||||
## ${{ github.event.inputs.version }}
|
||||
${{ 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
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
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 }}
|
||||
${{ 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:
|
||||
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 }}
|
||||
|
||||
10
.github/workflows/devcontainer-build.yaml
vendored
@@ -19,20 +19,20 @@ jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3.3.0
|
||||
- uses: actions/checkout@v4.1.1
|
||||
- name: Log in to the GitHub container registry
|
||||
uses: docker/login-action@v2.1.0
|
||||
uses: docker/login-action@v3.0.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@v2.1.0
|
||||
uses: docker/setup-qemu-action@v3.0.0
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2.4.1
|
||||
uses: docker/setup-buildx-action@v3.0.0
|
||||
- name: Build and Push
|
||||
uses: docker/build-push-action@v4.0.0
|
||||
uses: docker/build-push-action@v5.1.0
|
||||
with:
|
||||
context: .
|
||||
file: .devcontainer/Dockerfile
|
||||
|
||||
8
.github/workflows/lint.yml
vendored
@@ -19,16 +19,16 @@ jobs:
|
||||
channel: dev
|
||||
steps:
|
||||
- name: ⤵️ Check out code from GitHub
|
||||
uses: actions/checkout@v3.3.0
|
||||
uses: actions/checkout@v4.1.1
|
||||
- name: 🛠 Setup Python
|
||||
uses: actions/setup-python@v4
|
||||
uses: actions/setup-python@v4.8.0
|
||||
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.11.0
|
||||
uses: frenck/action-addon-linter@v2.15.0
|
||||
with:
|
||||
path: "./${{ matrix.channels.folder }}"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
## 2023.4.0b2
|
||||
## 2024.4.2
|
||||
|
||||
- debug component, allow without debug logging [esphome#4685](https://github.com/esphome/esphome/pull/4685) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Fixed dns2 for ethernet [esphome#4698](https://github.com/esphome/esphome/pull/4698) by [@HeMan](https://github.com/HeMan)
|
||||
- Add timeout to i2c write error logs [esphome#4697](https://github.com/esphome/esphome/pull/4697) by [@Szewcson](https://github.com/Szewcson)
|
||||
- Add event triggers to voice_assistant [esphome#4699](https://github.com/esphome/esphome/pull/4699) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Fix SHT3xd fails sometimes in 2024.4.0 [esphome#6592](https://github.com/esphome/esphome/pull/6592) by [@mrtoy-me](https://github.com/mrtoy-me)
|
||||
- allow defaults with no include vars [esphome#6613](https://github.com/esphome/esphome/pull/6613) by [@ssieb](https://github.com/ssieb)
|
||||
- Revert #6458 [esphome#6650](https://github.com/esphome/esphome/pull/6650) by [@tronikos](https://github.com/tronikos)
|
||||
- [i2s_audio.microphone] Fixing adc bug [esphome#6654](https://github.com/esphome/esphome/pull/6654) by [@jesserockz](https://github.com/jesserockz)
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
# ESPHome Home Assistant Add-On
|
||||
# ESPHome Beta Add-On
|
||||
|
||||
[](https://esphome.io/)
|
||||
[![ESPHome logo][logo]][website]
|
||||
|
||||
[](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/
|
||||
|
||||
@@ -26,13 +26,13 @@ schema:
|
||||
ssl: bool?
|
||||
certfile: str?
|
||||
keyfile: str?
|
||||
relative_url: str?
|
||||
leave_front_door_open: bool?
|
||||
backup_exclude:
|
||||
- '*/*/'
|
||||
init: false
|
||||
startup: services
|
||||
name: ESPHome (beta)
|
||||
version: 2023.4.0b2
|
||||
version: 2024.4.2
|
||||
slug: esphome-beta
|
||||
description: Beta version of ESPHome add-on
|
||||
image: ghcr.io/esphome/esphome-hassio
|
||||
|
||||
BIN
esphome-beta/images/dht-example.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
esphome-beta/images/screenshot.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
esphome-beta/images/temperature-humidity.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
@@ -1 +1 @@
|
||||
See https://esphome.io/changelog/index.html
|
||||
See https://github.com/esphome/esphome/commits/dev
|
||||
|
||||
@@ -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
|
||||
@@ -1,9 +1,8 @@
|
||||
# ESPHome Home Assistant Add-On
|
||||
# ESPHome Dev Add-On
|
||||
|
||||
[](https://esphome.io/)
|
||||
[![ESPHome logo][logo]][website]
|
||||
|
||||
[](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/
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
build_from:
|
||||
aarch64: ghcr.io/esphome/esphome-hassio:dev
|
||||
amd64: ghcr.io/esphome/esphome-hassio:dev
|
||||
armv7: ghcr.io/esphome/esphome-hassio:dev
|
||||
@@ -27,15 +27,16 @@ schema:
|
||||
ssl: bool?
|
||||
certfile: str?
|
||||
keyfile: str?
|
||||
relative_url: str?
|
||||
leave_front_door_open: bool?
|
||||
backup_exclude:
|
||||
- '*/*/'
|
||||
init: false
|
||||
startup: services
|
||||
name: ESPHome (dev)
|
||||
version: dev
|
||||
version: 2024.5.0-dev20240430
|
||||
slug: esphome-dev
|
||||
description: Development version of ESPHome add-on
|
||||
image: ghcr.io/esphome/esphome-hassio
|
||||
stage: experimental
|
||||
advanced: true
|
||||
options:
|
||||
|
||||
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 69 KiB |
@@ -1,47 +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})..."
|
||||
rm -rf /esphome || bashio::exit.nok "Failed to remove ESPHome."
|
||||
mkdir /esphome
|
||||
tar -zxf /tmp/esphome.tar.gz -C /esphome --strip-components=1 \
|
||||
|| bashio::exit.nok "Failed installing ESPHome from fork."
|
||||
pip install -U -e /esphome || 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
|
||||
@@ -1,7 +1,7 @@
|
||||
## 2023.3.2
|
||||
## 2024.4.2
|
||||
|
||||
- Fix compile error on pzemdc.h [esphome#4583](https://github.com/esphome/esphome/pull/4583) by [@KG3RK3N](https://github.com/KG3RK3N)
|
||||
- Swap curly brackets for round on LockGuard [esphome#4610](https://github.com/esphome/esphome/pull/4610) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Fix animation resizing [esphome#4608](https://github.com/esphome/esphome/pull/4608) by [@guillempages](https://github.com/guillempages)
|
||||
- SX1509 minimum loop period (fixes esphome/issues#4325) [esphome#4613](https://github.com/esphome/esphome/pull/4613) by [@tracestep](https://github.com/tracestep)
|
||||
- Fix SHT3xd fails sometimes in 2024.4.0 [esphome#6592](https://github.com/esphome/esphome/pull/6592) by [@mrtoy-me](https://github.com/mrtoy-me)
|
||||
- allow defaults with no include vars [esphome#6613](https://github.com/esphome/esphome/pull/6613) by [@ssieb](https://github.com/ssieb)
|
||||
- Revert #6458 [esphome#6650](https://github.com/esphome/esphome/pull/6650) by [@tronikos](https://github.com/tronikos)
|
||||
- [i2s_audio.microphone] Fixing adc bug [esphome#6654](https://github.com/esphome/esphome/pull/6654) by [@jesserockz](https://github.com/jesserockz)
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
# ESPHome Home Assistant Add-On
|
||||
# ESPHome Add-On
|
||||
|
||||
[](https://esphome.io/)
|
||||
[![ESPHome logo][logo]][website]
|
||||
|
||||
[](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/
|
||||
|
||||
@@ -26,13 +26,13 @@ schema:
|
||||
ssl: bool?
|
||||
certfile: str?
|
||||
keyfile: str?
|
||||
relative_url: str?
|
||||
leave_front_door_open: bool?
|
||||
backup_exclude:
|
||||
- '*/*/'
|
||||
init: false
|
||||
startup: services
|
||||
name: ESPHome
|
||||
version: 2023.3.2
|
||||
version: 2024.4.2
|
||||
slug: esphome
|
||||
description: ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices
|
||||
image: ghcr.io/esphome/esphome-hassio
|
||||
|
||||
BIN
esphome/images/dht-example.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
esphome/images/screenshot.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
esphome/images/temperature-humidity.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
import yaml
|
||||
from pathlib import Path
|
||||
from enum import Enum
|
||||
from shutil import copyfile
|
||||
import sys
|
||||
import os
|
||||
|
||||
import yaml
|
||||
|
||||
|
||||
class Channel(Enum):
|
||||
@@ -24,39 +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.yaml"
|
||||
with open(path, "w") as f:
|
||||
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.yaml"
|
||||
build_conf = {
|
||||
"build_from": {
|
||||
arch: base_image for arch in conf["arch"]
|
||||
}
|
||||
}
|
||||
with open(path, "w") as f:
|
||||
yaml.dump(build_conf, f, indent=2, sort_keys=True, explicit_start=True)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main(sys.argv[1:])
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
See https://esphome.io/changelog/index.html
|
||||
@@ -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.
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
# ESPHome Home Assistant Add-On
|
||||
# ESPHome Add-On
|
||||
|
||||
[](https://esphome.io/)
|
||||
[![ESPHome logo][logo]][website]
|
||||
|
||||
[](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/
|
||||
|
||||
@@ -16,11 +16,11 @@ 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
|
||||
"6052/tcp": null
|
||||
map:
|
||||
- ssl:ro
|
||||
- config:rw
|
||||
@@ -34,21 +34,23 @@ base: &base
|
||||
ssl: bool?
|
||||
certfile: str?
|
||||
keyfile: str?
|
||||
relative_url: str?
|
||||
leave_front_door_open: 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.5.0-dev20240430" # 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:
|
||||
@@ -60,17 +62,15 @@ esphome-dev:
|
||||
ssl: bool?
|
||||
certfile: str?
|
||||
keyfile: str?
|
||||
relative_url: str?
|
||||
leave_front_door_open: bool?
|
||||
base_image: ghcr.io/esphome/esphome-hassio:dev
|
||||
options:
|
||||
home_assistant_dashboard_integration: false
|
||||
home_assistant_dashboard_integration: false
|
||||
|
||||
esphome-beta:
|
||||
<<: *base
|
||||
directory: esphome-beta
|
||||
name: ESPHome (beta)
|
||||
version: '2023.4.0b2' # BETA
|
||||
version: "2024.4.2" # BETA
|
||||
slug: esphome-beta
|
||||
description: "Beta version of ESPHome add-on"
|
||||
url: https://beta.esphome.io/
|
||||
@@ -78,21 +78,23 @@ esphome-beta:
|
||||
stage: experimental
|
||||
advanced: true
|
||||
options:
|
||||
home_assistant_dashboard_integration: false
|
||||
home_assistant_dashboard_integration: false
|
||||
|
||||
esphome-stable:
|
||||
<<: *base
|
||||
directory: esphome
|
||||
name: ESPHome
|
||||
version: '2023.3.2' # STABLE
|
||||
version: "2024.4.2" # STABLE
|
||||
slug: esphome
|
||||
description: "ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices"
|
||||
image: ghcr.io/esphome/esphome-hassio
|
||||
|
||||
copy_files:
|
||||
CHANGELOG.md:
|
||||
DOCS.md:
|
||||
icon.png:
|
||||
logo.png:
|
||||
README.md:
|
||||
translations/en.yaml:
|
||||
- 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
@@ -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/
|
||||
41
template/dev/README.md
Normal 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/images/dht-example.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
template/images/screenshot.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
template/images/temperature-humidity.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |