1
0

Compare commits

...

149 Commits

44 changed files with 775 additions and 206 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
}
}
}
}

View File

@@ -6,18 +6,36 @@ on:
version: version:
description: The version to release description: The version to release
required: true required: true
content:
description: The content of the release-notes
required: true
jobs: jobs:
create-release: create-release:
runs-on: ubuntu-latest runs-on: ubuntu-latest
continue-on-error: true continue-on-error: true
steps: steps:
- uses: actions/checkout@v3.0.2 - uses: actions/checkout@v4.0.0
- uses: actions/setup-python@v4 - uses: actions/setup-python@v4
with: with:
python-version: '3.x' python-version: '3.x'
- run: pip install -r script/requirements.txt - run: pip install -r script/requirements.txt
- run: script/bump-version.py ${{ github.event.inputs.version }} - run: script/bump-version.py ${{ github.event.inputs.version }}
- name: Write Beta changelog
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: Commit version bump - name: Commit version bump
id: commit_version id: commit_version
run: | run: |
@@ -28,8 +46,7 @@ jobs:
git push git push
COMMIT=$(git rev-parse HEAD) COMMIT=$(git rev-parse HEAD)
echo "::set-output name=commit_sha::${COMMIT}" echo "::set-output name=commit_sha::${COMMIT}"
- if: ${{ contains(github.event.inputs.version, 'b') }} - name: Create a Release
name: Create Beta Release
uses: actions/create-release@v1.1.4 uses: actions/create-release@v1.1.4
continue-on-error: true continue-on-error: true
env: env:
@@ -37,18 +54,6 @@ jobs:
with: with:
tag_name: ${{ github.event.inputs.version }} tag_name: ${{ github.event.inputs.version }}
release_name: ${{ github.event.inputs.version }} release_name: ${{ github.event.inputs.version }}
body: 'See https://beta.esphome.io/changelog/index.html' body: ${{ github.event.inputs.content }}
prerelease: true prerelease: ${{ contains(github.event.inputs.version, 'b') }}
commitish: ${{ steps.commit_version.outputs.commit_sha }}
- if: ${{ !contains(github.event.inputs.version, 'b') }}
name: Create Stable 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: 'See https://esphome.io/changelog/index.html'
prerelease: false
commitish: ${{ steps.commit_version.outputs.commit_sha }} commitish: ${{ steps.commit_version.outputs.commit_sha }}

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.0.0
- name: Log in to the GitHub container registry
uses: docker/login-action@v2.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@v2.2.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2.10.0
- name: Build and Push
uses: docker/build-push-action@v4.1.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,7 +19,7 @@ jobs:
channel: dev channel: dev
steps: steps:
- name: ⤵️ Check out code from GitHub - name: ⤵️ Check out code from GitHub
uses: actions/checkout@v3.0.2 uses: actions/checkout@v4.0.0
- name: 🛠 Setup Python - name: 🛠 Setup Python
uses: actions/setup-python@v4 uses: actions/setup-python@v4
with: with:
@@ -29,6 +29,6 @@ jobs:
- name: 🛠 Generate files from template - name: 🛠 Generate files from template
run: python script/generate.py ${{ matrix.channels.channel }} run: python script/generate.py ${{ matrix.channels.channel }}
- name: 🚀 Run Home Assistant Add-on Lint on ${{ matrix.channels.channel }} - name: 🚀 Run Home Assistant Add-on Lint on ${{ matrix.channels.channel }}
uses: frenck/action-addon-linter@v2.9.0 uses: frenck/action-addon-linter@v2.13.2
with: with:
path: "./${{ matrix.channels.folder }}" 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,86 @@
See https://esphome.io/changelog/index.html ## 2023.9.0b1
- Updated my username in Code Owners [esphome#5247](https://github.com/esphome/esphome/pull/5247) by [@mreditor97](https://github.com/mreditor97)
- remote_base: change dumpers log level [esphome#5253](https://github.com/esphome/esphome/pull/5253) by [@dudanov](https://github.com/dudanov)
- Add `libfreetype-dev` Debian package for armv7 Docker builds [esphome#5262](https://github.com/esphome/esphome/pull/5262) by [@pierlon](https://github.com/pierlon)
- Add delay before enabling ipv6 [esphome#5256](https://github.com/esphome/esphome/pull/5256) by [@HeMan](https://github.com/HeMan)
- Bump zeroconf from 0.74.0 to 0.80.0 [esphome#5260](https://github.com/esphome/esphome/pull/5260) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump click from 8.1.6 to 8.1.7 [esphome#5272](https://github.com/esphome/esphome/pull/5272) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Remove support for ESP-IDF version < 4 [esphome#5261](https://github.com/esphome/esphome/pull/5261) by [@HeMan](https://github.com/HeMan)
- Add pmwcs3 capacitive soil moisture & temperature sensor component [esphome#4624](https://github.com/esphome/esphome/pull/4624) by [@SeByDocKy](https://github.com/SeByDocKy) (new-integration)
- Add manufacturer data config to BLE server [esphome#5251](https://github.com/esphome/esphome/pull/5251) by [@clydebarrow](https://github.com/clydebarrow)
- Add support for ESP32-{S2,S3,C3} to debug component [esphome#4731](https://github.com/esphome/esphome/pull/4731) by [@jayme-github](https://github.com/jayme-github)
- Support for ESP32-C2 & ESP32-C6 [esphome#4377](https://github.com/esphome/esphome/pull/4377) by [@vidplace7](https://github.com/vidplace7)
- Bump arduino-heatpumpir to v1.0.23 [esphome#5269](https://github.com/esphome/esphome/pull/5269) by [@rob-deutsch](https://github.com/rob-deutsch)
- Fix equality check when setting current-based cover position [esphome#5167](https://github.com/esphome/esphome/pull/5167) by [@kroimon](https://github.com/kroimon)
- Bump platformio from 6.1.9 to 6.1.10 [esphome#5237](https://github.com/esphome/esphome/pull/5237) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Add Invert method for SSD1306 [esphome#5292](https://github.com/esphome/esphome/pull/5292) by [@max246](https://github.com/max246)
- Update PSRAM config params for IDF4+ [esphome#5298](https://github.com/esphome/esphome/pull/5298) by [@kbx81](https://github.com/kbx81)
- Fix legacy zeroconf record update method [esphome#5294](https://github.com/esphome/esphome/pull/5294) by [@bdraco](https://github.com/bdraco)
- Bump zeroconf from 0.80.0 to 0.86.0 [esphome#5308](https://github.com/esphome/esphome/pull/5308) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Add PSRAM mode and speed config [esphome#5312](https://github.com/esphome/esphome/pull/5312) by [@kbx81](https://github.com/kbx81)
- Add extra SLPOUT for waking up some ST7789 chips [esphome#5319](https://github.com/esphome/esphome/pull/5319) by [@clydebarrow](https://github.com/clydebarrow)
- 7789 controller fixes take 2 [esphome#5320](https://github.com/esphome/esphome/pull/5320) by [@clydebarrow](https://github.com/clydebarrow)
- Bump Arduino Pico to 3.4.0 [esphome#5321](https://github.com/esphome/esphome/pull/5321) by [@HeMan](https://github.com/HeMan)
- Use gzip compression for the web server component's static resources [esphome#5291](https://github.com/esphome/esphome/pull/5291) by [@EternityForest](https://github.com/EternityForest)
- Bump zeroconf from 0.86.0 to 0.88.0 [esphome#5315](https://github.com/esphome/esphome/pull/5315) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Adding heating coil and fan icons, enum device_class [esphome#5325](https://github.com/esphome/esphome/pull/5325) by [@barndawgie](https://github.com/barndawgie)
- Add dashboard API to get firmware binaries [esphome#4675](https://github.com/esphome/esphome/pull/4675) by [@kuba2k2](https://github.com/kuba2k2)
- Make uart error message go away [esphome#5329](https://github.com/esphome/esphome/pull/5329) by [@clydebarrow](https://github.com/clydebarrow)
- add heating functionality to SI7021 [esphome#4828](https://github.com/esphome/esphome/pull/4828) by [@max246](https://github.com/max246)
- Bump esphome-dashboard to 20230904.0 [esphome#5339](https://github.com/esphome/esphome/pull/5339) by [@jesserockz](https://github.com/jesserockz)
- Added Handling for Nack "file not found" [esphome#5338](https://github.com/esphome/esphome/pull/5338) by [@croessi](https://github.com/croessi)
- Prepare api and time for ESP-IDF >= 5 [esphome#5332](https://github.com/esphome/esphome/pull/5332) by [@HeMan](https://github.com/HeMan)
- Tweak Improv serial to build in IDF 5 [esphome#5331](https://github.com/esphome/esphome/pull/5331) by [@kbx81](https://github.com/kbx81)
- Support for LibreTiny platform (RTL8710, BK7231 & other modules) [esphome#3509](https://github.com/esphome/esphome/pull/3509) by [@kuba2k2](https://github.com/kuba2k2) (new-integration)
- Extend ESP32 CAN bit rates /bus speed support [esphome#5280](https://github.com/esphome/esphome/pull/5280) by [@mkaiser](https://github.com/mkaiser)
- Debug component: add free PSRAM sensor [esphome#5334](https://github.com/esphome/esphome/pull/5334) by [@kahrendt](https://github.com/kahrendt)
- libretiny: fix uart_port framework config [esphome#5343](https://github.com/esphome/esphome/pull/5343) by [@jesserockz](https://github.com/jesserockz)
- Bump actions/checkout from 3 to 4 [esphome#5341](https://github.com/esphome/esphome/pull/5341) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Add Lilygo T-Embed to st7789v display config. [esphome#5337](https://github.com/esphome/esphome/pull/5337) by [@clydebarrow](https://github.com/clydebarrow)
- Disable IPv6 when config explicitly says false [esphome#5310](https://github.com/esphome/esphome/pull/5310) by [@HeMan](https://github.com/HeMan)
- Add defines.h to ethernet_component.h for ENABLE_IPV6 [esphome#5344](https://github.com/esphome/esphome/pull/5344) by [@kbx81](https://github.com/kbx81)
- Synchronise Device Classes from Home Assistant [esphome#5328](https://github.com/esphome/esphome/pull/5328) by [@esphomebot](https://github.com/esphomebot) (breaking-change)
- Bump pytest from 7.4.0 to 7.4.1 [esphome#5342](https://github.com/esphome/esphome/pull/5342) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Fixed default temperature step values for haier climate [esphome#5330](https://github.com/esphome/esphome/pull/5330) by [@paveldn](https://github.com/paveldn)
- Add debug component to all tests [esphome#5333](https://github.com/esphome/esphome/pull/5333) by [@HeMan](https://github.com/HeMan)
- Support MaxBotix XL in addition to HRXL [esphome#4510](https://github.com/esphome/esphome/pull/4510) by [@notjj](https://github.com/notjj)
- Adding DFRobot Ozone Sensor Support (sen0321) [esphome#4782](https://github.com/esphome/esphome/pull/4782) by [@notjj](https://github.com/notjj) (new-integration)
- mdns: bump IDF mdns component to 1.2.0 [esphome#5217](https://github.com/esphome/esphome/pull/5217) by [@stintel](https://github.com/stintel)
- Integration LightwaveRF switches [esphome#4812](https://github.com/esphome/esphome/pull/4812) by [@max246](https://github.com/max246) (new-integration)
- Bump flake8 from 6.0.0 to 6.1.0 [esphome#5171](https://github.com/esphome/esphome/pull/5171) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump tornado from 6.3.2 to 6.3.3 [esphome#5236](https://github.com/esphome/esphome/pull/5236) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump platformio from 6.1.10 to 6.1.11 [esphome#5323](https://github.com/esphome/esphome/pull/5323) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Only run ci-docker when ci-docker workflow changes [esphome#5347](https://github.com/esphome/esphome/pull/5347) by [@jesserockz](https://github.com/jesserockz)
- esp32: Extra build customization [esphome#5322](https://github.com/esphome/esphome/pull/5322) by [@jesserockz](https://github.com/jesserockz)
- Allow upload command to flash file via serial [esphome#5274](https://github.com/esphome/esphome/pull/5274) by [@jesserockz](https://github.com/jesserockz)
- Allow "--device SERIAL" on cli to flash only via serial [esphome#5351](https://github.com/esphome/esphome/pull/5351) by [@jesserockz](https://github.com/jesserockz)
- Fix PN532 for IDF 5 and ultralight enhancements [esphome#5352](https://github.com/esphome/esphome/pull/5352) by [@kbx81](https://github.com/kbx81)
- Fix cpu_ll_get_cycle_count() deprecated warning [esphome#5353](https://github.com/esphome/esphome/pull/5353) by [@kbx81](https://github.com/kbx81)
- Refactor SPI code; Add ESP-IDF hardware support [esphome#5311](https://github.com/esphome/esphome/pull/5311) by [@clydebarrow](https://github.com/clydebarrow) (new-integration)
- Bump actions/cache from 3.3.1 to 3.3.2 [esphome#5367](https://github.com/esphome/esphome/pull/5367) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump zeroconf from 0.88.0 to 0.102.0 [esphome#5368](https://github.com/esphome/esphome/pull/5368) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Fix repeat.count = 0 case [esphome#5364](https://github.com/esphome/esphome/pull/5364) by [@Xmister](https://github.com/Xmister)
- Fix dashboard download for ESP32 variants [esphome#5355](https://github.com/esphome/esphome/pull/5355) by [@kuba2k2](https://github.com/kuba2k2)
- Bump pytest from 7.4.1 to 7.4.2 [esphome#5357](https://github.com/esphome/esphome/pull/5357) by [@dependabot[bot]](https://github.com/apps/dependabot)
- [ADC] Support measuring VCC on Raspberry Pico (W) [esphome#5335](https://github.com/esphome/esphome/pull/5335) by [@hostcc](https://github.com/hostcc)
- Move CONF_PHASE_A/B/C constants to const.py. [esphome#5304](https://github.com/esphome/esphome/pull/5304) by [@kpfleming](https://github.com/kpfleming)
- Add BMI160 support [esphome#5143](https://github.com/esphome/esphome/pull/5143) by [@flaviut](https://github.com/flaviut) (new-integration)
- Use black-pre-commit-mirror to speed up pre-commit runs. [esphome#5372](https://github.com/esphome/esphome/pull/5372) by [@kpfleming](https://github.com/kpfleming)
- Native SPI RGB LED component [esphome#5288](https://github.com/esphome/esphome/pull/5288) by [@clydebarrow](https://github.com/clydebarrow) (new-integration)
- Wireguard component [esphome#4256](https://github.com/esphome/esphome/pull/4256) by [@lhoracek](https://github.com/lhoracek) (new-integration)
- Bump LibreTiny version to 1.4.0 [esphome#5375](https://github.com/esphome/esphome/pull/5375) by [@kuba2k2](https://github.com/kuba2k2)
- time: Make std::string version of strftime() avoid runaway memory allocations [esphome#5348](https://github.com/esphome/esphome/pull/5348) by [@kpfleming](https://github.com/kpfleming)
- Fix disabled wifi crash on boot [esphome#5370](https://github.com/esphome/esphome/pull/5370) by [@Xmister](https://github.com/Xmister)
- debug: add ESP32-C6 support [esphome#5354](https://github.com/esphome/esphome/pull/5354) by [@stintel](https://github.com/stintel)
- Make string globals persist-able using fixed size allocations [esphome#5296](https://github.com/esphome/esphome/pull/5296) by [@EternityForest](https://github.com/EternityForest)
- Use /data directory for .esphome folder when running as HA add-on [esphome#5374](https://github.com/esphome/esphome/pull/5374) by [@jesserockz](https://github.com/jesserockz) (breaking-change)
- Bump zeroconf from 0.102.0 to 0.108.0 [esphome#5376](https://github.com/esphome/esphome/pull/5376) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump black from 23.7.0 to 23.9.1 [esphome#5377](https://github.com/esphome/esphome/pull/5377) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Attempt to fix rp2040 adc with vcc [esphome#5378](https://github.com/esphome/esphome/pull/5378) by [@jesserockz](https://github.com/jesserockz)
- Enable IPv6 for ESP8266 and Raspberry pi pico w (RP2040) [esphome#4759](https://github.com/esphome/esphome/pull/4759) by [@HeMan](https://github.com/HeMan)
- Workflow updates [esphome#5384](https://github.com/esphome/esphome/pull/5384) by [@jesserockz](https://github.com/jesserockz)
- Modbus Controller added some features [esphome#5318](https://github.com/esphome/esphome/pull/5318) by [@0x3333](https://github.com/0x3333)
- Force heater off on setup [esphome#5161](https://github.com/esphome/esphome/pull/5161) by [@rufuswilson](https://github.com/rufuswilson)
- Add IDF 5 test yaml, add adc to IDF tests, fix adc for IDF 5 [esphome#5379](https://github.com/esphome/esphome/pull/5379) by [@kbx81](https://github.com/kbx81)

View File

@@ -1,5 +1,4 @@
# Home Assistant Community Add-on: ESPHome # ESPHome Add-on
## Installation ## Installation
The installation of this add-on is pretty straightforward and not different in comparison to installing any other Home Assistant add-on. 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 stars][github-stars-shield]][repository]
[![GitHub Release][releases-shield]][releases]
[![Discord][discord-shield]][discord] [![Discord][discord-shield]][discord]
## About ## About
@@ -14,10 +13,10 @@ is write YAML configuration files; the rest (over-the-air updates, compiling) is
handled by ESPHome. handled by ESPHome.
<p align="center"> <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> </p>
[View the ESPHome documentation](https://esphome.io/) [View the ESPHome documentation][website]
## Example ## 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 temperature and humidity sensor, you just need to include 8 lines of YAML
in your configuration file: 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: 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 [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 [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,37 +1,41 @@
--- ---
advanced: true url: https://beta.esphome.io/
arch: arch:
- amd64 - amd64
- armv7 - armv7
- aarch64 - aarch64
auth_api: true
backup_exclude:
- '*/*/'
description: Beta version of ESPHome add-on
hassio_api: true hassio_api: true
auth_api: true
host_network: true host_network: true
image: ghcr.io/esphome/esphome-hassio-{arch}
ingress: true ingress: true
ingress_port: 0 ingress_port: 0
panel_icon: mdi:chip
uart: true
ports:
6052/tcp: null
map: map:
- ssl:ro - ssl:ro
- config:rw - config:rw
name: ESPHome (beta) discovery:
panel_icon: mdi:chip - esphome
ports:
6052/tcp: null
ports_description:
6052/tcp: Web interface (not required for Home Assistant ingress)
schema: schema:
status_use_ping: bool?
streamer_mode: bool?
home_assistant_dashboard_integration: bool?
default_compile_process_limit: int(1,)?
ssl: bool?
certfile: str? certfile: str?
keyfile: str? keyfile: str?
leave_front_door_open: bool? leave_front_door_open: bool?
relative_url: str? backup_exclude:
ssl: bool? - '*/*/'
status_use_ping: bool? init: false
streamer_mode: bool? name: ESPHome (beta)
version: 2023.9.0b1
slug: esphome-beta slug: esphome-beta
description: Beta version of ESPHome add-on
image: ghcr.io/esphome/esphome-hassio
stage: experimental stage: experimental
uart: true advanced: true
url: https://beta.esphome.io/ options:
version: 2022.8.3 home_assistant_dashboard_integration: false

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: 12 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,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. 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.
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/
## Configuration ## Configuration
**Note**: _Remember to restart the add-on when the configuration is changed._ **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` ### Option: `esphome_fork`
Install ESPHome from a fork or branch. Install ESPHome from a fork or branch.
For example to test a pull request, use `pull/XXXX/head` where `XXXX` is the PR number, 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 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 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` ### Option: `ssl`

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 stars][github-stars-shield]][repository]
[![GitHub Release][releases-shield]][releases]
[![Discord][discord-shield]][discord] [![Discord][discord-shield]][discord]
## About ## About
@@ -14,10 +13,10 @@ is write YAML configuration files; the rest (over-the-air updates, compiling) is
handled by ESPHome. handled by ESPHome.
<p align="center"> <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> </p>
[View the ESPHome documentation](https://esphome.io/) [View the ESPHome documentation][website]
## Example ## 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 temperature and humidity sensor, you just need to include 8 lines of YAML
in your configuration file: 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: 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 [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 [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,5 +1,5 @@
--- ---
build_from: build_from:
aarch64: ghcr.io/esphome/esphome-hassio-aarch64:dev aarch64: ghcr.io/esphome/esphome-hassio:dev
amd64: ghcr.io/esphome/esphome-hassio-amd64:dev amd64: ghcr.io/esphome/esphome-hassio:dev
armv7: ghcr.io/esphome/esphome-hassio-armv7:dev armv7: ghcr.io/esphome/esphome-hassio:dev

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 12 KiB

7
esphome-dev/rootfs/etc/cont-init.d/30-esphome-fork.sh Normal file → Executable file
View File

@@ -25,10 +25,11 @@ if bashio::config.has_value 'esphome_fork'; then
curl -L -o /tmp/esphome.tar.gz "${full_url}" -qq \ curl -L -o /tmp/esphome.tar.gz "${full_url}" -qq \
|| bashio::exit.nok "Failed downloading ESPHome fork." || bashio::exit.nok "Failed downloading ESPHome fork."
bashio::log.info "Installing ESPHome from fork '${esphome_fork}' (${full_url})..." bashio::log.info "Installing ESPHome from fork '${esphome_fork}' (${full_url})..."
mkdir /esphome-fork rm -rf /esphome || bashio::exit.nok "Failed to remove ESPHome."
tar -zxf /tmp/esphome.tar.gz -C /esphome-fork --strip-components=1 \ mkdir /esphome
tar -zxf /tmp/esphome.tar.gz -C /esphome --strip-components=1 \
|| bashio::exit.nok "Failed installing ESPHome from fork." || bashio::exit.nok "Failed installing ESPHome from fork."
pip install -U -e /esphome-fork || 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 rm -f /tmp/esphome.tar.gz
fork_version=$(python3 -c "from esphome.const import __version__; print(__version__)") fork_version=$(python3 -c "from esphome.const import __version__; print(__version__)")

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,8 @@
See https://esphome.io/changelog/index.html ## 2023.8.3
- Introduce cv.temperature_delta and fix problematic thermostat configuration behavior [esphome#5297](https://github.com/esphome/esphome/pull/5297) by [@sebastianrasor](https://github.com/sebastianrasor)
- fix to PR # 3887 MQTT connection not using discovery: false [esphome#5275](https://github.com/esphome/esphome/pull/5275) by [@luka6000](https://github.com/luka6000)
- Attempt to fix secret blurring [esphome#5326](https://github.com/esphome/esphome/pull/5326) by [@jesserockz](https://github.com/jesserockz)
- Bugfix: disable channels after IO if multiple tca9548a I2C multiplexers are configured [esphome#5317](https://github.com/esphome/esphome/pull/5317) by [@kahrendt](https://github.com/kahrendt)
- Fix checksum calculation for pipsolar [esphome#5299](https://github.com/esphome/esphome/pull/5299) by [@Mat931](https://github.com/Mat931)

View File

@@ -1,5 +1,4 @@
# Home Assistant Community Add-on: ESPHome # ESPHome Add-on
## Installation ## Installation
The installation of this add-on is pretty straightforward and not different in comparison to installing any other Home Assistant add-on. 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 stars][github-stars-shield]][repository]
[![GitHub Release][releases-shield]][releases]
[![Discord][discord-shield]][discord] [![Discord][discord-shield]][discord]
## About ## About
@@ -14,10 +13,10 @@ is write YAML configuration files; the rest (over-the-air updates, compiling) is
handled by ESPHome. handled by ESPHome.
<p align="center"> <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> </p>
[View the ESPHome documentation](https://esphome.io/) [View the ESPHome documentation][website]
## Example ## 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 temperature and humidity sensor, you just need to include 8 lines of YAML
in your configuration file: 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: 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 [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 [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,35 +1,37 @@
--- ---
url: https://esphome.io/
arch: arch:
- amd64 - amd64
- armv7 - armv7
- aarch64 - aarch64
auth_api: true
backup_exclude:
- '*/*/'
description: ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices
hassio_api: true hassio_api: true
auth_api: true
host_network: true host_network: true
image: ghcr.io/esphome/esphome-hassio-{arch}
ingress: true ingress: true
ingress_port: 0 ingress_port: 0
panel_icon: mdi:chip
uart: true
ports:
6052/tcp: null
map: map:
- ssl:ro - ssl:ro
- config:rw - config:rw
name: ESPHome discovery:
panel_icon: mdi:chip - esphome
ports:
6052/tcp: null
ports_description:
6052/tcp: Web interface (not required for Home Assistant ingress)
schema: schema:
status_use_ping: bool?
streamer_mode: bool?
home_assistant_dashboard_integration: bool?
default_compile_process_limit: int(1,)?
ssl: bool?
certfile: str? certfile: str?
keyfile: str? keyfile: str?
leave_front_door_open: bool? leave_front_door_open: bool?
relative_url: str? backup_exclude:
ssl: bool? - '*/*/'
status_use_ping: bool? init: false
streamer_mode: bool? name: ESPHome
version: 2023.8.3
slug: esphome slug: esphome
uart: true description: ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices
url: https://esphome.io/ image: ghcr.io/esphome/esphome-hassio
version: 2022.8.3

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 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: 12 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

@@ -6,6 +6,7 @@ from pathlib import Path
from enum import Enum from enum import Enum
from shutil import copyfile from shutil import copyfile
import sys import sys
import os
class Channel(Enum): class Channel(Enum):
@@ -35,9 +36,10 @@ def main(args):
dir_ = root / conf.pop("directory") dir_ = root / conf.pop("directory")
path = dir_ / "config.yaml" path = dir_ / "config.yaml"
with open(path, "w") as f: with open(path, "w") as f:
yaml.dump(conf, f, indent=2, sort_keys=True, explicit_start=True) 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_): if Path.exists(templ / channel.value / file_):
copyfile(templ / channel.value / file_, dir_ / file_) copyfile(templ / channel.value / file_, dir_ / file_)
else: else:
@@ -51,7 +53,7 @@ def main(args):
path = dir_ / "build.yaml" path = dir_ / "build.yaml"
build_conf = { build_conf = {
"build_from": { "build_from": {
arch: base_image.format(arch=arch) for arch in conf["arch"] arch: base_image for arch in conf["arch"]
} }
} }
with open(path, "w") as f: with open(path, "w") as f:

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 ## Installation
The installation of this add-on is pretty straightforward and not different in comparison to installing any other Home Assistant add-on. 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 stars][github-stars-shield]][repository]
[![GitHub Release][releases-shield]][releases]
[![Discord][discord-shield]][discord] [![Discord][discord-shield]][discord]
## About ## About
@@ -14,10 +13,10 @@ is write YAML configuration files; the rest (over-the-air updates, compiling) is
handled by ESPHome. handled by ESPHome.
<p align="center"> <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> </p>
[View the ESPHome documentation](https://esphome.io/) [View the ESPHome documentation][website]
## Example ## 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 temperature and humidity sensor, you just need to include 8 lines of YAML
in your configuration file: 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: 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 [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 [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

@@ -21,21 +21,24 @@ base: &base
uart: true uart: true
ports: ports:
'6052/tcp': null '6052/tcp': null
ports_description:
'6052/tcp': "Web interface (not required for Home Assistant ingress)"
map: map:
- ssl:ro - ssl:ro
- config:rw - config:rw
discovery:
- esphome
schema: schema:
status_use_ping: bool?
streamer_mode: bool?
home_assistant_dashboard_integration: bool?
default_compile_process_limit: int(1,)?
ssl: bool? ssl: bool?
certfile: str? certfile: str?
keyfile: str? keyfile: str?
leave_front_door_open: bool? leave_front_door_open: bool?
streamer_mode: bool?
relative_url: str?
status_use_ping: bool?
backup_exclude: backup_exclude:
- "*/*/" - "*/*/"
# Disable docker init for s6
init: false
esphome-dev: esphome-dev:
<<: *base <<: *base
@@ -48,40 +51,48 @@ esphome-dev:
stage: experimental stage: experimental
advanced: true advanced: true
schema: schema:
status_use_ping: bool?
streamer_mode: bool?
home_assistant_dashboard_integration: bool?
default_compile_process_limit: int(1,)?
esphome_fork: str?
ssl: bool? ssl: bool?
certfile: str? certfile: str?
keyfile: str? keyfile: str?
leave_front_door_open: bool? leave_front_door_open: bool?
streamer_mode: bool? base_image: ghcr.io/esphome/esphome-hassio:dev
relative_url: str? options:
status_use_ping: bool? home_assistant_dashboard_integration: false
esphome_fork: str?
base_image: ghcr.io/esphome/esphome-hassio-{arch}:dev
esphome-beta: esphome-beta:
<<: *base <<: *base
directory: esphome-beta directory: esphome-beta
name: ESPHome (beta) name: ESPHome (beta)
version: '2022.8.3' # BETA version: '2023.9.0b1' # BETA
slug: esphome-beta slug: esphome-beta
description: "Beta version of ESPHome add-on" description: "Beta version of ESPHome add-on"
url: https://beta.esphome.io/ url: https://beta.esphome.io/
image: ghcr.io/esphome/esphome-hassio-{arch} image: ghcr.io/esphome/esphome-hassio
stage: experimental stage: experimental
advanced: true advanced: true
options:
home_assistant_dashboard_integration: false
esphome-stable: esphome-stable:
<<: *base <<: *base
directory: esphome directory: esphome
name: ESPHome name: ESPHome
version: '2022.8.3' # STABLE version: '2023.8.3' # STABLE
slug: esphome slug: esphome
description: "ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices" 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: copy_files:
icon.png: - DOCS.md
logo.png: - icon.png
README.md: - logo.png
DOCS.md: - README.md
CHANGELOG.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/

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. 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.
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/
## Configuration ## Configuration
**Note**: _Remember to restart the add-on when the configuration is changed._ **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` ### Option: `esphome_fork`
Install ESPHome from a fork or branch. Install ESPHome from a fork or branch.
For example to test a pull request, use `pull/XXXX/head` where `XXXX` is the PR number, 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 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 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` ### 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/

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: 12 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)